1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ summende ♪] 2 00:00:07,070 --> 00:00:10,380 Så for at introducere dig til, hvad jeg har fået frem på skærmen; 3 00:00:10,380 --> 00:00:12,710 Det er et af de værktøjer, vi udviklede i løbet af sommeren; 4 00:00:12,710 --> 00:00:15,530 det hedder CS50 Spaces, 5 00:00:15,530 --> 00:00:18,860 og det er vores fælles kodning ansøgning 6 00:00:18,860 --> 00:00:20,180 at vi kommer til at bruge i sektioner. 7 00:00:20,180 --> 00:00:22,470 Det er temmelig cool. 8 00:00:22,470 --> 00:00:26,040 Har nogen af ​​jer set CS50 run endnu? 9 00:00:26,040 --> 00:00:29,760 Lad mig trække det op i en anden fane. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Så 12 00:00:36,230 --> 00:00:39,700 Hvis du går til run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 du kan se dette er en i din browser måde at 14 00:00:43,030 --> 00:00:45,940 faktisk kode - skrive C-kode, 15 00:00:45,940 --> 00:00:47,460 og derefter køre det, 16 00:00:47,460 --> 00:00:50,960 så det både udarbejder det, kører det, så returnerer output til dig, 17 00:00:50,960 --> 00:00:53,350 så dette er lidt af en cool måde at eksperimentere 18 00:00:53,350 --> 00:00:56,060 med nogle af den kode, David går over i forelæsninger 19 00:00:56,060 --> 00:00:58,640 og vi giver på dig på problemområder sæt 20 00:00:58,640 --> 00:01:01,900 uden egentlig at skulle fyre op for apparatet. 21 00:01:01,900 --> 00:01:04,489 >> Så hvad Spaces gør det er forskelligt fra det 22 00:01:04,489 --> 00:01:07,450 hvis jeg skifter tilbage til denne fane, 23 00:01:07,450 --> 00:01:11,580 Spaces er CS50 løb, ligesom du kan se lige her, 24 00:01:11,580 --> 00:01:15,380 men hvis vi ruller over og se på den anden side af vinduet, 25 00:01:15,380 --> 00:01:18,130 du ser ret Jeg er den eneste person i dette rum, 26 00:01:18,130 --> 00:01:21,030 men hvad jeg har tænkt mig at gøre, er at bede jer at deltage i denne Space med mig 27 00:01:21,030 --> 00:01:24,590 og vi vil alle komme til at kode i den samme lille vindue, 28 00:01:24,590 --> 00:01:26,070 dele kode med hinanden, 29 00:01:26,070 --> 00:01:28,900 og taler om forskellene mellem vores kode. 30 00:01:28,900 --> 00:01:31,530 Så det er sådan en cool ting - 31 00:01:31,530 --> 00:01:35,770 så at deltage, hvis du vil besøge dette link lige her på toppen 32 00:01:35,770 --> 00:01:38,980 at jeg har fremhævet, 33 00:01:38,980 --> 00:01:53,860 du kan blot skrive i apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Okay, så at starte, 35 00:01:56,610 --> 00:01:59,720 Jeg har tænkt mig at give dig en lille smule af en rundvisning i dette. 36 00:01:59,720 --> 00:02:01,720 Vi skal lave nogle dumme lidt kodning med det i første omgang, 37 00:02:01,720 --> 00:02:06,200 bare så alle kinda får en fornemmelse for hvad det vil sige, 38 00:02:06,200 --> 00:02:09,000 men hvad jeg har gjort - 39 00:02:09,000 --> 00:02:11,830 eller hvad jeg er ved at gøre lige her er - 40 00:02:11,830 --> 00:02:13,480 Jeg har tænkt mig at tage den kode, jeg har skrevet i her, 41 00:02:13,480 --> 00:02:15,800 der som du kan se lige nu er tom; 42 00:02:15,800 --> 00:02:17,090 det gør ikke noget. 43 00:02:17,090 --> 00:02:21,080 Det er bare kedel plade kode, vil vi kalde det. 44 00:02:21,080 --> 00:02:23,820 Med lidt gøremål kommentar. 45 00:02:23,820 --> 00:02:27,850 Jeg har tænkt mig at gemme det ved at trykke denne knappen Gem. 46 00:02:27,850 --> 00:02:30,190 Og hvad det gør, er det 47 00:02:30,190 --> 00:02:34,400 fremhævede det op her kort - denne revision save grøn boks, 48 00:02:34,400 --> 00:02:37,570 og nu, hvis du søger efter mig i rummet, 49 00:02:37,570 --> 00:02:40,340 du klikker på mit navn, 50 00:02:40,340 --> 00:02:43,370 du kan se, at jeg har fået denne revision lige her, 51 00:02:43,370 --> 00:02:45,490 og hvis du klikker på denne revision, 52 00:02:45,490 --> 00:02:48,240 det vil indlæse denne kode på din Space, også. 53 00:02:50,510 --> 00:02:54,160 >> Så har alle lagt denne kode ind i deres Space? 54 00:02:54,160 --> 00:02:57,810 Okay, hvis du ikke har endnu, gå videre og gøre det, 55 00:02:57,810 --> 00:03:01,120 og så hvad jeg vil have jer til at gøre i denne lille to-do sektion 56 00:03:01,120 --> 00:03:05,940 er at skrive en lille smule hjælp printf om dig selv, 57 00:03:05,940 --> 00:03:08,310 så for eksempel, ville jeg skrive 58 00:03:08,310 --> 00:03:12,270 printf ("Mit navn er Nate"); 59 00:03:15,140 --> 00:03:17,700 og så ville jeg skrive 60 00:03:17,700 --> 00:03:21,660 "Jeg dimitterede i 2009 61 00:03:21,660 --> 00:03:24,440 fra Stanford " 62 00:03:26,050 --> 00:03:28,390 og jeg ville elske at høre om 63 00:03:28,390 --> 00:03:30,270 hvilket år du er i skole, 64 00:03:30,270 --> 00:03:33,910 uanset om du er på skolen eller business school 65 00:03:33,910 --> 00:03:36,130 eller en anden Harvard School, 66 00:03:36,130 --> 00:03:39,200 hvad du studerer, hvis det er kendt endnu; 67 00:03:39,200 --> 00:03:41,290 hvis det ikke er kendt, det er helt cool. 68 00:03:41,290 --> 00:03:45,170 Jeg har ikke beslutte indtil jeg var sent i min sophomore år. 69 00:03:46,910 --> 00:03:49,210 og så ville jeg også elske at vide 70 00:03:49,210 --> 00:03:51,610 noget crazy du ønsker at fortælle mig eller 71 00:03:51,610 --> 00:03:54,790 noget om klassen eller bare noget andet. 72 00:03:56,930 --> 00:04:00,370 Når du er færdig med at skrive, at med din lille printf, 73 00:04:00,370 --> 00:04:03,480 hvis du vil spare revision eller rettere 74 00:04:03,480 --> 00:04:06,080 først kontrollere, at du kan køre det 75 00:04:06,080 --> 00:04:10,640 og at den udskrives præcis, hvad du vil have det kan printe den ud 76 00:04:14,050 --> 00:04:16,399 og derefter, hvis du gå videre og redde denne revision 77 00:04:16,399 --> 00:04:21,600 vha. Revision knappen Gem, denne første lille fyr herovre, 78 00:04:24,080 --> 00:04:27,340 og vi vil kinda gå igennem og gøre lidt introduktion på den måde. 79 00:04:27,340 --> 00:04:30,150 Så du skal bare nødt til at slå på knappen Afspil, 80 00:04:30,150 --> 00:04:32,550 der er heroppe øverst til venstre, 81 00:04:32,550 --> 00:04:35,340 så denne Play-knappen øverst til venstre, vil 82 00:04:35,340 --> 00:04:39,050 Send din kode ud til vores server, hvor det bliver kompileret og derefter køre. 83 00:04:40,600 --> 00:04:43,300 Så hvad er kinda vild med dette er 84 00:04:43,300 --> 00:04:46,550 denne kode faktisk ikke kører på din computer; 85 00:04:46,550 --> 00:04:49,290 det er faktisk blevet sendt over internettet. 86 00:04:49,290 --> 00:04:51,240 >> Hvordan gĺr det, Charlotte? 87 00:04:51,240 --> 00:04:54,810 >> I - okay. Jeg - Jeg tror, ​​jeg er 88 00:04:54,810 --> 00:04:57,330 har vanskeligheder med at gemme den 89 00:04:57,330 --> 00:05:00,530 på serveren, således at den kan - jeg kan køre programmet. 90 00:05:02,090 --> 00:05:05,780 Og så når jeg prøver at køre det, det siger, at der er en fejl. 91 00:05:05,780 --> 00:05:08,850 Erklæret som en virus, som ikke er i der mere. 92 00:05:08,850 --> 00:05:11,860 Åh, lad os se, kan du trykke på Gem igen? 93 00:05:11,860 --> 00:05:13,770 Jeg ser det på skærmen. 94 00:05:13,770 --> 00:05:15,120 >> Right, okay, så det er hvad jeg har. 95 00:05:15,120 --> 00:05:19,430 Og jeg ved ikke, hvorfor det ikke lade mig køre den. 96 00:05:22,990 --> 00:05:24,990 Oh, okay, undskyld. 97 00:05:27,930 --> 00:05:31,220 Kan du forklare hvorfor - hvad der var galt - hvad var ikke arbejder med det? 98 00:05:31,220 --> 00:05:34,760 >> Ja, fordi jeg ikke se, at der var en sidste linje, hvor der er stadig en variabel 99 00:05:34,760 --> 00:05:37,700 at jeg ikke havde erklæret, som jeg ikke havde i sinde for det er der. 100 00:05:37,700 --> 00:05:38,730 Ja, perfekt! 101 00:05:38,730 --> 00:05:40,390 >> Nu, hvis jeg gemmer den, jeg synes, det burde virke. 102 00:05:40,390 --> 00:05:42,970 Nu hvor du har gemt det, det virker; awesome. 103 00:05:42,970 --> 00:05:44,570 >> Så ja, som vi går igennem - 104 00:05:44,570 --> 00:05:46,690 så, hvad der foregik, 105 00:05:46,690 --> 00:05:49,130 Jeg skal bare at gentage dette for kameraet. 106 00:05:49,130 --> 00:05:51,760 Hvad skete, var, at denne variabel s 107 00:05:51,760 --> 00:05:54,310 blev efterladt i efter - jeg antager du har slettet nogle andre ting 108 00:05:54,310 --> 00:05:56,670 hvor du anmeldt som, 109 00:05:56,670 --> 00:05:59,560 og så dette var at smide ting ud og blev ikke lade dig køre den. 110 00:05:59,560 --> 00:06:02,540 Så det er præcis, hvad vi ønsker at gøre i afsnittet 111 00:06:02,540 --> 00:06:05,690 er har folk prøve at skrive forskellige stykker kode, 112 00:06:05,690 --> 00:06:08,490 kompilere det, se hvad der virker, se hvad der ikke, 113 00:06:08,490 --> 00:06:10,730 og så kinda taler om disse ting, fordi det er trip-punkter, der 114 00:06:10,730 --> 00:06:12,850 Jeg stadig støder på, 115 00:06:12,850 --> 00:06:15,470 Jeg stadig - jeg gøre en masse dumme ting hele tiden, 116 00:06:15,470 --> 00:06:17,820 og jeg ved ikke, hvorfor det ikke virker, 117 00:06:17,820 --> 00:06:22,960 så lad os trække op Charlottes revision 3, 118 00:06:23,980 --> 00:06:25,380 og vi vil køre den. 119 00:06:25,380 --> 00:06:28,950 >> Så når jeg løber, nu hvor jeg har fået hende kode i her, 120 00:06:28,950 --> 00:06:31,450 Jeg kan zoome ind, ramte knappen Kør, 121 00:06:31,450 --> 00:06:33,680 uploads det, bygger det, kører det, 122 00:06:33,680 --> 00:06:36,980 siger, at det blev kørt, og hvis jeg rulle ned, 123 00:06:36,980 --> 00:06:39,440 se Charlotte er en junior på Adams House, 124 00:06:39,440 --> 00:06:42,720 psykologi, sekundært i økonomi; awesome. 125 00:06:42,720 --> 00:06:44,310 Dejligt at møde dig! 126 00:06:44,310 --> 00:06:46,550 Awesome. 127 00:06:46,550 --> 00:06:49,670 Okay, vi går videre, lad os gå til Daniel, 128 00:06:49,670 --> 00:06:52,710 gå til revision 3, 129 00:06:52,710 --> 00:06:54,180 kompilere, løbe; 130 00:06:54,180 --> 00:06:56,680 hvorfor du ikke fortælle os lidt om dig selv, Daniel? 131 00:06:56,680 --> 00:06:59,380 >> Ring mig Dan. 132 00:06:59,380 --> 00:07:01,920 Jeg har tænkt mig at business school på tværs fra jer, 133 00:07:01,920 --> 00:07:05,020 og jeg var i Marines før her, 134 00:07:05,020 --> 00:07:08,020 og det er alt nyt for mig, så ja. 135 00:07:08,020 --> 00:07:11,060 Må ikke føle sig dårligt, jeg er 30, og jeg kender ikke nogen af ​​disse ting. 136 00:07:11,060 --> 00:07:13,800 Awesome, tak, Dan! 137 00:07:13,800 --> 00:07:17,300 Okay, vi fik en anden Daniel. 138 00:07:17,300 --> 00:07:20,930 Du går af Daniel - vil du præsentere dig selv, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Sure, jeg er Daniel. 140 00:07:22,260 --> 00:07:24,330 Jeg er en sophomore på Mather lige nu. 141 00:07:24,330 --> 00:07:25,840 Jeg koncentrerer mig om regeringen, 142 00:07:25,840 --> 00:07:28,760 men jeg ønskede at tage CS50 fordi jeg har hørt gode anmeldelser om klasse 143 00:07:28,760 --> 00:07:30,750 og jeg har aldrig prøvet CS før. 144 00:07:30,750 --> 00:07:34,680 Rul ned her og vis denne - cool. 145 00:07:36,330 --> 00:07:39,090 Bevæger sig på, Jared. 146 00:07:39,090 --> 00:07:41,990 Hvordan går det? 147 00:07:41,990 --> 00:07:43,430 >> Godt, hvordan har du det? 148 00:07:43,430 --> 00:07:47,520 Som du kan se, er jeg en junior filosofi koncentrator i Eliot, 149 00:07:47,520 --> 00:07:50,260 oprindeligt fra det sydlige Californien, 150 00:07:50,260 --> 00:07:53,100 og jeg er interesseret i at CS50, fordi jeg kan lide logikken i det, 151 00:07:53,100 --> 00:07:57,420 og det synes virkelig cool at gøre ting på computeren, så. 152 00:07:57,420 --> 00:07:59,570 Awesome; hvor i det sydlige Californien er du fra? 153 00:07:59,570 --> 00:08:02,340 >> Om en time fra [uhørlig], en lille by [uhørlig]. 154 00:08:02,340 --> 00:08:04,850 Oh, yeah, min far er fra Redlands. 155 00:08:04,850 --> 00:08:07,060 Cool stuff. 156 00:08:07,060 --> 00:08:12,130 >> Okay, Jimmy, hvordan går det, Jimmy? 157 00:08:12,130 --> 00:08:15,130 >> Godt, hvordan har du det? 158 00:08:15,130 --> 00:08:16,040 Klarer sig ganske godt! 159 00:08:16,040 --> 00:08:17,710 Fortæl os om dig selv. 160 00:08:17,710 --> 00:08:20,840 >> Jeg er en freshman, og jeg er ikke helt sikker på, hvad jeg hovedfag i 161 00:08:20,840 --> 00:08:22,820 men jeg er kinda hælder til økonomi. 162 00:08:22,820 --> 00:08:25,680 Ligesom Daniel før mig, jeg har aldrig gjort noget CS, men det lyder kinda cool. 163 00:08:25,680 --> 00:08:28,120 Jeg er oprindeligt fra Chicago. 164 00:08:28,120 --> 00:08:31,640 Awesome. Så tjek hans udskrift her. 165 00:08:31,640 --> 00:08:34,630 Jeg vil gerne spørge, gjorde denne udskrift, som du forventede? 166 00:08:34,630 --> 00:08:37,650 >> Nej, jeg glemte at udskrive en ny linje. 167 00:08:37,650 --> 00:08:41,270 Jeg faktisk glemte, at når jeg skrev min ting 168 00:08:41,270 --> 00:08:43,090 for første gang,. også 169 00:08:43,090 --> 00:08:46,330 Det er lidt af en smerte at huske at sætte dem ind manuelt. 170 00:08:46,330 --> 00:08:50,560 Det ville være rart, hvis det bare vide det er, hvad du ville have. 171 00:08:50,560 --> 00:08:53,630 >> Okay, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, vi har 2 Kellys, 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Så Kelly - skal du gå af Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Okay, awesome. 175 00:09:03,870 --> 00:09:07,270 Eller Kelly, jeg mener. 176 00:09:07,270 --> 00:09:10,260 >> Så yeah, så jeg er Kelly. 177 00:09:10,260 --> 00:09:12,930 Jeg er en sophomore i Pfoho. 178 00:09:12,930 --> 00:09:17,000 Jeg fik en e-mail i dag, at jeg stadig har 7 uger til at erklære min koncentration, 179 00:09:17,000 --> 00:09:20,940 så jeg forsøger ikke at tænke over det, 180 00:09:20,940 --> 00:09:24,090 og jeg kan lide bagning, løb og Craisins. 181 00:09:24,090 --> 00:09:29,110 Jeg har ikke erfaring med de fleste af CS; 182 00:09:29,110 --> 00:09:32,700 Jeg lærte mig selv at opbygge websteder, da jeg var rigtig ung, 183 00:09:32,700 --> 00:09:35,750 men jeg tror jeg nok lært mig forkert en masse gange. 184 00:09:35,750 --> 00:09:39,260 Forhåbentlig vil jeg lære lidt mere 185 00:09:39,260 --> 00:09:41,450 og - ja. 186 00:09:41,450 --> 00:09:44,100 >> Awesome, godt, tak. 187 00:09:44,100 --> 00:09:47,190 Lad os gå til den anden Kelly; 188 00:09:47,190 --> 00:09:48,880 Jeg har ikke noget - sagde du noget herinde? 189 00:09:48,880 --> 00:09:51,880 >> [Uhørlig] 190 00:09:51,880 --> 00:09:56,180 Der er det! 191 00:09:56,180 --> 00:09:58,120 Søde! 192 00:09:58,120 --> 00:10:01,400 >> Okay, så jeg er Kelly. 193 00:10:01,400 --> 00:10:03,980 Jeg er en første-års ph.d.-studerende. 194 00:10:03,980 --> 00:10:05,560 Jeg hovedfag i Mind, Brain, og Uddannelse. 195 00:10:05,560 --> 00:10:07,940 Jeg dimitterede i Franklin & Marshall College i 2008 196 00:10:07,940 --> 00:10:10,840 med store selskaber i psykologi og sociologi 197 00:10:10,840 --> 00:10:13,120 og en mindre på fransk. 198 00:10:13,120 --> 00:10:15,330 Jeg tager CS50 199 00:10:15,330 --> 00:10:18,080 fordi jeg er interesseret i at få en ph.d. i Neurovidenskab 200 00:10:18,080 --> 00:10:21,220 og jeg har lyst dette vil hjælpe mig med at forstå de teknologier, der anvendes. 201 00:10:21,220 --> 00:10:23,150 Awesome. 202 00:10:26,980 --> 00:10:29,390 Bevæger sig på, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Er det korrekt udtale? 204 00:10:31,640 --> 00:10:32,990 Okay, awesome. 205 00:10:32,990 --> 00:10:34,640 >> >> Jeg er Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Jeg er en sophomore i Kirkland House, 207 00:10:36,870 --> 00:10:39,950 og jeg koncentrerer mig i Mechanical Engineering. 208 00:10:39,950 --> 00:10:43,180 Jeg kan virkelig godt lide at cykle, byggede en cykel denne sommer. 209 00:10:43,180 --> 00:10:46,140 Jeg tager CS, faktisk, 210 00:10:46,140 --> 00:10:48,350 som en fusion krav, 211 00:10:48,350 --> 00:10:52,550 men du ved, jeg tror, ​​det er stadig cool slags engineering klasse. 212 00:10:52,550 --> 00:10:55,150 Awesome - du har bygget en cykel denne sommer? 213 00:10:55,150 --> 00:10:56,730 >> Yeah. 214 00:10:56,730 --> 00:10:58,900 Wow, ligesom rammen og alt det der? 215 00:10:58,900 --> 00:11:00,120 >> Uh-hunh (bekræftende). 216 00:11:00,120 --> 00:11:01,530 Wow, det er virkelig cool. 217 00:11:01,530 --> 00:11:06,370 >> [Uhørlig off-camera chat] 218 00:11:06,370 --> 00:11:10,000 [Latter] 219 00:11:12,640 --> 00:11:14,200 Ja, det har været så længe. 220 00:11:14,200 --> 00:11:16,730 Man kan aldrig vide, vel? 221 00:11:16,730 --> 00:11:19,420 Nå, cool, godt tak, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Okay, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Mit navn er Missy, jeg er en freshman, 224 00:11:23,280 --> 00:11:25,500 så det betyder at jeg ikke kender noget som helst! 225 00:11:25,500 --> 00:11:29,180 Jeg ønsker at koncentrere sig i astrofysik. 226 00:11:29,180 --> 00:11:31,220 I CS50, 227 00:11:31,220 --> 00:11:33,350 Jeg har lyst til, vil helt sikkert hjælpe med det. 228 00:11:33,350 --> 00:11:37,750 En ulige faktum om mig er, at jeg er en nationalt certificeret brandmand. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Hvordan skete det? 231 00:11:42,440 --> 00:11:45,570 >> Jeg deltog et akademi 232 00:11:45,570 --> 00:11:49,000 og gik gennem helvede for en masse uge 233 00:11:49,000 --> 00:11:51,200 og fik min certificering. 234 00:11:51,200 --> 00:11:54,090 Wow, tillykke! 235 00:11:54,090 --> 00:11:57,280 Det er ikke nogen lille bedrift, for sikker. 236 00:11:57,280 --> 00:11:59,070 Okay, så nu vi vil gøre mig. 237 00:11:59,070 --> 00:12:01,290 Jeg er den næste i rækken. 238 00:12:01,290 --> 00:12:04,510 Jeg - køre den. 239 00:12:04,510 --> 00:12:07,580 >> Så mit navn er Nate. 240 00:12:07,580 --> 00:12:11,160 Jeg var klasse af 2009 på Stanford. 241 00:12:11,160 --> 00:12:13,840 Jeg var en symbolsk Systems store, 242 00:12:13,840 --> 00:12:17,370 som svarer til det Mind, Brain, Behavior koncentration her, 243 00:12:17,370 --> 00:12:19,300 men det er lidt af en blanding af 244 00:12:19,300 --> 00:12:22,350 datalogi, lingvistik, psykologi og filosofi. 245 00:12:22,350 --> 00:12:26,600 Kind of - yeah, en masse underlige ting, men det var stor, 246 00:12:26,600 --> 00:12:29,880 og så jeg gjorde min Herres i datalogi der, så godt. 247 00:12:29,880 --> 00:12:33,250 Så jeg er ny til Harvard i år. 248 00:12:33,250 --> 00:12:35,750 Jeg virkelig ønskede at komme ind i undervisningen. 249 00:12:35,750 --> 00:12:39,860 Jeg tilbragte de sidste 4 år på Stanford TA-ning Datalogi klasser 250 00:12:39,860 --> 00:12:43,370 og så David lad mig komme videre, 251 00:12:43,370 --> 00:12:45,550 og jeg vil være at hjælpe med CS50, 252 00:12:45,550 --> 00:12:47,890 så jeg gør det på fuld tid, jeg er ikke i Grad skole. 253 00:12:47,890 --> 00:12:50,330 Det har været sjovt. 254 00:12:50,330 --> 00:12:53,130 Forhåbentlig det vil fortsætte med at være sjovt, jeg er sikker på det vil. 255 00:12:53,130 --> 00:12:56,040 >> Okay, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Mit navn er Sam, jeg er en sophomore på skolen, i lov specifikt. 257 00:13:05,470 --> 00:13:10,110 Min store vil være videnskabens historie, sandsynligvis og VES sekundær, 258 00:13:10,110 --> 00:13:13,240 og min yndlingsfarve er gul. 259 00:13:18,790 --> 00:13:21,100 Ingen grund til at dømme eller noget, men det er en god farve! 260 00:13:21,100 --> 00:13:24,780 Og Stella. 261 00:13:24,780 --> 00:13:26,980 >> Hej, jeg hedder Stella, jeg er en freshman i Grays. 262 00:13:26,980 --> 00:13:30,070 Jeg har ingen anelse om, hvad jeg har koncentreret ind endnu, 263 00:13:30,070 --> 00:13:32,500 så CS50 var bare lidt tilfældig, 264 00:13:32,500 --> 00:13:34,220 der er interessant. 265 00:13:34,220 --> 00:13:36,080 Fun Faktisk var Jimmy den første Harvard af mine venner, 266 00:13:36,080 --> 00:13:38,360 fordi vi er begge fra Chicago. 267 00:13:38,360 --> 00:13:42,450 Cool, og Grace - det er meningen at være den virkelig rart, ikke? 268 00:13:42,450 --> 00:13:45,220 >> Jeg troede [uhørlig]. 269 00:13:45,220 --> 00:13:46,690 Oh, yeah. 270 00:13:46,690 --> 00:13:51,210 [Uhørlig / off-camera chat] 271 00:13:51,210 --> 00:13:54,420 Okay, jeg er stadig læring, stadig læring. 272 00:13:54,420 --> 00:13:57,800 >> Så vi har noget andet, der er lidt interessant her. 273 00:13:59,600 --> 00:14:02,870 Ja, jeg er bare undrende, har du en idé om, at der foregår her? 274 00:14:02,870 --> 00:14:05,890 Du ved hvordan man skal fortolke dette? 275 00:14:05,890 --> 00:14:13,340 >> Jeg skulle sættes semikolon efter hver enkelt linje. 276 00:14:13,340 --> 00:14:16,370 Det er lidt af en smerte. 277 00:14:16,370 --> 00:14:19,100 Sommetider disse semikoloner kan være en reel smerte at spore. 278 00:14:19,100 --> 00:14:21,420 Så det sig, at 279 00:14:21,420 --> 00:14:22,820 det særlige program, vi bruger dette år til 280 00:14:22,820 --> 00:14:26,670 kompilere vores C koden kaldes Dunk, 281 00:14:26,670 --> 00:14:29,460 og grunden til at vi er begyndt at bruge Dunk i år - 282 00:14:29,460 --> 00:14:32,030 fordi vi ikke har brugt dette program i fortiden; 283 00:14:32,030 --> 00:14:35,710 vi har brugt en anden kaldet GCC det er virkelig populære - 284 00:14:35,710 --> 00:14:38,420 Klang faktisk giver dig fejlmeddelelser, der giver mening. 285 00:14:38,420 --> 00:14:41,420 Denne ene siger "forventet", "efter udtrykket" 286 00:14:41,420 --> 00:14:45,260 og det endda fortæller dig udtrykket hvorefter du brug for et semikolon. 287 00:14:45,260 --> 00:14:47,830 Så er du fastsættelse det? 288 00:14:47,830 --> 00:14:48,930 >> Ja, lige nu. 289 00:14:48,930 --> 00:14:52,040 Awesome, lad mig det vide og vi vil trække det op, og vi vil køre den. 290 00:14:52,040 --> 00:14:55,830 Men ja, sætte disse semikoloner i er lidt af en smerte. 291 00:14:55,830 --> 00:14:59,580 >> Jeg fastsættes det, så jeg synes, det burde virke. 292 00:14:59,580 --> 00:15:02,760 Awesome - revision 3. 293 00:15:02,760 --> 00:15:05,250 Det ligner det. 294 00:15:05,250 --> 00:15:08,580 Okay, så nu, hvis vi kører det, 295 00:15:08,580 --> 00:15:11,020 der det går. 296 00:15:11,020 --> 00:15:13,830 Cool stuff. 297 00:15:13,830 --> 00:15:15,340 >> Ok. 298 00:15:15,340 --> 00:15:18,230 Så tak for at gøre det. 299 00:15:18,230 --> 00:15:20,210 Det er dejligt at møde jer. 300 00:15:20,210 --> 00:15:22,880 Hvad vi skal gøre nu, er at bruge den næste lille smule 301 00:15:22,880 --> 00:15:24,740 kinda dykke ned i afsnittet problemer 302 00:15:24,740 --> 00:15:27,550 der kommer fra det problem, der er fra denne uge 303 00:15:27,550 --> 00:15:29,920 og vi vil gøre at for de fleste af afsnittene 304 00:15:29,920 --> 00:15:32,110 for resten af ​​perioden, 305 00:15:32,110 --> 00:15:35,580 og så vil vi spare den sidste 15, 20 minutter eller deromkring 306 00:15:35,580 --> 00:15:38,490 at tale om problemet sat sig 307 00:15:38,490 --> 00:15:41,420 og så bare nogen andre spørgsmål, du har generelt om klassen. 308 00:15:43,380 --> 00:15:45,670 Når det er sagt, hvad vi virkelig ønsker at gøre 309 00:15:45,670 --> 00:15:49,390 er har alle deltager 310 00:15:49,390 --> 00:15:51,500 bruger Spaces stuff, 311 00:15:51,500 --> 00:15:53,500 smide i kode, kaste i forslag, 312 00:15:53,500 --> 00:15:56,500 og taler om, når ting som dette brud 313 00:15:56,500 --> 00:15:58,360 eller ikke virker, bare fordi det er ting, at 314 00:15:58,360 --> 00:16:00,870 Jeg ved, at jeg kom på tværs 315 00:16:00,870 --> 00:16:03,180 da jeg begyndte kodning, 316 00:16:03,180 --> 00:16:05,490 og var virkelig kinda frustrerende til tider 317 00:16:05,490 --> 00:16:08,690 fordi hvis det er ligesom 2 am før dit problem sæt skyldes, 318 00:16:08,690 --> 00:16:11,330 så - bare for offentliggørelse, 319 00:16:11,330 --> 00:16:14,590 Jeg startede ikke programmering, før jeg var en sophomore i college. 320 00:16:14,590 --> 00:16:17,360 Det var slags denne underlige, ukendte ting 321 00:16:17,360 --> 00:16:20,360 at jeg hørte, var kinda cool 322 00:16:20,360 --> 00:16:23,590 og jeg har også hørt det kunne være en reel smerte i Butt 323 00:16:23,590 --> 00:16:27,610 hvis du går glip af et semikolon og det er den eneste fejl at holde dit program fra arbejde 324 00:16:27,610 --> 00:16:30,890 og holde dig fra at gå til at sove, 325 00:16:30,890 --> 00:16:32,650 så absolut, 326 00:16:32,650 --> 00:16:34,020 hvis du har spørgsmål som det, 327 00:16:34,020 --> 00:16:37,060 hvis du har problemer som disse, så lad mig det vide, 328 00:16:37,060 --> 00:16:40,050 fordi jeg ønsker at gøre dette til en god oplevelse for jer. 329 00:16:40,050 --> 00:16:44,620 >> Så har du fyre alle hentet problemet sat endnu? 330 00:16:44,620 --> 00:16:47,160 Kinda vide, hvor det er? Okay. 331 00:16:47,160 --> 00:16:51,490 Så vi vil gå til cs50.net, fordi jeg ikke har det på denne konto, 332 00:16:51,490 --> 00:16:54,110 trække op problemområderne sæt, 333 00:16:54,110 --> 00:16:57,940 pull up problem sæt 2, og vi vil se på den standard udgave i dag. 334 00:16:57,940 --> 00:17:01,190 Vi vil trække op specifikationen her. 335 00:17:02,640 --> 00:17:04,420 Rul ned. 336 00:17:06,790 --> 00:17:11,109 Så vi vil begynde at se på dette afsnit med spørgsmål. 337 00:17:14,069 --> 00:17:16,710 Har du fyre set disse shorts endnu? 338 00:17:16,710 --> 00:17:18,329 Okay. 339 00:17:18,329 --> 00:17:21,329 Så der er shorts på loops, 340 00:17:21,329 --> 00:17:24,700 hvilket gøres ved Tommy, en af ​​hoved undervisning stipendiaterne. 341 00:17:24,700 --> 00:17:27,230 Der er en på rækkevidde, 342 00:17:27,230 --> 00:17:30,530 Jeg tror udført af en anden undervisning fyr ved navn David 343 00:17:30,530 --> 00:17:33,400 og derefter en på Caesar Cipher også gjort ved David. 344 00:17:33,400 --> 00:17:35,550 De er temmelig cool. 345 00:17:35,550 --> 00:17:37,770 Har du fyre været at se deres shorts indtil videre? 346 00:17:37,770 --> 00:17:39,270 Hvordan har de været? 347 00:17:39,270 --> 00:17:41,490 Hjælp? Okay, godt at vide. 348 00:17:41,490 --> 00:17:44,210 Hvis de ikke er, kan du sige det. 349 00:17:46,290 --> 00:17:49,870 Men før du gør det, 350 00:17:49,870 --> 00:17:52,600 har du fyre set på disse spørgsmål 351 00:17:52,600 --> 00:17:55,430 overhovedet? 352 00:17:55,430 --> 00:17:57,480 >> Lad os tale om det en lille smule. 353 00:17:57,480 --> 00:18:00,600 Så vi har introduceret i de sidste par uger 354 00:18:00,600 --> 00:18:02,480 i foredrag 355 00:18:02,480 --> 00:18:04,910 en række forskellige loops. 356 00:18:04,910 --> 00:18:06,140 Der er for-løkken, 357 00:18:06,140 --> 00:18:09,570 while-løkken, og derefter do-while-løkken, 358 00:18:09,570 --> 00:18:13,100 og i foredrag, har vi talt meget om 359 00:18:13,100 --> 00:18:16,010 hvordan disse sløjfer er alle 360 00:18:16,010 --> 00:18:18,320 nogenlunde ens på mange måder, 361 00:18:18,320 --> 00:18:21,210 og du kan gøre meget af de samme ting med en while-løkke 362 00:18:21,210 --> 00:18:23,260 at du kan med en for-løkke. 363 00:18:23,260 --> 00:18:26,300 Du skal bare nødt til at slags bruge de rigtige kombinationer af variabler og sådan. 364 00:18:26,300 --> 00:18:28,680 og så virkelig 365 00:18:28,680 --> 00:18:31,200 den virkelige skelnen mellem alle løkkerne er, at 366 00:18:31,200 --> 00:18:33,620 undertiden er de mere nyttige 367 00:18:33,620 --> 00:18:36,930 at bruge dem ad gangen end på et andet tidspunkt. 368 00:18:36,930 --> 00:18:39,340 >> Altså for eksempel, 369 00:18:39,340 --> 00:18:42,260 while-løkken afviger fra en do-while-løkke. 370 00:18:42,260 --> 00:18:45,680 Har alle føle, at de har en god styr på, når 371 00:18:45,680 --> 00:18:48,650 et gør-while-løkke er mere 372 00:18:48,650 --> 00:18:50,990 nyttige eller hvad forskellen er? 373 00:18:50,990 --> 00:18:53,410 >> Jeg tror forskellen er et gør-while-løkke 374 00:18:53,410 --> 00:18:56,960 løber - Jeg ved ikke helt hvad den terminologi er, 375 00:18:56,960 --> 00:18:59,750 men rækken af ​​funktioner inden for løkken. 376 00:18:59,750 --> 00:19:02,020 De automatisk - det gør sine kører i det mindste 377 00:19:02,020 --> 00:19:05,390 før den kontrollerer tilstanden, eller while-løkken vil kun køre den, når 378 00:19:05,390 --> 00:19:08,290 det løbende kører - uanset om betingelsen bliver opfyldt. 379 00:19:08,290 --> 00:19:11,010 Ja, giver det mening? 380 00:19:11,010 --> 00:19:14,200 >> Lad os tage et kig på en lille smule af kode. 381 00:19:14,200 --> 00:19:16,930 Så bare for at gentage spørgsmålet, 382 00:19:16,930 --> 00:19:19,230 eller svaret, snarere; 383 00:19:19,230 --> 00:19:22,050 svaret var, at 384 00:19:22,050 --> 00:19:25,850 en while-løkke vil tjekke, om betingelsen 385 00:19:25,850 --> 00:19:27,440 som du angiver, er opfyldt 386 00:19:27,440 --> 00:19:31,320 inden den løber liget af sløjfen for første gang, 387 00:19:31,320 --> 00:19:35,000 der henviser til, do-while-løkken automatisk vil køre kroppen af ​​løkken, 388 00:19:35,000 --> 00:19:38,450 er, hvad vi kalder det - det er underligt terminologi, 389 00:19:38,450 --> 00:19:41,460 men hvis jeg nogensinde sige noget, der ikke giver mening, så lad mig det vide - 390 00:19:41,460 --> 00:19:45,360 sløjfen krop er, at ting, som du sætter ind mellem tuborg-klammerne. 391 00:19:45,360 --> 00:19:47,840 Og i et do-while-løkke, 392 00:19:47,840 --> 00:19:50,220 dette organ blive kørt mindst én gang, 393 00:19:50,220 --> 00:19:54,460 og derefter tilstand bliver undersøgt, inden den kører hver efterfølgende gang. 394 00:19:54,460 --> 00:19:56,580 >> Så faktisk, Sam, 395 00:19:56,580 --> 00:20:00,820 har du noget imod at skrive en simpel while-løkke 396 00:20:00,820 --> 00:20:02,840 i Spaces? 397 00:20:02,840 --> 00:20:05,600 >> Hvordan kan du sortere af samme 398 00:20:05,600 --> 00:20:07,060 lave en ny ...? 399 00:20:07,060 --> 00:20:09,220 Jeg bare slette hvad du har derinde. 400 00:20:09,220 --> 00:20:11,300 Ja, bare klare det ud. 401 00:20:11,300 --> 00:20:14,510 >> Tja, jeg tror, ​​jeg har det - 402 00:20:14,510 --> 00:20:16,640 hvilken en vil du have, et stykke tid, eller vil du ...? 403 00:20:16,640 --> 00:20:19,350 Ja, bare et stykke ægte, udskrive noget ud. 404 00:20:21,050 --> 00:20:23,140 Og lad os se. 405 00:20:23,140 --> 00:20:25,850 Alexander, jeg indså, at vi aldrig introduceret dig. 406 00:20:25,850 --> 00:20:27,510 >> Åh, det er fint. 407 00:20:27,510 --> 00:20:30,760 Har du - kan du kode op en gør-while-løkke for os? 408 00:20:30,760 --> 00:20:32,520 >> Ja, jeg vil prøve. 409 00:20:32,520 --> 00:20:34,370 Okay, vi bare trække dem op på skærmen, 410 00:20:34,370 --> 00:20:38,240 så du slags har styr på, hvad forskellene er. 411 00:20:38,240 --> 00:20:41,280 >> Så her er hvad Sam har gjort. 412 00:20:41,280 --> 00:20:44,460 Han har et heltal kaldet i 413 00:20:44,460 --> 00:20:47,480 at han er initialiseret til 17. 414 00:20:47,480 --> 00:20:51,570 Så siger han, mens (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Mit navn er Sam."); 416 00:20:54,230 --> 00:20:57,300 Så hvad sker der, når vi kører denne kode? 417 00:20:57,300 --> 00:21:00,340 Der er en fejl, hvad betyder fejlen sige? 418 00:21:00,340 --> 00:21:02,890 Lad os trække det op og tale om det. 419 00:21:02,890 --> 00:21:05,040 Der opstod en fejl, det siger. 420 00:21:05,040 --> 00:21:07,400 Lad os rulle ned. 421 00:21:07,400 --> 00:21:09,460 Så det gav os denne fejl, og det sagde, 422 00:21:09,460 --> 00:21:12,690 "Hey, jeg forventede et udtryk." 423 00:21:12,690 --> 00:21:16,180 Det er kinda kryptisk. 424 00:21:19,160 --> 00:21:23,140 Ja, så præcist - og igen, 425 00:21:23,140 --> 00:21:27,140 vil der være en anden lille bug, som vi vil fange på bare et sekund. 426 00:21:27,140 --> 00:21:31,800 Men dette er endnu et af den slags underlige terminologi ting, 427 00:21:31,800 --> 00:21:36,150 så dette int i = 17 428 00:21:36,150 --> 00:21:39,290 er ikke et udtryk. 429 00:21:39,290 --> 00:21:41,220 Hvad det ser ud som det gør, er at det er 430 00:21:41,220 --> 00:21:43,410 erklære et heltal kaldet i 431 00:21:43,410 --> 00:21:45,540 og sætte den til svarende til 17 432 00:21:45,540 --> 00:21:48,780 eller rettere sætte 17 ind i det int kaldte jeg. 433 00:21:50,560 --> 00:21:53,350 Og det giver ikke mening 434 00:21:53,350 --> 00:21:55,790 i forbindelse med denne while-løkke. 435 00:21:55,790 --> 00:21:58,190 Det giver mening, da vi vil se, 436 00:21:58,190 --> 00:22:01,250 i forbindelse med en for-løkke, fordi for loop erklæringer gør starter 437 00:22:01,250 --> 00:22:05,800 med, at der for int i lig noget 438 00:22:05,800 --> 00:22:07,830 og går videre. 439 00:22:07,830 --> 00:22:09,500 >> Så gjorde du - 440 00:22:09,500 --> 00:22:12,630 ordne noget, okay. 441 00:22:12,630 --> 00:22:15,270 Her går det; awesome. 442 00:22:15,270 --> 00:22:17,920 Så nu tingene ser lidt anderledes ud. 443 00:22:17,920 --> 00:22:19,030 Et par ting har ændret sig. 444 00:22:19,030 --> 00:22:21,300 Kan du fortælle os, hvad tingene har ændret sig? 445 00:22:21,300 --> 00:22:24,950 >> Jeg tog ud int, så der er ingen erklæring [uhørligt] i stedet for en opgave. 446 00:22:24,950 --> 00:22:28,770 Den ene lighedstegn, jeg sætte 2 lighedstegn, hvilket betyder et lighedstegn. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Ja, så hvad Sam gjorde, var han tog ud int 449 00:22:33,320 --> 00:22:35,770 Det var lige her tidligere, 450 00:22:35,770 --> 00:22:39,340 så hvis jeg bare se på dette - det er, hvad det var tidligere, det sagde int, 451 00:22:39,340 --> 00:22:41,970 som var erklærede det - så vi tog ud type. 452 00:22:41,970 --> 00:22:44,710 Der er int, char, string, kort, 453 00:22:44,710 --> 00:22:47,380 disse kaldes typer. 454 00:22:47,380 --> 00:22:49,510 Så du tog den type 455 00:22:49,510 --> 00:22:51,580 og derefter tidligere, 456 00:22:51,580 --> 00:22:54,190 han havde bare det indre lighedstegn 457 00:22:54,190 --> 00:22:57,300 og hvad han sagde var problematisk om dette blev 458 00:22:57,300 --> 00:22:59,580 når du har 1 lighedstegn, 459 00:22:59,580 --> 00:23:01,780 det er en opgave operatør. 460 00:23:01,780 --> 00:23:04,930 Det er ikke teste eller ej 2 ting er ens. 461 00:23:04,930 --> 00:23:07,920 Det er faktisk sætte noget lig med noget. 462 00:23:07,920 --> 00:23:11,110 Vi sætter nummer 17 i variablen i. 463 00:23:11,110 --> 00:23:13,850 Så for at gøre den slags sammenligning, 464 00:23:13,850 --> 00:23:16,430 du er nødt til at bruge det dobbelte lig, 465 00:23:16,430 --> 00:23:19,640 der er lidt af en underlig ting 466 00:23:19,640 --> 00:23:22,760 men er en ret almindelig fejl. 467 00:23:23,980 --> 00:23:27,830 Så en anden ting, jeg vil påpege, hvis du ikke har noget imod, 468 00:23:27,830 --> 00:23:30,610 er, at 469 00:23:30,610 --> 00:23:33,210 vores funktion her i int main, 470 00:23:33,210 --> 00:23:36,740 du se, at kroppen af ​​vores funktion 471 00:23:36,740 --> 00:23:39,810 er forskudt fra venstre side 472 00:23:39,810 --> 00:23:42,400 med 4 rum eller en fane. 473 00:23:42,400 --> 00:23:44,730 Grunden til at vi gør dette 474 00:23:44,730 --> 00:23:47,000 er bare for læsbarheden. 475 00:23:47,000 --> 00:23:51,620 Som du kan se i Sams while-løkke her, 476 00:23:51,620 --> 00:23:53,120 han ikke led overhovedet, 477 00:23:53,120 --> 00:23:55,390 og som ikke påvirker funktionaliteten af ​​koden. 478 00:23:55,390 --> 00:23:57,860 Det vil køre nøjagtigt det samme. 479 00:23:57,860 --> 00:24:00,950 >> Altså for eksempel, her, hvis vi kommer op til toppen 480 00:24:00,950 --> 00:24:02,680 og tryk på vores Play-knappen, vil det bygge det, 481 00:24:02,680 --> 00:24:04,470 det vil køre det, 482 00:24:04,470 --> 00:24:06,700 og hvad der vil ske? 483 00:24:06,700 --> 00:24:08,360 Hvorfor skal det stadig sige kører? 484 00:24:08,360 --> 00:24:10,560 >> Fordi det vil holde gentage hi. 485 00:24:10,560 --> 00:24:12,900 Præcis, og hvorfor betyder det at gentage hi? 486 00:24:12,900 --> 00:24:15,850 >> Fordi heltal aldrig ændres, så det er altid 17. 487 00:24:15,850 --> 00:24:18,030 Ja, præcis, så 488 00:24:18,030 --> 00:24:20,970 lad os se, efter - minder mig om dit navn igen? 489 00:24:20,970 --> 00:24:24,020 Jimmy. Så Jimmy sagde, at 490 00:24:24,020 --> 00:24:27,340 grunden til at dette bliver ved at gentage hi igen og igen 491 00:24:27,340 --> 00:24:30,510 er fordi denne betingelse er altid sandt. 492 00:24:30,510 --> 00:24:33,270 Vi har aldrig ændre værdien af ​​i. 493 00:24:33,270 --> 00:24:36,170 Vi har aldrig ændre indholdet af, hvad der er gemt i denne variabel. 494 00:24:36,170 --> 00:24:39,180 Så på dette punkt, vi fik denne fejl, 495 00:24:39,180 --> 00:24:42,170 Deres program genererede for meget output, 496 00:24:42,170 --> 00:24:45,100 og hvis vi rulle ned og slags kig på, hvad der foregår her, 497 00:24:45,100 --> 00:24:49,160 du kan se, at det er hi, hi, hi, hi, hi, hi, hi hele vejen igennem. 498 00:24:49,160 --> 00:24:51,200 Awesome. 499 00:24:51,200 --> 00:24:53,750 >> Så slags tilbage til det oprindelige punkt 500 00:24:53,750 --> 00:24:57,020 at der indrykningen her 501 00:24:57,020 --> 00:25:00,110 i kroppen af ​​while-løkken ikke påvirkede noget. 502 00:25:00,110 --> 00:25:03,050 Programmet stadig kørte fint. 503 00:25:03,050 --> 00:25:06,790 Typisk for god stil - 504 00:25:06,790 --> 00:25:10,210 og det er noget, vi kigger efter i dit problem sæt - 505 00:25:10,210 --> 00:25:13,930 beder vi dig at indrykke dette med 4 rum, som du kan gøre 506 00:25:13,930 --> 00:25:16,440 ved blot at trykke på tasten Tab 507 00:25:16,440 --> 00:25:18,860 eller ved manuelt at sætte i 4 rum selv. 508 00:25:21,880 --> 00:25:25,050 Cool, okay så lad os gå tilbage og se på 509 00:25:25,050 --> 00:25:30,460 Alexanders gør-tid. 510 00:25:30,460 --> 00:25:32,980 >> Bare kinda har lidt problemer. 511 00:25:32,980 --> 00:25:34,390 Okay, godt lad os arbejde gennem det. 512 00:25:34,390 --> 00:25:36,400 Er det okay? 513 00:25:36,400 --> 00:25:37,430 >> Yeah. 514 00:25:37,430 --> 00:25:39,200 >> Okay, så here we go. 515 00:25:39,200 --> 00:25:41,010 Det er den kode, der Alexander skrev. 516 00:25:41,010 --> 00:25:43,410 Går du med Alex - okay. 517 00:25:43,410 --> 00:25:46,380 Så her er den kode, som Alex har skrevet. 518 00:25:46,380 --> 00:25:50,500 Så har vi fået vores erklæring om main lige her, 519 00:25:50,500 --> 00:25:54,410 og så har vi denne heltalsvariabel kaldet i 520 00:25:54,410 --> 00:25:57,320 erklæres lige her. 521 00:25:57,320 --> 00:26:01,060 Vi har en do erklæring 522 00:26:01,060 --> 00:26:04,600 og derefter kroppen igen med disse seler, 523 00:26:04,600 --> 00:26:06,520 så dette er liget af den do-mens - 524 00:26:06,520 --> 00:26:09,210 Lad mig zoome ind på dette, så det er mere læsbar - 525 00:26:09,210 --> 00:26:12,730 og i kroppen, vi forsøger at udskrive "dette er kroppen", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 så inkrementere indholdet af i og gøre dette 528 00:26:17,710 --> 00:26:19,470 indtil jeg får lov til at være 3, 529 00:26:19,470 --> 00:26:22,440 og derefter vores program slutter. 530 00:26:22,440 --> 00:26:24,680 >> Så hvad sker der, når vi kører dette program? 531 00:26:24,680 --> 00:26:27,580 >> Jeg forventede en identifikator. 532 00:26:27,580 --> 00:26:32,070 Okay, så bygge, køre, opstår fejl. 533 00:26:32,070 --> 00:26:34,820 Hvad sker der? 534 00:26:34,820 --> 00:26:37,060 Vi rulle ned her, 535 00:26:37,060 --> 00:26:40,260 får vi denne lidt kryptiske søger ting, 536 00:26:40,260 --> 00:26:43,930 forventede semikolon efter topniveau erklæring. 537 00:26:43,930 --> 00:26:46,620 Det er kinda weird. 538 00:26:46,620 --> 00:26:50,990 Er der nogen har en idé om, hvad der kunne ske? 539 00:26:53,080 --> 00:26:54,640 Kinda weird, yeah. 540 00:26:54,640 --> 00:26:57,640 >> [Uhørlig] blive erklæret uden for parenteserne? 541 00:26:57,640 --> 00:27:03,480 Så er dette ikke tilfældet så når du bruger parenteser? 542 00:27:03,480 --> 00:27:07,390 Så han erklærede denne fyr uden for hvilket parenteser? 543 00:27:09,670 --> 00:27:12,240 Åh, disse fyre - de krøllede seler? 544 00:27:12,240 --> 00:27:13,850 >> Yeah. 545 00:27:13,850 --> 00:27:15,310 Ja, præcis. 546 00:27:15,310 --> 00:27:17,120 Så det sig, at 547 00:27:17,120 --> 00:27:21,550 du kan faktisk ikke erklære en variabel lige her som denne. 548 00:27:23,750 --> 00:27:26,690 Hvad du måske har forsøgt at gøre, var - 549 00:27:26,690 --> 00:27:30,110 skære det ud derfra - 550 00:27:30,110 --> 00:27:34,330 du kan enten lægge det i de krøllede parenteser lige her 551 00:27:34,330 --> 00:27:37,400 eller et andet alternativ 552 00:27:37,400 --> 00:27:40,350 er at sætte det helt udenfor. 553 00:27:42,480 --> 00:27:46,610 Og så disse - afhængig af hvor du faktisk lægge erklæringen 554 00:27:46,610 --> 00:27:48,550 af denne heltalsvariabel, 555 00:27:48,550 --> 00:27:53,540 du kan få 2 meget forskellige slags variabler; 556 00:27:53,540 --> 00:27:55,100 når det er uden for main, 557 00:27:55,100 --> 00:27:58,240 Det er, hvad vi kalder en global variabel. 558 00:27:58,240 --> 00:28:00,070 Det er uden for rammerne af en af ​​de funktioner - 559 00:28:00,070 --> 00:28:03,420 det er ikke i en funktion - 560 00:28:03,420 --> 00:28:07,050 hvorimod hvis vi sætter det inde i main, 561 00:28:07,050 --> 00:28:10,000 gerne lige her, så det kaldes en lokal variabel, 562 00:28:10,000 --> 00:28:13,830 fordi det er lokale til omfanget af main. 563 00:28:13,830 --> 00:28:16,720 Og vi vil snakke lidt mere om, hvad forskellene er 564 00:28:16,720 --> 00:28:20,970 mellem de 2 typer, og hvorfor du bruger forskellige typer af variabler, 565 00:28:20,970 --> 00:28:23,040 men for nu, 566 00:28:23,040 --> 00:28:25,070 du kan bare holde alle variabler lokale, 567 00:28:25,070 --> 00:28:28,320 fordi vi ikke har noget behov for globale variable. 568 00:28:28,320 --> 00:28:31,390 >> Okay, så der er én ting lige der. 569 00:28:31,390 --> 00:28:34,680 Lad os prøve at køre det igen, se hvad der sker. 570 00:28:37,420 --> 00:28:40,270 Kør, få en anden fejl. 571 00:28:40,270 --> 00:28:43,320 Zoom ind på en smule, hvad gør vi så? 572 00:28:45,110 --> 00:28:50,000 Vi får denne forventede parentes efter gøre / stykke tid. 573 00:28:53,660 --> 00:28:55,260 Nogen ideer hvad sker der? Dan? 574 00:28:55,260 --> 00:28:58,880 >> Er imens så parentes og derefter - 575 00:28:58,880 --> 00:29:01,990 Jeg ved ikke, om du har brug for at redeclare int, 576 00:29:01,990 --> 00:29:04,980 men det gør while (i <3). 577 00:29:04,980 --> 00:29:06,930 Præcis, ja. 578 00:29:06,930 --> 00:29:08,830 Så det viser sig, at Dan er helt rigtigt. 579 00:29:08,830 --> 00:29:11,230 Vi behøver ikke at sætte denne type her igen. 580 00:29:11,230 --> 00:29:14,440 Vi kan i stedet dræbe typen 581 00:29:14,440 --> 00:29:17,220 og bare gøre det. 582 00:29:19,270 --> 00:29:21,640 Ok. 583 00:29:21,640 --> 00:29:24,950 Jeg vil zoome ud igen, prøv det en gang til. 584 00:29:26,360 --> 00:29:29,580 Kig på det, det kører en succes. 585 00:29:29,580 --> 00:29:33,260 Hvis vi rulle ned, "dette er kroppen" printet ud 3 gange. 586 00:29:33,260 --> 00:29:35,820 Det er temmelig sød. 587 00:29:35,820 --> 00:29:38,670 Godt klaret, godt klaret, gutter. 588 00:29:38,670 --> 00:29:41,080 Godt klaret. 589 00:29:41,080 --> 00:29:43,250 Hvordan er det gået så vidt? 590 00:29:43,250 --> 00:29:46,200 Anstændigt tempo? 591 00:29:46,200 --> 00:29:49,200 Okay, cool. 592 00:29:49,200 --> 00:29:52,590 >> Så da vi slags tilbage til det oprindelige spørgsmål, 593 00:29:52,590 --> 00:29:55,430 vi - og nu, hvis vi se forskellen, 594 00:29:55,430 --> 00:29:58,240 du se, at i denne do-while-løkke, 595 00:29:58,240 --> 00:30:00,030 tilstanden kommer sidst. 596 00:30:00,030 --> 00:30:02,530 Således at computeren aflæser programmet 597 00:30:02,530 --> 00:30:06,050 da C-programmer udføres slags i denne rækkefølge, 598 00:30:06,050 --> 00:30:09,450 hvor de bogstaveligt talt begynder med den første linje af main, 599 00:30:09,450 --> 00:30:13,450 og derefter udføre linje 6, linie 7, linie 8, linie 9. 600 00:30:13,450 --> 00:30:16,150 linie 10, linie 11, 601 00:30:16,150 --> 00:30:18,440 alle disse ting øverst til højre her 602 00:30:18,440 --> 00:30:20,020 vil udføre en gang 603 00:30:20,020 --> 00:30:23,350 før vi nogensinde afprøve denne betingelse for at se 604 00:30:23,350 --> 00:30:26,240 eller ej i - eller indholdet af i, snarere - 605 00:30:26,240 --> 00:30:29,750 er mindre end tallet 3. 606 00:30:29,750 --> 00:30:33,300 Og kun hvis når vi kommer til linie 12, 607 00:30:33,300 --> 00:30:36,260 indholdet af i er mindre end 3 608 00:30:36,260 --> 00:30:39,150 har vi faktisk hoppe tilbage op til linje 7 609 00:30:39,150 --> 00:30:41,140 og derefter gentage processen, 610 00:30:41,140 --> 00:30:44,620 og så tester vi den betingelse igen og igen og igen. 611 00:30:44,620 --> 00:30:47,440 >> Så vi kan sammenligne dette 612 00:30:47,440 --> 00:30:50,240 med - zoomer ud igen, 613 00:30:50,240 --> 00:30:56,500 scroll ned til Sams version, 614 00:30:56,500 --> 00:31:00,760 vi skal se på dette, lidt ændret, således at det ikke længere er en uendelig løkke - 615 00:31:00,760 --> 00:31:03,570 hvor hvis vi zoome ind, 616 00:31:03,570 --> 00:31:06,300 vi se, at da dette program udfører, 617 00:31:06,300 --> 00:31:09,120 det vil først erklære int i, 618 00:31:09,120 --> 00:31:12,030 indstille indholdet af jeg være til 0, 619 00:31:12,030 --> 00:31:15,820 og så det rammer tilstand, mens løkken først, 620 00:31:15,820 --> 00:31:19,210 så i dette tilfælde, denne krop, denne printf ("hej") og i + + 621 00:31:19,210 --> 00:31:21,630 ikke engang udføre 622 00:31:21,630 --> 00:31:24,310 hvis i er faktisk mindre end eller lig med to. 623 00:31:24,310 --> 00:31:26,750 Så hvis i er 3, for eksempel, 624 00:31:26,750 --> 00:31:28,840 hvis vi sætter denne her 625 00:31:28,840 --> 00:31:32,160 svarende til 4 - eller jeg vil gøre 3, fordi jeg sagde 3 - 626 00:31:32,160 --> 00:31:34,890 og derefter køre det, 627 00:31:34,890 --> 00:31:38,320 det vil bygge, det vil køre helt fint, 628 00:31:38,320 --> 00:31:40,530 men det vil faktisk ikke udskrive noget, 629 00:31:40,530 --> 00:31:43,030 fordi det mislykkedes at test for den første sag. 630 00:31:44,780 --> 00:31:47,530 Så i klassen, vi slags talte om, hvorfor disse do-while-løkker 631 00:31:47,530 --> 00:31:49,800 er nyttige til tider 632 00:31:49,800 --> 00:31:53,140 og hvorfor vi ville bruge det i modsætning til en while-løkke. 633 00:31:53,140 --> 00:31:56,450 >> Er der - tror du fyre har nogen forslag 634 00:31:56,450 --> 00:31:59,090 for hvorfor en gør-while-løkke ville være mere nyttigt? 635 00:31:59,090 --> 00:32:02,560 >> Tja, jeg tror gør-while-løkker er, hvis du vil have input fra brugeren, 636 00:32:02,560 --> 00:32:05,020 fordi på den måde kan du lade dem 637 00:32:05,020 --> 00:32:07,780 sætte noget i gang, hvis det er korrekt, 638 00:32:07,780 --> 00:32:09,300 vi kan gå videre til resten af ​​programmet, 639 00:32:09,300 --> 00:32:11,250 men hvis det ikke er korrekt, så du bliver ved med at spørge brugeren 640 00:32:11,250 --> 00:32:13,250 indtil du sætte den rigtige indgang. 641 00:32:13,250 --> 00:32:14,260 Ja, præcis - præcis, 642 00:32:14,260 --> 00:32:16,840 så en gør-while-løkke er nyttigt 643 00:32:16,840 --> 00:32:18,930 fordi når beder for bruger input 644 00:32:18,930 --> 00:32:23,000 fordi du har brug for at få brugerens input, før du rent faktisk kan kontrollere det. 645 00:32:23,000 --> 00:32:27,330 Så i Pset 1, i Pset 2 646 00:32:27,330 --> 00:32:29,650 hvor du spørge for bruger input en masse, 647 00:32:29,650 --> 00:32:31,200 det er en smart ting at bruge 648 00:32:31,200 --> 00:32:33,740 i modsætning til blot en simpel while-løkke. 649 00:32:33,740 --> 00:32:36,780 Hvis du bruger en while-løkke, kan du gøre det samme - 650 00:32:36,780 --> 00:32:38,750 du kan gøre det samme med en while-løkke 651 00:32:38,750 --> 00:32:40,580 som du gør med en gør-while-løkke. 652 00:32:40,580 --> 00:32:43,380 Du skal bare nødt til at slags har denne dobbelt proces 653 00:32:43,380 --> 00:32:47,010 hvor du får input først og derefter starte din while-løkke. 654 00:32:47,010 --> 00:32:49,800 Hvorimod en gør-while-løkke, du bare nødt til at skrive det én gang 655 00:32:49,800 --> 00:32:52,430 og det er meget renere. 656 00:32:52,430 --> 00:32:54,650 >> Ok. 657 00:32:55,970 --> 00:32:57,330 Eventuelle spørgsmål? 658 00:32:59,350 --> 00:33:01,380 Give mening? 659 00:33:01,380 --> 00:33:06,200 >> Afkastet 0 - det er bare sådan en bås eller er det -? 660 00:33:06,200 --> 00:33:08,960 Ja, så kan vi - 661 00:33:08,960 --> 00:33:11,960 godt, vi vil dække dette lidt mere senere 662 00:33:11,960 --> 00:33:13,290 men det viser sig, at 663 00:33:13,290 --> 00:33:15,720 denne return 0, at vi sætter 664 00:33:15,720 --> 00:33:19,090 ved slutningen af ​​main hele tiden - 665 00:33:19,090 --> 00:33:21,980 du kan kinda bare tage det som noget vi gør 666 00:33:21,980 --> 00:33:24,930 for tiden. 667 00:33:24,930 --> 00:33:28,860 Hvad vi er begyndt at tale om med funktioner 668 00:33:28,860 --> 00:33:31,600 slags i slutningen af ​​sidste uge, og derefter igen i denne uge 669 00:33:31,600 --> 00:33:33,550 er, at en funktion 670 00:33:33,550 --> 00:33:37,680 tager inputs, der er disse ting i parentes; 671 00:33:37,680 --> 00:33:41,690 disse er 2 indgange, vores argumenter eller parametre, 672 00:33:41,690 --> 00:33:44,540 hvad de er også kaldet til vores vigtigste funktion, 673 00:33:44,540 --> 00:33:48,510 og derefter en funktion frembringer et udgangssignal 674 00:33:48,510 --> 00:33:51,290 som vi kalder en returværdi. 675 00:33:51,290 --> 00:33:56,260 Og den returnerede værdi i tilfælde af hoved er denne int, 676 00:33:56,260 --> 00:33:58,320 denne heltal, 677 00:33:58,320 --> 00:34:01,160 og den måde du fortælle en funktion, "Hey, det er, hvad dit output 678 00:34:01,160 --> 00:34:05,840 vil være, "er med dette ord" afkast ", 679 00:34:05,840 --> 00:34:07,960 det pågældende søgeord, snarere 680 00:34:07,960 --> 00:34:11,000 og så main tilbage 0 681 00:34:11,000 --> 00:34:13,389 eller main udsende 0 682 00:34:13,389 --> 00:34:15,139 er standard i C-programmer 683 00:34:15,139 --> 00:34:18,110 fordi returnere 0 fra metode, de 684 00:34:18,110 --> 00:34:21,600 "Hey, alt udført med mit program fint." 685 00:34:21,600 --> 00:34:24,639 Hvis vi skulle sætte noget andet end 0, 686 00:34:24,639 --> 00:34:27,440 gerne 1, for eksempel 687 00:34:27,440 --> 00:34:31,080 , der bruges til at fortælle hvem kørte dette program 688 00:34:31,080 --> 00:34:33,540 at noget gik galt. 689 00:34:35,739 --> 00:34:39,989 Så som vi involvere sig mere med ting over semestret, 690 00:34:39,989 --> 00:34:42,670 hvis du nogensinde har brug for at sige, 691 00:34:42,670 --> 00:34:46,650 "Ups, du ved, noget gik galt med dette program," 692 00:34:46,650 --> 00:34:49,409 snarere end at have mit program crash, vil jeg gerne anmelde 693 00:34:49,409 --> 00:34:52,310 løberen af ​​mit program, at noget gik galt, 694 00:34:52,310 --> 00:34:54,530 du kan bruge returværdi, 695 00:34:54,530 --> 00:34:57,230 som vi kalder det, det er ikke 0. 696 00:35:00,180 --> 00:35:02,240 >> Så vi vil dække, at en lille smule mere 697 00:35:02,240 --> 00:35:05,480 når vi kommer ind funktioner. 698 00:35:05,480 --> 00:35:09,030 Den slags giver mening? 699 00:35:09,030 --> 00:35:11,240 Okay. 700 00:35:11,240 --> 00:35:13,530 Funktioner er slags bizarre - 701 00:35:13,530 --> 00:35:17,270 Jeg tror for folk, der har masser af matematik baggrund, 702 00:35:17,270 --> 00:35:20,100 det kommer lidt lettere, 703 00:35:20,100 --> 00:35:22,540 især hvis du har en lille smule mere abstrakt matematik baggrund 704 00:35:22,540 --> 00:35:24,240 og du er vant til at tale om funktioner 705 00:35:24,240 --> 00:35:27,370 og alle den slags ting. 706 00:35:28,590 --> 00:35:30,610 Men vi vil forsøge at dække dem 707 00:35:30,610 --> 00:35:33,280 og gå stille og roligt som de kommer op. 708 00:35:34,730 --> 00:35:37,870 Ligeledes hele denne int argc, 709 00:35:37,870 --> 00:35:41,090 char * argv [], 710 00:35:41,090 --> 00:35:44,960 for lige nu, kan du også tage det som kedel plade. 711 00:35:46,650 --> 00:35:49,050 Vi er begyndt at dække dem lidt i foredrag 712 00:35:49,050 --> 00:35:53,060 når vi taler om argumenter, der bliver passeret i programmer på kommandolinjen, 713 00:35:53,060 --> 00:35:55,700 men i dit problem sæt og dine programmer, 714 00:35:55,700 --> 00:35:58,760 det er helt fint bare at skrive ugyldig og holde det simpelt. 715 00:35:58,760 --> 00:36:01,490 Og hvad dette tomrum betyder er, at 716 00:36:01,490 --> 00:36:04,630 "Hey, er main vil ikke acceptere nogen input; 717 00:36:04,630 --> 00:36:07,440 Dette er bare et program vi skal bare køre. 718 00:36:07,440 --> 00:36:09,320 Vi vil ikke give det nogen ekstra information 719 00:36:09,320 --> 00:36:12,420 hver gang vi starter det op at køre. " 720 00:36:14,730 --> 00:36:16,600 Så for nu, kan du gøre dette; 721 00:36:16,600 --> 00:36:19,710 du kan også selv udelade return 0 722 00:36:19,710 --> 00:36:22,650 i slutningen af ​​dine programmer, og de vil køre fint, 723 00:36:22,650 --> 00:36:26,150 men jeg anbefaler blot at holde det i. 724 00:36:26,150 --> 00:36:28,320 I et par uger, vil vi begynde at slags 725 00:36:28,320 --> 00:36:31,340 trække sig tilbage låget en lille smule og forstå mere om 726 00:36:31,340 --> 00:36:34,380 alle de forskellige små bevægelige dele. 727 00:36:34,380 --> 00:36:38,160 >> Okay, lad os nu snakke om vores andet spørgsmål her. 728 00:36:38,160 --> 00:36:43,190 Så hvad betyder "sort identifikator" angiver normalt 729 00:36:43,190 --> 00:36:46,040 hvis udsendt ved Dunk? 730 00:36:46,040 --> 00:36:49,290 Jeg tror, ​​vi måske har set, at der allerede i dag. 731 00:36:51,170 --> 00:36:54,370 Kan nogen give et resumé af, hvad det betyder? 732 00:36:54,370 --> 00:36:57,680 Lad os se, Kelly - en af ​​de Kellys. 733 00:37:02,580 --> 00:37:05,300 >> So - 734 00:37:05,300 --> 00:37:07,080 Ja, hvad gør - 735 00:37:07,080 --> 00:37:10,140 >> Jeg tror, ​​når du, ligesom ikke erklære variabler, og du forsøger at bruge det. 736 00:37:10,140 --> 00:37:13,310 Ja, præcis, præcis. 737 00:37:13,310 --> 00:37:15,250 Så hvis du nogensinde ser denne udgang 738 00:37:15,250 --> 00:37:17,690 når du prøver og kompilere dit program, 739 00:37:17,690 --> 00:37:19,470 ligesom Kelly sagde, 740 00:37:19,470 --> 00:37:24,210 betyder det, at du har brugt en variabel, som du ikke har opgivet, 741 00:37:24,210 --> 00:37:28,460 så hvis jeg gå tilbage til vores Space, 742 00:37:28,460 --> 00:37:31,150 og jeg gør noget som 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Hej% s") 745 00:37:40,070 --> 00:37:42,440 og prøv og udfylde denne% s 746 00:37:42,440 --> 00:37:45,640 med en variabel s at jeg ikke har erklæret overalt 747 00:37:45,640 --> 00:37:48,330 og jeg prøver at køre det, 748 00:37:48,330 --> 00:37:51,330 du vil se, hvad jeg får ned på denne nederst til højre her: 749 00:37:51,330 --> 00:37:54,010 "Brug af sort identifikator 's'"; 750 00:37:54,010 --> 00:37:57,710 det betyder bare, at du ikke erklære din variabel. 751 00:37:57,710 --> 00:38:00,750 Samme sker, hvis 752 00:38:00,750 --> 00:38:05,240 du har x og du prøver og gemme 7 i det 753 00:38:05,240 --> 00:38:08,720 og jeg ikke erklære X. 754 00:38:08,720 --> 00:38:10,200 Jeg får den samme fejl: 755 00:38:10,200 --> 00:38:13,480 "Brug af sort identifikator 'x'". 756 00:38:16,390 --> 00:38:18,250 >> Okay, 757 00:38:18,250 --> 00:38:21,720 så Caesar Cipher, ikke at være meget sikker 758 00:38:21,720 --> 00:38:24,590 Jeg vil lade jer se denne korte, slags forstår hvorfor, 759 00:38:24,590 --> 00:38:27,590 og forhåbentlig efter at gøre denne uges problem indstillet 760 00:38:27,590 --> 00:38:29,270 hvor du faktisk skrive en Cæsar Cipher, vil du forstå en lille smule mere 761 00:38:29,270 --> 00:38:32,600 om, hvad det betyder at være en sikker og usikker - 762 00:38:36,180 --> 00:38:38,960 eller ikke sikkert, jeg gætte - usikker er lidt anderledes. 763 00:38:40,560 --> 00:38:43,140 Den anden ting var vi har disse andre spørgsmål her 764 00:38:43,140 --> 00:38:45,470 om funktioner 765 00:38:45,470 --> 00:38:47,330 og hvad en funktion er, 766 00:38:47,330 --> 00:38:52,820 og vi slags talt om, at kortvarigt, når vi talte om tilbagesendelse værdier; 767 00:38:52,820 --> 00:38:54,560 for nogen, der har været at belære, 768 00:38:54,560 --> 00:38:57,790 kan du opsummere som har været til at holde foredrag i dag? 769 00:38:57,790 --> 00:38:59,670 Ok. 770 00:39:01,210 --> 00:39:04,320 Lad os se, lad os få - kan nogen fortælle os, hvad en funktion er? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> >> Dybest set noget du trække på noget, der er skrevet i det bibliotek, der er 773 00:39:11,260 --> 00:39:14,460 mere kompliceret derovre, og så skal du bare skrive en kort form af det, 774 00:39:14,460 --> 00:39:17,360 så ligesom du henviser tilbage til det bibliotek, hjælp 775 00:39:17,360 --> 00:39:19,650 hele den lange kode og [uhørlig]. 776 00:39:19,650 --> 00:39:22,680 Ja, præcis, og så du wanna tilføje noget til det? 777 00:39:22,680 --> 00:39:27,050 >> Ja, jeg tror på det som svarer til begrebet om en formel i matematik 778 00:39:27,050 --> 00:39:30,130 hvor du bare skrive en formel og så du kan tilslutte variabler i 779 00:39:30,130 --> 00:39:32,660 og det er hvad en funktion er [uhørligt]. 780 00:39:32,660 --> 00:39:35,390 >> Ja, så har vi et par svar her 781 00:39:35,390 --> 00:39:38,080 der er både rigtig god og lige på. 782 00:39:38,080 --> 00:39:43,040 Der har med henvisning til kode, der er blevet skrevet i biblioteket eller andet sted 783 00:39:43,040 --> 00:39:45,390 det er mere kompliceret 784 00:39:45,390 --> 00:39:47,130 og derefter kan du trække på denne kode 785 00:39:47,130 --> 00:39:50,480 og faktisk bruger det ved bare at skrive den korte form af det - 786 00:39:50,480 --> 00:39:54,060 eller rettere dens navn - 787 00:39:54,060 --> 00:39:57,590 og så er der også denne sammenligning til en formel i matematik 788 00:39:57,590 --> 00:40:00,400 eller fysik, al den slags ting 789 00:40:00,400 --> 00:40:02,980 hvor du har en formel 790 00:40:02,980 --> 00:40:05,690 og du kan derefter tilslutte 791 00:40:05,690 --> 00:40:08,100 de variabler til denne formel 792 00:40:08,100 --> 00:40:11,130 for derefter at få resultatet af formlen, 793 00:40:11,130 --> 00:40:14,580 så du tænker over det, som ligesom den andengradsligning. 794 00:40:14,580 --> 00:40:17,690 Tænk, hvis snarere end at skulle lære om 795 00:40:17,690 --> 00:40:21,310 hvad den kvadratiske formel er i matematik klasse, 796 00:40:21,310 --> 00:40:24,610 du bare havde en lille regnemaskine program, der gjorde det for dig. 797 00:40:24,610 --> 00:40:28,930 Var der nogen bruge lommeregner programmer i matematik klasser i gymnasiet? 798 00:40:28,930 --> 00:40:31,020 Ja, fysik klasser? 799 00:40:31,020 --> 00:40:34,670 Hvor du kan bare sige, "Hey, kvadratiske formel. 800 00:40:34,670 --> 00:40:37,740 Disse er de variabler, som jeg gerne vil input. 801 00:40:37,740 --> 00:40:40,250 Nu give mig svaret. " 802 00:40:40,250 --> 00:40:42,170 Det er lidt af, hvad en funktion er. 803 00:40:42,170 --> 00:40:44,850 Det er en måde for os at 804 00:40:44,850 --> 00:40:47,720 slags skrive som en lille smule sub program 805 00:40:47,720 --> 00:40:51,700 inden for vores større program 806 00:40:51,700 --> 00:40:55,090 og bruge det igen og igen 807 00:40:55,090 --> 00:40:58,380 så vi ikke behøver at kopiere og indsætte kode, 808 00:40:58,380 --> 00:41:04,220 vi kan give det forskellige indgange og få forskellige udgange, 809 00:41:04,220 --> 00:41:07,090 det er super handy 810 00:41:07,090 --> 00:41:11,420 når du forsøger at skrive forskellige programmer på forskellige tidspunkter. 811 00:41:11,420 --> 00:41:14,580 >> Altså for eksempel, en funktion, som vi har brugt igen og igen og igen 812 00:41:14,580 --> 00:41:17,310 hele kurset er printf. 813 00:41:17,310 --> 00:41:19,680 Printf selv er en funktion 814 00:41:19,680 --> 00:41:23,360 og det viser sig, at det er faktisk en temmelig lang og kompliceret, 815 00:41:23,360 --> 00:41:26,420 nasty leder, fungerer til at skrive. 816 00:41:26,420 --> 00:41:29,590 Så så simpelt som det forekommer os 817 00:41:29,590 --> 00:41:31,810 at udskrive ting ud til skærmen, 818 00:41:31,810 --> 00:41:34,820 fordi vi alle bare gjorde det i begyndelsen af ​​afsnittet i dag, 819 00:41:34,820 --> 00:41:36,870 viser det sig, at det faktisk er, du ved, 820 00:41:36,870 --> 00:41:39,900 et godt par hundrede linjer kode. 821 00:41:42,030 --> 00:41:45,620 Det er ikke noget, jeg nogensinde ville gerne skrive, for sikker, 822 00:41:45,620 --> 00:41:47,480 men vi kommer til at bruge det hver dag, det er lidt cool, 823 00:41:47,480 --> 00:41:49,020 så vi kommer til at dele det med hinanden, 824 00:41:49,020 --> 00:41:51,790 med forskellige programmer, 825 00:41:51,790 --> 00:41:54,520 så vi vil være dykning mere i funktioner; 826 00:41:54,520 --> 00:41:56,090 for øjeblikket er vi ikke - 827 00:41:56,090 --> 00:41:59,150 den eneste funktion vi kommer til at skrive, er main. 828 00:41:59,150 --> 00:42:01,570 Main selv er også en funktion, 829 00:42:01,570 --> 00:42:04,270 og du kan se det har fået sin produktion, 830 00:42:04,270 --> 00:42:06,610 dets råvarer og materialer som vi talte om, 831 00:42:06,610 --> 00:42:08,930 og så sit navn, som er main. 832 00:42:08,930 --> 00:42:11,800 Main er lidt af en - er en særlig funktion der. 833 00:42:11,800 --> 00:42:14,800 I dit C-programmet, skal der være en hovedfunktion, 834 00:42:14,800 --> 00:42:17,900 og så for nu, har vi slags udeladt skrivning 835 00:42:17,900 --> 00:42:21,400 prototypen, eller angivelse af, main. 836 00:42:21,400 --> 00:42:23,050 Vi har givet det til dig, 837 00:42:23,050 --> 00:42:25,650 og vi har netop havde du udfylder slags emnerne. 838 00:42:25,650 --> 00:42:29,120 >> >> Så for det andet problem sæt, behøver vi ikke at 839 00:42:29,120 --> 00:42:31,350 skrive det i den anden funktion? 840 00:42:31,350 --> 00:42:34,200 Jeg tror ikke det. 841 00:42:34,200 --> 00:42:37,600 Jeg tror, ​​det er alle herinde. 842 00:42:37,600 --> 00:42:41,710 Ja, så Caesar Cipher, 843 00:42:41,710 --> 00:42:45,000 du behøver ikke at, det ikke se ud, 844 00:42:48,740 --> 00:42:53,150 og Vigenere, gør du heller ikke, 845 00:42:53,150 --> 00:42:56,400 så - og det viser sig, du ikke nogensinde faktisk nødt til at skrive 846 00:42:56,400 --> 00:42:58,250 en funktion, right? 847 00:42:58,250 --> 00:43:01,950 Du ringer altid lægge alle din kode i main, 848 00:43:01,950 --> 00:43:04,500 og mange programmører gøre det. 849 00:43:04,500 --> 00:43:07,130 Da vi går videre, 850 00:43:07,130 --> 00:43:09,480 vi begynde at indføre funktioner som en måde 851 00:43:09,480 --> 00:43:11,530 at rydde op i din kode, 852 00:43:11,530 --> 00:43:13,380 at gøre det mere elegant, 853 00:43:13,380 --> 00:43:16,890 i tilfælde af at du har opgaver - lidt ligesom når vi talte om loops, 854 00:43:16,890 --> 00:43:20,400 hvordan nogle gange er der ting, du ønsker at gøre igen og igen og igen, 855 00:43:20,400 --> 00:43:23,510 og du har slags den naive måde - 856 00:43:23,510 --> 00:43:26,360 eller hvad vi ofte kalder "stråmand" løsning, 857 00:43:26,360 --> 00:43:29,390 er bare at kopiere og indsætte igen og igen - 858 00:43:29,390 --> 00:43:31,000 du kan gøre det samme med funktioner, hvor du bare kopiere og indsætte 859 00:43:31,000 --> 00:43:33,360 den samme kode igen og igen, 860 00:43:33,360 --> 00:43:35,750 men det bloats din kode - 861 00:43:35,750 --> 00:43:38,550 det ender med at gøre din kode rigtig lang - 862 00:43:38,550 --> 00:43:41,550 og det også bliver lidt forvirrende, 863 00:43:41,550 --> 00:43:43,470 og så betyder det, at du ikke er i stand til at kunne lide - 864 00:43:43,470 --> 00:43:45,250 hvis du nogensinde vil bruge denne kode igen i et andet program, 865 00:43:45,250 --> 00:43:48,610 du også fast kopiere og indsætte det igen, 866 00:43:48,610 --> 00:43:51,170 så en af ​​de ting, vi taler om, er 867 00:43:51,170 --> 00:43:54,960 form for design og stil af dine programmer, 868 00:43:54,960 --> 00:43:57,010 og så når det giver mening at slags 869 00:43:57,010 --> 00:43:59,800 pakke noget op og sætte det som en separat funktion, 870 00:43:59,800 --> 00:44:02,080 vil vi opfordre dig til at gøre det, 871 00:44:02,080 --> 00:44:04,700 og det er noget, der, igen, 872 00:44:04,700 --> 00:44:07,790 der er ingen ufravigelig regel. 873 00:44:07,790 --> 00:44:11,540 Vi sjældent sige, at du skal skrive en funktion kaldet dette, 874 00:44:12,870 --> 00:44:16,320 men det er mere af en af ​​de ting, du bare udvikler sig over tid 875 00:44:16,320 --> 00:44:19,470 som du skriver flere og flere programmer. 876 00:44:21,940 --> 00:44:24,790 >> Flere spørgsmål? 877 00:44:26,340 --> 00:44:30,610 Okay, så lad os nu 878 00:44:30,610 --> 00:44:34,750 gå tilbage op til denne fyr lige her, 879 00:44:34,750 --> 00:44:37,800 så jeg er stadig i denne del af spørgsmålene. 880 00:44:37,800 --> 00:44:39,900 Vi har talt om alle disse forskellige dem, 881 00:44:39,900 --> 00:44:42,050 hvad er en funktion, hvorfor man skriver funktioner, 882 00:44:42,050 --> 00:44:44,700 når du bare kan kopiere og indsætte? 883 00:44:44,700 --> 00:44:47,700 Forhåbentlig har vi overbeviste dig at skrive funktioner er en god ting. 884 00:44:47,700 --> 00:44:50,870 Så lad os nu gå videre til dette MySpace program, 885 00:44:50,870 --> 00:44:53,080 og vi vil tilbringe en lille smule tid at gøre dette. 886 00:44:54,600 --> 00:44:56,480 >> Så lad os se, 887 00:44:56,480 --> 00:45:00,230 kan jeg have nogen læse dette for mig? 888 00:45:02,640 --> 00:45:04,660 Lad os få Mikhaila - vil du læse dette for os? 889 00:45:07,660 --> 00:45:08,890 >> Du mener tilbage, når MySpace - 890 00:45:08,890 --> 00:45:10,920 Back When MySpace var cool. 891 00:45:10,920 --> 00:45:12,070 >> "Tilbage, når MySpace var cool, 892 00:45:12,070 --> 00:45:14,900 Det var alle de vrede til at skrive som denne. 893 00:45:14,900 --> 00:45:17,320 Måske er det stadig? Jeg er ikke helt sikker. 894 00:45:17,320 --> 00:45:19,990 Under alle omstændigheder under anvendelse af CS50 Appliance 895 00:45:19,990 --> 00:45:22,600 CS50 Run, eller CS50 Spaces, 896 00:45:22,600 --> 00:45:25,370 skrive et program, der beder brugeren om en besked 897 00:45:25,370 --> 00:45:29,350 og derefter udlæser meddelelsen med sin første bogstav kapitaliserede, 898 00:45:29,350 --> 00:45:31,800 med alle de andre bogstaver i vekslende tilfælde, 899 00:45:31,800 --> 00:45:34,010 som pr prøve output nedenfor, 900 00:45:34,010 --> 00:45:37,060 hvor boldfaced tekst repræsenterer nogle brugerens input. 901 00:45:37,060 --> 00:45:39,800 For enkelhedens skyld kan man antage, at brugeren 902 00:45:39,800 --> 00:45:42,810 vil kun modtage små bogstaver og mellemrum. 903 00:45:42,810 --> 00:45:45,900 Overvej dette problem en mulighed for at øve; 904 00:45:45,900 --> 00:45:48,640 vil du ikke blive bedt om at indsende dette program. " 905 00:45:48,640 --> 00:45:51,640 >> Awesome, tak. 906 00:45:51,640 --> 00:45:54,750 Således Mikhaila sagt, 907 00:45:54,750 --> 00:45:58,850 vi kommer til at skrive et program, der MySpaces din kode. 908 00:45:58,850 --> 00:46:02,230 Så har nogen af ​​jer bruger MySpace? 909 00:46:02,230 --> 00:46:04,100 Nogen af ​​jer har MySpace-konti? 910 00:46:04,100 --> 00:46:05,920 Oh, yeah, yeah! 911 00:46:05,920 --> 00:46:08,300 Det var temmelig cool. 912 00:46:08,300 --> 00:46:09,950 [Latter] 913 00:46:09,950 --> 00:46:12,060 Jeg kender. 914 00:46:12,060 --> 00:46:14,500 Dating mig selv. 915 00:46:15,490 --> 00:46:18,300 Så hvad vi forsøger at gøre, er at skrive et program 916 00:46:18,300 --> 00:46:21,110 der går igennem 917 00:46:21,110 --> 00:46:24,490 og det første bogstav 918 00:46:24,490 --> 00:46:27,140 og derefter hvert bogstav derefter - 919 00:46:27,140 --> 00:46:29,350 eller hver anden bogstav derefter, jeg er ked af det. 920 00:46:29,350 --> 00:46:32,910 >> Så - og du kan se i dette eksempel, 921 00:46:32,910 --> 00:46:35,260 dette er, hvordan vi kører programmet, 922 00:46:35,260 --> 00:46:38,780 og så det er bare at sige: "Vi kører et program kaldet a.out. 923 00:46:41,490 --> 00:46:44,630 Det input, som vi vil give det 924 00:46:44,630 --> 00:46:47,090 vil blive bedt om det. 925 00:46:47,090 --> 00:46:51,150 Vi vil ikke kunne give input på kommandolinjen. " 926 00:46:51,150 --> 00:46:54,100 Hvis du har fulgt alle foredragene 927 00:46:54,100 --> 00:46:56,710 og høre om kommandolinjeargumenter, 928 00:46:57,810 --> 00:47:00,080 det er lidt af hvor dem - det funky syntaks 929 00:47:00,080 --> 00:47:04,530 på main kommer ind med int argc, alt det, 930 00:47:04,530 --> 00:47:07,630 så her vi ikke bruger det, vi ikke beskæftiger sig med noget af det. 931 00:47:09,400 --> 00:47:12,650 Vi er bare gonna get denne maskinskrevet af brugeren, 932 00:47:12,650 --> 00:47:15,700 og så den anden linje med funky kapitalisering 933 00:47:15,700 --> 00:47:18,550 er, hvad vi ønsker, at vores program til output. 934 00:47:19,790 --> 00:47:22,860 >> Så i stedet for at bruge Appliance eller Run, bruger vi Spaces, 935 00:47:22,860 --> 00:47:25,360 fordi vi har fået Spaces, 936 00:47:25,360 --> 00:47:28,640 og så hvis du fyre ville 937 00:47:28,640 --> 00:47:32,380 få din kode til at se noget som dette, 938 00:47:32,380 --> 00:47:35,930 så jeg har tænkt mig at gemme denne revision 939 00:47:35,930 --> 00:47:38,390 bare så du har fået den kedel plade lige her 940 00:47:38,390 --> 00:47:42,840 der ligner dette, int main (void), intet i det. 941 00:47:44,480 --> 00:47:48,460 Faktisk hvad vi vil gøre, er vi bare slette alt alle sammen. 942 00:47:48,460 --> 00:47:50,330 Vi ønsker en blank tavle, 943 00:47:50,330 --> 00:47:52,470 fordi vi er ikke gonna begynde at skrive kode; 944 00:47:52,470 --> 00:47:55,380 snarere, vi skal nok prøve at skrive nogle pseudokode 945 00:47:55,380 --> 00:47:58,580 som virkelig bare betyder, at vi kommer til at skrive noget, der ikke kode 946 00:47:58,580 --> 00:48:01,010 den slags beskriver, hvad vi ønsker at gøre, 947 00:48:01,010 --> 00:48:05,180 kinda ligesom David gjorde på den første dag i foredrag, 948 00:48:05,180 --> 00:48:08,310 eller jeg gætter på, at var den anden dag i foredrag, da han gjorde det hele sokker demo. 949 00:48:08,310 --> 00:48:10,990 Du fyre huske, at - se de sokker? 950 00:48:10,990 --> 00:48:13,300 Joseph var deroppe slags for at skrive på engelsk? 951 00:48:13,300 --> 00:48:16,300 Så vi skal nok gøre det samme. 952 00:48:16,300 --> 00:48:18,380 >> Så når jeg begynder at skrive pseudokode, 953 00:48:18,380 --> 00:48:22,640 Jeg vil gerne starte med at kigge på, hvad indgangen bliver. 954 00:48:22,640 --> 00:48:24,950 Og jeg giver mig selv en prøve sag, 955 00:48:24,950 --> 00:48:28,780 så som "tak for add!" 956 00:48:35,030 --> 00:48:38,010 Og så vil jeg også skrive hvad jeg vil output til at være, 957 00:48:38,010 --> 00:48:42,210 som i dette tilfælde er noget som dette. 958 00:48:53,790 --> 00:48:56,050 Og den slags giver mig en god, ligesom begyndende sted at tænke over, 959 00:48:56,050 --> 00:48:59,730 "Okay, jeg ønsker at tage linje 1 960 00:48:59,730 --> 00:49:03,560 og jeg ønsker at omdanne det til linje 2, " 961 00:49:03,560 --> 00:49:06,570 og den slags hjælper guide mine tanker. 962 00:49:06,570 --> 00:49:09,990 Dette er et godt sted at starte. 963 00:49:09,990 --> 00:49:12,190 En anden måde at tænke på det også, da vi kinda videre 964 00:49:12,190 --> 00:49:15,020 og som du gør dette i dine egne programmer, er at 965 00:49:15,020 --> 00:49:18,530 tænke lidt ligesom hvad er kant sager til dette? 966 00:49:18,530 --> 00:49:20,740 Hvad er slags de underlige scenarier? 967 00:49:20,740 --> 00:49:23,660 Hvad er de underlige materialer, vi kan få? 968 00:49:23,660 --> 00:49:26,550 Og hvad skal disse udgange se ud? 969 00:49:26,550 --> 00:49:29,670 For eksempel er en underlig input 970 00:49:29,670 --> 00:49:33,200 ville være denne, 971 00:49:33,200 --> 00:49:35,630 skabe absolut intet, 972 00:49:35,630 --> 00:49:37,840 ligesom hvad skal vi afgive i denne sag? 973 00:49:37,840 --> 00:49:40,530 Noget vi ønsker at tænke, også. 974 00:49:40,530 --> 00:49:44,450 >> Så bare som et spørgsmål, 975 00:49:44,450 --> 00:49:46,870 hvad kan vi ønsker at output? 976 00:49:46,870 --> 00:49:50,740 Hvis vi ikke får nogen input overhovedet, hvad skal vores program skal udsende? 977 00:49:53,740 --> 00:49:54,860 >> Ingenting. 978 00:49:54,860 --> 00:49:57,340 Ingenting? Det lyder godt. 979 00:49:57,340 --> 00:49:59,280 Så vi ønsker at sikre, at vi ikke skriver noget ud 980 00:49:59,280 --> 00:50:01,500 hvis vi ikke får noget i. 981 00:50:01,500 --> 00:50:04,320 Cool. Okay. 982 00:50:04,320 --> 00:50:07,370 Så 983 00:50:07,370 --> 00:50:09,380 Jeg har tænkt mig at kalde på et par mennesker, som vi går igennem 984 00:50:09,380 --> 00:50:12,790 og bare finde ud af lidt ligesom, hvad den generelle algoritme er 985 00:50:12,790 --> 00:50:15,250 og vi vil slags begynde at arbejde igennem det her sammen. 986 00:50:16,240 --> 00:50:19,710 >> Så lad os se. Missy. 987 00:50:19,710 --> 00:50:21,220 Hvordan tror du vi ville starte? 988 00:50:21,220 --> 00:50:24,830 Hvad ville være et godt sted at starte her 989 00:50:24,830 --> 00:50:27,900 hvis vi ønsker at transformere, siger, linje 1 990 00:50:27,900 --> 00:50:29,440 på linje 2? 991 00:50:29,440 --> 00:50:32,650 Kan du slags bare forklare mig på engelsk, hvad du tænker? 992 00:50:32,650 --> 00:50:34,770 Må ikke engang bekymre dig om kode. 993 00:50:34,770 --> 00:50:38,250 >> Første ting jeg ville gøre ville være at 994 00:50:38,250 --> 00:50:41,170 form for direkte for brugeren at fortælle dem, hvad du ønsker. 995 00:50:41,170 --> 00:50:44,730 Okay, så, siger, 996 00:50:44,730 --> 00:50:47,450 "Hey, bruger. Jeg vil 997 00:50:47,450 --> 00:50:50,560 en snor "- awesome. 998 00:50:50,560 --> 00:50:52,990 Så lad os skrive det ned. 999 00:50:52,990 --> 00:50:56,140 Spørg brugeren for en streng. 1000 00:50:56,140 --> 00:50:59,270 Det lyder som en god start. 1001 00:51:03,920 --> 00:51:06,460 Ok. 1002 00:51:06,460 --> 00:51:09,750 Lad os spørge Kelly Ren denne gang. 1003 00:51:09,750 --> 00:51:11,580 Hvad ville vi så ønsker at gøre næste? 1004 00:51:11,580 --> 00:51:14,220 Hvad er lidt vores næste -? 1005 00:51:14,220 --> 00:51:18,080 >> Saml deres input og gemme det som en variabel. 1006 00:51:18,080 --> 00:51:20,470 Great. 1007 00:51:20,470 --> 00:51:24,280 Så samle strengen, 1008 00:51:25,450 --> 00:51:27,880 gemme det i en variabel. 1009 00:51:34,840 --> 00:51:36,460 Så er der noget særligt, vi ønsker at gøre her? 1010 00:51:36,460 --> 00:51:39,700 Ønsker vi at kontrollere deres input 1011 00:51:39,700 --> 00:51:42,260 før -? 1012 00:51:42,260 --> 00:51:43,790 >> Yeah. 1013 00:51:43,790 --> 00:51:46,330 Hvad kan vi ønsker at tjekke for? 1014 00:51:46,330 --> 00:51:48,980 >> Nå, du sagde, at vi ikke behøver at kontrollere, om det er et tal, ikke? 1015 00:51:48,980 --> 00:51:52,400 Fordi det vil antage, at det er små bogstaver? 1016 00:51:52,400 --> 00:51:55,650 Yeah. 1017 00:51:56,380 --> 00:51:58,920 >> Så det viser sig, at - ja. 1018 00:51:58,920 --> 00:52:01,850 Så getString er garanteret at returnere os en streng. 1019 00:52:01,850 --> 00:52:05,050 Det kommer ikke til at returnere et nummer til os eller noget i den retning. 1020 00:52:05,050 --> 00:52:09,140 Der kan være cifret karakterer inden for denne streng, selv om. 1021 00:52:09,140 --> 00:52:13,460 Og dem, kan vi ignorere, som vi gjorde kapitalisering. 1022 00:52:13,460 --> 00:52:16,620 Men en tom streng er helt fint, 1023 00:52:16,620 --> 00:52:19,900 så tilfælde her på linie 4 og 5, 1024 00:52:19,900 --> 00:52:22,020 højre, hvor der ikke er nogen input, 1025 00:52:22,020 --> 00:52:25,190 og vi har lagt noget som vores output. 1026 00:52:25,190 --> 00:52:28,730 Vi behøver ikke at bekymre sig om at sikre, at der er noget i strengen 1027 00:52:28,730 --> 00:52:31,840 eller at strengen er mindst 4 tegn; 1028 00:52:31,840 --> 00:52:34,190 noget er fint. 1029 00:52:34,190 --> 00:52:38,270 Så dette står i kontrast, for eksempel med ligesom de øre programmer, som du skrev 1030 00:52:38,270 --> 00:52:42,340 hvor man var nødt til at sikre, at du fik ikke-negative tal; 1031 00:52:42,340 --> 00:52:46,430 De var nødt til at sørge for, at du var at få det korrekte antal dage i en måned. 1032 00:52:46,430 --> 00:52:49,630 Og hvordan laver det? 1033 00:52:49,630 --> 00:52:51,470 Hvordan ville du gøre denne test? 1034 00:52:51,470 --> 00:52:54,090 Hvad gjorde det kræver at du bruger? 1035 00:52:54,090 --> 00:52:55,650 >> Gør-mens sløjfer. 1036 00:52:55,650 --> 00:53:00,840 Do-while-løkker, andre former for løkker, også, ja. 1037 00:53:02,190 --> 00:53:04,520 Så viser det sig, at vi ikke behøver at anvende en løkke i dette tilfælde, 1038 00:53:04,520 --> 00:53:07,360 når vi beder om en streng, der er lidt rart. 1039 00:53:08,280 --> 00:53:10,620 >> Okay, vi går videre. 1040 00:53:12,410 --> 00:53:14,270 Så, Stella. 1041 00:53:14,270 --> 00:53:17,530 Kan du fortælle os lidt om, hvad vi skal gøre nu? 1042 00:53:17,530 --> 00:53:20,270 Så nu har vi fået snoren, så har vi det gemt i en variabel; 1043 00:53:20,270 --> 00:53:23,360 Hvad skal vi gøre med snor? 1044 00:53:26,790 --> 00:53:33,530 >> Vi er nødt til - 1045 00:53:33,530 --> 00:53:36,550 identificere 2 - 1046 00:53:36,550 --> 00:53:39,290 Ja, bare sige det på engelsk, det er awesome. 1047 00:53:39,290 --> 00:53:42,670 >> Hvilke [uhørlige] hovedstæder - eller store bogstaver. 1048 00:53:44,420 --> 00:53:48,130 Ja, så du ville identificere, hvilke der er store og små bogstaver. 1049 00:53:50,020 --> 00:53:54,180 Vi kan ikke store eller små bogstaver dem, indtil vi har identificeret hvilke. 1050 00:54:03,790 --> 00:54:06,350 Så vi vil sætte det ind her. 1051 00:54:06,350 --> 00:54:10,210 >> Så bare tænker på denne proces, 1052 00:54:10,210 --> 00:54:13,200 hvordan gør vi denne identifikation? 1053 00:54:13,200 --> 00:54:15,050 Kender du, Dan? 1054 00:54:15,050 --> 00:54:18,120 Kind af, hvad vi - hvad værktøj, vi er nødt til at bruge ud af vores værktøjskasse? 1055 00:54:18,120 --> 00:54:22,500 >> Jeg ville sætte det i en eller anden måde ind som en matrix eller hver linje 1056 00:54:22,500 --> 00:54:24,240 er sin egen lille boks, 1057 00:54:24,240 --> 00:54:27,240 og derefter store bogstaver den derfra eller ej. 1058 00:54:27,240 --> 00:54:30,440 Okay, så ét værktøj, vi kan bruge, er et array. 1059 00:54:30,440 --> 00:54:33,760 Hvad har vi til at se på i strengen, 1060 00:54:33,760 --> 00:54:36,680 Men at finde ud af - vi var nødt til at se på de tegn. 1061 00:54:36,680 --> 00:54:40,890 >> Så du er nødt til at se på længden af ​​strengen? 1062 00:54:40,890 --> 00:54:43,880 Ja, så en del af dette er at få længden af ​​strengen. 1063 00:54:50,450 --> 00:54:54,150 Bare af nysgerrighed, hvad skal vi bruge til at få længden af ​​en streng? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Ja, strlen, vi kalder dette "strlen" 1066 00:55:04,180 --> 00:55:08,620 Alle disse streng-funktioner, så strlen er en funktion, 1067 00:55:08,620 --> 00:55:10,670 og det er super praktisk, fordi vi kan bruge det til bare at sige, 1068 00:55:10,670 --> 00:55:13,430 Hey, strlen: Her er en streng, fortælle mig, hvor lang tid det er. 1069 00:55:13,430 --> 00:55:17,350 I foredraget i dag, David talte en masse om, hvordan strlen gennemføres, 1070 00:55:17,350 --> 00:55:20,370 hvad der rent faktisk foregår bag kulisserne. 1071 00:55:20,370 --> 00:55:25,450 Men dette er en af ​​de meget super handy dem. 1072 00:55:25,450 --> 00:55:29,170 Der er andre dem, er også i strengen bibliotek, 1073 00:55:29,170 --> 00:55:34,690 såsom strcmp, som staves "strcmp", 1074 00:55:34,690 --> 00:55:38,010 som anvendes til at sammenligne strenge til hinanden. 1075 00:55:41,220 --> 00:55:45,020 Andre dem, du vil bruge som strstr, 1076 00:55:45,020 --> 00:55:48,770 hvilket er godt for at finde sub strygere og så videre. 1077 00:55:48,770 --> 00:55:53,380 For det meste, alt de starter med str og derefter gå videre til noget andet. 1078 00:55:53,380 --> 00:55:57,080 Grunden de faktisk ikke stave dem som snor og så videre 1079 00:55:57,080 --> 00:56:00,260 skyldes igen ligesom de tidlige dage af C, 1080 00:56:00,260 --> 00:56:04,100 når folk blev først skriftligt og alt det, 1081 00:56:04,100 --> 00:56:07,580 de havde begrænsninger på det antal tegn, som du kan bruge 1082 00:56:07,580 --> 00:56:09,950 for funktionsnavne og variable navne, 1083 00:56:09,950 --> 00:56:12,620 så alt er ligesom super kondenseret. 1084 00:56:12,620 --> 00:56:15,750 Men når som helst du ser noget, der begynder med str, 1085 00:56:15,750 --> 00:56:18,600 der typisk betyder det har noget at gøre med en snor. 1086 00:56:20,990 --> 00:56:23,350 >> Okay, så du er nødt til at få længden af ​​strengen, 1087 00:56:23,350 --> 00:56:27,110 og så, hvad vi gør med de tegn? 1088 00:56:27,110 --> 00:56:29,020 Kender du, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Jeg har ingen idé, jeg prøvede at regne det ud. 1090 00:56:32,410 --> 00:56:35,410 Jeg ved virkelig ikke, - jeg ville ønske der var en måde at - 1091 00:56:35,410 --> 00:56:38,990 Jeg mener, ville jeg tror måske vi kunne gøre noget med odds og udligner, 1092 00:56:38,990 --> 00:56:40,860 men jeg kender ikke nogen funktion som. 1093 00:56:40,860 --> 00:56:42,240 Yeah. 1094 00:56:43,160 --> 00:56:45,200 >> Men det - det ville ikke nødvendigvis arbejde, 1095 00:56:45,200 --> 00:56:48,690 fordi så ville du få rum at være - 1096 00:56:48,690 --> 00:56:51,130 ville du nødt til at have plads til at få tips om hvordan - 1097 00:56:51,130 --> 00:56:54,310 Okay. 1098 00:56:54,310 --> 00:56:56,490 >> Jeg ved det ikke - jeg er lidt tabt på dette tidspunkt. 1099 00:56:56,490 --> 00:56:58,120 Ja - nej, nej, nej, disse er gode punkter. 1100 00:56:58,120 --> 00:57:00,420 Så hvad vi skal gøre, er, ligesom Sam sagde, 1101 00:57:00,420 --> 00:57:02,970 vi er nødt til at spore, hvilke breve er ulige bogstaver, 1102 00:57:02,970 --> 00:57:05,540 og hvilke der er de lige bogstaver. 1103 00:57:06,650 --> 00:57:09,090 Men vi ønsker at sikre, at vi ikke bare at kigge 1104 00:57:09,090 --> 00:57:12,110 på lige og ulige 1105 00:57:12,110 --> 00:57:14,030 indeks i strengen, 1106 00:57:14,030 --> 00:57:17,660 men ser på de ulige og lige bogstaver i strengen, 1107 00:57:17,660 --> 00:57:20,190 så vi er nødt til at kinda have denne skelnen mellem 1108 00:57:20,190 --> 00:57:25,190 breve - ligesom hvad er faktisk A, B, C, D, eller så videre, 1109 00:57:25,190 --> 00:57:29,090 og hvad tingene er ikke bogstaver, men stadig i vores streng. 1110 00:57:29,090 --> 00:57:32,390 For eksempel her, er ligesom dette udråbstegn ikke et brev, 1111 00:57:32,390 --> 00:57:36,060 men det er stadig en del af vores streng, det er stadig en char. 1112 00:57:36,060 --> 00:57:38,820 Ligeledes alle disse rum - 1113 00:57:38,820 --> 00:57:41,710 Det giver ikke mening at kapitalisere et rum, ikke? 1114 00:57:41,710 --> 00:57:46,160 Så vi ønsker at sikre, at vi på en måde springe dem 1115 00:57:46,160 --> 00:57:49,410 mens der stadig sporing odds og udligner. 1116 00:57:50,900 --> 00:57:54,990 >> Så slags i vores programmering værktøjskasse 1117 00:57:54,990 --> 00:57:57,270 hidtil, hvis du vil, 1118 00:57:57,270 --> 00:58:01,310 Vi har en række forskellige værktøjer, som vi har talt om. 1119 00:58:01,310 --> 00:58:04,640 Så man, for eksempel, er variable, 1120 00:58:04,640 --> 00:58:07,120 ligesom vi har talt om her. 1121 00:58:07,120 --> 00:58:10,730 Et andet værktøj, vi har talt om er funktioner. 1122 00:58:10,730 --> 00:58:15,800 Så vi har talt om variabler i vores pseudokode op her 1123 00:58:15,800 --> 00:58:19,760 som hvad vi vil bruge til at gemme vores streng. 1124 00:58:19,760 --> 00:58:24,630 Vi har talt om funktioner til at få længden af ​​en streng, ligesom strlen. 1125 00:58:28,510 --> 00:58:31,170 Vi har talt om noget andet, og vi har talt om det 1126 00:58:31,170 --> 00:58:34,850 for en masse tidligere i afsnittet i dag: sløjfer. 1127 00:58:39,390 --> 00:58:42,030 >> Hvad tror du fyre tror om at bruge en løkke i dette program? 1128 00:58:42,030 --> 00:58:44,110 Jared, hvad tror du? 1129 00:58:47,150 --> 00:58:50,030 Ville vi bruge en løkke i dette program? 1130 00:58:50,030 --> 00:58:52,500 >> Sandsynligvis ikke, nej, fordi du ikke behøver at gå igennem det mere end én gang. 1131 00:58:52,500 --> 00:58:55,260 Okay, du ikke behøver at gå igennem hvad mere end én gang? 1132 00:58:55,260 --> 00:58:57,190 >> Hele strengen. 1133 00:58:57,190 --> 00:59:00,660 Højre, så du ikke behøver at gå gennem strengen hele én gang. 1134 00:59:00,660 --> 00:59:03,330 Beklager, der gjorde absolut ingen mening! 1135 00:59:03,330 --> 00:59:06,360 Du behøver ikke at gå igennem hele strengen mere end én gang. 1136 00:59:06,360 --> 00:59:08,660 Okay. 1137 00:59:09,790 --> 00:59:11,920 Hvad mener du? 1138 00:59:11,920 --> 00:59:14,110 >> Jeg tror, ​​at det er bedre at bruge dem 1139 00:59:14,110 --> 00:59:16,640 så vi kan gøre ligesom kapitalisere mens 1140 00:59:16,640 --> 00:59:19,750 placeringen af ​​det [hørbar] nummer. 1141 00:59:19,750 --> 00:59:22,940 Store, og så udnytte hvad? 1142 00:59:22,940 --> 00:59:25,200 Okay, så vi siger, at 1143 00:59:25,200 --> 00:59:28,130 Vi skal bruge en løkke fordi vi ønsker at 1144 00:59:28,130 --> 00:59:32,550 et bogstav, mens det ikke er et tal. 1145 00:59:35,130 --> 00:59:37,140 Så - undskyld, har du vil tilføje? 1146 00:59:37,140 --> 00:59:39,340 >> Jeg ville sige, at den måde du behandler strengen 1147 00:59:39,340 --> 00:59:42,290 og det [uhørlig] adskiller [uhørligt] på tegnene? 1148 00:59:42,290 --> 00:59:43,710 Yeah. 1149 00:59:43,710 --> 00:59:45,850 >> Og så kan vi tildele numrene til - 1150 00:59:45,850 --> 00:59:47,780 eller baseret på placeringen af ​​bogstaverne i strengen? 1151 00:59:47,780 --> 00:59:49,720 Yeah. 1152 00:59:49,720 --> 00:59:53,640 >> Og fastslå, om det er lige eller ulige og for at kapitalisere selve brevet 1153 00:59:53,640 --> 00:59:57,750 mens placeringen af ​​brevet er [uhørligt] - undskyld. 1154 00:59:57,750 --> 01:00:00,150 Great. 1155 01:00:00,150 --> 01:00:03,430 >> Så bare et resumé. 1156 01:00:03,430 --> 01:00:05,840 Kan du minder mig om dit navn igen - Undskyld. 1157 01:00:05,840 --> 01:00:06,900 >> Charlotte. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, okay. 1159 01:00:08,490 --> 01:00:11,130 Så hvad Charlotte siger, 1160 01:00:11,130 --> 01:00:14,950 som er helt rigtigt - gosh, dette kan lide at auto led på mig - 1161 01:00:14,950 --> 01:00:17,770 er, at hvis vi ser på en snor 1162 01:00:17,770 --> 01:00:19,160 som denne i toppen - 1163 01:00:19,160 --> 01:00:21,590 "Thanks for the add" - 1164 01:00:21,590 --> 01:00:24,790 som en sekvens af tegn 1165 01:00:24,790 --> 01:00:29,010 hvor er i position 0, 1166 01:00:29,010 --> 01:00:32,260 h er i position 1. 1167 01:00:32,260 --> 01:00:36,880 A er på 2, så vi fik 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 rummet er i position 6. 1169 01:00:42,380 --> 01:00:45,300 Betragtninger - hvad er placeringen af ​​f? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 O? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 Og så har vi 10, og så jeg kan ikke rigtig skrive det uden det 1174 01:00:54,340 --> 01:00:57,430 kinda få rodet på skærmen. 1175 01:00:57,430 --> 01:01:02,340 Men det er faktisk, hvordan vi kan tale om strenge i hukommelsen. 1176 01:01:02,340 --> 01:01:04,660 Er det en streng 1177 01:01:04,660 --> 01:01:07,920 er en sekvens af tegn, 1178 01:01:07,920 --> 01:01:12,430 og når vi refererer til individuel karakter i en streng, 1179 01:01:12,430 --> 01:01:15,280 vi ofte gør det ved at henvise til, at karakter position 1180 01:01:15,280 --> 01:01:17,620 i strengen, 1181 01:01:17,620 --> 01:01:19,910 sandsynligvis den samme måde, som vi taler omkring september 1182 01:01:19,910 --> 01:01:22,870 er den niende måned i året 1183 01:01:22,870 --> 01:01:27,730 eller mandag er den første dag i ugen. 1184 01:01:29,280 --> 01:01:33,070 Så det giver os en måde at 1185 01:01:33,070 --> 01:01:37,030 finde ud af, hvilke der er ulige versus selv 1186 01:01:37,030 --> 01:01:39,540 fordi du kan se her, 1187 01:01:39,540 --> 01:01:43,640 hvis vi matche det op med denne T, 1188 01:01:46,310 --> 01:01:49,360 du kan se, at alle de aktiverede dem 1189 01:01:49,360 --> 01:01:53,040 er på lige pladser, 1190 01:01:53,040 --> 01:01:55,880 i det mindste for det første ord, 1191 01:01:55,880 --> 01:01:59,080 og derefter ting bliver smidt ud, når vi rammer det rum, 1192 01:01:59,080 --> 01:02:02,460 fordi vi ikke tæller dette rum som et brev, 1193 01:02:02,460 --> 01:02:05,150 så det er som om, vi startede 1194 01:02:05,150 --> 01:02:08,930 og gik 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 space, 6, 7, 8, rummet, 1196 01:02:12,600 --> 01:02:16,440 9, og derefter 10, 11, 12 og så videre. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, så vi vil helt sikkert ønsker at bruge en form for loop 1198 01:02:22,910 --> 01:02:27,760 at gå over hver af figurerne efter tur. 1199 01:02:31,330 --> 01:02:34,580 Så på dette punkt, 1200 01:02:36,490 --> 01:02:38,360 vi vil komme tilbage til vores gamle pseudokode her. 1201 01:02:40,970 --> 01:02:42,650 Som en del af denne identifikation af hvilke, 1202 01:02:42,650 --> 01:02:45,350 er store og hvilke der er små bogstaver, 1203 01:02:45,350 --> 01:02:48,340 vi ønsker at gøre dette i en eller anden form for løkke. 1204 01:02:51,080 --> 01:02:53,390 Loop, colon. 1205 01:02:55,070 --> 01:03:01,220 Hvilken slags løkke, ud af de typer af sløjfer, vi har, 1206 01:03:01,220 --> 01:03:03,670 synes at være en god at bruge i denne sag? 1207 01:03:03,670 --> 01:03:05,610 >> Jeg tænkte for-løkken. 1208 01:03:05,610 --> 01:03:07,500 Og hvorfor tænker du på for-løkke? 1209 01:03:07,500 --> 01:03:10,000 >> Fordi det starter ved nul, og derefter 1210 01:03:10,000 --> 01:03:13,000 når vi kommer til længden af ​​strengen, 1211 01:03:13,000 --> 01:03:16,170 og derefter hver iteration kan du [uhørlig], også? 1212 01:03:16,170 --> 01:03:18,260 Ja, præcis. 1213 01:03:18,260 --> 01:03:21,490 Så, ud af de forskellige valg af sløjfer, 1214 01:03:21,490 --> 01:03:25,350 vi har for løkker, mens sløjfer og gør-mens sløjfer. 1215 01:03:25,350 --> 01:03:28,550 Når en for-løkke er særligt nyttig 1216 01:03:28,550 --> 01:03:32,120 er, når du ønsker at vide 1217 01:03:32,120 --> 01:03:34,940 slags, hvor du er i sløjfen, 1218 01:03:34,940 --> 01:03:38,520 hvor mange gange løkken er udført indtil videre. 1219 01:03:38,520 --> 01:03:42,490 Hvilket er præcis, hvad vi ønsker at vide i denne situation, 1220 01:03:42,490 --> 01:03:44,640 ligesom Kelly sagde, 1221 01:03:44,640 --> 01:03:47,400 baseret ud af Charlottes tidligere kommentar, at vi ønsker at kende positionen 1222 01:03:47,400 --> 01:03:49,900 af tegn i strengen, 1223 01:03:49,900 --> 01:03:51,750 og for-løkken vil give os netop det, 1224 01:03:51,750 --> 01:03:54,680 for hvis vi begynder slags ser tilbage på vores streng, 1225 01:03:54,680 --> 01:03:57,140 hvis vi starter vores for-løkke ved 0, 1226 01:03:57,140 --> 01:04:00,350 og vi går op gennem længden af ​​hele strengen, 1227 01:04:00,350 --> 01:04:04,740 så vi kan knytte bogstavet T 1228 01:04:04,740 --> 01:04:08,110 med 0 i vores for loop, 1229 01:04:09,950 --> 01:04:13,080 bogstavet H med 1 i vores for loop, og så videre, 1230 01:04:13,080 --> 01:04:16,600 gå hele vejen gennem enden af ​​strengen. 1231 01:04:18,810 --> 01:04:21,890 >> Så lad os starte kodning dette bare en lille smule 1232 01:04:21,890 --> 01:04:24,930 Bare så du fyre få en fornemmelse for, hvad det ligner. 1233 01:04:24,930 --> 01:04:27,980 Jeg har tænkt mig at gemme det, 1234 01:04:27,980 --> 01:04:31,230 så vi har fået vores pseudo-kode i her, 1235 01:04:33,490 --> 01:04:38,120 og jeg har tænkt mig at slette alt. 1236 01:04:38,120 --> 01:04:42,210 Så jeg har en blank tavle. 1237 01:04:42,210 --> 01:04:45,910 Jeg vil starte med at skrive int main (void) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Jeg vil sætte return 0 i 1240 01:04:51,380 --> 01:04:53,320 og derefter}. 1241 01:04:53,320 --> 01:04:56,130 Så normalt når jeg begynder at programmere, det er hvad jeg starte med. 1242 01:04:56,130 --> 01:04:59,370 Jeg vil gemme den, så du fyre har det. 1243 01:05:06,290 --> 01:05:08,440 Så en af ​​de første ting, vi talte om, var 1244 01:05:08,440 --> 01:05:10,920 få input fra brugeren 1245 01:05:10,920 --> 01:05:13,740 og lagre den i en streng. 1246 01:05:13,740 --> 01:05:16,420 Hvordan får vi input fra en bruger? 1247 01:05:16,420 --> 01:05:19,640 >> GetString. 1248 01:05:19,640 --> 01:05:21,870 GetString, okay. 1249 01:05:23,150 --> 01:05:26,820 Så hvis jeg skriver GetString () 1250 01:05:26,820 --> 01:05:32,150 og et semikolon. 1251 01:05:32,150 --> 01:05:36,630 Lad os prøve at køre dette, vil denne kørsel, først og fremmest? 1252 01:05:36,630 --> 01:05:38,430 Og hvorfor vil ikke dette køre? 1253 01:05:38,430 --> 01:05:40,090 >> Du er nødt til at deklarere variablen. 1254 01:05:40,090 --> 01:05:43,040 Jeg er nødt til at erklære en variabel. Okay. 1255 01:05:43,040 --> 01:05:45,700 >> Så hvordan gør jeg det? 1256 01:05:45,700 --> 01:05:48,400 Har du noget imod at skrive noget, at dele det? 1257 01:05:48,400 --> 01:05:51,270 Og så kan vi trække det op. 1258 01:05:51,270 --> 01:05:54,630 Lad os se, Dan, højre, okay. 1259 01:05:54,630 --> 01:05:59,100 Eller Daniel. Kopier det i, string input = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Awesome. 1261 01:06:01,340 --> 01:06:02,890 Vil dette køre? 1262 01:06:02,890 --> 01:06:05,210 Lad os prøve det. 1263 01:06:05,210 --> 01:06:08,890 Hit run, uploading kildekode, bygning, der opstod en fejl. 1264 01:06:08,890 --> 01:06:11,040 Okay. 1265 01:06:11,040 --> 01:06:14,950 Så hvad sker der her? 1266 01:06:14,950 --> 01:06:18,700 Anvendelse af sort identifikator "streng". 1267 01:06:18,700 --> 01:06:22,840 >> Vi er nødt til at medtage bibliotekerne? 1268 01:06:22,840 --> 01:06:25,130 Ja, så Dans sige, at vi er nødt til at medtage bibliotekerne. 1269 01:06:25,130 --> 01:06:28,270 Er det hvad du ville sige, Stella? Awesome. 1270 01:06:29,450 --> 01:06:31,430 Det er fedt, så Stella, kan du 1271 01:06:31,430 --> 01:06:34,800 kopiere denne kode ud af Daniels Space? 1272 01:06:34,800 --> 01:06:37,580 Hvis du klikker på Daniel Roland Ki, kopiere den, 1273 01:06:37,580 --> 01:06:41,360 og derefter vil du sætte include linje i, og derefter gemme det ud? 1274 01:06:46,580 --> 01:06:49,360 Lad mig vide, når du er klar. 1275 01:06:57,160 --> 01:06:59,490 Så dette omfatter syntaks er også slags funky; 1276 01:06:59,490 --> 01:07:02,210 Der er ligesom at hash tag, 1277 01:07:02,210 --> 01:07:05,760 Og der er omfatter, og så er der disse vinkelbeslagene. 1278 01:07:12,490 --> 01:07:15,360 Kan du huske, hvordan det virker, eller skal jeg sætte det op på denne kode lige her? 1279 01:07:15,360 --> 01:07:17,850 >> Jeg er god. 1280 01:07:17,850 --> 01:07:19,810 Okay. 1281 01:07:19,810 --> 01:07:23,260 >> Jeg trykte det - jeg var ikke sikker på hvilket bibliotek, selv om. 1282 01:07:23,260 --> 01:07:25,570 Oh, okay - ja, så er det CS50 bibliotek. 1283 01:07:25,570 --> 01:07:27,660 >> Åh, jeg sætter stdio bibliotek. 1284 01:07:27,660 --> 01:07:30,950 >> Oh, fik det - ja, nej, that's - 1285 01:07:30,950 --> 01:07:34,380 så viser det sig, at strengen er faktisk noget, der er særligt for CS50. 1286 01:07:36,590 --> 01:07:41,240 Der er faktisk ikke en sand streng type 1287 01:07:41,240 --> 01:07:45,000 fordi lige her, er streng i type stilling, - 1288 01:07:45,000 --> 01:07:49,140 vi erklære en variabel kaldet input af typen string - 1289 01:07:49,140 --> 01:07:53,320 og vi sætter indersiden af ​​input 1290 01:07:53,320 --> 01:07:58,440 den værdi, der bliver returneret til os: produktionen af ​​denne GetString funktion opkald. 1291 01:07:58,440 --> 01:08:02,910 Du kan fortælle det er en funktion opkald, fordi det har fået parenteserne, ligesom printf gør, 1292 01:08:02,910 --> 01:08:05,920 ligesom strlen gør. 1293 01:08:05,920 --> 01:08:09,860 Men snor er faktisk ikke en reel form 1294 01:08:09,860 --> 01:08:11,760 i C-sprog. 1295 01:08:11,760 --> 01:08:15,710 Vi har gjort det til en type, og vi vil tage omkring mere, hvad det egentlig er 1296 01:08:15,710 --> 01:08:19,000 i C, der, fordi er en måde at arbejde med strygere; 1297 01:08:19,000 --> 01:08:22,479 vi lige har gjort noget for at gøre det ser lidt pænere. 1298 01:08:22,479 --> 01:08:25,240 >> Så her går vi. 1299 01:08:25,240 --> 01:08:28,439 Her er Stellas kode. 1300 01:08:28,439 --> 01:08:32,470 Det har fået den # include . 1301 01:08:32,470 --> 01:08:36,390 Andre mennesker vil kalde dette som en hash indeholde nogle gange eller en skarp omfatter. 1302 01:08:36,390 --> 01:08:39,580 Nu kan vi begynde det, kør det, 1303 01:08:39,580 --> 01:08:43,649 og vi stadig får en fejl. 1304 01:08:43,649 --> 01:08:46,290 Lad os se hvad der sker. 1305 01:08:48,069 --> 01:08:50,569 "Ubrugte variabel 'input'." 1306 01:08:50,569 --> 01:08:53,350 Okay, så det er cool, det er cool. 1307 01:08:53,350 --> 01:08:55,859 Jeg mener, det er ikke rigtig cool, 1308 01:08:55,859 --> 01:08:57,930 fordi vi får en fejl, og det er ikke kører, 1309 01:08:57,930 --> 01:09:00,410 men hvad dette siger er, at 1310 01:09:00,410 --> 01:09:03,130 Vi har ikke brugt vores variabel, der giver mening. 1311 01:09:03,130 --> 01:09:06,090 Vi har ikke forsøgt at gøre noget med det. 1312 01:09:07,819 --> 01:09:10,490 Dette er en måde, 1313 01:09:10,490 --> 01:09:14,170 Klang forsøger at hjælpe os med at sikre, at vi ikke bare ved at bruge variabler 1314 01:09:14,170 --> 01:09:18,819 og derefter uforvarende kalde dem noget andet senere i vores kode, 1315 01:09:18,819 --> 01:09:21,649 hjælper os med at undgå fejl på den måde. 1316 01:09:23,130 --> 01:09:28,810 >> Okay, så vi har fået input fra brugeren, 1317 01:09:28,810 --> 01:09:31,910 vi gemt det i en variabel. 1318 01:09:31,910 --> 01:09:34,569 Det næste skridt var at så 1319 01:09:34,569 --> 01:09:37,609 begynde at kigge på alle tegn i strengen 1320 01:09:37,609 --> 01:09:41,830 og identificere, hvilke der skal være store bogstaver 1321 01:09:41,830 --> 01:09:44,600 og hvilke der skal være små bogstaver. 1322 01:09:44,600 --> 01:09:49,439 Og ligesom Kelly og Charlotte opdraget, 1323 01:09:49,439 --> 01:09:52,340 Vi gør dette ved hjælp af en for-løkke. 1324 01:09:52,340 --> 01:09:55,520 Så der nogen huske syntaksen for en for-løkke 1325 01:09:55,520 --> 01:09:58,670 og vil gerne tage et stik på bare at skrive 1326 01:09:58,670 --> 01:10:03,170 den første linje i for-løkken, bare for lidt? 1327 01:10:05,740 --> 01:10:07,330 Kelly, du vil give det en chance? 1328 01:10:07,330 --> 01:10:10,300 >> Yeah, så du er nødt til at initialisere først, 1329 01:10:10,300 --> 01:10:13,170 så jeg satte i = 0, 1330 01:10:13,170 --> 01:10:15,390 og så gjorde jeg i 01:10:18,570 Er det i dit Space - kan jeg trække det op? 1332 01:10:18,570 --> 01:10:21,330 >> Ja, jeg skruet op en lille smule, men ja. 1333 01:10:21,330 --> 01:10:24,180 >> Okay, lad os trække det op. 1334 01:10:24,180 --> 01:10:26,490 Awesome. 1335 01:10:26,490 --> 01:10:29,510 >> Men så jeg vidste ikke, om du havde det - 1336 01:10:29,510 --> 01:10:32,180 Ja, okay. 1337 01:10:33,020 --> 01:10:36,030 Så her er hvad Kellys fik: lad os se på det hurtigt. 1338 01:10:36,030 --> 01:10:40,290 Så hun er inkluderet i CS50 biblioteket øverst. 1339 01:10:40,290 --> 01:10:44,790 Hun er inkluderet standard IO-biblioteket i toppen, 1340 01:10:45,550 --> 01:10:48,990 og standard IO har funktioner som printf, 1341 01:10:48,990 --> 01:10:51,690 så hvis du nogensinde ønsker at bruge printf, du har brug for denne linje. 1342 01:10:53,060 --> 01:10:56,140 Og så hun omfattede strengen bibliotek, 1343 01:10:56,140 --> 01:10:58,200 som vi får brug for, 1344 01:10:58,200 --> 01:11:01,010 fordi strengen biblioteket har strlen funktion, 1345 01:11:01,010 --> 01:11:04,320 som vi vil komme til i bare en smule. 1346 01:11:04,320 --> 01:11:07,560 Så hvis vi ser på, hvad Kelly har gjort her, 1347 01:11:07,560 --> 01:11:10,260 kan du gå os gennem hvad du gjorde? 1348 01:11:10,260 --> 01:11:13,600 >> Ja, så - jeg mener, jeg har fejl, så - 1349 01:11:13,600 --> 01:11:15,380 Ja, nej, det er - 1350 01:11:15,380 --> 01:11:18,580 >> Så jeg ville kalde den streng, som jeg fik bare "streng". 1351 01:11:18,580 --> 01:11:22,230 Jeg ønskede at udskrive strengen 1352 01:11:22,230 --> 01:11:25,640 og så vil jeg - 1353 01:11:27,450 --> 01:11:30,930 Jeg ville gerne sætte strengen som ligesom et array af hvert tegn 1354 01:11:30,930 --> 01:11:33,170 være anderledes [uhørlig], right? 1355 01:11:33,170 --> 01:11:38,080 Og så ville jeg starte på position 0 1356 01:11:38,080 --> 01:11:40,630 og derefter hver 2 rum, 1357 01:11:40,630 --> 01:11:42,580 Jeg skulle til at kapitalisere, 1358 01:11:42,580 --> 01:11:45,680 så jeg lige har beskrevet det som 23, fordi jeg søgte på den ASCII-tabellen. 1359 01:11:45,680 --> 01:11:48,730 Så det er hvad jeg tænkte - jeg ved, det er ikke rigtigt. 1360 01:11:48,730 --> 01:11:50,920 >> Fik det, så dette er en god start. 1361 01:11:50,920 --> 01:11:54,120 Jeg tror en masse af rammerne er på plads her. 1362 01:11:54,120 --> 01:11:57,500 Lad os gå igennem slags linje for linje og se hvad der sker. 1363 01:11:57,500 --> 01:12:01,040 Så den måde jeg kan lide at gøre dette på er bare starte med at kompilere koden 1364 01:12:01,040 --> 01:12:04,300 og lade compileren fortælle mig lige hvad er der galt med min kode, 1365 01:12:04,300 --> 01:12:07,450 fordi compileren er rigtig god til at fortælle dig hvad der er galt med din kode. 1366 01:12:09,790 --> 01:12:12,780 Så hvis vi spiller det, bygge, og det bygger ikke. 1367 01:12:12,780 --> 01:12:14,860 Det siger, at der var en fejl, 1368 01:12:14,860 --> 01:12:17,320 så hvis vi rulle ned og se på den første fejl, 1369 01:12:17,320 --> 01:12:20,960 det sagde - 1370 01:12:20,960 --> 01:12:22,040 Vi rulle tilbage op til toppen, 1371 01:12:22,040 --> 01:12:26,070 kan vi se der er 5 fejl, der opstår hernede i bunden. 1372 01:12:26,070 --> 01:12:30,180 Ups, er der virkelig afskåret. 1373 01:12:31,810 --> 01:12:35,790 Jeg gætter på, at der bare ikke vil få nogen bedre. 1374 01:12:36,970 --> 01:12:38,500 >> Her går vi. 1375 01:12:39,790 --> 01:12:42,530 Så der er 5 i alt genererede fejl. 1376 01:12:42,530 --> 01:12:45,140 Her kan jeg kun se de første 2, 1377 01:12:45,140 --> 01:12:49,100 så jeg kan flytte denne op en lille smule og derefter slags rulle op. 1378 01:12:49,100 --> 01:12:53,220 Dette er den kommando, der blev kørt at kompilere koden, 1379 01:12:53,220 --> 01:12:59,030 og derefter den første fejl var i file.c lige her: 1380 01:12:59,030 --> 01:13:03,300 "Forventede identificere eller '('", og det var på denne linje 1381 01:13:03,300 --> 01:13:06,680 hvor vi sagde string = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Du kan se lige her, at det var på linje 8 i file.c, 1383 01:13:12,920 --> 01:13:17,230 og så jeg tror, ​​at det er tegn 12 - det er fejlen. 1384 01:13:17,230 --> 01:13:20,390 Så hvad der går galt på linje 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Du skal bare kalde det, ligesom, et brev eller noget, 1386 01:13:22,810 --> 01:13:24,400 ligesom snor s eller noget? 1387 01:13:24,400 --> 01:13:28,250 Ja, så viser det sig, at disse særlige type navne, 1388 01:13:28,250 --> 01:13:31,770 så string, int, char, kort, 1389 01:13:31,770 --> 01:13:35,740 de er alle specielle nøgleord, 1390 01:13:35,740 --> 01:13:38,940 og du kan faktisk ikke bruge dem som navne på dine variabler, 1391 01:13:38,940 --> 01:13:41,430 fordi compileren ser på det og siger, 1392 01:13:41,430 --> 01:13:43,680 "Åh, jeg ved det er en type," 1393 01:13:43,680 --> 01:13:46,530 så du kan faktisk ikke har en streng variabel kaldet streng, 1394 01:13:46,530 --> 01:13:50,800 ligesom jeg forsøger at gøre her, og dette vil ikke virke. 1395 01:13:52,610 --> 01:13:58,250 Men i stedet, kan vi kalde det noget som er eller st eller str. 1396 01:13:58,250 --> 01:14:01,540 Vi kunne heller ikke kalde det int. 1397 01:14:01,540 --> 01:14:03,740 Vi kan ikke have en streng kaldet int. 1398 01:14:03,740 --> 01:14:06,740 Vi kan ikke have en streng kaldet char, ingen af ​​dem vil arbejde. 1399 01:14:06,740 --> 01:14:09,420 >> Så vi vil bare kalde det s for tiden. 1400 01:14:10,630 --> 01:14:13,170 Awesome. 1401 01:14:13,170 --> 01:14:17,500 Så hvad næste der sker i denne linje? 1402 01:14:21,390 --> 01:14:24,350 String - denne linje ser temmelig godt? 1403 01:14:24,350 --> 01:14:27,830 Lad os give det en anden prøve, lad os køre den. 1404 01:14:27,830 --> 01:14:30,360 Okay, så vi stadig få fejl. 1405 01:14:30,360 --> 01:14:32,080 Denne gang, vi er ned til 4 fejl. 1406 01:14:32,080 --> 01:14:34,350 Så vi fik en af ​​dem. 1407 01:14:34,350 --> 01:14:36,130 Lad os gå op. 1408 01:14:36,130 --> 01:14:38,890 "Uventet typenavn" streng ": forventet udtryk," ja? 1409 01:14:38,890 --> 01:14:41,780 >> Ja, det er fordi jeg forsøgte at navngive strengen. 1410 01:14:41,780 --> 01:14:44,270 Ja, så det ligner vi nu også nødt til at gå fix 1411 01:14:44,270 --> 01:14:46,560 alle disse henvisninger til strengen. 1412 01:14:46,560 --> 01:14:50,070 Du kan se der er en henvisning til streng her, en her, en her, 1413 01:14:50,070 --> 01:14:53,440 så vi kan flytte alle disse til s. 1414 01:14:56,040 --> 01:15:00,930 Great. Okay, kør den igen. 1415 01:15:00,930 --> 01:15:03,260 Building - en anden fejl opstod. 1416 01:15:03,260 --> 01:15:06,900 >> Okay, nu er vi ned til én fejl, 1417 01:15:06,900 --> 01:15:11,090 så int i = s og derefter de kantede parenteser. 1418 01:15:11,090 --> 01:15:14,880 Så kan du fortælle os lidt om hvad du lavede her, Kelly? 1419 01:15:14,880 --> 01:15:17,120 >> Ja. 1420 01:15:17,120 --> 01:15:19,410 Det var på linje 10. 1421 01:15:19,410 --> 01:15:22,760 >> Jeg ved ikke, om vi havde brug for det hele, 1422 01:15:22,760 --> 01:15:25,560 men jeg tror, ​​jeg prøvede at - 1423 01:15:25,560 --> 01:15:27,580 Jeg vil gemme den, så du kan følge med. 1424 01:15:27,580 --> 01:15:30,470 >> Jeg tror, ​​jeg var 1425 01:15:30,470 --> 01:15:33,150 prøver at fortælle den til at starte i position 0 1426 01:15:33,150 --> 01:15:35,030 i starten af ​​min for-løkke, 1427 01:15:35,030 --> 01:15:38,370 så jeg tror måske at sige var unødvendig. 1428 01:15:39,690 --> 01:15:41,350 Så bare for at opsummere, 1429 01:15:41,350 --> 01:15:44,850 De sagde, at dette - du prøvede at starte denne på position 0 1430 01:15:44,850 --> 01:15:47,030 og få dette - ja, 1431 01:15:47,030 --> 01:15:50,460 så jeg tror tidligere også, når du gik gennem koden, 1432 01:15:50,460 --> 01:15:54,070 De talte om, hvordan du ønskede at behandle strengen som et array 1433 01:15:54,070 --> 01:15:57,440 så vi kan få adgang til hvert tegn individuelt. 1434 01:15:57,440 --> 01:16:00,660 Jeg tror Dan nævnte arrays, også forsøger at konvertere strenge i arrays. 1435 01:16:01,400 --> 01:16:03,300 >> Det viser sig den slags under kølerhjelmen, 1436 01:16:03,300 --> 01:16:06,060 en snor er faktisk gemt som en matrix allerede, 1437 01:16:06,060 --> 01:16:08,060 og du kan få adgang til det som et array; 1438 01:16:08,060 --> 01:16:12,390 der er ingen konvertering, du skal gøre. 1439 01:16:12,390 --> 01:16:15,770 En streng isn't - så - 1440 01:16:15,770 --> 01:16:18,200 en streng er egentlig ikke et array, 1441 01:16:18,200 --> 01:16:21,940 men du kan få adgang til det som sådan, fordi alle tegnene er gemt 1442 01:16:21,940 --> 01:16:25,160 en lige ved siden af ​​hinanden i hukommelsen, 1443 01:16:25,160 --> 01:16:28,310 så hvis du ønsker at få det første tegn i strengen, 1444 01:16:28,310 --> 01:16:31,910 det er det samme som at få det første tal i et heltal array. 1445 01:16:31,910 --> 01:16:35,010 Så vi ofte - we'll 1446 01:16:35,010 --> 01:16:36,360 henvise til 2 som 1447 01:16:36,360 --> 01:16:38,590 oh, som en streng, som er en matrix 1448 01:16:38,590 --> 01:16:40,830 selv om det virkelig - de er meget forskellige ting, 1449 01:16:40,830 --> 01:16:43,410 men du kan behandle dem meget det samme. 1450 01:16:44,700 --> 01:16:47,400 Så det viser sig, at denne linje faktisk - 1451 01:16:47,400 --> 01:16:51,270 vi behøver ikke at gøre nogen konvertering, 1452 01:16:51,270 --> 01:16:53,500 og i virkeligheden, 1453 01:16:53,500 --> 01:16:56,790 dette rent faktisk ikke er et gyldigt udtryk, 1454 01:16:56,790 --> 01:16:59,040 hvilket er, hvad vores compiler fortæller os. 1455 01:16:59,040 --> 01:17:01,290 Det siger, "Hey, det forventede et udtryk, 1456 01:17:01,290 --> 01:17:04,610 og hvad jeg har her er noget, det er ikke et udtryk. " 1457 01:17:04,610 --> 01:17:07,310 At erklære et array, 1458 01:17:07,310 --> 01:17:11,780 alt hvad du behøver at gøre er noget som dette med et semikolon, 1459 01:17:11,780 --> 01:17:15,080 og så skal du fortælle array, hvor længe du ønsker det skal være, 1460 01:17:15,080 --> 01:17:18,370 såsom 5, så denne linie 10 1461 01:17:18,370 --> 01:17:23,880 vil erklære et array kaldet jeg med 5 heltal i det. 1462 01:17:23,880 --> 01:17:26,540 >> Dette er en side, dette er ikke nødvendigt for koden, 1463 01:17:26,540 --> 01:17:30,970 men dette er - og det er sådan, hvad erklæringen ser ud. 1464 01:17:30,970 --> 01:17:35,310 >> Hvordan ville du ikke bruge char i [strlen (s)]? 1465 01:17:35,310 --> 01:17:38,500 Char i [strlen (s)]? 1466 01:17:38,500 --> 01:17:41,500 >> Char i, og derefter i parentesen, strlen (s). 1467 01:17:43,900 --> 01:17:47,710 Ja, så vi kunne - 1468 01:17:47,710 --> 01:17:49,460 vi kunne gøre dette, 1469 01:17:49,460 --> 01:17:52,160 og dette ville erklære - hvad ville det gøre? 1470 01:17:52,160 --> 01:17:55,900 >> Jeg tror, ​​det ville erklære et array 1471 01:17:55,900 --> 01:18:01,780 af, ligesom - of - 1472 01:18:01,780 --> 01:18:04,540 oh, behøver du ikke i - oh, 1473 01:18:04,540 --> 01:18:06,420 yeah, du absolut ikke brug for i. 1474 01:18:06,420 --> 01:18:10,250 Du erklærer en række tegn 1475 01:18:10,250 --> 01:18:13,150 af længden s. 1476 01:18:14,680 --> 01:18:16,770 Og hvad så Sams siger, er, at 1477 01:18:16,770 --> 01:18:20,660 denne linje 10 - lad mig sætte nogle plads i mellem det og resten, så vi kan isolere det - 1478 01:18:20,660 --> 01:18:23,440 denne linje 10 ville erklære et array 1479 01:18:23,440 --> 01:18:28,520 af chars, strlen (s) til en værdi af dem 1480 01:18:28,520 --> 01:18:32,270 men vi faktisk har brug for den i, 1481 01:18:32,270 --> 01:18:35,710 og grunden til at vi har brug for i er, fordi vi er nødt til at give arrayet et navn; 1482 01:18:35,710 --> 01:18:38,900 ellers ville vi ikke have en måde at henvise til arrayet senere i koden. 1483 01:18:38,900 --> 01:18:41,180 >> Så dette her er array navn 1484 01:18:41,180 --> 01:18:43,420 og inde er længden. 1485 01:18:43,420 --> 01:18:45,010 Dette vil give os et array, 1486 01:18:45,010 --> 01:18:47,430 men dette er - igen, det er en erklæring. 1487 01:18:47,430 --> 01:18:50,380 Det er ikke en opgave, det er ikke en initialisering. 1488 01:18:50,380 --> 01:18:52,330 Hvis vi erklærer dette array som denne, 1489 01:18:52,330 --> 01:18:54,490 Der er faktisk ikke noget i indholdet af arrayet. 1490 01:18:54,490 --> 01:18:57,490 Det er bare junk - hvad er derinde. 1491 01:18:57,490 --> 01:18:59,780 Og som vi sagde, 1492 01:18:59,780 --> 01:19:01,340 vi faktisk ikke engang behøver at gøre denne konvertering, 1493 01:19:01,340 --> 01:19:04,810 fordi vi allerede kan behandle strengen s som en matrix. 1494 01:19:06,750 --> 01:19:09,170 Jeg ved, at vi kører en smule lang til tiden, 1495 01:19:09,170 --> 01:19:12,330 men jeg vil gerne bare virkelig hurtigt komme til denne for-løkke 1496 01:19:12,330 --> 01:19:14,850 og vise dig hvordan du får adgang de enkelte karakterer i opstillingen, 1497 01:19:14,850 --> 01:19:17,170 fordi det er nøglen til vores opgave. 1498 01:19:17,170 --> 01:19:20,790 Og så vil vi lade dig gå derfra. 1499 01:19:20,790 --> 01:19:24,610 >> Så her har vi en for-løkke 1500 01:19:24,610 --> 01:19:28,310 , næsten godt. 1501 01:19:28,310 --> 01:19:30,960 Hvad er ikke helt almost there? 1502 01:19:30,960 --> 01:19:33,240 What's - hvad er ikke helt rigtigt om dette for-løkke? 1503 01:19:33,240 --> 01:19:36,010 >> Ingen krøllede parenteser? 1504 01:19:36,010 --> 01:19:38,420 Ingen krøllede parenteser, for én. 1505 01:19:38,420 --> 01:19:42,580 Wanna sikre, at vi har kroppen af ​​løkken med krøllede parenteser. 1506 01:19:42,580 --> 01:19:45,240 Ups, ikke pladsen tandbøjle! 1507 01:19:45,240 --> 01:19:48,660 Og hvad er det næste, at vi skal gøre med denne løkke? 1508 01:19:48,660 --> 01:19:52,640 Hvis jeg prøver og køre det, 1509 01:19:52,640 --> 01:19:56,740 nyheder denne fejl, at jeg får? 1510 01:19:56,740 --> 01:20:00,990 Jeg får alle disse fejl - jeg er nødt til at initialisere jeg. 1511 01:20:00,990 --> 01:20:03,610 Great. 1512 01:20:03,610 --> 01:20:05,770 Så dette vil være en løkke - det er ikke helt der, 1513 01:20:05,770 --> 01:20:08,680 men det bliver virkelig tæt. 1514 01:20:08,680 --> 01:20:11,260 Denne kode kan vi nu køre, 1515 01:20:11,260 --> 01:20:14,620 opbygge en fejl stadig forekommer. 1516 01:20:17,960 --> 01:20:19,800 Hvorfor er det stadig klager, 1517 01:20:19,800 --> 01:20:22,030 siger udtrykket er ubrugt, 1518 01:20:22,030 --> 01:20:24,600 og det er fordi denne linje ikke gøre noget. 1519 01:20:24,600 --> 01:20:27,620 Vi har ikke gemme det hvor som helst, vi ikke gemme resultatet. 1520 01:20:27,620 --> 01:20:30,210 Hvor skal vi gemme dette resultat? 1521 01:20:30,210 --> 01:20:32,920 >> S eller jeg? 1522 01:20:32,920 --> 01:20:35,990 Præcis, og denne funky syntaks, 1523 01:20:35,990 --> 01:20:38,550 denne s med de kantede parenteser 1524 01:20:38,550 --> 01:20:41,500 betyder adgang til i'te karakter s. 1525 01:20:41,500 --> 01:20:45,650 Det kommer til at være noget, der er virkelig vigtigt for opgaven. 1526 01:20:45,650 --> 01:20:48,070 Desværre, vi nødt til at stoppe her, 1527 01:20:48,070 --> 01:20:50,550 således at Sebastian sektion kan komme ind, 1528 01:20:50,550 --> 01:20:53,980 men jeg er glad for at bo efter udefra og vil tage eventuelle spørgsmål. 1529 01:20:53,980 --> 01:20:56,680 Så tak fyrene for at komme. 1530 01:20:56,680 --> 01:20:59,730 Dette bør nu uploade, bygge, køre. 1531 01:21:01,570 --> 01:21:04,320 Vi kan indtaste en streng som "goddag" 1532 01:21:06,570 --> 01:21:08,730 og den udskriver "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Latter] 1534 01:21:11,030 --> 01:21:14,640 >> Så ikke helt der, men bevæger sig, komme hen imod disse sløjfer! 1535 01:21:14,640 --> 01:21:18,640 Tak for at komme, og jeg vil være udenfor.