1 00:00:00,000 --> 00:00:02,742 >> [REPRODUCCIÓ DE MÚSICA] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI Peng: Això és CS50, i Benvinguda a la setmana dues de la secció. 4 00:00:09,090 --> 00:00:11,740 Això és en realitat mentre setmana dos dels nostres class-- realitat, 5 00:00:11,740 --> 00:00:14,550 la primera setmana que hem tingut secció. 6 00:00:14,550 --> 00:00:18,897 Aixecant la mà, quants de vostès va arribar a súper secció de la setmana passada? 7 00:00:18,897 --> 00:00:19,480 OK, això està bé. 8 00:00:19,480 --> 00:00:20,020 Està bé. 9 00:00:20,020 --> 00:00:23,110 Quants de vosaltres vist Super secció de la setmana passada? 10 00:00:23,110 --> 00:00:23,610 D'ACORD. 11 00:00:23,610 --> 00:00:25,702 I vostès van fer bé el problema d'establir una? 12 00:00:25,702 --> 00:00:28,660 Així que vaig a considerar que tenim un grup de nens molt intel·ligents 13 00:00:28,660 --> 00:00:32,310 en aquesta classe i les coses van bé. 14 00:00:32,310 --> 00:00:33,180 D'ACORD. 15 00:00:33,180 --> 00:00:33,980 Així primer-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> En primer lloc, només anem a actualitzar breument repassar l'ordre del dia d'avui. 18 00:00:41,090 --> 00:00:42,700 Anem a parlar de la logística del curs. 19 00:00:42,700 --> 00:00:45,480 Molts de vosaltres probablement té preguntes sobre 20 00:00:45,480 --> 00:00:46,920 com les coses funcionen en aquest curs. 21 00:00:46,920 --> 00:00:47,897 Anem a respondre-hi. 22 00:00:47,897 --> 00:00:49,730 Anem a actualitzar breument anar més bucles en cas 23 00:00:49,730 --> 00:00:51,410 qualsevol de vostès van perdre súper secció. 24 00:00:51,410 --> 00:00:53,240 Parlarem de mapeig ASCII. 25 00:00:53,240 --> 00:00:56,180 Parlarem sobre les matrius, funcions, arguments de la línia d'ordres. 26 00:00:56,180 --> 00:01:00,210 I, finalment, el que vostès probablement tots realment vull ser aquí per aprendre, 27 00:01:00,210 --> 00:01:01,270 és la seva PSet2. 28 00:01:01,270 --> 00:01:04,209 Tindrem alguns trucs agradables i consells sobre com fer això. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> D'ACORD. 31 00:01:08,690 --> 00:01:11,450 A més, en segon lloc, tenim un munt de caramels aquí. 32 00:01:11,450 --> 00:01:13,583 Qualsevol persona que li agrada el caramel, acaba d'arribar aquí. 33 00:01:13,583 --> 00:01:14,430 Agafa una mica. 34 00:01:14,430 --> 00:01:15,100 Tinc un munt. 35 00:01:15,100 --> 00:01:16,390 Tenim una tona a l'oficina. 36 00:01:16,390 --> 00:01:18,230 Jo realment no vull menjar dolços durant tot el dia. 37 00:01:18,230 --> 00:01:20,300 Vostès han de menjar tots els dolços, perquè jo ho vaig portar aquí per a vostès. 38 00:01:20,300 --> 00:01:20,990 Només menjar dolços. 39 00:01:20,990 --> 00:01:24,080 Hi haurà dolços cada secció. 40 00:01:24,080 --> 00:01:25,330 >> Així que primer, qui sóc jo? 41 00:01:25,330 --> 00:01:27,080 El meu nom és Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Jo sóc el cap de TA CS50 aquí a Yale. 43 00:01:30,270 --> 00:01:32,540 I a més de això, també es ser-- 44 00:01:32,540 --> 00:01:35,600 si a algú li com-- seu funcionament amic, el teu espatlla per plorar. 45 00:01:35,600 --> 00:01:39,140 Si la nit anterior a causa del seu conjunt de processadors, no tens idea del que està passant, 46 00:01:39,140 --> 00:01:40,080 Avisa'm. 47 00:01:40,080 --> 00:01:42,770 Ens compadim junts, etcètera. 48 00:01:42,770 --> 00:01:46,100 Només sé que sóc aquí com un recursos per a vostè com la línia del front 49 00:01:46,100 --> 00:01:51,830 per ajudar els nois esbrinar com per resoldre problemes en CS50 i més enllà. 50 00:01:51,830 --> 00:01:54,590 >> El meu correu electrònic és andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 També enviaré a un individu correu electrònic amb el meu número de telèfon en el mateix 52 00:01:58,390 --> 00:02:01,860 pel que no tot el món en el Internet pot veure el meu número de telèfon. 53 00:02:01,860 --> 00:02:03,640 No dubti a trucar-en qualsevol moment. 54 00:02:03,640 --> 00:02:07,510 De debò, el meu telèfon és en general adjunt a la mà. 55 00:02:07,510 --> 00:02:10,240 Puc no respondre en un parell de minuts. 56 00:02:10,240 --> 00:02:11,984 Puc no respondre aquí a un parell d'hores. 57 00:02:11,984 --> 00:02:14,400 Però els puc garantir, si em correu electrònic, si em crides, 58 00:02:14,400 --> 00:02:17,404 text mi, vaig a respondre dins de 24 hores. 59 00:02:17,404 --> 00:02:19,820 Sovint, respondré abans que, perquè entenc 60 00:02:19,820 --> 00:02:23,900 que tothom té alguns problemes, i desitja que les seves respostes 61 00:02:23,900 --> 00:02:26,110 per respondre molt ràpidament. 62 00:02:26,110 --> 00:02:28,945 >> No obstant això, si vostè diu Em 30 minuts abans 63 00:02:28,945 --> 00:02:31,570 aquesta peça que s'ha de dijous nit-- ser així, Andi, ajudeu-me, 64 00:02:31,570 --> 00:02:35,380 No he started-- puc donar que espatlla per plorar. 65 00:02:35,380 --> 00:02:41,520 Però potser és hora de pensar en com no fer-ho la propera vegada. 66 00:02:41,520 --> 00:02:44,040 D'ACORD. 67 00:02:44,040 --> 00:02:44,944 Vaya. 68 00:02:44,944 --> 00:02:45,850 Com puc tornar? 69 00:02:45,850 --> 00:02:48,140 Som-hi. 70 00:02:48,140 --> 00:02:52,310 >> Així que en aquest supòsit, tenim una tona de suport per a tots. 71 00:02:52,310 --> 00:02:54,640 A més de simplement seccions aquí, que vostè 72 00:02:54,640 --> 00:02:57,000 cada setmana arribar a passar 90 meravellosos minuts amb mi, 73 00:02:57,000 --> 00:02:58,330 també tenim horari d'oficina. 74 00:02:58,330 --> 00:03:01,021 Quants de vostès ja tenen estat de les hores d'oficina a la recerca d'ajuda? 75 00:03:01,021 --> 00:03:01,520 Gran. 76 00:03:01,520 --> 00:03:05,700 Això és molt bo per veure, perquè ens amb una plantilla de més de 45 TA i CA 77 00:03:05,700 --> 00:03:11,780 entrenat per a aquest curs que és aquí per ajudar nois amb els seus conjunts de processadors. 78 00:03:11,780 --> 00:03:14,580 >> Els dilluns estan duen a terme a la garjola aula en 17 Hill House aquí 79 00:03:14,580 --> 00:03:15,350 a Yale. 80 00:03:15,350 --> 00:03:17,349 Dimarts i dijous, que estan duen a terme en béns comuns. 81 00:03:17,349 --> 00:03:20,010 8: 00-11: 00 gairebé tots els dies de la setmana. 82 00:03:20,010 --> 00:03:21,620 Entra, sortir. 83 00:03:21,620 --> 00:03:24,030 Qualsevol problema, sense problema-- acaba d'arribar d'ara endavant, 84 00:03:24,030 --> 00:03:26,650 i després l'ajudarem amb això. 85 00:03:26,650 --> 00:03:31,640 >> En segon lloc, a més de les hores d'oficina i les seccions, també tenim pantalons curts. 86 00:03:31,640 --> 00:03:35,930 Algú ha vist un parell de la pantalons curts o recorreguts en els vídeos 87 00:03:35,930 --> 00:03:36,750 en el lloc web? 88 00:03:36,750 --> 00:03:37,250 D'ACORD. 89 00:03:37,250 --> 00:03:39,510 Així que són molt, molt servicial. 90 00:03:39,510 --> 00:03:42,470 La nostra bella producció de Harvard equip enllà en aquesta escola 91 00:03:42,470 --> 00:03:47,910 cap al nord, s'han filmat i produït aquests vídeos tutorial increïbles. 92 00:03:47,910 --> 00:03:52,290 >> Van a prendre pas a pas a través de com fer per resoldre un problema. 93 00:03:52,290 --> 00:03:56,340 Sovint, si vostè està confós sobre un concepte senzill, un concepte singular, 94 00:03:56,340 --> 00:03:59,780 fer una ullada, perquè és probable que un curt en algun lloc al nostre lloc web. 95 00:03:59,780 --> 00:04:03,800 I en general és un gran recurs buscar quan estàs primer 96 00:04:03,800 --> 00:04:06,510 perdut sobre com manejar un problema. 97 00:04:06,510 --> 00:04:09,750 >> En tercer lloc, també tenim study50 i reference50. 98 00:04:09,750 --> 00:04:15,650 Així que estudiar 50 al lloc web és només un enllaç. 99 00:04:15,650 --> 00:04:21,500 És, crec, study.cs50.net o alguna cosa per l'estil. 100 00:04:21,500 --> 00:04:22,860 Només Google ell. 101 00:04:22,860 --> 00:04:24,229 Tenim un munt de mostres preparades. 102 00:04:24,229 --> 00:04:26,770 Tenim un munt de pantalons curts i coses walkthroughs-- tot compilats 103 00:04:26,770 --> 00:04:31,070 molt agradable i net per a tots vostès nois per navegar a través, consulteu qualsevol concepte 104 00:04:31,070 --> 00:04:32,860 que vostè està confós sobre. 105 00:04:32,860 --> 00:04:35,920 Seria probablement serà cobert allà en study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- similar. 107 00:04:37,640 --> 00:04:41,510 Tenim una gran quantitat de diverses notes fàcilment disponible per a la seva disposició. 108 00:04:41,510 --> 00:04:44,450 I finalment, tenim el que és diu CS50 Discutir, 109 00:04:44,450 --> 00:04:48,082 un fòrum en el qual, si la nit anterior que està fent els seus problemes, diu, 110 00:04:48,082 --> 00:04:49,880 vostè té una pregunta. 111 00:04:49,880 --> 00:04:52,340 Entre per CS50 Discutiu. 112 00:04:52,340 --> 00:04:53,190 Publiqui una pregunta. 113 00:04:53,190 --> 00:04:55,820 I llavors un dels hundreds-- potser, thousands-- de companys 114 00:04:55,820 --> 00:04:57,960 prendre aquesta classe en línia s'ingressi. 115 00:04:57,960 --> 00:05:01,182 I potser algú pot aconseguir la seva resposta abans d'una llauna TA. 116 00:05:01,182 --> 00:05:03,390 Bàsicament es tracta de només una fòrum en línia que tots podem 117 00:05:03,390 --> 00:05:04,556 utilitzar per discutir els nostres problemes. 118 00:05:04,556 --> 00:05:06,483 Això està bé. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> D'ACORD. 121 00:05:11,550 --> 00:05:13,220 Així que el problema es posa. 122 00:05:13,220 --> 00:05:17,840 Estem a punt just en el gruixuda del problema plantejat dues. 123 00:05:17,840 --> 00:05:20,570 Molts de nosaltres ja té lluitat a través d'un problema d'un conjunt. 124 00:05:20,570 --> 00:05:24,460 Ja sabem que potser esperant per a l'última nit per fer la seva pset 125 00:05:24,460 --> 00:05:28,170 No és la cosa més intel·ligent que fer en CS50. 126 00:05:28,170 --> 00:05:32,380 >> Consells i suggeriments essencialment per l'èxit es llegeixen tota l'especificació. 127 00:05:32,380 --> 00:05:36,270 Quants de vostès ja tenen llegir l'especificació de conjunt de processadors 2? 128 00:05:36,270 --> 00:05:36,770 D'ACORD. 129 00:05:36,770 --> 00:05:39,840 Aquesta és una quantitat sòlida. 130 00:05:39,840 --> 00:05:43,210 Sé que vostès probablement han reconegut per ara les especificacions són realment llarg. 131 00:05:43,210 --> 00:05:45,700 Són molt, molt llarga. 132 00:05:45,700 --> 00:05:49,630 >> És realment difícil de llegir cada línia d'aquesta paraula acuradament per paraula. 133 00:05:49,630 --> 00:05:52,780 Vostè vol simplement descremada a on que et diu que facis alguna cosa. 134 00:05:52,780 --> 00:05:54,459 Et puc garantir, no facis això. 135 00:05:54,459 --> 00:05:56,750 Si ho fas, és probable que va perdre alguna part 136 00:05:56,750 --> 00:05:58,458 on se li diu com iniciar un problema 137 00:05:58,458 --> 00:06:01,140 o que et diu quin nom El seu problema o se li diu, 138 00:06:01,140 --> 00:06:03,720 aquesta és probablement la millor manera per començar a fer el seu problema. 139 00:06:03,720 --> 00:06:05,050 I llavors se li va perdre. 140 00:06:05,050 --> 00:06:08,219 >> Quan intenta llegir el seu spec meitat, 141 00:06:08,219 --> 00:06:10,510 una gran part de l'important informació-- en que no estàs 142 00:06:10,510 --> 00:06:12,260 serà capaç de realment accés. 143 00:06:12,260 --> 00:06:13,219 Així que llegeixi tota l'especificació. 144 00:06:13,219 --> 00:06:15,468 Intenta llegir tota l'especificació abans d'arribar a la secció, 145 00:06:15,468 --> 00:06:17,360 perquè llavors, quan ens parlar del conjunt de processadors, 146 00:06:17,360 --> 00:06:21,070 que tots podem tenir una idea del que està passant. 147 00:06:21,070 --> 00:06:25,169 >> En segon lloc, aquest és un concepte que m'agradarà fer referència 148 00:06:25,169 --> 00:06:26,710 molt al llarg del semestre del curs. 149 00:06:26,710 --> 00:06:30,070 Però, en essència, la nostra trobada a mig camí, no? 150 00:06:30,070 --> 00:06:33,970 Jo, com el seu ajudant tècnic i Jason com a plat gerent i Scaz com el seu professor 151 00:06:33,970 --> 00:06:37,120 i David com el seu professor i tots els altres tes encantadores en aquest curs, 152 00:06:37,120 --> 00:06:39,830 assistents en aquest clar-- farem el nostre millor 153 00:06:39,830 --> 00:06:42,965 per assegurar-se que s'estableixen fins per tenir èxit en aquest curs. 154 00:06:42,965 --> 00:06:43,840 Anem a celebrar secció. 155 00:06:43,840 --> 00:06:44,870 Tindrem hores d'oficina. 156 00:06:44,870 --> 00:06:47,087 Anem a respondre al seu telèfon trucades, respondre als seus correus electrònics, 157 00:06:47,087 --> 00:06:49,670 fer tot el possible perquè Assegureu-vos que les seves preguntes siguin contestades. 158 00:06:49,670 --> 00:06:51,460 >> No obstant això, ens ajuden massa. 159 00:06:51,460 --> 00:06:52,450 Reunir-se amb nosaltres fins a la meitat. 160 00:06:52,450 --> 00:06:56,040 Si véns a les hores d'oficina no haver anat a la secció, no 161 00:06:56,040 --> 00:07:02,060 havent vist les conferències, en no tenir idea del que està passant, ser, que m'ajudi. 162 00:07:02,060 --> 00:07:04,350 Jo seré com, bé, ho sento. 163 00:07:04,350 --> 00:07:06,410 Potser és el moment de prestar que espatlla per plorar, 164 00:07:06,410 --> 00:07:08,959 perquè no estic segur el que puc fer per ajudar-te 165 00:07:08,959 --> 00:07:12,000 si no s'intenta almenys ajuda a tu mateix una mica al principi. 166 00:07:12,000 --> 00:07:12,910 Reunir-se amb nosaltres fins a la meitat. 167 00:07:12,910 --> 00:07:15,020 Ja saps, si us plau vingui preparat per respondre i obtenir 168 00:07:15,020 --> 00:07:16,353 a punt per participar en el material. 169 00:07:16,353 --> 00:07:19,342 Fa les coses molt més fàcil per a tots els involucrats. 170 00:07:19,342 --> 00:07:22,970 Sí, això és pràcticament tot. 171 00:07:22,970 --> 00:07:23,720 >> Classificació. 172 00:07:23,720 --> 00:07:29,250 Així que en el pla d'estudis, és bastant en profunditat en relació amb la forma en què grau. 173 00:07:29,250 --> 00:07:32,440 Però, en essència, el desglossament en això és el 50% de la qualificació 174 00:07:32,440 --> 00:07:34,530 seran els conjunts de processadors, els quals és preciós, perquè això és 175 00:07:34,530 --> 00:07:37,400 on s'està gastant el vast majoria del seu temps en curs. 176 00:07:37,400 --> 00:07:39,854 Quizzes 40%, i la seva projecte final serà del 10%. 177 00:07:39,854 --> 00:07:42,520 Hi haurà dues proves al llarg de el curs del semestre. 178 00:07:42,520 --> 00:07:47,050 Crec que els temps i les dates són També figuren en el programa d'estudis. 179 00:07:47,050 --> 00:07:49,210 >> La forma en què ho farem ha de qualificar els seus conjunts de processadors 180 00:07:49,210 --> 00:07:53,930 és que tenim bàsicament de quatre valors que assignem a cada grau. 181 00:07:53,930 --> 00:07:57,250 Comptem amb un valor d'abast, correcció, disseny i estil. 182 00:07:57,250 --> 00:08:01,530 Així que com veus, això és una cosa de la nostra fórmula de càlcul de conjunts de processadors. 183 00:08:01,530 --> 00:08:03,640 Tres donem més pes a la correcció, 184 00:08:03,640 --> 00:08:06,140 perquè, òbviament, el seu entrenador ha de provar per als casos 185 00:08:06,140 --> 00:08:08,480 que el volem per detectar si existeixen. 186 00:08:08,480 --> 00:08:11,000 >> Vostès tots tenen check50 a la seva disposició. 187 00:08:11,000 --> 00:08:13,730 És una funció molt útil que vostès poden tots 188 00:08:13,730 --> 00:08:17,560 carregar el seu codi a nostres servidors, on anem a comprovar que. 189 00:08:17,560 --> 00:08:20,800 I vostè ha vist els cares frowny, cares somrients. 190 00:08:20,800 --> 00:08:22,119 Són molt, molt servicial. 191 00:08:22,119 --> 00:08:23,910 Si us plau, no ser el estudiant que com intents 192 00:08:23,910 --> 00:08:26,230 per codificar en totes les respostes a ells. 193 00:08:26,230 --> 00:08:30,050 Sens dubte, m'he vist un conjunt de processadors, on algú va veure a tots els valors de check50 194 00:08:30,050 --> 00:08:33,429 i que només dura codificats en-- si aquest número, imprimiu aquest número. 195 00:08:33,429 --> 00:08:35,080 Si aquest nombre, imprimiu aquest nombre. 196 00:08:35,080 --> 00:08:36,090 No facis això. 197 00:08:36,090 --> 00:08:39,360 >> Tot i que tècnicament check50 és correcta, 198 00:08:39,360 --> 00:08:41,809 la seva manera de resoldre el problema no és la correcta. 199 00:08:41,809 --> 00:08:45,770 Llavors només ha d'utilitzar check50 moderació. 200 00:08:45,770 --> 00:08:48,497 Però també assegurar-se que vostè entendre com està funcionant, 201 00:08:48,497 --> 00:08:50,580 el programa està funcionant A més de check50, 202 00:08:50,580 --> 00:08:53,120 perquè no podem provar cada possible cas de check50. 203 00:08:53,120 --> 00:08:55,440 Estarem provant alguns d'ells. 204 00:08:55,440 --> 00:09:00,390 >> El disseny és en essència, com ben dissenyat és el codi? 205 00:09:00,390 --> 00:09:04,150 Si vostè és copiar i enganxar múltiples línies de codi de moltes, moltes vegades. 206 00:09:04,150 --> 00:09:06,960 Potser vostè no té prou el millor disseny en el codi. 207 00:09:06,960 --> 00:09:09,470 Potser és el moment d'afegir aquest bucle. 208 00:09:09,470 --> 00:09:12,090 En essència, això és només tot per tractar de fer el seu codi, 209 00:09:12,090 --> 00:09:17,010 tractant d'escriure el seu codi de manera més eficient com sigui possible perquè el seu programa s'executa 210 00:09:17,010 --> 00:09:19,630 el més ràpidament possible. 211 00:09:19,630 --> 00:09:20,996 >> Finalment, tenim l'estil. 212 00:09:20,996 --> 00:09:24,360 Així que l'estil és una espècie de arbitrari, terme subjectiu. 213 00:09:24,360 --> 00:09:27,470 Jo sé que oficialment tenim una guia d'estil 50 per CS50, 214 00:09:27,470 --> 00:09:30,050 on et diu, oh, ha de tenir un espai aquí. 215 00:09:30,050 --> 00:09:32,220 Vostè ha tipus de format el seu codi d'aquesta manera. 216 00:09:32,220 --> 00:09:34,070 Vostè ha de nomenar les coses d'aquesta manera. 217 00:09:34,070 --> 00:09:38,180 >> Realment no m'importa, per si mateix, com vostè tria l'estil del seu codi, 218 00:09:38,180 --> 00:09:39,840 de la mateixa manera que sempre que romangui constant. 219 00:09:39,840 --> 00:09:43,732 Per exemple, si t'agrada deixar un espai després del seu fill de quatre 220 00:09:43,732 --> 00:09:45,690 abans de la seva bucle de quatre, fer això tot el temps. 221 00:09:45,690 --> 00:09:46,523 No espècie de fer-ho. 222 00:09:46,523 --> 00:09:47,730 No ho facis altres vegades. 223 00:09:47,730 --> 00:09:51,046 Si t'agrada mantenir arrissat suports espai d'una manera determinada, 224 00:09:51,046 --> 00:09:52,170 acaba sempre fer-ho d'aquesta manera. 225 00:09:52,170 --> 00:09:54,628 No espècie de fer-ho en algun lloc aquí i en algun lloc no existeix. 226 00:09:54,628 --> 00:09:57,010 Quan estem de classificació, és molt difícil 227 00:09:57,010 --> 00:09:59,420 si tinc ni idea de com estàs formatar el seu codi, 228 00:09:59,420 --> 00:10:02,064 les coses són extravagants i fora de lloc. 229 00:10:02,064 --> 00:10:04,980 Si et quedes consistent, és molt més fàcil per a mi com el major 230 00:10:04,980 --> 00:10:06,310 ser capaç de llegir el codi. 231 00:10:06,310 --> 00:10:09,393 És molt més fàcil per a vostè com a estudiant ser capaç de mirar a través del seu codi 232 00:10:09,393 --> 00:10:11,720 i veure el que està malament amb que frega per què hi ha problemes. 233 00:10:11,720 --> 00:10:15,740 L'estil és una de les coses més fàcils que vostès poden fer per obtenir resultats complets. 234 00:10:15,740 --> 00:10:18,770 En essència, si el que importa, si vostè paga cinc minuts d'atenció 235 00:10:18,770 --> 00:10:22,760 al seu codi de cada setmana, vostè ha de serà aconseguir punts d'estil complet. 236 00:10:22,760 --> 00:10:26,020 >> Finalment, tenim el que es diu el multiplicador d'abast. 237 00:10:26,020 --> 00:10:28,890 Scope-- Sé que és un gran paraula, sobretot en aquesta classe. 238 00:10:28,890 --> 00:10:31,030 Però abast, tot el que significa és que vostè està tractant 239 00:10:31,030 --> 00:10:33,670 els conjunts de processadors a la mesura de la seva capacitat. 240 00:10:33,670 --> 00:10:37,180 Si s'activa en tres de les seves quatre problemes 241 00:10:37,180 --> 00:10:39,460 i ni tan sols intentar la Finalment, és probable que 242 00:10:39,460 --> 00:10:41,630 va a perdre alguns punts sobre l'abast. 243 00:10:41,630 --> 00:10:44,560 >> Fins i tot si vostè acaba de començar el problema, fer el millor per caminar a través d'ell. 244 00:10:44,560 --> 00:10:47,691 Fins i tot si no funciona, convertir-lo en, pel fet que mostra i demostra 245 00:10:47,691 --> 00:10:50,190 per a nosaltres que vostè està tractant, que ha intentat establir el problema 246 00:10:50,190 --> 00:10:51,430 potser de la seva capacitat. 247 00:10:51,430 --> 00:10:53,800 I llavors podem donar-li punts complets d'abast. 248 00:10:53,800 --> 00:10:58,715 >> Àmbit d'aplicació també és molt important per quan parlar de la caiguda de puntuació pset més baix. 249 00:10:58,715 --> 00:11:02,010 Per això, durant el transcurs de la semestre, vostès tenen nou conjunts de processadors. 250 00:11:02,010 --> 00:11:05,340 I que en realitat estarem disminuint la puntuació més baixa de les nou, 251 00:11:05,340 --> 00:11:07,670 però només si té punts d'abast complet. 252 00:11:07,670 --> 00:11:11,120 >> Així que si al seu torn en un conjunt de processadors incompleta, per desgràcia, no podem deixar caure que un, 253 00:11:11,120 --> 00:11:13,540 a causa de que el seu abast els punts no es van completar. 254 00:11:13,540 --> 00:11:16,570 Així que fins i tot si vostè té la setmana horrible on s'està morint i que està malalt 255 00:11:16,570 --> 00:11:20,040 o el seu gos mor, el seu gat mor, i ja està sobrecarregat amb la tasca, 256 00:11:20,040 --> 00:11:21,074 simplement tractar el conjunt de processadors. 257 00:11:21,074 --> 00:11:22,490 Fes-ho el millor que puguis. 258 00:11:22,490 --> 00:11:23,840 Si no funciona, no importa. 259 00:11:23,840 --> 00:11:24,506 Només lliurar-la. 260 00:11:24,506 --> 00:11:26,590 Almenys que podem donar que punts d'esforç. 261 00:11:26,590 --> 00:11:28,510 >> Una per l'esforç en aquesta classe. 262 00:11:28,510 --> 00:11:30,170 Almenys caiguda de puntuació més baixa per l'esforç. 263 00:11:30,170 --> 00:11:32,354 Així que si. 264 00:11:32,354 --> 00:11:33,270 Això és més o menys la mateixa. 265 00:11:33,270 --> 00:11:36,521 Algú té preguntes per ara en la forma en que el seu grau a la classe? 266 00:11:36,521 --> 00:11:37,187 O algun d'aquests? 267 00:11:37,187 --> 00:11:41,220 Qualsevol d'aquests per far-- seccions, les hores d'oficina? 268 00:11:41,220 --> 00:11:41,720 Fresc. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 D'ACORD. 271 00:11:47,800 --> 00:11:51,260 >> Així que aquest és un tema que no realment li agrada parlar. 272 00:11:51,260 --> 00:11:53,084 Realment no m'agrada parlar-ne. 273 00:11:53,084 --> 00:11:55,250 Vostès realment no vull sentir-me parlar-ne. 274 00:11:55,250 --> 00:11:57,690 Però, per desgràcia, tots ha de parlar-ne. 275 00:11:57,690 --> 00:12:00,110 David va passar 20 minuts a donar una conferència parlant d'això. 276 00:12:00,110 --> 00:12:02,580 I aquest és el tema de l'honestedat acadèmica. 277 00:12:02,580 --> 00:12:08,110 >> Així que tots aquí, probablement, hem escrit un assaig en algun moment de la nostra carrera de Yale. 278 00:12:08,110 --> 00:12:11,800 Probablement ens hem ficat una xerrada en la qual hem ha dit que no plagiar el nostre assaig, 279 00:12:11,800 --> 00:12:13,940 pel fet que el treball no és el nostre. 280 00:12:13,940 --> 00:12:18,109 En informàtica, tenim el mateix tipus de concepte. 281 00:12:18,109 --> 00:12:20,150 Tot el treball que vostè enviï, tot el codi que escrigui 282 00:12:20,150 --> 00:12:21,900 ha de ser codi que vostè ha escrit. 283 00:12:21,900 --> 00:12:24,280 ¿No hauria de ser el codi que tens copiat d'un altre lloc. 284 00:12:24,280 --> 00:12:26,777 ¿No hauria de ser el codi que vostè Googled i es va deixar caure en 285 00:12:26,777 --> 00:12:28,360 i no se sap molt bé si funciona. 286 00:12:28,360 --> 00:12:32,440 Que tipus de tenir un sentit de el que està fent, però en realitat no. 287 00:12:32,440 --> 00:12:36,562 En cas de dubte, en essència, és només ser raonable. 288 00:12:36,562 --> 00:12:38,520 En el nostre programa, tenim tota una llista de coses 289 00:12:38,520 --> 00:12:40,560 veiem com raonables front no raonable. 290 00:12:40,560 --> 00:12:43,820 >> Per exemple, raonable és vostè i el seu amic 291 00:12:43,820 --> 00:12:47,360 discutir quina és la millor manera d'anar sobre lògicament la solució d'un problema. 292 00:12:47,360 --> 00:12:48,910 Això és bastant raonable. 293 00:12:48,910 --> 00:12:53,244 El que no seria raonable és si nois es van reunir, escriuen el mateix codi, 294 00:12:53,244 --> 00:12:54,410 i es va convertir en el mateix codi. 295 00:12:54,410 --> 00:12:56,302 Això no és raonable. 296 00:12:56,302 --> 00:12:57,510 La mateixa cosa, una espècie d'un assaig. 297 00:12:57,510 --> 00:12:59,290 Si vostè vol discutir amb el seu amic, escolta, 298 00:12:59,290 --> 00:13:00,220 això és el que vull escriure. 299 00:13:00,220 --> 00:13:02,500 Aquests són els passos que vull prendre per escriure sobre ella, molt bé. 300 00:13:02,500 --> 00:13:03,208 Això és meravellós. 301 00:13:03,208 --> 00:13:04,790 Si us plau, col·labori amb els altres. 302 00:13:04,790 --> 00:13:06,540 Si vostès començar escriure la mateixa cosa, 303 00:13:06,540 --> 00:13:10,020 girar en el mateix assaig, això és menys bé. 304 00:13:10,020 --> 00:13:13,200 Així que en cas de dubte, simplement no ho facis. 305 00:13:13,200 --> 00:13:16,940 >> En aquest sentit, al CS50, tenim guions que s'executen per automatitzar per provar 306 00:13:16,940 --> 00:13:21,740 no només la correcció del seu codi, sinó també la singularitat del seu codi. 307 00:13:21,740 --> 00:13:25,920 Així que per favor no ens posi en la posició d'haver de derivar el cas a EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Si us plau, només per a tothom, anem a fer d'això una experiència meravellosa. 309 00:13:31,110 --> 00:13:33,600 Tothom aprèn millor, tots som més feliços, 310 00:13:33,600 --> 00:13:37,926 i que està tot a punt fins tenir èxit en aquest curs. 311 00:13:37,926 --> 00:13:39,800 Una cosa que és molt únic sobre aquesta classe 312 00:13:39,800 --> 00:13:42,660 que crec que cadascú ha realment prestar atenció a és que tenim 313 00:13:42,660 --> 00:13:44,930 el que s'anomena el pesar clàusula en el nostre pla d'estudis. 314 00:13:44,930 --> 00:13:50,010 Per tant, bàsicament, un termini de 72 hores, si creus que has fet alguna cosa 315 00:13:50,010 --> 00:13:53,240 vostè no està realment segur era adequada, si us plau vingui a nosaltres. 316 00:13:53,240 --> 00:13:57,220 Serà que dins de les 72 hores tractarem el cas a nosaltres mateixos 317 00:13:57,220 --> 00:13:59,820 sense fer referència a una major autoritat en l'administració. 318 00:13:59,820 --> 00:14:03,100 >> Així que si tu véns a mi i dir, Andi, escolta, ho sento molt, 319 00:14:03,100 --> 00:14:07,620 però crec que hi ha un parell de línies en el meu codi de l'última nit que tipus de google, 320 00:14:07,620 --> 00:14:10,120 va baixar de la Pila Desbordament, copiar i enganxar, 321 00:14:10,120 --> 00:14:13,680 i estic realment, realment ho sento per això, que em faci saber. 322 00:14:13,680 --> 00:14:16,900 Si us plau, no deixar que s'agreugin i només espero que l'agafo. 323 00:14:16,900 --> 00:14:17,784 Anem a atrapar-lo. 324 00:14:17,784 --> 00:14:18,450 Només ha de venir a mi. 325 00:14:18,450 --> 00:14:20,520 Deixa saber dins de les 72 hores. 326 00:14:20,520 --> 00:14:22,240 Anem a trobar una solució. 327 00:14:22,240 --> 00:14:26,679 I prometem que no ens referirem a autoritats universitàries essencialment. 328 00:14:26,679 --> 00:14:29,220 Així que és en el seu millor interès només ser honest amb tothom 329 00:14:29,220 --> 00:14:31,720 involucrat en el curs. 330 00:14:31,720 --> 00:14:34,630 >> D'ACORD. 331 00:14:34,630 --> 00:14:35,240 D'ACORD. 332 00:14:35,240 --> 00:14:37,800 Així que ara, ràpidament abans Segueixo endavant, algú 333 00:14:37,800 --> 00:14:42,670 té preguntes respecte a la logística sobre com els cursos que anem a executar, 334 00:14:42,670 --> 00:14:45,982 com seccions van córrer, res d'això? 335 00:14:45,982 --> 00:14:46,711 D'ACORD. 336 00:14:46,711 --> 00:14:47,210 Sí. 337 00:14:47,210 --> 00:14:48,126 >> AUDIÈNCIA: [inaudible]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI Peng: Sí. 340 00:14:51,080 --> 00:14:54,850 Així quizzes-- quants de vostès són en la secció Dilluns / Dimecres? 341 00:14:54,850 --> 00:14:56,700 Quants de vostès estan en de dimarts / dijous? 342 00:14:56,700 --> 00:14:58,550 OK, així que és una fracció sòlida aquí. 343 00:14:58,550 --> 00:15:00,900 Així que la forma en què es corre que a Yale és que 344 00:15:00,900 --> 00:15:04,040 tindran dos per separat quizzes-- un per a cada secció- que 345 00:15:04,040 --> 00:15:06,160 es prendran durant la classe. 346 00:15:06,160 --> 00:15:09,310 Crec que és d'octubre a finals d'octubre, una mena de primera setmana 347 00:15:09,310 --> 00:15:10,794 de la prova. 348 00:15:10,794 --> 00:15:11,960 Sí, pel que acaba d'arribar a classe. 349 00:15:11,960 --> 00:15:13,920 Aquest dilluns o dimecres vostè prendrà la prova. 350 00:15:13,920 --> 00:15:16,336 Aquest dimarts o dijous vostè prendrà un examen diferent. 351 00:15:16,336 --> 00:15:18,570 Però el mateix material serà cobert. 352 00:15:18,570 --> 00:15:19,160 Sí. 353 00:15:19,160 --> 00:15:20,660 Bona pregunta. 354 00:15:20,660 --> 00:15:21,160 Sí. 355 00:15:21,160 --> 00:15:23,260 >> AUDIÈNCIA: On som anar a consultar les nostres notes? 356 00:15:23,260 --> 00:15:23,926 >> ANDI Peng: Sí. 357 00:15:23,926 --> 00:15:28,420 Així que va enviar a terme una correu electrònic el que cada setmana 358 00:15:28,420 --> 00:15:31,460 quan proves són graded-- o, ho sento, quan es qualifiquen conjunts de processadors. 359 00:15:31,460 --> 00:15:34,120 Conjunts de processadors són generalment van tornar al migdia o divendres. 360 00:15:34,120 --> 00:15:37,540 Així que et prometo que ho faré tractar d'aconseguir de nou a vostè 361 00:15:37,540 --> 00:15:40,000 pel migdia de divendres següent. 362 00:15:40,000 --> 00:15:44,950 >> Cada vegada que un conjunt de processadors de grau, enviaré una notificació al llibre de qualificacions 363 00:15:44,950 --> 00:15:47,070 que et diu la teva puntuació es pot veure en línia. 364 00:15:47,070 --> 00:15:52,022 Així que just aquesta setmana, després que acabar amb llei de conjunts de processadors de la setmana passada, 365 00:15:52,022 --> 00:15:54,230 vostès van a arribar un e-mail notificació que li diu, 366 00:15:54,230 --> 00:15:55,870 bo aquí és on vostè anar a veure les seves qualificacions. 367 00:15:55,870 --> 00:15:57,680 I es pot veure tots els desglossament de les seves qualificacions. 368 00:15:57,680 --> 00:15:58,555 Vostè pot veure els comentaris. 369 00:15:58,555 --> 00:16:00,360 Oh, cosa ràpida també. 370 00:16:00,360 --> 00:16:03,060 La secció de comentaris a la gran llibre és on probablement 371 00:16:03,060 --> 00:16:05,300 passar la major part del meu temps de classificació. 372 00:16:05,300 --> 00:16:07,094 Així que una cosa que és realment important quan 373 00:16:07,094 --> 00:16:09,010 que vostès estan veient les seves qualificacions en els seus conjunts de processadors 374 00:16:09,010 --> 00:16:11,400 no només es busca en la puntuació física 375 00:16:11,400 --> 00:16:14,630 sinó també prendre temps per realment llegir els meus comentaris. 376 00:16:14,630 --> 00:16:17,820 >> Sovint, això et dóna retroalimentació de com s'està resolent un problema. 377 00:16:17,820 --> 00:16:20,480 Si el que necessita fer cosa una mica millor, 378 00:16:20,480 --> 00:16:24,080 crítica constructiva en general és millor donada en les secció de comentaris. 379 00:16:24,080 --> 00:16:26,950 Així que per favor, per favor, em vaig passar temps escrivint comentaris. 380 00:16:26,950 --> 00:16:30,440 Si us plau, t'ho agrairia moltíssim si vostès llegiria aquests comentaris. 381 00:16:30,440 --> 00:16:31,170 D'ACORD. 382 00:16:31,170 --> 00:16:34,150 Fresc. 383 00:16:34,150 --> 00:16:34,680 >> Tot bé. 384 00:16:34,680 --> 00:16:40,680 Així que anem a començar a parlar i acaba de revisar ràpidament 385 00:16:40,680 --> 00:16:45,040 alguns dels materials de setmana zero just el que estem 386 00:16:45,040 --> 00:16:48,760 a la pàgina correcta per començant problemes d'aquesta setmana. 387 00:16:48,760 --> 00:16:52,600 Així que el bucle while és un dels tres tipus de bucles 388 00:16:52,600 --> 00:16:54,510 hem comentat anteriorment en aquesta classe. 389 00:16:54,510 --> 00:16:57,060 >> Un bucle while essencialment que està escrit en la sintaxi 390 00:16:57,060 --> 00:17:00,666 on, mentre que una certa condició, fer això diverses vegades, oi? 391 00:17:00,666 --> 00:17:02,040 Penseu en això en aquest gràfic aquí. 392 00:17:02,040 --> 00:17:04,780 Vostè va a començar en un cert punt en el codi. 393 00:17:04,780 --> 00:17:09,030 Vas a entrar a la condició de bucle si: No sé-- x és menor que un. 394 00:17:09,030 --> 00:17:11,677 >> Si això és cert, vas per executar el cos del bucle. 395 00:17:11,677 --> 00:17:14,010 I seguiràs fent que de nou, un cop més, de nou, 396 00:17:14,010 --> 00:17:17,900 1 i over-- que és per això que és un loop-- fins que la seva condició esdevé 397 00:17:17,900 --> 00:17:19,079 falsa. 398 00:17:19,079 --> 00:17:22,140 Així d'aquesta manera, un bucle while és una de les formes més simples 399 00:17:22,140 --> 00:17:25,619 per escriure qualsevol tipus de condició que cal repetir una i altra vegada i una altra. 400 00:17:25,619 --> 00:17:28,109 Només vagi amb compte de sempre estàs escrivint qualsevol tipus de bucle 401 00:17:28,109 --> 00:17:32,140 que vostè té una condició de sortida com així com una actualització del que sigui 402 00:17:32,140 --> 00:17:36,714 és perquè la seva bucle no fa precisament executar una i altra vegada fins a l'infinit. 403 00:17:36,714 --> 00:17:38,630 En qualsevol cas, et vas a voler assegurar 404 00:17:38,630 --> 00:17:42,670 que va a modificar algun aspecte de el seu codi o al final del bucle 405 00:17:42,670 --> 00:17:46,680 només per assegurar-se que vostè té una manera d'avançar cap a la condició 406 00:17:46,680 --> 00:17:48,400 que desitja satisfer a extrem. 407 00:17:48,400 --> 00:17:50,239 ¿Això té sentit per a tothom? 408 00:17:50,239 --> 00:17:52,530 Simplement no volem ser atrapats en aquesta espiral, on 409 00:17:52,530 --> 00:17:55,710 anem voltes i voltes i no hi ha manera de trencar el bucle. 410 00:17:55,710 --> 00:17:58,844 I cada bucle essencialment té una manera de fer això. 411 00:17:58,844 --> 00:17:59,344 D'ACORD. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> En segon lloc, molts de vostès en els seus conjunts de processadors de Mario 414 00:18:06,060 --> 00:18:08,910 probablement hagut d'utilitzar aquest tipus de bucle. 415 00:18:08,910 --> 00:18:11,802 Es diu un do while. 416 00:18:11,802 --> 00:18:14,510 En primer lloc, ¿pot algú dir-me quina és la diferència entre un do 417 00:18:14,510 --> 00:18:16,586 while i un bucle while és? 418 00:18:16,586 --> 00:18:17,086 Sí. 419 00:18:17,086 --> 00:18:21,030 >> AUDIÈNCIA: El bucle Do While és a primera [inaudible]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI Peng: Sí, exactament. 421 00:18:22,120 --> 00:18:27,130 Així que un do while sempre fa el que sigui està dins de la do, dins dels claudàtors 422 00:18:27,130 --> 00:18:30,520 allà i fa que la condició abans de comprovar ell-- sento, 423 00:18:30,520 --> 00:18:32,940 fa que el codi abans la comprovació de la condició. 424 00:18:32,940 --> 00:18:37,200 I això és especialment rellevant per a nosaltres aquí en aquesta classe, perquè la majoria de vegades 425 00:18:37,200 --> 00:18:41,450 anem a voler provocar l'usuari d'algun tipus d'entrada. 426 00:18:41,450 --> 00:18:43,520 I després, depenent de l'entrada que ens donen, 427 00:18:43,520 --> 00:18:46,150 llavors podem avaluar, oh, fer hem d'impulsar de nou? 428 00:18:46,150 --> 00:18:49,930 >> Així que en Mario, si l'usuari li va donar una altura negatiu, per exemple, 429 00:18:49,930 --> 00:18:52,990 vas a primer missatge i fer el que hi ha dins. 430 00:18:52,990 --> 00:18:54,820 Llavors vostè va a comprovar tant. 431 00:18:54,820 --> 00:18:57,570 Ja saps, és negatiu 1, és que un nombre positiu? 432 00:18:57,570 --> 00:19:00,680 Si no és així, em vaig a anar enrere i repetir el fer i repetir 433 00:19:00,680 --> 00:19:03,950 i repetir i repetir fins que finalment se li donarà un número que t'agrada, 434 00:19:03,950 --> 00:19:07,002 que tot el que podem emprar en el nostre codi. 435 00:19:07,002 --> 00:19:09,210 És molt important per essencialment qualsevol entrada de l'usuari. 436 00:19:09,210 --> 00:19:11,760 Puc garantir que qualsevol temps en un conjunt de processadors, on 437 00:19:11,760 --> 00:19:15,070 li demanem a l'entrada qualsevol tipus de codi, estem 438 00:19:15,070 --> 00:19:17,540 probablement va a fer un cas de prova en el qual estem 439 00:19:17,540 --> 00:19:21,200 et va a donar una cosa dolenta que és va a tractar de trencar el codi. 440 00:19:21,200 --> 00:19:25,044 >> Si tractem de preguntar-li a una entrada nombre sencer, que només pot donar-li una cadena 441 00:19:25,044 --> 00:19:26,460 i veure com manejaria això. 442 00:19:26,460 --> 00:19:30,610 Si li demanem que emprar una edat, és possible que li donarà un nombre negatiu 443 00:19:30,610 --> 00:19:32,340 per veure com manejaria això. 444 00:19:32,340 --> 00:19:37,260 Només assegureu-vos que vostès estan posant a prova per casos en què no reben la millor 445 00:19:37,260 --> 00:19:38,590 d'entrada, diguem. 446 00:19:38,590 --> 00:19:40,510 I una do while és sovint la millor 447 00:19:40,510 --> 00:19:45,260 manera de dissenyar el seu codi per que compleix amb aquest àmbit. 448 00:19:45,260 --> 00:19:45,760 D'ACORD. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> D'ACORD. 451 00:19:49,470 --> 00:19:53,270 Així que aquest és probablement el més bucle complex dels tres 452 00:19:53,270 --> 00:19:54,990 que hem vist fins ara. 453 00:19:54,990 --> 00:19:56,689 I sembla molt complicat en principi. 454 00:19:56,689 --> 00:19:59,730 Però et garanteixo que, una vegada que vostès aconseguir la caiguda de com utilitzar un bucle for, 455 00:19:59,730 --> 00:20:03,320 és una de les coses més útils, la majoria d'eines útils en el seu arsenal 456 00:20:03,320 --> 00:20:05,300 per avançar en aquesta classe. 457 00:20:05,300 --> 00:20:09,920 >> Així per exemple, en Scratch, vam tenir aquesta molt simple bloc 458 00:20:09,920 --> 00:20:13,180 que acaba de dir repeteixi aquesta assegurança frases cert nombre de vegades. 459 00:20:13,180 --> 00:20:16,260 Per cert, SAJ-- això és Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Nosaltres moltes vegades vam signar el nostre correus electrònics SAJ. 461 00:20:18,740 --> 00:20:20,360 Si diem SAJ, no ser confós. 462 00:20:20,360 --> 00:20:22,630 Això és només nosaltres. 463 00:20:22,630 --> 00:20:28,600 >> Així que en Scratch, hem estat capaços de tenir un bloc que va dir, m'encanta repetir SAJ! 464 00:20:28,600 --> 00:20:29,430 10 vegades. 465 00:20:29,430 --> 00:20:30,130 Molt senzill. 466 00:20:30,130 --> 00:20:32,302 La lògica darrere d'això és una molt, molt simple, oi? 467 00:20:32,302 --> 00:20:35,260 Vull anar primer a través de la primera temps i veure que, per segona vegada 468 00:20:35,260 --> 00:20:38,510 i veure que, per tercera vegada, etc. i així successivament, fins arribar a 10. 469 00:20:38,510 --> 00:20:41,960 >> I la forma en què representaria que en codi és només a través d'un senzill bucle for. 470 00:20:41,960 --> 00:20:45,440 Així que per, vostè va a declarar la variable d'aquí, en aquest cas, 471 00:20:45,440 --> 00:20:46,349 amb un int. 472 00:20:46,349 --> 00:20:47,390 Anem a cridar i. 473 00:20:47,390 --> 00:20:49,500 Anem a inicialitzar a 0. 474 00:20:49,500 --> 00:20:52,490 I l'edició de parada és serà i és menor de 10. 475 00:20:52,490 --> 00:20:54,622 I l'actualització serà i ++. 476 00:20:54,622 --> 00:20:57,750 >> I dins del bucle, que va per executar fins que finalment 477 00:20:57,750 --> 00:21:01,490 colpeja l'extrem de la condición-- en el qual cas, que va trencar el bucle. 478 00:21:01,490 --> 00:21:04,600 Hi ha d'haver coses que vostè nois han tot tipus de vist abans 479 00:21:04,600 --> 00:21:07,270 i va haver de fer per al seu problema d'un conjunt. 480 00:21:07,270 --> 00:21:12,310 Algú té alguna pregunta respecte de bucles en aquest moment? 481 00:21:12,310 --> 00:21:12,930 D'ACORD. 482 00:21:12,930 --> 00:21:13,430 Gran. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> D'ACORD. 485 00:21:18,620 --> 00:21:22,270 Així que per a aquells de vostès que tenen llegir l'especificació de conjunt de processadors per a aquesta setmana 486 00:21:22,270 --> 00:21:27,690 Sabem que anem a haver d'emprar una cosa anomenada ASCII i taula ASCII. 487 00:21:27,690 --> 00:21:32,380 Així que David, en la conferència es va dirigir breument com els ordinadors essentially-- tot 488 00:21:32,380 --> 00:21:35,410 es codifica en un ordinador en binari, en zeros i uns. 489 00:21:35,410 --> 00:21:39,740 I la forma en què els ordinadors són capaços per emmagatzemar diferents valors més 490 00:21:39,740 --> 00:21:44,360 a zeros i uns són a través de la cartografia aquests números per representar altres dígits 491 00:21:44,360 --> 00:21:47,220 o essencialment altres personatges. 492 00:21:47,220 --> 00:21:49,810 >> Així doncs, en aquest cas, una ASCII table-- tot el que fa 493 00:21:49,810 --> 00:21:53,600 és caràcters mapa, o caràcters, als nombres. 494 00:21:53,600 --> 00:21:57,385 Així que l'arxiu de codi font en seva computer-- que veu, 495 00:21:57,385 --> 00:22:00,010 bo, un munt de zeros i uns, zeros i uns, zeros i uns. 496 00:22:00,010 --> 00:22:02,350 Això és el que s'emmagatzema a la memòria real de l'ordinador. 497 00:22:02,350 --> 00:22:04,750 >> Però quan els éssers humans volen comunicar-se amb l'ordinador, 498 00:22:04,750 --> 00:22:08,249 ens want-- diem, per exemple, si vull la A majúscula, 499 00:22:08,249 --> 00:22:10,540 Vaig a necessitar alguna manera de dir-li a l'ordinador, oh, 500 00:22:10,540 --> 00:22:16,300 quan escric en majúscules A, vull dir aquesta representació en binari. 501 00:22:16,300 --> 00:22:22,260 >> I així, la forma de fer que es va llançar una El arbitrari diu una taula ASCII, 502 00:22:22,260 --> 00:22:25,020 on nosaltres, com a éssers humans, com programadors, fa algun temps, 503 00:22:25,020 --> 00:22:28,660 arbitràriament vam decidir que anaven a assignar aquests nombres 504 00:22:28,660 --> 00:22:30,960 valors a aquests personatges. 505 00:22:30,960 --> 00:22:32,720 >> Així que vostès poden google aquesta línia. 506 00:22:32,720 --> 00:22:37,120 Crec que hi ha un enllaç a ella en el seu pset-- només una taula de mapa ASCII, ASCII 507 00:22:37,120 --> 00:22:37,720 taula. 508 00:22:37,720 --> 00:22:40,722 Simplement es tradueix binària números en caràcters. 509 00:22:40,722 --> 00:22:42,930 I serà molt útil per al seu conjunt de problemes 510 00:22:42,930 --> 00:22:45,470 cada vegada que vulgueu calcular alguna cosa o si 511 00:22:45,470 --> 00:22:47,880 desitgi mostrar certa caràcters o nombres enters 512 00:22:47,880 --> 00:22:50,327 o manipular certs personatges. 513 00:22:50,327 --> 00:22:52,160 Serà molt important que tots vostès 514 00:22:52,160 --> 00:22:55,140 saber com navegar una taula ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Així, per exemple, la majúscula A es representa pel nombre 65. 516 00:23:01,260 --> 00:23:04,207 I la minúscula està representat per 97. 517 00:23:04,207 --> 00:23:07,040 Així que és important saber que la diferència entre els dos valors 518 00:23:07,040 --> 00:23:08,320 és 32. 519 00:23:08,320 --> 00:23:13,210 Sovint, si vostè necessita per convertir de una a l'altra, la diferència és de 32. 520 00:23:13,210 --> 00:23:15,710 I no et preocupis si ets tipus de confusa en això al principi. 521 00:23:15,710 --> 00:23:20,230 Anem a anar sobre la forma en què ho faria emprar aquesta en codi real. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> D'ACORD. 524 00:23:26,380 --> 00:23:30,770 Així que per a aquells de vostès amb els ordinadors portàtils fora, no dubti en tirar d'una taula ASCII, 525 00:23:30,770 --> 00:23:36,030 perquè aquests probablement requereixen vostès fer referència 526 00:23:36,030 --> 00:23:38,100 el que els personatges són. 527 00:23:38,100 --> 00:23:38,640 D'ACORD. 528 00:23:38,640 --> 00:23:42,840 >> Així que sabent que certa caràcters s'assignen a determinats nombres, 529 00:23:42,840 --> 00:23:47,240 si hagués de córrer només el primer línia d'aquesta code-- el printf 1, 530 00:23:47,240 --> 00:23:50,900 minúscula amb menys majúscula A. Algú 531 00:23:50,900 --> 00:23:55,880 tenir una conjectura sobre el que seria impressió de la pantalla en aquest moment? 532 00:23:55,880 --> 00:23:58,190 >> Així que en primer lloc, el que fa minúscula representen? 533 00:23:58,190 --> 00:24:00,990 Quin nombre és que codificat en la taula ASCII. 534 00:24:00,990 --> 00:24:01,490 Ho sentim? 535 00:24:01,490 --> 00:24:02,630 >> AUDIÈNCIA: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI Peng: 97, molt bé. 537 00:24:03,630 --> 00:24:05,077 ¿I què és majúscula? 538 00:24:05,077 --> 00:24:06,330 >> AUDIÈNCIA: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI Peng: Llavors, què és 97, menys de 65 anys? 540 00:24:08,255 --> 00:24:09,227 >> AUDIÈNCIA: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI Peng: OK. 542 00:24:09,810 --> 00:24:13,530 Així que què pensen vostès que va a passar quan d'entrada aquesta línia de codi 543 00:24:13,530 --> 00:24:14,670 en el meu ordinador? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> AUDIÈNCIA: [inaudible]. 546 00:24:19,896 --> 00:24:21,020 ANDI Peng: Malauradament, parlar. 547 00:24:21,020 --> 00:24:22,520 No et preocupis. 548 00:24:22,520 --> 00:24:25,750 Aquest és un molt segur medi ambient, menys la càmera. 549 00:24:25,750 --> 00:24:27,550 Tots anem A-- sense preocupacions. 550 00:24:27,550 --> 00:24:30,940 Així que tots anem a fer veure que és només ens esgarrifós en aquesta habitació. 551 00:24:30,940 --> 00:24:31,480 No et preocupis. 552 00:24:31,480 --> 00:24:33,410 Cap pregunta és massa estúpid. 553 00:24:33,410 --> 00:24:35,300 Cap resposta és una resposta estúpida. 554 00:24:35,300 --> 00:24:38,260 Probablement vaig a cometre errors en el curs de la meva ensenyament. 555 00:24:38,260 --> 00:24:40,740 De debò, nois, només blurt a terme. 556 00:24:40,740 --> 00:24:43,092 Tingues confiança en tu mateix, saps? 557 00:24:43,092 --> 00:24:43,800 Llavors, què va ser això? 558 00:24:43,800 --> 00:24:47,990 Qui va dir que l'última resposta? 559 00:24:47,990 --> 00:24:48,540 D'ACORD. 560 00:24:48,540 --> 00:24:50,380 Crida que agradable i clara. 561 00:24:50,380 --> 00:24:51,220 >> AUDIÈNCIA: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI Peng: 32. 563 00:24:51,850 --> 00:24:54,141 OK, anem a executar aquest codi i veure si això és el que passa. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 D'ACORD. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Així com vostès poden tipus de veure, la notació típica tinc 568 00:25:06,360 --> 00:25:12,250 establert aquí per com anàvem a emprar qualsevol tipus de programa al nostre ordinador. 569 00:25:12,250 --> 00:25:14,770 Tenim la nostra funció principal dins la nostra funció principal. 570 00:25:14,770 --> 00:25:17,265 Jo només vaig a copiar i pegui aquesta línia de codi. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 També vagi amb compte quan nois estan copiant i enganxant el codi. 573 00:25:23,540 --> 00:25:28,750 De vegades, certs operadors no enganxar sobre correctament. 574 00:25:28,750 --> 00:25:31,397 En aquest cas, el signe menys senyal era en realitat un guió. 575 00:25:31,397 --> 00:25:32,980 I pel que l'equip no recollir-lo. 576 00:25:32,980 --> 00:25:35,870 Així que vaig haver de tornar enrere i torni a escriure físicament això. 577 00:25:35,870 --> 00:25:37,846 Només vagi amb compte en que vostès estan fent això. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> D'ACORD. 580 00:25:42,660 --> 00:25:43,980 Anem a executar aquesta aquí. 581 00:25:43,980 --> 00:25:45,670 Així que anem a cd a la nostra secció_2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 He trucat a aquest programa asciimath. 584 00:25:52,030 --> 00:25:55,690 Així que recorda, quan correm cap programa, volem primer compilar 585 00:25:55,690 --> 00:25:57,150 mitjançant l'execució mitjançant la nostra marca. 586 00:25:57,150 --> 00:26:00,030 I després volem executar realitat el programa fent punt-ratlla vertical. 587 00:26:00,030 --> 00:26:01,280 Així que anem a ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Dreta, aquí anem. 590 00:26:06,590 --> 00:26:07,410 I veiem 32. 591 00:26:07,410 --> 00:26:07,930 Ben fet. 592 00:26:07,930 --> 00:26:10,340 Mereixes un tros de caramel. 593 00:26:10,340 --> 00:26:11,160 Caramel per a vostè. 594 00:26:11,160 --> 00:26:11,900 Ho sento. 595 00:26:11,900 --> 00:26:13,100 Tot bé. 596 00:26:13,100 --> 00:26:13,670 D'ACORD. 597 00:26:13,670 --> 00:26:18,070 Així que podem tornar al nostre exemple aquí. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, no. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 D'ACORD. 603 00:26:32,490 --> 00:26:34,610 Jo només vaig a seguir així. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 D'ACORD. 606 00:26:51,240 --> 00:26:51,740 D'ACORD. 607 00:26:51,740 --> 00:26:55,340 Així com vostès poden veure, podem fer un munt de coses molt interessants, 608 00:26:55,340 --> 00:26:58,880 un munt de coses molt interessants, una gran quantitat de coses molt complicades que impliquen 609 00:26:58,880 --> 00:27:02,720 Caràcters ASCII i números. 610 00:27:02,720 --> 00:27:05,890 Quan arribi a la línia de cinc, això és molt per seguir endavant. 611 00:27:05,890 --> 00:27:07,640 No anirem a través de la secció. 612 00:27:07,640 --> 00:27:10,720 No dubti, si es pot, raonar en paper 613 00:27:10,720 --> 00:27:14,750 primer en el que hauria d'estar succeint quan introdueix una cadena com de valors. 614 00:27:14,750 --> 00:27:19,720 Per exemple, en l'última línia, tenim z-- que representa un cert number-- 615 00:27:19,720 --> 00:27:24,740 A-- que també representa un certs number-- més 1 mòduls 26 616 00:27:24,740 --> 00:27:26,750 a més de minúscules a. 617 00:27:26,750 --> 00:27:29,220 >> Si vostès seguir llegint a través d'aquests, 618 00:27:29,220 --> 00:27:34,009 pot veure un patró ve en com estem manipulant el codi. 619 00:27:34,009 --> 00:27:36,050 El recomano, recomano encaridament després de la secció a tots vostès 620 00:27:36,050 --> 00:27:38,160 nois van per davant i l'entrada els tot a l'ordinador 621 00:27:38,160 --> 00:27:40,060 i veure quin tipus de els números estan sortint 622 00:27:40,060 --> 00:27:43,090 i el raonament a través de per què aquests són passant, perquè per als seus conjunts de processadors 623 00:27:43,090 --> 00:27:45,060 que serà realment important perquè vostè entengui 624 00:27:45,060 --> 00:27:47,132 per què certes coses estan succeint. 625 00:27:47,132 --> 00:27:48,590 Totes aquestes diapositives estaran en línia. 626 00:27:48,590 --> 00:27:51,510 Així que no es preocupa per intentar copiar físicament notes. 627 00:27:51,510 --> 00:27:52,510 En línia de tot. 628 00:27:52,510 --> 00:27:54,050 En aquesta secció si estarà en línia. 629 00:27:54,050 --> 00:27:57,500 Tota la meva codi font que Estic corrent estarà en línia. 630 00:27:57,500 --> 00:27:58,180 Sí. 631 00:27:58,180 --> 00:27:59,430 Sabia vostè encara té una pregunta? 632 00:27:59,430 --> 00:28:00,587 AUDIÈNCIA: Quin és mòduls? 633 00:28:00,587 --> 00:28:01,170 ANDI Peng: OK. 634 00:28:01,170 --> 00:28:05,620 Així mòdul és un operador que va a ser bastant important conjunt de processadors dels seus nois 635 00:28:05,620 --> 00:28:06,690 aquí. 636 00:28:06,690 --> 00:28:12,280 Així que la manera que els operadors en C i en el treball de programació 637 00:28:12,280 --> 00:28:16,360 és que vostè té el que s'anomena la símbol de la divisió i el símbol de mòdul, 638 00:28:16,360 --> 00:28:18,350 que és com el signe de percentatge. 639 00:28:18,350 --> 00:28:24,840 >> Així que en C, quan fas un sencer dividit per un sencer amb una barra, 640 00:28:24,840 --> 00:28:27,720 C té una tendència a voler tallar off tots els punts decimals, 641 00:28:27,720 --> 00:28:30,290 perquè un nombre enter vol per convertir a un enter. 642 00:28:30,290 --> 00:28:33,550 No voldrà ser un doble amb un munt de decimals tot després d'ella. 643 00:28:33,550 --> 00:28:39,322 >> Així que si ho faig 3 dividit per 2, que va per tallar el 0,5 i només li donarà 1. 644 00:28:39,322 --> 00:28:41,530 Així que això és una cosa per estar molt acurat de quan estàs 645 00:28:41,530 --> 00:28:45,294 fent qualsevol tipus de matemàtiques a la programació, és que els números que queden 646 00:28:45,294 --> 00:28:47,210 poden no ser els números que estaves pensant, 647 00:28:47,210 --> 00:28:50,190 que és la raó per arrodoniment en la seva últim conjunt de processadors és tan important. 648 00:28:50,190 --> 00:28:51,980 >> Mòdul li dóna la resta. 649 00:28:51,980 --> 00:28:56,200 Així, per exemple, si ho vaig fer 3 mòdul 2-- mode 3 per cent signe 2-- 650 00:28:56,200 --> 00:28:58,020 li donaria la resta d'aquest. 651 00:28:58,020 --> 00:29:00,460 Així març dividit per 2 és 1,5. 652 00:29:00,460 --> 00:29:01,410 Es 1 resta d'1. 653 00:29:01,410 --> 00:29:04,600 Li donaria a la 1, que és la resta d'això. 654 00:29:04,600 --> 00:29:07,361 >> Així que quan vostès s'estan movent a través de la taula ASCII, 655 00:29:07,361 --> 00:29:09,735 mòdul va a acabar sent cosa que és molt important, 656 00:29:09,735 --> 00:29:11,240 i anem a discutir això més endavant. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> D'ACORD. 659 00:29:19,040 --> 00:29:27,300 Així que una cosa que és bastant, bastant nou i bastant únic 660 00:29:27,300 --> 00:29:31,920 que hem discutit aquesta setmana és el concepte del que és una matriu. 661 00:29:31,920 --> 00:29:34,370 Així matriu és el primer tipus d'estructura de dades 662 00:29:34,370 --> 00:29:36,320 que anem a trobar en aquesta classe. 663 00:29:36,320 --> 00:29:40,010 Tota l'estructura de dades s'està algun tipus d'arbitrària, 664 00:29:40,010 --> 00:29:43,370 literalment coses com l'estructura que nosaltres com a programadors hem creat, 665 00:29:43,370 --> 00:29:47,890 que hem posat al nostre codi que pot contenir altres peces de codi. 666 00:29:47,890 --> 00:29:51,090 >> Així que en aquest sentit, un array-- pensar en ell com un arxivador, 667 00:29:51,090 --> 00:29:53,470 on si obre diferent prestatgeries del seu gabinet, 668 00:29:53,470 --> 00:29:55,630 es pot accedir a diferents coses. 669 00:29:55,630 --> 00:29:58,630 En la memòria, un array només està fent el mateix en l'equip. 670 00:29:58,630 --> 00:30:01,730 Vostè pot tenir diferents que blocks-- cridar-los indices-- d'una matriu. 671 00:30:01,730 --> 00:30:04,210 És com un bloc, un prestatge de la memòria 672 00:30:04,210 --> 00:30:07,580 que hem creat dins del seu equip que pot introduir 673 00:30:07,580 --> 00:30:10,270 certes coses en diferents espais. 674 00:30:10,270 --> 00:30:18,000 >> Així que amb una matriu, sempre cal specify-- 675 00:30:18,000 --> 00:30:22,360 ha d'especificar a declarar un matriu en el següent format. 676 00:30:22,360 --> 00:30:24,290 Vas a primera especificar el tipus de dades 677 00:30:24,290 --> 00:30:25,831 que desitja crear de la matriu. 678 00:30:25,831 --> 00:30:28,870 Si vull una matriu d'enters, Me'n vaig a posar int allà mateix. 679 00:30:28,870 --> 00:30:32,079 Si vull una matriu de cadenes, Me'n vaig a posar cadenes allà, 680 00:30:32,079 --> 00:30:34,995 el nom de la seva matriu, i després vas a tenir claudàtors. 681 00:30:34,995 --> 00:30:39,580 I dins dels claudàtors, ets va tenir la mida de la seva matriu. 682 00:30:39,580 --> 00:30:42,900 >> Una cosa que és realment important per a tenir en compte en crear arrays és 683 00:30:42,900 --> 00:30:46,530 que, una vegada que es crea un array, que la mida no pot canviar. 684 00:30:46,530 --> 00:30:50,180 Així que si vostè sap que en aquest moment vostè té una matriu de mida 10, 685 00:30:50,180 --> 00:30:54,550 vostè sap que vaig a tenir 10 cèl·lules dins o 10 índexs dins d'aquesta matriu, 686 00:30:54,550 --> 00:30:56,830 i que mai va ampliar o disminuir 687 00:30:56,830 --> 00:30:59,850 tant i fa, i que hi ha Actualment només 10 blocs d'espai 688 00:30:59,850 --> 00:31:04,490 assignat en la seva memòria que pot emmagatzemar fins a 10 coses de tot el que has posat. 689 00:31:04,490 --> 00:31:08,790 >> Així d'aquesta manera, un tipus de dades de matriu, l'estructura de dades que és una matriu 690 00:31:08,790 --> 00:31:13,392 és molt diferent d'alguns altres que anem a estar cobrint més endavant en aquest curs. 691 00:31:13,392 --> 00:31:15,170 Sí. 692 00:31:15,170 --> 00:31:20,080 Per exemple, si vostè vol crear una matriu de mida 3 que 693 00:31:20,080 --> 00:31:23,670 variables contingudes de integer-- oh, ho sento, de temperature-- 694 00:31:23,670 --> 00:31:25,640 i la temperatura, de Per descomptat, és un nombre sencer. 695 00:31:25,640 --> 00:31:28,710 >> Així que ens vam crear int, que és el tipus de dades del que volem desar. 696 00:31:28,710 --> 00:31:32,680 Anem a trucar a aquesta temperatura en nom de la nomenclatura dels noms 697 00:31:32,680 --> 00:31:34,200 cosa que tots entenem. 698 00:31:34,200 --> 00:31:35,900 I tindrem entre claudàtors. 699 00:31:35,900 --> 00:31:37,200 I volem tres nombres. 700 00:31:37,200 --> 00:31:39,000 Així que anem a posar de tres a l'interior de la mateixa. 701 00:31:39,000 --> 00:31:41,041 >> Una cosa que és molt important a tenir en compte 702 00:31:41,041 --> 00:31:43,530 és que les matrius s'indexen zero. 703 00:31:43,530 --> 00:31:46,410 Tot el que significa és que vostè començar amb l'índex de 0, 704 00:31:46,410 --> 00:31:49,800 i s'executa a través de la mida de la matriu almenys 1. 705 00:31:49,800 --> 00:31:52,730 Així, per exemple aquí, tenir una matriu de mida 3. 706 00:31:52,730 --> 00:31:54,680 Serà capaç de a celebrar tres valors. 707 00:31:54,680 --> 00:31:57,450 Però els números que themselves-- número, la matriu, que índex, 708 00:31:57,450 --> 00:32:00,271 la matriu, són del 0 al 2. 709 00:32:00,271 --> 00:32:03,520 Així que nois, ser molt, molt acurat quan vostè va a través dels seus problemes establerts 710 00:32:03,520 --> 00:32:06,500 i la creació de qualsevol tipus de matriu, perquè moltes de les vegades és 711 00:32:06,500 --> 00:32:08,490 molt, molt fàcil d'oblidar això. 712 00:32:08,490 --> 00:32:11,840 En realitat, jo no tinc l'índex de 3, que actualment només 713 00:32:11,840 --> 00:32:13,130 tenir l'índex de 2. 714 00:32:13,130 --> 00:32:16,046 I si intenta accedir a la tercera índex, 715 00:32:16,046 --> 00:32:18,170 que va ser el que és anomenat el terminador nul. 716 00:32:18,170 --> 00:32:19,990 No va a realitat existir en la matriu. 717 00:32:19,990 --> 00:32:21,781 I l'equip és No agradarà això. 718 00:32:21,781 --> 00:32:24,570 Així que vagi amb compte quan que està accedint coses 719 00:32:24,570 --> 00:32:28,070 per assegurar-se que s'acordi que les matrius són zero indexats. 720 00:32:28,070 --> 00:32:28,880 >> D'ACORD. 721 00:32:28,880 --> 00:32:34,030 Així que el primer exemple és només una manera de crear una matriu. 722 00:32:34,030 --> 00:32:36,790 El segon exemple que tinc a continuació és només una forma separada 723 00:32:36,790 --> 00:32:40,210 de la creació del que és el mateix de dades estructura que acabem introduïts. 724 00:32:40,210 --> 00:32:44,347 Així que en comptes de físicament funcionant a través i posar a la temperatura de 0 725 00:32:44,347 --> 00:32:47,180 és igual al que sigui, la temperatura 1 és igual al que, de temperatura 2 iguals 726 00:32:47,180 --> 00:32:50,950 el que sigui, el que vaig poder en realitat només crear directament tot en una sola línia 727 00:32:50,950 --> 00:32:53,010 entre claudàtors temperatura iguals. 728 00:32:53,010 --> 00:32:56,536 >> I fixin-se en aquest cas, no cal per especificar la mida de la seva matriu és, 729 00:32:56,536 --> 00:32:59,160 perquè l'equip va a anar a través i veure que hi ha 730 00:32:59,160 --> 00:33:01,570 tres elements en aquestes claus. 731 00:33:01,570 --> 00:33:04,000 I es va a saber, està bé, Necessito una matriu de mida 3. 732 00:33:04,000 --> 00:33:07,440 No necessitaràs d'entrada és de la següent manera. 733 00:33:07,440 --> 00:33:10,170 >> I també, si, d'aquesta manera. 734 00:33:10,170 --> 00:33:12,610 Algú té preguntes pel que fa a com fem arranjaments 735 00:33:12,610 --> 00:33:17,391 o com funciona l'estructura d'una matriu? 736 00:33:17,391 --> 00:33:17,890 Sí. 737 00:33:17,890 --> 00:33:18,806 >> AUDIÈNCIA: [inaudible]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI Peng: Sí, exactament. 740 00:33:22,690 --> 00:33:26,150 Així que si anés a declarar i inicialitzar una matriu el següent mètode, 741 00:33:26,150 --> 00:33:28,477 que és la segona manera, vostè pot simplement deixar aquests. 742 00:33:28,477 --> 00:33:30,310 I l'ordinador sap automàticament que 743 00:33:30,310 --> 00:33:33,950 ha de comptar quants elements estan en aquestes claus, separats 744 00:33:33,950 --> 00:33:34,930 per comes. 745 00:33:34,930 --> 00:33:37,517 >> Així que aquí veuen 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Així que l'equip sap, oh, hi ha tres enters. 747 00:33:39,600 --> 00:33:45,960 Sé que per crear un nom de matriu temperatura amb tres elements en els mateixos. 748 00:33:45,960 --> 00:33:46,590 Bona pregunta. 749 00:33:46,590 --> 00:33:47,090 Sí. 750 00:33:47,090 --> 00:33:51,590 >> AUDIÈNCIA: ¿No és possible la creació de una matriu amb diferents tipus de dades 751 00:33:51,590 --> 00:33:53,021 que es podia entrar-hi? 752 00:33:53,021 --> 00:33:56,746 Per exemple, amb nombres enters [inaudible]? 753 00:33:56,746 --> 00:33:59,120 ANDI Peng: A l'efecte d'aquesta classe, no, ara mateix. 754 00:33:59,120 --> 00:34:03,070 Quan es crea un conjunt de dades estructurar com una matriu, 755 00:34:03,070 --> 00:34:04,990 estàs dient la equip, hey, et necessito 756 00:34:04,990 --> 00:34:08,159 assignar aquest molt memòria en el meu disc dur, 757 00:34:08,159 --> 00:34:10,690 amb cada cel·la de ser una cert nombre de bits. 758 00:34:10,690 --> 00:34:13,429 >> Recordeu que vam aprendre a la setmana zero que dades diferents 759 00:34:13,429 --> 00:34:15,300 tipus tenen diferents mides? 760 00:34:15,300 --> 00:34:17,630 Així, per exemple, una cadena és una quantitat diferent 761 00:34:17,630 --> 00:34:20,719 d'espai que un char, que és una quantitat diferent d'espai 762 00:34:20,719 --> 00:34:21,830 a partir d'un nombre enter. 763 00:34:21,830 --> 00:34:25,534 I així, si no s'especifica i barrejar i combinar quins tipus de variables 764 00:34:25,534 --> 00:34:27,659 vostè té, l'equip de serà molt confús. 765 00:34:27,659 --> 00:34:29,950 I no va a saber la quantitat de memòria per donar-li. 766 00:34:29,950 --> 00:34:32,480 Així que per als propòsits de la dreta Ara, els ordinadors només poden 767 00:34:32,480 --> 00:34:36,120 reconèixer un tipus d'una matriu. 768 00:34:36,120 --> 00:34:37,940 Bona pregunta. 769 00:34:37,940 --> 00:34:38,440 D'ACORD. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Així que, naturalment, la segona pregunta que tenim 772 00:34:47,120 --> 00:34:50,760 és, bé, ara que hem creat un matriu i que hem posat totes aquestes coses 773 00:34:50,760 --> 00:34:54,190 en la matriu, com anem serà capaç d'accedir-hi? 774 00:34:54,190 --> 00:34:59,710 Així que l'estructura típica que sempre accedir a una matriu és la nostra preciosa per bucle. 775 00:34:59,710 --> 00:35:03,830 Et prometo que vostès que serem veient un munt d'aquest home aquí. 776 00:35:03,830 --> 00:35:06,470 >> Essencialment, qualsevol moment que desitgi per introduir valors en una matriu 777 00:35:06,470 --> 00:35:09,940 o desitja accedir-hi, la millor manera de fer-ho és un bucle for, 778 00:35:09,940 --> 00:35:13,730 perquè en un bucle for, que Saps quantes vegades ets 779 00:35:13,730 --> 00:35:17,290 voldrà córrer a través de la matriu, perquè vostè té una edició parada, oi? 780 00:35:17,290 --> 00:35:19,680 I cada vegada que s'executa a través, pot accedir a 781 00:35:19,680 --> 00:35:21,310 un element diferent de la matriu. 782 00:35:21,310 --> 00:35:26,920 >> I també, aquesta és una raó per la qual típicament començar el nostre bucles en el valor 0, 783 00:35:26,920 --> 00:35:30,080 perquè quan s'accedeix a les matrius, es pot accedir a l'índex zero. 784 00:35:30,080 --> 00:35:32,070 I el que és paral·lel molt bé. 785 00:35:32,070 --> 00:35:35,295 Vostès poden haver volgut escriure per int i és igual a 1. 786 00:35:35,295 --> 00:35:37,330 i és menor que o igual a 3. 787 00:35:37,330 --> 00:35:39,890 >> Però no anava a funcionar tan bé aquí, perquè només 788 00:35:39,890 --> 00:35:42,010 tenir elements de 0, 1, i 2. 789 00:35:42,010 --> 00:35:45,815 I pel que si anés a començar seva i en l'element 1, 2, i 3, 790 00:35:45,815 --> 00:35:48,440 vostè va a acabar corrent fora dels límits de la matriu, 791 00:35:48,440 --> 00:35:50,440 i les coses dolentes van a succeir. 792 00:35:50,440 --> 00:35:54,480 >> Així que espero que vostès veuen el segue de per què en les classes anteriors 793 00:35:54,480 --> 00:35:58,560 us ensenyàvem nois com executar i formatar un bucle for la forma en què ens trobàvem. 794 00:35:58,560 --> 00:36:01,900 És perquè, ara que hem la transició a les matrius, 795 00:36:01,900 --> 00:36:06,760 es pot veure per què els 0 presta si molt bé per a l'accés. 796 00:36:06,760 --> 00:36:09,880 >> Així que la forma en que fem que és que-- Estic simplement imprimir aquí en nom 797 00:36:09,880 --> 00:36:10,830 de imprimir-lo. 798 00:36:10,830 --> 00:36:13,750 Però jo tinc la meva marcador de posició, coma. 799 00:36:13,750 --> 00:36:15,645 I el que accedeix real part està succeint. 800 00:36:15,645 --> 00:36:17,520 El nom de la matriu es va anomenar la temperatura. 801 00:36:17,520 --> 00:36:21,570 Així que és la temperatura i la i-èsim element de la matriu. 802 00:36:21,570 --> 00:36:24,400 >> Així com per recórrer corre, que començarà a 0. 803 00:36:24,400 --> 00:36:27,640 Es va a imprimir la Índex 0 ª d'aquesta matriu. 804 00:36:27,640 --> 00:36:29,599 Després es va a imprimir el primer element. 805 00:36:29,599 --> 00:36:31,431 Després es va a imprimir a terme la segona. 806 00:36:31,431 --> 00:36:32,880 I després anem a trencar. 807 00:36:32,880 --> 00:36:36,718 És clar a tot el món el que està succeint? 808 00:36:36,718 --> 00:36:37,217 Gran. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Tot bé. 811 00:36:44,100 --> 00:36:47,270 Així que aquí tenim una forma de dient, si no volíem 812 00:36:47,270 --> 00:36:50,020 per codificar em en-- com el programador. 813 00:36:50,020 --> 00:36:53,320 Jo no vull realitat física posat en cada element individual 814 00:36:53,320 --> 00:36:54,020 d'aquesta matriu. 815 00:36:54,020 --> 00:36:56,500 Si volgués lloc tenir els valors d'entrada de l'usuari, 816 00:36:56,500 --> 00:36:58,100 ¿Quina és la millor manera de fer això? 817 00:36:58,100 --> 00:37:00,920 >> Bé, aquí he creat aquesta bella funció, 818 00:37:00,920 --> 00:37:03,560 en la qual jo puc declarar una matriu. 819 00:37:03,560 --> 00:37:06,210 Així int scores-- anem simplement diem que volem fer 820 00:37:06,210 --> 00:37:10,660 una matriu que contenia els graus dels 18 dels estudiants aquí en aquesta secció. 821 00:37:10,660 --> 00:37:12,670 Crec que tenim una mica més de 18 nens d'avui. 822 00:37:12,670 --> 00:37:16,460 Però pel bé d'exemple, anem a suposar que teníem 18. 823 00:37:16,460 --> 00:37:21,580 M'agradaria crear un nom de matriu amb puntuacions tipus int, perquè les puntuacions, per descomptat, 824 00:37:21,580 --> 00:37:22,987 són nombres. 825 00:37:22,987 --> 00:37:24,820 I jo tindré 18 entre claudàtors, 826 00:37:24,820 --> 00:37:29,900 perquè aquest és el nombre d'estudiants que vull ser capaç d'emmagatzemar desenes de. 827 00:37:29,900 --> 00:37:32,206 >> I la manera en què jo havia poblen la matriu és que jo havia 828 00:37:32,206 --> 00:37:35,572 executar a través d'un bucle for, de Per descomptat, sent 0 el meu índex 0 ª. 829 00:37:35,572 --> 00:37:38,030 I després, amb 18 sent el meu aturar l'edició, perquè no hi ha 830 00:37:38,030 --> 00:37:39,690 18 elements de la matriu. 831 00:37:39,690 --> 00:37:44,620 I després em vaig a fer printf, introdueixi anotar per student-- bla bla bla. 832 00:37:44,620 --> 00:37:51,171 >> Pot algú dir-me per què aquí estic imprimir i + 1 i no jo? 833 00:37:51,171 --> 00:37:52,920 És una mica un truc es tracta, en realitat no. 834 00:37:52,920 --> 00:37:56,020 En realitat, no físicament afectar l'execució del codi. 835 00:37:56,020 --> 00:37:56,520 Sí. 836 00:37:56,520 --> 00:37:57,909 >> AUDIÈNCIA: [inaudible] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI Peng: Sí, exactament. 838 00:37:58,950 --> 00:38:02,620 És una mica difícil de dir, bé, ets l'estudiant 0th en aquesta classe. 839 00:38:02,620 --> 00:38:03,780 És una mica estrany. 840 00:38:03,780 --> 00:38:08,340 Així que nosaltres, com a éssers humans, no m'agrada pensar en com pensen els ordinadors. 841 00:38:08,340 --> 00:38:10,930 Així que, encara que en el equip, és l'emmagatzematge dels valors 842 00:38:10,930 --> 00:38:13,310 en el 0º índex, quan som éssers humans, no ho fem de veritat 843 00:38:13,310 --> 00:38:15,520 referir-me a nosaltres mateixos com a zero. 844 00:38:15,520 --> 00:38:18,119 Així que quan m'acaba d'impressió que, Vaig a imprimir i afegir 845 00:38:18,119 --> 00:38:19,410 1 només pel bé de la claredat. 846 00:38:19,410 --> 00:38:22,447 Així que quan imprimeixo, jo seré capaç d'imprimir els estudiants de l'1 al 18. 847 00:38:22,447 --> 00:38:24,530 En realitat, no afecta el funcionament de la codi 848 00:38:24,530 --> 00:38:27,110 de cap manera, la forma en què s'imprimeix. 849 00:38:27,110 --> 00:38:30,380 >> Però vagi amb compte quan estàs en realitat l'accés a la matriu. 850 00:38:30,380 --> 00:38:32,780 Quan vegi els resultats i, notar aquí que sóc en realitat 851 00:38:32,780 --> 00:38:38,200 accés a l'índex 0 ª i no a la 1 més 0-- o 1 més 1, 852 00:38:38,200 --> 00:38:45,530 En aquest cas, l'índex de pel que en realitat és clara. 853 00:38:45,530 --> 00:38:48,870 Estan tots tipus d'OK en com això s'està executant a través de 854 00:38:48,870 --> 00:38:51,470 i amb tots els índexs que sóc posar un valor en la matriu 855 00:38:51,470 --> 00:38:55,340 i la creació d'una matriu amb 18 números que l'usuari va a l'entrada? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 D'ACORD. 858 00:38:59,821 --> 00:39:00,321 Fresc. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> D'ACORD. 861 00:39:07,400 --> 00:39:12,220 Ara ens movem cap a alguna cosa que és bastant rellevant per a aquesta peça establir també. 862 00:39:12,220 --> 00:39:15,020 Sé que en la conferència, David-- ho sento, tenies una pregunta? 863 00:39:15,020 --> 00:39:16,840 >> AUDIÈNCIA: Es pot ampliar? 864 00:39:16,840 --> 00:39:18,080 >> ANDI Peng: Sí, així que ho vaig intentar. 865 00:39:18,080 --> 00:39:18,788 Però jo no ho sé. 866 00:39:18,788 --> 00:39:21,437 Per alguna raó, aquesta versió de PowerPoint 867 00:39:21,437 --> 00:39:23,270 és realment no funciona bé amb la pantalla. 868 00:39:23,270 --> 00:39:25,260 Així que només anem per mantenir-lo així. 869 00:39:25,260 --> 00:39:27,280 Tots ells es pujaran en línia. 870 00:39:27,280 --> 00:39:28,218 Ho sento, nois. 871 00:39:28,218 --> 00:39:30,090 Sí. 872 00:39:30,090 --> 00:39:30,980 D'ACORD. 873 00:39:30,980 --> 00:39:35,530 >> Així també podem tenir cordes. 874 00:39:35,530 --> 00:39:39,320 Així que si vostès realment em notice-- Sap Rob es va acostar això en aquesta conferència 875 00:39:39,320 --> 00:39:43,652 que did-- una cadena és en realitat només un conjunt de caràcters, 876 00:39:43,652 --> 00:39:44,860 si es pensa en això, no? 877 00:39:44,860 --> 00:39:47,500 Una cadena és un nom o un frase o una paraula, oi? 878 00:39:47,500 --> 00:39:52,975 >> Si hagués de crear una cadena anomenada Andi-- només el meu nom, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Es pensa en això com una sola variable. 880 00:39:55,460 --> 00:39:58,630 Però, en realitat, es descompon en tot just una sèrie de caràcters. 881 00:39:58,630 --> 00:40:01,910 Per tant, té un caràcter de 1 s'emmagatzemen en un valor de matriu. 882 00:40:01,910 --> 00:40:05,420 Té un caràcter de n emmagatzemada en el segon índex i així successivament i així successivament. 883 00:40:05,420 --> 00:40:08,660 >> Així, de tal manera, en realitat tenen aquest tipus 884 00:40:08,660 --> 00:40:10,970 d'estructura establerta en lloc per a les nostres cadenes. 885 00:40:10,970 --> 00:40:14,660 Així que aquí, si jo hagués de introduir el paraula "menjar" - de manera que la paraula cadena és igual 886 00:40:14,660 --> 00:40:15,540 aconseguir cadena. 887 00:40:15,540 --> 00:40:19,260 Si hagués d'introduir la paraula "menjar", que és físicament la forma en què el meu equip 888 00:40:19,260 --> 00:40:21,870 està emmagatzemant aquesta cadena en la meva memòria. 889 00:40:21,870 --> 00:40:27,140 >> I si volia executar a través d'aquest i d'impressió que fora-- així que per a i 890 00:40:27,140 --> 00:40:30,890 és igual a zero, recorda, en conferència, mica cobert que es diu strlen, 891 00:40:30,890 --> 00:40:32,990 o la longitud de la cadena. 892 00:40:32,990 --> 00:40:36,520 Perquè en realitat no sap el gran que la matriu és 893 00:40:36,520 --> 00:40:38,210 de qualsevol inputting-- de l'usuari 894 00:40:38,210 --> 00:40:40,370 >> Per exemple, he introduït la paraula "menjar", i sé 895 00:40:40,370 --> 00:40:41,870 això és tres caràcters de llarg, no? 896 00:40:41,870 --> 00:40:44,700 Així que podria posar en una de tres que hi ha i tot estarà bé. 897 00:40:44,700 --> 00:40:49,290 Però si la seva entrada de l'usuari alguna cosa això és un nombre diferent de valors, 898 00:40:49,290 --> 00:40:52,760 vostè va a no ser capaç de realment Sap que quan es programa el codi. 899 00:40:52,760 --> 00:40:56,040 >> Així que la forma com fem servir els casos de prova així és que tenim una mica 900 00:40:56,040 --> 00:41:00,070 anomenada strlen, que és només una funció que et diu quant temps una cadena és. 901 00:41:00,070 --> 00:41:02,080 Així strlen de la paraula. 902 00:41:02,080 --> 00:41:03,470 La meva paraula és menjar. 903 00:41:03,470 --> 00:41:05,990 n és igual a strlen de la paraula. 904 00:41:05,990 --> 00:41:08,930 Pot algú dir-me el que valor efectivament hi és? 905 00:41:08,930 --> 00:41:12,550 El que n representa a la dreta Ara, en aquest exemple, si tingués menjar? 906 00:41:12,550 --> 00:41:13,530 >> AUDIÈNCIA: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI Peng: 3, exactament. 908 00:41:14,520 --> 00:41:18,820 Així que tenim per int i és igual zero, n és igual a 3, essencialment. 909 00:41:18,820 --> 00:41:22,355 I em va a córrer fins que sigui menys de 3i ++. 910 00:41:22,355 --> 00:41:24,980 I que va anar en essència a través i fer el mateix. 911 00:41:24,980 --> 00:41:26,979 Es va a imprimir tot valor i donar-li 912 00:41:26,979 --> 00:41:29,700 E-A-T. És només que denota una diferent manera d'escriure-ho. 913 00:41:29,700 --> 00:41:31,170 Això serà molt útil. 914 00:41:31,170 --> 00:41:31,670 Sí. 915 00:41:31,670 --> 00:41:35,174 AUDIÈNCIA: Què hi ha dels beneficis de posar n és igual a la paraula strlen dins d'aquest 916 00:41:35,174 --> 00:41:36,894 bucle for [inaudible]? 917 00:41:36,894 --> 00:41:37,560 ANDI Peng: Sí. 918 00:41:37,560 --> 00:41:44,880 Així que si jo fos A-- dir, per exemple, si jo fos a fer això i després 919 00:41:44,880 --> 00:41:51,935 fer-- oop-- que, al meu codi, seria en realitat estar fent com la mateixa cosa. 920 00:41:51,935 --> 00:41:55,060 No obstant això, la forma en què David va explicar durant la conferència, si algun de vostès 921 00:41:55,060 --> 00:41:57,854 recordi, era que, com éssers humans, com programadors, 922 00:41:57,854 --> 00:42:00,270 Realment tractem de programar la nostra codi perquè el nostre equip té 923 00:42:00,270 --> 00:42:04,070 treballar com a mínim possible, de manera que que el nostre codi és molt eficient. 924 00:42:04,070 --> 00:42:06,850 >> Així que si hagués que hi ha, el que que passaria a través del meu bucle for 925 00:42:06,850 --> 00:42:10,790 és que em declaro una primera i anomenat la variable serà 0. 926 00:42:10,790 --> 00:42:13,350 Vaig a comprovar, oh, el que és el strlen de paraula? 927 00:42:13,350 --> 00:42:15,000 Oh, el strlen es 3. 928 00:42:15,000 --> 00:42:16,191 Així és i menys de tres? 929 00:42:16,191 --> 00:42:16,690 Sí, ho és. 930 00:42:16,690 --> 00:42:17,870 Vaig a córrer. 931 00:42:17,870 --> 00:42:21,130 >> I llavors la segona vegada la volta el bucle, vaig a incrementar i. 932 00:42:21,130 --> 00:42:22,550 i serà un. 933 00:42:22,550 --> 00:42:25,600 I em va a comprovar, oh, però quin és el strlen de la paraula? 934 00:42:25,600 --> 00:42:26,839 Oh, és tres. 935 00:42:26,839 --> 00:42:29,880 ¿I que semblen tipus de deixalla, cada vegada que s'executa a través del bucle, 936 00:42:29,880 --> 00:42:33,340 a la comprovació de la funció, tot i que els strlen de paraula 937 00:42:33,340 --> 00:42:35,490 en realitat mai canvia? 938 00:42:35,490 --> 00:42:38,590 >> Així que és més potència d'un ordinador. 939 00:42:38,590 --> 00:42:42,180 Quan comences a parlar sobre les coses que són milers de milions 940 00:42:42,180 --> 00:42:44,431 i milers de milions de llocs llarg, imaginar el seu ordinador 941 00:42:44,431 --> 00:42:47,430 haver d'anar físicament a través i comprovar tot això cada vegada. 942 00:42:47,430 --> 00:42:53,170 Per això, per fer just en nom de l'eficiència, 943 00:42:53,170 --> 00:42:57,620 tendim a simplement fer això, perquè d'aquesta manera, només estem 944 00:42:57,620 --> 00:42:59,850 cridant a la funció un cop al principi, 945 00:42:59,850 --> 00:43:01,766 i que cada vegada que passa perquè va 946 00:43:01,766 --> 00:43:03,789 per emmagatzemar el valor 3 allà, que no ho fa 947 00:43:03,789 --> 00:43:05,330 de comprovar contínuament cada vegada. 948 00:43:05,330 --> 00:43:05,743 Sí. 949 00:43:05,743 --> 00:43:06,409 >> AUDIÈNCIA: Ho sentim. 950 00:43:06,409 --> 00:43:09,070 Just [inaudible]. 951 00:43:09,070 --> 00:43:13,985 Podria vostè int n és igual a strlen i posar que per sobre de la part exterior del bucle for 952 00:43:13,985 --> 00:43:15,364 tant be? 953 00:43:15,364 --> 00:43:16,030 ANDI Peng: Sí. 954 00:43:16,030 --> 00:43:17,100 Vostè podria fer això, absolutament. 955 00:43:17,100 --> 00:43:19,970 La raó per la qual tenim aquí és perquè la forma en què una de les obres de bucle 956 00:43:19,970 --> 00:43:23,500 és que es diu variable local en el sentit 957 00:43:23,500 --> 00:43:26,150 que tot el que ets crear dins del bucle for 958 00:43:26,150 --> 00:43:27,890 només existeix a l'interior del bucle for. 959 00:43:27,890 --> 00:43:31,530 >> Així que l'única variable i existeix en aquests suports. 960 00:43:31,530 --> 00:43:35,260 I aquí les variables de N també només existeix en aquests suports. 961 00:43:35,260 --> 00:43:39,350 Així que si anés a utilitzar strlen de paraula diverses vegades fins a baix, 962 00:43:39,350 --> 00:43:42,230 absolutament la millor manera de fer- seria declarar fins a la part superior 963 00:43:42,230 --> 00:43:43,563 per la qual cosa no ha de fer-ho una vegada. 964 00:43:43,563 --> 00:43:45,420 Sí. 965 00:43:45,420 --> 00:43:47,670 AUDIÈNCIA: Per què té un nova línia després que el cent 966 00:43:47,670 --> 00:43:51,300 veure si vostè vol posar tot les lletres al costat d'ell per separat? 967 00:43:51,300 --> 00:43:54,140 >> ANDI Peng: Oh, jo volia imprimir-les totes en cada línia. 968 00:43:54,140 --> 00:43:54,890 No importa. 969 00:43:54,890 --> 00:43:55,890 Sí, es tracta d'un format. 970 00:43:55,890 --> 00:43:57,181 Aquesta és una bona pregunta, però. 971 00:43:57,181 --> 00:43:59,360 Sí, si volia imprimir tot en una sola línia, 972 00:43:59,360 --> 00:44:02,731 Jo no tindria el guió en. 973 00:44:02,731 --> 00:44:03,230 D'ACORD. 974 00:44:03,230 --> 00:44:06,880 Cada un de bo? 975 00:44:06,880 --> 00:44:07,500 D'ACORD. 976 00:44:07,500 --> 00:44:08,000 Fresc. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Així que crec que he parlat prou. 979 00:44:14,750 --> 00:44:20,040 Torn de Vostès s'executi a través de la codi i dir-me el que està malament aquí. 980 00:44:20,040 --> 00:44:21,560 On és l'error? 981 00:44:21,560 --> 00:44:26,920 Així com vostè pot veure, he declarat 1 nova matriu de tipus cadena de classe trucada. 982 00:44:26,920 --> 00:44:30,220 I he introduït Sam, Jess, i Kim en ella. 983 00:44:30,220 --> 00:44:33,400 I estic intentant imprimir tots els elements de la matriu. 984 00:44:33,400 --> 00:44:36,796 Pot algú dir-me per què això em va donar problemes? 985 00:44:36,796 --> 00:44:39,320 Et vaig a donar 10 nois segon per pensar en això. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> D'ACORD. 988 00:44:56,619 --> 00:44:57,118 Sí? 989 00:44:57,118 --> 00:45:01,972 >> AUDIÈNCIA: És el centreesquerra igual a 3 o [inaudible]? 990 00:45:01,972 --> 00:45:02,680 ANDI Peng: Correcte. 991 00:45:02,680 --> 00:45:06,784 Llavors, quantes vegades és aquesta realitat va a córrer a través d'aquest circuit? 992 00:45:06,784 --> 00:45:07,620 >> AUDIÈNCIA: Quatre. 993 00:45:07,620 --> 00:45:08,070 >> ANDI Peng: Exactament. 994 00:45:08,070 --> 00:45:09,445 Va a través de quatre vegades. 995 00:45:09,445 --> 00:45:12,250 Es va a executar a través de als 0, 1, 2, i 3, 996 00:45:12,250 --> 00:45:15,200 a causa que el seu element és i és menor que o igual a 3. 997 00:45:15,200 --> 00:45:16,960 No deixarà quan és 2. 998 00:45:16,960 --> 00:45:18,800 Es va a mantenir anar fins que arriba a 3. 999 00:45:18,800 --> 00:45:21,720 I com sabem, hi ha només tres elements de la nostra gamma actual. 1000 00:45:21,720 --> 00:45:27,260 >> Si intentem accedir a la cambra element o l'índex de 3, 1001 00:45:27,260 --> 00:45:30,357 vostè va a colpejar a algun lloc en la memòria que no existeix. 1002 00:45:30,357 --> 00:45:31,690 Es diu el terminador nul. 1003 00:45:31,690 --> 00:45:32,856 Res va a ser-hi. 1004 00:45:32,856 --> 00:45:35,324 El seu equip no es va a ser molt feliç amb tu. 1005 00:45:35,324 --> 00:45:36,170 Sí. 1006 00:45:36,170 --> 00:45:38,430 Algú té preguntes sobre per què el que estava succeint? 1007 00:45:38,430 --> 00:45:39,679 Això és un espai comú d'evitar. 1008 00:45:39,679 --> 00:45:40,712 Sí. 1009 00:45:40,712 --> 00:45:45,777 >> AUDIÈNCIA: No El primer llisqui també tenen una cadena de 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI Peng: No. 1011 00:45:46,360 --> 00:45:49,610 Per tant, bàsicament, quan vostè està fent una matriu, 1012 00:45:49,610 --> 00:45:51,540 aquest dret suport allà, que number-- tot 1013 00:45:51,540 --> 00:45:53,480 es diu que és la forma de molts elements que tenen. 1014 00:45:53,480 --> 00:45:55,840 No és en realitat dient me'ls índexs de res. 1015 00:45:55,840 --> 00:45:58,760 Així que en aquest cas, sé que vull escriure amb tres llocs, 1016 00:45:58,760 --> 00:46:02,690 amb tres llocs físics a Sostinc el que vulgui celebrar. 1017 00:46:02,690 --> 00:46:04,510 Així que per això el nombre tres hi és. 1018 00:46:04,510 --> 00:46:06,560 No obstant això, si volia accedir a la realitat, 1019 00:46:06,560 --> 00:46:11,220 si el que volia dir, printf nombre de suport de classe, llavors 1020 00:46:11,220 --> 00:46:14,560 vostè va a posar realment l'índex de física allà. 1021 00:46:14,560 --> 00:46:16,330 Sí, bona pregunta. 1022 00:46:16,330 --> 00:46:20,065 >> AUDIÈNCIA: Així és la física Índex suposa que és [inaudible]? 1023 00:46:20,065 --> 00:46:20,940 ANDI Peng: Ho sento. 1024 00:46:20,940 --> 00:46:21,500 Pots parlar una mica? 1025 00:46:21,500 --> 00:46:24,208 >> AUDIÈNCIA: Així és l'índex físic [Inaudible] cadascuna de les caixes? 1026 00:46:24,208 --> 00:46:25,260 [Inaudible]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI Peng: Sí. 1028 00:46:26,040 --> 00:46:28,970 Així que em vaig a anar de nou a la dreta aquí. 1029 00:46:28,970 --> 00:46:31,120 Pensi aquí. 1030 00:46:31,120 --> 00:46:32,820 Tenim una matriu de mida 3. 1031 00:46:32,820 --> 00:46:35,540 Hi ha tres llocs, com, marcadors de posició física en aquí. 1032 00:46:35,540 --> 00:46:37,620 Però estan nomenats 0, 1 i 2. 1033 00:46:37,620 --> 00:46:40,700 Així que si volia accedir-hi, el camí que jo els accedir 1034 00:46:40,700 --> 00:46:43,480 printf és del que voldria aquí. 1035 00:46:43,480 --> 00:46:45,485 Vostè hauria d'imprimir el nom de la mateixa, 1036 00:46:45,485 --> 00:46:47,610 perquè llavors l'ordinador sap, oh, he de mirar 1037 00:46:47,610 --> 00:46:51,391 en aquesta matriu per a l'índex 0 ª. 1038 00:46:51,391 --> 00:46:51,890 Sí. 1039 00:46:51,890 --> 00:46:53,306 Però la mida de la mateixa no canvia. 1040 00:46:53,306 --> 00:46:55,492 La mida és de 3, sense tenir en compte de com se'ls etiqueta. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 D'ACORD. 1043 00:46:58,820 --> 00:47:01,387 Cada un de bo? 1044 00:47:01,387 --> 00:47:02,970 AUDIÈNCIA: Així que cada vegada que [inaudible]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI Peng: OK. 1047 00:47:06,940 --> 00:47:13,270 Així que en aquest cas, no ho fem de veritat entrar-hi en aquests moments en el curs. 1048 00:47:13,270 --> 00:47:16,760 Però saber que un string-- com jo va dir abans, una cadena és essencialment 1049 00:47:16,760 --> 00:47:18,440 una sèrie de caràcters. 1050 00:47:18,440 --> 00:47:21,430 Així que si puc crear un array de cadenes, que tipus de 1051 00:47:21,430 --> 00:47:24,430 tenen una gran varietat de gamma de personatges, no? 1052 00:47:24,430 --> 00:47:27,720 >> Així que en aquest cas, perquè jo tenir una matriu de cadenes, 1053 00:47:27,720 --> 00:47:31,340 si anés a introduir una paraula molt llarga, que encara ocupa un sol espai, 1054 00:47:31,340 --> 00:47:33,230 perquè aquesta és la cadena. 1055 00:47:33,230 --> 00:47:37,492 Però si hagués de pensar en els personatges d'aquesta matriu, 1056 00:47:37,492 --> 00:47:40,450 llavors això és ocupar molt més personatges que qualsevol de les altres paraules 1057 00:47:40,450 --> 00:47:41,372 són. 1058 00:47:41,372 --> 00:47:42,830 No és realment important per a aquest moment. 1059 00:47:42,830 --> 00:47:44,921 Però això és només general com està funcionant. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> D'ACORD. 1062 00:47:50,560 --> 00:47:55,840 Així que això és una cosa que vaig a deixar que facis molt en el transcurs del semestre. 1063 00:47:55,840 --> 00:47:57,500 Necessito descansar la meva veu. 1064 00:47:57,500 --> 00:47:59,530 Vostès necessita estimular vostès mateixos. 1065 00:47:59,530 --> 00:48:02,300 Molts de vosaltres probablement han de dormir en aquest moment. 1066 00:48:02,300 --> 00:48:05,960 Estic introduint problemes aleatoris on nosaltres com una classe o 1067 00:48:05,960 --> 00:48:09,480 amb un company al teu costat van per passar un parell de minuts discutint 1068 00:48:09,480 --> 00:48:14,980 sobre com anàvem a anar sobre la solució o la creació d'un programa com aquest. 1069 00:48:14,980 --> 00:48:17,100 >> Així que ara mateix, volem per crear un program-- 1070 00:48:17,100 --> 00:48:19,560 anem a dir- upper.c-- que els conversos 1071 00:48:19,560 --> 00:48:24,787 una paraula en minúscules a una classe alta majúscula string--, ho sento. 1072 00:48:24,787 --> 00:48:26,370 Paraula en cadenes, ho sento, és sinònim. 1073 00:48:26,370 --> 00:48:28,370 Vaig a canviar- a significar el mateix. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Sí. 1076 00:48:33,499 --> 00:48:34,540 Prendre un parell de minuts. 1077 00:48:34,540 --> 00:48:37,130 No ha de ser escrit en qualsevol idioma. 1078 00:48:37,130 --> 00:48:39,890 Just en el codi pseudocodi o lògicament la forma en què ho faria tot 1079 00:48:39,890 --> 00:48:42,083 anar fent tal problema. 1080 00:48:42,083 --> 00:48:42,583 Sí. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [CONVERSA SIDE] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> També em vaig adonar que vostès can-- Jo com que veig ja el programa. 1085 00:49:22,130 --> 00:49:24,600 Suposo que la meva falta de manera de presentador és un problema. 1086 00:49:24,600 --> 00:49:27,410 Però està bé. 1087 00:49:27,410 --> 00:49:30,410 >> [CONVERSA SIDE] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Sí, si us plau, nois. 1090 00:50:04,380 --> 00:50:05,400 Vinga aconseguir caramels. 1091 00:50:05,400 --> 00:50:06,372 Vinga aconseguir caramels. 1092 00:50:06,372 --> 00:50:07,698 >> AUDIÈNCIA: Sí! 1093 00:50:07,698 --> 00:50:09,958 >> [CONVERSA SIDE] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI Peng: També, sí, Vaig a començar llançant caramels 1096 00:50:18,100 --> 00:50:20,280 a les persones que no responen a les preguntes. 1097 00:50:20,280 --> 00:50:22,260 Així que tots hem de respondre preguntes. 1098 00:50:22,260 --> 00:50:24,895 O suposo que la gent que no respondre a les preguntes. 1099 00:50:24,895 --> 00:50:26,070 Sí, revés. 1100 00:50:26,070 --> 00:50:28,570 >> [CONVERSA SIDE] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 AUDIÈNCIA: [inaudible] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI Peng: Sí. 1105 00:51:18,340 --> 00:51:19,340 Sí. 1106 00:51:19,340 --> 00:51:22,840 >> [CONVERSA SIDE] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Molt bé, nois. 1109 00:51:41,590 --> 00:51:44,731 Prenguem, com, 10 segons més. 1110 00:51:44,731 --> 00:51:48,210 >> [CONVERSA SIDE] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, nois. 1113 00:52:11,750 --> 00:52:14,920 Així que abans de començar a tractar de en realitat físicament escriure codi, 1114 00:52:14,920 --> 00:52:20,650 un bon hàbit per desenvolupar és que volem primera classe de la raó 1115 00:52:20,650 --> 00:52:22,737 lògicament com anàvem a fer-ho. 1116 00:52:22,737 --> 00:52:24,570 Vostè vol assegurar-se que, abans que físicament 1117 00:52:24,570 --> 00:52:27,210 començar a tractar de codificar en Mario, que faci 1118 00:52:27,210 --> 00:52:28,870 Assegureu-vos que vostè té el seu pseudocodi. 1119 00:52:28,870 --> 00:52:31,235 Que s'està portant a través de el que necessita per crear de manera 1120 00:52:31,235 --> 00:52:33,360 que, quan físicament escriure el seu programa de tarda, 1121 00:52:33,360 --> 00:52:36,640 vostè és més capaç de detectar errors en el codi i coses per l'estil. 1122 00:52:36,640 --> 00:52:40,460 >> Així que anem a començar just por-- en anglès, en pseudocodi, 1123 00:52:40,460 --> 00:52:43,320 ¿Algú vol donar mi una explicació genèrica 1124 00:52:43,320 --> 00:52:46,250 de com anàvem a anar fent això? 1125 00:52:46,250 --> 00:52:48,102 Sí. 1126 00:52:48,102 --> 00:52:49,664 >> AUDIÈNCIA: [inaudible]. 1127 00:52:49,664 --> 00:52:50,830 ANDI Peng: És clar, no es preocupi. 1128 00:52:50,830 --> 00:52:57,233 AUDIÈNCIA: Es pot demanar a o demanar algú per aconseguir cadena 1-- sí, corda, 1129 00:52:57,233 --> 00:52:58,160 i llavors-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI Peng: Sí, de manera que aquest és un bon començament. 1131 00:52:59,826 --> 00:53:01,972 Vaig a començar a escriure, ho sento, com vostè parla. 1132 00:53:01,972 --> 00:53:02,471 Tan-- 1133 00:53:02,471 --> 00:53:05,698 >> AUDIÈNCIA: --el minúscules els números són més alts, no? 1134 00:53:05,698 --> 00:53:08,519 O les lletres minúscules tenen alts nombres? 1135 00:53:08,519 --> 00:53:09,310 ANDI Peng: Exactament. 1136 00:53:09,310 --> 00:53:16,156 AUDIÈNCIA: Llavors restem 32 de qualsevol [inaudible]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI Peng: Gran. 1139 00:53:29,870 --> 00:53:35,020 Així que tipus de tenir un sentit general de com treballar sobre aquest problema. 1140 00:53:35,020 --> 00:53:40,060 Sabent que hem tipus de Vam aprendre la forma física que les cadenes 1141 00:53:40,060 --> 00:53:43,320 s'emmagatzemen a la memòria, el que fas ja 1142 00:53:43,320 --> 00:53:45,920 Saps que vas a probablement ha d'escriure en el codi 1143 00:53:45,920 --> 00:53:48,288 per tal de moure a través de la cadena? 1144 00:53:48,288 --> 00:53:49,259 >> AUDIÈNCIA: Per bucle. 1145 00:53:49,259 --> 00:53:50,550 ANDI Peng: Un bucle for, exactament. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Gran. 1148 00:53:57,220 --> 00:54:00,539 Així que tipus de tenir un genèric pseudocodi escrit 1149 00:54:00,539 --> 00:54:02,330 aquest tipus de està donant notes de com es 1150 00:54:02,330 --> 00:54:03,900 es mouria sobre la solució del problema. 1151 00:54:03,900 --> 00:54:06,150 Ara que té això, pot fer referència per a més tard 1152 00:54:06,150 --> 00:54:08,233 quan vostè està tractant de en realitat escriure el codi. 1153 00:54:08,233 --> 00:54:10,240 Així que en realitat podem anar aquí. 1154 00:54:10,240 --> 00:54:25,130 I tinc una funció anomenada upper.c-- allà és-- tot just d'una plantilla en blanc 1155 00:54:25,130 --> 00:54:28,510 en aquest moment que vostès van a M'agradaria saber sobre com escriure 1156 00:54:28,510 --> 00:54:30,430 aquesta línia de no code-- línia de codi. 1157 00:54:30,430 --> 00:54:32,890 Serà múltiples línies de codi. 1158 00:54:32,890 --> 00:54:35,710 >> En iniciar qualsevol tipus del conjunt de processadors en blanc, el que és 1159 00:54:35,710 --> 00:54:37,418 el primer que necessito recordar a fer? 1160 00:54:37,418 --> 00:54:39,290 >> AUDIÈNCIA: [inaudible]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI Peng: Gran Sip. 1162 00:54:41,000 --> 00:54:41,500 Incloure. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Sovint aquest és un Els errors més fàcils persones 1166 00:54:49,640 --> 00:54:51,598 farà que quan estan escriptura, és que van a 1167 00:54:51,598 --> 00:54:54,180 s'oblidi d'incloure un important biblioteca que necessiten. 1168 00:54:54,180 --> 00:54:57,689 Així que si els seus horaris d'oficina i vostè és com, No sé per què el meu codi no funciona. 1169 00:54:57,689 --> 00:54:59,230 Em pot dir per què no està funcionant? 1170 00:54:59,230 --> 00:55:00,730 Anem a dir què #include? 1171 00:55:00,730 --> 00:55:02,520 Vostè ha #include ella. 1172 00:55:02,520 --> 00:55:03,270 D'ACORD. 1173 00:55:03,270 --> 00:55:07,230 >> Així que tenim l'estàndard d'E / S aquí. 1174 00:55:07,230 --> 00:55:10,740 És aquesta l'única biblioteca necessitarem aquí? 1175 00:55:10,740 --> 00:55:12,681 Què més farem? 1176 00:55:12,681 --> 00:55:13,180 Ho sento. 1177 00:55:13,180 --> 00:55:14,562 Algú acaba de cridar cap a fora? 1178 00:55:14,562 --> 00:55:15,666 >> AUDIÈNCIA: [inaudible]. 1179 00:55:15,666 --> 00:55:16,666 ANDI Peng: Cal anar. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 D'ACORD. 1182 00:55:21,440 --> 00:55:26,070 I com faig per a començar qualsevol tipus de la funció, qualsevol tipus de funció principal 1183 00:55:26,070 --> 00:55:28,760 dins del nostre programa? 1184 00:55:28,760 --> 00:55:30,020 Int principal. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 D'ACORD. 1187 00:55:35,030 --> 00:55:35,970 Què puc posar aquí dins? 1188 00:55:35,970 --> 00:55:37,640 Quina és la primera cosa que vols fer? 1189 00:55:37,640 --> 00:55:39,910 Si volem aconseguir un cadena de l'usuari, 1190 00:55:39,910 --> 00:55:43,870 ¿Què tindrem de fer en aquesta primera línia? 1191 00:55:43,870 --> 00:55:46,120 Ho sentim, vostès simplement se sent llibertat per parlar i en veu alta. 1192 00:55:46,120 --> 00:55:47,123 Només cridar el que sigui. 1193 00:55:47,123 --> 00:55:48,772 >> AUDIÈNCIA: Demani a l'usuari? 1194 00:55:48,772 --> 00:55:49,980 ANDI Peng: Com ho fem? 1195 00:55:49,980 --> 00:55:51,873 Ask-- vaig a escriure "demanar a l'usuari"? 1196 00:55:51,873 --> 00:55:52,600 >> AUDIÈNCIA: printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI Peng: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Què és el que vull printf? 1200 00:55:57,372 --> 00:55:58,776 >> AUDIÈNCIA: Escriu alguna cosa. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI Peng: Igual que? 1203 00:56:03,840 --> 00:56:05,430 Nois, pretenen com si jo fos un ordinador. 1204 00:56:05,430 --> 00:56:08,475 Físicament em diuen cada pas que he d'escriure aquí? 1205 00:56:08,475 --> 00:56:09,600 Estic fent alguna cosa malament? 1206 00:56:09,600 --> 00:56:10,743 ¿Hauria d'haver escrit alguna cosa? 1207 00:56:10,743 --> 00:56:11,690 >> AUDIÈNCIA: Vostè necessita cometes. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI Peng: Necessito cotitzacions? 1209 00:56:12,380 --> 00:56:12,880 D'ACORD. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 D'ACORD. 1212 00:56:16,297 --> 00:56:17,698 >> AUDIÈNCIA: I llavors nova línia. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Punt i coma. 1215 00:56:22,465 --> 00:56:23,340 ANDI Peng: punt i coma? 1216 00:56:23,340 --> 00:56:24,060 D'ACORD. 1217 00:56:24,060 --> 00:56:24,560 Bé. 1218 00:56:24,560 --> 00:56:27,060 >> AUDIÈNCIA: I potser especificar que vostè ho vol en minúscules? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI Peng: Gran. 1221 00:56:31,415 --> 00:56:33,540 Vostès es riuen de mi oblidar-se de posar un punt i coma. 1222 00:56:33,540 --> 00:56:36,350 Et garanteixo que en algun lloc en el curs d'aquesta classe, 1223 00:56:36,350 --> 00:56:38,260 vostè s'oblidi de posar un punt i coma, i 1224 00:56:38,260 --> 00:56:41,116 el portarà tres hores a la figura per què el seu codi no funciona. 1225 00:56:41,116 --> 00:56:42,240 Ens ha passat a tots nosaltres. 1226 00:56:42,240 --> 00:56:43,950 Això succeirà probablement a vostè. 1227 00:56:43,950 --> 00:56:46,352 Poseu-vos en un bon hàbit d'usar punts i comes. 1228 00:56:46,352 --> 00:56:46,852 D'ACORD. 1229 00:56:46,852 --> 00:56:49,010 >> AUDIÈNCIA: Voleu per fer la barra invertida en? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI Peng: És clar. 1231 00:56:50,398 --> 00:56:51,856 Vols fer la barra invertida en? 1232 00:56:51,856 --> 00:56:53,020 >> AUDIÈNCIA: Sí. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI Peng: Gran. 1234 00:56:54,330 --> 00:56:54,830 D'ACORD. 1235 00:56:54,830 --> 00:56:57,872 Què faig ara? 1236 00:56:57,872 --> 00:56:58,964 >> AUDIÈNCIA: Obtenir cadena. 1237 00:56:58,964 --> 00:56:59,880 ANDI Peng: Obtenir cadena. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Llavors, què escric? 1240 00:57:03,830 --> 00:57:04,233 Algú? 1241 00:57:04,233 --> 00:57:05,040 >> AUDIÈNCIA: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI Peng: String s. 1243 00:57:05,873 --> 00:57:07,251 AUDIÈNCIA: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI Peng: Algú, Em pot dir on 1245 00:57:09,000 --> 00:57:12,000 aquesta funció GetString està venint? 1246 00:57:12,000 --> 00:57:13,660 >> AUDIÈNCIA: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI Peng: string.h? 1248 00:57:15,256 --> 00:57:16,715 Creus que és de string.h? 1249 00:57:16,715 --> 00:57:17,830 >> AUDIÈNCIA: [inaudible]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI Peng: Cal anar. 1251 00:57:18,830 --> 00:57:21,280 És d'CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Si sempre està confós en on un arxiu de biblioteca és o un arxiu de capçalera és, 1253 00:57:24,530 --> 00:57:28,450 google literalment string.h, i et diré 1254 00:57:28,450 --> 00:57:30,450 ¿Quines són totes les funcions que estan en string.h. 1255 00:57:30,450 --> 00:57:31,340 D'ACORD. 1256 00:57:31,340 --> 00:57:35,210 >> Així que ara que he creat una cadena i he sol·licitar a l'usuari que, 1257 00:57:35,210 --> 00:57:38,770 M'ha emmagatzemat en una variable s amb nom, ¿què he de fer ara? 1258 00:57:38,770 --> 00:57:40,652 >> AUDIÈNCIA: Comproveu si està en minúscules. 1259 00:57:40,652 --> 00:57:41,360 ANDI Peng: Ho sento? 1260 00:57:41,360 --> 00:57:42,545 AUDIÈNCIA: Comproveu si està en minúscules. 1261 00:57:42,545 --> 00:57:44,045 ANDI Peng: Molt bé, farem això. 1262 00:57:44,045 --> 00:57:45,857 Com puc fer això? 1263 00:57:45,857 --> 00:57:47,940 En realitat, per als fins de la classe en aquest moment, 1264 00:57:47,940 --> 00:57:50,330 només anem a assumir que tot 1265 00:57:50,330 --> 00:57:52,620 que d'entrada ja està en minúscules. 1266 00:57:52,620 --> 00:57:55,430 Si volia comprovar, ho faria afegiu una sentència condicional 1267 00:57:55,430 --> 00:57:59,640 que va comprovar, que va córrer a través de cada element de la matriu única 1268 00:57:59,640 --> 00:58:02,540 i comprovat si és entre certs valors. 1269 00:58:02,540 --> 00:58:05,627 M'oblido del que el nombre dels valors de minúscules són. 1270 00:58:05,627 --> 00:58:07,210 Vostè pot mirar cap amunt en la taula ASCII. 1271 00:58:07,210 --> 00:58:08,800 Però sí, és un molt bon punt. 1272 00:58:08,800 --> 00:58:11,758 Però en aquest moment, només anem a assumir que totes les cordes que d'entrada 1273 00:58:11,758 --> 00:58:13,130 són en minúscules. 1274 00:58:13,130 --> 00:58:13,870 D'ACORD. 1275 00:58:13,870 --> 00:58:18,069 >> Llavors, com faig per aquest problema següent? 1276 00:58:18,069 --> 00:58:18,860 AUDIÈNCIA: Per bucle. 1277 00:58:18,860 --> 00:58:19,340 ANDI Peng: Per llaç? 1278 00:58:19,340 --> 00:58:19,839 D'ACORD. 1279 00:58:19,839 --> 00:58:20,847 Digues el que escriure. 1280 00:58:20,847 --> 00:58:25,230 >> AUDIÈNCIA: Per int i és igual a 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI Peng: OK. 1282 00:58:27,230 --> 00:58:36,350 >> AUDIÈNCIA: Oh, en realitat, llavors vostè fer una coma i fer n és igual a strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI Peng: cosa tan important que jo crec que ella es va adonar aquí 1284 00:58:38,940 --> 00:58:42,936 és que no havíem de dir int n la segona vegada que va fer això. 1285 00:58:42,936 --> 00:58:45,060 Només has de saber que en una de bucle quan s'està declarant, 1286 00:58:45,060 --> 00:58:47,934 que realment no necessita el int de la segona vegada que fas una variable. 1287 00:58:47,934 --> 00:58:51,202 Es pot dir n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> AUDIÈNCIA: De s. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI Peng: s. 1290 00:58:53,510 --> 00:58:54,706 D'ACORD. 1291 00:58:54,706 --> 00:58:58,370 >> AUDIÈNCIA: Llavors un punt i coma. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI Peng: És clar. 1293 00:59:00,130 --> 00:59:04,050 >> AUDIÈNCIA: I llavors [inaudible] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Llavors i ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI Peng: Gran. 1297 00:59:11,780 --> 00:59:12,280 Tot bé. 1298 00:59:12,280 --> 00:59:14,690 Què volem interior d'aquest bucle for ara? 1299 00:59:14,690 --> 00:59:17,820 Recordeu, si anem a executar a través de una cadena i executar a través d'una matriu, 1300 00:59:17,820 --> 00:59:19,287 volem comprovar les coses en ella. 1301 00:59:19,287 --> 00:59:20,370 Què necessitarem? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Aquesta és una espècie de la part difícil ara. 1304 00:59:26,900 --> 00:59:27,960 Algú té una conjectura? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> D'ACORD. 1307 00:59:34,690 --> 00:59:37,830 Així que primer, com fins i tot l'accés? 1308 00:59:37,830 --> 00:59:41,610 Com podem tan sols primer xec o accedir a un element de la matriu? 1309 00:59:41,610 --> 00:59:42,920 Com ho fem? 1310 00:59:42,920 --> 00:59:47,120 Quina és la notació que fem servir per fer això? 1311 00:59:47,120 --> 00:59:50,920 Quin és el nom d'aquesta sèrie es diu? 1312 00:59:50,920 --> 00:59:52,400 Es diu s, no? 1313 00:59:52,400 --> 00:59:54,850 >> Recordeu, qualsevol cadena és sempre una matriu. 1314 00:59:54,850 --> 00:59:58,210 Així suport s I, oi? 1315 00:59:58,210 --> 01:00:01,360 Perquè aquest és el valor actual o valor de l'índex que estem comprovant. 1316 01:00:01,360 --> 01:00:05,156 I anem a establir que la igualtat A-- volem un valor en minúscules, oi? 1317 01:00:05,156 --> 01:00:07,530 Volem convertir aquesta lower-- ho sento, volem una majúscula. 1318 01:00:07,530 --> 01:00:10,014 Volem convertir la minúscula valor en una majúscula. 1319 01:00:10,014 --> 01:00:11,805 I així com-- Ho sento, Quin és el teu nom? 1320 01:00:11,805 --> 01:00:12,580 >> AUDIÈNCIA: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI Peng: Ho sento? 1322 01:00:12,940 --> 01:00:13,280 >> AUDIÈNCIA: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI Peng: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Igual que Heidi va dir Inicialment, estem probablement 1325 01:00:15,850 --> 01:00:20,330 necessitarà ell-- estem probablement va a haver de restar 1326 01:00:20,330 --> 01:00:22,630 32 des de qualsevol CHARC que és, no? 1327 01:00:22,630 --> 01:00:24,680 A causa de que en una ASCII taula, la diferència 1328 01:00:24,680 --> 01:00:27,790 entre una lletra minúscula i una lletra majúscula és 32. 1329 01:00:27,790 --> 01:00:31,290 Així que quan estem fent això, probablement estem voldrà restar 32, no? 1330 01:00:31,290 --> 01:00:33,910 >> Així que farem s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Tothom entén per què ho vaig fer? 1333 01:00:41,200 --> 01:00:45,760 Perquè ara, en la nostra sèrie, estem comprovant l'índex 0 ª, oi? 1334 01:00:45,760 --> 01:00:49,190 I en l'índex 0 ª del cadena, que és el primer caràcter. 1335 01:00:49,190 --> 01:00:51,820 I aquest caràcter que anem a assumir que és minúscula. 1336 01:00:51,820 --> 01:00:55,980 Si volem que sigui majúscula, ens ha de restar 32 del seu valor, 1337 01:00:55,980 --> 01:00:58,620 perquè en la nostra ASCII taula, així és com ho fem 1338 01:00:58,620 --> 01:01:01,600 corresponent a la següent valor que fa que sigui majúscules. 1339 01:01:01,600 --> 01:01:03,714 Tothom entén això? 1340 01:01:03,714 --> 01:01:04,213 Sí. 1341 01:01:04,213 --> 01:01:06,530 >> AUDIÈNCIA: Podria vostè també no minúscules 1 minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI Peng: Sí, així que això és realment bona. 1343 01:01:08,080 --> 01:01:10,455 Vaig a tornar a això pregunta després que fem això. 1344 01:01:10,455 --> 01:01:11,060 Sí. 1345 01:01:11,060 --> 01:01:13,940 I després si vull veure el que està passant, 1346 01:01:13,940 --> 01:01:16,180 Probablement vaig a que voleu imprimir, oi? 1347 01:01:16,180 --> 01:01:19,930 Que algú em digui el que Vull imprimir aquí. 1348 01:01:19,930 --> 01:01:29,160 >> AUDIÈNCIA: cent printf c barra invertida [inaudible]. 1349 01:01:29,160 --> 01:01:33,570 Aquest és el valor de [inaudible] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI Peng: s I, ho sento? 1351 01:01:34,614 --> 01:01:35,530 AUDIÈNCIA: [inaudible]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI Peng: No sé. 1354 01:01:39,550 --> 01:01:40,600 Què penses? 1355 01:01:40,600 --> 01:01:44,016 >> AUDIÈNCIA: Bé, jo wouldn't-- Suposo que no em bring-- 1356 01:01:44,016 --> 01:01:46,944 M'agradaria fer-ho el a l'interior, ja que [inaudible]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI Peng: Oh, vostè hauria fet això? 1359 01:01:51,392 --> 01:01:53,867 AUDIÈNCIA: Sí. 1360 01:01:53,867 --> 01:01:56,700 ANDI Peng: Anem a deixar-ho així el camí que és, i vaig a explicar per què més tard. 1361 01:01:56,700 --> 01:01:58,533 Recordeu, fins i tot quan vostè tenir un marcador de posició, 1362 01:01:58,533 --> 01:02:00,701 vostè vol posar parèntesis voltant. 1363 01:02:00,701 --> 01:02:01,200 Tot bé. 1364 01:02:01,200 --> 01:02:04,810 Així que això ha de ser una funció sòlida aquí. 1365 01:02:04,810 --> 01:02:06,370 Anem a córrer i veure si es compila. 1366 01:02:06,370 --> 01:02:08,750 Fer superior. 1367 01:02:08,750 --> 01:02:09,250 UH oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Això no sembla massa bo. 1370 01:02:13,340 --> 01:02:14,507 Per què passa això? 1371 01:02:14,507 --> 01:02:17,340 Igual que amb qualsevol error, vols anar enrere i començar amb la primera, 1372 01:02:17,340 --> 01:02:20,630 perquè en general les causes d'un error un munt d'altres errors després d'ella. 1373 01:02:20,630 --> 01:02:26,700 Aquí veiem upper.c: 18: 25, que diu jo en aquest programa anomenat upper.c, 1374 01:02:26,700 --> 01:02:33,800 en la línia 18, l'error de declarar implícitament biblioteca de funcions strlen amb el tipus 1375 01:02:33,800 --> 01:02:36,330 bla unassigned--, no sé ¿Què passa després d'això. 1376 01:02:36,330 --> 01:02:39,990 >> Tot el que m'està dient en aquest moment està que alguna cosa està passant al strlen. 1377 01:02:39,990 --> 01:02:43,520 I l'equip està confós, perquè és com, no sé el que strlen és? 1378 01:02:43,520 --> 01:02:45,520 Què vol dir que, probablement, li dirà que s'està perdent? 1379 01:02:45,520 --> 01:02:46,490 >> AUDIÈNCIA: Et perds [inaudible]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI Peng: Tens raó. 1381 01:02:47,630 --> 01:02:49,510 Exactament. 1382 01:02:49,510 --> 01:02:52,140 Així que això és on està important assegurar 1383 01:02:52,140 --> 01:02:56,970 que totes les funcions que utilitza en la seva codi està tenint la capçalera correcta 1384 01:02:56,970 --> 01:02:59,660 declarar-se en la biblioteca, o bé vostè va a obtenir un munt d'errors 1385 01:02:59,660 --> 01:03:01,150 i el seu codi no va per saber el que està passant. 1386 01:03:01,150 --> 01:03:03,050 Així que anem a incloure string.h aquí. 1387 01:03:03,050 --> 01:03:06,270 >> Ara quan tractem de recopilar superior. 1388 01:03:06,270 --> 01:03:08,410 Compilar correctament. 1389 01:03:08,410 --> 01:03:09,960 Anem a executar aquest programa. 1390 01:03:09,960 --> 01:03:12,000 Així que escriure alguna cosa en minúscules. 1391 01:03:12,000 --> 01:03:14,920 Què és el que vostès volen que escrigui? 1392 01:03:14,920 --> 01:03:16,546 Pregunteu per alguna cosa. 1393 01:03:16,546 --> 01:03:17,920 Molt bé, Charly acaba d'entrar. 1394 01:03:17,920 --> 01:03:18,990 Anem a escriure el nom de Charly. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly en minúscules. 1397 01:03:22,840 --> 01:03:27,742 I és d'esperar, amb sort, això és va a cridar i escopir 1398 01:03:27,742 --> 01:03:28,575 Charly en majúscules. 1399 01:03:28,575 --> 01:03:30,830 Visca! 1400 01:03:30,830 --> 01:03:33,430 no tothom entén com Vaig ser sobre solucionar això? 1401 01:03:33,430 --> 01:03:36,190 La forma en què puc manipular usant nombres enters 1402 01:03:36,190 --> 01:03:39,410 cosa que per resoldre Jo vull fer a cordes, 1403 01:03:39,410 --> 01:03:44,390 perquè els caràcters i nombres enters pot es fa referència en la mateixa manera perquè 1404 01:03:44,390 --> 01:03:45,540 de la cartografia ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Així que tornar al seu punt, si volgut posar aquí en lloc de 32 1406 01:03:52,890 --> 01:03:58,959 A majúscula minúscula menys un igual això, que funcionaria igual de bé, 1407 01:03:58,959 --> 01:04:01,750 perquè això és simplement la diferència entre aquests dos valors. 1408 01:04:01,750 --> 01:04:09,570 Si vull fer aquest charly nou--. 1409 01:04:09,570 --> 01:04:10,320 Oh no. 1410 01:04:10,320 --> 01:04:11,820 Crec que vam ser pel camí equivocat, sí? 1411 01:04:11,820 --> 01:04:13,260 >> AUDIÈNCIA: [inaudible] minúscules a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI Peng: Cal anar. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Sí. 1415 01:04:22,880 --> 01:04:24,920 I fora escup charly. 1416 01:04:24,920 --> 01:04:28,020 Així que vagi amb compte quan estàs valors restant 1417 01:04:28,020 --> 01:04:30,400 recordar quin és més gran que l'altre. 1418 01:04:30,400 --> 01:04:35,220 Per exemple, aquí es va oblidar que és en realitat una minúscula 1419 01:04:35,220 --> 01:04:38,540 més gran que en majúscula A. Així que quan em tractat de restar al revés 1420 01:04:38,540 --> 01:04:40,600 voltant, em van donar negatiu 32. 1421 01:04:40,600 --> 01:04:42,800 I el meu equip era com, No sé el que és això. 1422 01:04:42,800 --> 01:04:45,810 És la probabilitat només alguns a l'atzar valor que no és molt bo. 1423 01:04:45,810 --> 01:04:48,760 I així que assegureu-vos que vostè és restant a la longitud correcta 1424 01:04:48,760 --> 01:04:52,831 per trobar el caràcter que desitja. 1425 01:04:52,831 --> 01:04:53,330 D'ACORD. 1426 01:04:53,330 --> 01:04:58,550 Hi ha algú confós sobre com caminar escriure aquesta funció? 1427 01:04:58,550 --> 01:04:59,180 D'ACORD. 1428 01:04:59,180 --> 01:05:04,830 Així que en realitat, una funció ja existeix a la biblioteca anomenada ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Crida ctype.h de la biblioteca. 1430 01:05:06,417 --> 01:05:08,500 Aquesta funció és en realitat ja escrit per a vostè. 1431 01:05:08,500 --> 01:05:10,820 Es diu a la superior. 1432 01:05:10,820 --> 01:05:13,027 >> I així, a l'efecte de aquest conjunt de processadors, vas 1433 01:05:13,027 --> 01:05:15,860 per trobar que realment voleu utilitzar moltes de les funcions contingudes 1434 01:05:15,860 --> 01:05:17,390 dins de la biblioteca ctype. 1435 01:05:17,390 --> 01:05:21,040 Per és superior, per baixar, superior, és lower-- aquestes són totes les funcions 1436 01:05:21,040 --> 01:05:24,914 que vostè serà capaç d'utilitzar molt, molt ràpidament en el seu propi codi que 1437 01:05:24,914 --> 01:05:26,080 fa exactament el que això fa. 1438 01:05:26,080 --> 01:05:28,941 Escrivim la manera de convertir una cadena a majúscules. 1439 01:05:28,941 --> 01:05:31,440 Però això és en realitat el codi que algú més ha escrit 1440 01:05:31,440 --> 01:05:33,800 i que es pot accedir a través d'una funció diferent. 1441 01:05:33,800 --> 01:05:34,300 Sí? 1442 01:05:34,300 --> 01:05:39,570 >> AUDIÈNCIA: ¿Així que simplement copiar una hi és i que ho faci per cada carta? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI Peng: Sí, perquè jo no ho faig preocupar-se pels valors de a. 1444 01:05:42,070 --> 01:05:44,540 Jo només m'importa que la diferència entre ells és 32, no? 1445 01:05:44,540 --> 01:05:48,210 La diferència entre minúscules b majúscula i B és també 32. 1446 01:05:48,210 --> 01:05:50,860 I la diferència entre c i C majúscula sempre és 32. 1447 01:05:50,860 --> 01:05:53,235 >> Només he de preocupar-se pel diferència entre els dos, 1448 01:05:53,235 --> 01:05:56,666 perquè totes les lletres seguir el mateix patró, no? 1449 01:05:56,666 --> 01:05:58,540 Si tinc la diferència entre un d'ells, 1450 01:05:58,540 --> 01:06:01,050 Jo sé quina és la diferència entre tots ells és. 1451 01:06:01,050 --> 01:06:01,740 Bona pregunta. 1452 01:06:01,740 --> 01:06:04,090 Sí. 1453 01:06:04,090 --> 01:06:06,660 Cada un de bo? 1454 01:06:06,660 --> 01:06:09,080 D'ACORD. 1455 01:06:09,080 --> 01:06:09,580 Oop. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> D'ACORD. 1458 01:06:15,270 --> 01:06:20,310 Així que un altre concepte que és serà molt útil, ja que 1459 01:06:20,310 --> 01:06:22,570 continuar desenvolupant el seu codi és aquesta idea 1460 01:06:22,570 --> 01:06:25,430 de crear funcions o abstracció. 1461 01:06:25,430 --> 01:06:28,479 Així que ara, tots hem pres àlgebra. 1462 01:06:28,479 --> 01:06:31,770 En àlgebra, se'ls ensenya que hi ha aquesta cosa meravellosa anomenada una funció 1463 01:06:31,770 --> 01:06:35,300 màquina, on si entrada d'un tipus de nombre, 1464 01:06:35,300 --> 01:06:38,720 que va a través d'aquesta funció meravellosa i fa esclatar una sortida diferent, no? 1465 01:06:38,720 --> 01:06:42,220 En el codi, el mateix succeeix en qualsevol tipus de funció. 1466 01:06:42,220 --> 01:06:48,230 >> Així que vaig poder físicament escriure en el meu cos de la meva codi 1467 01:06:48,230 --> 01:06:52,357 una declaració principal que realment fa qualsevol que sigui el cos del codi està fent. 1468 01:06:52,357 --> 01:06:54,940 Però fora d'això, també pot escriure moltes funcions diferents 1469 01:06:54,940 --> 01:06:56,320 de fer moltes coses diferents. 1470 01:06:56,320 --> 01:06:58,570 Per exemple, ja hem començat a fer servir alguns d'ells. 1471 01:06:58,570 --> 01:07:00,610 Printf-- que és una funció que algú més 1472 01:07:00,610 --> 01:07:02,870 ja ha escrit que podem trucar al nostre codi. 1473 01:07:02,870 --> 01:07:05,410 Per upper-- en aquest cas, upper-- és una altra funció 1474 01:07:05,410 --> 01:07:07,330 hem escrit que pot trucar al nostre codi. 1475 01:07:07,330 --> 01:07:09,520 I així que suposo què fer fins i tot tenim funcions? 1476 01:07:09,520 --> 01:07:12,100 Per què no simplement plop tots en la mateixa línia de codi? 1477 01:07:12,100 --> 01:07:13,730 Això fa que sigui fàcil per a tothom. 1478 01:07:13,730 --> 01:07:19,200 >> Doncs bé, el raonament darrere d'aquesta és, en primer lloc, l'organització. 1479 01:07:19,200 --> 01:07:21,880 És realment molest anar a través de codi d'algú 1480 01:07:21,880 --> 01:07:25,110 i una funció com printf. 1481 01:07:25,110 --> 01:07:28,570 Si vostès realment sabia el que el funció printf implicava escriure, 1482 01:07:28,570 --> 01:07:30,530 és, com, 1.000 línies de codi. 1483 01:07:30,530 --> 01:07:32,357 >> Si cada vegada que volia a printf alguna cosa, 1484 01:07:32,357 --> 01:07:35,440 Vaig haver de escriure 1.000 línies de codi, que seria molt molest per llegir, 1485 01:07:35,440 --> 01:07:36,290 Oi? 1486 01:07:36,290 --> 01:07:38,860 És per això que acabem de creat aquesta funció abstracta 1487 01:07:38,860 --> 01:07:41,670 que ja tenim a algú més ha escrit en un altre lloc. 1488 01:07:41,670 --> 01:07:44,920 I cada vegada que hem de fer-lo servir en nostre codi, només ha de dir printf. 1489 01:07:44,920 --> 01:07:48,070 I és capaç d'utilitzar la funció algú ha escrit en el nostre codi. 1490 01:07:48,070 --> 01:07:51,020 Fa més fàcil organitzativament per llegir codi. 1491 01:07:51,020 --> 01:07:53,460 >> En segon lloc, és la simplificació. 1492 01:07:53,460 --> 01:07:56,750 Simplifica els passos que tenim prendre per resoldre el nostre problema. 1493 01:07:56,750 --> 01:07:59,300 Printf, funcions com printf, funcions com a superior 1494 01:07:59,300 --> 01:08:03,560 són totes les coses que ens permeten simplificar el nostre codi a baix pel que és més fàcil. 1495 01:08:03,560 --> 01:08:05,830 I l'últim és la reutilització. 1496 01:08:05,830 --> 01:08:08,710 >> Així que el fet que tenim una funció anomenada printf 1497 01:08:08,710 --> 01:08:11,990 que podem anomenar variats vegades i permet que sigui reutilitzable. 1498 01:08:11,990 --> 01:08:14,980 Si hagués d'escriure printf, Jo només escric una vegada. 1499 01:08:14,980 --> 01:08:16,439 Només existeix en aquell lloc. 1500 01:08:16,439 --> 01:08:19,890 Si volia fer-ho de nou, ho faria de copiar i enganxar tot això 1501 01:08:19,890 --> 01:08:21,760 en la meva segona línia de codi. 1502 01:08:21,760 --> 01:08:24,880 És per això que si creem una funció el que existeix fora de la nostra principal, 1503 01:08:24,880 --> 01:08:26,880 només podem recórrer a i reutilitzar-sempre 1504 01:08:26,880 --> 01:08:29,604 que necessitem perquè sigui molt més fàcil per a nosaltres com programes per escriure. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Així que la forma en què realment escriuríem una funció és molt similar, no? 1507 01:08:35,549 --> 01:08:37,590 Aquesta és una espècie de la primera instància en la qual anem a 1508 01:08:37,590 --> 01:08:42,830 veure una presa de funció en un estil diferent a la nostra void main int. 1509 01:08:42,830 --> 01:08:46,779 En aquest cas, si volia escriure una funció anomenada q, oi? 1510 01:08:46,779 --> 01:08:49,370 >> I el valor int aquí és tot el que em diu, 1511 01:08:49,370 --> 01:08:51,649 ¿Què vull aquest funcionar per tornar a mi? 1512 01:08:51,649 --> 01:08:54,484 Si vull cubicar un sencer, Vaig a voler entrada. 1513 01:08:54,484 --> 01:08:55,525 Aquests són els paràmetres. 1514 01:08:55,525 --> 01:08:58,490 Vaig a les entrades d'un valor de tipus int. 1515 01:08:58,490 --> 01:09:01,300 I vaig a tornar un altre valor tipus de int. 1516 01:09:01,300 --> 01:09:03,050 I aquí, com vostè pot veure, tot el que estic fent 1517 01:09:03,050 --> 01:09:07,300 es cubicar el que la meva entrada és com la meva sortida i tornar-lo. 1518 01:09:07,300 --> 01:09:10,790 >> Així que tot el que fa aquesta funció és pren algun tipus de nombre sencer. 1519 01:09:10,790 --> 01:09:14,979 Es multiplica per si mateix dues vegades de manera que cubs en efecte. 1520 01:09:14,979 --> 01:09:17,729 I llavors es retorna el que la producció és. 1521 01:09:17,729 --> 01:09:20,540 Així que en aquest cas, es tracta de dues línies de codi que havíem d'escriure extra. 1522 01:09:20,540 --> 01:09:22,880 Però si volguéssim cridar sobre això diverses vegades, 1523 01:09:22,880 --> 01:09:26,210 és molt més fàcil d'escriure que un línia d'aquí que està en el cub de 1524 01:09:26,210 --> 01:09:28,830 ha de passar per diverses vegades. 1525 01:09:28,830 --> 01:09:34,180 >> Així que la manera que essencialment qualsevol formateig per a qualsevol tipus de funció 1526 01:09:34,180 --> 01:09:36,420 va existir és com aquí. 1527 01:09:36,420 --> 01:09:38,659 Així que tenim el nom de la funció. 1528 01:09:38,659 --> 01:09:39,950 En aquest cas, es diu cub. 1529 01:09:39,950 --> 01:09:42,033 I anomenem cub perquè és fàcil de recordar. 1530 01:09:42,033 --> 01:09:44,220 Pots dir-quadrats i de fet, pot ser en cubs. 1531 01:09:44,220 --> 01:09:45,500 No importa. 1532 01:09:45,500 --> 01:09:48,020 Només un nom que vostè està l'assignació de la seva funció. 1533 01:09:48,020 --> 01:09:51,660 >> Aquest dret aquí, int, és la tipus del paràmetre que necessita. 1534 01:09:51,660 --> 01:09:54,149 Llavors, què fa aquesta funció necessita per operar? 1535 01:09:54,149 --> 01:09:55,990 Bé, es necessita una entrada. 1536 01:09:55,990 --> 01:09:56,704 El vaig nomenar entrada. 1537 01:09:56,704 --> 01:09:58,120 Vostè pot nomenar com vulguis. 1538 01:09:58,120 --> 01:10:00,500 Però necessito una mica de tipus int. 1539 01:10:00,500 --> 01:10:03,730 Es va a executar en realitat el que hi ha dins d'aquí, 1540 01:10:03,730 --> 01:10:04,990 el cos de la funció. 1541 01:10:04,990 --> 01:10:07,847 I després el tipus de retorn aquí, aquest int-- 1542 01:10:07,847 --> 01:10:09,680 tot el que m'està dient és que aquesta funció és 1543 01:10:09,680 --> 01:10:11,250 tornarà a mi en int. 1544 01:10:11,250 --> 01:10:14,460 Així que va a gaudir d'un int, i que va a donar volta una int. 1545 01:10:14,460 --> 01:10:17,750 Tothom entén com el el format d'aquest tipus funciona? 1546 01:10:17,750 --> 01:10:18,250 Fresc. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> D'ACORD. 1549 01:10:25,740 --> 01:10:31,770 Així que no et preocupis si això sembla una mica de dret abstracte ara. 1550 01:10:31,770 --> 01:10:33,450 Això és una cosa que anem a parlar. 1551 01:10:33,450 --> 01:10:36,310 Anem a submergir-nos en el més profund més endavant en el curs. 1552 01:10:36,310 --> 01:10:41,170 La forma en què qualsevol tipus de nivell superior l'abstracció d'aquestes coses el treball 1553 01:10:41,170 --> 01:10:43,530 és que, en la memòria, en l'ordinador, tot 1554 01:10:43,530 --> 01:10:47,660 s'emmagatzema en aquest tipus de la pila, he de dir. 1555 01:10:47,660 --> 01:10:49,070 >> Així que allà dalt a la part superior. 1556 01:10:49,070 --> 01:10:50,861 No sé si vostè nois poden veure molt bé. 1557 01:10:50,861 --> 01:10:52,590 Vaig a tractar de fer un zoom. 1558 01:10:52,590 --> 01:10:55,111 Aquí, a la part superior, que el text física 1559 01:10:55,111 --> 01:10:57,860 del que l'equip està interpreting-- tots els zeros i uns que 1560 01:10:57,860 --> 01:10:59,540 existeixen dins del nostre ordinador. 1561 01:10:59,540 --> 01:11:03,390 I després tenim la inicialitzat dades i inicialitzar, 1562 01:11:03,390 --> 01:11:05,340 el que anomenem variables globals. 1563 01:11:05,340 --> 01:11:08,200 Així variables que hi en tots els programes 1564 01:11:08,200 --> 01:11:11,815 i en la seva totalitat, essencialment, codi. 1565 01:11:11,815 --> 01:11:13,940 No us preocupeu si vostès són espècie de clar en això. 1566 01:11:13,940 --> 01:11:16,060 És en realitat no importa en aquest moment. 1567 01:11:16,060 --> 01:11:18,680 >> I després tenim el que és cridada una pila en una pila. 1568 01:11:18,680 --> 01:11:21,140 Penseu en una pila literalment com de la mateixa manera que un munt de coses, 1569 01:11:21,140 --> 01:11:23,098 una pica de diferent coses sent empesos a la part superior 1570 01:11:23,098 --> 01:11:27,870 l'un de l'altre que emmagatzemen els diversos variables i sintaxi dins del seu codi. 1571 01:11:27,870 --> 01:11:31,460 I llavors aquí a la part inferior, tenim les variables d'entorn 1572 01:11:31,460 --> 01:11:35,480 del que s'està executant dins de només la seva petita línia de codi. 1573 01:11:35,480 --> 01:11:40,510 >> I només anem a enfocar en a la part real de la pila. 1574 01:11:40,510 --> 01:11:43,880 Així que aquí, si haguéssim de fer un zoom en el sol aquesta zona de la pila, 1575 01:11:43,880 --> 01:11:45,140 això és el que sembla. 1576 01:11:45,140 --> 01:11:48,590 I això és realment molt important quan vostès parlen de funcions, 1577 01:11:48,590 --> 01:11:52,330 degut avís que el memòria del teu ordinador 1578 01:11:52,330 --> 01:11:55,600 es emmagatzemar les variables i les funcions 1579 01:11:55,600 --> 01:11:58,790 i els paràmetres de tots dos la seva funció i els seus principals variables 1580 01:11:58,790 --> 01:12:00,190 en diferents llocs. 1581 01:12:00,190 --> 01:12:03,390 >> Així que ara, la principal és la funció real 1582 01:12:03,390 --> 01:12:04,780 que s'està executant en un codi. 1583 01:12:04,780 --> 01:12:08,050 Has seus paràmetres emmagatzemats aquí i les seves variables locals s'emmagatzemen aquí. 1584 01:12:08,050 --> 01:12:12,270 Variable local només significa qualsevol variable que només existeixen dins d'aquesta funció. 1585 01:12:12,270 --> 01:12:15,610 I a sobre d'això, vostè té aquesta funció separada anomenada cub. 1586 01:12:15,610 --> 01:12:18,240 Has de això és paràmetres així com els vilatans. 1587 01:12:18,240 --> 01:12:21,540 >> I la raó que pugui veure aquí és que el que 1588 01:12:21,540 --> 01:12:25,030 que succeeix quan pren en una galleda valor de la seva funció principal 1589 01:12:25,030 --> 01:12:27,640 és que en realitat s'està copiant que més. 1590 01:12:27,640 --> 01:12:31,470 Així que si jo volia cub 2 i tornar 8, que 2 1591 01:12:31,470 --> 01:12:33,730 en realitat està introduïda com un paràmetre i és 1592 01:12:33,730 --> 01:12:37,690 copiat de manera que vostè ho té existent en dos llocs diferents en la memòria. 1593 01:12:37,690 --> 01:12:40,520 I cal tenir molta cura a recordar que un dels 1594 01:12:40,520 --> 01:12:42,520 en realitat estàs manipulant. 1595 01:12:42,520 --> 01:12:47,170 I un exemple del que ha passat això seria molt, molt dolent 1596 01:12:47,170 --> 01:12:48,050 existeix aquí. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Així que aquí, tinc, en teoria, un programa d'aquí, una funció principal 1599 01:12:58,650 --> 01:13:02,180 que estic declarant un int x és igual a 1. 1600 01:13:02,180 --> 01:13:04,505 Estic declarant altra int i és igual a 2. 1601 01:13:04,505 --> 01:13:06,380 I llavors jo estic corrent a través d'aquesta funció 1602 01:13:06,380 --> 01:13:09,647 anomenada d'intercanvi, on suposo que està intercanviant els dos valors. 1603 01:13:09,647 --> 01:13:11,480 I després vaig a imprimir-los, oi? 1604 01:13:11,480 --> 01:13:13,220 Això és el que vull aquest programa fer. 1605 01:13:13,220 --> 01:13:15,180 >> Així que anem a venir i fer una ullada. 1606 01:13:15,180 --> 01:13:18,200 Així que si jo escric una realitat diferent funció, com es pot veure, 1607 01:13:18,200 --> 01:13:19,750 tenim la nostra funció principal aquí. 1608 01:13:19,750 --> 01:13:22,860 I després tenim el nostre segona funció aquí. 1609 01:13:22,860 --> 01:13:24,520 Bescanvi de buit. 1610 01:13:24,520 --> 01:13:27,090 Void simplement vol dir que és no va a tornar res. 1611 01:13:27,090 --> 01:13:28,930 El nom de la funció és anomenat swap, i és 1612 01:13:28,930 --> 01:13:33,730 anar a la ingesta de dues variables, int a i int b, de la seva funció [inaudible]. 1613 01:13:33,730 --> 01:13:39,010 >> Per tant, bàsicament en aquí, estem passant x i y en aquesta funció. 1614 01:13:39,010 --> 01:13:40,760 I si haguéssim de Creem esto-- pel que volem 1615 01:13:40,760 --> 01:13:42,420 per crear un valor temporal, no? 1616 01:13:42,420 --> 01:13:43,930 Anem a assignar aquesta a un. 1617 01:13:43,930 --> 01:13:45,388 I després una va a ara igual b. 1618 01:13:45,388 --> 01:13:47,660 I b va a estar de tornada on el valor de temperatura era, 1619 01:13:47,660 --> 01:13:51,070 que és una, perquè quan vol canviar les coses, 1620 01:13:51,070 --> 01:13:52,320 no es pot simplement voleu intercanviar-los. 1621 01:13:52,320 --> 01:13:54,360 >> Has de mantenir 1 aquí, així que recorda 1622 01:13:54,360 --> 01:13:56,485 el que és, perquè un cop canvies un, se li oblida 1623 01:13:56,485 --> 01:13:58,200 la qual cosa el valor original, oi? 1624 01:13:58,200 --> 01:14:00,990 Així que en teoria, aquest programa hauria de funcionar, no? 1625 01:14:00,990 --> 01:14:03,630 Si volgués canviar la dos, que haurien de canviar. 1626 01:14:03,630 --> 01:14:05,490 Així que anem a córrer i veure si funciona. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Així com vostès poden veure, x una vegada va ser 1 e i va ser una vegada 2. 1629 01:14:16,940 --> 01:14:21,475 I si puc imprimir a terme, x segueix sent 1 iy és 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, aquest programa no sembla ser treballant de la manera que vull que funcioni. 1631 01:14:25,970 --> 01:14:29,950 Algú vol fer una foto a endevinar què estava passant això? 1632 01:14:29,950 --> 01:14:34,430 Té a veure amb la forma en que les coses són diferents 1633 01:14:34,430 --> 01:14:38,172 emmagatzemada en diferents llocs de la memòria. 1634 01:14:38,172 --> 01:14:39,377 >> D'ACORD. 1635 01:14:39,377 --> 01:14:41,960 Així que vostès no han de preocupar massa sobre això ara mateix. 1636 01:14:41,960 --> 01:14:46,610 Però saber que el cub de locals variables van ser a i b, 1637 01:14:46,610 --> 01:14:49,230 perquè aquí a la nostra funció, hem declarat a i b 1638 01:14:49,230 --> 01:14:53,570 com les variables que hi dins de cub, aquesta funció. 1639 01:14:53,570 --> 01:14:59,490 Però com es pot veure, els paràmetres que està prenent en estaven sent emmagatzemats aquí. 1640 01:14:59,490 --> 01:15:01,370 Però no estàvem en realitat tornar res. 1641 01:15:01,370 --> 01:15:03,120 No estàvem realment canviant x i y. 1642 01:15:03,120 --> 01:15:04,440 Estàvem canviant ai b. 1643 01:15:04,440 --> 01:15:08,340 >> Havíem copiat x i y en cosa que es diu a i b. 1644 01:15:08,340 --> 01:15:11,092 Però en realitat mai manipulat x i y ells mateixos. 1645 01:15:11,092 --> 01:15:12,800 Estan veient el que està succeint? 1646 01:15:12,800 --> 01:15:16,140 És que simplement hem copiem més, però nosaltres no hem guardat realitat 1647 01:15:16,140 --> 01:15:18,030 un seguiment d'on es trobaven a la memòria. 1648 01:15:18,030 --> 01:15:20,127 >> I el que ara l'equip està mirant, oh, tinc 1649 01:15:20,127 --> 01:15:21,960 executar aquesta cosa a través aquesta bella funció. 1650 01:15:21,960 --> 01:15:23,690 Però x i y són encara x i y. 1651 01:15:23,690 --> 01:15:26,240 Res ha passat ells pel fet de 1652 01:15:26,240 --> 01:15:28,340 que aquests paràmetres i variables locals 1653 01:15:28,340 --> 01:15:30,150 s'emmagatzemen en una diferent col·locar a la memòria. 1654 01:15:30,150 --> 01:15:32,030 I aquesta és una de nivell superior concepte que anem a 1655 01:15:32,030 --> 01:15:34,300 començar a veure més endavant en el curs. 1656 01:15:34,300 --> 01:15:36,950 Però només sé que això és un problema que pot passar 1657 01:15:36,950 --> 01:15:41,400 i que anem a esbrinar la manera de com a davant això més endavant en el curs. 1658 01:15:41,400 --> 01:15:41,900 D'ACORD. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Tot bé. 1661 01:15:48,250 --> 01:15:51,780 Així que l'últim concepte que estem realment va a cobrir 1662 01:15:51,780 --> 01:15:53,880 això va a ser útil per al conjunt de processadors aquesta setmana 1663 01:15:53,880 --> 01:15:56,060 són el que s'anomenen arguments de la línia d'ordres. 1664 01:15:56,060 --> 01:16:00,820 Així que Rob en la seva conferència va ser a través de tipus de breument sobre com funcionen. 1665 01:16:00,820 --> 01:16:02,770 Essencialment saber que quan estàs escrivint 1666 01:16:02,770 --> 01:16:06,280 com una funció principal, quan va escriure funcions abans en el passat, 1667 01:16:06,280 --> 01:16:07,804 vam tenir void main int. 1668 01:16:07,804 --> 01:16:10,470 I la raó per la qual va nul·la allà va ser perquè els nostres programes no ho van fer 1669 01:16:10,470 --> 01:16:12,520 necessitar valors d'entrada per a funcionar, no? 1670 01:16:12,520 --> 01:16:16,020 Quan em vaig trobar amb Mario, jo no necessitava que en realitat només ha d'escriure alguna cosa 1671 01:16:16,020 --> 01:16:16,970 quan em vaig trobar amb Mario. 1672 01:16:16,970 --> 01:16:20,170 Jo podria demanar a l'usuari més endavant. 1673 01:16:20,170 --> 01:16:22,450 Però això no sempre serà el cas. 1674 01:16:22,450 --> 01:16:24,980 >> Per exemple, en aquest El problema de la setmana fixa, 1675 01:16:24,980 --> 01:16:28,365 vostè va a demanar que, A més d'executar el seu programa, 1676 01:16:28,365 --> 01:16:30,990 vostè va a voler entrada certes coses a la recta com vostè 1677 01:16:30,990 --> 01:16:32,050 executar el programa. 1678 01:16:32,050 --> 01:16:34,720 Així que la forma de fer que es diu un argument de línia d'ordres, que 1679 01:16:34,720 --> 01:16:37,280 és com un argument pot introduir directament 1680 01:16:37,280 --> 01:16:39,260 com vostè està tractant d'executar el programa. 1681 01:16:39,260 --> 01:16:44,680 >> Així que la notació per això, és força complexa de futur, 1682 01:16:44,680 --> 01:16:47,320 però en realitat no és que difícil. Així int main-- 1683 01:16:47,320 --> 01:16:48,910 això és només la seva funció principal. 1684 01:16:48,910 --> 01:16:52,110 En comes argc suports argv cadena. 1685 01:16:52,110 --> 01:16:56,040 Així que tot el que està dient és que aquest int argc-- tot el que se li diu 1686 01:16:56,040 --> 01:17:00,560 és que aquells són el nombre de arguments l'equip d'esperar. 1687 01:17:00,560 --> 01:17:03,130 >> Així que una cosa que és veritat important no perdre de vista 1688 01:17:03,130 --> 01:17:07,080 és el nom físic del seu programa compte com un d'aquests arguments. 1689 01:17:07,080 --> 01:17:11,080 Així que si jo volia tenir el meu programa córrer més una línia d'ordres addicional 1690 01:17:11,080 --> 01:17:13,310 argument, en realitat estic va tenir dos. 1691 01:17:13,310 --> 01:17:15,080 Argc en realitat va a ser dues. 1692 01:17:15,080 --> 01:17:18,010 I després argv cadena bracket-- tot el que està fent, 1693 01:17:18,010 --> 01:17:20,410 que m'està donant una matriu de cadenes que és 1694 01:17:20,410 --> 01:17:24,870 va a simplement mostrar i emmagatzemar el tots aquests arguments de la línia d'ordres són. 1695 01:17:24,870 --> 01:17:34,090 >> Així per exemple, si jo volia tenir aquest programa, ./copy archivoentrada archivosalida archivosalida, oi? 1696 01:17:34,090 --> 01:17:37,330 Això és només una ordre típic Linux. 1697 01:17:37,330 --> 01:17:38,830 El que en realitat és argc? 1698 01:17:38,830 --> 01:17:41,320 Quants arguments de la línia d'ordres hi ha en realitat en aquest? 1699 01:17:41,320 --> 01:17:45,130 Tot això fa és fer una còpia de 1 infile del nom d'un fitxer 1700 01:17:45,130 --> 01:17:47,070 i el copia a un altre arxiu, oi? 1701 01:17:47,070 --> 01:17:48,700 Això és tot això està fent. 1702 01:17:48,700 --> 01:17:53,080 Com es pot veure, ho estic fent en una sola línia sense realment necessitar el programa. 1703 01:17:53,080 --> 01:17:55,380 >> Quina és la nostra argc en aquest cas? 1704 01:17:55,380 --> 01:17:58,968 Quants arguments tenim? 1705 01:17:58,968 --> 01:17:59,634 AUDIÈNCIA: ¿Tres? 1706 01:17:59,634 --> 01:18:01,200 ANDI Peng: Tenim tres, exactament. 1707 01:18:01,200 --> 01:18:05,030 Així que és molt intuïtiu només cal pensar que és només 1708 01:18:05,030 --> 01:18:06,290 el infile i l'arxiu de sortida. 1709 01:18:06,290 --> 01:18:10,190 Però saber que el nom físic del programa que s'està executant compte com un. 1710 01:18:10,190 --> 01:18:13,220 Així que en aquest cas, argc és en realitat tres. 1711 01:18:13,220 --> 01:18:15,860 Què et sembla, el que és argv 0? 1712 01:18:15,860 --> 01:18:18,180 Recordeu, tot el arguments de la línia d'ordres 1713 01:18:18,180 --> 01:18:20,500 s'emmagatzema en una matriu de cadenes. 1714 01:18:20,500 --> 01:18:24,140 Així que si intento accedir-hi, el que seria argv suport 0-me? 1715 01:18:24,140 --> 01:18:25,364 >> AUDIÈNCIA: [inaudible]. 1716 01:18:25,364 --> 01:18:26,155 ANDI Peng: Exactament. 1717 01:18:26,155 --> 01:18:28,550 Em donaria el punt slash còpia, perquè això és 1718 01:18:28,550 --> 01:18:31,070 l'element 0 ª, la primer element de la meva matriu. 1719 01:18:31,070 --> 01:18:33,236 Què passa amb argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> AUDIÈNCIA: infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI Peng: infile, exactament. 1722 01:18:35,070 --> 01:18:36,272 Què passa amb argv 2? 1723 01:18:36,272 --> 01:18:37,022 AUDIÈNCIA: outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI Peng: outfile. 1725 01:18:38,190 --> 01:18:39,290 Això és una mica complicat ara. 1726 01:18:39,290 --> 01:18:42,630 Què pensen vostès argv 3 es va a donar-me 1727 01:18:42,630 --> 01:18:45,522 si tractava d'imprimir que fos? 1728 01:18:45,522 --> 01:18:48,260 >> AUDIÈNCIA: [inaudible]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI Peng: ¿Vostè té una mà? 1730 01:18:50,164 --> 01:18:50,663 Sí. 1731 01:18:50,663 --> 01:18:51,550 >> AUDIÈNCIA: Una alternativa. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI Peng: Exactament. 1733 01:18:52,341 --> 01:18:55,440 Així que recorda, en la conferència que tenir al final d'una carrera d'alguna cosa 1734 01:18:55,440 --> 01:18:56,640 trucat un terminador nul? 1735 01:18:56,640 --> 01:18:58,890 Anem a entrar en això també més endavant en la classe. 1736 01:18:58,890 --> 01:19:02,472 Però saber que en la notació, la forma en què el seu equip 1737 01:19:02,472 --> 01:19:04,430 Sap que és el final de la matriu és que 1738 01:19:04,430 --> 01:19:07,310 posa una cosa anomenada un nul terminador o un guió zero. 1739 01:19:07,310 --> 01:19:12,047 >> Així que si s'intenta accedir a argv 3, te n'aniràs a aquest tauler 0. 1740 01:19:12,047 --> 01:19:13,630 Això és encara més d'una pregunta amb trampa. 1741 01:19:13,630 --> 01:19:17,020 Què passa amb argv 4? 1742 01:19:17,020 --> 01:19:20,920 Així que això és passat terminador nul, més enllà dels límits de la nostra matriu. 1743 01:19:20,920 --> 01:19:24,380 Què creus que va a succeirà quan tractem de fer això? 1744 01:19:24,380 --> 01:19:25,842 >> AUDIÈNCIA: [inaudible]? 1745 01:19:25,842 --> 01:19:26,550 ANDI Peng: Ho sento? 1746 01:19:26,550 --> 01:19:28,025 Dir que una mica més fort? 1747 01:19:28,025 --> 01:19:29,086 >> AUDIÈNCIA: [inaudible]. 1748 01:19:29,086 --> 01:19:29,710 ANDI Peng: Sí. 1749 01:19:29,710 --> 01:19:32,420 Aquest és el nom de la àrea el més probable obtenir. 1750 01:19:32,420 --> 01:19:36,610 Però saber que argv 4-- que permet l'accés 1751 01:19:36,610 --> 01:19:38,610 llocs al seu equip de memòria que realment 1752 01:19:38,610 --> 01:19:41,650 no ha de ser commovedora, perquè ara vostè sap el que és argv. 1753 01:19:41,650 --> 01:19:46,220 Vostè sap que és una matriu de mida 3 que té punts de còpia, infile i archivosalida. 1754 01:19:46,220 --> 01:19:50,200 >> Si tracta d'anar molt més enllà que que ets més enllà del terminador nul, 1755 01:19:50,200 --> 01:19:53,050 l'equip té, probablement, alguna cosa emmagatzemat en argv 4. 1756 01:19:53,050 --> 01:19:55,790 I que realment no hauria de ser autoritzar a entrar en argv 4, 1757 01:19:55,790 --> 01:19:58,130 perquè vostè té un arxiu armari i només són 1758 01:19:58,130 --> 01:19:59,790 permès l'accés a aquests tres prestatges. 1759 01:19:59,790 --> 01:20:02,870 Però si intenta arribar molt més enllà de la plataforma d'on se li permet, 1760 01:20:02,870 --> 01:20:04,930 vostè va a començar a jugar amb altres coses en la memòria de l'equip. 1761 01:20:04,930 --> 01:20:06,690 Això serà molt, molt dolent. 1762 01:20:06,690 --> 01:20:07,440 Així que saber això. 1763 01:20:07,440 --> 01:20:10,370 Tingueu molta cura de que no només començar atzar 1764 01:20:10,370 --> 01:20:14,772 accés als elements d'un array que no estaven en el que volia crear. 1765 01:20:14,772 --> 01:20:17,114 Sí. 1766 01:20:17,114 --> 01:20:18,430 >> D'ACORD. 1767 01:20:18,430 --> 01:20:26,360 Així que anem a fer una altra exemple terminal d'aquí. 1768 01:20:26,360 --> 01:20:27,300 D'ACORD. 1769 01:20:27,300 --> 01:20:29,900 Així que Rob ràpidament en conferència L'altre dia es va anar 1770 01:20:29,900 --> 01:20:35,040 a través d'aquest exemple, on tingut int main int argv cadena argc 1771 01:20:35,040 --> 01:20:39,090 claudàtors, el que m'està dient que sóc va tenir arguments de la línia d'ordres. 1772 01:20:39,090 --> 01:20:41,860 >> Ell té, si argc és igual és igual a 2-- recordi, 1773 01:20:41,860 --> 01:20:45,070 és igual a iguals significa la comparació. 1774 01:20:45,070 --> 01:20:47,980 Si és igual a 2, llavors estic va a imprimir hola, 1775 01:20:47,980 --> 01:20:51,190 qualsevol que sigui la primera element de la matriu és. 1776 01:20:51,190 --> 01:20:54,100 Impressió Else, hola món. 1777 01:20:54,100 --> 01:20:56,300 Què és això va a succeir en essència? 1778 01:20:56,300 --> 01:21:00,570 Pot algú explicar en Anglès el que aquest programa està fent? 1779 01:21:00,570 --> 01:21:01,272 Sí. 1780 01:21:01,272 --> 01:21:08,160 >> AUDIÈNCIA: Si algú escriu en una ordre i va dir el seu nom i cognom, 1781 01:21:08,160 --> 01:21:12,096 que no només va a imprimir la primer i dir hola, 1782 01:21:12,096 --> 01:21:14,090 qualsevol que sigui el seu nom és. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI Peng: OK, anem a executar-lo. 1784 01:21:15,410 --> 01:21:22,470 Així, per exemple, si jo hagués de fer aquest arxiu fan hola hola A-- 1785 01:21:22,470 --> 01:21:24,500 A-- què vols que d'entrada? 1786 01:21:24,500 --> 01:21:25,900 >> AUDIÈNCIA: Nom i cognoms. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI Peng: Nom i cognom? 1788 01:21:27,280 --> 01:21:28,180 Espais? 1789 01:21:28,180 --> 01:21:29,690 >> AUDIÈNCIA: Sí. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI Peng: Pot algú dir mi en aquest moment, el que és argc? 1791 01:21:33,490 --> 01:21:35,630 Just aquí? 1792 01:21:35,630 --> 01:21:36,290 Vaja, ho sento. 1793 01:21:36,290 --> 01:21:37,920 Permetin-me tornar. 1794 01:21:37,920 --> 01:21:40,740 Quants arguments de la línia d'ordres que tracti: vostès no poden veure realment. 1795 01:21:40,740 --> 01:21:43,760 Però vaig a tractar de fer un zoom. 1796 01:21:43,760 --> 01:21:44,290 Estic intentant. 1797 01:21:44,290 --> 01:21:45,414 Sí, hi ha tres, no? 1798 01:21:45,414 --> 01:21:48,750 És slash dot hola, és Andi, i és Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Llavors, què pensen vostès aquest programa es va a imprimir? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Oh, ho sento. 1803 01:21:57,120 --> 01:21:57,810 Nom. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Està imprimint, hola món. 1806 01:22:06,130 --> 01:22:09,603 Algú vol explicar per què està succeint? 1807 01:22:09,603 --> 01:22:10,103 Sí? 1808 01:22:10,103 --> 01:22:11,019 >> AUDIÈNCIA: [inaudible]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI Peng: Exactament. 1811 01:22:15,230 --> 01:22:19,940 Així que aquí, són condicionals És a dir, si argc és igual és igual a 2. 1812 01:22:19,940 --> 01:22:23,650 Així que només en el cas que hi dos arguments de la línia d'ordres. 1813 01:22:23,650 --> 01:22:25,850 Llavors em vaig a imprimir, hola, el que sigui. 1814 01:22:25,850 --> 01:22:28,210 Però una altra cosa, vaig a imprimir només, hola món. 1815 01:22:28,210 --> 01:22:30,040 Així que vol a algú donar-me un exemple 1816 01:22:30,040 --> 01:22:35,050 de la forma en què seria capaç de realitat aconseguir que es vol imprimir el valor de argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Què havia de haver d'introduir aquí? 1818 01:22:38,600 --> 01:22:39,840 Només una cosa, oi? 1819 01:22:39,840 --> 01:22:42,900 A causa de que el punt per saludar ja compte com el primer argument. 1820 01:22:42,900 --> 01:22:43,930 Només tinc un més. 1821 01:22:43,930 --> 01:22:46,470 Així dot hola si em faig Andi. 1822 01:22:46,470 --> 01:22:47,270 Hola, Andi. 1823 01:22:47,270 --> 01:22:49,186 Tots entenen per què està succeint? 1824 01:22:49,186 --> 01:22:49,602 Sí. 1825 01:22:49,602 --> 01:22:52,500 >> AUDIÈNCIA: Llavors, l'espai entre el comandament line-- és que [inaudible]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI Peng: No. 1828 01:22:56,830 --> 01:23:03,810 Així que l'espai en una línia d'ordres argument, x, de dir-li al seu equip 1829 01:23:03,810 --> 01:23:06,820 que aquest és el començament d'una nova cadena. 1830 01:23:06,820 --> 01:23:11,130 Així argv cadena aquí-- que botigues tots els seus arguments de línia de comandes 1831 01:23:11,130 --> 01:23:13,110 en les cadenes. 1832 01:23:13,110 --> 01:23:17,420 I pel que l'espai en la línia d'ordres argument-- l'únic que fa és dir-li, 1833 01:23:17,420 --> 01:23:21,030 això és a l'extrem d'una corda i és el moment de passar a un altre. 1834 01:23:21,030 --> 01:23:21,990 >> Sí. 1835 01:23:21,990 --> 01:23:23,530 Això és molt important per el conjunt de processadors, perquè ets 1836 01:23:23,530 --> 01:23:24,613 va a provar aquests. 1837 01:23:24,613 --> 01:23:29,300 Així que algú té alguna pregunta sobre això? 1838 01:23:29,300 --> 01:23:30,016 D'acord, guai. 1839 01:23:30,016 --> 01:23:30,515 Sí? 1840 01:23:30,515 --> 01:23:35,008 >> AUDIÈNCIA: Així que la raó per la qual ho faria posar sencer argument calc lloc 1841 01:23:35,008 --> 01:23:40,059 de [inaudible] seria quan vulgui per escriure informació addicional per 1842 01:23:40,059 --> 01:23:41,030 [Inaudible]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI Peng: Sí, exactament. 1844 01:23:42,090 --> 01:23:45,370 Alguns programes requereixen que vostè per introduir un argument de línia d'ordres 1845 01:23:45,370 --> 01:23:47,732 que entra i que utilitza això. 1846 01:23:47,732 --> 01:23:49,035 Sí. 1847 01:23:49,035 --> 01:23:50,410 AUDIÈNCIA: I què si [inaudible]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI Peng: Bé, què he canviar llavors en el meu programa? 1850 01:23:58,870 --> 01:23:59,870 >> AUDIÈNCIA: Només 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI Peng: Per què és que passant, què et sembla? 1853 01:24:15,020 --> 01:24:18,940 >> AUDIÈNCIA: Com que el [inaudible]. 1854 01:24:18,940 --> 01:24:22,370 >> AUDIÈNCIA: Vostè hauria de canviar-ho a 2 [inaudible]. 1855 01:24:22,370 --> 01:24:23,484 >> AUDIÈNCIA: 1 i 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI Peng: 1 i 2, exactament. 1857 01:24:24,650 --> 01:24:29,150 Així que en aquest cas, és probable que vull tenir de dos printf statements-- 1858 01:24:29,150 --> 01:24:32,601 un que argv imprès 1 i el que imprimeix argv 2. 1859 01:24:32,601 --> 01:24:33,100 Aquí. 1860 01:24:33,100 --> 01:24:34,516 Que puc fer realitat que molt ràpid. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Cal anar. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 No és exactament el que volies. 1865 01:24:49,370 --> 01:24:52,590 Però si vostès perdre el temps amb el format, que sortirà. 1866 01:24:52,590 --> 01:24:54,981 Sí. 1867 01:24:54,981 --> 01:24:55,480 Fresc. 1868 01:24:55,480 --> 01:24:57,670 Sé que estem una mica curts de temps. 1869 01:24:57,670 --> 01:25:02,469 Però vaig només per passar ràpidament una parell de minuts que passen per helpful-- 1870 01:25:02,469 --> 01:25:03,760 AUDIÈNCIA: Tens dos minuts. 1871 01:25:03,760 --> 01:25:05,010 ANDI Peng: Tinc dos minuts? 1872 01:25:05,010 --> 01:25:06,340 Gràcies. 1873 01:25:06,340 --> 01:25:09,180 Alguns consells PSet ràpides. 1874 01:25:09,180 --> 01:25:13,100 Així que per a aquest conjunt de processadors, li recomano, com he dit, a tots a llegir l'especificació. 1875 01:25:13,100 --> 01:25:16,804 Vas a estar escrivint un sol de tres programs-- anomenada initials.c, un anomenat caesar.c, 1876 01:25:16,804 --> 01:25:17,720 un anomenat vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Alguns consells importants que vostès realment volen 1879 01:25:22,340 --> 01:25:25,040 tenir en mente-- el existeix aquesta funció 1880 01:25:25,040 --> 01:25:27,770 anomenada atoi-- com m'agrada dir, a trois. 1881 01:25:27,770 --> 01:25:29,520 No queda clar si això és en realitat com ho diu. 1882 01:25:29,520 --> 01:25:32,510 Però tot el que està fent, que està introduint. 1883 01:25:32,510 --> 01:25:34,320 Converteix una cadena a un enter. 1884 01:25:34,320 --> 01:25:37,490 Així que a representa ASCII per a i sencer. 1885 01:25:37,490 --> 01:25:40,310 És només la conversió d'ASCII valors a valors sencers. 1886 01:25:40,310 --> 01:25:44,510 Així que recordi argv, la matriu que emmagatzema tots els comandaments de la línia arguments-- 1887 01:25:44,510 --> 01:25:46,300 que tots ells emmagatzema com cadenes. 1888 01:25:46,300 --> 01:25:50,010 I pel que si vostè vol ser capaç de tenen un d'ells es converteixen en un nombre sencer, 1889 01:25:50,010 --> 01:25:52,750 vostè va a tenir utilitzar aquest valor aquí. 1890 01:25:52,750 --> 01:25:56,690 >> Mòdul, com hem cobert anteriorment en la classe d'avui, 1891 01:25:56,690 --> 01:25:59,550 permet que vostè tingui la resta del que tinguis. 1892 01:25:59,550 --> 01:26:03,620 Així que si tenim molt, molt un gran nombre de César, 1893 01:26:03,620 --> 01:26:06,117 el que si tenim el final d'una cadena de Vigenère? 1894 01:26:06,117 --> 01:26:08,450 Com vas a poder per aconseguir que per embolicar al voltant? 1895 01:26:08,450 --> 01:26:11,330 Si em va colpejar z i vull que vagi de nou a una, 1896 01:26:11,330 --> 01:26:13,650 Com aconseguiré que per embolicar al voltant? 1897 01:26:13,650 --> 01:26:15,960 Probablement vulgui utilitzar mòdul en algun lloc. 1898 01:26:15,960 --> 01:26:19,190 >> En segon lloc, navegar al voltant la seva biblioteca. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Això és una nova biblioteca que tenim. 1900 01:26:20,680 --> 01:26:25,270 Trobareu una gran quantitat de molt, molt isupper functions-- útil, islower, 1901 01:26:25,270 --> 01:26:27,681 ToUpper, tolower, isalpha, etcètera. 1902 01:26:27,681 --> 01:26:30,680 Totes les funcions que seran de gran utilitat quan vostè està tractant d'esbrinar, 1903 01:26:30,680 --> 01:26:33,780 és aquest personatge una lletra minúscula? 1904 01:26:33,780 --> 01:26:35,730 Com puc convertir aquest cadena a una majúscula? 1905 01:26:35,730 --> 01:26:38,146 Totes aquestes coses van a ser molt, molt útil per al conjunt de processadors. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 D'ACORD. 1908 01:26:45,500 --> 01:26:49,644 >> L'horari d'atenció d'aquesta nit són les 8:00 a les 11:00 a l'aula garjola demà 1909 01:26:49,644 --> 01:26:51,310 així com dimecres i dijous a la nit. 1910 01:26:51,310 --> 01:26:53,280 Les hores d'oficina són a commons. 1911 01:26:53,280 --> 01:26:56,180 Altament suggerir nois tot pot començar immediatament, 1912 01:26:56,180 --> 01:27:00,490 perquè vostè no desitja ser que noi que la nit de dijous té problemes 1913 01:27:00,490 --> 01:27:03,870 presentant el conjunt de processadors i està com, jo ​​no sé què fer. 1914 01:27:03,870 --> 01:27:05,870 Vaig començar, he acabat, em vaig presentar. 1915 01:27:05,870 --> 01:27:09,737 Intenta donar una mica d'ambient, perquè en sempre es produeixen problemes de codi. 1916 01:27:09,737 --> 01:27:11,570 Vostè vol assegurar-se que que vostè es dóna 1917 01:27:11,570 --> 01:27:14,810 un munt de temps per poder per completar els conjunts de processadors. 1918 01:27:14,810 --> 01:27:15,310 Fresc. 1919 01:27:15,310 --> 01:27:16,720 Em quedaré per aquí. 1920 01:27:16,720 --> 01:27:18,226 >> AUDIÈNCIA: És aquesta línia ja? 1921 01:27:18,226 --> 01:27:20,850 ANDI Peng: Jo no sé si és ja en línia, però serà. 1922 01:27:20,850 --> 01:27:23,500 Em quedaré per aquí si algú té alguna pregunta ja. 1923 01:27:23,500 --> 01:27:25,390 Gràcies per venir. 1924 01:27:25,390 --> 01:27:27,105