1 00:00:00,000 --> 00:00:11,046 2 00:00:11,046 --> 00:00:12,170 ALLISON BUCHHOLTZ-AU: Hej, alla. 3 00:00:12,170 --> 00:00:13,560 Välkommen till avsnitt. 4 00:00:13,560 --> 00:00:17,320 Idag är bara kommer att bli allt frågesport granska din frågesport på onsdagen. 5 00:00:17,320 --> 00:00:20,060 Jag hoppas att alla kommer ihåg att de har en frågesport på onsdagen. 6 00:00:20,060 --> 00:00:22,560 Och om du inte gjorde det, ja, nu har du blivit påminda. 7 00:00:22,560 --> 00:00:26,486 Så onsdag se till att du dyker upp för klass eller andra boenden som 8 00:00:26,486 --> 00:00:26,985 nödvändigt. 9 00:00:26,985 --> 00:00:27,845 10 00:00:27,845 --> 00:00:29,220 Ni kommer att bli häftigt. 11 00:00:29,220 --> 00:00:30,440 Det kommer att vara stor. 12 00:00:30,440 --> 00:00:34,910 Och jag ska göra allt jag kan att hjälpa till att förbereda dig idag för din frågesport 13 00:00:34,910 --> 00:00:35,470 nu. 14 00:00:35,470 --> 00:00:39,960 Och även om du inte vet, Det är en kurs bred översyn session 15 00:00:39,960 --> 00:00:45,840 idag klockan 07:00 i Northwest labs rum B103. 16 00:00:45,840 --> 00:00:49,950 Du kan se mig igen för ett extranummer som Jag kommer att leda en del av denna översyn session 17 00:00:49,950 --> 00:00:50,510 också. 18 00:00:50,510 --> 00:00:53,218 Så om du inte kan få nog av mig Nu kan du komma igen i kväll. 19 00:00:53,218 --> 00:00:54,130 20 00:00:54,130 --> 00:00:56,060 >> Okej, så det viktigaste först. 21 00:00:56,060 --> 00:00:59,630 Bara några frågesport tips innan vi faktiskt dyka in till recensioner. 22 00:00:59,630 --> 00:01:04,160 Så som med alla examen, praktik kommer definitivt att hjälpa dig. 23 00:01:04,160 --> 00:01:09,260 Det finns undersökningar från det förflutna sex eller sju år på det, 24 00:01:09,260 --> 00:01:12,480 så det är en hel del övning material för er att ha. 25 00:01:12,480 --> 00:01:15,340 Och i själva verket är idag egentligen bara kommer att gå över alla ämnen 26 00:01:15,340 --> 00:01:18,900 att ni har frågor om såväl som arbetar genom övningsproblem 27 00:01:18,900 --> 00:01:20,360 från frågesport noll. 28 00:01:20,360 --> 00:01:22,690 Så jag ska kasta upp quiz noll från förra året om här, 29 00:01:22,690 --> 00:01:26,410 och vi kan arbeta igenom eventuella problem att ni skulle vilja. 30 00:01:26,410 --> 00:01:27,370 >> Så öva. 31 00:01:27,370 --> 00:01:29,310 Du kommer att börja göra det idag. 32 00:01:29,310 --> 00:01:30,230 Kod på papper. 33 00:01:30,230 --> 00:01:32,970 Så ja, om alla kunde faktiskt komma ut 34 00:01:32,970 --> 00:01:35,810 papper, det ska vara bra, eftersom du inte 35 00:01:35,810 --> 00:01:41,470 kommer att ha din dator på examen och skriva ut kod för hand 36 00:01:41,470 --> 00:01:44,190 är ofta mycket svårare än du kanske tror. 37 00:01:44,190 --> 00:01:46,680 Du är van att bara se den och skriva den, 38 00:01:46,680 --> 00:01:49,630 och du har din kompilator till hjälpa dig när du har fel, 39 00:01:49,630 --> 00:01:52,190 men du inte får det på tentan. 40 00:01:52,190 --> 00:01:55,140 Så det är verkligen viktigt att faktiskt kunna skriva ut koden, 41 00:01:55,140 --> 00:01:58,360 och att muskelminne för att göra det för hand kommer verkligen att hjälpa dig. 42 00:01:58,360 --> 00:01:59,720 43 00:01:59,720 --> 00:02:01,690 >> Så vi får lite nära. 44 00:02:01,690 --> 00:02:02,340 Det är måndag. 45 00:02:02,340 --> 00:02:03,930 Din examen är på onsdag. 46 00:02:03,930 --> 00:02:06,030 Men om du har tid, definitivt ta en 47 00:02:06,030 --> 00:02:10,199 av proven från förra året eller året innan under tidspress 48 00:02:10,199 --> 00:02:11,660 av en och en halv timme. 49 00:02:11,660 --> 00:02:13,730 Bara slå ut en timme och en halv tid, 50 00:02:13,730 --> 00:02:17,480 och sitta dig ner, och bara arbeta igenom problemen 51 00:02:17,480 --> 00:02:19,962 som om du faktiskt var ta det, eftersom en 52 00:02:19,962 --> 00:02:23,295 av de största saker som vi hör om frågesport är att de är mycket långa. 53 00:02:23,295 --> 00:02:24,900 54 00:02:24,900 --> 00:02:26,660 Det är en hel del material. 55 00:02:26,660 --> 00:02:30,850 Det finns många frågor, och de flesta människor kan inte avsluta. 56 00:02:30,850 --> 00:02:34,660 Jag vet att jag helt inte avsluta mina frågesporter när jag tog klassen. 57 00:02:34,660 --> 00:02:37,180 >> Alltså, som ett mindre bekväm sektion, 58 00:02:37,180 --> 00:02:40,570 förstå att den här kursen är tänkt för att tillgodose människor på alla nivåer. 59 00:02:40,570 --> 00:02:43,640 Hela anledningen har vi du dela mindre bekväm, någonstans mellan, 60 00:02:43,640 --> 00:02:47,660 och bekvämare är att sorts göra det mer rättvist. 61 00:02:47,660 --> 00:02:51,699 Och om du är mindre bekväm, det är inte nödvändigt i sig för att få allt. 62 00:02:51,699 --> 00:02:53,990 Som om du fick allt, skulle du antagligen 63 00:02:53,990 --> 00:02:55,448 vara i mer bekväm sektionen. 64 00:02:55,448 --> 00:03:00,160 Så uppenbarligen inte slå er upp för hårt om du inte kan genomföra tentamen. 65 00:03:00,160 --> 00:03:01,920 Ta det från mig, jag gjorde inte det. 66 00:03:01,920 --> 00:03:03,070 Jag är fortfarande en koncentrator. 67 00:03:03,070 --> 00:03:04,630 Jag är fortfarande hjälpa undervisa kursen. 68 00:03:04,630 --> 00:03:06,170 Du ska vara bra. 69 00:03:06,170 --> 00:03:06,670 Okej. 70 00:03:06,670 --> 00:03:08,740 Och slutligen, få lite sömn. 71 00:03:08,740 --> 00:03:11,020 Självklart med en tentamen vi säger alltid det. 72 00:03:11,020 --> 00:03:13,610 Plugga kvällen innan och inte få någon sömn 73 00:03:13,610 --> 00:03:16,390 gör inte-- kanske om det fungerar för dig, gå för det. 74 00:03:16,390 --> 00:03:18,790 Men för den stora majoriteten av människor, att få lite sömn, 75 00:03:18,790 --> 00:03:22,390 låta din hjärna vila och återhämta sig innan man kommer in till tentamen 76 00:03:22,390 --> 00:03:23,480 kommer verkligen att hjälpa dig. 77 00:03:23,480 --> 00:03:26,120 Också det kommer nästan säkert vara godis på tentan, 78 00:03:26,120 --> 00:03:28,019 så du måste se fram emot. 79 00:03:28,019 --> 00:03:29,310 Ni kommer att göra bra. 80 00:03:29,310 --> 00:03:30,226 Det kommer att bli bra. 81 00:03:30,226 --> 00:03:31,570 82 00:03:31,570 --> 00:03:36,190 Och nu i nästa och en halv timme jag kommer att försöka och prep dig så gott jag kan. 83 00:03:36,190 --> 00:03:41,260 >> Så jag har diabilder från grunden alla avsnitt fram till nu. 84 00:03:41,260 --> 00:03:45,874 Jag tänker inte gå igenom alla av dem för det är inte 85 00:03:45,874 --> 00:03:49,040 genomförbar i en och en halv timme och som arbetar med övningsproblem. 86 00:03:49,040 --> 00:03:51,410 Så istället har jag en lista över ämnen. 87 00:03:51,410 --> 00:03:55,160 Dessa är alla saker att vi kan förhöra dig på. 88 00:03:55,160 --> 00:03:56,950 89 00:03:56,950 --> 00:03:58,770 Om det finns något som verkligen hoppar ut 90 00:03:58,770 --> 00:04:02,140 att du vill gå över, att du vill att jag ska gå över konceptuellt, 91 00:04:02,140 --> 00:04:04,320 Jag kan försöka ge dig en översikt där. 92 00:04:04,320 --> 00:04:07,690 Eller om du vill hoppa rätt in till gör övnings problem tillsammans, 93 00:04:07,690 --> 00:04:08,420 vi kan göra det. 94 00:04:08,420 --> 00:04:09,330 Det är upp till er. 95 00:04:09,330 --> 00:04:10,770 Det finns inte så många av er. 96 00:04:10,770 --> 00:04:13,180 Så det är vad ni vill göra. 97 00:04:13,180 --> 00:04:15,667 Jag vill vara den mest hjälp mot er. 98 00:04:15,667 --> 00:04:16,827 99 00:04:16,827 --> 00:04:17,910 Så jag ska låta er bara titta. 100 00:04:17,910 --> 00:04:27,880 101 00:04:27,880 --> 00:04:30,500 >> PUBLIK: En sak är diagrammet att vi håller 102 00:04:30,500 --> 00:04:33,290 säger om bunten och högen. 103 00:04:33,290 --> 00:04:34,600 104 00:04:34,600 --> 00:04:37,434 Bara hela idén bakom det och vad 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 Detta är hela vägen på slut, så låt mig bläddra igenom. 108 00:04:43,216 --> 00:04:45,490 >> PUBLIK: Vi behöver inte gör det nu, men vad som helst. 109 00:04:45,490 --> 00:04:47,070 110 00:04:47,070 --> 00:04:49,770 >> ALLISON BUCHHOLTZ-AU: Var det anything-- här. 111 00:04:49,770 --> 00:04:51,570 112 00:04:51,570 --> 00:04:53,555 Är denna typ av luddiga för människor? 113 00:04:53,555 --> 00:04:54,390 114 00:04:54,390 --> 00:04:55,640 PUBLIK: Ja, jag sekund som. 115 00:04:55,640 --> 00:04:57,718 Och kan vi också göra buffertspill? 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å buffertspill är ganska lätt att bara prata om. 119 00:05:03,460 --> 00:05:08,217 Det är i grund och botten buffrar du tycker om någon array minne som du har, eller hur? 120 00:05:08,217 --> 00:05:10,050 Vi talar ofta om buffertspill när 121 00:05:10,050 --> 00:05:15,160 du inte kontrollera hur mycket användaren sätter in, eller hur? 122 00:05:15,160 --> 00:05:18,540 Och tanken är med buffertspill är 123 00:05:18,540 --> 00:05:21,535 de sätter in långt för mycket data för utrymmet 124 00:05:21,535 --> 00:05:23,780 att du har avsatts för dem, eller hur? 125 00:05:23,780 --> 00:05:28,310 >> Så om du säger, ge mig några budskap, vi är 126 00:05:28,310 --> 00:05:31,860 om man antar att de kommer att ge oss en rimlig längd meddelande. 127 00:05:31,860 --> 00:05:33,910 Kanske ett par rader, allt. 128 00:05:33,910 --> 00:05:35,150 Så vi inte kontrollera. 129 00:05:35,150 --> 00:05:38,160 Istället matar oss i en hela boken som är ett meddelande, 130 00:05:38,160 --> 00:05:42,450 och att det flödar över den mängd utrymme som vi har tilldelats för detta. 131 00:05:42,450 --> 00:05:48,140 Och vad som händer är att det kan skriva över platser som det inte är tänkt. 132 00:05:48,140 --> 00:05:52,890 >> Så jag vet professor Malan sade något om buffert overflow attacker. 133 00:05:52,890 --> 00:05:59,050 Så det är där användaren input några massiva mängd data i hopp 134 00:05:59,050 --> 00:06:02,840 att han skriver över tidigare I slutet av din buffert 135 00:06:02,840 --> 00:06:06,479 och ersätter something-- jag undrar Jag att vi har dessa bilder i här. 136 00:06:06,479 --> 00:06:08,270 Jag tror inte att vi har dessa bilder i här. 137 00:06:08,270 --> 00:06:09,960 138 00:06:09,960 --> 00:06:14,460 Men i grund och botten han skriver över viss del av minnet 139 00:06:14,460 --> 00:06:17,780 som ger honom tillgång till delar av din dator 140 00:06:17,780 --> 00:06:19,530 att du inte skulle normalt har tillgång till. 141 00:06:19,530 --> 00:06:20,750 142 00:06:20,750 --> 00:06:23,155 >> Största sak med buffertspill är bara 143 00:06:23,155 --> 00:06:26,420 att förstå att det händer när du inte är 144 00:06:26,420 --> 00:06:29,210 kontrollera hur mycket din Användaren sätter in. 145 00:06:29,210 --> 00:06:32,770 När du inte är typen av skydda mot detta. 146 00:06:32,770 --> 00:06:36,820 Och vid sin enklaste sak, det är bara ditt användarnamn 147 00:06:36,820 --> 00:06:39,130 inmatning av en massiv mängd av data i ett försök 148 00:06:39,130 --> 00:06:45,090 att skriva över en viss trygghet del av ditt minne. 149 00:06:45,090 --> 00:06:46,310 Det är allt det är. 150 00:06:46,310 --> 00:06:49,810 >> Så detta här, stack och heap. 151 00:06:49,810 --> 00:06:53,090 I princip allt detta är bara en representation av minne 152 00:06:53,090 --> 00:06:54,449 och där saker lagras. 153 00:06:54,449 --> 00:06:56,240 Det är verkligen typ av allt du behöver veta. 154 00:06:56,240 --> 00:06:58,520 De största sakerna som du behöver veta är 155 00:06:58,520 --> 00:07:01,910 that-- Låt mig se om det finns en better-- här. 156 00:07:01,910 --> 00:07:05,380 Så detta är stapeln här. 157 00:07:05,380 --> 00:07:08,410 >> Så stack har att göra med alla dina funktioner 158 00:07:08,410 --> 00:07:10,140 att du ringer vid en viss tidpunkt. 159 00:07:10,140 --> 00:07:15,060 Och vad som är viktigt att komma ihåg gå bort av förra veckan med malloc 160 00:07:15,060 --> 00:07:21,080 är att du egentligen inte har nödvändig kontroll över den. 161 00:07:21,080 --> 00:07:24,780 Det beror helt på när vissa funktioner utför. 162 00:07:24,780 --> 00:07:28,170 Och när de utför, de har vad som kallas stack ramar 163 00:07:28,170 --> 00:07:29,290 att gå upp här. 164 00:07:29,290 --> 00:07:32,520 >> Så det alla typer av händer utan någon verklig input från er. 165 00:07:32,520 --> 00:07:33,630 166 00:07:33,630 --> 00:07:35,510 Du skriver ditt program, och du låter den gå, 167 00:07:35,510 --> 00:07:38,470 och stapeln slags tar hand om sig själv som den behöver. 168 00:07:38,470 --> 00:07:42,940 Så om i huvud du ringer kub, som kommer att föras upp här. 169 00:07:42,940 --> 00:07:44,110 Det kommer att skapa en ram. 170 00:07:44,110 --> 00:07:48,330 Men det finns inget du uttryckligen göra att skapa den stack frame än 171 00:07:48,330 --> 00:07:51,430 skriva funktionen att börja med, OK? 172 00:07:51,430 --> 00:07:56,500 >> Vad är typ av under din kontroll är högen med malloc. 173 00:07:56,500 --> 00:08:01,950 Så när du malloc någonting, du tar minne från högen. 174 00:08:01,950 --> 00:08:05,110 Och det är minnet som du har, i brist på ett bättre ord, 175 00:08:05,110 --> 00:08:10,300 explicit kontroll över, eftersom minnas med malloc 176 00:08:10,300 --> 00:08:12,530 det är i princip det tills du säger något annat. 177 00:08:12,530 --> 00:08:14,890 För er som såg avsnittet förra veckan, 178 00:08:14,890 --> 00:08:17,670 det är där tills du säger till den att försvinna. 179 00:08:17,670 --> 00:08:20,850 Det kommer att vara där, om inte annars sagt inte. 180 00:08:20,850 --> 00:08:24,750 Så högen är bara något du kan tänka på som minne 181 00:08:24,750 --> 00:08:26,150 att du har kontroll över. 182 00:08:26,150 --> 00:08:29,010 Och de är bara två olika stora saker. 183 00:08:29,010 --> 00:08:31,320 184 00:08:31,320 --> 00:08:38,330 >> Annat än det, bör du inte ha oroa sig alltför mycket om stack och heap 185 00:08:38,330 --> 00:08:42,159 frågor eller oftast mer bara om du har lokala parametrar 186 00:08:42,159 --> 00:08:45,385 eller en funktion skulle det vara på stacken eller högen. 187 00:08:45,385 --> 00:08:47,260 Uppenbarligen i detta fall det skulle vara stapeln. 188 00:08:47,260 --> 00:08:49,630 Om du mallocing något, där det kommer från? 189 00:08:49,630 --> 00:08:50,129 Högen. 190 00:08:50,129 --> 00:08:51,147 191 00:08:51,147 --> 00:08:54,230 Om man tittar på praxis frågesporter, de är i allmänhet den typ av frågor 192 00:08:54,230 --> 00:08:55,460 som de har. 193 00:08:55,460 --> 00:08:57,340 >> Du behöver inte oroa dig för mycket om det. 194 00:08:57,340 --> 00:09:00,980 Du får in mer explicit om stack och heap 195 00:09:00,980 --> 00:09:03,460 senare eller i andra CS klasser. 196 00:09:03,460 --> 00:09:06,220 Så bara ha lite av en allmän uppfattning om vad det är 197 00:09:06,220 --> 00:09:09,100 kommer att vara bra, som jag bara typ av gick över. 198 00:09:09,100 --> 00:09:10,650 199 00:09:10,650 --> 00:09:12,090 Alla andra ämnen? 200 00:09:12,090 --> 00:09:12,590 Ja? 201 00:09:12,590 --> 00:09:14,923 >> PUBLIK: Kan du gå över pekare igen riktigt snabbt? 202 00:09:14,923 --> 00:09:15,870 ALLISON BUCHHOLTZ-AU: Pointers? 203 00:09:15,870 --> 00:09:18,470 Vill du ha begrepps översikt av pekare 204 00:09:18,470 --> 00:09:19,994 eller utövar du med pekare? 205 00:09:19,994 --> 00:09:21,410 PUBLIK: Ungefär som syntaxen. 206 00:09:21,410 --> 00:09:22,360 ALLISON BUCHHOLTZ-AU: Syntaxen? 207 00:09:22,360 --> 00:09:22,860 Yeah. 208 00:09:22,860 --> 00:09:32,090 209 00:09:32,090 --> 00:09:33,090 OK, vi får där. 210 00:09:33,090 --> 00:09:38,300 211 00:09:38,300 --> 00:09:42,040 Ja, så detta är bara typ av något när du har en rekursiv funktion, 212 00:09:42,040 --> 00:09:45,954 varje gång som rekursiv funktion är heter, bara lägger det andra stack ram. 213 00:09:45,954 --> 00:09:47,870 Ganska mycket ett exempel hur du egentligen inte 214 00:09:47,870 --> 00:09:50,330 ha kontroll över ramar på din stack. 215 00:09:50,330 --> 00:09:54,010 216 00:09:54,010 --> 00:09:54,585 >> OK, pekare. 217 00:09:54,585 --> 00:09:57,120 218 00:09:57,120 --> 00:09:59,235 Okej, så skapar pekare. 219 00:09:59,235 --> 00:10:00,300 220 00:10:00,300 --> 00:10:02,420 Kom ihåg, det är bara skriva stjärna. 221 00:10:02,420 --> 00:10:07,140 Så oavsett vilken typ av data som du kommer att peka på. 222 00:10:07,140 --> 00:10:08,720 223 00:10:08,720 --> 00:10:11,440 Så detta skulle vara en pekare till en int. 224 00:10:11,440 --> 00:10:13,140 Detta skulle vara en pekare till en char. 225 00:10:13,140 --> 00:10:14,740 Detta skulle vara en pekare till en flottör. 226 00:10:14,740 --> 00:10:17,980 Så det är i princip vad som helst du vill att den ska peka på, 227 00:10:17,980 --> 00:10:22,300 stjärnan är hur du deklarerar pekaren, OK? 228 00:10:22,300 --> 00:10:26,200 >> Men då är det uppenbart blir lite knepigt när man har pekaren 229 00:10:26,200 --> 00:10:27,370 eller om du har stjärnan vad som helst. 230 00:10:27,370 --> 00:10:31,260 Så den stora skillnaden är när du declaring-- 231 00:10:31,260 --> 00:10:45,590 så vi har some-- så Detta tar lite int stjärna. 232 00:10:45,590 --> 00:10:49,650 Så det här är en del pekare Parlamentet x till en int, eller hur? 233 00:10:49,650 --> 00:10:54,600 Så kom ihåg vad detta innebär Detta kallar system x. 234 00:10:54,600 --> 00:10:56,970 Och detta kommer att har någon adress, eller hur? 235 00:10:56,970 --> 00:11:00,515 Så låt oss bara säga att detta är vår adress. 236 00:11:00,515 --> 00:11:01,590 237 00:11:01,590 --> 00:11:03,570 Pekare hålla adresser. 238 00:11:03,570 --> 00:11:08,660 Så vad detta säger är att vid denna plats, vi lagrar en int. 239 00:11:08,660 --> 00:11:10,770 240 00:11:10,770 --> 00:11:15,770 >> Så ett annat sätt vi kan tänka på detta är att detta är en del int. 241 00:11:15,770 --> 00:11:17,010 242 00:11:17,010 --> 00:11:20,350 Vi har inte riktigt tilldelat det till något ännu, men det är bara en int. 243 00:11:20,350 --> 00:11:31,540 Så vi kan göra är att om vi gör stjärnan x lika 5, detta blir en 5, OK? 244 00:11:31,540 --> 00:11:38,350 Detta säger gå till valfri x är pekar på, så gå till denna adress 245 00:11:38,350 --> 00:11:40,210 och göra den lika med 5. 246 00:11:40,210 --> 00:11:44,390 Så vi tilldelar 5 till denna adress, eller hur? 247 00:11:44,390 --> 00:11:52,540 >> Och sedan om du gör det, detta ger oss adressen till. 248 00:11:52,540 --> 00:11:54,730 Detta är adressen för operatören. 249 00:11:54,730 --> 00:11:57,700 Så vad är adressen till x? 250 00:11:57,700 --> 00:11:58,809 Vi vet inte. 251 00:11:58,809 --> 00:12:00,225 Vi har inte tilldelat det en adress. 252 00:12:00,225 --> 00:12:03,000 253 00:12:03,000 --> 00:12:09,105 Vi skulle kunna säga att det är some-- nu vi gav det en adress, så adressen är 4. 254 00:12:09,105 --> 00:12:10,690 255 00:12:10,690 --> 00:12:16,980 Och faktiskt, om vi går igenom något så här, typ av vad vi gjorde. 256 00:12:16,980 --> 00:12:25,800 Så arbetar genom här-- Jag tycker det hjälper om du drar ut pekare. 257 00:12:25,800 --> 00:12:28,270 Om du är på din examen, jag rekommenderar att rita rutor. 258 00:12:28,270 --> 00:12:29,490 259 00:12:29,490 --> 00:12:33,310 >> Så denna första, lika int x 5. 260 00:12:33,310 --> 00:12:37,370 Det betyder bara att vi har en del plats i minnet som är 5, eller hur? 261 00:12:37,370 --> 00:12:38,540 262 00:12:38,540 --> 00:12:44,760 Och vårt bord här berättar att det är på adress 0x04. 263 00:12:44,760 --> 00:12:48,770 264 00:12:48,770 --> 00:12:50,280 Och sedan skapar vi en del pekare. 265 00:12:50,280 --> 00:12:51,820 266 00:12:51,820 --> 00:12:55,310 Så låt oss dela upp en i taget. 267 00:12:55,310 --> 00:12:59,820 Så detta skapar en viss rutan till en int, eller hur? 268 00:12:59,820 --> 00:13:01,970 Det kommer att hålla någon adress en den. 269 00:13:01,970 --> 00:13:03,470 Så det här är en del pekare. 270 00:13:03,470 --> 00:13:04,940 271 00:13:04,940 --> 00:13:06,510 Och detta krita är riktigt små. 272 00:13:06,510 --> 00:13:07,472 273 00:13:07,472 --> 00:13:08,680 Så vi har några pekare här. 274 00:13:08,680 --> 00:13:10,060 275 00:13:10,060 --> 00:13:13,530 Och vårt bord berättar det är adressen är 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 Och vi tilldelar det till adressen för x. 279 00:13:23,240 --> 00:13:26,330 >> Kom ihåg, pekare håller adresser, OK? 280 00:13:26,330 --> 00:13:32,050 Så om vi vill hålla x, vi har att använda adressen aktör och som 281 00:13:32,050 --> 00:13:36,520 är et-tecken, för att få adressen av x, vilket i detta fall, 0x04. 282 00:13:36,520 --> 00:13:39,130 283 00:13:39,130 --> 00:13:44,430 Och sedan om vi har vissa int kopiera, detta bara 284 00:13:44,430 --> 00:13:48,060 skapar någon annan ruta som innehar en int kallas kopia. 285 00:13:48,060 --> 00:13:49,410 286 00:13:49,410 --> 00:13:55,330 Och om vi tilldela den till this-- så här refererar det. 287 00:13:55,330 --> 00:14:00,090 Så står det gå till valfri adresspekaren lastrum. 288 00:14:00,090 --> 00:14:05,330 Pointer har denna adress, så vi skulle gå hit, 289 00:14:05,330 --> 00:14:07,130 och vi säger, OK, vad betyder det? 290 00:14:07,130 --> 00:14:08,610 Det är 5. 291 00:14:08,610 --> 00:14:09,815 Så exemplar blir 5. 292 00:14:09,815 --> 00:14:11,800 293 00:14:11,800 --> 00:14:12,540 Vettigt? 294 00:14:12,540 --> 00:14:15,540 295 00:14:15,540 --> 00:14:25,020 >> Vad händer om jag försökte att tilldela detta för att bara pekare. 296 00:14:25,020 --> 00:14:26,476 297 00:14:26,476 --> 00:14:27,850 Vad innebär pekaren egentligen lika? 298 00:14:27,850 --> 00:14:31,126 299 00:14:31,126 --> 00:14:34,315 Det skulle bara vara vad som helst pekare innehåller, eller hur? 300 00:14:34,315 --> 00:14:36,400 301 00:14:36,400 --> 00:14:37,580 Och vad, om jag gjorde det här? 302 00:14:37,580 --> 00:14:38,922 303 00:14:38,922 --> 00:14:39,880 Vad skulle kopiera bli nu? 304 00:14:39,880 --> 00:14:41,365 305 00:14:41,365 --> 00:14:42,275 >> PUBLIK: 0x08. 306 00:14:42,275 --> 00:14:44,150 ALLISON BUCHHOLTZ-AU: Japp, det adressen till vår pekaren. 307 00:14:44,150 --> 00:14:46,832 308 00:14:46,832 --> 00:14:48,790 Varje del av det som behöver för att åter förklaras? 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 Det finns definitivt en mycket roliga problem på frågesport ena 313 00:14:57,740 --> 00:15:00,100 att vi kan över denna ger dig mer praktik. 314 00:15:00,100 --> 00:15:00,937 315 00:15:00,937 --> 00:15:03,270 Killarna från förra veckan kan berätta om det var inte så illa. 316 00:15:03,270 --> 00:15:06,000 Vi fick igenom en hel diagrammet, och alla gjorde bra. 317 00:15:06,000 --> 00:15:10,830 >> OK, så det är översikt av syntax pekare. 318 00:15:10,830 --> 00:15:15,070 Största sak är att förstå hur att skapa dem, gör refererar, 319 00:15:15,070 --> 00:15:18,190 och adress, OK? 320 00:15:18,190 --> 00:15:18,690 Cool. 321 00:15:18,690 --> 00:15:20,775 Alla andra ämnen före vi dyker i praktiken. 322 00:15:20,775 --> 00:15:24,280 323 00:15:24,280 --> 00:15:28,011 Även om vi går igenom problemen övnings 324 00:15:28,011 --> 00:15:30,760 och det är något du vill ha en repetitions på, kan vi göra det också. 325 00:15:30,760 --> 00:15:31,300 Har du något? 326 00:15:31,300 --> 00:15:32,758 >> PUBLIK: structs och länkade listor. 327 00:15:32,758 --> 00:15:35,130 ALLISON BUCHHOLTZ-AU: structs och länkade listor, OK. 328 00:15:35,130 --> 00:15:37,100 Så structs. 329 00:15:37,100 --> 00:15:38,990 Vi har faktiskt går över denna kväll också. 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 är i grunden bara ett sätt för dig att hålla 333 00:15:47,490 --> 00:15:50,430 flera värden av olika slag. 334 00:15:50,430 --> 00:15:55,150 Så med en array är vi trängd till en datatyp. 335 00:15:55,150 --> 00:16:00,965 Vårt utbud är antingen att bara vara siffror, eller bara vara tecken, eller bara vara flottar. 336 00:16:00,965 --> 00:16:02,240 337 00:16:02,240 --> 00:16:05,470 >> Men kanske behöver du innehåller mer än så. 338 00:16:05,470 --> 00:16:09,130 Kanske behöver du hold-- om du pratar om en student, 339 00:16:09,130 --> 00:16:13,660 du kommer att ha sitt hus, sin ID-nummer, deras ålder, var de bor, 340 00:16:13,660 --> 00:16:14,240 rätt? 341 00:16:14,240 --> 00:16:16,460 Och alla dessa är olika typer av typer. 342 00:16:16,460 --> 00:16:18,680 Så du kan inte lagra dem alla i en matris. 343 00:16:18,680 --> 00:16:21,750 >> Så vad du kan göra är att du kan skapa en struct, som 344 00:16:21,750 --> 00:16:26,240 du kan tänka på som din egen datatyp. 345 00:16:26,240 --> 00:16:29,130 Så istället för att bara ha ints och istället för att bara ha flottörer, 346 00:16:29,130 --> 00:16:33,210 du kan ha en typ elev som har alla dessa fält i den. 347 00:16:33,210 --> 00:16:39,740 Så hur vi initiera våra structs är-- faktiskt 348 00:16:39,740 --> 00:16:44,921 eftersom mitt skrivande är fruktansvärt, vi kommer att övergå till att skriva. 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å om vi vill skapa en struct-- Jag ska bara ner det här. 352 00:16:53,150 --> 00:16:57,730 Bortse från i huvud oavsett som vi kommer att använda senare. 353 00:16:57,730 --> 00:17:02,330 Så det sätt du vill göra det är med typedef struct. 354 00:17:02,330 --> 00:17:10,530 355 00:17:10,530 --> 00:17:13,349 Och låt oss bara kalla detta elev eftersom det är vad jag använde. 356 00:17:13,349 --> 00:17:17,801 OK, så typedef innebär att du som definierar en ny typ, OK? 357 00:17:17,801 --> 00:17:20,140 358 00:17:20,140 --> 00:17:24,355 Det finns nyanser i när du gör bara en struct kontra en typedef struct. 359 00:17:24,355 --> 00:17:26,313 I allt väsentligt och ändamål, ni är bara 360 00:17:26,313 --> 00:17:29,490 kommer att anta att de är ungefär samma och bara 361 00:17:29,490 --> 00:17:30,820 använda typedef struct för nu. 362 00:17:30,820 --> 00:17:35,180 Det kommer att bli mycket mer tydligt i ditt nästa P ställa in vad dessa skillnader, 363 00:17:35,180 --> 00:17:37,960 men jag tror inte att du behöver oroa sig just nu. 364 00:17:37,960 --> 00:17:40,360 Jag skulle mycket hellre du vet hur man skapar en, 365 00:17:40,360 --> 00:17:41,880 åt den, och tilldela [? värde. ?] 366 00:17:41,880 --> 00:17:47,820 >> En ny typ av struct, och Vi kallar det student. 367 00:17:47,820 --> 00:17:52,640 Så efter att vi är klar skapar detta, för alla avseenden, 368 00:17:52,640 --> 00:17:55,070 du kommer att ha en typ som kallas student. 369 00:17:55,070 --> 00:17:59,610 Och du kan se det precis som en typ som en int, eller en flottör, eller en röding. 370 00:17:59,610 --> 00:18:01,820 Det är bara en annan typ, OK? 371 00:18:01,820 --> 00:18:04,530 >> Så i den här, vad har vi? 372 00:18:04,530 --> 00:18:05,420 Vi har kanske ett namn. 373 00:18:05,420 --> 00:18:08,275 Så kanske vi vill ha ett strängnamn. 374 00:18:08,275 --> 00:18:09,610 375 00:18:09,610 --> 00:18:14,065 Och vi har kanske en int som är ett ID. 376 00:18:14,065 --> 00:18:16,360 377 00:18:16,360 --> 00:18:19,085 Och vi har en annan i det är telefonnummer. 378 00:18:19,085 --> 00:18:21,990 379 00:18:21,990 --> 00:18:26,200 Och vi har some-- låt oss se. 380 00:18:26,200 --> 00:18:27,200 Vad mer kan vi ha? 381 00:18:27,200 --> 00:18:29,385 Vi ska ha lite sträng på hans hus. 382 00:18:29,385 --> 00:18:32,340 383 00:18:32,340 --> 00:18:34,510 Alla saker som en elev har. 384 00:18:34,510 --> 00:18:36,960 >> Så detta skapar en struct nu. 385 00:18:36,960 --> 00:18:41,450 Så hur kan vi skapa en student? 386 00:18:41,450 --> 00:18:46,960 Om vi ​​har någon variabel som är kommer att tala om Walker här, 387 00:18:46,960 --> 00:18:51,245 så vi have-- vi är bara kommer att kalla detta rullator. 388 00:18:51,245 --> 00:18:52,520 Han behöver en typ. 389 00:18:52,520 --> 00:18:53,770 Vad är din typ? 390 00:18:53,770 --> 00:18:54,520 PUBLIK: 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å detta skapar bara ett objekt kan du komma på som har alla dessa saker. 394 00:19:04,800 --> 00:19:07,880 Du skapade bara en rullator student. 395 00:19:07,880 --> 00:19:10,910 Så nu måste vi kunna att tilldela alla dessa, eller hur? 396 00:19:10,910 --> 00:19:13,500 Så är det någon som minns hur vi tillgång inom en struct? 397 00:19:13,500 --> 00:19:14,762 398 00:19:14,762 --> 00:19:15,470 PUBLIK: Period. 399 00:19:15,470 --> 00:19:16,730 ALLISON BUCHHOLTZ-AU: Period Exakt. 400 00:19:16,730 --> 00:19:23,795 Så om vi ville tilldela honom ett namn, kan vi göra det. 401 00:19:23,795 --> 00:19:24,820 402 00:19:24,820 --> 00:19:28,680 Självklart skulle detta be-- denna del här skulle 403 00:19:28,680 --> 00:19:31,831 vara inom huvud, så faktiskt Låt mig göra detta. 404 00:19:31,831 --> 00:19:40,980 405 00:19:40,980 --> 00:19:44,250 Deklarera detta framför huvud så att vi kan använda den inom main. 406 00:19:44,250 --> 00:19:52,250 407 00:19:52,250 --> 00:20:00,980 Så nu vill jag att det ska göra ID, och vi ska bara göra en del där, 408 00:20:00,980 --> 00:20:02,970 och sedan ska vi tilldelar ett 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 ska vi någonsin behöver tillgång något senare on-- kanske we-- 413 00:20:19,870 --> 00:20:25,920 om vi någonsin behöver komma åt något, låt oss bara göra en int kopia ID. 414 00:20:25,920 --> 00:20:27,400 415 00:20:27,400 --> 00:20:30,530 Och jag vill kopiera Walkers id in i detta. 416 00:20:30,530 --> 00:20:31,370 Hur kan jag göra det? 417 00:20:31,370 --> 00:20:33,670 418 00:20:33,670 --> 00:20:37,790 Du behöver komma åt inom walker struct till [? gå till det?] [? E?]. 419 00:20:37,790 --> 00:20:41,280 Och på samma sätt som vi delat upp det här, hur 420 00:20:41,280 --> 00:20:45,573 kan vi komma åt det när vi vill ge det värdet till något annat? 421 00:20:45,573 --> 00:20:46,406 PUBLIK: Walker.id. 422 00:20:46,406 --> 00:20:47,252 423 00:20:47,252 --> 00:20:48,376 ALLISON BUCHHOLTZ-AU: Ja, exakt. 424 00:20:48,376 --> 00:20:51,884 425 00:20:51,884 --> 00:20:54,175 Så det är ganska mycket alla du behöver veta för structs. 426 00:20:54,175 --> 00:20:55,750 427 00:20:55,750 --> 00:20:58,560 Du behöver bara tänka på dem som en annan variabel. 428 00:20:58,560 --> 00:21:01,710 I grund och botten en skapa din egen variabel typ, OK? 429 00:21:01,710 --> 00:21:04,440 430 00:21:04,440 --> 00:21:07,970 Du använder den för att förklara variabler på något sätt. 431 00:21:07,970 --> 00:21:10,290 Här walker fortfarande är en variabel. 432 00:21:10,290 --> 00:21:14,230 Den har bara en typ elev nu istället av en typ int eller en typ sträng, 433 00:21:14,230 --> 00:21:15,070 eller en typ röding. 434 00:21:15,070 --> 00:21:17,014 435 00:21:17,014 --> 00:21:19,930 Om det fanns ett enkelt sätt att prata om structs, det är bokstavligen bara en 436 00:21:19,930 --> 00:21:24,430 skapa din egen datatyp som låter dig grupp 437 00:21:24,430 --> 00:21:28,320 Alla dessa olika typ av data tillsammans. 438 00:21:28,320 --> 00:21:29,754 439 00:21:29,754 --> 00:21:31,595 Är det vettigt? 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 och åtkomst med prickar. 444 00:21:37,530 --> 00:21:38,790 445 00:21:38,790 --> 00:21:39,960 Ganska mycket allt du behöver. 446 00:21:39,960 --> 00:21:41,150 447 00:21:41,150 --> 00:21:46,600 >> OK, vart tog min PowerPoint gå? 448 00:21:46,600 --> 00:21:47,580 Här är det. 449 00:21:47,580 --> 00:21:49,050 450 00:21:49,050 --> 00:21:50,520 Ja detta är konstigt. 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 Alla andra saker eller gör vi vill huvud öva? 456 00:22:01,000 --> 00:22:02,210 457 00:22:02,210 --> 00:22:02,710 Öva? 458 00:22:02,710 --> 00:22:03,501 OK. 459 00:22:03,501 --> 00:22:04,000 Grymt. 460 00:22:04,000 --> 00:22:05,642 461 00:22:05,642 --> 00:22:06,600 Jag ska avsluta detta. 462 00:22:06,600 --> 00:22:08,490 Om vid någon tidpunkt under övningsfrågor, 463 00:22:08,490 --> 00:22:12,630 Jag är glad att förnya och gå igenom saker. 464 00:22:12,630 --> 00:22:15,240 Så jag har frågesport noll här uppe. 465 00:22:15,240 --> 00:22:18,370 Om ni vill dra upp den på din dator, 466 00:22:18,370 --> 00:22:20,670 precis som tar fem minuter att bläddra igenom. 467 00:22:20,670 --> 00:22:23,540 Kanske väljer några topp frågor du vill gå över. 468 00:22:23,540 --> 00:22:27,390 Om ni inte kan bestämma, vi ska bara sakta börja arbeta igenom dem, 469 00:22:27,390 --> 00:22:31,590 men jag är säker på att det kommer att bli en del frågor som du är särskilt 470 00:22:31,590 --> 00:22:34,890 ivriga att prata om och har mig arbeta igenom med er alla. 471 00:22:34,890 --> 00:22:36,580 Så bara gå vidare och ta fem minuter. 472 00:22:36,580 --> 00:22:37,780 Bläddra igenom. 473 00:22:37,780 --> 00:22:40,620 Och detta är testet från 2013. 474 00:22:40,620 --> 00:22:41,841 >> PUBLIK: Zero? 475 00:22:41,841 --> 00:22:43,630 >> ALLISON BUCHHOLTZ-AU: Ja, frågesport noll. 476 00:22:43,630 --> 00:22:45,647 Vi gör inte frågesport ena grejer. 477 00:22:45,647 --> 00:22:46,980 Vi kommer att göra det i ett par veckor. 478 00:22:46,980 --> 00:22:52,941 479 00:22:52,941 --> 00:22:55,190 Även för er som kom sent, vi har godis, 480 00:22:55,190 --> 00:23:00,580 så gör ni vill ha godis? 481 00:23:00,580 --> 00:23:01,530 >> PUBLIK: Visst. 482 00:23:01,530 --> 00:23:03,321 >> ALLISON BUCHHOLTZ-AU: Jag är bara kommer att skicka runt. 483 00:23:03,321 --> 00:23:09,774 484 00:23:09,774 --> 00:23:11,940 Hej, om ni kommer hit tidigt, får du mer godis. 485 00:23:11,940 --> 00:23:12,500 Det är bra. 486 00:23:12,500 --> 00:23:13,550 Ben, vill du ha godis? 487 00:23:13,550 --> 00:23:19,350 488 00:23:19,350 --> 00:23:20,556 Du vill ha en del av dessa? 489 00:23:20,556 --> 00:23:24,122 490 00:23:24,122 --> 00:23:26,080 Det finns också Snickers förekommande någon vill Snickers. 491 00:23:26,080 --> 00:23:27,640 492 00:23:27,640 --> 00:23:29,360 Jag ska lämna dem här och här. 493 00:23:29,360 --> 00:23:30,946 Känn dig fri. 494 00:23:30,946 --> 00:23:32,485 Vill du ha mer? 495 00:23:32,485 --> 00:23:33,235 PUBLIK: Allt klart. 496 00:23:33,235 --> 00:23:33,540 Tack. 497 00:23:33,540 --> 00:23:36,248 >> ALLISON BUCHHOLTZ-AU: Och jag hade en trevlig liten hög där i början. 498 00:23:36,248 --> 00:23:49,080 499 00:23:49,080 --> 00:23:51,980 Ni får ta quiz och Jag får ha en frågesport gradering part. 500 00:23:51,980 --> 00:23:54,496 501 00:23:54,496 --> 00:23:55,360 Det är kaos. 502 00:23:55,360 --> 00:23:56,460 503 00:23:56,460 --> 00:23:57,385 900 tentor. 504 00:23:57,385 --> 00:23:58,650 Det kommer att bli så kul. 505 00:23:58,650 --> 00:24:00,441 506 00:24:00,441 --> 00:24:02,036 Kommer att vara stor. 507 00:24:02,036 --> 00:24:04,430 Jag är ganska säker på att det är en av de största personal bindning 508 00:24:04,430 --> 00:24:05,380 nätterna år. 509 00:24:05,380 --> 00:24:15,660 510 00:24:15,660 --> 00:24:19,175 Har någon gjort quiz noll från förra året men av nyfikenhet? 511 00:24:19,175 --> 00:24:20,335 >> PUBLIK: Delar av det. 512 00:24:20,335 --> 00:24:21,543 >> ALLISON BUCHHOLTZ-AU: Delar av det, OK. 513 00:24:21,543 --> 00:24:24,272 514 00:24:24,272 --> 00:24:26,482 Hade du frågor om någon av dem? 515 00:24:26,482 --> 00:24:28,190 PUBLIK: Jag har redan gick till kontorstid. 516 00:24:28,190 --> 00:24:28,898 Tack ändå. 517 00:24:28,898 --> 00:24:30,187 518 00:24:30,187 --> 00:24:32,520 ALLISON BUCHHOLTZ-AU: Tja, förhoppningsvis det är fortfarande typ av hjälp. 519 00:24:32,520 --> 00:24:42,990 520 00:24:42,990 --> 00:24:45,634 När gick du till kontorstid för det? 521 00:24:45,634 --> 00:24:47,300 PUBLIK: Min TF hade 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 Vem är din TF? 524 00:24:48,977 --> 00:24:49,854 525 00:24:49,854 --> 00:24:51,020 PUBLIK: Fred [? Wujaya?]. 526 00:24:51,020 --> 00:24:52,622 527 00:24:52,622 --> 00:24:54,080 ALLISON BUCHHOLTZ-AU: Det finns så många TF. 528 00:24:54,080 --> 00:24:55,350 529 00:24:55,350 --> 00:24:55,850 Så många. 530 00:24:55,850 --> 00:25:16,530 531 00:25:16,530 --> 00:25:17,340 Okej. 532 00:25:17,340 --> 00:25:45,310 533 00:25:45,310 --> 00:25:48,950 Någon har någon att börja att jag kan skriva ned det vi vill arbeta med? 534 00:25:48,950 --> 00:25:53,770 535 00:25:53,770 --> 00:25:55,685 Jag antar pekarna en med bordet. 536 00:25:55,685 --> 00:25:56,890 537 00:25:56,890 --> 00:25:57,610 Gå för det. 538 00:25:57,610 --> 00:25:59,180 >> PUBLIK: Kanske omkopplaren ett. 539 00:25:59,180 --> 00:26:02,362 540 00:26:02,362 --> 00:26:03,445 ALLISON BUCHHOLTZ-AU: Så nummer 12? 541 00:26:03,445 --> 00:26:06,750 542 00:26:06,750 --> 00:26:10,770 Jag antar nummer 8 och 9 är förmodligen sådana människor vill gå över. 543 00:26:10,770 --> 00:26:12,116 >> Publik: Och 10 och 11. 544 00:26:12,116 --> 00:26:21,860 545 00:26:21,860 --> 00:26:25,806 >> ZAMYLA Chan: Och ni vet du får en sida av anteckningar, eller hur? 546 00:26:25,806 --> 00:26:28,450 >> PUBLIK: Ja, så vad är Vi fick sätta på det. 547 00:26:28,450 --> 00:26:30,658 >> ALLISON BUCHHOLTZ-AU: Du är tillåtet att sätta vad du vill. 548 00:26:30,658 --> 00:26:31,887 549 00:26:31,887 --> 00:26:32,720 Och det kan skrivas. 550 00:26:32,720 --> 00:26:35,270 Såvitt jag minns, var vårt skrivit. 551 00:26:35,270 --> 00:26:37,022 >> PUBLIK: Du kan göra tillbaka och båda sidor? 552 00:26:37,022 --> 00:26:38,780 >> ALLISON BUCHHOLTZ-AU: Ja, båda sidor. 553 00:26:38,780 --> 00:26:42,940 Så något liknande högen och [? bakändan?] hög, din kör 554 00:26:42,940 --> 00:26:43,780 gånger. 555 00:26:43,780 --> 00:26:44,840 Användbar. 556 00:26:44,840 --> 00:26:47,990 Kanske lite saker om pekare för att påminna dig. 557 00:26:47,990 --> 00:26:49,205 Syntax för saker. 558 00:26:49,205 --> 00:26:51,600 559 00:26:51,600 --> 00:26:54,830 Med precis som ett skelett Programmet kan vara super användbar. 560 00:26:54,830 --> 00:27:00,719 Jag vet att jag alltid glömt exakt vad Jag skulle skriva om int main, 561 00:27:00,719 --> 00:27:03,010 eftersom jag alltid bara kopiera klistra från min tidigare P set 562 00:27:03,010 --> 00:27:06,232 eller det är redan där, så Jag har aldrig riktigt skrev det, 563 00:27:06,232 --> 00:27:07,690 så med det kan vara super bra. 564 00:27:07,690 --> 00:27:09,280 565 00:27:09,280 --> 00:27:14,320 >> OK, så varför inte vi börja med nummer 8 då? 566 00:27:14,320 --> 00:27:21,730 567 00:27:21,730 --> 00:27:22,810 Okej. 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å anser programmet nedan. 571 00:27:26,310 --> 00:27:28,110 572 00:27:28,110 --> 00:27:30,700 Så självklart när vi ser pekare, det är nog 573 00:27:30,700 --> 00:27:32,200 en bra idé att börja rita, eller hur? 574 00:27:32,200 --> 00:27:34,552 575 00:27:34,552 --> 00:27:36,760 Jag vill veta var alla mina stora bitar av krita gick. 576 00:27:36,760 --> 00:27:37,870 Detta är typ av irriterande. 577 00:27:37,870 --> 00:27:40,210 578 00:27:40,210 --> 00:27:45,820 >> Så vi har här några swap-funktion det kommer att ta in två pekare. 579 00:27:45,820 --> 00:27:48,630 Så i detta fall, de borde egentligen vara att byta 580 00:27:48,630 --> 00:27:53,400 saker kontra vår ursprungliga swap funktion som bara tog på kopior. 581 00:27:53,400 --> 00:27:57,030 Så vad det kommer att göra är-- låt oss börja med huvud, 582 00:27:57,030 --> 00:27:58,450 eftersom det är där 1 är. 583 00:27:58,450 --> 00:28:04,296 >> Så vi har några int x 1. 584 00:28:04,296 --> 00:28:11,860 Vi har en del y som är lika med 2. 585 00:28:11,860 --> 00:28:14,390 Och sedan har vi några swap som kommer att ta dem. 586 00:28:14,390 --> 00:28:17,320 Och låt oss se vad vi har här att göra. 587 00:28:17,320 --> 00:28:19,542 588 00:28:19,542 --> 00:28:22,709 Och i vår table-- oh boy. 589 00:28:22,709 --> 00:28:23,792 Hur ska jag göra det här? 590 00:28:23,792 --> 00:28:25,900 Jag ska dra mitt bord här. 591 00:28:25,900 --> 00:28:49,490 592 00:28:49,490 --> 00:28:50,552 Knappt gör det där. 593 00:28:50,552 --> 00:28:51,260 Knappt gör 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 Och de ger oss, att 1 är 1 och 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 Grymt. 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 Och det finns [? a 1.?] 604 00:29:21,380 --> 00:29:24,500 605 00:29:24,500 --> 00:29:25,250 >> Okej. 606 00:29:25,250 --> 00:29:35,202 Och sedan adress x är 0x123. 607 00:29:35,202 --> 00:29:41,260 Och y är 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 Okej. 611 00:29:43,595 --> 00:29:46,710 Jag vill att ni arbeta med detta för bara like-- arbete på det 612 00:29:46,710 --> 00:29:48,385 med människorna runt omkring dig. 613 00:29:48,385 --> 00:29:50,340 Jag önskar att jag hade sagt att medan jag ställer in. 614 00:29:50,340 --> 00:29:50,840 Arbetet med den. 615 00:29:50,840 --> 00:29:53,270 Försök och arbeta på det av er för ett par minuter, 616 00:29:53,270 --> 00:29:54,930 och sedan kommer jag att arbeta på den med dig. 617 00:29:54,930 --> 00:29:57,034 618 00:29:57,034 --> 00:30:00,117 Eftersom det enda sättet du verkligen kommer att lära sig är genom att göra det själv. 619 00:30:00,117 --> 00:31:29,580 620 00:31:29,580 --> 00:31:30,110 Inga problem. 621 00:31:30,110 --> 00:31:30,610 Lycka till. 622 00:31:30,610 --> 00:32:17,390 623 00:32:17,390 --> 00:32:20,030 >> OK, varför inte vi långsamt börja arbeta med detta. 624 00:32:20,030 --> 00:32:23,695 Så alla får efter rad ett, är x 1. 625 00:32:23,695 --> 00:32:26,860 Efter linje två, x och y är 1 och 2, eller hur? 626 00:32:26,860 --> 00:32:27,400 Cool. 627 00:32:27,400 --> 00:32:30,310 Så linje tre är där saker bli intressant förstås. 628 00:32:30,310 --> 00:32:34,970 >> Så vad vi har gjort här är vi nu bytt. 629 00:32:34,970 --> 00:32:42,360 Vi säger att x och y har de punkter, eller de har adressen för x och y, 630 00:32:42,360 --> 00:32:43,390 rätt? 631 00:32:43,390 --> 00:32:48,451 Så i detta fall, tre, vad som är värdet av ett? 632 00:32:48,451 --> 00:32:52,379 633 00:32:52,379 --> 00:32:59,806 a hade gått in, har givits värdet på adress x, eller hur? 634 00:32:59,806 --> 00:33:02,542 635 00:33:02,542 --> 00:33:03,454 >> PUBLIK: 1? 636 00:33:03,454 --> 00:33:05,200 >> ALLISON BUCHHOLTZ-AU: Så vi lägga till x? 637 00:33:05,200 --> 00:33:06,420 Vad är x adress? 638 00:33:06,420 --> 00:33:07,212 >> PUBLIK: 0x123. 639 00:33:07,212 --> 00:33:08,087 >> ALLISON BUCHHOLTZ-AU: Exakt. 640 00:33:08,087 --> 00:33:13,960 641 00:33:13,960 --> 00:33:16,790 Men vad är en egentligen pekar på? 642 00:33:16,790 --> 00:33:20,790 Om vi ​​skulle dereference a, vilket värde det skulle ge oss. 643 00:33:20,790 --> 00:33:21,290 Publik: 1. 644 00:33:21,290 --> 00:33:23,164 ALLISON BUCHHOLTZ-AU: Det skulle ge oss 1, eftersom det som 645 00:33:23,164 --> 00:33:27,810 vi säger är att gå till denna adress, berätta vad värdet är. 646 00:33:27,810 --> 00:33:28,890 Så vad skulle vara b? 647 00:33:28,890 --> 00:33:30,500 648 00:33:30,500 --> 00:33:31,445 >> PUBLIK: 0x127. 649 00:33:31,445 --> 00:33:32,320 ALLISON BUCHHOLTZ-AU: Exakt. 650 00:33:32,320 --> 00:33:33,610 651 00:33:33,610 --> 00:33:35,410 Så det är adressen till y. 652 00:33:35,410 --> 00:33:36,580 653 00:33:36,580 --> 00:33:39,811 Och vad [? dereference? ?] 654 00:33:39,811 --> 00:33:40,310 PUBLIK: 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 fyra. 657 00:33:43,380 --> 00:33:44,390 658 00:33:44,390 --> 00:33:51,300 Vi sade en är equal-- bra nu vi har gjort int temp är lika med stjärna i en. 659 00:33:51,300 --> 00:33:53,580 Så vilka förändringar? 660 00:33:53,580 --> 00:33:55,680 Det finns bara en sak som ändras här. 661 00:33:55,680 --> 00:33:56,180 Vad är det? 662 00:33:56,180 --> 00:33:57,892 663 00:33:57,892 --> 00:33:58,624 >> PUBLIK: 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 skriva om alla dessa. 666 00:34:06,120 --> 00:34:07,790 667 00:34:07,790 --> 00:34:10,690 En bra strategi för dessa är bara att räkna ut 668 00:34:10,690 --> 00:34:14,050 vilka förändringar, eftersom oftast det finns bara en sak som är 669 00:34:14,050 --> 00:34:16,300 kommer att förändras vid en viss punkt, OK? 670 00:34:16,300 --> 00:34:17,960 671 00:34:17,960 --> 00:34:20,100 Så vi har tilldelat temp. 672 00:34:20,100 --> 00:34:26,929 >> Nu har vår nästa punkt, fem, vi har gjort stjärnan en lika Star B. 673 00:34:26,929 --> 00:34:28,880 Så vilka förändringar nu? 674 00:34:28,880 --> 00:34:29,760 >> PUBLIK: Stjärn a. 675 00:34:29,760 --> 00:34:32,081 >> ALLISON BUCHHOLTZ-AU: Stjärn a, så allt annat förblir densamma. 676 00:34:32,081 --> 00:34:38,610 677 00:34:38,610 --> 00:34:39,900 Och vad gör stjärnan en lika? 678 00:34:39,900 --> 00:34:40,659 >> PUBLIK: 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 Lovely. 682 00:34:42,960 --> 00:34:45,360 683 00:34:45,360 --> 00:34:46,239 Grymt. 684 00:34:46,239 --> 00:34:51,190 OK, och sedan har vi nu börja b är lika med temp. 685 00:34:51,190 --> 00:34:53,907 Så det enda som förändras är stjärnan f. 686 00:34:53,907 --> 00:34:55,344 Allt annat förblir densamma. 687 00:34:55,344 --> 00:35:01,100 688 00:35:01,100 --> 00:35:02,610 Och vad är stjärnan b lika med nu? 689 00:35:02,610 --> 00:35:04,840 690 00:35:04,840 --> 00:35:06,190 Och du har fyllt i tabellen. 691 00:35:06,190 --> 00:35:11,620 692 00:35:11,620 --> 00:35:18,460 För nu i slutet, om vi säger x och y, vi vet att vid denna point-- 693 00:35:18,460 --> 00:35:23,060 Vi vet att när vi ändrats stjärna en till två, 694 00:35:23,060 --> 00:35:29,620 Vad som gjorde det sa OK, på adress 0x123 här, ändra det. 695 00:35:29,620 --> 00:35:31,780 696 00:35:31,780 --> 00:35:33,290 Nu var två. 697 00:35:33,290 --> 00:35:34,460 698 00:35:34,460 --> 00:35:40,600 Och sedan på denna punkt, Vi sa OK, gå till stjärnan miljarder. 699 00:35:40,600 --> 00:35:45,305 Så gå till adress 0x127 och göra det till en 1. 700 00:35:45,305 --> 00:35:49,670 701 00:35:49,670 --> 00:35:53,110 Så nu i slutet när vi faktiskt tillbaka för main, 702 00:35:53,110 --> 00:35:56,445 vi faktiskt har att x är lika med 2 och y är lika med 1. 703 00:35:56,445 --> 00:35:58,500 704 00:35:58,500 --> 00:35:59,500 Alla bra 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 Nummer 9. 708 00:36:04,030 --> 00:36:05,950 Ni arbetar med detta. 709 00:36:05,950 --> 00:36:09,016 Jag ska sätta upp en bräda så att vi kan dra igenom det. 710 00:36:09,016 --> 00:36:09,910 Det blir skitkul. 711 00:36:09,910 --> 00:36:13,760 712 00:36:13,760 --> 00:36:16,320 De stora tabeller kan vara verkligen skrämmande, jag vet. 713 00:36:16,320 --> 00:36:19,910 Men om du bara ta dem en rad i en tid, de får mycket mindre skrämmande. 714 00:36:19,910 --> 00:38:12,025 715 00:38:12,025 --> 00:38:12,860 Okej. 716 00:38:12,860 --> 00:38:16,230 717 00:38:16,230 --> 00:38:21,190 >> Så du vet att det kommer att gått igenom huvud först, eller hur? 718 00:38:21,190 --> 00:38:24,140 Initierar x och y och sedan försöker byta dem. 719 00:38:24,140 --> 00:38:28,560 Så även swap är över, riktiga sättet det går är att vi går igenom main, 720 00:38:28,560 --> 00:38:31,040 och då är det ringer upp för att byta, okej? 721 00:38:31,040 --> 00:38:32,810 Så alla vet det. 722 00:38:32,810 --> 00:38:34,960 >> Så som man gör du killar vill börja med? 723 00:38:34,960 --> 00:38:37,240 Är det någon riktigt säker om en av dessa? 724 00:38:37,240 --> 00:38:38,307 725 00:38:38,307 --> 00:38:39,265 Eller ens delvis säker? 726 00:38:39,265 --> 00:38:44,170 727 00:38:44,170 --> 00:38:48,120 Varför vi inte börja med x? 728 00:38:48,120 --> 00:38:49,060 Vad tror vi x är? 729 00:38:49,060 --> 00:38:49,735 >> Publik: 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å varför är 2. 733 00:38:56,340 --> 00:38:58,880 734 00:38:58,880 --> 00:39:01,380 Och det beror på att stor skillnad här 735 00:39:01,380 --> 00:39:04,890 är att vi bara passerar exemplar på, eller hur? 736 00:39:04,890 --> 00:39:06,520 Vi är inte passerar genom hänvisning. 737 00:39:06,520 --> 00:39:08,850 Så även i slutet av detta program x och y 738 00:39:08,850 --> 00:39:14,170 har hållit samma sak, eftersom de är bara kopior i swap-funktionen. 739 00:39:14,170 --> 00:39:16,320 De inte faktiskt ändra, eller hur? 740 00:39:16,320 --> 00:39:17,570 741 00:39:17,570 --> 00:39:19,290 >> Så hur är a, b, och temp? 742 00:39:19,290 --> 00:39:21,540 743 00:39:21,540 --> 00:39:22,890 >> PUBLIK: a är b. 744 00:39:22,890 --> 00:39:23,940 >> ALLISON BUCHHOLTZ-AU: a är b. 745 00:39:23,940 --> 00:39:28,569 Så i detta fall, en var x, vilket är 1, eller hur? 746 00:39:28,569 --> 00:39:29,860 Så här, låt oss gå igenom det. 747 00:39:29,860 --> 00:39:33,940 Så på början, a och b är 1 och 2 och odefinierat. 748 00:39:33,940 --> 00:39:35,000 749 00:39:35,000 --> 00:39:40,850 Så ursprungligen temp blir tilldelas till en, så temp är ett. 750 00:39:40,850 --> 00:39:46,150 a är lika med B, så får vi 2, och b är lika med temp. 751 00:39:46,150 --> 00:39:47,284 Nu får vi 1. 752 00:39:47,284 --> 00:39:49,454 753 00:39:49,454 --> 00:39:55,860 >> PUBLIK: I den föregående det bytte et-x och y-tecken. 754 00:39:55,860 --> 00:39:57,390 Vad exakt innebär det? 755 00:39:57,390 --> 00:39:59,890 ALLISON BUCHHOLTZ-AU: Så det innebär att du passerar genom hänvisning. 756 00:39:59,890 --> 00:40:03,830 Så det betyder att du är faktiskt passerar adresser där 757 00:40:03,830 --> 00:40:04,814 x och y är lagrade. 758 00:40:04,814 --> 00:40:06,730 PUBLIK: Men du är inte byta till adressen. 759 00:40:06,730 --> 00:40:07,860 ALLISON BUCHHOLTZ-AU: Du är inte byta adresserna. 760 00:40:07,860 --> 00:40:10,015 Du byta vad som är i dem. 761 00:40:10,015 --> 00:40:11,510 762 00:40:11,510 --> 00:40:14,460 Liksom vad som står på den adressen, och det är därför det fungerar. 763 00:40:14,460 --> 00:40:20,750 Versus i detta program här vad du gör är att du skapar kopior. 764 00:40:20,750 --> 00:40:27,440 Så du har x och y som finns som sina egna variabler här ute. 765 00:40:27,440 --> 00:40:31,530 766 00:40:31,530 --> 00:40:34,140 Men sedan när du passerar dem i swap, det 767 00:40:34,140 --> 00:40:38,090 som om du skapar denna hela andra set. 768 00:40:38,090 --> 00:40:41,272 Så du är aldrig röra x och y. 769 00:40:41,272 --> 00:40:46,890 >> PUBLIK: Om ampersand x är vad som står på adressen till x, vad skulle stjärnan x vara? 770 00:40:46,890 --> 00:40:53,290 >> ALLISON BUCHHOLTZ-AU: Ampersand x är vad som står på adressen till x, sedan star-- väl, 771 00:40:53,290 --> 00:40:54,950 i detta fall, är x inte en pekare. 772 00:40:54,950 --> 00:40:56,332 773 00:40:56,332 --> 00:40:57,040 PUBLIK: Åh, OK. 774 00:40:57,040 --> 00:40:58,998 Så du bara göra detta eftersom det inte är en pekare. 775 00:40:58,998 --> 00:40:59,890 ALLISON BUCHHOLTZ-AU: Höger. 776 00:40:59,890 --> 00:41:03,046 Du kan bara göra stjärna något som är en pekare. 777 00:41:03,046 --> 00:41:05,920 Kanske kan du göra det till saker som inte, men det kompilering som du 778 00:41:05,920 --> 00:41:07,350 göra det galna saker skulle hända. 779 00:41:07,350 --> 00:41:09,570 Och jag är inte exakt säker på vad som skulle hända. 780 00:41:09,570 --> 00:41:11,880 Du kan alltid ta adress någonting, 781 00:41:11,880 --> 00:41:14,255 men du kan inte dereference något som inte är en pekare. 782 00:41:14,255 --> 00:41:14,805 783 00:41:14,805 --> 00:41:17,860 Om det är vettigt, det är en god åtskillnad att ha. 784 00:41:17,860 --> 00:41:19,870 785 00:41:19,870 --> 00:41:21,340 >> Så inte så illa, eller hur? 786 00:41:21,340 --> 00:41:23,650 Tabellerna är förhoppningsvis få något mindre skrämmande. 787 00:41:23,650 --> 00:41:25,450 788 00:41:25,450 --> 00:41:26,690 Okej. 789 00:41:26,690 --> 00:41:28,370 Ah, det roliga sådana. 790 00:41:28,370 --> 00:41:31,265 Så nu, skriva din egen kod. 791 00:41:31,265 --> 00:41:33,640 792 00:41:33,640 --> 00:41:37,950 Så jag ska låta er arbeta om detta i cirka fyra minuter, 793 00:41:37,950 --> 00:41:41,480 och då kan vi prata om olika sätt att närma sig den. 794 00:41:41,480 --> 00:41:45,080 795 00:41:45,080 --> 00:41:47,110 Känn dig fri att prata med människor runt omkring dig. 796 00:41:47,110 --> 00:41:48,114 797 00:41:48,114 --> 00:41:49,155 Också detta är intressant. 798 00:41:49,155 --> 00:41:51,460 Det är som en alla flickor sektionen just nu. 799 00:41:51,460 --> 00:41:52,190 Ganska spännande. 800 00:41:52,190 --> 00:41:53,310 801 00:41:53,310 --> 00:41:54,502 Utom för Chang. 802 00:41:54,502 --> 00:41:56,190 Men Chang är egentligen inte en del av avsnittet. 803 00:41:56,190 --> 00:42:17,282 804 00:42:17,282 --> 00:42:17,985 Grymt. 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å jag kommer att ge er ett par tips. 808 00:42:39,475 --> 00:42:43,450 809 00:42:43,450 --> 00:42:46,890 I det fall då man har flera tecken, där 810 00:42:46,890 --> 00:42:49,990 du har något annat som 123 eller 1000 något, 811 00:42:49,990 --> 00:42:53,790 du behöver för att kunna loop igenom och omvandla var och en av dem. 812 00:42:53,790 --> 00:42:55,340 813 00:42:55,340 --> 00:42:58,699 Så det finns ett par sätt du kan göra det, 814 00:42:58,699 --> 00:43:01,740 men du definitivt kommer att ha en for-loop någonstans där för att slinga 815 00:43:01,740 --> 00:43:05,150 genom dem, vilket är ungefär som giveaway 816 00:43:05,150 --> 00:43:09,540 med även om du kallar STRLEN, vilket är ungefär som oh 817 00:43:09,540 --> 00:43:12,418 kanske du vill använda längden av strängen på något sätt. 818 00:43:12,418 --> 00:45:17,300 819 00:45:17,300 --> 00:45:17,829 >> Okej. 820 00:45:17,829 --> 00:45:20,870 Så vad tycker ni kan vara en av de första saker vi vill göra? 821 00:45:20,870 --> 00:45:23,149 822 00:45:23,149 --> 00:45:25,690 Det finns ett par fall här Vi måste ta hänsyn till, eller hur? 823 00:45:25,690 --> 00:45:27,360 Antingen har vi något som är null. 824 00:45:27,360 --> 00:45:28,685 825 00:45:28,685 --> 00:45:30,383 Vad har vi? 826 00:45:30,383 --> 00:45:30,882 Fall. 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 så att den har något annat än 09, eller hur? 831 00:45:42,414 --> 00:45:43,580 Så låt oss säga att det är bokstäver. 832 00:45:43,580 --> 00:45:44,900 833 00:45:44,900 --> 00:45:46,510 Eller har vi det fall som är giltig. 834 00:45:46,510 --> 00:45:48,450 835 00:45:48,450 --> 00:45:50,130 Tre fall att tänka på. 836 00:45:50,130 --> 00:45:53,527 Så som man tror du kan vara det lättaste att ta hand om först? 837 00:45:53,527 --> 00:45:54,152 PUBLIK: Null. 838 00:45:54,152 --> 00:45:55,527 ALLISON BUCHHOLTZ-AU: Fallet är null. 839 00:45:55,527 --> 00:45:56,610 Så vad skulle vi göra där? 840 00:45:56,610 --> 00:45:57,954 841 00:45:57,954 --> 00:45:58,870 PUBLIK: [OHÖRBAR]. 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 Och vad vill jag göra? 846 00:46:06,550 --> 00:46:07,341 >> PUBLIK: Return 0. 847 00:46:07,341 --> 00:46:07,935 848 00:46:07,935 --> 00:46:09,110 >> ALLISON BUCHHOLTZ-AU: Exakt. 849 00:46:09,110 --> 00:46:09,860 Grymt. 850 00:46:09,860 --> 00:46:10,640 OK. 851 00:46:10,640 --> 00:46:15,270 Så nu skift att den har bokstäver och det fall att det är giltigt. 852 00:46:15,270 --> 00:46:19,140 Vi kan faktiskt ta hand om detta inom en slinga, OK? 853 00:46:19,140 --> 00:46:22,710 Så ett sätt att göra det-- vad som kan vara ett enkelt sätt att kontrollera om det är giltigt. 854 00:46:22,710 --> 00:46:25,150 855 00:46:25,150 --> 00:46:29,144 Vi skulle behöva gå igenom varje bokstav och göra vad? 856 00:46:29,144 --> 00:46:34,336 857 00:46:34,336 --> 00:46:35,640 >> PUBLIK: Kontrollera om det är in-- 858 00:46:35,640 --> 00:46:39,570 >> ALLISON BUCHHOLTZ-AU: Höger, kan du kontrollera om det är mellan 0 och 9, eller hur? 859 00:46:39,570 --> 00:46:40,880 860 00:46:40,880 --> 00:46:42,700 Och sedan i fallet att det är giltigt, vi är 861 00:46:42,700 --> 00:46:46,550 kommer att hamna iterera igenom vår sträng ändå, eller hur? 862 00:46:46,550 --> 00:46:48,690 Så varför inte försöka kombinera dem till en. 863 00:46:48,690 --> 00:46:51,260 Vi kommer att iterera genom hela sträng, och som vi 864 00:46:51,260 --> 00:46:56,400 gör det, ska vi först göra en kontroll för att se om det brev 865 00:46:56,400 --> 00:46:58,110 eller om det tecknet är giltigt. 866 00:46:58,110 --> 00:47:02,150 Om det är, vi kommer att utföra operation som vi behöver för att konvertera den. 867 00:47:02,150 --> 00:47:05,050 Annars kommer tillbaka 0, eller hur? 868 00:47:05,050 --> 00:47:09,160 >> Så innan vi gör det, vi antagligen vill ha lite variabel 869 00:47:09,160 --> 00:47:12,820 att vi kan återkomma i slutet det kommer att vara vår verkliga värde. 870 00:47:12,820 --> 00:47:17,005 Så vi kommer att initiera ett visst värde för att vara 0. 871 00:47:17,005 --> 00:47:18,390 Och det är precis så vi startar. 872 00:47:18,390 --> 00:47:22,452 873 00:47:22,452 --> 00:47:23,785 Så jag ska bli av med detta. 874 00:47:23,785 --> 00:47:26,750 875 00:47:26,750 --> 00:47:30,489 Så hur ska vi iterera genom denna sträng. 876 00:47:30,489 --> 00:47:31,280 Publik: För loop. 877 00:47:31,280 --> 00:47:32,280 ALLISON BUCHHOLTZ-AU: en for-loop. 878 00:47:32,280 --> 00:47:33,160 Så vad är vår för? 879 00:47:33,160 --> 00:47:34,710 880 00:47:34,710 --> 00:47:35,909 >> PUBLIK: Jag är 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 Och vad är vi iterera tills? 884 00:47:41,180 --> 00:47:42,450 >> PUBLIK: str längd s. 885 00:47:42,450 --> 00:47:47,920 886 00:47:47,920 --> 00:47:50,900 >> ALLISON BUCHHOLTZ-AU: OK, nu minns det finns ett bättre sätt. [OHÖRBAR]. 887 00:47:50,900 --> 00:47:52,935 >> PUBLIK: Ja, vi kan göra n är lika. 888 00:47:52,935 --> 00:47:53,810 ALLISON BUCHHOLTZ-AU: Exakt. 889 00:47:53,810 --> 00:47:55,010 890 00:47:55,010 --> 00:47:56,190 >> Publik: i är mindre än n. 891 00:47:56,190 --> 00:47:57,559 892 00:47:57,559 --> 00:47:59,475 ALLISON BUCHHOLTZ-AU: Och varför skulle vi vilja göra det? 893 00:47:59,475 --> 00:48:00,815 894 00:48:00,815 --> 00:48:01,940 Kommer du ihåg varför? 895 00:48:01,940 --> 00:48:04,180 896 00:48:04,180 --> 00:48:05,680 PUBLIK: Vi måste räkna om det. 897 00:48:05,680 --> 00:48:08,735 ALLISON BUCHHOLTZ-AU: Becasue detta sätt endast måste beräkna strlen gång. 898 00:48:08,735 --> 00:48:09,750 899 00:48:09,750 --> 00:48:14,400 Om du gör i är mindre än strlen s, det betyder att den beräknar 900 00:48:14,400 --> 00:48:17,050 längden varje gång du kör för slingan, 901 00:48:17,050 --> 00:48:20,800 vilket inte är en stor kostnad av energi, det men det 902 00:48:20,800 --> 00:48:24,280 bättre metoder för att försöka göra saker som det en gång. 903 00:48:24,280 --> 00:48:27,610 Om inte kanske du har en galen sträng som är förändras vid varje iteration. 904 00:48:27,610 --> 00:48:30,371 Men om det är att vara oförändrad, spara den. 905 00:48:30,371 --> 00:48:30,870 Okej. 906 00:48:30,870 --> 00:48:33,430 Och sedan jag plus plus. 907 00:48:33,430 --> 00:48:34,040 Grymt. 908 00:48:34,040 --> 00:48:35,789 Vi är på väg. 909 00:48:35,789 --> 00:48:36,830 PUBLIK: Verkligen snabbt. 910 00:48:36,830 --> 00:48:39,600 Först, så låt oss säga att vi bara gjorde jag mindre än strlen av s, 911 00:48:39,600 --> 00:48:42,175 de gradera oss på design alls eller bara korrekthet? 912 00:48:42,175 --> 00:48:43,640 913 00:48:43,640 --> 00:48:44,610 De är inte. 914 00:48:44,610 --> 00:48:47,920 Vi gradering på korrekthet för frågesporter så vitt jag vet. 915 00:48:47,920 --> 00:48:52,670 Jag kan inte göra en fullständig på garanti, men för det mesta, 916 00:48:52,670 --> 00:48:57,060 allra flesta är korrekthet, eftersom du är under stor tidspress. 917 00:48:57,060 --> 00:48:59,704 Design innebär vanligtvis du har tid att tänka 918 00:48:59,704 --> 00:49:01,245 om elegansen i din situation. 919 00:49:01,245 --> 00:49:03,710 920 00:49:03,710 --> 00:49:05,770 >> OK, så vi iterera igenom. 921 00:49:05,770 --> 00:49:10,640 Så vi måste antingen kontrollera se om denna karaktär är giltigt 922 00:49:10,640 --> 00:49:14,550 eller om vi kan utföra vårt normal [? en till jag?] -funktionen. 923 00:49:14,550 --> 00:49:16,600 Vi kan oroa dig för vad som är i en sekund. 924 00:49:16,600 --> 00:49:19,340 Så varför inte vi take-- om någon kan tänka 925 00:49:19,340 --> 00:49:21,930 om ett sätt att kontrollera att se om detta är giltigt. 926 00:49:21,930 --> 00:49:23,346 927 00:49:23,346 --> 00:49:25,740 Vi vet att det kommer att bli några om tillstånd, eller hur? 928 00:49:25,740 --> 00:49:26,830 929 00:49:26,830 --> 00:49:32,300 Och kom ihåg detta är i ASCII, så hur kan 930 00:49:32,300 --> 00:49:37,359 vi se om det inte är 0,1, 2, 3, 4, 5, 6, 7, 8, eller 9. 931 00:49:37,359 --> 00:49:38,150 PUBLIK: Om alfa. 932 00:49:38,150 --> 00:49:39,800 933 00:49:39,800 --> 00:49:44,100 >> ALLISON BUCHHOLTZ-AU: Så om alpha skulle bara låt oss veta om det är en bokstav. 934 00:49:44,100 --> 00:49:47,810 Och om de ger oss en symbol, det är fortfarande inte riktigt går att kontrollera. 935 00:49:47,810 --> 00:49:54,270 Så om du drar upp din ASCII bord, vet vi att 0 till 9 936 00:49:54,270 --> 00:49:55,340 är i ett segment. 937 00:49:55,340 --> 00:49:57,560 938 00:49:57,560 --> 00:50:00,540 Säg mig siffrorna att de motsvarar om möjligt. 939 00:50:00,540 --> 00:50:08,136 940 00:50:08,136 --> 00:50:08,677 PUBLIK: 40. 941 00:50:08,677 --> 00:50:11,440 942 00:50:11,440 --> 00:50:13,714 >> ALLISON BUCHHOLTZ-AU: Så utbudet är som 40-- 943 00:50:13,714 --> 00:50:14,380 PUBLIK: Kanske. 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 JAG ÄR INTE SÄKER. 947 00:50:17,430 --> 00:50:18,510 >> ALLISON BUCHHOLTZ-AU: 40-57? 948 00:50:18,510 --> 00:50:19,426 >> PUBLIK: 48, tror jag. 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 vet att de som ASCII symbols-- om ASCII-värdet inte är 951 00:50:26,070 --> 00:50:29,940 mellan 48 och 57, det är inte giltigt, eller hur? 952 00:50:29,940 --> 00:50:32,050 Så skulle vi kunna använda det för att vår fördel möjligen? 953 00:50:32,050 --> 00:50:33,770 954 00:50:33,770 --> 00:50:38,082 Hur ska vi få detta brev, första off? 955 00:50:38,082 --> 00:50:40,910 Hur ska vi komma åt detta denna karaktär? 956 00:50:40,910 --> 00:50:42,010 >> PUBLIK: s fäste 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 Eftersom vi kan tänka på strängar som matriser, minns. 960 00:50:46,285 --> 00:50:47,470 961 00:50:47,470 --> 00:50:48,740 Så vad är det vi vill ha sagt? 962 00:50:48,740 --> 00:50:55,920 Vi vill säga om det är-- Jag ska ge er en ledtråd. 963 00:50:55,920 --> 00:50:56,920 Det är en mindre än. 964 00:50:56,920 --> 00:50:58,711 Vad som du tror att det måste vara mindre än? 965 00:50:58,711 --> 00:50:59,074 966 00:50:59,074 --> 00:50:59,615 PUBLIK: 57? 967 00:50:59,615 --> 00:51:01,550 968 00:51:01,550 --> 00:51:02,900 >> ALLISON BUCHHOLTZ-AU: 47, eller hur? 969 00:51:02,900 --> 00:51:08,920 Men det innebär också att när du en 0 i enkel [? ekrar?], eftersom det är 970 00:51:08,920 --> 00:51:09,689 tecknet 0. 971 00:51:09,689 --> 00:51:10,605 Du kan också sätta 47. 972 00:51:10,605 --> 00:51:11,660 973 00:51:11,660 --> 00:51:14,350 Med ASCII tabellen, som du ser, är bara något 974 00:51:14,350 --> 00:51:18,580 du ska ha på din frågesport bladet. 975 00:51:18,580 --> 00:51:25,830 >> Så om detta är fallet, om det är en mindre än 0-- inte nödvändigtvis och. 976 00:51:25,830 --> 00:51:30,890 Det är bara antingen kommer att bli mindre än eller större än 9. 977 00:51:30,890 --> 00:51:33,055 Så kan du fylla i denna sista för mig? 978 00:51:33,055 --> 00:51:36,440 Så eller s för i är vad, Rhea? 979 00:51:36,440 --> 00:51:39,810 980 00:51:39,810 --> 00:51:41,536 >> PUBLIK: Större än 9. 981 00:51:41,536 --> 00:51:42,970 982 00:51:42,970 --> 00:51:44,221 >> ALLISON BUCHHOLTZ-AU: Det. 983 00:51:44,221 --> 00:51:47,280 Betyder det vettigt att alla, hur vi kom dit? 984 00:51:47,280 --> 00:51:51,340 Dessa problem, de är som när du se lösningarna, det är som oh, OK. 985 00:51:51,340 --> 00:51:52,312 986 00:51:52,312 --> 00:51:53,937 Och det är därför praxis kommer att hjälpa dig. 987 00:51:53,937 --> 00:51:55,070 988 00:51:55,070 --> 00:51:57,400 OK, så vi återvänder 0. 989 00:51:57,400 --> 00:51:57,900 Lovely. 990 00:51:57,900 --> 00:51:59,000 991 00:51:59,000 --> 00:51:59,670 Okej. 992 00:51:59,670 --> 00:52:00,780 993 00:52:00,780 --> 00:52:02,365 Annars vad vill vi göra? 994 00:52:02,365 --> 00:52:04,640 Detta är den intressanta delen där det är lite mer 995 00:52:04,640 --> 00:52:07,550 som matematik kontra CS i min mening. 996 00:52:07,550 --> 00:52:09,479 997 00:52:09,479 --> 00:52:11,520 Har någon en idé om hur vi kan göra det här? 998 00:52:11,520 --> 00:52:15,822 999 00:52:15,822 --> 00:52:18,155 Så viktiga att inser är det första tecknet 1000 00:52:18,155 --> 00:52:21,510 vi tar kommer att bli högsta rang siffra, eller hur? 1001 00:52:21,510 --> 00:52:25,975 Så om vi tittar på att omvandla 123, första gången vi iterera 1002 00:52:25,975 --> 00:52:30,800 är kommer att bli 1, men vi behöver att för att vara 100 i slutet, eller hur? 1003 00:52:30,800 --> 00:52:34,450 Så en sak du kan göra är att med varje efterföljande siffra 1004 00:52:34,450 --> 00:52:39,670 du tar, du multiplicera ditt värde med 10, så att när du kommer till slutet, 1005 00:52:39,670 --> 00:52:42,960 allt har varit skiftat upp, eller hur? 1006 00:52:42,960 --> 00:52:46,490 >> Så den första gången du kör den, har du 1 som ditt värde. 1007 00:52:46,490 --> 00:52:50,370 Andra gången du kör det, du multiplicera ditt värde med 10. 1008 00:52:50,370 --> 00:52:55,180 Det kommer att uppdatera den så att det är nu 10, och du lägger på din nästa värde. 1009 00:52:55,180 --> 00:52:57,830 Och sedan multiplicera detta med 10 och lägg på nästa värde. 1010 00:52:57,830 --> 00:53:01,880 Och det är därför de säger detta är mycket mer som test 1011 00:53:01,880 --> 00:53:06,920 ett matematiskt algoritm kontra CS, men jag avvika. 1012 00:53:06,920 --> 00:53:08,080 Jag skriver inte på frågesporter. 1013 00:53:08,080 --> 00:53:13,520 >> Så en sak vi kan göra är vi säger värde gånger är lika med 10. 1014 00:53:13,520 --> 00:53:16,630 Så detta kommer att skifta din siffra en gång varje gång. 1015 00:53:16,630 --> 00:53:18,770 1016 00:53:18,770 --> 00:53:20,915 Och så vill vi bara lägga till. 1017 00:53:20,915 --> 00:53:22,070 1018 00:53:22,070 --> 00:53:24,290 Vi vill lägga in vad vi precis fått, eller hur? 1019 00:53:24,290 --> 00:53:25,350 1020 00:53:25,350 --> 00:53:31,649 Så hur gör vi egentligen omvandla vår ASCII-tecken i numret 1021 00:53:31,649 --> 00:53:32,440 att den representerar? 1022 00:53:32,440 --> 00:53:37,680 1023 00:53:37,680 --> 00:53:40,800 >> Så vi vet att 0 är lika med 47, eller hur? 1024 00:53:40,800 --> 00:53:44,260 Så om 0 är 47, vad skulle vi behöva göra för att det 1025 00:53:44,260 --> 00:53:47,376 att faktiskt göra det vara en int med 0? 1026 00:53:47,376 --> 00:53:48,384 >> PUBLIK: Det är 48. 1027 00:53:48,384 --> 00:53:49,050 ALLISON BUCHHOLTZ-AU: 48? 1028 00:53:49,050 --> 00:53:49,550 Ursäkta. 1029 00:53:49,550 --> 00:53:53,500 1030 00:53:53,500 --> 00:53:55,100 Vi skulle subtrahera 48, eller hur? 1031 00:53:55,100 --> 00:53:58,580 1032 00:53:58,580 --> 00:53:59,550 Kom ihåg ASCII matte? 1033 00:53:59,550 --> 00:54:01,565 Vi kan behandla dem bara som vanliga siffror. 1034 00:54:01,565 --> 00:54:02,570 1035 00:54:02,570 --> 00:54:05,900 Om du behandlar dem som siffror, de blir tal effektivt. 1036 00:54:05,900 --> 00:54:10,410 Så om vi har s av i, som låt oss säger i detta fall är lika med 0. 1037 00:54:10,410 --> 00:54:14,420 Så s på i i det här fallet skulle vara den ASCII-- 1038 00:54:14,420 --> 00:54:16,675 ASCII int för att det skulle vara 47. 1039 00:54:16,675 --> 00:54:17,750 1040 00:54:17,750 --> 00:54:19,875 Så vi kunde subtract-- eller 48. 1041 00:54:19,875 --> 00:54:20,930 1042 00:54:20,930 --> 00:54:22,440 Du kan göra det, är ett sätt. 1043 00:54:22,440 --> 00:54:25,125 Någon som vet en bättre sättet vi kan göra 48? 1044 00:54:25,125 --> 00:54:27,220 1045 00:54:27,220 --> 00:54:31,608 Vi sa bara 0 är-- gå in ASCII du kunde göra quote 0. 1046 00:54:31,608 --> 00:54:39,740 1047 00:54:39,740 --> 00:54:43,160 Det gör det slags göra känsla hur det här fungerar? 1048 00:54:43,160 --> 00:54:50,080 >> Publik: Vid denna punkt, är värdet 0 eftersom även om du multiplicera det med 10, 1049 00:54:50,080 --> 00:54:53,340 du börjar med noll, så ska den stängas? 1050 00:54:53,340 --> 00:54:59,360 >> ALLISON BUCHHOLTZ-AU: Så i detta fall, du vill multiplicera den innan du lägger till, 1051 00:54:59,360 --> 00:55:06,650 eftersom i detta fall, ja, skulle det fortfarande be-- min pekare saknas. 1052 00:55:06,650 --> 00:55:09,980 Värdet i detta fall, den första När vi kör det kommer att vara noll. 1053 00:55:09,980 --> 00:55:12,320 Så du bara lägga på den första siffran. 1054 00:55:12,320 --> 00:55:15,930 Det viktiga är nästa gång du upprepa, att du vill flytta upp 1055 00:55:15,930 --> 00:55:18,722 innan du lägger din nästa siffra på. 1056 00:55:18,722 --> 00:55:21,223 Betyder det att klargöra för 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 >> Ibland ska du får konstiga fler Mathy saker. 1060 00:55:25,900 --> 00:55:28,020 1061 00:55:28,020 --> 00:55:30,750 Om du hade mest detta, du kommer fortfarande 1062 00:55:30,750 --> 00:55:32,610 att get-- du kommer att göra ganska bra. 1063 00:55:32,610 --> 00:55:35,150 Partiell kredit är en mycket stora grej på CS50 frågesporter. 1064 00:55:35,150 --> 00:55:36,270 Så skriv vad du vet. 1065 00:55:36,270 --> 00:55:39,640 Om du fick allt utom för här, du är 1066 00:55:39,640 --> 00:55:41,390 fortfarande kommer att göra riktigt bra problemet. 1067 00:55:41,390 --> 00:55:43,750 Eftersom du visar, OK, jag vet nästan. 1068 00:55:43,750 --> 00:55:45,570 Jag vet att jag behöver för att iterera igenom. 1069 00:55:45,570 --> 00:55:47,260 Jag vet vad jag behöver för att leta efter. 1070 00:55:47,260 --> 00:55:50,584 Jag gör bara inte riktigt få hur du konverterar den. 1071 00:55:50,584 --> 00:55:51,500 Du kommer att vara OK. 1072 00:55:51,500 --> 00:55:52,850 Ja, du kommer att förlorar ett par poäng, 1073 00:55:52,850 --> 00:55:55,641 men du fortfarande kommer att få en bra antal poäng för något 1074 00:55:55,641 --> 00:55:57,990 så om du är saknas dessa två linjer. 1075 00:55:57,990 --> 00:56:00,660 Jag skulle vara som OK, den här personen vet vad de ska göra. 1076 00:56:00,660 --> 00:56:02,070 Math är hård. 1077 00:56:02,070 --> 00:56:04,930 Så jag skulle säga att du skulle vara bra. 1078 00:56:04,930 --> 00:56:09,474 >> OK, så du killar redo att försök STRLEN med pekare nu 1079 00:56:09,474 --> 00:56:10,890 att ni är pekar mästare? 1080 00:56:10,890 --> 00:56:12,400 1081 00:56:12,400 --> 00:56:15,106 Så jag ska låta er arbeta om det för lite. 1082 00:56:15,106 --> 00:56:17,131 1083 00:56:17,131 --> 00:56:19,090 Om någon behöver en uppdaterare. 1084 00:56:19,090 --> 00:56:23,120 1085 00:56:23,120 --> 00:56:28,060 Så du vill använda pekare aritmetik, och sedan om s är null 1086 00:56:28,060 --> 00:56:29,624 din implementation bör återgå 0. 1087 00:56:29,624 --> 00:56:37,045 1088 00:56:37,045 --> 00:56:39,670 Saker som detta som gör dig verkligen glad över att bara ringa strlen 1089 00:56:39,670 --> 00:56:40,586 vid slutet av dagen. 1090 00:56:40,586 --> 00:57:24,874 1091 00:57:24,874 --> 00:57:27,624 Jag tror att detta kan vara lite enklare än den förra, som 1092 00:57:27,624 --> 00:57:28,123 är bra. 1093 00:57:28,123 --> 00:58:51,789 1094 00:58:51,789 --> 00:58:55,690 Jag ska ge er en minut, och sedan kommer vi att arbeta igenom det. 1095 00:58:55,690 --> 00:58:56,896 1096 00:58:56,896 --> 00:58:58,320 Och sedan får vi gå till switchar. 1097 00:58:58,320 --> 00:59:32,480 1098 00:59:32,480 --> 00:59:34,660 >> OK, redo killar? 1099 00:59:34,660 --> 00:59:35,790 1100 00:59:35,790 --> 00:59:37,420 Kanske lite. 1101 00:59:37,420 --> 00:59:40,210 Så jag har gett dig ditt två alternativ, eller hur? 1102 00:59:40,210 --> 00:59:45,810 Antingen kontrollera null och returnera 0 om den är, eller faktiskt beräkna längden. 1103 00:59:45,810 --> 00:59:48,220 Så vem vill skriva kontrollera null? 1104 00:59:48,220 --> 00:59:50,100 1105 00:59:50,100 --> 00:59:51,790 Gå för det. 1106 00:59:51,790 --> 00:59:56,460 >> PUBLIK: Om parentes s är lika är lika med noll avkastning 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 Jag älskar när halva ditt problem bara söker efter null. 1111 01:00:02,320 --> 01:00:04,820 Jag vet med er sist veckan jag var som kontroll för null 1112 01:00:04,820 --> 01:00:06,630 bokstavligen varje gång. 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 >> PUBLIK: Om retur 0 är bara en rad, behöver fortfarande behöver vi klammer? 1116 01:00:12,750 --> 01:00:15,860 >> ALLISON BUCHHOLTZ-AU: Du behöver inte tekniskt behöver dem så länge du är konsekvent. 1117 01:00:15,860 --> 01:00:19,240 Det är god praxis bara att få en vana 1118 01:00:19,240 --> 01:00:21,650 att använda klammerparenteser, men tekniskt nej. 1119 01:00:21,650 --> 01:00:23,320 Du behöver inte dem för en rad. 1120 01:00:23,320 --> 01:00:26,030 Vi tenderar bara att rekommendera den för människor som börjar programmet. 1121 01:00:26,030 --> 01:00:27,740 1122 01:00:27,740 --> 01:00:30,450 >> Så nu vad vi kanske vill göra här? 1123 01:00:30,450 --> 01:00:32,222 Så nu vet vi att vår sträng är giltigt. 1124 01:00:32,222 --> 01:00:33,680 Vi vill hålla beräkna längden. 1125 01:00:33,680 --> 01:00:35,620 Vad är troligen den första Det vi vill göra? 1126 01:00:35,620 --> 01:00:38,770 1127 01:00:38,770 --> 01:00:41,276 >> PUBLIK: Skapa ett int det är längden. 1128 01:00:41,276 --> 01:00:42,150 ALLISON BUCHHOLTZ-AU: Exakt. 1129 01:00:42,150 --> 01:00:43,450 PUBLIK: Och vi vill sätta den till? 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 Okej. 1134 01:00:47,290 --> 01:00:48,750 Nu vad vill göra? 1135 01:00:48,750 --> 01:00:50,000 Detta är verkligen den största delen av den. 1136 01:00:50,000 --> 01:00:50,890 Gå för det. 1137 01:00:50,890 --> 01:00:54,370 >> PUBLIK: Så du förmodligen göra en for-loop. 1138 01:00:54,370 --> 01:01:03,150 Och sedan då när du ringer s du är att få adressen till den första, 1139 01:01:03,150 --> 01:01:05,660 du skulle börja med jag lika med 0. 1140 01:01:05,660 --> 01:01:07,980 1141 01:01:07,980 --> 01:01:15,755 Och sedan så länge x plus jag inte tillbaka slash 0. 1142 01:01:15,755 --> 01:01:17,130 ALLISON BUCHHOLTZ-AU: Noll terminator. 1143 01:01:17,130 --> 01:01:18,380 PUBLIK: Noll terminator. 1144 01:01:18,380 --> 01:01:18,890 1145 01:01:18,890 --> 01:01:21,088 Då kan du lägga till en till längd. 1146 01:01:21,088 --> 01:01:22,372 >> ALLISON BUCHHOLTZ-AU: Ja. 1147 01:01:22,372 --> 01:01:25,940 OK, låter så vänder det till mycket konkret kod. 1148 01:01:25,940 --> 01:01:27,537 Men det är den perfekta idén. 1149 01:01:27,537 --> 01:01:28,870 Det är precis vad vi gör. 1150 01:01:28,870 --> 01:01:31,910 Vi kommer att vara iteration igenom med pekaren. 1151 01:01:31,910 --> 01:01:34,590 Så vad vi vill göra är istället för en int 1152 01:01:34,590 --> 01:01:36,660 här, eftersom vi är inte hänvisar till en man. 1153 01:01:36,660 --> 01:01:42,390 Vi hänvisar till början av en sträng, börja att vara lite adress, 1154 01:01:42,390 --> 01:01:43,300 rätt? 1155 01:01:43,300 --> 01:01:44,600 >> Så vi vill ha en pekare. 1156 01:01:44,600 --> 01:01:47,610 1157 01:01:47,610 --> 01:01:52,310 Så vi kommer att ha lite röding stjärna, eftersom det motsvarar våra s, eller hur? 1158 01:01:52,310 --> 01:01:57,270 Så det här är någon gång vi initierar till början av strängen, OK? 1159 01:01:57,270 --> 01:01:58,949 Så låt oss bara kalla det i. 1160 01:01:58,949 --> 01:02:01,740 Om det är i början av strängen, Vad kommer det att tilldelas? 1161 01:02:01,740 --> 01:02:03,690 1162 01:02:03,690 --> 01:02:04,530 Inte 0. 1163 01:02:04,530 --> 01:02:06,238 Vi vill att det ska vara start av vår sträng. 1164 01:02:06,238 --> 01:02:07,170 1165 01:02:07,170 --> 01:02:09,960 Vad är inledningen på vår sträng som gavs till oss? 1166 01:02:09,960 --> 01:02:10,800 >> PUBLIK: 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å detta skapar någon ny pekare som är inledningen på vår sträng, OK? 1170 01:02:17,890 --> 01:02:19,430 1171 01:02:19,430 --> 01:02:22,777 Ett annat sätt att tänka på det är som att här är vår samling. 1172 01:02:22,777 --> 01:02:26,690 Det är vår sträng, s. 1173 01:02:26,690 --> 01:02:28,650 1174 01:02:28,650 --> 01:02:32,400 Så låt oss säga att detta är den första plats, och detta är 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 Detta är vår s, som innehar den adressen. 1179 01:02:38,535 --> 01:02:39,810 1180 01:02:39,810 --> 01:02:45,960 Och vi bara skapat en annan som heter Jag som bara hänvisar till samma sak. 1181 01:02:45,960 --> 01:02:49,437 Så de båda bara peka till början av vår sträng. 1182 01:02:49,437 --> 01:02:51,020 Detta är bara en grafisk representation. 1183 01:02:51,020 --> 01:02:53,830 1184 01:02:53,830 --> 01:02:57,100 >> Så nu vad vi vill göra är att vi vill att iterera 1185 01:02:57,100 --> 01:03:02,040 vår förutsättning för iteration genom vår sträng. 1186 01:03:02,040 --> 01:03:02,920 Nu handlar. 1187 01:03:02,920 --> 01:03:04,150 Fick att shoppa, killar. 1188 01:03:04,150 --> 01:03:06,290 1189 01:03:06,290 --> 01:03:12,390 Är vi vill behålla uppdatering förrän vi når noll terminator, eller hur? 1190 01:03:12,390 --> 01:03:14,930 Så vad skulle det se ut? 1191 01:03:14,930 --> 01:03:17,760 1192 01:03:17,760 --> 01:03:21,880 Vill vi i, eller vill vi stjärnan i är frågan? 1193 01:03:21,880 --> 01:03:26,160 1194 01:03:26,160 --> 01:03:29,255 Är noll terminator en adress eller något som ligger på en adress? 1195 01:03:29,255 --> 01:03:31,420 1196 01:03:31,420 --> 01:03:33,660 Beläget på en adress, eller hur? 1197 01:03:33,660 --> 01:03:38,420 >> Så vi behöver dereference allt som är här, för detta är bara några adress. 1198 01:03:38,420 --> 01:03:44,350 För att verkligen komma till start vi behöver dereference detta 1199 01:03:44,350 --> 01:03:46,770 så att vi faktiskt får vad som finns i denna första plats. 1200 01:03:46,770 --> 01:03:48,690 1201 01:03:48,690 --> 01:03:52,910 Så om vi gör stjärnan i, vad vi inte vill att det ska lika? 1202 01:03:52,910 --> 01:03:53,885 1203 01:03:53,885 --> 01:03:54,760 PUBLIK: Back slash? 1204 01:03:54,760 --> 01:03:57,760 1205 01:03:57,760 --> 01:03:59,260 >> ALLISON BUCHHOLTZ-AU: Det. 1206 01:03:59,260 --> 01:04:01,430 Betyder det vettigt för alla? 1207 01:04:01,430 --> 01:04:05,620 Vi måste gå in i vår sträng och se till att det inte är slutet. 1208 01:04:05,620 --> 01:04:07,200 1209 01:04:07,200 --> 01:04:08,990 Och då kan vi bara uppdatera så här. 1210 01:04:08,990 --> 01:04:09,680 Normal uppdatering. 1211 01:04:09,680 --> 01:04:11,910 1212 01:04:11,910 --> 01:04:15,070 Så länge de är met, vad behöver vi göra? 1213 01:04:15,070 --> 01:04:17,700 1214 01:04:17,700 --> 01:04:18,852 >> PUBLIK: Längd 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 Och sedan efter det att slingan slutar, vad är det vi vill återvända? 1218 01:04:25,540 --> 01:04:27,082 1219 01:04:27,082 --> 01:04:27,790 PUBLIK: Längd? 1220 01:04:27,790 --> 01:04:28,623 ALLISON BUCHHOLTZ-AU: Längd. 1221 01:04:28,623 --> 01:04:29,910 1222 01:04:29,910 --> 01:04:30,760 Där du går. 1223 01:04:30,760 --> 01:04:33,790 1224 01:04:33,790 --> 01:04:37,810 Uppenbar kött av denna är att förstå detta för slinga. 1225 01:04:37,810 --> 01:04:39,280 1226 01:04:39,280 --> 01:04:41,090 Får alla människor hur det fungerat? 1227 01:04:41,090 --> 01:04:42,460 1228 01:04:42,460 --> 01:04:44,170 Jag är glad för att gå igenom det igen. 1229 01:04:44,170 --> 01:04:48,400 >> Publik: Det andra del, så stjärnan jag där, 1230 01:04:48,400 --> 01:04:51,834 det är adressen till first-- 1231 01:04:51,834 --> 01:04:53,250 ALLISON BUCHHOLTZ-AU: Det är inte adressen. 1232 01:04:53,250 --> 01:04:54,142 Det är vad som står på. 1233 01:04:54,142 --> 01:04:55,600 PUBLIK: Det är faktiskt i det. 1234 01:04:55,600 --> 01:04:57,475 ALLISON BUCHHOLTZ-AU: Det är vad är egentligen där inne. 1235 01:04:57,475 --> 01:05:01,280 Så detta är saying-- låt mig göra detta bättre. 1236 01:05:01,280 --> 01:05:07,940 Så det här är 0x04, och jag kommer bara att säga att jag kommer att göra detta mitt namn. 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, jag vet att jag har frågesport översyn ikväll. 1241 01:05:19,080 --> 01:05:20,620 1242 01:05:20,620 --> 01:05:21,540 Massor av frågesport översyn. 1243 01:05:21,540 --> 01:05:23,500 1244 01:05:23,500 --> 01:05:26,620 Så låt oss säga den här strängen är mitt namn, Allison. 1245 01:05:26,620 --> 01:05:28,600 Lite rörigt, men det finns där. 1246 01:05:28,600 --> 01:05:33,640 Och s representerar platsen av där strängen börjar, 1247 01:05:33,640 --> 01:05:41,950 så jag kommer att göra detta real-- detta är adressen till en, 1248 01:05:41,950 --> 01:05:45,000 där strängen börjar, eller hur? 1249 01:05:45,000 --> 01:05:48,560 >> Så vad vi gör här är att vi vill använda pekare för att iterera igenom. 1250 01:05:48,560 --> 01:05:49,920 1251 01:05:49,920 --> 01:05:56,870 Så skapar vi en del pekare, i, som också är lika med början av strängen. 1252 01:05:56,870 --> 01:05:57,880 1253 01:05:57,880 --> 01:06:03,820 Och vid varje punkt, vill vi fortsätta gå igenom arrayen 1254 01:06:03,820 --> 01:06:07,570 här tills vi hit null terminator. 1255 01:06:07,570 --> 01:06:12,320 Så vi alltid vill kontrollera vad som är vid var och en av dessa adresser. 1256 01:06:12,320 --> 01:06:15,730 >> Så vi dereference i, så att första gången vi gör det vi 1257 01:06:15,730 --> 01:06:17,810 säger, OK, vad som står på adress 0x04? 1258 01:06:17,810 --> 01:06:19,060 1259 01:06:19,060 --> 01:06:19,720 Det är ett a. 1260 01:06:19,720 --> 01:06:20,660 OK, vi är bra. 1261 01:06:20,660 --> 01:06:21,770 Increment längd. 1262 01:06:21,770 --> 01:06:22,790 Gå vidare till nästa. 1263 01:06:22,790 --> 01:06:32,410 Så jag-- minns pekare ökning av storlek allt vad de pekar på. 1264 01:06:32,410 --> 01:06:35,320 Så i detta fall, eftersom det är en röding, det ska uppdateras med ett. 1265 01:06:35,320 --> 01:06:38,755 Så nu ska vi titta på 5, vilket innebär att det kommer hit. 1266 01:06:38,755 --> 01:06:39,860 1267 01:06:39,860 --> 01:06:43,440 Så det står OK, gå till 0x05. 1268 01:06:43,440 --> 01:06:44,270 Vad finns där inne? 1269 01:06:44,270 --> 01:06:44,930 Det är en l. 1270 01:06:44,930 --> 01:06:47,870 Och det kommer att fortsätta göra det tills den träffar här. 1271 01:06:47,870 --> 01:06:50,990 Och det står OK, vad som finns i oavsett adress är detta? 1272 01:06:50,990 --> 01:06:53,060 Noll terminator, OK. 1273 01:06:53,060 --> 01:06:53,870 Exit. 1274 01:06:53,870 --> 01:06:55,240 Och bara tillbaka längd. 1275 01:06:55,240 --> 01:06:56,370 1276 01:06:56,370 --> 01:06:59,800 Eftersom du behöver det är faktiskt på den adressen, inte adressen själv. 1277 01:06:59,800 --> 01:07:03,110 1278 01:07:03,110 --> 01:07:05,790 >> Det finns väldigt få platser där du faktiskt behöver adressen. 1279 01:07:05,790 --> 01:07:08,720 Merparten av tiden när du använder och det är 1280 01:07:08,720 --> 01:07:12,424 när du är först tilldela en pekare eller när 1281 01:07:12,424 --> 01:07:14,090 du passerar den till en annan funktion. 1282 01:07:14,090 --> 01:07:16,350 1283 01:07:16,350 --> 01:07:21,330 OK, alla bra där? 1284 01:07:21,330 --> 01:07:21,830 Typ av? 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 ut som vi har fick ca 12 minuter kvar, 1288 01:07:28,210 --> 01:07:31,340 så vi ska gå vidare till kanske vår sista problemet, 1289 01:07:31,340 --> 01:07:34,230 och sedan finns det någon begrepp som har kommit upp 1290 01:07:34,230 --> 01:07:36,830 under tiden kan vi snabbt gå över det. 1291 01:07:36,830 --> 01:07:42,310 >> Så byta redskap är den sista problem här, byter uttalanden. 1292 01:07:42,310 --> 01:07:44,970 1293 01:07:44,970 --> 01:07:49,450 Så ditt jobb är att skriva om det här så att den beter sig på samma 1294 01:07:49,450 --> 01:07:50,580 men använder inte switchar. 1295 01:07:50,580 --> 01:07:53,684 1296 01:07:53,684 --> 01:07:54,666 Kritaktiga händer. 1297 01:07:54,666 --> 01:08:11,630 1298 01:08:11,630 --> 01:08:13,420 Så några frågor om detta utanför bat? 1299 01:08:13,420 --> 01:08:15,420 1300 01:08:15,420 --> 01:08:15,920 Inget? 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 Förstår alla att om fall har inte något efter det, 1304 01:08:22,170 --> 01:08:25,029 Det innebär att det ska Följ nästa steg? 1305 01:08:25,029 --> 01:08:28,200 Så fall 1 och 2 i detta fall göra exakt samma sak. 1306 01:08:28,200 --> 01:08:31,153 1307 01:08:31,153 --> 01:08:32,444 Ibland en punkt av förvirring. 1308 01:08:32,444 --> 01:09:32,700 1309 01:09:32,700 --> 01:09:33,488 >> Okej. 1310 01:09:33,488 --> 01:09:34,404 Någon som har några idéer? 1311 01:09:34,404 --> 01:09:36,364 1312 01:09:36,364 --> 01:09:36,864 Yeah? 1313 01:09:36,864 --> 01:09:40,120 >> PUBLIK: Så du kan bara göra om uttalanden. 1314 01:09:40,120 --> 01:09:41,140 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1315 01:09:41,140 --> 01:09:42,880 Så vad är vår första? 1316 01:09:42,880 --> 01:09:48,120 >> Publik: Om n är lika är lika med 1, och de två raderna för eller n är lika med 1317 01:09:48,120 --> 01:09:51,059 är lika med 2, skriv sedan ut litet. 1318 01:09:51,059 --> 01:09:57,760 1319 01:09:57,760 --> 01:09:59,520 Och då kan man göra annars om? 1320 01:09:59,520 --> 01:10:02,160 Eller så kan du bara göra en om? 1321 01:10:02,160 --> 01:10:03,650 >> ALLISON BUCHHOLTZ-AU: Du kan göra annars om? 1322 01:10:03,650 --> 01:10:05,274 >> PUBLIK: Skulle det någon roll om du gör om det? 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 Har anyone-- så, du kommer att få samma utgång 1325 01:10:10,160 --> 01:10:13,930 om du använder bara ifs kontra om du använder annars ifs. 1326 01:10:13,930 --> 01:10:17,090 Kan ni komma på orsaken varför du kanske vill använda en annan 1327 01:10:17,090 --> 01:10:18,680 Om kontra en hel del av ifs? 1328 01:10:18,680 --> 01:10:20,260 1329 01:10:20,260 --> 01:10:21,510 Måste med effektivitet. 1330 01:10:21,510 --> 01:10:22,225 Yeah? 1331 01:10:22,225 --> 01:10:24,783 >> PUBLIK: Det skulle kontrollera alla ifs varje gång. 1332 01:10:24,783 --> 01:10:26,076 1333 01:10:26,076 --> 01:10:28,110 >> ALLISON BUCHHOLTZ-AU: Så även om slog det här första, 1334 01:10:28,110 --> 01:10:29,880 det skulle gå på kontroll varannan. 1335 01:10:29,880 --> 01:10:36,690 Så du vill använda om annans ifs i fall där endast en av dem någonsin kommer att gälla. 1336 01:10:36,690 --> 01:10:39,380 Så ömsesidig uteslutning är vad vi brukar säga. 1337 01:10:39,380 --> 01:10:41,410 1338 01:10:41,410 --> 01:10:46,550 Om du har ett gäng ifs, betyder det att kanske mer än en av dem 1339 01:10:46,550 --> 01:10:49,630 frågor, och kanske mer än en av dem kan vara sant. 1340 01:10:49,630 --> 01:10:51,910 Och du vill ha dem båda att köra om de är sanna. 1341 01:10:51,910 --> 01:10:57,180 Om du bara vill ha en av dem att arbeta i dessa ömsesidigt uteslutande fall 1342 01:10:57,180 --> 01:11:00,790 du vill använda annat om det på grund det hela har att göra med effektivitet. 1343 01:11:00,790 --> 01:11:05,350 Din kod är bara bättre utformad om man håller sig till denna praxis. 1344 01:11:05,350 --> 01:11:07,330 Så i detta fall kommer vi att ha en annan om. 1345 01:11:07,330 --> 01:11:09,080 Och detta skulle vara? 1346 01:11:09,080 --> 01:11:11,890 >> PUBLIK: n är lika 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 Tryckmedium. 1350 01:11:20,445 --> 01:11:25,190 1351 01:11:25,190 --> 01:11:29,930 Och sedan i förra fall, vad har vi? 1352 01:11:29,930 --> 01:11:31,495 Else annars om? 1353 01:11:31,495 --> 01:11:32,120 Publik: Else. 1354 01:11:32,120 --> 01:11:33,450 1355 01:11:33,450 --> 01:11:37,900 >> ALLISON BUCHHOLTZ-AU: Gör vi want-- Du vill annars om eftersom vi har konkreta fall. 1356 01:11:37,900 --> 01:11:39,270 Det är inte typ av en fångst alla. 1357 01:11:39,270 --> 01:11:44,247 Om du hade en standard i en switch-- minns i växlar du kan ha fall 1358 01:11:44,247 --> 01:11:45,330 och då har du standard. 1359 01:11:45,330 --> 01:11:48,760 Om du hade en standard, det är typ av din annans uttalande där. 1360 01:11:48,760 --> 01:11:52,180 Men om det har endast fall, det betyder att du behöver 1361 01:11:52,180 --> 01:11:54,315 att kontrollera om det är var och en av dem. 1362 01:11:54,315 --> 01:11:57,755 Så i detta fall, skulle det 4 eller 5. 1363 01:11:57,755 --> 01:12:00,480 1364 01:12:00,480 --> 01:12:01,450 Vi vill ha en utskrift av. 1365 01:12:01,450 --> 01:12:02,990 1366 01:12:02,990 --> 01:12:03,630 Det är stort. 1367 01:12:03,630 --> 01:12:06,640 1368 01:12:06,640 --> 01:12:07,509 Och där du går. 1369 01:12:07,509 --> 01:12:08,800 Och det skulle vara ditt program. 1370 01:12:08,800 --> 01:12:11,890 1371 01:12:11,890 --> 01:12:17,050 >> Så i detta fall, om vi hade en standard något, 1372 01:12:17,050 --> 01:12:20,470 Vi skulle ha en annan i vad det ville att vi skulle göra. 1373 01:12:20,470 --> 01:12:23,365 Så det är en bra skillnad att veta, att förstå. 1374 01:12:23,365 --> 01:12:25,368 1375 01:12:25,368 --> 01:12:27,790 Betyder det hjälp med switchar för dig? 1376 01:12:27,790 --> 01:12:28,800 Perfect. 1377 01:12:28,800 --> 01:12:29,390 Okej. 1378 01:12:29,390 --> 01:12:31,320 1379 01:12:31,320 --> 01:12:33,340 >> Vi har ungefär åtta minuter kvar. 1380 01:12:33,340 --> 01:12:37,090 Vill ni ha något andra höga nivå begrepp? 1381 01:12:37,090 --> 01:12:38,720 Frågor i allmänhet? 1382 01:12:38,720 --> 01:12:39,220 Ja? 1383 01:12:39,220 --> 01:12:42,860 >> PUBLIK: Jag hade en fråga om en av dem 1384 01:12:42,860 --> 01:12:46,257 det var om den slumpmässiga nummer generator på frågesport noll. 1385 01:12:46,257 --> 01:12:47,340 ALLISON BUCHHOLTZ-AU: Åh, en som. 1386 01:12:47,340 --> 01:12:51,460 Att man är en annan där det är mer matte than-- ja. 1387 01:12:51,460 --> 01:12:53,800 1388 01:12:53,800 --> 01:12:59,452 Lösningen på that-- även jag när Jag ser det, jag gillar det som är här. 1389 01:12:59,452 --> 01:13:00,590 >> PUBLIK: 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 är konstigt tycker jag. 1392 01:13:05,310 --> 01:13:07,260 1393 01:13:07,260 --> 01:13:11,630 Så i princip du vill att använda drand48, vilket 1394 01:13:11,630 --> 01:13:15,420 kommer att ge dig några tal mellan 0 och 1. 1395 01:13:15,420 --> 01:13:21,200 Och du vill använda den så att du på något sätt få en-- 1396 01:13:21,200 --> 01:13:26,690 och det är mycket mer av ett matematiskt problem för mig än jag tror att en CS problem. 1397 01:13:26,690 --> 01:13:29,040 1398 01:13:29,040 --> 01:13:37,845 >> Det sätt som du gör det-- och Ibland kommer det bara vara så. 1399 01:13:37,845 --> 01:13:39,340 1400 01:13:39,340 --> 01:13:41,090 Återigen, dessa är de fall där det är typ 1401 01:13:41,090 --> 01:13:46,310 som att skriva vad du kan en del av krediten. 1402 01:13:46,310 --> 01:13:47,800 1403 01:13:47,800 --> 01:13:51,510 Så om vi vill ha en återgång, vi vet att vi är 1404 01:13:51,510 --> 01:13:54,182 kommer att använda drand48 på något sätt, eller hur? 1405 01:13:54,182 --> 01:13:55,640 Så varför inte vi bara krafsa ner det. 1406 01:13:55,640 --> 01:13:58,286 1407 01:13:58,286 --> 01:13:59,410 Vi använder den på något sätt. 1408 01:13:59,410 --> 01:14:00,780 1409 01:14:00,780 --> 01:14:04,190 Det sätt som de har ni använder det är 1410 01:14:04,190 --> 01:14:08,175 så här, som jag ska försöka förklara. 1411 01:14:08,175 --> 01:14:10,200 1412 01:14:10,200 --> 01:14:15,340 >> Så i princip vad som händer här beror på att det är mellan 0 och 1, 1413 01:14:15,340 --> 01:14:19,300 Vad du gör är att du multiplicera by-- detta är mycket en mattefråga. 1414 01:14:19,300 --> 01:14:22,010 Bara fullständiga ansvarsfriskrivning, det här helt en mattefråga. 1415 01:14:22,010 --> 01:14:23,990 Vad du gör är på grund av 0 och 1 och du 1416 01:14:23,990 --> 01:14:26,460 vill att det ska vara inom detta område, du faktiskt 1417 01:14:26,460 --> 01:14:29,360 räkna ut hur stor utbudet är, och sedan 1418 01:14:29,360 --> 01:14:32,710 du i princip skala upp, vilket är vad denna gör. 1419 01:14:32,710 --> 01:14:39,050 >> b minus ger dig det intervallet, det Skillnaden mellan dessa siffror. 1420 01:14:39,050 --> 01:14:44,040 Du kan föröka sig mellan 0 och 1, och sedan lägga till en rättvis 1421 01:14:44,040 --> 01:14:48,870 innebär att din trappa upp så att det är mellan a och b, 1422 01:14:48,870 --> 01:14:52,377 som jag inte riktigt gillar det här problemet. 1423 01:14:52,377 --> 01:14:58,380 1424 01:14:58,380 --> 01:15:01,790 Som jag sa, det här testet avser att omfatta 1425 01:15:01,790 --> 01:15:04,110 människor som är mindre bekväm, någonstans däremellan, 1426 01:15:04,110 --> 01:15:05,070 och mer bekväm. 1427 01:15:05,070 --> 01:15:07,550 Så om de gjorde det så att det var något 1428 01:15:07,550 --> 01:15:10,050 att alla på mindre bekväm plats skulle få, 1429 01:15:10,050 --> 01:15:12,259 vi skulle ha alldeles för många människor dödat fulländar, 1430 01:15:12,259 --> 01:15:13,925 och bekvämare skulle bli uttråkad. 1431 01:15:13,925 --> 01:15:14,980 1432 01:15:14,980 --> 01:15:18,970 >> Så de alltid har dessa typ av hjärn teaser frågor 1433 01:15:18,970 --> 01:15:22,695 som är tänkta att vara lite svårare att ta lite kreativt tänkande. 1434 01:15:22,695 --> 01:15:25,030 1435 01:15:25,030 --> 01:15:27,790 När du ser dem, inte får alltför illa till. 1436 01:15:27,790 --> 01:15:31,720 Jag skulle definitivt säga flip via din frågesport först. 1437 01:15:31,720 --> 01:15:35,020 Itu med problemen att du vet att du kan, 1438 01:15:35,020 --> 01:15:38,480 eftersom det inte finns någon användning fastnar på ett problem när det finns tre 1439 01:15:38,480 --> 01:15:42,090 eller fyra eller fem på sidan Efter det kan du enkelt göra. 1440 01:15:42,090 --> 01:15:45,331 1441 01:15:45,331 --> 01:15:48,520 >> PUBLIK: Varför är det ni multiplicera det med sortimentet? 1442 01:15:48,520 --> 01:15:54,935 >> ALLISON BUCHHOLTZ-AU: Du multiplicerar det intervall som du veta-- det är som hur mycket efter en 1443 01:15:54,935 --> 01:15:55,485 vill du ha? 1444 01:15:55,485 --> 01:15:57,840 1445 01:15:57,840 --> 01:16:02,130 Så du kan tänka på, eftersom det returnerar ett tal mellan 0 och 1, 1446 01:16:02,130 --> 01:16:03,890 Du kan se det som en procentsats. 1447 01:16:03,890 --> 01:16:12,195 Så det är i princip säger om vi har vårt nummer linje här, en är här, 1448 01:16:12,195 --> 01:16:13,840 och b är här. 1449 01:16:13,840 --> 01:16:19,170 Du är som hur mycket förbi en är det? 1450 01:16:19,170 --> 01:16:20,010 Är allt vi gör. 1451 01:16:20,010 --> 01:16:24,920 Så du bara ber om det andel av detta intervall, som 1452 01:16:24,920 --> 01:16:26,170 är vad det ger dig. 1453 01:16:26,170 --> 01:16:30,915 Och då du i princip bara skala upp genom att lägga till en. 1454 01:16:30,915 --> 01:16:32,302 Det är en mattehjärngymnastik. 1455 01:16:32,302 --> 01:16:35,400 1456 01:16:35,400 --> 01:16:39,060 >> Om det fanns någon sista minuten råd, jag skulle säga flip igenom frågorna, 1457 01:16:39,060 --> 01:16:41,660 räkna ut vilka som du vet att liksom, åh jag fick det här. 1458 01:16:41,660 --> 01:16:43,196 1459 01:16:43,196 --> 01:16:45,820 Nästan säkert kommer de att vara frågor som du inte känner 1460 01:16:45,820 --> 01:16:49,580 eller att du kommer att ha tid för, så slog dina styrkor, OK? 1461 01:16:49,580 --> 01:16:50,990 Ni kommer att stora. 1462 01:16:50,990 --> 01:16:52,740 Det finns en hel del frågor för en anledning, 1463 01:16:52,740 --> 01:16:57,140 så att du har tid att slags har möjlighet 1464 01:16:57,140 --> 01:16:59,330 att visa vad du är riktigt bra på. 1465 01:16:59,330 --> 01:17:02,370 Så det är OK om du är inte bra på allt. 1466 01:17:02,370 --> 01:17:03,371 Spela på dina styrkor. 1467 01:17:03,371 --> 01:17:03,870 Ja? 1468 01:17:03,870 --> 01:17:06,536 >> PUBLIK: Så är det att gå till returnera något som stympad? 1469 01:17:06,536 --> 01:17:10,810 1470 01:17:10,810 --> 01:17:15,015 Ja, det kommer, eftersom drand avkastning mellan 0 och 1. 1471 01:17:15,015 --> 01:17:17,459 1472 01:17:17,459 --> 01:17:19,250 Det kommer tillbaka en int, eftersom det ska stympa 1473 01:17:19,250 --> 01:17:22,933 När vi lägger till en eller multiplicera med den. 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 Alla sista minuten frågor? 1477 01:17:29,525 --> 01:17:31,310 1478 01:17:31,310 --> 01:17:32,615 >> Ni kommer att göra bra. 1479 01:17:32,615 --> 01:17:34,440 Du kommer att vara fantastiska. 1480 01:17:34,440 --> 01:17:37,100 Och även om det inte, det kommer vara godis här nästa vecka. 1481 01:17:37,100 --> 01:17:39,040 1482 01:17:39,040 --> 01:17:40,020 Och jag kommer att älska dig. 1483 01:17:40,020 --> 01:17:41,270 Jag älskar er oavsett. 1484 01:17:41,270 --> 01:17:42,550 1485 01:17:42,550 --> 01:17:43,930 Okej, alla, lycka till. 1486 01:17:43,930 --> 01:17:44,680 Ha en bra tid. 1487 01:17:44,680 --> 01:17:45,620 1488 01:17:45,620 --> 01:17:46,620 Du kommer att bli bra. 1489 01:17:46,620 --> 01:17:47,370 Och vet du vad? 1490 01:17:47,370 --> 01:17:50,310 Under två dagar det kommer vara över, medan jag 1491 01:17:50,310 --> 01:17:53,675 har två midterms på torsdag, så åtminstone ni kommer att ske. 1492 01:17:53,675 --> 01:17:56,550 Okej, jag ska se er nästa vecka. 1493 01:17:56,550 --> 01:17:58,208