1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> PROFESSOR: So het die agenda vir hierdie week, nie veel dinge. 3 00:00:09,790 --> 00:00:12,801 Maar hopelik baie, baie nuttig en relevant is vir julle ouens hierdie week. 4 00:00:12,801 --> 00:00:15,550 Maar ons gaan spandeer miskien 15, 20 minute net vinnig praat 5 00:00:15,550 --> 00:00:17,370 oor skakel lys. 6 00:00:17,370 --> 00:00:19,694 Link lyste gaan gedek word op die quiz. 7 00:00:19,694 --> 00:00:22,610 So miskien is dit baie nuttig wees om 'n bietjie oor wat dit is om te leer. 8 00:00:22,610 --> 00:00:25,210 >> Ons gaan die oorgrote bestee meerderheid van vandag se artikel 9 00:00:25,210 --> 00:00:27,640 gaan oor quiz nul praktyk probleme. 10 00:00:27,640 --> 00:00:30,970 En dan sal ons miskien 20, 30 minute te spaar aan die einde van 'n talmende vrae 11 00:00:30,970 --> 00:00:32,850 iemand het. 12 00:00:32,850 --> 00:00:34,610 >> En dan, die laaste vyf minute, ek gaan 13 00:00:34,610 --> 00:00:36,467 om 'n pomp toespraak vir die quiz gee. 14 00:00:36,467 --> 00:00:38,050 Julle almal wil hier vir daardie. 15 00:00:38,050 --> 00:00:39,591 Want dit gaan 'n goeie tyd wees. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> Alle reg, so 'n paar materiaal op die skakel lys. 18 00:00:49,230 --> 00:00:52,620 Hoe hulle tipies gestruktureer is jy het 'n sogenaamde node, reg? 19 00:00:52,620 --> 00:00:54,870 Jy het hierdie dinge genoem nodes wat structs is. 20 00:00:54,870 --> 00:00:57,360 Ek gaan oor hoe om te skep 'n knoop in die volgende skuif. 21 00:00:57,360 --> 00:01:00,680 Maar in wese alle gekoppelde lyste is is data wat 22 00:01:00,680 --> 00:01:03,340 het saam gespan via wenke. 23 00:01:03,340 --> 00:01:09,110 >> En so het die voordeel wat ons het van die gebruik van 'n geskakelde lys oor, 24 00:01:09,110 --> 00:01:11,280 miskien, soos 'n skikking, is die feit dat in 'n skikking 25 00:01:11,280 --> 00:01:15,000 jy een aangrensende blok nodig geheue almal in dieselfde plek, een 26 00:01:15,000 --> 00:01:16,870 na die ander, in staat wees om daardie. 27 00:01:16,870 --> 00:01:20,200 Terwyl 'n geskakelde lys, kan jy het ewekansige klein stukkies van die geheue 28 00:01:20,200 --> 00:01:23,020 oor jou rekenaar saamgesnoer deur verwysings. 29 00:01:23,020 --> 00:01:26,270 >> En in hierdie manier kan jy kan toegang tot inligting 30 00:01:26,270 --> 00:01:28,610 wat kom een ​​na die ander, na die ander 31 00:01:28,610 --> 00:01:32,720 sonder net 'n groot stuk van geheue in jou rekenaar iewers. 32 00:01:32,720 --> 00:01:35,910 En so is dit een van die groot redes waarom ons skakel lys. 33 00:01:35,910 --> 00:01:40,300 >> Tweedens, dit is baie maklik om te dinamies grootte van die lys met skakels want in skikking, 34 00:01:40,300 --> 00:01:44,720 wanneer jy verklaar 'n skikking, jy het 'n sekere vasgestelde waarde. 35 00:01:44,720 --> 00:01:47,340 Kom ons sê ek wou skep 'n verskeidenheid van 10 heelgetalle. 36 00:01:47,340 --> 00:01:49,970 Ek skep 'n skikking van 10 heelgetalle, en dit is dit. 37 00:01:49,970 --> 00:01:50,580 Dit is 10. 38 00:01:50,580 --> 00:01:52,038 Ek weet nie wat om te doen na daardie. 39 00:01:52,038 --> 00:01:53,680 As ek wou dit 11 maak, kan dit nie doen nie. 40 00:01:53,680 --> 00:01:55,710 As ek wil om dit te maak 9, kan dit nie doen nie. 41 00:01:55,710 --> 00:01:59,910 >> Terwyl dit in 'n skakel lys, kan jy voeg en verwyder en voeg waar jy wil. 42 00:01:59,910 --> 00:02:04,940 Jy kan die grootte van jou dinamiese struktureer hier, jou data struktuur. 43 00:02:04,940 --> 00:02:08,370 En dit gee ons 'n baie meer buigsaamheid bygevoeg 44 00:02:08,370 --> 00:02:11,320 dat ons dit nie doen nie tipies met skikkings. 45 00:02:11,320 --> 00:02:15,210 >> Enigiemand verwar op die basiese struktuur van hoe 'n skakel lys is 46 00:02:15,210 --> 00:02:17,930 of waarom ons moet die een oor 'n skikking te gebruik? 47 00:02:17,930 --> 00:02:20,330 Ja, ons sal gaan oor in detail hoe om werklik een skep. 48 00:02:20,330 --> 00:02:24,121 Maar dit is net soort van die algemene gevoel nou. 49 00:02:24,121 --> 00:02:24,620 Koel. 50 00:02:24,620 --> 00:02:28,770 En so skikkings saam gespan van hierdie pragtige klein dingetjies 51 00:02:28,770 --> 00:02:29,960 genoem nodes. 52 00:02:29,960 --> 00:02:32,210 Al wat 'n node is 'n tipe van struct. 53 00:02:32,210 --> 00:02:36,090 Onthou, 'n struct is as jy wou om 'n sekere tipe veranderlike skep 54 00:02:36,090 --> 00:02:39,850 in C wat nie doen wat reeds bestaan ​​nie, jy, as 'n programmeerder, 55 00:02:39,850 --> 00:02:42,030 kan eintlik maak dit self. 56 00:02:42,030 --> 00:02:46,540 >> En so hierdie tipe van data struktuur is 'n node genoem, 57 00:02:46,540 --> 00:02:50,770 het eintlik geskep deur ons, wat bestaan ​​nie binne C op sy eie. 58 00:02:50,770 --> 00:02:53,150 En die manier waarop jy een skep is jy 59 00:02:53,150 --> 00:02:57,170 die kop van typedef struct, wat die samesteller Ek is vertel 60 00:02:57,170 --> 00:02:59,640 oor 'n struct skep. 61 00:02:59,640 --> 00:03:00,830 >> Ons gaan noem dit "knoop." 62 00:03:00,830 --> 00:03:03,350 En binne ons gaan om 'n veranderlike te verklaar, 63 00:03:03,350 --> 00:03:05,060 wat gaan 'n waarde te stoor. 64 00:03:05,060 --> 00:03:09,320 En dan is ons ook gaan het 'n wyser genaamd "volgende" 65 00:03:09,320 --> 00:03:12,090 wat verwys na die volgende node in die skakel lys. 66 00:03:12,090 --> 00:03:14,730 En dan klaar dat af deur net weer herhaal node so 67 00:03:14,730 --> 00:03:17,490 samesteller weet, OK dit is die einde van my struct. 68 00:03:17,490 --> 00:03:22,540 >> En so op hierdie manier, ons is soort van die skep van 'n oulike reeks 69 00:03:22,540 --> 00:03:25,450 soort ding met 'n waarde en met 'n wyser. 70 00:03:25,450 --> 00:03:27,757 En jy kan hulle almal skakel saam met dié wenke. 71 00:03:27,757 --> 00:03:30,090 Sodat hulle al die soort kan wees saamgesnoer in 'n ketting. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Koel. 74 00:03:34,162 --> 00:03:35,453 Kan jy hoor dat 'n bietjie beter? 75 00:03:35,453 --> 00:03:36,140 >> GEHOOR: Ja. 76 00:03:36,140 --> 00:03:38,540 >> PROFESSOR: Alle reg. 77 00:03:38,540 --> 00:03:44,280 So die manier waarop, as julle kan sien, 'n tipiese skakel lys gestruktureer 78 00:03:44,280 --> 00:03:45,500 is jy 'n kop. 79 00:03:45,500 --> 00:03:49,460 Jy het die hoof waarde wat nie word uitgewys deur enige ander wyser. 80 00:03:49,460 --> 00:03:53,177 Maar dit gaan om te wys op, of verwysing, 'n ander knoop. 81 00:03:53,177 --> 00:03:56,510 Die knoop na gaan verwys die node daarna, en so aan en so voort 82 00:03:56,510 --> 00:03:59,170 totdat jy uiteindelik getref die einde van jou skakel lys. 83 00:03:59,170 --> 00:04:00,980 En jy sal net nie 'n wyser daar te hê. 84 00:04:00,980 --> 00:04:04,659 >> En so, dink soos op 'n ketting, of selfs Indien enige van julle ouens gemaak, weet ek nie, 85 00:04:04,659 --> 00:04:06,450 soos met Fruit Loops toe jy klein was. 86 00:04:06,450 --> 00:04:08,590 Jy sou string hulle saam en dra dit om jou nek. 87 00:04:08,590 --> 00:04:09,840 Dink dit is presies dieselfde ding. 88 00:04:09,840 --> 00:04:12,964 Jy het hierdie klein dinge wat jy kan string saam dat een punt 89 00:04:12,964 --> 00:04:15,291 nadat dit aan die een na dit, en so aan en so voort 90 00:04:15,291 --> 00:04:17,040 totdat jy 'n ketting van 'n datastruktuur 91 00:04:17,040 --> 00:04:21,190 wat jy kan gebruik egter jy wil. 92 00:04:21,190 --> 00:04:27,370 >> So die manier waarop hierdie sou ons tipies voeg of te verwyder 93 00:04:27,370 --> 00:04:30,020 enige node van 'n skakel lys is baie verskillende 94 00:04:30,020 --> 00:04:31,970 afhangende van waar daardie node is. 95 00:04:31,970 --> 00:04:34,880 So, byvoorbeeld, omdat pointers is altyd 96 00:04:34,880 --> 00:04:38,645 wys op 'n spesifieke waarde, wanneer jy verwyder of voeg 'n knoop, 97 00:04:38,645 --> 00:04:41,770 jy wil om seker te maak dat die wyser is al wat dui op die regte dinge. 98 00:04:41,770 --> 00:04:46,200 >> So as jy wil potensieel voeg 'n nuwe node met die waarde van een 99 00:04:46,200 --> 00:04:48,379 in 'n gesorteerde skakel lys, ons almal hier weet 100 00:04:48,379 --> 00:04:51,170 uit die prentjie wat gaan Gaan in tussen die kop en twee, reg? 101 00:04:51,170 --> 00:04:52,620 Want 'n mens pas reg daar. 102 00:04:52,620 --> 00:04:59,060 Maar die manier waarop ons dit sou doen is deur die eerste dereferencing die wyser 103 00:04:59,060 --> 00:05:02,160 van kop en stuur dit aan die een. 104 00:05:02,160 --> 00:05:05,040 >> Maar ons het in 'n probleem kom hier. 105 00:05:05,040 --> 00:05:08,280 Kan iemand sien wat die probleem is as ons eerste dereference 106 00:05:08,280 --> 00:05:10,090 die wyser van kop tot een? 107 00:05:10,090 --> 00:05:14,202 Watter probleem kan ons loop in as ons probeer om hierdie by te voeg aan die voorkant van ons verskeidenheid? 108 00:05:14,202 --> 00:05:15,409 >> GEHOOR: [onhoorbaar] 109 00:05:15,409 --> 00:05:16,200 PROFESSOR: Presies. 110 00:05:16,200 --> 00:05:20,000 So hier het ons 'n wyser wat een keer wys uit die kop tot twee. 111 00:05:20,000 --> 00:05:23,120 Maar as jy ontslae te raak van wat kry wyser, jy het dit verwys na een, 112 00:05:23,120 --> 00:05:26,500 ons het nou geen idee waar om te gaan om twee te vind. 113 00:05:26,500 --> 00:05:29,850 Want soos ek gesê het, het jy 'n reuse stuk van die geheue in jou rekenaar. 114 00:05:29,850 --> 00:05:31,860 Al hierdie nodes kon word lukraak afgewissel 115 00:05:31,860 --> 00:05:33,350 in enige plek in jou rekenaar. 116 00:05:33,350 --> 00:05:36,140 En jy weet nie hoe om te gaan oor die vind dit. 117 00:05:36,140 --> 00:05:40,420 >> En so moet jy wenke het wys na al die nodes aan die einde. 118 00:05:40,420 --> 00:05:42,420 Of anders as jy per ongeluk dereference een 119 00:05:42,420 --> 00:05:44,485 sonder om eers toewys 'n waarde eerste, jy is 120 00:05:44,485 --> 00:05:47,410 net gaan om te verloor alles daarna. 121 00:05:47,410 --> 00:05:49,720 >> So, wat ons gaan doen is, sou jy eerste 122 00:05:49,720 --> 00:05:53,270 wil 'n wyser op te skep die knoop jy wil voeg. 123 00:05:53,270 --> 00:05:55,270 Wys dit aan waar jy dit wil voeg tot, 124 00:05:55,270 --> 00:05:59,410 en dan daarna jou kon kop terug wys na een. 125 00:05:59,410 --> 00:06:02,800 >> Maak dit sin om almal hier? 126 00:06:02,800 --> 00:06:03,346 Groot. 127 00:06:03,346 --> 00:06:04,720 Dink aan dit as net soos 'n ketting. 128 00:06:04,720 --> 00:06:07,420 As jy 'n ketting te voeg, dit is soort van intuïtiewe 129 00:06:07,420 --> 00:06:10,742 hoe jy gaan invoeging dit. 130 00:06:10,742 --> 00:06:15,274 >> OK, so dit is eintlik baie korter as wat ek gedink het dit sou wees, 131 00:06:15,274 --> 00:06:16,690 'n vyf-minute spiel op die skakel lyste. 132 00:06:16,690 --> 00:06:19,960 Net so julle ouens het die basiese idee van wat dit is. 133 00:06:19,960 --> 00:06:23,580 >> Hier het ons die agenda vir quiz nul. 134 00:06:23,580 --> 00:06:24,895 Moenie toelaat dat hierdie intimideer jou. 135 00:06:24,895 --> 00:06:26,270 Ek weet dit is 'n baie inligting. 136 00:06:26,270 --> 00:06:27,580 Dit lyk baie scary. 137 00:06:27,580 --> 00:06:33,130 Dit is ook 'n baie, ek dink, CSC soort terme. 138 00:06:33,130 --> 00:06:37,440 Dinge soos heksadesimale snare, wysers, dinamiese geheue toekennings 139 00:06:37,440 --> 00:06:40,120 is baie scary klinkende terme. 140 00:06:40,120 --> 00:06:42,700 >> Maar ons gaan om hulle te breek af, doen 'n paar praktyk probleme 141 00:06:42,700 --> 00:06:44,980 sodat julle almal gereed is vir hierdie toets. 142 00:06:44,980 --> 00:06:47,104 Hoeveel van julle ouens het reeds begin studeer? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, julle ouens waarskynlik wil om te begin slag 145 00:06:53,670 --> 00:06:56,480 op daardie, omdat die toets is môre. 146 00:06:56,480 --> 00:06:58,739 Of Donderdag vir 'n paar van jou. 147 00:06:58,739 --> 00:07:01,030 Ja, so ons gaan om te gaan oor 'n paar praktyk probleme. 148 00:07:01,030 --> 00:07:04,600 As jy ouens wil almal om te neem uit 'n vel papier, 'n potlood. 149 00:07:04,600 --> 00:07:07,310 Ons gaan net spandeer die oorgrote meerderheid van vandag se artikel 150 00:07:07,310 --> 00:07:11,590 gaan oor 'n paar van wat so julle ouens het 'n idee van wat om te verwag van die quiz. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OK. 153 00:07:16,890 --> 00:07:19,730 'N Paar logistieke besonderhede asook vir enigiemand 154 00:07:19,730 --> 00:07:25,120 wat nie aan daardie skakel daar is, as jy gaan cs50.yale.edu, aan die voorkant 155 00:07:25,120 --> 00:07:28,566 hierdie bladsy is daar 'n skakel wat sê: "Oor Quiz Zero." 156 00:07:28,566 --> 00:07:29,440 Skakel neem jou daar. 157 00:07:29,440 --> 00:07:31,065 As jy nog nie gelees het nie, lees dit. 158 00:07:31,065 --> 00:07:34,470 Want dit vertel jou werklik belangrik inligting oor die quiz. 159 00:07:34,470 --> 00:07:37,410 >> Ek gaan hierdie trek uit dat net omdat, fisies, 160 00:07:37,410 --> 00:07:40,200 as jy ouens weet nie waar om te gaan, sal ons probleme. 161 00:07:40,200 --> 00:07:44,220 En so as jou laaste in terme van 'n N, gaan na die wet skool ouditorium. 162 00:07:44,220 --> 00:07:47,500 En as jou laaste begin met P tot Z, gaan na Davies Ouditorium. 163 00:07:47,500 --> 00:07:50,240 En dit is net van toepassing vir mense in die afdeling Woensdag. 164 00:07:50,240 --> 00:07:53,420 >> As jy die neem van die quiz op Donderdag, gaan jy na SSS 114 165 00:07:53,420 --> 00:07:55,078 waar jou lesing tipies is. 166 00:07:55,078 --> 00:07:55,953 GEHOOR: [onhoorbaar] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 PROFESSOR: O tot Z, jy gaan om te gaan na die Davies ouditorium. 169 00:08:01,940 --> 00:08:03,273 Ek gaan om dit te verander, reg? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> O, ja, jy het net outomaties misluk. 172 00:08:09,698 --> 00:08:11,753 >> O ja, dit is wat jy Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Ja, my sleg. 175 00:08:16,030 --> 00:08:17,610 Yep, O tot Z, jy gaan om te gaan na Davies Auditorim. 176 00:08:17,610 --> 00:08:19,140 Ek gaan om vas te stel hierdie keer ek laai. 177 00:08:19,140 --> 00:08:20,320 Ja. 178 00:08:20,320 --> 00:08:22,160 >> En dan ook iets belangrik om verstand 179 00:08:22,160 --> 00:08:25,290 is dat Woensdag, as jy amptelik ingeskryf is in die afdeling Woensdag, 180 00:08:25,290 --> 00:08:26,832 moet jy jou quiz op Woensdag. 181 00:08:26,832 --> 00:08:29,706 En as jy wat ingeskryf is in Donderdag, moet jy jou quiz Donderdag neem. 182 00:08:29,706 --> 00:08:31,000 En dit is gedurende klastyd. 183 00:08:31,000 --> 00:08:35,970 Waar, dink ek dit is soos om 01:00 02:15 op Woensdae en 2:30-03:45 184 00:08:35,970 --> 00:08:37,220 op Donderdae. 185 00:08:37,220 --> 00:08:41,710 >> As jy 'n onversoenbare konflik, Dean se verskonings is die enigste ding, 186 00:08:41,710 --> 00:08:43,030 Ongelukkig kan ons nie. 187 00:08:43,030 --> 00:08:45,560 Want ons het 'n oorgrote meerderheid van versoeke 188 00:08:45,560 --> 00:08:47,970 om oor te skakel van Woensdag tot Donderdag. 189 00:08:47,970 --> 00:08:51,265 Wat ons nie kan eer nie, tensy ons het versoek om 'n Dekaan. 190 00:08:51,265 --> 00:08:52,650 >> OK. 191 00:08:52,650 --> 00:08:57,000 Dus, voordat ons begin op 'n paar van die praktyk probleme, 192 00:08:57,000 --> 00:09:00,540 Ek gaan net om te gaan oor Andy se nuttige wenke vir sukses. 193 00:09:00,540 --> 00:09:04,140 Julle ouens, wanneer jy studeer, het jy regtig wil oefen kode skryf met die hand. 194 00:09:04,140 --> 00:09:07,050 Die eerste keer wat ek ooit het 'n CS quiz, ek het nie 195 00:09:07,050 --> 00:09:09,960 praktyk kode skryf met die hand voor en dit was baie 196 00:09:09,960 --> 00:09:11,890 skokkend hoe moeilik dit was. 197 00:09:11,890 --> 00:09:16,125 >> Wanneer julle nie kry in die gewoonte tik alles, 198 00:09:16,125 --> 00:09:20,260 dit kom baie natuurlik dat staat te wees om autocompleted 199 00:09:20,260 --> 00:09:22,015 hakies en kommapunte daar. 200 00:09:22,015 --> 00:09:23,890 Wanneer jy dit uitskryf met die hand, soms is dit 201 00:09:23,890 --> 00:09:27,100 baie, baie maklik om 'n kommapunt vergeet of vergeet om 'n bracket sluit, 202 00:09:27,100 --> 00:09:30,970 of vergeet om 'n kolon te sluit, of iets soos dit. 203 00:09:30,970 --> 00:09:34,322 >> So wanneer jy skryf kode per hand, dit is 'n baie verskillende gevoel. 204 00:09:34,322 --> 00:09:37,280 So julle ouens, wanneer jy werk deur 'n paar van die praktyk probleme, 205 00:09:37,280 --> 00:09:38,904 dit sal goed wees om werklik te oefen vandag. 206 00:09:38,904 --> 00:09:41,770 Of môre, dink ek, as jy die neem van die quiz op Donderdag. 207 00:09:41,770 --> 00:09:45,280 >> Tweedens, ons het die laaste, soos, waarde van die praktyk agt jaar se 208 00:09:45,280 --> 00:09:47,070 vasvrae aanlyn. 209 00:09:47,070 --> 00:09:50,759 Quiz vanjaar se sal waarskynlik baie, baie soortgelyk aan almal van hulle. 210 00:09:50,759 --> 00:09:51,800 Hulle is almal baie soortgelyk. 211 00:09:51,800 --> 00:09:54,220 Jy soort van kry in die styl van die tipe vrae 212 00:09:54,220 --> 00:09:57,250 wat ons vra, is die tipe funksies wat ons dit sal skryf in, 213 00:09:57,250 --> 00:09:58,580 ensovoorts, ensovoorts. 214 00:09:58,580 --> 00:10:01,980 >> So neem die praktyk vasvrae, veral onder tydsbeperkings. 215 00:10:01,980 --> 00:10:05,390 75 minute om te doen die quiz is nie 'n baie bedrag van die tyd. 216 00:10:05,390 --> 00:10:07,254 Dit is baie, baie lank. 217 00:10:07,254 --> 00:10:09,670 En so julle ouens regtig wil om seker te maak dat jy ouens is 218 00:10:09,670 --> 00:10:11,990 in die gewoonte van die skryf kode per hand vinnig. 219 00:10:11,990 --> 00:10:15,070 Omdat jy nie wil hê die eerste tyd om 'n quiz van daardie lengte sien 220 00:10:15,070 --> 00:10:16,560 wees op jou quiz. 221 00:10:16,560 --> 00:10:20,540 Julle wil regtig om seker te maak dat jy vooraf te oefen. 222 00:10:20,540 --> 00:10:24,550 >> Vierde, wil jy die hersiening lesing en artikel skyfies. 223 00:10:24,550 --> 00:10:25,980 Jy hoef nie om dinge te onthou. 224 00:10:25,980 --> 00:10:30,430 Eintlik is almal toegelaat om 'n een vel wit papier notas, 225 00:10:30,430 --> 00:10:31,090 voor en agter. 226 00:10:31,090 --> 00:10:32,920 Julle kan tik of skryf nie. 227 00:10:32,920 --> 00:10:37,070 As jy jouself hoef te memoriseer enigiets, sit dit af op daardie blad. 228 00:10:37,070 --> 00:10:40,810 >> Ek waarborg jou, het jy nie wil vas in die middel van die quiz 229 00:10:40,810 --> 00:10:43,890 om soos, o ja, wat is die runtime van hierdie soort versus dié soort. 230 00:10:43,890 --> 00:10:46,490 Sit dit net af en kopieer dit reguit uit jou kennis vel. 231 00:10:46,490 --> 00:10:50,420 Dan kan jy eintlik net gebruik om jou brein om te dink oor die probleme 232 00:10:50,420 --> 00:10:52,190 eerder as om feite te onthou. 233 00:10:52,190 --> 00:10:55,250 En so werklik neem voordeel enige nis besonderhede 234 00:10:55,250 --> 00:11:00,140 wat jy dink jy nodig het om te onthou, plop dit op die hersiening vel. 235 00:11:00,140 --> 00:11:02,680 >> OK, vrae logisties ten opsigte van die quiz 236 00:11:02,680 --> 00:11:05,510 voordat ons begin 'n paar quiz probleme oefen? 237 00:11:05,510 --> 00:11:06,416 Ja? 238 00:11:06,416 --> 00:11:10,040 >> GEHOOR: Ek het nie 'n kans gehad het om te kyk na die quiz [onhoorbaar] 239 00:11:10,040 --> 00:11:11,757 maar dit gaan wees aansoek meestal, 240 00:11:11,757 --> 00:11:14,090 of is daar ook gaan wees, soos, kennis vrae? 241 00:11:14,090 --> 00:11:14,940 >> PROFESSOR: Dit is 'n baie. 242 00:11:14,940 --> 00:11:16,731 So, die manier wat ek sou die toets beskryf 243 00:11:16,731 --> 00:11:18,810 is-- ek saam 'n praktyk probleme 244 00:11:18,810 --> 00:11:20,960 dat ek getrek uit al die vasvrae. 245 00:11:20,960 --> 00:11:25,210 Maar jy sal sien dat daar twee hoof tipes vrae sal ons jou vra. 246 00:11:25,210 --> 00:11:28,750 >> Een is 'n baie lae vlak detail van dinge. 247 00:11:28,750 --> 00:11:31,720 Ons sal u 'n klein stuk van die kode te gee en sê, is daar 'n fout hier? 248 00:11:31,720 --> 00:11:33,110 Wat sou die druk hier? 249 00:11:33,110 --> 00:11:35,980 Wat sal hierdie kode te produseer, ensovoorts. 250 00:11:35,980 --> 00:11:38,710 So 'n baie lae vlak inligting besonderhede. 251 00:11:38,710 --> 00:11:42,700 >> En op die ander kant, sal ons baie het hoë vlak kennis vrae. 252 00:11:42,700 --> 00:11:45,190 Kan jy verduidelik wat die verskil tussen 'n binêre soek 253 00:11:45,190 --> 00:11:46,148 en 'n lineêre soek is? 254 00:11:46,148 --> 00:11:48,500 Hoekom sal ons wil Gebruik een oor die ander? 255 00:11:48,500 --> 00:11:49,960 Miskien, wat is GDB? 256 00:11:49,960 --> 00:11:51,560 Hoekom wil ons GDB gebruik? 257 00:11:51,560 --> 00:11:54,590 Hoër vlak, meer fundamentele begrip vrae. 258 00:11:54,590 --> 00:11:58,240 Sodat jy 'n mengsel van sien die twee van hulle op jou quiz. 259 00:11:58,240 --> 00:12:01,462 >> Enigiets anders voordat ons hoof reguit in dit? 260 00:12:01,462 --> 00:12:02,879 OK. 261 00:12:02,879 --> 00:12:03,670 GEHOOR: Een meer. 262 00:12:03,670 --> 00:12:04,030 PROFESSOR: O, nog een. 263 00:12:04,030 --> 00:12:04,340 Jammer. 264 00:12:04,340 --> 00:12:05,631 >> GEHOOR: Ja, dit is alles reg. 265 00:12:05,631 --> 00:12:10,140 So jy sê 75 minute te kort, soos dit is onwaarskynlik 266 00:12:10,140 --> 00:12:11,640 dat ons sal eindig? 267 00:12:11,640 --> 00:12:13,571 Of, soos, 75 minute is presies soveel tyd 268 00:12:13,571 --> 00:12:15,700 soos ons nodig sou wees as ons toepaslik voorberei? 269 00:12:15,700 --> 00:12:17,450 PROFESSOR: OK, so die quiz is 'n uitdaging. 270 00:12:17,450 --> 00:12:19,550 Dit is beslis 'n uitdaging. 271 00:12:19,550 --> 00:12:21,092 Jy sal vind jouself kort op tyd. 272 00:12:21,092 --> 00:12:24,341 Jy is waarskynlik gaan om te slaan, soos 10, 15 minute om te gaan, en om soos, kak. 273 00:12:24,341 --> 00:12:25,520 Ek het so baie links om te doen. 274 00:12:25,520 --> 00:12:26,520 En dit is heeltemal fyn. 275 00:12:26,520 --> 00:12:28,740 Almal gaan op dieselfde manier voel. 276 00:12:28,740 --> 00:12:31,074 >> Net baie bewus van hoeveel tyd jy het. 277 00:12:31,074 --> 00:12:33,490 En so dit is hoekom ek jou vertel ouens doen die praktyk vasvrae. 278 00:12:33,490 --> 00:12:36,672 Want dit is werklik 'n groot sin gee van wat die quiz gaan wees nie. 279 00:12:36,672 --> 00:12:39,130 So as jy jouself om in staat wees om die praktyk klaar 280 00:12:39,130 --> 00:12:41,671 vasvrae in 'n goeie bedrag van die tyd, kan jy jouself goed pas, 281 00:12:41,671 --> 00:12:45,695 dan sal jy nie 'n probleem het Woensdag of Donderdag. 282 00:12:45,695 --> 00:12:46,575 >> Koel. 283 00:12:46,575 --> 00:12:49,200 So as almal wants-- Ek dink die meeste mense het velle papier 284 00:12:49,200 --> 00:12:49,810 uit al. 285 00:12:49,810 --> 00:12:52,604 Ek gaan in wese net gee jou monster vrae, 286 00:12:52,604 --> 00:12:54,520 gee julle ouens, soos, 'n paar minute om dit te doen. 287 00:12:54,520 --> 00:12:59,610 En ons sal gaan oor as 'n klas wat die antwoorde op hulle is. 288 00:12:59,610 --> 00:13:02,860 >> So, dit is 'n baie tipiese vroeë vraag wat ons sal 289 00:13:02,860 --> 00:13:06,720 vra jou, net die omskakeling getalle tussen verskillende basisse. 290 00:13:06,720 --> 00:13:09,070 Binary, as julle kan Onthou, is die basis twee. 291 00:13:09,070 --> 00:13:12,470 Desimale is base 10, of wat ons as mense tipies interpreteer. 292 00:13:12,470 --> 00:13:17,120 Heksadesimale is base 16, wat is nul deur nege sowel as 'n middel F. 293 00:13:17,120 --> 00:13:19,990 >> So is daar vier nommers Ek is vra julle om hier te omskep. 294 00:13:19,990 --> 00:13:23,909 Ek gee wat jy wil, drie tot vier minute om te dink deur middel van hoe 295 00:13:23,909 --> 00:13:25,200 ons sal gaan om hierdie. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> GEHOOR: Is ons toegelaat sakrekenaars? 298 00:13:35,710 --> 00:13:37,630 >> PROFESSOR: Jy sal nie moet sakrekenaars, ja. 299 00:13:37,630 --> 00:13:42,420 Ek dink basiese Daarbenewens, dink ek, is al julle ouens sal gevra word om te doen. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> En net so het ek soort van 'n gevoel wanneer almal is gedoen, kyk, 302 00:14:45,070 --> 00:14:47,429 golf, ek weet nie, glimlag, lyk gelukkig as jy klaar is. 303 00:14:47,429 --> 00:14:47,929 Ja. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Miskien 'n paar minute. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, laat ons bring dit in. 308 00:18:29,600 --> 00:18:31,580 Ek is doelbewus gaan gee julle minder tyd 309 00:18:31,580 --> 00:18:33,760 as jy waarskynlik nodig het om te doen sommige van hierdie probleme, 310 00:18:33,760 --> 00:18:37,124 net omdat ek wil seker maak dat ons kry deur 'n klomp van die probleme. 311 00:18:37,124 --> 00:18:39,290 So geen bekommernisse as jy nie het 'n kans om te voltooi. 312 00:18:39,290 --> 00:18:43,770 Heeltemal OK solank jy 'n idee van hoe om te gaan oor hierdie. 313 00:18:43,770 --> 00:18:45,850 So laat ons gaan voort en doen die eerste een. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> So die eerste, nie almal wil om my te vertel in binêre, wat elk van hierdie syfers te doen 316 00:18:57,870 --> 00:19:00,484 verteenwoordig in terme van hul waardes? 317 00:19:00,484 --> 00:19:01,250 Ja? 318 00:19:01,250 --> 00:19:03,349 >> GEHOOR: Twee van die krag nul, 00:58. 319 00:19:03,349 --> 00:19:04,140 PROFESSOR: Presies. 320 00:19:04,140 --> 00:19:04,640 Doen. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> Right, so tipies wanneer ons in die basis 10 323 00:19:16,430 --> 00:19:20,580 al hierdie verteenwoordig is, soos, 10 om die basis van nul, reg? 324 00:19:20,580 --> 00:19:21,810 Dit is jou een plek. 325 00:19:21,810 --> 00:19:24,520 Al jou 10 se plek is, is 10 tot die mag van die een. 326 00:19:24,520 --> 00:19:26,600 Jy 100 se plek is 10 om die krag van twee. 327 00:19:26,600 --> 00:19:29,570 >> Wat ook al base jy in gaan te doen met presies dieselfde ding, 328 00:19:29,570 --> 00:19:31,480 net met 'n ander basis. 329 00:19:31,480 --> 00:19:34,130 So binêre, alles wat is die basis twee. 330 00:19:34,130 --> 00:19:37,110 Jy gaan om te skakel al die syfers in twee tot watter krag 331 00:19:37,110 --> 00:19:38,190 van daardie syfer. 332 00:19:38,190 --> 00:19:41,450 En so in hierdie sin, ons kan 'n makliker manier het 333 00:19:41,450 --> 00:19:43,800 om te kan optel of som al die nommers in volgorde 334 00:19:43,800 --> 00:19:46,010 om te omskep in basis 10. 335 00:19:46,010 --> 00:19:50,362 >> So het iemand my wil vertel wat die antwoord op die eerste een is in die basis tien? 336 00:19:50,362 --> 00:19:51,674 >> GEHOOR: Twee, [onhoorbaar] 337 00:19:51,674 --> 00:19:52,340 PROFESSOR: Ja. 338 00:19:52,340 --> 00:19:53,230 GEHOOR: 42. 339 00:19:53,230 --> 00:19:56,560 PROFESSOR: 42, daar gaan jy. 340 00:19:56,560 --> 00:20:00,660 So het die manier waarop ons het hierdie antwoord was deur doen die eerste twee, wat twee. 341 00:20:00,660 --> 00:20:02,760 Plus twee, die derde, wat agt. 342 00:20:02,760 --> 00:20:07,590 Plus twee na die vyfde, wat is alles wat oorbly. 343 00:20:07,590 --> 00:20:09,390 Jy som dit op en dit is 42. 344 00:20:09,390 --> 00:20:12,000 >> Is daar iemand verward oor hoe ons dit het? 345 00:20:12,000 --> 00:20:15,630 So basiese Daarbenewens soos Ek het gesê, julle OK behoort te wees. 346 00:20:15,630 --> 00:20:17,410 Indien nie, wel, ons kan ook oefen nie. 347 00:20:17,410 --> 00:20:18,720 Maar dit is alles reg. 348 00:20:18,720 --> 00:20:20,560 Koel. 349 00:20:20,560 --> 00:20:25,570 >> Is daar iemand wat my wil die gee antwoord op die tweede een so goed? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 Goed. 352 00:20:27,600 --> 00:20:30,044 Enigiemand verward oor hoe ons het wat óf? 353 00:20:30,044 --> 00:20:31,960 Cool, sal ek die antwoorde op die volgende skuif. 354 00:20:31,960 --> 00:20:34,440 So geen bekommernisse as jy nodig het om dit af te kopieer. 355 00:20:34,440 --> 00:20:38,860 >> OK, so heksadesimale is 'n bietjie moeiliker. 356 00:20:38,860 --> 00:20:41,840 maar ek gaan om jou te wys ouens 'n kortpad vir hoe om dit te doen. 357 00:20:41,840 --> 00:20:44,800 So heksadesimaal, soos jy Onthou, al is dit in 16. 358 00:20:44,800 --> 00:20:48,920 En omdat ons as mense nie eintlik het 16 nommers verteenwoordig dat 359 00:20:48,920 --> 00:20:56,940 ons gaan van nul tot nege, wat ons eerste 10 waardes, en dan 'n doen ons deur F, 360 00:20:56,940 --> 00:20:58,630 wat die volgende ses waardes. 361 00:20:58,630 --> 00:21:03,040 >> En so het die maklikste manier om te gaan van enige binêre getal na heksadesimaal 362 00:21:03,040 --> 00:21:05,350 is om hulle te breek in helftes. 363 00:21:05,350 --> 00:21:10,042 En so 'n binêre getal sal ons gee jy sal waarskynlik agt syfers. 364 00:21:10,042 --> 00:21:11,750 Jy kan net breek hulle in die middel. 365 00:21:11,750 --> 00:21:17,460 >> So het die eerste een one-- een 'n mens, een, een, een een. 366 00:21:17,460 --> 00:21:21,340 Soort dink dit het, jy weet, teken 'n streep of 'n komma in tussen hulle. 367 00:21:21,340 --> 00:21:23,800 En jy kan net sit direk ookal 368 00:21:23,800 --> 00:21:26,670 dit is die eerste aantal heksadesimaal, 369 00:21:26,670 --> 00:21:29,880 en alles wat hier is om te die tweede van heksadesimale. 370 00:21:29,880 --> 00:21:37,584 >> So onthou van algemene notasie, wat doen heksadesimale waardes begin met? 371 00:21:37,584 --> 00:21:38,460 >> GEHOOR: Zero. 372 00:21:38,460 --> 00:21:39,270 >> PROFESSOR: 0X. 373 00:21:39,270 --> 00:21:45,210 So ons weet dat enige tyd wat jy vra ons om enige aantal omskep heksadesimaal, 374 00:21:45,210 --> 00:21:48,230 of enige tyd wat jy sien nie getal wat begin met 0X, 375 00:21:48,230 --> 00:21:50,230 jy weet dat dit is 'n heksadesimale waarde. 376 00:21:50,230 --> 00:21:54,160 >> En dan gaan jy gevra word om bepaal wat hierdie twee syfers is. 377 00:21:54,160 --> 00:21:59,690 En die manier waarop jy dit doen, tel van up dat die helfte en tel van up dat die helfte. 378 00:21:59,690 --> 00:22:02,870 So in hierdie voorbeeld, wat sou 'n mens, een, een, een wees? 379 00:22:02,870 --> 00:22:04,890 Watter waarde sal dit wees? 380 00:22:04,890 --> 00:22:06,040 Dit sou wees F, reg? 381 00:22:06,040 --> 00:22:08,050 Dit sou wees 15. 382 00:22:08,050 --> 00:22:11,780 >> So hierdie F. Een sou wees, een, een, een hier is ook 383 00:22:11,780 --> 00:22:21,270 F. So een, een, een, een, een, een, een, een in heksadesimaal, al is dit is 0XFF. 384 00:22:21,270 --> 00:22:25,350 Omdat hierdie half verteenwoordig F, die waarde van 15, 385 00:22:25,350 --> 00:22:27,331 en dit half verteenwoordig F, die waarde 15. 386 00:22:27,331 --> 00:22:29,456 Want onthou, ons is tel van nul tot nege. 387 00:22:29,456 --> 00:22:35,290 A is soos 10, B is soos 11, F is 15. 388 00:22:35,290 --> 00:22:41,690 >> Maak dit sin om almal hoe ons van binêre na heksadesimaal? 389 00:22:41,690 --> 00:22:44,595 >> GEHOOR: En so hoe het ons 15 van die een, een, een, een? 390 00:22:44,595 --> 00:22:46,220 PROFESSOR: Ja, dit is binêre, reg? 391 00:22:46,220 --> 00:22:48,090 Stel jou voor dit is net 'n binêre getal. 392 00:22:48,090 --> 00:22:50,792 So jy het twee van die nulde, wat een. 393 00:22:50,792 --> 00:22:51,500 GEHOOR: O, OK. 394 00:22:51,500 --> 00:22:51,670 Sodat jy net totaal dit uit. 395 00:22:51,670 --> 00:22:52,670 >> PROFESSOR: Ja, en dan jy net totaal dat uit. 396 00:22:52,670 --> 00:22:53,380 Dit is al wat dit is. 397 00:22:53,380 --> 00:22:54,890 >> GEHOOR: OK. 398 00:22:54,890 --> 00:22:55,830 >> PROFESSOR: OK. 399 00:22:55,830 --> 00:23:00,740 >> GEHOOR: So jy gaan van binêre om decimaal heksadesimale? 400 00:23:00,740 --> 00:23:04,590 >> PROFESSOR: Dit is die maklikste manier om dit te doen, ja. 401 00:23:04,590 --> 00:23:11,390 Jy gaan nie desimaal omdat desimale het slegs nul tot nege. 402 00:23:11,390 --> 00:23:13,410 Ons is net soort van verdeel hierdie in twee. 403 00:23:13,410 --> 00:23:15,201 >> GEHOOR: [onhoorbaar] gebruik van desimale te vind 404 00:23:15,201 --> 00:23:17,809 wat dit ooreenstem tot in heksadesimaal. 405 00:23:17,809 --> 00:23:20,100 PROFESSOR: Ek bedoel, jy is tel van met behulp van basiese wiskunde. 406 00:23:20,100 --> 00:23:20,725 GEHOOR: Ja. 407 00:23:20,725 --> 00:23:22,300 PROFESSOR: Ja, pretty much. 408 00:23:22,300 --> 00:23:23,630 Dit is 'n bietjie verwarrend. 409 00:23:23,630 --> 00:23:26,410 Maar net weet dat jy kan verdeel ookal 410 00:23:26,410 --> 00:23:28,160 hierdie waarde in net helftes. 411 00:23:28,160 --> 00:23:29,570 Kyk, wat is dit in binêre? 412 00:23:29,570 --> 00:23:30,610 Watter getal is dit? 413 00:23:30,610 --> 00:23:33,270 Dit gaan wees iets van nul tot F. 414 00:23:33,270 --> 00:23:35,722 >> Hier gaan ook wees iets van nul tot F. 415 00:23:35,722 --> 00:23:37,722 En dan kan jy net sit daardie twee reg daar. 416 00:23:37,722 --> 00:23:38,263 >> GEHOOR: OK. 417 00:23:38,263 --> 00:23:38,910 PROFESSOR: Yep. 418 00:23:38,910 --> 00:23:39,410 OK. 419 00:23:39,410 --> 00:23:42,320 So julle ouens wil Probeer die volgende een dan? 420 00:23:42,320 --> 00:23:49,601 Nul, een, nul een, een, nul, 'n nul. 421 00:23:49,601 --> 00:23:52,350 Ek sal julle gee soos 30 sekondes, omdat jy waarskynlik nie weet 422 00:23:52,350 --> 00:23:53,850 die truuk hoe om hierdie vroeër doen nie. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, iemand wil hierdie een te kry 'n skoot? 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 Goed. 429 00:24:31,340 --> 00:24:37,050 So dit hier sou be-- jy wil om ons te vertel hoe jy dit? 430 00:24:37,050 --> 00:24:38,920 Eerstens, hoe het jy die vyf? 431 00:24:38,920 --> 00:24:42,030 >> GEHOOR: Omdat nul, een, nul, een is vyf. 432 00:24:42,030 --> 00:24:45,170 >> PROFESSOR: Verstaan ​​almal Hoekom nul, een, nul, een is vyf? 433 00:24:45,170 --> 00:24:46,260 Jy het een hier het. 434 00:24:46,260 --> 00:24:48,010 Jy het niks in twee tot by die eerstes. 435 00:24:48,010 --> 00:24:50,300 In twee van die tweede, wat jy een, wat vier. 436 00:24:50,300 --> 00:24:52,600 Sodat jy die vier plus voeg die een wat jy het vyf. 437 00:24:52,600 --> 00:24:53,600 Almal goeie? 438 00:24:53,600 --> 00:24:54,100 OK. 439 00:24:54,100 --> 00:24:56,570 En dan wat dit wees en hoekom? 440 00:24:56,570 --> 00:24:58,350 Watter getal kom 'n stem ooreen met? 441 00:24:58,350 --> 00:24:59,350 >> GEHOOR: 10. 442 00:24:59,350 --> 00:25:00,976 >> PROFESSOR: En wat dit in twee base? 443 00:25:00,976 --> 00:25:01,850 GEHOOR: [onhoorbaar] 444 00:25:01,850 --> 00:25:03,010 PROFESSOR: Presies. 445 00:25:03,010 --> 00:25:06,370 So die tweede waarde hier sou wees 0X5A. 446 00:25:06,370 --> 00:25:08,410 >> Almal goeie oor hoe om te sit? 447 00:25:08,410 --> 00:25:10,770 Dit is 'n baie makliker as wat jy dink dit is. 448 00:25:10,770 --> 00:25:13,330 Ek wil net om seker te maak jy weet nuttige wenke 449 00:25:13,330 --> 00:25:14,950 en truuks oor hoe om dit te doen. 450 00:25:14,950 --> 00:25:18,432 >> GEHOOR: Hoekom kan jy net verdeel dit in die middel soos wat? 451 00:25:18,432 --> 00:25:21,390 Net soos, OK, ek is maar net gaan omgee oor hierdie eerste [onhoorbaar]? 452 00:25:21,390 --> 00:25:24,240 >> PROFESSOR: Want dit is eintlik die manier heksadesimale waardes verteenwoordig. 453 00:25:24,240 --> 00:25:26,890 0X, wat eintlik beteken niks anders as wat jy vertel 454 00:25:26,890 --> 00:25:28,710 dat dit 'n heksadesimale getal. 455 00:25:28,710 --> 00:25:31,580 En dit altyd verteenwoordig die eerste vier syfers. 456 00:25:31,580 --> 00:25:34,330 En dit altyd verteenwoordig die laaste vier syfers. 457 00:25:34,330 --> 00:25:37,835 En so hierdie twee syfers net ooreenstem met verskillende stukkies. 458 00:25:37,835 --> 00:25:39,200 >> GEHOOR: So sal ons always-- 459 00:25:39,200 --> 00:25:41,830 >> PROFESSOR: Jy is altyd gaan agt waarde stukkies kry. 460 00:25:41,830 --> 00:25:44,580 >> GEHOOR: Is dit net soos 'n ding hier is of dat 'n ding oor? 461 00:25:44,580 --> 00:25:46,883 PROFESSOR: Dit is net 'n ding in rekenaars, yep. 462 00:25:46,883 --> 00:25:47,424 GEHOOR: OK. 463 00:25:47,424 --> 00:25:48,240 Awesome. 464 00:25:48,240 --> 00:25:51,290 >> PROFESSOR: Ook, so in hierdie voorbeeld ons omgeskakel van binêre te desimaal, 465 00:25:51,290 --> 00:25:53,290 en van binêre na heksadesimaal. 466 00:25:53,290 --> 00:25:56,610 Julle wil ook seker maak dat jy oefen gaan die ander manier om. 467 00:25:56,610 --> 00:26:03,370 So as ek 0XFF het julle, jy kan teken dat in binêre, reg? 468 00:26:03,370 --> 00:26:06,820 >> Jy sit F in binêre, Dit is een, een, een, een, 469 00:26:06,820 --> 00:26:09,380 omskep F binêre, wat is een, een, een, een. 470 00:26:09,380 --> 00:26:11,310 >> So kan ons jou vra om te doen die ander manier om. 471 00:26:11,310 --> 00:26:14,817 So desimaal binêre of heksadesimale binêre. 472 00:26:14,817 --> 00:26:16,650 So wat jy wil maak seker dat jy weet beide maniere. 473 00:26:16,650 --> 00:26:19,371 Ons sal u waarskynlik vra kombinasie van die twee. 474 00:26:19,371 --> 00:26:20,660 >> Ja, jy het 'n vraag? 475 00:26:20,660 --> 00:26:22,724 Ek kan see-- jy goed? 476 00:26:22,724 --> 00:26:23,348 GEHOOR: Ja. 477 00:26:23,348 --> 00:26:24,560 PROFESSOR: OK. 478 00:26:24,560 --> 00:26:26,101 Is ek goed om hierdie vee? 479 00:26:26,101 --> 00:26:26,600 Groot. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> Alle reg, sodat antwoorde is hier as iemand nuuskierig later en deurmekaar raak. 482 00:26:40,437 --> 00:26:41,844 OK. 483 00:26:41,844 --> 00:26:46,070 >> GEHOOR: Maak dit saak as ons ons briewe in Capitol of klein? 484 00:26:46,070 --> 00:26:50,360 >> PROFESSOR: Dit maak nie, want in heksadesimaal, deur konvensie, 485 00:26:50,360 --> 00:26:52,840 al die karakters hoofletters. 486 00:26:52,840 --> 00:26:54,650 So 'n deur F is gaan hoofletters wees. 487 00:26:54,650 --> 00:26:58,660 As jy 'n klein a, weet ek nie as ons noodwendig sou merk dit verkeerd. 488 00:26:58,660 --> 00:27:00,679 Maar teoreties, dit is nie tegnies 489 00:27:00,679 --> 00:27:01,970 hoe jy veronderstel is om dit te hê. 490 00:27:01,970 --> 00:27:03,303 Sodat hulle almal moet hoofletters. 491 00:27:03,303 --> 00:27:05,910 Ja, goeie vraag. 492 00:27:05,910 --> 00:27:07,780 >> OK. 493 00:27:07,780 --> 00:27:08,790 Tweede vraag. 494 00:27:08,790 --> 00:27:12,750 Oorweeg hier hierdie pragtige program. 495 00:27:12,750 --> 00:27:15,180 Ek sal die vraag te vra, Ek sal terug kom hierdie. 496 00:27:15,180 --> 00:27:23,170 >> So, in die eerste plek, wat is binnekant van standaard io.h dit is van belang vir die program? 497 00:27:23,170 --> 00:27:26,640 Tweedens, wat leemte doen dui in lyn drie? 498 00:27:26,640 --> 00:27:30,572 En die derde, wat beteken die terugkeer van nul hoof, as reël ses algemeen dui? 499 00:27:30,572 --> 00:27:33,280 As jy ouens wil die skryf af, want ek het om terug te skakel 500 00:27:33,280 --> 00:27:36,810 om die skyfie net sodat jy kan sien code. 501 00:27:36,810 --> 00:27:40,400 Dit is 'n voorbeeld van, soos, miskien 'n hoër vlak vraag waar ons vra 502 00:27:40,400 --> 00:27:42,435 wat dinge beteken in 'n program. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Almal vir my goed om gaan terug na die slide? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 OK, cool. 507 00:27:54,361 --> 00:27:57,610 So sal ek julle ouens soos miskien drie gee minute om te kyk na hierdie een ware vinnig. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, so hierdie een is soos redelik maklik, konseptueel. 510 00:28:44,140 --> 00:28:49,280 Is daar iemand wat my wil vertel wat is eerste binnekant deur hash insluitend 511 00:28:49,280 --> 00:28:52,630 ons standaard io.h biblioteek lêer? 512 00:28:52,630 --> 00:28:55,510 Hoekom doen ons dit nodig biblioteek ingesluit vir hierdie program? 513 00:28:55,510 --> 00:28:56,930 Wat hier moet ons dit? 514 00:28:56,930 --> 00:28:56,980 >> Ja? 515 00:28:56,980 --> 00:28:58,340 >> GEHOOR: Is dat wanneer jy sit dit printf? 516 00:28:58,340 --> 00:28:59,131 >> PROFESSOR: Presies. 517 00:28:59,131 --> 00:29:01,780 So printf, enige tyd wat jy neem 'n toevoer van die gebruiker 518 00:29:01,780 --> 00:29:04,140 en druk iets na die skerm, dit is 519 00:29:04,140 --> 00:29:05,600 die standaard insette, uitset biblioteek. 520 00:29:05,600 --> 00:29:07,170 Dink aan dit wat insette way--, uitset. 521 00:29:07,170 --> 00:29:08,430 >> Moet ek 'n uitset? 522 00:29:08,430 --> 00:29:09,207 Ja ek doen. 523 00:29:09,207 --> 00:29:12,040 So ek weet dat ek altyd gaan moet die standaardiseer i.o biblioteek. 524 00:29:12,040 --> 00:29:16,400 >> So is die funksie printf waardeur ons moet toegang 525 00:29:16,400 --> 00:29:19,370 en sluit in die hashtag standaard i.o biblioteek. 526 00:29:19,370 --> 00:29:20,280 OK. 527 00:29:20,280 --> 00:29:22,660 >> Tweedens, is dit wat beteken leemte dui? 528 00:29:22,660 --> 00:29:26,970 Ons het die int main (void), wat beteken nietig hier beteken hier op die lyn drie? 529 00:29:26,970 --> 00:29:28,080 Ja, in die rug. 530 00:29:28,080 --> 00:29:29,020 >> GEHOOR: [onhoorbaar] 531 00:29:29,020 --> 00:29:29,920 >> PROFESSOR: Presies. 532 00:29:29,920 --> 00:29:33,320 So onthou, ons geleer het begin met ons pset 533 00:29:33,320 --> 00:29:35,360 wat jy kan eintlik spesifiseer command line 534 00:29:35,360 --> 00:29:39,010 argumente wat jou program, wat jou hooffunksie, neem as u, die gebruiker, 535 00:29:39,010 --> 00:29:39,650 noem dit. 536 00:29:39,650 --> 00:29:42,650 As ons leemte, wat beteken dat jy kon net direk hardloop die program 537 00:29:42,650 --> 00:29:44,680 sonder enige command line argumente. 538 00:29:44,680 --> 00:29:46,160 Almal duidelik dat? 539 00:29:46,160 --> 00:29:46,660 OK. 540 00:29:46,660 --> 00:29:52,850 >> En laastens hoekom ons pla doen hierdie opgawe nul ding hier? 541 00:29:52,850 --> 00:29:54,740 Hoekom het ons selfs 'n int main? 542 00:29:54,740 --> 00:29:57,330 Hoekom kan ons nie net leemte belangrikste leemte? 543 00:29:57,330 --> 00:29:59,216 Ja? 544 00:29:59,216 --> 00:30:01,590 GEHOOR: Net sodat ons kan seker wees dat die program is 545 00:30:01,590 --> 00:30:04,247 suksesvol verlaat, as gekant teen indien dit getel. 546 00:30:04,247 --> 00:30:06,580 En ons sal weet dat dit is 'n ander soort van die dwaling. 547 00:30:06,580 --> 00:30:07,621 >> PROFESSOR: Ja, presies. 548 00:30:07,621 --> 00:30:10,670 Dit is net 'n baie konvensionele ding wat ons doen, 549 00:30:10,670 --> 00:30:13,840 is wat net aan die einde van jou program, net om seker te maak 550 00:30:13,840 --> 00:30:15,830 dat jou belangrikste funksie korrek hardloop, 551 00:30:15,830 --> 00:30:17,940 Ons wil altyd terugkeer nul doen. 552 00:30:17,940 --> 00:30:21,160 Selfs al is ons noodwendig nie sien nêrens dat gedruk word. 553 00:30:21,160 --> 00:30:25,092 >> Want soos programmeerders, jy weet, as jy het baie verskillende reëls van die kode 554 00:30:25,092 --> 00:30:27,050 en jy weet nie waar hierdie is verkeerd gaan, 555 00:30:27,050 --> 00:30:30,240 en as 'n fout gebeur jy wil maak seker dat jy die fout kry. 556 00:30:30,240 --> 00:30:33,240 En so tipies as iets gaan verkeerde ons sal 'n opbrengs van net een 557 00:30:33,240 --> 00:30:34,669 om seker te maak ons ​​weet dat dit is. 558 00:30:34,669 --> 00:30:36,460 So as jy sien 'n opbrengs nul, wat tipies 559 00:30:36,460 --> 00:30:38,293 beteken dat jou program is suksesvol uitgevoer. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Goed? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Koel. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, tweede program hier. 566 00:30:52,680 --> 00:30:54,827 Oorweeg dit. 567 00:30:54,827 --> 00:30:56,910 En as jy sien 'n ouens dryf, kan jy ouens waarskynlik 568 00:30:56,910 --> 00:31:00,810 het 'n goeie idee van wat Ek is op die punt om jou te vra. 569 00:31:00,810 --> 00:31:05,200 >> En wanneer hierdie program voer, soos jy kan sien, 570 00:31:05,200 --> 00:31:09,330 Ek verklaar 'n float in my hoof funksie. 571 00:31:09,330 --> 00:31:13,470 Ek noem dit "antwoord," en ek is die opstel wat gelyk is aan een gedeel deur 10. 572 00:31:13,470 --> 00:31:17,860 Ek is uit te druk, een desimale plek, sodat float. 573 00:31:17,860 --> 00:31:19,880 En dan is ek terug nul. 574 00:31:19,880 --> 00:31:24,470 >> So wanneer die uitvoering van die program, dink nou terug na gulsig, 575 00:31:24,470 --> 00:31:26,550 hierdie program druk 0,0. 576 00:31:26,550 --> 00:31:29,993 Soos ons almal weet, hopelik ons ​​almal weet, een gedeel deur 10 is nie 'n 0,00, 577 00:31:29,993 --> 00:31:32,350 dit is 0,1. 578 00:31:32,350 --> 00:31:37,810 Maar verduidelik waarom hierdie program dink wat 1 gedeel deur 10 afdrukke tot 0,1 ander 579 00:31:37,810 --> 00:31:39,504 as 0,1? 580 00:31:39,504 --> 00:31:42,545 Ek sal julle miskien gee soos 30 sekondes om net vinnig dink oor wat 581 00:31:42,545 --> 00:31:43,878 en ek sal terug na die program gaan. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OK. 584 00:32:20,290 --> 00:32:22,205 Iemand wil hê om dit te gee 'n skoot? 585 00:32:22,205 --> 00:32:24,330 In drie sinne of minder, want ons is tipies 586 00:32:24,330 --> 00:32:27,650 gaan al die antwoorde beperk tot drie sinne of minder 587 00:32:27,650 --> 00:32:31,130 sodat jy nie net spoeg ewekansige dinge op jou quiz. 588 00:32:31,130 --> 00:32:32,740 >> Ja, neem 'n skoot. 589 00:32:32,740 --> 00:32:36,390 >> GEHOOR: So ek dink daar is hierdie ding genaamd, soos, [onhoorbaar] 590 00:32:36,390 --> 00:32:42,320 So is daar ook mag wees, byvoorbeeld, daar kan wees, soos, 0,09, 591 00:32:42,320 --> 00:32:47,250 dat waar jy druk die eerste syfer, sal dit wees om 0,0? 592 00:32:47,250 --> 00:32:49,100 >> PROFESSOR: Close, nie heeltemal. 593 00:32:49,100 --> 00:32:49,810 Christabell? 594 00:32:49,810 --> 00:32:51,770 >> GEHOOR: Jy verdeel een en 10, en hulle is albei heelgetalle. 595 00:32:51,770 --> 00:32:54,610 En so het die manier waarop dit gaan te slaan is dit as 'n heelgetal. 596 00:32:54,610 --> 00:32:56,480 En so het die naaste heelgetal wees 0.0. 597 00:32:56,480 --> 00:32:57,471 En so dit is 0,1. 598 00:32:57,471 --> 00:32:58,970 PROFESSOR: Ja, dit is regtig 'n goeie. 599 00:32:58,970 --> 00:33:00,040 Dit is die regte antwoord. 600 00:33:00,040 --> 00:33:03,597 So, dit is 'n baie verwarrende konsep vir 'n baie van die kinders. 601 00:33:03,597 --> 00:33:06,680 En ek wil regtig om seker te maak dat die dit versterk in almal se kop. 602 00:33:06,680 --> 00:33:10,090 >> So wat ons noem swaai punt onakkuraatheid, 603 00:33:10,090 --> 00:33:12,800 waar die rede waarom 'n baie van jou programme in gulsige 604 00:33:12,800 --> 00:33:17,010 aanvanklik nie werk was omdat jy vergeet om jou veranderlike te gooi. 605 00:33:17,010 --> 00:33:19,370 So, wat sê Christabell was heeltemal korrek. 606 00:33:19,370 --> 00:33:21,990 >> A float inherent vaag. 607 00:33:21,990 --> 00:33:26,400 Want in 'n rekenaar, reg, ons het 'n eindige hoeveelheid stukkies geheue 608 00:33:26,400 --> 00:33:28,480 ons kan gebruik om getalle voor te stel. 609 00:33:28,480 --> 00:33:33,480 So, byvoorbeeld, hierdie CS50 ID is-- Ek dink dit is 'n 64-bit rekenaar. 610 00:33:33,480 --> 00:33:37,520 >> A float kan slegs verteenwoordig deur 'n eindige hoeveelheid van daardie stukkies. 611 00:33:37,520 --> 00:33:42,260 En so 0,1 met 'n oneindige nulle, wat was 0,1 is, reg? 612 00:33:42,260 --> 00:33:45,450 Maar ons kan nie eintlik stoor dat die getal in ons rekenaar. 613 00:33:45,450 --> 00:33:47,810 Ons het net nie genoeg geheue om dit te doen. 614 00:33:47,810 --> 00:33:52,340 >> En so die naaste aanpassing van wat in die geheue gestoor is eintlik 615 00:33:52,340 --> 00:33:55,390 iets soos 0,000 iets iets, iets wat iets. 616 00:33:55,390 --> 00:34:01,240 Wat, sodra jy afgestomp dit rondes tot 0,0. 617 00:34:01,240 --> 00:34:05,640 >> En so hierdie voorbeeld is net een wat toon baie van die kwessies 618 00:34:05,640 --> 00:34:08,469 ons het wanneer ons probeer om wiskunde verkeerd doen 619 00:34:08,469 --> 00:34:11,000 sonder beslissende as 'n ander heelgetal. 620 00:34:11,000 --> 00:34:14,870 So wees net versigtig vir hierdie gebeurtenis. 621 00:34:14,870 --> 00:34:18,239 >> Op vasvrae, as ons gee jou 'n blok van die kode en dit is soos, 622 00:34:18,239 --> 00:34:19,510 wat druk aan die einde? 623 00:34:19,510 --> 00:34:24,096 En as dit is 'n paar random waarde wat jy ouens moet weet waarom dit gebeur. 624 00:34:24,096 --> 00:34:24,909 Ja? 625 00:34:24,909 --> 00:34:27,926 >> GEHOOR: Truncatie is ontslae te raak van alles na 'n sekere punt? 626 00:34:27,926 --> 00:34:28,513 [Onhoorbaar] 627 00:34:28,513 --> 00:34:30,929 PROFESSOR: Ja, so eintlik dit is 'n baie slegte voorbeeld, 628 00:34:30,929 --> 00:34:37,870 omdat 0,100 alles eintlik sou down afgestomp tot 0,1. 629 00:34:37,870 --> 00:34:41,389 Maar as jy was om te it-- hardloop ek doen nie onthou, want verlede jaar het hulle 630 00:34:41,389 --> 00:34:42,830 hardloop dit op 'n ander program. 631 00:34:42,830 --> 00:34:45,300 Hulle hardloop in iets genoem die CS50 Appliance, wat 632 00:34:45,300 --> 00:34:46,389 verskil van die ID. 633 00:34:46,389 --> 00:34:48,520 Dit was 'n 32-bis-stelsel, dink ek. 634 00:34:48,520 --> 00:34:50,290 En so was daar verskillende getalle. 635 00:34:50,290 --> 00:34:53,330 >> Maar in wese is, weet net dat Die hele konsep van afkapping 636 00:34:53,330 --> 00:34:54,815 en hoe dit net sny dinge af. 637 00:34:54,815 --> 00:34:55,690 En so is dit rounds-- 638 00:34:55,690 --> 00:34:56,300 >> GEHOOR: Sonder afronding. 639 00:34:56,300 --> 00:34:57,370 >> PROFESSOR: Presies. 640 00:34:57,370 --> 00:34:57,870 Ja. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Koel. 643 00:35:04,380 --> 00:35:05,250 >> Hi, in die rug. 644 00:35:05,250 --> 00:35:07,634 Ons is maar net gaan oor 'n paar quiz review vrae. 645 00:35:07,634 --> 00:35:08,430 >> Alles reg. 646 00:35:08,430 --> 00:35:10,150 So oorweeg om hier 'n ander program. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Ek gaan julle ouens gee paar minute om te lees oor hierdie. 649 00:35:15,380 --> 00:35:18,588 Dit is iets wat was vir 'n baie onlangs dat ek dink blaas 'n klomp van julle 650 00:35:18,588 --> 00:35:19,142 ouens se gedagtes. 651 00:35:19,142 --> 00:35:21,100 Maar ons gaan om te praat deur hierdie weer net 652 00:35:21,100 --> 00:35:24,152 om seker te maak jy verstaan ​​heeltemal. 653 00:35:24,152 --> 00:35:24,652 OK. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OK. 656 00:35:41,780 --> 00:35:44,342 Enigiemand meer tyd nodig Lees hierdie kode? 657 00:35:44,342 --> 00:35:45,650 OK. 658 00:35:45,650 --> 00:35:50,630 >> So lyk dit vir my dat in hierdie program Ek is 659 00:35:50,630 --> 00:35:53,460 skep twee stringe deur die gebruik van GetString. 660 00:35:53,460 --> 00:35:55,180 Een wat geroep is en een wat geroep is t. 661 00:35:55,180 --> 00:35:58,680 En as hulle gelyke gelyk aan mekaar, 662 00:35:58,680 --> 00:36:00,880 dit moet "Jy druk Tik die dieselfde ding. " 663 00:36:00,880 --> 00:36:04,170 >> Maar elsewise, sou dit U druk, " getik verskillende dinge, "reg? 664 00:36:04,170 --> 00:36:05,990 Lyk baie, baie eenvoudig. 665 00:36:05,990 --> 00:36:08,720 Maar, maar indien ek eintlik probeer om hierdie program te skryf, 666 00:36:08,720 --> 00:36:12,230 blyk dit dat selfs wanneer ek insette van die presiese dieselfde snare, 667 00:36:12,230 --> 00:36:15,490 dit nog steeds druk uit, "Jy getik verskillende dinge! " 668 00:36:15,490 --> 00:36:18,020 Is daar iemand wat wil 'n te neem skoot na die rede waarom hierdie program altyd 669 00:36:18,020 --> 00:36:20,370 reageer dat die insette is anders, selfs 670 00:36:20,370 --> 00:36:22,090 Toe hulle die woorde self is dieselfde? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> So as ek David liefde input-- om 'n voorbeeld te gebruik, soos ma, reg? 673 00:36:29,170 --> 00:36:37,890 Kleinletters M-O-M vir S, T gelyk klein M-O-M. 674 00:36:37,890 --> 00:36:40,340 As ek gehardloop dit deur daardie kode, waarom sou dit 675 00:36:40,340 --> 00:36:44,180 druk "jy verskillende dinge getik?" 676 00:36:44,180 --> 00:36:46,336 >> Is daar iemand wat meer nodig tyd om te dink oor hierdie? 677 00:36:46,336 --> 00:36:47,294 OK, ek dink ons ​​is goed. 678 00:36:47,294 --> 00:36:48,716 Ja? 679 00:36:48,716 --> 00:36:53,930 >> GEHOOR: OK, so dit is iets oor waar dit in die geheue gestoor is, reg? 680 00:36:53,930 --> 00:36:54,890 >> PROFESSOR: Yep. 681 00:36:54,890 --> 00:37:00,400 >> GEHOOR: Waar dit is soos, indien dit string s gestoor op geheue spot-- 682 00:37:00,400 --> 00:37:01,689 Ek uitvind this-- is nul. 683 00:37:01,689 --> 00:37:02,355 PROFESSOR: Natuurlik. 684 00:37:02,355 --> 00:37:05,290 GEHOOR: En string t gestoor op geheue plek, 685 00:37:05,290 --> 00:37:11,000 soos, 167, en dan zero nie gelyk 167. 686 00:37:11,000 --> 00:37:12,610 >> PROFESSOR: Presies. 687 00:37:12,610 --> 00:37:18,350 OK, so onthou hierdie ongelooflike openbaring wat ons aan u verduidelik ouens 688 00:37:18,350 --> 00:37:21,530 die afgelope week, wat snare nie regtig bestaan ​​nie? 689 00:37:21,530 --> 00:37:25,380 Wanneer ons iets te skep genoem string ons, in werklikheid, 690 00:37:25,380 --> 00:37:29,330 skep iets genoem char ster. 691 00:37:29,330 --> 00:37:34,470 Wat al is dit is 'n verwysing na 'n tou of 'n skikking van karakters. 692 00:37:34,470 --> 00:37:39,480 >> En so in hierdie voorbeeld, as ek was om insette M-O-M die pad 693 00:37:39,480 --> 00:37:49,350 dat my rekenaar sou stoor dit binne geheue backslash nul, reg? 694 00:37:49,350 --> 00:37:53,180 Die vier karakters, karakters, sou iewers gestoor word. 695 00:37:53,180 --> 00:37:59,290 >> En dan hierdie vier karakters, backslash nul, 696 00:37:59,290 --> 00:38:01,275 is iewers anders gestoor word, reg? 697 00:38:01,275 --> 00:38:04,685 Ek het geen idee waar die adresse is, hulle is iewers in my rekenaar. 698 00:38:04,685 --> 00:38:07,080 Maar ek weet nie presies waar hulle is. 699 00:38:07,080 --> 00:38:10,170 >> Wanneer ek 'n string s, almal wat werklik is 700 00:38:10,170 --> 00:38:15,550 is 'n verwysing na die begin van hierdie string. 701 00:38:15,550 --> 00:38:21,130 En toe ek die skep van hierdie t waarde alles wat 'n wyser na hier. 702 00:38:21,130 --> 00:38:23,980 En so wanneer jy probeer om gelyk en kyk 703 00:38:23,980 --> 00:38:27,710 om te sien of s is gelykes gelyk aan T, die rekenaar 704 00:38:27,710 --> 00:38:31,635 is regtig net terug te keer na jy die adres van hierdie m 705 00:38:31,635 --> 00:38:33,390 en die adres van die m. 706 00:38:33,390 --> 00:38:36,230 En omdat hulle twee afsonderlike stukke data 707 00:38:36,230 --> 00:38:38,750 wat gestoor word in twee verskillende adresse in jou rekenaar, 708 00:38:38,750 --> 00:38:41,750 jou rekenaar gaan nooit hulle erken as die dieselfde. 709 00:38:41,750 --> 00:38:43,500 Is daar iemand wat wil gee 'n skoot op wat ons 710 00:38:43,500 --> 00:38:46,900 sou hê om te doen as ons wou regstel hierdie en 'n korrekte bestuur program 711 00:38:46,900 --> 00:38:49,360 plaas? 712 00:38:49,360 --> 00:38:52,070 Dink oor wat vir 'n paar sekondes. 713 00:38:52,070 --> 00:38:54,929 Wat het ons nodig om te verander na kry hierdie program funksionering 714 00:38:54,929 --> 00:38:56,220 die manier waarop ons dit wil hê om te funksioneer? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Ja, wil 'n steek te neem na dit? 717 00:39:18,918 --> 00:39:24,082 >> GEHOOR: Kan ons probeer om die dereference wyser en kyk deur die skikking? 718 00:39:24,082 --> 00:39:25,540 PROFESSOR: Dit is een manier om dit te doen. 719 00:39:25,540 --> 00:39:27,880 So, wat is weer jou naam? 720 00:39:27,880 --> 00:39:29,010 Ek is jammer, herinner my. 721 00:39:29,010 --> 00:39:29,589 >> Zee: See. 722 00:39:29,589 --> 00:39:32,130 PROFESSOR: Ja, so wat Zee voorgestel sou absoluut werk. 723 00:39:32,130 --> 00:39:32,629 Reg? 724 00:39:32,629 --> 00:39:35,730 Ons kon dereference die wyser en eintlik gaan en toegang 725 00:39:35,730 --> 00:39:38,460 die fisiese data binnekant van hier. 726 00:39:38,460 --> 00:39:40,300 En ons kan net vergelyk die hele skerm. 727 00:39:40,300 --> 00:39:43,670 >> Ons kan sê, OK, pointer, gee my wat binne hier. 728 00:39:43,670 --> 00:39:44,960 Dit sou 'n m terugkeer. 729 00:39:44,960 --> 00:39:47,168 En ek sou sê, pointer, gee my wat binne hier. 730 00:39:47,168 --> 00:39:47,750 Terugkeer 'n m. 731 00:39:47,750 --> 00:39:48,410 Moenie dié wedstryd? 732 00:39:48,410 --> 00:39:49,410 Ja. 733 00:39:49,410 --> 00:39:50,340 Dan beweeg ons op. 734 00:39:50,340 --> 00:39:54,240 >> Ons hou die nagaan van die hele twee snare al die pad tot aan die einde 735 00:39:54,240 --> 00:39:56,635 en kyk of dit is gelyk, As al die waardes is gelyk. 736 00:39:56,635 --> 00:39:59,680 En as al die waardes is gelyk, dan weet ons die snare is waar. 737 00:39:59,680 --> 00:40:01,600 Absoluut, dit is hoe ons dit sou doen? 738 00:40:01,600 --> 00:40:03,930 >> Is daar iemand verwar oor enige van hierdie? 739 00:40:03,930 --> 00:40:06,970 Die hele konsep van hoe snare is regtig net wysers, 740 00:40:06,970 --> 00:40:08,440 en hoe hulle nie regtig bestaan ​​nie? 741 00:40:08,440 --> 00:40:10,480 En hoekom kry ons foute soos die manier waarop ons dit kry? 742 00:40:10,480 --> 00:40:15,070 Want ek waarborg julle, wysers en string toekenning en geheue 743 00:40:15,070 --> 00:40:16,470 gaan om te kom. 744 00:40:16,470 --> 00:40:17,410 >> Ja? 745 00:40:17,410 --> 00:40:21,072 >> GEHOOR: [onhoorbaar] dereference dit wat jy net sit 'n ster [onhoorbaar] 746 00:40:21,072 --> 00:40:21,780 PROFESSOR: Right. 747 00:40:21,780 --> 00:40:28,430 So om 'n wyser middel derererence om te gaan na die adres van die wyser 748 00:40:28,430 --> 00:40:30,390 en daar kry die data, die waarde. 749 00:40:30,390 --> 00:40:32,700 En die manier om dit te doen, is ster wyser. 750 00:40:32,700 --> 00:40:34,262 Moenie verwar nie. 751 00:40:34,262 --> 00:40:35,186 >> GEHOOR: [onhoorbaar]. 752 00:40:35,186 --> 00:40:35,852 >> PROFESSOR: Ja. 753 00:40:35,852 --> 00:40:39,750 GEHOOR: So jy kan net skryf As ster is gelyk gelykes star t. 754 00:40:39,750 --> 00:40:40,630 >> PROFESSOR: Wel, nee. 755 00:40:40,630 --> 00:40:40,960 Geen. 756 00:40:40,960 --> 00:40:41,640 >> GEHOOR: Dit is nie goed genoeg nie, reg? 757 00:40:41,640 --> 00:40:43,760 >> PROFESSOR: Dit is nie, omdat jy net die beheer van die eerste brief. 758 00:40:43,760 --> 00:40:46,010 Jy is waarskynlik gaan om te moet 'n soort van 'n lus wat 759 00:40:46,010 --> 00:40:49,055 iterate deur elke enkele karakter in beide snare. 760 00:40:49,055 --> 00:40:49,837 Ja. 761 00:40:49,837 --> 00:40:52,920 So as jy wou net kyk om te sien as hulle begin met die dieselfde ding, 762 00:40:52,920 --> 00:40:58,220 wat jy kan doen as, ster s is gelyk aan star t. 763 00:40:58,220 --> 00:41:01,300 Dan weet jy dat hulle minstens begin met dieselfde karakter. 764 00:41:01,300 --> 00:41:01,952 >> Ja? 765 00:41:01,952 --> 00:41:04,056 >> GEHOOR: So het die manier jy sal dit nie wees 766 00:41:04,056 --> 00:41:06,064 soos 'n ingeboude lus of wyser? 767 00:41:06,064 --> 00:41:06,730 PROFESSOR: Ja. 768 00:41:06,730 --> 00:41:08,170 Pretty much net 'n lus. 769 00:41:08,170 --> 00:41:12,430 Onthou, David in die klas genoem die vrye sintaktiese suiker? 770 00:41:12,430 --> 00:41:17,690 En hy het hierdie baie verwarrend ding ster t 771 00:41:17,690 --> 00:41:22,030 plus een, waar dit sal integreer deur en dit die wyser beweeg? 772 00:41:22,030 --> 00:41:29,910 Die makliker manier van doen dit is net t i. 773 00:41:29,910 --> 00:41:31,090 >> So dit is net 'n skikking. 774 00:41:31,090 --> 00:41:34,630 Die manier waarop jy 'n aspirant vir lus wat het van nul tot i, waar 775 00:41:34,630 --> 00:41:36,580 i is die lengte van die string, kan jy net 776 00:41:36,580 --> 00:41:39,510 skryf dat in plaas van die doen van die geheel pointer, verwysing ding. 777 00:41:39,510 --> 00:41:43,510 So hierdie dinge is presies ekwivalent in jou rekenaar. 778 00:41:43,510 --> 00:41:45,905 >> Julle sal waarskynlik nie nodig om te weet dat, 779 00:41:45,905 --> 00:41:48,280 maar dit is goed om te net soort van het in die rug jou gees. 780 00:41:48,280 --> 00:41:52,630 Weet net dat die rekenaar erken verskillende blokke van die kode 781 00:41:52,630 --> 00:41:53,890 as die dieselfde ding. 782 00:41:53,890 --> 00:41:57,510 Want dit is net baie meer gebruikers vriendelike vir ons om dit aan te bied soos dit is 783 00:41:57,510 --> 00:41:58,150 'n skikking. 784 00:41:58,150 --> 00:42:00,990 Dis net makliker. 785 00:42:00,990 --> 00:42:02,719 >> GEHOOR: So gebruik StrLen te wil, get-- 786 00:42:02,719 --> 00:42:03,385 PROFESSOR: Ja. 787 00:42:03,385 --> 00:42:03,926 GEHOOR: OK. 788 00:42:03,926 --> 00:42:05,940 PROFESSOR: Jy kan StrLen gebruik, of as jy 789 00:42:05,940 --> 00:42:10,420 het nie StrLen jy net kan doen up totdat jy getref backslash nul vir beide. 790 00:42:10,420 --> 00:42:11,568 Óf sou werk. 791 00:42:11,568 --> 00:42:12,068 Ja. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 GEHOOR: So dit is om elke dereference enkele karakter as ons eintlik was 794 00:42:17,996 --> 00:42:21,044 skryf van hierdie kode, ons kon net nie t hakies i 795 00:42:21,044 --> 00:42:22,460 hou met die ster in die voorkant van dit? 796 00:42:22,460 --> 00:42:27,700 >> PROFESSOR: Ja, gelyk gelykes s bracket i, en dan bly beweeg i 797 00:42:27,700 --> 00:42:29,790 down totdat jy die einde getref. 798 00:42:29,790 --> 00:42:31,286 Ja, dit is wat jy wil doen. 799 00:42:31,286 --> 00:42:33,660 En ek sal eintlik 'n volgende voorbeeld van wanneer ons eintlik 800 00:42:33,660 --> 00:42:36,740 skryf StrLen so julle ouens sal soort te kry om te speel met dit 'n bietjie. 801 00:42:36,740 --> 00:42:43,567 >> So is elkeen duidelik net die geheue, snare, wysers, kwaliteit adresse? 802 00:42:43,567 --> 00:42:46,650 Sommige hoër vlak konsepte wat jy wil vir seker nodig om te weet oor die quiz 803 00:42:46,650 --> 00:42:48,928 môre. 804 00:42:48,928 --> 00:42:49,904 >> Alles reg. 805 00:42:49,904 --> 00:42:50,404 Goed. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Yep. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, so een ding wat ons sal ook vra jy, soos ons elke jaar doen op 'n quiz, is, 810 00:43:04,180 --> 00:43:08,340 veronderstel dat jy vergeet het (wat ons lyk om te vergeet om jaarliks ​​te doen) 811 00:43:08,340 --> 00:43:10,810 waarin kop lêer StrLen verklaar. 812 00:43:10,810 --> 00:43:13,860 En so het ons dit self te herskryf. 813 00:43:13,860 --> 00:43:16,350 >> Hier is 'n lys van riglyne dat ons u kan aanbied 814 00:43:16,350 --> 00:43:20,660 ouens waar jy om te aanvaar dat s die string sal nie null. 815 00:43:20,660 --> 00:43:23,830 Jy kan aanvaar dat s sal wees beëindig met 'n backslash nul. 816 00:43:23,830 --> 00:43:26,670 So jy weet dit is wat dit gaan eindig met. 817 00:43:26,670 --> 00:43:29,500 >> En, byvoorbeeld, dat die lengte van hallo sou wees vyf. 818 00:43:29,500 --> 00:43:32,890 So kan jy die hallo aanvaar sal vyf, H-E-L-L-O wees. 819 00:43:32,890 --> 00:43:35,890 Jy hoef nie om aan te neem dat die agterkant nul rekeninge vir die lengte. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> Die laaste ding hier, nie bekommer oor heelgetal oorloop. 822 00:43:42,300 --> 00:43:45,270 Is daar iemand wat onthou wat heelgetal oorloop is? 823 00:43:45,270 --> 00:43:48,041 >> GEHOOR: gaan verder as die lengte van die [onhoorbaar]. 824 00:43:48,041 --> 00:43:50,740 >> PROFESSOR: Ja, kan jy verduidelik 'n bietjie, wat beteken dit? 825 00:43:50,740 --> 00:43:55,330 >> GEHOOR: So, ek dink dit gaan terug die truncating byvoorbeeld vroeër. 826 00:43:55,330 --> 00:43:58,380 Maar as jy net so baie nommers wat verder gaan as die aantal bisse 827 00:43:58,380 --> 00:44:01,409 dat jy eintlik kan toewys dit dat dit net soort van uitroei. 828 00:44:01,409 --> 00:44:04,242 PROFESSOR: Ja, so op 'n tipiese rekenaar, hoeveel stukkies het ons? 829 00:44:04,242 --> 00:44:05,306 GEHOOR: 32? 830 00:44:05,306 --> 00:44:06,430 PROFESSOR: Ja, 32, regs. 831 00:44:06,430 --> 00:44:10,030 En so is dit, wat vier miljard, twee biljoen? 832 00:44:10,030 --> 00:44:13,579 Vier miljard, tot vier miljard positiewe heelgetalle, reg? 833 00:44:13,579 --> 00:44:15,370 Twee miljard negatief, twee biljoen positiewe, 834 00:44:15,370 --> 00:44:16,900 hang af van hoe jy wil om dit te doen. 835 00:44:16,900 --> 00:44:21,470 >> En so basies kan ons ' genoeg heelgetalle wat kan gaan 836 00:44:21,470 --> 00:44:25,800 twee tot die 31 minus 1, reg? 837 00:44:25,800 --> 00:44:27,980 Want as ons het twee om die 32, het ons dit nie doen nie 838 00:44:27,980 --> 00:44:30,040 dat daar nog baie geheue in ons rekenaar. 839 00:44:30,040 --> 00:44:32,310 >> En so, teoreties, ek kon kom met 'n aantal 840 00:44:32,310 --> 00:44:34,560 wat, soos, twee tot die 46ste. 841 00:44:34,560 --> 00:44:38,040 Dit is 'n groot-ass nommer, maar teoreties jy kan. 842 00:44:38,040 --> 00:44:42,730 En so heelgetal oorloop is as jy probeer om skep 'n heelgetal wat verder gaan as wat 843 00:44:42,730 --> 00:44:44,790 jou rekenaar in staat is om van die stoor. 844 00:44:44,790 --> 00:44:46,590 >> En so julle ouens vir hierdie voorbeeld nie 845 00:44:46,590 --> 00:44:51,330 te bekommer oor ons gee jou 'n reuse- string wat twee tot die 32 karakters 846 00:44:51,330 --> 00:44:51,830 lank. 847 00:44:51,830 --> 00:44:54,010 Dit sou werklik beteken. 848 00:44:54,010 --> 00:44:59,430 >> Alle reg, so ek gaan net om te gee julle ouens die basis struktuur van hierdie. 849 00:44:59,430 --> 00:45:02,020 Jy gaan 'n te skep funksie genoem int StrLen waar 850 00:45:02,020 --> 00:45:08,436 'n slaag in 'n kar ster of string, wyser na die string genoem s. 851 00:45:08,436 --> 00:45:10,820 >> Alle reg, almal wat kopieer af. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Koel. 854 00:45:14,850 --> 00:45:17,020 Oops-- ander manier. 855 00:45:17,020 --> 00:45:21,360 >> So dit is soort van soos 'n harder stukkie van die probleem, 856 00:45:21,360 --> 00:45:25,320 so ek sal julle miskien vyf te gee ses minute soort dinkskrum 857 00:45:25,320 --> 00:45:27,478 en skryf hierdie funksie. 858 00:45:27,478 --> 00:45:29,710 >> GEHOOR: Ons doen nie rekening [onhoorbaar], 859 00:45:29,710 --> 00:45:30,200 Ons hoef nie te heelgetal gebruik? 860 00:45:30,200 --> 00:45:31,241 >> PROFESSOR: Nee, jy doen nie. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Ek gee jou 'n wenk ouens. 863 00:48:06,930 --> 00:48:12,325 'N Rukkie lus kan hier baie nuttig wees. 864 00:48:12,325 --> 00:48:12,825 Ja. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Hier is 867 00:48:45,495 --> 00:48:45,995 lekkergoed. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Candy sal ook beskikbaar wees vir die quiz, dink ek. 870 00:48:53,410 --> 00:48:55,315 So julle ouens sal almal versuikerde môre. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Kan I-- jy het dit. 873 00:49:02,962 --> 00:49:03,718 >> GEHOOR: OK. 874 00:49:03,718 --> 00:49:04,384 PROFESSOR: Ja. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Miskien 30 nog sekondes of so. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> Alle reg, as jy nie gedoen nie, geen bekommernisse. 879 00:50:07,340 --> 00:50:08,810 Ons sal saam met hierdie skuif. 880 00:50:08,810 --> 00:50:09,310 OK. 881 00:50:09,310 --> 00:50:13,800 So ek gaan net die uitleg van die basiese struktuur vir hierdie funksie hier. 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 Eerste, nie almal wil vertel my wat dit beteken int? 885 00:50:23,460 --> 00:50:25,160 Ons moet in hierdie funksie. 886 00:50:25,160 --> 00:50:26,709 >> GEHOOR: StrLen [onhoorbaar]. 887 00:50:26,709 --> 00:50:27,500 PROFESSOR: Presies. 888 00:50:27,500 --> 00:50:31,140 So wat gebeur hier, ons nodig het om 'n heelgetal te keer. 889 00:50:31,140 --> 00:50:36,367 En soos uiteengesit in die spec, wil ons return-- 890 00:50:36,367 --> 00:50:37,700 Gaan vir dit ouens, hou net gaan. 891 00:50:37,700 --> 00:50:40,480 Dit is alles goed. 892 00:50:40,480 --> 00:50:42,960 Eet dit alles so ek het nie ' om dit terug te neem, eintlik. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Die int net beteken dat jy gaan terugkeer 'n heelgetal. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Wat is dit char star s? 897 00:50:57,106 --> 00:50:58,640 Wat beteken dit? 898 00:50:58,640 --> 00:51:00,879 >> GEHOOR: Soos wat die wese insette in. 899 00:51:00,879 --> 00:51:01,670 PROFESSOR: Presies. 900 00:51:01,670 --> 00:51:04,142 En wat is byna die dieselfde as char ster? 901 00:51:04,142 --> 00:51:04,850 GEHOOR: String? 902 00:51:04,850 --> 00:51:05,641 PROFESSOR: Presies. 903 00:51:05,641 --> 00:51:09,080 So al wat ons doen is om dit 'n verwysing na 'n string. 904 00:51:09,080 --> 00:51:09,580 OK. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Koel. 907 00:51:13,360 --> 00:51:16,650 >> Ook nie vergeet nie, as ons vergeet om jou hierdie hakies gee, 908 00:51:16,650 --> 00:51:18,330 moenie vergeet om dit self te skryf. 909 00:51:18,330 --> 00:51:20,720 Omdat teoreties, die kode is verkeerde as jy vergeet om dit te skryf. 910 00:51:20,720 --> 00:51:21,803 Net altyd aandag. 911 00:51:21,803 --> 00:51:23,750 Soos klein dingetjies wat jy sien nie 912 00:51:23,750 --> 00:51:26,917 wanneer jy programmering op jou laptop, omdat jou laptop doen dit vir jou? 913 00:51:26,917 --> 00:51:28,624 Moenie vergeet toe jy skryf met die hand. 914 00:51:28,624 --> 00:51:29,170 Ja? 915 00:51:29,170 --> 00:51:30,954 >> GEHOOR: Maar hoe verkeerd? 916 00:51:30,954 --> 00:51:33,190 Soos, kry ons die hele probleem verkeerd? 917 00:51:33,190 --> 00:51:34,190 >> PROFESSOR: Nee, nee. 918 00:51:34,190 --> 00:51:34,860 Moenie bekommerd wees nie. 919 00:51:34,860 --> 00:51:39,270 Dit is eintlik teoreties moontlik vir jou om volpunte te kry op 'n vraag 920 00:51:39,270 --> 00:51:41,980 selfs as jou kode sal nooit loop in die werklike lewe. 921 00:51:41,980 --> 00:51:46,052 Ek stel voor jy nie probeer te maak dat gebeur. 922 00:51:46,052 --> 00:51:48,260 Byvoorbeeld, soos as alles dit is hier reg, 923 00:51:48,260 --> 00:51:51,850 maar jy 'n dubbelpunt of 'n bracket vergeet jou kode sal nie eintlik loop. 924 00:51:51,850 --> 00:51:53,740 Maar ons kan genadig wees. 925 00:51:53,740 --> 00:51:54,394 >> Ja? 926 00:51:54,394 --> 00:51:56,050 >> GEHOOR: Moet jy kommentaar te lewer op ons handskrif? 927 00:51:56,050 --> 00:51:57,758 >> PROFESSOR: Nee, nee, nee bekommernisse oor dit. 928 00:51:57,758 --> 00:51:58,440 Geen kommentaar. 929 00:51:58,440 --> 00:51:59,400 Styl moet goed wees. 930 00:51:59,400 --> 00:52:01,470 Soos, nie Smush alles wat op een lyn. 931 00:52:01,470 --> 00:52:04,580 Ons sal nie gelukkig wees met jou as jy dit doen. 932 00:52:04,580 --> 00:52:07,250 >> Is daar iemand wat wil gee my die eerste reël? 933 00:52:07,250 --> 00:52:08,633 Wenk, dit is baie maklik. 934 00:52:08,633 --> 00:52:09,320 >> Ja? 935 00:52:09,320 --> 00:52:11,920 >> GEHOOR: Int, n is gelyk aan nul. 936 00:52:11,920 --> 00:52:13,734 Net die opstel toonbank. 937 00:52:13,734 --> 00:52:15,900 PROFESSOR: So wil ons 'n paar soort van 'n toonbank, reg? 938 00:52:15,900 --> 00:52:19,780 Ek is net gaan om dit te noem "tel" ter wille van leesbaarheid. 939 00:52:19,780 --> 00:52:21,265 Wat wil ons om dit te stel gelyk aan? 940 00:52:21,265 --> 00:52:21,890 >> GEHOOR: Zero. 941 00:52:21,890 --> 00:52:23,840 PROFESSOR: Yep. 942 00:52:23,840 --> 00:52:24,340 Kommapunt. 943 00:52:24,340 --> 00:52:26,250 Dit is ook baie vreemd tekening kommapunte. 944 00:52:26,250 --> 00:52:28,870 Net oefen om dit te doen. 945 00:52:28,870 --> 00:52:31,990 >> So wil ons eers 'n toonbank van die tipe int. 946 00:52:31,990 --> 00:52:35,360 Want ons wil om te tel hoe baie karakters of briewe is 947 00:52:35,360 --> 00:52:36,780 in hierdie string, reg? 948 00:52:36,780 --> 00:52:38,330 Baie maklik eerste stap. 949 00:52:38,330 --> 00:52:42,140 >> OK, miskien 'n bietjie meer kompleks nou, hoe gaan ons dit doen? 950 00:52:42,140 --> 00:52:45,400 Is daar iemand wat wil gee my die reël van die kode 951 00:52:45,400 --> 00:52:48,450 wat in staat kan wees om te help lus deur alles is dit? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Ja, dapper siel in die rug? 954 00:52:56,900 --> 00:53:06,832 >> GEHOOR: OK, so terwyl punt sterretjies, die ja, ster van s, 955 00:53:06,832 --> 00:53:09,465 is nie gelyk aan nul is, dan iets te doen? 956 00:53:09,465 --> 00:53:11,090 PROFESSOR: Dit is baie, baie naby. 957 00:53:11,090 --> 00:53:11,835 Regtig naby. 958 00:53:11,835 --> 00:53:13,710 So ek gaan spreek twee dinge met dit. 959 00:53:13,710 --> 00:53:18,240 Eerste van alles, dit is nie presies nul. 960 00:53:18,240 --> 00:53:20,110 Wat is dit? 961 00:53:20,110 --> 00:53:22,550 Dit is die nul terminator, wat is backslash nul. 962 00:53:22,550 --> 00:53:24,960 So hulle is in verskillende terme van hoe hulle gestoor word. 963 00:53:24,960 --> 00:53:26,270 So jy regtig naby. 964 00:53:26,270 --> 00:53:30,330 >> En tweedens, ons wil nie net die aanwijzer. 965 00:53:30,330 --> 00:53:32,320 Ons wil eintlik toegang tot die waardes, reg? 966 00:53:32,320 --> 00:53:34,050 En so hoe doen ons dit doen? 967 00:53:34,050 --> 00:53:34,550 Baie maklik. 968 00:53:34,550 --> 00:53:36,841 Moenie dink oor wysers, dink nie oor herinneringe. 969 00:53:36,841 --> 00:53:38,525 Gaan terug na week twee van hierdie kursus. 970 00:53:38,525 --> 00:53:39,555 >> GEHOOR: [onhoorbaar]. 971 00:53:39,555 --> 00:53:40,680 PROFESSOR: Soos van, onthou? 972 00:53:40,680 --> 00:53:41,400 Wat is snare? 973 00:53:41,400 --> 00:53:42,650 Hoe word hulle in die geheue gestoor? 974 00:53:42,650 --> 00:53:43,300 >> GEHOOR: Hulle is ingesamel. 975 00:53:43,300 --> 00:53:43,810 >> PROFESSOR: Hulle is ingesamel. 976 00:53:43,810 --> 00:53:45,550 So hoe kan ons toegang elke karakter binne? 977 00:53:45,550 --> 00:53:46,466 >> GEHOOR: [onhoorbaar]. 978 00:53:46,466 --> 00:53:47,530 PROFESSOR: Presies. 979 00:53:47,530 --> 00:53:53,195 So while-- wat gaan binne hier? 980 00:53:53,195 --> 00:53:54,940 S van - 981 00:53:54,940 --> 00:53:55,920 >> GEHOOR: I. 982 00:53:55,920 --> 00:53:58,216 >> PROFESSOR: O, ek bestaan ​​nie, beteken dit? 983 00:53:58,216 --> 00:53:59,620 >> GEHOOR: O, tel? 984 00:53:59,620 --> 00:54:01,640 >> PROFESSOR: Ons kan net gebruik tel, kan ons nie? 985 00:54:01,640 --> 00:54:03,050 >> GEHOOR: Jammer, ek het dit i. 986 00:54:03,050 --> 00:54:04,341 >> PROFESSOR: Ja, dit is alles goed. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Ons het 'n veranderlike hier dis reeds verklaar as ons toonbank. 989 00:54:10,760 --> 00:54:13,650 So hoekom nie ons gebruik net dat om te beweeg deur die while lus? 990 00:54:13,650 --> 00:54:15,230 Maak wat sin maak? 991 00:54:15,230 --> 00:54:20,864 >> Dus, terwyl s van count-- nie almal wil gee my wat gebeur nadat hier? 992 00:54:20,864 --> 00:54:22,030 GEHOOR: Dit is nie gelyk. 993 00:54:22,030 --> 00:54:23,405 PROFESSOR: Is nie gelyk nie, reg? 994 00:54:23,405 --> 00:54:26,200 Dit is die bang gelyk, uitroepteken gelykes, 995 00:54:26,200 --> 00:54:28,500 alles wat jy ouens wil noem dit nie equal-- 996 00:54:28,500 --> 00:54:29,496 >> GEHOOR: [onhoorbaar]. 997 00:54:29,496 --> 00:54:30,990 >> PROFESSOR: Ja. 998 00:54:30,990 --> 00:54:37,110 Onthou enkele aanhaling is vir 'n kar, dubbel aanhalings is vir 'n string. 999 00:54:37,110 --> 00:54:38,630 Wees versigtig wanneer jy dit gebruik. 1000 00:54:38,630 --> 00:54:42,430 So wanneer ons kyk deur die skikking, die laaste karakter, 1001 00:54:42,430 --> 00:54:46,420 ons weet ons wil nie dit backslash nul. 1002 00:54:46,420 --> 00:54:47,340 >> So rukkie. 1003 00:54:47,340 --> 00:54:48,840 Ons is nie teen die einde van die tou. 1004 00:54:48,840 --> 00:54:52,335 Wat wil ons na binne te doen? 1005 00:54:52,335 --> 00:54:55,269 >> GEHOOR: Ons wil bydra tot die counter so dit tel plus plus? 1006 00:54:55,269 --> 00:54:56,060 PROFESSOR: Presies. 1007 00:54:56,060 --> 00:55:03,064 Ons is so hier gaan doen tel, tel plus plus. 1008 00:55:03,064 --> 00:55:03,980 Ontbreek een lyn. 1009 00:55:03,980 --> 00:55:05,090 Ons is amper daar. 1010 00:55:05,090 --> 00:55:07,398 Wat moet ons vergeet om te doen? 1011 00:55:07,398 --> 00:55:08,770 >> GEHOOR: Returning nul? 1012 00:55:08,770 --> 00:55:10,820 >> PROFESSOR: Jy wil na nul terugkeer? 1013 00:55:10,820 --> 00:55:12,962 >> GEHOOR: Nee, terug te keer na StrLen. 1014 00:55:12,962 --> 00:55:13,511 Wag nie. 1015 00:55:13,511 --> 00:55:14,760 PROFESSOR: Watter is gestoor in? 1016 00:55:14,760 --> 00:55:15,090 GEHOOR: Tel. 1017 00:55:15,090 --> 00:55:15,589 Tel. 1018 00:55:15,589 --> 00:55:17,150 PROFESSOR: Presies. 1019 00:55:17,150 --> 00:55:20,760 Ons is so hier gaan tel terug te keer. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Want wat ons doen hier ultimately-- 1022 00:55:25,380 --> 00:55:29,780 ons het 'n toonbank veranderlike wat gaan inkrementeer deur ons string. 1023 00:55:29,780 --> 00:55:33,050 Ons gaan die gang te hou, hou gaan, om en om in hierdie lus. 1024 00:55:33,050 --> 00:55:37,700 En terwyl ons nie op die einde van hierdie string, wat is die nul terminator. 1025 00:55:37,700 --> 00:55:40,410 >> En elke keer as ons gaan deur dit is ons toe te voeg tot ons toonbank. 1026 00:55:40,410 --> 00:55:42,640 En ons is verder gaan saam in hierdie reeks. 1027 00:55:42,640 --> 00:55:44,880 En aan die einde, wanneer ons getref die nul terminator, 1028 00:55:44,880 --> 00:55:48,469 ons weet, o, ons kan breek, die standaard van die telling. 1029 00:55:48,469 --> 00:55:49,260 Ons het ons StrLen. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Maak almal kry hoe hierdie is geïmplementeer? 1032 00:55:56,400 --> 00:55:58,830 Terwyl loops-- Ek weet ons het nie gedoen te veel met hulle, 1033 00:55:58,830 --> 00:56:01,240 maar hulle is gewoonlik baie, baie nuttig as jy 1034 00:56:01,240 --> 00:56:05,390 weet nie wat jy stop voorwaarde noodwendig wees. 1035 00:56:05,390 --> 00:56:06,220 >> Vraag? 1036 00:56:06,220 --> 00:56:10,080 >> GEHOOR: Kan ons skryf null op die tyd toestand? 1037 00:56:10,080 --> 00:56:10,940 >> PROFESSOR: Terwyl? 1038 00:56:10,940 --> 00:56:15,304 Ja, so in hierdie probleem wat jy het ek ouens aanvaar dat s nie null sal wees nie. 1039 00:56:15,304 --> 00:56:17,220 Want onthou, teoreties, as ek aan jou gegee het 1040 00:56:17,220 --> 00:56:21,180 'n wyser te groot geheue was, dit sou gee jou die nul, reg? 1041 00:56:21,180 --> 00:56:23,770 Dit is wat die bedryfstelsel stelsel sal doen. 1042 00:56:23,770 --> 00:56:26,960 >> So as ek jou vertel nie om te aanvaar s sou null wees, moet jy om te kyk. 1043 00:56:26,960 --> 00:56:32,050 So hier, sou jy doen, as s gelyk gelyk null, terug een. 1044 00:56:32,050 --> 00:56:33,028 Iets soos dit. 1045 00:56:33,028 --> 00:56:34,153 GEHOOR: [onhoorbaar] nul. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 PROFESSOR: OK, ek sal vertel waarom kan ons dit nie doen nie. 1048 00:56:39,370 --> 00:56:43,357 Want onthou in die geheue, regs, hier. 1049 00:56:43,357 --> 00:56:43,940 Ons sal hier gaan. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Jy het reuse blokke het geheue almal met roosters 1052 00:56:54,090 --> 00:56:56,680 die winkel verskillende waardes, reg? 1053 00:56:56,680 --> 00:57:00,110 En so sal die hele 'n string is-- vir Byvoorbeeld, as ons insette hello, 1054 00:57:00,110 --> 00:57:05,490 dit sou H-E-L-L-O wees backslash nul, reg? 1055 00:57:05,490 --> 00:57:09,570 En dan wie weet, soos ewekansige dinge wat in hier nadat dit. 1056 00:57:09,570 --> 00:57:11,220 >> Ons het nie eintlik weet wat is daar. 1057 00:57:11,220 --> 00:57:13,350 En so as jy te doen in plaas van backslash nul, 1058 00:57:13,350 --> 00:57:15,590 null, kan dit nie wees null. 1059 00:57:15,590 --> 00:57:17,680 Omdat dit net kan beteken 'n paar random ander dinge 1060 00:57:17,680 --> 00:57:19,270 wat behoort nie in jou string. 1061 00:57:19,270 --> 00:57:23,219 En so het die manier wat ons weet altyd 'n string eindig is met 'n backslash nul. 1062 00:57:23,219 --> 00:57:25,760 En so is dit altyd hoe ons kyk na die einde van 'n string te sien. 1063 00:57:25,760 --> 00:57:30,820 >> Nul, alles wat middel is as jy ' 'n nie-bestaande pointer, die eerste van alles, 1064 00:57:30,820 --> 00:57:36,160 of as jou geheue is net so groot dat jy kan nie terug te keer nie, dan is dit van nul sal wees. 1065 00:57:36,160 --> 00:57:40,150 So wees baie versigtig wanneer onderskei die verskil tussen null 1066 00:57:40,150 --> 00:57:42,130 en agteroorskuisstreep nul. 1067 00:57:42,130 --> 00:57:43,670 Ja. 1068 00:57:43,670 --> 00:57:46,886 >> Almal OK met hierdie? 1069 00:57:46,886 --> 00:57:48,150 OK. 1070 00:57:48,150 --> 00:57:50,440 >> So ek het julle skryf StrLen. 1071 00:57:50,440 --> 00:57:53,790 Feasibly kan ons ook vra wat jy skryf uit A tot I, onthou dat "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 of wat jy ouens wil om dit te noem? 1073 00:57:55,400 --> 00:57:58,010 Daardie funksie in Vigenere en Caesar, wat 1074 00:57:58,010 --> 00:58:00,900 vat 'n ASCII-waarde na 'n heelgetal? 1075 00:58:00,900 --> 00:58:04,360 Dit het ook kom op vorige vasvrae van funksies wat ons het jou gevra om te skryf. 1076 00:58:04,360 --> 00:58:08,280 >> Pretty much enige funksie wat jy gebruik en is 1077 00:58:08,280 --> 00:58:11,660 baie maklik om jouself te skryf, sensors graag laer, 1078 00:58:11,660 --> 00:58:14,620 is bo, te verlaag, na die boonste. 1079 00:58:14,620 --> 00:58:17,964 Funksies wat 'n wil om te skakel string van klein na hoofletters. 1080 00:58:17,964 --> 00:58:19,380 Ons weet almal hoe om dit te doen, reg? 1081 00:58:19,380 --> 00:58:21,100 Dit is redelik maklik. 1082 00:58:21,100 --> 00:58:24,770 Wil net seker maak dat jy can-- dit is dieselfde gedink proses. 1083 00:58:24,770 --> 00:58:26,940 Jy Itereer net deur en jy draai dinge. 1084 00:58:26,940 --> 00:58:30,190 Jy óf tel of wanneer jy dinge draai anders. 1085 00:58:30,190 --> 00:58:32,280 >> Ek sou suggest-- ek weet nie of ons gaan 1086 00:58:32,280 --> 00:58:39,080 om jou te vra om te onthou wat kapitaal A of kapitaal Z, of klein 'n klein of 1087 00:58:39,080 --> 00:58:42,640 z is in ASCII, maar ek sou raai dalk skryf dat in die geval af 1088 00:58:42,640 --> 00:58:44,124 ons doen. 1089 00:58:44,124 --> 00:58:45,540 Net so julle ouens het 'n verwysing. 1090 00:58:45,540 --> 00:58:47,180 Soos hoofletters A is, wat, 197? 1091 00:58:47,180 --> 00:58:51,320 En dan klein is soos 50 iets. 1092 00:58:51,320 --> 00:58:52,492 65, ja, daar gaan jy. 1093 00:58:52,492 --> 00:58:54,950 Dus net pretty much weet verskil tussen hulle is 32. 1094 00:58:54,950 --> 00:58:57,670 Dit is redelik belangrik. 1095 00:58:57,670 --> 00:58:58,170 Ja. 1096 00:58:58,170 --> 00:59:01,445 Is ek goed oor hierdie? 1097 00:59:01,445 --> 00:59:01,945 OK. 1098 00:59:01,945 --> 00:59:03,109 >> GEHOOR: Ons kon teoreties skryf 'n paar 1099 00:59:03,109 --> 00:59:04,410 van hierdie af sowel op ons little-- 1100 00:59:04,410 --> 00:59:07,035 >> PROFESSOR: Jy teoreties kon net kopieer die funksie af. 1101 00:59:07,035 --> 00:59:08,482 Dis waar. 1102 00:59:08,482 --> 00:59:11,080 >> GEHOOR: Nie [onhoorbaar]. 1103 00:59:11,080 --> 00:59:12,720 >> PROFESSOR: Julle het 'n vel. 1104 00:59:12,720 --> 00:59:14,194 Jy het 'n nota ouens vel. 1105 00:59:14,194 --> 00:59:14,860 Jy kan dit te tik. 1106 00:59:14,860 --> 00:59:15,490 Jy kan dit skryf. 1107 00:59:15,490 --> 00:59:17,031 Jy kan doen wat jy wil met dit. 1108 00:59:17,031 --> 00:59:18,530 Ja. 1109 00:59:18,530 --> 00:59:21,406 So teoreties, as jy wil, gaan vir. 1110 00:59:21,406 --> 00:59:23,338 >> GEHOOR: [onhoorbaar] maar ons het nie regtig 1111 00:59:23,338 --> 00:59:25,994 noodwendig nodig om te onthou die waarde, kan ons maar net 1112 00:59:25,994 --> 00:59:28,914 gebruik die boonste of laer funksie, reg? 1113 00:59:28,914 --> 00:59:29,580 PROFESSOR: Ja. 1114 00:59:29,580 --> 00:59:32,740 Maar as ons julle 'n vraag wat sê skryf aan die boonste, 1115 00:59:32,740 --> 00:59:34,350 dan sou jy nodig het om dit te skryf. 1116 00:59:34,350 --> 00:59:38,150 So julle ouens kan aanvaar dat jy ouens het toegang tot al die funksies, 1117 00:59:38,150 --> 00:59:41,523 maar as jy wil gebruik om die boonste of laer, wat dink jy het ook te doen? 1118 00:59:41,523 --> 00:59:43,840 >> GEHOOR: [onhoorbaar] gebruik CS50 [onhoorbaar] 1119 00:59:43,840 --> 00:59:44,840 >> PROFESSOR: Is dit CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Wees versigtig daar. 1122 00:59:48,310 --> 00:59:50,640 >> So na die boonste, te verlaag, is boonste, laer, 1123 00:59:50,640 --> 00:59:52,990 funksies wat betrek string manipulasie is 1124 00:59:52,990 --> 00:59:55,490 almal binne óf die Ascii of binne die wiskunde biblioteek 1125 00:59:55,490 --> 00:59:57,350 of binne die string biblioteek. 1126 00:59:57,350 --> 01:00:00,290 So as jy ouens gebruik die funksies, wees versigtig om te onthou 1127 01:00:00,290 --> 01:00:01,451 dat die kop in te sluit. 1128 01:00:01,451 --> 01:00:03,950 So miskien ook iets wat jy wil in jou vel in te sluit, 1129 01:00:03,950 --> 01:00:04,892 wat die kop? 1130 01:00:04,892 --> 01:00:06,600 Wat is die biblioteke jy het al met behulp? 1131 01:00:06,600 --> 01:00:08,550 Wat funksies binne die biblioteke? 1132 01:00:08,550 --> 01:00:09,230 Dit is belangrik. 1133 01:00:09,230 --> 01:00:10,420 >> Ja? 1134 01:00:10,420 --> 01:00:12,570 >> GEHOOR: Kan ons net cop uit en doen hashtag 1135 01:00:12,570 --> 01:00:14,955 deur die absoluut elke brief wat ons ooit 1136 01:00:14,955 --> 01:00:17,340 gesien soos op al die vrae? 1137 01:00:17,340 --> 01:00:18,320 >> PROFESSOR: Jy kon. 1138 01:00:18,320 --> 01:00:20,361 Ek weet nie hoe gelukkig ons gaan wees om graad 1139 01:00:20,361 --> 01:00:25,090 dat quiz wanneer elke stukkie van die kode is twee keer so lank as wat dit nodig het om te wees. 1140 01:00:25,090 --> 01:00:27,200 Ek weet nie, kan ons af te neem 'n punt vir styl. 1141 01:00:27,200 --> 01:00:28,790 Maar teoreties jou kode sal reg wees. 1142 01:00:28,790 --> 01:00:30,915 Julle kon cop out en net sluit alles. 1143 01:00:30,915 --> 01:00:32,044 Dit is goed ook, ja. 1144 01:00:32,044 --> 01:00:32,960 GEHOOR: [onhoorbaar]. 1145 01:00:32,960 --> 01:00:33,270 PROFESSOR: Ja. 1146 01:00:33,270 --> 01:00:34,900 Ek sou raai nie dat alhoewel doen. 1147 01:00:34,900 --> 01:00:35,505 Ja. 1148 01:00:35,505 --> 01:00:36,130 GEHOOR: Cool. 1149 01:00:36,130 --> 01:00:36,620 PROFESSOR: Goeie vraag. 1150 01:00:36,620 --> 01:00:37,480 GEHOOR: So, die ergste geval scenario. 1151 01:00:37,480 --> 01:00:38,563 PROFESSOR: Die ergste geval. 1152 01:00:38,563 --> 01:00:40,350 As jy heeltemal vergeet, jy dit kan doen. 1153 01:00:40,350 --> 01:00:40,850 Ja. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Yep, kode is reg daar. 1156 01:00:45,400 --> 01:00:49,176 Ek gebruik n plaas van tel, maar jy weet, ongeag jou boot dryf. 1157 01:00:49,176 --> 01:00:51,092 GEHOOR: Wag, sodat ons wil nie hê om hashtag 1158 01:00:51,092 --> 01:00:53,460 sluit, want ons is begin by die int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> PROFESSOR: Ja, het net aanvaar dat ek Ons is gevra om die funksie te skryf. 1161 01:00:59,924 --> 01:01:02,340 As jy wou om veilig te wees, moet jy kan waarskynlik sit dit daar. 1162 01:01:02,340 --> 01:01:05,650 Maar ek het net nie die moeite, ja. 1163 01:01:05,650 --> 01:01:09,919 >> Ek weet nie eens as jy moet enige biblioteek vir hierdie. 1164 01:01:09,919 --> 01:01:12,710 Omdat jy nie regtig druk enigiets of enigiets nie, reg? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Ja, ek weet nie of jy 'n biblioteek nodig. 1167 01:01:19,568 --> 01:01:22,400 >> OK. 1168 01:01:22,400 --> 01:01:26,020 Dit is ook 'n bietjie meer saam die lyne van die geheue manipulasie. 1169 01:01:26,020 --> 01:01:27,400 Hierdie soort bietjie lastig. 1170 01:01:27,400 --> 01:01:28,960 Dink hieroor. 1171 01:01:28,960 --> 01:01:30,580 Jy het 'n funksie genoem funk. 1172 01:01:30,580 --> 01:01:33,570 Ek kon dit vernoem wat ook al, maar ek kies om dit te funk noem. 1173 01:01:33,570 --> 01:01:36,000 Ek het dit bo my hoof. 1174 01:01:36,000 --> 01:01:39,790 Onthou, wat jy wil hê 'n funksie na jou hoof, 1175 01:01:39,790 --> 01:01:42,370 jy wil om seker te maak jy sluit die prototipe van die top. 1176 01:01:42,370 --> 01:01:45,750 >> Maar in hierdie geval was dit so kort dat ek voel dat ek kon net 1177 01:01:45,750 --> 01:01:47,260 sluit dit bo-op die belangrikste. 1178 01:01:47,260 --> 01:01:51,170 Ek het nie nodig om die prototipe het, want dit is reeds hierbo geskryf. 1179 01:01:51,170 --> 01:01:55,430 So al wat ek doen in my hooffunksie skep heelgetal x gelyk aan 10. 1180 01:01:55,430 --> 01:02:00,490 Ek bel my funk funksie, en dan druk op iets. 1181 01:02:00,490 --> 01:02:02,840 >> En dan is dit eintlik wat funk doen. 1182 01:02:02,840 --> 01:02:04,340 Julle wil dink deur middel van hierdie. 1183 01:02:04,340 --> 01:02:05,423 Want dit is 'n bietjie lastig. 1184 01:02:05,423 --> 01:02:07,220 Dit is baie, baie moeilik, eintlik. 1185 01:02:07,220 --> 01:02:09,549 Dink oor wat hierdie program sal printer wees. 1186 01:02:09,549 --> 01:02:10,840 Ek sal julle ouens gee twee minute. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Goeie besprekings? 1189 01:03:37,891 --> 01:03:38,853 >> GEHOOR: Ja. 1190 01:03:38,853 --> 01:03:39,815 >> PROFESSOR: Ja. 1191 01:03:39,815 --> 01:03:42,220 Alle reg, sodat dit is lastig vir 'n rede. 1192 01:03:42,220 --> 01:03:44,845 En dit is die rede waarom ek wou bring hierdie om almal se aandag. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Is daar iemand wat my wil gee 'n voorstel, 'n poging? 1195 01:03:51,147 --> 01:03:52,230 Wat sou hierdie druk? 1196 01:03:52,230 --> 01:03:53,930 Heeltemal fyn as jy verkeerd is. 1197 01:03:53,930 --> 01:03:55,619 Ja? 1198 01:03:55,619 --> 01:03:59,483 >> GEHOOR: Ek dink dit is 100 en dan 10 op twee afsonderlike lyne. 1199 01:03:59,483 --> 01:04:00,940 >> PROFESSOR: En 'n 10? 1200 01:04:00,940 --> 01:04:03,154 Is daar iemand enige ander raaiskote? 1201 01:04:03,154 --> 01:04:04,150 Ja? 1202 01:04:04,150 --> 01:04:09,040 >> GEHOOR: Dalk net omdat 10 funk niks terug? 1203 01:04:09,040 --> 01:04:11,610 >> PROFESSOR: OK, so ons het raaiskoot nommer een 1204 01:04:11,610 --> 01:04:14,990 is dat raaiskoot nommer twee is net gaan om uit te druk 10. 1205 01:04:14,990 --> 01:04:17,623 Is daar iemand enige ander raaiskote? 1206 01:04:17,623 --> 01:04:19,654 OK. 1207 01:04:19,654 --> 01:04:21,070 So laat loop deur middel van hierdie, reg? 1208 01:04:21,070 --> 01:04:23,903 Wanneer jy 'n stukkie van die kode te kry, nie net kyk na dit en wees soos, 1209 01:04:23,903 --> 01:04:25,060 Ag, dit is so baie dinge! 1210 01:04:25,060 --> 01:04:26,460 Ek is so deurmekaar! 1211 01:04:26,460 --> 01:04:28,220 Soos, kalmeer jouself af. 1212 01:04:28,220 --> 01:04:31,602 Weet net dat jy net kyk deur code lyn deur die lyn. 1213 01:04:31,602 --> 01:04:32,310 Dit is al wat dit is. 1214 01:04:32,310 --> 01:04:33,840 Dit is soos 'n boek lees. 1215 01:04:33,840 --> 01:04:38,000 >> So met enige funksie, ons begin altyd by die hoof. 1216 01:04:38,000 --> 01:04:40,860 So ons gaan begin by int main leemte, 1217 01:04:40,860 --> 01:04:43,010 selfs die program se reeds hardloop af, reg? 1218 01:04:43,010 --> 01:04:45,070 Begin by in die belangrikste leemte. 1219 01:04:45,070 --> 01:04:48,030 Int x gelyk aan 10. 1220 01:04:48,030 --> 01:04:50,400 >> So ek gaan om dit te vee. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Ek gaan die geheue te trek net sodat jy ouens kan soort van sien wat gebeur. 1223 01:04:58,470 --> 01:05:02,190 >> Onthou hier neer ons het ons stapel? 1224 01:05:02,190 --> 01:05:05,810 Hier het ons ons ophoop iewers hier. 1225 01:05:05,810 --> 01:05:07,470 Stapel grootword, reg? 1226 01:05:07,470 --> 01:05:10,150 En binne die stapel, jy het die hoofleiding funksioneer asook 1227 01:05:10,150 --> 01:05:12,230 al hoofleiding plaaslike veranderlikes. 1228 01:05:12,230 --> 01:05:14,310 >> So hier, int x gelyk 10. 1229 01:05:14,310 --> 01:05:17,670 Binne ons belangrikste funksie is ons skep van 'n veranderlike genoem x. 1230 01:05:17,670 --> 01:05:20,590 Ons opstel wat gelyk is aan 10. 1231 01:05:20,590 --> 01:05:24,200 Hier kan jy het 'n paar x, en jy is opstel wat gelyk is aan 10, regs, 1232 01:05:24,200 --> 01:05:25,400 binne belangrikste. 1233 01:05:25,400 --> 01:05:27,430 Almal goeie? 1234 01:05:27,430 --> 01:05:28,070 >> Funksie. 1235 01:05:28,070 --> 01:05:30,330 So nou, in ons belangrikste funksie, ons roeping 1236 01:05:30,330 --> 01:05:31,810 die funksie wat ons hierbo geskryf het. 1237 01:05:31,810 --> 01:05:34,550 So ons nou die tweede funksie. 1238 01:05:34,550 --> 01:05:40,120 Ons gaan na 'n ander te skep veranderlike int x is gelyk aan 100. 1239 01:05:40,120 --> 01:05:42,410 Wat gebeur hier by die stapel? 1240 01:05:42,410 --> 01:05:46,980 Wat gebeur wanneer jy 'n oproep funksie wat nuwe veranderlikes skep? 1241 01:05:46,980 --> 01:05:50,038 Wat gebeur hier by die stapel? 1242 01:05:50,038 --> 01:05:52,134 >> GEHOOR: [onhoorbaar] hope op die top? 1243 01:05:52,134 --> 01:05:52,800 PROFESSOR: Ja. 1244 01:05:52,800 --> 01:05:54,050 So dit is eintlik skep 'n kopie. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 En dit soort van hope bo-op. 1247 01:05:57,740 --> 01:06:00,700 Dink aan die stack-- 'n stapel boeke, 'n stapel van enigiets. 1248 01:06:00,700 --> 01:06:06,520 Hope op die top, eers in die laaste uit laaste in, eerste uit. 1249 01:06:06,520 --> 01:06:08,471 >> So dit gaan om 'n x hier te skep. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> Dit gaan hê al funcs veranderlikes. 1252 01:06:14,450 --> 01:06:14,950 Groot. 1253 01:06:14,950 --> 01:06:20,980 So nou het ons twee verskillende x se verteenwoordig twee baie verskillende dinge. 1254 01:06:20,980 --> 01:06:24,470 Dan gaan ons druk uit die heelgetal van x. 1255 01:06:24,470 --> 01:06:26,430 So laat druk 100, reg? 1256 01:06:26,430 --> 01:06:29,389 Want hier is dit 100. 1257 01:06:29,389 --> 01:06:31,680 So wat is die eerste ding wat dat dit gaan om uit te druk. 1258 01:06:31,680 --> 01:06:35,710 As hierdie funksie gee terug niks nie, nou dat funksie, wat in lyn belangrikste 1259 01:06:35,710 --> 01:06:37,070 gedoen word. 1260 01:06:37,070 --> 01:06:39,160 Almal goed met my so ver? 1261 01:06:39,160 --> 01:06:43,034 >> So ons is nou deur middel van twee uit die drie lyne van ons belangrikste funksie. 1262 01:06:43,034 --> 01:06:44,450 Nou gaan ons na die derde lyn. 1263 01:06:44,450 --> 01:06:46,350 Ons gaan printf. 1264 01:06:46,350 --> 01:06:48,222 Wat is dit x binne belangrikste? 1265 01:06:48,222 --> 01:06:49,263 Wat beteken dit verteenwoordig? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Watter waarde is x nou? 1268 01:06:54,280 --> 01:06:55,220 >> GEHOOR: 100. 1269 01:06:55,220 --> 01:06:56,799 >> PROFESSOR: Dis 100? 1270 01:06:56,799 --> 01:06:57,590 GEHOOR: Nog 10. 1271 01:06:57,590 --> 01:06:58,878 PROFESSOR: Nog 10. 1272 01:06:58,878 --> 01:07:00,870 Ja. 1273 01:07:00,870 --> 01:07:06,810 Want onthou, binne ons funk, x is gelyk aan 100. 1274 01:07:06,810 --> 01:07:09,690 Maar as ons weer terug ons belangrikste funksie, 1275 01:07:09,690 --> 01:07:12,440 daardie veranderlike gestoor in 'n ander plek op ons stapel. 1276 01:07:12,440 --> 01:07:16,250 >> So nou moet ons teruggaan na die hoof stapel, hoofleiding plaaslike veranderlikes. 1277 01:07:16,250 --> 01:07:18,460 En hier is x gelyk aan 10. 1278 01:07:18,460 --> 01:07:20,300 En so gaan ons om uit te druk 10. 1279 01:07:20,300 --> 01:07:22,530 >> So sy was absoluut reg. 1280 01:07:22,530 --> 01:07:25,053 Ons gaan die het uitset van 100 en 10. 1281 01:07:25,053 --> 01:07:25,553 Ja? 1282 01:07:25,553 --> 01:07:28,700 GEHOOR: Wanneer jy malloc, is dit die hoop of dat die stapel wat [onhoorbaar]? 1283 01:07:28,700 --> 01:07:31,950 PROFESSOR: Wanneer jy malloc, jy geheue te neem van die hoop 1284 01:07:31,950 --> 01:07:32,830 en die toekenning daarvan. 1285 01:07:32,830 --> 01:07:34,950 Sodat jy nie om te mors met enige van hierdie. 1286 01:07:34,950 --> 01:07:38,100 So ek dink die groter afhaal hier is iets genoem omvang. 1287 01:07:38,100 --> 01:07:39,650 >> Vir dié van julle wat by was die hersiening sessie gisteraand, 1288 01:07:39,650 --> 01:07:41,080 ons gepraat kortliks hieroor. 1289 01:07:41,080 --> 01:07:45,380 Omvang bepaal hoe en wanneer jou veranderlikes bestaan ​​nie. 1290 01:07:45,380 --> 01:07:48,050 Of binne wat rame doen jou veranderlikes bestaan ​​nie. 1291 01:07:48,050 --> 01:07:51,690 >> Pretty much die reël algemeen is, jou variables-- as jy hulle te skep 1292 01:07:51,690 --> 01:07:56,660 binnekant krullerige braces-- hulle bestaan net binne die krullerige draadjies. 1293 01:07:56,660 --> 01:08:00,312 >> So byvoorbeeld in ons funksie van funk, sien jy daardie twee draadjies. 1294 01:08:00,312 --> 01:08:02,020 As jy skep enigiets binnekant van dit, 1295 01:08:02,020 --> 01:08:06,500 kanse is al wat jy doen, is skep van 'n stapel en stoor dat daar. 1296 01:08:06,500 --> 01:08:07,430 Dieselfde ding in die belangrikste. 1297 01:08:07,430 --> 01:08:09,950 Dit is net gestoor binnekant van hoof. 1298 01:08:09,950 --> 01:08:13,560 >> Ook jy wil wees baie, baie versigtig hier. 1299 01:08:13,560 --> 01:08:18,310 Omdat omvang leen ook self na verskillende voorbeelde. 1300 01:08:18,310 --> 01:08:25,950 So byvoorbeeld 'n vir lus vir int i gelyk 0. 1301 01:08:25,950 --> 01:08:28,460 Ek is minder as, ek weet nie, 10. 1302 01:08:28,460 --> 01:08:32,111 Ek plus plus. 1303 01:08:32,111 --> 01:08:34,560 En jy het kode binnekant van dit, reg? 1304 01:08:34,560 --> 01:08:38,830 >> Waar kom hierdie veranderlike, i, eintlik net bestaan ​​nie? 1305 01:08:38,830 --> 01:08:40,510 Slegs binnekant van jou lus. 1306 01:08:40,510 --> 01:08:43,640 So ek wed baie van julle ouens het waarskynlik teëgekom hierdie fout wanneer 1307 01:08:43,640 --> 01:08:45,930 jy doen programme in jou psets. 1308 01:08:45,930 --> 01:08:49,990 Hoeveel van julle ouens het probeer om i gebruik buitekant van 'n lus vir die en het 'n fout? 1309 01:08:49,990 --> 01:08:53,310 Soos 'n unreferenced heelgetalle of iets soos dit? 1310 01:08:53,310 --> 01:08:56,069 >> Die rede waarom dit gebeur is omdat hier is jy 1311 01:08:56,069 --> 01:08:59,109 iets te skep wat net bestaan ​​binne jou lus. 1312 01:08:59,109 --> 01:09:01,972 En as jy probeer om dit te gebruik, i nie werklik bestaan ​​buite dit. 1313 01:09:01,972 --> 01:09:04,930 So basies 'n rekenaar en sê: Ek weet nie wat jy praat. 1314 01:09:04,930 --> 01:09:08,689 Al wat ek weet, is dat 'n i was hier, maar nou nie meer nie. 1315 01:09:08,689 --> 01:09:12,580 >> So as ek 'n te skep lus binnekant, reg? 1316 01:09:12,580 --> 01:09:19,080 En ek gaan na 'n ander te skep, soos int j, en het dit ook al doen. 1317 01:09:19,080 --> 01:09:23,689 En jy het 'n kode binnekant van wat lus, j bestaan ​​hier net. 1318 01:09:23,689 --> 01:09:26,029 Maar wat ook bestaan ​​binne i. 1319 01:09:26,029 --> 01:09:29,310 En so j bestaan ​​slegs in hierdie lus, 1320 01:09:29,310 --> 01:09:33,850 terwyl ek bestaan ​​in die hele ding. 1321 01:09:33,850 --> 01:09:34,500 >> Almal duidelik? 1322 01:09:34,500 --> 01:09:37,416 Dieselfde ding met voorwaardelike stellings As jy iets wil skep. 1323 01:09:37,416 --> 01:09:40,390 Dieselfde ding met terwyl loops as jy iets wil skep. 1324 01:09:40,390 --> 01:09:42,390 Dit is iets om te wees baie, baie versigtig wees oor. 1325 01:09:42,390 --> 01:09:45,681 So was dit 'n baie goeie probleem in die sin dat dit gedemonstreer twee dinge. 1326 01:09:45,681 --> 01:09:47,160 Dit blyk die eerste, omvang. 1327 01:09:47,160 --> 01:09:49,550 En dit blyk ook geheuetoekenning. 1328 01:09:49,550 --> 01:09:54,130 Omdat julle moet weet dat funksies groei opwaarts in die stapel. 1329 01:09:54,130 --> 01:09:56,710 En dat wanneer jy bel funksies, jy skep 1330 01:09:56,710 --> 01:09:59,060 in wese 'n nuwe stapel geheue. 1331 01:09:59,060 --> 01:10:02,100 Dit is baie anders wat jou hoofleiding geheue is. 1332 01:10:02,100 --> 01:10:03,300 Ja. 1333 01:10:03,300 --> 01:10:03,800 Sjoe! 1334 01:10:03,800 --> 01:10:05,470 Almal OK op daardie? 1335 01:10:05,470 --> 01:10:06,750 Dit was verwarrend. 1336 01:10:06,750 --> 01:10:09,380 Baie goeie onderwerpe om oor te gaan, omdat jy waarskynlik 1337 01:10:09,380 --> 01:10:12,255 gaan 'n paar moeilike kry dinge soos wat op die quiz. 1338 01:10:12,255 --> 01:10:13,350 Ja. 1339 01:10:13,350 --> 01:10:13,850 Koel. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Ek sal sit jy op 'n 100 lyn en dan 10 aan die ander. 1342 01:10:18,430 --> 01:10:21,468 Ja, baie goed. 1343 01:10:21,468 --> 01:10:26,350 >> OK, nou het jy ouens kry die kans om te wees die Tas. 1344 01:10:26,350 --> 01:10:30,600 Jy beantwoord al die pragtige e-pos wat ek kry soms. 1345 01:10:30,600 --> 01:10:34,290 >> So, liewe Andi, ek sien ek dink iets is verkeerd gaan met my samesteller. 1346 01:10:34,290 --> 01:10:37,910 Ek is seker dat my kode korrek is, maar ek kry steeds 'n segmentering skuld 1347 01:10:37,910 --> 01:10:39,074 elke keer as ek hardloop. 1348 01:10:39,074 --> 01:10:39,740 Wat gaan aan? 1349 01:10:39,740 --> 01:10:42,844 Please help, baie liefde. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> As jy ouens het iets soos dat hoe sou jy reageer? 1352 01:10:49,410 --> 01:10:51,860 Dit is eintlik baie algemeen vrae sal ons jou vra. 1353 01:10:51,860 --> 01:10:54,090 Is as, sal ons jou 'n gee scenario, sal ons gee ons 1354 01:10:54,090 --> 01:10:56,350 jou beste raaiskoot op wat gaan aan. 1355 01:10:56,350 --> 01:11:00,710 Iemand het 'n steek op wat gaan aan? 1356 01:11:00,710 --> 01:11:02,654 Ja? 1357 01:11:02,654 --> 01:11:06,056 >> GEHOOR: Miskien dereferenced die null, iets soos die wyser 1358 01:11:06,056 --> 01:11:08,924 wys na iets null. 1359 01:11:08,924 --> 01:11:11,590 PROFESSOR: Ja, dit wil 'n wees voorbeeld van wanneer dit sou gebeur. 1360 01:11:11,590 --> 01:11:14,467 Maar wat is die groter prentjie van wat gaan hier aan? 1361 01:11:14,467 --> 01:11:17,050 GEHOOR: Is dit jy probeer om toegang tot die geheue dat jy nie 1362 01:11:17,050 --> 01:11:18,175 veronderstel om toegang te hê? 1363 01:11:18,175 --> 01:11:19,200 PROFESSOR: Presies. 1364 01:11:19,200 --> 01:11:24,800 So dink aan 'n seg skuld, 'n off perke, beperkte gebied in die geheue 1365 01:11:24,800 --> 01:11:27,780 dat jy nie moet wees raak. 1366 01:11:27,780 --> 01:11:31,670 >> So pretty much wanneer jy probeer om index-- soos byvoorbeeld 1367 01:11:31,670 --> 01:11:34,110 jy verklaar 'n verskeidenheid van nul tot nege. 1368 01:11:34,110 --> 01:11:37,360 Maar jy probeer om dit aan te raak 10 waarde, het jy nie toegang tot daardie. 1369 01:11:37,360 --> 01:11:38,694 Omdat jy nie verklaar nie. 1370 01:11:38,694 --> 01:11:40,943 En so jou rekenaar gaan om te kyk na dit wees, 1371 01:11:40,943 --> 01:11:43,440 uh oh, jy probeer om te gaan buite die grense van 'n indeks. 1372 01:11:43,440 --> 01:11:45,270 Ek gaan om jou te gee 'n segmentering skuld. 1373 01:11:45,270 --> 01:11:46,590 >> Dink as segment, reg? 1374 01:11:46,590 --> 01:11:49,665 'N ekstra segment, die skuld is wanneer jy probeer om iets te verbreek 1375 01:11:49,665 --> 01:11:50,790 en jy moet nie daar wees. 1376 01:11:50,790 --> 01:11:53,660 Segmentering skuld is altyd jy probeer om dinge raak 1377 01:11:53,660 --> 01:11:54,970 dat jy nie moet wees raak. 1378 01:11:54,970 --> 01:11:56,815 >> So algemene voorbeelde is 'n indeks. 1379 01:11:56,815 --> 01:11:58,940 Natuurlik, as jy probeer aan te raak wat null, 1380 01:11:58,940 --> 01:12:00,220 dit sou ook so goed werk. 1381 01:12:00,220 --> 01:12:02,300 As jou wyser probeer raak dinge wat nie sou aanraak nie, 1382 01:12:02,300 --> 01:12:03,730 wat kan ook so goed werk. 1383 01:12:03,730 --> 01:12:07,120 Die meeste tipies jy sal sien dit in 'n skikking. 1384 01:12:07,120 --> 01:12:07,740 Almal goeie? 1385 01:12:07,740 --> 01:12:10,374 >> GEHOOR: So as jy wil om toegang tot die 10 punt 1386 01:12:10,374 --> 01:12:12,290 en daar is slegs 'n beperking nege of iets. 1387 01:12:12,290 --> 01:12:13,160 >> PROFESSOR: Ja, presies. 1388 01:12:13,160 --> 01:12:13,660 Min of meer. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Koel. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Geagte Andi. 1393 01:12:19,920 --> 01:12:23,440 So het ons hierdie wonderlike gekry dinge genoem soorte. 1394 01:12:23,440 --> 01:12:25,472 As Merge sort-- soos ons gesien in byvoorbeeld wanneer 1395 01:12:25,472 --> 01:12:27,180 David het die hele ding in class-- hoekom 1396 01:12:27,180 --> 01:12:29,760 As dit so baie vinniger as enige van die ander soorte, 1397 01:12:29,760 --> 01:12:33,310 hoekom doen ons eens die moeite om te weet enige van die ander soorte? 1398 01:12:33,310 --> 01:12:35,100 >> Wat is hierdie vraag wat jy regtig vra? 1399 01:12:35,100 --> 01:12:36,659 Wat is die drie word-- 1400 01:12:36,659 --> 01:12:37,950 GEHOOR: Wat is die trade-off? 1401 01:12:37,950 --> 01:12:38,530 PROFESSOR: Presies. 1402 01:12:38,530 --> 01:12:39,946 Dit is wat die vraag is gevra. 1403 01:12:39,946 --> 01:12:43,682 Wat is die trade-off tussen Merge soort verse enige ander vorme? 1404 01:12:43,682 --> 01:12:45,850 >> GEHOOR: Neem geheue, reg? 1405 01:12:45,850 --> 01:12:47,720 >> PROFESSOR: Het jy verduidelik dat 'n bietjie meer? 1406 01:12:47,720 --> 01:12:49,490 Eerste laat se verduidelik Merge winkel. 1407 01:12:49,490 --> 01:12:50,970 Hoe Merge soort werk? 1408 01:12:50,970 --> 01:12:55,220 >> GEHOOR: So werk dit deur verdeel in die helfte alles 1409 01:12:55,220 --> 01:13:00,660 en dan om dit saam en herverdeling dit in orde is, 1410 01:13:00,660 --> 01:13:02,862 soos elke keer as jy saamsmelt die stelle. 1411 01:13:02,862 --> 01:13:03,820 PROFESSOR: Pretty much. 1412 01:13:03,820 --> 01:13:06,861 So ek kan dit trek uit, maar dit sou neem my vyf minute om dit uit te trek. 1413 01:13:06,861 --> 01:13:10,220 Kyk terug na die artikel skyfies waar ons gedek Merge soort. 1414 01:13:10,220 --> 01:13:10,790 Presies. 1415 01:13:10,790 --> 01:13:13,406 >> So die manier Merge soort werke is dit dinge verdeel in die helfte, 1416 01:13:13,406 --> 01:13:15,780 en dan lyk dit net op die eerste waardes van almal van hulle 1417 01:13:15,780 --> 01:13:17,000 en sorteer net dat. 1418 01:13:17,000 --> 01:13:20,364 Voortdurend skep nuwe skikkings en plaas dinge meer en meer in orde is. 1419 01:13:20,364 --> 01:13:23,030 En so terwyl dit is baie, baie vinnige omdat it's-- jy weet, 1420 01:13:23,030 --> 01:13:25,380 'n binêre soek is N teken van n. 1421 01:13:25,380 --> 01:13:27,880 Jy skep so baie verskillende skikkings dat jy 1422 01:13:27,880 --> 01:13:29,700 met behulp van 'n groot hoeveelheid van die geheue. 1423 01:13:29,700 --> 01:13:33,080 En so, terwyl dit is vinniger, die handel af hier is dat jy gebruik meer geheue. 1424 01:13:33,080 --> 01:13:38,490 >> En so, wenk, sorteer en soek bedek was 'n baie meer van hierdie jaar 1425 01:13:38,490 --> 01:13:41,610 as wat hulle in die jare vorige gewees het. 1426 01:13:41,610 --> 01:13:45,100 Julle moet sien dat dienooreenkomstig op die quiz weerspieël. 1427 01:13:45,100 --> 01:13:49,160 Ek sou beslis tyd gaan oor wat al die verskillende soorte 1428 01:13:49,160 --> 01:13:52,320 is, hoe binêre soek, hoe lineêre soek werk. 1429 01:13:52,320 --> 01:13:54,750 Hoe om dalk pseudokode kodeer diegene uit. 1430 01:13:54,750 --> 01:13:55,950 Wat is die loop tye? 1431 01:13:55,950 --> 01:13:59,210 Iets soos hardloop tye is baie maklik om af kopieer na 'n nota vel, 1432 01:13:59,210 --> 01:13:59,710 reg? 1433 01:13:59,710 --> 01:14:01,420 >> Dit is regtig moeilik wanneer jy in die middel van die toets 1434 01:14:01,420 --> 01:14:02,390 en jy het om uit te vind wat. 1435 01:14:02,390 --> 01:14:03,160 Kopieer dit neer. 1436 01:14:03,160 --> 01:14:05,550 Ek waarborg jou jy gaan nodig om te weet dat. 1437 01:14:05,550 --> 01:14:06,860 Wat is die trade-offs? 1438 01:14:06,860 --> 01:14:10,064 Ergste geval, die beste geval scenario vir almal van hulle, baie ken. 1439 01:14:10,064 --> 01:14:10,564 Ja? 1440 01:14:10,564 --> 01:14:12,730 >> GEHOOR: Het ons nodig het om te weet hoe om saam te smelt soort kode? 1441 01:14:12,730 --> 01:14:15,470 Soos, moet ons onthou die rekursiewe? 1442 01:14:15,470 --> 01:14:18,950 >> PROFESSOR: Ek glo dit hoogs, net want dit is soos redelik ingewikkeld. 1443 01:14:18,950 --> 01:14:22,282 Maar dit kan nie wees as ons infeasible jou vra om dit uit pseudokode gebruik. 1444 01:14:22,282 --> 01:14:22,781 Ja. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Yep, OK, nog een. 1447 01:14:29,170 --> 01:14:31,387 Dit kan in kom jy laaste stuk in 'n bietjie. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Ja? 1450 01:14:43,090 --> 01:14:44,930 Het almal hoor dit? 1451 01:14:44,930 --> 01:14:48,360 >> OK, so pretty much eerste alles, watter tipe program 1452 01:14:48,360 --> 01:14:51,000 sou wees gee jou 'n uitset soos hierdie? 1453 01:14:51,000 --> 01:14:54,350 Onthou ons jou gevra om te leer oor hierdie nuwe tipe debugging hulpmiddel? 1454 01:14:54,350 --> 01:14:57,340 Wat was die naam van dit? 1455 01:14:57,340 --> 01:14:59,460 Valgrind, reg 1456 01:14:59,460 --> 01:15:02,600 >> Dit was 'n program waar jy kan noem wat kan 1457 01:15:02,600 --> 01:15:05,940 hou van al die geheue jy die gebruik van jou program en aan die gang was. 1458 01:15:05,940 --> 01:15:11,090 So as jy het iets soos, beslis verloor, 40 grepe in een blok. 1459 01:15:11,090 --> 01:15:14,870 Waarskynlik is jy nie onthou om dit te bevry. 1460 01:15:14,870 --> 01:15:18,710 Want as jy die gebruik van grepe van die geheue, dit beteken dat jy het toegang tot dat die geheue, 1461 01:15:18,710 --> 01:15:20,240 maar jy is nie in staat om te vry was. 1462 01:15:20,240 --> 01:15:21,948 So wat jy wil maak seker dat jy ook is 1463 01:15:21,948 --> 01:15:31,420 gebruik van free-- dit is 'n function-- om alles gratis 1464 01:15:31,420 --> 01:15:34,930 van die geheue hertoegewys deur malloc. 1465 01:15:34,930 --> 01:15:35,500 >> Koel. 1466 01:15:35,500 --> 01:15:37,140 So hierdie skuif, sal ek dit op. 1467 01:15:37,140 --> 01:15:41,050 Dit is oral in 'n baie lesings, in 'n baie van artikel skyfies. 1468 01:15:41,050 --> 01:15:44,254 Jy wil regtig om seker te maak jy weet net al hierdie dinge. 1469 01:15:44,254 --> 01:15:47,170 Óf in jou kennis vel of as jy dit wil memoriseer, voel vry om. 1470 01:15:47,170 --> 01:15:48,836 Dit is baie, baie, baie belangrik. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> Ook 'n baie goeie vraag wat ons kan vra. 1473 01:15:56,890 --> 01:16:00,320 Hoekom is Seleksie sort-- blik op Seleksie sort-- al die Runtimes 1474 01:16:00,320 --> 01:16:02,060 is N kwadraat. 1475 01:16:02,060 --> 01:16:06,714 Ongeag van hoe die lys kom by jou as, so hoekom is Seleksie sort-- 1476 01:16:06,714 --> 01:16:08,630 Ek sal julle ouens gee 30 tweede dink hieroor. 1477 01:16:08,630 --> 01:16:10,700 Want dit is soort van verwarrend. 1478 01:16:10,700 --> 01:16:12,710 Dit behels 'n konseptuele denke. 1479 01:16:12,710 --> 01:16:16,470 Waarom sou die aanloop tye dieselfde in beide die ergste en die beste geval scenario? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Ja? 1482 01:16:30,000 --> 01:16:38,084 >> GEHOOR: Omdat Seleksie soort elk posisie of ruimte in hierdie klein verskeidenheid 1483 01:16:38,084 --> 01:16:40,350 ding of wat ook al. 1484 01:16:40,350 --> 01:16:44,430 So selfs in die beste geval, selfs al is dit perfek is gesorteer, 1485 01:16:44,430 --> 01:16:47,380 sou dit nog steeds te wees soos, OK, een. 1486 01:16:47,380 --> 01:16:49,000 In my eerste plek het ek een. 1487 01:16:49,000 --> 01:16:50,250 En gaan deur almal van hulle. 1488 01:16:50,250 --> 01:16:51,249 OK, een is die kleinste. 1489 01:16:51,249 --> 01:16:53,053 En dan weer gaan dit en is soos, OK, twee 1490 01:16:53,053 --> 01:16:54,594 is die kleinste van al die dinge. 1491 01:16:54,594 --> 01:16:56,804 Maar dit het nog check elkeen. 1492 01:16:56,804 --> 01:16:57,470 PROFESSOR: Ja. 1493 01:16:57,470 --> 01:17:00,490 So byvoorbeeld, laat ons net sê Ons het 'n lys, wat reeds gesorteer, 1494 01:17:00,490 --> 01:17:03,390 'n skikking 04:59. 1495 01:17:03,390 --> 01:17:07,100 Die manier waarop Seleksie vorme is dat dit gaan deur, dit kontroleer hierdie twee. 1496 01:17:07,100 --> 01:17:08,234 Dan tjeks dit daardie twee. 1497 01:17:08,234 --> 01:17:09,650 En dan is dit tjeks, en dit kontroleer. 1498 01:17:09,650 --> 01:17:13,285 Dit hou die nagaan van alle van hulle, ongeag of nie 1499 01:17:13,285 --> 01:17:14,160 dit is eintlik gesorteer. 1500 01:17:14,160 --> 01:17:16,450 Want dit is eenvoudig die manier waarop die soort werk. 1501 01:17:16,450 --> 01:17:19,530 >> En so die vraag is soort van soos 'n konseptuele vraag wat ons sal vra. 1502 01:17:19,530 --> 01:17:21,430 Waar die eerste, jy weet wat Seleksie soort 1503 01:17:21,430 --> 01:17:23,304 is, reg te wees, om om die vraag te beantwoord. 1504 01:17:23,304 --> 01:17:26,200 Jy moet in staat wees om te verstaan konseptueel wat aangaan. 1505 01:17:26,200 --> 01:17:30,760 En dan kan jy aansoek doen dit en dink, OK laat dink net die ergste geval scenario. 1506 01:17:30,760 --> 01:17:32,230 Hulle is almal in dalende volgorde. 1507 01:17:32,230 --> 01:17:33,290 Hoe sou dit raak nie? 1508 01:17:33,290 --> 01:17:34,650 >> Wat as dit stygende volgorde? 1509 01:17:34,650 --> 01:17:35,640 Indien dit reeds is gesorteer? 1510 01:17:35,640 --> 01:17:37,240 Hoe sou dit invloed op die Runtimes? 1511 01:17:37,240 --> 01:17:40,270 En dan Seleksie soort, sal jy sien dat dit nie eintlik saak nie. 1512 01:17:40,270 --> 01:17:43,500 Omdat jy die beheer van is al die waardes, ongeag van wat gebeur. 1513 01:17:43,500 --> 01:17:45,810 >> En so goeie dinge om te onthou. 1514 01:17:45,810 --> 01:17:50,290 Waarom sommige vorme verskil van ander en hoe om die beste en die ergste geval scenario's 1515 01:17:50,290 --> 01:17:52,740 sou almal van hulle te beïnvloed. 1516 01:17:52,740 --> 01:17:56,700 >> Ek gaan regtig getref in allerhande want dit sal wees op die quiz. 1517 01:17:56,700 --> 01:17:57,199 Ja. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OK. 1520 01:18:01,320 --> 01:18:05,590 Daar is ses minute oor. 1521 01:18:05,590 --> 01:18:09,880 Ek kan drie minute van die vrae te neem. 1522 01:18:09,880 --> 01:18:12,290 Ek kan ook rond te hang vir soos 20 minute na artikel 1523 01:18:12,290 --> 01:18:13,850 as jy wil om vrae te vra as well. 1524 01:18:13,850 --> 01:18:16,330 Is daar iemand het net regtig kort vrae of konseptuele kwessies 1525 01:18:16,330 --> 01:18:17,360 hulle is onseker oor die nou? 1526 01:18:17,360 --> 01:18:17,832 Ja? 1527 01:18:17,832 --> 01:18:19,720 >> GEHOOR: Kan jy 'n bietjie praat bietjie oor bis operateurs? 1528 01:18:19,720 --> 01:18:20,280 >> PROFESSOR: Ja. 1529 01:18:20,280 --> 01:18:22,446 So bis operateurs iets wat jy waarskynlik 1530 01:18:22,446 --> 01:18:24,170 dalk net wil op jou vel te sit. 1531 01:18:24,170 --> 01:18:27,540 So quickly-- Ek wil nie te veel in diepte gaan 1532 01:18:27,540 --> 01:18:31,164 omdat Harvard, in hul review sessie, bedek dit baie goed. 1533 01:18:31,164 --> 01:18:33,080 Bis operateur, is daar vyf van hulle, reg? 1534 01:18:33,080 --> 01:18:41,370 >> Daar is hierdie, wat is x of funksie, daar is ampersand, wat is die en. 1535 01:18:41,370 --> 01:18:44,050 Pyp, wat is die of. 1536 01:18:44,050 --> 01:18:46,790 En dan moet jy die twee verskillende tipes verskuiwings. 1537 01:18:46,790 --> 01:18:50,610 >> As ek vir jou twee waardes, as Ek gee jou, soos, een en 'n. 1538 01:18:50,610 --> 01:18:52,390 Wat sou dit evalueer? 1539 01:18:52,390 --> 01:18:55,490 As ek vir jou waar en waar is, waar? 1540 01:18:55,490 --> 01:18:56,930 Wat van waar of vals? 1541 01:18:56,930 --> 01:18:57,830 Steeds waar, reg? 1542 01:18:57,830 --> 01:18:59,762 Want daar is 'n of. 1543 01:18:59,762 --> 01:19:01,220 Ons sal waarskynlik gee jou nommers. 1544 01:19:01,220 --> 01:19:03,780 So onthou, een is gelyk aan ware, nul is gelyk aan onwaar. 1545 01:19:03,780 --> 01:19:07,407 En ons kan gee jy hierdie dinge en vra om ons te vertel wat gebeur. 1546 01:19:07,407 --> 01:19:10,240 Harvard dek dit binne die eerste 10 minute van hul studie sessie 1547 01:19:10,240 --> 01:19:11,230 regtig, regtig goed. 1548 01:19:11,230 --> 01:19:14,260 So julle ouens wil maak seker dat jy terug kyk op daardie. 1549 01:19:14,260 --> 01:19:16,387 >> GEHOOR: Is pisa5 gaan wees op die quiz? 1550 01:19:16,387 --> 01:19:16,970 PROFESSOR: No. 1551 01:19:16,970 --> 01:19:18,240 Moet nie eers kyk na pisa5 nou. 1552 01:19:18,240 --> 01:19:18,810 Dit is moeilik. 1553 01:19:18,810 --> 01:19:22,830 Net nie eens die moeite om na pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> Maar, soos 'n paar wenke en voorstelle, ek 1555 01:19:25,665 --> 01:19:28,320 stel voor jy begin pisa5 sodra die quiz is verby. 1556 01:19:28,320 --> 01:19:30,319 Dit sal die hardste wees week, maar dan moet jy ouens 1557 01:19:30,319 --> 01:19:34,590 sal deurgegee dit op die heuwels van rollende groen en hondjies, 1558 01:19:34,590 --> 01:19:36,115 en dit is goed. 1559 01:19:36,115 --> 01:19:39,810 >> Hierdie klas kry beduidende makliker na die vyfde pset. 1560 01:19:39,810 --> 01:19:41,560 GEHOOR: Kantoor ure is Sondag, Maandag? 1561 01:19:41,560 --> 01:19:44,260 PROFESSOR: Ja, so kantoorure sal die Sondag tot Maandag vir die pset. 1562 01:19:44,260 --> 01:19:47,009 Kantoorure vanaand wese sal net vir die hersiening quiz wees. 1563 01:19:47,009 --> 01:19:50,350 As iemand wil om in te kom en vra die Tas 'n vraag, sal ons daar wees. 1564 01:19:50,350 --> 01:19:53,220 >> Ek sal dalk nog 'n vraag te neem As iemand het 'n vraag? 1565 01:19:53,220 --> 01:19:53,809 Ja? 1566 01:19:53,809 --> 01:19:55,850 GEHOOR: As jy definieer nodes, [onhoorbaar] 1567 01:19:55,850 --> 01:20:00,700 as jy sê node ster en dan volgende, doen die rekenaar outomaties 1568 01:20:00,700 --> 01:20:03,610 verstaan ​​dat jy verwys na 'n ander wyser? 1569 01:20:03,610 --> 01:20:04,580 >> PROFESSOR: No. 1570 01:20:04,580 --> 01:20:06,710 >> GEHOOR: Jy moet Herkoppel dit [onhoorbaar]? 1571 01:20:06,710 --> 01:20:09,270 >> PROFESSOR: So basies struct van 'n node is, onthou, 1572 01:20:09,270 --> 01:20:12,620 dit is soos jy die knoop skep en dan moet jy 'n wyser genoem volgende. 1573 01:20:12,620 --> 01:20:14,630 Al wat jy doen is om die struktuur daar. 1574 01:20:14,630 --> 01:20:16,387 Jy het om te wys wat iewers aanwijzer. 1575 01:20:16,387 --> 01:20:18,470 So het die rekenaars nie weet wat dit nog doen. 1576 01:20:18,470 --> 01:20:20,250 Jy moet eintlik ken dit toe jy skep jou geskakelde lys. 1577 01:20:20,250 --> 01:20:22,170 En dit is wat hoofsaaklik pset 5 sal wees op. 1578 01:20:22,170 --> 01:20:24,106 So geen bekommernisse oor enige van daardie reg nou. 1579 01:20:24,106 --> 01:20:26,380 >> GEHOOR: So het ons nie nodig het om te fokus te veel op die skakel lys, net 1580 01:20:26,380 --> 01:20:27,440 die algemene opvatting? 1581 01:20:27,440 --> 01:20:30,980 >> PROFESSOR: Slegs pretty much stapels, toue, skakel lyste, bome, hash tabelle. 1582 01:20:30,980 --> 01:20:33,639 Net in staat wees om te weet wat hulle is. 1583 01:20:33,639 --> 01:20:35,680 Ons gaan nie om te vra jy enigiets spesifieke graag 1584 01:20:35,680 --> 01:20:39,300 want ons het nie regtig gedoen het 'n pset dat die dek enige van daardie nie. 1585 01:20:39,300 --> 01:20:45,540 >> So in die laaste twee minute voor Ek stel jou vry om hierdie quiz dood te maak. 1586 01:20:45,540 --> 01:20:49,370 Pretty much, soos, dink oor hoe ver jy ouens het gekom in hierdie klas. 1587 01:20:49,370 --> 01:20:52,820 >> Ek onthou toe week twee van hierdie klas, sommige van julle 1588 01:20:52,820 --> 01:20:55,720 spandeer drie uur skryf water. 1589 01:20:55,720 --> 01:20:57,970 Hoe lank sal dit jou neem ouens om water nou skryf? 1590 01:20:57,970 --> 01:20:59,670 30 sekondes, miskien? 1591 01:20:59,670 --> 01:21:01,810 Dink oor hoeveel julle ouens geleer het. 1592 01:21:01,810 --> 01:21:04,320 CS is 'n baie, baie hard onderwerp. 1593 01:21:04,320 --> 01:21:06,190 Daar is geen twyfel dat. 1594 01:21:06,190 --> 01:21:09,160 Dit is moeilik, dit is hoekom niemand bestudeer dit. 1595 01:21:09,160 --> 01:21:10,730 Dis net hard. 1596 01:21:10,730 --> 01:21:11,650 En dit is heeltemal fyn. 1597 01:21:11,650 --> 01:21:14,150 >> En ek is baie trots dat almal het dit so ver gemaak. 1598 01:21:14,150 --> 01:21:16,380 Psets is nie maklik nie. 1599 01:21:16,380 --> 01:21:17,790 Hulle neem 'n baie van tyd. 1600 01:21:17,790 --> 01:21:22,580 Julle ouens, ek sal nooit vra om te skryf die spel van die 15 of Vigenere op die pset. 1601 01:21:22,580 --> 01:21:24,160 Geen behoefte om net freak uit oor dat. 1602 01:21:24,160 --> 01:21:28,080 Al wat ons hier toets is om te evalueer jou konseptuele kennis, sowel 1603 01:21:28,080 --> 01:21:31,524 as sommige van jou basiese vaardighede van kodering. 1604 01:21:31,524 --> 01:21:33,440 Die toets is ontwerp om regtig uitdagend. 1605 01:21:33,440 --> 01:21:36,180 Soos, is dit ontwerp vir jou om nie te kry 100. 1606 01:21:36,180 --> 01:21:39,880 Dit is ook ontwerp vir jou om seker nie in staat wees om te voltooi in 75 minute. 1607 01:21:39,880 --> 01:21:41,995 En dit is heeltemal fyn. 1608 01:21:41,995 --> 01:21:42,870 Ek is 'n student myself. 1609 01:21:42,870 --> 01:21:45,960 Ek weet, ek haat dit as ek loop uit 'n quiz wees, kak. 1610 01:21:45,960 --> 01:21:47,044 Dit was werklik moeilik. 1611 01:21:47,044 --> 01:21:49,460 Waarskynlik wat gaan happen-- en dit is heeltemal fyn, 1612 01:21:49,460 --> 01:21:50,751 Ek vertel julle nou. 1613 01:21:50,751 --> 01:21:53,190 Die middel van hierdie dinge is nie hoog op almal. 1614 01:21:53,190 --> 01:21:55,360 >> En vir diegene van julle wat is steeds, soos, 1615 01:21:55,360 --> 01:21:57,870 drieë op jou probleem stelle, dit beteken nie dat jy 1616 01:21:57,870 --> 01:21:59,536 gaan 'n 60 persent te kry in hierdie klas. 1617 01:21:59,536 --> 01:22:01,440 As jy 60% op die quiz, beteken dit nie 1618 01:22:01,440 --> 01:22:03,330 beteken jy gaan kry 'n D in hierdie klas. 1619 01:22:03,330 --> 01:22:05,740 Ons sien, veral ek, want dié van julle in my artikel, 1620 01:22:05,740 --> 01:22:07,406 Ek sien hoe hard jy ouens is almal werk. 1621 01:22:07,406 --> 01:22:09,190 En ek hou van dit. 1622 01:22:09,190 --> 01:22:11,420 >> Julle sal goed wees. 1623 01:22:11,420 --> 01:22:14,580 Daar is geen nagedagtenis van institusionele geluk aan die einde van die semester. 1624 01:22:14,580 --> 01:22:16,840 Omdat al die Harvard kinders vertel hul vriende, o, sal jy goed wees. 1625 01:22:16,840 --> 01:22:18,381 Niemand is wat jy vertel ouens wat hier. 1626 01:22:18,381 --> 01:22:20,950 So ek het vir julle dat hier ouens vertel. 1627 01:22:20,950 --> 01:22:22,280 >> Julle sal goed wees. 1628 01:22:22,280 --> 01:22:24,080 Ek is so trots op almal van julle ouens. 1629 01:22:24,080 --> 01:22:25,680 Die toets sal moeilik wees. 1630 01:22:25,680 --> 01:22:28,140 Bestudeer dit, en daarna net gooi dit weg. 1631 01:22:28,140 --> 01:22:31,280 Maak gereed om nuwe dinge te leer. 1632 01:22:31,280 --> 01:22:33,990 En eet snoep. 1633 01:22:33,990 --> 01:22:35,940 Ons het baie van die lekkergoed. 1634 01:22:35,940 --> 01:22:37,760 >> Kry 'n goeie nagrus se. 1635 01:22:37,760 --> 01:22:40,420 Moenie slaap nie, want wat regtig 'n slegte wil wees. 1636 01:22:40,420 --> 01:22:41,490 CS is 'n baie van die logika. 1637 01:22:41,490 --> 01:22:44,960 As jy nie slaap nie, kan jy nie funksioneer, en jou brein kan nie funksioneer. 1638 01:22:44,960 --> 01:22:48,780 En ek sal hier wees vir die volgende 20 minute as iemand wil om rond te hang. 1639 01:22:48,780 --> 01:22:51,150 Julle gaan dit dood te maak. 1640 01:22:51,150 --> 01:22:53,000 Sterkte. 1641 01:22:53,000 --> 01:22:55,663