1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: Aquest és el secció més còmode, 3 00:00:13,351 --> 00:00:16,309 però això no vol dir que si vostè sentir que no estàs més còmode 4 00:00:16,309 --> 00:00:18,420 vostè no va a aprendre coses aquí. 5 00:00:18,420 --> 00:00:20,600 Així que anem a començar. 6 00:00:20,600 --> 00:00:22,819 Té tobogans anar a la dreta en les coses. 7 00:00:22,819 --> 00:00:24,360 Estic a punt de només prenc en aquest moment? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Canvi de les computadores portàtils. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: No vol presenti, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB BOWDEN: Oh, sóc Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Aquest és el meu cinquè any CS50-del TF. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Jo sóc Gabriel. 17 00:00:39,650 --> 00:00:41,610 Estic TF cap del CS50. 18 00:00:41,610 --> 00:00:44,009 Jo estava TF any passat i aquest any. 19 00:00:44,009 --> 00:00:46,675 ALLISON: I jo sóc Alison, i aquest és el meu segon any CS50-del TF. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB BOWDEN: Molt bé, així que aquesta cosa de l'esquerra, 22 00:00:50,825 --> 00:00:52,250 espero que hagis vist abans. 23 00:00:52,250 --> 00:00:54,112 Si no perquè descarregar per tu mateix, 24 00:00:54,112 --> 00:00:55,570 vostè ha d'haver vist a la conferència. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Així que aquest és l'aparell CS50, i ell va fer una mica d'una descripció de la mateixa 27 00:01:01,320 --> 00:01:01,880 en conferència. 28 00:01:01,880 --> 00:01:06,890 Però, bàsicament, és només vostè s'executa una operació 29 00:01:06,890 --> 00:01:10,550 dins del seu sistema operatiu sistema de manera que podem donar-li 30 00:01:10,550 --> 00:01:12,540 programes sense necessitat de de preocupar, oh és això 31 00:01:12,540 --> 00:01:15,989 anar a treballar tant en Windows i Mac, o si alguns de vostès 32 00:01:15,989 --> 00:01:17,280 ja estan el Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 És només suposa que ser un joc comú 35 00:01:20,240 --> 00:01:23,010 camp perquè tots tinguin la mateix entorn exacte. 36 00:01:23,010 --> 00:01:25,344 >> Així que si vostè no té descarregat, 37 00:01:25,344 --> 00:01:28,510 vostè ha de descarregar-lo, perquè ets necessitarà per al conjunt de problemes. 38 00:01:28,510 --> 00:01:32,335 I és una de dues gigabytes descàrrega, de manera que podria prendre un temps. 39 00:01:32,335 --> 00:01:33,780 A la Universitat de Harvard que va a anar ràpid. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Aparell Així CS50. 42 00:01:37,440 --> 00:01:41,980 >> Ara bé, en el principi, anem a parlar només un munt de línia d'ordres 43 00:01:41,980 --> 00:01:46,880 coses, i per tant per això, em refereixo a treballar en aquest entorn poc per aquí. 44 00:01:46,880 --> 00:01:53,230 I noti totes les coses Jo dic aquí i ara 45 00:01:53,230 --> 00:01:56,900 treballaran si estàs dins de un terminal interior de l'aparell, 46 00:01:56,900 --> 00:02:00,790 o si vostè està dins de la finestra de terminal gedit 47 00:02:00,790 --> 00:02:02,090 a l'interior de l'aparell. 48 00:02:02,090 --> 00:02:03,770 Així aquests ambients són idèntics. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Però jo vaig a anar a una tercera ruta. 51 00:02:07,270 --> 00:02:12,200 I notar aquí això poca adreça IP aquí. 52 00:02:12,200 --> 00:02:15,940 Així que vostè no ha de fer això, però aquesta IP 53 00:02:15,940 --> 00:02:19,700 address-- ara si jo-- excepte està bloquejat per aquesta cosa. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 Acceptar, de manera que l'adreça IP més en un terminal 56 00:02:27,000 --> 00:02:31,090 aquí-- de manera que aquest terminal a través de aquí és una terminal en el meu Mac. 57 00:02:31,090 --> 00:02:34,540 Així que aquest és en cap manera actualment associat amb l'aparell en absolut. 58 00:02:34,540 --> 00:02:39,360 I si estàs en Windows, llavors vostè està va a haver de descarregar alguna cosa 59 00:02:39,360 --> 00:02:44,430 específicament per a aquest, en particular, la gent tendeix utilitzar massilla, P-O-T-T-I. 60 00:02:44,430 --> 00:02:50,700 >> Així que el que faré és tipus SSH i després que l'adreça IP. 61 00:02:50,700 --> 00:02:54,030 Bé, jharvard en aquesta direcció IP. 62 00:02:54,030 --> 00:03:00,150 Així 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Aquest missatge de por, ho ignoren. 64 00:03:02,127 --> 00:03:02,710 Només has d'escriure si. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Això és CS50 en una caixa. 67 00:03:06,030 --> 00:03:07,460 Se li demana la seva contrasenya. 68 00:03:07,460 --> 00:03:11,910 >> I així, en molts d'aquests contextos en els quals que demana la contrasenya, [inaudible]. 69 00:03:11,910 --> 00:03:15,670 Tenim un munt de preguntes on que diu que no és en realitat escriure. 70 00:03:15,670 --> 00:03:20,011 No et mostren els caràcters de la contrasenya a mesura que escriu, en tot cas, 71 00:03:20,011 --> 00:03:23,010 per a una funció de seguretat, ja que si algú està mirant sobre la seva espatlla 72 00:03:23,010 --> 00:03:25,870 i veuen estrella estrella estrella estrella, llavors 73 00:03:25,870 --> 00:03:28,640 saber que la teva contrasenya és de quatre caràcters. 74 00:03:28,640 --> 00:03:32,660 Així que la idea és que li preguntarà la contrasenya, el tipus. 75 00:03:32,660 --> 00:03:34,490 No va a mostrar que els personatges, 76 00:03:34,490 --> 00:03:36,090 però en realitat és acceptar-los. 77 00:03:36,090 --> 00:03:39,210 En aquest cas, cada vegada que mai veure una sol·licitud de contrasenya 78 00:03:39,210 --> 00:03:42,280 tractar amb l'aparell, el contrasenya serà carmesí. 79 00:03:42,280 --> 00:03:43,270 Així carmesí. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> I ara aquí dins d'aquest finestra que està en el meu Mac, 82 00:03:50,550 --> 00:03:54,120 Bàsicament, estic tenint la mateixa visió exacta 83 00:03:54,120 --> 00:03:57,040 com a l'interior d'un terminal en l'aparell. 84 00:03:57,040 --> 00:03:58,470 Així que vostè no ha de fer això. 85 00:03:58,470 --> 00:04:01,300 Vostè pot fer tot el que volen interior de l'aparell. 86 00:04:01,300 --> 00:04:05,140 Jo gairebé mai en realitat faig res en l'aparell. 87 00:04:05,140 --> 00:04:09,440 Jo gairebé sempre minimitzar això i ara Estic SSH de treball en l'aparell. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> En tot cas, si tenir un equip més lent, 90 00:04:14,180 --> 00:04:15,820 vostè podria notar una diferència. 91 00:04:15,820 --> 00:04:18,839 Faig això perquè prefereixo aquesta finestra terminal. 92 00:04:18,839 --> 00:04:20,881 Té algunes característiques com Puc dividir la finestra, 93 00:04:20,881 --> 00:04:22,672 i ara puc SSH a a través de l'aparell. 94 00:04:22,672 --> 00:04:24,105 Tinc dos SSH està passant a la vegada. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Si el seu ordinador és particularment lent i s'està treballant en l'aparell, 97 00:04:32,250 --> 00:04:35,200 i t'adones d'això és realment mandrós, el que sigui. 98 00:04:35,200 --> 00:04:38,220 Tendeix a ser molt més ràpid si ets SSH-ed a. 99 00:04:38,220 --> 00:04:40,960 Però d'altra banda es pot treballar de qualsevol manera. 100 00:04:40,960 --> 00:04:42,388 >> AUDIÈNCIA: Què significa SSH? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB BOWDEN: petxines d'assegurances, alguna cosa per l'estil? 103 00:04:47,479 --> 00:04:48,270 Què significa SSH? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: shell segur. 106 00:04:55,130 --> 00:04:56,463 ALLISON: És simplement la closca segura. 107 00:04:56,463 --> 00:04:57,720 ROB BOWDEN: shell segur. 108 00:04:57,720 --> 00:05:03,700 És un protocol que és usted-- un protocol segur, de manera encriptada. 109 00:05:03,700 --> 00:05:06,850 La gent no pot espiar la xarxa i veure el que vostè està dient a res 110 00:05:06,850 --> 00:05:08,120 estàs SSH-ed a. 111 00:05:08,120 --> 00:05:12,900 I de fet, en el Olden dies de CS50, pel que en 2009 112 00:05:12,900 --> 00:05:19,300 quan jo era un estudiant de primer any, la forma en què vostè va treballar en els butlletins de problemes CS50, 113 00:05:19,300 --> 00:05:22,490 vostè era SSH-ed a algun servidor que ens va donar l'accés a, 114 00:05:22,490 --> 00:05:23,497 i que va treballar allà. 115 00:05:23,497 --> 00:05:25,330 Així que vostè no té aquest aparell gràfica. 116 00:05:25,330 --> 00:05:26,160 No tenies gedit. 117 00:05:26,160 --> 00:05:28,930 Vostè no té totes aquestes coses que vostè podria visualment apuntar i fer clic. 118 00:05:28,930 --> 00:05:30,346 Calia treballar en aquesta interfície. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Prefereixo treballar en aquesta interfície. 121 00:05:33,716 --> 00:05:36,090 Així que part del que anem a anar a més en aquest moment 122 00:05:36,090 --> 00:05:39,560 són un grup de la les ordres que vostè ha 123 00:05:39,560 --> 00:05:42,095 començar a familiaritzar-se amb tan que avança en el curs. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 I, honestament, una vegada que acostumar-se a ells, 126 00:05:45,790 --> 00:05:48,220 és molt més ràpid per treballar en aquest entorn 127 00:05:48,220 --> 00:05:53,690 del que és treballar amb el cercador, arrossegant i fent clic a les coses. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Així que aquí estem. 130 00:05:57,210 --> 00:06:01,779 Ara només SSH-ed a, i així el defecte que ubicació: 131 00:06:01,779 --> 00:06:04,820 veure alguns d'aquests ordres a la classe, però anem a repassar tots ells de nou. 132 00:06:04,820 --> 00:06:08,060 La ubicació per defecte estem en és el directori d'inici. 133 00:06:08,060 --> 00:06:11,520 I directori, només una altra paraula per a la carpeta. 134 00:06:11,520 --> 00:06:13,310 Així que estem en el directori principal. 135 00:06:13,310 --> 00:06:15,889 Escrigui ls, llistar els arxius en aquest directori. 136 00:06:15,889 --> 00:06:17,430 Evidentment he creat un blah.c anterior. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Així que tenim un directori de l'escriptori. 139 00:06:20,472 --> 00:06:21,930 Es nota el ressaltat de sintaxi? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 El ressaltat de color blau clar indica un directori i el blanc directe 142 00:06:32,900 --> 00:06:34,380 indica simplement un arxiu sense format. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Així que no hi haurà alguns altres colors que vostè veu. 145 00:06:37,690 --> 00:06:41,240 Un arxiu executable és probablement va a ser de color verd o alguna cosa per l'estil. 146 00:06:41,240 --> 00:06:44,820 Acceptar, pel que estem en el directori principal. 147 00:06:44,820 --> 00:06:48,970 >> Ara bé, si jo vull entrar en una diferent directori, cd és la comanda que vull. 148 00:06:48,970 --> 00:06:52,720 Així que canvia de directori, i llavors vostè passar el nom del directori 149 00:06:52,720 --> 00:06:54,020 que per entrar. 150 00:06:54,020 --> 00:06:55,780 Així que aquí tenim quatre opcions. 151 00:06:55,780 --> 00:07:03,397 Jo puc entrar a les descàrregues, i ara veiem aquí s'ha actualitzat aquest parèntesi 152 00:07:03,397 --> 00:07:04,480 de dir que estic a ~ / descàrregues. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Llavors, ¿què és accent? 155 00:07:06,800 --> 00:07:10,640 És una forma abreujada de el seu directori personal. 156 00:07:10,640 --> 00:07:15,260 Així que gairebé tot el que fas va a ser pel que fa al seu directori, 157 00:07:15,260 --> 00:07:20,620 i pwd és només una ordre Jo faig servir una vegada en un any que 158 00:07:20,620 --> 00:07:22,420 només imprimeix el directori actual. 159 00:07:22,420 --> 00:07:25,730 I pel que es veu aquí que ~ / Descàrregues realment resol 160 00:07:25,730 --> 00:07:26,896 a / home / jharvard / descàrregues. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Així que / home / jharvard és el meu directori personal. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Així que podem cd punt punt. 165 00:07:39,400 --> 00:07:47,800 Ara punt punt és un directori especial que sempre es refereix a un directori amunt. 166 00:07:47,800 --> 00:07:51,730 Així que si estic a ~ / descàrregues, llavors punt cd punt em portarà a titlla. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Què pensem punt punt cd em portarà a ara? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 Em va a portar a / home. 171 00:08:00,570 --> 00:08:04,450 Així titlla pel directori de treball d'impressió, Jo estic ara / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 un directori des que, Ara diu aquí / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Ara punt punt cd. 176 00:08:17,180 --> 00:08:20,910 Ara estic en el directori arrel, i no pots fer-ho de nou. 177 00:08:20,910 --> 00:08:23,340 Et quedes a la directori arrel per sempre. 178 00:08:23,340 --> 00:08:26,700 El directori arrel té un munt de coses que, si voleu cercar a, 179 00:08:26,700 --> 00:08:27,410 vostè pot. 180 00:08:27,410 --> 00:08:29,700 Per exemple, si em vaig en bin, que conté 181 00:08:29,700 --> 00:08:35,789 tots aquests binaris, com ara ls, i cd, i totes aquestes coses. 182 00:08:35,789 --> 00:08:38,630 Així que aquestes comandes han de existir en algun lloc en el sistema, 183 00:08:38,630 --> 00:08:40,820 i està en el directori / bin. 184 00:08:40,820 --> 00:08:44,530 Però gairebé tot el que fas és serà del seu directori personal. 185 00:08:44,530 --> 00:08:49,490 I cd sense arguments de cap tipus, es podria dir cd ~, no cal. 186 00:08:49,490 --> 00:08:51,810 cd portarà vostè de nou al seu directori personal. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Una darrera. 189 00:08:54,230 --> 00:09:00,200 cd - va a portar de tornada a l'últim directori que vostè estava a. 190 00:09:00,200 --> 00:09:04,080 Així que només cd'd dues vegades seguides, així que el meu últim directori era el directori d'inici. 191 00:09:04,080 --> 00:09:11,520 Si vaig a retallar bin, i ara anirem cap amunt i cap a l'usuari. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Quota d'usuari. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Anem a anar a la quota d'usuari. 196 00:09:15,940 --> 00:09:17,140 Ara estic ara en la quota d'usuari. 197 00:09:17,140 --> 00:09:19,320 cd -, de tornada a bin. 198 00:09:19,320 --> 00:09:22,980 Així que això es posa particularment útil quan tener-- i que canviarà. 199 00:09:22,980 --> 00:09:25,660 Així que la quota d'usuari, de nou bin, compartir bin. 200 00:09:25,660 --> 00:09:27,250 >> Així que això es posa útil. 201 00:09:27,250 --> 00:09:33,150 Vostè pot notar que té molts, molts, molts directoris niats. 202 00:09:33,150 --> 00:09:37,370 I que vols fer alguna cosa ràpida real en un directori superior. 203 00:09:37,370 --> 00:09:40,330 Vostè va a aquest directori, faci canvis i coses per l'estil, 204 00:09:40,330 --> 00:09:42,400 i ara vol anar tornar a on estaves. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Sempre estic frustrat quan se m'acut anar 207 00:09:47,320 --> 00:09:49,630 a aquest directori jo volia fer el treball en. 208 00:09:49,630 --> 00:09:52,670 Sempre em sento frustrat quan ho vaig fer en dos passos en lloc d'un sol pas, 209 00:09:52,670 --> 00:09:55,715 perquè això significa que cd - va posar en aquesta ubicació intermèdia 210 00:09:55,715 --> 00:09:57,010 lloc d'on vull anar. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Així que veiem tots els arxius de llista. 213 00:10:01,450 --> 00:10:03,300 Sabem com moure fins al moment. 214 00:10:03,300 --> 00:10:09,900 Així que ara anem a parlar de l'edició d'arxius. 215 00:10:09,900 --> 00:10:18,790 Així que en aquest curs, vostè és gairebé Sempre s'espera que utilitzar gedit. 216 00:10:18,790 --> 00:10:24,410 Si vols, pots fer el següent pas i començar a aprendre un text de línia d'ordres 217 00:10:24,410 --> 00:10:25,240 editor. 218 00:10:25,240 --> 00:10:27,560 Així hi ha diverses opcions. 219 00:10:27,560 --> 00:10:31,760 >> I els que són, probablement, serà d'interès per a vostè, 220 00:10:31,760 --> 00:10:35,340 tenim Nano, Vim, Emacs i. 221 00:10:35,340 --> 00:10:40,196 Així Nano és als principiants línia d'ordres editor de text. 222 00:10:40,196 --> 00:10:42,985 Així Nano anem a blah.c he creat abans. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 És només aquest fitxer C estàndard. 225 00:10:46,480 --> 00:10:51,540 I veus un munt de coses passant a la part inferior de la pantalla, 226 00:10:51,540 --> 00:10:54,100 i pel que sembla blah.c conté el codi C. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Així que en aquest editor en particular, el que està dient en el bottom-- 229 00:11:00,330 --> 00:11:06,290 ara aquest símbol d'intercalació, veiem aquest ^ G, X ^, ^ S. 230 00:11:06,290 --> 00:11:10,310 Així que en gairebé tots context en el qual es veu, 231 00:11:10,310 --> 00:11:13,530 és possible que vegi aquest símbol d'intercalació a altres llocs en línia, sobre el desbordament de la pila, 232 00:11:13,530 --> 00:11:14,450 alguna cosa per l'estil. 233 00:11:14,450 --> 00:11:16,970 Gairebé sempre es refereix a controlar. 234 00:11:16,970 --> 00:11:21,590 Així que per sortir del que vull fer Control de Control de X. X, surt. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 I puc utilitzar el meu fletxa tecles per moure. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Tingueu en compte que no puc apuntar i fer clic fàcilment. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Cal utilitzar la fletxa tecles per moure. 241 00:11:35,010 --> 00:11:36,950 Pot existir un entorn per apuntar i fer clic. 242 00:11:36,950 --> 00:11:40,000 >> Però farem alguns canvis. 243 00:11:40,000 --> 00:11:42,100 Ara el Control X per anar de sortida. 244 00:11:42,100 --> 00:11:44,120 Dirà Guardar memòria intermèdia modificat. 245 00:11:44,120 --> 00:11:47,900 Ara l'indicador, i per a si, n per no. 246 00:11:47,900 --> 00:11:49,900 Control C per cancel·lar. 247 00:11:49,900 --> 00:11:50,780 Només diré que sí. 248 00:11:50,780 --> 00:11:51,709 Nom per escriure arxius. 249 00:11:51,709 --> 00:11:53,500 El valor per defecte és l'arxiu que ja és. 250 00:11:53,500 --> 00:11:54,230 Hit Intro. 251 00:11:54,230 --> 00:11:54,740 Okay. 252 00:11:54,740 --> 00:11:58,580 Ara he acaba d'editar aquest arxiu, guardat, i es va canviar. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Així Nano és el més fàcil editor de text acostumar. 255 00:12:03,000 --> 00:12:05,520 Les alternatives són Vim i Emacs. 256 00:12:05,520 --> 00:12:11,250 Aquests són els editors de text de nivell superior que tenen una corba d'aprenentatge molt empinada. 257 00:12:11,250 --> 00:12:13,740 Així que la meva preferència personal és Vim. 258 00:12:13,740 --> 00:12:17,175 I té una àmplia varietat d'opcions. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 I una vegada que t'acostumes a ell, que mai 261 00:12:24,070 --> 00:12:26,900 vull anar a cap altre editor de text, ja que només 262 00:12:26,900 --> 00:12:29,590 tenir tantes coses disponible per a vostè en aquests, 263 00:12:29,590 --> 00:12:31,690 però es necessita una molt molt de temps per aprendre. 264 00:12:31,690 --> 00:12:36,000 Així que potser el que desitja forçar a tu mateix en aquest moment per acostumar-se a ell, 265 00:12:36,000 --> 00:12:38,130 però jo diria que val la pena. 266 00:12:38,130 --> 00:12:39,660 Però és difícil. 267 00:12:39,660 --> 00:12:41,220 >> I llavors Emacs. 268 00:12:41,220 --> 00:12:44,940 Jo sempre lluito en Emacs perquè Jo sé fer absolutament res. 269 00:12:44,940 --> 00:12:47,755 Pel que sembla, Emacs no és per defecte instal·lat en l'aparell. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Probablement anem a afegir que com unes instal·lacions per defecte. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Quan aprengui una de Vim o Emacs, no hi ha 274 00:13:02,390 --> 00:13:04,810 cap raó de pes per alguna vegada aprendre de l'altre, 275 00:13:04,810 --> 00:13:07,570 però és un estil completament diferent. 276 00:13:07,570 --> 00:13:10,460 Acceptar el que és l'edició d'arxius de text. 277 00:13:10,460 --> 00:13:13,374 >> AUDIÈNCIA: Si a vostè li toca Vim en aquest moment, com fer nosaltres-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB BOWDEN: Hi ha múltiples maneres en Vim, 280 00:13:20,800 --> 00:13:23,770 i hi ha tota tutorials sobre l'aprenentatge de Vim. 281 00:13:23,770 --> 00:13:27,390 Així que si vols passar a ser en mode d'inserció per tal 282 00:13:27,390 --> 00:13:29,930 per escriure text, que es pot escriba que de diverses maneres, 283 00:13:29,930 --> 00:13:31,610 però i és la manera d'entrar en la manera d'inserció. 284 00:13:31,610 --> 00:13:34,780 En o sortir de qualsevol dany especial la manera en què es trobi, només escapar. 285 00:13:34,780 --> 00:13:37,640 I només en bash Escape a aconseguir de qualsevol manera niats en el seu. 286 00:13:37,640 --> 00:13:40,360 No està malament, ara estic de tornada en la manera normal. 287 00:13:40,360 --> 00:13:43,790 >> I així, en mode normal, de dos punts. 288 00:13:43,790 --> 00:13:45,160 Vostè veu que apareix a la part inferior. 289 00:13:45,160 --> 00:13:46,240 I llavors q. 290 00:13:46,240 --> 00:13:52,600 Així q va a deixar de fumar si vostè ha fet canvis, que jo-- He fet canvis? 291 00:13:52,600 --> 00:13:54,180 He fet canvis pel que sembla. 292 00:13:54,180 --> 00:13:57,264 Així que si vostè ha fet canvis, que va a diu que vostè pot posar un signe d'exclamació. 293 00:13:57,264 --> 00:13:58,430 Vaig a dir-una explosió. 294 00:13:58,430 --> 00:14:02,040 Així que vostè pot posar una prohibició a només deixar sense fer res, 295 00:14:02,040 --> 00:14:04,520 o wq salvarà de còlon i deixar de fumar. 296 00:14:04,520 --> 00:14:06,580 Així w en general és escriure. 297 00:14:06,580 --> 00:14:08,300 Així que escriure el fitxer. 298 00:14:08,300 --> 00:14:09,810 Puc escriure i deixar de fumar. 299 00:14:09,810 --> 00:14:13,606 O vostè podria tenir només Slam qx, q explosió només 300 00:14:13,606 --> 00:14:16,230 per sortir-ne sense de qualsevol canvi que hagis realitzat prèviament. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Molt bé, així que ara anem a vaya-- podem crear arxius. 303 00:14:28,940 --> 00:14:30,890 Anem a començar l'eliminació d'arxius. 304 00:14:30,890 --> 00:14:35,450 I només vaig a tirar en un nou ordre ràpid, toc. 305 00:14:35,450 --> 00:14:38,200 Així que tocar foo. 306 00:14:38,200 --> 00:14:39,340 Barra tàctil. 307 00:14:39,340 --> 00:14:40,220 Toc Baz. 308 00:14:40,220 --> 00:14:42,810 Si ls I, ara veiem que hi ha aquests arxius. 309 00:14:42,810 --> 00:14:44,315 Són completament buit. 310 00:14:44,315 --> 00:14:47,178 Així que és només un toc fàcil camí d'un, [inaudible]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Dos, tècnicament només a estat ella, que actualitza les marques de temps. 313 00:14:54,640 --> 00:14:58,470 Així que qualsevol arxiu que es crea té una marca de temps associat amb ella. 314 00:14:58,470 --> 00:15:01,330 Així Baz va ser creat a 14 de setembre a les 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 És ara 16:22, de manera que si Toco baz nou, 317 00:15:06,670 --> 00:15:11,420 veure que era més baz recentment modificat a les 16:22. 318 00:15:11,420 --> 00:15:17,680 Però d'altra banda gairebé mai mirar les marques de temps d'arxius. 319 00:15:17,680 --> 00:15:20,490 Així que toqui, aquí només estic fent servir per crear alguns arxius ràpides. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Molt bé, així que ara és el rm comandament que ens preocupem per aquí. 322 00:15:27,400 --> 00:15:28,665 I podem rm esbroncada. 323 00:15:28,665 --> 00:15:31,000 Digui eliminar esbroncada arxiu buit regular. 324 00:15:31,000 --> 00:15:34,070 I podem escriure i, i ara és lleva. 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 Traieu arxiu buit ordinari Baz i tipus n per no. 328 00:15:38,620 --> 00:15:40,060 Ara no és remogut. 329 00:15:40,060 --> 00:15:41,240 Així bar i baz encara existeix. 330 00:15:41,240 --> 00:15:42,232 Foo s'ha anat. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Segueix parlant. 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 Així que el missatge molest aquí, treure empty-- regulars 336 00:15:50,370 --> 00:15:52,390 Què estàs fent allà baix? 337 00:15:52,390 --> 00:15:54,030 Traieu arxiu buit regular. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Així que si no volem ser molestat per aquest missatge, 340 00:16:01,610 --> 00:16:05,340 podem llançar en aquest -f bandera, i pel que és la força. 341 00:16:05,340 --> 00:16:11,330 I ara si em rm -f, que no dius què vols eliminar aquest arxiu. 342 00:16:11,330 --> 00:16:12,040 Simplement va a fer-ho. 343 00:16:12,040 --> 00:16:13,720 I ls, no veig bar allà. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Ara que és un potencialment ordre perillosa. 346 00:16:18,021 --> 00:16:19,020 Es tendeix a no massa dolent. 347 00:16:19,020 --> 00:16:22,240 Tornarem en un segon com que pot ser realment perillós. 348 00:16:22,240 --> 00:16:28,740 I anem a crear algun directori temporal. 349 00:16:28,740 --> 00:16:30,880 mkdir, un altre ordre. 350 00:16:30,880 --> 00:16:34,880 Així que és una ordre mkdir que fa que un directori. 351 00:16:34,880 --> 00:16:40,650 I ara per ls veiem aquesta bonica llum blau va destacar directori temporal. 352 00:16:40,650 --> 00:16:42,295 Puc cd a temp. 353 00:16:42,295 --> 00:16:44,590 I puc mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd a foo. bar mkdir. 355 00:16:46,330 --> 00:16:46,860 cd a la barra. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Així que veiem que podem obtenir fàcilment en alguns d'implantació molt profund. 358 00:16:54,300 --> 00:16:56,385 Ara, com puc eliminar un directori? 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 Així que si jo només intento recta rm, com ho vam fer amb un fitxer normal, 363 00:17:03,540 --> 00:17:06,420 bar rm va a dir no es pot treure la barra. 364 00:17:06,420 --> 00:17:07,569 És un directori. 365 00:17:07,569 --> 00:17:10,619 Hi ha un comandament especial per l'eliminació de directoris, alguna cosa així. 366 00:17:10,619 --> 00:17:12,900 Així barra rmdir. 367 00:17:12,900 --> 00:17:13,710 Ara bar s'ha anat. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, així que rmdir jo més o menys mai ús. 370 00:17:22,680 --> 00:17:32,220 La raó being-- ara anem a fer una barra de fitxer normal aquí. 371 00:17:32,220 --> 00:17:34,780 Boo Així rmdir. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Error en eliminar foo. 374 00:17:36,900 --> 00:17:38,420 Directori no buit. 375 00:17:38,420 --> 00:17:43,420 Així que no pots fer servir eliminar dir en un directori que té les coses en ella. 376 00:17:43,420 --> 00:17:44,830 >> Així que vostè té algunes opcions. 377 00:17:44,830 --> 00:17:49,780 Vostè pot anar a aquest directori, tregui tot manualment, i després sortir 378 00:17:49,780 --> 00:17:51,759 i rmdir directori. 379 00:17:51,759 --> 00:17:53,050 Això òbviament sona molest. 380 00:17:53,050 --> 00:17:55,000 Què passa si hi ha milers d'arxius en allà? 381 00:17:55,000 --> 00:17:58,119 Bé, podries rm *. 382 00:17:58,119 --> 00:17:59,410 Parlarem de * en un segon. 383 00:17:59,410 --> 00:18:00,870 Bàsicament, vol dir totes les coses. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Però millor encara, -r tan rm. 386 00:18:05,470 --> 00:18:10,220 Així rm -r-- en un munt de contextos, -R significa recursiu, 387 00:18:10,220 --> 00:18:13,810 que anem a parlar sobre el que mitjans recursius en diverses setmanes. 388 00:18:13,810 --> 00:18:18,630 Però, bàsicament, significa travessia la totalitat d'aquest directori 389 00:18:18,630 --> 00:18:20,190 i eliminar tot. 390 00:18:20,190 --> 00:18:24,420 >> Foo -r Així rm dirà baixar al directori foo? 391 00:18:24,420 --> 00:18:25,210 Sí. 392 00:18:25,210 --> 00:18:26,800 Traieu arxiu foo / bar buit regular? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Sí. 395 00:18:28,540 --> 00:18:29,760 Traieu directori foo? 396 00:18:29,760 --> 00:18:30,260 Sí. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Així que ara foo i tot en el seu interior s'ha eliminat. 399 00:18:35,020 --> 00:18:42,370 >> Ara que es pot aconseguir especialment molest cuando-- tocarem 1, toc 2, toc març. 400 00:18:42,370 --> 00:18:44,400 Podria tenir un munt d'arxius. 401 00:18:44,400 --> 00:18:49,060 Si volgués, podria crear milers d'arxius en aquí. 402 00:18:49,060 --> 00:18:53,340 I foo rm -r va a ser bastant molest. 403 00:18:53,340 --> 00:18:55,374 Sí, sí, sí, sí, sí, sí. 404 00:18:55,374 --> 00:18:57,540 Amb molts més arxius que veure ràpidament com moltes vegades 405 00:18:57,540 --> 00:18:58,581 Hauria d'escriure si. 406 00:18:58,581 --> 00:19:02,265 Bé, acabem de veure abans com podem desfer-se de la necessitat d'escriure, sí, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Així mkdir foo foo cd tàctil 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 Acceptar, per la qual cosa rm -rf foo va a esborreu a cegues foo per complet. 411 00:19:17,190 --> 00:19:17,960 No ràpida. 412 00:19:17,960 --> 00:19:18,650 No res. 413 00:19:18,650 --> 00:19:20,040 Foo s'ha anat. 414 00:19:20,040 --> 00:19:23,830 >> Així que jo tendeixo a utilitzar aquest comandar tot el temps. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Dit això, es tracta d'una ordre molt perillós, 417 00:19:27,830 --> 00:19:33,240 perquè si faig alguna cosa com això, no li demanarà. 418 00:19:33,240 --> 00:19:34,730 S'ha anat. 419 00:19:34,730 --> 00:19:40,140 I passa amb força freqüència, i fins i tot en els cursos de nivell més alt de CS. 420 00:19:40,140 --> 00:19:42,070 A vegades anem a veure alguna cosa que algú 421 00:19:42,070 --> 00:19:48,360 diu que accidentalment la nostra rm rf-ed casa meva directori i tots els de la meva conjunt P s'ha anat. 422 00:19:48,360 --> 00:19:52,422 I és devastador, però no hi ha pot d'escombraries. 423 00:19:52,422 --> 00:19:54,380 No hi ha no hi ha res perquè vostè pugui recuperar. 424 00:19:54,380 --> 00:19:55,330 Simplement s'ha anat. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Pitjor encara seria una mena rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Així que acabem de discutir aquest directori arrel. 429 00:20:01,140 --> 00:20:03,095 Porta a terme la totalitat de la arxius en el seu sistema. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Les coses tendeixen a ser bastant desordenat quan es treu coses com ls, 432 00:20:07,380 --> 00:20:10,280 i cd, i tot això. 433 00:20:10,280 --> 00:20:15,467 >> AUDIÈNCIA: Quina és la diferència entre rm, rf, i rm * 434 00:20:15,467 --> 00:20:16,300 ROB BOWDEN: Així rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: pregunta era quin és el diferència entre rm, rf, i rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB BOWDEN: Així rm *. 439 00:20:25,950 --> 00:20:31,910 Estrella a mitjans en general tots el contingut d'aquest directori. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Tractar de pensar en una altra formes de mostrar l'estrella. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Bé, en realitat l'estrella general significa trobar cap patró. 444 00:20:44,780 --> 00:20:54,930 Així que si tinc un arxiu anomenat dog1, dog2 tocar, tocar CAT1, toc cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Així ls * 1 va a imprimir i CAT1 dog1, perquè aquesta estrella pot ser omplert 447 00:21:02,110 --> 00:21:06,270 en el con-- un ha de ser-hi, però l'estrella pot ser gat o gos. 448 00:21:06,270 --> 00:21:07,247 És un comodí. 449 00:21:07,247 --> 00:21:08,580 Aquesta és la paraula que estic buscant. 450 00:21:08,580 --> 00:21:09,120 Comodí. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 O podria ls gos *, i Estic vaig arribar a veure dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 Així que aquests són una llista dels fitxers que coincideix amb aquest patró particular. 454 00:21:16,870 --> 00:21:18,150 Podeu fer servir ls d'aquesta manera. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * estrelles coincideix amb qualsevol cosa. 457 00:21:22,020 --> 00:21:25,710 Així que va a imprimir tots el contingut d'aquest directori 458 00:21:25,710 --> 00:21:27,290 ja que tots ells coincideixen. 459 00:21:27,290 --> 00:21:30,130 No va a imprimir qualsevol cosa en els directoris de nivell superior. 460 00:21:30,130 --> 00:21:38,680 Si tinc un subdirectori, foo, i tocar febrer 1 3-- de manera que ara si rm * estrelles, 461 00:21:38,680 --> 00:21:41,450 eliminar CAT1, cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 No es pot eliminar foo. 463 00:21:42,340 --> 00:21:43,090 És un directori. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Així estrella s'expandeix a tota la arxius en el directori. 466 00:21:50,340 --> 00:21:55,210 Així que tècnicament rm * és com dir CAT1 rm, cat2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Mentre -rf rm, tècnicament estrella faria aconseguim el que volem, però rm -rf-- 468 00:22:03,630 --> 00:22:06,090 si surto d'aquesta directori, temp -rf rm, 469 00:22:06,090 --> 00:22:08,890 això va a anar a la temperatura i eliminar de forma recursiva tot. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Així estrella és separada en que aquesta S'entén així que aquesta cosa por-- 472 00:22:21,060 --> 00:22:25,090 que estic corrent, aquesta cosa que m'està motivant per les ordres 473 00:22:25,090 --> 00:22:28,770 i després executar i fer ells, em criden a això la meva petxina. 474 00:22:28,770 --> 00:22:31,930 I així aquesta petxina és en si mateix un programa. 475 00:22:31,930 --> 00:22:35,010 I si jo volia, podria funcionar a / bin / bash. 476 00:22:35,010 --> 00:22:36,930 La closca es diu bash. 477 00:22:36,930 --> 00:22:39,340 I ara ens adonem d'una cosa ha canviat lleugerament, 478 00:22:39,340 --> 00:22:42,200 i això és perquè les meves preferències per la closca són una mica diferents. 479 00:22:42,200 --> 00:22:45,415 >> Però ara estic tècnicament córrer una petxina dins del meu closca original, 480 00:22:45,415 --> 00:22:49,570 i puc sortir d'aquesta closca, i ara Ja estic de tornada al meu petxina nivell superior. 481 00:22:49,570 --> 00:22:55,240 El propòsit de dir que és- l'estrella. 482 00:22:55,240 --> 00:22:59,020 Així que l'estrella és una cosa entès per bash. 483 00:22:59,020 --> 00:23:04,260 Així -rf rm, bandera -rf és entès per només rm. 484 00:23:04,260 --> 00:23:06,380 Se sap que quan vostè passar un -rf que 485 00:23:06,380 --> 00:23:09,520 la volen treure de forma recursiva tots els arxius sense fer soroll. 486 00:23:09,520 --> 00:23:13,960 L'estrella s'entén alguna cosa per bash que quan dius rm *, 487 00:23:13,960 --> 00:23:16,890 festa no dirà Hey rm *, retiri estrelles. 488 00:23:16,890 --> 00:23:21,010 Bash dirà rm * eliminar CAT1, cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Es va automàticament a ampliar tots els arxius en el directori. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> I de la mateixa manera accent és una altra símbol que Bash entén. 492 00:23:33,140 --> 00:23:37,130 Quan dius cd ~, cop s'expandeix que al seu directori. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Altres preguntes fins ara? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 Acceptar així que començarem a anar ràpid. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> La implementació del tabulador. 499 00:23:48,545 --> 00:23:49,670 Només per tirar per aquí. 500 00:23:49,670 --> 00:23:51,530 Molta gent no ho facis adonar-se d'això existeix. 501 00:23:51,530 --> 00:23:55,060 Així que si escric cd dow, jo vull entrar en les descàrregues. 502 00:23:55,060 --> 00:23:56,700 No necessito escriure nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Jo només puc colpejar Tab. 505 00:24:00,770 --> 00:24:03,794 Per tant, reconeix que Dow és un prefix que 506 00:24:03,794 --> 00:24:05,710 no coincideix amb res la resta en aquest directori, 507 00:24:05,710 --> 00:24:07,520 per la qual cosa es completarà per vostè. 508 00:24:07,520 --> 00:24:08,610 Ara puc entrar. 509 00:24:08,610 --> 00:24:10,110 >> També faig que de forma recursiva. 510 00:24:10,110 --> 00:24:11,205 Foo Així mkdir. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Anem a entrar en foo. 513 00:24:13,300 --> 00:24:14,830 bar mkdir. 514 00:24:14,830 --> 00:24:17,345 Així que tornar a casa directori, puc veure les descàrregues. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Ara pestanya colpejar de nou, passant automàticament a omplir foo. 517 00:24:21,860 --> 00:24:22,880 És l'únic directori. 518 00:24:22,880 --> 00:24:25,340 Fitxa Colpejar de nou, de forma automàtica va a omplir al bar. 519 00:24:25,340 --> 00:24:26,798 Així que ara estic a (~ Descàrregues / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Així que aquesta implementació del tabulador, quan vaig arribar a les hores d'oficina, 522 00:24:31,692 --> 00:24:33,400 i estic de peu sobre l'espatlla d'algú, 523 00:24:33,400 --> 00:24:40,470 i estan passant rm D-O-W-N-L-O-A-D-S, m'estic morint. 524 00:24:40,470 --> 00:24:41,990 Només pestanya, pestanya, pestanya, pestanya. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Així que definitivament fitxa utilitzada. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 I de la mateixa manera i baix, un munt de gent 529 00:24:49,840 --> 00:24:51,930 només que va passar amb mai han colpejat amunt i cap avall. 530 00:24:51,930 --> 00:24:54,870 Va a passar per l'anterior ordres, pel que si vostè acaba d'executar alguna cosa, 531 00:24:54,870 --> 00:24:58,300 i desitja executar de nou, només té capacitat fins a arribar-hi. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 Okay. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Tan ràpid, algunes altres coses. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Tornem a temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Crearem alguns arxius. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Així que aquí, només sóc anar a la llista d'algunes paraules. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 gos, gat, miau. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Anem a fer de gos, peix. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Així que ara és un representant molt ordres útils que 548 00:25:32,320 --> 00:25:37,820 utilitzar per buscar a tot arxius d'un text en particular, 549 00:25:37,820 --> 00:25:40,910 i tècnicament es pot fer realment expressions complexes perquè aquesta coincideixi. 550 00:25:40,910 --> 00:25:44,830 >> Així que aquí, si em grep, i el Què vull cercar? 551 00:25:44,830 --> 00:25:49,130 Diguem que estic buscant per als gats, i Vull cercar tots aquests arxius. 552 00:25:49,130 --> 00:25:50,650 Així que com ho faig tots aquests arxius? 553 00:25:50,650 --> 00:25:51,900 Estrella. 554 00:25:51,900 --> 00:25:54,939 Així que en un arxiu, tinc gat. 555 00:25:54,939 --> 00:25:56,980 Probablement podria tenir anomenat una mica millor, 556 00:25:56,980 --> 00:25:59,063 perquè això sembla números de línia o alguna cosa així. 557 00:25:59,063 --> 00:26:01,590 Però en l'expedient que tinc una línia amb el gat. 558 00:26:01,590 --> 00:26:04,160 A l'arxiu de dos tinc una línia amb el gat. 559 00:26:04,160 --> 00:26:07,280 Així que ara puc mirar un arxiu dins i veure oh sí, aquest arxiu tenia gat. 560 00:26:07,280 --> 00:26:10,210 Arxiu Avís 03:00 no va ser igualada perquè el gat no hi és. 561 00:26:10,210 --> 00:26:13,882 Puc grep per miol. 562 00:26:13,882 --> 00:26:14,840 Només presentar dos té miol. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Així que això es pot combinar, de nou, amb -r, que 565 00:26:20,640 --> 00:26:23,580 com he dit abans sovint significa recursiu. 566 00:26:23,580 --> 00:26:29,800 I pel que puc venir aquí, grep -r per a qualsevol instància de-- anem a editar 567 00:26:29,800 --> 00:26:32,010 aquest només per tirar un gat en allà. 568 00:26:32,010 --> 00:26:38,800 Així grep -r per a qualsevol instància de gat al llarg d'aquest directori. 569 00:26:38,800 --> 00:26:41,600 I ho farà de forma recursiva buscar els subdirectoris. 570 00:26:41,600 --> 00:26:43,940 Així que en baz, hi ha gat. 571 00:26:43,940 --> 00:26:45,570 En temp / 2, hi ha gat. 572 00:26:45,570 --> 00:26:47,960 I en temp / 1 hi ha gat. 573 00:26:47,960 --> 00:26:50,045 Així que això és buscar dins d'arxius. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Ara vostè també pot usar una troballa. 576 00:26:55,090 --> 00:26:59,640 I pel que trobar és específicament sobre a la recerca d'arxius amb un nom determinat. 577 00:26:59,640 --> 00:27:02,490 Així que farem una mica més. 578 00:27:02,490 --> 00:27:03,660 Anem a entrar en les descàrregues. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Toc dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Toc cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Toc cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Toc catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Per això vull trobar tot arxius amb gos en el nom. 589 00:27:23,810 --> 00:27:28,060 Així que trobar, i per al més llarg el temps mai vaig recordar 590 00:27:28,060 --> 00:27:33,760 com trobar funcionava, fins que, finalment, llegir alguna cosa que ho va fer tan clara. 591 00:27:33,760 --> 00:27:35,784 Així que trobar, automàticament recursiva. 592 00:27:35,784 --> 00:27:36,950 No ha de passar una -r. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Així que trobar punts. 595 00:27:39,110 --> 00:27:40,750 No hem parlat de punt encara. 596 00:27:40,750 --> 00:27:44,800 Mentre punt punt sempre significa un directori amunt. 597 00:27:44,800 --> 00:27:46,960 Dot sempre significa el directori actual. 598 00:27:46,960 --> 00:27:51,390 Així que podria rm -r en el punt mateixa manera que puc rm -rf *. 599 00:27:51,390 --> 00:27:53,140 En última instància, aconseguir la mateixa cosa. 600 00:27:53,140 --> 00:27:56,040 rm -rf punt es va a treure a tot el directori actual. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> Bé, que jo no vull fer-hi. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Però trobar punts. 605 00:28:04,320 --> 00:28:07,920 Així de buscar de forma recursiva corrent directori, i ara tot 606 00:28:07,920 --> 00:28:14,125 després d'això hi ha un munt de banderes això vostè utilitzar per excloure les coses des de la tornada. 607 00:28:14,125 --> 00:28:17,250 Així que trobar punts retorna tot el que pot trobar en el directori actual. 608 00:28:17,250 --> 00:28:19,700 Aquests són tots els arxius buscant recursivament. 609 00:28:19,700 --> 00:28:21,250 Anem a veure algunes de les persones en un segon. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Però en cas que vostè s'està preguntant com ho faig que, de manera de comando K, almenys 612 00:28:27,140 --> 00:28:29,660 en el meu terminal en el Mac va aclarir. 613 00:28:29,660 --> 00:28:34,660 Control de L generalment desapareix per a qualsevol tipus de terminal. 614 00:28:34,660 --> 00:28:36,480 També podeu escriure clar. 615 00:28:36,480 --> 00:28:38,410 I si alguna vegada tens en un estrany scenario-- 616 00:28:38,410 --> 00:28:42,790 que m'ha passat un parell temps-- on els colors de les seves indicacions 617 00:28:42,790 --> 00:28:46,590 estan tots en mal estat, o que no són capaços de veure res 618 00:28:46,590 --> 00:28:51,232 sent teclejat quan estàs escrivint, perquè de vegades com el color de fons s'estableix 619 00:28:51,232 --> 00:28:53,940 el mateix que el color de primer pla i ara no pots veure els tipus de lletra. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Restablir és una cosa que només es restableix a el fons negre per defecte, 622 00:28:59,830 --> 00:29:01,840 front blanc, o el que sigui s'estableix que ho facin. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Llavors, on estàvem? 625 00:29:04,790 --> 00:29:05,930 Troba punts. 626 00:29:05,930 --> 00:29:09,360 Així que ara tot aquest passat punt restringeix els resultats 627 00:29:09,360 --> 00:29:11,450 a alguna cosa que coincideix el patró donat. 628 00:29:11,450 --> 00:29:16,110 Així que aquí Vull cercar tot amb el nom de gat. 629 00:29:16,110 --> 00:29:17,300 No tinc res. 630 00:29:17,300 --> 00:29:18,390 Per què és aquest el cas? 631 00:29:18,390 --> 00:29:21,230 Bé, només estic buscant alguna cosa amb exactament el nom de gat. 632 00:29:21,230 --> 00:29:25,150 Si vull buscar alguna cosa que té un patró, i cat-- 633 00:29:25,150 --> 00:29:28,890 les cotitzacions tècnicament no són necessaris, però jo els estic llançant en aquest país. 634 00:29:28,890 --> 00:29:32,720 Així que ara que troba catcat perquè aquesta és l'única cosa que 635 00:29:32,720 --> 00:29:36,040 és una mica arbitrària patró seguit per gat. 636 00:29:36,040 --> 00:29:41,950 Puc posar el gat *, i ara trobar catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 perquè aquestes són totes les coses amb el gat al principi seguit per res. 638 00:29:45,245 --> 00:29:46,120 Pot combinar això. 639 00:29:46,120 --> 00:29:50,480 Si voleu cercar tots els arxius de C que vostè té, vostè pot ser que faci * .c. 640 00:29:50,480 --> 00:29:51,960 Hem blah.c aquí. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Així que això és una obra de recerca. 643 00:29:55,020 --> 00:29:55,770 Vostè pot buscar. 644 00:29:55,770 --> 00:29:58,270 Té un munt de banderes per més restriccions. 645 00:29:58,270 --> 00:30:00,960 I un d'ells, diguem -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Així obsolet. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, això no és el que vull. 650 00:30:06,550 --> 00:30:07,730 No -d. 651 00:30:07,730 --> 00:30:08,860 Escrigui d. 652 00:30:08,860 --> 00:30:13,820 Així que trobar punts - tipus d. 653 00:30:13,820 --> 00:30:17,760 Així que el que acabes de fer és que estic buscant per a tots els arxius del directori actual 654 00:30:17,760 --> 00:30:21,680 amb A-- d significa Tipus de directori directory--. 655 00:30:21,680 --> 00:30:24,430 Retorna tots els directoris en el directori actual. 656 00:30:24,430 --> 00:30:27,670 I tot tipus F és normal arxius, tots els directoris no. 657 00:30:27,670 --> 00:30:29,809 Així que això és només una exemple d'altres maneres 658 00:30:29,809 --> 00:30:32,350 pot restringir la cerca altra que només el nom del fitxer. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Ja han passat 30 minuts. 661 00:30:35,570 --> 00:30:36,848 Tot i això va. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Vaig a brisa a través. 663 00:30:38,132 --> 00:30:39,670 Es va a estar bé. 664 00:30:39,670 --> 00:30:41,460 >> ROB BOWDEN: Així que algunes altres coses. 665 00:30:41,460 --> 00:30:45,700 Ara Bang, signe d'exclamació. 666 00:30:45,700 --> 00:30:50,530 Així que en general vol dir: bé, anem a veure un exemple. 667 00:30:50,530 --> 00:30:52,230 Així! F, el que es va a fer? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Bé, sembla tenir repetit troballa de tipus punt f. 670 00:30:57,810 --> 00:30:59,240 Què passa! G? 671 00:30:59,240 --> 00:31:00,760 Això només grep gat -r *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Així que toques pot utilitzar per repetir una ordre de fet recentment. 674 00:31:05,720 --> 00:31:13,280 Així que si escric! Gre, que tornarà a executar les ordres que van començar amb sang més 675 00:31:13,280 --> 00:31:14,060 recentment. 676 00:31:14,060 --> 00:31:17,090 >> I es pot veure tots aquests ordres amb la història. 677 00:31:17,090 --> 00:31:17,880 Així la història. 678 00:31:17,880 --> 00:31:19,630 Aquestes són totes les ordres m'he trobat avui. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 I així, no és, literalment, restringit a dia d'avui, 681 00:31:23,130 --> 00:31:25,180 però jo només he utilitzat aquest aparell a partir d'avui. 682 00:31:25,180 --> 00:31:28,730 És la seva totalitat de la la història del seu shell bash, 683 00:31:28,730 --> 00:31:30,433 llevat que es talla en algun moment. 684 00:31:30,433 --> 00:31:33,474 AUDIÈNCIA: Què passa si ho fa historial d'ordres [inaudible] i un error 685 00:31:33,474 --> 00:31:35,430 en el resultat encara s'imprimirà ell-- 686 00:31:35,430 --> 00:31:44,110 >> ROB BOWDEN: Sí, si hi ha una error en un d'aquests commands-- 687 00:31:44,110 --> 00:31:48,090 així que anem a dir, que és un comandament d'error no trobat. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Segueix apareixent en la història. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Bé. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Altres preguntes sobre qualsevol cosa? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Així que això és explosió. 696 00:32:00,300 --> 00:32:04,230 >> Ara, comanda realment útil, home. 697 00:32:04,230 --> 00:32:07,750 Així que li dóna la manual per a un ordre determinat. 698 00:32:07,750 --> 00:32:11,640 Així que diguem que man ls, per la qual això m'està mostrant ls. 699 00:32:11,640 --> 00:32:13,400 En ell s'enumeren els continguts de directori. 700 00:32:13,400 --> 00:32:17,150 I aquí és on jo veig que hi ha aquestes són les diverses banderes que existeixen. 701 00:32:17,150 --> 00:32:21,340 Així que veiem que ls -l existeix si haguéssim de llegir això. ls -l 702 00:32:21,340 --> 00:32:26,150 em dóna aquesta llista completa de la directori amb qui posseeix l'arxiu, 703 00:32:26,150 --> 00:32:29,750 la mida del fitxer, la la marca de temps modificat. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Així ls -a és un altre que et poden utilitzar realment alguna cosa freqüència. 706 00:32:34,980 --> 00:32:38,130 -al és la meva bandera més comú d'aquest últims ls. 707 00:32:38,130 --> 00:32:42,520 >> Així -a, notar que hi ha molt més arxius que un simple ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 Què hi ha en comú amb tots aquests arxius? 710 00:32:46,170 --> 00:32:47,790 Comencen amb un punt. 711 00:32:47,790 --> 00:32:54,710 Així que això és una convenció en Linux que els arxius que comencen amb un punt estan ocults. 712 00:32:54,710 --> 00:32:58,330 Així que només vol dir que quan acabem de ls rectes, 713 00:32:58,330 --> 00:33:04,170 o que estem buscant aquest directori usant l'equivalent cercador, o la de Windows 714 00:33:04,170 --> 00:33:07,250 Equivalent Explorer, que no volen veure aquests fitxers punt. 715 00:33:07,250 --> 00:33:09,680 Ells només contaminen la visió de les coses. 716 00:33:09,680 --> 00:33:11,790 Així que ells estan ocults a menys que vostè específicament 717 00:33:11,790 --> 00:33:14,250 sol·licitar-los amb una mena -a. 718 00:33:14,250 --> 00:33:18,920 Així que puc cd a .local, i veig que és en si mateix un directori amb 719 00:33:18,920 --> 00:33:22,220 un directori compartit, i aplicacions, i bla, bla, bla. 720 00:33:22,220 --> 00:33:24,520 Així que punt, els arxius només estan ocults. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> Acceptar, pel que altres més importants. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Tinc un parell que puc saltar. 725 00:33:32,000 --> 00:33:38,160 Anem a parlar de veritat sobre ràpida les coses de redirecció d'arxius. 726 00:33:38,160 --> 00:33:43,020 Així que hi ha una sèrie complexa totalitat de les coses que pots fer amb ells, 727 00:33:43,020 --> 00:33:47,204 però només per veure'ls, diguem, ressò. 728 00:33:47,204 --> 00:33:47,870 Un altre ordre. 729 00:33:47,870 --> 00:33:48,920 Comando realment ximple. 730 00:33:48,920 --> 00:33:50,710 Tot el que fa és imprimir el que li dic que ho faci. 731 00:33:50,710 --> 00:33:52,070 Així que tiro hola. 732 00:33:52,070 --> 00:33:53,850 Simplement es va fer ressò de saludar la pantalla. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Hola, món. 735 00:33:56,390 --> 00:33:57,890 Ecos hola món. 736 00:33:57,890 --> 00:34:02,650 >> Així que una ordre o un símbol que entén festa 737 00:34:02,650 --> 00:34:07,620 és més gran que aquest símbol, i que és la sortida a un símbol d'arxiu. 738 00:34:07,620 --> 00:34:10,940 Així que si la sortida I a aquest foo, hi ha ara un fitxer 739 00:34:10,940 --> 00:34:15,100 anomenat foo, a l'interior de que és hola món. 740 00:34:15,100 --> 00:34:18,489 Llavors noto que quan em faig ressò hola canonada món en foo, 741 00:34:18,489 --> 00:34:19,980 que no trobo hola món. 742 00:34:19,980 --> 00:34:22,630 En el seu lloc, es va posar en arxiu foo. 743 00:34:22,630 --> 00:34:25,340 I un altre ordre només per tirar a vostè, gat. 744 00:34:25,340 --> 00:34:29,191 Aquesta és una manera fàcil de simplement completament llistar el contingut de l'arxiu 745 00:34:29,191 --> 00:34:31,440 de manera que jo no he d'obrir un editor de text per a veure-ho. 746 00:34:31,440 --> 00:34:34,159 Així el contingut de la arxiu foo són hola món. 747 00:34:34,159 --> 00:34:38,460 I vaig poder blah.c gat, els continguts són això. 748 00:34:38,460 --> 00:34:42,123 >> Una vegada més, aquests són els comandaments que, no ho fan esperen que vostè els té tots memoritzen. 749 00:34:42,123 --> 00:34:43,860 La idea és que els he vist. 750 00:34:43,860 --> 00:34:45,735 Potser vostè està treballant en alguna cosa, i ja està 751 00:34:45,735 --> 00:34:47,230 com que estic fart d'obrir aquest arxiu. 752 00:34:47,230 --> 00:34:50,120 Tant de bo pogués mirar en el contingut real ràpid. 753 00:34:50,120 --> 00:34:52,320 Vostè podria fer això, llavors mirar cap enrere i dir oh 754 00:34:52,320 --> 00:34:55,250 recordar alguna cosa així com el que existeix, i és el gat. 755 00:34:55,250 --> 00:35:00,630 >> Així que va a un arxiu. 756 00:35:00,630 --> 00:35:06,639 Ara no hi ha realment cap bona exemple de la lectura d'un arxiu encara. 757 00:35:06,639 --> 00:35:08,930 Què és una cosa que pren alguna cosa estàndard en? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Qualsevol simple comandament de Linux? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Quan arribem a la mateixa, en un parell setmanes tots els piece-- bé, 762 00:35:16,970 --> 00:35:20,470 Aquesta setmana teniu una peça en la qual començar a prendre la entrada de l'usuari. 763 00:35:20,470 --> 00:35:23,696 I en general s'escriu que l'entrada en el teclat. 764 00:35:23,696 --> 00:35:25,570 En lloc d'escriure que d'entrada en el teclat, 765 00:35:25,570 --> 00:35:30,950 en lloc vostè pot canalitzar des d'un fitxer de manera que quan ho fa Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 canonada des de qualsevol arxiu determinat, i que va a executar el programa de Mario. 767 00:35:35,200 --> 00:35:37,300 Sense esperar l'entrada en el teclat, sinó que és 768 00:35:37,300 --> 00:35:39,650 només va a llegir el línies de l'arxiu foo. 769 00:35:39,650 --> 00:35:45,230 >> Així més gran que foo posa en l'arxiu foo, i menys de foo 770 00:35:45,230 --> 00:35:50,170 pren les coses a partir de l'arxiu foo i el fa servir com a entrada a aquest programa. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 I només per veure-ho, també podríem ressò foo bar baz, i llavors, en lloc d'un 773 00:36:00,630 --> 00:36:03,850 més gran que, farem dos a foo. 774 00:36:03,850 --> 00:36:05,610 Què vol que faci? 775 00:36:05,610 --> 00:36:07,180 Simplement afegeix a l'arxiu. 776 00:36:07,180 --> 00:36:15,360 Així que en lloc d 'avís si jo trobo a bla foo i després foo gat, és només bla. 777 00:36:15,360 --> 00:36:18,285 Així que quan la sortida a un arxiu, sobreescriu completament aquest arxiu. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Si el que desitja és afegir, doble [? grau. ?] 780 00:36:22,740 --> 00:36:24,080 >> I finalment, és la canonada. 781 00:36:24,080 --> 00:36:29,590 Pipe Obté molt més complicat, on que pren la sortida d'una ordre 782 00:36:29,590 --> 00:36:32,320 i la injecta a la següent comanda. 783 00:36:32,320 --> 00:36:36,140 Així que una mica de cosa comuna, la història. 784 00:36:36,140 --> 00:36:37,920 Així, uf, no vull veure aquesta. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Mostreu-me tots els ordres en la meva història on grep-ed per alguna cosa. 787 00:36:44,485 --> 00:36:45,360 No, això és confús. 788 00:36:45,360 --> 00:36:50,360 Mostreu-me tots els ordres on trobo. 789 00:36:50,360 --> 00:36:52,360 Tots troben els comandaments que mai va córrer. 790 00:36:52,360 --> 00:36:55,050 >> Així la història. 791 00:36:55,050 --> 00:36:59,017 Ara sortides d'història a la detectar aquesta llista d'ordres, 792 00:36:59,017 --> 00:37:00,850 però jo no vull sortida a la pantalla. 793 00:37:00,850 --> 00:37:03,445 En el seu lloc vaig a canonada a grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Així que anem a grep per totes les instàncies de la troballa. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Així que ara en lloc de prendre grep l'entrada, en lloc de-- 798 00:37:17,000 --> 00:37:24,360 grep és capaç de manejar com input-- estem utilitzant grep una mica diferent aquí. 799 00:37:24,360 --> 00:37:29,550 Així que en lloc d'escriure la llista de coses que volien buscar 800 00:37:29,550 --> 00:37:31,070 i va dir grep està prenent com a entrada. 801 00:37:31,070 --> 00:37:34,810 Així que si jo només grep trobada, que espera que jo escric coses. 802 00:37:34,810 --> 00:37:37,661 Així gat hola trobar. 803 00:37:37,661 --> 00:37:38,160 Hola. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Troba. 806 00:37:40,930 --> 00:37:43,670 Noti que cada vegada que escric trobar reconeix que he escrit troballa. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Així que en lloc d'això, ho farà arxius de cerca per trobar. 809 00:37:49,540 --> 00:37:53,930 >> Així que la història ara va a generar una llista de tots els comandaments. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Estem posant que la producció, i estem alimentant a grep, 812 00:37:58,100 --> 00:38:00,180 i el que és escopir totes les instàncies de descobriment. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 La raó per la qual va dir que estaria confonent és si jo-- és encara confús. 815 00:38:05,570 --> 00:38:07,030 Si jo grep grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Observi que és gairebé sempre que mostra la comanda que acabo 818 00:38:11,130 --> 00:38:15,280 córrer perquè aquest comando sí que té grep dins d'ella. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, així que qualsevol pregunta sobre qualsevol cosa? 821 00:38:20,674 --> 00:38:22,340 I vaig a transferir la volta en aquest punt. 822 00:38:22,340 --> 00:38:24,690 Esperem que aquest és un bon visió general de tots els comandaments 823 00:38:24,690 --> 00:38:30,100 que vostè no necessita tenir memoritzen, però aquests constitueixen 824 00:38:30,100 --> 00:38:32,950 un sòlid 95% del que fer a la línia d'ordres. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 També cal tenir en compte que la línia d'ordres sí, cop és un llenguatge de programació, 827 00:38:39,140 --> 00:38:43,070 i així, quan et poses a això, vostè podria voler fer coses realment complexes. 828 00:38:43,070 --> 00:38:47,522 I pel que té coses com bucles, i IFS, i tots aquells 829 00:38:47,522 --> 00:38:50,230 que et vas a acostumar a amb els seus llenguatges de programació. 830 00:38:50,230 --> 00:38:53,660 Però això és més enllà de la àmbit d'aplicació d'aquesta secció. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, així que no hi ha preguntes? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Cap? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Vas A-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: puc fer-ho en la meva, si vols. 837 00:39:01,158 --> 00:39:02,626 Podem veure què passa. 838 00:39:02,626 --> 00:39:03,750 ROB BOWDEN: Off a Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Vostè és un acte difícil de seguir, Rob. 841 00:39:07,504 --> 00:39:08,920 Vostè vol que jo encenc amb vostè? 842 00:39:08,920 --> 00:39:10,246 O que tens, a D'acord. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Vaig a tractar de no bastant ser tan llarg hi. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Anem a veure si aquesta voluntat treballar la manera que jo vull que faci. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Potser? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Jaja! 851 00:39:28,296 --> 00:39:28,796 Sí. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Així que només vaig a anar molt ràpid a través de variables, bucles, condicionals, 854 00:39:34,066 --> 00:39:35,440 i una mica en el compilador. 855 00:39:35,440 --> 00:39:38,570 Si vostè té preguntes en qualsevol moment, per favor em detingui. 856 00:39:38,570 --> 00:39:42,750 Aquests nois em van a recordar a repetir la teva pregunta en el cas que m'oblidi, 857 00:39:42,750 --> 00:39:44,210 però no ha de ser massa dolent. 858 00:39:44,210 --> 00:39:45,850 >> Així les variables, sí. 859 00:39:45,850 --> 00:39:48,060 No tenim a ningú de la seva Peces d'Scratch aquí. 860 00:39:48,060 --> 00:39:50,440 Estic segur que la majoria de vostès, si vostè tenia algun tipus de joc 861 00:39:50,440 --> 00:39:53,810 que va crear amb Scratch, que tenia fer un seguiment d'una cosa així com la puntuació, 862 00:39:53,810 --> 00:39:55,870 o el temps, o alguna cosa per l'estil. 863 00:39:55,870 --> 00:39:58,080 Així que els de color taronja brillant peces que veiem allà 864 00:39:58,080 --> 00:40:02,630 són només la forma de les ratllades les variables, i que sens dubte 865 00:40:02,630 --> 00:40:04,640 ser l'ús de variables a través dels seus programes. 866 00:40:04,640 --> 00:40:07,350 Si no ho ets, no estic realment segur del que estàs fent. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Però de totes maneres, gran cosa, la definició de les variables. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Amb C cada variable té tenir un tipus declarat, 871 00:40:16,970 --> 00:40:22,090 així que li vaig donar una molt una de general a la part superior. 872 00:40:22,090 --> 00:40:24,045 Així que vostè tindrà la seva escriure i després el que sigui 873 00:40:24,045 --> 00:40:25,420 decideix trucar al seu variable. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Així que en aquest cas, el tipus en la seva llista de variables. 876 00:40:29,680 --> 00:40:31,400 >> Tenim tres exemples. 877 00:40:31,400 --> 00:40:34,439 Char d'algun grau, d'un A, que és el 878 00:40:34,439 --> 00:40:36,230 Estic segur que tots volen per obtenir en aquesta classe. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Podeu definir múltiples variables en una línia 881 00:40:40,670 --> 00:40:43,880 sempre i quan tots són del mateix tipus, que és el nostre segon exemple hi ha 882 00:40:43,880 --> 00:40:46,409 on vostè té tres les variables, x, i, i z. 883 00:40:46,409 --> 00:40:47,200 Són totes les carrosses. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 I llavors vostè pot també, en aquest últim exemple amb int puntuació i nombre 886 00:40:53,250 --> 00:40:56,510 dels equips, es pot inicialitzar ells allà mateix. 887 00:40:56,510 --> 00:41:01,270 >> Així, en l'exemple medi on ens només has flotador de x, i, z, 888 00:41:01,270 --> 00:41:02,730 els que encara no s'inicialitzen. 889 00:41:02,730 --> 00:41:04,140 Ells no tenen cap valor. 890 00:41:04,140 --> 00:41:05,600 O tenen valors d'escombraries. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 I si vostè intenta i s'utilitzin, el compilador gritarte. 893 00:41:10,790 --> 00:41:14,727 Has de tant declarar i inicialitzar les seves variables. 894 00:41:14,727 --> 00:41:16,310 Així que en aquest últim, que estem fent les dues coses. 895 00:41:16,310 --> 00:41:19,320 Estem declarant les variables de la puntuació i número d'equips, 896 00:41:19,320 --> 00:41:24,134 i estem inicialitzant ells, donant ells els seus valors inicials de 7 i 4 897 00:41:24,134 --> 00:41:24,675 respectivament. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Refredar. 900 00:41:27,190 --> 00:41:28,550 Tothom bé? 901 00:41:28,550 --> 00:41:29,470 Impressionant. 902 00:41:29,470 --> 00:41:31,690 >> Acceptar, de manera que algunes convencions. 903 00:41:31,690 --> 00:41:35,965 Si vostès han llegit a través de l'estil 50, aquests 904 00:41:35,965 --> 00:41:39,510 són només les coses que ens agradaria per a implementar en el seu estil. 905 00:41:39,510 --> 00:41:41,230 Noms tan significatiu. 906 00:41:41,230 --> 00:41:45,700 Si comença a cridar a les coses acaba de x, i, i z, especialment 907 00:41:45,700 --> 00:41:47,902 com et fiques en més llarg programes, ets 908 00:41:47,902 --> 00:41:49,610 probablement va a confondre a tu mateix i ser 909 00:41:49,610 --> 00:41:52,930 com ho és aquesta variable es refereix a. 910 00:41:52,930 --> 00:41:55,880 No tinc idea del que això significa. 911 00:41:55,880 --> 00:41:59,280 >> Així que si se suposa que ha de mantenir una puntuació, en diuen la puntuació. 912 00:41:59,280 --> 00:42:05,720 Si se suposa que ha de mantenir alguna resposta o donar lloc, donar-li un nom com aquest. 913 00:42:05,720 --> 00:42:09,920 Per bucles, que anem a entrar a la següent diapositiva, 914 00:42:09,920 --> 00:42:12,985 variables d'una sola lletra estan bé. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: I, J i K són només convencions per als bucles 917 00:42:18,449 --> 00:42:22,050 que tothom els espera a ser cridat i, j, i k. 918 00:42:22,050 --> 00:42:26,890 Vostè pot trucar a ells-- veig fila columna o fila de vegades cridada 919 00:42:26,890 --> 00:42:29,450 per dos bucles niats, i això és també una espècie d'estàndard. 920 00:42:29,450 --> 00:42:31,450 Però i i j és totalment conegut. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Sí, i j ets totalment bé. 922 00:42:33,670 --> 00:42:36,250 En nom de la claredat com en algunes de les seves sèries P, 923 00:42:36,250 --> 00:42:39,745 podria tenir sentit tenir més coses descriptius en allà només 924 00:42:39,745 --> 00:42:40,920 per realitzar un seguiment de la mateixa. 925 00:42:40,920 --> 00:42:45,100 Però crec que i, j, k i crec la gran majoria de nosaltres tot l'ús. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB BOWDEN: Amb aquests convencions, per la qual cosa l'estil és important. 928 00:42:50,340 --> 00:42:53,520 És un dels quatre eixos en la qual vostè està classificat, 929 00:42:53,520 --> 00:42:58,110 i és tan fàcil d'anar més el P fixat en el final i assegurar- 930 00:42:58,110 --> 00:42:59,770 que no hi ha errors estilístics. 931 00:42:59,770 --> 00:43:01,742 Així que assegureu-vos que està correctament tabulació. 932 00:43:01,742 --> 00:43:03,200 Assegureu-vos que les seves variables són nomenats. 933 00:43:03,200 --> 00:43:04,450 Deixa alguns comentaris. 934 00:43:04,450 --> 00:43:06,677 És molt fàcil d'aconseguir aquests punts. 935 00:43:06,677 --> 00:43:09,510 No ha de pensar en qualsevol cosa per tal d'aconseguir aquests punts. 936 00:43:09,510 --> 00:43:11,093 No ha de desxifrar res. 937 00:43:11,093 --> 00:43:12,640 És simplement fent que es vegi bonic. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: De fet, tenir estil 50, que 939 00:43:14,850 --> 00:43:17,920 li dirà on t'estàs ficant fins si t'estàs ficant fins a l'estil 940 00:43:17,920 --> 00:43:21,180 i li dirà exactament el que cal esmenar i com ha de arreglar-ho. 941 00:43:21,180 --> 00:43:23,900 També és a bo esmentar que és la política de curs 942 00:43:23,900 --> 00:43:27,200 que si vostè està a l'oficina hores i el seu codi és un desastre, 943 00:43:27,200 --> 00:43:30,200 podem rebutjar a ajudar que fins que es vegi més bonic. 944 00:43:30,200 --> 00:43:34,310 Així que comença a sortir a la dreta, mantenir estil coherent, 945 00:43:34,310 --> 00:43:37,100 també només farem les seves vides molt més fàcil quan 946 00:43:37,100 --> 00:43:38,730 vostè està tractant d'anar a través de depuració. 947 00:43:38,730 --> 00:43:41,510 Si vostè està tractant d'esbrinar on s'està perdent una clau 948 00:43:41,510 --> 00:43:44,890 i estan per tot el lloc, que està només fer la seva pròpia vida més difícil. 949 00:43:44,890 --> 00:43:47,217 Així que estar d'acord amb l'estil. 950 00:43:47,217 --> 00:43:48,800 Et prometo que va a fer la seva vida més fàcil. 951 00:43:48,800 --> 00:43:50,330 Es va a fer la vida més fàcil. 952 00:43:50,330 --> 00:43:51,869 Tot el món serà molt més feliç. 953 00:43:51,869 --> 00:43:52,910 I això és el que vols. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: El seu grau serà més gran. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Sí, i el seu grau. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Si el TF és com tu, tendeix a ser favorable. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Molt bé, i després només el segon punt aquí. 961 00:44:05,010 --> 00:44:06,300 Inicialitzacions consistent. 962 00:44:06,300 --> 00:44:09,605 Així com hem vist, es pot declarar i inicialitzar les coses. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Múltiples variables en la mateixa línia. 965 00:44:13,180 --> 00:44:17,930 Una cosa que ens agradaria que no de fer és declarar algunes variables 966 00:44:17,930 --> 00:44:21,360 i no inicialitzar ells en el mateix línia que està inicialitzant altres. 967 00:44:21,360 --> 00:44:23,960 >> Així que en el cas que va fer no té cap sentit, 968 00:44:23,960 --> 00:44:29,050 tenim l'exemple aquí on estem declarant ints 969 00:44:29,050 --> 00:44:31,180 en les variables de quarts monedes de deu centaus i penics, 970 00:44:31,180 --> 00:44:34,214 però quarts i centaus no tenen cap valor inicial. 971 00:44:34,214 --> 00:44:36,630 No els hem inicialitzat, però al bell mig hi ha 972 00:44:36,630 --> 00:44:38,600 ja inicialitzat monedes de deu centaus a 0. 973 00:44:38,600 --> 00:44:41,650 Així que, o fer cambres, monedes de deu centaus, monedes d'un cèntim. 974 00:44:41,650 --> 00:44:43,170 O quartes parts són iguals 0. 975 00:44:43,170 --> 00:44:43,930 Dimes equivalen a 0. 976 00:44:43,930 --> 00:44:46,810 Centaus igualen 0, o el que sigui aquests valors inicials són. 977 00:44:46,810 --> 00:44:49,800 >> Cosa gran amb estil, ser coherent. 978 00:44:49,800 --> 00:44:51,050 En cas de dubte, ser coherent. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Però seguir la nostra guia d'estil també. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Refredar. 983 00:44:55,317 --> 00:44:56,150 Tothom bé allà? 984 00:44:56,150 --> 00:44:57,566 >> AUDIÈNCIA: On és la guia d'estil? 985 00:44:57,566 --> 00:45:00,800 ALLISON: La guia d'estil és en-- quin és el lloc web? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Jo crec que és manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Estil? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Estil. 990 00:45:06,390 --> 00:45:06,920 Sí. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Sí. 992 00:45:07,520 --> 00:45:10,150 Per tant el dubte, on és l'estil 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Sí? 995 00:45:13,639 --> 00:45:16,880 >> AUDIÈNCIA: Si estem definint les variables, ¿està bé 996 00:45:16,880 --> 00:45:28,145 si posem com [inaudible] com int puntuació i després int meta. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Així que diria que ara que hem ha de definir junts? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: tant el dubte, en cas de té codi redundant 1000 00:45:37,640 --> 00:45:40,940 quan s'està definint variables com int puntuació i 1001 00:45:40,940 --> 00:45:43,239 en la línia següent int joc? 1002 00:45:43,239 --> 00:45:46,030 ROB BOWDEN: Hi ha definitivament casos en què el codi redundant és dolent. 1003 00:45:46,030 --> 00:45:47,738 Jo no ho consideraria que el codi redundant. 1004 00:45:47,738 --> 00:45:50,970 Jo gairebé mai declaro múltiple variables en la mateixa línia de sempre. 1005 00:45:50,970 --> 00:45:53,736 I en tot cas, és perquè usualment deixo algun tipus de comentari 1006 00:45:53,736 --> 00:45:55,235 explicant el que la variable és per. 1007 00:45:55,235 --> 00:45:57,582 Així que vaig a dir int puntuació slash slash. 1008 00:45:57,582 --> 00:45:59,350 Realitza un seguiment del que sigui. 1009 00:45:59,350 --> 00:46:00,710 En tala total de barra. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Així que és molt més basta d'aquesta manera per posar a tots en la mateixa línia. 1012 00:46:06,455 --> 00:46:08,080 Jo mai vaig posar en la mateixa línia. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Em sento com si fos preferència personal en aquest punt. 1014 00:46:10,580 --> 00:46:14,900 >> AUDIÈNCIA: Això va per de bucles i coses també? 1015 00:46:14,900 --> 00:46:15,900 ROB BOWDEN: Igual que a l'interior? 1016 00:46:15,900 --> 00:46:18,282 Igual que int i és igual a 0 per comes longitud és igual a alguna cosa? 1017 00:46:18,282 --> 00:46:19,490 Que vostè no té una elecció. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Amb els bucles de la inicialització parcialment: pel que podria només haver vist 1020 00:46:25,910 --> 00:46:31,520 int i és igual a 0 i punt i coma menys que en mengi i plus plus. 1021 00:46:31,520 --> 00:46:33,820 Això int i és igual a 0, tècnicament també pot 1022 00:46:33,820 --> 00:46:35,770 fem el que hem vist abans amb la sintaxi coma. 1023 00:46:35,770 --> 00:46:39,790 int i és igual a 0 coma j és igual a 3 coma k és igual a 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Vostè no té l'opció de dividir que en múltiples línies, 1026 00:46:44,320 --> 00:46:46,530 i això és normal. 1027 00:46:46,530 --> 00:46:47,780 En veure que no està bé. 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 Bé, segue convenient en bucles. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Així que sí, aquí tenim alguns exemples de bucles que vostès va veure en scratch. 1033 00:46:58,980 --> 00:47:01,550 I, per descomptat, tots aquests només pot ser recreat en C. 1034 00:47:01,550 --> 00:47:04,610 I ells bàsicament li permeten repetir alguns secció de codi 1035 00:47:04,610 --> 00:47:06,740 fins que una certa condició es compleix, el que anem a 1036 00:47:06,740 --> 00:47:09,198 entrar a la dreta després de parlar sobre els bucles amb els condicionals. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Així que tenim tres tipus principals. 1039 00:47:12,570 --> 00:47:17,500 Perquè, mentre, i fer, mentre que tots anem a passar per aquest moment. 1040 00:47:17,500 --> 00:47:18,860 Així que primer és per als bucles. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Així, per alguna condició, executar aquest bloc de codi. 1043 00:47:25,034 --> 00:47:27,200 Tenim aquest petit fresc diagrama aquí a la part inferior. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Però, bàsicament, que té en seva per, aquesta primera línia, 1046 00:47:32,310 --> 00:47:34,240 vostè va a inicialitzar les seves variables. 1047 00:47:34,240 --> 00:47:38,260 >> Així com hem parlat, i és igual a 0 o I és igual a 10. 1048 00:47:38,260 --> 00:47:40,010 El que vostè necessita que variable per a ser És 1049 00:47:40,010 --> 00:47:43,970 serà inicialitzat allà, declarat i inicialitzat a algun valor. 1050 00:47:43,970 --> 00:47:46,760 Així que tenim una mica de condició que va 1051 00:47:46,760 --> 00:47:48,900 estar comprovant la nostra variables en contra d'alguna cosa. 1052 00:47:48,900 --> 00:47:55,220 Així que en el cas que el cas típic en què potser vostè vol aquesta secció de codi 1053 00:47:55,220 --> 00:47:56,620 per executar cinc vegades. 1054 00:47:56,620 --> 00:48:02,380 Així tindríem int i és igual a 0, i vull que sigui quan i és menor que 5. 1055 00:48:02,380 --> 00:48:04,940 Així que la condició és només va a comprovar que cada vegada. 1056 00:48:04,940 --> 00:48:07,120 Si aquesta condició s'avalua a cert, és 1057 00:48:07,120 --> 00:48:11,162 va a executar el codi, que és exactament el que aquest petit diagrama està mostrant. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> I així ho executa. 1060 00:48:13,639 --> 00:48:15,430 S'actualitza una variable, que és el que veiem 1061 00:48:15,430 --> 00:48:21,020 en l'última part de la nostra per inicialització de bucle allà. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Així que seguiré fent això fins que no es compleix aquesta condició, 1064 00:48:26,030 --> 00:48:28,010 i després sortirà el bucle i continuar 1065 00:48:28,010 --> 00:48:29,960 seguir endavant amb la resta del seu programa. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Tothom bé allà? 1068 00:48:33,620 --> 00:48:34,440 Refredar. 1069 00:48:34,440 --> 00:48:37,780 >> Així que aquí està un exemple, molt similar a alguna cosa que acabo de parlar. 1070 00:48:37,780 --> 00:48:42,030 Així que només volem imprimir això és CS50 10 vegades. 1071 00:48:42,030 --> 00:48:44,540 Així que ja veus que aquí tenim nostra per, a continuació, ens 1072 00:48:44,540 --> 00:48:47,450 inicialitzar la variable i sigui igual a 0. 1073 00:48:47,450 --> 00:48:50,610 La nostra condició és la comprovació que és menys de 10. 1074 00:48:50,610 --> 00:48:55,210 Així que avaluar veritable quan per primera vegada començar, i després actualitza la nostra variable 1075 00:48:55,210 --> 00:48:58,985 cada vegada que s'executa realment i imprimeix aquest és CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 I acabarà després de 10 vegades. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Refredar. 1080 00:49:04,070 --> 00:49:07,130 >> Així, mentre que els bucles són fins a la pròxima. 1081 00:49:07,130 --> 00:49:12,400 I com es pot veure aquí, només tenim alguns, mentre que aquesta pregunta condición--? 1082 00:49:12,400 --> 00:49:15,238 >> AUDIÈNCIA: Com puc saltar en realitat no un nombre, 1083 00:49:15,238 --> 00:49:19,030 però dos nombres [inaudible] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: tant el dubte era com pot vostè actualitzar la variable de més d'un 1085 00:49:23,390 --> 00:49:24,070 a la vegada. 1086 00:49:24,070 --> 00:49:26,860 Així que a més Plus actualització en un cada vegada. 1087 00:49:26,860 --> 00:49:32,310 Si li agradaria actualitzar-lo per 2, vostè podria fer més i és igual a 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB BOWDEN: Has vist més iguals en conferència encara? 1089 00:49:34,526 --> 00:49:35,442 >> AUDIÈNCIA: [inaudible]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: És efectivament el el mateix que i és igual i més 2. 1092 00:49:42,110 --> 00:49:46,130 Així que prendrà i actualitzar per dos cada vegada. 1093 00:49:46,130 --> 00:49:49,432 Plus iguals és només una mica que anomenem sucre sintàctica. 1094 00:49:49,432 --> 00:49:52,390 ROB BOWDEN: Sí, els que hi ha per gairebé tots els operadors aritmètics. 1095 00:49:52,390 --> 00:49:55,830 Vegades, així que potser a es duplicaria el nombre. 1096 00:49:55,830 --> 00:50:02,590 j bretxa és igual a 3 és el mateix com j és igual a j dividit per 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: o menys és igual a 2 ho faria i disminuir per dos cada vegada. 1098 00:50:07,399 --> 00:50:08,565 ROB BOWDEN: Fins i tot iguals mod. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Vostè no ha vist els operadors bit a bit, però és igual d'intercalació i signe igual, 1101 00:50:13,270 --> 00:50:14,560 tots aquells existeixen. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Així que un munt de vegades, sobretot amb el seu primer parell de conjunts de P, 1103 00:50:19,480 --> 00:50:22,527 vostè estarà probablement incrementant per un, així que a més de més, j plus plus 1104 00:50:22,527 --> 00:50:24,610 són totes les coses que vas ser típicament usant. 1105 00:50:24,610 --> 00:50:28,240 Però aquesta condició actualització totalment sota el seu control. 1106 00:50:28,240 --> 00:50:32,310 Pot actualitzar-lo per qualsevol increments o de qualsevol manera que vostè decideix. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Potser fins i tot vol que sigui un nombre aleatori de vegades. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Però sí, hi ha un munt de coses que vostè pot fer amb això. 1111 00:50:39,580 --> 00:50:41,280 No està limitat a i plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB BOWDEN: Perquè ho sap que hi ha, sinó que també 1113 00:50:44,400 --> 00:50:46,960 existeix en una altra forma, plus plus i. 1114 00:50:46,960 --> 00:50:51,410 Així que si alguna vegada la recerca en línia i passar a veure plus plus i, 1115 00:50:51,410 --> 00:50:52,870 més o menys significa el mateix. 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 Bona? 1120 00:50:56,740 --> 00:50:57,240 Impressionant. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Així, mentre que els bucles. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Molt similar. 1125 00:51:02,570 --> 00:51:03,737 Vostè té alguna condició. 1126 00:51:03,737 --> 00:51:05,820 El més important a notar aquí és en lloc de tenir 1127 00:51:05,820 --> 00:51:08,540 tres parts diferents configurar, tenim un. 1128 00:51:08,540 --> 00:51:11,090 Només tenim alguna condició que està sent comprovat. 1129 00:51:11,090 --> 00:51:14,920 I de la mateixa manera, sempre que que la condició s'avalua com a veritable, 1130 00:51:14,920 --> 00:51:16,840 el codi es va a executar. 1131 00:51:16,840 --> 00:51:18,870 I si és fals, acabarà, moure 1132 00:51:18,870 --> 00:51:21,930 en la següent part del seu programa. 1133 00:51:21,930 --> 00:51:25,780 Així que això és una espècie del que és com-- un bon exemple de comprovació 1134 00:51:25,780 --> 00:51:27,215 per alguna condició normal? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Si bé és cert. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Vostè podria fer mentre cert. 1138 00:51:32,110 --> 00:51:33,510 Bé, 1 és igual a 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB BOWDEN: Vostè pot fer Rato-- només en lloc d'utilitzar un bucle for, 1141 00:51:37,642 --> 00:51:39,600 sempre es pot codificar una de bucle en un bucle while, 1142 00:51:39,600 --> 00:51:42,600 així que o més gran que 0 mentre i menys de 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 I llavors hem fer bucles while, que és ideal per a la validació de l'usuari, on 1146 00:51:50,640 --> 00:51:55,370 vol aconseguir una mica de l'usuari, veure si és vàlida, 1147 00:51:55,370 --> 00:51:57,060 i després continuar a partir d'aquí. 1148 00:51:57,060 --> 00:52:04,000 Així que una de les coses que ha de saber és amb un fer, mentre que és que es va a executar, 1149 00:52:04,000 --> 00:52:08,000 i llavors tornar a executar si es compleix aquesta condició. 1150 00:52:08,000 --> 00:52:11,240 >> Així que, probablement, la millor manera de fer això és només per veure un exemple aquí. 1151 00:52:11,240 --> 00:52:14,620 Així com acabo d'esmentar, l'usuari validació és realment useful-- 1152 00:52:14,620 --> 00:52:17,520 o fer mentre que són realment útil amb la validació de l'usuari. 1153 00:52:17,520 --> 00:52:19,730 Així que això és només va per tornar a provocar algun usuari 1154 00:52:19,730 --> 00:52:23,640 fins que entren un nombre positiu, el que podria ser útil per al conjunt de P 1155 00:52:23,640 --> 00:52:24,190 aquesta setmana. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 I així, en aquest cas, quan inicialment executar aquest programa, 1158 00:52:29,480 --> 00:52:32,260 que va a imprimir introdueixi un nombre positiu. 1159 00:52:32,260 --> 00:52:34,810 Es va a aconseguir una mica de l'entrada de l'usuari, 1160 00:52:34,810 --> 00:52:38,320 i després es va a comprovar que l'entrada en contra de la condició 1161 00:52:38,320 --> 00:52:39,500 que ha establert per a això. 1162 00:52:39,500 --> 00:52:41,030 >> Així que en aquest cas es va a comprovar. 1163 00:52:41,030 --> 00:52:44,190 Es dirà, OK, és la nostra entrada negativa, 1164 00:52:44,190 --> 00:52:47,175 o és 0 o negatiu, que seria vàlida. 1165 00:52:47,175 --> 00:52:48,300 Així que llavors seria re-indicador. 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 >> AUDIÈNCIA: És aquest el mateix llavors com un while si vostè acaba de copiar aquest codi 1169 00:52:54,720 --> 00:52:56,680 i el va posar [inaudible] while? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: tant el dubte era el faria aquest sigui el mateix que només un mentre 1172 00:53:05,160 --> 00:53:08,570 bucle si haguéssim de només copiar el bucle while anteriorment. 1173 00:53:08,570 --> 00:53:12,440 Així que en aquest cas, el bucle while és va a comprovar la condició primera. 1174 00:53:12,440 --> 00:53:15,300 Així que en aquest cas, si ho intentem escriure com només un bucle while, 1175 00:53:15,300 --> 00:53:18,010 diria mentre d'entrada és menor que un. 1176 00:53:18,010 --> 00:53:20,801 Però no tenim una entrada per a ella. 1177 00:53:20,801 --> 00:53:24,238 >> AUDIÈNCIA: Si [inaudible] mentre bucle que inclou aquest codi, 1178 00:53:24,238 --> 00:53:28,166 però llavors vostè fet front el codi per sobre de la bucle while també. 1179 00:53:28,166 --> 00:53:31,052 Vostè acaba de tenir aquest codi [Inaudible] while. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Seria el mateix, sí. 1181 00:53:32,760 --> 00:53:37,110 Així que vostè podria write-- en lloc de tenir un sí fer--. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Però això és més elegant. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Sí, això és més elegant. 1185 00:53:41,020 --> 00:53:44,560 Vostè pot entrar en el disseny i tot això, però sí, es pot fer totalment això. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Alguna altra pregunta? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 Acceptar, fresc. 1190 00:53:50,250 --> 00:53:55,540 >> Així que hem parlat molt sobre les condicions amb tots aquests llaços que tenim, 1191 00:53:55,540 --> 00:53:58,615 pel que en realitat estem ficant les condicions en les expressions booleanes. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Una vegada més, utilitza aquests productes en C, de manera que només tipus de transició 1194 00:54:03,440 --> 00:54:06,050 més de la interfície gràfica per realment codificació. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Refredar, de manera que un gran, si. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Bàsicament, només ens permet introduir una mica de lògica en el nostre programa i verificació 1199 00:54:17,070 --> 00:54:17,790 condicions sys. 1200 00:54:17,790 --> 00:54:22,150 Així que en aquest cas, està bé, n és més gran que 0? 1201 00:54:22,150 --> 00:54:24,070 Sí que ho és, pel que pot executar aquest. 1202 00:54:24,070 --> 00:54:28,060 És només la comprovació alguns condició que tens 1203 00:54:28,060 --> 00:54:33,565 vaig posar, que crec que tots estem còmode amb la comprovació de les condicions. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Refredar. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Així que si la resta és el seu altre, es pot dir bé, si això és cert, 1208 00:54:44,530 --> 00:54:46,150 fer això el primer. 1209 00:54:46,150 --> 00:54:48,720 En cas contrari, et vull per defecte i fer una altra cosa. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 De la mateixa manera que en aquest cas, o bé escollir un nombre positiu o un nombre negatiu. 1212 00:54:55,060 --> 00:54:56,500 Vostè només té dues opcions. 1213 00:54:56,500 --> 00:54:59,550 El necessita per executar independentment del que els seus entrades de l'usuari. 1214 00:54:59,550 --> 00:55:02,920 Així que es pot dir així, és més gran que 0? 1215 00:55:02,920 --> 00:55:03,480 Refredar. 1216 00:55:03,480 --> 00:55:04,480 Imprimir un nombre positiu. 1217 00:55:04,480 --> 00:55:06,153 Si no ho és, imprimir un negatiu. 1218 00:55:06,153 --> 00:55:06,960 Tothom bé? 1219 00:55:06,960 --> 00:55:14,920 >> I després una cosa és reconèixer és que si es compleix la condició si, 1220 00:55:14,920 --> 00:55:16,650 l'altre serà mai també executar. 1221 00:55:16,650 --> 00:55:19,210 Només un d'ells ho farà executar alhora. 1222 00:55:19,210 --> 00:55:20,410 Així que és una solució de compromís. 1223 00:55:20,410 --> 00:55:21,720 No arribar a tenir tant. 1224 00:55:21,720 --> 00:55:23,566 O tens la primera condició. 1225 00:55:23,566 --> 00:55:25,440 O tens el si o l'altra, no totes dues. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Que després pot fer que les coses encara més complicat, 1228 00:55:28,890 --> 00:55:31,060 perquè es pot fer si, en cas contrari, i després més. 1229 00:55:31,060 --> 00:55:32,810 Així que en aquest cas, tenir tres condicions. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 I de nou, només un d'ells és va a acabar sent executat. 1232 00:55:38,370 --> 00:55:41,030 Així que pot ser que es pregunti bé, què passa si vostè 1233 00:55:41,030 --> 00:55:45,510 tenir alguna cosa pot satisfer dos d'ells. 1234 00:55:45,510 --> 00:55:49,520 Potser el que vostè està introduint compleix tant la condició 1235 00:55:49,520 --> 00:55:51,811 per si i l'altre si. 1236 00:55:51,811 --> 00:55:53,060 L'única cosa que va a executar 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Tan aviat com es troba alguna cosa que compleix amb la condició que 1238 00:55:56,240 --> 00:55:59,790 avalua a veritable, això és el que que va a córrer i res més. 1239 00:55:59,790 --> 00:56:04,440 Així que si vostè tenia és aquest número entre 0 i 5 per al primer d'ells, 1240 00:56:04,440 --> 00:56:10,530 o és aquest número entre 3 i 5 per a l'altre si part, 1241 00:56:10,530 --> 00:56:15,550 i que d'entrada la number-- Vaig dir 0 i 5 i- abril. 1242 00:56:15,550 --> 00:56:18,110 Es va a colpejar a la primera. 1243 00:56:18,110 --> 00:56:20,960 Va a dir OK, això nombre està comprès entre 0 i 5. 1244 00:56:20,960 --> 00:56:22,480 Executar i se'n van. 1245 00:56:22,480 --> 00:56:25,340 Mai arribarà a aquesta segona opció. 1246 00:56:25,340 --> 00:56:26,394 Fresc? 1247 00:56:26,394 --> 00:56:27,250 Impressionant. 1248 00:56:27,250 --> 00:56:31,300 >> Acceptar també tenim sentències switch si Per obtenir encara més-- o ho sento, 1249 00:56:31,300 --> 00:56:31,965 interruptor està al costat. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 M'estic avançant a mi mateix aquí. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Una vegada més, si múltiples blocs on com acabo de dir 1254 00:56:39,210 --> 00:56:45,600 és pel que fa a trobar una condició que ha conegut i un if-else if-else, 1255 00:56:45,600 --> 00:56:46,630 deixa. 1256 00:56:46,630 --> 00:56:49,560 Si vostè necessita per comprovar múltiples coses, ets 1257 00:56:49,560 --> 00:56:53,000 voldrà usar això perquè comprovarà cada vegada que aquí. 1258 00:56:53,000 --> 00:56:58,060 Així que això s'executarà a través de i si que és més gran que o igual a 90, 1259 00:56:58,060 --> 00:56:59,160 que voleu imprimir això. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 I s'executarà a través de i comprovar tots i cadascun d'ells. 1262 00:57:03,600 --> 00:57:06,444 >> AUDIÈNCIA: Així que això seria més defectuós que [inaudible]. 1263 00:57:06,444 --> 00:57:07,735 Podria ser això com [inaudible]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: La pregunta es seria aquest buggy o fa això el que vols. 1266 00:57:15,740 --> 00:57:19,830 Realment depèn del que que vol del seu programa. 1267 00:57:19,830 --> 00:57:22,291 >> AUDIÈNCIA: Em refereixo a com si poses 90 a. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Si poses 90-- 1269 00:57:23,290 --> 00:57:24,206 AUDIÈNCIA: [inaudible]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: aneu a aconseguir dues coses. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: aneu a aconseguir dues coses. 1273 00:57:28,916 --> 00:57:29,420 Sí, dos. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB BOWDEN: Dos? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: No. 1277 00:57:34,580 --> 00:57:35,288 >> ROB BOWDEN: Quatre. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Si poses 90, que va a dir vostè va obtenir una A, que va rebre una B, que va rebre una C, 1280 00:57:40,070 --> 00:57:40,545 tens una D. 1281 00:57:40,545 --> 00:57:41,461 >> AUDIÈNCIA: [inaudible]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Dret. 1284 00:57:42,820 --> 00:57:44,778 Així que depèn del que desitjar de vostè programa. 1285 00:57:44,778 --> 00:57:47,050 A vegades és necessari comprovar diverses coses. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Vostè aconseguirà molt més profund en el que el bon disseny és la marxa cap endavant. 1288 00:57:55,270 --> 00:57:57,090 L'important a es donen compte és que aquest 1289 00:57:57,090 --> 00:58:01,090 comprovarà les quatre condicions aquí. 1290 00:58:01,090 --> 00:58:05,860 Mentre que si es tractés d'un if-else if-else si una altra cosa, seria colpejar aquest primer cas, 1291 00:58:05,860 --> 00:58:07,950 seria imprimir tens una A i per fer. 1292 00:58:07,950 --> 00:58:10,250 >> ROB BOWDEN: Fins i tot si decidit a canviar això a si 1293 00:58:10,250 --> 00:58:13,880 i major o igual a 90, si i major o igual a 80, 1294 00:58:13,880 --> 00:58:19,710 i menor o igual a 89, si n més gran que o igual a 70, 1295 00:58:19,710 --> 00:58:23,830 i n menor que o igual a 79, pel que serà correcta. 1296 00:58:23,830 --> 00:58:27,190 Això va a fer el que volem, però encara comprova cada això. 1297 00:58:27,190 --> 00:58:34,050 >> Així que mentre que en el primer escenari, si introduir 90 amb només si els altres si els altres si, 1298 00:58:34,050 --> 00:58:37,300 i entrem en el 90, a continuació, que va a corregir. 1299 00:58:37,300 --> 00:58:39,615 Es comprovarà la primera un, impressió que va rebre una A, 1300 00:58:39,615 --> 00:58:42,590 ometre tot, perquè ja trobat un que funcioni. 1301 00:58:42,590 --> 00:58:46,360 Tots els casos són mútuament excloents sobre la base de si els altres si la resta si. 1302 00:58:46,360 --> 00:58:48,630 Així que va a executar el en primer lloc si, a continuació, es fa. 1303 00:58:48,630 --> 00:58:49,790 Es va a anar fins al final. 1304 00:58:49,790 --> 00:58:52,400 >> Mentre que si canviem que això és el que jo era 1305 00:58:52,400 --> 00:58:54,204 dir amb menys d'o igual a 89. 1306 00:58:54,204 --> 00:58:55,620 Es va a revisar la primera. 1307 00:58:55,620 --> 00:58:56,560 Es va a imprimir. 1308 00:58:56,560 --> 00:58:58,010 Es va a verificar el segon. 1309 00:58:58,010 --> 00:58:59,010 No voleu imprimir. 1310 00:58:59,010 --> 00:58:59,910 Comprovi el tercer. 1311 00:58:59,910 --> 00:59:00,620 No voleu imprimir. 1312 00:59:00,620 --> 00:59:01,495 Comprovi el quart. 1313 00:59:01,495 --> 00:59:02,420 Ara voleu imprimir. 1314 00:59:02,420 --> 00:59:05,380 Així que en aquest cas, la persona si de versió, ja que aquests casos 1315 00:59:05,380 --> 00:59:09,120 són mútuament excloents, és un millor ús si una altra cosa si la resta si, 1316 00:59:09,120 --> 00:59:12,970 perquè això tindrà un menor nombre de controls de les condicions 1317 00:59:12,970 --> 00:59:14,750 d'aquesta versió. 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 Així que una altra cosa que puguem fer és sentències switch. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Bàsicament una sentència switch presa en alguna variable, 1323 00:59:25,270 --> 00:59:28,780 en aquest cas és n, i determina que el cas d'executar. 1324 00:59:28,780 --> 00:59:33,106 Així que aquest és també un on els seus casos ha de ser una mena de mútuament excloents. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Així doncs, en aquest cas, si nosaltres tenim un un, és 1327 00:59:37,940 --> 00:59:42,270 coincidirà amb el que variable-- qualsevol que sigui el valor de n 1328 00:59:42,270 --> 00:59:48,700 és un d'aquests casos, per la qual cosa 1, 2, o 3, i imprimir la línia corresponent. 1329 00:59:48,700 --> 00:59:51,870 >> I llavors, si vostè nota aquí, també tenim un defecte, 1330 00:59:51,870 --> 00:59:54,670 que es pot pensar en com de la seva persona. 1331 00:59:54,670 --> 00:59:58,510 Així que si has de triar qualsevol altre nombre més de 1, 2, i 3 en aquest cas 1332 00:59:58,510 --> 00:59:59,885 que només voleu imprimir vàlid. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Decidir quan utilitzar IFS front si vigilés davant els interruptors que està passant 1335 01:00:08,390 --> 01:00:12,590 de ser alguna cosa que vostès ho farà Vegi el disseny intel·ligent com comenci a escriure 1336 01:00:12,590 --> 01:00:15,270 programes més complicats, i no hi ha regles dures i ràpides 1337 01:00:15,270 --> 01:00:16,330 de quan usar-los. 1338 01:00:16,330 --> 01:00:17,890 Realment depèn del seu context. 1339 01:00:17,890 --> 01:00:18,590 >> ROB BOWDEN: I de la mateixa per llençar-lo per aquí 1340 01:00:18,590 --> 01:00:20,131 ja que és la secció més còmode. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Interruptors, tendeixen a ser: el que està limitat 1343 01:00:25,053 --> 01:00:27,430 en el nombre de maneres en què vostè pot usar-los, perquè passaria si, 1344 01:00:27,430 --> 01:00:30,100 la condició pot ser bastant qualsevol cosa que vulguis. 1345 01:00:30,100 --> 01:00:33,410 Amb els commutadors dels casos han de ser nombres, 1346 01:00:33,410 --> 01:00:37,770 o tècnicament poden ser caràcters, però caràcters, com veurem, són nombres només. 1347 01:00:37,770 --> 01:00:44,250 Així que han de ser nombres, però els interruptors són realment més eficient que si 1348 01:00:44,250 --> 01:00:50,060 més si la resta si, perquè fins i tot prenent l'exemple abans-- bé, 1349 01:00:50,060 --> 01:00:51,486 l'exemple de qualitat sembla bona. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Bé diguem que aquí, en comptes fem això com si una altra persona si la resta si escenari. 1352 01:00:57,080 --> 01:01:00,930 Així que si n és igual a és igual a 1, imprimir vostè va escollir un nombre baix. 1353 01:01:00,930 --> 01:01:04,490 Si un altre si n és igual és igual a 2, que va triar un nombre mitjà. 1354 01:01:04,490 --> 01:01:06,550 Perquè si els iguals és igual a 3, alta. 1355 01:01:06,550 --> 01:01:08,060 La resta no és vàlid. 1356 01:01:08,060 --> 01:01:09,820 >> Així que diguem que era el nostre escenari. 1357 01:01:09,820 --> 01:01:14,060 Així que diguem que entrem 4, de manera que esperem no vàlid. 1358 01:01:14,060 --> 01:01:17,410 La manera que si una altra cosa si la resta si l'enfocament es va a treballar és 1359 01:01:17,410 --> 01:01:18,740 comprova la primera condició. 1360 01:01:18,740 --> 01:01:19,776 No està satisfet. 1361 01:01:19,776 --> 01:01:21,150 Així, comprovem la segona condició. 1362 01:01:21,150 --> 01:01:21,940 No està satisfet. 1363 01:01:21,940 --> 01:01:23,023 Verifiqui la tercera condició. 1364 01:01:23,023 --> 01:01:23,640 No satisfet. 1365 01:01:23,640 --> 01:01:26,650 Així que ens anem a l'altra persona i imprimim vàlid. 1366 01:01:26,650 --> 01:01:30,169 >> La forma en què les obres de l'interruptor és que compila baix 1367 01:01:30,169 --> 01:01:31,960 en el que anem per trucar a una taula de salts. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 La idea de ser principal que quan entres en 4, 1370 01:01:37,120 --> 01:01:39,090 immediatament es pot anar a l'opció per defecte. 1371 01:01:39,090 --> 01:01:41,460 No és necessari per comprovar el matí em cas 1? 1372 01:01:41,460 --> 01:01:42,350 Nop no és això. 1373 01:01:42,350 --> 01:01:42,850 Cas 2? 1374 01:01:42,850 --> 01:01:43,240 Nop. 1375 01:01:43,240 --> 01:01:43,770 Cas 3? 1376 01:01:43,770 --> 01:01:44,270 Nop. 1377 01:01:44,270 --> 01:01:45,090 Defecte. 1378 01:01:45,090 --> 01:01:47,610 OK, això ha d'estar on volen, i després executar aquest. 1379 01:01:47,610 --> 01:01:49,590 No, immediatament salta a la predeterminada. 1380 01:01:49,590 --> 01:01:51,900 O entro 2, és immediatament va a anar a la 2 1381 01:01:51,900 --> 01:01:54,060 sense necessitat de passar pel cas 1. 1382 01:01:54,060 --> 01:01:57,820 >> Així que d'aquesta manera, realista avui en dia que és 1383 01:01:57,820 --> 01:02:00,250 no és que gran part d'un augment de l'eficiència. 1384 01:02:00,250 --> 01:02:02,880 En general, els ordinadors són bastant ràpid, i això no és tan gran. 1385 01:02:02,880 --> 01:02:07,270 Però és el cas que interruptors són més ràpids. 1386 01:02:07,270 --> 01:02:10,380 Si vostè està realment tractant per optimitzar, utilitzar un interruptor. 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 I després tenim operador ternari. 1390 01:02:15,270 --> 01:02:19,470 Així que sé que he esmentat abans la paraula sucre sintàctica. 1391 01:02:19,470 --> 01:02:24,160 Així que és només les coses que fan el seu codi molt més concisa. 1392 01:02:24,160 --> 01:02:25,590 Així que aquest és un d'aquests casos. 1393 01:02:25,590 --> 01:02:31,430 >> Així operador ternari és signe d'interrogació de còlon, com ho veiem en la cadena de línia 1394 01:02:31,430 --> 01:02:35,810 s és igual a n major que 100 signe d'interrogació sota alta còlon. 1395 01:02:35,810 --> 01:02:41,800 Així que, bàsicament, com funciona això és que és el n major que 100 és una condició. 1396 01:02:41,800 --> 01:02:43,674 Així que crec que pot tenir sentit. 1397 01:02:43,674 --> 01:02:44,840 És com fer una pregunta. 1398 01:02:44,840 --> 01:02:47,320 Està dient oh, és n més gran que 100. 1399 01:02:47,320 --> 01:02:48,340 Qui sap? 1400 01:02:48,340 --> 01:02:50,750 I si s'avalua com cert, que va a donar-li 1401 01:02:50,750 --> 01:02:54,270 la primera cosa que és que apareix allà, que és alta. 1402 01:02:54,270 --> 01:02:55,840 En cas contrari, va a donar-li de baixa. 1403 01:02:55,840 --> 01:03:01,210 Així que això és només una veritat simple i manera eficaç de fer com si una cosa. 1404 01:03:01,210 --> 01:03:02,780 Això és tot el que és això. 1405 01:03:02,780 --> 01:03:07,450 >> I si haguéssim d'escriure això com si la resta condicional, 1406 01:03:07,450 --> 01:03:12,480 el que seria si n és més gran de 100, tornar alta. 1407 01:03:12,480 --> 01:03:14,220 Si no, tornar sota. 1408 01:03:14,220 --> 01:03:17,570 Això és només una molt més manera concisa d'escriure. 1409 01:03:17,570 --> 01:03:27,090 >> ROB BOWDEN: Així que aquest exemple particular està sempre estàs fent alguna cosa 1410 01:03:27,090 --> 01:03:30,190 així, aquest és el patró on utilitzo ternari amb molta freqüència. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Així que no hem parlat d'abast, però, però Odi veure punt i coma cadena s. 1413 01:03:35,460 --> 01:03:39,150 Si n més gran que 100, s és igual d'alta. 1414 01:03:39,150 --> 01:03:40,660 Si no, és igual a s baix. 1415 01:03:40,660 --> 01:03:45,070 Així que aquest patró, aquestes cinc línies de codi, literalment, 100% de les vegades 1416 01:03:45,070 --> 01:03:49,800 pot ser transferit al hi era amb un ternari. 1417 01:03:49,800 --> 01:03:52,340 Així que el ternari, una línia de codi. 1418 01:03:52,340 --> 01:03:54,640 El cas més, 05:00. 1419 01:03:54,640 --> 01:03:56,910 Això és un exemple va assenyalar fos cada vegada. 1420 01:03:56,910 --> 01:03:59,250 Això faria un gran lloc per a un operador ternari. 1421 01:03:59,250 --> 01:04:00,647 És tan net. 1422 01:04:00,647 --> 01:04:01,980 Però la gent tendeix a no utilitzar-lo. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Agafeu les escombraries Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Així que ara vostès tot après a la conferència d'aquesta setmana 1426 01:04:11,110 --> 01:04:13,420 que tot en una ordinador és binària, oi? 1427 01:04:13,420 --> 01:04:14,570 De la mateixa manera que els llums d'aquí. 1428 01:04:14,570 --> 01:04:16,492 Vostè pot ser encesa i apagada. 1429 01:04:16,492 --> 01:04:18,450 I per tot el que em refereixo literalment tot. 1430 01:04:18,450 --> 01:04:24,272 Alguns nombres i caràcters i cadenes, i fins i tot el codi que escrius quan 1431 01:04:24,272 --> 01:04:26,480 que es compila a màquina codi i coses per l'estil, 1432 01:04:26,480 --> 01:04:29,230 de manera que tot es redueix a 0 i d'1 '. 1433 01:04:29,230 --> 01:04:34,540 >> I així, quan ens enfrontem amb nombres enters, els quals 1434 01:04:34,540 --> 01:04:38,000 és una cosa que és tècnicament molt simple, hem de ser capaços de fer coses 1435 01:04:38,000 --> 01:04:40,630 com l'addició d'ells, que és probablement una de les coses més simples 1436 01:04:40,630 --> 01:04:42,300 vostè pot fer per a dos sencers, no? 1437 01:04:42,300 --> 01:04:47,410 Així que la suma i la resta funciona igual com funciona en notació decimal, 1438 01:04:47,410 --> 01:04:50,780 excepte aquí és binària, oi? 1439 01:04:50,780 --> 01:04:52,090 Així que és en base dos. 1440 01:04:52,090 --> 01:04:54,070 Així que afegir 1 més 1. 1441 01:04:54,070 --> 01:04:57,020 Això li dóna a 0 i 1 es trasllada. 1442 01:04:57,020 --> 01:05:01,335 I així seguir fent això, així que ara ve la pregunta més interessant. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Sabem com representar tot nombres enters positius a l'ordinador, 1445 01:05:07,710 --> 01:05:09,870 però farem aquest exercici. 1446 01:05:09,870 --> 01:05:15,240 Feu de compte que vostès estan tots en l'any 1960 o una mica tractant de crear un ordinador, 1447 01:05:15,240 --> 01:05:19,950 i vostè ha de venir de una manera d'emmagatzemar menys 1, 1448 01:05:19,950 --> 01:05:22,554 per exemple, o menys qualsevol nombre enter per al cas. 1449 01:05:22,554 --> 01:05:23,470 Com fer això? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Alguna idea? 1452 01:05:29,220 --> 01:05:31,302 Simplement llençar res a mi. 1453 01:05:31,302 --> 01:05:32,264 Sí? 1454 01:05:32,264 --> 01:05:39,480 >> AUDIÈNCIA: [inaudible] designar un especial si el seu [inaudible]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Vostè pot designar un mica especial, que serà 0 o 1. 1456 01:05:42,590 --> 01:05:45,590 Diguem que un si és positiu i 0 si és negatiu. 1457 01:05:45,590 --> 01:05:48,171 I després la resta de la broca és només per emmagatzemar el nombre. 1458 01:05:48,171 --> 01:05:48,670 Refredar. 1459 01:05:48,670 --> 01:05:49,990 Així que això és una molt bona idea. 1460 01:05:49,990 --> 01:05:51,550 Tenim, no ho sé, 200. 1461 01:05:51,550 --> 01:05:54,720 I si el primer bit és encès, llavors és més 200. 1462 01:05:54,720 --> 01:05:57,270 Si està apagada, és menys de 200. 1463 01:05:57,270 --> 01:05:58,380 Refredar. 1464 01:05:58,380 --> 01:06:01,350 >> Només hi ha una petita problema amb això, 1465 01:06:01,350 --> 01:06:05,370 que és si tractem de resumir les coses. 1466 01:06:05,370 --> 01:06:18,910 Així que imaginin que tenim aquí 11111, i estem sumant això amb 00,100 el que sigui. 1467 01:06:18,910 --> 01:06:21,630 Si els dos són positius, això està bé. 1468 01:06:21,630 --> 01:06:24,470 Però llavors, si un ells és negatiu, igual que 1469 01:06:24,470 --> 01:06:27,410 diguem que aquesta poc aquí és la que és responsable 1470 01:06:27,410 --> 01:06:31,390 para-- Vaig a fer una separate-- així que aquest significa que aquest nombre aquí 1471 01:06:31,390 --> 01:06:31,970 és positiu. 1472 01:06:31,970 --> 01:06:34,450 Això significa que aquest nombre aquí és negativa, no? 1473 01:06:34,450 --> 01:06:37,010 >> Però després, quan estigui va a resumir ells, 1474 01:06:37,010 --> 01:06:40,180 necessitarà una sentència if dient oh si això és 0, 1475 01:06:40,180 --> 01:06:43,479 llavors la meva suma serà alguna cosa diferent, no? 1476 01:06:43,479 --> 01:06:45,270 Així que hi ha una mica més intel ligent manera de fer-ho 1477 01:06:45,270 --> 01:06:48,520 que, que es diu complement a dos. 1478 01:06:48,520 --> 01:06:52,350 Així que, bàsicament, el que fem és definim almenys 1 1479 01:06:52,350 --> 01:06:57,250 a ser la cosa que si sumem a 1 ens dóna 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Permetin-me repetir això. 1482 01:07:00,860 --> 01:07:03,280 Així que diguem que aquesta aquí és 1. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Què és el que naturalment en nombres enters positius 1485 01:07:13,570 --> 01:07:15,570 afegit al fet que ens dóna 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Què passa si intentem afegir a aquest número? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Anem a tener-- bé, així que anem a afegir. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Tindrem 1 més 1 és 0, i després es transporta. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 I després anem a obtenir 0 de nou. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 M'estic confós. 1496 01:07:48,820 --> 01:07:51,670 I vostè va a obtenir 0 i 0 i 0 i 0 i 0 i 0. 1497 01:07:51,670 --> 01:07:52,450 Molta de 0. 1498 01:07:52,450 --> 01:07:56,240 >> Per últim, no estem serà capaç de portar a la tornada, 1499 01:07:56,240 --> 01:07:59,614 perquè diguem que només estem tractant amb un byte, per la qual cosa només 8 bits. 1500 01:07:59,614 --> 01:08:02,780 Així que el que l'equip fa per defecte és simplement s'oblida que [inaudible], 1501 01:08:02,780 --> 01:08:03,279 D'acord? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Així que això és el que es diu el complement a dos. 1504 01:08:06,880 --> 01:08:15,180 Simplement definim menys 1 a ser el cosa aquí que si afegeix que a 1 1505 01:08:15,180 --> 01:08:15,995 li donaria 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 I això és bastant cool perquè no ho fem realment 1508 01:08:20,180 --> 01:08:24,090 necessitarà tard per implementar un tipus diferent de summa 1509 01:08:24,090 --> 01:08:26,590 depenent de si això és una negatiu o un nombre positiu. 1510 01:08:26,590 --> 01:08:27,465 Això té sentit? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Així que una cosa que fem aquí el cap de convertir 1513 01:08:32,370 --> 01:08:38,550 entre un positiu i un negatiu sencer està llavors voltejar tot, 1514 01:08:38,550 --> 01:08:40,930 i després afegim 1 a aquest nombre. 1515 01:08:40,930 --> 01:08:43,140 Si tracta de fer-ho vostè mateix en un tros de paper, 1516 01:08:43,140 --> 01:08:44,681 vas a veure que això té sentit. 1517 01:08:44,681 --> 01:08:51,000 Però si prenc aquest número aquí, això és cinc. 1518 01:08:51,000 --> 01:08:54,859 Així que si li dono la volta tot aquí, així que 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Voltejar, flip, flip. 1521 01:08:57,830 --> 01:09:00,130 I després afegeixo 1 a la mateixa. 1522 01:09:00,130 --> 01:09:02,750 Vaig a tenir exactament almenys 5. 1523 01:09:02,750 --> 01:09:03,250 D'acord? 1524 01:09:03,250 --> 01:09:06,220 >> Aquest tipus de sentit perquè si intenta resumir això amb el número 1525 01:09:06,220 --> 01:09:10,229 que teníem abans, que era-- anem a voltejar de nou. 1526 01:09:10,229 --> 01:09:12,999 Va ser 101 i un munt de de 0. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Si voleu afegir aquests dos números junts, 1529 01:09:15,670 --> 01:09:16,961 vostè va a tenir exactament 0. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 Okay. 1532 01:09:19,460 --> 01:09:19,884 Alguna pregunta? 1533 01:09:19,884 --> 01:09:20,759 >> AUDIÈNCIA: [inaudible] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Què vols dir? 1536 01:09:27,280 --> 01:09:29,240 >> AUDIÈNCIA: Negatiu a positiu [inaudible]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: No, li dóna la volta i s'agrega 1 sempre. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Sí. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 Acceptar, de manera que els personatges també codificats binaris. 1542 01:09:39,680 --> 01:09:42,649 Tenim taula ASCII, com vostè també va veure en la conferència, no? 1543 01:09:42,649 --> 01:09:45,040 Així que és bàsicament un mapatge de les coses. 1544 01:09:45,040 --> 01:09:50,960 I aquí no puc emfatitzar prou que per a un ordinador, a i 65 1545 01:09:50,960 --> 01:09:52,770 són literalment la mateixa cosa. 1546 01:09:52,770 --> 01:10:03,430 Així que si escric alguna cosa com Char c és igual a una, jo podria a la vegada 1547 01:10:03,430 --> 01:10:06,890 acaba d'escriure 65 aquí, i seria exactament el mateix, d'acord? 1548 01:10:06,890 --> 01:10:08,470 No hi ha cap diferència. 1549 01:10:08,470 --> 01:10:12,420 >> En general, tendim a posar personatges de variables de tipus. 1550 01:10:12,420 --> 01:10:16,770 Char, no perquè són essencialment fet per això, sinó perquè 1551 01:10:16,770 --> 01:10:18,050 de convenció humana. 1552 01:10:18,050 --> 01:10:22,410 Però només es pot tractar amb nombres enters en lloc de les variables de tipus char, 1553 01:10:22,410 --> 01:10:23,490 i se li multa. 1554 01:10:23,490 --> 01:10:28,410 L'única diferència real entre un char c i un int i 1555 01:10:28,410 --> 01:10:31,960 és que un int té quatre bytes més sistemes, mentre que un char té un byte. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Són essencialment el el mateix en termes de dades. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Així que el que va a imprimir en aquesta llista? 1560 01:10:37,990 --> 01:10:43,780 Aquí estem imprimint un dígit usant printf amb un més 1, i igual que els nombres enters, 1561 01:10:43,780 --> 01:10:46,240 caràcters es poden resumir, per la qual personatges també es poden sumar. 1562 01:10:46,240 --> 01:10:47,890 Així que això és exactament 65. 1563 01:10:47,890 --> 01:10:49,950 Així que serà 66, i aquí tenim 1564 01:10:49,950 --> 01:10:56,860 65 més poc un menys gran A, que serà, no ho sé. 1565 01:10:56,860 --> 01:11:00,900 Però serà exactament la bretxa entre les lletres majúscules 1566 01:11:00,900 --> 01:11:07,800 i les lletres més petites i, per anem a obtenir una petita, oi? 1567 01:11:07,800 --> 01:11:08,300 Sí. 1568 01:11:08,300 --> 01:11:11,740 Així que això va a imprimir un personatge que és exactament aquest. 1569 01:11:11,740 --> 01:11:12,260 Bona? 1570 01:11:12,260 --> 01:11:12,860 Alguna pregunta? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Aquí tenim un munt de diferents tipus de variables numèriques. 1573 01:11:19,430 --> 01:11:20,620 Ja parlem de int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float és només una manera A-- això és realment divertit, perquè quan vaig saber per primera vegada 1576 01:11:27,760 --> 01:11:32,320 per a programar en el seu dia amb Python, el primer programa que he 1577 01:11:32,320 --> 01:11:37,480 tractat d'escriure, em vaig adonar que hi havia un tipus anomenat i un tipus anomenat flotador. 1578 01:11:37,480 --> 01:11:39,800 I el flotador era per a tots els nombres reals. 1579 01:11:39,800 --> 01:11:43,290 Llavors em va preguntar per què hauria Jo mai faig servir un int llavors? 1580 01:11:43,290 --> 01:11:45,590 Perquè si puc usar tot nombres reals amb un flotador, 1581 01:11:45,590 --> 01:11:47,120 Només vull deixar d'usar sencers, no? 1582 01:11:47,120 --> 01:11:49,550 A causa que els nombres reals són de la mateixa manera que més genèric. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Resulta que això és no és el cas en els ordinadors 1585 01:11:54,060 --> 01:11:58,480 perquè són essencialment diferents coses. 1586 01:11:58,480 --> 01:12:01,470 Així que els nombres enters i les carrosses, la operacions que facis amb ells 1587 01:12:01,470 --> 01:12:04,739 són essencialment diferent perquè de la forma en què s'emmagatzemen, d'acord? 1588 01:12:04,739 --> 01:12:07,280 Anem a parlar una mica poc més sobre això en un segon. 1589 01:12:07,280 --> 01:12:09,110 >> Així que doble és només un flotador més gran. 1590 01:12:09,110 --> 01:12:12,830 En general, en la majoria dels sistemes, un flotador és de quatre bytes, com un int. 1591 01:12:12,830 --> 01:12:15,440 I una doble és de vuit bytes. 1592 01:12:15,440 --> 01:12:21,450 Un llarg, llarg és en realitat només un símbol d'annexar a un tipus com int. 1593 01:12:21,450 --> 01:12:24,040 Vostè diu int llarg termini com aquest. 1594 01:12:24,040 --> 01:12:28,550 Llarg long int x perquè sigui més llarg. 1595 01:12:28,550 --> 01:12:32,310 Així que en la majoria dels sistemes, que donarà 8 bytes en lloc dels quatre habituals. 1596 01:12:32,310 --> 01:12:35,620 I en realitat es pot caure el en, de manera que només es pot dir molt, molt, 1597 01:12:35,620 --> 01:12:37,240 i que treballa massa, d'acord? 1598 01:12:37,240 --> 01:12:42,850 També pot fer altres coses com int sense signe, o de nou just sense signar 1599 01:12:42,850 --> 01:12:43,680 també funcionaria. 1600 01:12:43,680 --> 01:12:49,370 I això faria que x sigui una variable com tot el que és positiu, 1601 01:12:49,370 --> 01:12:53,231 així que realment no es pot tenir efectes negatius nombres en la forma en què vam veure aquí. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Així doncs, seguint meravellós punt flotant i precisió. 1604 01:12:58,650 --> 01:13:01,890 Aquesta és una de les raons per les quals voler utilitzar sencers en lloc de carrosses, 1605 01:13:01,890 --> 01:13:04,370 perquè ints són 100% precises, no? 1606 01:13:04,370 --> 01:13:06,170 És exactament aquest nombre. 1607 01:13:06,170 --> 01:13:11,910 Per als punts flotants, si dir la resposta és igual a 1 sobre 10-- 1608 01:13:11,910 --> 01:13:14,690 Resulta que tinc aquesta exacta programa aquí, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Que imprimeix a 20 xifres decimals. 1611 01:13:19,420 --> 01:13:23,270 1 dividit per 10, i que en general és de 0,1, oi? 1612 01:13:23,270 --> 01:13:27,910 Però aquí si fem flotador i després ho executem, 1613 01:13:27,910 --> 01:13:30,320 veiem que no és exactament 0,1. 1614 01:13:30,320 --> 01:13:33,570 És una cosa 0,149. 1615 01:13:33,570 --> 01:13:35,570 >> I per què és això? 1616 01:13:35,570 --> 01:13:40,390 Perquè no es pot realment representar cada únic nombre real possible en la memòria 1617 01:13:40,390 --> 01:13:42,730 perquè hi ha uncountably molts d'ells. 1618 01:13:42,730 --> 01:13:48,360 Així que estem tècnicament només és capaç de representar una quantitat finita d'ells 1619 01:13:48,360 --> 01:13:50,470 amb una quantitat finita de dades. 1620 01:13:50,470 --> 01:13:52,050 Però és molt interessant. 1621 01:13:52,050 --> 01:13:54,920 Ara bé, això ens porta a la qüestió de com ho faria 1622 01:13:54,920 --> 01:13:59,299 anar sobre el que representa això amb els bits, no? 1623 01:13:59,299 --> 01:14:00,340 Llavors, ¿com s'emmagatzemen els flotadors? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Amb nombres enters que va ser fàcil. 1626 01:14:03,730 --> 01:14:06,690 Però amb flotadors que desitges per maximitzar el rang, 1627 01:14:06,690 --> 01:14:10,530 i vol ser capaç de representar enormes nombres i nombres molt petits com 1628 01:14:10,530 --> 01:14:14,210 0.000001 a la vegada. 1629 01:14:14,210 --> 01:14:15,180 Així que de nou, el mateix joc. 1630 01:14:15,180 --> 01:14:20,470 Algú té alguna idea del que vam poder anar sobre la representació de flotador a la memòria? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Simplement llençar res. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Sí, si us plau. 1635 01:14:30,856 --> 01:14:33,552 >> AUDIÈNCIA: [inaudible] com si es tractava de dos sencers i un 1636 01:14:33,552 --> 01:14:36,890 sent la [inaudible] i un sol ésser sobretot després del punt decimal. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, fresc. 1638 01:14:37,640 --> 01:14:40,300 Així que dos enters diferents. 1639 01:14:40,300 --> 01:14:45,260 Vostè pot tenir les 12.45, pel que és 12 i 45. 1640 01:14:45,260 --> 01:14:45,890 Niça. 1641 01:14:45,890 --> 01:14:46,973 Què ERO que dirà? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 La mateixa cosa? 1644 01:14:49,430 --> 01:14:49,930 Sí? 1645 01:14:49,930 --> 01:14:55,630 >> AUDIÈNCIA: notació [inaudible] on se separa la base. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: La notació científica, sí que és en general el que passa. 1647 01:14:58,910 --> 01:15:01,350 Així que això és el que s'anomena la mantissa. 1648 01:15:01,350 --> 01:15:06,490 Això és el que és en realitat el nombre, i després l'exponent 1649 01:15:06,490 --> 01:15:08,780 és just on la coma és, oi? 1650 01:15:08,780 --> 01:15:13,720 Així que això serà una cosa de la forma 1, 2, 3, 4, 5 vegades 10 1651 01:15:13,720 --> 01:15:15,000 almenys 4. 1652 01:15:15,000 --> 01:15:17,800 M'acabo de donar compte que-- Sí, exactament. 1653 01:15:17,800 --> 01:15:23,372 I llavors aquest 10 a la menys 4 és definirà on la coma és, ¿d'acord? 1654 01:15:23,372 --> 01:15:24,330 Al Brasil s'utilitza coma. 1655 01:15:24,330 --> 01:15:26,795 Aquí vostès utilitzen un punt. 1656 01:15:26,795 --> 01:15:27,640 Així un punt. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> I això és genial, perquè llavors vostè pot centrarà molts dels seus trossos en aquest noi 1659 01:15:34,840 --> 01:15:40,863 aquí, a la mantissa, i llavors això és serà la seva precisió real. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 I vostè pot fer això ja sigui en decimal o en el sistema basat en binari. 1662 01:15:47,175 --> 01:15:49,781 Hi ha diferents formes d'implementar això. 1663 01:15:49,781 --> 01:15:50,280 Preguntes? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Sí? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 AUDIÈNCIA: Quants llocs després del punt decimal [inaudible]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Aquesta és una pregunta complicada, perquè mai és realment 100% precisa, 1670 01:16:12,610 --> 01:16:15,680 perquè com vostè veu aquí, per alguns números és 100% precisa. 1671 01:16:15,680 --> 01:16:20,350 Crec que si posem 0.5 aquí, que serà 100% precís. 1672 01:16:20,350 --> 01:16:22,220 Serà 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Així que en aquest cas, és perfecte. 1674 01:16:24,170 --> 01:16:27,330 Però en altres casos, és molt menys perfecta. 1675 01:16:27,330 --> 01:16:35,010 En la meva experiència, de la mateixa manera que un màxim de quatre, a cinc xifres decimals és bastant precís. 1676 01:16:35,010 --> 01:16:38,300 Si utilitzeu un doble, que va a ser molt més precís que això, d'acord? 1677 01:16:38,300 --> 01:16:42,750 >> ROB BOWDEN: Així que només per llançar- algun context més en carrosses, 1678 01:16:42,750 --> 01:16:46,320 No recordo com el 100% especificació de carrosses en realitat funciona, 1679 01:16:46,320 --> 01:16:52,660 però ho faig sempre recordi que carrosses comença a rebre desordenat. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Així que la idea és que quan vostè aconsegueix realment, realment grans nombres o molt, molt 1682 01:17:00,930 --> 01:17:03,470 nombres petits, que comencen cada vegada pitjor 1683 01:17:03,470 --> 01:17:05,860 en la diferenciació entre dos flotadors propers. 1684 01:17:05,860 --> 01:17:09,180 >> Llavors, ¿com m'agrada pensar és en amb punt flotant imprecisió, 1685 01:17:09,180 --> 01:17:11,890 hi ha dos flotadors que si intento especificar 1686 01:17:11,890 --> 01:17:15,150 en C, malgrat el fet que són diferents els números, 1687 01:17:15,150 --> 01:17:17,340 que seran interpretat com el mateix nombre, 1688 01:17:17,340 --> 01:17:19,006 perquè no podem emmagatzemar-los de manera diferent. 1689 01:17:19,006 --> 01:17:20,540 Hem d'utilitzar els mateixos bits. 1690 01:17:20,540 --> 01:17:23,220 I així, quan arribem a molt, molt gran nombre, 1691 01:17:23,220 --> 01:17:28,460 parlant com 10 a la 300 o alguna cosa, és en aquest punt 1692 01:17:28,460 --> 01:17:33,240 que 10 a la 300 o 5 vegades 10 a la 300 1693 01:17:33,240 --> 01:17:37,020 no pot ser diferenciada de 7 vegades 10 a la 300. 1694 01:17:37,020 --> 01:17:39,660 Així que això és una diferència bastant gran entre els dos nombres. 1695 01:17:39,660 --> 01:17:43,830 >> Però després, quan et poses a les coses normals de rang, 1696 01:17:43,830 --> 01:17:45,770 que tendeixen a ser bastant bo en la diferenciació. 1697 01:17:45,770 --> 01:17:49,020 I després, quan et poses realment petit, vostè també obté molt malament de nou. 1698 01:17:49,020 --> 01:17:52,529 Així que, com un munt de 0.0000, que es posa bastant malament. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Sí, de manera que una nota ràpida. 1700 01:17:53,820 --> 01:17:54,670 Mai faci això. 1701 01:17:54,670 --> 01:17:57,590 Mai tracti de comparar flotadors usant iguals iguals, 1702 01:17:57,590 --> 01:18:02,800 perquè fins i tot si són gairebé el mateix, gairebé el mateix no és el mateix. 1703 01:18:02,800 --> 01:18:06,360 Així que el que sol fer és restar ells, prenen el valor absolut que, 1704 01:18:06,360 --> 01:18:12,380 i veure si això és menor que 0,0001 o alguna cosa així, d'acord? 1705 01:18:12,380 --> 01:18:12,880 I fresc. 1706 01:18:12,880 --> 01:18:16,630 Sé que molta gent té alguns antecedents en Java, 1707 01:18:16,630 --> 01:18:19,700 especialment els que van fer Ciències de la computació AP, oi? 1708 01:18:19,700 --> 01:18:23,630 I Java és un llenguatge que majoritàriament sobre la base de C, 1709 01:18:23,630 --> 01:18:26,570 té molt grans diferències d'un parell. 1710 01:18:26,570 --> 01:18:31,430 Però per als bucles, i IFS, i coses per l'estil que, són tots la mateixa sintaxi. 1711 01:18:31,430 --> 01:18:35,240 Tinc un parell de programes aquí per mostrar això. 1712 01:18:35,240 --> 01:18:37,050 >> Així, per exemple, un món hola simple. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Aquesta és hola món en C, que li nois són sens dubte familiaritzat amb, 1715 01:18:46,600 --> 01:18:49,100 i això i això és en Java. 1716 01:18:49,100 --> 01:18:53,100 Així que en Java tenim aquest public class, hola món, 1717 01:18:53,100 --> 01:18:57,050 i public void estàtica args principal, i de cadena. 1718 01:18:57,050 --> 01:18:59,665 Els arguments de cadena van a aparèixer en C molt poc. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Però no anem a anar-hi encara. 1721 01:19:01,990 --> 01:19:06,060 En aquest moment tenim buit aquí, el que significa que la principal no es pren cap argument. 1722 01:19:06,060 --> 01:19:09,220 I llavors tenim System.out.println, el i això és 1723 01:19:09,220 --> 01:19:11,140 mena d'equivalent de printf. 1724 01:19:11,140 --> 01:19:17,150 Aquí a realitat no necessitem la barra invertida n perquè ln impressió ho fa per vostè. 1725 01:19:17,150 --> 01:19:19,680 S'afegeix la barra invertida n en l'extrem de la línia. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Però si vostè entra en una mena de per, vostè 1728 01:19:30,415 --> 01:19:32,590 pot veure que són més o menys la mateixa cosa. 1729 01:19:32,590 --> 01:19:37,390 Així inicialització, i el condició, i l'actualització 1730 01:19:37,390 --> 01:19:42,050 és-- em vaig perdre un espai aquí-- són més o menys la mateixa cosa, a excepció de Java 1731 01:19:42,050 --> 01:19:44,430 té com uns pocs més coses d'alt nivell. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Aquí podem fer més I i Java automàticament 1734 01:19:49,610 --> 01:19:52,730 fer d'aquest i aquí, que és un nombre enter, en una cadena, 1735 01:19:52,730 --> 01:19:55,200 i després afegir el dues cadenes juntes. 1736 01:19:55,200 --> 01:19:57,570 Aquí a C que necessitem fer el &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 La línia d'aquí, el per es veu exactament el mateix. 1739 01:20:18,170 --> 01:20:37,760 >> I si ens fixem en si, les FI També veurà exactament el mateix, oi? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Així que les grans diferències reals són en les coses que vostè veu aquí. 1742 01:20:44,650 --> 01:20:47,530 Estàtica Pública, nul·la, i llavors la classe pública si. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Així que Java té el que és anomenat una màquina virtual. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 I es basa en gran mesura en el que es diu la programació orientada a objectes, 1747 01:21:00,150 --> 01:21:04,120 que és un molt, molt comú paradigma de la programació d'avui en dia. 1748 01:21:04,120 --> 01:21:10,870 I aquesta cosa de classe és el que es veu, una mica de l'orientació a objectes, 1749 01:21:10,870 --> 01:21:14,214 és que vostè crea una classe i després pot derivar objectes d'aquesta classe. 1750 01:21:14,214 --> 01:21:16,380 No anem a parlar massa molt d'això en CS50, 1751 01:21:16,380 --> 01:21:18,213 però això és sens dubte alguna cosa realment fresc, 1752 01:21:18,213 --> 01:21:21,440 especialment si vols anar a desenvolupament web més sofisticat 1753 01:21:21,440 --> 01:21:24,050 al final del curs, com presentar el seu projecte final 1754 01:21:24,050 --> 01:21:26,430 i alguns marcs bonics i aquestes coses. 1755 01:21:26,430 --> 01:21:31,250 >> Així que, bàsicament, la idea és que vostè no vull tornar a implementar alguna cosa, 1756 01:21:31,250 --> 01:21:36,330 per la qual cosa es crea una cosa que és molt genèrica, com la forma, 1757 01:21:36,330 --> 01:21:38,310 i després es crea diferents formes de la mateixa, 1758 01:21:38,310 --> 01:21:40,240 i després de cada un aquestes formes, es creen 1759 01:21:40,240 --> 01:21:45,110 algunes formes més específiques de cada tres dimensions o alguna cosa per l'estil. 1760 01:21:45,110 --> 01:21:48,799 I tenen aquesta jerarquia que heretar dels altres, de manera que 1761 01:21:48,799 --> 01:21:51,840 totes les funcions i totes les variables que la gran forma d'aquí té, tots ells 1762 01:21:51,840 --> 01:21:54,110 tindran, i tots aquests són tindrà, i així successivament i així successivament. 1763 01:21:54,110 --> 01:21:55,640 Així que aquesta és la idea bàsica. 1764 01:21:55,640 --> 01:21:59,170 >> C no ha de, però C ++ no tenir aquest tipus de característica. 1765 01:21:59,170 --> 01:22:02,710 I Java està fortament influenciat per l'orientació a objectes, 1766 01:22:02,710 --> 01:22:05,310 així que per això es veu classe aquí tot el temps. 1767 01:22:05,310 --> 01:22:10,790 I l'altra cosa és aquesta màquina virtual de Java. 1768 01:22:10,790 --> 01:22:13,790 Així que això, crec, és una idea molt intel·ligent. 1769 01:22:13,790 --> 01:22:17,020 Així que el que la gent que java inventat va fer és 1770 01:22:17,020 --> 01:22:19,630 que no volen compilar el codi dues vegades 1771 01:22:19,630 --> 01:22:23,990 si haguessin de executar en un equip amb Windows, o un Mac, o Linux, així que el que fan 1772 01:22:23,990 --> 01:22:26,740 és que, literalment, s'executen alguna cosa així com l'aparell, 1773 01:22:26,740 --> 01:22:29,630 però realment no veu que això passi. 1774 01:22:29,630 --> 01:22:32,430 Així que s'executen en una màquina virtual a l'interior del seu equip, que 1775 01:22:32,430 --> 01:22:34,940 és, bàsicament, com un mini sistema operatiu. 1776 01:22:34,940 --> 01:22:37,920 I això de funcionament El propòsit del sistema a la vida 1777 01:22:37,920 --> 01:22:41,430 és només per a executar el que s'anomena codi de bytes. 1778 01:22:41,430 --> 01:22:47,411 >> Així que en lloc d'en C, la forma en què ho faria compilar això és fer que si, a continuació, executeu 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 Em vaig oblidar de la barra invertida a. 1782 01:22:55,290 --> 01:23:00,240 En Java, que faria primer Java C a compilar, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 No és punt de Java C .. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 I després has de córrer no ./. 1787 01:23:12,140 --> 01:23:15,440 Vostè rep aquest nou arxiu if.class, però realment no es pot 1788 01:23:15,440 --> 01:23:17,980 executar if.class ara només com ho vam fer abans. 1789 01:23:17,980 --> 01:23:19,440 Això no és un executable. 1790 01:23:19,440 --> 01:23:20,630 Has de córrer. 1791 01:23:20,630 --> 01:23:23,410 Vostè ha de alimentar a un programa anomenat Java, 1792 01:23:23,410 --> 01:23:28,260 i aquest programa és la màquina virtual, i després ho fas if.class, o si. 1793 01:23:28,260 --> 01:23:28,760 Sí. 1794 01:23:28,760 --> 01:23:30,890 I llavors funciona. 1795 01:23:30,890 --> 01:23:33,740 Acceptar així que això és una espècie de la màquina virtual succeint. 1796 01:23:33,740 --> 01:23:37,700 C no ha de, per la qual cosa si jo fos a posar aquest programa en una màquina Windows, 1797 01:23:37,700 --> 01:23:40,516 que no funcionaria en C. En Java el fa. 1798 01:23:40,516 --> 01:23:41,015 Preguntes? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Refredar. 1801 01:23:44,030 --> 01:23:47,160 Això si per super secció per avui. 1802 01:23:47,160 --> 01:23:49,462