1 00:00:00,000 --> 00:00:11,046 2 00:00:11,046 --> 00:00:12,170 ALLISON BUCHHOLTZ-AU: Hej, alle sammen. 3 00:00:12,170 --> 00:00:13,560 Velkommen til sektionen. 4 00:00:13,560 --> 00:00:17,320 I dag er bare at være alt quiz gennemgå for din quiz på onsdag. 5 00:00:17,320 --> 00:00:20,060 Jeg håber, at alle husker, at de har en quiz på onsdag. 6 00:00:20,060 --> 00:00:22,560 Og hvis du ikke gjorde det, ja, nu har du blevet mindet om. 7 00:00:22,560 --> 00:00:26,486 Så onsdag sørg for at du dukker op for klasse eller andre overnatningssteder, som 8 00:00:26,486 --> 00:00:26,985 nødvendigt. 9 00:00:26,985 --> 00:00:27,845 10 00:00:27,845 --> 00:00:29,220 Du fyre kommer til at være awesome. 11 00:00:29,220 --> 00:00:30,440 Det kommer til at være stor. 12 00:00:30,440 --> 00:00:34,910 Og jeg har tænkt mig at gøre alt, hvad jeg kan at hjælpe med at forberede dig i dag for din quiz 13 00:00:34,910 --> 00:00:35,470 nu. 14 00:00:35,470 --> 00:00:39,960 Og også i tilfælde af at du ikke kender, der er et kursus bred gennemgang session 15 00:00:39,960 --> 00:00:45,840 i dag Klokken 7 i Northwest labs værelse B103. 16 00:00:45,840 --> 00:00:49,950 Du kan se mig igen til et ekstranummer som Jeg vil lede en del af denne gennemgang session 17 00:00:49,950 --> 00:00:50,510 også. 18 00:00:50,510 --> 00:00:53,218 Så hvis du ikke kan få nok af mig nu, kan du komme igen i aften. 19 00:00:53,218 --> 00:00:54,130 20 00:00:54,130 --> 00:00:56,060 >> Okay, så første ting først. 21 00:00:56,060 --> 00:00:59,630 Blot nogle quiz tips, før vi faktisk dykke i til anmeldelser. 22 00:00:59,630 --> 00:01:04,160 Så som med enhver eksamen, praksis vil helt sikkert hjælpe dig ud. 23 00:01:04,160 --> 00:01:09,260 Der er prøver fra fortiden seks eller syv år på der, 24 00:01:09,260 --> 00:01:12,480 så der er en masse praksis materiale til jer at have. 25 00:01:12,480 --> 00:01:15,340 Og i virkeligheden, i dag er egentlig bare kommer til at gå over alle emner 26 00:01:15,340 --> 00:01:18,900 at du fyre har spørgsmål om såvel som arbejder gennem praksis problemer 27 00:01:18,900 --> 00:01:20,360 fra quiz nul. 28 00:01:20,360 --> 00:01:22,690 Så jeg vil kaste op quiz nul fra sidste år om her, 29 00:01:22,690 --> 00:01:26,410 og vi kan arbejde gennem eventuelle problemer at jer gerne vil. 30 00:01:26,410 --> 00:01:27,370 >> Så øve. 31 00:01:27,370 --> 00:01:29,310 Du kommer til at begynde at gøre det i dag. 32 00:01:29,310 --> 00:01:30,230 Kode på papir. 33 00:01:30,230 --> 00:01:32,970 Så ja, hvis alle faktisk kunne komme ud 34 00:01:32,970 --> 00:01:35,810 papir, vil det være fantastisk, fordi du ikke er 35 00:01:35,810 --> 00:01:41,470 vil have din computer på eksamen og skrive ud kode ved hånden 36 00:01:41,470 --> 00:01:44,190 er ofte meget vanskeligere end man kunne forvente. 37 00:01:44,190 --> 00:01:46,680 Du er vant til bare se det og skrive det, 38 00:01:46,680 --> 00:01:49,630 og du har din compiler til hjælpe dig ud, når du har fejl, 39 00:01:49,630 --> 00:01:52,190 men du får ikke at på eksamen. 40 00:01:52,190 --> 00:01:55,140 Så det er virkelig vigtigt at faktisk være i stand til at skrive koden ud, 41 00:01:55,140 --> 00:01:58,360 og at muskel hukommelse at gøre det i hånden vil virkelig hjælpe dig. 42 00:01:58,360 --> 00:01:59,720 43 00:01:59,720 --> 00:02:01,690 >> Så vi får en lidt tæt. 44 00:02:01,690 --> 00:02:02,340 Det er mandag. 45 00:02:02,340 --> 00:02:03,930 Din eksamen er på onsdag. 46 00:02:03,930 --> 00:02:06,030 Men hvis du har tid, helt sikkert tage en 47 00:02:06,030 --> 00:02:10,199 af prøverne fra sidste år eller året før under tidspresset 48 00:02:10,199 --> 00:02:11,660 af en time og en halv. 49 00:02:11,660 --> 00:02:13,730 Bare knock out time og halvdelen af ​​tiden, 50 00:02:13,730 --> 00:02:17,480 og sæt dig ned, og bare arbejde gennem de problemer, 51 00:02:17,480 --> 00:02:19,962 som hvis du var faktisk at tage det, fordi man 52 00:02:19,962 --> 00:02:23,295 af de største ting, som vi hører om quizzer er, at de er meget lange. 53 00:02:23,295 --> 00:02:24,900 54 00:02:24,900 --> 00:02:26,660 Det er en masse af materiale. 55 00:02:26,660 --> 00:02:30,850 Der er en masse spørgsmål, og de fleste mennesker kan ikke afslutte. 56 00:02:30,850 --> 00:02:34,660 Jeg ved, at jeg helt ikke færdig mine quizzer da jeg tog klassen. 57 00:02:34,660 --> 00:02:37,180 >> På dette notat, som et mindre komfortabel sektion, 58 00:02:37,180 --> 00:02:40,570 forstå, at dette kursus er tiltænkt at tage højde for folk på alle niveauer. 59 00:02:40,570 --> 00:02:43,640 Hele grunden, vi har du opdele mindre behagelig, et sted mellem, 60 00:02:43,640 --> 00:02:47,660 og mere komfortabel at slags gøre det mere fair. 61 00:02:47,660 --> 00:02:51,699 Og hvis du er mindre behageligt, det er ikke nødvendigt i sig selv at få alt. 62 00:02:51,699 --> 00:02:53,990 Ligesom hvis du skulle få alt, ville du sandsynligvis 63 00:02:53,990 --> 00:02:55,448 være i mere komfortabel sektion. 64 00:02:55,448 --> 00:03:00,160 Så naturligvis ikke slå jer op for hårdt, hvis du ikke kan afslutte eksamen. 65 00:03:00,160 --> 00:03:01,920 Tag det fra mig, havde jeg ikke gøre det. 66 00:03:01,920 --> 00:03:03,070 Jeg er stadig en koncentrator. 67 00:03:03,070 --> 00:03:04,630 Jeg er stadig at hjælpe undervise kurset. 68 00:03:04,630 --> 00:03:06,170 Du vil være fint. 69 00:03:06,170 --> 00:03:06,670 Ok. 70 00:03:06,670 --> 00:03:08,740 Og endelig få noget søvn. 71 00:03:08,740 --> 00:03:11,020 Naturligvis med enhver prøve vi altid siger dette. 72 00:03:11,020 --> 00:03:13,610 Proppe natten før og ikke får nogen søvn 73 00:03:13,610 --> 00:03:16,390 gør not-- måske hvis det virker for dig, gå til den. 74 00:03:16,390 --> 00:03:18,790 Men for størstedelen af mennesker, at få nogle søvn, 75 00:03:18,790 --> 00:03:22,390 lade din hjerne hvile og komme sig før kommer i til eksamen 76 00:03:22,390 --> 00:03:23,480 vil virkelig hjælpe dig. 77 00:03:23,480 --> 00:03:26,120 Der vil også næsten sikkert være slik ved eksamen, 78 00:03:26,120 --> 00:03:28,019 så du er nødt til at se frem til. 79 00:03:28,019 --> 00:03:29,310 Du fyre vil gøre stor. 80 00:03:29,310 --> 00:03:30,226 Det kommer til at være fint. 81 00:03:30,226 --> 00:03:31,570 82 00:03:31,570 --> 00:03:36,190 Og nu i den næste time og en halv jeg vil forsøge og prep dig som bedste, som jeg kan. 83 00:03:36,190 --> 00:03:41,260 >> Så jeg har slides fra grunden alle sektioner indtil nu. 84 00:03:41,260 --> 00:03:45,874 Jeg har ikke tænkt mig at gå igennem alle dem, fordi der ikke er 85 00:03:45,874 --> 00:03:49,040 anvendes i en time og en halv samt som arbejder gennem praksis problemer. 86 00:03:49,040 --> 00:03:51,410 Så i stedet har jeg en liste over emner. 87 00:03:51,410 --> 00:03:55,160 Disse er alle de ting, at vi kunne quiz dig på. 88 00:03:55,160 --> 00:03:56,950 89 00:03:56,950 --> 00:03:58,770 Hvis der er noget der virkelig springer ud 90 00:03:58,770 --> 00:04:02,140 at du ønsker at gå over, at du vil have mig til at gå over begrebsmæssigt, 91 00:04:02,140 --> 00:04:04,320 Jeg kan forsøge at give dig et overblik der. 92 00:04:04,320 --> 00:04:07,690 Eller hvis du ønsker at hoppe ret i at gøre praksis problemer sammen, 93 00:04:07,690 --> 00:04:08,420 vi kan gøre det. 94 00:04:08,420 --> 00:04:09,330 Det er op til jer. 95 00:04:09,330 --> 00:04:10,770 Der er ikke så mange af jer. 96 00:04:10,770 --> 00:04:13,180 Så det er, hvad du fyre kan lide at gøre. 97 00:04:13,180 --> 00:04:15,667 Jeg ønsker at være den mest hjælpsom mod jer. 98 00:04:15,667 --> 00:04:16,827 99 00:04:16,827 --> 00:04:17,910 Så jeg vil lade dig bare se. 100 00:04:17,910 --> 00:04:27,880 101 00:04:27,880 --> 00:04:30,500 >> PUBLIKUM: Én ting er diagrammet, at vi holder 102 00:04:30,500 --> 00:04:33,290 siger om stakken og den bunke. 103 00:04:33,290 --> 00:04:34,600 104 00:04:34,600 --> 00:04:37,434 Bare hele idéen bag det, og hvad det betyder. 105 00:04:37,434 --> 00:04:38,350 ALLISON BUCHHOLTZ-AU: Ja, OK. 106 00:04:38,350 --> 00:04:40,290 107 00:04:40,290 --> 00:04:43,216 Dette er helt i ende, så lad mig rulle igennem. 108 00:04:43,216 --> 00:04:45,490 >> PUBLIKUM: Vi har ikke til gør det nu, men uanset hvad. 109 00:04:45,490 --> 00:04:47,070 110 00:04:47,070 --> 00:04:49,770 >> ALLISON BUCHHOLTZ-AU: Var der anything-- denne ene. 111 00:04:49,770 --> 00:04:51,570 112 00:04:51,570 --> 00:04:53,555 Er denne form for fuzzy for mennesker? 113 00:04:53,555 --> 00:04:54,390 114 00:04:54,390 --> 00:04:55,640 PUBLIKUM: Ja, jeg sekund det. 115 00:04:55,640 --> 00:04:57,718 Og kan vi også buffer overflow? 116 00:04:57,718 --> 00:04:58,926 ALLISON BUCHHOLTZ-AU: Buffer overflow? 117 00:04:58,926 --> 00:04:59,820 OK. 118 00:04:59,820 --> 00:05:03,460 Så buffer overflow er temmelig let bare at snakke om. 119 00:05:03,460 --> 00:05:08,217 Det er dybest set buffere du synes om nogle matrix hukommelse, som du har ret? 120 00:05:08,217 --> 00:05:10,050 Vi taler typisk om buffer overflow når 121 00:05:10,050 --> 00:05:15,160 du ikke kontrollere, hvor meget brugeren er i færd med, right? 122 00:05:15,160 --> 00:05:18,540 Og ideen er med buffer overflow er 123 00:05:18,540 --> 00:05:21,535 de sætter i langt for mange data til rummet 124 00:05:21,535 --> 00:05:23,780 at du har afsat til dem, right? 125 00:05:23,780 --> 00:05:28,310 >> Så hvis du siger, giver mig nogle budskab, er vi 126 00:05:28,310 --> 00:05:31,860 under forudsætning af, at de kommer til at give os en rimelig længde besked. 127 00:05:31,860 --> 00:05:33,910 Måske et par linjer, whatnot. 128 00:05:33,910 --> 00:05:35,150 Så vi ikke kontrollere. 129 00:05:35,150 --> 00:05:38,160 I stedet de foder os i en hele bogen, der er et budskab, 130 00:05:38,160 --> 00:05:42,450 og det flyder mængden af rum, som vi har afsat til dette. 131 00:05:42,450 --> 00:05:48,140 Og hvad der sker, er det måske overskrive steder, at det ikke er meningen. 132 00:05:48,140 --> 00:05:52,890 >> Så jeg ved Professor Malan sagde noget om buffer overflow angreb. 133 00:05:52,890 --> 00:05:59,050 Så det er, hvor brugeren vil input nogle massive mængde af data i håb 134 00:05:59,050 --> 00:06:02,840 at han overskriver forbi slutningen af ​​din buffer 135 00:06:02,840 --> 00:06:06,479 og erstatter something-- jeg spekulerer Jeg vi har disse dias i her. 136 00:06:06,479 --> 00:06:08,270 Jeg tror ikke, vi har disse dias i her. 137 00:06:08,270 --> 00:06:09,960 138 00:06:09,960 --> 00:06:14,460 Men dybest set han overskriver en del af hukommelse 139 00:06:14,460 --> 00:06:17,780 der tillader ham adgang til dele af din computer 140 00:06:17,780 --> 00:06:19,530 at du ikke ville normalt har adgang til. 141 00:06:19,530 --> 00:06:20,750 142 00:06:20,750 --> 00:06:23,155 >> Største ting med buffer overflow er bare 143 00:06:23,155 --> 00:06:26,420 at forstå, at det sker, når du ikke er 144 00:06:26,420 --> 00:06:29,210 at kontrollere, hvor meget din brugeren er i færd med. 145 00:06:29,210 --> 00:06:32,770 Når du ikke er slags sikring imod. 146 00:06:32,770 --> 00:06:36,820 Og ved sin simpleste ting, det er bare din bruger 147 00:06:36,820 --> 00:06:39,130 indlæsning af en massiv mængde af data i et forsøg 148 00:06:39,130 --> 00:06:45,090 at overskrive en vis sikkerhed del af din hukommelse. 149 00:06:45,090 --> 00:06:46,310 Det er alt det er. 150 00:06:46,310 --> 00:06:49,810 >> Så dette her, stable og bunke. 151 00:06:49,810 --> 00:06:53,090 Dybest set alt dette er blot en repræsentation af hukommelse 152 00:06:53,090 --> 00:06:54,449 og hvor gemmes ting. 153 00:06:54,449 --> 00:06:56,240 Det er virkelig slags alt hvad du behøver at vide. 154 00:06:56,240 --> 00:06:58,520 De største ting, du behøver at vide er 155 00:06:58,520 --> 00:07:01,910 at-- lad mig se, om der er en better-- her. 156 00:07:01,910 --> 00:07:05,380 Så dette er stakken her. 157 00:07:05,380 --> 00:07:08,410 >> Så stak har at gøre med alle dine funktioner 158 00:07:08,410 --> 00:07:10,140 at du ringer på et givent tidspunkt. 159 00:07:10,140 --> 00:07:15,060 Og hvad der er vigtigt at huske gå ud af sidste uge med malloc 160 00:07:15,060 --> 00:07:21,080 er, at du ikke rigtig har nødvendige kontrol over det. 161 00:07:21,080 --> 00:07:24,780 Det hele afhænger af, hvornår visse funktioner er fuldbyrdende. 162 00:07:24,780 --> 00:07:28,170 Og når de udfører de har det, der kaldes stakrammer 163 00:07:28,170 --> 00:07:29,290 at gå op her. 164 00:07:29,290 --> 00:07:32,520 >> Så det alle slags sker uden nogen reel input fra dig. 165 00:07:32,520 --> 00:07:33,630 166 00:07:33,630 --> 00:07:35,510 Du skriver dit program, og du lader det køre, 167 00:07:35,510 --> 00:07:38,470 og stablen slags tager pleje af sig selv som det skal. 168 00:07:38,470 --> 00:07:42,940 Så hvis i main du ringer terning, der vil blive gået op her. 169 00:07:42,940 --> 00:07:44,110 Det vil skabe en ramme. 170 00:07:44,110 --> 00:07:48,330 Men der er intet du udtrykkeligt gøre at skabe dette stakramme andet end 171 00:07:48,330 --> 00:07:51,430 skrive funktionen til at begynde med, OK? 172 00:07:51,430 --> 00:07:56,500 >> Hvad er slags under dit kontrol er den bunke med malloc. 173 00:07:56,500 --> 00:08:01,950 Så når du malloc noget, du tager hukommelse fra den bunke. 174 00:08:01,950 --> 00:08:05,110 Og det er hukommelse, som du har, i mangel af et bedre ord, 175 00:08:05,110 --> 00:08:10,300 eksplicit kontrol over, fordi husker med malloc 176 00:08:10,300 --> 00:08:12,530 det er dybest set der indtil du siger noget andet. 177 00:08:12,530 --> 00:08:14,890 For dem af jer, der overvågede sektion i sidste uge, 178 00:08:14,890 --> 00:08:17,670 Det er der, indtil du fortælle det til at gå væk. 179 00:08:17,670 --> 00:08:20,850 Det vil være der, medmindre ellers fortalt ikke. 180 00:08:20,850 --> 00:08:24,750 Så den bunke er bare noget du kan tænke på som hukommelse 181 00:08:24,750 --> 00:08:26,150 at du har kontrol over. 182 00:08:26,150 --> 00:08:29,010 Og dem er blot to forskellige store ting. 183 00:08:29,010 --> 00:08:31,320 184 00:08:31,320 --> 00:08:38,330 >> Andre end det, bør du ikke have at bekymre sig for meget om stakken og bunke 185 00:08:38,330 --> 00:08:42,159 spørgsmål eller typisk mere bare hvis du har lokale parametre 186 00:08:42,159 --> 00:08:45,385 eller en funktion ville det være på stakken eller bunke. 187 00:08:45,385 --> 00:08:47,260 Naturligvis i dette tilfælde det ville være stakken. 188 00:08:47,260 --> 00:08:49,630 Hvis du mallocing noget, hvor det kommer fra? 189 00:08:49,630 --> 00:08:50,129 Den bunke. 190 00:08:50,129 --> 00:08:51,147 191 00:08:51,147 --> 00:08:54,230 Hvis man ser på praksis quizzer, der er generelt den type spørgsmål 192 00:08:54,230 --> 00:08:55,460 at de har. 193 00:08:55,460 --> 00:08:57,340 >> Du behøver ikke at bekymre sig for meget om det. 194 00:08:57,340 --> 00:09:00,980 Du får ind i mere eksplicit om stakken og bunke 195 00:09:00,980 --> 00:09:03,460 senere, eller i andre CS klasser. 196 00:09:03,460 --> 00:09:06,220 Så bare have sådan en generel idé om, hvad det er 197 00:09:06,220 --> 00:09:09,100 vil være god, som jeg lige slags gik over. 198 00:09:09,100 --> 00:09:10,650 199 00:09:10,650 --> 00:09:12,090 Alle andre emner? 200 00:09:12,090 --> 00:09:12,590 Ja? 201 00:09:12,590 --> 00:09:14,923 >> PUBLIKUM: Kan du gå over pointere igen virkelig hurtigt? 202 00:09:14,923 --> 00:09:15,870 ALLISON BUCHHOLTZ-AU: Pointers? 203 00:09:15,870 --> 00:09:18,470 Ønsker du konceptuelle oversigt over pegepinde 204 00:09:18,470 --> 00:09:19,994 eller har du øve med pointers? 205 00:09:19,994 --> 00:09:21,410 PUBLIKUM: Lidt ligesom syntaksen. 206 00:09:21,410 --> 00:09:22,360 ALLISON BUCHHOLTZ-AU: Syntaksen? 207 00:09:22,360 --> 00:09:22,860 Ja. 208 00:09:22,860 --> 00:09:32,090 209 00:09:32,090 --> 00:09:33,090 OK, vi får der. 210 00:09:33,090 --> 00:09:38,300 211 00:09:38,300 --> 00:09:42,040 Yeah, så det er bare sådan noget når du har en rekursiv funktion, 212 00:09:42,040 --> 00:09:45,954 hver gang rekursiv funktion er kaldes, det øger blot anden stak ramme. 213 00:09:45,954 --> 00:09:47,870 Temmelig et eksempel af hvordan du ikke rigtig 214 00:09:47,870 --> 00:09:50,330 har kontrol over rammer på din stak. 215 00:09:50,330 --> 00:09:54,010 216 00:09:54,010 --> 00:09:54,585 >> OK, pointere. 217 00:09:54,585 --> 00:09:57,120 218 00:09:57,120 --> 00:09:59,235 Okay, så skaber pointere. 219 00:09:59,235 --> 00:10:00,300 220 00:10:00,300 --> 00:10:02,420 Husk, det er bare skriv stjerne. 221 00:10:02,420 --> 00:10:07,140 Så uanset hvilken type data, du kommer til at pege på. 222 00:10:07,140 --> 00:10:08,720 223 00:10:08,720 --> 00:10:11,440 Så det ville være en pegepind til en int. 224 00:10:11,440 --> 00:10:13,140 Dette ville være en pointer til en char. 225 00:10:13,140 --> 00:10:14,740 Dette ville være en pointer til en float. 226 00:10:14,740 --> 00:10:17,980 Så det er dybest set, hvad du ønsker det skal pege på, 227 00:10:17,980 --> 00:10:22,300 stjerne er, hvordan du erklærer markøren, OK? 228 00:10:22,300 --> 00:10:26,200 >> Men så selvfølgelig bliver lidt vanskelig, når du har pointer 229 00:10:26,200 --> 00:10:27,370 eller du har stjerne whatever. 230 00:10:27,370 --> 00:10:31,260 Så den store forskel er når du declaring-- 231 00:10:31,260 --> 00:10:45,590 så vi har some-- så dette tager nogle int stjerne. 232 00:10:45,590 --> 00:10:49,650 Så dette er nogle pointer opfordrer x til en int, right? 233 00:10:49,650 --> 00:10:54,600 Så husk hvad det betyder er dette kræver systemet x. 234 00:10:54,600 --> 00:10:56,970 Og det kommer til at har nogle adresse, right? 235 00:10:56,970 --> 00:11:00,515 Så lad os bare sige dette er vores adresse. 236 00:11:00,515 --> 00:11:01,590 237 00:11:01,590 --> 00:11:03,570 Pointers hold adresser. 238 00:11:03,570 --> 00:11:08,660 Så hvad det siger, er, at på dette placering, vi opbevare en int. 239 00:11:08,660 --> 00:11:10,770 240 00:11:10,770 --> 00:11:15,770 >> Så en anden måde, vi kan tænke på dette er, at dette er nogle int. 241 00:11:15,770 --> 00:11:17,010 242 00:11:17,010 --> 00:11:20,350 Vi har ikke rigtig overdraget det til noget endnu, men det er bare en int. 243 00:11:20,350 --> 00:11:31,540 Så vi kan gøre, er, hvis vi gør stjerne x lig 5, bliver denne en 5, OK? 244 00:11:31,540 --> 00:11:38,350 Det siger gå til, hvad x er peger på, så gå til denne adresse 245 00:11:38,350 --> 00:11:40,210 og gøre det lig med 5. 246 00:11:40,210 --> 00:11:44,390 Så vi tildele 5 til denne adresse, right? 247 00:11:44,390 --> 00:11:52,540 >> Og så hvis du gør dette, det giver os adressen. 248 00:11:52,540 --> 00:11:54,730 Dette er adressen på operatøren. 249 00:11:54,730 --> 00:11:57,700 Så hvad er adressen på x? 250 00:11:57,700 --> 00:11:58,809 Vi ved det ikke. 251 00:11:58,809 --> 00:12:00,225 Vi har ikke tildelt det en adresse. 252 00:12:00,225 --> 00:12:03,000 253 00:12:03,000 --> 00:12:09,105 Vi kunne sige, det er some-- nu vi gav det en adresse, så adressen er 4. 254 00:12:09,105 --> 00:12:10,690 255 00:12:10,690 --> 00:12:16,980 Og faktisk, hvis vi går gennem noget som dette, sådan, hvad vi gjorde. 256 00:12:16,980 --> 00:12:25,800 Så arbejder gennem her-- jeg finde det hjælper, hvis du trækker ud pointere. 257 00:12:25,800 --> 00:12:28,270 Hvis du er på din eksamen, jeg anbefales at tegne bokse. 258 00:12:28,270 --> 00:12:29,490 259 00:12:29,490 --> 00:12:33,310 >> Så det første, int x er lig med 5. 260 00:12:33,310 --> 00:12:37,370 Det betyder bare, at vi har nogle sted i hukommelsen, der er 5, right? 261 00:12:37,370 --> 00:12:38,540 262 00:12:38,540 --> 00:12:44,760 Og vores bord her fortæller os at det er på adressen 0x04. 263 00:12:44,760 --> 00:12:48,770 264 00:12:48,770 --> 00:12:50,280 Og så skal vi skabe nogle pointer. 265 00:12:50,280 --> 00:12:51,820 266 00:12:51,820 --> 00:12:55,310 Så lad os bryde det ned én ad gangen. 267 00:12:55,310 --> 00:12:59,820 Så dette skaber en vis boksen til en int, right? 268 00:12:59,820 --> 00:13:01,970 Det kommer til at holde nogle adressen for en den. 269 00:13:01,970 --> 00:13:03,470 Så dette er nogle pointer. 270 00:13:03,470 --> 00:13:04,940 271 00:13:04,940 --> 00:13:06,510 Og dette kridt er virkelig lille. 272 00:13:06,510 --> 00:13:07,472 273 00:13:07,472 --> 00:13:08,680 Så vi har nogle pointer her. 274 00:13:08,680 --> 00:13:10,060 275 00:13:10,060 --> 00:13:13,530 Og vores tabel fortæller os der er adresse er 0x08. 276 00:13:13,530 --> 00:13:15,190 277 00:13:15,190 --> 00:13:16,200 Cool. 278 00:13:16,200 --> 00:13:23,240 Og vi tildeler til den adresse af x. 279 00:13:23,240 --> 00:13:26,330 >> Husk, pointers holde adresser, OK? 280 00:13:26,330 --> 00:13:32,050 Så hvis vi ønsker at holde x, har vi at bruge den adresse operatør, som 281 00:13:32,050 --> 00:13:36,520 er tegnet, for at få adressen af x, som i dette tilfælde, 0x04. 282 00:13:36,520 --> 00:13:39,130 283 00:13:39,130 --> 00:13:44,430 Og så hvis vi har nogle int kopi, det bare 284 00:13:44,430 --> 00:13:48,060 skaber nogle andre boks, besidder en int kaldet kopi. 285 00:13:48,060 --> 00:13:49,410 286 00:13:49,410 --> 00:13:55,330 Og hvis vi tildeler den til denne-- så det er der refereres til den. 287 00:13:55,330 --> 00:14:00,090 Så det siger gå til uanset adresse pointer holder. 288 00:14:00,090 --> 00:14:05,330 Pointer besidder denne adresse, så vi ville gå over her, 289 00:14:05,330 --> 00:14:07,130 og vi siger, OK, hvad der er i det? 290 00:14:07,130 --> 00:14:08,610 Det er 5. 291 00:14:08,610 --> 00:14:09,815 Så eksemplar bliver 5. 292 00:14:09,815 --> 00:14:11,800 293 00:14:11,800 --> 00:14:12,540 Mening? 294 00:14:12,540 --> 00:14:15,540 295 00:14:15,540 --> 00:14:25,020 >> Hvad hvis jeg forsøgte at tildele dette til bare markøren. 296 00:14:25,020 --> 00:14:26,476 297 00:14:26,476 --> 00:14:27,850 Hvad betyder pointer egentlig lige? 298 00:14:27,850 --> 00:14:31,126 299 00:14:31,126 --> 00:14:34,315 Det ville bare være, hvad pointer indeholder, right? 300 00:14:34,315 --> 00:14:36,400 301 00:14:36,400 --> 00:14:37,580 Og hvad så, hvis jeg gjorde det? 302 00:14:37,580 --> 00:14:38,922 303 00:14:38,922 --> 00:14:39,880 Hvad ville eksemplar nu? 304 00:14:39,880 --> 00:14:41,365 305 00:14:41,365 --> 00:14:42,275 >> PUBLIKUM: 0x08. 306 00:14:42,275 --> 00:14:44,150 ALLISON BUCHHOLTZ-AU: Jep, det adressen på vores pointer. 307 00:14:44,150 --> 00:14:46,832 308 00:14:46,832 --> 00:14:48,790 Enhver del af det at behov for at blive re-forklares? 309 00:14:48,790 --> 00:14:50,170 310 00:14:50,170 --> 00:14:50,670 Cool. 311 00:14:50,670 --> 00:14:53,350 312 00:14:53,350 --> 00:14:57,740 Der er helt sikkert en meget sjovt problem på quiz ene 313 00:14:57,740 --> 00:15:00,100 at vi kan over at giver dig mere praksis. 314 00:15:00,100 --> 00:15:00,937 315 00:15:00,937 --> 00:15:03,270 De fyre fra sidste uge kan fortælle dem, det var ikke så slemt. 316 00:15:03,270 --> 00:15:06,000 Vi fik gennem en hel diagram, og alle gjorde store. 317 00:15:06,000 --> 00:15:10,830 >> OK, så det er overblik af syntaks af pointere. 318 00:15:10,830 --> 00:15:15,070 Største ting er at forstå, hvordan til at oprette dem, gør refererer, 319 00:15:15,070 --> 00:15:18,190 og adresse, OK? 320 00:15:18,190 --> 00:15:18,690 Cool. 321 00:15:18,690 --> 00:15:20,775 Alle andre emner før Vi dykker ned i praksis. 322 00:15:20,775 --> 00:15:24,280 323 00:15:24,280 --> 00:15:28,011 Også hvis vi går igennem de praksis problemer 324 00:15:28,011 --> 00:15:30,760 og der er noget du vil have en genopfriskning af, kan vi gøre det også. 325 00:15:30,760 --> 00:15:31,300 Har du noget? 326 00:15:31,300 --> 00:15:32,758 >> PUBLIKUM: Structs og hægtede lister. 327 00:15:32,758 --> 00:15:35,130 ALLISON BUCHHOLTZ-AU: Structs og hægtede lister, OK. 328 00:15:35,130 --> 00:15:37,100 Så structs. 329 00:15:37,100 --> 00:15:38,990 Vi har faktisk går i denne aften også. 330 00:15:38,990 --> 00:15:40,130 331 00:15:40,130 --> 00:15:41,890 OK, så structs. 332 00:15:41,890 --> 00:15:47,490 Structs er dybest set bare en måde for dig at holde 333 00:15:47,490 --> 00:15:50,430 flere værdier af forskellige typer. 334 00:15:50,430 --> 00:15:55,150 Så med et array er vi indsnævres til én datatype. 335 00:15:55,150 --> 00:16:00,965 Vores matrix har enten bare være tal, eller blot være tegn, eller blot være flåd. 336 00:16:00,965 --> 00:16:02,240 337 00:16:02,240 --> 00:16:05,470 >> Men måske har du brug for indeholde mere end det. 338 00:16:05,470 --> 00:16:09,130 Måske har du brug for at hold-- hvis du taler om en elev, 339 00:16:09,130 --> 00:16:13,660 du kommer til at få deres hus, deres ID-nummer, deres alder, hvor de bor, 340 00:16:13,660 --> 00:16:14,240 højre? 341 00:16:14,240 --> 00:16:16,460 Og alle af dem er forskellige slags typer. 342 00:16:16,460 --> 00:16:18,680 Så du kan ikke gemme dem alle i et array. 343 00:16:18,680 --> 00:16:21,750 >> Så hvad du kan gøre, er du kan skabe en struct, som 344 00:16:21,750 --> 00:16:26,240 du kan tænke på som din egen personlige datatype. 345 00:16:26,240 --> 00:16:29,130 Så i stedet for bare at have int'er og i stedet for bare at have flåd, 346 00:16:29,130 --> 00:16:33,210 du kan have en type studerende, der har alle disse felter i det. 347 00:16:33,210 --> 00:16:39,740 Så den måde, vi initialisere vores structs is-- faktisk 348 00:16:39,740 --> 00:16:44,921 da min skrivning er forfærdelige, vi kommer til at overgå til at skrive. 349 00:16:44,921 --> 00:16:45,420 Woo. 350 00:16:45,420 --> 00:16:48,800 351 00:16:48,800 --> 00:16:53,150 >> OK, så hvis vi ønsker at skabe en struct-- Jeg skal bare til det hernede. 352 00:16:53,150 --> 00:16:57,730 Se bort fra den i hovedsagen uanset som vi vil bruge senere. 353 00:16:57,730 --> 00:17:02,330 Så den måde, du ønsker at gøre det er med typedef struct. 354 00:17:02,330 --> 00:17:10,530 355 00:17:10,530 --> 00:17:13,349 Og lad os bare kalde denne elev fordi det er hvad jeg bruger. 356 00:17:13,349 --> 00:17:17,801 OK, så betyder typedef er du definere en ny type, OK? 357 00:17:17,801 --> 00:17:20,140 358 00:17:20,140 --> 00:17:24,355 Der er nuancer i når du gør blot en struct versus en typedef struct. 359 00:17:24,355 --> 00:17:26,313 For alle hensigter og formål, du fyre er bare 360 00:17:26,313 --> 00:17:29,490 vil antage, at de er omtrent den samme, og kun 361 00:17:29,490 --> 00:17:30,820 bruge typedef struct for nu. 362 00:17:30,820 --> 00:17:35,180 Det vil blive langt mere tydelig i din næste P angive, hvad disse forskelle, 363 00:17:35,180 --> 00:17:37,960 men jeg tror ikke, du behøver at bekymre sig om, at lige nu. 364 00:17:37,960 --> 00:17:40,360 Jeg ville meget hellere du vide, hvordan du opretter en, 365 00:17:40,360 --> 00:17:41,880 adgang til den, og tildele [? værdi. ?] 366 00:17:41,880 --> 00:17:47,820 >> En ny type struct, og vi kalder det elev. 367 00:17:47,820 --> 00:17:52,640 Så efter vi er færdig med at oprette denne, for alle henseender, 368 00:17:52,640 --> 00:17:55,070 vil du have en type kaldet elev. 369 00:17:55,070 --> 00:17:59,610 Og du kan tænke på det, lige som en type som en int, eller en float, eller en char. 370 00:17:59,610 --> 00:18:01,820 Det er bare en anden type, OK? 371 00:18:01,820 --> 00:18:04,530 >> Så i denne ene, hvad har vi? 372 00:18:04,530 --> 00:18:05,420 Vi har måske et navn. 373 00:18:05,420 --> 00:18:08,275 Så måske vi ønsker en streng navn. 374 00:18:08,275 --> 00:18:09,610 375 00:18:09,610 --> 00:18:14,065 Og vi har måske en int, der er et ID. 376 00:18:14,065 --> 00:18:16,360 377 00:18:16,360 --> 00:18:19,085 Og vi har en anden i der er telefonnummer. 378 00:18:19,085 --> 00:18:21,990 379 00:18:21,990 --> 00:18:26,200 Og vi har some-- lad os se. 380 00:18:26,200 --> 00:18:27,200 Hvad andet kunne vi have? 381 00:18:27,200 --> 00:18:29,385 Vi vil have noget snor på hans hus. 382 00:18:29,385 --> 00:18:32,340 383 00:18:32,340 --> 00:18:34,510 Alle ting, som en elev har. 384 00:18:34,510 --> 00:18:36,960 >> Så dette skaber en struct nu. 385 00:18:36,960 --> 00:18:41,450 Så hvordan kan vi skabe en elev? 386 00:18:41,450 --> 00:18:46,960 Hvis vi har nogle variabel, der er vil tale om Walker her, 387 00:18:46,960 --> 00:18:51,245 så vi have-- vi er bare vil kalde denne rollator. 388 00:18:51,245 --> 00:18:52,520 Han har brug for en type. 389 00:18:52,520 --> 00:18:53,770 Hvad er din type? 390 00:18:53,770 --> 00:18:54,520 PUBLIKUM: Student. 391 00:18:54,520 --> 00:18:55,395 ALLISON BUCHHOLTZ-AU: Student. 392 00:18:55,395 --> 00:18:57,130 393 00:18:57,130 --> 00:19:04,800 Så dette blot skaber et objekt kan du tænke på, der har alle disse ting. 394 00:19:04,800 --> 00:19:07,880 Du har lige oprettet en walker elev. 395 00:19:07,880 --> 00:19:10,910 Så nu er vi nødt til at kunne at tildele alle disse, right? 396 00:19:10,910 --> 00:19:13,500 Så er der nogen huske, hvordan vi få adgang inden for en struct? 397 00:19:13,500 --> 00:19:14,762 398 00:19:14,762 --> 00:19:15,470 PUBLIKUM: Periode. 399 00:19:15,470 --> 00:19:16,730 ALLISON BUCHHOLTZ-AU: Periode Præcis. 400 00:19:16,730 --> 00:19:23,795 Så hvis vi ønskede at tildele ham et navn, kunne vi gøre det. 401 00:19:23,795 --> 00:19:24,820 402 00:19:24,820 --> 00:19:28,680 Dette ville naturligvis være-- denne del her ville 403 00:19:28,680 --> 00:19:31,831 være inden vigtigste, så faktisk lade mig gøre dette. 404 00:19:31,831 --> 00:19:40,980 405 00:19:40,980 --> 00:19:44,250 Erklære dette over main så at vi kan bruge det inden vigtigste. 406 00:19:44,250 --> 00:19:52,250 407 00:19:52,250 --> 00:20:00,980 Så nu jeg ønsker at gøre id, og vi vil bare gøre nogle der, 408 00:20:00,980 --> 00:20:02,970 og så vil vi tildele et hus. 409 00:20:02,970 --> 00:20:07,990 410 00:20:07,990 --> 00:20:09,000 Bam. 411 00:20:09,000 --> 00:20:09,650 Cool. 412 00:20:09,650 --> 00:20:19,870 >> Så nu skal vi nogensinde får brug for at få adgang noget senere on-- måske we-- 413 00:20:19,870 --> 00:20:25,920 hvis vi nogensinde får brug for at få adgang til noget, lad os bare gøre en int kopi id. 414 00:20:25,920 --> 00:20:27,400 415 00:20:27,400 --> 00:20:30,530 Og jeg ønsker at kopiere Walkers id i dette. 416 00:20:30,530 --> 00:20:31,370 Hvordan kan jeg gøre det? 417 00:20:31,370 --> 00:20:33,670 418 00:20:33,670 --> 00:20:37,790 Du er nødt til at få adgang inden for rollator struct til [? gå til det?] [? E?]. 419 00:20:37,790 --> 00:20:41,280 Og på samme måde som vi tildelt det op her, hvordan 420 00:20:41,280 --> 00:20:45,573 kan vi få adgang til det, når vi ønsker at giver denne værdi til noget andet? 421 00:20:45,573 --> 00:20:46,406 PUBLIKUM: Walker.id. 422 00:20:46,406 --> 00:20:47,252 423 00:20:47,252 --> 00:20:48,376 ALLISON BUCHHOLTZ-AU: Ja, præcis. 424 00:20:48,376 --> 00:20:51,884 425 00:20:51,884 --> 00:20:54,175 Så det er temmelig alle du behøver at vide for structs. 426 00:20:54,175 --> 00:20:55,750 427 00:20:55,750 --> 00:20:58,560 Du skal bare nødt til at tænke på dem som en anden variabel. 428 00:20:58,560 --> 00:21:01,710 Dybest set en oprette din egen variabel art, OK? 429 00:21:01,710 --> 00:21:04,440 430 00:21:04,440 --> 00:21:07,970 Du bruger den til at erklære variabler på nogen måde. 431 00:21:07,970 --> 00:21:10,290 Her walker er stadig en variabel. 432 00:21:10,290 --> 00:21:14,230 Det bare har en type studerende nu i stedet af en type int eller en streng type 433 00:21:14,230 --> 00:21:15,070 eller en type char. 434 00:21:15,070 --> 00:21:17,014 435 00:21:17,014 --> 00:21:19,930 Hvis der var en nem måde at tale om structs, det er bogstaveligt talt bare et 436 00:21:19,930 --> 00:21:24,430 oprette din egen datatype der giver dig mulighed for at gruppere 437 00:21:24,430 --> 00:21:28,320 alle disse forskellige slags data sammen. 438 00:21:28,320 --> 00:21:29,754 439 00:21:29,754 --> 00:21:31,595 Giver det mening? 440 00:21:31,595 --> 00:21:33,920 441 00:21:33,920 --> 00:21:34,420 OK. 442 00:21:34,420 --> 00:21:35,920 443 00:21:35,920 --> 00:21:37,530 Det og få adgang med prikker. 444 00:21:37,530 --> 00:21:38,790 445 00:21:38,790 --> 00:21:39,960 Temmelig meget alt hvad du behøver. 446 00:21:39,960 --> 00:21:41,150 447 00:21:41,150 --> 00:21:46,600 >> OK, hvor gik min PowerPoint gå? 448 00:21:46,600 --> 00:21:47,580 Her er det. 449 00:21:47,580 --> 00:21:49,050 450 00:21:49,050 --> 00:21:50,520 Nå det er underligt. 451 00:21:50,520 --> 00:21:53,950 452 00:21:53,950 --> 00:21:55,420 Aha. 453 00:21:55,420 --> 00:21:56,766 OK, cool. 454 00:21:56,766 --> 00:21:58,876 455 00:21:58,876 --> 00:22:01,000 Alle andre ting, eller skal vi ønsker at hovedet til praksis? 456 00:22:01,000 --> 00:22:02,210 457 00:22:02,210 --> 00:22:02,710 Praksis? 458 00:22:02,710 --> 00:22:03,501 OK. 459 00:22:03,501 --> 00:22:04,000 Awesome. 460 00:22:04,000 --> 00:22:05,642 461 00:22:05,642 --> 00:22:06,600 Jeg har tænkt mig at forlade dette. 462 00:22:06,600 --> 00:22:08,490 Hvis du på noget tidspunkt under praksis spørgsmål, 463 00:22:08,490 --> 00:22:12,630 Jeg er glad for at forny og gå gennem ting. 464 00:22:12,630 --> 00:22:15,240 Så jeg har quiz nul heroppe. 465 00:22:15,240 --> 00:22:18,370 Hvis du fyre ønsker at trække den op på din computer, 466 00:22:18,370 --> 00:22:20,670 bare gerne tage fem minutter til at gennemse. 467 00:22:20,670 --> 00:22:23,540 Måske vælger nogle top spørgsmål, du ønsker at gå over. 468 00:22:23,540 --> 00:22:27,390 Hvis du fyre ikke kan beslutte, at vi vil bare langsomt begynde at arbejde gennem dem, 469 00:22:27,390 --> 00:22:31,590 men jeg er sikker på at der vil være nogle spørgsmål, som du er særligt 470 00:22:31,590 --> 00:22:34,890 ivrige efter at tale om og have mig til at arbejde igennem med jer alle. 471 00:22:34,890 --> 00:22:36,580 Så bare gå videre og tage fem minutter. 472 00:22:36,580 --> 00:22:37,780 Rul gennem. 473 00:22:37,780 --> 00:22:40,620 Og dette er den quiz fra 2013. 474 00:22:40,620 --> 00:22:41,841 >> PUBLIKUM: Zero? 475 00:22:41,841 --> 00:22:43,630 >> ALLISON BUCHHOLTZ-AU: Ja, quiz nul. 476 00:22:43,630 --> 00:22:45,647 Vi laver ikke quiz én ting. 477 00:22:45,647 --> 00:22:46,980 Vi vil gøre det i et par uger. 478 00:22:46,980 --> 00:22:52,941 479 00:22:52,941 --> 00:22:55,190 Også for dem af jer, der kom sent, vi har slik, 480 00:22:55,190 --> 00:23:00,580 så gør du fyre vil have slik? 481 00:23:00,580 --> 00:23:01,530 >> PUBLIKUM: Selvfølgelig. 482 00:23:01,530 --> 00:23:03,321 >> ALLISON BUCHHOLTZ-AU: Jeg er bare kommer til at passere rundt. 483 00:23:03,321 --> 00:23:09,774 484 00:23:09,774 --> 00:23:11,940 Hey, hvis du fyre få her tidligt, får du mere slik. 485 00:23:11,940 --> 00:23:12,500 Det er fint. 486 00:23:12,500 --> 00:23:13,550 Ben, du vil have slik? 487 00:23:13,550 --> 00:23:19,350 488 00:23:19,350 --> 00:23:20,556 Du ønsker nogle af disse? 489 00:23:20,556 --> 00:23:24,122 490 00:23:24,122 --> 00:23:26,080 Der er også Snickers hvis nogen ønsker Snickers. 491 00:23:26,080 --> 00:23:27,640 492 00:23:27,640 --> 00:23:29,360 Jeg lader dem her og her. 493 00:23:29,360 --> 00:23:30,946 Du er velkommen. 494 00:23:30,946 --> 00:23:32,485 Vil du have mere? 495 00:23:32,485 --> 00:23:33,235 PUBLIKUM: Alt indstillet. 496 00:23:33,235 --> 00:23:33,540 Tak. 497 00:23:33,540 --> 00:23:36,248 >> ALLISON BUCHHOLTZ-AU: Og jeg havde en dejlig lille bunke der i begyndelsen. 498 00:23:36,248 --> 00:23:49,080 499 00:23:49,080 --> 00:23:51,980 Du fyre kommer til at tage quizzen og Jeg kommer til at have en quiz klassificering part. 500 00:23:51,980 --> 00:23:54,496 501 00:23:54,496 --> 00:23:55,360 Det er kaos. 502 00:23:55,360 --> 00:23:56,460 503 00:23:56,460 --> 00:23:57,385 900 eksamener. 504 00:23:57,385 --> 00:23:58,650 Det kommer til at være så meget sjov. 505 00:23:58,650 --> 00:24:00,441 506 00:24:00,441 --> 00:24:02,036 Vil være stor. 507 00:24:02,036 --> 00:24:04,430 Jeg er temmelig sikker på det er en af de største personale bonding 508 00:24:04,430 --> 00:24:05,380 nætter af året. 509 00:24:05,380 --> 00:24:15,660 510 00:24:15,660 --> 00:24:19,175 Har nogen gjort quiz nul fra sidste år endnu af nysgerrighed? 511 00:24:19,175 --> 00:24:20,335 >> PUBLIKUM: Dele af det. 512 00:24:20,335 --> 00:24:21,543 >> ALLISON BUCHHOLTZ-AU: Dele af det, OK. 513 00:24:21,543 --> 00:24:24,272 514 00:24:24,272 --> 00:24:26,482 Har du har spørgsmål om nogen af ​​dem? 515 00:24:26,482 --> 00:24:28,190 PUBLIKUM: Jeg allerede gik til kontortid. 516 00:24:28,190 --> 00:24:28,898 Tak selv. 517 00:24:28,898 --> 00:24:30,187 518 00:24:30,187 --> 00:24:32,520 ALLISON BUCHHOLTZ-AU: Nå, forhåbentlig det er stadig slags hjælpsomme. 519 00:24:32,520 --> 00:24:42,990 520 00:24:42,990 --> 00:24:45,634 Hvornår har du gå til kontortid for det? 521 00:24:45,634 --> 00:24:47,300 PUBLIKUM: Min TF havde dem i eftermiddag. 522 00:24:47,300 --> 00:24:47,966 ALLISON BUCHHOLTZ-AU: Oh. 523 00:24:47,966 --> 00:24:48,977 Hvem er din TF? 524 00:24:48,977 --> 00:24:49,854 525 00:24:49,854 --> 00:24:51,020 PUBLIKUM: Fred [? Wujaya?]. 526 00:24:51,020 --> 00:24:52,622 527 00:24:52,622 --> 00:24:54,080 ALLISON BUCHHOLTZ-AU: Der er så mange TF'er. 528 00:24:54,080 --> 00:24:55,350 529 00:24:55,350 --> 00:24:55,850 Så mange. 530 00:24:55,850 --> 00:25:16,530 531 00:25:16,530 --> 00:25:17,340 Ok. 532 00:25:17,340 --> 00:25:45,310 533 00:25:45,310 --> 00:25:48,950 Nogen der har nogen til at begynde at jeg kan notere ned, at vi ønsker at arbejde på? 534 00:25:48,950 --> 00:25:53,770 535 00:25:53,770 --> 00:25:55,685 Jeg formoder pointerne én med bordet. 536 00:25:55,685 --> 00:25:56,890 537 00:25:56,890 --> 00:25:57,610 Gå efter det. 538 00:25:57,610 --> 00:25:59,180 >> PUBLIKUM: Måske kontakten én. 539 00:25:59,180 --> 00:26:02,362 540 00:26:02,362 --> 00:26:03,445 ALLISON BUCHHOLTZ-AU: So nummer 12? 541 00:26:03,445 --> 00:26:06,750 542 00:26:06,750 --> 00:26:10,770 Jeg antager nummer 8 og 9 er sandsynligvis ones folk ønsker at gå over. 543 00:26:10,770 --> 00:26:12,116 >> PUBLIKUM: Og 10 og 11. 544 00:26:12,116 --> 00:26:21,860 545 00:26:21,860 --> 00:26:25,806 >> ALLISON BUCHHOLTZ-AU: Og du fyre vide du får en side af noter, right? 546 00:26:25,806 --> 00:26:28,450 >> PUBLIKUM: Ja, så hvad er vi fik lov til at sætte på det. 547 00:26:28,450 --> 00:26:30,658 >> ALLISON BUCHHOLTZ-AU: du er tilladt at sætte noget, du ønsker. 548 00:26:30,658 --> 00:26:31,887 549 00:26:31,887 --> 00:26:32,720 Og det kan være maskinskrevne. 550 00:26:32,720 --> 00:26:35,270 Så vidt jeg husker, var vores indtastet. 551 00:26:35,270 --> 00:26:37,022 >> PUBLIKUM: Du kan gøre tilbage, og begge sider? 552 00:26:37,022 --> 00:26:38,780 >> ALLISON BUCHHOLTZ-AU: Ja, begge sider. 553 00:26:38,780 --> 00:26:42,940 Så noget lignende bunke og [? tilbage ende?] dynge, dit løb 554 00:26:42,940 --> 00:26:43,780 gange. 555 00:26:43,780 --> 00:26:44,840 Nyttige. 556 00:26:44,840 --> 00:26:47,990 Måske små ting om pointere at minde dig. 557 00:26:47,990 --> 00:26:49,205 Syntaks for ting. 558 00:26:49,205 --> 00:26:51,600 559 00:26:51,600 --> 00:26:54,830 Under ligesom et skelet Programmet kan være super nyttig. 560 00:26:54,830 --> 00:27:00,719 Jeg ved, at jeg altid har glemt præcis hvad Jeg skulle skrive for int main, 561 00:27:00,719 --> 00:27:03,010 fordi jeg altid bare kopiere indsætte fra min tidligere P sæt 562 00:27:03,010 --> 00:27:06,232 eller det er der allerede, så Jeg har aldrig rigtig skrev det, 563 00:27:06,232 --> 00:27:07,690 så har det kan være super nyttige. 564 00:27:07,690 --> 00:27:09,280 565 00:27:09,280 --> 00:27:14,320 >> OK, så hvorfor gør vi ikke starte med nummer 8 så? 566 00:27:14,320 --> 00:27:21,730 567 00:27:21,730 --> 00:27:22,810 Ok. 568 00:27:22,810 --> 00:27:23,310 OK. 569 00:27:23,310 --> 00:27:25,060 570 00:27:25,060 --> 00:27:26,310 Så overveje programmet nedenfor. 571 00:27:26,310 --> 00:27:28,110 572 00:27:28,110 --> 00:27:30,700 Så selvfølgelig, når vi ser pegepinde, er det nok 573 00:27:30,700 --> 00:27:32,200 en god idé at begynde at tegne, right? 574 00:27:32,200 --> 00:27:34,552 575 00:27:34,552 --> 00:27:36,760 Jeg ønsker at vide, hvor alle mine store stykker af kridt gik. 576 00:27:36,760 --> 00:27:37,870 Dette er slags irriterende. 577 00:27:37,870 --> 00:27:40,210 578 00:27:40,210 --> 00:27:45,820 >> Så vi har her nogle swap-funktion der kommer til at tage i to pointere. 579 00:27:45,820 --> 00:27:48,630 Så i dette tilfælde, de burde faktisk være at skifte 580 00:27:48,630 --> 00:27:53,400 ting versus vores oprindelige swap funktion, som kun tog i kopier. 581 00:27:53,400 --> 00:27:57,030 Så hvad det kommer til at gøre is-- lad os starte med de vigtigste, 582 00:27:57,030 --> 00:27:58,450 fordi det er hvor 1 er. 583 00:27:58,450 --> 00:28:04,296 >> Så vi har nogle int x 1. 584 00:28:04,296 --> 00:28:11,860 Vi har nogle y, der er lig med 2. 585 00:28:11,860 --> 00:28:14,390 Og så har vi nogle swap der kommer til at tage dem. 586 00:28:14,390 --> 00:28:17,320 Og lad os se, hvad har vi her. 587 00:28:17,320 --> 00:28:19,542 588 00:28:19,542 --> 00:28:22,709 Og i vores table-- oh boy. 589 00:28:22,709 --> 00:28:23,792 Hvordan skal jeg gøre dette? 590 00:28:23,792 --> 00:28:25,900 Jeg har tænkt mig at trække mit bord herovre. 591 00:28:25,900 --> 00:28:49,490 592 00:28:49,490 --> 00:28:50,552 Knapt gøre det der. 593 00:28:50,552 --> 00:28:51,260 Knapt gøre det. 594 00:28:51,260 --> 00:28:52,470 595 00:28:52,470 --> 00:28:57,960 1, 2, 3, 4, 5, 6, 7. 596 00:28:57,960 --> 00:29:11,220 597 00:29:11,220 --> 00:29:15,706 Og de giver os, at 1 er 1 og 1 2. 598 00:29:15,706 --> 00:29:16,206 Cool. 599 00:29:16,206 --> 00:29:17,674 600 00:29:17,674 --> 00:29:18,174 Awesome. 601 00:29:18,174 --> 00:29:19,650 602 00:29:19,650 --> 00:29:20,464 Så 3. 603 00:29:20,464 --> 00:29:21,380 Og der er [? a 1.?] 604 00:29:21,380 --> 00:29:24,500 605 00:29:24,500 --> 00:29:25,250 >> Ok. 606 00:29:25,250 --> 00:29:35,202 Og så adressen på x er 0x123. 607 00:29:35,202 --> 00:29:41,260 Og y er Ox127. 608 00:29:41,260 --> 00:29:41,760 Cool. 609 00:29:41,760 --> 00:29:42,940 610 00:29:42,940 --> 00:29:43,595 Ok. 611 00:29:43,595 --> 00:29:46,710 Jeg vil have jer arbejde på dette for bare like-- arbejde på det 612 00:29:46,710 --> 00:29:48,385 med de mennesker omkring dig. 613 00:29:48,385 --> 00:29:50,340 Jeg ønsker jeg havde sagt, at mens jeg var ved at etablere. 614 00:29:50,340 --> 00:29:50,840 Arbejde på det. 615 00:29:50,840 --> 00:29:53,270 Prøv og arbejde på det ved jer for et par minutter, 616 00:29:53,270 --> 00:29:54,930 og så vil jeg arbejde på det med dig. 617 00:29:54,930 --> 00:29:57,034 618 00:29:57,034 --> 00:30:00,117 Fordi den eneste måde du virkelig kommer til at lære, er ved at gøre det selv. 619 00:30:00,117 --> 00:31:29,580 620 00:31:29,580 --> 00:31:30,110 Ingen bekymringer. 621 00:31:30,110 --> 00:31:30,610 Held og lykke. 622 00:31:30,610 --> 00:32:17,390 623 00:32:17,390 --> 00:32:20,030 >> OK, hvorfor ikke vi langsomt begynde at arbejde gennem dette. 624 00:32:20,030 --> 00:32:23,695 Så alle får efter linie et, x er 1. 625 00:32:23,695 --> 00:32:26,860 Efter linje to, X og y er 1 og 2, right? 626 00:32:26,860 --> 00:32:27,400 Cool. 627 00:32:27,400 --> 00:32:30,310 Så linie tre er, hvor tingene få interessante selvfølgelig. 628 00:32:30,310 --> 00:32:34,970 >> Så hvad vi har gjort her er vi nu har byttet. 629 00:32:34,970 --> 00:32:42,360 Vi siger, at x og y have disse punkter, eller de har adressen af ​​x og y, 630 00:32:42,360 --> 00:32:43,390 højre? 631 00:32:43,390 --> 00:32:48,451 Så i dette tilfælde tre, hvad er værdien af ​​en? 632 00:32:48,451 --> 00:32:52,379 633 00:32:52,379 --> 00:32:59,806 en var blevet vedtaget i, har fået værdien af ​​adressen på x, right? 634 00:32:59,806 --> 00:33:02,542 635 00:33:02,542 --> 00:33:03,454 >> PUBLIKUM: 1? 636 00:33:03,454 --> 00:33:05,200 >> ALLISON BUCHHOLTZ-AU: Så vi føje det til x? 637 00:33:05,200 --> 00:33:06,420 Hvad er x adresse? 638 00:33:06,420 --> 00:33:07,212 >> PUBLIKUM: 0x123. 639 00:33:07,212 --> 00:33:08,087 >> ALLISON BUCHHOLTZ-AU: Præcis. 640 00:33:08,087 --> 00:33:13,960 641 00:33:13,960 --> 00:33:16,790 Men hvad er en faktisk peger på? 642 00:33:16,790 --> 00:33:20,790 Hvis vi skulle dereference en, hvilken værdi det ville give os. 643 00:33:20,790 --> 00:33:21,290 PUBLIKUM: 1. 644 00:33:21,290 --> 00:33:23,164 ALLISON BUCHHOLTZ-AU: Det ville give os 1, fordi det, 645 00:33:23,164 --> 00:33:27,810 vi siger er at gå til denne adresse, fortælle os, hvad værdien er. 646 00:33:27,810 --> 00:33:28,890 Så hvad ville være b? 647 00:33:28,890 --> 00:33:30,500 648 00:33:30,500 --> 00:33:31,445 >> PUBLIKUM: 0x127. 649 00:33:31,445 --> 00:33:32,320 ALLISON BUCHHOLTZ-AU: Præcis. 650 00:33:32,320 --> 00:33:33,610 651 00:33:33,610 --> 00:33:35,410 Så det er adressen på y. 652 00:33:35,410 --> 00:33:36,580 653 00:33:36,580 --> 00:33:39,811 Og hvad så [? dereference? ?] 654 00:33:39,811 --> 00:33:40,310 PUBLIKUM: 2. 655 00:33:40,310 --> 00:33:42,172 656 00:33:42,172 --> 00:33:43,380 ALLISON BUCHHOLTZ-AU: OK, så nu fire. 657 00:33:43,380 --> 00:33:44,390 658 00:33:44,390 --> 00:33:51,300 Vi sagde en er equal-- godt nu har vi gjort int temp er lig med stjerne på en. 659 00:33:51,300 --> 00:33:53,580 Så hvad betyder det? 660 00:33:53,580 --> 00:33:55,680 Der er kun én ting der ændrer her. 661 00:33:55,680 --> 00:33:56,180 Hvad er det? 662 00:33:56,180 --> 00:33:57,892 663 00:33:57,892 --> 00:33:58,624 >> PUBLIKUM: Temp. 664 00:33:58,624 --> 00:33:59,540 ALLISON BUCHHOLTZ-AU: Temp. 665 00:33:59,540 --> 00:34:06,120 Så vi kan omskrive alle disse. 666 00:34:06,120 --> 00:34:07,790 667 00:34:07,790 --> 00:34:10,690 En god strategi for disse er bare at finde ud af 668 00:34:10,690 --> 00:34:14,050 hvilke ændringer, fordi oftest der er kun én ting, der er 669 00:34:14,050 --> 00:34:16,300 kommer til at ændre på ethvert givet tidspunkt, OK? 670 00:34:16,300 --> 00:34:17,960 671 00:34:17,960 --> 00:34:20,100 Så vi har tildelt temp. 672 00:34:20,100 --> 00:34:26,929 >> Nu er vores næste punkt, fem, vi har gjort stjerne et lig stjernede b. 673 00:34:26,929 --> 00:34:28,880 Så hvilke ændringer nu? 674 00:34:28,880 --> 00:34:29,760 >> PUBLIKUM: Star a. 675 00:34:29,760 --> 00:34:32,081 >> ALLISON BUCHHOLTZ-AU: Star a, så alt andet forbliver det samme. 676 00:34:32,081 --> 00:34:38,610 677 00:34:38,610 --> 00:34:39,900 Og hvad betyder stjerne en lige? 678 00:34:39,900 --> 00:34:40,659 >> PUBLIKUM: 2. 679 00:34:40,659 --> 00:34:41,283 ALLISON BUCHHOLTZ-AU: 2. 680 00:34:41,283 --> 00:34:42,460 681 00:34:42,460 --> 00:34:42,960 Dejligt. 682 00:34:42,960 --> 00:34:45,360 683 00:34:45,360 --> 00:34:46,239 Awesome. 684 00:34:46,239 --> 00:34:51,190 OK, og så nu har vi starte b er lig med temp. 685 00:34:51,190 --> 00:34:53,907 Så den eneste ændring er stjernede b. 686 00:34:53,907 --> 00:34:55,344 Alt andet forbliver det samme. 687 00:34:55,344 --> 00:35:01,100 688 00:35:01,100 --> 00:35:02,610 Og hvad er stjernede b lig med nu? 689 00:35:02,610 --> 00:35:04,840 690 00:35:04,840 --> 00:35:06,190 Og du har udfyldt skemaet. 691 00:35:06,190 --> 00:35:11,620 692 00:35:11,620 --> 00:35:18,460 Fordi nu i slutningen, hvis vi siger x og y, ved vi, at på denne point-- 693 00:35:18,460 --> 00:35:23,060 vi, at når vi ændret stjerne en til 2, 694 00:35:23,060 --> 00:35:29,620 hvad der gjorde, er det sagt OK, på løse 0x123 her, ændre det. 695 00:35:29,620 --> 00:35:31,780 696 00:35:31,780 --> 00:35:33,290 Dette var nu 2. 697 00:35:33,290 --> 00:35:34,460 698 00:35:34,460 --> 00:35:40,600 Og derefter på dette punkt, vi sagde OK, gå til Star B. 699 00:35:40,600 --> 00:35:45,305 Så gå til adressen i 0x127 og gøre det til en 1. 700 00:35:45,305 --> 00:35:49,670 701 00:35:49,670 --> 00:35:53,110 Så nu til allersidst, når vi faktisk tilbage til main, 702 00:35:53,110 --> 00:35:56,445 har vi faktisk, at x er lig med 2, og y er lig med 1. 703 00:35:56,445 --> 00:35:58,500 704 00:35:58,500 --> 00:35:59,500 Alle godt med det? 705 00:35:59,500 --> 00:36:00,720 706 00:36:00,720 --> 00:36:02,320 OK, cool. 707 00:36:02,320 --> 00:36:04,030 Number 9. 708 00:36:04,030 --> 00:36:05,950 Du fyre arbejde på dette. 709 00:36:05,950 --> 00:36:09,016 Jeg har tænkt mig at oprette en bestyrelse så vi kan trække igennem det. 710 00:36:09,016 --> 00:36:09,910 Det vil være en blast. 711 00:36:09,910 --> 00:36:13,760 712 00:36:13,760 --> 00:36:16,320 De store tabeller kan være virkelig skræmmende, jeg kender. 713 00:36:16,320 --> 00:36:19,910 Men hvis du bare tage dem én række på en tid, de får en masse mindre skræmmende. 714 00:36:19,910 --> 00:38:12,025 715 00:38:12,025 --> 00:38:12,860 Ok. 716 00:38:12,860 --> 00:38:16,230 717 00:38:16,230 --> 00:38:21,190 >> Så du ved, at dette vil have gået gennem vigtigste først, right? 718 00:38:21,190 --> 00:38:24,140 Initialiserer x og y og derefter forsøger at bytte dem. 719 00:38:24,140 --> 00:38:28,560 Så selv swap er over, real måde det går, er, at vi går igennem main, 720 00:38:28,560 --> 00:38:31,040 og så er det ringer op til at bytte, okay? 721 00:38:31,040 --> 00:38:32,810 Så alle ved det. 722 00:38:32,810 --> 00:38:34,960 >> Så hvilken en vil du fyre ønsker at starte med? 723 00:38:34,960 --> 00:38:37,240 Er der virkelig nogen sikker om en af ​​disse? 724 00:38:37,240 --> 00:38:38,307 725 00:38:38,307 --> 00:38:39,265 Eller endda delvis sikker? 726 00:38:39,265 --> 00:38:44,170 727 00:38:44,170 --> 00:38:48,120 Hvorfor starter vi ikke med x? 728 00:38:48,120 --> 00:38:49,060 Hvad tror vi x er? 729 00:38:49,060 --> 00:38:49,735 >> PUBLIKUM: 1. 730 00:38:49,735 --> 00:38:50,360 ALLISON BUCHHOLTZ-AU: 1. 731 00:38:50,360 --> 00:38:54,500 732 00:38:54,500 --> 00:38:56,340 Så hvorfor er 2. 733 00:38:56,340 --> 00:38:58,880 734 00:38:58,880 --> 00:39:01,380 Og det er fordi big forskel her 735 00:39:01,380 --> 00:39:04,890 er, at vi kun passerer kopier i, right? 736 00:39:04,890 --> 00:39:06,520 Vi er ikke passerer ved reference. 737 00:39:06,520 --> 00:39:08,850 Så selv ved udgangen af dette program x og y 738 00:39:08,850 --> 00:39:14,170 har opholdt sig det samme, fordi de er blot kopier i swap-funktion. 739 00:39:14,170 --> 00:39:16,320 De behøver faktisk ikke ændre, right? 740 00:39:16,320 --> 00:39:17,570 741 00:39:17,570 --> 00:39:19,290 >> Så hvad med a, b, og temp? 742 00:39:19,290 --> 00:39:21,540 743 00:39:21,540 --> 00:39:22,890 >> PUBLIKUM: a er b. 744 00:39:22,890 --> 00:39:23,940 >> ALLISON BUCHHOLTZ-AU: a er b. 745 00:39:23,940 --> 00:39:28,569 Så i dette tilfælde, en var x, som er 1, right? 746 00:39:28,569 --> 00:39:29,860 Så her, lad os gå igennem den. 747 00:39:29,860 --> 00:39:33,940 Så i starten, en og b er 1 og 2 og udefineret. 748 00:39:33,940 --> 00:39:35,000 749 00:39:35,000 --> 00:39:40,850 Så oprindeligt temp får tildelt en, så temp er 1. 750 00:39:40,850 --> 00:39:46,150 a er lig med B, så vi får 2, og b er lig med temp. 751 00:39:46,150 --> 00:39:47,284 Får vi nu 1. 752 00:39:47,284 --> 00:39:49,454 753 00:39:49,454 --> 00:39:55,860 >> PUBLIKUM: I den tidligere ene det byttes-tegn x og tegnet y. 754 00:39:55,860 --> 00:39:57,390 Hvad betyder det helt præcist? 755 00:39:57,390 --> 00:39:59,890 ALLISON BUCHHOLTZ-AU: Så det betyder, at du passerer ved henvisning. 756 00:39:59,890 --> 00:40:03,830 Så det betyder, at du er faktisk passerer i adresserne på hvor 757 00:40:03,830 --> 00:40:04,814 x og y er lagret. 758 00:40:04,814 --> 00:40:06,730 PUBLIKUM: Men du er ikke swapping adressen. 759 00:40:06,730 --> 00:40:07,860 ALLISON BUCHHOLTZ-AU: Du er ikke swapping adresserne. 760 00:40:07,860 --> 00:40:10,015 Du bytte, hvad der er i dem. 761 00:40:10,015 --> 00:40:11,510 762 00:40:11,510 --> 00:40:14,460 Ligesom hvad der er på den pågældende adresse, og det er derfor, det virker. 763 00:40:14,460 --> 00:40:20,750 Versus i dette program her hvad du laver er du opretter kopier. 764 00:40:20,750 --> 00:40:27,440 Så du har x og y, der eksisterer som deres egne variabler herude. 765 00:40:27,440 --> 00:40:31,530 766 00:40:31,530 --> 00:40:34,140 Men så når du passerer dem i swap, er det 767 00:40:34,140 --> 00:40:38,090 som hvis du opretter hele dette andet sæt. 768 00:40:38,090 --> 00:40:41,272 Så du er faktisk aldrig rørende x og y. 769 00:40:41,272 --> 00:40:46,890 >> PUBLIKUM: Hvis tegnet x hvad der er på adressen på x, hvad ville stjerne x være? 770 00:40:46,890 --> 00:40:53,290 >> ALLISON BUCHHOLTZ-AU: Ampersand x er, hvad der er på adressen på x, så star-- godt, 771 00:40:53,290 --> 00:40:54,950 i dette tilfælde x ikke er en pointer. 772 00:40:54,950 --> 00:40:56,332 773 00:40:56,332 --> 00:40:57,040 PUBLIKUM: Åh, OK. 774 00:40:57,040 --> 00:40:58,998 Så du kun gøre dette fordi det ikke er en pointer. 775 00:40:58,998 --> 00:40:59,890 ALLISON BUCHHOLTZ-AU: Right. 776 00:40:59,890 --> 00:41:03,046 Du kan kun gøre stjerne noget, der er en pointer. 777 00:41:03,046 --> 00:41:05,920 Måske kunne du gøre det til ting, er det ikke, men det compile, at du 778 00:41:05,920 --> 00:41:07,350 gøre det skøre ting ville ske. 779 00:41:07,350 --> 00:41:09,570 Og jeg er ikke ligefrem sikker på, hvad der ville ske. 780 00:41:09,570 --> 00:41:11,880 Du kan altid tage adresse noget, 781 00:41:11,880 --> 00:41:14,255 men du kan ikke dereference noget, der er ikke en pointer. 782 00:41:14,255 --> 00:41:14,805 783 00:41:14,805 --> 00:41:17,860 Hvis det giver mening, det er en god skelnen at have. 784 00:41:17,860 --> 00:41:19,870 785 00:41:19,870 --> 00:41:21,340 >> Så ikke alt for dårlig, højre? 786 00:41:21,340 --> 00:41:23,650 Tabellerne er forhåbentlig få lidt mindre skræmmende. 787 00:41:23,650 --> 00:41:25,450 788 00:41:25,450 --> 00:41:26,690 Ok. 789 00:41:26,690 --> 00:41:28,370 Ah, det sjove dem. 790 00:41:28,370 --> 00:41:31,265 Så nu, skrive din egen kode. 791 00:41:31,265 --> 00:41:33,640 792 00:41:33,640 --> 00:41:37,950 Så jeg har tænkt mig at lade dig fyre arbejde på denne i omkring fire minutter 793 00:41:37,950 --> 00:41:41,480 og så kan vi snakke om måder at nærme sig det. 794 00:41:41,480 --> 00:41:45,080 795 00:41:45,080 --> 00:41:47,110 Du er velkommen til at tale med folk omkring dig. 796 00:41:47,110 --> 00:41:48,114 797 00:41:48,114 --> 00:41:49,155 Også dette er interessant. 798 00:41:49,155 --> 00:41:51,460 Det er ligesom en alle piger sektion lige nu. 799 00:41:51,460 --> 00:41:52,190 Temmelig spændende. 800 00:41:52,190 --> 00:41:53,310 801 00:41:53,310 --> 00:41:54,502 Bortset Chang. 802 00:41:54,502 --> 00:41:56,190 Men Chang er ikke rigtig en del af sektionen. 803 00:41:56,190 --> 00:42:17,282 804 00:42:17,282 --> 00:42:17,985 Awesome. 805 00:42:17,985 --> 00:42:18,485 Perfect. 806 00:42:18,485 --> 00:42:38,059 807 00:42:38,059 --> 00:42:39,475 Så jeg vil give dig et par hints. 808 00:42:39,475 --> 00:42:43,450 809 00:42:43,450 --> 00:42:46,890 I det tilfælde hvor man har mere end ét tegn, hvor 810 00:42:46,890 --> 00:42:49,990 du har noget andet ligesom 123 eller 1000 noget, 811 00:42:49,990 --> 00:42:53,790 du nødt til at være i stand til at sløjfe gennem og konvertere hver af disse. 812 00:42:53,790 --> 00:42:55,340 813 00:42:55,340 --> 00:42:58,699 Så der er et par måder, du kan gøre det, 814 00:42:58,699 --> 00:43:01,740 men du helt sikkert vil have en for-løkke eller andet sted derinde at sløjfe 815 00:43:01,740 --> 00:43:05,150 gennem dem, som er lidt ligesom den giveaway 816 00:43:05,150 --> 00:43:09,540 med selv hvis du kalder strlen, som er lidt ligesom oh 817 00:43:09,540 --> 00:43:12,418 måske du ønsker at bruge længden af strengen på nogen måde. 818 00:43:12,418 --> 00:45:17,300 819 00:45:17,300 --> 00:45:17,829 >> Ok. 820 00:45:17,829 --> 00:45:20,870 Så hvad tror du fyre tror kunne være en af ​​de første ting, vi ønsker at gøre? 821 00:45:20,870 --> 00:45:23,149 822 00:45:23,149 --> 00:45:25,690 Der er et par sager her vi er nødt til at redegøre for, right? 823 00:45:25,690 --> 00:45:27,360 Enten har vi noget, der er null. 824 00:45:27,360 --> 00:45:28,685 825 00:45:28,685 --> 00:45:30,383 Hvad har vi? 826 00:45:30,383 --> 00:45:30,882 Sager. 827 00:45:30,882 --> 00:45:32,760 828 00:45:32,760 --> 00:45:33,260 Null. 829 00:45:33,260 --> 00:45:34,400 830 00:45:34,400 --> 00:45:42,414 Vi har tilfældet, at det har noget andet end 09, right? 831 00:45:42,414 --> 00:45:43,580 Så lad os sige det har bogstaver. 832 00:45:43,580 --> 00:45:44,900 833 00:45:44,900 --> 00:45:46,510 Eller vi få sagen, der er gyldig. 834 00:45:46,510 --> 00:45:48,450 835 00:45:48,450 --> 00:45:50,130 Tre sager at tænke på. 836 00:45:50,130 --> 00:45:53,527 Så hvilken en tror du kunne være den nemmeste en til at tage sig af først? 837 00:45:53,527 --> 00:45:54,152 PUBLIKUM: Null. 838 00:45:54,152 --> 00:45:55,527 ALLISON BUCHHOLTZ-AU: Sagen er null. 839 00:45:55,527 --> 00:45:56,610 Så hvad ville vi gøre der? 840 00:45:56,610 --> 00:45:57,954 841 00:45:57,954 --> 00:45:58,870 PUBLIKUM: [uhørligt]. 842 00:45:58,870 --> 00:46:02,434 843 00:46:02,434 --> 00:46:03,184 ALLISON BUCHHOLTZ-AU: Ja. 844 00:46:03,184 --> 00:46:05,140 845 00:46:05,140 --> 00:46:06,550 Og hvad gør jeg ønsker at gøre? 846 00:46:06,550 --> 00:46:07,341 >> PUBLIKUM: Return 0. 847 00:46:07,341 --> 00:46:07,935 848 00:46:07,935 --> 00:46:09,110 >> ALLISON BUCHHOLTZ-AU: Præcis. 849 00:46:09,110 --> 00:46:09,860 Awesome. 850 00:46:09,860 --> 00:46:10,640 OK. 851 00:46:10,640 --> 00:46:15,270 Så nu sådan, at det har breve og sådan, at det er gyldigt. 852 00:46:15,270 --> 00:46:19,140 Vi kan faktisk passe dette inden for en løkke, OK? 853 00:46:19,140 --> 00:46:22,710 Så en måde at gøre it-- hvad der kunne være en enkel måde at kontrollere, om den er gyldig. 854 00:46:22,710 --> 00:46:25,150 855 00:46:25,150 --> 00:46:29,144 Vi ville være nødt til at gå igennem hvert bogstav og gøre hvad? 856 00:46:29,144 --> 00:46:34,336 857 00:46:34,336 --> 00:46:35,640 >> PUBLIKUM: Kontroller, om det er in-- 858 00:46:35,640 --> 00:46:39,570 >> ALLISON BUCHHOLTZ-AU: Right, kan du kontrollere hvis det er mellem 0 og 9, right? 859 00:46:39,570 --> 00:46:40,880 860 00:46:40,880 --> 00:46:42,700 Og derefter i tilfælde at det er gyldigt, er vi 861 00:46:42,700 --> 00:46:46,550 kommer til at ende iteration gennem vores snor anyways, right? 862 00:46:46,550 --> 00:46:48,690 Så hvorfor gør vi ikke prøve og kombinere dem i én. 863 00:46:48,690 --> 00:46:51,260 Vi kommer til at gentage gennem ud streng, og som vi 864 00:46:51,260 --> 00:46:56,400 gør det, vil vi først gøre en check for at se om denne skrivelse 865 00:46:56,400 --> 00:46:58,110 eller hvis denne karakter er gyldig. 866 00:46:58,110 --> 00:47:02,150 Hvis det er, vi kommer til at udføre operation, som vi er nødt til at konvertere det. 867 00:47:02,150 --> 00:47:05,050 Ellers vil det returnere 0, right? 868 00:47:05,050 --> 00:47:09,160 >> Så før vi gør det, vi sandsynligvis vil nogle variable 869 00:47:09,160 --> 00:47:12,820 at vi kan vende tilbage i slutningen der kommer til at være vores faktiske værdi. 870 00:47:12,820 --> 00:47:17,005 Så vi kommer til at initialisere vis værdi at være 0. 871 00:47:17,005 --> 00:47:18,390 Og det er netop, hvordan vi starter. 872 00:47:18,390 --> 00:47:22,452 873 00:47:22,452 --> 00:47:23,785 Så jeg har tænkt mig at slippe af med denne. 874 00:47:23,785 --> 00:47:26,750 875 00:47:26,750 --> 00:47:30,489 Så hvordan skal vi gennemløber denne streng. 876 00:47:30,489 --> 00:47:31,280 PUBLIKUM: For loop. 877 00:47:31,280 --> 00:47:32,280 ALLISON BUCHHOLTZ-AU: en for-løkke. 878 00:47:32,280 --> 00:47:33,160 Så hvad er vores for? 879 00:47:33,160 --> 00:47:34,710 880 00:47:34,710 --> 00:47:35,909 >> PUBLIKUM: Jeg er 0. 881 00:47:35,909 --> 00:47:36,700 ALLISON BUCHHOLTZ-AU: Mm-hm. 882 00:47:36,700 --> 00:47:38,620 883 00:47:38,620 --> 00:47:41,180 Og hvad er vi iteration indtil? 884 00:47:41,180 --> 00:47:42,450 >> PUBLIKUM: str længde s. 885 00:47:42,450 --> 00:47:47,920 886 00:47:47,920 --> 00:47:50,900 >> ALLISON BUCHHOLTZ-AU: OK, nu husker der er en bedre måde. [Uhørligt]. 887 00:47:50,900 --> 00:47:52,935 >> PUBLIKUM: Ja, vi kan gøre n lig. 888 00:47:52,935 --> 00:47:53,810 ALLISON BUCHHOLTZ-AU: Præcis. 889 00:47:53,810 --> 00:47:55,010 890 00:47:55,010 --> 00:47:56,190 >> PUBLIKUM: Jeg er mindre end n. 891 00:47:56,190 --> 00:47:57,559 892 00:47:57,559 --> 00:47:59,475 ALLISON BUCHHOLTZ-AU: Og hvorfor ville vi ønsker at gøre det? 893 00:47:59,475 --> 00:48:00,815 894 00:48:00,815 --> 00:48:01,940 Kan du huske årsagen? 895 00:48:01,940 --> 00:48:04,180 896 00:48:04,180 --> 00:48:05,680 PUBLIKUM: Vi er nødt til at genberegne det. 897 00:48:05,680 --> 00:48:08,735 ALLISON BUCHHOLTZ-AU: Becasue denne måde kan du kun nødt til at beregne StrLen gang. 898 00:48:08,735 --> 00:48:09,750 899 00:48:09,750 --> 00:48:14,400 Hvis du gør, jeg er mindre end strlen s, det er betyder det genberegner 900 00:48:14,400 --> 00:48:17,050 længde hver gang du kører for løkken, 901 00:48:17,050 --> 00:48:20,800 som ikke er en enorm omkostning af energi, men det er 902 00:48:20,800 --> 00:48:24,280 bedre praksis at forsøge at gøre ting som det en gang. 903 00:48:24,280 --> 00:48:27,610 Medmindre måske har du en skør snor der ændrer sig ved hver iteration. 904 00:48:27,610 --> 00:48:30,371 Men hvis det er opholder sig det samme, skal du gemme det. 905 00:48:30,371 --> 00:48:30,870 Ok. 906 00:48:30,870 --> 00:48:33,430 Og derefter jeg plus plus. 907 00:48:33,430 --> 00:48:34,040 Awesome. 908 00:48:34,040 --> 00:48:35,789 Vi er på vores måde. 909 00:48:35,789 --> 00:48:36,830 PUBLIKUM: Virkelig hurtigt. 910 00:48:36,830 --> 00:48:39,600 Først, så lad os sige, at vi bare Har jeg mindre end strlen af ​​s, 911 00:48:39,600 --> 00:48:42,175 er de klassificering os på design på alle eller bare korrekthed? 912 00:48:42,175 --> 00:48:43,640 913 00:48:43,640 --> 00:48:44,610 De er ikke. 914 00:48:44,610 --> 00:48:47,920 Vi klassificering på korrekthed for quizzer, så vidt jeg ved. 915 00:48:47,920 --> 00:48:52,670 Jeg kan ikke foretage en fuldstændig på garanti, men for det meste, 916 00:48:52,670 --> 00:48:57,060 Langt størstedelen er korrekte, fordi du er under en masse tid begrænsning. 917 00:48:57,060 --> 00:48:59,704 Design betyder typisk, du har tid til at tænke 918 00:48:59,704 --> 00:49:01,245 om elegance i din situation. 919 00:49:01,245 --> 00:49:03,710 920 00:49:03,710 --> 00:49:05,770 >> OK, så vi iteration igennem. 921 00:49:05,770 --> 00:49:10,640 Så vi er nødt til enten at kontrollere, se, om denne karakter er gyldig 922 00:49:10,640 --> 00:49:14,550 eller hvis vi kan udføre vores normal [? A til I?] funktionen. 923 00:49:14,550 --> 00:49:16,600 Vi kan bekymre sig om, hvad der er i en anden. 924 00:49:16,600 --> 00:49:19,340 Så hvorfor gør vi ikke take-- hvis nogen kan tænke 925 00:49:19,340 --> 00:49:21,930 om en måde at kontrollere se, om det er gyldigt. 926 00:49:21,930 --> 00:49:23,346 927 00:49:23,346 --> 00:49:25,740 Vi ved, det vil være nogle, hvis tilstand, right? 928 00:49:25,740 --> 00:49:26,830 929 00:49:26,830 --> 00:49:32,300 Og husk det er i ASCII, så hvordan kan 930 00:49:32,300 --> 00:49:37,359 vi se, om det ikke er 0,1, 2, 3, 4, 5, 6, 7, 8 eller 9. 931 00:49:37,359 --> 00:49:38,150 PUBLIKUM: Hvis alpha. 932 00:49:38,150 --> 00:49:39,800 933 00:49:39,800 --> 00:49:44,100 >> ALLISON BUCHHOLTZ-AU: Så hvis alpha ville kun Lad os vide, hvis det er et brev. 934 00:49:44,100 --> 00:49:47,810 Og hvis de giver os et symbol, det er stadig ikke helt kommer til at kontrollere. 935 00:49:47,810 --> 00:49:54,270 Så hvis du trækker din ASCII bord, ved vi, at 0 til 9 936 00:49:54,270 --> 00:49:55,340 er i et segment. 937 00:49:55,340 --> 00:49:57,560 938 00:49:57,560 --> 00:50:00,540 Fortæl mig de tal, de svarer til, hvis muligt. 939 00:50:00,540 --> 00:50:08,136 940 00:50:08,136 --> 00:50:08,677 PUBLIKUM: 40. 941 00:50:08,677 --> 00:50:11,440 942 00:50:11,440 --> 00:50:13,714 >> ALLISON BUCHHOLTZ-AU: Så området er ligesom 40-- 943 00:50:13,714 --> 00:50:14,380 PUBLIKUM: Måske. 944 00:50:14,380 --> 00:50:16,110 945 00:50:16,110 --> 00:50:16,765 48-57. 946 00:50:16,765 --> 00:50:17,430 Jeg er ikke sikker. 947 00:50:17,430 --> 00:50:18,510 >> ALLISON BUCHHOLTZ-AU: 40-57? 948 00:50:18,510 --> 00:50:19,426 >> PUBLIKUM: 48, tror jeg. 949 00:50:19,426 --> 00:50:20,730 ALLISON BUCHHOLTZ-AU: 48-57. 950 00:50:20,730 --> 00:50:26,070 Så vi ved, at dem, ASCII symbols-- hvis ASCII værdien ikke 951 00:50:26,070 --> 00:50:29,940 mellem 48 og 57, det er ikke gyldig, right? 952 00:50:29,940 --> 00:50:32,050 Så kunne vi bruge det til vores fordel evt? 953 00:50:32,050 --> 00:50:33,770 954 00:50:33,770 --> 00:50:38,082 Hvordan skal vi få dette brev, første off? 955 00:50:38,082 --> 00:50:40,910 Hvordan skal vi få adgang denne denne karakter? 956 00:50:40,910 --> 00:50:42,010 >> PUBLIKUM: s beslaget i. 957 00:50:42,010 --> 00:50:42,801 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 958 00:50:42,801 --> 00:50:43,790 959 00:50:43,790 --> 00:50:46,285 Fordi vi kan tænke på strenge som arrays, huske. 960 00:50:46,285 --> 00:50:47,470 961 00:50:47,470 --> 00:50:48,740 Så hvad skal vi ønsker at sige? 962 00:50:48,740 --> 00:50:55,920 Vi ønsker at sige, om dette is-- Jeg vil give dig et hint. 963 00:50:55,920 --> 00:50:56,920 Det er en mindre end. 964 00:50:56,920 --> 00:50:58,711 Hvad skal du tror det skal være mindre end? 965 00:50:58,711 --> 00:50:59,074 966 00:50:59,074 --> 00:50:59,615 PUBLIKUM: 57? 967 00:50:59,615 --> 00:51:01,550 968 00:51:01,550 --> 00:51:02,900 >> ALLISON BUCHHOLTZ-AU: 47, right? 969 00:51:02,900 --> 00:51:08,920 Men det repræsenterer også, at når du en 0 i single [? eger?], fordi det er 970 00:51:08,920 --> 00:51:09,689 karakteren 0. 971 00:51:09,689 --> 00:51:10,605 Du kan også sætte 47. 972 00:51:10,605 --> 00:51:11,660 973 00:51:11,660 --> 00:51:14,350 Under ASCII tabel, som du ser, er bare noget 974 00:51:14,350 --> 00:51:18,580 du skal have på din quiz ark. 975 00:51:18,580 --> 00:51:25,830 >> Så hvis dette er tilfældet, hvis det er en mindre end 0-- ikke nødvendigvis og. 976 00:51:25,830 --> 00:51:30,890 Det er kun enten vil være mindre end eller større end 9. 977 00:51:30,890 --> 00:51:33,055 Så kan du udfylde denne sidste til mig? 978 00:51:33,055 --> 00:51:36,440 Så eller s for jeg er hvad, Rhea? 979 00:51:36,440 --> 00:51:39,810 980 00:51:39,810 --> 00:51:41,536 >> PUBLIKUM: Større end 9. 981 00:51:41,536 --> 00:51:42,970 982 00:51:42,970 --> 00:51:44,221 >> ALLISON BUCHHOLTZ-AU: There. 983 00:51:44,221 --> 00:51:47,280 Giver det mening at alle, hvordan vi fik der? 984 00:51:47,280 --> 00:51:51,340 Disse problemer, de er ligesom, når du se de løsninger, det er ligesom oh, OK. 985 00:51:51,340 --> 00:51:52,312 986 00:51:52,312 --> 00:51:53,937 Og dette er grunden til praksis vil hjælpe dig. 987 00:51:53,937 --> 00:51:55,070 988 00:51:55,070 --> 00:51:57,400 OK, så vi vender tilbage 0. 989 00:51:57,400 --> 00:51:57,900 Dejligt. 990 00:51:57,900 --> 00:51:59,000 991 00:51:59,000 --> 00:51:59,670 Ok. 992 00:51:59,670 --> 00:52:00,780 993 00:52:00,780 --> 00:52:02,365 Ellers hvad ønsker vi at gøre? 994 00:52:02,365 --> 00:52:04,640 Dette er den interessante del hvor det er lidt mere 995 00:52:04,640 --> 00:52:07,550 som matematik versus CS i min udtalelse. 996 00:52:07,550 --> 00:52:09,479 997 00:52:09,479 --> 00:52:11,520 Er der nogen der har en idé af, hvordan vi kan gøre dette? 998 00:52:11,520 --> 00:52:15,822 999 00:52:15,822 --> 00:52:18,155 Så det vigtige ting at indse, er det første tegn 1000 00:52:18,155 --> 00:52:21,510 vi tager vil være den højeste orden ciffer, right? 1001 00:52:21,510 --> 00:52:25,975 Så hvis vi kigger på konvertering 123, første gang vi gentage 1002 00:52:25,975 --> 00:52:30,800 er kommer til at være 1, men vi har brug for at for at være 100 ved udgangen, right? 1003 00:52:30,800 --> 00:52:34,450 Så en ting du kan gøre, er, at med hver efterfølgende ciffer 1004 00:52:34,450 --> 00:52:39,670 du tager, du ganger din værdi med 10, så med den tid, du kommer til slutningen, 1005 00:52:39,670 --> 00:52:42,960 alt har været forskudt opad, right? 1006 00:52:42,960 --> 00:52:46,490 >> Så den første gang du kører det, du har 1 som din værdi. 1007 00:52:46,490 --> 00:52:50,370 Anden gang du kører det, du formere din værdi med 10. 1008 00:52:50,370 --> 00:52:55,180 Det vil opdatere det, så det er nu 10, og du tilføjer på din næste værdi. 1009 00:52:55,180 --> 00:52:57,830 Og så skal du gange det med 10 og tilføje på din næste værdi. 1010 00:52:57,830 --> 00:53:01,880 Og det er derfor de siger dette er meget mere som test 1011 00:53:01,880 --> 00:53:06,920 en matematisk algoritme versus CS, men jeg sidespring. 1012 00:53:06,920 --> 00:53:08,080 Jeg skriver ikke quizzer. 1013 00:53:08,080 --> 00:53:13,520 >> Så én ting, vi kan gøre, er vi sige værdi gange svarer til 10. 1014 00:53:13,520 --> 00:53:16,630 Så dette kommer til at flytte din cifrede gang hver gang. 1015 00:53:16,630 --> 00:53:18,770 1016 00:53:18,770 --> 00:53:20,915 Og så har vi bare ønsker at tilføje. 1017 00:53:20,915 --> 00:53:22,070 1018 00:53:22,070 --> 00:53:24,290 Vi ønsker at tilføje i hvad vi fik bare, ikke? 1019 00:53:24,290 --> 00:53:25,350 1020 00:53:25,350 --> 00:53:31,649 Så hvordan kan vi faktisk konvertere vores ASCII-tegn i antallet 1021 00:53:31,649 --> 00:53:32,440 at det repræsenterer? 1022 00:53:32,440 --> 00:53:37,680 1023 00:53:37,680 --> 00:53:40,800 >> Så vi ved, at 0 er lig med 47, right? 1024 00:53:40,800 --> 00:53:44,260 Så hvis 0 er 47, hvad ville vi nødt til at gøre det 1025 00:53:44,260 --> 00:53:47,376 til rent faktisk at gøre det være en int på 0? 1026 00:53:47,376 --> 00:53:48,384 >> PUBLIKUM: Det er 48. 1027 00:53:48,384 --> 00:53:49,050 ALLISON BUCHHOLTZ-AU: 48? 1028 00:53:49,050 --> 00:53:49,550 Undskyld. 1029 00:53:49,550 --> 00:53:53,500 1030 00:53:53,500 --> 00:53:55,100 Vi ville trække 48, right? 1031 00:53:55,100 --> 00:53:58,580 1032 00:53:58,580 --> 00:53:59,550 Husk ASCII matematik? 1033 00:53:59,550 --> 00:54:01,565 Vi kan behandle dem lige ligesom normale tal. 1034 00:54:01,565 --> 00:54:02,570 1035 00:54:02,570 --> 00:54:05,900 Hvis du behandler dem som numre, de bliver tal effektivt. 1036 00:54:05,900 --> 00:54:10,410 Så hvis vi har s af i, som lader sige i dette tilfælde er lig med 0. 1037 00:54:10,410 --> 00:54:14,420 Så s af jeg i denne sag ville være ASCII-- 1038 00:54:14,420 --> 00:54:16,675 ASCII int for det ville være 47. 1039 00:54:16,675 --> 00:54:17,750 1040 00:54:17,750 --> 00:54:19,875 Så kunne vi subtract-- eller 48. 1041 00:54:19,875 --> 00:54:20,930 1042 00:54:20,930 --> 00:54:22,440 Du kunne gøre det, er én måde. 1043 00:54:22,440 --> 00:54:25,125 Er der nogen kender en bedre måde kunne vi gøre 48? 1044 00:54:25,125 --> 00:54:27,220 1045 00:54:27,220 --> 00:54:31,608 Vi har lige sagt 0 is-- gå ind ASCII du kunne gøre citat 0. 1046 00:54:31,608 --> 00:54:39,740 1047 00:54:39,740 --> 00:54:43,160 Så gør den slags gøre fornuft, hvordan det virker? 1048 00:54:43,160 --> 00:54:50,080 >> PUBLIKUM: På dette tidspunkt er værdien 0 fordi selv hvis du ganger det med 10, 1049 00:54:50,080 --> 00:54:53,340 du starter ud med nul, så skal det skiftes? 1050 00:54:53,340 --> 00:54:59,360 >> ALLISON BUCHHOLTZ-AU: Så i dette tilfælde, du ønsker at formere den før du tilføjer, 1051 00:54:59,360 --> 00:55:06,650 fordi der i dette tilfælde, ja, det ville stadig være-- min pointer mangler. 1052 00:55:06,650 --> 00:55:09,980 Værdien i dette tilfælde er den første gang vi kører det vil være nul. 1053 00:55:09,980 --> 00:55:12,320 Så du bare tilføje på den første ciffer. 1054 00:55:12,320 --> 00:55:15,930 Hvad der er vigtigt er det næste gang du gentage, du ønsker at flytte det op 1055 00:55:15,930 --> 00:55:18,722 før du tilføjer din næste ciffer på. 1056 00:55:18,722 --> 00:55:21,223 Betyder at afklare for dig? 1057 00:55:21,223 --> 00:55:21,723 OK. 1058 00:55:21,723 --> 00:55:23,050 1059 00:55:23,050 --> 00:55:25,900 >> Nogle gange du vil få mærkelige flere Mathy ting. 1060 00:55:25,900 --> 00:55:28,020 1061 00:55:28,020 --> 00:55:30,750 Hvis du havde det meste af dette, er du stadig i gang 1062 00:55:30,750 --> 00:55:32,610 at get-- du vil gøre temmelig godt. 1063 00:55:32,610 --> 00:55:35,150 Delvis kredit er et meget store ting på CS50 quizzer. 1064 00:55:35,150 --> 00:55:36,270 Så skriv hvad du ved. 1065 00:55:36,270 --> 00:55:39,640 Hvis du fik alt bortset fra her, er du 1066 00:55:39,640 --> 00:55:41,390 stadig vil gøre virkelig godt problemet. 1067 00:55:41,390 --> 00:55:43,750 Fordi du viser, OK, jeg næsten kender. 1068 00:55:43,750 --> 00:55:45,570 Jeg ved, at jeg er nødt til at gentage gennem. 1069 00:55:45,570 --> 00:55:47,260 Jeg ved, hvad jeg har brug for at kontrollere for. 1070 00:55:47,260 --> 00:55:50,584 Jeg ved bare ikke helt få, hvordan du konvertere det. 1071 00:55:50,584 --> 00:55:51,500 Du kommer til at være OK. 1072 00:55:51,500 --> 00:55:52,850 Ja, du vil tabe et par punkter, 1073 00:55:52,850 --> 00:55:55,641 men du stadig vil få en god antallet af point for noget 1074 00:55:55,641 --> 00:55:57,990 gerne, at hvis du er mangler disse to linjer. 1075 00:55:57,990 --> 00:56:00,660 Jeg ville være ligesom OK, denne person ved, hvad de laver. 1076 00:56:00,660 --> 00:56:02,070 Math er hårdt. 1077 00:56:02,070 --> 00:56:04,930 Så jeg vil sige, du ville være fint. 1078 00:56:04,930 --> 00:56:09,474 >> OK, så du fyre klar til at prøv strlen med pointere nu 1079 00:56:09,474 --> 00:56:10,890 at du fyre er markørindstillinger mestre? 1080 00:56:10,890 --> 00:56:12,400 1081 00:56:12,400 --> 00:56:15,106 Så jeg vil lade dig fyre arbejde på, at der for en lille smule. 1082 00:56:15,106 --> 00:56:17,131 1083 00:56:17,131 --> 00:56:19,090 Hvis nogen har brug for et genopfriskningskursus. 1084 00:56:19,090 --> 00:56:23,120 1085 00:56:23,120 --> 00:56:28,060 Så du ønsker at bruge pointer aritmetik, og derefter, hvis s er nul, 1086 00:56:28,060 --> 00:56:29,624 din implementering skal returnere 0. 1087 00:56:29,624 --> 00:56:37,045 1088 00:56:37,045 --> 00:56:39,670 Ting som dette, der gør dig virkelig glad for at bare kalde strlen 1089 00:56:39,670 --> 00:56:40,586 ved udgangen af ​​dagen. 1090 00:56:40,586 --> 00:57:24,874 1091 00:57:24,874 --> 00:57:27,624 Jeg tror, ​​dette kan være en smule lettere end den sidste, som 1092 00:57:27,624 --> 00:57:28,123 er god. 1093 00:57:28,123 --> 00:58:51,789 1094 00:58:51,789 --> 00:58:55,690 Jeg vil give jer et andet minut, og så vil vi arbejde gennem det. 1095 00:58:55,690 --> 00:58:56,896 1096 00:58:56,896 --> 00:58:58,320 Og så får vi at gå til kontakter. 1097 00:58:58,320 --> 00:59:32,480 1098 00:59:32,480 --> 00:59:34,660 >> OK, klar fyre? 1099 00:59:34,660 --> 00:59:35,790 1100 00:59:35,790 --> 00:59:37,420 Måske en lille smule. 1101 00:59:37,420 --> 00:59:40,210 Så jeg har givet dig din to muligheder, right? 1102 00:59:40,210 --> 00:59:45,810 Enten tjekke for null og returnere 0, hvis det er, eller faktisk udregne længden. 1103 00:59:45,810 --> 00:59:48,220 Så hvem ønsker at skrive tjekke for null? 1104 00:59:48,220 --> 00:59:50,100 1105 00:59:50,100 --> 00:59:51,790 Gå efter det. 1106 00:59:51,790 --> 00:59:56,460 >> PUBLIKUM: Hvis parentes s lig er lig nul tilbagevenden 0. 1107 00:59:56,460 --> 00:59:57,342 1108 00:59:57,342 --> 00:59:58,175 ALLISON BUCHHOLTZ-AU: Lovely. 1109 00:59:58,175 --> 00:59:59,350 1110 00:59:59,350 --> 01:00:02,320 Jeg elsker når halvdelen af ​​dit problem er bare kontrol for null. 1111 01:00:02,320 --> 01:00:04,820 Jeg ved med jer sidste uge var jeg ligesom tjekke for null 1112 01:00:04,820 --> 01:00:06,630 bogstaveligt talt hver gang. 1113 01:00:06,630 --> 01:00:07,510 OK, so-- 1114 01:00:07,510 --> 01:00:08,716 1115 01:00:08,716 --> 01:00:12,750 >> PUBLIKUM: Hvis tilbagevenden 0 er kun én linje, har vi stadig brug for krøllede beslag? 1116 01:00:12,750 --> 01:00:15,860 >> ALLISON BUCHHOLTZ-AU: Du behøver ikke teknisk brug for dem, så længe du er konsekvent. 1117 01:00:15,860 --> 01:00:19,240 Det er god praksis bare at komme i vane 1118 01:00:19,240 --> 01:00:21,650 at anvende krøllede parenteser, men teknisk no. 1119 01:00:21,650 --> 01:00:23,320 Du behøver ikke dem til én linje. 1120 01:00:23,320 --> 01:00:26,030 Vi har bare en tendens til at anbefale det for mennesker begynder at programmere. 1121 01:00:26,030 --> 01:00:27,740 1122 01:00:27,740 --> 01:00:30,450 >> Så nu, hvad vi måske ønsker at gøre her? 1123 01:00:30,450 --> 01:00:32,222 Så nu ved vi, at vores streng er gyldig. 1124 01:00:32,222 --> 01:00:33,680 Vi ønsker at holde beregne længden. 1125 01:00:33,680 --> 01:00:35,620 Hvad er sandsynligvis den første ting, vi ønsker at gøre? 1126 01:00:35,620 --> 01:00:38,770 1127 01:00:38,770 --> 01:00:41,276 >> PUBLIKUM: Opret en int det er længden. 1128 01:00:41,276 --> 01:00:42,150 ALLISON BUCHHOLTZ-AU: Præcis. 1129 01:00:42,150 --> 01:00:43,450 PUBLIKUM: Og vi ønsker at indstille det til? 1130 01:00:43,450 --> 01:00:44,210 ALLISON BUCHHOLTZ-AU: 0. 1131 01:00:44,210 --> 01:00:44,710 Perfect. 1132 01:00:44,710 --> 01:00:46,050 1133 01:00:46,050 --> 01:00:47,290 Ok. 1134 01:00:47,290 --> 01:00:48,750 Nu, hvad ønsker at gøre? 1135 01:00:48,750 --> 01:00:50,000 Dette er virkelig hovedparten af ​​det. 1136 01:00:50,000 --> 01:00:50,890 Gå efter det. 1137 01:00:50,890 --> 01:00:54,370 >> PUBLIKUM: Så du sandsynligvis gøre en for-løkke. 1138 01:00:54,370 --> 01:01:03,150 Og så fordi når du ringer s du er at få adressen på den første, 1139 01:01:03,150 --> 01:01:05,660 du ville starte med jeg er lig med 0. 1140 01:01:05,660 --> 01:01:07,980 1141 01:01:07,980 --> 01:01:15,755 Og så så længe x plus jeg er ikke tilbage skråstreg 0. 1142 01:01:15,755 --> 01:01:17,130 ALLISON BUCHHOLTZ-AU: Nul terminator. 1143 01:01:17,130 --> 01:01:18,380 PUBLIKUM: Nul terminator. 1144 01:01:18,380 --> 01:01:18,890 1145 01:01:18,890 --> 01:01:21,088 Så kan du tilføje en til længden. 1146 01:01:21,088 --> 01:01:22,372 >> ALLISON BUCHHOLTZ-AU: Ja. 1147 01:01:22,372 --> 01:01:25,940 OK, så lad os vende det i meget konkret kode. 1148 01:01:25,940 --> 01:01:27,537 Men der er den perfekte idé. 1149 01:01:27,537 --> 01:01:28,870 Det er præcis, hvad vi laver. 1150 01:01:28,870 --> 01:01:31,910 Vi kommer til at være iteration igennem med markøren. 1151 01:01:31,910 --> 01:01:34,590 Så hvad vi ønsker at gøre er i stedet for en int 1152 01:01:34,590 --> 01:01:36,660 her, fordi vi er ikke henvise til en det. 1153 01:01:36,660 --> 01:01:42,390 Vi henvise til starten af ​​en streng, der begynder at være lidt adresse, 1154 01:01:42,390 --> 01:01:43,300 højre? 1155 01:01:43,300 --> 01:01:44,600 >> Så vi ønsker en pointer. 1156 01:01:44,600 --> 01:01:47,610 1157 01:01:47,610 --> 01:01:52,310 Så vi vil have nogle char stjerne, fordi det svarer til vores s, til højre? 1158 01:01:52,310 --> 01:01:57,270 Så dette er et tidspunkt vi initialisering til starten af ​​strengen, OK? 1159 01:01:57,270 --> 01:01:58,949 Så lad os bare kalde det i. 1160 01:01:58,949 --> 01:02:01,740 Hvis det er starten af ​​strengen, hvad det kommer til at blive tildelt? 1161 01:02:01,740 --> 01:02:03,690 1162 01:02:03,690 --> 01:02:04,530 Ikke er 0. 1163 01:02:04,530 --> 01:02:06,238 Vi ønsker det skal være den start af vores streng. 1164 01:02:06,238 --> 01:02:07,170 1165 01:02:07,170 --> 01:02:09,960 Hvad repræsenterer starten på vores streng, der blev givet til os? 1166 01:02:09,960 --> 01:02:10,800 >> PUBLIKUM: Just s. 1167 01:02:10,800 --> 01:02:11,425 >> ALLISON BUCHHOLTZ-AU: s. 1168 01:02:11,425 --> 01:02:13,070 1169 01:02:13,070 --> 01:02:17,890 Så dette skaber nogle nye pointer, repræsenterer starten af ​​vores streng, OK? 1170 01:02:17,890 --> 01:02:19,430 1171 01:02:19,430 --> 01:02:22,777 En anden måde at tænke på det er ligesom her er vores array. 1172 01:02:22,777 --> 01:02:26,690 Det er vores streng, s. 1173 01:02:26,690 --> 01:02:28,650 1174 01:02:28,650 --> 01:02:32,400 Så lad os sige det er den første spot, og det er 0x4. 1175 01:02:32,400 --> 01:02:34,400 1176 01:02:34,400 --> 01:02:34,900 04. 1177 01:02:34,900 --> 01:02:36,330 1178 01:02:36,330 --> 01:02:38,535 Dette er vores s, som holder denne adresse. 1179 01:02:38,535 --> 01:02:39,810 1180 01:02:39,810 --> 01:02:45,960 Og vi har lige oprettet en anden kaldet Jeg, der bare refererer til den samme ting. 1181 01:02:45,960 --> 01:02:49,437 Så de er begge bare pege til starten af ​​vores streng. 1182 01:02:49,437 --> 01:02:51,020 Dette er blot en grafisk repræsentation. 1183 01:02:51,020 --> 01:02:53,830 1184 01:02:53,830 --> 01:02:57,100 >> Så nu, hvad vi ønsker at gøre, er at vi ønsker at gentage 1185 01:02:57,100 --> 01:03:02,040 vores betingelse for iteration gennem vores streng. 1186 01:03:02,040 --> 01:03:02,920 Nu shopping. 1187 01:03:02,920 --> 01:03:04,150 Fik at shoppe, gutter. 1188 01:03:04,150 --> 01:03:06,290 1189 01:03:06,290 --> 01:03:12,390 Er vi ønsker at holde opdatering indtil vi nå null terminator, right? 1190 01:03:12,390 --> 01:03:14,930 Så hvad kunne det se ud? 1191 01:03:14,930 --> 01:03:17,760 1192 01:03:17,760 --> 01:03:21,880 Ønsker vi i, eller ønsker vi star jeg er spørgsmålet? 1193 01:03:21,880 --> 01:03:26,160 1194 01:03:26,160 --> 01:03:29,255 Er null terminator en adresse eller noget placeret på en adresse? 1195 01:03:29,255 --> 01:03:31,420 1196 01:03:31,420 --> 01:03:33,660 Placeret på en adresse, right? 1197 01:03:33,660 --> 01:03:38,420 >> Så vi har brug for dereference hvad der er her, fordi det er blot nogle adresse. 1198 01:03:38,420 --> 01:03:44,350 For rent faktisk at komme til start vi er nødt til dereference dette 1199 01:03:44,350 --> 01:03:46,770 således at vi rent faktisk får hvad der er i denne første omgang. 1200 01:03:46,770 --> 01:03:48,690 1201 01:03:48,690 --> 01:03:52,910 Så hvis vi gør star jeg, hvad ønsker vi ikke, at det lige? 1202 01:03:52,910 --> 01:03:53,885 1203 01:03:53,885 --> 01:03:54,760 PUBLIKUM: Back skråstreg? 1204 01:03:54,760 --> 01:03:57,760 1205 01:03:57,760 --> 01:03:59,260 >> ALLISON BUCHHOLTZ-AU: There. 1206 01:03:59,260 --> 01:04:01,430 Giver det mening for alle? 1207 01:04:01,430 --> 01:04:05,620 Vi er nødt til at gå ind i vores streng og sørg for, at det er ikke enden. 1208 01:04:05,620 --> 01:04:07,200 1209 01:04:07,200 --> 01:04:08,990 Og så kan vi bare opdatere ligesom dette. 1210 01:04:08,990 --> 01:04:09,680 Normal opdatering. 1211 01:04:09,680 --> 01:04:11,910 1212 01:04:11,910 --> 01:04:15,070 Så længe disse er met, hvad skal vi gøre? 1213 01:04:15,070 --> 01:04:17,700 1214 01:04:17,700 --> 01:04:18,852 >> PUBLIKUM: Længde plus plus. 1215 01:04:18,852 --> 01:04:20,656 1216 01:04:20,656 --> 01:04:21,560 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1217 01:04:21,560 --> 01:04:25,540 Og så efter for-løkken ophører, hvad ønsker vi at vende tilbage? 1218 01:04:25,540 --> 01:04:27,082 1219 01:04:27,082 --> 01:04:27,790 PUBLIKUM: Længde? 1220 01:04:27,790 --> 01:04:28,623 ALLISON BUCHHOLTZ-AU: længde. 1221 01:04:28,623 --> 01:04:29,910 1222 01:04:29,910 --> 01:04:30,760 Der kan du gå. 1223 01:04:30,760 --> 01:04:33,790 1224 01:04:33,790 --> 01:04:37,810 Naturligvis kød af denne ene er at forstå dette for løkke. 1225 01:04:37,810 --> 01:04:39,280 1226 01:04:39,280 --> 01:04:41,090 Skal alle få, hvordan det virkede? 1227 01:04:41,090 --> 01:04:42,460 1228 01:04:42,460 --> 01:04:44,170 Jeg er glad for at gå over det igen. 1229 01:04:44,170 --> 01:04:48,400 >> PUBLIKUM: Den anden del, så stjernen jeg der, 1230 01:04:48,400 --> 01:04:51,834 det er adressen på den first-- 1231 01:04:51,834 --> 01:04:53,250 ALLISON BUCHHOLTZ-AU: Det er ikke adressen. 1232 01:04:53,250 --> 01:04:54,142 Det er, hvad der er på. 1233 01:04:54,142 --> 01:04:55,600 PUBLIKUM: Det er faktisk derinde. 1234 01:04:55,600 --> 01:04:57,475 ALLISON BUCHHOLTZ-AU: Det er hvad er faktisk derinde. 1235 01:04:57,475 --> 01:05:01,280 Så dette er saying-- lade mig gøre det bedre. 1236 01:05:01,280 --> 01:05:07,940 Så dette er 0x04, og jeg bare at sige, at jeg har tænkt mig at gøre dette mit navn. 1237 01:05:07,940 --> 01:05:14,531 1238 01:05:14,531 --> 01:05:15,030 OK. 1239 01:05:15,030 --> 01:05:17,456 1240 01:05:17,456 --> 01:05:19,080 Ja, jeg ved, jeg har quiz gennemgang i aften. 1241 01:05:19,080 --> 01:05:20,620 1242 01:05:20,620 --> 01:05:21,540 Masser af quiz gennemgang. 1243 01:05:21,540 --> 01:05:23,500 1244 01:05:23,500 --> 01:05:26,620 Så lad os sige denne streng er mit navn, Allison. 1245 01:05:26,620 --> 01:05:28,600 Lidt rodet, men det er der. 1246 01:05:28,600 --> 01:05:33,640 Og s repræsenterer placeringen hvor strengen starter, 1247 01:05:33,640 --> 01:05:41,950 så jeg har tænkt mig at gøre dette real-- dette er adressen på en, 1248 01:05:41,950 --> 01:05:45,000 hvor strengen starter, right? 1249 01:05:45,000 --> 01:05:48,560 >> Så hvad vi gør her, er, at vi ønsker at bruge pegepinde at gentage gennem. 1250 01:05:48,560 --> 01:05:49,920 1251 01:05:49,920 --> 01:05:56,870 Så vi skabe nogle pointer, i, at også er lig med begyndelsen af ​​strengen. 1252 01:05:56,870 --> 01:05:57,880 1253 01:05:57,880 --> 01:06:03,820 Og på hvert punkt, vi ønsker at fortsætte med at gå gennem array 1254 01:06:03,820 --> 01:06:07,570 her, indtil vi ramte den null terminator. 1255 01:06:07,570 --> 01:06:12,320 Så vi altid ønsker at kontrollere, hvad der er ved hver af disse adresser. 1256 01:06:12,320 --> 01:06:15,730 >> Så vi dereference i, således at første gang vi gør det, vi 1257 01:06:15,730 --> 01:06:17,810 sige, OK, hvad der står på adressen 0x04? 1258 01:06:17,810 --> 01:06:19,060 1259 01:06:19,060 --> 01:06:19,720 Det er en a. 1260 01:06:19,720 --> 01:06:20,660 OK, vi er gode. 1261 01:06:20,660 --> 01:06:21,770 Tilvækst længde. 1262 01:06:21,770 --> 01:06:22,790 Gå videre til den næste. 1263 01:06:22,790 --> 01:06:32,410 Så I-- huske pointers forhøjelse af størrelsen af ​​hvad de nu peger på. 1264 01:06:32,410 --> 01:06:35,320 Så i dette tilfælde, da det er en char, det vil opdatere med én. 1265 01:06:35,320 --> 01:06:38,755 Så nu vil vi se på 5, hvilket betyder, at det går herovre. 1266 01:06:38,755 --> 01:06:39,860 1267 01:06:39,860 --> 01:06:43,440 Så det siger OK, gå til 0x05. 1268 01:06:43,440 --> 01:06:44,270 Hvad er derinde? 1269 01:06:44,270 --> 01:06:44,930 Det er en l. 1270 01:06:44,930 --> 01:06:47,870 Og det vil holde gør, at indtil den rammer denne. 1271 01:06:47,870 --> 01:06:50,990 Og det siger OK, hvad der er i uanset adresse det er? 1272 01:06:50,990 --> 01:06:53,060 Den null terminator, OK. 1273 01:06:53,060 --> 01:06:53,870 Exit. 1274 01:06:53,870 --> 01:06:55,240 Og bare returnere længde. 1275 01:06:55,240 --> 01:06:56,370 1276 01:06:56,370 --> 01:06:59,800 Fordi du har brug hvad der er faktisk på denne adresse, ikke selve adressen. 1277 01:06:59,800 --> 01:07:03,110 1278 01:07:03,110 --> 01:07:05,790 >> Der er meget få steder, hvor du rent faktisk har brug for adressen. 1279 01:07:05,790 --> 01:07:08,720 Det meste af tiden når du bruger, og det er 1280 01:07:08,720 --> 01:07:12,424 når du er først tildele en pegepind eller når 1281 01:07:12,424 --> 01:07:14,090 du passerer det ind i en anden funktion. 1282 01:07:14,090 --> 01:07:16,350 1283 01:07:16,350 --> 01:07:21,330 OK, alle godt der? 1284 01:07:21,330 --> 01:07:21,830 Slags? 1285 01:07:21,830 --> 01:07:23,810 1286 01:07:23,810 --> 01:07:25,040 OK. 1287 01:07:25,040 --> 01:07:28,210 >> Så det ser ud til vi har fik omkring 12 minutter tilbage, 1288 01:07:28,210 --> 01:07:31,340 så vi vil gå videre til måske vores sidste problem, 1289 01:07:31,340 --> 01:07:34,230 og så er der nogen begreber, der er kommet op 1290 01:07:34,230 --> 01:07:36,830 i mellemtiden, vi kan hurtigt gå over. 1291 01:07:36,830 --> 01:07:42,310 >> Så skifter gear er det sidste problemet her, skifte udsagn. 1292 01:07:42,310 --> 01:07:44,970 1293 01:07:44,970 --> 01:07:49,450 Så dit job er at omskrive dette således at den opfører sig på samme 1294 01:07:49,450 --> 01:07:50,580 men ikke anvender switches. 1295 01:07:50,580 --> 01:07:53,684 1296 01:07:53,684 --> 01:07:54,666 Kalkholdig hænder. 1297 01:07:54,666 --> 01:08:11,630 1298 01:08:11,630 --> 01:08:13,420 Så spørgsmål om dette off the bat? 1299 01:08:13,420 --> 01:08:15,420 1300 01:08:15,420 --> 01:08:15,920 Ingen? 1301 01:08:15,920 --> 01:08:16,420 OK. 1302 01:08:16,420 --> 01:08:17,920 1303 01:08:17,920 --> 01:08:22,170 Skal alle forstå, at hvis den tilfælde ikke har noget efter det, 1304 01:08:22,170 --> 01:08:25,029 det betyder, at det skal Følg det næste skridt? 1305 01:08:25,029 --> 01:08:28,200 Så tilfælde 1 og 2 i dette tilfælde gøre præcis de samme ting. 1306 01:08:28,200 --> 01:08:31,153 1307 01:08:31,153 --> 01:08:32,444 Sommetider et punkt for forveksling. 1308 01:08:32,444 --> 01:09:32,700 1309 01:09:32,700 --> 01:09:33,488 >> Ok. 1310 01:09:33,488 --> 01:09:34,404 Nogen der har nogen ideer? 1311 01:09:34,404 --> 01:09:36,364 1312 01:09:36,364 --> 01:09:36,864 Ja? 1313 01:09:36,864 --> 01:09:40,120 >> PUBLIKUM: Så du kan bare gøre, hvis udsagn. 1314 01:09:40,120 --> 01:09:41,140 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1315 01:09:41,140 --> 01:09:42,880 Så hvad er vores første? 1316 01:09:42,880 --> 01:09:48,120 >> PUBLIKUM: Hvis n er lig med er lig med 1, og de 2 linjer for eller n er lig 1317 01:09:48,120 --> 01:09:51,059 lig med 2, derefter udskrive små. 1318 01:09:51,059 --> 01:09:57,760 1319 01:09:57,760 --> 01:09:59,520 Og så kan man gøre andet, hvis? 1320 01:09:59,520 --> 01:10:02,160 Eller kan du bare gøre en hvis? 1321 01:10:02,160 --> 01:10:03,650 >> ALLISON BUCHHOLTZ-AU: Du kan gøre andet, hvis? 1322 01:10:03,650 --> 01:10:05,274 >> PUBLIKUM: Ville det noget, hvis du gøre, hvis? 1323 01:10:05,274 --> 01:10:06,320 ALLISON BUCHHOLTZ-AU: Så det gør. 1324 01:10:06,320 --> 01:10:10,160 Er anyone-- så, du får det samme output 1325 01:10:10,160 --> 01:10:13,930 hvis du bruger bare hvis'er versus hvis du bruger andres hvis'er. 1326 01:10:13,930 --> 01:10:17,090 Kan du fyre tror på grunden hvorfor du måske ønsker at bruge en anden 1327 01:10:17,090 --> 01:10:18,680 hvis versus en masse hvis'er? 1328 01:10:18,680 --> 01:10:20,260 1329 01:10:20,260 --> 01:10:21,510 Har til med effektivitet. 1330 01:10:21,510 --> 01:10:22,225 Ja? 1331 01:10:22,225 --> 01:10:24,783 >> PUBLIKUM: Det ville kontrollere alle de hvis'er hver gang. 1332 01:10:24,783 --> 01:10:26,076 1333 01:10:26,076 --> 01:10:28,110 >> ALLISON BUCHHOLTZ-AU: Så selvom det ramte denne første, 1334 01:10:28,110 --> 01:10:29,880 det ville gå på check hver anden. 1335 01:10:29,880 --> 01:10:36,690 Så du ønsker at bruge, hvis andens hvis'er i tilfælde, hvor kun en af ​​dem vil nogensinde anvendelse. 1336 01:10:36,690 --> 01:10:39,380 Så gensidig udelukkelse er hvad vi har en tendens til at sige. 1337 01:10:39,380 --> 01:10:41,410 1338 01:10:41,410 --> 01:10:46,550 Hvis du har en masse hvis'er, betyder det at måske mere end én af dem 1339 01:10:46,550 --> 01:10:49,630 sager, og måske mere end den ene af dem kan være sandt. 1340 01:10:49,630 --> 01:10:51,910 Og du vil have dem begge at udføre, hvis de er sande. 1341 01:10:51,910 --> 01:10:57,180 Hvis du kun vil have en af ​​dem til at arbejde i disse gensidigt eksklusive tilfælde 1342 01:10:57,180 --> 01:11:00,790 du ønsker at bruge andet, hvis, fordi det hele har at gøre med effektivitet. 1343 01:11:00,790 --> 01:11:05,350 Din kode er bare bedre designet hvis det klæber til denne praksis. 1344 01:11:05,350 --> 01:11:07,330 Så i dette tilfælde vil vi have et andet, hvis. 1345 01:11:07,330 --> 01:11:09,080 Og det ville være? 1346 01:11:09,080 --> 01:11:11,890 >> PUBLIKUM: n er lig med lig med 3. 1347 01:11:11,890 --> 01:11:12,765 ALLISON BUCHHOLTZ-AU: Perfect. 1348 01:11:12,765 --> 01:11:19,420 1349 01:11:19,420 --> 01:11:20,445 Printmedie. 1350 01:11:20,445 --> 01:11:25,190 1351 01:11:25,190 --> 01:11:29,930 Og så i vores sidste tilfælde, hvad har vi? 1352 01:11:29,930 --> 01:11:31,495 Else eller andet, hvis? 1353 01:11:31,495 --> 01:11:32,120 PUBLIKUM: Else. 1354 01:11:32,120 --> 01:11:33,450 1355 01:11:33,450 --> 01:11:37,900 >> ALLISON BUCHHOLTZ-AU: Har vi want-- Du ønsker ellers hvis fordi vi har konkrete sager. 1356 01:11:37,900 --> 01:11:39,270 Det er ikke sådan en fangst alle. 1357 01:11:39,270 --> 01:11:44,247 Hvis du havde en standard i en switch-- Husk i sporskifter du kan have tilfælde, 1358 01:11:44,247 --> 01:11:45,330 og så har du standard. 1359 01:11:45,330 --> 01:11:48,760 Hvis du havde en standard, der er en slags af dit andet udsagn der. 1360 01:11:48,760 --> 01:11:52,180 Men hvis det har kun sager, det betyder at du har brug for 1361 01:11:52,180 --> 01:11:54,315 at kontrollere, at se om det er hver enkelt af dem. 1362 01:11:54,315 --> 01:11:57,755 Så i dette tilfælde ville det 4 eller 5. 1363 01:11:57,755 --> 01:12:00,480 1364 01:12:00,480 --> 01:12:01,450 Vi ønsker en udskrift fra. 1365 01:12:01,450 --> 01:12:02,990 1366 01:12:02,990 --> 01:12:03,630 Det er store. 1367 01:12:03,630 --> 01:12:06,640 1368 01:12:06,640 --> 01:12:07,509 Og der du går. 1369 01:12:07,509 --> 01:12:08,800 Og det ville være dit program. 1370 01:12:08,800 --> 01:12:11,890 1371 01:12:11,890 --> 01:12:17,050 >> Så i dette tilfælde, hvis vi havde en standard noget, 1372 01:12:17,050 --> 01:12:20,470 ville vi have et andet i hvad det ville have os til at gøre. 1373 01:12:20,470 --> 01:12:23,365 Så det er en god skelnen at vide, at forstå. 1374 01:12:23,365 --> 01:12:25,368 1375 01:12:25,368 --> 01:12:27,790 Mener at hjælpe med kontakter til dig? 1376 01:12:27,790 --> 01:12:28,800 Perfect. 1377 01:12:28,800 --> 01:12:29,390 Ok. 1378 01:12:29,390 --> 01:12:31,320 1379 01:12:31,320 --> 01:12:33,340 >> Vi har omkring otte minutter tilbage. 1380 01:12:33,340 --> 01:12:37,090 Har du fyre har nogen andre højt niveau koncepter? 1381 01:12:37,090 --> 01:12:38,720 Spørgsmål i almindelighed? 1382 01:12:38,720 --> 01:12:39,220 Ja? 1383 01:12:39,220 --> 01:12:42,860 >> PUBLIKUM: Jeg havde en spørgsmål om en af ​​dem 1384 01:12:42,860 --> 01:12:46,257 det var om det tilfældige nummer generator på quiz nul. 1385 01:12:46,257 --> 01:12:47,340 ALLISON BUCHHOLTZ-AU: Åh, at en. 1386 01:12:47,340 --> 01:12:51,460 Det ene er en anden, hvor det er mere matematik than-- ja. 1387 01:12:51,460 --> 01:12:53,800 1388 01:12:53,800 --> 01:12:59,452 Løsningen på at-- selv jeg når Jeg ser det, jeg kan lide, hvad er dette. 1389 01:12:59,452 --> 01:13:00,590 >> PUBLIKUM: Det var nummer 7. 1390 01:13:00,590 --> 01:13:02,720 1391 01:13:02,720 --> 01:13:05,310 >> ALLISON BUCHHOLTZ-AU: Det er mærkeligt, i min udtalelse. 1392 01:13:05,310 --> 01:13:07,260 1393 01:13:07,260 --> 01:13:11,630 Så dybest set, du ønsker at bruge drand48, som 1394 01:13:11,630 --> 01:13:15,420 vil give dig nogle tal mellem 0 og 1. 1395 01:13:15,420 --> 01:13:21,200 Og du ønsker at bruge det, så at du eller anden måde får en-- 1396 01:13:21,200 --> 01:13:26,690 og det er meget mere af en matematikopgave til mig, end jeg tror, ​​en CS problem. 1397 01:13:26,690 --> 01:13:29,040 1398 01:13:29,040 --> 01:13:37,845 >> Den måde, du gør det-- og nogle gange vil det bare være sådan. 1399 01:13:37,845 --> 01:13:39,340 1400 01:13:39,340 --> 01:13:41,090 Igen, disse er de tilfælde, hvor det er sådan 1401 01:13:41,090 --> 01:13:46,310 ligesom skrive, hvad du kan og delvis kredit. 1402 01:13:46,310 --> 01:13:47,800 1403 01:13:47,800 --> 01:13:51,510 Så hvis vi ønsker en tilbagevenden, vi ved, at vi er 1404 01:13:51,510 --> 01:13:54,182 skal bruge drand48 på en eller anden måde, ikke? 1405 01:13:54,182 --> 01:13:55,640 Så hvorfor ikke vi bare notere det ned. 1406 01:13:55,640 --> 01:13:58,286 1407 01:13:58,286 --> 01:13:59,410 Vi bruger det på en eller anden måde. 1408 01:13:59,410 --> 01:14:00,780 1409 01:14:00,780 --> 01:14:04,190 Den måde, at de har du fyre bruge det er 1410 01:14:04,190 --> 01:14:08,175 som dette, som jeg vil forsøge at forklare. 1411 01:14:08,175 --> 01:14:10,200 1412 01:14:10,200 --> 01:14:15,340 >> Så dybest set, hvad der sker her er fordi det er mellem 0 og 1, 1413 01:14:15,340 --> 01:14:19,300 hvad du laver, er du multiplicere by-- dette er meget en matematisk spørgsmål. 1414 01:14:19,300 --> 01:14:22,010 Bare fuld ansvarsfraskrivelse, det er helt et matematisk spørgsmål. 1415 01:14:22,010 --> 01:14:23,990 Hvad du gør, er på grund af 0 og 1, og du 1416 01:14:23,990 --> 01:14:26,460 ønsker det skal være inden for dette interval, du faktisk 1417 01:14:26,460 --> 01:14:29,360 regne ud hvor stor området er, og derefter 1418 01:14:29,360 --> 01:14:32,710 du dybest set skalere det op, hvilket er, hvad dette gør. 1419 01:14:32,710 --> 01:14:39,050 >> B minus giver dig den rækkevidde, Forskellen mellem disse numre. 1420 01:14:39,050 --> 01:14:44,040 Du kan formere sig mellem 0 og 1, og derefter tilføje en retfærdig 1421 01:14:44,040 --> 01:14:48,870 betyder, at din skalere op således at det er mellem a og b, 1422 01:14:48,870 --> 01:14:52,377 som jeg ikke virkelig gerne dette problem. 1423 01:14:52,377 --> 01:14:58,380 1424 01:14:58,380 --> 01:15:01,790 Som jeg sagde, denne quiz menes at omfatte 1425 01:15:01,790 --> 01:15:04,110 mennesker, der er mindre behagelig, et sted midt imellem, 1426 01:15:04,110 --> 01:15:05,070 og mere behagelig. 1427 01:15:05,070 --> 01:15:07,550 Så hvis de gjorde det så at det var noget 1428 01:15:07,550 --> 01:15:10,050 at alle på mindre behageligt sted ville få, 1429 01:15:10,050 --> 01:15:12,259 vi ville have alt for mange folk scorer perfects, 1430 01:15:12,259 --> 01:15:13,925 og den mere komfortabel ville blive kede sig. 1431 01:15:13,925 --> 01:15:14,980 1432 01:15:14,980 --> 01:15:18,970 >> Så de altid har disse slags hjerne teaser spørgsmål 1433 01:15:18,970 --> 01:15:22,695 der er beregnet til at være lidt hårdere at tage nogle kreativ tænkning. 1434 01:15:22,695 --> 01:15:25,030 1435 01:15:25,030 --> 01:15:27,790 Når du ser dem, ikke får alt for forvirrede. 1436 01:15:27,790 --> 01:15:31,720 Jeg ville helt sikkert sige flip gennem din quiz først. 1437 01:15:31,720 --> 01:15:35,020 Løse de problemer, at du ved, du kan, 1438 01:15:35,020 --> 01:15:38,480 fordi der er ingen brug at sidde fast på et problem, når der er tre 1439 01:15:38,480 --> 01:15:42,090 eller fire eller fem på siden efter at du kan nemt gøre. 1440 01:15:42,090 --> 01:15:45,331 1441 01:15:45,331 --> 01:15:48,520 >> PUBLIKUM: Hvorfor netop gør du ganger det med området? 1442 01:15:48,520 --> 01:15:54,935 >> ALLISON BUCHHOLTZ-AU: Du ganger det område, der du know-- det er ligesom, hvor meget efter en 1443 01:15:54,935 --> 01:15:55,485 vil du have? 1444 01:15:55,485 --> 01:15:57,840 1445 01:15:57,840 --> 01:16:02,130 Så du kan tænke på, fordi det returnerer et tal mellem 0 og 1, 1446 01:16:02,130 --> 01:16:03,890 du kan tænke på det som en procentdel. 1447 01:16:03,890 --> 01:16:12,195 Så det er dybest set siger, hvis vi har vores nummer linje her, en er her, 1448 01:16:12,195 --> 01:16:13,840 og b er her. 1449 01:16:13,840 --> 01:16:19,170 Du er ligesom hvor meget forbi en er det? 1450 01:16:19,170 --> 01:16:20,010 Er alt, hvad vi laver. 1451 01:16:20,010 --> 01:16:24,920 Så du bare beder om det procentdel af dette interval, som 1452 01:16:24,920 --> 01:16:26,170 er, hvad det er at give dig. 1453 01:16:26,170 --> 01:16:30,915 Og så er du dybest set blot skalere det op ved at tilføje en. 1454 01:16:30,915 --> 01:16:32,302 Det er en matematisk hjerne teaser. 1455 01:16:32,302 --> 01:16:35,400 1456 01:16:35,400 --> 01:16:39,060 >> Hvis der var nogen sidste minut rådgivning, jeg ville sige flip gennem spørgsmålene, 1457 01:16:39,060 --> 01:16:41,660 regne ud, hvilke dem, du vide, at ligesom, åh jeg fik denne. 1458 01:16:41,660 --> 01:16:43,196 1459 01:16:43,196 --> 01:16:45,820 Næsten helt sikkert de kommer til at være spørgsmål, som du ikke vil vide 1460 01:16:45,820 --> 01:16:49,580 eller at du vil have tid for, så ramte dine styrker, OK? 1461 01:16:49,580 --> 01:16:50,990 Du fyre kommer til store. 1462 01:16:50,990 --> 01:16:52,740 Der er en masse af spørgsmål for en grund, 1463 01:16:52,740 --> 01:16:57,140 så du har tid til at slags har mulighed 1464 01:16:57,140 --> 01:16:59,330 at vise, hvad du er rigtig god til. 1465 01:16:59,330 --> 01:17:02,370 Så det er OK, hvis du er ikke god til alt. 1466 01:17:02,370 --> 01:17:03,371 Spil til dine stærke sider. 1467 01:17:03,371 --> 01:17:03,870 Ja? 1468 01:17:03,870 --> 01:17:06,536 >> PUBLIKUM: Så er det at gå til returnere noget, der er afkortet? 1469 01:17:06,536 --> 01:17:10,810 1470 01:17:10,810 --> 01:17:15,015 Ja, det vil, fordi drand afkast på mellem 0 og 1. 1471 01:17:15,015 --> 01:17:17,459 1472 01:17:17,459 --> 01:17:19,250 Det vil returnere en int, fordi det vil afkorte 1473 01:17:19,250 --> 01:17:22,933 når vi tilføjer et eller formere sig ved det. 1474 01:17:22,933 --> 01:17:27,670 1475 01:17:27,670 --> 01:17:28,442 Cool. 1476 01:17:28,442 --> 01:17:29,525 Sidste minut spørgsmål? 1477 01:17:29,525 --> 01:17:31,310 1478 01:17:31,310 --> 01:17:32,615 >> Du fyre vil gøre stor. 1479 01:17:32,615 --> 01:17:34,440 Du kommer til at være fabelagtig. 1480 01:17:34,440 --> 01:17:37,100 Og selv hvis ikke, vil der være slik her i næste uge. 1481 01:17:37,100 --> 01:17:39,040 1482 01:17:39,040 --> 01:17:40,020 Og jeg vil elske dig. 1483 01:17:40,020 --> 01:17:41,270 Jeg vil elske jer uanset. 1484 01:17:41,270 --> 01:17:42,550 1485 01:17:42,550 --> 01:17:43,930 Okay, alle, held og lykke. 1486 01:17:43,930 --> 01:17:44,680 Har en stor tid. 1487 01:17:44,680 --> 01:17:45,620 1488 01:17:45,620 --> 01:17:46,620 Du kommer til at være fint. 1489 01:17:46,620 --> 01:17:47,370 Og ved du hvad? 1490 01:17:47,370 --> 01:17:50,310 På to dage det vil at være forbi, mens jeg 1491 01:17:50,310 --> 01:17:53,675 har to midterms på torsdag, så mindst jer vil blive gjort. 1492 01:17:53,675 --> 01:17:56,550 Okay, jeg kan se du fyre næste uge. 1493 01:17:56,550 --> 01:17:58,208