1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ zoemende ♪] 2 00:00:07,070 --> 00:00:10,380 So te stel om jou te wat ek het op die skerm; 3 00:00:10,380 --> 00:00:12,710 dit is een van die tools wat ons ontwikkel het oor die somer; 4 00:00:12,710 --> 00:00:15,530 dit CS50 Spaces genoem, 5 00:00:15,530 --> 00:00:18,860 en dit is ons gesamentlike kodering aansoek 6 00:00:18,860 --> 00:00:20,180 dat ons gaan om te gebruik in artikels. 7 00:00:20,180 --> 00:00:22,470 Dit is pretty cool. 8 00:00:22,470 --> 00:00:26,040 Het enige van julle CS50 run gesien nie? 9 00:00:26,040 --> 00:00:29,760 Laat my toe dat hy in 'n ander blad. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 So 12 00:00:36,230 --> 00:00:39,700 as jy gaan na run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 jy kan sien dit is 'n in jou browser manier om te 14 00:00:43,030 --> 00:00:45,940 eintlik kode - C-kode te skryf, 15 00:00:45,940 --> 00:00:47,460 en dan loop dit, 16 00:00:47,460 --> 00:00:50,960 sodat dit beide stel dit, loop, terug dan die uitset vir julle, 17 00:00:50,960 --> 00:00:53,350 so dit is 'n soort van 'n koel manier om te eksperimenteer 18 00:00:53,350 --> 00:00:56,060 met 'n paar van die kode wat Dawid gaan oor in die lesings 19 00:00:56,060 --> 00:00:58,640 en ons gee op jou probleem stelle 20 00:00:58,640 --> 00:01:01,900 , sonder om die toestel aan die brand. 21 00:01:01,900 --> 00:01:04,489 >> So, wat Spaces doen wat verskil van dié 22 00:01:04,489 --> 00:01:07,450 as ek skakel terug na hierdie blad, 23 00:01:07,450 --> 00:01:11,580 Ruimtes is CS50 hardloop, soos jy sien reg hier, 24 00:01:11,580 --> 00:01:15,380 maar as ons scroll oor en kyk na die ander kant van die venster, 25 00:01:15,380 --> 00:01:18,130 sien jy die reg ek is die enigste persoon in hierdie ruimte, 26 00:01:18,130 --> 00:01:21,030 maar wat ek gaan om dit te doen is om te vra julle hierdie ruimte om saam met my 27 00:01:21,030 --> 00:01:24,590 en ons sal almal kry die kode in dieselfde klein venster, 28 00:01:24,590 --> 00:01:26,070 deel kode met mekaar, 29 00:01:26,070 --> 00:01:28,900 en praat oor die verskille tussen ons kode. 30 00:01:28,900 --> 00:01:31,530 So dit is 'n soort van 'n koel ding - 31 00:01:31,530 --> 00:01:35,770 so aan te sluit, as jy wil hierdie skakel hier besoek aan die bokant 32 00:01:35,770 --> 00:01:38,980 wat ek uitgelig het, 33 00:01:38,980 --> 00:01:53,860 jy kan net tik in apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Alle reg, om dit te begin, 35 00:01:56,610 --> 00:01:59,720 Ek gaan vir jou 'n bietjie van 'n toer van hierdie. 36 00:01:59,720 --> 00:02:01,720 Ons is 'n paar lawwe kodering met dit gaan doen op die eerste, 37 00:02:01,720 --> 00:02:06,200 net sodat almal kry kinda 'n gevoel vir wat dit is soos, 38 00:02:06,200 --> 00:02:09,000 maar wat ek gedoen het - 39 00:02:09,000 --> 00:02:11,830 of wat ek oor om te doen reg hier is - 40 00:02:11,830 --> 00:02:13,480 Ek gaan die kode te neem dat ek hier geskryf het, 41 00:02:13,480 --> 00:02:15,800 wat as jy sien reg nou is leeg; 42 00:02:15,800 --> 00:02:17,090 dit nie doen nie. 43 00:02:17,090 --> 00:02:21,080 Dit is net 'ketel plaat kode, sal ons dit noem. 44 00:02:21,080 --> 00:02:23,820 Met 'n bietjie te-doen-kommentaar. 45 00:02:23,820 --> 00:02:27,850 Ek gaan om dit te red deur die tref van hierdie knoppie Stoor. 46 00:02:27,850 --> 00:02:30,190 En wat beteken dit is dit 47 00:02:30,190 --> 00:02:34,400 beklemtoon dit hier kortliks - dat die hersiening save groen vak, 48 00:02:34,400 --> 00:02:37,570 Maar nou, as jy soek vir my in die ruimte, 49 00:02:37,570 --> 00:02:40,340 jy kliek op my naam, 50 00:02:40,340 --> 00:02:43,370 kan jy sien dat ek hierdie hersiening het reg hier, 51 00:02:43,370 --> 00:02:45,490 en as jy op daardie hersiening, 52 00:02:45,490 --> 00:02:48,240 dit sal laai dat die kode in jou ruimte, ook. 53 00:02:50,510 --> 00:02:54,160 >> So het almal gelaai dat die kode in hul Space? 54 00:02:54,160 --> 00:02:57,810 Alles reg, as jy nog nie, voort te gaan en dit doen, 55 00:02:57,810 --> 00:03:01,120 en dan wat ek wil julle ouens om te doen in hierdie klein artikel te-doen- 56 00:03:01,120 --> 00:03:05,940 is 'n bietjie met printf oor jouself skryf, 57 00:03:05,940 --> 00:03:08,310 so byvoorbeeld, sou ek skryf 58 00:03:08,310 --> 00:03:12,270 printf ("My naam is Nate"); 59 00:03:15,140 --> 00:03:17,700 en dan wil ek skryf 60 00:03:17,700 --> 00:03:21,660 "Ek het in 2009 gegradueer 61 00:03:21,660 --> 00:03:24,440 van Stanford " 62 00:03:26,050 --> 00:03:28,390 en ek wil graag om te hoor oor 63 00:03:28,390 --> 00:03:30,270 watter jaar is jy in die skool, 64 00:03:30,270 --> 00:03:33,910 of jy by die kollege of die sakeskool 65 00:03:33,910 --> 00:03:36,130 of 'n ander Harvard skool, 66 00:03:36,130 --> 00:03:39,200 wat jy studeer as dit is nog nie bekend nie; 67 00:03:39,200 --> 00:03:41,290 as dit nie bekend is, wat is heeltemal cool. 68 00:03:41,290 --> 00:03:45,170 Ek het besluit om nie totdat ek was laat in my stage jaar. 69 00:03:46,910 --> 00:03:49,210 en dan sou ek ook graag wou weet 70 00:03:49,210 --> 00:03:51,610 enigiets gek wat jy wil hê ek moet of vertel 71 00:03:51,610 --> 00:03:54,790 iets oor die klas of net iets anders. 72 00:03:56,930 --> 00:04:00,370 Wanneer jy klaar skryf dat met jou klein printf, 73 00:04:00,370 --> 00:04:03,480 as jy die hersiening red of eerder 74 00:04:03,480 --> 00:04:06,080 maak eers seker dat jy dit kan hardloop 75 00:04:06,080 --> 00:04:10,640 en dat dit druk uit presies wat jy wil om dit uit te druk, 76 00:04:14,050 --> 00:04:16,399 en dan as jy gaan voort en behalwe dat hersiening 77 00:04:16,399 --> 00:04:21,600 deur gebruik te maak van die Hersiening Save "knoppie, die eerste outjie hier, 78 00:04:24,080 --> 00:04:27,340 en ons sal kinda gaan deur en doen 'n klein inleiding op daardie manier. 79 00:04:27,340 --> 00:04:30,150 So jy moet net die "Play" knoppie om te tref, 80 00:04:30,150 --> 00:04:32,550 wat is hier op die links bo, 81 00:04:32,550 --> 00:04:35,340 sodat hierdie "Play" knoppie op die links bo 82 00:04:35,340 --> 00:04:39,050 stuur jou kode af na ons bediener waar dit word saamgestel en dan hardloop. 83 00:04:40,600 --> 00:04:43,300 So, wat is kinda crazy oor hierdie 84 00:04:43,300 --> 00:04:46,550 hierdie kode nie op jou rekenaar; 85 00:04:46,550 --> 00:04:49,290 dit is eintlik oor die internet gestuur word. 86 00:04:49,290 --> 00:04:51,240 >> Hoe gaan dit, Charlotte? 87 00:04:51,240 --> 00:04:54,810 >> I - okay. Achievement - ek dink ek is 88 00:04:54,810 --> 00:04:57,330 ondervind probleme om dit te bewaar 89 00:04:57,330 --> 00:05:00,530 op die bediener sodanig is dat dit kan ek die program kan hardloop. 90 00:05:02,090 --> 00:05:05,780 En dan wanneer ek probeer om dit uit te voer, dit sê dat daar 'n fout. 91 00:05:05,780 --> 00:05:08,850 Verklaar as 'n virus, wat is nie daar nie. 92 00:05:08,850 --> 00:05:11,860 O, laat ons sien, kan jy getref Stoor weer? 93 00:05:11,860 --> 00:05:13,770 Ek sien dit op die skerm. 94 00:05:13,770 --> 00:05:15,120 >> Reg, okay, so dit is wat ek het. 95 00:05:15,120 --> 00:05:19,430 En ek weet nie hoekom dit nie laat my loop dit. 96 00:05:22,990 --> 00:05:24,990 O, okay, jammer. 97 00:05:27,930 --> 00:05:31,220 Kan jy verduidelik hoekom - wat verkeerd was - wat nie werk nie met dit? 98 00:05:31,220 --> 00:05:34,760 >> Ja, want ek het nie sien dat daar 'n laaste reël waar daar is nog steeds 'n veranderlike 99 00:05:34,760 --> 00:05:37,700 dat ek nie verklaar, wat ek nie van plan om dit daar. 100 00:05:37,700 --> 00:05:38,730 Ja, perfect! 101 00:05:38,730 --> 00:05:40,390 >> Nou as ek dit red, ek dink dit moet werk. 102 00:05:40,390 --> 00:05:42,970 Nou dat jy dit nagegaan het, dit werk; awesome. 103 00:05:42,970 --> 00:05:44,570 >> So ja, as ons gaan deur - 104 00:05:44,570 --> 00:05:46,690 so wat aan die gang was, 105 00:05:46,690 --> 00:05:49,130 Ek gaan net om dit te herhaal vir die kamera. 106 00:05:49,130 --> 00:05:51,760 Wat daar gebeur het, was dat hierdie veranderlike se 107 00:05:51,760 --> 00:05:54,310 links in na - Ek neem aan dat jy n paar ander dinge verwyder 108 00:05:54,310 --> 00:05:56,670 waar jy verklaar, 109 00:05:56,670 --> 00:05:59,560 en so is dit gooi dinge af en is nie om jou te laat loop dit. 110 00:05:59,560 --> 00:06:02,540 So dit is presies wat ons wil doen in artikel 111 00:06:02,540 --> 00:06:05,690 is het mense probeer om die verskillende stukke van die kode te skryf, 112 00:06:05,690 --> 00:06:08,490 die opstel van dit, sien wat werk, kyk wat nie werk nie, 113 00:06:08,490 --> 00:06:10,730 en dan kinda praat oor hierdie dinge, want dit is Tripping punte wat 114 00:06:10,730 --> 00:06:12,850 Ek het nog teëkom, 115 00:06:12,850 --> 00:06:15,470 Ek nog steeds - ek doen baie van dom dinge al die tyd, 116 00:06:15,470 --> 00:06:17,820 en ek weet nie hoekom dit nie werk nie, 117 00:06:17,820 --> 00:06:22,960 so laat ons trek Charlotte se hersiening 3, 118 00:06:23,980 --> 00:06:25,380 en ons sal dit uitgevoer word. 119 00:06:25,380 --> 00:06:28,950 >> So toe ek loop, nou dat ek het haar kode hier, 120 00:06:28,950 --> 00:06:31,450 Ek kan zoom in, druk die knoppie Run, 121 00:06:31,450 --> 00:06:33,680 upload, bou dit, loop dit, 122 00:06:33,680 --> 00:06:36,980 sê dat dit suksesvol geloop en as ek scroll down, 123 00:06:36,980 --> 00:06:39,440 Charlotte is 'n junior by Adams House, 124 00:06:39,440 --> 00:06:42,720 sielkunde, sekondêre in die ekonomie; awesome. 125 00:06:42,720 --> 00:06:44,310 Great om jou te ontmoet! 126 00:06:44,310 --> 00:06:46,550 Awesome. 127 00:06:46,550 --> 00:06:49,670 Goed, beweeg op, laat ons gaan aan Daniël, 128 00:06:49,670 --> 00:06:52,710 gaan aan hersiening 3, 129 00:06:52,710 --> 00:06:54,180 stel, hardloop; 130 00:06:54,180 --> 00:06:56,680 Hoekom sê jy nie vir ons 'n bietjie oor jouself, Daniel? 131 00:06:56,680 --> 00:06:59,380 >> Call me Dan. 132 00:06:59,380 --> 00:07:01,920 Ek gaan na besigheid skool oor van julle, 133 00:07:01,920 --> 00:07:05,020 en ek was in die Marines voor hier, 134 00:07:05,020 --> 00:07:08,020 en dit is alles vir my, so ja. 135 00:07:08,020 --> 00:07:11,060 Moenie sleg voel nie, ek is 30 en ek weet nie enige van hierdie dinge. 136 00:07:11,060 --> 00:07:13,800 Awesome; dankie, Dan! 137 00:07:13,800 --> 00:07:17,300 Alle reg, ons het 'n ander Daniel. 138 00:07:17,300 --> 00:07:20,930 Jy gaan deur Daniel - sal jy jouself bekend, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Sure, ek is Daniel. 140 00:07:22,260 --> 00:07:24,330 Ek is 'n stage by Mather right now. 141 00:07:24,330 --> 00:07:25,840 Ek konsentreer op die regering, 142 00:07:25,840 --> 00:07:28,760 maar ek wou CS50 te neem, want ek het gehoor groot resensies oor die klas 143 00:07:28,760 --> 00:07:30,750 en ek het nooit probeer CS voor. 144 00:07:30,750 --> 00:07:34,680 Scroll down en toon hierdie cool. 145 00:07:36,330 --> 00:07:39,090 Beweeg op, Jered geword. 146 00:07:39,090 --> 00:07:41,990 Hoe gaan dit? 147 00:07:41,990 --> 00:07:43,430 >> Goed, hoe is jy? 148 00:07:43,430 --> 00:07:47,520 Soos jy kan sien, ek is 'n junior filosofie concentrator in Eliot, 149 00:07:47,520 --> 00:07:50,260 oorspronklik uit die suide van Kalifornië, 150 00:07:50,260 --> 00:07:53,100 en ek is geïnteresseerd in die neem van CS50, want ek hou van die logika van dit, 151 00:07:53,100 --> 00:07:57,420 en dit lyk regtig cool dinge om te doen op die rekenaar, so. 152 00:07:57,420 --> 00:07:59,570 Awesome, waar in die suide van Kalifornië is jy vandaan? 153 00:07:59,570 --> 00:08:02,340 >> Sowat 'n uur van [onhoorbaar], 'n klein stad [onhoorbaar]. 154 00:08:02,340 --> 00:08:04,850 O, ja, my pa is van Redlands. 155 00:08:04,850 --> 00:08:07,060 Cool stuff. 156 00:08:07,060 --> 00:08:12,130 >> Alles reg, Jimmy, hoe gaan dit, Jimmy? 157 00:08:12,130 --> 00:08:15,130 >> Goed, hoe is jy? 158 00:08:15,130 --> 00:08:16,040 Doen baie goed! 159 00:08:16,040 --> 00:08:17,710 Vertel ons van jouself. 160 00:08:17,710 --> 00:08:20,840 >> Ek is 'n groentjie, en ek is nie heeltemal seker wat ek hoofvak in 161 00:08:20,840 --> 00:08:22,820 maar ek is kinda leun die rigting van die ekonomie. 162 00:08:22,820 --> 00:08:25,680 Soos Daniël voor my, het ek nog nooit enige CS, maar dit klink kinda cool. 163 00:08:25,680 --> 00:08:28,120 Ek is oorspronklik van Chicago. 164 00:08:28,120 --> 00:08:31,640 Awesome. So check sy drukstuk hier. 165 00:08:31,640 --> 00:08:34,630 Ek wou vra, het hierdie prent as jy het verwag? 166 00:08:34,630 --> 00:08:37,650 >> Nee, ek het vergeet om 'n nuwe lyn te druk. 167 00:08:37,650 --> 00:08:41,270 Ek het eintlik vergeet dat toe ek my ding te skryf 168 00:08:41,270 --> 00:08:43,090 vir die eerste keer ook. 169 00:08:43,090 --> 00:08:46,330 Dit is soort van 'n pyn om te onthou in die hand te sit. 170 00:08:46,330 --> 00:08:50,560 Dit sou lekker wees as dit net weet dat dit is wat jy wou. 171 00:08:50,560 --> 00:08:53,630 >> Okay, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, ons het 2 Kellys, 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 So Kelly - gaan jy deur Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Okay, awesome. 175 00:09:03,870 --> 00:09:07,270 Of Kelly, ek bedoel. 176 00:09:07,270 --> 00:09:10,260 >> So ja, so ek is Kelly. 177 00:09:10,260 --> 00:09:12,930 Ek is 'n stage in Pfoho. 178 00:09:12,930 --> 00:09:17,000 Ek het vandag 'n e-pos dat ek nog steeds 7 weke om my konsentrasie te verklaar, 179 00:09:17,000 --> 00:09:20,940 so ek probeer om nie te dink oor dit, 180 00:09:20,940 --> 00:09:24,090 en ek wil bak, hardloop en Craisins. 181 00:09:24,090 --> 00:09:29,110 Ek het nie ondervinding met die meeste van CS; 182 00:09:29,110 --> 00:09:32,700 Ek het myself geleer om webwerwe te bou wanneer ek was baie jonk, 183 00:09:32,700 --> 00:09:35,750 maar ek dink ek waarskynlik geleer myself 'n baie keer verkeerd. 184 00:09:35,750 --> 00:09:39,260 Hopelik sal ek 'n bietjie meer leer 185 00:09:39,260 --> 00:09:41,450 en - ja. 186 00:09:41,450 --> 00:09:44,100 >> Awesome, goed, dankie. 187 00:09:44,100 --> 00:09:47,190 Kom ons gaan na die ander Kelly; 188 00:09:47,190 --> 00:09:48,880 Ek het nie enige iets - het jy hier iets sê? 189 00:09:48,880 --> 00:09:51,880 >> [Onhoorbaar] 190 00:09:51,880 --> 00:09:56,180 Daar is dit! 191 00:09:56,180 --> 00:09:58,120 Sweet! 192 00:09:58,120 --> 00:10:01,400 >> Alle reg, sodat ek Kelly. 193 00:10:01,400 --> 00:10:03,980 Ek is 'n eerste-jaar nagraadse student. 194 00:10:03,980 --> 00:10:05,560 Ek hoofvak in gedagte, brein, en Onderwys. 195 00:10:05,560 --> 00:10:07,940 Ek studeer in Franklin & Marshall College in 2008 196 00:10:07,940 --> 00:10:10,840 met hoofvakke in die sielkunde en sosiologie 197 00:10:10,840 --> 00:10:13,120 en 'n minderjarige in Frans. 198 00:10:13,120 --> 00:10:15,330 Ek neem CS50 199 00:10:15,330 --> 00:10:18,080 want ek is geïnteresseerd in om 'n PhD in Neurowetenschappen 200 00:10:18,080 --> 00:10:21,220 en ek voel soos hierdie sal my help om die tegnologie wat gebruik word te verstaan. 201 00:10:21,220 --> 00:10:23,150 Awesome. 202 00:10:26,980 --> 00:10:29,390 Beweeg op, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Is dat die korrekte uitspraak? 204 00:10:31,640 --> 00:10:32,990 Okay, awesome. 205 00:10:32,990 --> 00:10:34,640 >> >> Ek is Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Ek is 'n stage in Kirkland House, 207 00:10:36,870 --> 00:10:39,950 en ek konsentreer in Meganiese Ingenieurswese. 208 00:10:39,950 --> 00:10:43,180 Ek het regtig soos fietsry, 'n fiets hierdie somer gebou. 209 00:10:43,180 --> 00:10:46,140 Ek neem CS, eintlik, 210 00:10:46,140 --> 00:10:48,350 as 'n konsentrasie vereiste, 211 00:10:48,350 --> 00:10:52,550 maar jy weet, ek dink dit is nog koel soort van ingenieursdienste klas. 212 00:10:52,550 --> 00:10:55,150 Awesome - jy het 'n fiets gebou hierdie somer? 213 00:10:55,150 --> 00:10:56,730 >> Ja. 214 00:10:56,730 --> 00:10:58,900 Wow, soos die raam en alles wat? 215 00:10:58,900 --> 00:11:00,120 >> Uh-HUNH (regstellende). 216 00:11:00,120 --> 00:11:01,530 Sjoe, dit is regtig cool. 217 00:11:01,530 --> 00:11:06,370 >> [Onhoorbaar off-kamera chat] 218 00:11:06,370 --> 00:11:10,000 [Lag] 219 00:11:12,640 --> 00:11:14,200 Ja, dit is so lank. 220 00:11:14,200 --> 00:11:16,730 Jy weet nooit, reg? 221 00:11:16,730 --> 00:11:19,420 Wel, koel, goed dankie, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Alle reg, Missy. 223 00:11:21,390 --> 00:11:23,280 >> My Naam Missy, ek is 'n groentjie, 224 00:11:23,280 --> 00:11:25,500 so dit beteken dat ek weet niks! 225 00:11:25,500 --> 00:11:29,180 Ek wil om te konsentreer in die astrofisika. 226 00:11:29,180 --> 00:11:31,220 In CS50, 227 00:11:31,220 --> 00:11:33,350 Ek voel soos 'sal beslis help met. 228 00:11:33,350 --> 00:11:37,750 'N vreemde feit oor my is ek is 'n nasionaal gesertifiseerde brandweerman. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Hoe het dit gebeur? 231 00:11:42,440 --> 00:11:45,570 >> Ek het 'n akademie bygewoon 232 00:11:45,570 --> 00:11:49,000 en deur die hel gegaan het vir 'n baie weke 233 00:11:49,000 --> 00:11:51,200 en het my sertifisering. 234 00:11:51,200 --> 00:11:54,090 Wow, congrats! 235 00:11:54,090 --> 00:11:57,280 Dit is geen geringe prestasie nie, vir seker. 236 00:11:57,280 --> 00:11:59,070 Okay, so nou het ons sal doen vir my. 237 00:11:59,070 --> 00:12:01,290 Ek is die volgende een in die ry. 238 00:12:01,290 --> 00:12:04,510 Achievement - voer dit uit. 239 00:12:04,510 --> 00:12:07,580 >> So my naam is Nate. 240 00:12:07,580 --> 00:12:11,160 Ek was klas van 2009 by Stanford. 241 00:12:11,160 --> 00:12:13,840 Ek was 'n Simboliese Systems groot, 242 00:12:13,840 --> 00:12:17,370 wat is soortgelyk aan die verstand, brein, gedrag konsentrasie hier, 243 00:12:17,370 --> 00:12:19,300 maar dit is soort van 'n mengsel van 244 00:12:19,300 --> 00:12:22,350 rekenaarwetenskap, linguistiek, sielkunde en filosofie. 245 00:12:22,350 --> 00:12:26,600 Soort van - ja, 'n baie vreemde dinge, maar dit was 'n groot, 246 00:12:26,600 --> 00:12:29,880 en dan het ek my heer se daar in Rekenaarwetenskap, asook. 247 00:12:29,880 --> 00:12:33,250 So ek is nuut na Harvard hierdie jaar. 248 00:12:33,250 --> 00:12:35,750 Ek wou eintlik in die onderwys te kry. 249 00:12:35,750 --> 00:12:39,860 Ek het die laaste 4 jaar by Stanford TA-ing Rekenaarwetenskap klasse 250 00:12:39,860 --> 00:12:43,370 en so het Dawid laat my op, 251 00:12:43,370 --> 00:12:45,550 en ek is nou eers help met CS50, 252 00:12:45,550 --> 00:12:47,890 so ek doen hierdie voltydse, ek is nie in grad skool. 253 00:12:47,890 --> 00:12:50,330 Dit was pret. 254 00:12:50,330 --> 00:12:53,130 Hopelik sal dit voortgaan om pret wees, ek is seker dit sal. 255 00:12:53,130 --> 00:12:56,040 >> Alle reg, Sam. 256 00:13:01,910 --> 00:13:05,470 >> My naam is Sam, ek is 'n stage by die kollege, in wet wat spesifiek. 257 00:13:05,470 --> 00:13:10,110 My groot geskiedenis van die wetenskap sal wees, waarskynlik, en Ves sekondêre, 258 00:13:10,110 --> 00:13:13,240 en my gunsteling kleur is geel. 259 00:13:18,790 --> 00:13:21,100 Geen oordeel of iets nodig om te slaag, maar dit is 'n goeie kleur! 260 00:13:21,100 --> 00:13:24,780 En Stella. 261 00:13:24,780 --> 00:13:26,980 >> Hi, Ek is Stella, ek is 'n groentjie in Grays. 262 00:13:26,980 --> 00:13:30,070 Ek het geen idee wat ek gekonsentreer in nie, 263 00:13:30,070 --> 00:13:32,500 so CS50 was net soort van ewekansige, 264 00:13:32,500 --> 00:13:34,220 wat is interessant. 265 00:13:34,220 --> 00:13:36,080 Fun, Jimmy was die eerste Harvard-vriend van my, 266 00:13:36,080 --> 00:13:38,360 omdat ons albei van Chicago. 267 00:13:38,360 --> 00:13:42,450 Cool, en Grace - wat veronderstel is om die baie mooi wees, reg? 268 00:13:42,450 --> 00:13:45,220 >> Ek het gedink [onhoorbaar]. 269 00:13:45,220 --> 00:13:46,690 O, ja. 270 00:13:46,690 --> 00:13:51,210 [Onhoorbaar / off-kamera chat] 271 00:13:51,210 --> 00:13:54,420 Okay, ek is nog steeds leer, leer nog steeds. 272 00:13:54,420 --> 00:13:57,800 >> Dus het ons iets anders wat is soort van interessante hier. 273 00:13:59,600 --> 00:14:02,870 Ja, ek net wonder, het jy 'n idee wat gaan hier aan? 274 00:14:02,870 --> 00:14:05,890 Jy weet hoe om dit te interpreteer? 275 00:14:05,890 --> 00:14:13,340 >> Ek was veronderstel om die kommapunt ná elke enkele lyn gestel word. 276 00:14:13,340 --> 00:14:16,370 Dit is soort van 'n pyn. 277 00:14:16,370 --> 00:14:19,100 Soms is daardie kommapunte kan 'n ware pyn wees om op te spoor. 278 00:14:19,100 --> 00:14:21,420 So dit blyk dat 279 00:14:21,420 --> 00:14:22,820 die spesiale program wat ons gebruik om hierdie jaar te 280 00:14:22,820 --> 00:14:26,670 stel ons C-kode word genoem klang, 281 00:14:26,670 --> 00:14:29,460 en die rede waarom ons het begin kletteren hierdie jaar gebruik - 282 00:14:29,460 --> 00:14:32,030 want ons het nie dat die program in die verlede; 283 00:14:32,030 --> 00:14:35,710 het ons 'n ander een genoem GCC wat regtig gewild is - 284 00:14:35,710 --> 00:14:38,420 Kletteren gee eintlik jou fout boodskappe wat sin maak. 285 00:14:38,420 --> 00:14:41,420 Hierdie een sê: "verwag", "na die uitdrukking", 286 00:14:41,420 --> 00:14:45,260 en dit vertel jy selfs die uitdrukking waarna jy nodig het 'n kommapunt. 287 00:14:45,260 --> 00:14:47,830 So is jy regmaak? 288 00:14:47,830 --> 00:14:48,930 >> Ja, right now. 289 00:14:48,930 --> 00:14:52,040 Awesome, laat my weet en ons sal dit trek, en ons sal dit hardloop. 290 00:14:52,040 --> 00:14:55,830 Maar ja, om hierdie kommapunte in is 'n soort van 'n pyn. 291 00:14:55,830 --> 00:14:59,580 >> Ek het dit, so ek dink dit moet werk. 292 00:14:59,580 --> 00:15:02,760 Awesome - hersiening 3. 293 00:15:02,760 --> 00:15:05,250 Wat lyk asof dit. 294 00:15:05,250 --> 00:15:08,580 Alle reg, sodat as ons nou loop dit, 295 00:15:08,580 --> 00:15:11,020 daar dit gaan. 296 00:15:11,020 --> 00:15:13,830 Cool stuff. 297 00:15:13,830 --> 00:15:15,340 >> Alles reg. 298 00:15:15,340 --> 00:15:18,230 So dankie vir jou om dit te doen. 299 00:15:18,230 --> 00:15:20,210 Dit is wonderlik om julle ouens te ontmoet. 300 00:15:20,210 --> 00:15:22,880 Wat ons gaan doen nou spandeer die volgende bietjie 301 00:15:22,880 --> 00:15:24,740 kinda duik in die afdeling probleme 302 00:15:24,740 --> 00:15:27,550 wat kom uit die probleem van hierdie week 303 00:15:27,550 --> 00:15:29,920 en ons sal doen wat vir die meeste van die afdelings 304 00:15:29,920 --> 00:15:32,110 vir die res van die kwartaal, 305 00:15:32,110 --> 00:15:35,580 en dan sal ons red die laaste 15, 20 minute of so 306 00:15:35,580 --> 00:15:38,490 om te praat oor die probleem homself 307 00:15:38,490 --> 00:15:41,420 en dan net enige ander vrae wat jy het in die algemeen oor die klas. 308 00:15:43,380 --> 00:15:45,670 Dit gesê, wat ons regtig wil doen 309 00:15:45,670 --> 00:15:49,390 is het almal wat deelneem 310 00:15:49,390 --> 00:15:51,500 die gebruik van die ruimtes stuff, 311 00:15:51,500 --> 00:15:53,500 gooi in die kode, gooi in voorstelle, 312 00:15:53,500 --> 00:15:56,500 en praat oor wanneer dinge soos hierdie breek 313 00:15:56,500 --> 00:15:58,360 of nie werk nie, net omdat dit is dinge wat 314 00:15:58,360 --> 00:16:00,870 Ek weet ek het gekom oor 315 00:16:00,870 --> 00:16:03,180 toe ek begin kodering, 316 00:16:03,180 --> 00:16:05,490 en was regtig kinda frustrerend by tye 317 00:16:05,490 --> 00:16:08,690 want as dit is soos 02:00 voor jou gestelde probleem is te wyte is, 318 00:16:08,690 --> 00:16:11,330 so - net vir openbaarmaking, 319 00:16:11,330 --> 00:16:14,590 Ek het nie begin programmering totdat ek 'n tweedejaar op universiteit was. 320 00:16:14,590 --> 00:16:17,360 Dit was soort van hierdie vreemde, onbekende ding 321 00:16:17,360 --> 00:16:20,360 wat ek gehoor het was kinda cool 322 00:16:20,360 --> 00:16:23,590 en ek het ook gehoor dit kan 'n ware pyn in die kolf 323 00:16:23,590 --> 00:16:27,610 as jy mis 'n kommapunt en dit is die enigste fout met die behoud van jou program uit te werk 324 00:16:27,610 --> 00:16:30,890 en hou jy gaan slaap, 325 00:16:30,890 --> 00:16:32,650 so beslis, 326 00:16:32,650 --> 00:16:34,020 as jy vrae het soos wat, 327 00:16:34,020 --> 00:16:37,060 As jy probleme het soos dit, laat my weet, 328 00:16:37,060 --> 00:16:40,050 want ek wil om te maak dit 'n goeie ervaring vir julle ouens. 329 00:16:40,050 --> 00:16:44,620 >> Sodat julle het almal die probleem afgelaai nog nie opgestel is? 330 00:16:44,620 --> 00:16:47,160 Kinda weet waar dit is? Okay. 331 00:16:47,160 --> 00:16:51,490 So ons gaan na cs50.net, want ek hoef dit nie op hierdie rekening, 332 00:16:51,490 --> 00:16:54,110 trek die probleem stelle, 333 00:16:54,110 --> 00:16:57,940 trek probleem stel 2, en ons sal kyk na die standaard uitgawe vandag. 334 00:16:57,940 --> 00:17:01,190 Ons sal trek die spesifikasie hier. 335 00:17:02,640 --> 00:17:04,420 Scroll down. 336 00:17:06,790 --> 00:17:11,109 So ons gaan begin kyk na hierdie artikel van vrae. 337 00:17:14,069 --> 00:17:16,710 Het julle gekyk het hierdie kortbroek nog? 338 00:17:16,710 --> 00:17:18,329 Okay. 339 00:17:18,329 --> 00:17:21,329 So daar is kort op loops, 340 00:17:21,329 --> 00:17:24,700 wat gedoen word deur Tommy, een van die hoof onderrig genote. 341 00:17:24,700 --> 00:17:27,230 Daar is een op omvang, 342 00:17:27,230 --> 00:17:30,530 Ek glo gedoen deur 'n ander onderrig mede naam van Dawid 343 00:17:30,530 --> 00:17:33,400 en dan een op Caesar Cipher ook gedoen deur David. 344 00:17:33,400 --> 00:17:35,550 Hulle is pretty cool. 345 00:17:35,550 --> 00:17:37,770 Het julle ouens kyk na hulle kortbroek so ver? 346 00:17:37,770 --> 00:17:39,270 How've hulle is? 347 00:17:39,270 --> 00:17:41,490 Nuttig? Goed, goed om te weet. 348 00:17:41,490 --> 00:17:44,210 As hulle nie, kan jy so sê. 349 00:17:46,290 --> 00:17:49,870 Maar voordat jy dit doen, 350 00:17:49,870 --> 00:17:52,600 julle ouens kyk na hierdie vrae 351 00:17:52,600 --> 00:17:55,430 by almal? 352 00:17:55,430 --> 00:17:57,480 >> Kom ons praat oor dit 'n bietjie. 353 00:17:57,480 --> 00:18:00,600 So het ons oor die afgelope paar weke bekend gestel 354 00:18:00,600 --> 00:18:02,480 in lesingsale 355 00:18:02,480 --> 00:18:04,910 'n aantal van verskillende loops. 356 00:18:04,910 --> 00:18:06,140 Daar is die lus 357 00:18:06,140 --> 00:18:09,570 terwyl loop, en dan die do-while lus, 358 00:18:09,570 --> 00:18:13,100 en in die lesing, het ons gepraat 'n baie oor 359 00:18:13,100 --> 00:18:16,010 hoe die loops is alle 360 00:18:16,010 --> 00:18:18,320 redelik soortgelyk in 'n baie maniere, 361 00:18:18,320 --> 00:18:21,210 en wat jy kan doen baie van die dieselfde dinge met 'n while lus 362 00:18:21,210 --> 00:18:23,260 wat jy kan met 'n for-lus. 363 00:18:23,260 --> 00:18:26,300 Jy moet net soort van gebruik om die regte kombinasies van veranderlikes en sodanige. 364 00:18:26,300 --> 00:18:28,680 en so werklik 365 00:18:28,680 --> 00:18:31,200 die werklike onderskeid tussen al die lusse is dat 366 00:18:31,200 --> 00:18:33,620 Soms is dit nuttig 367 00:18:33,620 --> 00:18:36,930 om dit te gebruik op 'n tyd as op 'n ander tyd. 368 00:18:36,930 --> 00:18:39,340 >> So byvoorbeeld, 369 00:18:39,340 --> 00:18:42,260 die while lus verskil van 'n do-while lus. 370 00:18:42,260 --> 00:18:45,680 Is almal voel hulle het 'n goeie hanteer op wanneer 371 00:18:45,680 --> 00:18:48,650 'n do-while lus is meer 372 00:18:48,650 --> 00:18:50,990 nuttig of wat die verskil is? 373 00:18:50,990 --> 00:18:53,410 >> Ek dink die verskil is 'n do-while lus 374 00:18:53,410 --> 00:18:56,960 loop - Ek weet nie heeltemal wat die terminologie, 375 00:18:56,960 --> 00:18:59,750 maar die reeks van funksies binne die lus. 376 00:18:59,750 --> 00:19:02,020 Hulle outomaties nie - dit doen sy lopies ten minste 377 00:19:02,020 --> 00:19:05,390 voordat dit kontroleer of dit die toestand, of die while lus sal slegs uitgevoer word wanneer 378 00:19:05,390 --> 00:19:08,290 dit loop voortdurend - of die toestand is tevrede. 379 00:19:08,290 --> 00:19:11,010 Ja, wat sin maak? 380 00:19:11,010 --> 00:19:14,200 >> Kom ons neem 'n blik op 'n bietjie van die kode. 381 00:19:14,200 --> 00:19:16,930 Sodat net die vraag te herhaal, 382 00:19:16,930 --> 00:19:19,230 of die antwoord, eerder; 383 00:19:19,230 --> 00:19:22,050 Die antwoord was dat 384 00:19:22,050 --> 00:19:25,850 'n while lus sal kyk om te sien as die toestand 385 00:19:25,850 --> 00:19:27,440 dat u spesifiseer voldoen word 386 00:19:27,440 --> 00:19:31,320 voordat dit loop die liggaam van die lus vir die eerste keer, 387 00:19:31,320 --> 00:19:35,000 terwyl die do-while lus word outomaties op die liggaam van die lus, 388 00:19:35,000 --> 00:19:38,450 is wat ons noem dit - dit is weird terminologie, 389 00:19:38,450 --> 00:19:41,460 maar as ek ooit iets sê wat nie sin maak nie, laat my weet - 390 00:19:41,460 --> 00:19:45,360 die lus liggaam is die dinge wat jy het in tussen die kode tussen krulhakies. 391 00:19:45,360 --> 00:19:47,840 En in 'n do-while lus, 392 00:19:47,840 --> 00:19:50,220 daardie liggaam kry ten minste een keer uitgevoer word, 393 00:19:50,220 --> 00:19:54,460 en dan is die toestand kry nagegaan voordat dit loop elke opeenvolgende tyd. 394 00:19:54,460 --> 00:19:56,580 >> So eintlik, Sam, 395 00:19:56,580 --> 00:20:00,820 dink jy nie die skryf van 'n eenvoudige, terwyl lus 396 00:20:00,820 --> 00:20:02,840 in ruimtes? 397 00:20:02,840 --> 00:20:05,600 >> Hoe sorteer jy soos 398 00:20:05,600 --> 00:20:07,060 'n nuwe ...? 399 00:20:07,060 --> 00:20:09,220 Ek het net verwyder wat jy daar. 400 00:20:09,220 --> 00:20:11,300 Ja, duidelik is dit net uit. 401 00:20:11,300 --> 00:20:14,510 >> Wel, ek glo dat ek dit met - 402 00:20:14,510 --> 00:20:16,640 watter een dink jy wil, 'n rukkie, of wil jy ...? 403 00:20:16,640 --> 00:20:19,350 Ja, nie net 'n rukkie waar, druk iets uit. 404 00:20:21,050 --> 00:20:23,140 En laat ons sien. 405 00:20:23,140 --> 00:20:25,850 Alexander, het ek besef dat ons nooit lei jy. 406 00:20:25,850 --> 00:20:27,510 >> O, dit is fyn. 407 00:20:27,510 --> 00:20:30,760 Het jy - kan jy kodeer 'n do-while lus vir ons? 408 00:20:30,760 --> 00:20:32,520 >> Ja, ek sal probeer. 409 00:20:32,520 --> 00:20:34,370 Alle reg, ons sal net trek hierdie op die skerm, 410 00:20:34,370 --> 00:20:38,240 so dat jy soort van 'n handvatsel op wat die verskille is. 411 00:20:38,240 --> 00:20:41,280 >> So hier is wat Sam gedoen. 412 00:20:41,280 --> 00:20:44,460 Hy het 'n heelgetal met die naam i 413 00:20:44,460 --> 00:20:47,480 dat hy geïnisialiseer tot 17. 414 00:20:47,480 --> 00:20:51,570 Dan sê hy terwyl (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("My naam is Sam."); 416 00:20:54,230 --> 00:20:57,300 So wat gebeur wanneer ons hierdie kode? 417 00:20:57,300 --> 00:21:00,340 Daar is 'n fout, wat sê die fout? 418 00:21:00,340 --> 00:21:02,890 Kom ons trek dit en praat daaroor. 419 00:21:02,890 --> 00:21:05,040 'N fout, dit sê. 420 00:21:05,040 --> 00:21:07,400 Kom ons scroll down. 421 00:21:07,400 --> 00:21:09,460 So is dit aan ons gegee het hierdie fout, en dit het gesê, 422 00:21:09,460 --> 00:21:12,690 "Hey, ek verwag 'n uitdrukking." 423 00:21:12,690 --> 00:21:16,180 Dit is kinda kriptiese. 424 00:21:19,160 --> 00:21:23,140 Ja, so presies en weer, 425 00:21:23,140 --> 00:21:27,140 sal daar nog 'n klein fout dat ons sal vang in net 'n sekonde. 426 00:21:27,140 --> 00:21:31,800 Maar dit is nog een van daardie soort vreemde terminologie dinge, 427 00:21:31,800 --> 00:21:36,150 so hierdie int i = 17 428 00:21:36,150 --> 00:21:39,290 is nie 'n uitdrukking. 429 00:21:39,290 --> 00:21:41,220 Wat dit lyk asof dit doen, is dit is 430 00:21:41,220 --> 00:21:43,410 verklaar 'n heelgetal met die naam i 431 00:21:43,410 --> 00:21:45,540 en die opstel van dit gelyk aan 17 432 00:21:45,540 --> 00:21:48,780 of, eerder, om 17 in daardie int genaamd i. 433 00:21:50,560 --> 00:21:53,350 En dit maak nie sin nie 434 00:21:53,350 --> 00:21:55,790 in die konteks van hierdie while lus. 435 00:21:55,790 --> 00:21:58,190 Dit maak sin, soos ons sal sien, 436 00:21:58,190 --> 00:22:01,250 in die konteks van 'n lus, want vir lus verklarings nie begin 437 00:22:01,250 --> 00:22:05,800 int i gelyk aan iets 438 00:22:05,800 --> 00:22:07,830 en gaan op. 439 00:22:07,830 --> 00:22:09,500 >> So het jy - 440 00:22:09,500 --> 00:22:12,630 los iets, alles reg. 441 00:22:12,630 --> 00:22:15,270 Hier gaan dit; awesome. 442 00:22:15,270 --> 00:22:17,920 So nou is dinge 'n bietjie anders lyk. 443 00:22:17,920 --> 00:22:19,030 'N paar van die dinge wat verander het. 444 00:22:19,030 --> 00:22:21,300 Kan jy ons vertel die dinge wat verander het? 445 00:22:21,300 --> 00:22:24,950 >> Ek het uit die int, so daar is geen verklaring [onhoorbaar] in plaas van 'n opdrag. 446 00:22:24,950 --> 00:22:28,770 Die een-gelyk-aan-teken, ek het 2 gelyke tekens, wat beteken dat 'n gelykes. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Ja, so wat Sam gedoen het, was hy die int 449 00:22:33,320 --> 00:22:35,770 wat reg was hier vroeër, 450 00:22:35,770 --> 00:22:39,340 so as ek net kyk na hierdie - dit is wat dit vroeër was, het hy gesê int, 451 00:22:39,340 --> 00:22:41,970 wat verklaar dat dit - so het ons uit die tipe. 452 00:22:41,970 --> 00:22:44,710 Daar is int, char, string, kort, 453 00:22:44,710 --> 00:22:47,380 dié tipes genoem word. 454 00:22:47,380 --> 00:22:49,510 So jy het die tipe 455 00:22:49,510 --> 00:22:51,580 en dan voorheen, 456 00:22:51,580 --> 00:22:54,190 hy het net die single gelykaanteken 457 00:22:54,190 --> 00:22:57,300 en wat hy gesê het was problematies hieroor is 458 00:22:57,300 --> 00:22:59,580 wanneer jy 1 is gelyk aan teken, 459 00:22:59,580 --> 00:23:01,780 Dit is 'n opdrag operateur. 460 00:23:01,780 --> 00:23:04,930 Dit is nie die toets of 2 dinge gelyk is. 461 00:23:04,930 --> 00:23:07,920 Dit is eintlik die opstel van iets gelyk na iets. 462 00:23:07,920 --> 00:23:11,110 Ons is om die nommer 17 in die veranderlike i. 463 00:23:11,110 --> 00:23:13,850 So daardie soort van vergelyking te doen, 464 00:23:13,850 --> 00:23:16,430 jy die dubbele gelyk aan, 465 00:23:16,430 --> 00:23:19,640 wat is 'n soort van 'n vreemde ding 466 00:23:19,640 --> 00:23:22,760 maar dit is 'n redelik algemene fout. 467 00:23:23,980 --> 00:23:27,830 En 'n ander ding sal ek daarop wys, as jy nie omgee nie, 468 00:23:27,830 --> 00:23:30,610 is dat in 469 00:23:30,610 --> 00:23:33,210 ons funksie hier in int hoof, 470 00:23:33,210 --> 00:23:36,740 jy sien dat die liggaam van ons funksie 471 00:23:36,740 --> 00:23:39,810 verplasing vanaf die linkerkant 472 00:23:39,810 --> 00:23:42,400 4 spasies of 'n blad. 473 00:23:42,400 --> 00:23:44,730 Die rede waarom ons dit doen 474 00:23:44,730 --> 00:23:47,000 is net vir leesbaarheid. 475 00:23:47,000 --> 00:23:51,620 Soos jy kan sien hier in Sam se while lus, 476 00:23:51,620 --> 00:23:53,120 hy het nie streepje at all, 477 00:23:53,120 --> 00:23:55,390 en dit het geen invloed op die funksionaliteit van die kode. 478 00:23:55,390 --> 00:23:57,860 Dit sal loop presies dieselfde. 479 00:23:57,860 --> 00:24:00,950 >> So byvoorbeeld, as ons op die top hier 480 00:24:00,950 --> 00:24:02,680 en ons "Play" knoppie druk, sal dit bou, 481 00:24:02,680 --> 00:24:04,470 dit sal hardloop, 482 00:24:04,470 --> 00:24:06,700 en wat gaan gebeur? 483 00:24:06,700 --> 00:24:08,360 Waarom dit nie nog sê? 484 00:24:08,360 --> 00:24:10,560 >> Omdat dit sal aanhou herhaal hi. 485 00:24:10,560 --> 00:24:12,900 Presies, en waarom hou dit herhaal hi? 486 00:24:12,900 --> 00:24:15,850 >> Omdat die heelgetal nooit verander nie, so dit is altyd 17. 487 00:24:15,850 --> 00:24:18,030 Ja, presies, so 488 00:24:18,030 --> 00:24:20,970 Kom ons kyk, na - herinner my weer van jou naam? 489 00:24:20,970 --> 00:24:24,020 Jimmy. So Jimmy het gesê dat 490 00:24:24,020 --> 00:24:27,340 die rede waarom dit bly herhaal hi oor en oor weer 491 00:24:27,340 --> 00:24:30,510 is omdat hierdie toestand is altyd waar. 492 00:24:30,510 --> 00:24:33,270 Ons het nooit verander nie die waarde van i. 493 00:24:33,270 --> 00:24:36,170 Ons het nooit verander nie die inhoud van wat in daardie veranderlike gestoor. 494 00:24:36,170 --> 00:24:39,180 Dus, op hierdie punt ons het hierdie fout wat 495 00:24:39,180 --> 00:24:42,170 jou program gegenereer te veel uitset, 496 00:24:42,170 --> 00:24:45,100 en as ons scroll down en soort van kyk na wat hier aangaan nie, 497 00:24:45,100 --> 00:24:49,160 kan jy sien dat dit is hi, hi, hi, hi, hi, hi, hi al die pad deur. 498 00:24:49,160 --> 00:24:51,200 Awesome. 499 00:24:51,200 --> 00:24:53,750 >> So soort van terug na die oorspronklike punt 500 00:24:53,750 --> 00:24:57,020 dat dit die inkeping hier 501 00:24:57,020 --> 00:25:00,110 in die liggaam van die while lus het geen invloed op enigiets. 502 00:25:00,110 --> 00:25:03,050 Die program is nog steeds hardloop net 'n boete. 503 00:25:03,050 --> 00:25:06,790 Tipies vir die goeie styl - 504 00:25:06,790 --> 00:25:10,210 en dit is iets wat ons sien in jou probleem stelle - 505 00:25:10,210 --> 00:25:13,930 vra ons u om streepje deur 4 ruimtes, wat jy kan doen 506 00:25:13,930 --> 00:25:16,440 deur net druk op die Tab-sleutel 507 00:25:16,440 --> 00:25:18,860 of deur die hand om in 4 ruimtes jouself. 508 00:25:21,880 --> 00:25:25,050 Cool, okay so laat ons gaan terug en kyk na 509 00:25:25,050 --> 00:25:30,460 Alexander se do-while. 510 00:25:30,460 --> 00:25:32,980 >> Net kinda met 'n bietjie moeite. 511 00:25:32,980 --> 00:25:34,390 Ok, laat ons werk deur dit. 512 00:25:34,390 --> 00:25:36,400 Is dit koel? 513 00:25:36,400 --> 00:25:37,430 >> Ja. 514 00:25:37,430 --> 00:25:39,200 >> Okay, so hier gaan ons. 515 00:25:39,200 --> 00:25:41,010 Dit is die kode wat Alexander geskryf. 516 00:25:41,010 --> 00:25:43,410 Gaan jy deur Alex - okay. 517 00:25:43,410 --> 00:25:46,380 So hier is die kode wat Alex geskryf het. 518 00:25:46,380 --> 00:25:50,500 So, ons het ons verklaring van die belangrikste reg hier, 519 00:25:50,500 --> 00:25:54,410 en dan het ons het hierdie heelgetal veranderlike genoem i 520 00:25:54,410 --> 00:25:57,320 verklaar word hier. 521 00:25:57,320 --> 00:26:01,060 Ons het 'n do verklaring 522 00:26:01,060 --> 00:26:04,600 en dan weer die liggaam met hierdie draadjies, 523 00:26:04,600 --> 00:26:06,520 so dit is die liggaam van die do-while - 524 00:26:06,520 --> 00:26:09,210 laat my zoom in op hierdie, sodat dit meer leesbaar is - 525 00:26:09,210 --> 00:26:12,730 en in die liggaam, ons probeer om te druk "Dit is die liggaam", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 so inkrementeer die inhoud van i en doen dit 528 00:26:17,710 --> 00:26:19,470 totdat ek kry te wees 3, 529 00:26:19,470 --> 00:26:22,440 en dan ons program eindig. 530 00:26:22,440 --> 00:26:24,680 >> So wat gebeur wanneer ons hierdie program? 531 00:26:24,680 --> 00:26:27,580 >> Ek verwag 'n identifiseerder. 532 00:26:27,580 --> 00:26:32,070 Okay, so bou, hardloop, foute voorkom. 533 00:26:32,070 --> 00:26:34,820 Wat gebeur? 534 00:26:34,820 --> 00:26:37,060 Ons scroll down hier, 535 00:26:37,060 --> 00:26:40,260 kry ons hierdie ietwat kripties soek ding, 536 00:26:40,260 --> 00:26:43,930 verwag kommapunt na die boonste vlak verklaring. 537 00:26:43,930 --> 00:26:46,620 Dit is kinda weird. 538 00:26:46,620 --> 00:26:50,990 Het enige iemand 'n idee van wat kan gaan op? 539 00:26:53,080 --> 00:26:54,640 Kinda weird, ja. 540 00:26:54,640 --> 00:26:57,640 >> [Onhoorbaar] buite die hakies verklaar word? 541 00:26:57,640 --> 00:27:03,480 So beteken dit dan nie toe te pas wanneer jy gebruik tussen hakies? 542 00:27:03,480 --> 00:27:07,390 So het hy verklaar dat hierdie man buite wat tussen hakies? 543 00:27:09,670 --> 00:27:12,240 O, hierdie ouens - die krullerige draadjies? 544 00:27:12,240 --> 00:27:13,850 >> Ja. 545 00:27:13,850 --> 00:27:15,310 Ja, presies. 546 00:27:15,310 --> 00:27:17,120 So dit blyk dat 547 00:27:17,120 --> 00:27:21,550 jy kan eintlik nie 'n veranderlike verklaar hier soos hierdie. 548 00:27:23,750 --> 00:27:26,690 Wat jy kon gewees het probeer om te doen - 549 00:27:26,690 --> 00:27:30,110 sny dit uit daar - 550 00:27:30,110 --> 00:27:34,330 jy kan dit binne die kode tussen krulhakies hier 551 00:27:34,330 --> 00:27:37,400 of 'n ander alternatief 552 00:27:37,400 --> 00:27:40,350 is dit heeltemal buite te sit. 553 00:27:42,480 --> 00:27:46,610 En so het hierdie - afhangende van waar jy eintlik sit die verklaring 554 00:27:46,610 --> 00:27:48,550 van daardie heelgetal veranderlike, 555 00:27:48,550 --> 00:27:53,540 2 baie verskillende soorte veranderlikes wat jy kan kry; 556 00:27:53,540 --> 00:27:55,100 wanneer dit buite is van die hoof, 557 00:27:55,100 --> 00:27:58,240 Dit is wat ons noem 'n globale veranderlike. 558 00:27:58,240 --> 00:28:00,070 Dit is buite die bestek van enige van die funksies - 559 00:28:00,070 --> 00:28:03,420 dit is nie in 'n funksie - 560 00:28:03,420 --> 00:28:07,050 dat as ons dit binnekant van die hoof, 561 00:28:07,050 --> 00:28:10,000 graag reg hier, dan is dit 'n plaaslike veranderlike genoem, 562 00:28:10,000 --> 00:28:13,830 want dit is die plaaslike tot die omvang van die belangrikste. 563 00:28:13,830 --> 00:28:16,720 En ons sal 'n bietjie meer praat oor wat die verskille is 564 00:28:16,720 --> 00:28:20,970 tussen die 2 tipes en waarom jy die gebruik van verskillende veranderlikes, 565 00:28:20,970 --> 00:28:23,040 maar vir nou, 566 00:28:23,040 --> 00:28:25,070 kan jy hou net al die veranderlikes plaaslike, 567 00:28:25,070 --> 00:28:28,320 want ons het nie 'n behoefte vir globale veranderlikes. 568 00:28:28,320 --> 00:28:31,390 >> Okay, so dit is een ding reg daar. 569 00:28:31,390 --> 00:28:34,680 Kom ons probeer om dit weer, kyk wat gebeur. 570 00:28:37,420 --> 00:28:40,270 Hardloop, kry 'n ander fout. 571 00:28:40,270 --> 00:28:43,320 Zoom in 'n bietjie, wat doen ons? 572 00:28:45,110 --> 00:28:50,000 Ons kry hierdie verwagte hakies na doen / terwyl. 573 00:28:53,660 --> 00:28:55,260 Enige idees wat gaan aan? Dan? 574 00:28:55,260 --> 00:28:58,880 >> Is die rukkie dan hakies en dan - 575 00:28:58,880 --> 00:29:01,990 Ek weet nie of jy moet int redeclare, 576 00:29:01,990 --> 00:29:04,980 maar die doen terwyl (i <3). 577 00:29:04,980 --> 00:29:06,930 Presies, ja. 578 00:29:06,930 --> 00:29:08,830 So dit blyk dat Dan is presies reg. 579 00:29:08,830 --> 00:29:11,230 Ons hoef nie hierdie tipe weer hier sit. 580 00:29:11,230 --> 00:29:14,440 Ons kan eerder die dood van die tipe 581 00:29:14,440 --> 00:29:17,220 en net dit te doen. 582 00:29:19,270 --> 00:29:21,640 Alles reg. 583 00:29:21,640 --> 00:29:24,950 Ek kom terug uitzoomen, probeer om dit een keer. 584 00:29:26,360 --> 00:29:29,580 Kyk, dit loop suksesvol. 585 00:29:29,580 --> 00:29:33,260 As ons scroll down, "dit is die liggaam" uit 3 keer gedruk. 586 00:29:33,260 --> 00:29:35,820 Dit is redelik soet. 587 00:29:35,820 --> 00:29:38,670 Goed gedoen het, goed gedoen, ouens. 588 00:29:38,670 --> 00:29:41,080 Goed gedoen. 589 00:29:41,080 --> 00:29:43,250 Hoe is dit gaan so ver? 590 00:29:43,250 --> 00:29:46,200 Ordentlike tempo? 591 00:29:46,200 --> 00:29:49,200 Okay, cool. 592 00:29:49,200 --> 00:29:52,590 >> So, as ons soort van terug na die oorspronklike vraag, 593 00:29:52,590 --> 00:29:55,430 ons - en as ons nou die verskil sien, 594 00:29:55,430 --> 00:29:58,240 jy sien dat in hierdie do-while lus, 595 00:29:58,240 --> 00:30:00,030 die toestand kom laaste. 596 00:30:00,030 --> 00:30:02,530 So as die rekenaar lees die program 597 00:30:02,530 --> 00:30:06,050 aangesien C programme soort uitgevoer in hierdie volgorde, 598 00:30:06,050 --> 00:30:09,450 waar hulle letterlik begin met die eerste reël van die hoof, 599 00:30:09,450 --> 00:30:13,450 en dan voer lyn 6, lyn 7, reël 8, lyn 9, 600 00:30:13,450 --> 00:30:16,150 lyn 10, lyn 11, 601 00:30:16,150 --> 00:30:18,440 al hierdie dinge reg hier aan die bokant 602 00:30:18,440 --> 00:30:20,020 is om een ​​maal te gaan voer 603 00:30:20,020 --> 00:30:23,350 voordat ons ooit hierdie toestand te toets om te sien 604 00:30:23,350 --> 00:30:26,240 of ek of die inhoud van i, eerder - 605 00:30:26,240 --> 00:30:29,750 is minder as die nommer 3. 606 00:30:29,750 --> 00:30:33,300 En slegs indien sodra ons kry om lyn 12, 607 00:30:33,300 --> 00:30:36,260 die inhoud van i is minder as 3 608 00:30:36,260 --> 00:30:39,150 ons eintlik terug spring tot lyn 7 609 00:30:39,150 --> 00:30:41,140 en dan herhaal die proses, 610 00:30:41,140 --> 00:30:44,620 en dan het ons die toets van die toestand weer en weer en weer. 611 00:30:44,620 --> 00:30:47,440 >> Sodat ons kan kontrasteer hierdie 612 00:30:47,440 --> 00:30:50,240 met - inzoomen terug uit, 613 00:30:50,240 --> 00:30:56,500 scroll af na Sam se weergawe, 614 00:30:56,500 --> 00:31:00,760 ons gaan kyk na hierdie, effens verander sodat dit nie meer 'n oneindige lus - 615 00:31:00,760 --> 00:31:03,570 waar as ons zoom in, 616 00:31:03,570 --> 00:31:06,300 sien ons dat as hierdie program uitvoer, 617 00:31:06,300 --> 00:31:09,120 dit gaan om eers verklaar int i, 618 00:31:09,120 --> 00:31:12,030 stel die inhoud van i na 0, 619 00:31:12,030 --> 00:31:15,820 en dan is dit treffers die toestand van die while lus 1, 620 00:31:15,820 --> 00:31:19,210 in hierdie geval, hierdie liggaam, hierdie printf ("hi") en i + + 621 00:31:19,210 --> 00:31:21,630 sal nie eens te voer 622 00:31:21,630 --> 00:31:24,310 tensy ek is eintlik minder as of gelyk aan 2. 623 00:31:24,310 --> 00:31:26,750 So as ek 3, byvoorbeeld, 624 00:31:26,750 --> 00:31:28,840 as ons hierdie reg hier 625 00:31:28,840 --> 00:31:32,160 gelyk is aan 4 - of ek 3 sal doen nie, want Ek het gesê 3 - 626 00:31:32,160 --> 00:31:34,890 en dan loop dit, 627 00:31:34,890 --> 00:31:38,320 dit sal bou, dit sal loop heeltemal fyn, 628 00:31:38,320 --> 00:31:40,530 maar dit sal nie eintlik druk enigiets, 629 00:31:40,530 --> 00:31:43,030 omdat dit nie dat die toets vir die eerste geval. 630 00:31:44,780 --> 00:31:47,530 Dus, in die klas, het ons soort gepraat oor waarom hierdie do-while loops 631 00:31:47,530 --> 00:31:49,800 is nuttig soms 632 00:31:49,800 --> 00:31:53,140 en hoekom sou ons dit gebruik, in teenstelling met 'n while lus. 633 00:31:53,140 --> 00:31:56,450 >> Is daar - julle enige voorstelle het 634 00:31:56,450 --> 00:31:59,090 want waarom 'n do-while lus sou wees meer bruikbaar? 635 00:31:59,090 --> 00:32:02,560 >> Wel, ek dink do-while loops is as jy wil die toevoer van die gebruiker, 636 00:32:02,560 --> 00:32:05,020 want die manier wat jy kan laat hulle 637 00:32:05,020 --> 00:32:07,780 iets in een keer, indien dit korrek is, 638 00:32:07,780 --> 00:32:09,300 ons kan beweeg op die res van die program, 639 00:32:09,300 --> 00:32:11,250 maar as dit nie korrek is nie, dan kan jy hou waarna die gebruiker 640 00:32:11,250 --> 00:32:13,250 totdat jy het die reg om insette. 641 00:32:13,250 --> 00:32:14,260 Ja, presies presies, 642 00:32:14,260 --> 00:32:16,840 so 'n do-while lus is nuttig 643 00:32:16,840 --> 00:32:18,930 want wanneer jy vir die toevoer van die gebruiker te vra 644 00:32:18,930 --> 00:32:23,000 want jy moet die gebruiker se insette te kry voordat jy dit kan eintlik gaan. 645 00:32:23,000 --> 00:32:27,330 So in pset 1, in pset 2, 646 00:32:27,330 --> 00:32:29,650 waar jy aansporing vir die toevoer van die gebruiker om 'n baie, 647 00:32:29,650 --> 00:32:31,200 wat is 'n handige ding om te gebruik 648 00:32:31,200 --> 00:32:33,740 eerder as om net 'n eenvoudige while lus. 649 00:32:33,740 --> 00:32:36,780 As jy 'n while lus het, kan jy dieselfde ding doen - 650 00:32:36,780 --> 00:32:38,750 jy kan dieselfde ding doen met 'n while lus 651 00:32:38,750 --> 00:32:40,580 as jy dit doen met 'n do-while lus. 652 00:32:40,580 --> 00:32:43,380 Jy moet net soort van hierdie dubbele proses 653 00:32:43,380 --> 00:32:47,010 waar jy die inset eerste en dan begin jou while lus. 654 00:32:47,010 --> 00:32:49,800 AANGESIEN dat 'n do-while lus, jy moet net om dit een keer te skryf 655 00:32:49,800 --> 00:32:52,430 en dit is 'n baie skoner. 656 00:32:52,430 --> 00:32:54,650 >> Alles reg. 657 00:32:55,970 --> 00:32:57,330 Enige vrae? 658 00:32:59,350 --> 00:33:01,380 Sin maak? 659 00:33:01,380 --> 00:33:06,200 >> Die opbrengs 0 - dit is net 'n soort van 'n stalletjie of is dit? 660 00:33:06,200 --> 00:33:08,960 Ja, sodat ons kan - 661 00:33:08,960 --> 00:33:11,960 goed, sal ons dek dit 'n bietjie meer later 662 00:33:11,960 --> 00:33:13,290 maar dit blyk dat 663 00:33:13,290 --> 00:33:15,720 hierdie opgawe 0 wat ons 664 00:33:15,720 --> 00:33:19,090 aan die einde van die belangrikste al die tyd - 665 00:33:19,090 --> 00:33:21,980 jy kan net kinda neem dit as iets wat ons doen 666 00:33:21,980 --> 00:33:24,930 vir die oomblik. 667 00:33:24,930 --> 00:33:28,860 Wat het ons begin om te praat oor met funksies 668 00:33:28,860 --> 00:33:31,600 soort van aan die einde van verlede week en dan weer hierdie week 669 00:33:31,600 --> 00:33:33,550 is dat 'n funksie 670 00:33:33,550 --> 00:33:37,680 neem insette wat hierdie dinge binne die hakies is; 671 00:33:37,680 --> 00:33:41,690 dit is 2 insette, ons argumente of parameters, 672 00:33:41,690 --> 00:33:44,540 wat hulle ook geroep om ons vernaamste funksie, 673 00:33:44,540 --> 00:33:48,510 en dan 'n funksie 'n uitset produseer 674 00:33:48,510 --> 00:33:51,290 wat ons noem 'n opbrengs waarde. 675 00:33:51,290 --> 00:33:56,260 En die terugkeer waarde in die geval van die belangrikste is hierdie int 676 00:33:56,260 --> 00:33:58,320 hierdie heelgetal is, 677 00:33:58,320 --> 00:34:01,160 en die manier waarop jy 'n funksie vertel, "Hey, dit is wat jou uitset 678 00:34:01,160 --> 00:34:05,840 gaan wees, "met hierdie woord" return "is, 679 00:34:05,840 --> 00:34:07,960 die navraag, maar eerder, 680 00:34:07,960 --> 00:34:11,000 en so hoof terugkeer 0 681 00:34:11,000 --> 00:34:13,389 of hoof printer 0 682 00:34:13,389 --> 00:34:15,139 is standaard in C-programme 683 00:34:15,139 --> 00:34:18,110 omdat terugkeer 0 van hoof beteken dat 684 00:34:18,110 --> 00:34:21,600 "Hey, alles uitgevoer met my program net 'n boete." 685 00:34:21,600 --> 00:34:24,639 As ons iets anders te maak as 0, 686 00:34:24,639 --> 00:34:27,440 soos 1, byvoorbeeld, 687 00:34:27,440 --> 00:34:31,080 wat gebruik word om te vertel wie hierdie program hardloop 688 00:34:31,080 --> 00:34:33,540 dat iets verkeerd geloop het. 689 00:34:35,739 --> 00:34:39,989 So as ons meer betrokke raak met die dinge oor die semester, 690 00:34:39,989 --> 00:34:42,670 as jy ooit hoef te sê, 691 00:34:42,670 --> 00:34:46,650 "Oeps, jy weet, iets het verkeerd gegaan met hierdie program," 692 00:34:46,650 --> 00:34:49,409 eerder as om my program crash, ek wil in kennis te stel 693 00:34:49,409 --> 00:34:52,310 die voorloper van my program dat iets verkeerd geloop het, 694 00:34:52,310 --> 00:34:54,530 jy kan gebruik om return value, 695 00:34:54,530 --> 00:34:57,230 soos ons dit noem, dis nie 0. 696 00:35:00,180 --> 00:35:02,240 >> So ons sal dek wat 'n bietjie meer 697 00:35:02,240 --> 00:35:05,480 wanneer ons in funksies. 698 00:35:05,480 --> 00:35:09,030 Dat die soort van sin maak? 699 00:35:09,030 --> 00:35:11,240 Okay. 700 00:35:11,240 --> 00:35:13,530 Funksies is soort van bisarre - 701 00:35:13,530 --> 00:35:17,270 Ek dink vir mense wat baie van wiskunde agtergrond het, 702 00:35:17,270 --> 00:35:20,100 dit kom 'n bietjie makliker, 703 00:35:20,100 --> 00:35:22,540 veral as jy 'n bietjie meer abstrakte wiskunde agtergrond 704 00:35:22,540 --> 00:35:24,240 en jy gebruik om te praat oor funksies 705 00:35:24,240 --> 00:35:27,370 en al daardie soort van dinge. 706 00:35:28,590 --> 00:35:30,610 Maar ons sal probeer en bedek dit 707 00:35:30,610 --> 00:35:33,280 en gaan mooi en stadig soos hulle kom. 708 00:35:34,730 --> 00:35:37,870 Net so, hierdie hele int argc, 709 00:35:37,870 --> 00:35:41,090 char * bevat SPASIES [], 710 00:35:41,090 --> 00:35:44,960 vir nou, kan jy ook dat as die ketel plaat. 711 00:35:46,650 --> 00:35:49,050 Ons het begin om diegene wat 'n bietjie in die lesing te dek 712 00:35:49,050 --> 00:35:53,060 wanneer ons praat oor die argumente wat in programme geslaag kry op die command line, 713 00:35:53,060 --> 00:35:55,700 maar in jou probleem stelle en jou programme, 714 00:35:55,700 --> 00:35:58,760 dit is heeltemal fyn net leemte te skryf en hou dit eenvoudig. 715 00:35:58,760 --> 00:36:01,490 En wat hierdie leemte beteken is dat 716 00:36:01,490 --> 00:36:04,630 "Hey, hoof gaan nie enige insette te aanvaar; 717 00:36:04,630 --> 00:36:07,440 dit is net 'n program wat ons gaan net hardloop. 718 00:36:07,440 --> 00:36:09,320 Ons is nie gonna gee dit enige ekstra inligting 719 00:36:09,320 --> 00:36:12,420 elke keer as ons begin dit begin hardloop. " 720 00:36:14,730 --> 00:36:16,600 So vir nou, kan jy dit doen; 721 00:36:16,600 --> 00:36:19,710 jy kan selfs ook laat die terugkeer 0 722 00:36:19,710 --> 00:36:22,650 aan die einde van jou programme en sal hulle hardloop net 'n boete, 723 00:36:22,650 --> 00:36:26,150 maar ek raai net hou dat. 724 00:36:26,150 --> 00:36:28,320 In 'n paar weke, sal ons begin om te soort van 725 00:36:28,320 --> 00:36:31,340 trek terug die dekking 'n bietjie en verstaan ​​meer oor 726 00:36:31,340 --> 00:36:34,380 al die verskillende klein bewegende dele. 727 00:36:34,380 --> 00:36:38,160 >> Alle reg, nou, laat ons praat oor ons tweede vraag hier. 728 00:36:38,160 --> 00:36:43,190 So, wat "onverklaarde identifiseerder" is gewoonlik 'n aanduiding 729 00:36:43,190 --> 00:36:46,040 indien outputted deur kletteren? 730 00:36:46,040 --> 00:36:49,290 Ek dink ons ​​kan reeds vandag gesien. 731 00:36:51,170 --> 00:36:54,370 Kan iemand gee 'n herhaling van wat dit beteken? 732 00:36:54,370 --> 00:36:57,680 Kom ons kyk, Kelly - een van Kelly. 733 00:37:02,580 --> 00:37:05,300 >> So - 734 00:37:05,300 --> 00:37:07,080 Ja, wat doen - 735 00:37:07,080 --> 00:37:10,140 >> Ek dink dat wanneer jy, soos, nie die veranderlikes verklaar en jy probeer om dit te gebruik. 736 00:37:10,140 --> 00:37:13,310 Ja, presies, presies. 737 00:37:13,310 --> 00:37:15,250 So as jy ooit sien hierdie uitset 738 00:37:15,250 --> 00:37:17,690 wanneer jy probeer en stel jou program, 739 00:37:17,690 --> 00:37:19,470 net soos Kelly gesê het, 740 00:37:19,470 --> 00:37:24,210 dit beteken dat jy gebruik om 'n veranderlike wat jy nie verklaar, 741 00:37:24,210 --> 00:37:28,460 so as ek gaan terug na ons ruimte, 742 00:37:28,460 --> 00:37:31,150 en ek iets doen soos 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Hallo% s") 745 00:37:40,070 --> 00:37:42,440 en probeer en vul in wat% s 746 00:37:42,440 --> 00:37:45,640 met 'n veranderlike is dat ek nie verklaar oral 747 00:37:45,640 --> 00:37:48,330 en ek probeer om dit uit te voer, 748 00:37:48,330 --> 00:37:51,330 jy sal sien wat ek kry op hierdie bodem hier: 749 00:37:51,330 --> 00:37:54,010 "Die gebruik van onverklaarde identifiseerder 's'"; 750 00:37:54,010 --> 00:37:57,710 wat beteken dat jy nie jou veranderlike verklaar. 751 00:37:57,710 --> 00:38:00,750 Dieselfde ding gebeur as 752 00:38:00,750 --> 00:38:05,240 jy het x en jy probeer en stoor 7 in 753 00:38:05,240 --> 00:38:08,720 en ek het nie verklaar X. 754 00:38:08,720 --> 00:38:10,200 Ek kry daardie selfde fout: 755 00:38:10,200 --> 00:38:13,480 "Gebruik van onverklaarde identifiseerder 'x'". 756 00:38:16,390 --> 00:38:18,250 >> Alles reg, 757 00:38:18,250 --> 00:38:21,720 sodat die keiser Cipher, nie baie veilig nie, 758 00:38:21,720 --> 00:38:24,590 Ek laat julle ouens kyk na hierdie kort, soort van verstaan ​​waarom, 759 00:38:24,590 --> 00:38:27,590 en hopelik na die doen van hierdie week se probleem wat 760 00:38:27,590 --> 00:38:29,270 waar jy eintlik skryf 'n Caesar Cipher, sal jy 'n bietjie meer verstaan 761 00:38:29,270 --> 00:38:32,600 oor wat dit beteken om 'n veilige en onseker - 762 00:38:36,180 --> 00:38:38,960 of nie veilig nie, ek dink - onseker is effens anders. 763 00:38:40,560 --> 00:38:43,140 Die ander ding is ons het hierdie ander vrae hier 764 00:38:43,140 --> 00:38:45,470 oor funksies 765 00:38:45,470 --> 00:38:47,330 en wat 'n funksie is, 766 00:38:47,330 --> 00:38:52,820 en ons soort gepraat oor wat kortliks toe ons gepraat oor die terugkeer waardes; 767 00:38:52,820 --> 00:38:54,560 vir iemand wat te doseer, 768 00:38:54,560 --> 00:38:57,790 kan jy herhaling wat al vandag te doseer? 769 00:38:57,790 --> 00:38:59,670 Alles reg. 770 00:39:01,210 --> 00:39:04,320 Laat ons sien, laat ons - kan iemand vir ons vertel wat 'n funksie is? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> >> Basies iets wat jy trek op iets wat geskryf is in die biblioteek wat is 773 00:39:11,260 --> 00:39:14,460 meer ingewikkeld is daar, en dan kan jy net skryf 'n kort vorm van dit, 774 00:39:14,460 --> 00:39:17,360 so soos jy verwys terug na daardie biblioteek, met behulp van 775 00:39:17,360 --> 00:39:19,650 almal wat lang-kode en [onhoorbaar]. 776 00:39:19,650 --> 00:39:22,680 Ja, presies, en dan jy wil iets byvoeg dat? 777 00:39:22,680 --> 00:39:27,050 >> Ja, ek dink oor dit as soortgelyk aan die konsep van 'n formule in wiskunde 778 00:39:27,050 --> 00:39:30,130 waar jy net skryf 'n formule en dan kan jy prop veranderlikes in 779 00:39:30,130 --> 00:39:32,660 en dit is wat 'n funksie is [onhoorbaar]. 780 00:39:32,660 --> 00:39:35,390 >> Ja, so ons het 'n paar van die antwoorde hier 781 00:39:35,390 --> 00:39:38,080 wat werklik is goed en reg op. 782 00:39:38,080 --> 00:39:43,040 Daar is verwys na kode wat geskryf is in die biblioteek iewers 783 00:39:43,040 --> 00:39:45,390 wat is meer ingewikkeld 784 00:39:45,390 --> 00:39:47,130 en dan kan jy teken op daardie kode 785 00:39:47,130 --> 00:39:50,480 en eintlik gebruik dit deur net die skryf van die kort vorm van - 786 00:39:50,480 --> 00:39:54,060 of, eerder, sy naam - 787 00:39:54,060 --> 00:39:57,590 en dan is daar ook die vergelyking met 'n formule in wiskunde 788 00:39:57,590 --> 00:40:00,400 of fisika, al daardie soort van dinge 789 00:40:00,400 --> 00:40:02,980 waar jy 'n formule 790 00:40:02,980 --> 00:40:05,690 en dan kan jy plug in 791 00:40:05,690 --> 00:40:08,100 die veranderlikes aan daardie formule 792 00:40:08,100 --> 00:40:11,130 en kry dan die resultaat van die formule, 793 00:40:11,130 --> 00:40:14,580 so jy dink oor dit as soos die kwadratiese vergelyking. 794 00:40:14,580 --> 00:40:17,690 Stel jou voor as eerder as om te leer oor 795 00:40:17,690 --> 00:40:21,310 wat die kwadratiese formule in wiskunde klas, 796 00:40:21,310 --> 00:40:24,610 jy moes net 'n bietjie sakrekenaar program wat het dit vir jou. 797 00:40:24,610 --> 00:40:28,930 Het enigiemand sakrekenaar programme in wiskunde klasse in die hoërskool? 798 00:40:28,930 --> 00:40:31,020 Ja, fisika klasse? 799 00:40:31,020 --> 00:40:34,670 Waar jy kan net sê, "Hey, kwadratiese formule. 800 00:40:34,670 --> 00:40:37,740 Dit is die veranderlikes wat ek wil invoer. 801 00:40:37,740 --> 00:40:40,250 Nou gee my die antwoord. " 802 00:40:40,250 --> 00:40:42,170 Dit is die soort wat 'n funksie is. 803 00:40:42,170 --> 00:40:44,850 Dit is 'n manier vir ons om 804 00:40:44,850 --> 00:40:47,720 soort van skryf soos 'n klein sub-program 805 00:40:47,720 --> 00:40:51,700 binne ons groter program 806 00:40:51,700 --> 00:40:55,090 en gebruik dit oor en oor weer 807 00:40:55,090 --> 00:40:58,380 sodat ons nie te kopieer en plak kode, 808 00:40:58,380 --> 00:41:04,220 ons kan gee verskillende insette en kry verskillende uitsette, 809 00:41:04,220 --> 00:41:07,090 dit is super handig 810 00:41:07,090 --> 00:41:11,420 wanneer jy probeer om op verskillende tye verskillende programme te kan skryf. 811 00:41:11,420 --> 00:41:14,580 >> So byvoorbeeld, 'n funksie wat ons het al met behulp van oor en oor en oor weer 812 00:41:14,580 --> 00:41:17,310 dwarsdeur die kursus is printf. 813 00:41:17,310 --> 00:41:19,680 Printf is self 'n funksie 814 00:41:19,680 --> 00:41:23,360 en dit blyk dat dit eintlik 'n redelik lang en ingewikkelde, 815 00:41:23,360 --> 00:41:26,420 nare soek, funksie te skryf. 816 00:41:26,420 --> 00:41:29,590 So eenvoudig soos dit lyk vir ons 817 00:41:29,590 --> 00:41:31,810 dinge uit te druk op die skerm, 818 00:41:31,810 --> 00:41:34,820 want ons almal het net gedoen wat aan die begin van die artikel vandag, 819 00:41:34,820 --> 00:41:36,870 dit blyk dat dit eintlik is, jy weet, 820 00:41:36,870 --> 00:41:39,900 'n goeie paar honderd lyne kode. 821 00:41:42,030 --> 00:41:45,620 Dit is nie iets wat ek ooit wil om te skryf, vir seker, 822 00:41:45,620 --> 00:41:47,480 maar ons kry dit elke dag gebruik, wat gaaf is, 823 00:41:47,480 --> 00:41:49,020 sodat ons dit met mekaar te deel, 824 00:41:49,020 --> 00:41:51,790 met verskillende programme, 825 00:41:51,790 --> 00:41:54,520 so ons sal duik meer in funksies; 826 00:41:54,520 --> 00:41:56,090 vir die oomblik, ons is nie - 827 00:41:56,090 --> 00:41:59,150 die enigste funksie wat ons gaan skryf is die hoof. 828 00:41:59,150 --> 00:42:01,570 Main self is ook 'n funksie, 829 00:42:01,570 --> 00:42:04,270 en jy kan sien dit het sy produksie, 830 00:42:04,270 --> 00:42:06,610 sy insette soos ons oor gepraat het, 831 00:42:06,610 --> 00:42:08,930 en dan sy naam, wat is die hoof. 832 00:42:08,930 --> 00:42:11,800 Main is 'n soort van 'n - is daar 'n spesiale funksie. 833 00:42:11,800 --> 00:42:14,800 In jou C-program, moet daar 'n hoof funksie, 834 00:42:14,800 --> 00:42:17,900 en so vir nou, ons het soort weggelaat skriftelik 835 00:42:17,900 --> 00:42:21,400 die prototipe, of die verklaring van, hoof. 836 00:42:21,400 --> 00:42:23,050 Ons gegee het wat aan u, 837 00:42:23,050 --> 00:42:25,650 en ons het net het jy soort van die spasies in te vul. 838 00:42:25,650 --> 00:42:29,120 >> >> Dus, vir die tweede probleem stel, het ons nie nodig het om te 839 00:42:29,120 --> 00:42:31,350 skryf dit in die tweede funksie? 840 00:42:31,350 --> 00:42:34,200 Ek dink nie so glo nie. 841 00:42:34,200 --> 00:42:37,600 Ek glo dit is al hier. 842 00:42:37,600 --> 00:42:41,710 Ja, so Caesar Cipher, 843 00:42:41,710 --> 00:42:45,000 jy nie hoef te, beteken dit nie lyk, 844 00:42:48,740 --> 00:42:53,150 en Vigenere, jy doen nie, 845 00:42:53,150 --> 00:42:56,400 so - en dit blyk jy nooit eintlik het om te skryf 846 00:42:56,400 --> 00:42:58,250 'n funksie, reg? 847 00:42:58,250 --> 00:43:01,950 Julle noem sit altyd al jou kode binne hoof, 848 00:43:01,950 --> 00:43:04,500 en baie programmeerders doen. 849 00:43:04,500 --> 00:43:07,130 Soos ons beweeg, 850 00:43:07,130 --> 00:43:09,480 ons begin met die bekendstelling van funksies as 'n manier 851 00:43:09,480 --> 00:43:11,530 om skoon te maak om jou kode, 852 00:43:11,530 --> 00:43:13,380 te maak dit meer elegant, 853 00:43:13,380 --> 00:43:16,890 in geval jy het take - soort van soos wanneer ons gepraat oor loops, 854 00:43:16,890 --> 00:43:20,400 hoe soms is daar dinge wat jy wil weer en weer en weer te doen, 855 00:43:20,400 --> 00:43:23,510 en jy het soort van die naïewe manier - 856 00:43:23,510 --> 00:43:26,360 of wat ons dikwels noem die "straw man" oplossing, 857 00:43:26,360 --> 00:43:29,390 is om net kopieer en plak oor en oor weer - 858 00:43:29,390 --> 00:43:31,000 jy kan dieselfde ding doen by funksies waar jy net kopieer en plak 859 00:43:31,000 --> 00:43:33,360 dieselfde kode oor en oor weer, 860 00:43:33,360 --> 00:43:35,750 maar dat kiezel jou kode - 861 00:43:35,750 --> 00:43:38,550 dit eindig om jou kode baie lang - 862 00:43:38,550 --> 00:43:41,550 en kry dit ook 'n bietjie verwarrend, 863 00:43:41,550 --> 00:43:43,470 en dan is dit beteken dat jy nie in staat is om te hou - 864 00:43:43,470 --> 00:43:45,250 as jy ooit wil dat die kode om weer te gebruik in 'n ander program, 865 00:43:45,250 --> 00:43:48,610 jy ook vas kopieer en plak dit weer, 866 00:43:48,610 --> 00:43:51,170 so een van die dinge wat ons sal praat oor is 867 00:43:51,170 --> 00:43:54,960 soort van ontwerp en styl van jou programme, 868 00:43:54,960 --> 00:43:57,010 en as dit sin maak soort 869 00:43:57,010 --> 00:43:59,800 pakket iets en sit dit as 'n aparte funksie, 870 00:43:59,800 --> 00:44:02,080 ons moedig u aan om dit te doen, 871 00:44:02,080 --> 00:44:04,700 en dit is iets wat, weer, 872 00:44:04,700 --> 00:44:07,790 daar is geen harde en vinnige reël. 873 00:44:07,790 --> 00:44:11,540 Ons het selde sê dat jy moet 'n funksie het hierdie skryf, 874 00:44:12,870 --> 00:44:16,320 maar dit is meer van een van daardie dinge wat jy net met verloop van tyd ontwikkel 875 00:44:16,320 --> 00:44:19,470 as jy skryf meer en meer programme. 876 00:44:21,940 --> 00:44:24,790 >> Nog meer vrae? 877 00:44:26,340 --> 00:44:30,610 Okay, so laat ons nou 878 00:44:30,610 --> 00:44:34,750 Gaan terug tot hierdie man hier, 879 00:44:34,750 --> 00:44:37,800 so ek is nog steeds in hierdie afdeling van die vrae. 880 00:44:37,800 --> 00:44:39,900 Ons het gepraat oor al hierdie verskillende mense, 881 00:44:39,900 --> 00:44:42,050 wat is 'n funksie, hoekom funksies te skryf, 882 00:44:42,050 --> 00:44:44,700 wanneer jy kan net kopieer en plak? 883 00:44:44,700 --> 00:44:47,700 Hopelik het ons daarvan oortuig dat die skryf van funksies is 'n goeie ding. 884 00:44:47,700 --> 00:44:50,870 So nou, laat ons gaan na hierdie MySpace program, 885 00:44:50,870 --> 00:44:53,080 en ons sal spandeer 'n bietjie tyd om dit te doen. 886 00:44:54,600 --> 00:44:56,480 >> So, laat ons sien, 887 00:44:56,480 --> 00:45:00,230 kan ek iemand dit gelees het, vir my? 888 00:45:02,640 --> 00:45:04,660 Let's het 'Mikhaila - sal jy lees dit vir ons? 889 00:45:07,660 --> 00:45:08,890 >> Jy bedoel terug wanneer MySpace 890 00:45:08,890 --> 00:45:10,920 Terug wanneer MySpace was cool. 891 00:45:10,920 --> 00:45:12,070 >> "Terug toe MySpace was koel, 892 00:45:12,070 --> 00:45:14,900 dit was al die woede te tik soos hierdie. 893 00:45:14,900 --> 00:45:17,320 Miskien is dit? Ek is nie seker nie. 894 00:45:17,320 --> 00:45:19,990 In elk geval, met behulp van die CS50 Appliance, 895 00:45:19,990 --> 00:45:22,600 CS50 Run, of CS50 Ruimtes, 896 00:45:22,600 --> 00:45:25,370 skryf 'n program wat die gebruiker vir 'n boodskap gevra 897 00:45:25,370 --> 00:45:29,350 en uitgange dan die boodskap met sy eerste brief gekapitaliseer, 898 00:45:29,350 --> 00:45:31,800 met al die ander letters in wisselende geval, 899 00:45:31,800 --> 00:45:34,010 soos per die onderstaande voorbeeld van die uitvoer, 900 00:45:34,010 --> 00:45:37,060 waarin boldfaced teks van sommige gebruiker se insette. 901 00:45:37,060 --> 00:45:39,800 Vir eenvoud, kan u aanvaar dat die gebruiker 902 00:45:39,800 --> 00:45:42,810 sal slegs insette klein letters en spasies. 903 00:45:42,810 --> 00:45:45,900 Beskou hierdie probleem 'n geleentheid om te oefen; 904 00:45:45,900 --> 00:45:48,640 jy sal nie gevra word om hierdie program in te dien. " 905 00:45:48,640 --> 00:45:51,640 >> Awesome, dankie. 906 00:45:51,640 --> 00:45:54,750 So as Mikhaila gesê, 907 00:45:54,750 --> 00:45:58,850 ons gaan om 'n program te skryf wat jou kode MySpaces. 908 00:45:58,850 --> 00:46:02,230 So het enige van julle ouens gebruik MySpace? 909 00:46:02,230 --> 00:46:04,100 Enige van julle MySpace rekeninge? 910 00:46:04,100 --> 00:46:05,920 O, ja, ja! 911 00:46:05,920 --> 00:46:08,300 Dit was pretty cool. 912 00:46:08,300 --> 00:46:09,950 [Lag] 913 00:46:09,950 --> 00:46:12,060 Ek weet. 914 00:46:12,060 --> 00:46:14,500 Uitgaan myself. 915 00:46:15,490 --> 00:46:18,300 So wat ons probeer om te doen is om 'n program skryf 916 00:46:18,300 --> 00:46:21,110 wat gaan deur 917 00:46:21,110 --> 00:46:24,490 en kapitaliseer die eerste letter 918 00:46:24,490 --> 00:46:27,140 en dan elke letter daarna - 919 00:46:27,140 --> 00:46:29,350 of elke ander brief daarna, ek is jammer. 920 00:46:29,350 --> 00:46:32,910 >> So - en jy kan sien in hierdie voorbeeld, 921 00:46:32,910 --> 00:46:35,260 dit is hoe ons hardloop die program, 922 00:46:35,260 --> 00:46:38,780 en so hierdie is net te sê: "Ons het 'n program genaamd a.out loop. 923 00:46:41,490 --> 00:46:44,630 Die insette wat ons gaan gee dit 924 00:46:44,630 --> 00:46:47,090 gaan word gevra. 925 00:46:47,090 --> 00:46:51,150 Ons is nie gonna verskaf die insette op die command line. " 926 00:46:51,150 --> 00:46:54,100 As jy al die lesings 927 00:46:54,100 --> 00:46:56,710 en hoor oor die command line argumente, 928 00:46:57,810 --> 00:47:00,080 dit is soort van waar daardie - daardie funky sintaksis 929 00:47:00,080 --> 00:47:04,530 by die hoof kom in met die int argc, al daardie dinge, 930 00:47:04,530 --> 00:47:07,630 So hier is ons is nie die gebruik van daardie, ons nie hier te doen met enige van daardie. 931 00:47:09,400 --> 00:47:12,650 Ons is net gonna hierdie getikte kry deur die gebruiker, 932 00:47:12,650 --> 00:47:15,700 en dan hierdie tweede lyn met die funky kapitalisasie 933 00:47:15,700 --> 00:47:18,550 is wat ons wil om ons program te uitset. 934 00:47:19,790 --> 00:47:22,860 >> So, sal ons eerder as die gebruik van die toestel of Run Gebruik spasies, 935 00:47:22,860 --> 00:47:25,360 want ons het ruimtes, 936 00:47:25,360 --> 00:47:28,640 En so, as jy ouens wil 937 00:47:28,640 --> 00:47:32,380 kry jou kode om iets soos hierdie om te kyk, 938 00:47:32,380 --> 00:47:35,930 so ek gaan hierdie hersiening te red 939 00:47:35,930 --> 00:47:38,390 net sodat jy het die ketel plaat hier 940 00:47:38,390 --> 00:47:42,840 wat lyk soos hierdie, int main (void), niks in nie. 941 00:47:44,480 --> 00:47:48,460 Eintlik, wat ons sal doen, is ons net sal verwyder alles almal saam. 942 00:47:48,460 --> 00:47:50,330 Ons wil 'n skoon lei, 943 00:47:50,330 --> 00:47:52,470 want ons is nie gonna begin skryf kode; 944 00:47:52,470 --> 00:47:55,380 Inteendeel, ons gaan probeer om die skryf van sommige pseudokode 945 00:47:55,380 --> 00:47:58,580 wat beteken dat ons eintlik maar net gaan om iets wat is nie-kode te skryf 946 00:47:58,580 --> 00:48:01,010 daardie soort beskryf wat ons wil doen, 947 00:48:01,010 --> 00:48:05,180 kinda soos Dawid gedoen het op die eerste dag van die lesing, 948 00:48:05,180 --> 00:48:08,310 of ek dink dit was die tweede dag van die lesing toe hy het die hele sokkies demo. 949 00:48:08,310 --> 00:48:10,990 Julle ouens onthou dat - sien die sokkies? 950 00:48:10,990 --> 00:48:13,300 Josef was daar soort van tik in Engels? 951 00:48:13,300 --> 00:48:16,300 So ons is dieselfde ding gaan doen. 952 00:48:16,300 --> 00:48:18,380 >> So toe ek begin skryf pseudokode, 953 00:48:18,380 --> 00:48:22,640 Ek hou van om te begin deur te kyk na wat die insette gaan wees. 954 00:48:22,640 --> 00:48:24,950 En ek gee myself 'n monster geval, 955 00:48:24,950 --> 00:48:28,780 so soos "dankie vir die add!" 956 00:48:35,030 --> 00:48:38,010 En dan het ek ook skryf wat ek wil om die uitset te wees, 957 00:48:38,010 --> 00:48:42,210 wat in hierdie geval is iets soos hierdie. 958 00:48:53,790 --> 00:48:56,050 En daardie soort gee vir my 'n goeie, soos, begin plek om oor na te dink, 959 00:48:56,050 --> 00:48:59,730 "Okay, ek wil lyn 1 te neem 960 00:48:59,730 --> 00:49:03,560 en ek wil dit te omskep in lyn 2, " 961 00:49:03,560 --> 00:49:06,570 en dat die soort van help om my denke te lei. 962 00:49:06,570 --> 00:49:09,990 Dit is 'n goeie plek om te begin. 963 00:49:09,990 --> 00:49:12,190 Nog 'n manier om te dink oor dit, ook as ons kinda beweeg op 964 00:49:12,190 --> 00:49:15,020 en as jy dit doen in jou eie programme, is om 965 00:49:15,020 --> 00:49:18,530 dink oor die soort soos wat die rand gevalle tot hierdie? 966 00:49:18,530 --> 00:49:20,740 Wat is soort van die vreemde scenario's? 967 00:49:20,740 --> 00:49:23,660 Wat is die vreemde insette wat ons kan kry? 968 00:49:23,660 --> 00:49:26,550 En wat moet die uitsette kyk? 969 00:49:26,550 --> 00:49:29,670 Byvoorbeeld, 'n weird insette 970 00:49:29,670 --> 00:49:33,200 hierdie een sou wees, 971 00:49:33,200 --> 00:49:35,630 om absoluut niks te skep, 972 00:49:35,630 --> 00:49:37,840 soos wat ons uitvoer in so 'n geval? 973 00:49:37,840 --> 00:49:40,530 Iets wat ons wil hê om oor te dink, te. 974 00:49:40,530 --> 00:49:44,450 >> So net so 'n vraag, 975 00:49:44,450 --> 00:49:46,870 wat sou ons wil uitvoer? 976 00:49:46,870 --> 00:49:50,740 As ons nie enige insette kry op alle, wat moet ons program printer word? 977 00:49:53,740 --> 00:49:54,860 >> Niks nie. 978 00:49:54,860 --> 00:49:57,340 Niks nie? Klink goed. 979 00:49:57,340 --> 00:49:59,280 Daarom wil ons seker maak dat ons nie skryf enigiets uit 980 00:49:59,280 --> 00:50:01,500 as ons niks doen nie. 981 00:50:01,500 --> 00:50:04,320 Cool. Okay. 982 00:50:04,320 --> 00:50:07,370 So 983 00:50:07,370 --> 00:50:09,380 Ek gaan om te bel op 'n paar van die mense soos ons gaan deur 984 00:50:09,380 --> 00:50:12,790 en net uitvind soort soos wat die algemene algoritme is 985 00:50:12,790 --> 00:50:15,250 en ons sal soort begin werk deur middel van hierdie saam. 986 00:50:16,240 --> 00:50:19,710 >> So, laat ons sien. Missy. 987 00:50:19,710 --> 00:50:21,220 Hoe dink jy ons wil begin? 988 00:50:21,220 --> 00:50:24,830 Wat sou 'n goeie plek wees om hier te begin 989 00:50:24,830 --> 00:50:27,900 as ons wil om te transformeer, sê, lyn 1 990 00:50:27,900 --> 00:50:29,440 in reël 2? 991 00:50:29,440 --> 00:50:32,650 Kan jy soort van net vir my verduidelik, in Engels, wat jy dink? 992 00:50:32,650 --> 00:50:34,770 Nie eens bekommerd wees oor die kode. 993 00:50:34,770 --> 00:50:38,250 >> Die eerste ding wat ek sou doen sou wees om 994 00:50:38,250 --> 00:50:41,170 soort van direkte die gebruiker om hulle te vertel wat jy wil. 995 00:50:41,170 --> 00:50:44,730 Okay, so sê, 996 00:50:44,730 --> 00:50:47,450 "Hey, gebruiker. Ek wil 997 00:50:47,450 --> 00:50:50,560 'n string "- awesome. 998 00:50:50,560 --> 00:50:52,990 So laat ons skryf dit neer. 999 00:50:52,990 --> 00:50:56,140 Vra die gebruiker vir 'n string. 1000 00:50:56,140 --> 00:50:59,270 Dit klink soos 'n goeie begin. 1001 00:51:03,920 --> 00:51:06,460 Alles reg. 1002 00:51:06,460 --> 00:51:09,750 Kom ons vra Kelly Ren hierdie tyd. 1003 00:51:09,750 --> 00:51:11,580 Wat sal ons dan wil om volgende te doen? 1004 00:51:11,580 --> 00:51:14,220 Wat is soort van ons volgende? 1005 00:51:14,220 --> 00:51:18,080 >> Versamel hul insette en stoor dit as 'n veranderlike. 1006 00:51:18,080 --> 00:51:20,470 Groot. 1007 00:51:20,470 --> 00:51:24,280 So haal die tou, 1008 00:51:25,450 --> 00:51:27,880 stoor dit in 'n veranderlike. 1009 00:51:34,840 --> 00:51:36,460 So is daar iets spesiaal wat ons hier wil doen? 1010 00:51:36,460 --> 00:51:39,700 Wil ons hul insette om seker te maak 1011 00:51:39,700 --> 00:51:42,260 voor? 1012 00:51:42,260 --> 00:51:43,790 >> Ja. 1013 00:51:43,790 --> 00:51:46,330 Wat sou ons wil om te kyk vir? 1014 00:51:46,330 --> 00:51:48,980 >> Wel, jy het gesê dat ons nie hoef te kyk of dit is 'n getal, reg? 1015 00:51:48,980 --> 00:51:52,400 Want dit sal aanvaar dat dit is kleinletter? 1016 00:51:52,400 --> 00:51:55,650 Ja. 1017 00:51:56,380 --> 00:51:58,920 >> So dit blyk dat - ja. 1018 00:51:58,920 --> 00:52:01,850 So getString is gewaarborg om terug te keer vir ons 'n string. 1019 00:52:01,850 --> 00:52:05,050 Dit gaan nie om 'n nommer om terug te keer na ons of iets soos dit. 1020 00:52:05,050 --> 00:52:09,140 Daar syfer karakters binne daardie string kan wees, al is. 1021 00:52:09,140 --> 00:52:13,460 En diegene wat ons kan ignoreer as ons het die kapitalisasie. 1022 00:52:13,460 --> 00:52:16,620 Maar 'n leë string is heeltemal fyn, 1023 00:52:16,620 --> 00:52:19,900 sodat die saak reg hier op lyn 4 en 5, 1024 00:52:19,900 --> 00:52:22,020 regs, waar daar is geen insette, 1025 00:52:22,020 --> 00:52:25,190 en het ons niks as ons uitvoer. 1026 00:52:25,190 --> 00:52:28,730 Ons hoef nie te bekommer oor om seker te maak dat daar is iets in die tou 1027 00:52:28,730 --> 00:52:31,840 of dat die string is ten minste 4 karakters lank wees; 1028 00:52:31,840 --> 00:52:34,190 enigiets is goed. 1029 00:52:34,190 --> 00:52:38,270 So, dit is gekontrasteer, byvoorbeeld, soos die pennies programme wat jy geskryf het 1030 00:52:38,270 --> 00:52:42,340 waar jy het om seker te maak jy nie-negatiewe getalle kry; 1031 00:52:42,340 --> 00:52:46,430 jy het om seker te maak dat jy die korrekte aantal dae is om in 'n maand. 1032 00:52:46,430 --> 00:52:49,630 En hoe julle om dit te doen? 1033 00:52:49,630 --> 00:52:51,470 Hoe sou jy doen die toets? 1034 00:52:51,470 --> 00:52:54,090 Wat het wat vereis dat jy om te gebruik? 1035 00:52:54,090 --> 00:52:55,650 >> Do-while loops. 1036 00:52:55,650 --> 00:53:00,840 Doen terwyl loops, ander vorme van loops, ook, ja. 1037 00:53:02,190 --> 00:53:04,520 So dit blyk dat ons het nie 'n lus om te gebruik in hierdie geval, 1038 00:53:04,520 --> 00:53:07,360 wanneer ons te vra vir 'n string wat is 'n soort van mooi. 1039 00:53:08,280 --> 00:53:10,620 >> Alle reg, beweeg aan. 1040 00:53:12,410 --> 00:53:14,270 So, Stella. 1041 00:53:14,270 --> 00:53:17,530 Kan jy ons vertel 'n bietjie oor wat ons moet doen? 1042 00:53:17,530 --> 00:53:20,270 So nou het ons het die string, ons het dit in 'n veranderlike gestoor; 1043 00:53:20,270 --> 00:53:23,360 Wat het ons nodig om te doen met die tou? 1044 00:53:26,790 --> 00:53:33,530 >> Ons moet - 1045 00:53:33,530 --> 00:53:36,550 identifiseer die 2 - 1046 00:53:36,550 --> 00:53:39,290 Ja, sê dit net in Engels, dit is awesome. 1047 00:53:39,290 --> 00:53:42,670 >> Identifiseer die [onhoorbaar] hoofstede - of hoofletters. 1048 00:53:44,420 --> 00:53:48,130 Ja, so jy identifiseer watter hoofletters en kleinletters. 1049 00:53:50,020 --> 00:53:54,180 Ons kan nie 'n hoofletter of onderkas hulle totdat ons het watter geïdentifiseer. 1050 00:54:03,790 --> 00:54:06,350 So ons sal dit hier by. 1051 00:54:06,350 --> 00:54:10,210 >> So, net te dink oor hierdie proses, 1052 00:54:10,210 --> 00:54:13,200 Hoe doen ons hierdie identifikasie? 1053 00:54:13,200 --> 00:54:15,050 Weet jy, Dan? 1054 00:54:15,050 --> 00:54:18,120 Soort van wat ons - watter instrument wat ons wil hê om te gebruik uit van ons toolbox? 1055 00:54:18,120 --> 00:54:22,500 >> Ek wil sit dit in een of ander manier in soos 'n skikking of elke lyn 1056 00:54:22,500 --> 00:54:24,240 is sy eie klein boks, 1057 00:54:24,240 --> 00:54:27,240 en dan hoofletter dit daar is of nie. 1058 00:54:27,240 --> 00:54:30,440 Okay, so een instrument wat ons kan gebruik om 'n skikking. 1059 00:54:30,440 --> 00:54:33,760 Wat moet ons doen om te kyk in die tou, 1060 00:54:33,760 --> 00:54:36,680 al is, om uit te vind - ons het om te kyk na die karakters. 1061 00:54:36,680 --> 00:54:40,890 >> So jy het om te kyk na die lengte van die string? 1062 00:54:40,890 --> 00:54:43,880 Ja, so deel van wat is om die lengte van die string. 1063 00:54:50,450 --> 00:54:54,150 Net uit nuuskierigheid, wat ons gebruik om die lengte van 'n string te kry? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Ja, strlen, ons noem dit "strlen" 1066 00:55:04,180 --> 00:55:08,620 Al hierdie string funksies, so strlen is 'n funksie, 1067 00:55:08,620 --> 00:55:10,670 en dit is super handig, want ons kan dit gebruik om te sê, 1068 00:55:10,670 --> 00:55:13,430 Hey, strlen: Hier is 'n string, vertel my hoe lank dit is. 1069 00:55:13,430 --> 00:55:17,350 In die lesing van vandag, David het baie gepraat oor hoe strlen geïmplementeer word, 1070 00:55:17,350 --> 00:55:20,370 wat is eintlik agter die skerms aangaan. 1071 00:55:20,370 --> 00:55:25,450 Maar dit is een van die baie super handig kinders. 1072 00:55:25,450 --> 00:55:29,170 Daar is ander mense wat ook in die tou biblioteek, 1073 00:55:29,170 --> 00:55:34,690 soos strcmp, wat gespel "strcmp", 1074 00:55:34,690 --> 00:55:38,010 wat gebruik word om stringe met mekaar te vergelyk. 1075 00:55:41,220 --> 00:55:45,020 Ander mense wat jy sal gebruik soos strstr, 1076 00:55:45,020 --> 00:55:48,770 wat is goed vir die vind van van sub stringe en so aan. 1077 00:55:48,770 --> 00:55:53,380 Vir die grootste deel, het hulle almal begin met str en gaan dan op om iets anders te wees. 1078 00:55:53,380 --> 00:55:57,080 Die rede waarom hulle nie eintlik nie spel hulle soos 'n string en so aan 1079 00:55:57,080 --> 00:56:00,260 want terug in soos die vroeë dae van C, 1080 00:56:00,260 --> 00:56:04,100 wanneer mense was eerste skrif en alles wat, 1081 00:56:04,100 --> 00:56:07,580 hulle het beperkings op die aantal karakters wat jy kan gebruik 1082 00:56:07,580 --> 00:56:09,950 vir funksie name en veranderlike name, 1083 00:56:09,950 --> 00:56:12,620 so alles is soos super verkorte. 1084 00:56:12,620 --> 00:56:15,750 Maar elke keer as jy sien iets wat begin met str, 1085 00:56:15,750 --> 00:56:18,600 wat beteken gewoonlik dit het iets te doen met 'n string. 1086 00:56:20,990 --> 00:56:23,350 >> Goed, so jy het die lengte van die tou te kry, 1087 00:56:23,350 --> 00:56:27,110 en dan doen wat ons doen met die karakters? 1088 00:56:27,110 --> 00:56:29,020 Weet jy, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Ek het geen idee, ek het probeer om dit uit. 1090 00:56:32,410 --> 00:56:35,410 Ek weet regtig nie - ek wens daar was 'n manier om - 1091 00:56:35,410 --> 00:56:38,990 Ek bedoel, sou ek miskien dink ons ​​iets kan doen met kans en Evens, 1092 00:56:38,990 --> 00:56:40,860 maar ek weet nie van enige funksie soos dit. 1093 00:56:40,860 --> 00:56:42,240 Ja. 1094 00:56:43,160 --> 00:56:45,200 >> Maar dit - dit sal nie noodwendig werk, 1095 00:56:45,200 --> 00:56:48,690 want dan het jy sou kry om die spasies in te wees - 1096 00:56:48,690 --> 00:56:51,130 sou jy die ruimte om te wenke oor hoe om te kry - 1097 00:56:51,130 --> 00:56:54,310 Okay. 1098 00:56:54,310 --> 00:56:56,490 >> Ek weet nie - ek soort van verlore op hierdie punt. 1099 00:56:56,490 --> 00:56:58,120 Ja - nee, nee, nee, dit is goeie punte. 1100 00:56:58,120 --> 00:57:00,420 So, wat ons nodig het om te doen is, soos Sam gesê, 1101 00:57:00,420 --> 00:57:02,970 ons nodig het om te bepaal watter letters is die vreemde letters, 1102 00:57:02,970 --> 00:57:05,540 en watter is die aand letters. 1103 00:57:06,650 --> 00:57:09,090 Maar ons wil seker maak dat ons net nie op soek 1104 00:57:09,090 --> 00:57:12,110 by die ewe en onewe 1105 00:57:12,110 --> 00:57:14,030 indekse in die tou, 1106 00:57:14,030 --> 00:57:17,660 maar eerder op soek na die ewe en onewe letters in die string, 1107 00:57:17,660 --> 00:57:20,190 sodat ons nodig het om te kinda hierdie onderskeid tussen 1108 00:57:20,190 --> 00:57:25,190 letters - soos wat is eintlik A, B, C, D, of so op, 1109 00:57:25,190 --> 00:57:29,090 en alles wat nie letters, maar nog steeds in ons string. 1110 00:57:29,090 --> 00:57:32,390 Byvoorbeeld hier, soos hierdie uitroepteken is nie 'n brief nie, 1111 00:57:32,390 --> 00:57:36,060 maar dit is nog steeds deel van ons string, dit is nog steeds 'n char. 1112 00:57:36,060 --> 00:57:38,820 Net so, al hierdie ruimtes - 1113 00:57:38,820 --> 00:57:41,710 dit nie sin maak om 'n ruimte te kapitaliseer, reg? 1114 00:57:41,710 --> 00:57:46,160 Daarom wil ons seker maak dat ons op een of ander manier slaan dié 1115 00:57:46,160 --> 00:57:49,410 terwyl hy nog die dop van kans en Evens. 1116 00:57:50,900 --> 00:57:54,990 >> So 'n soort van in ons programmering toolbox 1117 00:57:54,990 --> 00:57:57,270 so ver, as jy wil, 1118 00:57:57,270 --> 00:58:01,310 ons het 'n aantal van verskillende instrumente wat ons het gepraat oor. 1119 00:58:01,310 --> 00:58:04,640 So, byvoorbeeld, is veranderlikes, 1120 00:58:04,640 --> 00:58:07,120 soos ons het gepraat oor hier. 1121 00:58:07,120 --> 00:58:10,730 Nog 'n instrument wat ons oor gepraat het is funksies. 1122 00:58:10,730 --> 00:58:15,800 Dus het ons gepraat oor die veranderlikes in ons pseudokode hier 1123 00:58:15,800 --> 00:58:19,760 as wat ons gaan gebruik om ons string op te slaan. 1124 00:58:19,760 --> 00:58:24,630 Ons het gepraat oor die funksies om die lengte van 'n string te kry, soos strlen. 1125 00:58:28,510 --> 00:58:31,170 Ons het gepraat oor iets anders, en ons het gepraat oor dit 1126 00:58:31,170 --> 00:58:34,850 vir 'n baie vroeër in artikel vandag: loops. 1127 00:58:39,390 --> 00:58:42,030 >> Wat doen julle dink oor die gebruik van 'n lus in hierdie program? 1128 00:58:42,030 --> 00:58:44,110 Jared, wat dink jy? 1129 00:58:47,150 --> 00:58:50,030 Sou ons gebruik 'n lus in hierdie program? 1130 00:58:50,030 --> 00:58:52,500 >> Waarskynlik nie, nee, want jy hoef nie te gaan deur dit meer as een keer. 1131 00:58:52,500 --> 00:58:55,260 Okay, hoef jy nie om te gaan deur middel van wat meer as een keer? 1132 00:58:55,260 --> 00:58:57,190 >> Die hele string. 1133 00:58:57,190 --> 00:59:00,660 Reg, so jy hoef nie te gaan deur die hele string. 1134 00:59:00,660 --> 00:59:03,330 Jammer dit het absoluut geen sin nie! 1135 00:59:03,330 --> 00:59:06,360 Jy hoef nie meer as een keer om te gaan deur die hele string. 1136 00:59:06,360 --> 00:59:08,660 Okay. 1137 00:59:09,790 --> 00:59:11,920 Wat dink jy? 1138 00:59:11,920 --> 00:59:14,110 >> Ek dink dat dit beter is om dit te gebruik 1139 00:59:14,110 --> 00:59:16,640 sodat ons dit kan doen soos kapitaliseer terwyl 1140 00:59:16,640 --> 00:59:19,750 die plek van dit is [onhoorbaar] nommer. 1141 00:59:19,750 --> 00:59:22,940 Groot, en so kapitaliseer wat? 1142 00:59:22,940 --> 00:59:25,200 Okay, so ons sê dat 1143 00:59:25,200 --> 00:59:28,130 ons moet 'n lus gebruik omdat ons wil 1144 00:59:28,130 --> 00:59:32,550 kapitaliseer 'n brief terwyl dit is nie 'n getal nie. 1145 00:59:35,130 --> 00:59:37,140 So - jammer, het jy wil om by te voeg? 1146 00:59:37,140 --> 00:59:39,340 >> Ek gaan om te sê dat die manier waarop jy behandel die string 1147 00:59:39,340 --> 00:59:42,290 en dit [onhoorbaar] die [onhoorbaar] op die karakters? 1148 00:59:42,290 --> 00:59:43,710 Ja. 1149 00:59:43,710 --> 00:59:45,850 >> En dan het ons die getalle kan toewys aan - 1150 00:59:45,850 --> 00:59:47,780 of gebaseer op die ligging van die letters in die string? 1151 00:59:47,780 --> 00:59:49,720 Ja. 1152 00:59:49,720 --> 00:59:53,640 >> En bepaal of dit is vreemd of selfs en die brief self te kapitaliseer 1153 00:59:53,640 --> 00:59:57,750 terwyl die plek van die brief is [onhoorbaar] - jammer. 1154 00:59:57,750 --> 01:00:00,150 Groot. 1155 01:00:00,150 --> 01:00:03,430 >> So net 'n herhaling. 1156 01:00:03,430 --> 01:00:05,840 Kan jy herinner my weer van jou naam - Achievement jammer. 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 So, wat Charlotte sê, 1160 01:00:11,130 --> 01:00:14,950 wat is heeltemal reg - gosh, hierdie likes om motor streepje op my - 1161 01:00:14,950 --> 01:00:17,770 is dat as ons kyk na 'n string 1162 01:00:17,770 --> 01:00:19,160 soos hierdie een op die top - 1163 01:00:19,160 --> 01:00:21,590 "Thanks for the add" - 1164 01:00:21,590 --> 01:00:24,790 as 'n reeks van karakters 1165 01:00:24,790 --> 01:00:29,010 waar die by posisie 0, 1166 01:00:29,010 --> 01:00:32,260 h is by posisie 1. 1167 01:00:32,260 --> 01:00:36,880 A is op 2, dan het ons 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 die ruimte is by posisie 6. 1169 01:00:42,380 --> 01:00:45,300 AANGESIEN wat volg - wat is die posisie van 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 En dan het ons het 10, en dan kan ek nie regtig skryf sonder dat dit die 1174 01:00:54,340 --> 01:00:57,430 kinda kry morsige op die skerm. 1175 01:00:57,430 --> 01:01:02,340 Maar dit is eintlik hoe ons kan praat oor die snare in die geheue. 1176 01:01:02,340 --> 01:01:04,660 Is dit 'n string 1177 01:01:04,660 --> 01:01:07,920 is 'n reeks van karakters, 1178 01:01:07,920 --> 01:01:12,430 en wanneer ons verwys na 'n individuele karakter in 'n string, 1179 01:01:12,430 --> 01:01:15,280 ons doen dit dikwels deur te verwys na daardie karakter se standpunt 1180 01:01:15,280 --> 01:01:17,620 in die tou, 1181 01:01:17,620 --> 01:01:19,910 waarskynlik die dieselfde manier as wat ons praat oor September 1182 01:01:19,910 --> 01:01:22,870 synde die negende maand van die jaar 1183 01:01:22,870 --> 01:01:27,730 of Maandag synde die eerste dag van die week. 1184 01:01:29,280 --> 01:01:33,070 So bied ons 'n manier om 1185 01:01:33,070 --> 01:01:37,030 uit te vind wat is vreemd teenoor selfs 1186 01:01:37,030 --> 01:01:39,540 want jy hier kan sien, 1187 01:01:39,540 --> 01:01:43,640 as ons dit ooreenstem met hierdie T, 1188 01:01:46,310 --> 01:01:49,360 kan jy sien dat al die gekapitaliseerde 1189 01:01:49,360 --> 01:01:53,040 is by selfs posisies, 1190 01:01:53,040 --> 01:01:55,880 ten minste vir die eerste woord, 1191 01:01:55,880 --> 01:01:59,080 en dan dinge afgegooi wanneer ons getref het dat die ruimte, 1192 01:01:59,080 --> 01:02:02,460 want ons tel nie hierdie ruimte as 'n brief, 1193 01:02:02,460 --> 01:02:05,150 so is dit asof ons begin 1194 01:02:05,150 --> 01:02:08,930 en het 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 ruimte, 6, 7, 8, ruimte, 1196 01:02:12,600 --> 01:02:16,440 9, en dan 10, 11, 12, en so aan. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, so ons sal beslis wil 'n soort van die lus te gebruik 1198 01:02:22,910 --> 01:02:27,760 om te gaan oor elkeen van die karakters in die beurt. 1199 01:02:31,330 --> 01:02:34,580 Dus, op hierdie punt, 1200 01:02:36,490 --> 01:02:38,360 ons sal terug te kom na ons ou pseudokode hier. 1201 01:02:40,970 --> 01:02:42,650 As deel van die identifisering van watter 1202 01:02:42,650 --> 01:02:45,350 hoofletters en watter is kleinletters, 1203 01:02:45,350 --> 01:02:48,340 ons sal wil hê om dit te doen in 'n soort van die lus. 1204 01:02:51,080 --> 01:02:53,390 Loop, kolon. 1205 01:02:55,070 --> 01:03:01,220 Watter soort van loop uit van die tipes lusse wat ons het, 1206 01:03:01,220 --> 01:03:03,670 lyk na 'n goeie een om te gebruik in hierdie geval te wees? 1207 01:03:03,670 --> 01:03:05,610 >> Ek het gedink die lus. 1208 01:03:05,610 --> 01:03:07,500 En hoekom dink jy van die for-lus? 1209 01:03:07,500 --> 01:03:10,000 >> Omdat dit begin by nul, en dan 1210 01:03:10,000 --> 01:03:13,000 wanneer ons bereik die lengte van die tou, 1211 01:03:13,000 --> 01:03:16,170 en dan elke iterasie jy kan [onhoorbaar], ook? 1212 01:03:16,170 --> 01:03:18,260 Ja, presies. 1213 01:03:18,260 --> 01:03:21,490 So, uit van die verskillende keuses van loops, 1214 01:03:21,490 --> 01:03:25,350 ons het vir loops, terwyl loops, en do-while loops. 1215 01:03:25,350 --> 01:03:28,550 Waar 'n lus is veral nuttig 1216 01:03:28,550 --> 01:03:32,120 is wanneer jy wil weet 1217 01:03:32,120 --> 01:03:34,940 soort van waar jy in die loop, 1218 01:03:34,940 --> 01:03:38,520 hoeveel keer die lus tot dusver uitgevoer. 1219 01:03:38,520 --> 01:03:42,490 Dit is presies wat ons wil weet in hierdie situasie, 1220 01:03:42,490 --> 01:03:44,640 soos Kelly gesê het, 1221 01:03:44,640 --> 01:03:47,400 gebaseer is af van Charlotte se vroeëre opmerking dat ons wil die posisie om te weet 1222 01:03:47,400 --> 01:03:49,900 van die karakter in die string, 1223 01:03:49,900 --> 01:03:51,750 en die lus sal ons net dat, 1224 01:03:51,750 --> 01:03:54,680 want as ons soort van begin om terug te kyk op ons string, 1225 01:03:54,680 --> 01:03:57,140 as ons begin ons for-lus op 0, 1226 01:03:57,140 --> 01:04:00,350 en laat ons optrek deur die lengte van die hele string, 1227 01:04:00,350 --> 01:04:04,740 dan kan ons assosieer die letter T 1228 01:04:04,740 --> 01:04:08,110 met die 0 in ons lus, 1229 01:04:09,950 --> 01:04:13,080 letter H met die 1 in ons lus, en so aan, 1230 01:04:13,080 --> 01:04:16,600 gaan al die pad deur die einde van die tou. 1231 01:04:18,810 --> 01:04:21,890 >> So laat ons begin kodering dit net 'n bietjie 1232 01:04:21,890 --> 01:04:24,930 net so julle ouens kry 'n gevoel vir wat dit lyk soos. 1233 01:04:24,930 --> 01:04:27,980 Ek gaan om dit te red, 1234 01:04:27,980 --> 01:04:31,230 so ons het ons pseudo-kode hier, 1235 01:04:33,490 --> 01:04:38,120 en ek gaan om alles te verwyder. 1236 01:04:38,120 --> 01:04:42,210 So ek het 'n skoon lei. 1237 01:04:42,210 --> 01:04:45,910 Ek gaan begin deur die skryf van int main (void) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Ek is die terugkeer 0 gonna sit in 1240 01:04:51,380 --> 01:04:53,320 en dan die. 1241 01:04:53,320 --> 01:04:56,130 So gewoonlik wanneer ek begin om te program, dit is wat ek begin met. 1242 01:04:56,130 --> 01:04:59,370 Ek sal dit red, sodat julle dit. 1243 01:05:06,290 --> 01:05:08,440 So was een van die eerste dinge het ons gepraat oor 1244 01:05:08,440 --> 01:05:10,920 toevoer van die gebruiker 1245 01:05:10,920 --> 01:05:13,740 en stoor dit in 'n string. 1246 01:05:13,740 --> 01:05:16,420 Hoe kry ons die insette van 'n gebruiker? 1247 01:05:16,420 --> 01:05:19,640 >> GetString. 1248 01:05:19,640 --> 01:05:21,870 GetString, alles reg. 1249 01:05:23,150 --> 01:05:26,820 So as ek tik GetString () 1250 01:05:26,820 --> 01:05:32,150 en 'n kommapunt. 1251 01:05:32,150 --> 01:05:36,630 Kom ons probeer om hierdie, sal hierdie lopie in die eerste plek? 1252 01:05:36,630 --> 01:05:38,430 En waarom dit sal nie uitgevoer word nie? 1253 01:05:38,430 --> 01:05:40,090 >> Jy het die veranderlike te verklaar. 1254 01:05:40,090 --> 01:05:43,040 Ek het 'n veranderlike te verklaar. Okay. 1255 01:05:43,040 --> 01:05:45,700 >> So, hoe doen ek dit? 1256 01:05:45,700 --> 01:05:48,400 Gee jy om iets te skryf, deel dit? 1257 01:05:48,400 --> 01:05:51,270 En dan kan ons trek dit. 1258 01:05:51,270 --> 01:05:54,630 Kom ons kyk, Dan, reg, okay. 1259 01:05:54,630 --> 01:05:59,100 Of Daniel. Kopieer, string inset = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Awesome. 1261 01:06:01,340 --> 01:06:02,890 Sal dit loop? 1262 01:06:02,890 --> 01:06:05,210 Kom ons probeer dit. 1263 01:06:05,210 --> 01:06:08,890 Hit run, uploading bron-kode, gebou, 'n fout. 1264 01:06:08,890 --> 01:06:11,040 Okay. 1265 01:06:11,040 --> 01:06:14,950 So whats gaan hier aan? 1266 01:06:14,950 --> 01:06:18,700 Gebruik van onverklaarde identifiseerder 'string'. 1267 01:06:18,700 --> 01:06:22,840 >> Ons het die biblioteke in te sluit? 1268 01:06:22,840 --> 01:06:25,130 Ja, so Dan se sê ons het die biblioteke in te sluit. 1269 01:06:25,130 --> 01:06:28,270 Is dit wat jy gaan om te sê, Stella? Awesome. 1270 01:06:29,450 --> 01:06:31,430 Dit is awesome, so Stella, kan jy 1271 01:06:31,430 --> 01:06:34,800 Kopieer hierdie kode uit Daniël se Space? 1272 01:06:34,800 --> 01:06:37,580 As jy kliek op Daniel Roland Ki, kopieer dit, 1273 01:06:37,580 --> 01:06:41,360 en dan sal jy die include lyn in, en stoor dit dan uit? 1274 01:06:46,580 --> 01:06:49,360 Laat my weet wanneer jy gereed is. 1275 01:06:57,160 --> 01:06:59,490 So, dit sluit in sintaksis is ook soort van funky; 1276 01:06:59,490 --> 01:07:02,210 daar is soos wat hash tag, 1277 01:07:02,210 --> 01:07:05,760 En daar is die sluit, en dan is daar die hoek tussen hakies. 1278 01:07:12,490 --> 01:07:15,360 Onthou jy hoe dit werk, of moet ek dit op hierdie kode hier? 1279 01:07:15,360 --> 01:07:17,850 >> Ek is 'n goeie. 1280 01:07:17,850 --> 01:07:19,810 Okay. 1281 01:07:19,810 --> 01:07:23,260 >> Ek het dit gedruk - ek was nie seker watter biblioteek, al is. 1282 01:07:23,260 --> 01:07:25,570 O, okay - ja, so is dit die CS50 biblioteek. 1283 01:07:25,570 --> 01:07:27,660 >> Oh, ek het Wiskunde Streek Leuven B. biblioteek. 1284 01:07:27,660 --> 01:07:30,950 >> O ja, het dit - ja, nee, that's - 1285 01:07:30,950 --> 01:07:34,380 sodat dit blyk dat die string is eintlik iets wat is spesiaal vir CS50. 1286 01:07:36,590 --> 01:07:41,240 Daar is eintlik nie 'n ware string tipe 1287 01:07:41,240 --> 01:07:45,000 want hier, string is in die tipe posisie, - 1288 01:07:45,000 --> 01:07:49,140 ons verklaar 'n veranderlike genoem insette van tipe string - 1289 01:07:49,140 --> 01:07:53,320 en ons sit binnekant van die toevoer 1290 01:07:53,320 --> 01:07:58,440 die waarde wat aan ons teruggestuur kry: die produksie van hierdie GetString funksie oproep. 1291 01:07:58,440 --> 01:08:02,910 Jy kan jou vertel dit is 'n funksie oproep want dit het die hakies, net soos printf doen, 1292 01:08:02,910 --> 01:08:05,920 net soos strlen nie. 1293 01:08:05,920 --> 01:08:09,860 Maar string is eintlik nie 'n ware tipe 1294 01:08:09,860 --> 01:08:11,760 in die C-taal. 1295 01:08:11,760 --> 01:08:15,710 Ons het dit in 'n tipe, en ons sal meer wat dit eintlik is 1296 01:08:15,710 --> 01:08:19,000 in C, want daar is 'n manier om te werk met stringe; 1297 01:08:19,000 --> 01:08:22,479 ons het net gedoen om iets te maak dat dit lyk 'n bietjie mooier. 1298 01:08:22,479 --> 01:08:25,240 >> So hier gaan ons. 1299 01:08:25,240 --> 01:08:28,439 Hier is Stella se kode. 1300 01:08:28,439 --> 01:08:32,470 Dit het die # sluit . 1301 01:08:32,470 --> 01:08:36,390 Ander mense noem dit soos 'n hash sluit soms of 'n skerp sluit. 1302 01:08:36,390 --> 01:08:39,580 Nou kan ons begin, hardloop, 1303 01:08:39,580 --> 01:08:43,649 en ons het nog steeds 'n foutboodskap kry. 1304 01:08:43,649 --> 01:08:46,290 Kom ons kyk wat gebeur. 1305 01:08:48,069 --> 01:08:50,569 "Ongebruikte veranderlike 'input'." 1306 01:08:50,569 --> 01:08:53,350 Okay, so dis cool, dis koel. 1307 01:08:53,350 --> 01:08:55,859 Ek bedoel, dit is nie werklik 'n koel, 1308 01:08:55,859 --> 01:08:57,930 omdat ons 'n fout kry en dit is nie hardloop, 1309 01:08:57,930 --> 01:09:00,410 maar wat dit sê nie, is dat 1310 01:09:00,410 --> 01:09:03,130 ons het nie gebruik word om ons veranderlike, wat sin maak. 1311 01:09:03,130 --> 01:09:06,090 Ons het nie probeer om iets te doen met dit. 1312 01:09:07,819 --> 01:09:10,490 Dit is 'n manier dat 1313 01:09:10,490 --> 01:09:14,170 Kletteren probeer om ons te help om seker te maak dat ons net nie die gebruik van veranderlikes 1314 01:09:14,170 --> 01:09:18,819 en dan roep hulle per ongeluk iets anders later in ons kode, 1315 01:09:18,819 --> 01:09:21,649 help om ons foute te vermy dat die pad. 1316 01:09:23,130 --> 01:09:28,810 >> Alle reg, sodat ons het insette van die gebruiker, 1317 01:09:28,810 --> 01:09:31,910 ons dit gestoor in 'n veranderlike. 1318 01:09:31,910 --> 01:09:34,569 Die volgende stap was om dan 1319 01:09:34,569 --> 01:09:37,609 begin kyk na al die karakters in die string 1320 01:09:37,609 --> 01:09:41,830 en die identifisering van wat mense moet hoofletters 1321 01:09:41,830 --> 01:09:44,600 en watter is kleinletter te wees. 1322 01:09:44,600 --> 01:09:49,439 En soos Kelly en Charlotte laat optrek het, 1323 01:09:49,439 --> 01:09:52,340 ons dit doen met behulp van 'n lus. 1324 01:09:52,340 --> 01:09:55,520 So nie almal onthou die sintaksis van 'n for-lus 1325 01:09:55,520 --> 01:09:58,670 en wil graag 'n steek te neem op die net skryf 1326 01:09:58,670 --> 01:10:03,170 die eerste reël van die for-lus, net vir bietjie? 1327 01:10:05,740 --> 01:10:07,330 Kelly, jy wil gee dit 'n probeer? 1328 01:10:07,330 --> 01:10:10,300 >> Ja, sodat jy eerste te inisialiseer, 1329 01:10:10,300 --> 01:10:13,170 so ek het i = 0, 1330 01:10:13,170 --> 01:10:15,390 en dan het ek het i 01:10:18,570 Is dit in jou ruimte - ek kan trek dit? 1332 01:10:18,570 --> 01:10:21,330 >> Ja, ek screwed up 'n bietjie, maar ja. 1333 01:10:21,330 --> 01:10:24,180 >> Goed, kom ons trek dit. 1334 01:10:24,180 --> 01:10:26,490 Awesome. 1335 01:10:26,490 --> 01:10:29,510 >> Maar dan het ek weet nie of jy het dat - 1336 01:10:29,510 --> 01:10:32,180 Ja, okay. 1337 01:10:33,020 --> 01:10:36,030 So hier is wat Kelly het: laat ons kyk na dit vinnig. 1338 01:10:36,030 --> 01:10:40,290 Sodat sy die cs50 biblioteek aan die bokant. 1339 01:10:40,290 --> 01:10:44,790 Sy is ingesluit om die standaard IO-biblioteek aan die bokant, 1340 01:10:45,550 --> 01:10:48,990 en die standaard IO het funksies soos printf, 1341 01:10:48,990 --> 01:10:51,690 so as jy ooit wil printf gebruik, moet jy daardie lyn. 1342 01:10:53,060 --> 01:10:56,140 En dan het sy die tou biblioteek, 1343 01:10:56,140 --> 01:10:58,200 wat ons nodig het, 1344 01:10:58,200 --> 01:11:01,010 omdat die string biblioteek strlen funksie, 1345 01:11:01,010 --> 01:11:04,320 wat ons kry in net 'n bietjie. 1346 01:11:04,320 --> 01:11:07,560 So as ons kyk na wat Kelly gedoen hier, 1347 01:11:07,560 --> 01:11:10,260 kan jy loop ons deur dit wat jy gedoen het? 1348 01:11:10,260 --> 01:11:13,600 >> Ja, so - ek bedoel, ek het foute, so - 1349 01:11:13,600 --> 01:11:15,380 Ja, nee, it's - 1350 01:11:15,380 --> 01:11:18,580 >> So ek wou om die string te noem dat ek net "string" het. 1351 01:11:18,580 --> 01:11:22,230 Ek wou uit die string te druk 1352 01:11:22,230 --> 01:11:25,640 en dan het ek - 1353 01:11:27,450 --> 01:11:30,930 Ek wou graag die string stel as soos 'n skikking van elke karakter 1354 01:11:30,930 --> 01:11:33,170 wat anders is [onhoorbaar], reg? 1355 01:11:33,170 --> 01:11:38,080 En dan het ek wou om te begin by posisie 0 1356 01:11:38,080 --> 01:11:40,630 en dan elke 2 ruimtes, 1357 01:11:40,630 --> 01:11:42,580 Ek gaan om te kapitaliseer, 1358 01:11:42,580 --> 01:11:45,680 so ek het net het dit beskryf as 23, want ek was op soek na die ASCII-tabel. 1359 01:11:45,680 --> 01:11:48,730 So dit is wat ek kon dink - ek weet dit is nie reg nie. 1360 01:11:48,730 --> 01:11:50,920 >> Het dit, so dit is 'n goeie begin. 1361 01:11:50,920 --> 01:11:54,120 Ek dink 'n baie van die raamwerk is in plek hier. 1362 01:11:54,120 --> 01:11:57,500 Kom ons gaan deur die soort reël vir reël en kyk wat gaan aan. 1363 01:11:57,500 --> 01:12:01,040 So is die manier wat ek wil om dit te doen is net begin deur die samestelling van die kode 1364 01:12:01,040 --> 01:12:04,300 en laat die opsteller my vertel soos wat is verkeerd met my kode, 1365 01:12:04,300 --> 01:12:07,450 omdat die samesteller is regtig 'n goeie by wat jy vertel wat is fout met jou kode. 1366 01:12:09,790 --> 01:12:12,780 So as ons dit speel, te bou, en dit bou nie. 1367 01:12:12,780 --> 01:12:14,860 Dit sê daar was 'n fout, 1368 01:12:14,860 --> 01:12:17,320 so as ons scroll down en kyk na die eerste fout, 1369 01:12:17,320 --> 01:12:20,960 dit gesê - 1370 01:12:20,960 --> 01:12:22,040 ons blaai terug na die top, 1371 01:12:22,040 --> 01:12:26,070 kan ons sien daar is 5 foute gegenereer hier aan die onderkant. 1372 01:12:26,070 --> 01:12:30,180 Oeps, is regtig wat afgesny. 1373 01:12:31,810 --> 01:12:35,790 Ek dink dit is net nie gaan beter kry. 1374 01:12:36,970 --> 01:12:38,500 >> Hier gaan ons. 1375 01:12:39,790 --> 01:12:42,530 So is daar 5 totale foute gegenereer. 1376 01:12:42,530 --> 01:12:45,140 Hier kan ek sien net die eerste 2, 1377 01:12:45,140 --> 01:12:49,100 so ek kan beweeg dit 'n bietjie en dan soort van scroll up. 1378 01:12:49,100 --> 01:12:53,220 Dit is die opdrag wat uitgevoer is om die kode op te stel, 1379 01:12:53,220 --> 01:12:59,030 en dan die eerste fout was reg hier in file.c: 1380 01:12:59,030 --> 01:13:03,300 "Verwag identifiseer of '(", en dit was op hierdie lyn 1381 01:13:03,300 --> 01:13:06,680 waar ons gesê string = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Jy kan hier sien dat dit on line 8 van file.c, 1383 01:13:12,920 --> 01:13:17,230 en dan dink ek dat dit is 'n karakter 12 - dit is die fout. 1384 01:13:17,230 --> 01:13:20,390 So, wat is verkeerd gaan on line 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Jy hoef net om dit te noem, soos, 'n brief of iets, 1386 01:13:22,810 --> 01:13:24,400 soos string s of iets? 1387 01:13:24,400 --> 01:13:28,250 Ja, so dit blyk dat hierdie spesiale tipe name, 1388 01:13:28,250 --> 01:13:31,770 so string, int, char, kort, 1389 01:13:31,770 --> 01:13:35,740 hulle is almal spesiale sleutelwoorde, 1390 01:13:35,740 --> 01:13:38,940 en jy kan eintlik nie gebruik dit as die name van jou veranderlikes, 1391 01:13:38,940 --> 01:13:41,430 omdat die vertaler kyk en sê, 1392 01:13:41,430 --> 01:13:43,680 "O, ek weet dit is 'n soort" 1393 01:13:43,680 --> 01:13:46,530 sodat jy kan eintlik nie 'n string veranderlike genoem string, 1394 01:13:46,530 --> 01:13:50,800 soos ek hier probeer doen, dit sal nie werk nie. 1395 01:13:52,610 --> 01:13:58,250 Maar in plaas daarvan, kan ons noem dit iets soos of st of str. 1396 01:13:58,250 --> 01:14:01,540 Ons kan ook nie noem dit int. 1397 01:14:01,540 --> 01:14:03,740 Ons kan nie 'n string met die naam int. 1398 01:14:03,740 --> 01:14:06,740 Ons kan nie 'n string met die naam char, sal nie een van daardie werk. 1399 01:14:06,740 --> 01:14:09,420 >> So sal ons noem dit net vir die tyd. 1400 01:14:10,630 --> 01:14:13,170 Awesome. 1401 01:14:13,170 --> 01:14:17,500 So, wat volgende gaan in hierdie lyn? 1402 01:14:21,390 --> 01:14:24,350 String - hierdie lyn lyk redelik goed? 1403 01:14:24,350 --> 01:14:27,830 Kom ons gee dit 'n ander probeer, laat ons hardloop dit. 1404 01:14:27,830 --> 01:14:30,360 Okay, so ons kry nog steeds foute. 1405 01:14:30,360 --> 01:14:32,080 Hierdie keer, ons is af na 4 foute. 1406 01:14:32,080 --> 01:14:34,350 So ons het een van hulle. 1407 01:14:34,350 --> 01:14:36,130 Kom ons beweeg. 1408 01:14:36,130 --> 01:14:38,890 Msgstr "Onverwagte tik naam 'string': verwagte uitdrukking," ja? 1409 01:14:38,890 --> 01:14:41,780 >> Ja, dit is omdat ek probeer om die string te noem. 1410 01:14:41,780 --> 01:14:44,270 Ja, so dit lyk asof ons nou ook 'n fix om te gaan 1411 01:14:44,270 --> 01:14:46,560 almal van hierdie verwysings na string. 1412 01:14:46,560 --> 01:14:50,070 Jy kan sien daar is 'n verwysing na string, een hier, een hier, 1413 01:14:50,070 --> 01:14:53,440 sodat ons kan beweeg om al hierdie dinge te s. 1414 01:14:56,040 --> 01:15:00,930 Groot. Okay, loop dit weer. 1415 01:15:00,930 --> 01:15:03,260 Building - nog 'n Fout het voorgekom. 1416 01:15:03,260 --> 01:15:06,900 >> Okay, nou is ons af na een fout, 1417 01:15:06,900 --> 01:15:11,090 so int i = s en dan die vierkantige hakies. 1418 01:15:11,090 --> 01:15:14,880 So kan jy ons vertel 'n bietjie oor wat jy hier doen, Kelly? 1419 01:15:14,880 --> 01:15:17,120 >> Ja. 1420 01:15:17,120 --> 01:15:19,410 Dit was on line 10. 1421 01:15:19,410 --> 01:15:22,760 >> Ek weet nie of ons dit nodig gehad het, 1422 01:15:22,760 --> 01:15:25,560 maar ek dink ek het probeer om - 1423 01:15:25,560 --> 01:15:27,580 Ek sal dit red, sodat jy kan volg saam. 1424 01:15:27,580 --> 01:15:30,470 >> Ek dink ek was 1425 01:15:30,470 --> 01:15:33,150 probeer om dit te vertel om te begin by posisie 0 1426 01:15:33,150 --> 01:15:35,030 aan die begin van my lus, 1427 01:15:35,030 --> 01:15:38,370 so ek dink miskien is dit gesê was onnodig. 1428 01:15:39,690 --> 01:15:41,350 So net om te Kortom, 1429 01:15:41,350 --> 01:15:44,850 jy het gesê dat dit - jy probeer om dit te begin by posisie 0 1430 01:15:44,850 --> 01:15:47,030 en kry dit - ja, 1431 01:15:47,030 --> 01:15:50,460 so ek dink vroeër ook, wanneer jy loop deur die kode, 1432 01:15:50,460 --> 01:15:54,070 jy praat oor hoe jy wou die string te behandel as 'n skikking 1433 01:15:54,070 --> 01:15:57,440 sodat ons kan elke karakter individueel toegang. 1434 01:15:57,440 --> 01:16:00,660 Ek dink Dan genoem skikkings, ook probeer om stringe te omskep in 'skikkings. 1435 01:16:01,400 --> 01:16:03,300 >> Dit blyk dat die soort van onder die kap, 1436 01:16:03,300 --> 01:16:06,060 is eintlik 'n string as 'n skikking gestoor reeds 1437 01:16:06,060 --> 01:16:08,060 en jy dit kan oopmaak soos 'n skikking; 1438 01:16:08,060 --> 01:16:12,390 daar is geen omsetting wat jy hoef te doen nie. 1439 01:16:12,390 --> 01:16:15,770 'N string isn't - so - 1440 01:16:15,770 --> 01:16:18,200 'n string is nie regtig 'n skikking, 1441 01:16:18,200 --> 01:16:21,940 maar jy kan dit as sodanig toegang, omdat al die karakters word gestoor 1442 01:16:21,940 --> 01:16:25,160 een reg langs mekaar in die geheue, 1443 01:16:25,160 --> 01:16:28,310 so as jy wil die eerste karakter van die string te kry, 1444 01:16:28,310 --> 01:16:31,910 dit is dieselfde as om die eerste heelgetal in 'n heelgetal skikking. 1445 01:16:31,910 --> 01:16:35,010 So ons dikwels - sal ons 1446 01:16:35,010 --> 01:16:36,360 verwys na die 2 soos 1447 01:16:36,360 --> 01:16:38,590 oh, as 'n string, as synde 'n skikking, 1448 01:16:38,590 --> 01:16:40,830 selfs al is dit regtig - they're baie verskillende dinge, 1449 01:16:40,830 --> 01:16:43,410 maar jy kan behandel hulle baie dieselfde. 1450 01:16:44,700 --> 01:16:47,400 So dit blyk dat hierdie lyn - 1451 01:16:47,400 --> 01:16:51,270 ons hoef nie 'n omskakeling te doen, 1452 01:16:51,270 --> 01:16:53,500 en in werklikheid, 1453 01:16:53,500 --> 01:16:56,790 dit is eintlik nie 'n geldige uitdrukking, 1454 01:16:56,790 --> 01:16:59,040 en dit is wat ons samesteller vertel. 1455 01:16:59,040 --> 01:17:01,290 Dit sê, "Hey, dit verwag dat 'n uitdrukking, 1456 01:17:01,290 --> 01:17:04,610 en wat ek hier het, is iets wat nie 'n uitdrukking. " 1457 01:17:04,610 --> 01:17:07,310 'N skikking te verklaar, 1458 01:17:07,310 --> 01:17:11,780 al wat jy hoef te doen is om iets soos hierdie met 'n kommapunt, 1459 01:17:11,780 --> 01:17:15,080 en dan kan jy die skikking vertel hoe lank jy dit wil hê, 1460 01:17:15,080 --> 01:17:18,370 soos 5, so hierdie lyn 10 1461 01:17:18,370 --> 01:17:23,880 sal verklaar 'n skikking met die naam i met 5 heelgetalle in dit. 1462 01:17:23,880 --> 01:17:26,540 >> Dit is 'n eenkant, dit is nie nodig vir die kode, 1463 01:17:26,540 --> 01:17:30,970 maar dit is - dit is 'n soort van wat die verklaring lyk. 1464 01:17:30,970 --> 01:17:35,310 >> Hoe sou jy nie gebruik 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, en dan binne die hakies, strlen (s). 1467 01:17:43,900 --> 01:17:47,710 Ja, sodat ons kan - 1468 01:17:47,710 --> 01:17:49,460 ons kan dit doen, 1469 01:17:49,460 --> 01:17:52,160 en dit sou verklaar - wat sou dit doen? 1470 01:17:52,160 --> 01:17:55,900 >> Ek dink dit sou 'n skikking verklaar 1471 01:17:55,900 --> 01:18:01,780 , soos - of - 1472 01:18:01,780 --> 01:18:04,540 oh, jy hoef nie die i - oh, 1473 01:18:04,540 --> 01:18:06,420 ja, jy beslis nie nodig nie die i. 1474 01:18:06,420 --> 01:18:10,250 Jy verklaar 'n verskeidenheid van karakters 1475 01:18:10,250 --> 01:18:13,150 van lengte s. 1476 01:18:14,680 --> 01:18:16,770 En so wat Sam se sê is dat 1477 01:18:16,770 --> 01:18:20,660 hierdie lyn 10 - laat my sit 'n paar ruimte tussen dit en die res, sodat ons dit kan isoleer - 1478 01:18:20,660 --> 01:18:23,440 hierdie lyn 10 sou 'n skikking verklaar 1479 01:18:23,440 --> 01:18:28,520 van die karakters, strlen (s) ter waarde van hulle, 1480 01:18:28,520 --> 01:18:32,270 maar ons eintlik nodig het om die i, 1481 01:18:32,270 --> 01:18:35,710 en die rede waarom ons moet die i want ons moet die skikking 'n naam gee; 1482 01:18:35,710 --> 01:18:38,900 Anders sou ons nie 'n manier om te verwys na die skikking later in die kode. 1483 01:18:38,900 --> 01:18:41,180 >> So hierdie reg hier is die skikking naam 1484 01:18:41,180 --> 01:18:43,420 en binnekant is die lengte. 1485 01:18:43,420 --> 01:18:45,010 Dit sal vir ons 'n skikking, 1486 01:18:45,010 --> 01:18:47,430 maar dit is - weer, dit is 'n verklaring. 1487 01:18:47,430 --> 01:18:50,380 Dit is nie 'n opdrag nie, dit is nie 'n inisialisering. 1488 01:18:50,380 --> 01:18:52,330 As ons verklaar hierdie reeks soos hierdie, 1489 01:18:52,330 --> 01:18:54,490 daar is eintlik niks in die inhoud van die skikking. 1490 01:18:54,490 --> 01:18:57,490 Dis net junk - alles is daar. 1491 01:18:57,490 --> 01:18:59,780 En soos ons gesê het, 1492 01:18:59,780 --> 01:19:01,340 ons eintlik nie eens nodig om die omskakeling te doen, 1493 01:19:01,340 --> 01:19:04,810 want ons kan reeds behandel string as 'n skikking. 1494 01:19:06,750 --> 01:19:09,170 Ek weet dat ons 'n bietjie lank loop op tyd, 1495 01:19:09,170 --> 01:19:12,330 maar ek wil net baie vinnig kry om dit vir lus 1496 01:19:12,330 --> 01:19:14,850 en wys jou hoe om toegang te verkry tot die individuele karakters in die skikking, 1497 01:19:14,850 --> 01:19:17,170 want dit is die sleutel vir ons opdrag. 1498 01:19:17,170 --> 01:19:20,790 En dan sal ons u laat gaan van daar af. 1499 01:19:20,790 --> 01:19:24,610 >> So hier is, het ons 'n for-lus 1500 01:19:24,610 --> 01:19:28,310 wat lyk amper goed. 1501 01:19:28,310 --> 01:19:30,960 Wat is nie heeltemal amper daar? 1502 01:19:30,960 --> 01:19:33,240 What's - wat nie heeltemal reg oor hierdie lus? 1503 01:19:33,240 --> 01:19:36,010 >> Geen krullerige draadjies? 1504 01:19:36,010 --> 01:19:38,420 Geen kode tussen krulhakies, vir een. 1505 01:19:38,420 --> 01:19:42,580 Wil seker maak dat ons die liggaam van die lus met krullerige draadjies. 1506 01:19:42,580 --> 01:19:45,240 Oeps, nie die vierkantige brace! 1507 01:19:45,240 --> 01:19:48,660 En wat is die volgende ding wat ons nodig het om te doen met hierdie lus? 1508 01:19:48,660 --> 01:19:52,640 As ek probeer en hardloop, 1509 01:19:52,640 --> 01:19:56,740 Wat is hierdie fout wat ek kry? 1510 01:19:56,740 --> 01:20:00,990 Ek kry al hierdie foute - ek het i om te inisialiseer. 1511 01:20:00,990 --> 01:20:03,610 Groot. 1512 01:20:03,610 --> 01:20:05,770 So dit sal 'n lus te wees - dit is nie heeltemal daar, 1513 01:20:05,770 --> 01:20:08,680 maar dit is baie naby. 1514 01:20:08,680 --> 01:20:11,260 Hierdie kode kan ons nou hardloop, 1515 01:20:11,260 --> 01:20:14,620 bou, 'n fout begaan. 1516 01:20:17,960 --> 01:20:19,800 Waarom is dit nog steeds kla, 1517 01:20:19,800 --> 01:20:22,030 sê die uitdrukking is ongebruikte, 1518 01:20:22,030 --> 01:20:24,600 en dit is omdat hierdie lyn niks doen. 1519 01:20:24,600 --> 01:20:27,620 Ons het nie stoor dit op enige plek, ons het nie die resultaat stoor. 1520 01:20:27,620 --> 01:20:30,210 Waar moet ons hierdie resultaat spaar? 1521 01:20:30,210 --> 01:20:32,920 >> S of i? 1522 01:20:32,920 --> 01:20:35,990 Presies, en hierdie funky sintaksis, 1523 01:20:35,990 --> 01:20:38,550 hierdie s met die vierkantige hakies 1524 01:20:38,550 --> 01:20:41,500 beteken toegang tot die i-de karakter van s. 1525 01:20:41,500 --> 01:20:45,650 Dit gaan om iets wat is regtig belangrik vir die werkopdrag te wees. 1526 01:20:45,650 --> 01:20:48,070 Ongelukkig, ons gaan te hê om hier te stop, 1527 01:20:48,070 --> 01:20:50,550 sodat Sebastian artikel kan kom, 1528 01:20:50,550 --> 01:20:53,980 maar ek is gelukkig om na buite te bly en sal enige vrae het. 1529 01:20:53,980 --> 01:20:56,680 So dankie ouens vir die komende. 1530 01:20:56,680 --> 01:20:59,730 Dit behoort nou oplaai, bou, hardloop. 1531 01:21:01,570 --> 01:21:04,320 Ons kan 'n string soos "hallo" 1532 01:21:06,570 --> 01:21:08,730 en dit druk "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Lag] 1534 01:21:11,030 --> 01:21:14,640 >> So nie heeltemal daar nie, maar beweeg, om teenoor diegene loops! 1535 01:21:14,640 --> 01:21:18,640 Dankie vir jou kom, en ek sal buite.