1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> PROFESSOR: Així que l'ordre del dia de aquesta setmana, no és que la quantitat de coses. 3 00:00:09,790 --> 00:00:12,801 Però esperem que molt, molt útil i rellevant per a vostès aquesta setmana. 4 00:00:12,801 --> 00:00:15,550 Però anem a passar potser 15, 20 minuts parlant només de forma ràpida 5 00:00:15,550 --> 00:00:17,370 sobre la llista d'enllaços. 6 00:00:17,370 --> 00:00:19,694 Llistes d'enllaços van a ser coberts en el qüestionari. 7 00:00:19,694 --> 00:00:22,610 Així que potser seria molt útil per aprendre una mica sobre el que és. 8 00:00:22,610 --> 00:00:25,210 >> Anem a passar la gran majoria de la secció actual 9 00:00:25,210 --> 00:00:27,640 repassant problemes de pràctica concurs zero. 10 00:00:27,640 --> 00:00:30,970 I després salvarem potser 20, 30 minuts al final de les preguntes pendents 11 00:00:30,970 --> 00:00:32,850 algú té. 12 00:00:32,850 --> 00:00:34,610 >> I després, l'últim cinc minuts, vaig 13 00:00:34,610 --> 00:00:36,467 per donar una bomba fins la parla per al concurs. 14 00:00:36,467 --> 00:00:38,050 Vostès tots volen estar aquí per això. 15 00:00:38,050 --> 00:00:39,591 A causa de que serà un bon moment. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> Molt bé, pel que alguns el material a la llista d'enllaços. 18 00:00:49,230 --> 00:00:52,620 Com en general estan estructurats és vostè té el que es diu un node, oi? 19 00:00:52,620 --> 00:00:54,870 Vostè té aquestes coses anomenades nodes, que són estructures. 20 00:00:54,870 --> 00:00:57,360 Vaig a anar sobre com crear un node en la següent diapositiva. 21 00:00:57,360 --> 00:01:00,680 Però, en essència tots ells vinculats llistes es tracta de dades que 22 00:01:00,680 --> 00:01:03,340 ha estat enfilats a través de punters. 23 00:01:03,340 --> 00:01:09,110 >> I així, l'avantatge que tenim d'utilitzar una llista enllaçada més, 24 00:01:09,110 --> 00:01:11,280 potser, com una matriu, és el fet que en una matriu 25 00:01:11,280 --> 00:01:15,000 vostè necessita un bloc contigu de memòria tot en el mateix lloc, un 26 00:01:15,000 --> 00:01:16,870 després d'una altra, per poder tenir això. 27 00:01:16,870 --> 00:01:20,200 Considerant que la llista enllaçada, vostè podria tenen petits trossos aleatoris de la memòria 28 00:01:20,200 --> 00:01:23,020 tot l'equip enfilats per punters. 29 00:01:23,020 --> 00:01:26,270 >> I d'aquesta manera pot accedir a la informació 30 00:01:26,270 --> 00:01:28,610 que ve un després una altra, després de l'altra 31 00:01:28,610 --> 00:01:32,720 sense necessitat de només un tros enorme de la memòria en el seu ordinador a algun lloc. 32 00:01:32,720 --> 00:01:35,910 I pel que aquest és un dels principals raons per les quals utilitzem llista d'enllaços. 33 00:01:35,910 --> 00:01:40,300 >> En segon lloc, és molt fàcil de forma dinàmica canviar la mida de la llista d'enllaços perquè en conjunt, 34 00:01:40,300 --> 00:01:44,720 quan es declara una matriu, vostè té un cert valor establert. 35 00:01:44,720 --> 00:01:47,340 Diguem que jo volia crear un arranjament de 10 punts. 36 00:01:47,340 --> 00:01:49,970 Puc crear una matriu de 10 nombres enters, i això és tot. 37 00:01:49,970 --> 00:01:50,580 És 10. 38 00:01:50,580 --> 00:01:52,038 No sé què fer després d'això. 39 00:01:52,038 --> 00:01:53,680 Si volia fer 11, no pot fer-ho. 40 00:01:53,680 --> 00:01:55,710 Si vull que sigui 9, no pot fer-ho. 41 00:01:55,710 --> 00:01:59,910 >> Mentre que en una llista d'enllaços, pot afegir i esborrar i inserir on vulguis. 42 00:01:59,910 --> 00:02:04,940 Vostè pot canviar la mida de forma dinàmica la seva estructurar aquí, la seva estructura de dades. 43 00:02:04,940 --> 00:02:08,370 I això ens dóna molta més flexibilitat afegida 44 00:02:08,370 --> 00:02:11,320 que no ho fem normalment tenir amb matrius. 45 00:02:11,320 --> 00:02:15,210 >> Qualsevol persona confosa en el bàsic estructura de com una llista d'enllaç és 46 00:02:15,210 --> 00:02:17,930 o per què hem de fer servir un sobre una matriu? 47 00:02:17,930 --> 00:02:20,330 Sí, anem a repassar detalladament com crear en realitat un. 48 00:02:20,330 --> 00:02:24,121 Però això és només una mica el sentit general en aquest moment. 49 00:02:24,121 --> 00:02:24,620 Fresc. 50 00:02:24,620 --> 00:02:28,770 I així matrius s'enfilen d'aquestes encantadores petites coses 51 00:02:28,770 --> 00:02:29,960 anomenats nodes. 52 00:02:29,960 --> 00:02:32,210 Tot el que un node està és un tipus d'estructura. 53 00:02:32,210 --> 00:02:36,090 Recordeu, una estructura és si volies per a construir un tipus de variable 54 00:02:36,090 --> 00:02:39,850 en C que encara no existeixes, que, com a programador, 55 00:02:39,850 --> 00:02:42,030 en realitat pot crear vostè mateix. 56 00:02:42,030 --> 00:02:46,540 >> I així, aquest tipus de dades estructura s'anomena un node, 57 00:02:46,540 --> 00:02:50,770 en realitat ha estat creat per nosaltres, perquè no existeix en C per si sol. 58 00:02:50,770 --> 00:02:53,150 I la forma en què vostè creu un és que tens 59 00:02:53,150 --> 00:02:57,170 la capçalera de typedef struct, que li diu al compilador que sóc 60 00:02:57,170 --> 00:02:59,640 a punt de crear una estructura. 61 00:02:59,640 --> 00:03:00,830 >> Anem nom de "node". 62 00:03:00,830 --> 00:03:03,350 I a l'interior anem per declarar una variable en, 63 00:03:03,350 --> 00:03:05,060 que es va a emmagatzemar un valor. 64 00:03:05,060 --> 00:03:09,320 I llavors també anem a haver un punter anomenat "següent" 65 00:03:09,320 --> 00:03:12,090 que apunta a la següent node de la llista d'enllaços. 66 00:03:12,090 --> 00:03:14,730 I després d'acabar que fos amb només repetir node nou per 67 00:03:14,730 --> 00:03:17,490 el compilador sap, OK aquest és el final de la meva estructura. 68 00:03:17,490 --> 00:03:22,540 >> I així, d'aquesta manera, estem tipus de crear un petit arsenal valent 69 00:03:22,540 --> 00:03:25,450 tipus de coses amb un i amb un valor punter. 70 00:03:25,450 --> 00:03:27,757 I vostè pot vincular a tots ells juntament amb els punters. 71 00:03:27,757 --> 00:03:30,090 Perquè puguin ser de tot tipus enfilats en una cadena. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Fresc. 74 00:03:34,162 --> 00:03:35,453 ¿Es pot saber que una mica millor? 75 00:03:35,453 --> 00:03:36,140 >> AUDIÈNCIA: Sí. 76 00:03:36,140 --> 00:03:38,540 >> PROFESSOR: Molt bé. 77 00:03:38,540 --> 00:03:44,280 Així que la forma en què, com vostès poden veure, una llista d'enllaços típica s'estructura 78 00:03:44,280 --> 00:03:45,500 és que tens un cap. 79 00:03:45,500 --> 00:03:49,460 Vostè té el valor del cap que no és sent assenyalat per qualsevol altre punter. 80 00:03:49,460 --> 00:03:53,177 Però va assenyalar, o de referència, un altre node. 81 00:03:53,177 --> 00:03:56,510 El node després que es va a fer referència a la node després d'això, i així successivament i així successivament 82 00:03:56,510 --> 00:03:59,170 fins que finalment va colpejar Al final de la seva llista d'enllaços. 83 00:03:59,170 --> 00:04:00,980 I vostè no tindrà un punter allà. 84 00:04:00,980 --> 00:04:04,659 >> I així, pensar com, en una cadena, o fins i tot si algun de vostès fets, no sé, 85 00:04:04,659 --> 00:04:06,450 igual que amb Fruit Loops quan eres petit. 86 00:04:06,450 --> 00:04:08,590 Vostè faria unir-los i el desgast al voltant del seu coll. 87 00:04:08,590 --> 00:04:09,840 Creu que és exactament el mateix. 88 00:04:09,840 --> 00:04:12,964 Vostè té aquestes petites coses que vostè pot encadenar aquest punt a 01:00 89 00:04:12,964 --> 00:04:15,291 després d'ella, a la qual després de , I així successivament i així successivament 90 00:04:15,291 --> 00:04:17,040 fins que tingui una cadena d'una estructura de dades 91 00:04:17,040 --> 00:04:21,190 que es poden utilitzar com més t'agradi. 92 00:04:21,190 --> 00:04:27,370 >> Així que la forma en què això es faria solen inserir o eliminar 93 00:04:27,370 --> 00:04:30,020 qualsevol node des d'un enllaç la llista és molt diferent 94 00:04:30,020 --> 00:04:31,970 depenent d'on aquest node és. 95 00:04:31,970 --> 00:04:34,880 Així, per exemple, perquè punters són sempre 96 00:04:34,880 --> 00:04:38,645 apuntant a un valor específic, quan s'elimina o s'insereix un node, 97 00:04:38,645 --> 00:04:41,770 vostè vol assegurar-se que el punter és tot el que apunta a les coses correctes. 98 00:04:41,770 --> 00:04:46,200 >> Així que si vostè volia potencialment inserir un nou node amb el valor d'una 99 00:04:46,200 --> 00:04:48,379 dins d'un enllaç ordenada llista, tots sabem aquí 100 00:04:48,379 --> 00:04:51,170 de la imatge que va a Entra al mig del cap i dos, no? 101 00:04:51,170 --> 00:04:52,620 A causa que un s'adapti a la dreta allà. 102 00:04:52,620 --> 00:04:59,060 Però la forma en què ho faria és per primera dereferencing el punter 103 00:04:59,060 --> 00:05:02,160 del cap i l'enviament que a un. 104 00:05:02,160 --> 00:05:05,040 >> Però entrem en un problema aquí. 105 00:05:05,040 --> 00:05:08,280 Algú pot veure quin és el problema és si haguéssim de primer eliminar la referència 106 00:05:08,280 --> 00:05:10,090 el punter del cap a un? 107 00:05:10,090 --> 00:05:14,202 Quin problema podríem córrer en si tractem per afegir aquesta al capdavant de la nostra gamma? 108 00:05:14,202 --> 00:05:15,409 >> AUDIÈNCIA: [inaudible] 109 00:05:15,409 --> 00:05:16,200 PROFESSOR: Exactament. 110 00:05:16,200 --> 00:05:20,000 Així que aquí tenim un punter que era una vegada que apunta des del cap als dos. 111 00:05:20,000 --> 00:05:23,120 Però si vostè desfer-se d'aquest punter, apunten a un, 112 00:05:23,120 --> 00:05:26,500 ara tenim ni idea a on anar per trobar dos. 113 00:05:26,500 --> 00:05:29,850 A causa de que com ja he dit abans, vostè té un tros gegant de la memòria en el seu ordinador. 114 00:05:29,850 --> 00:05:31,860 Tots aquests nodes podrien ser intercalades a l'atzar 115 00:05:31,860 --> 00:05:33,350 en qualsevol lloc en l'equip. 116 00:05:33,350 --> 00:05:36,140 I vostè no sap com fer per trobar això. 117 00:05:36,140 --> 00:05:40,420 >> I així cal tenir punters assenyalant a tots els nodes a l'extrem. 118 00:05:40,420 --> 00:05:42,420 O bé si accidentalment eliminar la referència d'un 119 00:05:42,420 --> 00:05:44,485 sense primera assignació un valor primer, ets 120 00:05:44,485 --> 00:05:47,410 només va a perdre tot després. 121 00:05:47,410 --> 00:05:49,720 >> Llavors, què anem a fer és, ho faria primer 122 00:05:49,720 --> 00:05:53,270 que vulgueu crear un punter a el node que voleu inserir. 123 00:05:53,270 --> 00:05:55,270 Apunt a on vostè vol inserir a, 124 00:05:55,270 --> 00:05:59,410 i després després que podria apuntar el cap cap enrere a un. 125 00:05:59,410 --> 00:06:02,800 >> ¿Això té sentit per a tothom aquí? 126 00:06:02,800 --> 00:06:03,346 Gran. 127 00:06:03,346 --> 00:06:04,720 Penseu en això com la mateixa manera que una cadena. 128 00:06:04,720 --> 00:06:07,420 Si s'agrega una cadena, que és una mica intuïtiva 129 00:06:07,420 --> 00:06:10,742 com et va sobre la inserció d'això. 130 00:06:10,742 --> 00:06:15,274 >> Acceptar, per la qual cosa és en realitat molt més curt del que vaig pensar que seria, 131 00:06:15,274 --> 00:06:16,690 una llauna de cinc minuts en les llistes d'enllaços. 132 00:06:16,690 --> 00:06:19,960 Només perquè vostès tenen la idea bàsica del que és. 133 00:06:19,960 --> 00:06:23,580 >> Aquí tenim el programa de prova zero. 134 00:06:23,580 --> 00:06:24,895 No deixis que això et intimidi. 135 00:06:24,895 --> 00:06:26,270 Sé que és una gran quantitat d'informació. 136 00:06:26,270 --> 00:06:27,580 Es veu molt aterridor. 137 00:06:27,580 --> 00:06:33,130 És també una gran quantitat de, jo pensar, CSC tipus de termes. 138 00:06:33,130 --> 00:06:37,440 Coses com cadenes hexadecimals, punters, les assignacions de memòria dinàmica 139 00:06:37,440 --> 00:06:40,120 són termes que sonen molt por. 140 00:06:40,120 --> 00:06:42,700 >> Però anem a trencar- baix, fer alguns problemes de pràctica 141 00:06:42,700 --> 00:06:44,980 perquè vostès tots estan preparats per a aquesta prova. 142 00:06:44,980 --> 00:06:47,104 Quants de vostès tenen ja va començar a estudiar? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, vostès probablement vulgui per començar a posar-se en marxa 145 00:06:53,670 --> 00:06:56,480 en això, pel fet que el concurs és demà. 146 00:06:56,480 --> 00:06:58,739 O dijous per a alguns de vosaltres. 147 00:06:58,739 --> 00:07:01,030 Sí, així que anirem sobre alguns problemes de pràctica. 148 00:07:01,030 --> 00:07:04,600 Si vostès tots volem prendre un full de paper, un llapis. 149 00:07:04,600 --> 00:07:07,310 Anem a simplement passar el gran majoria de la secció actual 150 00:07:07,310 --> 00:07:11,590 repassant alguns dels que el que vostès tenen una idea de què esperar al qüestionari. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> D'ACORD. 153 00:07:16,890 --> 00:07:19,730 Un parell de logística detalls així, per a ningú 154 00:07:19,730 --> 00:07:25,120 que no ha estat en aquest enllaç allà, si vas a cs50.yale.edu, al front 155 00:07:25,120 --> 00:07:28,566 aquesta pàgina hi ha un enllaç que diu "Sobre el concurs Zero." 156 00:07:28,566 --> 00:07:29,440 Enllaç et porta allà. 157 00:07:29,440 --> 00:07:31,065 Si vostè no ho ha llegit, si us plau llegir-lo. 158 00:07:31,065 --> 00:07:34,470 Perquè et diu realment important informació sobre el qüestionari. 159 00:07:34,470 --> 00:07:37,410 >> Vaig a tirar això cap a fora de que només perquè, físicament, 160 00:07:37,410 --> 00:07:40,200 si vostès no sap on anar, tindrem problemes. 161 00:07:40,200 --> 00:07:44,220 I el que si el seu passat en termes amb A a N, anar al saló d'actes del col·legi d'advocats. 162 00:07:44,220 --> 00:07:47,500 I si les seves últimes obertures amb P a la Z, anar al Auditori Davies. 163 00:07:47,500 --> 00:07:50,240 I això només s'aplica per persones en la secció dimecres. 164 00:07:50,240 --> 00:07:53,420 >> Si vostè està prenent la prova en Dijous, vostè va a SSS 114 165 00:07:53,420 --> 00:07:55,078 on la seva conferència normalment és. 166 00:07:55,078 --> 00:07:55,953 AUDIÈNCIA: [inaudible] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 PROFESSOR: O a la Z, vas per anar a l'auditori Davies. 169 00:08:01,940 --> 00:08:03,273 Vaig a canviar això, oi? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Oh, sí, només falla automàticament. 172 00:08:09,698 --> 00:08:11,753 >> Ah, sí, que és Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Sí, el meu mal. 175 00:08:16,030 --> 00:08:17,610 Sí, O a la Z, vas anar a Davies Auditorim. 176 00:08:17,610 --> 00:08:19,140 Vaig a arreglar això una vegada que pujar. 177 00:08:19,140 --> 00:08:20,320 Sí. 178 00:08:20,320 --> 00:08:22,160 >> I després també alguna cosa important per a la ment 179 00:08:22,160 --> 00:08:25,290 és que dimecres, si vostè és oficialment inscrit en la secció dimecres 180 00:08:25,290 --> 00:08:26,832 vostè ha de portar un concurs dimecres. 181 00:08:26,832 --> 00:08:29,706 I si vostè està inscrit en Dijous, haurà de portar el concurs Jueves. 182 00:08:29,706 --> 00:08:31,000 I és durant les hores de classe. 183 00:08:31,000 --> 00:08:35,970 On, crec que és de 1:00 a 02:15 els dimecres i dos i mitjana-3: 45 184 00:08:35,970 --> 00:08:37,220 els dijous. 185 00:08:37,220 --> 00:08:41,710 >> Si vostè té un conflictes irreconciliables, Excuses de Dean són l'única cosa, 186 00:08:41,710 --> 00:08:43,030 per desgràcia, podem prendre. 187 00:08:43,030 --> 00:08:45,560 A causa que hem tingut una gran majoria de les sol·licituds 188 00:08:45,560 --> 00:08:47,970 per canviar de dimecres a dijous. 189 00:08:47,970 --> 00:08:51,265 Què no podem honorar menys tenim la petició d'un degà. 190 00:08:51,265 --> 00:08:52,650 >> D'ACORD. 191 00:08:52,650 --> 00:08:57,000 Així que abans de començar en un parell dels problemes de la pràctica, 192 00:08:57,000 --> 00:09:00,540 Jo només vaig a anar més Consells útils d'Andy per a l'èxit. 193 00:09:00,540 --> 00:09:04,140 Nois, quan estudies, realment voler practicar l'escriptura de codi a mà. 194 00:09:04,140 --> 00:09:07,050 La primera vegada que va prendre un concurs CS, no ho hagués fet 195 00:09:07,050 --> 00:09:09,960 codi de pràctica de l'escriptura a mà abans i que era extremadament 196 00:09:09,960 --> 00:09:11,890 impactant de la dificultat que era. 197 00:09:11,890 --> 00:09:16,125 >> Quan vostès no es fiquen en la hàbit d'escriure tot el, 198 00:09:16,125 --> 00:09:20,260 es tracta, naturalment, de ser molt capaç de tenir automàtic 199 00:09:20,260 --> 00:09:22,015 suports i punts i comes allà. 200 00:09:22,015 --> 00:09:23,890 Quan s'escriu una ullada amb la mà, de vegades és 201 00:09:23,890 --> 00:09:27,100 molt, molt fàcil oblidar un punt i coma, o us oblideu de tancar un suport, 202 00:09:27,100 --> 00:09:30,970 o us oblideu de tancar dos punts, o alguna cosa per l'estil. 203 00:09:30,970 --> 00:09:34,322 >> Així que quan s'escriu codi a mà, és una sensació molt diferent. 204 00:09:34,322 --> 00:09:37,280 Així que vostès, quan s'està treballant a través d'alguns dels problemes de la pràctica, 205 00:09:37,280 --> 00:09:38,904 seria bo practicar realment avui. 206 00:09:38,904 --> 00:09:41,770 O demà, suposo, si estàs prendre la prova dijous. 207 00:09:41,770 --> 00:09:45,280 >> En segon lloc, tenim l'última, com, el valor de la pràctica de vuit d'anys 208 00:09:45,280 --> 00:09:47,070 qüestionaris en línia. 209 00:09:47,070 --> 00:09:50,759 Concurs d'aquest any serà probablement molt, molt similar a tots ells. 210 00:09:50,759 --> 00:09:51,800 Tots són molt similars. 211 00:09:51,800 --> 00:09:54,220 D'alguna manera entrar al estil de el tipus de preguntes 212 00:09:54,220 --> 00:09:57,250 el que demanem, el tipus de funcions que anem a escriure en, 213 00:09:57,250 --> 00:09:58,580 etcètera, etcètera. 214 00:09:58,580 --> 00:10:01,980 >> Així que pren les proves de la pràctica, especialment sota les limitacions de temps. 215 00:10:01,980 --> 00:10:05,390 75 minuts per fer la prova és no un munt de temps. 216 00:10:05,390 --> 00:10:07,254 És molt, molt llarg. 217 00:10:07,254 --> 00:10:09,670 I el que vostès realment volen per assegurar-se que vostès són 218 00:10:09,670 --> 00:10:11,990 l'hàbit de l'escriptura codi a mà ràpidament. 219 00:10:11,990 --> 00:10:15,070 Com que vostè no desitja que la primera temps per veure una prova de que la longitud 220 00:10:15,070 --> 00:10:16,560 estar en la seva prova. 221 00:10:16,560 --> 00:10:20,540 Vostès realment vol assegurar que la pràctica per endavant. 222 00:10:20,540 --> 00:10:24,550 >> En quart lloc, vol revisar la conferències i secció diapositives. 223 00:10:24,550 --> 00:10:25,980 No ha de memoritzar coses. 224 00:10:25,980 --> 00:10:30,430 En realitat, tothom se li permet un un full de notes de paper blanc, 225 00:10:30,430 --> 00:10:31,090 davant i darrere. 226 00:10:31,090 --> 00:10:32,920 Vostès poden escriure o escriure. 227 00:10:32,920 --> 00:10:37,070 Si veus que necessites memoritzar res, el va deixar en aquesta fulla. 228 00:10:37,070 --> 00:10:40,810 >> Et garanteixo que no vol ser atrapat en el medi d'aquest qüestionari 229 00:10:40,810 --> 00:10:43,890 sent així, oh sí, quin és el temps d'execució d'aquest tipus davant d'aquest tipus. 230 00:10:43,890 --> 00:10:46,490 Només cal posar baix i copiar- directament des de la fulla de la nota. 231 00:10:46,490 --> 00:10:50,420 A continuació, pot en realitat només ha d'utilitzar el seu cervell per pensar en els problemes 232 00:10:50,420 --> 00:10:52,190 en lloc d'haver de recordar fets. 233 00:10:52,190 --> 00:10:55,250 I així realment aprofitar de cap detall de nínxol 234 00:10:55,250 --> 00:11:00,140 que vostè pensa que necessita per memoritzar, plop baix en el full d'examen. 235 00:11:00,140 --> 00:11:02,680 >> OK, qualsevol pregunta logísticament en relació amb el qüestionari 236 00:11:02,680 --> 00:11:05,510 abans de començar alguna practiquen problemes de concursos? 237 00:11:05,510 --> 00:11:06,416 Sí? 238 00:11:06,416 --> 00:11:10,040 >> AUDIÈNCIA: No he tingut l'oportunitat mirar el qüestionari [inaudible] 239 00:11:10,040 --> 00:11:11,757 però es que serà aplicació sobretot, 240 00:11:11,757 --> 00:11:14,090 ¿O hi ha també serà, com, preguntes de cultura? 241 00:11:14,090 --> 00:11:14,940 >> PROFESSOR: És molt. 242 00:11:14,940 --> 00:11:16,731 Per tant, la forma en què jo faria descriu el qüestionari 243 00:11:16,731 --> 00:11:18,810 és-- vaig ajuntar alguns problemes de pràctica 244 00:11:18,810 --> 00:11:20,960 que em va treure de tots els concursos. 245 00:11:20,960 --> 00:11:25,210 Però veuràs que hi ha dos principals tipus de preguntes que ens preguntaran vostès. 246 00:11:25,210 --> 00:11:28,750 >> Es tracta d'un molt baix nivell de detall de coses. 247 00:11:28,750 --> 00:11:31,720 Li donarem un petit tros de codi i dir, hi ha algun error en aquesta llista? 248 00:11:31,720 --> 00:11:33,110 Quina seria la impressió d'aquí? 249 00:11:33,110 --> 00:11:35,980 Què farà aquest codi produir, etcètera. 250 00:11:35,980 --> 00:11:38,710 Així detalls d'informació de molt baixa activitat. 251 00:11:38,710 --> 00:11:42,700 >> I per l'altre costat, tindrem molt alt nivell preguntes basades en el coneixement. 252 00:11:42,700 --> 00:11:45,190 Pot explicar el que el diferència entre una recerca binària 253 00:11:45,190 --> 00:11:46,148 i una recerca lineal és? 254 00:11:46,148 --> 00:11:48,500 Per què anàvem a voler utilitzar un sobre l'altre? 255 00:11:48,500 --> 00:11:49,960 Potser, el que és GDB? 256 00:11:49,960 --> 00:11:51,560 Per què volem utilitzar GDB? 257 00:11:51,560 --> 00:11:54,590 Nivell més alt, més fonamental preguntes de comprensió. 258 00:11:54,590 --> 00:11:58,240 Així veuràs una barreja de els dos d'ells en el seu qüestionari. 259 00:11:58,240 --> 00:12:01,462 >> Qualsevol altra cosa abans que dirigir-se directament a ella? 260 00:12:01,462 --> 00:12:02,879 D'ACORD. 261 00:12:02,879 --> 00:12:03,670 AUDIÈNCIA: Una més. 262 00:12:03,670 --> 00:12:04,030 PROFESSOR: Oh, una més. 263 00:12:04,030 --> 00:12:04,340 Ho sento. 264 00:12:04,340 --> 00:12:05,631 >> AUDIÈNCIA: Sí, està bé. 265 00:12:05,631 --> 00:12:10,140 Així que estàs dient 75 minuts és massa curt, com és poc probable 266 00:12:10,140 --> 00:12:11,640 que anem a acabar? 267 00:12:11,640 --> 00:12:13,571 O, com, 75 minuts és exactament el mateix temps 268 00:12:13,571 --> 00:12:15,700 ja que necessitaríem si fóssim preparat adequadament? 269 00:12:15,700 --> 00:12:17,450 PROFESSOR: OK, de manera que el qüestionari és un repte. 270 00:12:17,450 --> 00:12:19,550 En definitiva, és un repte. 271 00:12:19,550 --> 00:12:21,092 Vostè es trobarà amb poc temps. 272 00:12:21,092 --> 00:12:24,341 Vostè està probablement va a colpejar, com 10, 15 minuts per al final, i ser com, merda. 273 00:12:24,341 --> 00:12:25,520 Tinc tant de fer. 274 00:12:25,520 --> 00:12:26,520 I això és totalment bé. 275 00:12:26,520 --> 00:12:28,740 Tothom va a sentir la mateixa manera. 276 00:12:28,740 --> 00:12:31,074 >> Tot just sigui molt conscient de la quantitat de temps que vostè té. 277 00:12:31,074 --> 00:12:33,490 I per això et dic nois fan els exàmens de pràctica. 278 00:12:33,490 --> 00:12:36,672 Perquè el que realment li dóna un gran sentit del que la prova serà així. 279 00:12:36,672 --> 00:12:39,130 Així que si vostè es troba sent capaç d'acabar la pràctica 280 00:12:39,130 --> 00:12:41,671 qüestionaris en una bona quantitat de temps, vostè pot mantenir un ritme bo, 281 00:12:41,671 --> 00:12:45,695 llavors vostè no tindrà un problema dimecres o dijous. 282 00:12:45,695 --> 00:12:46,575 >> Fresc. 283 00:12:46,575 --> 00:12:49,200 Així que si tothom wants-- Crec la majoria de la gent té fulls de paper 284 00:12:49,200 --> 00:12:49,810 ja. 285 00:12:49,810 --> 00:12:52,604 Vaig a essencialment només donar-li exemples de preguntes, 286 00:12:52,604 --> 00:12:54,520 donar a vostès, com, 01:00 uns minuts per fer ells. 287 00:12:54,520 --> 00:12:59,610 I anem a repassar com classe el que les respostes a ells són. 288 00:12:59,610 --> 00:13:02,860 >> Així que aquest és un molt típic pregunta d'hora anem a 289 00:13:02,860 --> 00:13:06,720 pregunti vostè, només la conversió nombres entre diferents bases. 290 00:13:06,720 --> 00:13:09,070 Binaris, com vostès poden record, és la base de dos. 291 00:13:09,070 --> 00:13:12,470 Decimal és base 10, o el que com a éssers humans normalment interpreten. 292 00:13:12,470 --> 00:13:17,120 Hexadecimal és de base 16, que és zero al nou, així com l'A a la F. 293 00:13:17,120 --> 00:13:19,990 >> Així que hi ha quatre números estic demanant a vostès per convertir aquí. 294 00:13:19,990 --> 00:13:23,909 Vaig a donar el vol, de tres a quatre minuts per pensar en com 295 00:13:23,909 --> 00:13:25,200 aniríem sobre solucionar això. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> AUDIÈNCIA: ¿Se'ns permet calculadores? 298 00:13:35,710 --> 00:13:37,630 >> PROFESSOR: No ho faràs necessitarà calculadores, si. 299 00:13:37,630 --> 00:13:42,420 Crec a més bàsica, crec, és Se'ls demanarà a tots vostès per fer. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> I just així que tipus d'un sentit de quan tothom es fa, mira cap amunt, 302 00:14:45,070 --> 00:14:47,429 ona, no sé, somriure, mira feliç si ja està. 303 00:14:47,429 --> 00:14:47,929 Sí. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Potser un parell de minuts més. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, anem a portar-lo. 308 00:18:29,600 --> 00:18:31,580 Estic a propòsit d'anar a donar-vos menys temps 309 00:18:31,580 --> 00:18:33,760 el que probablement necessita fer alguns d'aquests problemes, 310 00:18:33,760 --> 00:18:37,124 simplement perquè vull assegurar-me que obtenim a través d'un munt de problemes. 311 00:18:37,124 --> 00:18:39,290 Així que no us preocupeu si vostè no tenen l'oportunitat d'acabar. 312 00:18:39,290 --> 00:18:43,770 Totalment bé, sempre que vostè té una idea de com anar sobre això. 313 00:18:43,770 --> 00:18:45,850 Així que seguirem endavant i fer el primer. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> Així que primer, algú em vol dir en binari, el que faci cada un d'aquests dígits 316 00:18:57,870 --> 00:19:00,484 representar en termes dels seus valors? 317 00:19:00,484 --> 00:19:01,250 Sí? 318 00:19:01,250 --> 00:19:03,349 >> AUDIÈNCIA: Dos al potència zero, dos a un. 319 00:19:03,349 --> 00:19:04,140 PROFESSOR: Exactament. 320 00:19:04,140 --> 00:19:04,640 So. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> Dret, de manera que normalment quan estem a la base 10 323 00:19:16,430 --> 00:19:20,580 Tot això representa són, com, 10 a la base de zero, no? 324 00:19:20,580 --> 00:19:21,810 Aquest és el lloc del seu ésser. 325 00:19:21,810 --> 00:19:24,520 Tot el teu lloc de 10 és és 10 a la potència d'un. 326 00:19:24,520 --> 00:19:26,600 Lloc de Vostè és el 100 10 a la potència de dos. 327 00:19:26,600 --> 00:19:29,570 >> Qualsevol que sigui la base que està en està passant a veure amb la mateixa cosa, 328 00:19:29,570 --> 00:19:31,480 simplement amb una base diferent. 329 00:19:31,480 --> 00:19:34,130 Així binari, tot el que és és base dos. 330 00:19:34,130 --> 00:19:37,110 Et vas a convertir tot el dígits en dos a qualsevol poder 331 00:19:37,110 --> 00:19:38,190 d'aquest dígit. 332 00:19:38,190 --> 00:19:41,450 I així, en aquest sentit, pot tenir una forma més fàcil 333 00:19:41,450 --> 00:19:43,800 de ser capaç de sumar o resumir tots els números en ordre 334 00:19:43,800 --> 00:19:46,010 per convertir a la base 10. 335 00:19:46,010 --> 00:19:50,362 >> Així que, algú vol dir-me el que el resposta a la primera és en base deu? 336 00:19:50,362 --> 00:19:51,674 >> AUDIÈNCIA: Dos, [inaudible] 337 00:19:51,674 --> 00:19:52,340 PROFESSOR: Sí. 338 00:19:52,340 --> 00:19:53,230 AUDIÈNCIA: 42. 339 00:19:53,230 --> 00:19:56,560 PROFESSOR: 42, aquí ho tens. 340 00:19:56,560 --> 00:20:00,660 Així que la manera que tenim aquesta resposta era per fent dos, el primer, que és de dos. 341 00:20:00,660 --> 00:20:02,760 Més dos del tercer, que és vuit. 342 00:20:02,760 --> 00:20:07,590 Plus 2 a la cinquena, la qual és el que sobra. 343 00:20:07,590 --> 00:20:09,390 Vostè els resums i és 42. 344 00:20:09,390 --> 00:20:12,000 >> Hi ha algú confós sobre com hem arribat fins a això? 345 00:20:12,000 --> 00:20:15,630 A més tan bàsic, com Li vaig dir, vostè ha d'estar bé. 346 00:20:15,630 --> 00:20:17,410 Si no, bé, podem practicar això també. 347 00:20:17,410 --> 00:20:18,720 Però això està bé. 348 00:20:18,720 --> 00:20:20,560 Fresc. 349 00:20:20,560 --> 00:20:25,570 >> Algú vol donar-me la respondre a la segona també? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 Bé. 352 00:20:27,600 --> 00:20:30,044 Qualsevol persona confosa sobre com aconseguim que sigui? 353 00:20:30,044 --> 00:20:31,960 Refredar, tindré la respostes a la següent diapositiva. 354 00:20:31,960 --> 00:20:34,440 Així que no us preocupeu si vostè necessitarà copiar cap avall. 355 00:20:34,440 --> 00:20:38,860 >> OK, així hexadecimal és una mica més complicat. 356 00:20:38,860 --> 00:20:41,840 però jo et vaig a mostrar nois un accés directe per saber com fer-ho. 357 00:20:41,840 --> 00:20:44,800 Així hexadecimal, com vostè recordi, tot el que és ser de 16. 358 00:20:44,800 --> 00:20:48,920 I pel fet que els humans no ho fan realitat tenir 16 números per representar que, 359 00:20:48,920 --> 00:20:56,940 anem a partir de zero a nou, que la nostra primera 10 valors, i després fem l'A a la F, 360 00:20:56,940 --> 00:20:58,630 que són els següents 6 valors. 361 00:20:58,630 --> 00:21:03,040 >> I així, la forma més fàcil d'anar de qualsevol nombre binari a hexadecimal 362 00:21:03,040 --> 00:21:05,350 és separar-los en dues meitats. 363 00:21:05,350 --> 00:21:10,042 I pel que qualsevol nombre binari que donarà és probable que tingui vuit dígits. 364 00:21:10,042 --> 00:21:11,750 Vostè només pot trencar cap amunt en el centre. 365 00:21:11,750 --> 00:21:17,460 >> Així que la primera un-- només un, només un, un, un, un de sol. 366 00:21:17,460 --> 00:21:21,340 Tipus de pensar que, ja saps, dibuixa una barra o una coma entre elles. 367 00:21:21,340 --> 00:21:23,800 I només es pot convertir directament el que sigui 368 00:21:23,800 --> 00:21:26,670 això és el primer nombre de hexadecimal, 369 00:21:26,670 --> 00:21:29,880 i tot el que aquí és el segon d'hexadecimal. 370 00:21:29,880 --> 00:21:37,584 >> Així que recordi de la notació comú, el comencen valors hexadecimals amb? 371 00:21:37,584 --> 00:21:38,460 >> AUDIÈNCIA: Zero. 372 00:21:38,460 --> 00:21:39,270 >> PROFESSOR: 0X. 373 00:21:39,270 --> 00:21:45,210 Així que sabem que en qualsevol moment et demanem per convertir qualsevol nombre a hexadecimal, 374 00:21:45,210 --> 00:21:48,230 o en qualsevol moment que vostè veu cap nombre que comença amb 0X, 375 00:21:48,230 --> 00:21:50,230 vostè sap que és un valor hexadecimal. 376 00:21:50,230 --> 00:21:54,160 >> I llavors vostè va a demanar que determinar el que aquests dos dígits són. 377 00:21:54,160 --> 00:21:59,690 I la manera de fer-ho, del recompte de que la meitat i del recompte d'aquest mitjà. 378 00:21:59,690 --> 00:22:02,870 Així que en aquest exemple, el que hauria un, un, un, un ser? 379 00:22:02,870 --> 00:22:04,890 Quin valor podria ser? 380 00:22:04,890 --> 00:22:06,040 Això seria F, oi? 381 00:22:06,040 --> 00:22:08,050 Això seria 15. 382 00:22:08,050 --> 00:22:11,780 >> Així que aquest seria F. Un, un, un, un aquí és també 383 00:22:11,780 --> 00:22:21,270 F. Així que un, un, un, un, un, un, un, una a hexadecimal, tot el que és és 0xFF. 384 00:22:21,270 --> 00:22:25,350 A causa que aquest mitjà representa F, el valor de 15, 385 00:22:25,350 --> 00:22:27,331 i això representava un mitjà F, el valor 15. 386 00:22:27,331 --> 00:22:29,456 Perquè recorda, estem a comptar des de zero a nou. 387 00:22:29,456 --> 00:22:35,290 Una és com 10, B és com 11, F és 15. 388 00:22:35,290 --> 00:22:41,690 >> Té sentit a tot el món com arribem de binari a hexadecimal? 389 00:22:41,690 --> 00:22:44,595 >> AUDIÈNCIA: Llavors com hem arribat 15 de la un, un, un, un? 390 00:22:44,595 --> 00:22:46,220 PROFESSOR: Sí, això és binari, oi? 391 00:22:46,220 --> 00:22:48,090 Imagineu això és només un nombre binari. 392 00:22:48,090 --> 00:22:50,792 Així que hi ha dues a la zero, que és un. 393 00:22:50,792 --> 00:22:51,500 AUDIÈNCIA: Oh, OK. 394 00:22:51,500 --> 00:22:51,670 Així que només una total cap a fora. 395 00:22:51,670 --> 00:22:52,670 >> PROFESSOR: Sí, i després que acaba totals que fos. 396 00:22:52,670 --> 00:22:53,380 Això és tot el que és. 397 00:22:53,380 --> 00:22:54,890 >> AUDIÈNCIA: OK. 398 00:22:54,890 --> 00:22:55,830 >> PROFESSOR: OK. 399 00:22:55,830 --> 00:23:00,740 >> AUDIÈNCIA: Llavors vas de binari a decimal a hexadecimal? 400 00:23:00,740 --> 00:23:04,590 >> PROFESSOR: Això és la manera més fàcil de fer-ho, sí. 401 00:23:04,590 --> 00:23:11,390 No vas a decimal perquè decimal té zero a nou. 402 00:23:11,390 --> 00:23:13,410 Som només una mica dividir això en dos. 403 00:23:13,410 --> 00:23:15,201 >> AUDIÈNCIA: [inaudible] usant decimal a trobar 404 00:23:15,201 --> 00:23:17,809 el que coincideix fins a hexadecimal. 405 00:23:17,809 --> 00:23:20,100 PROFESSOR: Vull dir, ets del recompte d'ús de les matemàtiques bàsiques. 406 00:23:20,100 --> 00:23:20,725 AUDIÈNCIA: Sí. 407 00:23:20,725 --> 00:23:22,300 PROFESSOR: Sí, més o menys. 408 00:23:22,300 --> 00:23:23,630 És una mica confús. 409 00:23:23,630 --> 00:23:26,410 Però només sé que vostè pot dividir el que sigui 410 00:23:26,410 --> 00:23:28,160 aquest valor és només a meitats. 411 00:23:28,160 --> 00:23:29,570 Mira, què és això en binari? 412 00:23:29,570 --> 00:23:30,610 Quin nombre és? 413 00:23:30,610 --> 00:23:33,270 Serà una mica de zero a F. 414 00:23:33,270 --> 00:23:35,722 >> Aquí també serà una mica de zero a F. 415 00:23:35,722 --> 00:23:37,722 I llavors vostè pot simplement posar aquests dos allà mateix. 416 00:23:37,722 --> 00:23:38,263 >> AUDIÈNCIA: OK. 417 00:23:38,263 --> 00:23:38,910 PROFESSOR: Sí. 418 00:23:38,910 --> 00:23:39,410 D'ACORD. 419 00:23:39,410 --> 00:23:42,320 Així que nois vol tractar el següent, llavors? 420 00:23:42,320 --> 00:23:49,601 Zero, un, zero un, un, zero, un zero. 421 00:23:49,601 --> 00:23:52,350 Et vaig a donar nois com 30 segons, ja que probablement no sabies 422 00:23:52,350 --> 00:23:53,850 el truc per com fer-ho abans. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, algú vol aconseguir aquest un tret? 425 00:24:27,381 --> 00:24:28,774 >> 0x5A. 426 00:24:28,774 --> 00:24:29,440 PROFESSOR: 0x5A. 427 00:24:29,440 --> 00:24:30,470 5a. 428 00:24:30,470 --> 00:24:31,340 Bé. 429 00:24:31,340 --> 00:24:37,050 Així que aquesta aquí seria ser-- desitja per dir-nos com va arribar això? 430 00:24:37,050 --> 00:24:38,920 En primer lloc, com vas arribar als cinc? 431 00:24:38,920 --> 00:24:42,030 >> AUDIÈNCIA: A causa de zero, un, zero, un és de cinc. 432 00:24:42,030 --> 00:24:45,170 >> PROFESSOR: ¿Tots entenen ¿Per zero, un, zero, un és de cinc? 433 00:24:45,170 --> 00:24:46,260 Tens un aquí. 434 00:24:46,260 --> 00:24:48,010 No tens res en dos a la primera. 435 00:24:48,010 --> 00:24:50,300 En dos a la segona, que tenir un, que és de quatre. 436 00:24:50,300 --> 00:24:52,600 Llavors s'agrega el quatre més l'un, que té cinc. 437 00:24:52,600 --> 00:24:53,600 Cada un de bo? 438 00:24:53,600 --> 00:24:54,100 D'ACORD. 439 00:24:54,100 --> 00:24:56,570 I llavors el que aquest ser i per què? 440 00:24:56,570 --> 00:24:58,350 Quin nombre té una correspon a? 441 00:24:58,350 --> 00:24:59,350 >> AUDIÈNCIA: 10. 442 00:24:59,350 --> 00:25:00,976 >> PROFESSOR: I això en base dues? 443 00:25:00,976 --> 00:25:01,850 AUDIÈNCIA: [inaudible] 444 00:25:01,850 --> 00:25:03,010 PROFESSOR: Exactament. 445 00:25:03,010 --> 00:25:06,370 Així que aquest segon valor aquí seria 0x5A. 446 00:25:06,370 --> 00:25:08,410 >> Tothom bona sobre com convertir? 447 00:25:08,410 --> 00:25:10,770 És molt més senzill del que creus que és. 448 00:25:10,770 --> 00:25:13,330 Jo només vull assegurar saps consells útils 449 00:25:13,330 --> 00:25:14,950 i trucs sobre com fer això. 450 00:25:14,950 --> 00:25:18,432 >> AUDIÈNCIA: Per què pot vostè acaba de dividir que enmig d'aquesta manera? 451 00:25:18,432 --> 00:25:21,390 Només com, OK, jo només vaig a es preocupen per aquests primers [inaudible]? 452 00:25:21,390 --> 00:25:24,240 >> PROFESSOR: Perquè això és en realitat el manera es representen els valors hexadecimals. 453 00:25:24,240 --> 00:25:26,890 0X, que significa en realitat altra cosa que dir-te 454 00:25:26,890 --> 00:25:28,710 que és un nombre hexadecimal. 455 00:25:28,710 --> 00:25:31,580 I això representa sempre els primers quatre dígits. 456 00:25:31,580 --> 00:25:34,330 I això representa sempre els últims quatre dígits. 457 00:25:34,330 --> 00:25:37,835 I pel que aquestes dues xifres només corresponen a les diferents bits. 458 00:25:37,835 --> 00:25:39,200 >> AUDIÈNCIA: Llavors anem a always-- 459 00:25:39,200 --> 00:25:41,830 >> PROFESSOR: Sempre estàs aconseguirà vuit bits de valor. 460 00:25:41,830 --> 00:25:44,580 >> AUDIÈNCIA: És que igual que una cosa aquí o que una cosa per tot arreu? 461 00:25:44,580 --> 00:25:46,883 PROFESSOR: Això és només una cosa en ordinadors, si. 462 00:25:46,883 --> 00:25:47,424 AUDIÈNCIA: OK. 463 00:25:47,424 --> 00:25:48,240 Impressionant. 464 00:25:48,240 --> 00:25:51,290 >> PROFESSOR: També, pel que en aquest exemple convertim de binari a decimal, 465 00:25:51,290 --> 00:25:53,290 i de binari a hexadecimal. 466 00:25:53,290 --> 00:25:56,610 Volen assegurar-se que vostè també practicar anar al revés. 467 00:25:56,610 --> 00:26:03,370 Així que si jo et vaig donar 0xFF, podria dibuixar que en binari, oi? 468 00:26:03,370 --> 00:26:06,820 >> Converteix F en binari, que és un, un, un, un, 469 00:26:06,820 --> 00:26:09,380 convertir F a binari, el qual és un, un, un, un. 470 00:26:09,380 --> 00:26:11,310 >> Així que nosaltres podríem demanar-li que fer al revés. 471 00:26:11,310 --> 00:26:14,817 Així decimal a binari, o hexadecimal a binari. 472 00:26:14,817 --> 00:26:16,650 Així que vostè vol fer Assegureu-vos de saber en tots dos sentits. 473 00:26:16,650 --> 00:26:19,371 Probablement anem a fer-te una combinació dels dos. 474 00:26:19,371 --> 00:26:20,660 >> Sí, vostè té una pregunta? 475 00:26:20,660 --> 00:26:22,724 Puc veure- ets bo? 476 00:26:22,724 --> 00:26:23,348 AUDIÈNCIA: Sí. 477 00:26:23,348 --> 00:26:24,560 PROFESSOR: OK. 478 00:26:24,560 --> 00:26:26,101 Sóc bona per esborrar això? 479 00:26:26,101 --> 00:26:26,600 Gran. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> Molt bé, de manera que les respostes són aquí, si algú És curiós tard i confondre. 482 00:26:40,437 --> 00:26:41,844 D'ACORD. 483 00:26:41,844 --> 00:26:46,070 >> AUDIÈNCIA: ¿Importa si posem les nostres lletres en capitoli o minúscula? 484 00:26:46,070 --> 00:26:50,360 >> PROFESSOR: Ho fa, perquè en hexadecimal, per convenció, 485 00:26:50,360 --> 00:26:52,840 tots els personatges estan en majúscules. 486 00:26:52,840 --> 00:26:54,650 Així A a F són serà majúscul. 487 00:26:54,650 --> 00:26:58,660 Si vostè posa una minúscula a, no sé si volem necessàriament marcar-malament. 488 00:26:58,660 --> 00:27:00,679 Però en teoria, això no és tècnicament 489 00:27:00,679 --> 00:27:01,970 com se suposa que has de. 490 00:27:01,970 --> 00:27:03,303 Així que tots ells han d'estar en majúscules. 491 00:27:03,303 --> 00:27:05,910 Sí, bona pregunta. 492 00:27:05,910 --> 00:27:07,780 >> D'ACORD. 493 00:27:07,780 --> 00:27:08,790 Segona pregunta. 494 00:27:08,790 --> 00:27:12,750 Penseu en aquest bell programa aquí. 495 00:27:12,750 --> 00:27:15,180 Vaig a fer la pregunta, Tornaré això. 496 00:27:15,180 --> 00:27:23,170 >> Així, en primer lloc, el que està dins de la norma io.h això és d'interès per al programa? 497 00:27:23,170 --> 00:27:26,640 En segon lloc, el que fa buit significar en la línia de tres? 498 00:27:26,640 --> 00:27:30,572 I en tercer lloc, què vol tornar zero des principal, com la línia de sis, en general signifiquen? 499 00:27:30,572 --> 00:27:33,280 Si vostès volen escriure els baix, ja que he de canviar de nou 500 00:27:33,280 --> 00:27:36,810 a la diapositiva només perquè pugui veure el codi. 501 00:27:36,810 --> 00:27:40,400 Aquest és un exemple de com, potser una alt nivell en qüestió li demanem 502 00:27:40,400 --> 00:27:42,435 quines coses vol dir en un programa. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Tothom és bo per a mi tornar a la diapositiva? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 D'acord, guai. 507 00:27:54,361 --> 00:27:57,610 Així que et vaig a donar a tipus com potser tres minut per mirar aquest ràpida real. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, així que aquest és com bastant fàcil, conceptualment. 510 00:28:44,140 --> 00:28:49,280 Algú vol dir-me el que és primer interior d'haixix incloent 511 00:28:49,280 --> 00:28:52,630 nostre arxiu de biblioteca io.h estàndard? 512 00:28:52,630 --> 00:28:55,510 Per què necessitem aquesta biblioteca inclòs per a aquest programa? 513 00:28:55,510 --> 00:28:56,930 El que aquí és el que necessitem per? 514 00:28:56,930 --> 00:28:56,980 >> Sí? 515 00:28:56,980 --> 00:28:58,340 >> AUDIÈNCIA: És que quan poses que printf? 516 00:28:58,340 --> 00:28:59,131 >> PROFESSOR: Exactament. 517 00:28:59,131 --> 00:29:01,780 Així printf, cada vegada que tenir una entrada des de l'usuari 518 00:29:01,780 --> 00:29:04,140 i imprimir alguna cosa a la pantalla, això és 519 00:29:04,140 --> 00:29:05,600 l'entrada estàndard, la biblioteca de sortida. 520 00:29:05,600 --> 00:29:07,170 Penseu en això que manera- entrada, sortida. 521 00:29:07,170 --> 00:29:08,430 >> Tinc una sortida? 522 00:29:08,430 --> 00:29:09,207 Sí, ho faig. 523 00:29:09,207 --> 00:29:12,040 Així que sé que sempre vaig a necessitarà la biblioteca i.o estandarditzar. 524 00:29:12,040 --> 00:29:16,400 >> Així printf és la funció pel qual hem d'accedir 525 00:29:16,400 --> 00:29:19,370 i hashtag inclou el biblioteca i.o estàndard. 526 00:29:19,370 --> 00:29:20,280 D'ACORD. 527 00:29:20,280 --> 00:29:22,660 >> En segon lloc, què vol dir buit? 528 00:29:22,660 --> 00:29:26,970 Tenim el principal int (void), el que fa anul·lar aquí voldrà dir aquí a la línia de tres? 529 00:29:26,970 --> 00:29:28,080 Sí, a la part posterior. 530 00:29:28,080 --> 00:29:29,020 >> AUDIÈNCIA: [inaudible] 531 00:29:29,020 --> 00:29:29,920 >> PROFESSOR: Exactament. 532 00:29:29,920 --> 00:29:33,320 Així que recordi, hem après començant amb la nostra pset 533 00:29:33,320 --> 00:29:35,360 que en realitat es pot indiqui la línia d'ordres 534 00:29:35,360 --> 00:29:39,010 arguments que el seu programa, que funció principal, pren com vostè, l'usuari, 535 00:29:39,010 --> 00:29:39,650 cridar-ho. 536 00:29:39,650 --> 00:29:42,650 Si tenim buit, això vol dir que vostè simplement podria executar directament el programa 537 00:29:42,650 --> 00:29:44,680 sense cap tipus d'arguments de la línia d'ordres. 538 00:29:44,680 --> 00:29:46,160 Tothom clar? 539 00:29:46,160 --> 00:29:46,660 D'ACORD. 540 00:29:46,660 --> 00:29:52,850 >> I finalment, per què ens molestem fent aquesta cosa zero tornada aquí? 541 00:29:52,850 --> 00:29:54,740 Per què tenim un int principal? 542 00:29:54,740 --> 00:29:57,330 Per què no podem simplement tenir void main buit? 543 00:29:57,330 --> 00:29:59,216 Sí? 544 00:29:59,216 --> 00:30:01,590 AUDIÈNCIA: Només perquè puguem assegureu-vos que el programa és 545 00:30:01,590 --> 00:30:04,247 sortir amb èxit, com es a diferència de si va ser comptat. 546 00:30:04,247 --> 00:30:06,580 I nosaltres sabem que això és un tipus diferent d'error. 547 00:30:06,580 --> 00:30:07,621 >> PROFESSOR: Sí, exactament. 548 00:30:07,621 --> 00:30:10,670 Això és només una molt el convencional que fem, 549 00:30:10,670 --> 00:30:13,840 és que just al final de el seu programa, només per assegurar- 550 00:30:13,840 --> 00:30:15,830 que la seva funció principal està funcionant correctament, 551 00:30:15,830 --> 00:30:17,940 sempre volem fer de retorn zero. 552 00:30:17,940 --> 00:30:21,160 Tot i que pot necessàriament no veuen que imprimeixen en qualsevol lloc. 553 00:30:21,160 --> 00:30:25,092 >> A causa de que com a programadors, ja saps, si vostè té moltes línies diferents de codi 554 00:30:25,092 --> 00:30:27,050 i vostè no sap on aquests van malament, 555 00:30:27,050 --> 00:30:30,240 i si ocorre un error que vols vos que vostè obtingui aquest error. 556 00:30:30,240 --> 00:30:33,240 I tan típicament si alguna cosa surt mal que tindrem un retorn d'un de sol 557 00:30:33,240 --> 00:30:34,669 per assegurar-se que sabem que és. 558 00:30:34,669 --> 00:30:36,460 Així que si vostè veu un retorn zero, que típicament 559 00:30:36,460 --> 00:30:38,293 significa que el seu programa és executat amb èxit. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Bona? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Fresc. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, segon programa aquí. 566 00:30:52,680 --> 00:30:54,827 Penseu això. 567 00:30:54,827 --> 00:30:56,910 I si vostès veure un surar, vostès probablement pot 568 00:30:56,910 --> 00:31:00,810 tenir una bona idea del que Estic a punt de preguntar-li. 569 00:31:00,810 --> 00:31:05,200 >> Així que quan aquest programa executa, com es pot veure, 570 00:31:05,200 --> 00:31:09,330 Estic declarant un flotador dins de la meva funció principal. 571 00:31:09,330 --> 00:31:13,470 Estic donant-li el nom "va respondre," i estic configurant que igual a un dividit per 10. 572 00:31:13,470 --> 00:31:17,860 Estic imprimint, a un decimal, que suren. 573 00:31:17,860 --> 00:31:19,880 I després vaig a tornar a zero. 574 00:31:19,880 --> 00:31:24,470 >> Així que quan l'execució del programa, pensar de nou a cobdiciosos ara, 575 00:31:24,470 --> 00:31:26,550 Aquest programa imprimeix 0.0. 576 00:31:26,550 --> 00:31:29,993 Com tots sabem, és d'esperar que tots saben, un dividit per 10 no és un 0,00, 577 00:31:29,993 --> 00:31:32,350 que és 0,1. 578 00:31:32,350 --> 00:31:37,810 Però explicar per què aquest programa pensa que 1 dividit per 10 gravats a l'0,1 altra 579 00:31:37,810 --> 00:31:39,504 de 0,1? 580 00:31:39,504 --> 00:31:42,545 Et dono nois potser com 30 segon a pensar simplement ràpidament sobre això 581 00:31:42,545 --> 00:31:43,878 i jo vaig a tornar al programa. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> D'ACORD. 584 00:32:20,290 --> 00:32:22,205 Algú vol donar-li una oportunitat? 585 00:32:22,205 --> 00:32:24,330 En tres frases o menys, perquè normalment estem 586 00:32:24,330 --> 00:32:27,650 va a restringir totes les respostes tres frases o menys 587 00:32:27,650 --> 00:32:31,130 per la qual cosa no acaba de regurgitar coses a l'atzar preferides en el teu concurs. 588 00:32:31,130 --> 00:32:32,740 >> Sí, fer una foto. 589 00:32:32,740 --> 00:32:36,390 >> AUDIÈNCIA: Així que crec que hi ha aquesta cosa que es diu, com, [inaudible] 590 00:32:36,390 --> 00:32:42,320 Així que podria ser, per exemple, pot haver-hi, com, 0.09, 591 00:32:42,320 --> 00:32:47,250 que, quan s'imprimeix la primera dígits, seria a 0,0? 592 00:32:47,250 --> 00:32:49,100 >> PROFESSOR: Close, no del tot. 593 00:32:49,100 --> 00:32:49,810 Christabell? 594 00:32:49,810 --> 00:32:51,770 >> AUDIÈNCIA: Estàs divisòria i 10, i són tots dos sencers. 595 00:32:51,770 --> 00:32:54,610 I així, la forma en què es va per emmagatzemar-és com un sencer. 596 00:32:54,610 --> 00:32:56,480 I pel que el nombre enter més proper seria 0.0. 597 00:32:56,480 --> 00:32:57,471 I això és 0,1. 598 00:32:57,471 --> 00:32:58,970 PROFESSOR: Sí, això és molt bo. 599 00:32:58,970 --> 00:33:00,040 Aquesta és la resposta correcta. 600 00:33:00,040 --> 00:33:03,597 Així que aquest és un molt confús concepte per a un munt de nens. 601 00:33:03,597 --> 00:33:06,680 I realment vull per assegurar-se que això es veu reforçat en el cap de tots. 602 00:33:06,680 --> 00:33:10,090 >> Així que el que anomenem flotant punt d'imprecisió, 603 00:33:10,090 --> 00:33:12,800 on la raó per la qual una gran quantitat dels seus programes en cobdiciosos 604 00:33:12,800 --> 00:33:17,010 no va funcionar inicialment va ser perquè vostè es va oblidar d'emetre el seu variable. 605 00:33:17,010 --> 00:33:19,370 Així ho va dir Christabell era del tot correcte. 606 00:33:19,370 --> 00:33:21,990 >> Un flotador és inherentment imprecís. 607 00:33:21,990 --> 00:33:26,400 A causa que en un ordinador, a la dreta, tenim una quantitat finita de bits de memòria 608 00:33:26,400 --> 00:33:28,480 podem fer servir per a representar nombres. 609 00:33:28,480 --> 00:33:33,480 Així, per exemple, aquest ID CS50 és-- Crec que és un equip de 64 bits. 610 00:33:33,480 --> 00:33:37,520 >> Un flotador només pot ser representat per una quantitat finita d'aquests bits. 611 00:33:37,520 --> 00:33:42,260 I així 0,1 amb zeros infinits, que va ser de 0,1 és, oi? 612 00:33:42,260 --> 00:33:45,450 Però en realitat no podem emmagatzemar aquest nombre en el nostre ordinador. 613 00:33:45,450 --> 00:33:47,810 Simplement no tenim memòria suficient per fer-ho. 614 00:33:47,810 --> 00:33:52,340 >> I així l'aproximació més propera el que està emmagatzemat en la memòria és en realitat 615 00:33:52,340 --> 00:33:55,390 una mena de 0.000 alguna cosa, alguna cosa, alguna cosa, alguna cosa. 616 00:33:55,390 --> 00:34:01,240 La qual cosa, una vegada que truncar que, s'arrodoneix a 0,0. 617 00:34:01,240 --> 00:34:05,640 >> I així, aquest exemple és només un que demostra un munt de problemes 618 00:34:05,640 --> 00:34:08,469 tenim quan estem tractant de fer malament les matemàtiques 619 00:34:08,469 --> 00:34:11,000 sense posar com un enter diferent. 620 00:34:11,000 --> 00:34:14,870 Així que anar amb compte que això passi. 621 00:34:14,870 --> 00:34:18,239 >> En proves, si li donem un bloc de codi i és com, 622 00:34:18,239 --> 00:34:19,510 el que imprimeix al final? 623 00:34:19,510 --> 00:34:24,096 I si es tracta d'un valor aleatori que nois han de saber per què està succeint. 624 00:34:24,096 --> 00:34:24,909 Sí? 625 00:34:24,909 --> 00:34:27,926 >> AUDIÈNCIA: Truncar és desfer- tot el que després d'un cert punt? 626 00:34:27,926 --> 00:34:28,513 [Inaudible] 627 00:34:28,513 --> 00:34:30,929 PROFESSOR: Sí, el que en realitat aquest és un molt mal exemple, 628 00:34:30,929 --> 00:34:37,870 perquè en realitat el que sigui 0.100 es truncarà fins a 0,1. 629 00:34:37,870 --> 00:34:41,389 Però si hagués de executar it-- no ho faig recordar, perquè l'any passat 630 00:34:41,389 --> 00:34:42,830 va córrer en un programa diferent. 631 00:34:42,830 --> 00:34:45,300 Van córrer en alguna cosa anomenat el CS50 Appliance, que 632 00:34:45,300 --> 00:34:46,389 és diferent de la ID. 633 00:34:46,389 --> 00:34:48,520 Aquest va ser un sistema de 32 bits, crec. 634 00:34:48,520 --> 00:34:50,290 I així hi havia diferents nombres. 635 00:34:50,290 --> 00:34:53,330 >> Però, en essència, només sé que tot el concepte de truncament 636 00:34:53,330 --> 00:34:54,815 i com s'acaba talla les coses. 637 00:34:54,815 --> 00:34:55,690 I pel que si rounds-- 638 00:34:55,690 --> 00:34:56,300 >> AUDIÈNCIA: Sense arrodoniment. 639 00:34:56,300 --> 00:34:57,370 >> PROFESSOR: Exactament. 640 00:34:57,370 --> 00:34:57,870 Sí. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Fresc. 643 00:35:04,380 --> 00:35:05,250 >> Hola, a la part posterior. 644 00:35:05,250 --> 00:35:07,634 Estem repassant alguns preguntes de revisió concurs. 645 00:35:07,634 --> 00:35:08,430 >> Tot bé. 646 00:35:08,430 --> 00:35:10,150 Així que considera un programa diferent aquí. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Vaig a donar a vostès un parell de minuts per llegir sobre això. 649 00:35:15,380 --> 00:35:18,588 Això és una cosa que era per a un molt recentment que crec que bufava molt de vostès 650 00:35:18,588 --> 00:35:19,142 les ments d'homes. 651 00:35:19,142 --> 00:35:21,100 Però anem a parlar a través d'aquest nou només 652 00:35:21,100 --> 00:35:24,152 per assegurar-se que entendre completament. 653 00:35:24,152 --> 00:35:24,652 D'ACORD. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 D'ACORD. 656 00:35:41,780 --> 00:35:44,342 Qualsevol persona necessita més temps per llegir a través d'aquest codi? 657 00:35:44,342 --> 00:35:45,650 D'ACORD. 658 00:35:45,650 --> 00:35:50,630 >> Així que em sembla que en aquest programa estic 659 00:35:50,630 --> 00:35:53,460 la creació de dues cadenes mitjançant l'ús de GetString. 660 00:35:53,460 --> 00:35:55,180 Una trucada s i un anomenat t. 661 00:35:55,180 --> 00:35:58,680 I si són iguals és igual a l'altra, 662 00:35:58,680 --> 00:36:00,880 d'imprimir "Vostè escrigui la mateixa cosa ". 663 00:36:00,880 --> 00:36:04,170 >> Però elsewise, seria imprimir, "Vostè escrit coses diferents ", oi? 664 00:36:04,170 --> 00:36:05,990 Sembla molt, molt simple. 665 00:36:05,990 --> 00:36:08,720 Però, però, si realment tractar d'escriure aquest programa, 666 00:36:08,720 --> 00:36:12,230 sembla que fins i tot quan d'entrada les mateixes cadenes exactes, 667 00:36:12,230 --> 00:36:15,490 encara imprimeix, "Vostè mecanografiat diferents coses! " 668 00:36:15,490 --> 00:36:18,020 Algú vol prendre un oportunitat per què aquest programa sempre 669 00:36:18,020 --> 00:36:20,370 respon que les entrades són diferents, fins i tot 670 00:36:20,370 --> 00:36:22,090 quan les paraules en si són els mateixos? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> Així que si jo fos a input-- David amor utilitzar un exemple com a mare, ¿no? 673 00:36:29,170 --> 00:36:37,890 Minúscules M-O-M de S, T és igual a minúscules M-O-M. 674 00:36:37,890 --> 00:36:40,340 Si em vaig trobar amb això a través de aquest codi, per què es 675 00:36:40,340 --> 00:36:44,180 imprimir "que ha escrit coses diferents?" 676 00:36:44,180 --> 00:36:46,336 >> Necessita més a ningú temps per pensar sobre això? 677 00:36:46,336 --> 00:36:47,294 OK, crec que estem bé. 678 00:36:47,294 --> 00:36:48,716 Sí? 679 00:36:48,716 --> 00:36:53,930 >> AUDIÈNCIA: OK, així que és alguna cosa sobre on s'emmagatzema a la memòria, no? 680 00:36:53,930 --> 00:36:54,890 >> PROFESSOR: Sí. 681 00:36:54,890 --> 00:37:00,400 >> AUDIÈNCIA: En cas que, com si això cadena s s'emmagatzema a la memòria spot-- 682 00:37:00,400 --> 00:37:01,689 Estic inventant esto-- és zero. 683 00:37:01,689 --> 00:37:02,355 PROFESSOR: És clar. 684 00:37:02,355 --> 00:37:05,290 AUDIÈNCIA: I cadena t s'emmagatzema a punt de la memòria, 685 00:37:05,290 --> 00:37:11,000 com, 167, i després zero no és igual a 167. 686 00:37:11,000 --> 00:37:12,610 >> PROFESSOR: Exactament. 687 00:37:12,610 --> 00:37:18,350 OK, així que recordi aquesta increïble revelació expliquem a vostès 688 00:37:18,350 --> 00:37:21,530 la setmana passada, que cadenes no existeixen realment? 689 00:37:21,530 --> 00:37:25,380 Quan vam crear una cosa que es diu cadena que estem, en realitat, 690 00:37:25,380 --> 00:37:29,330 la creació d'una cosa que es diu estrella de carbó. 691 00:37:29,330 --> 00:37:34,470 Que tot el que és és un punter a una cadena o a una matriu de caràcters. 692 00:37:34,470 --> 00:37:39,480 >> I així, en aquest exemple, si estaven a l'entrada de M-O-M el camí 693 00:37:39,480 --> 00:37:49,350 que el meu equip anava a guardar-és dins de la barra invertida de memòria zero, no? 694 00:37:49,350 --> 00:37:53,180 Aquests quatre personatges, caràcters, seria emmagatzemada en algun lloc. 695 00:37:53,180 --> 00:37:59,290 >> I llavors aquests quatre personatges, barra invertida zero, 696 00:37:59,290 --> 00:38:01,275 s'emmagatzemen en un altre lloc, oi? 697 00:38:01,275 --> 00:38:04,685 No tinc ni idea d'on les direccions són, estan en algun lloc del meu equip. 698 00:38:04,685 --> 00:38:07,080 Però jo no sé exactament on són. 699 00:38:07,080 --> 00:38:10,170 >> Quan va crear una cadena s, el que realment és 700 00:38:10,170 --> 00:38:15,550 és un punter a la inici d'aquesta cadena. 701 00:38:15,550 --> 00:38:21,130 I quan crec aquest valor t, tot el que és un punter a aquí. 702 00:38:21,130 --> 00:38:23,980 I així, quan vostè està tractant equiparar i comprovar 703 00:38:23,980 --> 00:38:27,710 per veure si s és igual a igual és igual a t, l'ordinador 704 00:38:27,710 --> 00:38:31,635 és en realitat tornar a que la direcció d'aquesta m 705 00:38:31,635 --> 00:38:33,390 i la direcció d'aquest m. 706 00:38:33,390 --> 00:38:36,230 I perquè són de dos peces separades de dades 707 00:38:36,230 --> 00:38:38,750 que s'emmagatzemen en dues diferents direccions en l'equip, 708 00:38:38,750 --> 00:38:41,750 l'equip mai va a reconèixer-los com sent el mateix. 709 00:38:41,750 --> 00:38:43,500 Algú vol donar-li una oportunitat pel que 710 00:38:43,500 --> 00:38:46,900 hauria de fer si volem corregir això i tenir un programa en execució correcta 711 00:38:46,900 --> 00:38:49,360 en el seu lloc? 712 00:38:49,360 --> 00:38:52,070 Penseu en això per un parell de segons. 713 00:38:52,070 --> 00:38:54,929 Què necessitem per canviar a aconseguir aquest funcionament del programa 714 00:38:54,929 --> 00:38:56,220 la forma en què volem que funcioni? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Sí, vull prendre una punyalada en ella? 717 00:39:18,918 --> 00:39:24,082 >> AUDIÈNCIA: Podem tractar d'eliminar la referència al punter i comprovar a través de la matriu? 718 00:39:24,082 --> 00:39:25,540 PROFESSOR: Aquesta és una manera de fer-ho. 719 00:39:25,540 --> 00:39:27,880 Així que, quin és el teu nom? 720 00:39:27,880 --> 00:39:29,010 Ho sento, m'ho recordis. 721 00:39:29,010 --> 00:39:29,589 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 PROFESSOR: Sí, i què Zee suggerit seria absolutament treballar. 723 00:39:32,130 --> 00:39:32,629 Oi? 724 00:39:32,629 --> 00:39:35,730 Podríem eliminar la referència al punter i en realitat anar i accés 725 00:39:35,730 --> 00:39:38,460 les dades físiques a l'interior d'aquí. 726 00:39:38,460 --> 00:39:40,300 I només podem comparar tota la pantalla. 727 00:39:40,300 --> 00:39:43,670 >> Podem dir, OK, punter, dóna'm el que hi ha aquí dins. 728 00:39:43,670 --> 00:39:44,960 Seria retornar un m. 729 00:39:44,960 --> 00:39:47,168 I jo diria, punter, dóna'm el que hi ha aquí dins. 730 00:39:47,168 --> 00:39:47,750 Tornar un m. 731 00:39:47,750 --> 00:39:48,410 Feu els partit? 732 00:39:48,410 --> 00:39:49,410 Sí. 733 00:39:49,410 --> 00:39:50,340 Després de passar. 734 00:39:50,340 --> 00:39:54,240 >> Seguim comprovant sobretot els dos cadenes de tot el camí fins al final 735 00:39:54,240 --> 00:39:56,635 i veure si aquests són iguals, si tots els valors són iguals. 736 00:39:56,635 --> 00:39:59,680 I si tots els valors són iguals, llavors sabem les cordes són certes. 737 00:39:59,680 --> 00:40:01,600 Absolutament, així és com ho faríem? 738 00:40:01,600 --> 00:40:03,930 >> Algú va confondre en tot això? 739 00:40:03,930 --> 00:40:06,970 Tot el concepte de com les cadenes en realitat només són punters, 740 00:40:06,970 --> 00:40:08,440 i la forma en que realment no existeix? 741 00:40:08,440 --> 00:40:10,480 ¿I per què tenim errors com la forma en què ho fem? 742 00:40:10,480 --> 00:40:15,070 Perquè et garanteixo nois, punters i l'assignació de cadena i la memòria 743 00:40:15,070 --> 00:40:16,470 arribaran. 744 00:40:16,470 --> 00:40:17,410 >> Sí? 745 00:40:17,410 --> 00:40:21,072 >> AUDIÈNCIA: [inaudible] dereference ella, només cal posar una estrella [inaudible] 746 00:40:21,072 --> 00:40:21,780 PROFESSOR: Això és. 747 00:40:21,780 --> 00:40:28,430 Així que per derererence un mitjà de punter per anar a l'adreça del punter 748 00:40:28,430 --> 00:40:30,390 i obtenir les dades, el valor allà. 749 00:40:30,390 --> 00:40:32,700 I la manera de fer-ho és indicador de l'estrella. 750 00:40:32,700 --> 00:40:34,262 Cal no confondre això. 751 00:40:34,262 --> 00:40:35,186 >> AUDIÈNCIA: [inaudible]. 752 00:40:35,186 --> 00:40:35,852 >> PROFESSOR: Sí. 753 00:40:35,852 --> 00:40:39,750 AUDIÈNCIA: Així que vostè pot simplement escriure si l'estrella s iguals iguals estrella t. 754 00:40:39,750 --> 00:40:40,630 >> PROFESSOR: Bé, no. 755 00:40:40,630 --> 00:40:40,960 No. 756 00:40:40,960 --> 00:40:41,640 >> AUDIÈNCIA: Això no és prou bo, oi? 757 00:40:41,640 --> 00:40:43,760 >> PROFESSOR: No ho és, perquè ets Només el control de la primera lletra. 758 00:40:43,760 --> 00:40:46,010 Vostè està probablement va a necessitarà algun tipus d'un bucle que 759 00:40:46,010 --> 00:40:49,055 itera per cada personatge en ambdues cadenes. 760 00:40:49,055 --> 00:40:49,837 Sí. 761 00:40:49,837 --> 00:40:52,920 Així que si volia comprovar només per veure si començaven amb la mateixa cosa, 762 00:40:52,920 --> 00:40:58,220 que pot fer si, estel s és igual a l'estrella t. 763 00:40:58,220 --> 00:41:01,300 Llavors vostè sap que almenys començat amb el mateix caràcter. 764 00:41:01,300 --> 00:41:01,952 >> Sí? 765 00:41:01,952 --> 00:41:04,056 >> AUDIÈNCIA: Així que la forma vostè que seria 766 00:41:04,056 --> 00:41:06,064 com un encastat per bucle o punter? 767 00:41:06,064 --> 00:41:06,730 PROFESSOR: Sí. 768 00:41:06,730 --> 00:41:08,170 Pràcticament només un bucle for. 769 00:41:08,170 --> 00:41:12,430 Recordeu, David a la classe esmentada el sucre sintàctic lliure? 770 00:41:12,430 --> 00:41:17,690 I tenia aquesta mateixa El confús de l'estrella t 771 00:41:17,690 --> 00:41:22,030 més un, on s'integraria a través i que es mogui el punter? 772 00:41:22,030 --> 00:41:29,910 La manera més fàcil de fer això és només t de i. 773 00:41:29,910 --> 00:41:31,090 >> Així que és només una matriu. 774 00:41:31,090 --> 00:41:34,630 La forma en què vostè hauria una per a bucle que va passar de zero a I, on 775 00:41:34,630 --> 00:41:36,580 i és la longitud de la cadena, només podria 776 00:41:36,580 --> 00:41:39,510 escriure que en comptes de fer el tota punter, cosa referència. 777 00:41:39,510 --> 00:41:43,510 Així que aquestes coses són exactament equivalent al seu ordinador. 778 00:41:43,510 --> 00:41:45,905 >> Vostès probablement no ho farà necessiten saber que, 779 00:41:45,905 --> 00:41:48,280 però és bo per només una mica tenir a la part posterior de la seva ment. 780 00:41:48,280 --> 00:41:52,630 Només sé que l'equip reconeix diferents blocs de codi 781 00:41:52,630 --> 00:41:53,890 com la mateixa cosa. 782 00:41:53,890 --> 00:41:57,510 Com que aquest és només molt més d'usuari amigable per a nosaltres presentar com si fos 783 00:41:57,510 --> 00:41:58,150 una matriu. 784 00:41:58,150 --> 00:42:00,990 És més fàcil. 785 00:42:00,990 --> 00:42:02,719 >> AUDIÈNCIA: Llavors utilitzar strlen d'agradar, get-- 786 00:42:02,719 --> 00:42:03,385 PROFESSOR: Sí. 787 00:42:03,385 --> 00:42:03,926 AUDIÈNCIA: OK. 788 00:42:03,926 --> 00:42:05,940 PROFESSOR: Vostè podria utilitzar strlen o, si es 789 00:42:05,940 --> 00:42:10,420 no tenia strlen vostè pot fer fins fins a arribar a la barra invertida zero per a tots dos. 790 00:42:10,420 --> 00:42:11,568 De qualsevol funcionaria. 791 00:42:11,568 --> 00:42:12,068 Sí. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 AUDIÈNCIA: Així que és per eliminar la referència de cada caràcter individual si fóssim realment 794 00:42:17,996 --> 00:42:21,044 escriure aquest codi, Només podia fer samarretes suports i 795 00:42:21,044 --> 00:42:22,460 desitja amb l'estrella al front d'ella? 796 00:42:22,460 --> 00:42:27,700 >> PROFESSOR: Sí, és igual a equals s suport de i, i després segueixo jo en moviment 797 00:42:27,700 --> 00:42:29,790 baix cap amunt fins arribar a la final. 798 00:42:29,790 --> 00:42:31,286 Sí, això és el que faria. 799 00:42:31,286 --> 00:42:33,660 I vaig a realment tinc un costat exemple de quan en realitat 800 00:42:33,660 --> 00:42:36,740 escriure strlen perquè vostès faran classe d'arribar a jugar una estona amb ell una mica. 801 00:42:36,740 --> 00:42:43,567 >> Així és tot clara en tot just memòria, cadenes, punters, adreces de qualitat? 802 00:42:43,567 --> 00:42:46,650 Alguns conceptes de més alt nivell que voluntat del cert necessitat de saber sobre el concurs 803 00:42:46,650 --> 00:42:48,928 matí. 804 00:42:48,928 --> 00:42:49,904 >> Tot bé. 805 00:42:49,904 --> 00:42:50,404 Bé. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Sí. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, així que l'únic que tindrem també demanem vostè, com ho fem tots els anys en un concurs, és a dir, 810 00:43:04,180 --> 00:43:08,340 suposem que vostè ha oblidat (que sembla que ens oblidem de fer-ho anualment) 811 00:43:08,340 --> 00:43:10,810 en el qual es declara l'arxiu de capçalera strlen. 812 00:43:10,810 --> 00:43:13,860 I així que hem de tornar a escriure nosaltres mateixos. 813 00:43:13,860 --> 00:43:16,350 >> Aquí hi ha una llista de directrius que podem presentar- 814 00:43:16,350 --> 00:43:20,660 nois on s'arriba a suposar que s la cadena no serà nul. 815 00:43:20,660 --> 00:43:23,830 Vostè pot assumir que s haurà va acabar amb una barra invertida zero. 816 00:43:23,830 --> 00:43:26,670 Així que ja saps que és el que que va a acabar amb. 817 00:43:26,670 --> 00:43:29,500 >> I, per exemple, que la longitud d'hola seria 05:00. 818 00:43:29,500 --> 00:43:32,890 Així que vostè pot assumir que hola serà de cinc, H-E-L-L-O. 819 00:43:32,890 --> 00:43:35,890 Vostè no ha de suposar que la backside zero representa la longitud. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> Aquest últim que aquí, no ho facis preocupar-se de desbordament de sencers. 822 00:43:42,300 --> 00:43:45,270 Algú recorda desbordament de sencer és el que? 823 00:43:45,270 --> 00:43:48,041 >> AUDIÈNCIA: Va més enllà de la longitud de la [inaudible]. 824 00:43:48,041 --> 00:43:50,740 >> PROFESSOR: Sí, es pot explicar una mica, què vol dir això? 825 00:43:50,740 --> 00:43:55,330 >> AUDIÈNCIA: Llavors, suposo que es remunta l'exemple truncar abans. 826 00:43:55,330 --> 00:43:58,380 Però si vostè té només tants números que van més enllà del nombre de bits 827 00:43:58,380 --> 00:44:01,409 que en realitat es pot assignar que serà només una mica tallat. 828 00:44:01,409 --> 00:44:04,242 PROFESSOR: Sí, així que en una típica ordinador, quants bits tenim? 829 00:44:04,242 --> 00:44:05,306 AUDIÈNCIA: 32? 830 00:44:05,306 --> 00:44:06,430 PROFESSOR: Sí, 32, a la dreta. 831 00:44:06,430 --> 00:44:10,030 I això és, què, quatre milions de dòlars, dos mil milions? 832 00:44:10,030 --> 00:44:13,579 Quatre milions de dòlars, fins a quatre milions enters positius, oi? 833 00:44:13,579 --> 00:44:15,370 Dos mil milions negatius, Dos mil milions positiu, 834 00:44:15,370 --> 00:44:16,900 depèn de com voleu fer-ho. 835 00:44:16,900 --> 00:44:21,470 >> I així que bàsicament podem tenir suficients nombres enters que poden anar fins 836 00:44:21,470 --> 00:44:25,800 de dos a 31 menys 1, oi? 837 00:44:25,800 --> 00:44:27,980 Perquè una vegada que va colpejar a dues a la 32, no ho fem 838 00:44:27,980 --> 00:44:30,040 tenir aquesta quantitat de memòria al nostre ordinador. 839 00:44:30,040 --> 00:44:32,310 >> I així, en teoria, que podria arribar a un nombre 840 00:44:32,310 --> 00:44:34,560 és a dir, com, dos a la 46a. 841 00:44:34,560 --> 00:44:38,040 És un nombre enorme-cul, però teòricament podries. 842 00:44:38,040 --> 00:44:42,730 I desbordament tan sencer és si intenta crear un enter que va més enllà del que 843 00:44:42,730 --> 00:44:44,790 l'equip és capaç d'emmagatzemar. 844 00:44:44,790 --> 00:44:46,590 >> I així vostès per aquest exemple no tenen 845 00:44:46,590 --> 00:44:51,330 de preocupar sobre nosaltres que li dóna un gegant cadena que és de dos als caràcters 32a 846 00:44:51,330 --> 00:44:51,830 de llarg. 847 00:44:51,830 --> 00:44:54,010 Això seria realment significa. 848 00:44:54,010 --> 00:44:59,430 >> Molt bé, així que només vaig a donar vostès l'estructura de base d'aquest. 849 00:44:59,430 --> 00:45:02,020 Vas a crear un funció anomenada int strlen on 850 00:45:02,020 --> 00:45:08,436 Una passada en, un estel char, o cadena, punter a la cadena cridar s. 851 00:45:08,436 --> 00:45:10,820 >> Molt bé, tothom de copiar cap avall. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Fresc. 854 00:45:14,850 --> 00:45:17,020 Una altra Oops-- manera. 855 00:45:17,020 --> 00:45:21,360 >> Així que això és com una mena de més dur tros de problema, 856 00:45:21,360 --> 00:45:25,320 així que et donaré uns cinc nois a sis minuts de classe d'una pluja d'idees 857 00:45:25,320 --> 00:45:27,478 i escriure a terme aquesta funció. 858 00:45:27,478 --> 00:45:29,710 >> AUDIÈNCIA: No fem compte de [inaudible], 859 00:45:29,710 --> 00:45:30,200 nosaltres no hem de fer servir sencer? 860 00:45:30,200 --> 00:45:31,241 >> PROFESSOR: No, no ho fas. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Et vaig a donar una pista nois. 863 00:48:06,930 --> 00:48:12,325 Un bucle while pot ser molt útil aquí. 864 00:48:12,325 --> 00:48:12,825 Sí. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Aquí 867 00:48:45,495 --> 00:48:45,995 dolços. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Caramel també estarà disponible per al concurs, crec. 870 00:48:53,410 --> 00:48:55,315 Així que vostès serà tot ensucrada fins demà. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Pot jo-- ho tens. 873 00:49:02,962 --> 00:49:03,718 >> AUDIÈNCIA: OK. 874 00:49:03,718 --> 00:49:04,384 PROFESSOR: Sí. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Potser 30 segons més o menys. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> Molt bé, si estàs no es fa, no es preocupi. 879 00:50:07,340 --> 00:50:08,810 Ens mourem per això junts. 880 00:50:08,810 --> 00:50:09,310 D'ACORD. 881 00:50:09,310 --> 00:50:13,800 Així que em vaig a només el disseny del estructura bàsica per a aquesta funció aquí. 882 00:50:13,800 --> 00:50:17,255 Int strlen. 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 En primer lloc, ¿algú vol dir-li mi el que int significa? 885 00:50:23,460 --> 00:50:25,160 Hem de tenir en aquesta funció. 886 00:50:25,160 --> 00:50:26,709 >> AUDIÈNCIA: strlen [inaudible]. 887 00:50:26,709 --> 00:50:27,500 PROFESSOR: Exactament. 888 00:50:27,500 --> 00:50:31,140 Així que passi el que passi aquí, hem de tornar un enter. 889 00:50:31,140 --> 00:50:36,367 I com s'especifica en el spec, volem return-- 890 00:50:36,367 --> 00:50:37,700 Vagi per a ell nois, només seguir endavant. 891 00:50:37,700 --> 00:50:40,480 Està tot bé. 892 00:50:40,480 --> 00:50:42,960 Coma tot el que no tinc a prendre de nou, en realitat. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 El int simplement vol dir que ets va estar tornant un enter. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Què és aquest carbó estrelles s? 897 00:50:57,106 --> 00:50:58,640 Què vol dir això? 898 00:50:58,640 --> 00:51:00,879 >> AUDIÈNCIA: Igual que, el que s'està introduint en. 899 00:51:00,879 --> 00:51:01,670 PROFESSOR: Exactament. 900 00:51:01,670 --> 00:51:04,142 I el que és gairebé el el mateix que l'estrella de carbó? 901 00:51:04,142 --> 00:51:04,850 AUDIÈNCIA: String? 902 00:51:04,850 --> 00:51:05,641 PROFESSOR: Exactament. 903 00:51:05,641 --> 00:51:09,080 Així que tot el que estem fent és donar això un punter a una cadena. 904 00:51:09,080 --> 00:51:09,580 D'ACORD. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Fresc. 907 00:51:13,360 --> 00:51:16,650 >> A més, no us oblideu, si ens oblidem per donar-li aquests suports, 908 00:51:16,650 --> 00:51:18,330 no t'oblidis d'escriure tu mateix. 909 00:51:18,330 --> 00:51:20,720 A causa que en teoria, el seu codi és incorrecta si s'oblida d'escriure'ls. 910 00:51:20,720 --> 00:51:21,803 Així sempre prestar atenció. 911 00:51:21,803 --> 00:51:23,750 Igual, petites coses que no s'adonen 912 00:51:23,750 --> 00:51:26,917 quan s'està programant en el seu ordinador portàtil, perquè el teu portàtil ho fa per vostè? 913 00:51:26,917 --> 00:51:28,624 No us oblideu, quan vostè està escrivint amb la mà. 914 00:51:28,624 --> 00:51:29,170 Sí? 915 00:51:29,170 --> 00:51:30,954 >> AUDIÈNCIA: Però com incorrecte? 916 00:51:30,954 --> 00:51:33,190 Igual, podem arribar tot el problema equivocat? 917 00:51:33,190 --> 00:51:34,190 >> PROFESSOR: No, no. 918 00:51:34,190 --> 00:51:34,860 No et preocupis. 919 00:51:34,860 --> 00:51:39,270 En realitat és teòricament possible perquè vostè aconsegueixi punts complets en una pregunta 920 00:51:39,270 --> 00:51:41,980 fins i tot si el seu codi mai es queda a la vida real. 921 00:51:41,980 --> 00:51:46,052 Li suggereixo que no ho intentes perquè això passi. 922 00:51:46,052 --> 00:51:48,260 Per exemple, com si tot això és que aquí és correcte, 923 00:51:48,260 --> 00:51:51,850 però s'oblida de dos punts o un suport, el seu codi en realitat no córrer. 924 00:51:51,850 --> 00:51:53,740 Però podem ser compassius. 925 00:51:53,740 --> 00:51:54,394 >> Sí? 926 00:51:54,394 --> 00:51:56,050 >> AUDIÈNCIA: Té vostè comentar en el nostre puny i lletra? 927 00:51:56,050 --> 00:51:57,758 >> PROFESSOR: No, no, no es preocupa per això. 928 00:51:57,758 --> 00:51:58,440 Sense comentaris. 929 00:51:58,440 --> 00:51:59,400 Estil ha de ser bo. 930 00:51:59,400 --> 00:52:01,470 Igual, no Smush tot en una sola línia. 931 00:52:01,470 --> 00:52:04,580 No serem feliços amb vostè si vostè fa això. 932 00:52:04,580 --> 00:52:07,250 >> Algú vol dóna'm la primera línia? 933 00:52:07,250 --> 00:52:08,633 Suggeriment, és molt fàcil. 934 00:52:08,633 --> 00:52:09,320 >> Sí? 935 00:52:09,320 --> 00:52:11,920 >> AUDIÈNCIA: Int, n és igual a zero. 936 00:52:11,920 --> 00:52:13,734 Només has de configurar taulell. 937 00:52:13,734 --> 00:52:15,900 PROFESSOR: Llavors volem alguna una mena de taulell, oi? 938 00:52:15,900 --> 00:52:19,780 Jo només vaig a nomenar-ho "explicar" en nom de la llegibilitat. 939 00:52:19,780 --> 00:52:21,265 Què volem per configurar-igual? 940 00:52:21,265 --> 00:52:21,890 >> AUDIÈNCIA: Zero. 941 00:52:21,890 --> 00:52:23,840 PROFESSOR: Sí. 942 00:52:23,840 --> 00:52:24,340 Punt i coma. 943 00:52:24,340 --> 00:52:26,250 També és un punt i coma dibuix molt estranyes. 944 00:52:26,250 --> 00:52:28,870 Només la pràctica de fer això. 945 00:52:28,870 --> 00:52:31,990 >> Així que volem tenir primer un comptador de tipus int. 946 00:52:31,990 --> 00:52:35,360 Perquè volem comptar fins com molts caràcters o lletres són 947 00:52:35,360 --> 00:52:36,780 en aquesta cadena, oi? 948 00:52:36,780 --> 00:52:38,330 Primer pas molt fàcil. 949 00:52:38,330 --> 00:52:42,140 >> OK, potser una mica més complex Ara, com ho farem? 950 00:52:42,140 --> 00:52:45,400 Algú vol dóna'm la línia de codi 951 00:52:45,400 --> 00:52:48,450 que pot ser capaç d'ajudar en bucle a través del que sigui que és això? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Sí, valent ànima en la part de darrere? 954 00:52:56,900 --> 00:53:06,832 >> AUDIÈNCIA: OK, així que mentre que el punt asteriscs, el sí, estel de s, 955 00:53:06,832 --> 00:53:09,465 no és igual a zero, llavors fer alguna cosa? 956 00:53:09,465 --> 00:53:11,090 PROFESSOR: Això és molt, molt a prop. 957 00:53:11,090 --> 00:53:11,835 Molt a prop. 958 00:53:11,835 --> 00:53:13,710 Així que vaig a tractar dues coses se amb això. 959 00:53:13,710 --> 00:53:18,240 En primer lloc, no és exactament zero. 960 00:53:18,240 --> 00:53:20,110 Que és? 961 00:53:20,110 --> 00:53:22,550 És el terminador nul, barra invertida que és zero. 962 00:53:22,550 --> 00:53:24,960 Així que són diferents en termes de com estan emmagatzemats. 963 00:53:24,960 --> 00:53:26,270 Així que estàs molt a prop. 964 00:53:26,270 --> 00:53:30,330 >> I en segon lloc, no volem només moure el punter. 965 00:53:30,330 --> 00:53:32,320 Volem realitat accedir als valors, no? 966 00:53:32,320 --> 00:53:34,050 I així, com ho fem? 967 00:53:34,050 --> 00:53:34,550 Molt fàcil. 968 00:53:34,550 --> 00:53:36,841 No pensis en punters, no pensis en records. 969 00:53:36,841 --> 00:53:38,525 Tornar a la segona setmana d'aquest curs. 970 00:53:38,525 --> 00:53:39,555 >> AUDIÈNCIA: [inaudible]. 971 00:53:39,555 --> 00:53:40,680 PROFESSOR: A, recordes? 972 00:53:40,680 --> 00:53:41,400 Quines són les cadenes? 973 00:53:41,400 --> 00:53:42,650 Com s'emmagatzemen a la memòria? 974 00:53:42,650 --> 00:53:43,300 >> AUDIÈNCIA: Estan aixecades. 975 00:53:43,300 --> 00:53:43,810 >> PROFESSOR: Es crien. 976 00:53:43,810 --> 00:53:45,550 Llavors, com accedim cada personatge dins? 977 00:53:45,550 --> 00:53:46,466 >> AUDIÈNCIA: [inaudible]. 978 00:53:46,466 --> 00:53:47,530 PROFESSOR: Exactament. 979 00:53:47,530 --> 00:53:53,195 Així que el que succeeix a l'interior Rato-- aquí? 980 00:53:53,195 --> 00:53:54,940 S de - 981 00:53:54,940 --> 00:53:55,920 >> AUDIÈNCIA: I. 982 00:53:55,920 --> 00:53:58,216 >> PROFESSOR: Oh, jo no existeix, oi? 983 00:53:58,216 --> 00:53:59,620 >> AUDIÈNCIA: Oh, expliqui? 984 00:53:59,620 --> 00:54:01,640 >> PROFESSOR: Podem simplement utilitzar el compte, no? 985 00:54:01,640 --> 00:54:03,050 >> AUDIÈNCIA: Ho sento, em va cridar i. 986 00:54:03,050 --> 00:54:04,341 >> PROFESSOR: Sí, està tot bé. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Tenim una variable fins aquí això és ja s'ha declarat com el nostre comptador. 989 00:54:10,760 --> 00:54:13,650 Així que per què no ens limitem a usar que per moure a través del bucle while? 990 00:54:13,650 --> 00:54:15,230 Això té sentit? 991 00:54:15,230 --> 00:54:20,864 >> Així, mentre que s de count-- vol ningú per donar-me el que passa després d'aquí? 992 00:54:20,864 --> 00:54:22,030 AUDIÈNCIA: No és igual. 993 00:54:22,030 --> 00:54:23,405 PROFESSOR: no és igual, no? 994 00:54:23,405 --> 00:54:26,200 És l'explosió és igual, signe d'exclamació és igual, 995 00:54:26,200 --> 00:54:28,500 el que vostès volen cridar no equal-- 996 00:54:28,500 --> 00:54:29,496 >> AUDIÈNCIA: [inaudible]. 997 00:54:29,496 --> 00:54:30,990 >> PROFESSOR: Sí. 998 00:54:30,990 --> 00:54:37,110 Recordeu cometa simple és per un char, cometes dobles són per a una cadena. 999 00:54:37,110 --> 00:54:38,630 Aneu amb compte en usar-los. 1000 00:54:38,630 --> 00:54:42,430 Així que quan estem mirant a través de la matriu, l'últim caràcter, 1001 00:54:42,430 --> 00:54:46,420 sabem que no volem que sigui barra invertida zero. 1002 00:54:46,420 --> 00:54:47,340 >> Així, mentre que. 1003 00:54:47,340 --> 00:54:48,840 No estem en el final de la cadena. 1004 00:54:48,840 --> 00:54:52,335 Què és el que volem fer a l'interior? 1005 00:54:52,335 --> 00:54:55,269 >> AUDIÈNCIA: Volem afegir a la comptador perquè expliqui plus plus? 1006 00:54:55,269 --> 00:54:56,060 PROFESSOR: Exactament. 1007 00:54:56,060 --> 00:55:03,064 Així que aquí farem comptar, comptar plus plus. 1008 00:55:03,064 --> 00:55:03,980 Manca una línia més. 1009 00:55:03,980 --> 00:55:05,090 Ja gairebé hem arribat. 1010 00:55:05,090 --> 00:55:07,398 Què estem oblidant de fer? 1011 00:55:07,398 --> 00:55:08,770 >> AUDIÈNCIA: Tornant a zero? 1012 00:55:08,770 --> 00:55:10,820 >> PROFESSOR: Vols tornar a zero? 1013 00:55:10,820 --> 00:55:12,962 >> AUDIÈNCIA: No, tornar a strlen. 1014 00:55:12,962 --> 00:55:13,511 Espereu. 1015 00:55:13,511 --> 00:55:14,760 PROFESSOR: Què s'emmagatzema en? 1016 00:55:14,760 --> 00:55:15,090 AUDIÈNCIA: Count. 1017 00:55:15,090 --> 00:55:15,589 Comte. 1018 00:55:15,589 --> 00:55:17,150 PROFESSOR: Exactament. 1019 00:55:17,150 --> 00:55:20,760 Així que aquí anem a tornar recompte. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Perquè el que estem fent aquí ultimately-- 1022 00:55:25,380 --> 00:55:29,780 tenim una variable comptador que és va a incrementar mitjançant la nostra cadena. 1023 00:55:29,780 --> 00:55:33,050 Seguirem endavant, mantenim va, voltes i voltes en aquest circuit. 1024 00:55:33,050 --> 00:55:37,700 I si bé no estem en el final d'aquest cadena, que és el terminador nul. 1025 00:55:37,700 --> 00:55:40,410 >> I cada vegada que passem per que, estem afegint al nostre taulell. 1026 00:55:40,410 --> 00:55:42,640 I anem més al llarg d'aquesta matriu. 1027 00:55:42,640 --> 00:55:44,880 I al final, una vegada que colpejar el terminador nul, 1028 00:55:44,880 --> 00:55:48,469 sabem, oh, podem trencar, retorni el recompte. 1029 00:55:48,469 --> 00:55:49,260 Tenim la nostra strlen. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Tothom obtenir la forma Això es va implementar? 1032 00:55:56,400 --> 00:55:58,830 Mentre loops-- Sé que no tenim fet massa amb ells, 1033 00:55:58,830 --> 00:56:01,240 però són en general molt, molt útil si 1034 00:56:01,240 --> 00:56:05,390 no saps el que estàs parant condició ha de ser necessàriament. 1035 00:56:05,390 --> 00:56:06,220 >> Pregunta? 1036 00:56:06,220 --> 00:56:10,080 >> AUDIÈNCIA: Podem escriure nul·la amb la condició de temps? 1037 00:56:10,080 --> 00:56:10,940 >> PROFESSOR: Si bé? 1038 00:56:10,940 --> 00:56:15,304 Sí, pel que en aquest problema et vaig tenir nois assumeixen que s no serà nul. 1039 00:56:15,304 --> 00:56:17,220 Perquè recorda, teòricament, si jo et vaig donar 1040 00:56:17,220 --> 00:56:21,180 un punter que era massa gran de la memòria, que li donaria la nul·la, oi? 1041 00:56:21,180 --> 00:56:23,770 Això és el que l'operatiu sistema faria. 1042 00:56:23,770 --> 00:56:26,960 >> Així que si jo no dic que assumir s seria nul, cal comprovar. 1043 00:56:26,960 --> 00:56:32,050 Així que aquí, ho faria, si s és igual a igual a null, tornar un. 1044 00:56:32,050 --> 00:56:33,028 Alguna cosa així. 1045 00:56:33,028 --> 00:56:34,153 AUDIÈNCIA: [inaudible] zero. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 PROFESSOR: OK, t'ho diré per què no es pot fer això. 1048 00:56:39,370 --> 00:56:43,357 Perquè recorda en la memòria, a la dreta, aquí. 1049 00:56:43,357 --> 00:56:43,940 Anirem aquí. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Tens blocs gegants de la memòria tots amb reixetes 1052 00:56:54,090 --> 00:56:56,680 que emmagatzemen valors diferents, no? 1053 00:56:56,680 --> 00:57:00,110 I així tota una cadena de és-- exemple, si hem d'entrada hola, 1054 00:57:00,110 --> 00:57:05,490 seria H-E-L-L-O barra invertida zero, no? 1055 00:57:05,490 --> 00:57:09,570 I llavors, qui sap, com a l'atzar coses que estan en aquí després d'ella. 1056 00:57:09,570 --> 00:57:11,220 >> En realitat no sabem el que hi ha. 1057 00:57:11,220 --> 00:57:13,350 I pel que si anés a fer en lloc de la barra invertida zero, 1058 00:57:13,350 --> 00:57:15,590 null, pot ser que no sigui nul. 1059 00:57:15,590 --> 00:57:17,680 Com que només pot significar algunes altres coses a l'atzar 1060 00:57:17,680 --> 00:57:19,270 que no pertanyen a la seva cadena. 1061 00:57:19,270 --> 00:57:23,219 I així, la forma en què sempre sabem que una cadena acaba amb una barra invertida és zero. 1062 00:57:23,219 --> 00:57:25,760 I això és sempre la forma en què comprovar per veure el final d'una cadena. 1063 00:57:25,760 --> 00:57:30,820 >> Null, tot el que significa és que si tens un punter inexistent, primer de tot, 1064 00:57:30,820 --> 00:57:36,160 o si la seva memòria és tan gran que vostè no pot tornar, llavors seria nul·la. 1065 00:57:36,160 --> 00:57:40,150 Així que tenir molta cura en diferenciar la diferència entre la nul·la 1066 00:57:40,150 --> 00:57:42,130 i la barra invertida zero. 1067 00:57:42,130 --> 00:57:43,670 Sí. 1068 00:57:43,670 --> 00:57:46,886 >> Tothom d'acord amb això? 1069 00:57:46,886 --> 00:57:48,150 D'ACORD. 1070 00:57:48,150 --> 00:57:50,440 >> Així que vaig haver de vostès escriguin strlen. 1071 00:57:50,440 --> 00:57:53,790 Factible també podríem demanar-li que escrius fora de A a I, recorda que "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 o el que sigui que vostès volen cridar? 1073 00:57:55,400 --> 00:57:58,010 Aquesta funció en Vigenère i César, que 1074 00:57:58,010 --> 00:58:00,900 converteix un valor ASCII a un enter? 1075 00:58:00,900 --> 00:58:04,360 Això també ha pujat en les proves anteriors de les funcions que li hem demanat a escriure. 1076 00:58:04,360 --> 00:58:08,280 >> Gairebé qualsevol funció que vostè ha utilitzat i és 1077 00:58:08,280 --> 00:58:11,660 molt fàcil escriure vostè mateix, sensors agrada és menor, 1078 00:58:11,660 --> 00:58:14,620 és superior, per reduir, al superior. 1079 00:58:14,620 --> 00:58:17,964 Funcions de convertir un cadena de minúscules a majúscules. 1080 00:58:17,964 --> 00:58:19,380 Tots sabem com fer-ho, no? 1081 00:58:19,380 --> 00:58:21,100 És molt fàcil. 1082 00:58:21,100 --> 00:58:24,770 Només vull estar segur que can-- és el mateix procés de pensament. 1083 00:58:24,770 --> 00:58:26,940 Només iterar a través i vostè dóna volta les coses. 1084 00:58:26,940 --> 00:58:30,190 Vostè tampoc comptar o quan encendre les coses de manera diferent. 1085 00:58:30,190 --> 00:58:32,280 >> Em suggest-- I no sé si anem 1086 00:58:32,280 --> 00:58:39,080 a demanar que memoritzar el majúscula o de capital Z, o minúscula A o minúscules 1087 00:58:39,080 --> 00:58:42,640 z estan en ASCII, però jo suggeriria potser per escrit que en el cas 1088 00:58:42,640 --> 00:58:44,124 nosaltres fem. 1089 00:58:44,124 --> 00:58:45,540 Només perquè vostès tenen una referència. 1090 00:58:45,540 --> 00:58:47,180 Com majúscula A és, què, 197? 1091 00:58:47,180 --> 00:58:51,320 I llavors minúscula és com 50 alguna cosa. 1092 00:58:51,320 --> 00:58:52,492 65, sí, aquí el tens. 1093 00:58:52,492 --> 00:58:54,950 Així que més o menys conèixer la diferència entre ells és 32. 1094 00:58:54,950 --> 00:58:57,670 Això és molt important. 1095 00:58:57,670 --> 00:58:58,170 Sí. 1096 00:58:58,170 --> 00:59:01,445 Sóc bo en això? 1097 00:59:01,445 --> 00:59:01,945 D'ACORD. 1098 00:59:01,945 --> 00:59:03,109 >> AUDIÈNCIA: Podríem teòricament escriure algun 1099 00:59:03,109 --> 00:59:04,410 d'ells cap avall també en la nostra poc-- 1100 00:59:04,410 --> 00:59:07,035 >> PROFESSOR: Vostè teòricament simplement podria copiar la funció cap avall. 1101 00:59:07,035 --> 00:59:08,482 Això és cert. 1102 00:59:08,482 --> 00:59:11,080 >> AUDIÈNCIA: No [inaudible]. 1103 00:59:11,080 --> 00:59:12,720 >> PROFESSOR: Vostès tenen un full. 1104 00:59:12,720 --> 00:59:14,194 Vostès tenen un full de notes. 1105 00:59:14,194 --> 00:59:14,860 Pots escriure-ho. 1106 00:59:14,860 --> 00:59:15,490 Pots escriure-ho. 1107 00:59:15,490 --> 00:59:17,031 Pots fer el que vulguis amb ell. 1108 00:59:17,031 --> 00:59:18,530 Sí. 1109 00:59:18,530 --> 00:59:21,406 Per tant teòricament, si vol, anar. 1110 00:59:21,406 --> 00:59:23,338 >> AUDIÈNCIA: [inaudible] però no ho fem de veritat 1111 00:59:23,338 --> 00:59:25,994 necessàriament han de recordar el valor, podem simplement 1112 00:59:25,994 --> 00:59:28,914 utilitzar el de superior o de funcions inferior, a la dreta? 1113 00:59:28,914 --> 00:59:29,580 PROFESSOR: Sí. 1114 00:59:29,580 --> 00:59:32,740 Però si us vam donar una pregunta que diu escriure a superior, 1115 00:59:32,740 --> 00:59:34,350 llavors vostè hauria de escriure-ho. 1116 00:59:34,350 --> 00:59:38,150 Així que vostès poden assumir que vostè nois tenen accés a totes les funcions, 1117 00:59:38,150 --> 00:59:41,523 però si vol utilitzar per a la part superior o per inferior, què és el que també cal fer? 1118 00:59:41,523 --> 00:59:43,840 >> AUDIÈNCIA: [inaudible] utilitzar CS50 [inaudible] 1119 00:59:43,840 --> 00:59:44,840 >> PROFESSOR: És CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Aneu amb compte allà. 1122 00:59:48,310 --> 00:59:50,640 >> Així que per la part superior, per baixar, és superior, és menor, 1123 00:59:50,640 --> 00:59:52,990 funcions que impliquen manipulació de cadenes són 1124 00:59:52,990 --> 00:59:55,490 tot dins de ja sigui el Ascii o dins de la biblioteca matemàtica 1125 00:59:55,490 --> 00:59:57,350 o dins de la biblioteca de cadena. 1126 00:59:57,350 --> 01:00:00,290 Així que si vostès fan servir aquestes funcions, aneu en compte de recordar 1127 01:00:00,290 --> 01:00:01,451 per incloure aquesta capçalera. 1128 01:00:01,451 --> 01:00:03,950 Així que potser també alguna cosa que que voleu incloure a la seva fulla, 1129 01:00:03,950 --> 01:00:04,892 quins són la capçalera? 1130 01:00:04,892 --> 01:00:06,600 Quines són les biblioteques vostè ha estat utilitzant? 1131 01:00:06,600 --> 01:00:08,550 Quines funcions són dins d'aquestes biblioteques? 1132 01:00:08,550 --> 01:00:09,230 És important. 1133 01:00:09,230 --> 01:00:10,420 >> Sí? 1134 01:00:10,420 --> 01:00:12,570 >> AUDIÈNCIA: Podríem simplement policia i fer hashtag 1135 01:00:12,570 --> 01:00:14,955 a través de la absolutament cada carta que alguna vegada 1136 01:00:14,955 --> 01:00:17,340 vist així en totes les preguntes? 1137 01:00:17,340 --> 01:00:18,320 >> PROFESSOR: Vostè podria. 1138 01:00:18,320 --> 01:00:20,361 No sé el feliç serem de grau 1139 01:00:20,361 --> 01:00:25,090 que prova que cada peça de codi és el doble del que ha de ser. 1140 01:00:25,090 --> 01:00:27,200 No sé, podríem treure un punt per l'estil. 1141 01:00:27,200 --> 01:00:28,790 Però teòricament la seva codi seria correcte. 1142 01:00:28,790 --> 01:00:30,915 Vostès podrien policia i només cal incloure tot. 1143 01:00:30,915 --> 01:00:32,044 Això també està bé, si. 1144 01:00:32,044 --> 01:00:32,960 AUDIÈNCIA: [inaudible]. 1145 01:00:32,960 --> 01:00:33,270 PROFESSOR: Sí. 1146 01:00:33,270 --> 01:00:34,900 Jo suggeriria que no fer això però. 1147 01:00:34,900 --> 01:00:35,505 Sí. 1148 01:00:35,505 --> 01:00:36,130 AUDIÈNCIA: Cool. 1149 01:00:36,130 --> 01:00:36,620 PROFESSOR: Bona pregunta. 1150 01:00:36,620 --> 01:00:37,480 AUDIÈNCIA: Llavors, el pitjor dels casos. 1151 01:00:37,480 --> 01:00:38,563 PROFESSOR: El pitjor dels casos. 1152 01:00:38,563 --> 01:00:40,350 Si oblida totalment, vostè podria fer això. 1153 01:00:40,350 --> 01:00:40,850 Sí. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Sí, el codi hi és. 1156 01:00:45,400 --> 01:00:49,176 Solia n lloc del recompte, però, vostè conèixer, el que sura seu vaixell. 1157 01:00:49,176 --> 01:00:51,092 AUDIÈNCIA: Espere, per la qual cosa no hauria de Hashtag 1158 01:00:51,092 --> 01:00:53,460 incloure perquè som començant pel int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> PROFESSOR: Sí, jo vaig suposar que ens van demanar d'escriure la funció. 1161 01:00:59,924 --> 01:01:02,340 Si vostè volia estar segur, probablement podria posar-lo allà. 1162 01:01:02,340 --> 01:01:05,650 Però jo no em vaig molestar, si. 1163 01:01:05,650 --> 01:01:09,919 >> Ni tan sols sé si necessita qualsevol biblioteca per això. 1164 01:01:09,919 --> 01:01:12,710 Com que vostè no està realment la impressió qualsevol cosa o res, oi? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Sí, jo no sé si necessita una biblioteca. 1167 01:01:19,568 --> 01:01:22,400 >> D'ACORD. 1168 01:01:22,400 --> 01:01:26,020 Aquest és també una mica més al llarg les línies de manipulació de memòria. 1169 01:01:26,020 --> 01:01:27,400 Aquest tipus de mica complicat. 1170 01:01:27,400 --> 01:01:28,960 Penseu en això. 1171 01:01:28,960 --> 01:01:30,580 Vostè té una funció anomenada func. 1172 01:01:30,580 --> 01:01:33,570 Podria haver cridat que el que sigui, però trio nomenar-func. 1173 01:01:33,570 --> 01:01:36,000 Ho tinc damunt del meu principal. 1174 01:01:36,000 --> 01:01:39,790 Recordi, vostè vol tenir una funció després que el seu principal, 1175 01:01:39,790 --> 01:01:42,370 vostè vol assegurar-se que incloure el prototip de la part superior. 1176 01:01:42,370 --> 01:01:45,750 >> Però en aquest cas va ser tan curt que vaig sentir que podia simplement 1177 01:01:45,750 --> 01:01:47,260 incloure'l sobre de la principal. 1178 01:01:47,260 --> 01:01:51,170 No necessita tenir el prototip, perquè ja està escrit a dalt. 1179 01:01:51,170 --> 01:01:55,430 Així que tot el que estic fent en la meva funció principal està creant sencer x és igual a 10. 1180 01:01:55,430 --> 01:02:00,490 Vaig a trucar a la meva funció func, i després imprimir alguna cosa. 1181 01:02:00,490 --> 01:02:02,840 >> I llavors això és realment el func està fent. 1182 01:02:02,840 --> 01:02:04,340 Volen que pensar en això. 1183 01:02:04,340 --> 01:02:05,423 Com que és una mica complicat. 1184 01:02:05,423 --> 01:02:07,220 És molt, molt difícil, en realitat. 1185 01:02:07,220 --> 01:02:09,549 Penseu en el que això programa seria fer sortir. 1186 01:02:09,549 --> 01:02:10,840 Et vaig a donar dos nois minuts. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Bones discussions? 1189 01:03:37,891 --> 01:03:38,853 >> AUDIÈNCIA: Sí. 1190 01:03:38,853 --> 01:03:39,815 >> PROFESSOR: Sí. 1191 01:03:39,815 --> 01:03:42,220 Molt bé, així que això és complicat per una raó. 1192 01:03:42,220 --> 01:03:44,845 I és per això que jo volia per portar això a l'atenció de tots. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Algú vol donar-me un suggeriment, un intent? 1195 01:03:51,147 --> 01:03:52,230 Com seria aquesta imprimir? 1196 01:03:52,230 --> 01:03:53,930 Totalment bé si t'equivoques. 1197 01:03:53,930 --> 01:03:55,619 Sí? 1198 01:03:55,619 --> 01:03:59,483 >> AUDIÈNCIA: Crec que és 100 i després 10 en dues línies separades. 1199 01:03:59,483 --> 01:04:00,940 >> PROFESSOR: I una 10 € 1200 01:04:00,940 --> 01:04:03,154 Algú té alguna altres conjectures? 1201 01:04:03,154 --> 01:04:04,150 Sí? 1202 01:04:04,150 --> 01:04:09,040 >> AUDIÈNCIA: Potser només 10 perquè func no torna res? 1203 01:04:09,040 --> 01:04:11,610 >> PROFESSOR: OK, així que tenir conjectura número u 1204 01:04:11,610 --> 01:04:14,990 és que conjectura número dos és només va a imprimir 10. 1205 01:04:14,990 --> 01:04:17,623 Algú té alguna altres conjectures? 1206 01:04:17,623 --> 01:04:19,654 D'ACORD. 1207 01:04:19,654 --> 01:04:21,070 Així que anem a caminar a través d'aquest, ¿no? 1208 01:04:21,070 --> 01:04:23,903 Sempre que rebi una peça de codi, no n'hi ha prou amb veure i ser com, 1209 01:04:23,903 --> 01:04:25,060 ah, això és tantes coses! 1210 01:04:25,060 --> 01:04:26,460 Estic tan confós! 1211 01:04:26,460 --> 01:04:28,220 Igual que, calmar-se. 1212 01:04:28,220 --> 01:04:31,602 Només sé que vostè podria mirar a través de codi línia per línia. 1213 01:04:31,602 --> 01:04:32,310 Això és tot el que és. 1214 01:04:32,310 --> 01:04:33,840 És com llegir un llibre. 1215 01:04:33,840 --> 01:04:38,000 >> Així que amb qualsevol funció, sempre vam començar a principal. 1216 01:04:38,000 --> 01:04:40,860 Així que anem a començarà a les void main int, 1217 01:04:40,860 --> 01:04:43,010 fins i tot el programa de ja deteriorada, oi? 1218 01:04:43,010 --> 01:04:45,070 Comenceu a en void main. 1219 01:04:45,070 --> 01:04:48,030 Int x és igual a 10. 1220 01:04:48,030 --> 01:04:50,400 >> Així que vaig a esborrar això. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Vaig a assenyalar a la memòria perquè ho nois poden espècie de veure el que està passant. 1223 01:04:58,470 --> 01:05:02,190 >> Recordeu que aquí tenim la nostra pila? 1224 01:05:02,190 --> 01:05:05,810 Fins aquí tenim la nostra s'amuntegaran en algun lloc aquí. 1225 01:05:05,810 --> 01:05:07,470 Pila creix, oi? 1226 01:05:07,470 --> 01:05:10,150 I dins de la pila, que té la xarxa funcionen tan bé com 1227 01:05:10,150 --> 01:05:12,230 tots de xarxa variables locals. 1228 01:05:12,230 --> 01:05:14,310 >> Així que aquí, int x és igual a 10. 1229 01:05:14,310 --> 01:05:17,670 Dins de la nostra funció principal que estem la creació d'una variable anomenada x. 1230 01:05:17,670 --> 01:05:20,590 Estem establint que igual a 10. 1231 01:05:20,590 --> 01:05:24,200 Aquí tens alguns x, i ja està establint que igual a 10, a la dreta, 1232 01:05:24,200 --> 01:05:25,400 dins principal. 1233 01:05:25,400 --> 01:05:27,430 Cada un de bo? 1234 01:05:27,430 --> 01:05:28,070 >> Function. 1235 01:05:28,070 --> 01:05:30,330 Així que ara, dins el nostre principal funció, estem cridant 1236 01:05:30,330 --> 01:05:31,810 la funció que hem escrit anteriorment. 1237 01:05:31,810 --> 01:05:34,550 Així que estem ara entrem en la segona funció. 1238 01:05:34,550 --> 01:05:40,120 Anem a crear un altre variables int x és igual a 100. 1239 01:05:40,120 --> 01:05:42,410 Què està passant aquí a la pila? 1240 01:05:42,410 --> 01:05:46,980 Què passa quan es diu a un funció que crea noves variables? 1241 01:05:46,980 --> 01:05:50,038 Què passa aquí a la pila? 1242 01:05:50,038 --> 01:05:52,134 >> AUDIÈNCIA: [inaudible] piles a la part superior? 1243 01:05:52,134 --> 01:05:52,800 PROFESSOR: Sí. 1244 01:05:52,800 --> 01:05:54,050 Així que en realitat crea una còpia. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 I quin tipus de piles a la part superior. 1247 01:05:57,740 --> 01:06:00,700 Penseu en el stack-- una pica de llibres, una pica de res. 1248 01:06:00,700 --> 01:06:06,520 Piles a la part superior, en primer lloc en l'última terme, últim en entrar, primer a sortir. 1249 01:06:06,520 --> 01:06:08,471 >> Així que crearà una x aquí. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> Això va tenir tots els funcs variables. 1252 01:06:14,450 --> 01:06:14,950 Gran. 1253 01:06:14,950 --> 01:06:20,980 Així que ara tenim dos diferents x que representar dues coses molt diferents. 1254 01:06:20,980 --> 01:06:24,470 Llavors anem a imprimir el nombre enter de x. 1255 01:06:24,470 --> 01:06:26,430 Així que anem a imprimir 100, oi? 1256 01:06:26,430 --> 01:06:29,389 Perquè aquí és 100. 1257 01:06:29,389 --> 01:06:31,680 Així que això és el primer que es va a imprimir. 1258 01:06:31,680 --> 01:06:35,710 Com aquesta funció retorna res, ara aquesta funció, aquesta línia en main 1259 01:06:35,710 --> 01:06:37,070 està fet. 1260 01:06:37,070 --> 01:06:39,160 Tothom bo amb mi fins ara? 1261 01:06:39,160 --> 01:06:43,034 >> Així que estem ara a través de dos dels tres línies de la nostra funció principal. 1262 01:06:43,034 --> 01:06:44,450 Ara anem a la tercera línia. 1263 01:06:44,450 --> 01:06:46,350 Anem a printf. 1264 01:06:46,350 --> 01:06:48,222 Què és aquest x dins principal? 1265 01:06:48,222 --> 01:06:49,263 Què és el que representen? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Quin valor és x ara? 1268 01:06:54,280 --> 01:06:55,220 >> AUDIÈNCIA: 100. 1269 01:06:55,220 --> 01:06:56,799 >> PROFESSOR: És 100? 1270 01:06:56,799 --> 01:06:57,590 AUDIÈNCIA: Encara octubre. 1271 01:06:57,590 --> 01:06:58,878 PROFESSOR: Encara octubre. 1272 01:06:58,878 --> 01:07:00,870 Sí. 1273 01:07:00,870 --> 01:07:06,810 Perquè recorda, en el termini la nostra func, x és igual a 100. 1274 01:07:06,810 --> 01:07:09,690 Però si tornem l'esquena a la nostra funció principal, 1275 01:07:09,690 --> 01:07:12,440 aquesta variable s'emmagatzema en una lloc diferent a la nostra pila. 1276 01:07:12,440 --> 01:07:16,250 >> Així que ara hem de tornar a la xemeneia principal, xarxa de variables locals. 1277 01:07:16,250 --> 01:07:18,460 I aquí x és igual a 10. 1278 01:07:18,460 --> 01:07:20,300 I així anem a imprimir 10. 1279 01:07:20,300 --> 01:07:22,530 >> Així que ella tenia tota la raó. 1280 01:07:22,530 --> 01:07:25,053 Tindrem la de sortida de 100 i 10. 1281 01:07:25,053 --> 01:07:25,553 Sí? 1282 01:07:25,553 --> 01:07:28,700 AUDIÈNCIA: Quan malloc, és que la munt o la pila que és [inaudible]? 1283 01:07:28,700 --> 01:07:31,950 PROFESSOR: Quan malloc, vostè està prenent memòria del munt 1284 01:07:31,950 --> 01:07:32,830 i la seva assignació. 1285 01:07:32,830 --> 01:07:34,950 Així que vostè no té ficar-se amb res d'això. 1286 01:07:34,950 --> 01:07:38,100 Així que suposo que el menjar per portar més gran aquí hi ha alguna cosa que es diu abast. 1287 01:07:38,100 --> 01:07:39,650 >> Per a aquells de vostès que estaven en la sessió de revisió d'anit, 1288 01:07:39,650 --> 01:07:41,080 parlem breument sobre això. 1289 01:07:41,080 --> 01:07:45,380 Abast defineix com i quan hi ha variables. 1290 01:07:45,380 --> 01:07:48,050 O dins del que emmarca què hi ha les variables. 1291 01:07:48,050 --> 01:07:51,690 >> Més o menys la regla general és a dir, la seva variables-- si vostè els crea 1292 01:07:51,690 --> 01:07:56,660 dins braces-- arrissat hi només dins d'aquestes claus. 1293 01:07:56,660 --> 01:08:00,312 >> Així per exemple, en la nostra funció de func, veus aquestes dues claus. 1294 01:08:00,312 --> 01:08:02,020 Si crearà res a l'interior de la mateixa, 1295 01:08:02,020 --> 01:08:06,500 és probable que tot el que estem fent és la creació d'una pila i l'emmagatzematge que no. 1296 01:08:06,500 --> 01:08:07,430 El mateix en el principal. 1297 01:08:07,430 --> 01:08:09,950 Això és només emmagatzema dins del principal. 1298 01:08:09,950 --> 01:08:13,560 >> També vols ser molt, molt amb compte aquí. 1299 01:08:13,560 --> 01:08:18,310 A causa de que arribi també es presta a diferents exemples. 1300 01:08:18,310 --> 01:08:25,950 Així, per exemple per a una bucle, per int i és igual a 0. 1301 01:08:25,950 --> 01:08:28,460 I és menor que, no sé, 10. 1302 01:08:28,460 --> 01:08:32,111 Jo plus plus. 1303 01:08:32,111 --> 01:08:34,560 I tens codi dins d'ella, no? 1304 01:08:34,560 --> 01:08:38,830 >> D'on ve aquesta variable, I, en realitat només existeixo? 1305 01:08:38,830 --> 01:08:40,510 Només dins del bucle for. 1306 01:08:40,510 --> 01:08:43,640 Així que aposto al fet que molts de vostès tenen Probablement trobat aquest error quan 1307 01:08:43,640 --> 01:08:45,930 que estàs fent programes en els seus conjunts de processadors. 1308 01:08:45,930 --> 01:08:49,990 Quants de vosaltres heu tractat d'utilitzar i fora d'un bucle for i tenia un error? 1309 01:08:49,990 --> 01:08:53,310 Igual que un sencers sense referències o alguna cosa per l'estil? 1310 01:08:53,310 --> 01:08:56,069 >> La raó per la qual passa és perquè aquí estàs 1311 01:08:56,069 --> 01:08:59,109 la creació d'alguna cosa que només existeix dins del seu bucle. 1312 01:08:59,109 --> 01:09:01,972 I si intenta usar-lo, i no ho fa en realitat existeix fora d'ella. 1313 01:09:01,972 --> 01:09:04,930 Així que, bàsicament, un ordinador dient: Jo no saps el que estàs parlant. 1314 01:09:04,930 --> 01:09:08,689 Tot el que sé és que jo era un aquí, però ara ja no. 1315 01:09:08,689 --> 01:09:12,580 >> Així que si jo fos a crear un bucle for dins, ¿no? 1316 01:09:12,580 --> 01:09:19,080 I jo vaig a crear un altre, com int j, i han de fer el que sigui. 1317 01:09:19,080 --> 01:09:23,689 I tens un codi dins de aquest bucle, j només existeix aquí. 1318 01:09:23,689 --> 01:09:26,029 Però això també existeix dins i. 1319 01:09:26,029 --> 01:09:29,310 I així j només hi ha dins d'aquest bucle, 1320 01:09:29,310 --> 01:09:33,850 mentre que existeix en tot l'assumpte. 1321 01:09:33,850 --> 01:09:34,500 >> Tothom clar? 1322 01:09:34,500 --> 01:09:37,416 El mateix amb sentències condicionals si vols crear qualsevol cosa. 1323 01:09:37,416 --> 01:09:40,390 El mateix amb bucles mentre que si vol crear res. 1324 01:09:40,390 --> 01:09:42,390 Això és una cosa del que molt, molt acurat sobre. 1325 01:09:42,390 --> 01:09:45,681 Així que aquest era un bon problema al sentit que demostra dues coses. 1326 01:09:45,681 --> 01:09:47,160 Es va demostrar per primera vegada, l'abast. 1327 01:09:47,160 --> 01:09:49,550 I va demostrar també l'assignació de memòria. 1328 01:09:49,550 --> 01:09:54,130 A causa de que vostès han de saber que funcions creixen cap amunt a la pila. 1329 01:09:54,130 --> 01:09:56,710 I que quan es diu a funcions, que està creant 1330 01:09:56,710 --> 01:09:59,060 essencialment una nova pila de memòria. 1331 01:09:59,060 --> 01:10:02,100 Això és molt diferent de el que la seva memòria és la xarxa. 1332 01:10:02,100 --> 01:10:03,300 Sí. 1333 01:10:03,300 --> 01:10:03,800 Sort! 1334 01:10:03,800 --> 01:10:05,470 Tothom a D'acord en això? 1335 01:10:05,470 --> 01:10:06,750 Això va ser confús. 1336 01:10:06,750 --> 01:10:09,380 Molt bons temes per repassar, perquè vostè està probablement 1337 01:10:09,380 --> 01:10:12,255 aconseguirà una mica complicat coses com que en el qüestionari. 1338 01:10:12,255 --> 01:10:13,350 Sí. 1339 01:10:13,350 --> 01:10:13,850 Fresc. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Vaig a posar vostè aconsegueix 100 en un línia i després 10 en l'altre. 1342 01:10:18,430 --> 01:10:21,468 Sí, molt bo. 1343 01:10:21,468 --> 01:10:26,350 >> OK, ara els nois s'arriba l'oportunitat de ser el TA. 1344 01:10:26,350 --> 01:10:30,600 Tens l'oportunitat de respondre a totes les encantadora missatges de correu electrònic que a vegades em poso. 1345 01:10:30,600 --> 01:10:34,290 >> Així que, estimats Andi, veig crec que alguna cosa és anar malament amb el meu compilador. 1346 01:10:34,290 --> 01:10:37,910 Estic segur que el meu codi és correcte, però segueixo obtenint una fallada de segmentació 1347 01:10:37,910 --> 01:10:39,074 cada vegada que em trobo. 1348 01:10:39,074 --> 01:10:39,740 Què està passant? 1349 01:10:39,740 --> 01:10:42,844 Si us plau, ajuda, molt d'amor. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> Si vostès té alguna cosa com que com respondria vostè? 1352 01:10:49,410 --> 01:10:51,860 Aquestes són en realitat molt comú preguntes ens preguntaran vostès. 1353 01:10:51,860 --> 01:10:54,090 És que si, li donarem un escenari, anem a donar-nos 1354 01:10:54,090 --> 01:10:56,350 seva millor resposta al que està passant. 1355 01:10:56,350 --> 01:11:00,710 Algú té una punyalada en el que està passant? 1356 01:11:00,710 --> 01:11:02,654 Sí? 1357 01:11:02,654 --> 01:11:06,056 >> AUDIÈNCIA: Potser el desreferenciado nul, una mena de el punter 1358 01:11:06,056 --> 01:11:08,924 s'assenyala en alguna cosa nul. 1359 01:11:08,924 --> 01:11:11,590 PROFESSOR: Sí, això seria un exemple de quan això passi. 1360 01:11:11,590 --> 01:11:14,467 Però el que és la imatge més gran del que està passant aquí? 1361 01:11:14,467 --> 01:11:17,050 AUDIÈNCIA: És que vostè està tractant per accedir a la memòria que no estàs 1362 01:11:17,050 --> 01:11:18,175 suposa que tenen accés a? 1363 01:11:18,175 --> 01:11:19,200 PROFESSOR: Exactament. 1364 01:11:19,200 --> 01:11:24,800 Així que pensar en una fallada segons, un off límits, àrea restringida en la memòria 1365 01:11:24,800 --> 01:11:27,780 que no s'ha de tocar. 1366 01:11:27,780 --> 01:11:31,670 >> Així que més o menys quan s'està tractant a index-- com per exemple, 1367 01:11:31,670 --> 01:11:34,110 vostè ha declarat array de zero a nou. 1368 01:11:34,110 --> 01:11:37,360 Però intenta tocar aquest desè valor, vostè no té accés a això. 1369 01:11:37,360 --> 01:11:38,694 Com que vostè no ha declarat. 1370 01:11:38,694 --> 01:11:40,943 I perquè el seu equip va mirar que sigui similar, 1371 01:11:40,943 --> 01:11:43,440 uh oh, estàs tractant d'anar fora dels límits d'un índex. 1372 01:11:43,440 --> 01:11:45,270 Vaig a donar-li un error de segmentació. 1373 01:11:45,270 --> 01:11:46,590 >> Penseu com segment, oi? 1374 01:11:46,590 --> 01:11:49,665 Un segment addicional, la culpa és quan intenta trencar alguna cosa 1375 01:11:49,665 --> 01:11:50,790 i que no hauria d'estar allà. 1376 01:11:50,790 --> 01:11:53,660 Fallada de segmentació és en qualsevol moment intenta tocar les coses 1377 01:11:53,660 --> 01:11:54,970 que no s'ha de tocar. 1378 01:11:54,970 --> 01:11:56,815 >> Així exemples comuns són un índex. 1379 01:11:56,815 --> 01:11:58,940 Per descomptat, si vostè està tractant tocar això era nul, 1380 01:11:58,940 --> 01:12:00,220 que també funcionaria també. 1381 01:12:00,220 --> 01:12:02,300 Si el punter estava tractant de tocar les coses que no s'han de tocar, 1382 01:12:02,300 --> 01:12:03,730 que també podria funcionar tan bé. 1383 01:12:03,730 --> 01:12:07,120 El més típic podràs veure això en una matriu. 1384 01:12:07,120 --> 01:12:07,740 Cada un de bo? 1385 01:12:07,740 --> 01:12:10,374 >> AUDIÈNCIA: Així que si vols per accedir al punt 10a 1386 01:12:10,374 --> 01:12:12,290 i només hi ha un límit de nou anys o alguna cosa així. 1387 01:12:12,290 --> 01:12:13,160 >> PROFESSOR: Sí, exactament. 1388 01:12:13,160 --> 01:12:13,660 Més o menys. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Fresc. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Benvolgut Andi. 1393 01:12:19,920 --> 01:12:23,440 Així que tenim aquestes meravelloses coses anomenen classes. 1394 01:12:23,440 --> 01:12:25,472 Si Merge sort-- com nosaltres serra en l'exemple, quan 1395 01:12:25,472 --> 01:12:27,180 David va fer tot cosa en class-- per què, 1396 01:12:27,180 --> 01:12:29,760 si és molt més ràpid que qualsevol dels altres tipus, 1397 01:12:29,760 --> 01:12:33,310 ¿Per què ens molestem saber qualsevol dels altres tipus? 1398 01:12:33,310 --> 01:12:35,100 >> Què és aquesta pregunta realment que li pregunta? 1399 01:12:35,100 --> 01:12:36,659 Què hi ha dels tres paraula-- 1400 01:12:36,659 --> 01:12:37,950 AUDIÈNCIA: Quina és la compensació? 1401 01:12:37,950 --> 01:12:38,530 PROFESSOR: Exactament. 1402 01:12:38,530 --> 01:12:39,946 Això és el que està fent la pregunta. 1403 01:12:39,946 --> 01:12:43,682 Quin és l'equilibri entre Combinar espècie versos qualsevol altre tipus? 1404 01:12:43,682 --> 01:12:45,850 >> AUDIÈNCIA: Pren la memòria, no? 1405 01:12:45,850 --> 01:12:47,720 >> PROFESSOR: Té vostè explicar que una mica més? 1406 01:12:47,720 --> 01:12:49,490 En primer lloc explicarem botiga Combina. 1407 01:12:49,490 --> 01:12:50,970 Com Combinar espècie treballar? 1408 01:12:50,970 --> 01:12:55,220 >> AUDIÈNCIA: Així funciona per dividint tot enmig 1409 01:12:55,220 --> 01:13:00,660 i després posar junts i la reassignació d'ella per tal, 1410 01:13:00,660 --> 01:13:02,862 que cada vegada que combinar els conjunts. 1411 01:13:02,862 --> 01:13:03,820 PROFESSOR: Més o menys. 1412 01:13:03,820 --> 01:13:06,861 Així que puc treure això, però seria portar-cinc minuts al aconseguirà. 1413 01:13:06,861 --> 01:13:10,220 Mirar cap enrere a la secció de diapositives on cobrim Combinar tipus. 1414 01:13:10,220 --> 01:13:10,790 Exactament. 1415 01:13:10,790 --> 01:13:13,406 >> Així que la forma de combinació de treballs d'ordenació és que divideix les coses per la meitat, 1416 01:13:13,406 --> 01:13:15,780 i després que només es veu en el primers valors de tots ells 1417 01:13:15,780 --> 01:13:17,000 i classifica només això. 1418 01:13:17,000 --> 01:13:20,364 Contínuament crea noves matrius i posa les coses cada vegada més en ordre. 1419 01:13:20,364 --> 01:13:23,030 I així, mentre que això és molt, molt ràpid perquè és-- ja saps, 1420 01:13:23,030 --> 01:13:25,380 una recerca binària és n log n. 1421 01:13:25,380 --> 01:13:27,880 Estàs creant tants diferents matrius que ets 1422 01:13:27,880 --> 01:13:29,700 l'ús d'una enorme quantitat de memòria. 1423 01:13:29,700 --> 01:13:33,080 I així, mentre que és més ràpid, la compensació aquí és que vostè està utilitzant més memòria. 1424 01:13:33,080 --> 01:13:38,490 >> I així, suggeriment, ordena i recerques estaven coberts molt més aquest any 1425 01:13:38,490 --> 01:13:41,610 el que han estat en anys anteriors. 1426 01:13:41,610 --> 01:13:45,100 Vostès han de veure que reflectit en conseqüència en el qüestionari. 1427 01:13:45,100 --> 01:13:49,160 Definitivament, m'agradaria gastar temps en anar més del que tots els diferents tipus 1428 01:13:49,160 --> 01:13:52,320 són, buscar la forma binària, com lineal treball de recerca. 1429 01:13:52,320 --> 01:13:54,750 Com potser pseudocodi codificar els a terme. 1430 01:13:54,750 --> 01:13:55,950 Quins són els temps de funcionament? 1431 01:13:55,950 --> 01:13:59,210 Una cosa així com temps de funcionament és molt fàcil de copiar cap avall en un full de notes, 1432 01:13:59,210 --> 01:13:59,710 Oi? 1433 01:13:59,710 --> 01:14:01,420 >> És molt difícil quan estàs en el mitjà de la prova 1434 01:14:01,420 --> 01:14:02,390 i vostè ha de donar compte d'això. 1435 01:14:02,390 --> 01:14:03,160 Copieu baix. 1436 01:14:03,160 --> 01:14:05,550 Et garanteixo que ets va a haver de saber això. 1437 01:14:05,550 --> 01:14:06,860 Quins són els avantatges i desavantatges? 1438 01:14:06,860 --> 01:14:10,064 Pitjor dels casos, millors escenaris per a tots ells, molt arribar a conèixer. 1439 01:14:10,064 --> 01:14:10,564 Sí? 1440 01:14:10,564 --> 01:14:12,730 >> AUDIÈNCIA: Necessitem saber com codificar Combinar espècie? 1441 01:14:12,730 --> 01:14:15,470 Igual, és el que necessitem recordar el recursiva? 1442 01:14:15,470 --> 01:14:18,950 >> PROFESSOR: Ho dubto molt, simplement perquè és com bastant complicat. 1443 01:14:18,950 --> 01:14:22,282 Però pot ser que no sigui factible si demanar-li que faci servir pseudocodi a terme. 1444 01:14:22,282 --> 01:14:22,781 Sí. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Sí, està bé, un més. 1447 01:14:29,170 --> 01:14:31,387 Això pot haver sorgit en l'última peça en una mica. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Sí? 1450 01:14:43,090 --> 01:14:44,930 Tots sentir això? 1451 01:14:44,930 --> 01:14:48,360 >> OK, així que més o menys de la primera tot, quin tipus de programa 1452 01:14:48,360 --> 01:14:51,000 seria donar-li una sortida com aquesta? 1453 01:14:51,000 --> 01:14:54,350 Recordi que vostè demana que aprendre sobre aquest nou tipus d'eina de depuració? 1454 01:14:54,350 --> 01:14:57,340 Quin era el nom d'ella? 1455 01:14:57,340 --> 01:14:59,460 Valgrind, dreta 1456 01:14:59,460 --> 01:15:02,600 >> Era un programa on vostè pot trucar a això vaig poder 1457 01:15:02,600 --> 01:15:05,940 realitzar un seguiment de tota la memòria que està utilitzant en el seu programa i que estava passant. 1458 01:15:05,940 --> 01:15:11,090 Així que si tens alguna cosa, com, definitivament perdut, 40 bytes en un bloc. 1459 01:15:11,090 --> 01:15:14,870 Probablement vostè no està recordant alliberar-la. 1460 01:15:14,870 --> 01:15:18,710 Perquè si vostè està utilitzant bytes de memòria, això vol dir que ha accedit a que la memòria, 1461 01:15:18,710 --> 01:15:20,240 però no ha estat capaç de alliberar-se. 1462 01:15:20,240 --> 01:15:21,948 Així que vostè vol fer Segur que ets també 1463 01:15:21,948 --> 01:15:31,420 utilitzant libremente-- això és un function-- per alliberar tots els 1464 01:15:31,420 --> 01:15:34,930 de la memòria reassignat per malloc. 1465 01:15:34,930 --> 01:15:35,500 >> Fresc. 1466 01:15:35,500 --> 01:15:37,140 Així que aquesta diapositiva, tindré cap amunt. 1467 01:15:37,140 --> 01:15:41,050 És a tot arreu en un munt de conferències, en una gran quantitat de secció diapositives. 1468 01:15:41,050 --> 01:15:44,254 De veritat vol assegurar que acaba de saber tot això. 1469 01:15:44,254 --> 01:15:47,170 Ja sigui en el seu full de nota o si vol memoritzar, no dubteu en. 1470 01:15:47,170 --> 01:15:48,836 Això és molt, molt, molt important. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> També una molt bona pregunta que podem demanar. 1473 01:15:56,890 --> 01:16:00,320 Per què és mirada Selecció sort-- en Selecció sort-- tots els temps d'execució 1474 01:16:00,320 --> 01:16:02,060 són N al quadrat. 1475 01:16:02,060 --> 01:16:06,714 Independentment de com la llista arriba a vostè com, per què és sort-- Selecció 1476 01:16:06,714 --> 01:16:08,630 Et vaig a donar 30 nois segon pensar en això. 1477 01:16:08,630 --> 01:16:10,700 Com que és una mica confús. 1478 01:16:10,700 --> 01:16:12,710 Es tracta d'una reflexió conceptual. 1479 01:16:12,710 --> 01:16:16,470 Per què els temps d'execució de la mateixa en tant els pitjors i millors escenaris? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Sí? 1482 01:16:30,000 --> 01:16:38,084 >> AUDIÈNCIA: A causa Selecció espècie cada posició o l'espai en aquest petit arsenal 1483 01:16:38,084 --> 01:16:40,350 cosa o el que sigui. 1484 01:16:40,350 --> 01:16:44,430 Així que fins i tot en el millor dels casos, fins i tot si està perfectament ordenades, 1485 01:16:44,430 --> 01:16:47,380 seria encara ha de ser així, OK, un. 1486 01:16:47,380 --> 01:16:49,000 En el meu primer lloc tinc una. 1487 01:16:49,000 --> 01:16:50,250 I passar per tots ells. 1488 01:16:50,250 --> 01:16:51,249 OK, un és el més petit. 1489 01:16:51,249 --> 01:16:53,053 I després va una altra vegada i és com, OK, dues 1490 01:16:53,053 --> 01:16:54,594 és la més petita de totes les coses. 1491 01:16:54,594 --> 01:16:56,804 Però encara ha de comprovar tots i cada un. 1492 01:16:56,804 --> 01:16:57,470 PROFESSOR: Sí. 1493 01:16:57,470 --> 01:17:00,490 Així, per exemple, direm Tenim una llista, ja classificat, 1494 01:17:00,490 --> 01:17:03,390 una sèrie 1-5. 1495 01:17:03,390 --> 01:17:07,100 La forma en què tipus de selecció és que passa per, comprova aquests dos. 1496 01:17:07,100 --> 01:17:08,234 A continuació, comprova els dos. 1497 01:17:08,234 --> 01:17:09,650 I llavors es comprova i verifica. 1498 01:17:09,650 --> 01:17:13,285 Manté comprovar tots ells, independentment de si o no 1499 01:17:13,285 --> 01:17:14,160 en realitat està ordenada. 1500 01:17:14,160 --> 01:17:16,450 Perquè això és simplement la forma en què el tipus treballa. 1501 01:17:16,450 --> 01:17:19,530 >> I pel que aquesta qüestió és com una pregunta conceptual demanarem. 1502 01:17:19,530 --> 01:17:21,430 On primer, a saber quin tipus de selecció 1503 01:17:21,430 --> 01:17:23,304 és, a la dreta, per poder respondre a la pregunta. 1504 01:17:23,304 --> 01:17:26,200 Has de ser capaç d'entendre conceptualment el que està passant. 1505 01:17:26,200 --> 01:17:30,760 I llavors vostè pot aplicar-lo i pensar, OK anem a imaginar pitjor dels casos. 1506 01:17:30,760 --> 01:17:32,230 Estan tots en ordre descendent. 1507 01:17:32,230 --> 01:17:33,290 Com afectaria això que? 1508 01:17:33,290 --> 01:17:34,650 >> I si és per tal d'ascendir? 1509 01:17:34,650 --> 01:17:35,640 Si ja està ordenada? 1510 01:17:35,640 --> 01:17:37,240 Com afectaria això els temps d'execució? 1511 01:17:37,240 --> 01:17:40,270 I llavors tipus de selecció, t'adonaràs que no importa realment. 1512 01:17:40,270 --> 01:17:43,500 Com que vostè està comprovant tota la valors, independentment del que està passant. 1513 01:17:43,500 --> 01:17:45,810 >> I així les coses bones per recordar. 1514 01:17:45,810 --> 01:17:50,290 Per què algunes classes difereixen dels altres i la millor i pitjor dels casos 1515 01:17:50,290 --> 01:17:52,740 afectaria a tots ells. 1516 01:17:52,740 --> 01:17:56,700 >> Vaig a colpejar realment a classe perquè això va a estar a l'qüestionari. 1517 01:17:56,700 --> 01:17:57,199 Sí. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 D'ACORD. 1520 01:18:01,320 --> 01:18:05,590 Hi ha sis minuts per al final. 1521 01:18:05,590 --> 01:18:09,880 Puc prendre tres minuts de preguntes. 1522 01:18:09,880 --> 01:18:12,290 També puc penjar al voltant de com 20 minuts després de la secció 1523 01:18:12,290 --> 01:18:13,850 si voleu fer preguntes també. 1524 01:18:13,850 --> 01:18:16,330 Algú amb prou feines té molt breu preguntes o qüestions conceptuals 1525 01:18:16,330 --> 01:18:17,360 són poc clars sobre aquest moment? 1526 01:18:17,360 --> 01:18:17,832 Sí? 1527 01:18:17,832 --> 01:18:19,720 >> AUDIÈNCIA: Pots parlar una mica poc sobre els operadors bit a bit? 1528 01:18:19,720 --> 01:18:20,280 >> PROFESSOR: Sí. 1529 01:18:20,280 --> 01:18:22,446 Així que els operadors bit a bit són cosa que probablement 1530 01:18:22,446 --> 01:18:24,170 només podria voler posar en el seu full. 1531 01:18:24,170 --> 01:18:27,540 Així quickly-- No vull anar massa en profunditat 1532 01:18:27,540 --> 01:18:31,164 perquè de Harvard, en la seva opinió període de sessions, la va cobrir bastant bé. 1533 01:18:31,164 --> 01:18:33,080 Operador de bits, hi ha cinc d'ells, no? 1534 01:18:33,080 --> 01:18:41,370 >> Hi ha una, que és x o funció, no hi ha signe, que és la i. 1535 01:18:41,370 --> 01:18:44,050 Pipe, que és el o. 1536 01:18:44,050 --> 01:18:46,790 I llavors vostè té els dos diferents tipus de torns. 1537 01:18:46,790 --> 01:18:50,610 >> Si et dono dos valors, si és Jo et dono, com, l'un i un. 1538 01:18:50,610 --> 01:18:52,390 El que caldria avaluar a? 1539 01:18:52,390 --> 01:18:55,490 Si et dono cert i veritable, cert? 1540 01:18:55,490 --> 01:18:56,930 Què hi ha de vertader o fals? 1541 01:18:56,930 --> 01:18:57,830 Sent cert, ¿no? 1542 01:18:57,830 --> 01:18:59,762 Com que hi ha una o. 1543 01:18:59,762 --> 01:19:01,220 El més probable és que et donem els números. 1544 01:19:01,220 --> 01:19:03,780 Així que recordi, un és igual a veritable, zero és igual a fals. 1545 01:19:03,780 --> 01:19:07,407 I ens podria donar-li aquestes coses i demanar-li que ens digui el que passa. 1546 01:19:07,407 --> 01:19:10,240 Harvard cobreix dins de la primera 10 minuts de la sessió d'estudi 1547 01:19:10,240 --> 01:19:11,230 molt, molt bé. 1548 01:19:11,230 --> 01:19:14,260 Així que vostès volen fer Segur que mira cap enrere en això. 1549 01:19:14,260 --> 01:19:16,387 >> AUDIÈNCIA: És PISA 5 va a estar a l'concurs? 1550 01:19:16,387 --> 01:19:16,970 PROFESSOR: No. 1551 01:19:16,970 --> 01:19:18,240 Ni tan sols mirar a PISA 5 ara. 1552 01:19:18,240 --> 01:19:18,810 És difícil. 1553 01:19:18,810 --> 01:19:22,830 Així que ni tan sols et molestis a buscar a PISA 5. 1554 01:19:22,830 --> 01:19:25,665 >> No obstant això, com alguns consells i suggeriments, 1555 01:19:25,665 --> 01:19:28,320 suggeriria que iniciï PISA 5 tan aviat com el concurs ha acabat. 1556 01:19:28,320 --> 01:19:30,319 Aquest serà el més dur setmana, però després vostès 1557 01:19:30,319 --> 01:19:34,590 la hi va passar als turons de verd i cadells laminats, 1558 01:19:34,590 --> 01:19:36,115 i està bé. 1559 01:19:36,115 --> 01:19:39,810 >> Aquesta classe es posa significativa més fàcil després del cinquè conjunt de processadors. 1560 01:19:39,810 --> 01:19:41,560 Horari d'oficina: AUDIÈNCIA són Diumenge, Dilluns? 1561 01:19:41,560 --> 01:19:44,260 PROFESSOR: Sí, així que les hores d'oficina farà de diumenge a dilluns per al conjunt de processadors. 1562 01:19:44,260 --> 01:19:47,009 L'horari d'atenció aquest vespre essencialment només serà crítica per al concurs. 1563 01:19:47,009 --> 01:19:50,350 Si algú vol entrar i demanar la TA una pregunta, estarem allà. 1564 01:19:50,350 --> 01:19:53,220 >> Vaig a prendre potser una pregunta més si algú té una pregunta? 1565 01:19:53,220 --> 01:19:53,809 Sí? 1566 01:19:53,809 --> 01:19:55,850 AUDIÈNCIA: Quan estiguis nodes que defineixen, [inaudible] 1567 01:19:55,850 --> 01:20:00,700 si dius estrelles node i després un altre, fa l'ordinador de forma automàtica 1568 01:20:00,700 --> 01:20:03,610 entens que ets referint-se a un altre punter? 1569 01:20:03,610 --> 01:20:04,580 >> PROFESSOR: No. 1570 01:20:04,580 --> 01:20:06,710 >> AUDIÈNCIA: Vostè ha de reenlazar que [inaudible]? 1571 01:20:06,710 --> 01:20:09,270 >> PROFESSOR: Així que, bàsicament, el estructura d'un node és, recordem, 1572 01:20:09,270 --> 01:20:12,620 que és com es crea el node i llavors vostè té un punter trucada següent. 1573 01:20:12,620 --> 01:20:14,630 Tot el que estem fent és tenir l'estructura allà. 1574 01:20:14,630 --> 01:20:16,387 Ha d'assignar aquest punter en algun lloc. 1575 01:20:16,387 --> 01:20:18,470 Així que els ordinadors no ho fa sap el que està fent encara. 1576 01:20:18,470 --> 01:20:20,250 Ha d'assignar realitat quan crearà la seva llista enllaçada. 1577 01:20:20,250 --> 01:20:22,170 I això és el que principalment pset maig estarà encès. 1578 01:20:22,170 --> 01:20:24,106 Així que no et preocupis per res d'això en aquest moment. 1579 01:20:24,106 --> 01:20:26,380 >> AUDIÈNCIA: Així que no necessitem centrar-se massa en la llista d'enllaços, just 1580 01:20:26,380 --> 01:20:27,440 la concepció general? 1581 01:20:27,440 --> 01:20:30,980 >> PROFESSOR: Just pràcticament piles, cues, llistes d'enllaços, arbres, taules hash. 1582 01:20:30,980 --> 01:20:33,639 Només ser capaç de saber el que són. 1583 01:20:33,639 --> 01:20:35,680 No demanarem t'agrada res específic 1584 01:20:35,680 --> 01:20:39,300 perquè en realitat no hem fet un conjunt de processadors que la cobreix res d'això encara. 1585 01:20:39,300 --> 01:20:45,540 >> Així que en els últims dos minuts abans Em vaig posar lliure per matar a aquest qüestionari. 1586 01:20:45,540 --> 01:20:49,370 Més o menys, com, pensar en com ara que vostès han arribat en aquesta classe. 1587 01:20:49,370 --> 01:20:52,820 >> Recordo que quan la segona setmana d'aquesta classe, alguns de vostès 1588 01:20:52,820 --> 01:20:55,720 passar tres hores escrivint aigua. 1589 01:20:55,720 --> 01:20:57,970 Quant de temps el portarà nois escriguin aigua ara? 1590 01:20:57,970 --> 01:20:59,670 30 segons, potser? 1591 01:20:59,670 --> 01:21:01,810 Penseu en la quantitat vostès han après. 1592 01:21:01,810 --> 01:21:04,320 CS és un tema molt, molt difícil. 1593 01:21:04,320 --> 01:21:06,190 No hi ha dubte d'això. 1594 01:21:06,190 --> 01:21:09,160 És difícil, per això ningú no s'ho s'estudia. 1595 01:21:09,160 --> 01:21:10,730 És simplement difícil. 1596 01:21:10,730 --> 01:21:11,650 I és totalment bé. 1597 01:21:11,650 --> 01:21:14,150 >> I estic molt orgullós que tothom ha arribat tan lluny. 1598 01:21:14,150 --> 01:21:16,380 Conjunts de processadors no són fàcils. 1599 01:21:16,380 --> 01:21:17,790 Ells prenen molt de temps. 1600 01:21:17,790 --> 01:21:22,580 Nois, jo mai li demanarà que escrigui el joc de 15 o Vigenère en el conjunt de processadors. 1601 01:21:22,580 --> 01:21:24,160 No hi ha necessitat de simplement s'espanti per això. 1602 01:21:24,160 --> 01:21:28,080 Tot el que estem provant aquí és avaluar el seu coneixement conceptual, així 1603 01:21:28,080 --> 01:21:31,524 com alguns de les seves habilitats bàsiques de codificació. 1604 01:21:31,524 --> 01:21:33,440 La prova està dissenyada per ser realment difícil. 1605 01:21:33,440 --> 01:21:36,180 Igual, que està dissenyat perquè vostè no obté 100. 1606 01:21:36,180 --> 01:21:39,880 També està dissenyat perquè vostè probablement No ser capaç d'acabar en 75 minuts. 1607 01:21:39,880 --> 01:21:41,995 I això és totalment bé. 1608 01:21:41,995 --> 01:21:42,870 Sóc un estudiant de mi mateix. 1609 01:21:42,870 --> 01:21:45,960 Ho sé, ho odio quan camí d'un qüestionari ser així, merda. 1610 01:21:45,960 --> 01:21:47,044 Això va ser molt dur. 1611 01:21:47,044 --> 01:21:49,460 Probablement el que va a happen-- i això és totalment bé, 1612 01:21:49,460 --> 01:21:50,751 T'ho dic nois a ara. 1613 01:21:50,751 --> 01:21:53,190 Els mitjans en aquestes coses no són alts en absolut. 1614 01:21:53,190 --> 01:21:55,360 >> I per a aquells de vostès que han estat rebent, com, 1615 01:21:55,360 --> 01:21:57,870 3 en els seus butlletins de problemes, això no vol dir que estiguis 1616 01:21:57,870 --> 01:21:59,536 va a aconseguir un 60 per cent en aquesta classe. 1617 01:21:59,536 --> 01:22:01,440 Si vostè rep un 60% en el concurs, que no ho fa 1618 01:22:01,440 --> 01:22:03,330 dir que vas a obtenir una D en aquesta classe. 1619 01:22:03,330 --> 01:22:05,740 Veiem, sobretot jo, per aquells de vostès en la meva secció, 1620 01:22:05,740 --> 01:22:07,406 Jo veig el difícil que vostès estan treballant. 1621 01:22:07,406 --> 01:22:09,190 I guardo un registre d'això. 1622 01:22:09,190 --> 01:22:11,420 >> Vostès estaran bé. 1623 01:22:11,420 --> 01:22:14,580 No hi ha memòria institucional de la felicitat al final del semestre. 1624 01:22:14,580 --> 01:22:16,840 A causa que tots els nens de Harvard estan dient seus amics, oh, estaràs bé. 1625 01:22:16,840 --> 01:22:18,381 Ningú t'està dient nois que aquí. 1626 01:22:18,381 --> 01:22:20,950 Així que he de dir a vostès que aquí. 1627 01:22:20,950 --> 01:22:22,280 >> Vostès estaran bé. 1628 01:22:22,280 --> 01:22:24,080 Estic molt orgullós de tots vosaltres. 1629 01:22:24,080 --> 01:22:25,680 La prova serà dura. 1630 01:22:25,680 --> 01:22:28,140 Estudi per a ella, i després simplement llençar-la. 1631 01:22:28,140 --> 01:22:31,280 Prepara't per a aprendre coses noves. 1632 01:22:31,280 --> 01:22:33,990 I menjar dolços. 1633 01:22:33,990 --> 01:22:35,940 Nosaltres hem tenen un munt de caramels. 1634 01:22:35,940 --> 01:22:37,760 >> Obtenir una bona nit de son. 1635 01:22:37,760 --> 01:22:40,420 No, no dormir, perquè això seria molt dolent. 1636 01:22:40,420 --> 01:22:41,490 CS és molta lògica. 1637 01:22:41,490 --> 01:22:44,960 Si no dorms, no pot funcionar, i el seu cervell no pot funcionar. 1638 01:22:44,960 --> 01:22:48,780 I vaig a ser aquí per al pròxim 20 minuts si algú vol passar l'estona. 1639 01:22:48,780 --> 01:22:51,150 Vostès van a acabar amb ell. 1640 01:22:51,150 --> 01:22:53,000 Bona sort. 1641 01:22:53,000 --> 01:22:55,663