1 00:00:00,000 --> 00:00:02,418 >> [Musikken afspilles] 2 00:00:02,418 --> 00:00:10,542 3 00:00:10,542 --> 00:00:12,000 ALLISON Buchholtz-AU: Hej alle. 4 00:00:12,000 --> 00:00:15,640 Velkommen til din første officiel CS50 sektion. 5 00:00:15,640 --> 00:00:19,507 Som du kan se, dette er sektion CS50-lignende, bare 6 00:00:19,507 --> 00:00:20,840 at trække op vores dagsorden for i dag. 7 00:00:20,840 --> 00:00:23,990 Så, hvem er jeg, som jeg er sikker du er alle spekulerer. 8 00:00:23,990 --> 00:00:25,514 Jeg er din TF. 9 00:00:25,514 --> 00:00:27,930 Jeg er ikke bare en tilfældig elev hvem udgive din TF. 10 00:00:27,930 --> 00:00:31,190 >> Og jeg har tænkt mig at gå igennem slags har sektioner vil flyde, 11 00:00:31,190 --> 00:00:34,900 forventninger, vi har, ressourcer, så videre og så videre. 12 00:00:34,900 --> 00:00:39,190 Vi kommer til at tale om arrays, ASCII funktioner, kommandolinje-argumenter, 13 00:00:39,190 --> 00:00:42,020 og det er ikke her, men Jeg vil også være at hjælpe 14 00:00:42,020 --> 00:00:45,054 du slags tænke igennem din næste pset for denne uge. 15 00:00:45,054 --> 00:00:46,720 Som jeg er sikker på du vil alle sætte pris på. 16 00:00:46,720 --> 00:00:48,190 17 00:00:48,190 --> 00:00:53,390 >> Så først question-- hvem er jeg, udover din overstrømmende TF her. 18 00:00:53,390 --> 00:00:55,390 Jeg er Alison Buchholtz-Au. 19 00:00:55,390 --> 00:00:57,970 Dette er mit andet år TFing CS50. 20 00:00:57,970 --> 00:01:00,570 Jeg også TF CS51 i foråret. 21 00:01:00,570 --> 00:01:03,930 Du vil måske se igen der hvis du beslutter at tage det. 22 00:01:03,930 --> 00:01:07,370 Jeg er også en PAF, så enhver Freshmen-- og hvis du ikke er en freshman, 23 00:01:07,370 --> 00:01:09,980 dette er mit tredje år som en rådgivning fyr. 24 00:01:09,980 --> 00:01:13,630 Jeg er meget velbevandret i rådgive dig om livet og kurser 25 00:01:13,630 --> 00:01:16,549 inden for CS og ikke inden for CS. 26 00:01:16,549 --> 00:01:18,090 Jeg er en Computer Science Concentrator. 27 00:01:18,090 --> 00:01:20,800 Jeg er en senior i Adams House, bedste hus. 28 00:01:20,800 --> 00:01:22,430 29 00:01:22,430 --> 00:01:26,050 Og før jeg skiftede til CS min Sophomore Spring, 30 00:01:26,050 --> 00:01:27,640 Jeg var faktisk en biomedicinsk ingeniør. 31 00:01:27,640 --> 00:01:29,020 Jeg skulle til at gå til Med skole. 32 00:01:29,020 --> 00:01:30,530 Jeg skulle være et traume kirurg. 33 00:01:30,530 --> 00:01:33,000 Og det har helt ændret sig, siden jeg tog CS50. 34 00:01:33,000 --> 00:01:34,250 35 00:01:34,250 --> 00:01:36,310 Jeg tog naturligvis min Sophomore Fall. 36 00:01:36,310 --> 00:01:38,920 Det var min første introduktion til CS nogensinde. 37 00:01:38,920 --> 00:01:44,104 Jeg var en af ​​de 78% af jer, der havde nul erfaring kommer ind, 38 00:01:44,104 --> 00:01:45,520 og det ændrede fuldstændig mit liv. 39 00:01:45,520 --> 00:01:49,820 Og nu arbejder jeg på Microsoft, og din dejlige TF. 40 00:01:49,820 --> 00:01:53,500 Og CS50 er formentlig en af de bedste oplevelser 41 00:01:53,500 --> 00:01:56,210 at jeg har haft her på Harvard-- både under klassen 42 00:01:56,210 --> 00:01:59,040 og være i stand til at hjælpe lære de studerende som dig. 43 00:01:59,040 --> 00:02:01,410 >> Så jeg er virkelig spændt at du er alle her. 44 00:02:01,410 --> 00:02:04,270 Hvis du kom i sen, der er slik, 45 00:02:04,270 --> 00:02:07,227 som du skal føle fri til at komme grab, eller sende 46 00:02:07,227 --> 00:02:08,560 en anden til at få fat i det for dig. 47 00:02:08,560 --> 00:02:09,399 det er OK. 48 00:02:09,399 --> 00:02:10,440 Jeg ønsker ikke at spise det. 49 00:02:10,440 --> 00:02:13,350 Mit værelse har nok chokolade, så y'all bør forsøge og afslutte det. 50 00:02:13,350 --> 00:02:16,730 Jeg ved, der er 100 stykker, men ligesom, 4:00 på en mandag, 51 00:02:16,730 --> 00:02:19,000 Jeg tror, ​​alle kunne bruge nogle sukker. 52 00:02:19,000 --> 00:02:21,750 >> Så alle jer, der er officielt i min afdeling 53 00:02:21,750 --> 00:02:24,700 bør har fået en e-mail fra mig med mit telefonnummer, 54 00:02:24,700 --> 00:02:29,920 email address-- velkommen til at tilføje mig på Gchat, er du velkommen til at tilføje mig på Facebook, 55 00:02:29,920 --> 00:02:33,360 og også for resten af ​​jer, du kan e-maile mig lige her. 56 00:02:33,360 --> 00:02:34,450 Der er to H'er. 57 00:02:34,450 --> 00:02:37,090 Alle altid gør ligesom to L's eller to C'er. 58 00:02:37,090 --> 00:02:38,260 To H'er i efternavnet. 59 00:02:38,260 --> 00:02:41,800 Ellers er det kommer til at hoppe, og Jeg har ikke tænkt mig at få din e-mail. 60 00:02:41,800 --> 00:02:46,400 >> Så velkommen til at kontakte mig, at kontakte mig til enhver tid. 61 00:02:46,400 --> 00:02:51,440 Jeg kan ikke komme tilbage til dig inden for 24 minutter 62 00:02:51,440 --> 00:02:53,760 men jeg lover at komme tilbage til dig inden for 24 timer. 63 00:02:53,760 --> 00:02:54,900 64 00:02:54,900 --> 00:02:58,067 Hvis du kalder mig en halv time før din pset skyldes, at du er ligesom, 65 00:02:58,067 --> 00:02:59,650 Jeg har ingen idé om, hvad jeg laver Allison. 66 00:02:59,650 --> 00:03:00,160 Hjælp mig. 67 00:03:00,160 --> 00:03:04,049 Jeg har tænkt mig at berolige dig ned, men i slutningen af ​​dagen, 68 00:03:04,049 --> 00:03:07,340 hvis du ringer mig en halv time før din pset skyldes med intet skrevet, 69 00:03:07,340 --> 00:03:11,570 Jeg har tænkt mig at være ligesom, godt, måske det er tid til at bruge den sene dag. 70 00:03:11,570 --> 00:03:15,215 Så jeg vil svare på alle dine anmodninger i en meget rettidigt. 71 00:03:15,215 --> 00:03:16,482 72 00:03:16,482 --> 00:03:18,190 Min telefon er normalt knyttet til mine hænder. 73 00:03:18,190 --> 00:03:21,530 Jeg reagerer typisk meget hurtigere end 24 timer, 74 00:03:21,530 --> 00:03:25,650 men jeg kan kun garanti en 24 timers reaktion. 75 00:03:25,650 --> 00:03:26,580 >> Ok. 76 00:03:26,580 --> 00:03:28,410 Så hvorfor er vi her? 77 00:03:28,410 --> 00:03:32,160 Også, hvis du har spørgsmål på enhver tid, så lad mig det vide. 78 00:03:32,160 --> 00:03:32,780 Jeg taler meget. 79 00:03:32,780 --> 00:03:35,320 Jeg taler hurtigt, men vær velkommen til at afbryde mig. 80 00:03:35,320 --> 00:03:36,980 Det giver mig vejrtrækning værelse. 81 00:03:36,980 --> 00:03:38,159 82 00:03:38,159 --> 00:03:40,200 Så sektioner er en tid for os at virkelig bare dykke 83 00:03:40,200 --> 00:03:44,270 i, få nogle hands-on erfaring, at gå gennem emnerne, vi nævnte 84 00:03:44,270 --> 00:03:49,760 i klassen eller i undervisningsmaterialer, som anbefaler vi at du fyre online. 85 00:03:49,760 --> 00:03:52,980 Og vi vil faktisk gå igennem nogle af disse ressourcer i en bit. 86 00:03:52,980 --> 00:03:54,300 87 00:03:54,300 --> 00:03:57,400 >> Så nogle noter om sektion support. 88 00:03:57,400 --> 00:04:00,250 CS50-- en af ​​ting, der gør det en af ​​mine foretrukne klasser 89 00:04:00,250 --> 00:04:02,510 er følelsen af, at du aldrig er alene. 90 00:04:02,510 --> 00:04:05,430 Vi har en stab på over 100 mennesker, der er her for at hjælpe dig. 91 00:04:05,430 --> 00:04:08,080 Vi har kontortid Mandag til torsdag. 92 00:04:08,080 --> 00:04:13,230 Så der er så mange mennesker, som elsker klassen lige så meget som jeg gør 93 00:04:13,230 --> 00:04:15,750 og hvem er virkelig her fordi de ønsker at være her. 94 00:04:15,750 --> 00:04:19,390 De fleste af os er studerende, og dette er ligesom en femte klasse ud 95 00:04:19,390 --> 00:04:20,390 til resten af ​​vores arbejde. 96 00:04:20,390 --> 00:04:22,723 >> Og det er en masse arbejde, men Vi gør det, fordi vi elsker det, 97 00:04:22,723 --> 00:04:25,600 og vi virkelig elsker at lære dig og hjælpe dele vores begejstring 98 00:04:25,600 --> 00:04:27,260 for dette emne, og denne klasse. 99 00:04:27,260 --> 00:04:28,490 Så skal du tage fordel. 100 00:04:28,490 --> 00:04:29,370 Kom tale til os. 101 00:04:29,370 --> 00:04:33,034 Jeg bliver ensom, når mine elever ikke tale med mig, så hvis du ønsker, 102 00:04:33,034 --> 00:04:33,950 komme hænge ud med mig. 103 00:04:33,950 --> 00:04:35,200 Det vil være stor. 104 00:04:35,200 --> 00:04:37,400 >> Så sektion er naturligvis en af ​​dine største ting. 105 00:04:37,400 --> 00:04:41,770 Vi vil gå gennem ting at du har lært i foredrag, 106 00:04:41,770 --> 00:04:44,100 gøre nogle korte eksempler når vi har tid, 107 00:04:44,100 --> 00:04:46,187 og generelt slags få en idé om ting 108 00:04:46,187 --> 00:04:48,270 du bør tænke om på dit problem indstillet. 109 00:04:48,270 --> 00:04:49,540 110 00:04:49,540 --> 00:04:53,591 Shorts-- hvor mange mennesker der rent faktisk set videoen fra din scratch 111 00:04:53,591 --> 00:04:54,090 kort? 112 00:04:54,090 --> 00:04:55,460 113 00:04:55,460 --> 00:04:57,390 Nogen genkende mig? 114 00:04:57,390 --> 00:04:59,720 Så dem er meget stor. 115 00:04:59,720 --> 00:05:01,210 Bør du helt sikkert se dem. 116 00:05:01,210 --> 00:05:02,880 En masse arbejde er blevet lagt i dem. 117 00:05:02,880 --> 00:05:06,690 Og de er bare beregnet til at være bide stykker på størrelse for dig bare at se 118 00:05:06,690 --> 00:05:09,760 for tre eller fire minutter og få et bedre forståelse af et koncept. 119 00:05:09,760 --> 00:05:11,147 120 00:05:11,147 --> 00:05:12,980 Walk throughs-- hvordan mange mennesker har set 121 00:05:12,980 --> 00:05:14,880 walk-through til tidligere? 122 00:05:14,880 --> 00:05:16,240 Zamyla er fantastiske, højre? 123 00:05:16,240 --> 00:05:18,100 Ligesom, jeg ville ønske, jeg var Zamyla undertiden. 124 00:05:18,100 --> 00:05:19,650 125 00:05:19,650 --> 00:05:21,640 Så helt sikkert bruge dine walk-through. 126 00:05:21,640 --> 00:05:25,070 Hun vil bryde det ned i små, mundrette stykker. 127 00:05:25,070 --> 00:05:28,079 Og når du har disse enorme specifikationer fra dine problemet sæt, 128 00:05:28,079 --> 00:05:30,870 det kommer til at være virkelig vigtigt at være i stand til at bare finde et sted 129 00:05:30,870 --> 00:05:32,600 at starte og arbejde langsomt gennem det. 130 00:05:32,600 --> 00:05:33,610 131 00:05:33,610 --> 00:05:40,260 >> Okay, vi har også Study50, som er study50.harvard.edu, tror jeg. 132 00:05:40,260 --> 00:05:42,270 Du kan bare Google studere, og det vil komme op. 133 00:05:42,270 --> 00:05:45,750 Dette er en af ​​de bedste ressourcer vi har. 134 00:05:45,750 --> 00:05:49,800 Det er PowerPoints med noter og øve problemer for dig 135 00:05:49,800 --> 00:05:52,430 med løsninger, som du kan faktisk gå igennem. 136 00:05:52,430 --> 00:05:57,000 Så hvis du nogensinde ønsker mere praksis, mere, end vi gør i sektioner eller mere 137 00:05:57,000 --> 00:06:00,700 end dine problemet sæt, dette er virkelig et sted, jeg opfordre dig til at gå. 138 00:06:00,700 --> 00:06:03,590 Det blev bygget sidste sommer ved nogle af mine rigtig gode venner. 139 00:06:03,590 --> 00:06:04,480 Og det er forbløffende. 140 00:06:04,480 --> 00:06:05,540 141 00:06:05,540 --> 00:06:08,670 I virkeligheden en masse af dias at jeg skal bruge for sektion 142 00:06:08,670 --> 00:06:10,190 vil komme fra Study50. 143 00:06:10,190 --> 00:06:12,000 >> Så en masse af TF'er bruge det. 144 00:06:12,000 --> 00:06:13,920 Og endelig, da jeg ovennævnte, kontortid. 145 00:06:13,920 --> 00:06:15,836 Hvis du har problemer med lektier, er du 146 00:06:15,836 --> 00:06:18,270 har problemer med en koncept, kommer til kontortid. 147 00:06:18,270 --> 00:06:20,190 Gå tidligt i uge, hvis du kan. 148 00:06:20,190 --> 00:06:23,130 Komme ud til quad, fordi det er slags langt. 149 00:06:23,130 --> 00:06:24,780 Ingen kan lide at gå derude. 150 00:06:24,780 --> 00:06:27,090 Men det er til din fordel, fordi så er du 151 00:06:27,090 --> 00:06:29,580 kommer til at have alle disse TFS [Uhørligt] omgiver dig. 152 00:06:29,580 --> 00:06:31,920 Og især nu, Blot et tip, torsdage 153 00:06:31,920 --> 00:06:35,310 er meget chill lige nu i Mather fordi dine psets 154 00:06:35,310 --> 00:06:36,577 forfalder om torsdagen. 155 00:06:36,577 --> 00:06:38,410 Og vide ønsker at bruge dine sene dage endnu. 156 00:06:38,410 --> 00:06:40,030 >> Så hvis du har problemer med begreber, 157 00:06:40,030 --> 00:06:41,780 der er masser af TF'er der er der for at hjælpe dig. 158 00:06:41,780 --> 00:06:43,196 Så kom ud til Mather på torsdag. 159 00:06:43,196 --> 00:06:45,280 Hvis du ønsker at se mig, Jeg har tænkt mig at være der. 160 00:06:45,280 --> 00:06:48,870 Jeg typisk gøre mit hjemmearbejde, fordi ingen ønsker min hjælp. 161 00:06:48,870 --> 00:06:50,260 Så kom og se os. 162 00:06:50,260 --> 00:06:51,460 163 00:06:51,460 --> 00:06:52,440 >> Mød os halvvejs. 164 00:06:52,440 --> 00:06:55,400 Så hvor mange mennesker har deltaget foredrag eller set det online? 165 00:06:55,400 --> 00:06:56,570 166 00:06:56,570 --> 00:06:59,140 Hvor mange mennesker gik til super sektion i sidste uge? 167 00:06:59,140 --> 00:07:00,171 168 00:07:00,171 --> 00:07:00,670 Cool. 169 00:07:00,670 --> 00:07:02,190 Det er faktisk et rimeligt antal. 170 00:07:02,190 --> 00:07:05,425 Hvor mange af jer har læst din spec for denne uge, for din pset? 171 00:07:05,425 --> 00:07:07,081 172 00:07:07,081 --> 00:07:08,461 Ooh, jeg er stolt af jer! 173 00:07:08,461 --> 00:07:09,335 Mere slik for y'all. 174 00:07:09,335 --> 00:07:11,070 175 00:07:11,070 --> 00:07:13,280 >> Godt, så hvad vi mener "Møde os halvvejs," er 176 00:07:13,280 --> 00:07:16,440 at det afsnit er virkelig kun vil være super nyttige for dig 177 00:07:16,440 --> 00:07:19,810 hvis du kommer i at have læst din specifikation for din pset. 178 00:07:19,810 --> 00:07:23,859 Fordi når jeg går igennem en oversigt af ting, du bør være på udkig efter, 179 00:07:23,859 --> 00:07:25,650 det kommer ikke til at gøre så meget mening, hvis du 180 00:07:25,650 --> 00:07:28,358 ved ikke hvad dit problem sæt vil bede dig om at gøre. 181 00:07:28,358 --> 00:07:29,020 182 00:07:29,020 --> 00:07:32,590 >> Hvis du ikke kommer til afsnittet, naturligvis Jeg kan ikke være så nyttige for dig. 183 00:07:32,590 --> 00:07:36,600 Jeg har ikke tænkt mig at tage det personligt, hvis behøver du ikke komme til min afdeling lige nu, 184 00:07:36,600 --> 00:07:38,570 men absolut bør du. 185 00:07:38,570 --> 00:07:40,090 Hvis du ikke kan se dem online. 186 00:07:40,090 --> 00:07:41,230 187 00:07:41,230 --> 00:07:42,519 De er der for en grund. 188 00:07:42,519 --> 00:07:43,560 Mine vil være lige der. 189 00:07:43,560 --> 00:07:44,187 190 00:07:44,187 --> 00:07:47,270 Som du bemærker, er vi ved at blive optaget, så det vil være lige der for jer. 191 00:07:47,270 --> 00:07:49,110 192 00:07:49,110 --> 00:07:51,570 Så godt, vil lectures-- det er selvfølgelig 193 00:07:51,570 --> 00:07:53,790 hvor du får den start af dit materiale her. 194 00:07:53,790 --> 00:07:57,430 Så jeg vil helt sikkert forsøge og hjælpe dig så meget som jeg kan, 195 00:07:57,430 --> 00:07:58,840 men jeg kan kun møde dig hidtil. 196 00:07:58,840 --> 00:08:01,220 Du er nødt til at slags møde os halvvejs. 197 00:08:01,220 --> 00:08:04,050 >> Grading-- så, alle jer der fik en mail fra mig, 198 00:08:04,050 --> 00:08:05,445 du er min officielle sektion. 199 00:08:05,445 --> 00:08:06,470 200 00:08:06,470 --> 00:08:08,120 Jeg vil klassificering dine psets. 201 00:08:08,120 --> 00:08:12,870 Og jeg vil bare sige, én ting, du bør virkelig være opmærksomme på 202 00:08:12,870 --> 00:08:13,820 er kommentarerne. 203 00:08:13,820 --> 00:08:17,390 Kommentarerne er ofte mere anvendelige end den faktiske score, vi giver dig. 204 00:08:17,390 --> 00:08:19,890 Og kommentarerne er faktisk hvor jeg bruger en masse af min tid 205 00:08:19,890 --> 00:08:20,770 når jeg er sortering. 206 00:08:20,770 --> 00:08:22,700 Så jeg ville sætte pris på det, hvis du har læst dem. 207 00:08:22,700 --> 00:08:26,990 Og de er faktisk, hvordan du vil at lære mere om design og stil 208 00:08:26,990 --> 00:08:29,860 og ting, der er en lidt mindre klippe og tørre. 209 00:08:29,860 --> 00:08:31,770 >> Så virkelig opmærksomme på disse bemærkninger. 210 00:08:31,770 --> 00:08:34,720 Hvis du har spørgsmål om dem, eller spørgsmål om din score, 211 00:08:34,720 --> 00:08:37,620 kan du komme tale med mig enten før sektion, 212 00:08:37,620 --> 00:08:41,039 Jeg vil sandsynligvis blive hængende i lobbyen, eller bagefter. 213 00:08:41,039 --> 00:08:43,559 Hvis du ønsker at planlægge en-til-en-møder om, hvordan 214 00:08:43,559 --> 00:08:46,100 du kan hjælpe med at forbedre senere problemet sæt, bare lad mig det vide. 215 00:08:46,100 --> 00:08:47,520 216 00:08:47,520 --> 00:08:49,750 >> Og så bare et par tips til jer. 217 00:08:49,750 --> 00:08:53,110 Så en af ​​de største ting Jeg har altid understrege min sektion 218 00:08:53,110 --> 00:08:57,700 når du lære at kode er at skrive ting ud på papir først. 219 00:08:57,700 --> 00:09:01,080 Hvis du har et spil plan for hvor din kode skal gå 220 00:09:01,080 --> 00:09:03,230 og hvad det skal gøre, og det er brudt ned 221 00:09:03,230 --> 00:09:06,000 ind i små bidder af pseudokode kode, du har skrevet ud, 222 00:09:06,000 --> 00:09:09,780 du kommer til at være mindre tilbøjelige til at gøre syntaksfejl 223 00:09:09,780 --> 00:09:12,355 eller oprette en hvis løkke, ikke har et andet. 224 00:09:12,355 --> 00:09:14,064 225 00:09:14,064 --> 00:09:15,980 Hvis du ved, hvor du er går samlet, er du 226 00:09:15,980 --> 00:09:19,764 mindre tilbøjelige til at gøre disse små fejl, der vil undertiden tage dig 227 00:09:19,764 --> 00:09:22,555 timer til at fastsætte, fordi du er ligesom, hvor jeg mangler dette beslag? 228 00:09:22,555 --> 00:09:23,580 229 00:09:23,580 --> 00:09:27,420 >> På dette notat, skal du bruge Style50. 230 00:09:27,420 --> 00:09:28,820 231 00:09:28,820 --> 00:09:31,590 Især når du er gå til kontortid, 232 00:09:31,590 --> 00:09:34,850 hvis din kode er alt skiftede over til den ene side, 233 00:09:34,850 --> 00:09:37,740 det er selvfølgelig politik at vi kan sige, ordne det 234 00:09:37,740 --> 00:09:41,990 så det ser ud som Style50 siger det skal, og så vil vi hjælpe dig. 235 00:09:41,990 --> 00:09:43,830 Så det vil gøre dit liv lettere. 236 00:09:43,830 --> 00:09:45,030 Det vil gøre vores liv lettere. 237 00:09:45,030 --> 00:09:46,000 Alle er gladere. 238 00:09:46,000 --> 00:09:47,290 Alle får bedre karakterer. 239 00:09:47,290 --> 00:09:48,760 Er det ikke hvad vi alle ønsker? 240 00:09:48,760 --> 00:09:50,420 241 00:09:50,420 --> 00:09:53,860 >> Så skrive ting på papir, inden du nogensinde røre din computer. 242 00:09:53,860 --> 00:09:57,540 Tale tingene ud på et højt niveau, og skal du vide, hvor du skal hen. 243 00:09:57,540 --> 00:09:59,940 Og hvis du er i tvivl, sidde ned med nogen 244 00:09:59,940 --> 00:10:03,340 og gå dem igennem trin for trin hvad din kode er meningen at gøre. 245 00:10:03,340 --> 00:10:07,940 Og ni gange ud af 10, vil du være ligesom, åh, jeg glemte en hvis betingelse 246 00:10:07,940 --> 00:10:12,420 eller jeg har glemt et semikolon her eller Jeg opdaterer denne variabel forkert. 247 00:10:12,420 --> 00:10:15,740 Så dem er mine tips til succes. 248 00:10:15,740 --> 00:10:19,820 >> Så da omkring halvdelen af ​​du ser ligesom du deltog super sektion, 249 00:10:19,820 --> 00:10:24,080 Jeg skal bare til meget kort gennemgå loops, 250 00:10:24,080 --> 00:10:26,650 som ikke var på vores oprindelige dagsorden. 251 00:10:26,650 --> 00:10:28,190 Men de er virkelig vigtigt. 252 00:10:28,190 --> 00:10:30,250 Og så jeg har tænkt mig at slags af hastighed gennem dem 253 00:10:30,250 --> 00:10:32,860 før vi kommer ind i vores faktiske sektion. 254 00:10:32,860 --> 00:10:36,269 Før jeg gør det, er der enhver questions-- logistisk, 255 00:10:36,269 --> 00:10:38,060 personligt, er der noget andet, du ønsker 256 00:10:38,060 --> 00:10:40,990 at vide om mig eller om sektion eller klasse i almindelighed? 257 00:10:40,990 --> 00:10:43,195 258 00:10:43,195 --> 00:10:43,880 Alle gode? 259 00:10:43,880 --> 00:10:45,300 OK, cool. 260 00:10:45,300 --> 00:10:46,781 261 00:10:46,781 --> 00:10:47,280 Dejligt. 262 00:10:47,280 --> 00:10:50,071 >> Så loops-- jer burde alle genkende disse stykker fra bunden. 263 00:10:50,071 --> 00:10:51,310 264 00:10:51,310 --> 00:10:55,220 Så loops er dybest set bare en måde for os at gøre noget 265 00:10:55,220 --> 00:10:58,900 nogle antal gange, nogle gentagne handling baseret på nogle betingede. 266 00:10:58,900 --> 00:11:00,140 267 00:11:00,140 --> 00:11:02,090 Så vi har tre forskellige typer. 268 00:11:02,090 --> 00:11:04,860 Vi har for-løkke, mens, og gør-mens. 269 00:11:04,860 --> 00:11:06,430 270 00:11:06,430 --> 00:11:11,320 >> Så for loops-- vi bare have en meget generelle layout her af en for-løkke. 271 00:11:11,320 --> 00:11:16,110 Og det er fantastisk, når du ved, hvordan mange gange noget skal udføre. 272 00:11:16,110 --> 00:11:17,040 273 00:11:17,040 --> 00:11:18,790 Når vi taler om andre loops, vil du 274 00:11:18,790 --> 00:11:20,650 se, hvorfor det er en vigtig forskel. 275 00:11:20,650 --> 00:11:22,530 Men efter sløjfer er for noget sæt. 276 00:11:22,530 --> 00:11:24,590 Du ved, du kan enten beregne antallet 277 00:11:24,590 --> 00:11:29,230 eller du kender antallet af gange, du ønsker, at dette gentages i begyndelsen. 278 00:11:29,230 --> 00:11:32,220 >> Så hvis du ser her, vi har bare en generel art 279 00:11:32,220 --> 00:11:34,480 af skelet ramme for en for-løkke her. 280 00:11:34,480 --> 00:11:38,080 Så for-initialisering, det er her dine variabler initialiseres. 281 00:11:38,080 --> 00:11:41,915 Med Mario, jeg er sikker på du fyre gjorde noget lignende int Jeg er lig med 0. 282 00:11:41,915 --> 00:11:42,920 283 00:11:42,920 --> 00:11:44,710 Det er her, der ville ske i blå. 284 00:11:44,710 --> 00:11:48,290 Du har din tilstand, som er, hvad kontrolleres hver gang. 285 00:11:48,290 --> 00:11:52,410 Hvis denne betingelse er sand, så resten af ​​koden udfører. 286 00:11:52,410 --> 00:11:54,749 Så det vil løbe igen-- og spørge. 287 00:11:54,749 --> 00:11:57,290 Og så har vi update, hvor du opdaterer din variabel. 288 00:11:57,290 --> 00:12:01,410 Så igen, med ligesom Mario, er jeg sikker du fyre gjorde noget lignende i plus plus. 289 00:12:01,410 --> 00:12:04,640 Så hver gang løkken løb, jeg fik opdateret, så 290 00:12:04,640 --> 00:12:09,370 at når vi tjekker den mod nogle tilstand, blev det skiftende. 291 00:12:09,370 --> 00:12:12,570 >> Fordi hvis du bare have en statisk variabel, 292 00:12:12,570 --> 00:12:15,567 hvis det udførte det første gang, det er bare kommer til at udføre i det uendelige. 293 00:12:15,567 --> 00:12:18,025 Så du er nødt til at sørge for du opdatere din variabel ordentligt. 294 00:12:18,025 --> 00:12:19,350 295 00:12:19,350 --> 00:12:23,890 Og vi har også kun en visuel repræsentation der. 296 00:12:23,890 --> 00:12:24,930 Alle godt? 297 00:12:24,930 --> 00:12:25,630 For løkker. 298 00:12:25,630 --> 00:12:27,540 Skulle have set disse i din pset. 299 00:12:27,540 --> 00:12:28,840 Cool. 300 00:12:28,840 --> 00:12:31,870 >> Så her er bare en nem eksempel. 301 00:12:31,870 --> 00:12:32,860 Print Dette er CS50! 302 00:12:32,860 --> 00:12:33,360 10 gange. 303 00:12:33,360 --> 00:12:34,850 304 00:12:34,850 --> 00:12:37,906 Og så har vi vores initialisering, som vi ser der, med int i 305 00:12:37,906 --> 00:12:41,280 lig 0, for jeg er mindre end 10, og jeg plus plus. 306 00:12:41,280 --> 00:12:43,090 307 00:12:43,090 --> 00:12:44,540 Og det vil udskrive denne 10 gange. 308 00:12:44,540 --> 00:12:46,230 309 00:12:46,230 --> 00:12:56,781 >> Så mens loops-- mens løkker stor, når du ikke nødvendigvis 310 00:12:56,781 --> 00:12:59,530 nødt til at vide, hvor mange gange det er kommer til at opdatere i begyndelsen. 311 00:12:59,530 --> 00:13:00,640 312 00:13:00,640 --> 00:13:02,580 Du skal bare have nogle tilstand, der er kontrolleret. 313 00:13:02,580 --> 00:13:09,550 Og dette kunne være noget lignende while-- lad os tage et eksempel fra din pset. 314 00:13:09,550 --> 00:13:12,540 Hvis Mario, du forsøger at indtaste et negativt tal. 315 00:13:12,540 --> 00:13:13,270 Right? 316 00:13:13,270 --> 00:13:15,460 Du skulle re-bede din bruger. 317 00:13:15,460 --> 00:13:20,890 Så du kan sige, godt, hvis brugeren inputs noget mindre end nul, re-prompt 318 00:13:20,890 --> 00:13:21,390 dem. 319 00:13:21,390 --> 00:13:23,890 Og jeg er sikker på, der kan have været noget, som nogle af jer 320 00:13:23,890 --> 00:13:24,660 bruges i din kode. 321 00:13:24,660 --> 00:13:26,270 >> Så det er en simpel ting. 322 00:13:26,270 --> 00:13:28,490 Du har samtidig nogle betinget der er markeret 323 00:13:28,490 --> 00:13:30,460 hver gang koden går til at udføre. 324 00:13:30,460 --> 00:13:32,660 Hvis det evalueres til sand, vi køre den. 325 00:13:32,660 --> 00:13:33,820 Ellers har vi ikke. 326 00:13:33,820 --> 00:13:35,650 Og hvad er egentlig important-- noget jeg 327 00:13:35,650 --> 00:13:38,155 tror, ​​at David talte om i lecture-- er seler. 328 00:13:38,155 --> 00:13:40,760 329 00:13:40,760 --> 00:13:42,930 Uanset er inden for den seler er, hvad henrettet. 330 00:13:42,930 --> 00:13:45,850 Hvis du glemmer dem seler, er det kun vil 331 00:13:45,850 --> 00:13:48,800 en linje, der direkte efter imens blev henrettet. 332 00:13:48,800 --> 00:13:51,040 >> Så hvis du har tre ting, der formodes 333 00:13:51,040 --> 00:13:54,020 at ske, når dette betingelse evalueres til sand, 334 00:13:54,020 --> 00:13:58,040 og du behøver ikke have disse seler, kun den første ting kommer til at ske. 335 00:13:58,040 --> 00:14:01,510 Så vær meget bevidste om hvor du lægger dine seler. 336 00:14:01,510 --> 00:14:04,880 Hvis du holder dig med Style50, dette vil helt sikkert hjælpe dig. 337 00:14:04,880 --> 00:14:06,220 338 00:14:06,220 --> 00:14:06,760 Cool. 339 00:14:06,760 --> 00:14:10,835 >> Så dette er en nedtælling fra 10 til nul. 340 00:14:10,835 --> 00:14:12,380 341 00:14:12,380 --> 00:14:16,210 Og som du kan se her, vi initialisere nogle tæller uden for det. 342 00:14:16,210 --> 00:14:19,250 En ting, der er anderledes, er vi ikke initialisere vores variable 343 00:14:19,250 --> 00:14:20,300 inden for vores while-løkke. 344 00:14:20,300 --> 00:14:22,150 Det er initialiseret uden for det. 345 00:14:22,150 --> 00:14:25,480 Vi er simpelthen bare at sætte betingende for vores tid. 346 00:14:25,480 --> 00:14:28,630 Så i dette tilfælde, er det samtidig Stillingen er større end nul. 347 00:14:28,630 --> 00:14:35,134 Og vi printe ud, hvad vores tæller er, og derefter vi formindske vores variabel. 348 00:14:35,134 --> 00:14:36,800 Og det er også en anden ting at bemærke. 349 00:14:36,800 --> 00:14:40,440 Vores opdatering sker ikke inden for den første del af while-løkke. 350 00:14:40,440 --> 00:14:44,255 Det vil rent faktisk ske indenfor seler, kroppen af ​​din tekst. 351 00:14:44,255 --> 00:14:46,820 352 00:14:46,820 --> 00:14:51,860 >> Så gør-mens loops-- gør-mens sløjfer er stor for bruger validering. 353 00:14:51,860 --> 00:14:54,820 Så nogle af jer måske har også brugt dette i din pset. 354 00:14:54,820 --> 00:14:59,960 Man kan sige, gøre, ligesom, anmode brugeren om input. 355 00:14:59,960 --> 00:15:04,690 Og så mens lignende, input er lidt mindre end nummer. 356 00:15:04,690 --> 00:15:10,700 >> Så for en udtrykkelig tilfældet med Mario, det ville være gøre printf, indtaste et heltal, 357 00:15:10,700 --> 00:15:13,820 og derefter nogle heltal lig getint. 358 00:15:13,820 --> 00:15:17,060 Og så vil faktisk eksekvere denne kode først. 359 00:15:17,060 --> 00:15:19,120 Du vil faktisk have en slags heltal. 360 00:15:19,120 --> 00:15:23,380 Og så kunne man sige, mens at heltal er mindre end nul. 361 00:15:23,380 --> 00:15:26,120 Så hvad det kommer til at gøre, er at det er kommer til at udføre mindst én gang. 362 00:15:26,120 --> 00:15:27,536 Det kommer til at kontrollere tilstanden. 363 00:15:27,536 --> 00:15:29,690 Hvis tilstanden er sandt, vil det køre igen. 364 00:15:29,690 --> 00:15:32,900 >> Så gør-mens løkker stor for bruger validering, 365 00:15:32,900 --> 00:15:36,770 fordi du kender koden kommer til at udføre mindst 366 00:15:36,770 --> 00:15:39,720 én gang, hvorimod med mens loops, er du ikke 367 00:15:39,720 --> 00:15:41,630 garanteres, at det er kommer til at udføre en gang. 368 00:15:41,630 --> 00:15:45,330 Det kommer til at kontrollere tilstanden først og derefter beslutter at udføre det, 369 00:15:45,330 --> 00:15:48,350 mens en gør-stykke tid vil udføre koden først 370 00:15:48,350 --> 00:15:51,110 og derefter kontrollere at se, om du nødt til at gentage det. 371 00:15:51,110 --> 00:15:52,985 Er denne sondring mening for alle? 372 00:15:52,985 --> 00:15:53,680 373 00:15:53,680 --> 00:15:54,180 OK. 374 00:15:54,180 --> 00:15:55,651 375 00:15:55,651 --> 00:15:56,150 Cool. 376 00:15:56,150 --> 00:15:57,380 377 00:15:57,380 --> 00:15:59,800 >> Så i dette tilfælde, er dette slags af, hvad jeg talte om, 378 00:15:59,800 --> 00:16:02,210 denne re-skærmen, indtil du få et positivt tal. 379 00:16:02,210 --> 00:16:05,060 Så vi ved, at printf "Indtast et positivt tal" 380 00:16:05,060 --> 00:16:08,720 og faktisk beder om at input vil ske mindst én gang. 381 00:16:08,720 --> 00:16:12,650 Hvis brugeren er ondt og holder indtaste et negativt tal, der 382 00:16:12,650 --> 00:16:14,210 ved, hvor mange gange det vil udføre. 383 00:16:14,210 --> 00:16:17,500 Men denne kode er garanteret at udføre mindst én gang. 384 00:16:17,500 --> 00:16:20,040 Og det er derfor, det er fantastisk til validering af input. 385 00:16:20,040 --> 00:16:22,300 Og du vil bruge det ganske lidt. 386 00:16:22,300 --> 00:16:23,870 387 00:16:23,870 --> 00:16:25,830 >> Okay, nogen spørgsmål indtil videre? 388 00:16:25,830 --> 00:16:27,080 389 00:16:27,080 --> 00:16:28,030 Vi er alle gode? 390 00:16:28,030 --> 00:16:29,513 Jeg taler for hurtigt? 391 00:16:29,513 --> 00:16:30,520 392 00:16:30,520 --> 00:16:31,130 Vi er gode? 393 00:16:31,130 --> 00:16:31,630 OK. 394 00:16:31,630 --> 00:16:32,960 395 00:16:32,960 --> 00:16:33,800 Awesome 396 00:16:33,800 --> 00:16:35,841 >> Så vi kommer til at gå videre og taler om arrays. 397 00:16:35,841 --> 00:16:36,660 398 00:16:36,660 --> 00:16:37,600 Cool. 399 00:16:37,600 --> 00:16:40,700 Så arrays er dybest set kun datastrukturer 400 00:16:40,700 --> 00:16:43,260 der tillader os at gemme ting af samme type. 401 00:16:43,260 --> 00:16:47,920 Så hvis du nogensinde har en array, er det enten bare nødt til int'er 402 00:16:47,920 --> 00:16:51,590 eller er det bare nødt til flåd eller er det bare kommer til at have tegn. 403 00:16:51,590 --> 00:16:55,440 Du kommer ikke til at have en int med en char med en float med en dobbelt. 404 00:16:55,440 --> 00:16:56,850 Én ting. 405 00:16:56,850 --> 00:17:00,810 Arrays er blot en størrelse, eller de er bare én type. 406 00:17:00,810 --> 00:17:05,679 >> Så her har vi en bred vifte af størrelse tre med tre heltal i det. 407 00:17:05,679 --> 00:17:07,970 De kunne flåd, men vi er vil sige, de er int'er. 408 00:17:07,970 --> 00:17:09,310 409 00:17:09,310 --> 00:17:16,970 Så én ting at indse, er, at arrays er et sæt størrelse, når du initialiserer 410 00:17:16,970 --> 00:17:22,285 dem, og de er ikke easily-- da du alle er mindre behagelig, 411 00:17:22,285 --> 00:17:25,034 du skal bare tænke på dem som ikke være i stand til at strække sig i størrelse. 412 00:17:25,034 --> 00:17:26,119 413 00:17:26,119 --> 00:17:28,740 Men stor du begiver dig ud dit array i starten, 414 00:17:28,740 --> 00:17:31,070 det er den størrelse, det vil at bo, fordi arrays 415 00:17:31,070 --> 00:17:33,070 er løbende blokke af hukommelse. 416 00:17:33,070 --> 00:17:34,007 417 00:17:34,007 --> 00:17:35,840 Og når du fyre få i lidt mere 418 00:17:35,840 --> 00:17:40,820 om, hvordan hukommelsen er faktisk lagt ud på diske og i hoben og stakken, 419 00:17:40,820 --> 00:17:42,220 det vil gøre lidt mere mening. 420 00:17:42,220 --> 00:17:48,310 >> Men du kan bare tænke på lignende, er det blot en række af rum på din disk. 421 00:17:48,310 --> 00:17:52,540 Og du kan ikke garantere, at der er vil være fri plads efter den. 422 00:17:52,540 --> 00:17:55,290 Du kunne initialisere et array tre og derefter måske du 423 00:17:55,290 --> 00:17:59,190 initialisere en anden vifte af fem senere, og det er lige efter det. 424 00:17:59,190 --> 00:18:04,000 Så hvis du skulle gå forbi stedet tre i det første array, 425 00:18:04,000 --> 00:18:06,370 du ville skrive over noget andet. 426 00:18:06,370 --> 00:18:10,390 Så arrays are-- for jer, bare tænke på dem som en fast størrelse. 427 00:18:10,390 --> 00:18:12,700 428 00:18:12,700 --> 00:18:16,890 >> Så skaber en array-- du vil til brug for at gøre dette ganske lidt. 429 00:18:16,890 --> 00:18:18,240 430 00:18:18,240 --> 00:18:22,080 Så på samme måde, at vi har en generelle struktur for vores for loops, 431 00:18:22,080 --> 00:18:24,910 har vi en dejlig almindelig struktur for vores array. 432 00:18:24,910 --> 00:18:28,430 Fordi de er af en type, hele elementer i et array er af en type, 433 00:18:28,430 --> 00:18:30,950 du nødt til at initialisere hvad denne type er. 434 00:18:30,950 --> 00:18:33,804 >> Så, som du ser her, har vi en fin lille beslag datatype. 435 00:18:33,804 --> 00:18:35,970 Så hvis vi er ved at oprette en int array, vil det være int. 436 00:18:35,970 --> 00:18:38,830 Hvis vi opretter en char array, vil det være char. 437 00:18:38,830 --> 00:18:41,890 Hvis vi opretter en streng array, vil det være streng. 438 00:18:41,890 --> 00:18:45,140 Og derefter navnet på dit array, uanset hvad du gerne vil have det til at være. 439 00:18:45,140 --> 00:18:51,750 Så måske er det prøveresultater eller måske Det er studerende, eller måske er det slik. 440 00:18:51,750 --> 00:18:54,440 Uanset hvad du beslutter dig for at navngive din array, det er, hvad det vil være. 441 00:18:54,440 --> 00:18:57,260 >> Og så i parentes, vil du har den størrelse, du ønsker. 442 00:18:57,260 --> 00:19:01,350 Så vi opbevare 10 elever eller vi lagre 15 typer slik? 443 00:19:01,350 --> 00:19:03,200 444 00:19:03,200 --> 00:19:03,920 Hvad ikke. 445 00:19:03,920 --> 00:19:06,830 Så i vores eksempel her, Vi skaber et array 446 00:19:06,830 --> 00:19:10,100 af størrelse tre, som du fyre se her til højre. 447 00:19:10,100 --> 00:19:11,350 448 00:19:11,350 --> 00:19:15,990 Og når vi først initialisere det er alt sat til nul. 449 00:19:15,990 --> 00:19:18,970 Så det er bare tænkt ligesom en blank tavle. 450 00:19:18,970 --> 00:19:22,550 Vi har alle disse rum har vi alle disse bokse vi kunne sætte vores data ind, 451 00:19:22,550 --> 00:19:25,530 men de er bare blank for tiden. 452 00:19:25,530 --> 00:19:28,700 >> Så hvis vi ønsker at faktisk tildele dem disse værdier, 453 00:19:28,700 --> 00:19:33,050 vi gøre det så lige under her viser. 454 00:19:33,050 --> 00:19:39,170 Så har du, hvad navnet på din array er og hvad indeks, du vil. 455 00:19:39,170 --> 00:19:43,070 Så indekset refererer blot til, ligesom, hvad slot vi kigger på. 456 00:19:43,070 --> 00:19:47,830 Og en vigtig ting at bemærke er, at arrays er nul-indekseret. 457 00:19:47,830 --> 00:19:53,160 Så hvis vi ønsker den første plads i hukommelsen af vores array, går det at være nul. 458 00:19:53,160 --> 00:19:54,740 Hvis vi ønsker det andet, vil det være en. 459 00:19:54,740 --> 00:19:56,198 Hvis vi ønsker det tredje, vil det være to. 460 00:19:56,198 --> 00:19:57,820 Så videre og så videre. 461 00:19:57,820 --> 00:20:02,130 >> Hvilket også er grunden til, konventionelt, når vi gør for loops-- jeg sikker 462 00:20:02,130 --> 00:20:05,030 du fyre var undrende, hvorfor skal vi starte ved 0 versus 1? 463 00:20:05,030 --> 00:20:09,909 Og det er fordi, når vi overgangen til at bruge arrays, det kort korrekt. 464 00:20:09,909 --> 00:20:11,700 Så hvis du ønsker at gentage i et array, er det 465 00:20:11,700 --> 00:20:14,830 gør en masse mere mening at gør jeg lig 0, fordi vi 466 00:20:14,830 --> 00:20:17,940 ved, svarer til det første sted i hukommelsen. 467 00:20:17,940 --> 00:20:18,990 468 00:20:18,990 --> 00:20:19,990 Alle godt med det? 469 00:20:19,990 --> 00:20:21,060 470 00:20:21,060 --> 00:20:21,560 Cool. 471 00:20:21,560 --> 00:20:26,240 >> Og derefter på bunden her er bare anden måde at initialisere et array. 472 00:20:26,240 --> 00:20:29,590 Du har stadig din datatype og navn, 473 00:20:29,590 --> 00:20:31,960 men i stedet for faktisk sætte en størrelse derinde, 474 00:20:31,960 --> 00:20:33,830 du kan bare gøre tomme parenteser. 475 00:20:33,830 --> 00:20:36,350 Og derefter med disse krøllet seler i bunden, 476 00:20:36,350 --> 00:20:40,270 Du kan bare indtaste de data, du ønsker adskilt af kommaer. 477 00:20:40,270 --> 00:20:43,070 Og det vil automatisk sige, OK, jeg ser 478 00:20:43,070 --> 00:20:47,300 at du har tre ting i disse seler. 479 00:20:47,300 --> 00:20:51,410 Så jeg ved, at jeg er nødt til at afsætte tre blokke af hukommelse og derefter gemme dem. 480 00:20:51,410 --> 00:20:55,300 481 00:20:55,300 --> 00:21:01,670 >> Så den første version, du kan bruge Hvis du spørger din bruger til input 482 00:21:01,670 --> 00:21:04,770 værdierne, så du kan gennemløber array 483 00:21:04,770 --> 00:21:07,660 og ask-- få nogle int indtaste dem. 484 00:21:07,660 --> 00:21:10,500 Hvis du kender de værdier på forhånd, det gør en meget mere mening 485 00:21:10,500 --> 00:21:12,110 at bruge den anden måde. 486 00:21:12,110 --> 00:21:17,270 Men i de fleste tilfælde kan du ikke vide hvad disse værdier vil være. 487 00:21:17,270 --> 00:21:19,060 488 00:21:19,060 --> 00:21:19,560 Cool. 489 00:21:19,560 --> 00:21:20,393 Andre spørgsmål? 490 00:21:20,393 --> 00:21:21,206 491 00:21:21,206 --> 00:21:21,705 Okay. 492 00:21:21,705 --> 00:21:25,960 493 00:21:25,960 --> 00:21:30,370 >> Så adgang elements-- så man af de store ting om arrays 494 00:21:30,370 --> 00:21:33,310 er, at de er tilfældige adgang, hvilket betyder, at man 495 00:21:33,310 --> 00:21:36,010 behøver ikke at se gennem hver blok. 496 00:21:36,010 --> 00:21:38,150 Hvis du ved, at du ønsker, hvad der er i blok to, 497 00:21:38,150 --> 00:21:40,820 du kan bare sige, giv mig blok to. 498 00:21:40,820 --> 00:21:44,160 Og det er derfor disse indeks er så vigtige, 499 00:21:44,160 --> 00:21:46,220 og det er, hvordan vi faktisk adgang til dem. 500 00:21:46,220 --> 00:21:50,660 Så i dette tilfælde, som vi så før, når vi tildele værdier i det ene 501 00:21:50,660 --> 00:21:55,360 før, havde vi navn og indeks, vi ønskede at få adgang til, right? 502 00:21:55,360 --> 00:21:59,370 Så på samme måde, det er alt, vi gøre for rent faktisk at trække, at data ud. 503 00:21:59,370 --> 00:22:02,940 Vi har navn og vi har indekset, som vi ønsker. 504 00:22:02,940 --> 00:22:06,710 >> Så i dette tilfælde, for-løkken hernede på bunden, anyone 505 00:22:06,710 --> 00:22:09,060 vide, hvad det gør, hvad det ville udskrive? 506 00:22:09,060 --> 00:22:13,771 507 00:22:13,771 --> 00:22:14,270 Mmhmm? 508 00:22:14,270 --> 00:22:17,790 509 00:22:17,790 --> 00:22:18,520 Præcis. 510 00:22:18,520 --> 00:22:20,130 Så ja, det er bare iteration igennem. 511 00:22:20,130 --> 00:22:23,410 i er lig med zero-- vi kan gå gennem koden lige hurtigt. 512 00:22:23,410 --> 00:22:26,680 i er lig med nul, i er mindre end tre på dette tidspunkt, right? 513 00:22:26,680 --> 00:22:27,780 Så der tjekker ud. 514 00:22:27,780 --> 00:22:33,370 Og vi siger, OK, print f hvad der er i temperaturen i. 515 00:22:33,370 --> 00:22:37,990 Jeg er nul lige her, når vi først gentage, så vi gå til denne første stedet, 516 00:22:37,990 --> 00:22:40,840 og vi siger, OK, 65 er den nummer, vi ønsker at udskrive. 517 00:22:40,840 --> 00:22:43,570 Så det vil udskrive 65 og derefter lave en ny linje. 518 00:22:43,570 --> 00:22:46,550 Jeg vil opdatere, så den udskriver 87. 519 00:22:46,550 --> 00:22:48,780 Den opdaterer igen, og det vil 30 udskrive. 520 00:22:48,780 --> 00:22:49,810 521 00:22:49,810 --> 00:22:50,630 Alle cool? 522 00:22:50,630 --> 00:22:51,630 523 00:22:51,630 --> 00:22:52,130 Awesome. 524 00:22:52,130 --> 00:22:54,340 525 00:22:54,340 --> 00:22:54,840 >> Ok. 526 00:22:54,840 --> 00:22:57,710 Så her er form for en ting, jeg sagde hvordan 527 00:22:57,710 --> 00:23:00,020 du kan holde styr på andens score og hvorfor 528 00:23:00,020 --> 00:23:03,300 du ville bruge den første måde for at formatere det 529 00:23:03,300 --> 00:23:04,890 i stedet for denne anden måde. 530 00:23:04,890 --> 00:23:06,620 Og dette blot går igennem. 531 00:23:06,620 --> 00:23:08,945 Og opdager vi har en klassestørrelse på 30. 532 00:23:08,945 --> 00:23:10,690 533 00:23:10,690 --> 00:23:15,770 Og vi initialisere dette vifte af int'er der er af størrelse 30. 534 00:23:15,770 --> 00:23:18,070 Og så er vi iteration igennem, og vi er 535 00:23:18,070 --> 00:23:20,910 beder brugeren om at indtaste point for hver af disse 536 00:23:20,910 --> 00:23:23,700 og derefter tildele den til et bestemt sted i hukommelsen 537 00:23:23,700 --> 00:23:24,860 et eller andet sted i dette array. 538 00:23:24,860 --> 00:23:26,700 539 00:23:26,700 --> 00:23:27,890 Cool? 540 00:23:27,890 --> 00:23:29,650 Giver det mening for alle? 541 00:23:29,650 --> 00:23:30,150 Mmhmm? 542 00:23:30,150 --> 00:23:32,910 543 00:23:32,910 --> 00:23:40,360 >> Så hashtag definere klassestørrelse 30 er en præprocessor direktiv 544 00:23:40,360 --> 00:23:43,780 som netop betyder det gets-- det har at gøre som kompilering proces. 545 00:23:43,780 --> 00:23:47,595 Du kan tænke på det som en global variabel. 546 00:23:47,595 --> 00:23:49,260 547 00:23:49,260 --> 00:23:53,030 Den måde, vi gør det er typically-- det giver din kode 548 00:23:53,030 --> 00:23:54,770 til at være mere let ændres. 549 00:23:54,770 --> 00:23:59,480 Så lad os sige, at vores klasse størrelse pludselig går fra 30 til 15, 550 00:23:59,480 --> 00:24:03,930 hvis jeg ikke havde defineret det på denne måde, ville jeg nødt til at gå gennem min hele programmet 551 00:24:03,930 --> 00:24:07,420 og ændre alle forekomster af 30 til 15. 552 00:24:07,420 --> 00:24:11,590 Men med dette, får jeg at ændre en stedet, og alt andet ændringer. 553 00:24:11,590 --> 00:24:14,930 >> Hvis du nogensinde ønsker at gøre en hash definere i et tilfælde 554 00:24:14,930 --> 00:24:19,020 hvor du holder styr på nogle sæt antal scoringer for en klasse 555 00:24:19,020 --> 00:24:23,250 eller du bruger et nummer der vil blive anvendt, ligesom, 556 00:24:23,250 --> 00:24:27,740 gennem en meget lang program, er det bedre at definere, at i begyndelsen 557 00:24:27,740 --> 00:24:34,440 så hvis nogensinde det ændrer sig, får du at ændre en plet i stedet for 100. 558 00:24:34,440 --> 00:24:34,940 Ja? 559 00:24:34,940 --> 00:24:39,830 >> STUDENT: Mellem gøre det og bare erklære [uhørligt] over på toppen. 560 00:24:39,830 --> 00:24:42,470 >> ALLISON Buchholtz-AU: Så det har at gøre med efficient-- 561 00:24:42,470 --> 00:24:45,460 det er slags uden for hvad vi kan dække i denne sektion. 562 00:24:45,460 --> 00:24:49,236 Det har at gøre mere med effektivitet og hvordan tingene faktisk 563 00:24:49,236 --> 00:24:50,485 arbejde i indsamling proces. 564 00:24:50,485 --> 00:24:52,590 565 00:24:52,590 --> 00:24:55,006 Hvis du vil virkelig vide om det, jeg er glad for at sende dig 566 00:24:55,006 --> 00:24:56,450 en e-mail med ressourcerne om det. 567 00:24:56,450 --> 00:24:57,810 568 00:24:57,810 --> 00:25:03,880 Hash definere tendens til at være foretrækkes til ting. 569 00:25:03,880 --> 00:25:06,380 Og som du kode mere, du slags lære nuancerne 570 00:25:06,380 --> 00:25:09,135 på, når du skal bruge en global versus hash definere. 571 00:25:09,135 --> 00:25:11,010 Men for tiden, du ikke rigtig har 572 00:25:11,010 --> 00:25:13,290 at bekymre sig om det er at det korte svar. 573 00:25:13,290 --> 00:25:15,360 574 00:25:15,360 --> 00:25:16,360 Alle godt med det? 575 00:25:16,360 --> 00:25:18,151 Og også, hvis du ønsker at bruge en hash definere 576 00:25:18,151 --> 00:25:21,120 det er virkelig vigtigt at lægge mærke til at navnet skal være i alle hætter. 577 00:25:21,120 --> 00:25:22,210 578 00:25:22,210 --> 00:25:24,674 Vi er ikke bare gør KLASSE størrelse til at være dramatisk. 579 00:25:24,674 --> 00:25:26,090 Det bør faktisk være i alle hætter. 580 00:25:26,090 --> 00:25:27,880 581 00:25:27,880 --> 00:25:28,610 Cool. 582 00:25:28,610 --> 00:25:30,130 Noget andet der? 583 00:25:30,130 --> 00:25:31,190 Vi er gode? 584 00:25:31,190 --> 00:25:32,220 Dejligt. 585 00:25:32,220 --> 00:25:32,720 Velkommen. 586 00:25:32,720 --> 00:25:34,240 587 00:25:34,240 --> 00:25:38,495 >> OK, så jeg vil jer at tage et kig på dette, og se om du kan finde fejlen. 588 00:25:38,495 --> 00:25:45,580 589 00:25:45,580 --> 00:25:46,507 Jeg vil give dig et hint. 590 00:25:46,507 --> 00:25:47,840 Det er et sted i det for-sløjfe. 591 00:25:47,840 --> 00:25:53,070 592 00:25:53,070 --> 00:25:53,665 Mmhmm? 593 00:25:53,665 --> 00:25:55,704 >> STUDENT: Skal være mindre end lig med 2. 594 00:25:55,704 --> 00:25:56,920 595 00:25:56,920 --> 00:26:01,094 >> ALLISON: Så det kunne være mindre end eller lig med 2, eller det kan være mindre end 3. 596 00:26:01,094 --> 00:26:02,510 Og hvad er begrundelsen for det? 597 00:26:02,510 --> 00:26:05,135 >> STUDENT: Den [uhørligt], 0, 1, 2. 598 00:26:05,135 --> 00:26:06,080 >> ALLISON: Præcis. 599 00:26:06,080 --> 00:26:12,180 Så i en vifte af størrelse n, vi kun har indeks n minus 1. 600 00:26:12,180 --> 00:26:13,700 601 00:26:13,700 --> 00:26:14,200 Cool. 602 00:26:14,200 --> 00:26:15,091 603 00:26:15,091 --> 00:26:17,840 Og så kan vi få virkelig skøre og få flerdimensionale arrays. 604 00:26:17,840 --> 00:26:19,340 605 00:26:19,340 --> 00:26:23,960 Et af de problemer, da jeg tog det i min år, der behøves flerdimensionale arrays, 606 00:26:23,960 --> 00:26:28,720 og jeg tror, ​​en af ​​dem kan kræve det år, så være komfortable. 607 00:26:28,720 --> 00:26:30,140 Wrap dit hoved omkring det nu. 608 00:26:30,140 --> 00:26:33,087 Det vil komme tilbage for at hjemsøge dig, men på den fede måde. 609 00:26:33,087 --> 00:26:35,420 Så du kan virkelig bare tænke af multi-dimensionelle arrays 610 00:26:35,420 --> 00:26:36,870 som arrays af arrays. 611 00:26:36,870 --> 00:26:38,060 612 00:26:38,060 --> 00:26:43,809 Så du kan slags tænke på denne top række som den første bid af hukommelse. 613 00:26:43,809 --> 00:26:45,600 Og dette er den anden luns af hukommelse, 614 00:26:45,600 --> 00:26:47,570 og den sidste række er den tredje luns af hukommelse. 615 00:26:47,570 --> 00:26:50,740 Og inden for det, er der et array. 616 00:26:50,740 --> 00:26:53,250 Men selvfølgelig, det er nemmere at skildre som denne. 617 00:26:53,250 --> 00:26:55,610 >> Så du formatere det på samme måde. 618 00:26:55,610 --> 00:26:57,290 619 00:26:57,290 --> 00:27:01,610 Dette er et tegn bestyrelsen for tre med tre. 620 00:27:01,610 --> 00:27:04,180 Så du har tre rækker og tre kolonner. 621 00:27:04,180 --> 00:27:06,760 Vi repræsenterer det på denne måde. 622 00:27:06,760 --> 00:27:11,800 Og du ville få adgang til det samme måde, kolonne række. 623 00:27:11,800 --> 00:27:14,840 Og så 1,1, som vi ser her. 624 00:27:14,840 --> 00:27:18,730 Vi tildeler et nul, nul deroppe. 625 00:27:18,730 --> 00:27:21,900 2,0 og 0,2. 626 00:27:21,900 --> 00:27:26,900 Så du vil bare få adgang them-- hvis nogen nogensinde har gjort lineær algebra, 627 00:27:26,900 --> 00:27:31,580 på samme måde, du får adgang til et element i en matrice, er det den samme idé her. 628 00:27:31,580 --> 00:27:33,030 Så du kan relatere det tilbage til matematik. 629 00:27:33,030 --> 00:27:34,130 630 00:27:34,130 --> 00:27:36,380 Du behøver ikke at bekymre sig for meget om dette lige nu. 631 00:27:36,380 --> 00:27:38,671 Det er godt at have eksponering, at vide, at du kan gøre det. 632 00:27:38,671 --> 00:27:42,700 Du kan skabe nogle crazy number-- du kan 633 00:27:42,700 --> 00:27:44,750 skabe skøre arrays er alt hvad jeg har tænkt mig at sige. 634 00:27:44,750 --> 00:27:45,250 [Uhørligt] 635 00:27:45,250 --> 00:27:46,585 636 00:27:46,585 --> 00:27:48,460 Det bliver en lidt skør, men det er virkelig cool. 637 00:27:48,460 --> 00:27:50,020 638 00:27:50,020 --> 00:27:50,670 Awesome. 639 00:27:50,670 --> 00:27:52,550 >> Og så, så vi har et eksempel her. 640 00:27:52,550 --> 00:27:54,165 Den beregner en streng længde. 641 00:27:54,165 --> 00:27:55,210 642 00:27:55,210 --> 00:27:59,670 Så hvor mange mennesker vidste, at strengene, du bruger 643 00:27:59,670 --> 00:28:01,265 er kun arrays af tegn? 644 00:28:01,265 --> 00:28:03,670 645 00:28:03,670 --> 00:28:04,655 OK, ja. 646 00:28:04,655 --> 00:28:08,000 Så du fyre tror måske, at du ikke har brugte arrays før, men enhver tid 647 00:28:08,000 --> 00:28:10,740 du bruger getString i CSView bibliotek, du er 648 00:28:10,740 --> 00:28:14,690 faktisk bare beder om et array af tegn. 649 00:28:14,690 --> 00:28:17,450 Og vi tager os af alle at i back-end til dig. 650 00:28:17,450 --> 00:28:20,184 Men du har brugt arrays, siden du startede. 651 00:28:20,184 --> 00:28:21,350 Du vidste bare ikke ved det endnu. 652 00:28:21,350 --> 00:28:22,420 653 00:28:22,420 --> 00:28:28,390 >> Og når du har en karakter-array eller et array, der er lagring af en streng, 654 00:28:28,390 --> 00:28:32,050 Den sidste ting er altid, hvad der er kaldes en null terminator, som 655 00:28:32,050 --> 00:28:33,830 er det lige her. 656 00:28:33,830 --> 00:28:37,300 Og der er ved udgangen af hvert ord, du opbevaring. 657 00:28:37,300 --> 00:28:41,170 Så hvis vi ønsker at finde ud af længden af ​​en streng, kan vi sige, 658 00:28:41,170 --> 00:28:45,320 godt, du ved, den indholdet af denne blok 659 00:28:45,320 --> 00:28:46,867 er ikke lig med vores null terminator. 660 00:28:46,867 --> 00:28:49,450 Det betyder, at der er en tegn der, at vi faktisk 661 00:28:49,450 --> 00:28:51,540 bekymrer sig om det er en del af ordet. 662 00:28:51,540 --> 00:28:52,665 Du øger din længde. 663 00:28:52,665 --> 00:28:55,540 Og så når vi faktisk kommer til enden af ​​ordet, vil det afslutte 664 00:28:55,540 --> 00:28:58,790 og det vil returnere vores længde for os. 665 00:28:58,790 --> 00:29:00,098 Mmhmm? 666 00:29:00,098 --> 00:29:02,906 >> STUDENT: Er rummet tæller som nul terminator? 667 00:29:02,906 --> 00:29:04,780 ALLISON: Så en plads ikke en null terminator. 668 00:29:04,780 --> 00:29:10,590 Så hvis du har multiple-- et rum er faktisk en specifik ASCII værdi. 669 00:29:10,590 --> 00:29:11,719 670 00:29:11,719 --> 00:29:13,552 STUDENT: Hvad er udråbstegn lige igen? 671 00:29:13,552 --> 00:29:17,080 ALLISON: Så dette er hvad du refererer til. 672 00:29:17,080 --> 00:29:21,220 Hvis du nogensinde høre mig i kontortiden, Jeg altid kalder det, ligesom, bang lig. 673 00:29:21,220 --> 00:29:23,520 Så bang er ikke. 674 00:29:23,520 --> 00:29:25,370 Så dette er ikke lig. 675 00:29:25,370 --> 00:29:28,480 676 00:29:28,480 --> 00:29:32,290 Så hvis du forsøger at se, om noget er falsk, 677 00:29:32,290 --> 00:29:35,915 du kender altid gør, bang uanset variablen, og hvis det er falsk, 678 00:29:35,915 --> 00:29:38,540 det evalueres til sandt, og du kan gøre fede ting med det. 679 00:29:38,540 --> 00:29:39,830 680 00:29:39,830 --> 00:29:40,675 Mere om det senere. 681 00:29:40,675 --> 00:29:42,090 682 00:29:42,090 --> 00:29:42,590 Cool. 683 00:29:42,590 --> 00:29:44,260 Alt godt der? 684 00:29:44,260 --> 00:29:44,760 Awesome. 685 00:29:44,760 --> 00:29:48,045 >> Så nu er det dine guys tid til arbejde, da jeg har talt. 686 00:29:48,045 --> 00:29:49,220 687 00:29:49,220 --> 00:29:53,200 Så jeg vil have dig til bare oprette et array med heltal et, to og tre, 688 00:29:53,200 --> 00:29:54,660 og derefter få dem printet ud. 689 00:29:54,660 --> 00:29:58,050 Du behøver ikke at gøre, ligesom, main, bla, bla, bla, uanset hvad. 690 00:29:58,050 --> 00:30:00,840 Jeg vil bare have dig til at initialisere array og derefter oprette 691 00:30:00,840 --> 00:30:04,790 en for-løkke til at udskrive dem out-- eller en while-løkke, op til dig. 692 00:30:04,790 --> 00:30:07,600 >> Jeg vil bare give dig et par minutter til at arbejde på det. 693 00:30:07,600 --> 00:30:09,320 Jeg har tænkt mig at hvile min stemme. 694 00:30:09,320 --> 00:30:13,290 Hvis du har spørgsmål, er jeg glad til at komme rundt og tale med jer. 695 00:30:13,290 --> 00:30:15,290 Du er velkommen til at tale med hinanden. 696 00:30:15,290 --> 00:30:16,125 Få mere slik. 697 00:30:16,125 --> 00:30:17,181 698 00:30:17,181 --> 00:30:18,930 I virkeligheden vil jeg bare gå rundt med slik. 699 00:30:18,930 --> 00:30:19,600 Hvordan er det? 700 00:30:19,600 --> 00:30:22,974 701 00:30:22,974 --> 00:30:23,938 >> Vil du have noget? 702 00:30:23,938 --> 00:30:34,703 703 00:30:34,703 --> 00:30:36,675 Alle andre i dette rum vil have slik? 704 00:30:36,675 --> 00:30:47,030 705 00:30:47,030 --> 00:30:49,206 Du kan også tage mere end én, gutter. 706 00:30:49,206 --> 00:30:50,330 Tag en håndfuld, hvis du ønsker. 707 00:30:50,330 --> 00:30:52,690 708 00:30:52,690 --> 00:30:53,190 Kan lige så godt. 709 00:30:53,190 --> 00:30:54,929 710 00:30:54,929 --> 00:30:55,720 Alle andre gode? 711 00:30:55,720 --> 00:30:57,561 712 00:30:57,561 --> 00:30:58,060 OK. 713 00:30:58,060 --> 00:31:02,750 714 00:31:02,750 --> 00:31:07,290 >> Også, jeg kommer til at skabe en anonym Google Form, 715 00:31:07,290 --> 00:31:09,830 og du fyre kan bare indsende feedback efter hvert afsnit 716 00:31:09,830 --> 00:31:14,115 hvis der er noget, du ønsker at forbedre på eller noget, du vil have lavet. 717 00:31:14,115 --> 00:31:17,135 Hvis jeg er en lidt for peppy for dig, kan jeg nedtone det. 718 00:31:17,135 --> 00:31:18,510 719 00:31:18,510 --> 00:31:20,885 Jeg vil skabe det og sende det ud til jer alle bagefter. 720 00:31:20,885 --> 00:32:39,420 721 00:32:39,420 --> 00:32:40,020 >> Ok. 722 00:32:40,020 --> 00:32:41,050 Så lad os starte små. 723 00:32:41,050 --> 00:32:42,740 Hvordan ville vi initialisere vores array? 724 00:32:42,740 --> 00:32:49,690 725 00:32:49,690 --> 00:32:51,670 Hvad er typen af ​​vores array? 726 00:32:51,670 --> 00:32:52,410 En int, right? 727 00:32:52,410 --> 00:32:54,740 OK, så hvad vil du at ringe til din array? 728 00:32:54,740 --> 00:32:57,880 729 00:32:57,880 --> 00:32:59,230 Int array, cool. 730 00:32:59,230 --> 00:33:04,200 Okay, så vi har int int-array lig, og hvad har vi efter det? 731 00:33:04,200 --> 00:33:07,009 732 00:33:07,009 --> 00:33:08,259 STUDENT: [uhørligt] parentes. 733 00:33:08,259 --> 00:33:09,140 ALLISON: seler. 734 00:33:09,140 --> 00:33:10,330 735 00:33:10,330 --> 00:33:11,775 Og derefter inde i seler? 736 00:33:11,775 --> 00:33:14,360 737 00:33:14,360 --> 00:33:16,830 Et komma to komma tre. 738 00:33:16,830 --> 00:33:17,330 Cool. 739 00:33:17,330 --> 00:33:18,660 Så det er okay. 740 00:33:18,660 --> 00:33:21,480 Så nu har vi vores for-løkke. 741 00:33:21,480 --> 00:33:24,180 Så i den første del af vores for loop, hvad har vi? 742 00:33:24,180 --> 00:33:25,796 743 00:33:25,796 --> 00:33:27,420 >> STUDENT: Jeg er lig med 0? 744 00:33:27,420 --> 00:33:31,400 >> ALLISON: Så int Jeg er lig med 0, og hvad er vores tilstand? 745 00:33:31,400 --> 00:33:33,750 746 00:33:33,750 --> 00:33:36,120 Hvad jeg kommer til at være mindre end? 747 00:33:36,120 --> 00:33:39,510 Mindre end tre, og hvordan vi gør vi opdaterer jeg? 748 00:33:39,510 --> 00:33:41,630 Jeg plus plus, opdaterer det med én. 749 00:33:41,630 --> 00:33:46,150 Og så vil vi have nogle printf af heltal, 750 00:33:46,150 --> 00:33:49,530 og hvad er det sidste del, der er faktisk 751 00:33:49,530 --> 00:33:51,370 kommer til at sige, hvad vi skal udskrives? 752 00:33:51,370 --> 00:33:55,610 753 00:33:55,610 --> 00:33:59,120 Det ville være navnet på den array, som er int array, right? 754 00:33:59,120 --> 00:34:01,090 Og hvad der er i parentes af int array? 755 00:34:01,090 --> 00:34:02,540 756 00:34:02,540 --> 00:34:03,640 i. 757 00:34:03,640 --> 00:34:06,550 [? Så jeg?] Kaldte min eksempel, men der du går. 758 00:34:06,550 --> 00:34:07,939 759 00:34:07,939 --> 00:34:08,480 Ikke så slemt. 760 00:34:08,480 --> 00:34:09,250 Alle godt? 761 00:34:09,250 --> 00:34:10,220 762 00:34:10,220 --> 00:34:10,719 Cool. 763 00:34:10,719 --> 00:34:12,949 764 00:34:12,949 --> 00:34:14,340 >> Så vi er færdig med arrays. 765 00:34:14,340 --> 00:34:15,190 Congrats. 766 00:34:15,190 --> 00:34:18,274 Du formåede at gentage gennem alle til-- ja? 767 00:34:18,274 --> 00:34:19,705 >> STUDENT: [uhørligt] 768 00:34:19,705 --> 00:34:20,659 >> ALLISON: Ja. 769 00:34:20,659 --> 00:34:26,383 770 00:34:26,383 --> 00:34:27,798 >> STUDENT: Jeg har et spørgsmål. 771 00:34:27,798 --> 00:34:30,288 Er du formodes at indrykke seler? 772 00:34:30,288 --> 00:34:34,150 >> ALLISON: Så seler skal linje op med for-løkken, og derefter alt 773 00:34:34,150 --> 00:34:35,699 inde i seler skal indrykket. 774 00:34:35,699 --> 00:34:37,824 >> STUDENT: OK, bør det for-løkke blive indrykket? 775 00:34:37,824 --> 00:34:41,159 >> ALLISON: Den for-løkke ikke skal indrykket på dette punkt. 776 00:34:41,159 --> 00:34:46,750 Hvis du var i main, hvis vi faktisk havde en hovedfunktion her, 777 00:34:46,750 --> 00:34:48,929 det ville blive indrykket fra main. 778 00:34:48,929 --> 00:34:52,590 Men i dette tilfælde, er det fint. 779 00:34:52,590 --> 00:34:53,354 Ja, spørgsmål. 780 00:34:53,354 --> 00:34:55,687 >> STUDENT: Har du brug for at have parentes efter eksempel? 781 00:34:55,687 --> 00:34:59,050 782 00:34:59,050 --> 00:35:01,260 >> ALLISON: Ja, hvis du er initialisering det på den måde. 783 00:35:01,260 --> 00:35:03,430 784 00:35:03,430 --> 00:35:06,860 Så husk, dette er den anden måde for at formatere et array, hvor 785 00:35:06,860 --> 00:35:10,680 vi har de seler og derefter vores faktiske data adskilt af kommaer inden for. 786 00:35:10,680 --> 00:35:14,700 787 00:35:14,700 --> 00:35:17,281 >> STUDENT: Jeg troede, at der var beslag til dette eksempel. 788 00:35:17,281 --> 00:35:19,010 >> ALLISON: Nej, de er seler. 789 00:35:19,010 --> 00:35:20,039 De er seler. 790 00:35:20,039 --> 00:35:22,330 Hvis du formatere den den anden måde, det er seler. 791 00:35:22,330 --> 00:35:28,780 Hvis vi skulle sige, int example-- hvis vi ønskede netop en blank array til int'er, 792 00:35:28,780 --> 00:35:32,270 det ville være int eksempel konsoller tre. 793 00:35:32,270 --> 00:35:34,670 Konsollerne repræsenterer størrelse. 794 00:35:34,670 --> 00:35:36,720 Når du har seler, Det er de faktiske data 795 00:35:36,720 --> 00:35:39,244 du lægger ind i det på denne måde. 796 00:35:39,244 --> 00:35:40,535 Vi kan rulle tilbage virkelig hurtigt. 797 00:35:40,535 --> 00:35:42,370 798 00:35:42,370 --> 00:35:48,010 >> Så i denne ene, det er bare vores indledende array, initialisering. 799 00:35:48,010 --> 00:35:51,640 Og her er vi individuelt tildele pletter på dem, 800 00:35:51,640 --> 00:35:56,730 så dette repræsenterer indekset for vores array, hvilket er grunden til vi har parentes. 801 00:35:56,730 --> 00:36:01,630 Men her, hvis du bemærker, har vi forlod vores parentes uden en størrelse, 802 00:36:01,630 --> 00:36:05,969 og vi initialisere det med faktiske data all-in-one med seler. 803 00:36:05,969 --> 00:36:08,260 STUDENT: Så hvorfor har vi ikke parentes i dette eksempel? 804 00:36:08,260 --> 00:36:11,030 ALLISON: Så i hvilken del? 805 00:36:11,030 --> 00:36:14,645 STUDENT: Ville vi ikke Sig, int f.eks parentes 806 00:36:14,645 --> 00:36:19,710 lig seler [uhørligt] beslag for eksempel. 807 00:36:19,710 --> 00:36:20,900 >> ALLISON: Åh, undskyld. 808 00:36:20,900 --> 00:36:21,560 Du har ret. 809 00:36:21,560 --> 00:36:22,690 Vi har parenteser der. 810 00:36:22,690 --> 00:36:23,486 Sorry guys, mit dårlige. 811 00:36:23,486 --> 00:36:25,150 812 00:36:25,150 --> 00:36:27,560 Ja, du skal have parentes efter f.eks. 813 00:36:27,560 --> 00:36:28,850 Du har fuldstændig ret. 814 00:36:28,850 --> 00:36:29,750 >> STUDENT: [uhørligt] ikke at gøre det. 815 00:36:29,750 --> 00:36:31,270 >> ALLISON: Nej, du skal have beslag, fordi ellers er det 816 00:36:31,270 --> 00:36:32,810 ikke kommer til at erklære et array. 817 00:36:32,810 --> 00:36:33,685 STUDENT: [uhørligt]. 818 00:36:33,685 --> 00:36:34,200 Undskyld. 819 00:36:34,200 --> 00:36:36,200 >> ALLISON: Beklager, du har brug for parentes efter f.eks. 820 00:36:36,200 --> 00:36:36,620 821 00:36:36,620 --> 00:36:37,120 Typo. 822 00:36:37,120 --> 00:36:40,650 823 00:36:40,650 --> 00:36:43,160 God fangst, guld stjerne for dig. 824 00:36:43,160 --> 00:36:47,730 Også, hvis du spørger et spørgsmål, hvis du fyre ville bare fortælle mig jeres navne, 825 00:36:47,730 --> 00:36:48,570 Jeg ville elske det. 826 00:36:48,570 --> 00:36:50,630 Jeg ville elske at være i stand til kender alle jeres navne. 827 00:36:50,630 --> 00:36:53,187 Jeg har ikke tænkt mig at kulde ringe til dig, jeg faktisk 828 00:36:53,187 --> 00:36:54,520 bare ønsker at kende dine navne. 829 00:36:54,520 --> 00:36:57,530 Så vær venlig faktisk fortælle mig jeres navne. 830 00:36:57,530 --> 00:36:58,426 >> LEAH: Leah. 831 00:36:58,426 --> 00:36:59,340 >> ALLISON: Leah. 832 00:36:59,340 --> 00:37:03,960 OK, så functions-- jeg kender i korte træk de talte om dette i løbet af foredraget. 833 00:37:03,960 --> 00:37:07,590 Så funktioner er slags bare ligesom disse små bid-størrelse ting 834 00:37:07,590 --> 00:37:11,525 hvor du passerer i input, noget magiske sker, og du får udgange. 835 00:37:11,525 --> 00:37:12,680 836 00:37:12,680 --> 00:37:13,180 Cool. 837 00:37:13,180 --> 00:37:15,013 Så faktisk bruges dig en masse af disse allerede. 838 00:37:15,013 --> 00:37:15,970 839 00:37:15,970 --> 00:37:18,840 Få int, få snor, print f. 840 00:37:18,840 --> 00:37:21,790 Disse er alle funktioner hvor du bare ringe til dem, 841 00:37:21,790 --> 00:37:24,370 der er masser af magiske ting foregår i baggrunden 842 00:37:24,370 --> 00:37:27,390 at du ikke nødvendigvis se, og du får ud af, hvad du ønsker. 843 00:37:27,390 --> 00:37:30,280 Eller i det mindste får du hvad du håber, du ønsker. 844 00:37:30,280 --> 00:37:31,920 845 00:37:31,920 --> 00:37:35,620 >> Og dybest set det punkt funktioner, og en af ​​de vigtigste temaer i CS, 846 00:37:35,620 --> 00:37:38,700 er at bryde din kode i håndterbare stykker. 847 00:37:38,700 --> 00:37:41,520 Når du begynder at skrive disse rigtig lange programmer, 848 00:37:41,520 --> 00:37:44,970 eller i Scratch, når du havde denne store idé til et spil, 849 00:37:44,970 --> 00:37:48,070 du har brug for at være i stand til at bryde det ned til, ligesom, OK, hvordan skal jeg begynde? 850 00:37:48,070 --> 00:37:50,470 Hvad er de små stykker, som jeg har brug for? 851 00:37:50,470 --> 00:37:53,320 Åh, jeg har brug for at spørge bruger til noget. 852 00:37:53,320 --> 00:37:54,830 Nu har jeg brug for at udskrive noget. 853 00:37:54,830 --> 00:37:56,590 Åh, jeg har brug for at beregne denne værdi. 854 00:37:56,590 --> 00:38:00,050 >> Og lære at bryde op din kode og de store problemer, du 855 00:38:00,050 --> 00:38:02,740 har i disse små stykker og skabe funktioner 856 00:38:02,740 --> 00:38:05,330 er faktisk en af ​​de store hjørnestene i CS. 857 00:38:05,330 --> 00:38:06,440 858 00:38:06,440 --> 00:38:11,740 Så du kan tænke på en funktion, ligesom som en sort boks, en magisk sort boks, 859 00:38:11,740 --> 00:38:15,030 at du sætte tingene i og du får nogle output. 860 00:38:15,030 --> 00:38:16,290 861 00:38:16,290 --> 00:38:19,460 Og resten af ​​programmet behøver ikke nødvendigvis ved 862 00:38:19,460 --> 00:38:21,150 hvad der foregår inden for denne sorte boks. 863 00:38:21,150 --> 00:38:24,190 Alt det bekymrer sig om, er, hvad går ind og hvad der kommer ud. 864 00:38:24,190 --> 00:38:26,230 865 00:38:26,230 --> 00:38:26,730 Cool. 866 00:38:26,730 --> 00:38:27,820 >> Så hvorfor funktioner? 867 00:38:27,820 --> 00:38:33,240 Organization-- som jeg sagde, når du er beskæftiger sig med meget store kodebaser, 868 00:38:33,240 --> 00:38:37,357 hvordan du organiserer din kode vil være meget lettere, hvis du bruger funktioner. 869 00:38:37,357 --> 00:38:39,190 Fordi du vil være i stand være ligesom, OK, dette 870 00:38:39,190 --> 00:38:41,849 er, hvad denne funktion gør, og her er hvad en anden gør. 871 00:38:41,849 --> 00:38:43,890 Og du kan let se hvordan de alle passer sammen. 872 00:38:43,890 --> 00:38:45,590 873 00:38:45,590 --> 00:38:48,210 Så bryde det op i alt disse håndterbare subdelene. 874 00:38:48,210 --> 00:38:51,860 >> Så simplification-- jeg er sikker på du fyre alt så det, som jeg sagde, med Scratch. 875 00:38:51,860 --> 00:38:53,230 876 00:38:53,230 --> 00:38:56,790 Du har denne grand idé, og du er ligesom, hvordan gør alt dette arbejde? 877 00:38:56,790 --> 00:38:59,710 Men hvis du nærmer dig det stykkevis, du siger, OK, 878 00:38:59,710 --> 00:39:03,650 hvordan gør jeg en sprite flyde på tværs af skærmen? 879 00:39:03,650 --> 00:39:04,805 Det er en lille smule lettere. 880 00:39:04,805 --> 00:39:06,000 881 00:39:06,000 --> 00:39:09,590 Så god brug af funktionen gør din kode meget nemmere at læse. 882 00:39:09,590 --> 00:39:13,800 Det gør det nemmere at fejlsøge der som du kommer ind i din senere problemet sæt, 883 00:39:13,800 --> 00:39:15,900 du vil virkelig vil være i stand til at gøre. 884 00:39:15,900 --> 00:39:17,900 Og de er også lettere at designe og implementere. 885 00:39:17,900 --> 00:39:21,100 De kan kode en lille fungere relativt hurtigt 886 00:39:21,100 --> 00:39:25,260 og sørg for at det virker versus prøve at skabe hele denne lange program 887 00:39:25,260 --> 00:39:28,960 og derefter slags gå igennem og se, hvad der virker og hvad der ikke. 888 00:39:28,960 --> 00:39:30,300 >> Og så genanvendelighed. 889 00:39:30,300 --> 00:39:33,380 Så fungerer kun brug skal skrives én gang, 890 00:39:33,380 --> 00:39:35,586 og så kan du bruge dem så mange gange som muligt. 891 00:39:35,586 --> 00:39:37,210 Så det er ligesom, øko-venlige i en vis forstand. 892 00:39:37,210 --> 00:39:39,660 893 00:39:39,660 --> 00:39:42,070 Hvis du havde ting som print f, hvor du 894 00:39:42,070 --> 00:39:47,420 havde til at skrive ud den magi, der går bag udskrive f hver eneste gang 895 00:39:47,420 --> 00:39:51,040 du ønskede at udskrive noget, du ville være temmelig syg og træt af det 896 00:39:51,040 --> 00:39:51,650 ved udgangen. 897 00:39:51,650 --> 00:39:52,660 898 00:39:52,660 --> 00:39:55,292 >> En af de ting, som du vil lære i senere CS klasser 899 00:39:55,292 --> 00:39:57,000 eller en af ​​de bedste råd jeg får 900 00:39:57,000 --> 00:40:00,870 er, hvis du kopiere og indsætte kode, bør den sandsynligvis være en funktion. 901 00:40:00,870 --> 00:40:01,880 902 00:40:01,880 --> 00:40:06,007 Hvis du har den nøjagtig samme linjer alle hele din kode, 903 00:40:06,007 --> 00:40:08,090 hvis du indregnet dem ud, din kode ville sandsynligvis 904 00:40:08,090 --> 00:40:11,860 være, ligesom, fem gange kortere og være meget mere let at læse. 905 00:40:11,860 --> 00:40:15,230 Og i stedet for at forsøge at fejlfinde alle disse forskellige steder, hvor tingene 906 00:40:15,230 --> 00:40:18,021 kan gå galt, har du en funktion at du kommer til fejlfinding. 907 00:40:18,021 --> 00:40:19,230 908 00:40:19,230 --> 00:40:21,890 Og jeg lover, en masse af dette kan synes slags abstrakt nu 909 00:40:21,890 --> 00:40:24,620 men da du kommer ind senere og senere problem indstiller, 910 00:40:24,620 --> 00:40:28,950 det vil gøre en masse mere mening og virkelig blive kørt hjem. 911 00:40:28,950 --> 00:40:31,775 Er der nogen spørgsmål om funktioner indtil videre? 912 00:40:31,775 --> 00:40:32,650 Hvorfor vi bruger dem? 913 00:40:32,650 --> 00:40:34,775 Jeg ved, vi har ikke fået ind i Nitty Gritty endnu. 914 00:40:34,775 --> 00:40:40,610 Så definerer en function-- ligesom arrays, vi har brug for nogle slags of-- dette 915 00:40:40,610 --> 00:40:41,860 er blot den almindelige produktion. 916 00:40:41,860 --> 00:40:45,110 Så dette er en funktion, der er bare i Cube nogle input. 917 00:40:45,110 --> 00:40:50,120 Og på den næste side, faktisk, vi har alle disse awesome små ting her. 918 00:40:50,120 --> 00:40:52,420 Så kan alle læse at ud af nysgerrighed? 919 00:40:52,420 --> 00:40:55,050 Jeg kender den lilla og sort kan være lidt hårdt. 920 00:40:55,050 --> 00:41:00,730 >> Men store ting at know-- så den første en her er vores tilbagevenden type. 921 00:41:00,730 --> 00:41:05,270 Så dette er tale om output af denne funktion, når i dette tilfælde, 922 00:41:05,270 --> 00:41:08,990 vi sætte nogle tal, hvad vi er få, er, at antallet kubik. 923 00:41:08,990 --> 00:41:11,090 Så det burde være en int i dette tilfælde. 924 00:41:11,090 --> 00:41:14,055 Måske ville det være en dobbelt eller noget andet senere, men i dette tilfælde, 925 00:41:14,055 --> 00:41:14,555 det er en int. 926 00:41:14,555 --> 00:41:15,620 927 00:41:15,620 --> 00:41:19,440 >> Med c, du altid har brug for en tilbagevenden type. 928 00:41:19,440 --> 00:41:20,267 Det vil være en int. 929 00:41:20,267 --> 00:41:20,975 Det vil være en vis kassebeholdning. 930 00:41:20,975 --> 00:41:22,180 Det vil være en dobbelt. 931 00:41:22,180 --> 00:41:25,370 Men du skal angive, hvad denne funktion vil vende tilbage. 932 00:41:25,370 --> 00:41:26,480 933 00:41:26,480 --> 00:41:29,170 Ellers vil det yell på dig, og det vil ikke kompilere. 934 00:41:29,170 --> 00:41:30,462 Du vil være ked af, og jeg vil være ked af det. 935 00:41:30,462 --> 00:41:31,420 Og det er bare ikke godt. 936 00:41:31,420 --> 00:41:31,940 OK. 937 00:41:31,940 --> 00:41:34,290 >> Og så har vi vores funktion navn. 938 00:41:34,290 --> 00:41:38,440 Og som du kan se her, med c der er denne meget konsekvent paradigme. 939 00:41:38,440 --> 00:41:42,630 Hvad er din type, hvad er det navn, og derefter nogle andre ting i slutningen. 940 00:41:42,630 --> 00:41:45,550 Så vi har vores tilbagevenden type vores funktion navn, og derefter 941 00:41:45,550 --> 00:41:49,320 vi har vores header med vores parameter listen. 942 00:41:49,320 --> 00:41:52,080 >> Så parameterliste er, hvad der er denne funktion kommer til at tage i? 943 00:41:52,080 --> 00:41:56,360 En parameter liste er blot en synonym for, hvad er vores input? 944 00:41:56,360 --> 00:42:00,230 Og på samme måde, som vi nødt til at definere vores funktion 945 00:42:00,230 --> 00:42:03,210 og give det en tilbagevenden skriver, hver af vores input 946 00:42:03,210 --> 00:42:05,350 skal have en type forbundet med det. 947 00:42:05,350 --> 00:42:08,850 Så vi ved, hvad vores funktion kan faktisk arbejde med. 948 00:42:08,850 --> 00:42:11,290 >> Så i dette tilfælde har vi nogle int input. 949 00:42:11,290 --> 00:42:14,660 Så igen, vil det være den type og hvad du kalder det. 950 00:42:14,660 --> 00:42:16,500 951 00:42:16,500 --> 00:42:19,040 Og så, som du ser her, vi har vores krop. 952 00:42:19,040 --> 00:42:23,600 Så vi har nogle int output, at er blot vores input gange selv 953 00:42:23,600 --> 00:42:25,810 gange selv, som blot terninger det. 954 00:42:25,810 --> 00:42:27,610 Og så vender vi tilbage, at produktionen. 955 00:42:27,610 --> 00:42:32,140 >> Så som du kan se her, har vi en int gange en int gange en int, 956 00:42:32,140 --> 00:42:35,420 så det returnerer en int, som er blevet erklæret der. 957 00:42:35,420 --> 00:42:38,240 Så alt er sammenhængende. 958 00:42:38,240 --> 00:42:39,210 Alt er glade. 959 00:42:39,210 --> 00:42:40,250 Din funktion vil køre. 960 00:42:40,250 --> 00:42:41,192 961 00:42:41,192 --> 00:42:42,650 Og dette er kun den almindelige ting. 962 00:42:42,650 --> 00:42:46,750 Så altid har returtype, navn, og din parameter listen. 963 00:42:46,750 --> 00:42:48,830 Hver ting i dit parameter liste eller input, 964 00:42:48,830 --> 00:42:51,410 skal have en type forbundet med det. 965 00:42:51,410 --> 00:42:54,210 Og så har du din krop her med uanset 966 00:42:54,210 --> 00:42:55,590 du ønsker at gøre med dit input. 967 00:42:55,590 --> 00:42:57,390 968 00:42:57,390 --> 00:43:00,410 >> Og så selvfølgelig dig ønsker at vende tilbage noget. 969 00:43:00,410 --> 00:43:02,630 Undertiden funktioner vil blot vende tilbage. 970 00:43:02,630 --> 00:43:06,090 De behøver faktisk ikke tilbage noget for dig at bruge. 971 00:43:06,090 --> 00:43:08,660 Men du er nødt til at vende tilbage på en eller anden måde. 972 00:43:08,660 --> 00:43:12,900 Og når du laver dine egne funktioner, 973 00:43:12,900 --> 00:43:15,430 vi kan komme ind i det lidt dybere. 974 00:43:15,430 --> 00:43:18,880 Personligt, hvis du ønsker, der er en masse forskellige ting, du kan gøre der. 975 00:43:18,880 --> 00:43:21,350 976 00:43:21,350 --> 00:43:22,140 Alle godt? 977 00:43:22,140 --> 00:43:25,900 Noget på denne liste, som du vil have mig at gå over, at du ikke forstår? 978 00:43:25,900 --> 00:43:27,204 979 00:43:27,204 --> 00:43:28,120 Alle er godt der? 980 00:43:28,120 --> 00:43:29,071 981 00:43:29,071 --> 00:43:29,570 Cool. 982 00:43:29,570 --> 00:43:31,350 983 00:43:31,350 --> 00:43:32,120 Awesome. 984 00:43:32,120 --> 00:43:34,700 >> OK, så vi putter alt dette sammen nu. 985 00:43:34,700 --> 00:43:35,720 986 00:43:35,720 --> 00:43:41,201 Så vi har nogle int terning input, så dette er et komplet program her. 987 00:43:41,201 --> 00:43:42,950 Indtil nu, har jeg slags været at give dig 988 00:43:42,950 --> 00:43:45,699 guys snippets, der kan være at gå i et program. 989 00:43:45,699 --> 00:43:47,240 Vi har lige set på funktioner. 990 00:43:47,240 --> 00:43:48,448 Men her er et helt program. 991 00:43:48,448 --> 00:43:49,400 992 00:43:49,400 --> 00:43:53,690 Så hvor mange af jer husker den ord prototype fra forelæsning? 993 00:43:53,690 --> 00:43:54,750 994 00:43:54,750 --> 00:43:55,300 Cool. 995 00:43:55,300 --> 00:43:55,890 Vi har fået en. 996 00:43:55,890 --> 00:43:57,160 997 00:43:57,160 --> 00:43:58,110 Hvad er dit navn? 998 00:43:58,110 --> 00:43:58,850 >> STEPH: Steph. 999 00:43:58,850 --> 00:43:59,475 >> ALLISON: Steph? 1000 00:43:59,475 --> 00:44:01,030 OK, awesome. 1001 00:44:01,030 --> 00:44:03,310 Så behøver du huske, hvad en prototype er? 1002 00:44:03,310 --> 00:44:04,651 1003 00:44:04,651 --> 00:44:10,230 >> STUDENT: Du siger [uhørligt] før du rent faktisk beskæftige sig med det. 1004 00:44:10,230 --> 00:44:11,700 >> ALLISON: Kan du huske hvorfor? 1005 00:44:11,700 --> 00:44:13,158 >> STUDENT: Nej. 1006 00:44:13,158 --> 00:44:14,620 >> ALLISON: OK. 1007 00:44:14,620 --> 00:44:16,090 Guld stjerne. 1008 00:44:16,090 --> 00:44:19,470 Så ja, en prototype, vi har på forhånd, fordi ellers 1009 00:44:19,470 --> 00:44:21,260 vores compiler vil yell på os. 1010 00:44:21,260 --> 00:44:24,294 Det kommer til at sige, OK, hvad er denne terning funktion? 1011 00:44:24,294 --> 00:44:26,460 Ligesom, du bogstaveligt talt har fortalte mig noget om dette. 1012 00:44:26,460 --> 00:44:28,110 Det er ligesom, når du gå ind i et klasseværelse, 1013 00:44:28,110 --> 00:44:29,320 og nogen er ligesom, der er en quiz i dag. 1014 00:44:29,320 --> 00:44:31,380 Og du er ligesom, du aldrig fortalt mig om dette. 1015 00:44:31,380 --> 00:44:32,930 Jeg er ikke tilfreds med os. 1016 00:44:32,930 --> 00:44:34,300 1017 00:44:34,300 --> 00:44:37,020 Prototypen er dybest set gerne dit pensum siger, kigge. 1018 00:44:37,020 --> 00:44:37,900 Heads up. 1019 00:44:37,900 --> 00:44:39,570 Der kommer til at være en quiz på denne dag. 1020 00:44:39,570 --> 00:44:41,420 Må ikke flipper ud, når du kommer til det. 1021 00:44:41,420 --> 00:44:42,690 Du kommer til at være fint. 1022 00:44:42,690 --> 00:44:48,170 >> Så alt prototypen gør, er at fortælle main, jeg har tænkt mig at bruge denne funktion. 1023 00:44:48,170 --> 00:44:51,010 Jeg lover, jeg definere det senere. 1024 00:44:51,010 --> 00:44:52,260 Må ikke flipper ud på mig. 1025 00:44:52,260 --> 00:44:54,750 Bare samle og gøre, hvad jeg fortæller dig til. 1026 00:44:54,750 --> 00:44:58,880 Så vi har prototypen der bare for at gøre vores compiler glad. 1027 00:44:58,880 --> 00:45:04,360 Og det er dybest set et løfte, du har defineret denne funktion senere 1028 00:45:04,360 --> 00:45:07,960 og at du ikke bare ringer denne tilfældige ting, at det 1029 00:45:07,960 --> 00:45:10,070 ikke ved, hvad du er vil gøre. 1030 00:45:10,070 --> 00:45:11,910 >> Så i dette tilfælde, har vi main her. 1031 00:45:11,910 --> 00:45:14,660 Vi initialisere nogle heltal x. 1032 00:45:14,660 --> 00:45:15,620 Det er to. 1033 00:45:15,620 --> 00:45:17,510 Vi kommer til at printe ud, hvad x er. 1034 00:45:17,510 --> 00:45:18,800 Vi vil i Cube x. 1035 00:45:18,800 --> 00:45:21,520 Som du kan se, har vi vores funktion erklæring 1036 00:45:21,520 --> 00:45:23,770 hernede, at vi talte om tidligere. 1037 00:45:23,770 --> 00:45:28,260 Det vil terning x, og derefter, hvis vi husk, terningen funktionen faktisk 1038 00:45:28,260 --> 00:45:31,340 returnerer et heltal til os, der er lagret 1039 00:45:31,340 --> 00:45:35,860 ix igen, så vi kan udskrive ud otte eller terning x højre nu. 1040 00:45:35,860 --> 00:45:37,170 1041 00:45:37,170 --> 00:45:38,920 Giver det mening for alle? 1042 00:45:38,920 --> 00:45:40,360 Vi er gode? 1043 00:45:40,360 --> 00:45:41,160 Ok. 1044 00:45:41,160 --> 00:45:41,660 Awesome. 1045 00:45:41,660 --> 00:45:45,540 1046 00:45:45,540 --> 00:45:46,840 >> Ok. 1047 00:45:46,840 --> 00:45:50,879 Hvor mange af jer Husk dette, så dette 1048 00:45:50,879 --> 00:45:52,670 er dybest set bare din stak og din bunke, 1049 00:45:52,670 --> 00:45:56,510 blot en visualisering af hvor hukommelsen er lagret her. 1050 00:45:56,510 --> 00:45:58,200 1051 00:45:58,200 --> 00:46:01,400 Så vi blot ønsker at gøre sikker på, at du forstår 1052 00:46:01,400 --> 00:46:03,680 hvordan disse er repræsenteret i hukommelsen. 1053 00:46:03,680 --> 00:46:07,670 Hvis du tager klasser som CS61 og kram senere, 1054 00:46:07,670 --> 00:46:10,570 du kommer til at lære dette langt mere i dybden, og det er virkelig cool. 1055 00:46:10,570 --> 00:46:11,730 Jeg kan varmt anbefale det. 1056 00:46:11,730 --> 00:46:12,740 1057 00:46:12,740 --> 00:46:14,720 Men for nu, vil jeg give dig det overblik 1058 00:46:14,720 --> 00:46:16,950 så du ikke behøver at kender Nitty Gritty. 1059 00:46:16,950 --> 00:46:20,820 >> Så toppen blot et tekstsegment som indeholder de faktiske nuller og ettaller, 1060 00:46:20,820 --> 00:46:23,740 den binære for. 1061 00:46:23,740 --> 00:46:27,510 Og dette bruges til lagring af globale variabler, hvis du har nogen. 1062 00:46:27,510 --> 00:46:28,870 1063 00:46:28,870 --> 00:46:32,240 Når du bevæger dig ned, vi have, som du kan se her, 1064 00:46:32,240 --> 00:46:34,670 klargjorte data, initialiseret data, og derefter bunke. 1065 00:46:34,670 --> 00:46:35,800 1066 00:46:35,800 --> 00:46:38,584 >> Så vi kan ikke rigtig snakke om bunke lige nu. 1067 00:46:38,584 --> 00:46:39,500 Vi vil komme til det senere. 1068 00:46:39,500 --> 00:46:40,762 1069 00:46:40,762 --> 00:46:42,970 For nu, jeg bare gå til bølge mine hænder og være ligesom, 1070 00:46:42,970 --> 00:46:44,553 du behøver ikke at vide om dette nu. 1071 00:46:44,553 --> 00:46:46,100 1072 00:46:46,100 --> 00:46:49,060 Men vi vil tale lidt lidt om stakken. 1073 00:46:49,060 --> 00:46:53,050 Så stakken er where-- vi har zoom ind. 1074 00:46:53,050 --> 00:46:58,590 Dette er faktisk, hvordan programmet vi bare kiggede på optræder i hukommelsen. 1075 00:46:58,590 --> 00:47:01,630 >> Så sker der det, hver gang vi kalder en funktion, 1076 00:47:01,630 --> 00:47:04,180 vi får, hvad der kaldes en stak ramme, hvilket er en af ​​disse. 1077 00:47:04,180 --> 00:47:05,870 Så de vigtigste parametre. 1078 00:47:05,870 --> 00:47:07,944 Så det er de ting at vi går ind i main. 1079 00:47:07,944 --> 00:47:11,110 Så de er lige her i bunden, fordi det er den første ting, vi kalder. 1080 00:47:11,110 --> 00:47:13,401 Og så får vi til Mains lokale, og når vi siger, at, 1081 00:47:13,401 --> 00:47:15,970 mener vi de lokale variable der er lagret i main. 1082 00:47:15,970 --> 00:47:19,950 1083 00:47:19,950 --> 00:47:23,620 Så lokalbefolkningen her ville være ligesom, x er lig med to i dette tilfælde. 1084 00:47:23,620 --> 00:47:26,350 Fordi der er lokaliseret til main. 1085 00:47:26,350 --> 00:47:29,745 Skal alle huske rækkevidde, gå over, at der i foredrag? 1086 00:47:29,745 --> 00:47:31,517 1087 00:47:31,517 --> 00:47:32,017 OK. 1088 00:47:32,017 --> 00:47:36,110 Så, bare de variabler, initialiseres inden vigtigste. 1089 00:47:36,110 --> 00:47:38,550 Så det er derfor, vi har main [? vokal. ?] 1090 00:47:38,550 --> 00:47:40,390 >> Og så inden vigtigste, vi kalder terning. 1091 00:47:40,390 --> 00:47:41,000 Right? 1092 00:47:41,000 --> 00:47:44,510 Så får vi en anden ramme med cube parametre. 1093 00:47:44,510 --> 00:47:47,050 Så i dette tilfælde, kubens parametre er nu 1094 00:47:47,050 --> 00:47:50,800 x at vi passerede i, de to, som vi passerede i. 1095 00:47:50,800 --> 00:47:55,320 Og så cube lokalbefolkning, som er hvor selve cubing sker. 1096 00:47:55,320 --> 00:47:56,450 Og så er det tilbage. 1097 00:47:56,450 --> 00:48:02,120 >> Så hvad sker der, er som terning faktisk gør hvad det er meningen at gøre, det vender tilbage. 1098 00:48:02,120 --> 00:48:07,020 Når det vender tilbage, dette stel blade, og tilbage ned til main. 1099 00:48:07,020 --> 00:48:09,160 Og så inden vigtigste, vi kan faktisk udskrive det. 1100 00:48:09,160 --> 00:48:10,840 1101 00:48:10,840 --> 00:48:14,500 Så når du vender tilbage noget, når din funktion returnerer, 1102 00:48:14,500 --> 00:48:19,900 det er ligesom at videregive disse værdier til rammen under det, og derefter forlader. 1103 00:48:19,900 --> 00:48:22,200 Og tingene er nødt til at udføre i orden. 1104 00:48:22,200 --> 00:48:25,550 >> Og når du kommer til større programmer, vi kan gøre køligere og mere kompliceret 1105 00:48:25,550 --> 00:48:26,470 diagrammer. 1106 00:48:26,470 --> 00:48:29,070 Men for nu, det er blot en generel oversigt 1107 00:48:29,070 --> 00:48:31,110 så du har sådan en forståelse af, hvad 1108 00:48:31,110 --> 00:48:35,160 sker, når du ringer til en funktion og hvordan det faktisk ser i hukommelsen. 1109 00:48:35,160 --> 00:48:37,230 1110 00:48:37,230 --> 00:48:37,770 Cool? 1111 00:48:37,770 --> 00:48:38,353 Alle godt? 1112 00:48:38,353 --> 00:48:39,920 1113 00:48:39,920 --> 00:48:40,420 Awesome. 1114 00:48:40,420 --> 00:48:42,070 1115 00:48:42,070 --> 00:48:50,575 >> Så det er en, der er blot forsøger at bytte ting. 1116 00:48:50,575 --> 00:48:52,260 1117 00:48:52,260 --> 00:48:54,930 Som vi ser her, har vi vores funktion prototype 1118 00:48:54,930 --> 00:48:56,900 så vores compiler ikke yell på os. 1119 00:48:56,900 --> 00:48:59,220 Vi har nogle main, og vi ønsker at skifte x og y. 1120 00:48:59,220 --> 00:49:00,320 1121 00:49:00,320 --> 00:49:04,129 De har ikke gjort denne demo i foredrag endnu, har de? 1122 00:49:04,129 --> 00:49:04,670 De har ikke? 1123 00:49:04,670 --> 00:49:05,900 OK. 1124 00:49:05,900 --> 00:49:08,450 Så vi kommer til at gå i denne meget kort. 1125 00:49:08,450 --> 00:49:12,210 Du får ind i dette eksempel mere i dybden, tror jeg, i denne uge. 1126 00:49:12,210 --> 00:49:15,680 Og så i næste uge kan vi virkelig dykke ned i, hvorfor dette ikke virker. 1127 00:49:15,680 --> 00:49:18,810 >> Så vi har dette tomrum funktion her-- swap. 1128 00:49:18,810 --> 00:49:20,720 Så void betyder blot, at intet er tilbage. 1129 00:49:20,720 --> 00:49:22,000 1130 00:49:22,000 --> 00:49:24,110 Og vi har swap int a og int b. 1131 00:49:24,110 --> 00:49:27,046 Og vi har nogle midlertidige variabel, der er en. 1132 00:49:27,046 --> 00:49:30,050 a bliver tildelt til B, og derefter B bliver tildelt temp 1133 00:49:30,050 --> 00:49:32,235 således at en og BS værdier er nu skiftet. 1134 00:49:32,235 --> 00:49:33,510 1135 00:49:33,510 --> 00:49:36,030 >> Men plot twist, dette virker ikke. 1136 00:49:36,030 --> 00:49:37,390 1137 00:49:37,390 --> 00:49:42,380 Og en del af det faktisk har at gøre med det faktum, at en 1138 00:49:42,380 --> 00:49:48,800 og b her, dem, der bliver vedtaget i her, er faktisk kopier af x og y. 1139 00:49:48,800 --> 00:49:53,220 Så når funktionen faktisk returnerer, den skifter kopierne, men ikke 1140 00:49:53,220 --> 00:49:55,960 den faktiske x- og y s. 1141 00:49:55,960 --> 00:50:02,370 Så en måde at tænke på det er at-- foregive disse er swap. 1142 00:50:02,370 --> 00:50:03,130 OK? 1143 00:50:03,130 --> 00:50:05,390 Så i main, vi har x og y initialiseret. 1144 00:50:05,390 --> 00:50:06,530 1145 00:50:06,530 --> 00:50:10,760 Men når vi faktisk gå op disse rammer med swap, 1146 00:50:10,760 --> 00:50:15,740 vi passerer værdier over til det, og de er initialiseret. 1147 00:50:15,740 --> 00:50:18,570 >> Og de kun nogensinde bor lige her. 1148 00:50:18,570 --> 00:50:19,796 Så a og b bor her. 1149 00:50:19,796 --> 00:50:20,670 Og de bliver byttet. 1150 00:50:20,670 --> 00:50:21,870 1151 00:50:21,870 --> 00:50:26,190 Men når vi vender tilbage, gør vi ikke gøre noget med a og b. en 1152 00:50:26,190 --> 00:50:28,980 b orlov med vores funktion. 1153 00:50:28,980 --> 00:50:30,850 Og så x og y forblive den samme. 1154 00:50:30,850 --> 00:50:31,960 1155 00:50:31,960 --> 00:50:39,665 Du får mere ind i, hvordan du løser det, og hvordan vi rent faktisk behandler det senere. 1156 00:50:39,665 --> 00:50:40,750 1157 00:50:40,750 --> 00:50:43,740 >> Men det er bare én ting at slags huske. 1158 00:50:43,740 --> 00:50:45,270 Brug den til fremtiden. 1159 00:50:45,270 --> 00:50:48,050 Må ikke bekymre dig, hvis det ikke gjorde alle forstand i verden. 1160 00:50:48,050 --> 00:50:49,510 1161 00:50:49,510 --> 00:50:51,440 De er kopier er den største ting. 1162 00:50:51,440 --> 00:50:54,580 Hvis du kommer til at tage noget væk fra det, du har bestået i kopier. 1163 00:50:54,580 --> 00:50:56,410 Så originalerne forbliver de samme. 1164 00:50:56,410 --> 00:50:58,170 1165 00:50:58,170 --> 00:50:58,770 Alle godt? 1166 00:50:58,770 --> 00:51:00,280 1167 00:51:00,280 --> 00:51:00,930 Cool. 1168 00:51:00,930 --> 00:51:02,295 >> Så kommandolinjeargumenter. 1169 00:51:02,295 --> 00:51:03,520 1170 00:51:03,520 --> 00:51:07,630 Jeg er sikker på i starten jer alle havde de store, ligesom, int main hulrum. 1171 00:51:07,630 --> 00:51:09,517 Og du er ligesom, OK cool. 1172 00:51:09,517 --> 00:51:10,350 Jeg er faktisk ligeglad. 1173 00:51:10,350 --> 00:51:12,360 Det er lige hvad jeg skal skrive. 1174 00:51:12,360 --> 00:51:16,349 Men i dine nye programmer, især i denne pset, 1175 00:51:16,349 --> 00:51:17,890 og hvorfor er der kridt på jorden? 1176 00:51:17,890 --> 00:51:19,640 1177 00:51:19,640 --> 00:51:22,680 >> Med din næste pset, er du vil være at se dette. 1178 00:51:22,680 --> 00:51:26,130 Int main, int arg c, string bue v, parentes. 1179 00:51:26,130 --> 00:51:28,770 Så fra hvad vi lige lært dag, hvad 1180 00:51:28,770 --> 00:51:32,190 mener vi, at anden parameter eller at andet element er her? 1181 00:51:32,190 --> 00:51:34,830 1182 00:51:34,830 --> 00:51:35,824 Det er et array. 1183 00:51:35,824 --> 00:51:36,615 Hvilken type af array? 1184 00:51:36,615 --> 00:51:38,430 1185 00:51:38,430 --> 00:51:40,690 String array, ja. 1186 00:51:40,690 --> 00:51:41,980 Cool. 1187 00:51:41,980 --> 00:51:45,320 Så det er hvordan du vil at erklære disse nu. 1188 00:51:45,320 --> 00:51:48,570 >> Er der nogen der kan huske hvad disse står for? 1189 00:51:48,570 --> 00:51:52,551 1190 00:51:52,551 --> 00:51:53,050 Nej? 1191 00:51:53,050 --> 00:51:54,020 1192 00:51:54,020 --> 00:51:54,520 Hmm? 1193 00:51:54,520 --> 00:51:55,640 >> STUDENT: arg c. 1194 00:51:55,640 --> 00:51:56,961 1195 00:51:56,961 --> 00:51:58,950 >> ALLISON: Så arg c holder en tæller. 1196 00:51:58,950 --> 00:51:59,450 Det er en int. 1197 00:51:59,450 --> 00:52:00,615 Det er et tal, right? 1198 00:52:00,615 --> 00:52:02,240 Så hvad tror du, at antallet er af? 1199 00:52:02,240 --> 00:52:08,260 1200 00:52:08,260 --> 00:52:08,760 Ja. 1201 00:52:08,760 --> 00:52:11,450 Så arg c er antallet af strenge at gøre kommandolinjen op. 1202 00:52:11,450 --> 00:52:12,560 1203 00:52:12,560 --> 00:52:18,499 Så hvis vi skulle do-- faktisk, der er eksempler efter dette, 1204 00:52:18,499 --> 00:52:19,790 så det vil jeg ikke komme foran mig. 1205 00:52:19,790 --> 00:52:21,299 1206 00:52:21,299 --> 00:52:23,840 Det er en række strenge, bare gøre din kommandolinje op. 1207 00:52:23,840 --> 00:52:35,080 >> Så når du gør det, ligesom, dot skråstreg Mario, det er en streng, der gør det op. 1208 00:52:35,080 --> 00:52:38,520 I dette stykke, vil du faktisk være fodring ting i kommandolinjen, 1209 00:52:38,520 --> 00:52:41,750 som jeg er sikker på du fyre, der har læst spec sav. 1210 00:52:41,750 --> 00:52:44,470 Så i de tilfælde, måske vil du har to eller tre argumenter. 1211 00:52:44,470 --> 00:52:45,652 1212 00:52:45,652 --> 00:52:48,360 Det kommer til at være en nyttig ting at bruge. 1213 00:52:48,360 --> 00:52:51,500 >> Og så arg v, som vi sagde, er bare en streng array. 1214 00:52:51,500 --> 00:52:57,000 Så der faktisk gemmer det du input til kommandolinjen. 1215 00:52:57,000 --> 00:52:59,960 Så vi har disse. 1216 00:52:59,960 --> 00:53:02,850 Du har nogle dot skråstreg kopiere infile outfile. 1217 00:53:02,850 --> 00:53:06,670 Så hvis arg c er antallet af strenge at vi passerer ind i kommando 1218 00:53:06,670 --> 00:53:09,080 linje, hvad er vores arg c i dette tilfælde? 1219 00:53:09,080 --> 00:53:14,520 1220 00:53:14,520 --> 00:53:15,850 Tre. 1221 00:53:15,850 --> 00:53:16,690 Præcis. 1222 00:53:16,690 --> 00:53:20,086 >> Så hvad er arg v på nul? 1223 00:53:20,086 --> 00:53:21,710 Så hvad er den første ting, vi har gemt? 1224 00:53:21,710 --> 00:53:24,640 1225 00:53:24,640 --> 00:53:26,290 Dot skråstreg kopi, præcis. 1226 00:53:26,290 --> 00:53:28,065 Og derefter det andet ville være infile. 1227 00:53:28,065 --> 00:53:29,290 1228 00:53:29,290 --> 00:53:30,930 Den tredje vil være outfile. 1229 00:53:30,930 --> 00:53:32,390 Så hvad med arg v tre? 1230 00:53:32,390 --> 00:53:35,810 1231 00:53:35,810 --> 00:53:39,370 Det ville være null, fordi det er I slutningen af ​​vores array, right? 1232 00:53:39,370 --> 00:53:40,600 1233 00:53:40,600 --> 00:53:41,460 Cool. 1234 00:53:41,460 --> 00:53:44,500 >> Og hvad så om det sjette en? 1235 00:53:44,500 --> 00:53:45,900 Det er lidt af et trick spørgsmål. 1236 00:53:45,900 --> 00:53:46,400 Ish. 1237 00:53:46,400 --> 00:53:49,027 1238 00:53:49,027 --> 00:53:49,943 Ved vi, hvad det er? 1239 00:53:49,943 --> 00:53:50,960 1240 00:53:50,960 --> 00:53:51,690 Det er udefineret. 1241 00:53:51,690 --> 00:53:53,170 Vi har ingen idé om, hvad det kunne være. 1242 00:53:53,170 --> 00:53:57,000 Det er hvad der er rigtigt efter array i hukommelsen, 1243 00:53:57,000 --> 00:54:00,220 og vi har ingen anelse om, hvad det er. 1244 00:54:00,220 --> 00:54:03,500 Og det er farligt at røre dem, ting, fordi for alle du kender, 1245 00:54:03,500 --> 00:54:07,080 det er en del af hukommelse, som du bør ikke være adgang til eller null. 1246 00:54:07,080 --> 00:54:09,000 Og det kan gøre skøre ting. 1247 00:54:09,000 --> 00:54:11,690 Det kaldes over-indeksering din bundet til dit array. 1248 00:54:11,690 --> 00:54:14,785 Må ikke gå uden for rammerne af din array, eller dårlige ting kan ske. 1249 00:54:14,785 --> 00:54:16,274 1250 00:54:16,274 --> 00:54:18,940 Du kommer tilbage, og ligesom de love i fysik er blevet ødelagt 1251 00:54:18,940 --> 00:54:19,481 eller noget. 1252 00:54:19,481 --> 00:54:21,021 1253 00:54:21,021 --> 00:54:21,520 Cool. 1254 00:54:21,520 --> 00:54:22,895 Giver det mening for alle? 1255 00:54:22,895 --> 00:54:23,810 1256 00:54:23,810 --> 00:54:25,025 Ikke alt for dårlig. 1257 00:54:25,025 --> 00:54:28,926 >> Så nu, alle er favorit del, pset gennemgang. 1258 00:54:28,926 --> 00:54:29,426 Yay! 1259 00:54:29,426 --> 00:54:30,530 1260 00:54:30,530 --> 00:54:31,030 OK. 1261 00:54:31,030 --> 00:54:33,830 Så for dem af jer der har ikke læst pset spec, 1262 00:54:33,830 --> 00:54:36,790 du laver nogle virkelig cool stuff med kryptering. 1263 00:54:36,790 --> 00:54:39,360 Du kommer til at skabe en Ceasar Cipher og en Vigenere Cipher. 1264 00:54:39,360 --> 00:54:42,000 1265 00:54:42,000 --> 00:54:45,480 Du bør absolut læse spec at se, hvordan de arbejder. 1266 00:54:45,480 --> 00:54:49,650 Og hvis du har nogen problemer omkring hvad det bør faktisk gøre, 1267 00:54:49,650 --> 00:54:52,920 kan du komme tale med mig, email mig eller tekst mig. 1268 00:54:52,920 --> 00:54:53,420 Jeg er rundt. 1269 00:54:53,420 --> 00:54:54,780 1270 00:54:54,780 --> 00:54:57,070 >> Så der er tre vigtigste ting her, at vi 1271 00:54:57,070 --> 00:55:00,440 ønsker at tale om-- bare lidt af en udvidelse af foredrag. 1272 00:55:00,440 --> 00:55:03,645 Ting, som du måske ikke kender om, nyttige tips og værktøjer. 1273 00:55:03,645 --> 00:55:05,520 Så vi kommer til at gøre en hurtig gennemgang af ASCII, 1274 00:55:05,520 --> 00:55:10,420 fordi det vil være super vigtigt for Vigenere s Cipher. 1275 00:55:10,420 --> 00:55:11,809 1276 00:55:11,809 --> 00:55:14,100 Vi kommer til konvertering af kommandolinje-indgange, som 1277 00:55:14,100 --> 00:55:17,160 vil være meget nyttigt for Caesar Cipher. 1278 00:55:17,160 --> 00:55:18,133 Og så modulo. 1279 00:55:18,133 --> 00:55:20,220 1280 00:55:20,220 --> 00:55:21,210 Cool. 1281 00:55:21,210 --> 00:55:24,005 >> Så ASCII kortlægger tegn til tal. 1282 00:55:24,005 --> 00:55:25,270 1283 00:55:25,270 --> 00:55:26,365 Dette er en stor diagram. 1284 00:55:26,365 --> 00:55:28,115 Du skal have denne bogmærke eller andet sted. 1285 00:55:28,115 --> 00:55:29,310 1286 00:55:29,310 --> 00:55:33,250 Du vil have den til Deres første midtvejsevaluering. 1287 00:55:33,250 --> 00:55:36,320 Jeg er temmelig sikker på at alle har dette skemaet på deres mid-term sheet. 1288 00:55:36,320 --> 00:55:37,810 Så lære det. 1289 00:55:37,810 --> 00:55:38,410 Elsker det. 1290 00:55:38,410 --> 00:55:39,740 Hold det handy. 1291 00:55:39,740 --> 00:55:41,210 Det vil være nyttigt. 1292 00:55:41,210 --> 00:55:45,630 >> Og alt det er, er en kodning der kortlægger alfabetiske, numeriske, 1293 00:55:45,630 --> 00:55:47,740 og andre tegn til tal for vores computer. 1294 00:55:47,740 --> 00:55:49,947 Fordi naturligvis i ende, alt, hvad vi opbevarer 1295 00:55:49,947 --> 00:55:52,030 kommer til at få konverteret ned til nuller og ettaller, 1296 00:55:52,030 --> 00:55:55,200 så vi har brug for nogle måde at repræsentere tekst og tegn, at vi alle 1297 00:55:55,200 --> 00:55:59,105 vant til at se som en slags nummer. 1298 00:55:59,105 --> 00:56:00,370 1299 00:56:00,370 --> 00:56:05,880 >> Så som vi ser her, har vi store bogstaver A, som er dér. 1300 00:56:05,880 --> 00:56:06,555 Det er 65 år. 1301 00:56:06,555 --> 00:56:07,570 1302 00:56:07,570 --> 00:56:09,660 Og små bogstaver A er 97. 1303 00:56:09,660 --> 00:56:13,170 Så du kan regne out-- som jeg sagde tidligere, 1304 00:56:13,170 --> 00:56:16,532 hvis du havde matrix af multiple strygere, hvad hver af dem 1305 00:56:16,532 --> 00:56:17,490 har en null terminator. 1306 00:56:17,490 --> 00:56:18,480 Det ville være et mellemrum. 1307 00:56:18,480 --> 00:56:22,581 Rummet har sin egen special-- Jeg glemmer, hvor det er her. 1308 00:56:22,581 --> 00:56:23,080 Ah. 1309 00:56:23,080 --> 00:56:24,700 32 er rummet. 1310 00:56:24,700 --> 00:56:27,090 Så alt kort til det. 1311 00:56:27,090 --> 00:56:28,680 1312 00:56:28,680 --> 00:56:29,740 >> Så vi har ASCII matematik. 1313 00:56:29,740 --> 00:56:31,080 1314 00:56:31,080 --> 00:56:34,290 Pro tip-- i Vigenere s, du kan blive fristet 1315 00:56:34,290 --> 00:56:39,480 til at konvertere dine numre til heltal, men det er faktisk bedre praksis 1316 00:56:39,480 --> 00:56:43,860 at være i stand til at bruge tegn som denne 1317 00:56:43,860 --> 00:56:45,820 når du faktisk manipulere dem. 1318 00:56:45,820 --> 00:56:48,950 Så hvis du ønsker at bruge tal, du kan. 1319 00:56:48,950 --> 00:56:55,260 Men en bedre måde, eller en måde, der vi har en tendens til at lide jer til at gøre det, 1320 00:56:55,260 --> 00:56:57,830 er på denne måde, hvor du er faktisk fratrække tegn. 1321 00:56:57,830 --> 00:56:58,840 1322 00:56:58,840 --> 00:57:02,830 >> Så jeg vil have dig fyre til slags finde disse ud. 1323 00:57:02,830 --> 00:57:05,070 Hvorfor ikke du prøve hver anden? 1324 00:57:05,070 --> 00:57:07,580 1325 00:57:07,580 --> 00:57:09,830 Så gør det første, de tredje og femte. 1326 00:57:09,830 --> 00:57:11,160 1327 00:57:11,160 --> 00:57:15,000 Fordi jeg vil være sikker på, at vi taler om alt, hvad vi har brug for at snakke om. 1328 00:57:15,000 --> 00:57:17,410 1329 00:57:17,410 --> 00:57:20,259 Jeg vil blot sige, en af ​​de vigtige ting at-- oh vente, 1330 00:57:20,259 --> 00:57:21,550 du fyre har ikke set denne ene. 1331 00:57:21,550 --> 00:57:23,710 OK, så gør de første tre. 1332 00:57:23,710 --> 00:57:24,430 Lad os gøre det. 1333 00:57:24,430 --> 00:57:25,971 Fordi vi er nødt til at snakke om modulo. 1334 00:57:25,971 --> 00:57:27,810 1335 00:57:27,810 --> 00:57:28,310 Jeg kender. 1336 00:57:28,310 --> 00:57:28,851 Math er hårdt. 1337 00:57:28,851 --> 00:57:29,870 1338 00:57:29,870 --> 00:57:30,980 Du kan bruge en lommeregner. 1339 00:57:30,980 --> 00:57:31,580 Det er OK. 1340 00:57:31,580 --> 00:57:37,464 1341 00:57:37,464 --> 00:57:40,380 Eller trække en ASCII tabel, fordi du sandsynligvis vil ønsker det. 1342 00:57:40,380 --> 00:58:03,660 1343 00:58:03,660 --> 00:58:04,820 >> Cool. 1344 00:58:04,820 --> 00:58:07,960 Så jeg vil hurtigt gå jer gennem disse. 1345 00:58:07,960 --> 00:58:11,120 Så folk har ASCII tabeller trukket op? 1346 00:58:11,120 --> 00:58:15,645 Hvad er vores numerisk nummer for små bogstaver A? 1347 00:58:15,645 --> 00:58:16,270 STUDENT: Seven. 1348 00:58:16,270 --> 00:58:19,420 1349 00:58:19,420 --> 00:58:24,550 >> ALLISON: Så små bogstaver A er 97 og store bogstaver A er 65. 1350 00:58:24,550 --> 00:58:26,390 Så 97 minus 65? 1351 00:58:26,390 --> 00:58:27,782 1352 00:58:27,782 --> 00:58:28,570 >> PUBLIKUM: 32? 1353 00:58:28,570 --> 00:58:33,260 1354 00:58:33,260 --> 00:58:35,630 >> ALLISON: 62, ja. 1355 00:58:35,630 --> 00:58:38,675 Så i dette tilfælde, hvad ville det udskrive? 1356 00:58:38,675 --> 00:58:40,360 Det første? 1357 00:58:40,360 --> 00:58:43,830 Hvis vi har procent d, hvad ville det indikere? 1358 00:58:43,830 --> 00:58:45,980 1359 00:58:45,980 --> 00:58:46,730 STUDENT: En række. 1360 00:58:46,730 --> 00:58:48,604 ALLISON: Vi udskriver en egentlig nummer. 1361 00:58:48,604 --> 00:58:50,770 Så vi er faktisk i gang at udskrive 32 her. 1362 00:58:50,770 --> 00:58:56,360 Og hvis det var procent c, 32 ville give os en plads. 1363 00:58:56,360 --> 00:58:57,700 1364 00:58:57,700 --> 00:59:01,670 Så forstå, at tegn kan udskrives 1365 00:59:01,670 --> 00:59:06,140 både som tal og som de faktiske tegn 1366 00:59:06,140 --> 00:59:11,080 er virkelig vigtigt, og betale opmærksom på de faktiske typer 1367 00:59:11,080 --> 00:59:12,040 at vi laver her. 1368 00:59:12,040 --> 00:59:14,520 1369 00:59:14,520 --> 00:59:15,020 Cool. 1370 00:59:15,020 --> 00:59:18,862 Så for hver anden af ​​disse, hvad skal vi skal udskrive? 1371 00:59:18,862 --> 00:59:19,825 >> STUDENT: En karakter. 1372 00:59:19,825 --> 00:59:20,830 >> ALLISON: En karakter. 1373 00:59:20,830 --> 00:59:21,330 Cool. 1374 00:59:21,330 --> 00:59:24,260 Så hvis du fyre ønsker at vide, du kan arbejde disse ud på egen hånd. 1375 00:59:24,260 --> 00:59:25,900 Hvis du har problemer, email mig. 1376 00:59:25,900 --> 00:59:28,950 Men den anden vil udskrive en lille b. 1377 00:59:28,950 --> 00:59:32,910 Den tredje vil udskrive en stort B. Den fjerde vil udskrive 1378 00:59:32,910 --> 00:59:36,410 ud et stort C, og sidste vil være et lille A. 1379 00:59:36,410 --> 00:59:42,530 Og den sidste en-- vi faktisk går at komme ind i, hvad det skøre procent 1380 00:59:42,530 --> 00:59:45,020 tegn selv betyder et par dias. 1381 00:59:45,020 --> 00:59:46,667 Så prøv dem på din egen. 1382 00:59:46,667 --> 00:59:48,500 Hvis du har problemer, bedes komme tale til mig. 1383 00:59:48,500 --> 00:59:49,655 1384 00:59:49,655 --> 00:59:53,290 Hvis du er typisk i Adams D hall, du skal nok finde mig rundt. 1385 00:59:53,290 --> 00:59:54,760 1386 00:59:54,760 --> 00:59:55,760 >> Så atoi. 1387 00:59:55,760 --> 00:59:59,660 Hvor mange af jer har set denne funktion eller hørt om det på alle? 1388 00:59:59,660 --> 01:00:00,380 1389 01:00:00,380 --> 01:00:00,880 Anyone? 1390 01:00:00,880 --> 01:00:02,100 1391 01:00:02,100 --> 01:00:02,600 Cool. 1392 01:00:02,600 --> 01:00:06,250 Så hvad det egentlig står for er ASCII til heltal. 1393 01:00:06,250 --> 01:00:13,150 Så hvad du kan gøre er, med Cæsar, for dem, der læser spec, 1394 01:00:13,150 --> 01:00:16,460 du kommer til at gøre dot skråstreg Caesar efter at du skriver dit program, 1395 01:00:16,460 --> 01:00:18,690 og så er du nødt til input nogle tal, som du 1396 01:00:18,690 --> 01:00:24,780 ønsker at indkode din hemmelige besked med. 1397 01:00:24,780 --> 01:00:30,700 >> Men, hvis vi husker, alle vores indgange gemmes som strenge. 1398 01:00:30,700 --> 01:00:31,390 Right? 1399 01:00:31,390 --> 01:00:35,160 Vi har en arg v matrix det er alt streng type. 1400 01:00:35,160 --> 01:00:37,870 Så hvis du bare prøve at trække det ene, det vil 1401 01:00:37,870 --> 01:00:43,240 mener, at den ene eller hvad nummer du har brugt, er faktisk et tegn. 1402 01:00:43,240 --> 01:00:45,490 Så du kommer til at få nogle vanvittige resultater. 1403 01:00:45,490 --> 01:00:48,200 Så hvis du rent faktisk ønsker at gøre dette til et heltal 1404 01:00:48,200 --> 01:00:52,060 som du kan bruge til at manipulere Deres ord eller dit budskab, 1405 01:00:52,060 --> 01:00:53,366 du ønsker at bruge atoi. 1406 01:00:53,366 --> 01:00:56,320 atoi blot konverterer din streng til et int. 1407 01:00:56,320 --> 01:01:04,530 >> Så hvis vi har en perlerække af 12 år, hvis vi kalder atoi den 12., eller hvad dette input er, 1408 01:01:04,530 --> 01:01:07,370 det faktisk vil vende tilbage til dig heltal. 1409 01:01:07,370 --> 01:01:10,610 Ikke det tegn eller strengen 12. 1410 01:01:10,610 --> 01:01:14,230 Hvilket, når du starter at tilføje, at til tal, 1411 01:01:14,230 --> 01:01:17,710 vil være meget forskellig, fordi strengen 12 er 1412 01:01:17,710 --> 01:01:21,210 nogle vanvittige tal i ASCII, men det hele tal 12 1413 01:01:21,210 --> 01:01:23,390 er faktisk 12, hvilket er hvad du ønsker. 1414 01:01:23,390 --> 01:01:25,630 Så du ønsker at sørge for at bruge atoi. 1415 01:01:25,630 --> 01:01:29,203 >> Du kommer til at have dette i Cæsar, fordi du 1416 01:01:29,203 --> 01:01:32,520 brug for int leveres af bruger i kommandolinjen. 1417 01:01:32,520 --> 01:01:35,230 Men når de sætter det i kommandoen linje, gemmes som en streng 1418 01:01:35,230 --> 01:01:35,813 til at begynde med. 1419 01:01:35,813 --> 01:01:36,950 1420 01:01:36,950 --> 01:01:38,210 Giver det mening? 1421 01:01:38,210 --> 01:01:40,590 Du behøver ikke nødvendigvis brug for dette for Vigenere. 1422 01:01:40,590 --> 01:01:43,180 Med Vigenere, som jeg sagde før, bør du prøve og bruge 1423 01:01:43,180 --> 01:01:46,600 ASCII matematik, der ligner mere dette, hvor du faktisk 1424 01:01:46,600 --> 01:01:49,320 ved hjælp af de tegn, som vi er givet til dig. 1425 01:01:49,320 --> 01:01:50,970 1426 01:01:50,970 --> 01:01:51,470 Cool. 1427 01:01:51,470 --> 01:01:52,970 1428 01:01:52,970 --> 01:01:54,170 Alle godt der? 1429 01:01:54,170 --> 01:01:56,530 1430 01:01:56,530 --> 01:01:57,480 Awesome. 1431 01:01:57,480 --> 01:01:59,030 >> Så modulo. 1432 01:01:59,030 --> 01:02:01,950 Så hvad nu hvis du er givet dette enorme antal for Cæsar? 1433 01:02:01,950 --> 01:02:03,720 1434 01:02:03,720 --> 01:02:07,970 Du har denne idé om, at hvis du er på Z, og du er 1435 01:02:07,970 --> 01:02:11,020 givet en nummer to, det betyder at du need-- 1436 01:02:11,020 --> 01:02:15,130 Z bliver den anden brev efter sig selv, right? 1437 01:02:15,130 --> 01:02:20,800 Så du har brug for at en eller anden måde vikles rundt, og modulo er den måde at gøre det. 1438 01:02:20,800 --> 01:02:23,310 Så alt det gør, er det giver dig resten 1439 01:02:23,310 --> 01:02:25,660 af opdelingen af ​​den første tal med det andet. 1440 01:02:25,660 --> 01:02:28,660 Og vi har nogle eksempler for gøre, at en lidt mere konkret. 1441 01:02:28,660 --> 01:02:34,390 Men dybest set, du bruger modulo når du ønsker at gøre noget wrap around. 1442 01:02:34,390 --> 01:02:36,950 >> Så hvis du kun ønsker det numre én gennem otte, 1443 01:02:36,950 --> 01:02:39,670 kan du bruge modulo på noget andet nummer, og det vil altid 1444 01:02:39,670 --> 01:02:42,960 returnere et tal fra nul til otte. 1445 01:02:42,960 --> 01:02:48,750 Så nogle examples-- hvis Vi har 55 modulo 10, 1446 01:02:48,750 --> 01:02:55,350 det blot giver dig resten af 55 divideret med 10, hvilket ville være 5. 1447 01:02:55,350 --> 01:02:56,440 1448 01:02:56,440 --> 01:03:02,470 Og derefter tre modulo fem, nogen gætte, hvad det ville være? 1449 01:03:02,470 --> 01:03:03,800 1450 01:03:03,800 --> 01:03:04,300 Tre. 1451 01:03:04,300 --> 01:03:05,570 1452 01:03:05,570 --> 01:03:10,910 >> Så hvis du har et mindre antal før modulo, kan den ikke gå jævnt. 1453 01:03:10,910 --> 01:03:11,520 Det er nul. 1454 01:03:11,520 --> 01:03:14,090 Så det bare returnerer selve nummeret. 1455 01:03:14,090 --> 01:03:15,920 Så otte modulo otte ville være? 1456 01:03:15,920 --> 01:03:16,603 >> STUDENT: Zero. 1457 01:03:16,603 --> 01:03:18,350 >> ALLISON: Zero. 1458 01:03:18,350 --> 01:03:20,160 Fordi det går i jævnt. 1459 01:03:20,160 --> 01:03:22,095 16 modulo 15? 1460 01:03:22,095 --> 01:03:23,660 >> PUBLIKUM: One. 1461 01:03:23,660 --> 01:03:24,700 >> ALLISON: Cool. 1462 01:03:24,700 --> 01:03:29,280 Og så er denne sidste er bare at vise du-- du måske være undrende, OK, 1463 01:03:29,280 --> 01:03:31,800 hvad er rækkefølgen af ​​operationer her? 1464 01:03:31,800 --> 01:03:33,100 Har vi deler først? 1465 01:03:33,100 --> 01:03:34,570 Har vi modulo først? 1466 01:03:34,570 --> 01:03:38,730 Så modulo holder samme forrang som division eller multiplikation, 1467 01:03:38,730 --> 01:03:39,940 og dens venstre associative. 1468 01:03:39,940 --> 01:03:41,730 Så det er på samme måde. 1469 01:03:41,730 --> 01:03:46,520 Du ville altid gøre parenteser, derefter multiplikation, division, 1470 01:03:46,520 --> 01:03:49,570 og modulo i rækkefølge fra venstre mod højre. 1471 01:03:49,570 --> 01:03:51,050 Så standardregler. 1472 01:03:51,050 --> 01:03:55,260 Bare sætte det i samme kategori som division og multiplikation. 1473 01:03:55,260 --> 01:03:59,040 >> Så i dette tilfælde, ville vi har 1 plus 2 giver os 3. 1474 01:03:59,040 --> 01:04:02,210 Vi formere sig, at med 2, så vi får 6. 1475 01:04:02,210 --> 01:04:05,050 Vi modulo at ved 2, hvilket giver os? 1476 01:04:05,050 --> 01:04:06,042 >> STUDENT: 0. 1477 01:04:06,042 --> 01:04:07,430 >> ALLISON: 0. 1478 01:04:07,430 --> 01:04:10,270 Og så tilføjer vi 2, så vi få 2 i sidstnævnte tilfælde. 1479 01:04:10,270 --> 01:04:12,080 1480 01:04:12,080 --> 01:04:16,360 Så modulo-- du absolut vil tænke måder at indarbejde 1481 01:04:16,360 --> 01:04:19,520 at når du indpakning omkring alfabetet. 1482 01:04:19,520 --> 01:04:24,210 Hvis du er på Z, og du er nødt til at flytte sende tre rum for at komme til C, 1483 01:04:24,210 --> 01:04:26,230 der er det hele konceptet af indpakning omkring. 1484 01:04:26,230 --> 01:04:28,790 Så jeg vil overlade det til jer at regne ud 1485 01:04:28,790 --> 01:04:31,940 præcis hvordan du vil bruge det. 1486 01:04:31,940 --> 01:04:35,660 Men absolut et nyttigt værktøj for din pset denne uge. 1487 01:04:35,660 --> 01:04:36,910 1488 01:04:36,910 --> 01:04:37,730 Jeg kan virkelig godt lide dette. 1489 01:04:37,730 --> 01:04:39,480 Dette er en af ​​mine foretrukne psets. 1490 01:04:39,480 --> 01:04:41,230 Så når du gør det, hvis du har venner, 1491 01:04:41,230 --> 01:04:44,146 kan du, ligesom, sende hinanden hemmelighed beskeder og sørg for at det virker. 1492 01:04:44,146 --> 01:04:45,695 Fordi det vil dekryptere den eller hvad. 1493 01:04:45,695 --> 01:04:46,710 1494 01:04:46,710 --> 01:04:47,390 Masser af sjov. 1495 01:04:47,390 --> 01:04:48,840 1496 01:04:48,840 --> 01:04:51,220 >> Og det er i slutningen af ​​afsnittet. 1497 01:04:51,220 --> 01:04:52,430 1498 01:04:52,430 --> 01:04:54,040 Jeg er færdig tidligt. 1499 01:04:54,040 --> 01:04:57,540 Jeg har stadig 15 minutter med jer, så hvis der er noget, 1500 01:04:57,540 --> 01:05:02,180 at du gerne vil gå over yderligere, ville jeg være glad for at gøre det. 1501 01:05:02,180 --> 01:05:04,340 Alle andre spørgsmål om din pset for dem af jer 1502 01:05:04,340 --> 01:05:06,355 der har påbegyndt eller læs spec. 1503 01:05:06,355 --> 01:05:07,870 1504 01:05:07,870 --> 01:05:12,060 Noget, som vi har talt om i den sidste time 1505 01:05:12,060 --> 01:05:16,880 og 15 minutter, som du gerne vil have mig at slags opkog, ville jeg være glad for. 1506 01:05:16,880 --> 01:05:20,790 Eller vi kan kalde det afsluttes, og du kan alle forlade og tage mere slik med dig 1507 01:05:20,790 --> 01:05:21,650 som du gå. 1508 01:05:21,650 --> 01:05:23,719 1509 01:05:23,719 --> 01:05:26,260 Men hvis der er nogen dvælende spørgsmål, så lad mig det vide. 1510 01:05:26,260 --> 01:05:28,467 Du kan også komme op og tale med mig bagefter. 1511 01:05:28,467 --> 01:05:29,425 Jeg lover jeg ikke at bide. 1512 01:05:29,425 --> 01:05:32,140 1513 01:05:32,140 --> 01:05:32,795 Noget andet? 1514 01:05:32,795 --> 01:05:33,890 1515 01:05:33,890 --> 01:05:35,240 Alle er godt? 1516 01:05:35,240 --> 01:05:37,540 Alles følelse som de kan håndtere dette pset? 1517 01:05:37,540 --> 01:05:38,820 1518 01:05:38,820 --> 01:05:42,405 Du kommer til at være fine fyre. 1519 01:05:42,405 --> 01:05:43,905 Kontortid er der en grund til. 1520 01:05:43,905 --> 01:05:45,930 1521 01:05:45,930 --> 01:05:46,460 Cool. 1522 01:05:46,460 --> 01:05:47,020 Okay. 1523 01:05:47,020 --> 01:05:49,680 >> Tja, i dette tilfælde, tak jer alle så meget for at komme. 1524 01:05:49,680 --> 01:05:50,940 Jeg håber at se dig i næste uge. 1525 01:05:50,940 --> 01:05:52,120 Der vil være mere slik. 1526 01:05:52,120 --> 01:05:53,495 Der kan være andre seje ting. 1527 01:05:53,495 --> 01:05:55,010 1528 01:05:55,010 --> 01:05:59,090 Og jeg ser frem til at få at kende alle jer dette år. 1529 01:05:59,090 --> 01:06:00,320