1 00:00:00,000 --> 00:00:02,418 >> [Muziek] 2 00:00:02,418 --> 00:00:10,542 3 00:00:10,542 --> 00:00:12,000 ALLISON Buchholtz-AU: Hey iedereen. 4 00:00:12,000 --> 00:00:15,640 Welkom bij uw eerste officiële CS50 sectie. 5 00:00:15,640 --> 00:00:19,507 Zoals je kunt zien is dit sectie CS50-achtig, net 6 00:00:19,507 --> 00:00:20,840 te trekken van onze agenda voor vandaag. 7 00:00:20,840 --> 00:00:23,990 Dus, wie ben ik, want ik weet zeker je allemaal af. 8 00:00:23,990 --> 00:00:25,514 Ik ben je TF. 9 00:00:25,514 --> 00:00:27,930 Ik ben niet zomaar een willekeurige student wie imiteert uw TF. 10 00:00:27,930 --> 00:00:31,190 >> En ik ga om te gaan door soort hebben secties zal stromen, 11 00:00:31,190 --> 00:00:34,900 verwachtingen die we hebben, middelen, enzovoort, enzovoort. 12 00:00:34,900 --> 00:00:39,190 We gaan om te praten over arrays, ASCII functies, command-line argumenten, 13 00:00:39,190 --> 00:00:42,020 en het is niet hier, maar Ik zal ook helpen 14 00:00:42,020 --> 00:00:45,054 je soort van doordenken uw volgende pset voor deze week. 15 00:00:45,054 --> 00:00:46,720 Waarvan ik weet zeker dat u zult waarderen. 16 00:00:46,720 --> 00:00:48,190 17 00:00:48,190 --> 00:00:53,390 >> Dus, eerst question-- wie ben ik, naast uw uitbundige TF hier. 18 00:00:53,390 --> 00:00:55,390 Ik ben Alison Buchholtz-Au. 19 00:00:55,390 --> 00:00:57,970 Dit is mijn tweede jaar TFing CS50. 20 00:00:57,970 --> 00:01:00,570 Ik ook TF CS51 in het voorjaar. 21 00:01:00,570 --> 00:01:03,930 Je zou er weer te zien als je besluit om het te nemen. 22 00:01:03,930 --> 00:01:07,370 Ik ben ook een PAF, dus elke Freshmen-- en als je niet een eerstejaars, 23 00:01:07,370 --> 00:01:09,980 dit is mijn derde jaar als adviserend fellow. 24 00:01:09,980 --> 00:01:13,630 Ik ben zeer goed thuis in adviseren u op het leven en cursussen 25 00:01:13,630 --> 00:01:16,549 binnen CS en niet binnen CS. 26 00:01:16,549 --> 00:01:18,090 Ik ben een Informatica Concentrator. 27 00:01:18,090 --> 00:01:20,800 Ik ben een senior in Adams House, beste house. 28 00:01:20,800 --> 00:01:22,430 29 00:01:22,430 --> 00:01:26,050 En voordat ik overgestapt naar CS mijn Sophomore Spring, 30 00:01:26,050 --> 00:01:27,640 Ik was eigenlijk een biomedisch ingenieur. 31 00:01:27,640 --> 00:01:29,020 Ik was van plan om naar Med school. 32 00:01:29,020 --> 00:01:30,530 Ik was van plan om een ​​trauma chirurg worden. 33 00:01:30,530 --> 00:01:33,000 En dat heeft helemaal veranderd sinds ik nam CS50. 34 00:01:33,000 --> 00:01:34,250 35 00:01:34,250 --> 00:01:36,310 Ik vond het natuurlijk mijn Sophomore Fall. 36 00:01:36,310 --> 00:01:38,920 Het was mijn eerste kennismaking met CS ooit. 37 00:01:38,920 --> 00:01:44,104 Ik was een van de 78% van jullie die had nul ervaring komen, 38 00:01:44,104 --> 00:01:45,520 en het volledig mijn leven veranderd. 39 00:01:45,520 --> 00:01:49,820 En nu ben ik werkzaam bij Microsoft, en je mooie TF. 40 00:01:49,820 --> 00:01:53,500 En CS50 is waarschijnlijk een van de beste ervaringen 41 00:01:53,500 --> 00:01:56,210 dat ik hier op heb gehad Harvard-- zowel het nemen van de klas 42 00:01:56,210 --> 00:01:59,040 en in staat zijn om te helpen leren studenten zoals jij. 43 00:01:59,040 --> 00:02:01,410 >> Dus ik ben echt enthousiast dat u allen hier bent. 44 00:02:01,410 --> 00:02:04,270 In het geval dat je binnen kwam laat, er is snoep, 45 00:02:04,270 --> 00:02:07,227 die je moet voelen vrij om grab komen, of stuur 46 00:02:07,227 --> 00:02:08,560 iemand anders om het te grijpen voor u. 47 00:02:08,560 --> 00:02:09,399 het is OK. 48 00:02:09,399 --> 00:02:10,440 Ik wil niet te eten dat. 49 00:02:10,440 --> 00:02:13,350 Mijn kamer heeft genoeg chocolade, dus y'all moet proberen en afwerking die. 50 00:02:13,350 --> 00:02:16,730 Ik weet dat er 100 stuks, maar als, 04:00 op een maandag, 51 00:02:16,730 --> 00:02:19,000 Ik denk dat iedereen wel wat suiker gebruiken. 52 00:02:19,000 --> 00:02:21,750 >> Dus ieder van jullie die officieel in mijn sectie 53 00:02:21,750 --> 00:02:24,700 dient een e-mail hebben gekregen van mij met mijn telefoonnummer, 54 00:02:24,700 --> 00:02:29,920 email address-- vrij om me op toe voelen Gchat, voel je vrij om me toe te voegen op Facebook, 55 00:02:29,920 --> 00:02:33,360 en ook voor de rest van jullie, je kunt me hier mailen. 56 00:02:33,360 --> 00:02:34,450 Er zijn twee H's. 57 00:02:34,450 --> 00:02:37,090 Iedereen doet altijd als twee L's of twee C's. 58 00:02:37,090 --> 00:02:38,260 Twee H's in de laatste naam. 59 00:02:38,260 --> 00:02:41,800 Anders gaat stuiteren, en Ik ben niet van plan om uw e-mail te krijgen. 60 00:02:41,800 --> 00:02:46,400 >> Dus voel je vrij om me te mailen, om contact met mij op elk gewenst moment. 61 00:02:46,400 --> 00:02:51,440 Ik kan niet terug naar u binnen 24 minuten, 62 00:02:51,440 --> 00:02:53,760 maar ik beloof om terug te krijgen om u binnen 24 uur. 63 00:02:53,760 --> 00:02:54,900 64 00:02:54,900 --> 00:02:58,067 Als je me belt een half uur voor uw PSET verschuldigd is, dat u het als, 65 00:02:58,067 --> 00:02:59,650 Ik heb geen idee wat ik aan het doen ben Allison. 66 00:02:59,650 --> 00:03:00,160 Help me. 67 00:03:00,160 --> 00:03:04,049 Ik ga u te kalmeren, maar aan het eind van de dag, 68 00:03:04,049 --> 00:03:07,340 als je me belt een half uur voor uw pset is verschuldigd met niets geschreven, 69 00:03:07,340 --> 00:03:11,570 Ik ga zijn als, nou ja, misschien het is tijd om die late dag gebruiken. 70 00:03:11,570 --> 00:03:15,215 Dus ik zal reageren op al uw verzoeken in een zeer tijdig. 71 00:03:15,215 --> 00:03:16,482 72 00:03:16,482 --> 00:03:18,190 Mijn telefoon is meestal aan mijn handen vastgemaakt. 73 00:03:18,190 --> 00:03:21,530 Ik veel reageren meestal sneller dan 24 uur, 74 00:03:21,530 --> 00:03:25,650 maar ik kan alleen garantie een 24 uur reactie. 75 00:03:25,650 --> 00:03:26,580 >> Prima. 76 00:03:26,580 --> 00:03:28,410 Dus waarom zijn we hier? 77 00:03:28,410 --> 00:03:32,160 Ook als u vragen bij hebt elk moment, laat het me weten. 78 00:03:32,160 --> 00:03:32,780 Ik praat veel. 79 00:03:32,780 --> 00:03:35,320 Ik praat snel, maar gelieve voel je vrij om me te onderbreken. 80 00:03:35,320 --> 00:03:36,980 Het geeft me de ademhaling kamer ook. 81 00:03:36,980 --> 00:03:38,159 82 00:03:38,159 --> 00:03:40,200 Dus secties zijn een tijd voor ons om echt gewoon duik 83 00:03:40,200 --> 00:03:44,270 in, nog wat hands-on ervaring, om gaan door onderwerpen die we al 84 00:03:44,270 --> 00:03:49,760 in de klas of in de studie van materialen die raden wij aan jullie online. 85 00:03:49,760 --> 00:03:52,980 En we zullen ook daadwerkelijk te gaan door sommige van die middelen in een beetje. 86 00:03:52,980 --> 00:03:54,300 87 00:03:54,300 --> 00:03:57,400 >> Dus wat aantekeningen op afdeling support. 88 00:03:57,400 --> 00:04:00,250 CS50-- één van de dingen die maakt het een van mijn favoriete klassen 89 00:04:00,250 --> 00:04:02,510 is het gevoel dat je nooit alleen bent. 90 00:04:02,510 --> 00:04:05,430 We hebben een staf van meer dan 100 mensen die hier zijn om u te helpen. 91 00:04:05,430 --> 00:04:08,080 We hebben de kantooruren Maandag tot en met donderdag. 92 00:04:08,080 --> 00:04:13,230 Dus er zijn zoveel mensen die hou de klasse net zo veel als ik doen 93 00:04:13,230 --> 00:04:15,750 en die zijn echt hier omdat ze willen om hier te zijn. 94 00:04:15,750 --> 00:04:19,390 De meesten van ons zijn studenten, en dit is als een vijfde klasse naast 95 00:04:19,390 --> 00:04:20,390 naar de rest van ons werk. 96 00:04:20,390 --> 00:04:22,723 >> En het is een hoop werk, maar we doen het omdat we love it, 97 00:04:22,723 --> 00:04:25,600 en we houden ervan om je te leren en helpen delen onze opwinding 98 00:04:25,600 --> 00:04:27,260 voor dit onderwerp en deze klasse. 99 00:04:27,260 --> 00:04:28,490 Dus gelieve te profiteren. 100 00:04:28,490 --> 00:04:29,370 Kom met ons praten. 101 00:04:29,370 --> 00:04:33,034 Ik krijg eenzaam toen mijn studenten praat niet met me, dus als je wilt, 102 00:04:33,034 --> 00:04:33,950 komen hangen met me. 103 00:04:33,950 --> 00:04:35,200 Het zal geweldig zijn. 104 00:04:35,200 --> 00:04:37,400 >> Dus sectie is natuurlijk een van je grootste dingen. 105 00:04:37,400 --> 00:04:41,770 We gaan door middel van zaken dat je hebt geleerd in collegezaal, 106 00:04:41,770 --> 00:04:44,100 doe wat korte voorbeelden wanneer we tijd hebben, 107 00:04:44,100 --> 00:04:46,187 en in het algemeen soort een idee krijgen over dingen 108 00:04:46,187 --> 00:04:48,270 je moet denken over voor uw probleem te stellen. 109 00:04:48,270 --> 00:04:49,540 110 00:04:49,540 --> 00:04:53,591 Shorts-- hoeveel mensen daadwerkelijk keek naar de video van uw 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 Herkent iemand mij? 114 00:04:57,390 --> 00:04:59,720 Dus dat zijn zeer groot. 115 00:04:59,720 --> 00:05:01,210 Je moet zeker kijken naar deze. 116 00:05:01,210 --> 00:05:02,880 Veel werk is in hen. 117 00:05:02,880 --> 00:05:06,690 En ze zijn gewoon bedoeld om te worden hapklare stukken voor u om gewoon kijken 118 00:05:06,690 --> 00:05:09,760 voor drie of vier minuten en krijg een beter begrip van een concept. 119 00:05:09,760 --> 00:05:11,147 120 00:05:11,147 --> 00:05:12,980 Loop throughs-- hoe veel mensen hebben gekeken 121 00:05:12,980 --> 00:05:14,880 de walk-throughs voor vorige? 122 00:05:14,880 --> 00:05:16,240 Zamyla is geweldig, toch? 123 00:05:16,240 --> 00:05:18,100 Zoals, ik wou dat ik waren Zamyla soms. 124 00:05:18,100 --> 00:05:19,650 125 00:05:19,650 --> 00:05:21,640 Dus zeker gebruik maken van uw walk-throughs. 126 00:05:21,640 --> 00:05:25,070 Ze zal het breken in kleine, hapklare stukken. 127 00:05:25,070 --> 00:05:28,079 En als je deze enorme specificaties van uw probleem sets, 128 00:05:28,079 --> 00:05:30,870 het gaat echt belangrijk te zijn in staat zijn om gewoon ergens 129 00:05:30,870 --> 00:05:32,600 starten en langzaam werken doorheen. 130 00:05:32,600 --> 00:05:33,610 131 00:05:33,610 --> 00:05:40,260 >> Oké, we hebben ook Study50, die is study50.harvard.edu, geloof ik. 132 00:05:40,260 --> 00:05:42,270 Je kunt gewoon Google bestuderen, en het zal komen. 133 00:05:42,270 --> 00:05:45,750 Dit is één van de beste middelen hebben we. 134 00:05:45,750 --> 00:05:49,800 Het is PowerPoints met notities en de praktijk problemen voor u 135 00:05:49,800 --> 00:05:52,430 met oplossingen die u daadwerkelijk kan lopen door. 136 00:05:52,430 --> 00:05:57,000 Dus als je ooit wilt meer praktijk, meer dan wij in secties of meer 137 00:05:57,000 --> 00:06:00,700 dan uw probleem sets, dit is echt een plaats waar ik moedig u aan om te gaan. 138 00:06:00,700 --> 00:06:03,590 Het werd gebouwd afgelopen zomer door sommige van mijn echt goede vrienden. 139 00:06:03,590 --> 00:06:04,480 En het is verbazingwekkend. 140 00:06:04,480 --> 00:06:05,540 141 00:06:05,540 --> 00:06:08,670 In feite, veel van de glijbanen die ik zal gebruiken voor sectie 142 00:06:08,670 --> 00:06:10,190 zal komen van Study50. 143 00:06:10,190 --> 00:06:12,000 >> Dus veel van de TF gebruiken. 144 00:06:12,000 --> 00:06:13,920 En tot slot, als ik vermeld, kantooruren. 145 00:06:13,920 --> 00:06:15,836 Als je problemen hebt met met huiswerk, je bent 146 00:06:15,836 --> 00:06:18,270 problemen met een concept, komen naar de kantooruren. 147 00:06:18,270 --> 00:06:20,190 Ga vroeg in de week als je kunt. 148 00:06:20,190 --> 00:06:23,130 Stap uit aan de quad, want het is een soort van ver. 149 00:06:23,130 --> 00:06:24,780 Niemand vindt het leuk om daar te lopen. 150 00:06:24,780 --> 00:06:27,090 Maar het is in uw voordeel, want dan ben je 151 00:06:27,090 --> 00:06:29,580 naar al deze TFS hebben, [Onverstaanbaar] omringen u. 152 00:06:29,580 --> 00:06:31,920 En zeker nu, gewoon een tip, donderdag 153 00:06:31,920 --> 00:06:35,310 zijn erg chill nu in Mather omdat uw psets 154 00:06:35,310 --> 00:06:36,577 zijn verschuldigd op donderdag. 155 00:06:36,577 --> 00:06:38,410 En weten wil Gebruik toch uw late dagen. 156 00:06:38,410 --> 00:06:40,030 >> Dus als je met moeite met concepten, 157 00:06:40,030 --> 00:06:41,780 zijn er tal van TF's die zijn er om u te helpen. 158 00:06:41,780 --> 00:06:43,196 Dus kom naar Mather op donderdag. 159 00:06:43,196 --> 00:06:45,280 Als je me wilt zien, Ik ga om daar te zijn. 160 00:06:45,280 --> 00:06:48,870 Ik ben meestal doe mijn eigen huiswerk, want niemand wil mijn hulp. 161 00:06:48,870 --> 00:06:50,260 Dus kom ons zien. 162 00:06:50,260 --> 00:06:51,460 163 00:06:51,460 --> 00:06:52,440 >> Ontmoet ons halverwege. 164 00:06:52,440 --> 00:06:55,400 Dus hoeveel mensen hebben bijgewoond college geven of keek er online? 165 00:06:55,400 --> 00:06:56,570 166 00:06:56,570 --> 00:06:59,140 Hoeveel mensen gingen naar super sectie van vorige week? 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 Dat is eigenlijk een behoorlijk aantal. 170 00:07:02,190 --> 00:07:05,425 Hoeveel van jullie hebben gelezen uw spec voor deze week, voor uw pset? 171 00:07:05,425 --> 00:07:07,081 172 00:07:07,081 --> 00:07:08,461 Ooh, ik ben trots op jullie! 173 00:07:08,461 --> 00:07:09,335 Meer snoep voor y'all. 174 00:07:09,335 --> 00:07:11,070 175 00:07:11,070 --> 00:07:13,280 >> Goed, dus wat we bedoelen "Ontmoeten we halverwege," is 176 00:07:13,280 --> 00:07:16,440 die sectie is eigenlijk alleen gaat super handig voor u te zijn 177 00:07:16,440 --> 00:07:19,810 als je komt in het lezen van uw specificatie voor uw pset. 178 00:07:19,810 --> 00:07:23,859 Want toen ik door een overzicht van dingen die je moet uit op zoek naar, 179 00:07:23,859 --> 00:07:25,650 het is niet van plan om te maken zo veel zin als je 180 00:07:25,650 --> 00:07:28,358 weet niet wat je probleem stellen gaat worden waarin u wordt gevraagd om te doen. 181 00:07:28,358 --> 00:07:29,020 182 00:07:29,020 --> 00:07:32,590 >> Als je niet komt om sectie, uiteraard Ik kan niet zo zijn dat nuttig voor u. 183 00:07:32,590 --> 00:07:36,600 Ik ben niet van plan om het te persoonlijk of te nemen je hoeft niet naar mijn sectie komen op dit moment, 184 00:07:36,600 --> 00:07:38,570 maar zeker je zou moeten. 185 00:07:38,570 --> 00:07:40,090 Als je niet kan, kijken ze online. 186 00:07:40,090 --> 00:07:41,230 187 00:07:41,230 --> 00:07:42,519 Ze zijn er voor een reden. 188 00:07:42,519 --> 00:07:43,560 Mine zal er zo aan. 189 00:07:43,560 --> 00:07:44,187 190 00:07:44,187 --> 00:07:47,270 Zoals u merkt, worden we opgenomen, dus kom er zo voor jullie. 191 00:07:47,270 --> 00:07:49,110 192 00:07:49,110 --> 00:07:51,570 Als goed, gaat lectures-- dat is natuurlijk 193 00:07:51,570 --> 00:07:53,790 waar je krijgt de start van uw materiaal hier. 194 00:07:53,790 --> 00:07:57,430 Dus ik zal zeker proberen en u helpen zo veel als ik kan, 195 00:07:57,430 --> 00:07:58,840 maar ik kan je alleen aan tot nu toe. 196 00:07:58,840 --> 00:08:01,220 Je moet soort ons te ontmoeten halverwege. 197 00:08:01,220 --> 00:08:04,050 >> Grading-- zo, jullie allemaal die een e-mail gekregen van mij, 198 00:08:04,050 --> 00:08:05,445 je bent mijn officiële gedeelte. 199 00:08:05,445 --> 00:08:06,470 200 00:08:06,470 --> 00:08:08,120 Ik zal de indeling van uw psets. 201 00:08:08,120 --> 00:08:12,870 En ik wil alleen maar zeggen, een ding dat je moet echt aandacht te besteden aan 202 00:08:12,870 --> 00:08:13,820 zijn de opmerkingen. 203 00:08:13,820 --> 00:08:17,390 De reacties zijn vaak bruikbaar dan de werkelijke score geven wij u. 204 00:08:17,390 --> 00:08:19,890 En de reacties zijn eigenlijk waar ik veel van mijn tijd 205 00:08:19,890 --> 00:08:20,770 als ik grading. 206 00:08:20,770 --> 00:08:22,700 Dus ik zou het waarderen als je ze leest. 207 00:08:22,700 --> 00:08:26,990 En ze zijn eigenlijk hoe je gaat voor meer informatie over het ontwerp en de stijl van leren 208 00:08:26,990 --> 00:08:29,860 en dingen die zijn een Iets minder knippen en droog. 209 00:08:29,860 --> 00:08:31,770 >> Dus echt aandacht aan deze opmerkingen. 210 00:08:31,770 --> 00:08:34,720 Als u vragen heeft over hen hebben, of vragen over uw score, 211 00:08:34,720 --> 00:08:37,620 kom alsjeblieft met me praten hetzij voor sectie, 212 00:08:37,620 --> 00:08:41,039 Ik zal waarschijnlijk worden opknoping uit in de lobby, of achteraf. 213 00:08:41,039 --> 00:08:43,559 Als u wilt plannen one-on-one meetings over hoe 214 00:08:43,559 --> 00:08:46,100 je kan helpen later verbeteren probleem sets, laat het me weten. 215 00:08:46,100 --> 00:08:47,520 216 00:08:47,520 --> 00:08:49,750 >> En dan gewoon een paar tips voor jullie. 217 00:08:49,750 --> 00:08:53,110 Dus een van de grootste dingen Ik heb altijd de nadruk op mijn afdeling 218 00:08:53,110 --> 00:08:57,700 wanneer je leert hoe om te coderen is om dingen uit eerste schrijven op papier. 219 00:08:57,700 --> 00:09:01,080 Als je een game plan voor waar je code moet gaan 220 00:09:01,080 --> 00:09:03,230 en wat het nodig heeft om te te doen en het is afgebroken 221 00:09:03,230 --> 00:09:06,000 in kleine stukjes van pseudocode code die je hebt uitgeschreven, 222 00:09:06,000 --> 00:09:09,780 je gaat minder kans op syntax fouten te maken 223 00:09:09,780 --> 00:09:12,355 of maak een if-lus die heeft geen ander. 224 00:09:12,355 --> 00:09:14,064 225 00:09:14,064 --> 00:09:15,980 Als je weet waar je bent algehele gaan, je bent 226 00:09:15,980 --> 00:09:19,764 minder kans om deze kleine maken fouten die je soms zal nemen 227 00:09:19,764 --> 00:09:22,555 uur op te lossen, omdat je net als, waar ga ik het missen deze beugel? 228 00:09:22,555 --> 00:09:23,580 229 00:09:23,580 --> 00:09:27,420 >> Op deze nota, dan kunt u gebruik maken van Style50. 230 00:09:27,420 --> 00:09:28,820 231 00:09:28,820 --> 00:09:31,590 Zeker als je bent gaan naar het kantoor uren, 232 00:09:31,590 --> 00:09:34,850 als uw code is alles overgeschakeld naar een kant, 233 00:09:34,850 --> 00:09:37,740 het is natuurlijk beleid dat we kunnen zeggen, fix it 234 00:09:37,740 --> 00:09:41,990 zodat het lijkt alsof Style50 zegt het zou moeten, en dan zullen we je helpen. 235 00:09:41,990 --> 00:09:43,830 Dus het zal uw leven gemakkelijker te maken. 236 00:09:43,830 --> 00:09:45,030 Het zal ons leven gemakkelijker te maken. 237 00:09:45,030 --> 00:09:46,000 Iedereen is gelukkiger. 238 00:09:46,000 --> 00:09:47,290 Iedereen krijgt betere cijfers. 239 00:09:47,290 --> 00:09:48,760 Is dat niet wat we allemaal willen? 240 00:09:48,760 --> 00:09:50,420 241 00:09:50,420 --> 00:09:53,860 >> Dus schrijf dingen op papier vóór u ooit uw computer aanraakt. 242 00:09:53,860 --> 00:09:57,540 Praat dingen uit op een hoog niveau, en zorg ervoor dat je weet waar je naartoe gaat. 243 00:09:57,540 --> 00:09:59,940 En als je niet zeker weet, zitten met iemand 244 00:09:59,940 --> 00:10:03,340 en lopen ze door stap voor stap wat uw code verondersteld wordt te doen. 245 00:10:03,340 --> 00:10:07,940 En negen van de 10 keer, dan heb je de als, oh, ik vergat een if-voorwaarde 246 00:10:07,940 --> 00:10:12,420 of ben ik vergeten een puntkomma hier of Ik ben het updaten deze variabele verkeerd. 247 00:10:12,420 --> 00:10:15,740 Dus dat zijn mijn tips voor succes. 248 00:10:15,740 --> 00:10:19,820 >> Dus omdat ongeveer de helft van je kijkt zoals je hebt bezocht super sectie, 249 00:10:19,820 --> 00:10:24,080 Ik ga gewoon heel kort gaan door lussen, 250 00:10:24,080 --> 00:10:26,650 die niet waren op onze oorspronkelijke agenda. 251 00:10:26,650 --> 00:10:28,190 Maar ze zijn echt belangrijk. 252 00:10:28,190 --> 00:10:30,250 En dus ga ik soort van snelheid door deze 253 00:10:30,250 --> 00:10:32,860 voordat we in onze huidige sectie. 254 00:10:32,860 --> 00:10:36,269 Voordat ik dat doe, zijn er elke questions-- logistiek, 255 00:10:36,269 --> 00:10:38,060 persoonlijk, is er alles wat je wilt 256 00:10:38,060 --> 00:10:40,990 te weten over mij of over afdeling of klasse in het algemeen? 257 00:10:40,990 --> 00:10:43,195 258 00:10:43,195 --> 00:10:43,880 Alle goede? 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 Lovely. 262 00:10:47,280 --> 00:10:50,071 >> Dus loops-- jullie moeten allemaal herkent deze stukken vanaf nul. 263 00:10:50,071 --> 00:10:51,310 264 00:10:51,310 --> 00:10:55,220 Dus loops zijn eigenlijk gewoon voor ons een manier om iets te doen 265 00:10:55,220 --> 00:10:58,900 bepaald aantal keren, wat herhaald actie op basis van een aantal voorwaardelijk. 266 00:10:58,900 --> 00:11:00,140 267 00:11:00,140 --> 00:11:02,090 Dus hebben we drie verschillende types. 268 00:11:02,090 --> 00:11:04,860 We hebben voor de loop, terwijl, en do-while. 269 00:11:04,860 --> 00:11:06,430 270 00:11:06,430 --> 00:11:11,320 >> Dus voor loops-- we hebben gewoon een heel algemene lay-out hier van een lus. 271 00:11:11,320 --> 00:11:16,110 En dit is geweldig voor als je weet hoe vaak iets moet uitvoeren. 272 00:11:16,110 --> 00:11:17,040 273 00:11:17,040 --> 00:11:18,790 Als we spreken over de andere loops, dan heb je 274 00:11:18,790 --> 00:11:20,650 zien waarom dat is een belangrijk onderscheid. 275 00:11:20,650 --> 00:11:22,530 Maar voor loops zijn voor iets set. 276 00:11:22,530 --> 00:11:24,590 Je weet dat je kunt of bereken het aantal 277 00:11:24,590 --> 00:11:29,230 of weet je het aantal keren dat u wil dat dit herhaald bij het begin. 278 00:11:29,230 --> 00:11:32,220 >> Dus als je hier ziet, we hebben slechts een algemene soort 279 00:11:32,220 --> 00:11:34,480 van skelet kader voor een lus hier. 280 00:11:34,480 --> 00:11:38,080 Dus voor initialisatie, dit is waar uw variabelen worden geïnitialiseerd. 281 00:11:38,080 --> 00:11:41,915 Met Mario, ik weet zeker dat jullie deden iets als int i gelijk is aan 0. 282 00:11:41,915 --> 00:11:42,920 283 00:11:42,920 --> 00:11:44,710 Dat is waar dat zou gebeuren in het blauw. 284 00:11:44,710 --> 00:11:48,290 U hebt uw aandoening, die is wat er elke keer gecontroleerd. 285 00:11:48,290 --> 00:11:52,410 Als deze voorwaarde waar is, dan is de rest van de code wordt uitgevoerd. 286 00:11:52,410 --> 00:11:54,749 Dan zal het again-- lopen en vragen. 287 00:11:54,749 --> 00:11:57,290 En dan hebben we updaten, waar je bent het bijwerken van uw variabele. 288 00:11:57,290 --> 00:12:01,410 Dus, nogmaals, met als Mario, ik ben er zeker van Jullie deden iets als ik plus plus. 289 00:12:01,410 --> 00:12:04,640 Dus elke keer als de lus liep, kreeg ik dus bijgewerkt 290 00:12:04,640 --> 00:12:09,370 dat toen we het controleren van tegen enige voorwaarde werd het veranderen. 291 00:12:09,370 --> 00:12:12,570 >> Want als je gewoon een statische variabele, 292 00:12:12,570 --> 00:12:15,567 indien voert de eerste keer, het gewoon naar oneindig uit te voeren. 293 00:12:15,567 --> 00:12:18,025 Dus je moet ervoor zorgen dat u updaten van uw variabele. 294 00:12:18,025 --> 00:12:19,350 295 00:12:19,350 --> 00:12:23,890 En we hebben ook gewoon een visuele voorstelling daar. 296 00:12:23,890 --> 00:12:24,930 Iedereen goed? 297 00:12:24,930 --> 00:12:25,630 Voor lussen. 298 00:12:25,630 --> 00:12:27,540 Moet hebben gezien deze in je pset. 299 00:12:27,540 --> 00:12:28,840 Cool. 300 00:12:28,840 --> 00:12:31,870 >> Dus hier is gewoon een makkelijk voorbeeld. 301 00:12:31,870 --> 00:12:32,860 Print Dit is CS50! 302 00:12:32,860 --> 00:12:33,360 10 keer. 303 00:12:33,360 --> 00:12:34,850 304 00:12:34,850 --> 00:12:37,906 En dus hebben we onze initialisatie, zoals we zien er, met int i 305 00:12:37,906 --> 00:12:41,280 gelijk is aan 0, voor i kleiner dan 10, en ik plus plus. 306 00:12:41,280 --> 00:12:43,090 307 00:12:43,090 --> 00:12:44,540 En het zal worden afgedrukt dat 10 keer. 308 00:12:44,540 --> 00:12:46,230 309 00:12:46,230 --> 00:12:56,781 >> Dus terwijl loops-- while loops zijn geweldig als je per se niet 310 00:12:56,781 --> 00:12:59,530 hebben om te weten hoe vaak het is zal bijwerken in het begin. 311 00:12:59,530 --> 00:13:00,640 312 00:13:00,640 --> 00:13:02,580 Je hebt slechts enkele voorwaarde dat wordt gecontroleerd. 313 00:13:02,580 --> 00:13:09,550 En dit zou iets als while-- zijn laten we eens een voorbeeld uit uw pset. 314 00:13:09,550 --> 00:13:12,540 Als Mario, je probeert te ingang een negatief getal. 315 00:13:12,540 --> 00:13:13,270 Right? 316 00:13:13,270 --> 00:13:15,460 Je moest opnieuw gevraagd uw gebruikers. 317 00:13:15,460 --> 00:13:20,890 Dus je kunt zeggen, nou ja, als de gebruiker ingangen iets minder dan nul, re-prompt 318 00:13:20,890 --> 00:13:21,390 ze. 319 00:13:21,390 --> 00:13:23,890 En ik weet zeker dat zou kunnen hebben iets geweest dat sommigen van jullie 320 00:13:23,890 --> 00:13:24,660 gebruikt in de code. 321 00:13:24,660 --> 00:13:26,270 >> Dus het is een simpel ding. 322 00:13:26,270 --> 00:13:28,490 Je hebt, terwijl sommige voorwaardelijke dat wordt gecontroleerd 323 00:13:28,490 --> 00:13:30,460 telkens als de code gaat voeren. 324 00:13:30,460 --> 00:13:32,660 Als het de waarde true, we draaien het. 325 00:13:32,660 --> 00:13:33,820 Anders doen we het niet. 326 00:13:33,820 --> 00:13:35,650 En wat echt important-- iets wat ik 327 00:13:35,650 --> 00:13:38,155 denk dat David sprak over in lecture-- zijn de bretels. 328 00:13:38,155 --> 00:13:40,760 329 00:13:40,760 --> 00:13:42,930 Wat er binnen de braces is wat er uitgevoerd. 330 00:13:42,930 --> 00:13:45,850 Als u deze vergeet bretels, het is alleen maar 331 00:13:45,850 --> 00:13:48,800 om de lijn rechtstreeks zijn Na die tijd werd geëxecuteerd. 332 00:13:48,800 --> 00:13:51,040 >> Dus als je drie hebben dingen die worden verondersteld 333 00:13:51,040 --> 00:13:54,020 om bij dit gebeuren voorwaarde de waarde true, 334 00:13:54,020 --> 00:13:58,040 en je hoeft niet die bretels, alleen het eerste wat er gaat gebeuren. 335 00:13:58,040 --> 00:14:01,510 Wees dus zeer bewust van waar je je bretels. 336 00:14:01,510 --> 00:14:04,880 Als je de stok met Style50, Dit zal je zeker helpen. 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 >> Dus dit is een aftellen 10 tot nul. 340 00:14:10,835 --> 00:14:12,380 341 00:14:12,380 --> 00:14:16,210 En zoals je hier ziet, we initialiseren sommige teller daarbuiten. 342 00:14:16,210 --> 00:14:19,250 Een ding dat anders is we zijn niet initialiseren onze variabele 343 00:14:19,250 --> 00:14:20,300 binnen onze while lus. 344 00:14:20,300 --> 00:14:22,150 Het geïnitialiseerd daarbuiten. 345 00:14:22,150 --> 00:14:25,480 We zijn gewoon zomaar de conditioneren onze tijd. 346 00:14:25,480 --> 00:14:28,630 Dus in dit geval, terwijl het telling groter is dan nul. 347 00:14:28,630 --> 00:14:35,134 En wij drukken wat onze telling is, en dan verlagen we onze variabele. 348 00:14:35,134 --> 00:14:36,800 En dat is ook een ander ding om op te merken. 349 00:14:36,800 --> 00:14:40,440 Ons systeem is niet binnen gebeuren dat eerste deel van de tijdens lus. 350 00:14:40,440 --> 00:14:44,255 Het zal echt gebeuren binnen de bretels, het lichaam van uw tekst. 351 00:14:44,255 --> 00:14:46,820 352 00:14:46,820 --> 00:14:51,860 >> Dus niet-terwijl loops-- do-while loops zijn zeer geschikt voor de gebruiker valideren. 353 00:14:51,860 --> 00:14:54,820 Dus sommigen van u zou kunnen hebben ook gebruikt dit in uw pset. 354 00:14:54,820 --> 00:14:59,960 Je kunt zeggen, doen, zoals, vraagt ​​de gebruiker om invoer. 355 00:14:59,960 --> 00:15:04,690 En dan, terwijl, als, de ingang is dan een getal. 356 00:15:04,690 --> 00:15:10,700 >> Dus voor een expliciet geval met Mario, het zou doen printf, voer een geheel getal, 357 00:15:10,700 --> 00:15:13,820 en dan nog wat integer is gelijk getint. 358 00:15:13,820 --> 00:15:17,060 En dan zal het eigenlijk eerste uitvoering die code. 359 00:15:17,060 --> 00:15:19,120 Je zult eigenlijk een soort van integer. 360 00:15:19,120 --> 00:15:23,380 En dan zou je kunnen zeggen, terwijl dat integer is dan nul. 361 00:15:23,380 --> 00:15:26,120 Dus wat het gaat doen, is het naar ten minste eenmaal uitvoeren. 362 00:15:26,120 --> 00:15:27,536 Het gaat om de conditie te controleren. 363 00:15:27,536 --> 00:15:29,690 Als de voorwaarde waar is, zal het opnieuw uitvoeren. 364 00:15:29,690 --> 00:15:32,900 >> So do-while loops zijn geweldig voor de gebruiker validatie, 365 00:15:32,900 --> 00:15:36,770 omdat je de code weet zal tenminste voeren 366 00:15:36,770 --> 00:15:39,720 een keer, terwijl bij while loops, je bent niet 367 00:15:39,720 --> 00:15:41,630 gegarandeerd dat het naar eenmaal wordt uitgevoerd. 368 00:15:41,630 --> 00:15:45,330 Het gaat om de conditie te controleren eerst en dan besluiten om het uit te voeren, 369 00:15:45,330 --> 00:15:48,350 terwijl een do-while zal eerst de code uit te voeren 370 00:15:48,350 --> 00:15:51,110 en controleer om te zien of je nodig hebt om het te herhalen. 371 00:15:51,110 --> 00:15:52,985 Is dat onderscheid zinvol zijn voor iedereen? 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 >> Dus in dit geval, is dit soort van wat ik het over had, 378 00:15:59,800 --> 00:16:02,210 deze re-wizard totdat u krijgen een positief getal. 379 00:16:02,210 --> 00:16:05,060 Dus we weten dat printf "Geef een positief getal" 380 00:16:05,060 --> 00:16:08,720 en eigenlijk vragen dat invoer ten minste eenmaal gebeuren. 381 00:16:08,720 --> 00:16:12,650 Als de gebruiker is het kwaad en houdt het invoeren van een negatief getal, die 382 00:16:12,650 --> 00:16:14,210 weet hoe vaak het zal uitvoeren. 383 00:16:14,210 --> 00:16:17,500 Maar deze code wordt gewaarborgd ten minste eenmaal uitvoeren. 384 00:16:17,500 --> 00:16:20,040 En dat is waarom het is geweldig voor de validatie van invoer. 385 00:16:20,040 --> 00:16:22,300 En je zal gebruiken dat nogal wat. 386 00:16:22,300 --> 00:16:23,870 387 00:16:23,870 --> 00:16:25,830 >> Oké, vragen tot nu toe? 388 00:16:25,830 --> 00:16:27,080 389 00:16:27,080 --> 00:16:28,030 We zijn allemaal goed? 390 00:16:28,030 --> 00:16:29,513 Praat ik te snel? 391 00:16:29,513 --> 00:16:30,520 392 00:16:30,520 --> 00:16:31,130 We zijn goed? 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 >> Dus we gaan om verder te gaan en praten over 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 Dus arrays zijn in principe gewoon datastructuren 400 00:16:40,700 --> 00:16:43,260 die ons in staat om op te slaan dingen van het zelfde type. 401 00:16:43,260 --> 00:16:47,920 Dus als je ooit een array, het is ofwel gewoon gaan ints hebben 402 00:16:47,920 --> 00:16:51,590 of het is gewoon te praalwagens hebben of het is gewoon te chars hebben. 403 00:16:51,590 --> 00:16:55,440 Je gaat niet naar een int met hebben een char met een vlotter met een double. 404 00:16:55,440 --> 00:16:56,850 Een ding. 405 00:16:56,850 --> 00:17:00,810 Arrays zijn slechts een maat, of zijn ze gewoon één type. 406 00:17:00,810 --> 00:17:05,679 >> Hier hebben we dus een array van grootte drie met drie getallen in. 407 00:17:05,679 --> 00:17:07,970 Ze konden drijvers, maar we zijn gaat Ze zijn ints zeggen. 408 00:17:07,970 --> 00:17:09,310 409 00:17:09,310 --> 00:17:16,970 Dus een ding om te beseffen is dat arrays zijn een set grootte wanneer u initialiseren 410 00:17:16,970 --> 00:17:22,285 hen, en ze zijn niet easily-- omdat jullie allemaal zijn minder comfortabel, 411 00:17:22,285 --> 00:17:25,034 moet je gewoon denken aan hen als niet kunnen uitstrekken in grootte. 412 00:17:25,034 --> 00:17:26,119 413 00:17:26,119 --> 00:17:28,740 Hoe groot je uiteengezet je array in het begin, 414 00:17:28,740 --> 00:17:31,070 dat is de grootte het gaat te blijven, omdat arrays 415 00:17:31,070 --> 00:17:33,070 continu geheugenblokken. 416 00:17:33,070 --> 00:17:34,007 417 00:17:34,007 --> 00:17:35,840 En als je jongens krijgen in een beetje meer 418 00:17:35,840 --> 00:17:40,820 van hoe het geheugen is eigenlijk aangelegd op schijven en de en de stack, 419 00:17:40,820 --> 00:17:42,220 het zal een beetje meer zin te maken. 420 00:17:42,220 --> 00:17:48,310 >> Maar je kon gewoon denken als, het is gewoon een rij van ruimten op uw schijf. 421 00:17:48,310 --> 00:17:52,540 En je kan niet garanderen dat er gaat om vrije ruimte te zijn na het. 422 00:17:52,540 --> 00:17:55,290 Je zou een array te initialiseren van drie en dan hebt u misschien 423 00:17:55,290 --> 00:17:59,190 initialiseren andere array van vijf later, en het is direct na dat. 424 00:17:59,190 --> 00:18:04,000 Dus als je naar het verleden spot gaan drie in die eerste reeks, 425 00:18:04,000 --> 00:18:06,370 zou je schrijven meer dan iets anders. 426 00:18:06,370 --> 00:18:10,390 Dus arrays zijn-- voor jullie, net denken aan hen als een vaste grootte. 427 00:18:10,390 --> 00:18:12,700 428 00:18:12,700 --> 00:18:16,890 >> Dus het creëren van een array-- je gaat nodig hebben om dit te doen nogal wat. 429 00:18:16,890 --> 00:18:18,240 430 00:18:18,240 --> 00:18:22,080 Dus net zoals we een algemene structuur voor onze voor loops, 431 00:18:22,080 --> 00:18:24,910 we hebben een leuke algemene structuur onze array. 432 00:18:24,910 --> 00:18:28,430 Omdat ze in ene alle elementen in een array zijn van een type, 433 00:18:28,430 --> 00:18:30,950 je nodig hebt om te initialiseren wat dat type is. 434 00:18:30,950 --> 00:18:33,804 >> Dus, zoals je hier ziet, hebben we een leuk weinig gegevens beugel type. 435 00:18:33,804 --> 00:18:35,970 Dus als we het creëren van een int array, wordt die int. 436 00:18:35,970 --> 00:18:38,830 Als we het creëren van een char array, zal het char zijn. 437 00:18:38,830 --> 00:18:41,890 Als we het creëren van een string array, zal het koord. 438 00:18:41,890 --> 00:18:45,140 En dan de naam van uw array, wat je wilt dat het is. 439 00:18:45,140 --> 00:18:51,750 Dus misschien is het testscores of misschien het is studenten of misschien is het snoep. 440 00:18:51,750 --> 00:18:54,440 Wat je ook besluit om de naam van uw array, dat is wat het zal zijn. 441 00:18:54,440 --> 00:18:57,260 >> En dan tussen haakjes, dan heb je de grootte die je wilt. 442 00:18:57,260 --> 00:19:01,350 Dus, we zijn het opslaan van 10 studenten of zijn we het opslaan van 15 soorten snoep? 443 00:19:01,350 --> 00:19:03,200 444 00:19:03,200 --> 00:19:03,920 Wat niet. 445 00:19:03,920 --> 00:19:06,830 Dus hier ons voorbeeld, creëren we een array 446 00:19:06,830 --> 00:19:10,100 van grootte van drie, die jullie zie hier aan de rechterkant. 447 00:19:10,100 --> 00:19:11,350 448 00:19:11,350 --> 00:19:15,990 En toen we voor het eerst initialiseren Het is alles op nul. 449 00:19:15,990 --> 00:19:18,970 Dus het is gewoon gedacht van als een schone lei. 450 00:19:18,970 --> 00:19:22,550 We hebben al deze ruimtes, hebben we alle deze dozen konden we onze gegevens in kunt plaatsen, 451 00:19:22,550 --> 00:19:25,530 maar ze zijn gewoon leeg voor het moment. 452 00:19:25,530 --> 00:19:28,700 >> Dus als we willen eigenlijk toewijzen van deze waarden, 453 00:19:28,700 --> 00:19:33,050 doen we dat zo recht onder hier toont. 454 00:19:33,050 --> 00:19:39,170 Dus je hebt wat ook de naam van uw array is en dan wat index u wilt. 455 00:19:39,170 --> 00:19:43,070 Dus de index verwijst alleen maar om, als, wat sleuf waar we naar kijken. 456 00:19:43,070 --> 00:19:47,830 En een belangrijk ding om op te merken dat arrays zijn nul geïndexeerd. 457 00:19:47,830 --> 00:19:53,160 Dus als we willen dat de eerste ruimte in het geheugen van ons aanbod, het gaat naar nul. 458 00:19:53,160 --> 00:19:54,740 Als we willen dat de tweede, zal het zijn één. 459 00:19:54,740 --> 00:19:56,198 Als we willen dat de derde, zal het twee. 460 00:19:56,198 --> 00:19:57,820 Zo verder en zo voort. 461 00:19:57,820 --> 00:20:02,130 >> Dat is ook de reden waarom, conventioneel, als we dat doen voor loops-- ik ben er zeker van 462 00:20:02,130 --> 00:20:05,030 jullie vroegen ons af, waarom we beginnen bij 0 versus 1? 463 00:20:05,030 --> 00:20:09,909 En dat is, want als we de overgang naar het gebruik van arrays, het correct in kaart. 464 00:20:09,909 --> 00:20:11,700 Dus als je wilt herhalen in een array, het 465 00:20:11,700 --> 00:20:14,830 maakt veel meer zin om do i gelijk is aan 0, omdat we 466 00:20:14,830 --> 00:20:17,940 dat correspondeert de eerste plaats in het geheugen. 467 00:20:17,940 --> 00:20:18,990 468 00:20:18,990 --> 00:20:19,990 Iedereen goed met dat? 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 >> En vervolgens op de bodem hier gewoon een andere manier om een ​​array te initialiseren. 472 00:20:26,240 --> 00:20:29,590 Je hebt nog steeds uw soort gegevens en de naam, 473 00:20:29,590 --> 00:20:31,960 maar feitelijk zetten een grootte in daar, 474 00:20:31,960 --> 00:20:33,830 je kan het gewoon doen lege haakjes. 475 00:20:33,830 --> 00:20:36,350 En vervolgens deze gekrulde steunen op de bodem, 476 00:20:36,350 --> 00:20:40,270 Je kunt gewoon het invoeren van de gegevens die u wilt, gescheiden door komma's. 477 00:20:40,270 --> 00:20:43,070 En dat zal automatisch zeggen, OK, ik zie 478 00:20:43,070 --> 00:20:47,300 dat je drie hebben dingen in deze beugels. 479 00:20:47,300 --> 00:20:51,410 Dus ik weet dat ik moet drie wijzen blokken van het geheugen en vervolgens op te slaan degenen. 480 00:20:51,410 --> 00:20:55,300 481 00:20:55,300 --> 00:21:01,670 >> Dus de eerste versie die je zou kunnen gebruiken als je vraagt ​​uw gebruikersnaam in te voeren 482 00:21:01,670 --> 00:21:04,770 waarden, zodat u kunt doorlopen van de array 483 00:21:04,770 --> 00:21:07,660 en ask-- nog wat int voor het invoeren van hen. 484 00:21:07,660 --> 00:21:10,500 Als u weet dat de waarden van tevoren, het maakt veel meer zin 485 00:21:10,500 --> 00:21:12,110 de tweede manier gebruiken. 486 00:21:12,110 --> 00:21:17,270 Maar in de meeste gevallen zult u niet weten wat die waarden zullen zijn. 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 Een andere vragen? 490 00:21:20,393 --> 00:21:21,206 491 00:21:21,206 --> 00:21:21,705 Alright. 492 00:21:21,705 --> 00:21:25,960 493 00:21:25,960 --> 00:21:30,370 >> Dus toegang elements-- dus één van de grote dingen over arrays 494 00:21:30,370 --> 00:21:33,310 is dat zij willekeurige toegang, wat betekent dat je 495 00:21:33,310 --> 00:21:36,010 hoeven niet te kijken door elk blok. 496 00:21:36,010 --> 00:21:38,150 Als u weet dat u willen wat er in blok twee, 497 00:21:38,150 --> 00:21:40,820 kun je gewoon zeggen, geef me twee te blokkeren. 498 00:21:40,820 --> 00:21:44,160 En dat is waarom deze indices zijn zo belangrijk, 499 00:21:44,160 --> 00:21:46,220 en dat is hoe we hen daadwerkelijk toegang. 500 00:21:46,220 --> 00:21:50,660 Dus in dit geval, zoals we eerder zagen bij we toekennen van waarden in de ene 501 00:21:50,660 --> 00:21:55,360 eerder, hadden we de naam en de index wilden we toegang, toch? 502 00:21:55,360 --> 00:21:59,370 Dus op dezelfde manier, dat is alles wat we doen om daadwerkelijk te trekken die gegevens uit. 503 00:21:59,370 --> 00:22:02,940 We hebben de naam en we hebben de index die we willen. 504 00:22:02,940 --> 00:22:06,710 >> Dus in dit geval, de lus hier beneden op de bodem, iedereen 505 00:22:06,710 --> 00:22:09,060 weet wat het doet, wat het zou uitprinten? 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 Precies. 510 00:22:18,520 --> 00:22:20,130 Dus ja, het is gewoon itereren door. 511 00:22:20,130 --> 00:22:23,410 i is gelijk aan zero-- we kunnen lopen door middel van de code gewoon snel. 512 00:22:23,410 --> 00:22:26,680 i gelijk is aan nul, i kleiner dan drie op dit punt, toch? 513 00:22:26,680 --> 00:22:27,780 Dus dat klopt. 514 00:22:27,780 --> 00:22:33,370 En we zeggen, OK, printen f wat is de temperatuur i. 515 00:22:33,370 --> 00:22:37,990 i nul is hier toen we voor het eerst herhalen, dus gaan we naar deze eerste plek, 516 00:22:37,990 --> 00:22:40,840 en wij zeggen, OK, 65 is het nummer willen we om uit te printen. 517 00:22:40,840 --> 00:22:43,570 Dus het zal 65 uitprinten en doe dan een nieuwe lijn. 518 00:22:43,570 --> 00:22:46,550 Ik zal updaten, zodat deze wordt afgedrukt 87. 519 00:22:46,550 --> 00:22:48,780 Het werkt weer, en het zal 30 afdrukken. 520 00:22:48,780 --> 00:22:49,810 521 00:22:49,810 --> 00:22:50,630 Iedereen 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 >> Prima. 526 00:22:54,840 --> 00:22:57,710 Dus hier is een soort van een wat ik zei hoe 527 00:22:57,710 --> 00:23:00,020 u kunt bijhouden iemands score en waarom 528 00:23:00,020 --> 00:23:03,300 je zou gebruiken de eerste manier om te initialiseren 529 00:23:03,300 --> 00:23:04,890 in plaats van dat de tweede manier. 530 00:23:04,890 --> 00:23:06,620 En dit gaat gewoon door. 531 00:23:06,620 --> 00:23:08,945 En merken we hebben een groepsgrootte van 30. 532 00:23:08,945 --> 00:23:10,690 533 00:23:10,690 --> 00:23:15,770 En we zijn het initialiseren van deze reeks van ints dat is van maat 30 t. 534 00:23:15,770 --> 00:23:18,070 En dan zijn we itereren door en we zijn 535 00:23:18,070 --> 00:23:20,910 waarin de gebruiker om invoer scores voor elk van deze 536 00:23:20,910 --> 00:23:23,700 en vervolgens toe te wijzen aan een bepaalde plaats in het geheugen 537 00:23:23,700 --> 00:23:24,860 ergens in die 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 Is dat zinvol voor iedereen? 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 >> Dus hashtag definiëren klassengrootte 30 is een richtlijn preprocessor, 544 00:23:40,360 --> 00:23:43,780 die gewoon betekent dat het gets-- het heeft te doen, zoals het samenstellen proces. 545 00:23:43,780 --> 00:23:47,595 U kunt denken aan het als een globale variabele. 546 00:23:47,595 --> 00:23:49,260 547 00:23:49,260 --> 00:23:53,030 De manier waarop we dat doen is typically-- het laat je code 548 00:23:53,030 --> 00:23:54,770 gemakkelijker wijzigen. 549 00:23:54,770 --> 00:23:59,480 Dus laten we zeggen dat onze klas wordt plotseling 30-15, 550 00:23:59,480 --> 00:24:03,930 als ik niet had gedefinieerd het op deze manier, zou ik moeten gaan door mijn hele programma 551 00:24:03,930 --> 00:24:07,420 en ververs elke instantie van 30-15. 552 00:24:07,420 --> 00:24:11,590 Maar met deze, krijg ik tot één veranderen spot, en al het andere verandert. 553 00:24:11,590 --> 00:24:14,930 >> Als je ooit wilt doen een hash definiëren geval 554 00:24:14,930 --> 00:24:19,020 waar u het bijhouden van sommige bepaald aantal scores voor een klasse 555 00:24:19,020 --> 00:24:23,250 of je gebruikt een aantal dat zal worden gebruikt, zoals, 556 00:24:23,250 --> 00:24:27,740 gedurende een zeer lange programma, het is beter te definiëren dat begin 557 00:24:27,740 --> 00:24:34,440 zodat als het ooit verandert, krijg je één vlek in plaats van 100 veranderen. 558 00:24:34,440 --> 00:24:34,940 Ja? 559 00:24:34,940 --> 00:24:39,830 >> STUDENT: Tussen dat te doen en gewoon verklaren [onverstaanbaar] boven aan de top. 560 00:24:39,830 --> 00:24:42,470 >> ALLISON Buchholtz-AU: Dus het heeft te maken met efficient-- 561 00:24:42,470 --> 00:24:45,460 het is een soort van buiten het toepassingsgebied van wat we kunnen dekken in deze sectie. 562 00:24:45,460 --> 00:24:49,236 Het heeft meer te doen met efficiency en hoe de dingen eigenlijk 563 00:24:49,236 --> 00:24:50,485 werken in het samenstellen proces. 564 00:24:50,485 --> 00:24:52,590 565 00:24:52,590 --> 00:24:55,006 Wilt u echt weten over, ik ben blij om u te sturen 566 00:24:55,006 --> 00:24:56,450 een e-mail met middelen over. 567 00:24:56,450 --> 00:24:57,810 568 00:24:57,810 --> 00:25:03,880 Hash definiëren heeft de neiging om de voorkeur voor dingen. 569 00:25:03,880 --> 00:25:06,380 En als je meer code, je soort leren de nuances 570 00:25:06,380 --> 00:25:09,135 van wanneer je een moet gebruiken globale versus de hash te definiëren. 571 00:25:09,135 --> 00:25:11,010 Maar voor het moment, je hoeft niet echt 572 00:25:11,010 --> 00:25:13,290 zorgen te maken over het dat het korte antwoord. 573 00:25:13,290 --> 00:25:15,360 574 00:25:15,360 --> 00:25:16,360 Iedereen goed met dat? 575 00:25:16,360 --> 00:25:18,151 En ook, als je wilt gebruik van een hash definiëren 576 00:25:18,151 --> 00:25:21,120 het is echt belangrijk om op te merken dat de naam moet in hoofdletters. 577 00:25:21,120 --> 00:25:22,210 578 00:25:22,210 --> 00:25:24,674 We hebben het niet alleen doen Groepsgrootte te zijn dramatisch. 579 00:25:24,674 --> 00:25:26,090 Het moet eigenlijk in alle caps. 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 Iets anders is er? 583 00:25:30,130 --> 00:25:31,190 We zijn goed? 584 00:25:31,190 --> 00:25:32,220 Lovely. 585 00:25:32,220 --> 00:25:32,720 Welkom. 586 00:25:32,720 --> 00:25:34,240 587 00:25:34,240 --> 00:25:38,495 >> OK, dus ik wil dat jullie een kijkje nemen op deze en kijk of je de bug kunt vinden. 588 00:25:38,495 --> 00:25:45,580 589 00:25:45,580 --> 00:25:46,507 Ik zal je een hint geven. 590 00:25:46,507 --> 00:25:47,840 Het is ergens in dat lus. 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: Moet minder dan gelijk aan 2 zijn. 594 00:25:55,704 --> 00:25:56,920 595 00:25:56,920 --> 00:26:01,094 >> Ann: Dus het minder zou kunnen zijn dan of gelijk aan 2, of het kan minder dan 3 zijn. 596 00:26:01,094 --> 00:26:02,510 En wat is de redenering voor dat? 597 00:26:02,510 --> 00:26:05,135 >> STUDENT: De [onverstaanbaar], 0, 1, 2. 598 00:26:05,135 --> 00:26:06,080 >> Ann: Precies. 599 00:26:06,080 --> 00:26:12,180 Dus in een array van grootte n, we slechts indices 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 En dan kunnen we pas echt gek en krijg multidimensionale arrays. 604 00:26:17,840 --> 00:26:19,340 605 00:26:19,340 --> 00:26:23,960 Een van de problemen toen ik het in mijn jaar vereist multidimensionale arrays, 606 00:26:23,960 --> 00:26:28,720 en ik denk dat een van hen zou kunnen vereisen het dit jaar, zo comfortabel zijn. 607 00:26:28,720 --> 00:26:30,140 Wikkel je hoofd rond het nu. 608 00:26:30,140 --> 00:26:33,087 Het zal terug komen om te achtervolgen u, maar op een koele manier. 609 00:26:33,087 --> 00:26:35,420 Dus je kunt eigenlijk alleen maar denken van multi-dimensionale arrays 610 00:26:35,420 --> 00:26:36,870 arrays van arrays. 611 00:26:36,870 --> 00:26:38,060 612 00:26:38,060 --> 00:26:43,809 Dus u kunt soort denken van deze top roeien als het eerste stuk van het geheugen. 613 00:26:43,809 --> 00:26:45,600 En dit is de tweede stuk van het geheugen, 614 00:26:45,600 --> 00:26:47,570 en de laatste rij is het derde deel van het geheugen. 615 00:26:47,570 --> 00:26:50,740 En binnen dat er een array. 616 00:26:50,740 --> 00:26:53,250 Maar natuurlijk, het is makkelijker af te beelden als deze. 617 00:26:53,250 --> 00:26:55,610 >> Zodat u deze initialiseren op dezelfde manier. 618 00:26:55,610 --> 00:26:57,290 619 00:26:57,290 --> 00:27:01,610 Dit is een teken raad van drie bij drie. 620 00:27:01,610 --> 00:27:04,180 Dus je hebt drie rijen en drie kolommen. 621 00:27:04,180 --> 00:27:06,760 We vertegenwoordigen het op deze manier. 622 00:27:06,760 --> 00:27:11,800 En je zou het de toegang op dezelfde manier, kolom per rij. 623 00:27:11,800 --> 00:27:14,840 En dus 1,1 zoals we hier zien. 624 00:27:14,840 --> 00:27:18,730 We kennen een zero, nul daarboven. 625 00:27:18,730 --> 00:27:21,900 2,0 en 0,2. 626 00:27:21,900 --> 00:27:26,900 Dus zou je them-- gewoon toegang als iemand ooit heeft gedaan lineaire algebra, 627 00:27:26,900 --> 00:27:31,580 op dezelfde manier waarop u toegang tot een element in een matrice, het is hetzelfde idee hier. 628 00:27:31,580 --> 00:27:33,030 Zo kunt u het terug naar wiskunde betrekking hebben. 629 00:27:33,030 --> 00:27:34,130 630 00:27:34,130 --> 00:27:36,380 Je hoeft niet te maken veel over dit moment. 631 00:27:36,380 --> 00:27:38,671 Het is goed om de blootstelling te hebben, om te weten dat je het kunt doen. 632 00:27:38,671 --> 00:27:42,700 U kunt een aantal maken crazy number-- je kan 633 00:27:42,700 --> 00:27:44,750 creëren gek arrays wordt alles wat ik ga zeggen. 634 00:27:44,750 --> 00:27:45,250 [Onverstaanbaar] 635 00:27:45,250 --> 00:27:46,585 636 00:27:46,585 --> 00:27:48,460 Het wordt een beetje gek, maar het is echt 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 >> En dan, dus hebben we hier een voorbeeld. 640 00:27:52,550 --> 00:27:54,165 Het berekent een string lengte. 641 00:27:54,165 --> 00:27:55,210 642 00:27:55,210 --> 00:27:59,670 Dus hoeveel mensen wisten dat de snaren die je gebruikt 643 00:27:59,670 --> 00:28:01,265 zijn slechts arrays van karakters? 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 Dus jullie kunnen denken dat je niet gebruikte arrays voor, maar elk moment 647 00:28:08,000 --> 00:28:10,740 je getString gebruiken in de CSView bibliotheek, je bent 648 00:28:10,740 --> 00:28:14,690 eigenlijk gewoon vragen om een reeks tekens. 649 00:28:14,690 --> 00:28:17,450 En we zijn het verzorgen van alle dat in de back-end voor je. 650 00:28:17,450 --> 00:28:20,184 Maar je hebt het gebruik geweest arrays sinds je begon. 651 00:28:20,184 --> 00:28:21,350 Je gewoon nog niet weten. 652 00:28:21,350 --> 00:28:22,420 653 00:28:22,420 --> 00:28:28,390 >> En wanneer u een karakter array of een matrix die is opslaan van een koord, 654 00:28:28,390 --> 00:28:32,050 het laatste ding is altijd wat genoemd null terminator die 655 00:28:32,050 --> 00:28:33,830 is dit recht hier. 656 00:28:33,830 --> 00:28:37,300 En dat is eind elk woord dat u wilt opslaan. 657 00:28:37,300 --> 00:28:41,170 Dus als we willen achterhalen van de lengte van een tekenreeks, kunnen we zeggen, 658 00:28:41,170 --> 00:28:45,320 Nou, weet je, het inhoud van dat blok 659 00:28:45,320 --> 00:28:46,867 is niet gelijk onze null terminator. 660 00:28:46,867 --> 00:28:49,450 Dat betekent dat er een karakter is er dat we eigenlijk 661 00:28:49,450 --> 00:28:51,540 zorg over dat deel van het woord. 662 00:28:51,540 --> 00:28:52,665 U verhoogt uw lengte. 663 00:28:52,665 --> 00:28:55,540 En toen we eigenlijk naar het einde van het woord, het zal beëindigen 664 00:28:55,540 --> 00:28:58,790 en het zal onze lengte terug voor ons. 665 00:28:58,790 --> 00:29:00,098 Mmhmm? 666 00:29:00,098 --> 00:29:02,906 >> STUDENT: Heeft de ruimte tellen als de null terminator? 667 00:29:02,906 --> 00:29:04,780 Ann: Dus een spatie is niet een null terminator. 668 00:29:04,780 --> 00:29:10,590 Dus als je multiple-- een ruimte is in feite een specifieke ASCII waarde. 669 00:29:10,590 --> 00:29:11,719 670 00:29:11,719 --> 00:29:13,552 STUDENT: Wat is het uitroepteken weer gelijk? 671 00:29:13,552 --> 00:29:17,080 Ann: Dus, dit is wat je verwijzen naar. 672 00:29:17,080 --> 00:29:21,220 Als je me ooit in kantooruren horen, Ik noem het altijd, net als, bang evenaart. 673 00:29:21,220 --> 00:29:23,520 Zo bang is dat niet. 674 00:29:23,520 --> 00:29:25,370 Dus dit is niet gelijk. 675 00:29:25,370 --> 00:29:28,480 676 00:29:28,480 --> 00:29:32,290 Dus als je probeert te zien of er iets is vals, 677 00:29:32,290 --> 00:29:35,915 je weet altijd doen, bang wat de variabele, en als het onwaar, 678 00:29:35,915 --> 00:29:38,540 deze waarde true en je kan leuke dingen doen met die. 679 00:29:38,540 --> 00:29:39,830 680 00:29:39,830 --> 00:29:40,675 Daarover later meer. 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 Alles goed daar? 684 00:29:44,260 --> 00:29:44,760 Awesome. 685 00:29:44,760 --> 00:29:48,045 >> Dus nu is het tijd uw guys 'aan werken, want ik heb gesproken. 686 00:29:48,045 --> 00:29:49,220 687 00:29:49,220 --> 00:29:53,200 Dus ik wil dat je gewoon een array met de getallen één, twee en drie, 688 00:29:53,200 --> 00:29:54,660 en dan hebben ze uitgeprint. 689 00:29:54,660 --> 00:29:58,050 Je hoeft niet te doen, als, belangrijkste, blah, blah, blah, wat dan ook. 690 00:29:58,050 --> 00:30:00,840 Ik wil gewoon dat je te initialiseren de array en maak vervolgens 691 00:30:00,840 --> 00:30:04,790 een lus om ze af te drukken out-- of een while loop, aan jou. 692 00:30:04,790 --> 00:30:07,600 >> Ik geef je slechts een paar minuten aan werken. 693 00:30:07,600 --> 00:30:09,320 Ik ga mijn stem rust. 694 00:30:09,320 --> 00:30:13,290 Als je vragen hebt, ik ben blij om rond te komen en te praten met jullie. 695 00:30:13,290 --> 00:30:15,290 Voel je vrij om met elkaar te praten. 696 00:30:15,290 --> 00:30:16,125 Haal meer snoep. 697 00:30:16,125 --> 00:30:17,181 698 00:30:17,181 --> 00:30:18,930 In feite, zal ik gewoon rondlopen met snoep. 699 00:30:18,930 --> 00:30:19,600 Hoe is dat? 700 00:30:19,600 --> 00:30:22,974 701 00:30:22,974 --> 00:30:23,938 >> Heeft u wilt? 702 00:30:23,938 --> 00:30:34,703 703 00:30:34,703 --> 00:30:36,675 Iemand anders in deze ruimte wil snoep? 704 00:30:36,675 --> 00:30:47,030 705 00:30:47,030 --> 00:30:49,206 U kunt ook meer dan één, jongens. 706 00:30:49,206 --> 00:30:50,330 Neem een ​​handvol als je wilt. 707 00:30:50,330 --> 00:30:52,690 708 00:30:52,690 --> 00:30:53,190 Kan ook. 709 00:30:53,190 --> 00:30:54,929 710 00:30:54,929 --> 00:30:55,720 Iedereen goed? 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 >> Ook ga ik maken een anonieme Google Form, 715 00:31:07,290 --> 00:31:09,830 en jullie kunnen gewoon indienen feedback na elke sectie 716 00:31:09,830 --> 00:31:14,115 als er iets is wat je wilt verbeteren of iets wat je wilt doen. 717 00:31:14,115 --> 00:31:17,135 Als ik een beetje te peppy voor u, kan ik het afzwakken. 718 00:31:17,135 --> 00:31:18,510 719 00:31:18,510 --> 00:31:20,885 Ik zal dat in en stuur dat uit om jullie allemaal achteraf. 720 00:31:20,885 --> 00:32:39,420 721 00:32:39,420 --> 00:32:40,020 >> Prima. 722 00:32:40,020 --> 00:32:41,050 Dus laten we beginnen klein. 723 00:32:41,050 --> 00:32:42,740 Hoe zouden we ons aanbod te initialiseren? 724 00:32:42,740 --> 00:32:49,690 725 00:32:49,690 --> 00:32:51,670 Wat is de aard van ons aanbod? 726 00:32:51,670 --> 00:32:52,410 Een int, toch? 727 00:32:52,410 --> 00:32:54,740 OK, dus wat wil je om de array te bellen? 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 Oké, dus we hebben int int-array gelijk, en wat hebben we daarna? 731 00:33:04,200 --> 00:33:07,009 732 00:33:07,009 --> 00:33:08,259 STUDENT: [onverstaanbaar] haakjes. 733 00:33:08,259 --> 00:33:09,140 Ann: Bretels. 734 00:33:09,140 --> 00:33:10,330 735 00:33:10,330 --> 00:33:11,775 En dan in de beugel? 736 00:33:11,775 --> 00:33:14,360 737 00:33:14,360 --> 00:33:16,830 Één komma twee komma drie. 738 00:33:16,830 --> 00:33:17,330 Cool. 739 00:33:17,330 --> 00:33:18,660 Dus dat is in orde. 740 00:33:18,660 --> 00:33:21,480 Dus nu hebben we onze lus. 741 00:33:21,480 --> 00:33:24,180 Dus in het eerste deel van onze lus, wat hebben we? 742 00:33:24,180 --> 00:33:25,796 743 00:33:25,796 --> 00:33:27,420 >> STUDENT: i gelijk is aan 0? 744 00:33:27,420 --> 00:33:31,400 >> Ann: Dus int i gelijk is aan 0, en wat is dan onze toestand? 745 00:33:31,400 --> 00:33:33,750 746 00:33:33,750 --> 00:33:36,120 Wat ik ga minder dan zijn? 747 00:33:36,120 --> 00:33:39,510 Minder dan drie, en Hoe we het doen we i updaten? 748 00:33:39,510 --> 00:33:41,630 i plus plus, het updaten van het met één. 749 00:33:41,630 --> 00:33:46,150 En dan gaan we hebben sommige printf van de integer, 750 00:33:46,150 --> 00:33:49,530 en wat is dat laatste deel dat is eigenlijk 751 00:33:49,530 --> 00:33:51,370 gaan zeggen wat we moeten printen? 752 00:33:51,370 --> 00:33:55,610 753 00:33:55,610 --> 00:33:59,120 Het zou de naam van de te array, dat is int array, toch? 754 00:33:59,120 --> 00:34:01,090 En wat zit er in de beugels van de 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 [? Dus ik?] Belde mijn voorbeeld, maar daar ga je. 758 00:34:06,550 --> 00:34:07,939 759 00:34:07,939 --> 00:34:08,480 Niet zo slecht. 760 00:34:08,480 --> 00:34:09,250 Iedereen goed? 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 >> Dus we zijn klaar met de arrays. 765 00:34:14,340 --> 00:34:15,190 Congrats. 766 00:34:15,190 --> 00:34:18,274 Je wist te herhalen door alle the-- ja? 767 00:34:18,274 --> 00:34:19,705 >> STUDENT: [onverstaanbaar] 768 00:34:19,705 --> 00:34:20,659 >> Ann: Ja. 769 00:34:20,659 --> 00:34:26,383 770 00:34:26,383 --> 00:34:27,798 >> STUDENT: Ik heb een vraag. 771 00:34:27,798 --> 00:34:30,288 Bent u verondersteld om de beugels inspringen? 772 00:34:30,288 --> 00:34:34,150 >> Ann: Dus de beugels moet line-up met de lus, en dan is alles 773 00:34:34,150 --> 00:34:35,699 binnen in de beugels moeten worden ingesprongen. 774 00:34:35,699 --> 00:34:37,824 >> STUDENT: OK, moet de lus worden ingesprongen? 775 00:34:37,824 --> 00:34:41,159 >> Ann: De lus niet moeten worden ingesprongen op dit punt. 776 00:34:41,159 --> 00:34:46,750 Als je in de belangrijkste, als we had eigenlijk een hoofdfunctie hier, 777 00:34:46,750 --> 00:34:48,929 het zou worden ingesprongen van de belangrijkste. 778 00:34:48,929 --> 00:34:52,590 Maar in dit geval, is het prima. 779 00:34:52,590 --> 00:34:53,354 Ja, vraag. 780 00:34:53,354 --> 00:34:55,687 >> STUDENT: Heeft u behoefte aan hebt de haakjes na het voorbeeld? 781 00:34:55,687 --> 00:34:59,050 782 00:34:59,050 --> 00:35:01,260 >> Ann: Ja, als je initialiseren van het op die manier. 783 00:35:01,260 --> 00:35:03,430 784 00:35:03,430 --> 00:35:06,860 Dus vergeet niet, dit is de tweede manier van het initialiseren van een array waar 785 00:35:06,860 --> 00:35:10,680 wij hebben de beugels en dan is onze eigenlijke gegevens gescheiden door komma's binnen. 786 00:35:10,680 --> 00:35:14,700 787 00:35:14,700 --> 00:35:17,281 >> STUDENT: Ik dacht dat er waren beugels voor dat voorbeeld. 788 00:35:17,281 --> 00:35:19,010 >> Ann: Nee, ze zijn bretels. 789 00:35:19,010 --> 00:35:20,039 Ze zijn bretels. 790 00:35:20,039 --> 00:35:22,330 Als je het initialiseren die tweede manier, het is een beugel. 791 00:35:22,330 --> 00:35:28,780 Als we zouden zeggen, int example-- indien we wilden gewoon een lege array voor integers, 792 00:35:28,780 --> 00:35:32,270 het zou zijn int bijvoorbeeld beugels drie. 793 00:35:32,270 --> 00:35:34,670 De haakjes geven de grootte. 794 00:35:34,670 --> 00:35:36,720 Wanneer u braces, het is de feitelijke gegevens 795 00:35:36,720 --> 00:35:39,244 je bent het in het op deze manier. 796 00:35:39,244 --> 00:35:40,535 We kunnen terugkijken echt snel te bladeren. 797 00:35:40,535 --> 00:35:42,370 798 00:35:42,370 --> 00:35:48,010 >> Dus in deze, dit is gewoon onze eerste array, initialisatie. 799 00:35:48,010 --> 00:35:51,640 En hier zijn we individueel toewijzen van plekken om ze, 800 00:35:51,640 --> 00:35:56,730 dus dit is de index van onze array, dat is waarom we hebben beugels. 801 00:35:56,730 --> 00:36:01,630 Maar hier, als u opmerkt, we hebben lieten onze beugels zonder omvang, 802 00:36:01,630 --> 00:36:05,969 en we het met het feitelijke gegevens all-in-one met een beugel. 803 00:36:05,969 --> 00:36:08,260 STUDENT: Dus waarom niet we hebben haakjes in dit voorbeeld? 804 00:36:08,260 --> 00:36:11,030 Ann: Dus, in welk deel? 805 00:36:11,030 --> 00:36:14,645 STUDENT: zouden we niet zeg, int bijvoorbeeld beugels 806 00:36:14,645 --> 00:36:19,710 evenaart haken [onverstaanbaar] haken, bijvoorbeeld. 807 00:36:19,710 --> 00:36:20,900 >> Ann: Oh, sorry. 808 00:36:20,900 --> 00:36:21,560 Je hebt gelijk. 809 00:36:21,560 --> 00:36:22,690 We hebben beugels daar. 810 00:36:22,690 --> 00:36:23,486 Sorry jongens, my bad. 811 00:36:23,486 --> 00:36:25,150 812 00:36:25,150 --> 00:36:27,560 Ja, moet je haakjes na voorbeeld. 813 00:36:27,560 --> 00:36:28,850 Je hebt helemaal gelijk. 814 00:36:28,850 --> 00:36:29,750 >> STUDENT: [onverstaanbaar] het niet te doen. 815 00:36:29,750 --> 00:36:31,270 >> Ann: Nee, je moet hebben haakjes, want anders is 816 00:36:31,270 --> 00:36:32,810 niet van plan om een ​​array te verklaren. 817 00:36:32,810 --> 00:36:33,685 STUDENT: [onverstaanbaar]. 818 00:36:33,685 --> 00:36:34,200 Mail. 819 00:36:34,200 --> 00:36:36,200 >> Ann: Sorry, je moet haakjes na voorbeeld. 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 Goede vangst, gouden ster voor jou. 824 00:36:43,160 --> 00:36:47,730 Ook, als u een vraag stelt, indien jullie zouden gewoon vertellen me uw namen, 825 00:36:47,730 --> 00:36:48,570 Ik zou graag dat. 826 00:36:48,570 --> 00:36:50,630 Ik zou graag in staat zijn om weet al uw namen. 827 00:36:50,630 --> 00:36:53,187 Ik ga niet koud roep je, ik eigenlijk 828 00:36:53,187 --> 00:36:54,520 hoeft alleen maar willen om uw namen te leren kennen. 829 00:36:54,520 --> 00:36:57,530 Dus gelieve eigenlijk vertel me uw namen. 830 00:36:57,530 --> 00:36:58,426 >> LEAH: Leah. 831 00:36:58,426 --> 00:36:59,340 >> Ann: Leah. 832 00:36:59,340 --> 00:37:03,960 OK, dus functions-- weet ik in het kort Ze spraken over dit tijdens college. 833 00:37:03,960 --> 00:37:07,590 Dus functies zijn een soort van net zoals deze kleine hapklare dingen 834 00:37:07,590 --> 00:37:11,525 waar je langs in ingangen, iets magisch gebeurt, en je krijgt uitgangen. 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 Dus u daadwerkelijk gebruik gemaakt van een Veel van deze reeds. 838 00:37:15,013 --> 00:37:15,970 839 00:37:15,970 --> 00:37:18,840 Krijg int, krijg touwtje, printen f. 840 00:37:18,840 --> 00:37:21,790 Dit zijn alle functies waar je ze gewoon bellen, 841 00:37:21,790 --> 00:37:24,370 er is veel magische dingen gaande in de achtergrond 842 00:37:24,370 --> 00:37:27,390 dat je niet per se te zien, en je krijgt wat je wilt. 843 00:37:27,390 --> 00:37:30,280 Of in ieder geval krijg je wat je hoopt je wilt. 844 00:37:30,280 --> 00:37:31,920 845 00:37:31,920 --> 00:37:35,620 >> En eigenlijk de bijzondere functies en een van de belangrijkste thema's van CS, 846 00:37:35,620 --> 00:37:38,700 is om je code te breken in hanteerbare stukken. 847 00:37:38,700 --> 00:37:41,520 Wanneer je begint te schrijven deze echt lang programma's, 848 00:37:41,520 --> 00:37:44,970 of in Scratch dat je moest dit grootse idee voor een spel, 849 00:37:44,970 --> 00:37:48,070 moet je in staat zijn om het te breken omlaag om, als, OK, hoe moet ik beginnen? 850 00:37:48,070 --> 00:37:50,470 Wat zijn de kleine stukjes die ik nodig heb? 851 00:37:50,470 --> 00:37:53,320 Oh, ik moet het vragen gebruiker voor iets. 852 00:37:53,320 --> 00:37:54,830 Nu moet ik iets af te drukken. 853 00:37:54,830 --> 00:37:56,590 Oh, ik moet deze waarde te berekenen. 854 00:37:56,590 --> 00:38:00,050 >> En leren hoe te breken uw code en de grote problemen die u 855 00:38:00,050 --> 00:38:02,740 hebben in deze kleine stukjes en het creëren van functies 856 00:38:02,740 --> 00:38:05,330 is eigenlijk een van de grote hoekstenen van CS. 857 00:38:05,330 --> 00:38:06,440 858 00:38:06,440 --> 00:38:11,740 Zo kunt u denken aan een functie net zo als een zwarte doos, een magische zwarte doos, 859 00:38:11,740 --> 00:38:15,030 dat je de dingen in en je krijgt een aantal output. 860 00:38:15,030 --> 00:38:16,290 861 00:38:16,290 --> 00:38:19,460 En de rest van het programma hoeft niet noodzakelijkerwijs weten 862 00:38:19,460 --> 00:38:21,150 wat er in die black box. 863 00:38:21,150 --> 00:38:24,190 Alles wat het geeft om is wat gaat in en wat eruit komt. 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 >> Dus waarom functies? 867 00:38:27,820 --> 00:38:33,240 Organization-- zoals ik al zei, als je het omgaan met zeer grote code bases, 868 00:38:33,240 --> 00:38:37,357 Hoe organiseer je je code zal zijn veel gemakkelijker als je functies gebruiken. 869 00:38:37,357 --> 00:38:39,190 Want je zult in staat zijn te zijn, zoals, OK dit 870 00:38:39,190 --> 00:38:41,849 is wat deze functie doet en hier is wat een ander doet. 871 00:38:41,849 --> 00:38:43,890 En je kunt eenvoudig zien hoe ze allemaal in elkaar passen. 872 00:38:43,890 --> 00:38:45,590 873 00:38:45,590 --> 00:38:48,210 Dus breken het op in alle deze beheersbaar subonderdelen. 874 00:38:48,210 --> 00:38:51,860 >> Dus simplification-- Ik weet zeker dat jullie Alles zag dit, zoals ik al zei, met Scratch. 875 00:38:51,860 --> 00:38:53,230 876 00:38:53,230 --> 00:38:56,790 Je hebt dit grootse idee, en je net als, hoe doet al dit werk? 877 00:38:56,790 --> 00:38:59,710 Maar als je het te benaderen stukje bij beetje, zeg je, OK, 878 00:38:59,710 --> 00:39:03,650 hoe maak ik een sprite zweven over het scherm? 879 00:39:03,650 --> 00:39:04,805 Dat is een beetje makkelijker. 880 00:39:04,805 --> 00:39:06,000 881 00:39:06,000 --> 00:39:09,590 Zo goed gebruik van de functie merken uw code veel gemakkelijker te lezen. 882 00:39:09,590 --> 00:39:13,800 Het maakt het makkelijker om te debuggen, die als je in je latere probleem sets, 883 00:39:13,800 --> 00:39:15,900 je gaat echt willen in staat zijn om te doen. 884 00:39:15,900 --> 00:39:17,900 En ze zijn ook makkelijker te ontwerpen en te implementeren. 885 00:39:17,900 --> 00:39:21,100 U kunt maximaal coderen een kleine relatief snel functioneren 886 00:39:21,100 --> 00:39:25,260 en zorg ervoor dat het werkt versus proberen deze hele lange programma te maken 887 00:39:25,260 --> 00:39:28,960 en dan soort doorlopen en zien wat werkt en wat niet. 888 00:39:28,960 --> 00:39:30,300 >> En dan herbruikbaarheid. 889 00:39:30,300 --> 00:39:33,380 Dus functies hoeft alleen eenmaal te worden geschreven, 890 00:39:33,380 --> 00:39:35,586 en dan kun je ze gebruiken zo vaak mogelijk. 891 00:39:35,586 --> 00:39:37,210 Dus het is, net als, milieuvriendelijke in zekere zin. 892 00:39:37,210 --> 00:39:39,660 893 00:39:39,660 --> 00:39:42,070 Als je dingen als had prent f, waar u 894 00:39:42,070 --> 00:39:47,420 had de magie die uitgaat om te schrijven achter afdrukken f elke keer 895 00:39:47,420 --> 00:39:51,040 je wilde iets af te drukken, u zou behoorlijk ziek en moe van het zijn 896 00:39:51,040 --> 00:39:51,650 tegen het einde. 897 00:39:51,650 --> 00:39:52,660 898 00:39:52,660 --> 00:39:55,292 >> Een van de dingen die je zult leren op latere klassen CS, 899 00:39:55,292 --> 00:39:57,000 of één van de beste stukken van advies dat ik krijg 900 00:39:57,000 --> 00:40:00,870 is, als je kopiëren en plakken code moet waarschijnlijk een functie zijn. 901 00:40:00,870 --> 00:40:01,880 902 00:40:01,880 --> 00:40:06,007 Als je precies hetzelfde hebben lijnen al in uw code, 903 00:40:06,007 --> 00:40:08,090 als je meegenomen ze uit, uw code zou waarschijnlijk 904 00:40:08,090 --> 00:40:11,860 zijn zoals vijf keer korter en veel meer gemakkelijk te lezen. 905 00:40:11,860 --> 00:40:15,230 En in plaats van te proberen om problemen op te lossen al deze verschillende plaatsen waar dingen 906 00:40:15,230 --> 00:40:18,021 er fout kan gaan, je er een functie hebben dat je bij het oplossen van problemen. 907 00:40:18,021 --> 00:40:19,230 908 00:40:19,230 --> 00:40:21,890 En ik beloof, veel van deze lijkt soort abstracte nu, 909 00:40:21,890 --> 00:40:24,620 maar als je in de latere en later probleem stelt, 910 00:40:24,620 --> 00:40:28,950 het zal veel meer zin en echt naar huis worden gestuurd. 911 00:40:28,950 --> 00:40:31,775 Zijn er nog vragen over functies tot nu toe? 912 00:40:31,775 --> 00:40:32,650 Waarom we ze gebruiken? 913 00:40:32,650 --> 00:40:34,775 Ik weet dat we niet hebben gekregen in de Nitty Gritty nog. 914 00:40:34,775 --> 00:40:40,610 Dus het definiëren van een function-- net als arrays, een soort van-- dit moeten we 915 00:40:40,610 --> 00:40:41,860 is gewoon de algemene output. 916 00:40:41,860 --> 00:40:45,110 Dus dit is een functie die gewoon naar wat input kubus. 917 00:40:45,110 --> 00:40:50,120 En op de volgende pagina, eigenlijk, we hebben al deze geweldige kleine dingen hier. 918 00:40:50,120 --> 00:40:52,420 Dus, iedereen kan lezen dat, uit nieuwsgierigheid? 919 00:40:52,420 --> 00:40:55,050 Ik weet dat het paars en zwart misschien een beetje hard. 920 00:40:55,050 --> 00:41:00,730 >> Maar grote dingen te weten-- dus de eerste één hier is onze terugkeer type. 921 00:41:00,730 --> 00:41:05,270 Dus dit is het over de output van deze functie als in dit geval, 922 00:41:05,270 --> 00:41:08,990 we zetten in een getal, wat we krijgen, is dat aantal in blokjes. 923 00:41:08,990 --> 00:41:11,090 Dus moet een int in dit geval. 924 00:41:11,090 --> 00:41:14,055 Misschien zou het een dubbele te zijn of iets later, maar in dit geval, 925 00:41:14,055 --> 00:41:14,555 het is een int. 926 00:41:14,555 --> 00:41:15,620 927 00:41:15,620 --> 00:41:19,440 >> Met c, je moet altijd een return type. 928 00:41:19,440 --> 00:41:20,267 Het zal een int zijn. 929 00:41:20,267 --> 00:41:20,975 Het zal een float zijn. 930 00:41:20,975 --> 00:41:22,180 Het zal een dubbel. 931 00:41:22,180 --> 00:41:25,370 Maar je moet wat te specificeren deze functie zal terugkeren. 932 00:41:25,370 --> 00:41:26,480 933 00:41:26,480 --> 00:41:29,170 Anders zal het schreeuwen tegen u, en het zal niet compileren. 934 00:41:29,170 --> 00:41:30,462 Je zult bedroefd zijn, en ik zal verdrietig zijn. 935 00:41:30,462 --> 00:41:31,420 En het is gewoon niet goed. 936 00:41:31,420 --> 00:41:31,940 OK. 937 00:41:31,940 --> 00:41:34,290 >> En dan hebben we onze naam van de functie. 938 00:41:34,290 --> 00:41:38,440 En zoals je hier kunt zien, met c er is dit zeer consistent paradigma. 939 00:41:38,440 --> 00:41:42,630 Wat is je type, wat is de naam, en dan nog wat andere dingen aan het eind. 940 00:41:42,630 --> 00:41:45,550 Dus hebben we onze return type, onze functie naam, en vervolgens 941 00:41:45,550 --> 00:41:49,320 we hebben onze header met onze parameterlijst. 942 00:41:49,320 --> 00:41:52,080 >> Dus de parameter lijst is, wat is deze functie te gaan nemen in? 943 00:41:52,080 --> 00:41:56,360 Een parameter lijst is gewoon een synoniem voor, wat zijn onze ingangen? 944 00:41:56,360 --> 00:42:00,230 En op dezelfde manier dat we moeten onze functie definiëren 945 00:42:00,230 --> 00:42:03,210 en geef het een terugkeer typen, elk van onze ingangen 946 00:42:03,210 --> 00:42:05,350 moet een type verbonden aan. 947 00:42:05,350 --> 00:42:08,850 Dus we weten wat onze functie daadwerkelijk kan werken. 948 00:42:08,850 --> 00:42:11,290 >> Dus in dit geval, we hebben een aantal int ingang. 949 00:42:11,290 --> 00:42:14,660 Dus nogmaals, het zal het type zijn en wat je belt het. 950 00:42:14,660 --> 00:42:16,500 951 00:42:16,500 --> 00:42:19,040 En dan, zoals je ziet hier hebben we ons lichaam. 952 00:42:19,040 --> 00:42:23,600 Dus we hebben een aantal int output, dat is gewoon onze inbreng keer zelf 953 00:42:23,600 --> 00:42:25,810 tijd zelf, die net kubussen het. 954 00:42:25,810 --> 00:42:27,610 En dan keren we terug dat de output. 955 00:42:27,610 --> 00:42:32,140 >> Dus zoals je hier ziet, hebben we een int keer een int keer een int, 956 00:42:32,140 --> 00:42:35,420 dus het een int, keert terug die is er verklaard. 957 00:42:35,420 --> 00:42:38,240 Dus alles is samenhangend. 958 00:42:38,240 --> 00:42:39,210 Alles is gelukkig. 959 00:42:39,210 --> 00:42:40,250 Uw functie zal lopen. 960 00:42:40,250 --> 00:42:41,192 961 00:42:41,192 --> 00:42:42,650 En dit is slechts de algemene zaak. 962 00:42:42,650 --> 00:42:46,750 Dus altijd return type, naam, en uw parameterlijst. 963 00:42:46,750 --> 00:42:48,830 Elk ding in je parameter lijst, of input, 964 00:42:48,830 --> 00:42:51,410 moet een type verbonden aan. 965 00:42:51,410 --> 00:42:54,210 En dan heb je lichaam hier met wat 966 00:42:54,210 --> 00:42:55,590 u wilt doen met uw inbreng. 967 00:42:55,590 --> 00:42:57,390 968 00:42:57,390 --> 00:43:00,410 >> En dan natuurlijk je iets wilt retourneren. 969 00:43:00,410 --> 00:43:02,630 Soms functies zal gewoon terug. 970 00:43:02,630 --> 00:43:06,090 Ze eigenlijk niet terug iets voor u om te gebruiken. 971 00:43:06,090 --> 00:43:08,660 Maar je hebt om terug te keren op een bepaalde manier. 972 00:43:08,660 --> 00:43:12,900 En als je het maken van uw eigen functies, 973 00:43:12,900 --> 00:43:15,430 we kunnen krijgen in die een beetje dieper. 974 00:43:15,430 --> 00:43:18,880 Persoonlijk, als je wilt, er zijn een heleboel van de verschillende dingen die je zou kunnen doen daar. 975 00:43:18,880 --> 00:43:21,350 976 00:43:21,350 --> 00:43:22,140 Iedereen goed? 977 00:43:22,140 --> 00:43:25,900 Alles wat op deze lijst dat u mij wilt over te gaan, dat je niet begreep? 978 00:43:25,900 --> 00:43:27,204 979 00:43:27,204 --> 00:43:28,120 Iedereen is goed daar? 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, dus we zetten dit alles bij elkaar nu. 985 00:43:34,700 --> 00:43:35,720 986 00:43:35,720 --> 00:43:41,201 Dus hebben we een aantal int kubus input, zodat Dit is een compleet programma hier. 987 00:43:41,201 --> 00:43:42,950 Tot nu toe, ik heb soort is het geven van je 988 00:43:42,950 --> 00:43:45,699 jongens fragmenten die kunnen gaan binnen een programma. 989 00:43:45,699 --> 00:43:47,240 We hebben net te kijken naar functies. 990 00:43:47,240 --> 00:43:48,448 Maar hier is een volledig programma. 991 00:43:48,448 --> 00:43:49,400 992 00:43:49,400 --> 00:43:53,690 Dus hoeveel van jullie herinneren de woord prototype van college? 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 We hebben er een. 996 00:43:55,890 --> 00:43:57,160 997 00:43:57,160 --> 00:43:58,110 Wat is je naam? 998 00:43:58,110 --> 00:43:58,850 >> STEPH: Steph. 999 00:43:58,850 --> 00:43:59,475 >> Ann: Steph? 1000 00:43:59,475 --> 00:44:01,030 OK, geweldig. 1001 00:44:01,030 --> 00:44:03,310 Dus, weet je nog wat een prototype is? 1002 00:44:03,310 --> 00:44:04,651 1003 00:44:04,651 --> 00:44:10,230 >> STUDENT: Je zegt dat [onverstaanbaar] voordat u daadwerkelijk behandelen. 1004 00:44:10,230 --> 00:44:11,700 >> Ann: Weet je nog waarom? 1005 00:44:11,700 --> 00:44:13,158 >> STUDENT: No. 1006 00:44:13,158 --> 00:44:14,620 >> Ann: OK. 1007 00:44:14,620 --> 00:44:16,090 Gouden ster. 1008 00:44:16,090 --> 00:44:19,470 Zo ja, een prototype we vooraf, omdat anders, 1009 00:44:19,470 --> 00:44:21,260 onze compiler gaat schreeuwen tegen ons. 1010 00:44:21,260 --> 00:44:24,294 Het gaat om te zeggen, OK, wat is deze kubus functie? 1011 00:44:24,294 --> 00:44:26,460 Zoals, heb je letterlijk vertelde me niets over dit. 1012 00:44:26,460 --> 00:44:28,110 Het is net als wanneer je lopen in een klaslokaal, 1013 00:44:28,110 --> 00:44:29,320 en iemand is net als, er is een quiz vandaag. 1014 00:44:29,320 --> 00:44:31,380 En u bent als u me nooit verteld over dit. 1015 00:44:31,380 --> 00:44:32,930 Ik ben niet blij met ons. 1016 00:44:32,930 --> 00:44:34,300 1017 00:44:34,300 --> 00:44:37,020 Het prototype is in principe net als uw syllabus zeggen, kijk. 1018 00:44:37,020 --> 00:44:37,900 Heads up. 1019 00:44:37,900 --> 00:44:39,570 Er gaat een quiz op deze dag. 1020 00:44:39,570 --> 00:44:41,420 Niet in paniek raken als je naar het. 1021 00:44:41,420 --> 00:44:42,690 Je gaat goed komen. 1022 00:44:42,690 --> 00:44:48,170 >> Dus al het prototype doet is vertellen belangrijkste, ik ga deze functie te gebruiken. 1023 00:44:48,170 --> 00:44:51,010 Ik beloof dat ik later te definiëren. 1024 00:44:51,010 --> 00:44:52,260 Niet in paniek raken bij mij. 1025 00:44:52,260 --> 00:44:54,750 Gewoon compileren en doe wat ik je zeg om. 1026 00:44:54,750 --> 00:44:58,880 Dus we hebben het prototype er alleen maar om onze compiler gelukkig maken. 1027 00:44:58,880 --> 00:45:04,360 En het is in feite een belofte die u deze functie later hebt gedefinieerd 1028 00:45:04,360 --> 00:45:07,960 en dat je niet alleen maar bellen deze willekeurige ding dat het 1029 00:45:07,960 --> 00:45:10,070 weet niet wat je bent gaan doen. 1030 00:45:10,070 --> 00:45:11,910 >> Dus in dit geval, we hebben hier de belangrijkste. 1031 00:45:11,910 --> 00:45:14,660 We initialiseren enkele integer x. 1032 00:45:14,660 --> 00:45:15,620 Dat is twee. 1033 00:45:15,620 --> 00:45:17,510 We gaan om uit te printen wat x is. 1034 00:45:17,510 --> 00:45:18,800 We gaan x kubus. 1035 00:45:18,800 --> 00:45:21,520 Zoals u ziet, hebben we onze functie declaratie 1036 00:45:21,520 --> 00:45:23,770 hier beneden dat we gesproken over eerder. 1037 00:45:23,770 --> 00:45:28,260 Het zal x Cube, en dan, als we vergeet niet, de kubus functie eigenlijk 1038 00:45:28,260 --> 00:45:31,340 geeft een geheel te ons, dat wordt opgeslagen 1039 00:45:31,340 --> 00:45:35,860 in x weer, zodat we kunnen printen uit acht, of cube x nu. 1040 00:45:35,860 --> 00:45:37,170 1041 00:45:37,170 --> 00:45:38,920 Is dat zinvol voor iedereen? 1042 00:45:38,920 --> 00:45:40,360 We zijn goed? 1043 00:45:40,360 --> 00:45:41,160 Prima. 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 >> Prima. 1047 00:45:46,840 --> 00:45:50,879 Hoeveel van jullie Herinner dit dus dit 1048 00:45:50,879 --> 00:45:52,670 is eigenlijk gewoon je stack en uw hoop, 1049 00:45:52,670 --> 00:45:56,510 slechts een visualisatie van hoe het geheugen hier opgeslagen. 1050 00:45:56,510 --> 00:45:58,200 1051 00:45:58,200 --> 00:46:01,400 Dus we willen gewoon maken zorgen dat u begrijpt 1052 00:46:01,400 --> 00:46:03,680 hoe deze worden weergegeven in het geheugen. 1053 00:46:03,680 --> 00:46:07,670 Als je lessen zoals nemen CS61 en spullen later, 1054 00:46:07,670 --> 00:46:10,570 je krijgt om dit veel meer te leren in de diepte, en het is echt cool. 1055 00:46:10,570 --> 00:46:11,730 Ik beveel het. 1056 00:46:11,730 --> 00:46:12,740 1057 00:46:12,740 --> 00:46:14,720 Maar voor nu, ik zal geven u het brede overzicht 1058 00:46:14,720 --> 00:46:16,950 zodat je niet hoeft te weet de Nitty Gritty. 1059 00:46:16,950 --> 00:46:20,820 >> Dus de top slechts een tekst segment dat bevat de werkelijke nullen en enen, 1060 00:46:20,820 --> 00:46:23,740 de binaire daarvoor. 1061 00:46:23,740 --> 00:46:27,510 En dit wordt gebruikt voor het opslaan globale variabelen als je die hebt. 1062 00:46:27,510 --> 00:46:28,870 1063 00:46:28,870 --> 00:46:32,240 Als je naar beneden beweegt, we hebben, zoals je hier ziet, 1064 00:46:32,240 --> 00:46:34,670 geïnitialiseerd data, uninitialized data, en dan hoop. 1065 00:46:34,670 --> 00:46:35,800 1066 00:46:35,800 --> 00:46:38,584 >> Zodat we niet echt praten over de hoop op dit moment. 1067 00:46:38,584 --> 00:46:39,500 We zullen later om het te krijgen. 1068 00:46:39,500 --> 00:46:40,762 1069 00:46:40,762 --> 00:46:42,970 Voor nu ben ik gewoon gaan zwaaien mijn handen en zijn als, 1070 00:46:42,970 --> 00:46:44,553 je hoeft niet te weten over dit nu. 1071 00:46:44,553 --> 00:46:46,100 1072 00:46:46,100 --> 00:46:49,060 Maar we zullen een beetje praten beetje over de stapel. 1073 00:46:49,060 --> 00:46:53,050 Dus de stack is where-- we inzoomen. 1074 00:46:53,050 --> 00:46:58,590 Dit is eigenlijk hoe het programma we net keek optreedt in het geheugen. 1075 00:46:58,590 --> 00:47:01,630 >> Dus wat er gebeurt is, elke tijd een functie noemen we, 1076 00:47:01,630 --> 00:47:04,180 we krijgen wat een stack genoemd frame, dat een van deze. 1077 00:47:04,180 --> 00:47:05,870 Dus belangrijkste's parameters. 1078 00:47:05,870 --> 00:47:07,944 Dus dat zijn de dingen dat wij overgaan in main. 1079 00:47:07,944 --> 00:47:11,110 Dus ze zijn hier bij de bodem, want dat is het eerste wat we noemen. 1080 00:47:11,110 --> 00:47:13,401 En dan komen we bij de belangrijkste's locals, en als we dat zeggen, 1081 00:47:13,401 --> 00:47:15,970 bedoelen we de lokale variabelen die zijn opgeslagen in de belangrijkste. 1082 00:47:15,970 --> 00:47:19,950 1083 00:47:19,950 --> 00:47:23,620 Dus locals hier zou zijn, als, x is gelijk aan twee in dit geval. 1084 00:47:23,620 --> 00:47:26,350 Want dat is gelokaliseerd op main. 1085 00:47:26,350 --> 00:47:29,745 Heeft iedereen herinneren scope, gaan over dat in collegezaal? 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 Dus, de variabelen worden geïnitialiseerd binnen main. 1089 00:47:36,110 --> 00:47:38,550 Dus dat is de reden waarom we hebben main [? zang. ?] 1090 00:47:38,550 --> 00:47:40,390 >> En vervolgens binnen de belangrijkste, kubus noemen we. 1091 00:47:40,390 --> 00:47:41,000 Right? 1092 00:47:41,000 --> 00:47:44,510 Dus krijgen we een ander frame met parameters cube's. 1093 00:47:44,510 --> 00:47:47,050 Dus in dit geval, cube's parameters zijn nu 1094 00:47:47,050 --> 00:47:50,800 de x die we doorgegeven, de twee die we doorgegeven. 1095 00:47:50,800 --> 00:47:55,320 En dan cube's lokale bevolking, dat is waar de eigenlijke Opstijgen gebeurt. 1096 00:47:55,320 --> 00:47:56,450 En dan keert hij terug. 1097 00:47:56,450 --> 00:48:02,120 >> Dus wat er gebeurt is als kubus eigenlijk doet wat het verondersteld wordt te doen, keert het terug. 1098 00:48:02,120 --> 00:48:07,020 Wanneer het terugkeert, dit frame verlaat, en keerde terug naar beneden naar de belangrijkste. 1099 00:48:07,020 --> 00:48:09,160 En vervolgens binnen de belangrijkste, we daadwerkelijk kan afdrukken. 1100 00:48:09,160 --> 00:48:10,840 1101 00:48:10,840 --> 00:48:14,500 Dus als je terugkeert iets, wanneer uw functie geeft, 1102 00:48:14,500 --> 00:48:19,900 het is zoals het doorgeven van die waarden te het frame eronder en dan verlaten. 1103 00:48:19,900 --> 00:48:22,200 En dingen moeten uitvoeren in orde. 1104 00:48:22,200 --> 00:48:25,550 >> En als je bij grotere programma, we koeler en ingewikkelder kan maken 1105 00:48:25,550 --> 00:48:26,470 diagrammen. 1106 00:48:26,470 --> 00:48:29,070 Maar voor nu, dit is slechts een algemeen overzicht 1107 00:48:29,070 --> 00:48:31,110 dus je hebt een soort van begrip van wat 1108 00:48:31,110 --> 00:48:35,160 gebeurt er als je een functie belt en hoe dat eigenlijk lijkt in het geheugen. 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 Iedereen goed? 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 >> Dus is er een die gewoon proberen om dingen te ruilen. 1116 00:48:50,575 --> 00:48:52,260 1117 00:48:52,260 --> 00:48:54,930 Zoals we hier zien, hebben we onze functie prototype 1118 00:48:54,930 --> 00:48:56,900 zodat onze compiler niet schreeuwen tegen ons. 1119 00:48:56,900 --> 00:48:59,220 We hebben een aantal grote, en we willen x en y schakelen. 1120 00:48:59,220 --> 00:49:00,320 1121 00:49:00,320 --> 00:49:04,129 Ze hebben niet deze demo gedaan in nog een lezing, hebben ze? 1122 00:49:04,129 --> 00:49:04,670 Ze hebben niet? 1123 00:49:04,670 --> 00:49:05,900 OK. 1124 00:49:05,900 --> 00:49:08,450 Dus we gaan om te gaan meer dan dit heel kort. 1125 00:49:08,450 --> 00:49:12,210 Je stapt in dit voorbeeld meer in de diepte, denk ik, deze week. 1126 00:49:12,210 --> 00:49:15,680 En dan volgende week kunnen we echt duiken in waarom dit niet werkt. 1127 00:49:15,680 --> 00:49:18,810 >> Dus we hebben deze leegte functie hier-- swap. 1128 00:49:18,810 --> 00:49:20,720 Dus leegte gewoon betekent dat niets geretourneerd. 1129 00:49:20,720 --> 00:49:22,000 1130 00:49:22,000 --> 00:49:24,110 En we hebben swap int een en int b. 1131 00:49:24,110 --> 00:49:27,046 En we hebben een aantal tijdelijke variabele dat is een. 1132 00:49:27,046 --> 00:49:30,050 een wordt toegewezen aan B en vervolgens B wordt toegekend aan de temp 1133 00:49:30,050 --> 00:49:32,235 zodat a en b's waarden zijn nu ingeschakeld. 1134 00:49:32,235 --> 00:49:33,510 1135 00:49:33,510 --> 00:49:36,030 >> Maar, plot twist, dit werkt niet. 1136 00:49:36,030 --> 00:49:37,390 1137 00:49:37,390 --> 00:49:42,380 En een deel van het eigenlijk te maken met het feit dat een 1138 00:49:42,380 --> 00:49:48,800 en B hier, degenen die krijgen doorgegeven in Hier zijn eigenlijk kopieën van x en y. 1139 00:49:48,800 --> 00:49:53,220 Dus toen de functie daadwerkelijk terugkeert, schakelt hij de kopieën, maar niet 1140 00:49:53,220 --> 00:49:55,960 de werkelijke x en y's. 1141 00:49:55,960 --> 00:50:02,370 Dus een manier om na te denken over het is dat-- doen alsof dit zijn swap. 1142 00:50:02,370 --> 00:50:03,130 OK? 1143 00:50:03,130 --> 00:50:05,390 Dus in de belangrijkste, we hebben x en y geïnitialiseerd. 1144 00:50:05,390 --> 00:50:06,530 1145 00:50:06,530 --> 00:50:10,760 Maar als we daadwerkelijk omhoog gaan om deze frames met swap, 1146 00:50:10,760 --> 00:50:15,740 we passeren de waarden over om het, en ze zijn geïnitialiseerd. 1147 00:50:15,740 --> 00:50:18,570 >> En ze altijd alleen maar hier wonen. 1148 00:50:18,570 --> 00:50:19,796 Dus a en b wonen hier. 1149 00:50:19,796 --> 00:50:20,670 En ze worden verwisseld. 1150 00:50:20,670 --> 00:50:21,870 1151 00:50:21,870 --> 00:50:26,190 Maar wanneer we terugkeren, we doen niet iets doen met a en b. een 1152 00:50:26,190 --> 00:50:28,980 en b verlof met onze functie. 1153 00:50:28,980 --> 00:50:30,850 Dus x en y gelijk blijven. 1154 00:50:30,850 --> 00:50:31,960 1155 00:50:31,960 --> 00:50:39,665 Je zult meer te krijgen in hoe dat op te lossen en hoe we eigenlijk later wel. 1156 00:50:39,665 --> 00:50:40,750 1157 00:50:40,750 --> 00:50:43,740 >> Maar het is gewoon een ding naar soort in het achterhoofd te houden. 1158 00:50:43,740 --> 00:50:45,270 Gebruik het voor de toekomst. 1159 00:50:45,270 --> 00:50:48,050 Maak je geen zorgen als dat niet maken alle zin in de wereld. 1160 00:50:48,050 --> 00:50:49,510 1161 00:50:49,510 --> 00:50:51,440 Het zijn kopieën is het grootste ding. 1162 00:50:51,440 --> 00:50:54,580 Als je van plan om iets te nemen uit de buurt van dat, je bent geslaagd in kopieën. 1163 00:50:54,580 --> 00:50:56,410 Dus de originelen blijven hetzelfde. 1164 00:50:56,410 --> 00:50:58,170 1165 00:50:58,170 --> 00:50:58,770 Iedereen goed? 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 >> Dus command-line argumenten. 1169 00:51:02,295 --> 00:51:03,520 1170 00:51:03,520 --> 00:51:07,630 Ik weet zeker dat in het begin jullie allemaal had die grote, zoals, int main vides. 1171 00:51:07,630 --> 00:51:09,517 En je bent zoals, OK cool. 1172 00:51:09,517 --> 00:51:10,350 Ik heb niet echt schelen. 1173 00:51:10,350 --> 00:51:12,360 Dit is precies wat ik moet schrijven. 1174 00:51:12,360 --> 00:51:16,349 Maar in je nieuwe programma's, vooral in deze PSET, 1175 00:51:16,349 --> 00:51:17,890 en waarom is er krijt op de grond? 1176 00:51:17,890 --> 00:51:19,640 1177 00:51:19,640 --> 00:51:22,680 >> Met uw volgende PSET, je bent gaat worden het zien van dit. 1178 00:51:22,680 --> 00:51:26,130 Int main, int arg c, touwtje boog v, tussen haakjes. 1179 00:51:26,130 --> 00:51:28,770 Dus, van wat we gewoon geleerd vandaag, wat 1180 00:51:28,770 --> 00:51:32,190 denken we dat de tweede parameter of dat tweede element is hier? 1181 00:51:32,190 --> 00:51:34,830 1182 00:51:34,830 --> 00:51:35,824 Het is een matrix. 1183 00:51:35,824 --> 00:51:36,615 Welke type 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 Dus dat is hoe je gaat te verklaren deze nu. 1188 00:51:45,320 --> 00:51:48,570 >> Herinnert iemand zich wat deze voor? 1189 00:51:48,570 --> 00:51:52,551 1190 00:51:52,551 --> 00:51:53,050 Nee? 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 >> Ann: Dus arg c houdt een teller. 1196 00:51:58,950 --> 00:51:59,450 Het is een int. 1197 00:51:59,450 --> 00:52:00,615 Het is een nummer, toch? 1198 00:52:00,615 --> 00:52:02,240 Dus wat denk je dat nummer is van? 1199 00:52:02,240 --> 00:52:08,260 1200 00:52:08,260 --> 00:52:08,760 Yeah. 1201 00:52:08,760 --> 00:52:11,450 Dus arg c is het aantal strings die deel uitmaken van de opdrachtregel. 1202 00:52:11,450 --> 00:52:12,560 1203 00:52:12,560 --> 00:52:18,499 Dus als we waren om daadwerkelijk doen--, er voorbeelden hierna, 1204 00:52:18,499 --> 00:52:19,790 dus ik zal niet voor mezelf te krijgen. 1205 00:52:19,790 --> 00:52:21,299 1206 00:52:21,299 --> 00:52:23,840 Het is een aantal strings dat maak gewoon je command line. 1207 00:52:23,840 --> 00:52:35,080 >> Dus als je dat doet, als, dot slash Mario, dat is een string die het maakt. 1208 00:52:35,080 --> 00:52:38,520 In dit stuk, dan heb je eigenlijk het voeden van de dingen in de command line, 1209 00:52:38,520 --> 00:52:41,750 want ik weet zeker dat jullie die de spec zaag hebt gelezen. 1210 00:52:41,750 --> 00:52:44,470 Dus in die gevallen, misschien kan je hebben twee of drie argumenten. 1211 00:52:44,470 --> 00:52:45,652 1212 00:52:45,652 --> 00:52:48,360 Het gaat om een ​​nuttig ding om te gebruiken. 1213 00:52:48,360 --> 00:52:51,500 >> En dan arg v, zoals we al zeiden, is gewoon een string array. 1214 00:52:51,500 --> 00:52:57,000 Dus dat eigenlijk slaat wat je inbreng in de opdrachtregel. 1215 00:52:57,000 --> 00:52:59,960 Dus hebben we deze. 1216 00:52:59,960 --> 00:53:02,850 Je hebt een aantal dot slash kopiëren infile outfile. 1217 00:53:02,850 --> 00:53:06,670 Dus als arg c het aantal snaren dat we passeren in de opdracht 1218 00:53:06,670 --> 00:53:09,080 lijn, wat is onze arg c in dit geval? 1219 00:53:09,080 --> 00:53:14,520 1220 00:53:14,520 --> 00:53:15,850 Drie. 1221 00:53:15,850 --> 00:53:16,690 Precies. 1222 00:53:16,690 --> 00:53:20,086 >> Dus wat is arg v van nul? 1223 00:53:20,086 --> 00:53:21,710 Dus wat is het eerste wat we hebben opgeslagen? 1224 00:53:21,710 --> 00:53:24,640 1225 00:53:24,640 --> 00:53:26,290 Dot slash exemplaar, precies. 1226 00:53:26,290 --> 00:53:28,065 En dan de tweede infile zou zijn. 1227 00:53:28,065 --> 00:53:29,290 1228 00:53:29,290 --> 00:53:30,930 De derde zou outfile zijn. 1229 00:53:30,930 --> 00:53:32,390 Dus hoe zit het arg v drie? 1230 00:53:32,390 --> 00:53:35,810 1231 00:53:35,810 --> 00:53:39,370 Het zou nul zijn, want dat is het einde van ons aanbod, toch? 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 >> En wat dan met de zesde? 1235 00:53:44,500 --> 00:53:45,900 Het is een beetje een strikvraag. 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 Weten we wat het is? 1239 00:53:49,943 --> 00:53:50,960 1240 00:53:50,960 --> 00:53:51,690 Het is undefined. 1241 00:53:51,690 --> 00:53:53,170 We hebben geen idee wat dat zou kunnen zijn. 1242 00:53:53,170 --> 00:53:57,000 Het is alles wat rechtvaardig is Na de array in geheugen, 1243 00:53:57,000 --> 00:54:00,220 en we hebben geen idee wat dat is. 1244 00:54:00,220 --> 00:54:03,500 En het is gevaarlijk om die te raken dingen, want voor alles wat je weet, 1245 00:54:03,500 --> 00:54:07,080 het is een deel van het geheugen dat u mag niet de toegang tot of null. 1246 00:54:07,080 --> 00:54:09,000 En het kan gekke dingen doen. 1247 00:54:09,000 --> 00:54:11,690 Het heet over-indexering je gebonden aan uw array. 1248 00:54:11,690 --> 00:54:14,785 Ga niet buiten de grenzen van uw array, of slechte dingen kunnen gebeuren. 1249 00:54:14,785 --> 00:54:16,274 1250 00:54:16,274 --> 00:54:18,940 Je komt terug en, net als de wetten van de natuurkunde zijn vernietigd 1251 00:54:18,940 --> 00:54:19,481 of zoiets. 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 Is dat zinvol voor iedereen? 1255 00:54:22,895 --> 00:54:23,810 1256 00:54:23,810 --> 00:54:25,025 Niet al te slecht. 1257 00:54:25,025 --> 00:54:28,926 >> Dus nu is iedereen favoriete onderdeel, pset beoordeling. 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 Dus voor degenen onder u die hebben niet de PSET spec lezen, 1262 00:54:33,830 --> 00:54:36,790 je bent wat voeten in echt cool stuff met cryptografie. 1263 00:54:36,790 --> 00:54:39,360 Je gaat naar een Ceasar creëren Cipher en een Vigenèrecijfer. 1264 00:54:39,360 --> 00:54:42,000 1265 00:54:42,000 --> 00:54:45,480 Je moet zeker lezen spec om te zien hoe die werken. 1266 00:54:45,480 --> 00:54:49,650 En als je met enige moeite over wat het zou eigenlijk moeten doen, 1267 00:54:49,650 --> 00:54:52,920 kom alsjeblieft met me praten, e-mail me of tekst mij. 1268 00:54:52,920 --> 00:54:53,420 Ik ben rond. 1269 00:54:53,420 --> 00:54:54,780 1270 00:54:54,780 --> 00:54:57,070 >> Zo zijn er drie belangrijke hier dingen die we 1271 00:54:57,070 --> 00:55:00,440 willen about-- praten gewoon een soort van een uitbreiding van de lezing. 1272 00:55:00,440 --> 00:55:03,645 Dingen die je misschien niet weet over, nuttige tips en hulpmiddelen. 1273 00:55:03,645 --> 00:55:05,520 Dus we gaan naar een doen quick review van ASCII, 1274 00:55:05,520 --> 00:55:10,420 want dat gaat super te zijn belangrijk voor Vigenere's Cipher. 1275 00:55:10,420 --> 00:55:11,809 1276 00:55:11,809 --> 00:55:14,100 We gaan om de conversie van command line inputs, die 1277 00:55:14,100 --> 00:55:17,160 zal zeer nuttig zijn voor Caesar Cipher. 1278 00:55:17,160 --> 00:55:18,133 En dan 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 >> Dus, ASCII kaarten tekens om getallen. 1282 00:55:24,005 --> 00:55:25,270 1283 00:55:25,270 --> 00:55:26,365 Dit is een grote grafiek. 1284 00:55:26,365 --> 00:55:28,115 U moet dit hebben ergens een bladwijzer. 1285 00:55:28,115 --> 00:55:29,310 1286 00:55:29,310 --> 00:55:33,250 U zult het wilt voor uw eerste tussenbalans. 1287 00:55:33,250 --> 00:55:36,320 Ik ben er vrij zeker van dat iedereen heeft dit schema op hun mid-term sheet. 1288 00:55:36,320 --> 00:55:37,810 Dus leer het. 1289 00:55:37,810 --> 00:55:38,410 Love it. 1290 00:55:38,410 --> 00:55:39,740 Houd deze bij de hand. 1291 00:55:39,740 --> 00:55:41,210 Het zal nuttig zijn. 1292 00:55:41,210 --> 00:55:45,630 >> En al is het is een codering dat kaarten alfabetische, numerieke, 1293 00:55:45,630 --> 00:55:47,740 en andere tekens te nummers voor onze computer. 1294 00:55:47,740 --> 00:55:49,947 Want natuurlijk, in de einde, alles wat we bewaren 1295 00:55:49,947 --> 00:55:52,030 gaat geconverteerde krijgen beneden om nullen en enen, 1296 00:55:52,030 --> 00:55:55,200 dus moeten we een manier om het te vertegenwoordigen tekst en personages die we allemaal 1297 00:55:55,200 --> 00:55:59,105 gebruikt om het zien als een soort nummer. 1298 00:55:59,105 --> 00:56:00,370 1299 00:56:00,370 --> 00:56:05,880 >> Dus als we hier zien, hebben we hoofdletters A, dat is daar. 1300 00:56:05,880 --> 00:56:06,555 Het is 65. 1301 00:56:06,555 --> 00:56:07,570 1302 00:56:07,570 --> 00:56:09,660 En kleine letters A is 97. 1303 00:56:09,660 --> 00:56:13,170 Dus je kunt achterhalen out-- zoals ik al eerder zei, 1304 00:56:13,170 --> 00:56:16,532 als je scala aan meerdere gehad strings, wat elk van hen 1305 00:56:16,532 --> 00:56:17,490 hebben een null terminator. 1306 00:56:17,490 --> 00:56:18,480 Het zou een ruimte zijn. 1307 00:56:18,480 --> 00:56:22,581 Ruimte heeft zijn eigen speciale-- Ik vergeet waar het hier is. 1308 00:56:22,581 --> 00:56:23,080 Ah. 1309 00:56:23,080 --> 00:56:24,700 32 de ruimte. 1310 00:56:24,700 --> 00:56:27,090 Dus alles in kaart aan. 1311 00:56:27,090 --> 00:56:28,680 1312 00:56:28,680 --> 00:56:29,740 >> Dus we hebben ASCII wiskunde. 1313 00:56:29,740 --> 00:56:31,080 1314 00:56:31,080 --> 00:56:34,290 Pro tip-- in Vigenere's, u misschien in de verleiding 1315 00:56:34,290 --> 00:56:39,480 om uw nummers te converteren naar integers, maar het is eigenlijk een betere praktijk 1316 00:56:39,480 --> 00:56:43,860 kunnen het gebruik personages als deze 1317 00:56:43,860 --> 00:56:45,820 wanneer je ze daadwerkelijk manipuleren. 1318 00:56:45,820 --> 00:56:48,950 Dus als je wilt om nummers te gebruiken, je kunt. 1319 00:56:48,950 --> 00:56:55,260 Maar een betere manier of wijze dat hebben we de neiging om je jongens om het te doen, 1320 00:56:55,260 --> 00:56:57,830 is op deze manier waar je bent eigenlijk aftrekken karakters. 1321 00:56:57,830 --> 00:56:58,840 1322 00:56:58,840 --> 00:57:02,830 >> Dus ik wil dat jullie soort achterhalen deze uit. 1323 00:57:02,830 --> 00:57:05,070 Waarom ga je niet elke andere proberen? 1324 00:57:05,070 --> 00:57:07,580 1325 00:57:07,580 --> 00:57:09,830 Dus doe de eerste, de derde en de vijfde. 1326 00:57:09,830 --> 00:57:11,160 1327 00:57:11,160 --> 00:57:15,000 Want ik wil er zeker van dat we het hebben over alles wat we nodig hebben om over te praten. 1328 00:57:15,000 --> 00:57:17,410 1329 00:57:17,410 --> 00:57:20,259 Ik ga gewoon zeggen, een van de belangrijke dingen to-- oh wacht, 1330 00:57:20,259 --> 00:57:21,550 jullie nog niet gezien deze. 1331 00:57:21,550 --> 00:57:23,710 OK dus doe de eerste drie. 1332 00:57:23,710 --> 00:57:24,430 Laten we dat doen. 1333 00:57:24,430 --> 00:57:25,971 Want we moeten praten over modulo. 1334 00:57:25,971 --> 00:57:27,810 1335 00:57:27,810 --> 00:57:28,310 Ik weet het. 1336 00:57:28,310 --> 00:57:28,851 Math is hard. 1337 00:57:28,851 --> 00:57:29,870 1338 00:57:29,870 --> 00:57:30,980 U kunt een rekenmachine gebruiken. 1339 00:57:30,980 --> 00:57:31,580 Het is OK. 1340 00:57:31,580 --> 00:57:37,464 1341 00:57:37,464 --> 00:57:40,380 Of trek je een ASCII-tabel, omdat ben je waarschijnlijk gaat willen dat. 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 Dus ik zal snel lopen jullie via deze. 1345 00:58:07,960 --> 00:58:11,120 Dus mensen hebben ASCII tabellen omhoog getrokken? 1346 00:58:11,120 --> 00:58:15,645 Wat is onze numerieke nummer voor kleine letters A? 1347 00:58:15,645 --> 00:58:16,270 STUDENT: Zeven. 1348 00:58:16,270 --> 00:58:19,420 1349 00:58:19,420 --> 00:58:24,550 >> Ann: Dus kleine letters A is 97 en hoofdletter A is 65. 1350 00:58:24,550 --> 00:58:26,390 Dus 97 min 65? 1351 00:58:26,390 --> 00:58:27,782 1352 00:58:27,782 --> 00:58:28,570 >> Publiek: 32? 1353 00:58:28,570 --> 00:58:33,260 1354 00:58:33,260 --> 00:58:35,630 >> Ann: 62, ja. 1355 00:58:35,630 --> 00:58:38,675 Dus in dit geval, wat zou het uitprinten? 1356 00:58:38,675 --> 00:58:40,360 Dat eerste? 1357 00:58:40,360 --> 00:58:43,830 Als we procent d, wat zou dat geven? 1358 00:58:43,830 --> 00:58:45,980 1359 00:58:45,980 --> 00:58:46,730 STUDENT: Een getal. 1360 00:58:46,730 --> 00:58:48,604 Ann: We printen uit een werkelijke aantal. 1361 00:58:48,604 --> 00:58:50,770 Dus we eigenlijk aan de hand om hier uit te printen 32. 1362 00:58:50,770 --> 00:58:56,360 En als dit waren procent c, 32 zou ons een ruimte. 1363 00:58:56,360 --> 00:58:57,700 1364 00:58:57,700 --> 00:59:01,670 Dus begrijpen dat karakters afdrukken 1365 00:59:01,670 --> 00:59:06,140 zowel als getallen en als de eigenlijke betekenis 1366 00:59:06,140 --> 00:59:11,080 is echt belangrijk, en het betalen van aandacht aan de werkelijke types 1367 00:59:11,080 --> 00:59:12,040 dat we hier doen. 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 Dus voor elk een van deze, wat gaan we om te printen? 1371 00:59:18,862 --> 00:59:19,825 >> STUDENT: Een karakter. 1372 00:59:19,825 --> 00:59:20,830 >> Ann: Een karakter. 1373 00:59:20,830 --> 00:59:21,330 Cool. 1374 00:59:21,330 --> 00:59:24,260 Dus als jullie willen weten, je kan werken deze op uw eigen. 1375 00:59:24,260 --> 00:59:25,900 Als u problemen ondervindt, mail me. 1376 00:59:25,900 --> 00:59:28,950 Maar de tweede zal afdrukken van een kleine letter b. 1377 00:59:28,950 --> 00:59:32,910 De derde zal het afdrukken van een hoofdletter B. De vierde wordt afgedrukt 1378 00:59:32,910 --> 00:59:36,410 uit een hoofdletter C, en de laatste zal een kleine letter A. zijn 1379 00:59:36,410 --> 00:59:42,530 En de laatste een-- we eigenlijk aan de hand te krijgen in wat dat gekke procent 1380 00:59:42,530 --> 00:59:45,020 teken betekent dat zelfs in een paar dia's. 1381 00:59:45,020 --> 00:59:46,667 Dus probeer deze op uw eigen. 1382 00:59:46,667 --> 00:59:48,500 Als je problemen hebt, kom alsjeblieft met me praten. 1383 00:59:48,500 --> 00:59:49,655 1384 00:59:49,655 --> 00:59:53,290 Als je meestal in Adams D hal, je zult waarschijnlijk merken me rond. 1385 00:59:53,290 --> 00:59:54,760 1386 00:59:54,760 --> 00:59:55,760 >> Dus, atoi. 1387 00:59:55,760 --> 00:59:59,660 Hoeveel van jullie hebben dit gezien functie of van gehoord op 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 Dus wat het eigenlijk staat voor is ASCII op integer. 1393 01:00:06,250 --> 01:00:13,150 Dus wat je kunt doen is, met Caesar, voor degenen die de spec lezen, 1394 01:00:13,150 --> 01:00:16,460 je gaat doen dot slash Caesar nadat u uw programma te schrijven, 1395 01:00:16,460 --> 01:00:18,690 en dan zul je ingang een getal dat u 1396 01:00:18,690 --> 01:00:24,780 wilt u uw geheime boodschap te coderen met. 1397 01:00:24,780 --> 01:00:30,700 >> Maar, als we ons herinneren, al onze ingangen worden opgeslagen als strings. 1398 01:00:30,700 --> 01:00:31,390 Right? 1399 01:00:31,390 --> 01:00:35,160 We hebben een arg v serie dat is alles wat het type string. 1400 01:00:35,160 --> 01:00:37,870 Dus als je gewoon proberen te Trek die ene, het zou 1401 01:00:37,870 --> 01:00:43,240 denk dat dat één of wat dan ook nummer je gebruikt is eigenlijk een personage. 1402 01:00:43,240 --> 01:00:45,490 Dus je gaat om te krijgen wat gekke resultaten. 1403 01:00:45,490 --> 01:00:48,200 Dus als je echt wilt draai deze in een geheel getal 1404 01:00:48,200 --> 01:00:52,060 die u kunt gebruiken om te manipuleren uw woord of uw bericht, 1405 01:00:52,060 --> 01:00:53,366 u zult willen atoi gebruiken. 1406 01:00:53,366 --> 01:00:56,320 atoi gewoon converteert je string naar een int. 1407 01:00:56,320 --> 01:01:04,530 >> Dus als we een reeks van 12, als we bellen atoi op 12, of wat dan ook die ingang is, 1408 01:01:04,530 --> 01:01:07,370 hij in feite zal terugkeren om u het gehele getal. 1409 01:01:07,370 --> 01:01:10,610 Niet het karakter of de string 12. 1410 01:01:10,610 --> 01:01:14,230 Die, wanneer je begint aan toevoegen dat om nummers, 1411 01:01:14,230 --> 01:01:17,710 heel anders zijn, omdat de snaar 12 is 1412 01:01:17,710 --> 01:01:21,210 wat gekke getal in ASCII, maar het geheel 12 1413 01:01:21,210 --> 01:01:23,390 is eigenlijk 12, dat is wat je wilt. 1414 01:01:23,390 --> 01:01:25,630 Dus je wilt er zeker van te atoi gebruiken. 1415 01:01:25,630 --> 01:01:29,203 >> Je gaat naar deze wilt in Caesar, omdat je 1416 01:01:29,203 --> 01:01:32,520 moeten de door de meegeleverde int gebruiker in de command line. 1417 01:01:32,520 --> 01:01:35,230 Maar toen ze het in de opdracht lijn, het is opgeslagen als een string 1418 01:01:35,230 --> 01:01:35,813 om mee te beginnen. 1419 01:01:35,813 --> 01:01:36,950 1420 01:01:36,950 --> 01:01:38,210 Heeft dat zin? 1421 01:01:38,210 --> 01:01:40,590 Je hoeft niet per se moet dit voor Vigenere. 1422 01:01:40,590 --> 01:01:43,180 Met Vigenere, zoals ik al zei voorheen, moet u proberen en te gebruiken 1423 01:01:43,180 --> 01:01:46,600 ASCII wiskunde, dat lijkt meer op deze, waar je eigenlijk bent 1424 01:01:46,600 --> 01:01:49,320 het gebruik van de tekens die we aan u gegeven. 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 Iedereen goed daar? 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 >> Dus modulo. 1432 01:01:59,030 --> 01:02:01,950 Dus wat als je krijgt dit enorme aantal voor Caesar? 1433 01:02:01,950 --> 01:02:03,720 1434 01:02:03,720 --> 01:02:07,970 Je hebt het idee dat als je toch bezig bent Z en je bent 1435 01:02:07,970 --> 01:02:11,020 een nummer twee, dat betekent dat je need-- 1436 01:02:11,020 --> 01:02:15,130 Z wordt de tweede letter na zelf, toch? 1437 01:02:15,130 --> 01:02:20,800 Dus je moet een of andere manier wikkel rond, en modulo is de manier om dat te doen. 1438 01:02:20,800 --> 01:02:23,310 Dus alles wat het doet is het geeft je de rest 1439 01:02:23,310 --> 01:02:25,660 van de verdeling van de eerste getal door het tweede. 1440 01:02:25,660 --> 01:02:28,660 En we hebben een aantal voorbeelden te maken dat een beetje meer beton. 1441 01:02:28,660 --> 01:02:34,390 Maar in principe, modulo wanneer je gebruikt je iets wilt wrap around te maken. 1442 01:02:34,390 --> 01:02:36,950 >> Dus als je alleen maar wilt dat de nummers een tot acht, 1443 01:02:36,950 --> 01:02:39,670 u kunt modulo te gebruiken op een andere Dit nummer zal altijd 1444 01:02:39,670 --> 01:02:42,960 retourneren een getal van nul tot acht. 1445 01:02:42,960 --> 01:02:48,750 Dus sommige examples-- als We hebben 55 modulo 10, 1446 01:02:48,750 --> 01:02:55,350 het geeft je gewoon de rest van 55 gedeeld door 10, die zou 5. 1447 01:02:55,350 --> 01:02:56,440 1448 01:02:56,440 --> 01:03:02,470 En dan drie modulo vijf, iedereen raden wat dat zou zijn? 1449 01:03:02,470 --> 01:03:03,800 1450 01:03:03,800 --> 01:03:04,300 Drie. 1451 01:03:04,300 --> 01:03:05,570 1452 01:03:05,570 --> 01:03:10,910 >> Dus als je een kleiner aantal voor de modulo, kan het niet gelijkmatig gaan. 1453 01:03:10,910 --> 01:03:11,520 Het is nul. 1454 01:03:11,520 --> 01:03:14,090 Zodat het net geeft het getal zelf. 1455 01:03:14,090 --> 01:03:15,920 Dus acht modulo acht zou zijn? 1456 01:03:15,920 --> 01:03:16,603 >> STUDENT: Zero. 1457 01:03:16,603 --> 01:03:18,350 >> Ann: Zero. 1458 01:03:18,350 --> 01:03:20,160 Omdat het gaat in gelijkmatig. 1459 01:03:20,160 --> 01:03:22,095 16 modulo 15? 1460 01:03:22,095 --> 01:03:23,660 >> Publiek: One. 1461 01:03:23,660 --> 01:03:24,700 >> Ann: Cool. 1462 01:03:24,700 --> 01:03:29,280 En dan is deze laatste is alleen maar om tonen u-- u zich misschien af, OK, 1463 01:03:29,280 --> 01:03:31,800 wat is de volgorde van de bewerkingen hier? 1464 01:03:31,800 --> 01:03:33,100 Doen we voor het eerst te verdelen? 1465 01:03:33,100 --> 01:03:34,570 Doen we eerst modulo? 1466 01:03:34,570 --> 01:03:38,730 Dus modulo houdt dezelfde prioriteit als delen of vermenigvuldigen, 1467 01:03:38,730 --> 01:03:39,940 en haar linker associatief. 1468 01:03:39,940 --> 01:03:41,730 Dus het is op dezelfde manier. 1469 01:03:41,730 --> 01:03:46,520 Je zou altijd haakjes te doen, dan vermenigvuldigen, delen, 1470 01:03:46,520 --> 01:03:49,570 en modulo in volgorde van links naar rechts. 1471 01:03:49,570 --> 01:03:51,050 Dus standaard regels. 1472 01:03:51,050 --> 01:03:55,260 Zet ze gewoon in dezelfde categorie als delen en vermenigvuldigen. 1473 01:03:55,260 --> 01:03:59,040 >> Dus in dit geval, zouden we hebben 1 plus 2 geeft ons 3. 1474 01:03:59,040 --> 01:04:02,210 We vermenigvuldig dat met 2, dus we krijgen 6. 1475 01:04:02,210 --> 01:04:05,050 We modulo dat door 2, die ons geeft? 1476 01:04:05,050 --> 01:04:06,042 >> STUDENT: 0. 1477 01:04:06,042 --> 01:04:07,430 >> Ann: 0. 1478 01:04:07,430 --> 01:04:10,270 En dan voegen we 2, dus we krijgt 2 in dit laatste geval. 1479 01:04:10,270 --> 01:04:12,080 1480 01:04:12,080 --> 01:04:16,360 Dus modulo-- je zeker gaan worden na te denken over manieren om op te nemen 1481 01:04:16,360 --> 01:04:19,520 dat als je het verpakken rond het alfabet. 1482 01:04:19,520 --> 01:04:24,210 Als je op Z en je moet verhuizen doorsturen drie spaties om C te krijgen, 1483 01:04:24,210 --> 01:04:26,230 er is dat hele concept van het inpakken rond. 1484 01:04:26,230 --> 01:04:28,790 Dus zal ik laat het aan jullie om erachter te komen 1485 01:04:28,790 --> 01:04:31,940 hoe precies je gaat worden met behulp van het. 1486 01:04:31,940 --> 01:04:35,660 Maar zeker een nuttig instrument voor uw pset deze week. 1487 01:04:35,660 --> 01:04:36,910 1488 01:04:36,910 --> 01:04:37,730 Ik dit echt leuk. 1489 01:04:37,730 --> 01:04:39,480 Dit is een van mijn favoriete psets. 1490 01:04:39,480 --> 01:04:41,230 Dan na je het doet, als je vrienden hebt, 1491 01:04:41,230 --> 01:04:44,146 kunt u, als, sturen elkaar geheim berichten en zorg ervoor dat het werkt. 1492 01:04:44,146 --> 01:04:45,695 Omdat het dit of wat dan ook zal decoderen. 1493 01:04:45,695 --> 01:04:46,710 1494 01:04:46,710 --> 01:04:47,390 Veel plezier. 1495 01:04:47,390 --> 01:04:48,840 1496 01:04:48,840 --> 01:04:51,220 >> En dat is het einde van een hoofdstuk. 1497 01:04:51,220 --> 01:04:52,430 1498 01:04:52,430 --> 01:04:54,040 Ik vroeg klaar. 1499 01:04:54,040 --> 01:04:57,540 Ik heb nog 15 minuten met jullie, dus als er iets is 1500 01:04:57,540 --> 01:05:02,180 dat je zou willen om over te gaan verder, zou ik gelukkig zijn om dat te doen. 1501 01:05:02,180 --> 01:05:04,340 Een andere vragen op uw pset voor degenen onder u 1502 01:05:04,340 --> 01:05:06,355 die begonnen zijn of lees de spec. 1503 01:05:06,355 --> 01:05:07,870 1504 01:05:07,870 --> 01:05:12,060 Alles wat we hebben gesproken over het laatste uur 1505 01:05:12,060 --> 01:05:16,880 en 15 minuten die je zou me graag naar soort slap aftreksel, zou ik graag. 1506 01:05:16,880 --> 01:05:20,790 Of we kunnen noemen afgesloten, en je kan alle vertrekken en nemen meer snoep met je 1507 01:05:20,790 --> 01:05:21,650 als je gaat. 1508 01:05:21,650 --> 01:05:23,719 1509 01:05:23,719 --> 01:05:26,260 Maar als er sprake is van aanhoudende vragen, laat het me weten. 1510 01:05:26,260 --> 01:05:28,467 U kunt ook komen en met me praten achteraf. 1511 01:05:28,467 --> 01:05:29,425 Ik beloof dat ik bijt niet. 1512 01:05:29,425 --> 01:05:32,140 1513 01:05:32,140 --> 01:05:32,795 Iets anders? 1514 01:05:32,795 --> 01:05:33,890 1515 01:05:33,890 --> 01:05:35,240 Iedereen is goed? 1516 01:05:35,240 --> 01:05:37,540 Gevoel ieders zoals ze kunnen dit pset behandelen? 1517 01:05:37,540 --> 01:05:38,820 1518 01:05:38,820 --> 01:05:42,405 Je gaat om fijne kerels zijn. 1519 01:05:42,405 --> 01:05:43,905 De openingstijden zijn er voor een reden. 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 Alright. 1523 01:05:47,020 --> 01:05:49,680 >> Nou, in dat geval, dank jullie allemaal zo veel voor te komen. 1524 01:05:49,680 --> 01:05:50,940 Ik hoop je te zien volgende week. 1525 01:05:50,940 --> 01:05:52,120 Er zal meer snoep zijn. 1526 01:05:52,120 --> 01:05:53,495 Er kunnen andere leuke dingen. 1527 01:05:53,495 --> 01:05:55,010 1528 01:05:55,010 --> 01:05:59,090 En ik kijk uit naar het krijgen van u allen weet dat dit jaar. 1529 01:05:59,090 --> 01:06:00,320