1 00:00:00,000 --> 00:00:02,880 >> [Speel van musiek] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> Spreker 1: Dit is CS50 en dit is die begin van die week twee. 4 00:00:13,500 --> 00:00:18,400 So, laat ons duik reg in iets dit is karretjie, so te sê. 5 00:00:18,400 --> 00:00:24,015 So, hier is CS50 IDE en ek het opgetrek in advance hierdie screen-- damn 6 00:00:24,015 --> 00:00:25,070 Dit. 7 00:00:25,070 --> 00:00:25,760 Spoiler waarskuwing. 8 00:00:25,760 --> 00:00:26,260 Alles reg. 9 00:00:26,260 --> 00:00:29,060 Ek het die skerm opgetrek hier wat het 'n baie eenvoudige program. 10 00:00:29,060 --> 00:00:32,659 As ons rol af, die meeste van hierdie is net die kommentaar, 11 00:00:32,659 --> 00:00:36,730 maar hier in lyne 13 deur 17 Ons het 'n program. 12 00:00:36,730 --> 00:00:40,580 >> Dit is sintakties geldig, wat beteken dat as Ek stel dit, sal dit op te stel en uit te voer, 13 00:00:40,580 --> 00:00:41,920 maar dit is karretjie. 14 00:00:41,920 --> 00:00:47,330 Hierdie program eise in die kommentaar up top dat dit moet druk 10 sterre, 15 00:00:47,330 --> 00:00:48,870 Maar dit beteken nie. 16 00:00:48,870 --> 00:00:53,290 En gebaseer op jou ervaring, of binnekort ervaring met C wees, 17 00:00:53,290 --> 00:00:56,820 kan jy logies onderskei waarom dit is, in werklikheid, karretjie? 18 00:00:56,820 --> 00:00:57,804 Ja? 19 00:00:57,804 --> 00:00:59,220 GEHOOR: Dit gaan van nul tot 10. 20 00:00:59,220 --> 00:01:01,884 Dit is 11 iterasies. 21 00:01:01,884 --> 00:01:02,550 Spreker 1: Ja. 22 00:01:02,550 --> 00:01:06,030 So, dit gaan van nul up deur en gelyk aan 10, 23 00:01:06,030 --> 00:01:08,140 wat natuurlik is 11 iterasies. 24 00:01:08,140 --> 00:01:10,020 So, dit gaan om druk, inderdaad, 11 sterre. 25 00:01:10,020 --> 00:01:13,040 So, die rekenaarwetenskap konvensie in die meeste programmeertale 26 00:01:13,040 --> 00:01:15,270 is inderdaad net om begin tel op nul, 27 00:01:15,270 --> 00:01:18,800 maar tel tot maar nie deur die waarde wat jy eintlik omgee. 28 00:01:18,800 --> 00:01:21,216 >> Nou, dit is een ding wat neem 'n bietjie gewoond raak aan 29 00:01:21,216 --> 00:01:25,350 en selfs Scratch, ontwerp as dit vir nie-programmeerders of nie rekenaar 30 00:01:25,350 --> 00:01:28,070 wetenskaplikes en vir kinders grootliks, is ontwerp om 31 00:01:28,070 --> 00:01:29,570 jy begin algemeen tel by een. 32 00:01:29,570 --> 00:01:30,277 En dit is goed. 33 00:01:30,277 --> 00:01:33,110 Jy kan absoluut begin tel by een as dit is meer gemaklik. 34 00:01:33,110 --> 00:01:37,210 En tel tot en deur 10, maar jy sal veral hierdie week besef 35 00:01:37,210 --> 00:01:39,950 en as dit nie net sodat baie dinge in programmering 36 00:01:39,950 --> 00:01:42,465 aanvaar dat 0 is die eerste syfer waarmee jy tel, 37 00:01:42,465 --> 00:01:45,590 wat jy gaan om dit makliker vind net om te kry in die gewoonte van die begin 38 00:01:45,590 --> 00:01:49,490 van nul en tel tot die waarde jy omgee nou uit die 39 00:01:49,490 --> 00:01:49,990 kry gaan. 40 00:01:49,990 --> 00:01:50,990 >> So, wat vaste daardie. 41 00:01:50,990 --> 00:01:53,670 Ons verander die minder as of gelyk aan net minder as. 42 00:01:53,670 --> 00:01:56,050 Kom ons neem 'n blik op 'n tweede voorbeeld hier. 43 00:01:56,050 --> 00:01:59,585 >> So, hierdie program beweer ook in sy kommentaar op top dat dit moet druk 44 00:01:59,585 --> 00:02:02,260 tien sterre, maar dit beteken nie. 45 00:02:02,260 --> 00:02:05,540 Wat is die fout hier? 46 00:02:05,540 --> 00:02:07,930 >> So, what-- en jammer, laat ons duidelik wees. 47 00:02:07,930 --> 00:02:08,610 10 sterre. 48 00:02:08,610 --> 00:02:11,644 Een per lyn, maar dit beteken nie. 49 00:02:11,644 --> 00:02:14,810 So, in werklikheid, laat my gaan voort en stel hierdie een, want dit is 'n bietjie minder 50 00:02:14,810 --> 00:02:16,900 duidelik gebaseer op die beskrywing. 51 00:02:16,900 --> 00:02:18,720 Laat my gaan in ons bron gids. 52 00:02:18,720 --> 00:02:25,110 Maak karretjie een dot streep karretjie een. 53 00:02:25,110 --> 00:02:28,680 OK, ek sien 11 sterre wat is nog steeds problematies, 54 00:02:28,680 --> 00:02:30,090 maar hulle is ook al in 'n lyn. 55 00:02:30,090 --> 00:02:31,500 Wat is die probleem hier? 56 00:02:31,500 --> 00:02:32,339 Ja. 57 00:02:32,339 --> 00:02:33,255 GEHOOR: [onhoorbaar]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 Spreker 1: Ja. 60 00:02:36,860 --> 00:02:40,210 So dit is 'n subtiliteit dat julle onthou my om kort melding van. 61 00:02:40,210 --> 00:02:42,793 Selfs al lyk alles mooi, en dit is mooi ingekeep, 62 00:02:42,793 --> 00:02:45,850 en dit soort van kyk Scratch-agtige in daardie lyn 16 en 17 is, 63 00:02:45,850 --> 00:02:47,600 inderdaad, ingekeep onder daardie lus. 64 00:02:47,600 --> 00:02:48,400 Dit is onbelangrik. 65 00:02:48,400 --> 00:02:50,460 Die rekenaar nie weet of sien wit ruimte. 66 00:02:50,460 --> 00:02:52,910 Wit spasie is net vir ons mense, stilisties. 67 00:02:52,910 --> 00:02:57,010 Die rekenaar het weet wanneer jy krulhakies, wat, inderdaad, 68 00:02:57,010 --> 00:02:58,280 los hierdie probleem. 69 00:02:58,280 --> 00:03:02,350 >> So, as ons werklik in gegaan en uitdruklik gestel in hierdie krulhakies 70 00:03:02,350 --> 00:03:05,220 wat sou hierdie probleem op te los deur duidelik te maak aan die samesteller 71 00:03:05,220 --> 00:03:07,930 dat ek eintlik wil uitvoer twee reëls van die kode weer 72 00:03:07,930 --> 00:03:09,220 en weer en weer. 73 00:03:09,220 --> 00:03:11,680 Maar wat is die belangrikste verklaring? 74 00:03:11,680 --> 00:03:12,180 Reg? 75 00:03:12,180 --> 00:03:15,260 Ons het nie nodig streng krullerige draadjies al die tyd, 76 00:03:15,260 --> 00:03:18,210 selfs al is dit waarskynlik die beste praktyk in elk geval in daardie gewoonte 77 00:03:18,210 --> 00:03:20,878 selfs al is dit voeg twee karakters om jou kode. hoekom? 78 00:03:20,878 --> 00:03:22,380 >> GEHOOR: [onhoorbaar]? 79 00:03:22,380 --> 00:03:24,630 Spreker 1: Ja so dit is ander oplossing heeltemal. 80 00:03:24,630 --> 00:03:25,130 Reg? 81 00:03:25,130 --> 00:03:28,250 Veral as die eerste oogopslag jy nie waardeer regtig wat aangaan. 82 00:03:28,250 --> 00:03:31,070 Wel, ons kon sekerlik net twee dinge doen op 'n keer 83 00:03:31,070 --> 00:03:32,710 en net vermy die probleem geheel en al. 84 00:03:32,710 --> 00:03:36,080 En dit is goed, maar nou, vir vandag se doeleindes, wat 85 00:03:36,080 --> 00:03:38,200 is die verduideliking vir die fout? 86 00:03:38,200 --> 00:03:39,810 Hoekom was al die sterre op 'n lyn? 87 00:03:39,810 --> 00:03:40,806 Ja? 88 00:03:40,806 --> 00:03:43,296 >> GEHOOR: Dit blyk dat indien jy het 'n reël van die kode, 89 00:03:43,296 --> 00:03:46,649 jy kan dit doen sonder daardie. 90 00:03:46,649 --> 00:03:47,440 Spreker 1: Presies. 91 00:03:47,440 --> 00:03:48,750 Dit is net 'n menslike konvensie. 92 00:03:48,750 --> 00:03:50,750 Mense besef dat dit 'n klein irriterende of vervelige 93 00:03:50,750 --> 00:03:53,470 hê om krulhakies al sit van die tyd as alles wat jy wil doen 94 00:03:53,470 --> 00:03:55,090 is voer 'n reël van die kode. 95 00:03:55,090 --> 00:03:57,660 So, besluit mens sommige tyd gelede dat dit is goed. 96 00:03:57,660 --> 00:04:01,180 As jy wil al jou lus sit op die net dat een lyn soos hierdie, 97 00:04:01,180 --> 00:04:04,030 dit is fyn met die enkele kommapunt aan die einde. 98 00:04:04,030 --> 00:04:07,210 Maar jy kan net een so 'n lyn sonder die krullerige draadjies. 99 00:04:07,210 --> 00:04:09,900 >> Dus, wanneer CS50 styl gids as jy verwys na, 100 00:04:09,900 --> 00:04:11,980 Jy sal sien dat die algemeen Dit is goeie gewoonte 101 00:04:11,980 --> 00:04:14,920 te kry in hierdie totdat jy baie gemaklik dwaling 102 00:04:14,920 --> 00:04:17,404 van hierdie soort van konvensies en doen jou eie ding. 103 00:04:17,404 --> 00:04:18,820 So lank as wat jy self konsekwent. 104 00:04:18,820 --> 00:04:21,540 En ons sal meer oor praat styl 'n bietjie later vandag. 105 00:04:21,540 --> 00:04:23,200 >> So, laat my oop een ander program. 106 00:04:23,200 --> 00:04:24,930 Natuurlik moet ons los dat 10 as well. 107 00:04:24,930 --> 00:04:32,470 Laat my gaan voort en skryf 'n werklike vinnige program wat ek sal noem, 108 00:04:32,470 --> 00:04:38,140 kom ons sê, loop dot C. So, lus dot C. En in lus dot C Ek gaan om te hê, 109 00:04:38,140 --> 00:04:41,970 sluit in standaard I / O dot H int main nietig. 110 00:04:41,970 --> 00:04:44,020 En nou, laat ons net doen, inderdaad, 'n lus. 111 00:04:44,020 --> 00:04:46,020 So, 4 int Ek kry nul. 112 00:04:46,020 --> 00:04:48,660 Ek is minder as, sê, 50. 113 00:04:48,660 --> 00:04:49,950 Ek plus, plus. 114 00:04:49,950 --> 00:04:53,350 En dan hier kom ons gaan voort en doen druk F. 115 00:04:53,350 --> 00:04:56,400 En dan wil ek ek druk en 'n nuwe lyn, kommapunt. 116 00:04:56,400 --> 00:05:00,015 >> En dit moet al die druk getalle van nul tot 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 'N Paar hoof knik. 119 00:05:03,680 --> 00:05:04,270 'N Paar nos. 120 00:05:04,270 --> 00:05:05,339 Wat is die fout reeds? 121 00:05:05,339 --> 00:05:06,630 Wat is die maklike fout wat ek gemaak? 122 00:05:06,630 --> 00:05:07,170 Ja. 123 00:05:07,170 --> 00:05:08,544 >> GEHOOR: [onhoorbaar]. 124 00:05:08,544 --> 00:05:09,210 Spreker 1: Ja. 125 00:05:09,210 --> 00:05:11,520 So selfs al is dit lyk soos hierdie is wat ek van plan is, 126 00:05:11,520 --> 00:05:13,920 onthou dat ek ook net 'n ASCII karakter. 127 00:05:13,920 --> 00:05:14,955 >> So, as ek sê, druk "I." 128 00:05:14,955 --> 00:05:16,670 Dit is letterlik gaan I. So druk, as ek 129 00:05:16,670 --> 00:05:20,030 wil plug-in 'n tydelike waarde wat ek werklik nodig het om dit te doen 130 00:05:20,030 --> 00:05:22,630 en dan plug-in die waarde van I dinamies. 131 00:05:22,630 --> 00:05:25,200 Anders is ek net gaan kry 50 Ek se op die skerm. 132 00:05:25,200 --> 00:05:28,140 >> So, laat my gaan voort en maak hierdie lus, hardloop dit, 133 00:05:28,140 --> 00:05:30,650 en, inderdaad, ons het al die pad deur middel van 49. 134 00:05:30,650 --> 00:05:34,140 En as ek blaai terug in die tyd wat ek sien die getal nul aan die begin. 135 00:05:34,140 --> 00:05:36,050 >> Wel, wat as ek soort van skroef? 136 00:05:36,050 --> 00:05:37,800 Wat gebeur as ek dit doen? 137 00:05:37,800 --> 00:05:40,120 Net omdat ek nie dink. 138 00:05:40,120 --> 00:05:40,970 Wat is hierdie program. 139 00:05:40,970 --> 00:05:43,970 Sodra weer saamgestel en hardloop, gaan logies doen? 140 00:05:43,970 --> 00:05:44,870 >> GEHOOR: Niks nie. 141 00:05:44,870 --> 00:05:45,661 >> Spreker 1: Niks nie. 142 00:05:45,661 --> 00:05:47,156 Hoekom is dit? 143 00:05:47,156 --> 00:05:49,124 >> GEHOOR: Ek is ontwerp vir 'n nul. 144 00:05:49,124 --> 00:05:51,899 So, die toestand is onwaar. 145 00:05:51,899 --> 00:05:52,940 Spreker 1: Ja, presies. 146 00:05:52,940 --> 00:05:55,110 Al die kode korrek is, sintakties. 147 00:05:55,110 --> 00:05:57,310 Dit sal stel, is hierdie kode sal loop, maar dit is nie 148 00:05:57,310 --> 00:06:00,110 gaan niks nuttigs doen want ek inisialiseer ek na nul. 149 00:06:00,110 --> 00:06:02,240 Ons het toe gaan, is ek groter wees as 50? 150 00:06:02,240 --> 00:06:03,810 Natuurlik, nee, dit is nie. 151 00:06:03,810 --> 00:06:05,760 So het die lus voer nooit nie. 152 00:06:05,760 --> 00:06:09,580 >> Wat as ons iets doen 'n bietjie meer roekelose? 153 00:06:09,580 --> 00:06:12,890 So, wat as ons te doen soos int Ek kry nul. 154 00:06:12,890 --> 00:06:15,640 En nou, laat my gebruik die tyd lus, wat 'n ander toestand was. 155 00:06:15,640 --> 00:06:21,810 En terwyl ek sê, terwyl ek is groter as of gelyk aan nul, en dan hier ek 156 00:06:21,810 --> 00:06:26,070 gaan voort en stoor die lêer, maak lus. 157 00:06:26,070 --> 00:06:27,070 En ek is op die punt om dit uit te voer. 158 00:06:27,070 --> 00:06:30,230 Wat gaan ek om dit te sien tyd met 'n while lus? 159 00:06:30,230 --> 00:06:30,852 Ja. 160 00:06:30,852 --> 00:06:32,120 >> GEHOOR: 'n oneindige lus? 161 00:06:32,120 --> 00:06:35,360 >> Spreker 1: 'n oneindige lus? 162 00:06:35,360 --> 00:06:36,662 Ja, en hoekom? 163 00:06:36,662 --> 00:06:38,120 GEHOOR: Want dit is altyd nul. 164 00:06:38,120 --> 00:06:38,786 Spreker 1: Ja. 165 00:06:38,786 --> 00:06:40,100 So, is ek wat as nul. 166 00:06:40,100 --> 00:06:44,470 Natuurlik het ek altyd groter as of gelyk aan 0 as 'n resultaat. 167 00:06:44,470 --> 00:06:46,460 So, ek is net gaan om te sien dit oneindig. 168 00:06:46,460 --> 00:06:49,850 En nou, dit het een keer kom of twee keer aan die hoofde van die kursus se. 169 00:06:49,850 --> 00:06:52,417 Wat gebeur wanneer jy het 'n oneindige lus? 170 00:06:52,417 --> 00:06:53,314 >> GEHOOR: Control C. 171 00:06:53,314 --> 00:06:53,980 Spreker 1: Ja. 172 00:06:53,980 --> 00:06:56,250 So Control C sal uiteindelik reageer. 173 00:06:56,250 --> 00:06:59,520 Ongelukkig het ons gedruk miljoene nulpunte reeds 174 00:06:59,520 --> 00:07:01,520 en so die rekenaar soort het voor my. 175 00:07:01,520 --> 00:07:03,394 So, dit gaan om te ignoreer my vir 'n bietjie. 176 00:07:03,394 --> 00:07:06,560 Maar as jy net getref Control C 'n paar keer op jou Mac of PC sleutelbord, 177 00:07:06,560 --> 00:07:08,790 uiteindelik moet dit inderdaad beëindig. 178 00:07:08,790 --> 00:07:11,770 En indien nie, sal ons jou wys 'n paar tegnieke voor lank waar jy 179 00:07:11,770 --> 00:07:14,850 kan eintlik geweld programme doodmaak, baie soos in Windows en Mac OS, 180 00:07:14,850 --> 00:07:15,562 indien nodig. 181 00:07:15,562 --> 00:07:16,770 Maar laat ons probeer iets anders. 182 00:07:16,770 --> 00:07:19,895 Kom ons eintlik inkrementeer I. Is dit nog steeds gaan oneindige te wees? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Laat my dit uit te voer. 185 00:07:25,140 --> 00:07:27,090 En nou kan jy soort sien wat gebeur. 186 00:07:27,090 --> 00:07:30,140 Dit is ook, is 'n oneindige lus. 187 00:07:30,140 --> 00:07:33,080 Maar dit is 'n bietjie van 'n truuk vraag. 188 00:07:33,080 --> 00:07:35,460 Is dit gaan om getalle vir ewig te druk? 189 00:07:35,460 --> 00:07:36,647 >> GEHOOR: No. 190 00:07:36,647 --> 00:07:37,230 Spreker 1: No. 191 00:07:37,230 --> 00:07:37,620 Hoekom? 192 00:07:37,620 --> 00:07:38,820 Ek het gehoor 'n paar nos hier. 193 00:07:38,820 --> 00:07:41,859 Someone-- Ja. 194 00:07:41,859 --> 00:07:44,275 GEHOOR: Jy het nie genoeg het stukkies om werklik te gaan. 195 00:07:44,275 --> 00:07:44,730 Spreker 1: Alle reg. 196 00:07:44,730 --> 00:07:46,000 So ek het nie genoeg stukkies om vol te hou. 197 00:07:46,000 --> 00:07:47,124 So, wat gaan gebeur? 198 00:07:47,124 --> 00:07:49,320 Dit is net gaan om te stop? 199 00:07:49,320 --> 00:07:52,542 >> GEHOOR: Op 'n sekere punt dit sal gesluit the-- 200 00:07:52,542 --> 00:07:54,500 Spreker 1: Dit sal sluit die lus af, maar hoekom? 201 00:07:54,500 --> 00:07:57,950 Wat gaan gebeur by die einde van sy grense? 202 00:07:57,950 --> 00:07:58,479 Ja? 203 00:07:58,479 --> 00:08:00,520 GEHOOR: Dit sal siklus terug na negatiewe getalle. 204 00:08:00,520 --> 00:08:02,900 Spreker 1: Om negatiewe getalle, of as ons net die behandeling van positiewe, 205 00:08:02,900 --> 00:08:03,570 zero ten minste. 206 00:08:03,570 --> 00:08:04,550 So ja, absoluut. 207 00:08:04,550 --> 00:08:08,059 Onthou dat ons die laaste keer wat dit gesien as jy inkrementeer jou stukkies een te veel keer, 208 00:08:08,059 --> 00:08:10,225 en jy is daar vore oorloop die kapasiteit van jou int 209 00:08:10,225 --> 00:08:13,058 of wat ook al die tipe data is, is jy gaan draai om, waarskynlik, 210 00:08:13,058 --> 00:08:14,020 twee negatiewe getalle. 211 00:08:14,020 --> 00:08:16,644 Of as jy spesifiseer dat jou reeks moet slegs positief wees, 212 00:08:16,644 --> 00:08:18,560 wat jy kan doen nie, maar ons het nog nie gesien dat, 213 00:08:18,560 --> 00:08:21,420 jy kan uiteindelik ten minste terug by nul. 214 00:08:21,420 --> 00:08:22,410 Alhoewel, eintlik ja. 215 00:08:22,410 --> 00:08:24,320 In hierdie geval, negatiewe getalle, in welke geval 216 00:08:24,320 --> 00:08:26,870 die lus gaan beëindig want ek is nie, in werklikheid, 217 00:08:26,870 --> 00:08:29,220 groter as of gelyk aan nul as dit negatief. 218 00:08:29,220 --> 00:08:31,780 >> So, ongelukkig, hoe lank sal ons moet wag? 219 00:08:31,780 --> 00:08:35,490 Nou is ons tot wat, 2 miljoen-ish? 220 00:08:35,490 --> 00:08:37,705 Ons is soos 2000000000, ons gaan hê om te wag 221 00:08:37,705 --> 00:08:39,330 totdat ons kan eintlik sien dit simptoom. 222 00:08:39,330 --> 00:08:46,200 Maar ons kan dit sien 'n bietjie vinniger, maybe-- laat ons kyk of ons kan onderbreek. 223 00:08:46,200 --> 00:08:46,700 Kom op. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Selfs die spyskaarte is stadig verskyn. 226 00:08:51,331 --> 00:08:51,830 Alles reg. 227 00:08:51,830 --> 00:08:54,270 So, sal ons terug na wat kom kort voor lank. 228 00:08:54,270 --> 00:08:56,320 Dit is 'n goeie time-- dit verdoem, hondjies. 229 00:08:56,320 --> 00:08:58,280 >> Dit is 'n goeie tyd vir 'n paar aankondigings. 230 00:08:58,280 --> 00:09:01,225 So, as jy dalk graag om betrokke te raak in YHack, 231 00:09:01,225 --> 00:09:03,600 wat 'n gebeurtenis is om geborg deur ons vriende by Yale. 232 00:09:03,600 --> 00:09:05,990 En, inderdaad, 'n paar van die kursus se TFS by Yale betrokke is met hierdie. 233 00:09:05,990 --> 00:09:08,610 YHack is 'n internasionale hack-a-thon aangebied deur en gehou 234 00:09:08,610 --> 00:09:12,395 aan die Yale, saam te bring 1500 soos minded hackers en skeppende al 235 00:09:12,395 --> 00:09:13,120 oor die hele wêreld. 236 00:09:13,120 --> 00:09:14,610 As dit is van belang is, neem hier 'n blik. 237 00:09:14,610 --> 00:09:17,401 As dit is te kort op die skerm, 'n blik op skyfies vandag se 238 00:09:17,401 --> 00:09:19,622 vir die URL vir yhack.org. 239 00:09:19,622 --> 00:09:21,080 So, ook 'n paar vinnige aankondigings. 240 00:09:21,080 --> 00:09:24,410 So, amptelik afdelings sal begin volgende week hier en New Haven. 241 00:09:24,410 --> 00:09:27,660 Hou in gedagte wat jy sal kry 'n e-pos later hierdie naweek waarskynlik. 242 00:09:27,660 --> 00:09:29,390 Dit neem 'n lang tyd vir CS50 artikel, 243 00:09:29,390 --> 00:09:32,080 gegewe al die mense in die klas en almal rond te beweeg. 244 00:09:32,080 --> 00:09:34,871 En al die Onderrig Fellows ' skedules is ook steeds stol, 245 00:09:34,871 --> 00:09:38,110 maar bly ingeskakel vir 'n e-pos en indien nodig word, kan jy weer-afdeling is daar daarna. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 So, selfs al is jy 'n konstante deelnemer by afdelings, besef dat byna al 248 00:09:43,280 --> 00:09:46,786 van die hulpbronne wat ons gebruik in artikels is publiek sigbaar op CS50 249 00:09:46,786 --> 00:09:48,460 Studeer by hierdie URL hier. 250 00:09:48,460 --> 00:09:51,630 So, as jy ooit wil review weer materiaal van artikel, of lees wat voorlê, 251 00:09:51,630 --> 00:09:54,170 of jy kan dit nie maak nie 'n week, besef dat monster skyfies, 252 00:09:54,170 --> 00:09:58,210 en probleme, en definisies, en meer is almal daar so goed. 253 00:09:58,210 --> 00:10:00,645 >> Kantoorure hervat vandag en môre, en Woensdag, 254 00:10:00,645 --> 00:10:03,020 en Donderdag gaan die kursus se webwerf vir die skedule. 255 00:10:03,020 --> 00:10:05,690 >> En ook, nou ' vandag is CS50 Bespreek. 256 00:10:05,690 --> 00:10:09,230 Dus, as en wanneer jy vrae vir het mekaar of vir personeel die kursus se 257 00:10:09,230 --> 00:10:12,099 en is oor die algemeen werk op 'n probleem stel, 258 00:10:12,099 --> 00:10:15,015 besef dat jy dit nie doen nie noodwendig het om te draai na die menslike volgende jou. 259 00:10:15,015 --> 00:10:17,810 As daar niemand is daar, jy kan uit te reik na ons en klasmaats 260 00:10:17,810 --> 00:10:19,890 aanlyn via CS50 Bespreek. 261 00:10:19,890 --> 00:10:22,600 So, dit is 'n bespreking raad vir die kursus, 262 00:10:22,600 --> 00:10:24,550 en besef dat hierdie is dalk die beste 263 00:10:24,550 --> 00:10:28,480 plek om te begin wanneer jy vrae wanneer buite kantoorure 264 00:10:28,480 --> 00:10:29,470 in die besonder. 265 00:10:29,470 --> 00:10:31,070 >> Middagetes sal ook begin hierdie week. 266 00:10:31,070 --> 00:10:33,170 Op vuur en ys [Onhoorbaar] in New Haven. 267 00:10:33,170 --> 00:10:35,379 Neem 'n blik op die kursus se webwerf ten einde te RSVP. 268 00:10:35,379 --> 00:10:36,753 Kom eerste, eerste dien vir daardie. 269 00:10:36,753 --> 00:10:39,380 As jy nie in hierdie week kry nie ons sal hierdie die meeste elke Vrydag doen 270 00:10:39,380 --> 00:10:40,400 gedurende die termyn. 271 00:10:40,400 --> 00:10:41,830 >> OK, en nou 'n woord oor gradering. 272 00:10:41,830 --> 00:10:44,690 Veral as ons die probleem tree stel een, wat hierdie week, 273 00:10:44,690 --> 00:10:46,670 en die probleem sit twee en daarna. 274 00:10:46,670 --> 00:10:51,680 Hoe gaan ons oor die evaluering P stelle en evaluering van die kwaliteit daarvan? 275 00:10:51,680 --> 00:10:55,560 So, dit is vier asse wat ons gebruik in CS50, en hulle is hierdie vier hier. 276 00:10:55,560 --> 00:10:59,200 >> Omvang wat vang op 'n numeriese basis net hoeveel van die P stel 277 00:10:59,200 --> 00:10:59,860 het jy pak. 278 00:10:59,860 --> 00:11:02,890 Dit is rofweg ooreen met inspanning, en dit is ons manier van die opneem 279 00:11:02,890 --> 00:11:05,190 het jy probeer die helfte van die P stel, almal van die P stel. 280 00:11:05,190 --> 00:11:08,860 Dit is 'n maklike een om volmaak tellings op as jy nie, wel, 281 00:11:08,860 --> 00:11:11,020 probeer om elke aspek van die P stel. 282 00:11:11,020 --> 00:11:12,010 So, hou dit in gedagte. 283 00:11:12,010 --> 00:11:13,420 >> Korrektheid is presies dit. 284 00:11:13,420 --> 00:11:17,760 Is jou kode werk as die spesifikasie en as die personeel "monster oplossing 285 00:11:17,760 --> 00:11:19,730 dui daarop dat jou kode moet, in werklikheid, werk. 286 00:11:19,730 --> 00:11:23,260 Check 50, as jy dit nog nie ontmoet Tog, is in P stel een spesifikasie 287 00:11:23,260 --> 00:11:25,060 en sal oor die algemeen gee jou ja / nee antwoorde 288 00:11:25,060 --> 00:11:26,518 om te bepaal of jou kode korrek is. 289 00:11:26,518 --> 00:11:30,680 Ten minste so ver as ons gaan Om te evalueer dit gebaseer op die toetse 290 00:11:30,680 --> 00:11:32,430 dat ons hardloop in daardie program. 291 00:11:32,430 --> 00:11:33,850 >> Ontwerp is baie meer subjektief. 292 00:11:33,850 --> 00:11:35,994 Dit is hoe goed geskryf is jou kode. 293 00:11:35,994 --> 00:11:38,410 En dit is iets wat jy sal beter met verloop van tyd te kry, 294 00:11:38,410 --> 00:11:41,201 en dit is iets wat ons sal bied meer kwalitatiewe terugvoer oor. 295 00:11:41,201 --> 00:11:43,350 En deur die ontwerp ek kan beteken voordat lank jy 296 00:11:43,350 --> 00:11:47,650 kan versoek word in sommige P stel om loopingly iets te doen, 297 00:11:47,650 --> 00:11:51,590 maar om miskien drie, of vier, of vyf geneste lusse vore of geneste terwyl 298 00:11:51,590 --> 00:11:52,090 lusse. 299 00:11:52,090 --> 00:11:54,130 Wat oor die algemeen moet begin te maak jy ineenkrimp 300 00:11:54,130 --> 00:11:56,070 en sou die algemeen beskou as slegte ontwerp. 301 00:11:56,070 --> 00:11:59,490 En jy sal begin om te sien in die klas en uit die klas goeie maniere van dinge doen, 302 00:11:59,490 --> 00:12:02,920 slegte maniere van dinge doen wat kan alles reg wees, maar nie 303 00:12:02,920 --> 00:12:04,304 noodwendig goed ontwerp. 304 00:12:04,304 --> 00:12:05,220 Soos die skryf van 'n opstel. 305 00:12:05,220 --> 00:12:08,100 Jy kan in staat wees om op 'n plaas woorde bladsy wat grammatikaal korrek is, 306 00:12:08,100 --> 00:12:10,016 maar die opstel of die tesis hulle is in net 307 00:12:10,016 --> 00:12:11,810 heeltemal onsamehangende of unpersuasive. 308 00:12:11,810 --> 00:12:15,930 En so wat kan die analoog in die wees geskryf wêreld van slegte of goeie ontwerp. 309 00:12:15,930 --> 00:12:18,490 >> En styl, is ook redelik subjektief. 310 00:12:18,490 --> 00:12:20,060 Maar ten minste verwag ons konsekwentheid. 311 00:12:20,060 --> 00:12:21,480 Dit is hoe mooi is jou kode. 312 00:12:21,480 --> 00:12:22,840 Is dinge mooi ingekeep? 313 00:12:22,840 --> 00:12:26,600 Is jou veranderlikes goed vernoem / Is alle jou hakies en krulhakies 314 00:12:26,600 --> 00:12:27,920 lyn as wat hulle behoort te wees? 315 00:12:27,920 --> 00:12:31,490 Ons doen 'n CS50 styl gids as die probleem stel sal jy wys op. 316 00:12:31,490 --> 00:12:33,730 Diegene wat meer gemaklik is welkom om afwyk van wat 317 00:12:33,730 --> 00:12:35,771 so lank as wat jy self konsekwent. 318 00:12:35,771 --> 00:12:38,020 En dit is ook 'n les ons sal versterk in afdeling. 319 00:12:38,020 --> 00:12:40,990 Dus, as al hierdie was 'n bietjie vinnig, besef dat die P stel en artikels 320 00:12:40,990 --> 00:12:42,900 sal in meer diepte te gaan kort voor lank. 321 00:12:42,900 --> 00:12:45,490 >> Maar oor die algemeen het ons baie min emmers vir CS50. 322 00:12:45,490 --> 00:12:48,170 Tellings is oor die algemeen op 'n skaal van een tot drie of 04:59. 323 00:12:48,170 --> 00:12:50,836 Ons is literally-- en ek kan nie sê dit genoeg in die eerste week. 324 00:12:50,836 --> 00:12:51,582 Drie is goed. 325 00:12:51,582 --> 00:12:54,290 So, selfs al is, ja, drie uit vyf gewoonlik, wiskundig, 326 00:12:54,290 --> 00:12:57,240 dalk 'n 60 persent of soos 'n D minus wees. 327 00:12:57,240 --> 00:12:58,840 Drie is, in werklikheid, 'n goeie. 328 00:12:58,840 --> 00:13:01,050 En, in werklikheid, ons verwag die meeste studente in die klas 329 00:13:01,050 --> 00:13:04,280 om rond te begin die term twees en drieë, en viere. 330 00:13:04,280 --> 00:13:05,510 Waarskynlik nie so baie twintigs. 331 00:13:05,510 --> 00:13:06,661 Nie te veel kinders. 332 00:13:06,661 --> 00:13:08,910 Maar oor die algemeen om te begin in dat lieflike plek in die kurwe 333 00:13:08,910 --> 00:13:11,694 sodat as die tyd vorder, daar is eintlik ruimte vir, 334 00:13:11,694 --> 00:13:13,360 en geleenthede vir die boonste vordering. 335 00:13:13,360 --> 00:13:15,810 So, moet asseblief nie gelyk te stel met drie 60%. 336 00:13:15,810 --> 00:13:17,410 Dit is baie meer abstrakte as dit. 337 00:13:17,410 --> 00:13:20,160 Die formule waarmee ons te bereken grade is soos volg geweeg. 338 00:13:20,160 --> 00:13:21,610 Korrektheid is die moeite werd die meeste. 339 00:13:21,610 --> 00:13:23,010 Ontwerp is 'n bietjie minder werd. 340 00:13:23,010 --> 00:13:24,490 Styl is 'n bietjie minder werd. 341 00:13:24,490 --> 00:13:26,950 En dit algemeen vang die bedrag van die tyd 342 00:13:26,950 --> 00:13:29,800 wat gaan in elke kry van hierdie asse net reg. 343 00:13:29,800 --> 00:13:31,810 Styl is super maklik, moet super vinnig wees, 344 00:13:31,810 --> 00:13:33,657 maar dit is 'n maklike gewoonte te kry lui oor. 345 00:13:33,657 --> 00:13:35,490 Korrektheid te neem jy die meeste van die tyd. 346 00:13:35,490 --> 00:13:38,990 Jaag paar fout mag neem dat die ekstra uur of meer, 347 00:13:38,990 --> 00:13:41,737 en so het die telling uiteindelik vang nie. 348 00:13:41,737 --> 00:13:43,070 En so, nou 'n meer ernstige woord. 349 00:13:43,070 --> 00:13:45,240 Sedert CS50 het die onderskeid, vir 'n beter 350 00:13:45,240 --> 00:13:47,440 of vir slegter, om dalk beter vertroud 351 00:13:47,440 --> 00:13:50,065 met die kwessies van akademiese eerlikheid as die meeste enige ander kursus. 352 00:13:50,065 --> 00:13:53,720 En inderdaad, dit is na my wete dat stuur ons meer studente, ongelukkig, 353 00:13:53,720 --> 00:13:56,690 vir dissiplinêre doeleindes elke jaar as 'n gevolg. So, 354 00:13:56,690 --> 00:13:59,040 in die belang van 'n volledige bekendmaking, laat ons praat kortliks 355 00:13:59,040 --> 00:14:02,820 oor wat gaan aan in CS50, en wat jy kan doen, en wat jy kan bedag wees. 356 00:14:02,820 --> 00:14:05,530 >> So, hier sedert 2007, toe Ek geërf die kursus, 357 00:14:05,530 --> 00:14:07,870 is die aantal Ad Board gevalle. 358 00:14:07,870 --> 00:14:10,690 Ad Raad Harvard se dissiplinêre liggaam, of nou die eer Counsel, 359 00:14:10,690 --> 00:14:13,790 om watter gevalle word verwys wanneer studente iets te doen wat die kursus se 360 00:14:13,790 --> 00:14:15,470 leerplan oorweeg onredelik. 361 00:14:15,470 --> 00:14:17,220 Daar is geen werklike patroon hier, sou ek sê. 362 00:14:17,220 --> 00:14:19,530 Dit wissel oor die jaar maar oor die algemeen 363 00:14:19,530 --> 00:14:22,262 dit is die getal van gevalle wat verwys. 364 00:14:22,262 --> 00:14:23,970 Die aantal studente wat betrokke is? 365 00:14:23,970 --> 00:14:25,290 Dit wissel ook. 366 00:14:25,290 --> 00:14:27,930 Tipies, verlede jaar vir Byvoorbeeld, 29 studente by Harvard 367 00:14:27,930 --> 00:14:29,740 was Ad boord, om so te praat. 368 00:14:29,740 --> 00:14:32,670 29 van hulle huidige studente, twee van hulle voor studente, 369 00:14:32,670 --> 00:14:35,610 wat saam in sommige verkeerde manier. 370 00:14:35,610 --> 00:14:38,400 En dan in terme van die persentasie, is dit gewoonlik sowat 3% 371 00:14:38,400 --> 00:14:41,360 van die klas wat, ongelukkig, maak hierdie soort besluite. 372 00:14:41,360 --> 00:14:44,470 >> So, verlede jaar was dit 3,5% van CS50 se student liggaam 373 00:14:44,470 --> 00:14:46,820 dit was Ad boord, om so te praat. 374 00:14:46,820 --> 00:14:48,490 >> So, wat beteken dit alles beteken? 375 00:14:48,490 --> 00:14:49,660 En wat doen ons nou eintlik? 376 00:14:49,660 --> 00:14:52,930 >> So, vir die volle bekendmaking, ons absoluut, rekenaar wetenskaplikes, 377 00:14:52,930 --> 00:14:57,620 het sagteware gereedskap tot ons beskikking en dit is baie maklik vir ons, in regverdigheid, 378 00:14:57,620 --> 00:15:00,980 klasmaats se ander wat nie kruising hierdie lyne te steek vergelyk 379 00:15:00,980 --> 00:15:04,570 elke voorlegging vanjaar teen elke voorlegging vir die afgelope agt jaar. 380 00:15:04,570 --> 00:15:05,445 Sagteware doen dit. 381 00:15:05,445 --> 00:15:07,440 En uiteindelik is dit menslike oë wat besluit 382 00:15:07,440 --> 00:15:11,410 of om 'n paar verwys saak vir verdere beoordeling, 383 00:15:11,410 --> 00:15:12,737 maar sagteware help beslis. 384 00:15:12,737 --> 00:15:15,820 En dit, eerlik, is die rede waarom ek dink dat ons het sulke groot getalle in CS50. 385 00:15:15,820 --> 00:15:18,540 Dit is nie omdat CS50 studente of CS studente meer 386 00:15:18,540 --> 00:15:20,840 algemeen 'n minder eerlike as enige ander studente, 387 00:15:20,840 --> 00:15:22,340 dit is net ons het die gereedskap en tegnieke 388 00:15:22,340 --> 00:15:24,095 waarmee die eerste pass neem. 389 00:15:24,095 --> 00:15:25,960 >> Maar ons doen hou 'n oog op al hierdie dinge 390 00:15:25,960 --> 00:15:30,340 sowel, weer, in die belang van die erkenning van die werk wat is geplaas 391 00:15:30,340 --> 00:15:32,397 in deur 'n super meerderheid van die klas. 392 00:15:32,397 --> 00:15:34,230 En die beleid van die kursus se op akademiese eerlikheid, 393 00:15:34,230 --> 00:15:37,021 selfs al is dit 'n klomp van die paragrawe lank met 'n klomp van die koeëls 394 00:15:37,021 --> 00:15:40,490 wat hopelik is baie leesbaar, dit regtig nie neer redelik te wees. 395 00:15:40,490 --> 00:15:44,000 En die beste van die duim wat heerskappy Ons bied up in die leerplan 396 00:15:44,000 --> 00:15:46,020 is dit, die essensie van al die werk wat u 397 00:15:46,020 --> 00:15:47,850 aan hierdie kursus moet jou eie wees. 398 00:15:47,850 --> 00:15:51,510 En inderdaad, in byna al daardie gevalle verwys vir dissiplinêre optrede 399 00:15:51,510 --> 00:15:55,640 dit was as gevolg van 'n paar student laat een nag het tipies sy of haar code 400 00:15:55,640 --> 00:15:58,130 oor blatante om 'n klasmaat, wat dan aangeneem 401 00:15:58,130 --> 00:16:00,840 in die geheel of aansienlik daarvan. 402 00:16:00,840 --> 00:16:02,680 >> Maar regtig, dit is OK. 403 00:16:02,680 --> 00:16:04,684 En inderdaad, by die kantoor ure, die strokies papier 404 00:16:04,684 --> 00:16:07,850 jy is oorhandig as jy het deur die kantoor uur verlede week moedig soveel. 405 00:16:07,850 --> 00:16:09,710 Jy is absoluut verwelkom en aangemoedig 406 00:16:09,710 --> 00:16:12,340 probleem stelle bespreek met klasmaats. 407 00:16:12,340 --> 00:16:14,461 Om mekaar te help wanneer struikeling. 408 00:16:14,461 --> 00:16:17,710 Maar oor die algemeen die reël moet wees nie, "wanneer jy vra vir hulp, 409 00:16:17,710 --> 00:16:20,412 kan jy jou kode te wys aan ander, maar jy mag hulle s'n nie te sien. " 410 00:16:20,412 --> 00:16:22,620 So, met ander woorde, as ek sukkel met 'n paar P stel 411 00:16:22,620 --> 00:16:25,290 en ek sit daar in die eetsaal, of in die biblioteek, 412 00:16:25,290 --> 00:16:28,470 of in die klaskamer probeer om 'n paar fout te vind, 413 00:16:28,470 --> 00:16:30,340 Ek kan beslis wys my kode op my skerm 414 00:16:30,340 --> 00:16:32,590 aan die persoon langs vir my seker die personeel, 415 00:16:32,590 --> 00:16:33,600 maar ook 'n klasmaat. 416 00:16:33,600 --> 00:16:36,580 Maar as die oplossing wat my klasmaat bied is, ag, 417 00:16:36,580 --> 00:16:39,200 hier net 'n blik op wat Ek het, dat die lyn kruis. 418 00:16:39,200 --> 00:16:43,120 >> En ek sou waag om te sê dit is oor die algemeen 'n redelike ding vir die meeste mense 419 00:16:43,120 --> 00:16:45,030 om baie maklik sien die lyn van. 420 00:16:45,030 --> 00:16:47,195 En so sien die leerplan vir meer besonderhede. 421 00:16:47,195 --> 00:16:49,070 En nou een van die meer omstrede aspekte 422 00:16:49,070 --> 00:16:52,529 van CS50 sillabus wat ek gedink het ek sou tot in die slot praat hier 423 00:16:52,529 --> 00:16:53,820 is die sogenaamde spyt klousule. 424 00:16:53,820 --> 00:16:55,340 So, hier is al die fynskrif. 425 00:16:55,340 --> 00:16:58,090 Maar in die algemeen het ons gesien oor die afgelope 8 jaar plus 426 00:16:58,090 --> 00:17:01,510 wat, inderdaad, byna almal van CS50 se gevalle van akademiese oneerlikheid 427 00:17:01,510 --> 00:17:04,390 die resultaat van net swak gewees besluitneming laat in die nag. 428 00:17:04,390 --> 00:17:07,144 Die gevolg van stres, die resultaat van 'n gebrek van eet, gebrek aan slaap, 429 00:17:07,144 --> 00:17:09,560 te veel P stelle, te veel deadlines, te veel verpligtinge. 430 00:17:09,560 --> 00:17:13,520 Stres opbou in 'n 02:00, 03:00 AM, 04:00, met 'n sperdatum dreigende. 431 00:17:13,520 --> 00:17:17,020 Die meeste studente in hierdie gevalle het net gemaak slegte besluite 432 00:17:17,020 --> 00:17:20,619 dat hulle baie goed kan spyt die volgende oggend indien nie minute later, 433 00:17:20,619 --> 00:17:25,490 maar tot verlede jaar was daar geen ontlasklep dat hierdie studente kan 434 00:17:25,490 --> 00:17:29,140 eintlik oop om werklik aan te spreek die probleem kop op sonder vrees om 435 00:17:29,140 --> 00:17:30,850 geselflaai van die kollege geheel en al. 436 00:17:30,850 --> 00:17:33,260 >> En, inderdaad, het ons ' hierdie spyt klousule verlede jaar, 437 00:17:33,260 --> 00:17:35,970 wat sê dat indien daar binne 72 uur, drie dae, 438 00:17:35,970 --> 00:17:37,970 kruising sommige lyn in die leerplan voorgeskryf 439 00:17:37,970 --> 00:17:41,178 jy kom uit na een van die kursus se koppe en ons sal 'n chat oor dit. 440 00:17:41,178 --> 00:17:43,720 Daar is nog steeds 'n paar uitkoms, in teenstelling met wat is 441 00:17:43,720 --> 00:17:44,990 is by die teendeel. 442 00:17:44,990 --> 00:17:49,190 Daar nog uitkoms wat is aksie deur die loop, 443 00:17:49,190 --> 00:17:51,611 algemeen Nulstellen n P stel of die neem van 'n ander aksie, 444 00:17:51,611 --> 00:17:53,610 Maar ons sal inderdaad hanteer dit self en nie 445 00:17:53,610 --> 00:17:58,460 verwys dit hoër was die uitslag kan baie meer ernstig wees. 446 00:17:58,460 --> 00:18:01,810 En, inderdaad, om te deel wat gebeur het verlede jaar, in die agt jaar, en nou 447 00:18:01,810 --> 00:18:04,950 nege jaar van die onderrig van hierdie kursus en na geknutsel met verskeie knoppe, 448 00:18:04,950 --> 00:18:07,866 draai verskeie dials oor die afgelope 'n paar jaar op akademiese eerlikheid, 449 00:18:07,866 --> 00:18:11,920 en sien per die data geen oënskynlike impak, selfs van toesprake soos hierdie, 450 00:18:11,920 --> 00:18:15,490 dit was loshande die beste ding ons het pedagogies bekendgestel 451 00:18:15,490 --> 00:18:18,090 in agt jaar saam hierdie lyne in CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 studente het na vore gekom ingevolge hierdie klousule verlede jaar. 453 00:18:21,010 --> 00:18:23,389 Ons het geen aksie vir sewe van die studente, 454 00:18:23,389 --> 00:18:25,430 bepaling dat hulle onnodig bekommerd. 455 00:18:25,430 --> 00:18:27,304 Hulle het nie, in werklikheid, gekruis 'n lyn, maar dit 456 00:18:27,304 --> 00:18:28,960 was 'n goeie chat om nietemin het. 457 00:18:28,960 --> 00:18:31,190 Ons zeroed 11 van die tellings wat ingedien is. 458 00:18:31,190 --> 00:18:33,840 En in een geval het ons gevra 'n student om 'n probleem te stel nie. 459 00:18:33,840 --> 00:18:36,370 Maar meer dwingende, eerlik, met hierdie 19 geselsies, 460 00:18:36,370 --> 00:18:39,020 wat was die pad meer as wat ek verwag om, elkeen van hulle 461 00:18:39,020 --> 00:18:41,370 10 minute om 'n miskien uur lank, het ook 462 00:18:41,370 --> 00:18:44,920 om 'n aantal kwessies rakende lig familiële kwessies, vriend kwessies, 463 00:18:44,920 --> 00:18:46,940 geestelike gesondheid kwessies dat ons dan besig is, 464 00:18:46,940 --> 00:18:50,200 met die student se seën, inwoner dekaan, of vriende, of enige ander getal 465 00:18:50,200 --> 00:18:51,450 ondersteuning hulpbronne. 466 00:18:51,450 --> 00:18:54,454 Sodat dit was by verre een van die beste gebruik van ons tyd 467 00:18:54,454 --> 00:18:55,870 en een van die beste intervensies. 468 00:18:55,870 --> 00:18:58,870 >> Met wat gesê het, nee, dit het insette oor die koers van die opsporing 469 00:18:58,870 --> 00:19:00,909 van akademiese oneerlikheid meer algemeen. 470 00:19:00,909 --> 00:19:02,950 En durf ek sê, hierdie subset studente verlede jaar 471 00:19:02,950 --> 00:19:06,350 was 'n demografiese dat ons voorheen nooit geïdentifiseer 472 00:19:06,350 --> 00:19:08,140 en het nog nooit in verband met voor. 473 00:19:08,140 --> 00:19:10,020 En so, dit was wonderlike suksesverhale 474 00:19:10,020 --> 00:19:13,390 selfs al is hulle aan die lig gebring in minder as optimale omstandighede. 475 00:19:13,390 --> 00:19:15,640 So, hou dit in gedagte as jy maak, miskien, 476 00:19:15,640 --> 00:19:17,390 sommige arm besluit jouself laat in die nag, 477 00:19:17,390 --> 00:19:20,151 dat daar 'n beroep so lank as die student in daardie situasie 478 00:19:20,151 --> 00:19:23,400 besit en na vore te kom sodat ons kan het dat die soort van chat en dit te hanteer 479 00:19:23,400 --> 00:19:27,310 in 'n manier wat opvoedkundige, en dan ons kan dit agter ons die volgende dag. 480 00:19:27,310 --> 00:19:30,335 >> So sonder meer, neem die rand af van hierdie gesprek, 481 00:19:30,335 --> 00:19:35,080 die rede waarom die hondjies is up is net om die ys vir 'n oomblik te breek. 482 00:19:35,080 --> 00:19:39,560 En ongelukkig, hulle is almal slaap, maar wat veronderstel was om hier te gebeur 483 00:19:39,560 --> 00:19:41,760 was almal veronderstel was om ontsag en soort van ontspan 484 00:19:41,760 --> 00:19:43,910 nadat baie swaar gesprek. 485 00:19:43,910 --> 00:19:46,930 Maar blykbaar het ek die hondjies te slaap. 486 00:19:46,930 --> 00:19:50,070 Maar as jy gaan na CS50 se webwerf slash hondjies, 487 00:19:50,070 --> 00:19:51,610 jy kan hulle die hele dag lank te kyk. 488 00:19:51,610 --> 00:19:55,280 Veral miskien 02:00, of 03:00, of 04:00 in die nag 489 00:19:55,280 --> 00:19:57,480 om 'n bietjie stress verligting daar te sien. 490 00:19:57,480 --> 00:19:58,805 So dit is streep hondjies. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 Alles reg. 493 00:20:02,200 --> 00:20:03,020 Was dit nie pret? 494 00:20:03,020 --> 00:20:04,200 OK. 495 00:20:04,200 --> 00:20:07,140 So, terug na 'n paar rekenaar wetenskap, as ek kan. 496 00:20:07,140 --> 00:20:10,600 >> So, onthou dat die laaste keer het ons begin soek nie net by die hoof, wat 497 00:20:10,600 --> 00:20:13,930 was die standaard-funksie, die wanneer groen vlag gekliek ekwivalent, 498 00:20:13,930 --> 00:20:16,999 maar ons het ook begin kortliks skryf sommige van ons eie funksies. 499 00:20:16,999 --> 00:20:20,040 En tot dusver nie een van hierdie funksies het veral groot of vleis nie. 500 00:20:20,040 --> 00:20:24,570 Jy sal kry in die groter funksies waarskynlik, P stel 2, P stel 3, 501 00:20:24,570 --> 00:20:26,410 beslis P stel 4 en verder. 502 00:20:26,410 --> 00:20:29,340 Nou die meeste van jou programme, Indien nie almal van hulle, seker vir P 503 00:20:29,340 --> 00:20:31,550 stel 1 kan heeltemal gedoen in die belangrikste. 504 00:20:31,550 --> 00:20:33,810 As jou program is net vyf lyne, 10 lyne, 505 00:20:33,810 --> 00:20:37,070 selfs 20 lyne lank, perfek redelike om dit te skryf 506 00:20:37,070 --> 00:20:40,930 al in die belangrikste en nie bemoeilik te oor jou kode nie, maar wat ons vandag doen 507 00:20:40,930 --> 00:20:44,360 en verder probeer ook stel 'n paar goeie ontwerp tegnieke 508 00:20:44,360 --> 00:20:48,660 sodat as jou kode kry meer ingewikkeld en die probleme 509 00:20:48,660 --> 00:20:51,690 jy wil om op te los te kry harder en meer interessant wat jy het, soort van, 510 00:20:51,690 --> 00:20:55,850 die gereedskap in jou toolbox waarmee om goeie oplossings vir diegene ontwerp. 511 00:20:55,850 --> 00:21:01,210 >> So, laat ons neem 'n vinnige blik op hierdie program uit my verlede week, wat 512 00:21:01,210 --> 00:21:06,550 was funksies nul dot C. En agterkom dat, heel eenvoudig, 513 00:21:06,550 --> 00:21:10,310 dit lyk soos hierdie met twee funksies, hoof en die naam druk. 514 00:21:10,310 --> 00:21:13,160 En dink terug of dalk reverse engineering vandag 515 00:21:13,160 --> 00:21:16,880 wat was die motivering vir die instelling 'n funksie in lyn 28 genoem word, 516 00:21:16,880 --> 00:21:18,180 druk naam? 517 00:21:18,180 --> 00:21:21,745 Of wat dit 'n voorbeeld van in was terme van 'n beginsel of afhaal, 518 00:21:21,745 --> 00:21:22,605 As jy wil. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Sommige geruise. 521 00:21:27,300 --> 00:21:28,830 Wat? 522 00:21:28,830 --> 00:21:32,210 >> Ja so Funksionele Ontbinding is 'n soort van die fancy manier om te sê, 523 00:21:32,210 --> 00:21:34,690 ontbind jou program in sy samestellende dele 524 00:21:34,690 --> 00:21:37,530 en gebruik dan die dele om 'n hele vergader. 525 00:21:37,530 --> 00:21:39,620 So, ook dit is net 'n soort van 'n mondvol reeds 526 00:21:39,620 --> 00:21:42,050 maar dit is dalk selfs 'n beter voorbeeld van iets 527 00:21:42,050 --> 00:21:43,081 net genoem abstraksie. 528 00:21:43,081 --> 00:21:43,580 Reg? 529 00:21:43,580 --> 00:21:46,950 Onttrekking gaan een wees van die herhalende temas in CS50 530 00:21:46,950 --> 00:21:49,085 en ook rekenaarwetenskap meer algemeen, aangesien dit 531 00:21:49,085 --> 00:21:53,060 'n tegniek waarmee jy kan oplos probleme meer effektief te omdat jy 532 00:21:53,060 --> 00:21:56,807 kan oplossings meer skryf intuïtief en in 'n manier dat skale 533 00:21:56,807 --> 00:21:58,390 en is verstaanbaar deur ander mense. 534 00:21:58,390 --> 00:21:59,860 Wat doen ek daarmee? 535 00:21:59,860 --> 00:22:04,340 >> So, waarskynlik dit is baie meer leesbare om te kyk na 'n program soos hierdie, 536 00:22:04,340 --> 00:22:05,990 super kort al is dit. 537 00:22:05,990 --> 00:22:10,050 Wanneer jy sien op die lyn 22 dat daar ' 'n funksie genoem, die naam druk. 538 00:22:10,050 --> 00:22:12,620 Daardie naam alleen sê wat dit doen. 539 00:22:12,620 --> 00:22:15,780 Daardie funksie neem blykbaar insette tussen die hakies, 540 00:22:15,780 --> 00:22:18,600 en blykbaar iets doen, vermoedelik druk die naam. 541 00:22:18,600 --> 00:22:20,880 En so, selfs al het ons absoluut kan hê 542 00:22:20,880 --> 00:22:25,280 gedoen wat ons het 'n week gelede, wat was net neem hierdie werklike reël van die kode, 543 00:22:25,280 --> 00:22:28,710 ontslae te raak van hierdie, en kry ontslae te raak van al hierdie saam 544 00:22:28,710 --> 00:22:31,436 Ons soort van onttrek weg die idee van die druk van 'n naam. 545 00:22:31,436 --> 00:22:33,060 Ek gee nie om as jy die gebruik van gedrukte def. 546 00:22:33,060 --> 00:22:35,601 Ek gee nie om as jy 'n persent S en 'n backslash N. Hierdie 547 00:22:35,601 --> 00:22:37,270 is ongelooflik arcane besonderhede. 548 00:22:37,270 --> 00:22:40,090 Wat ek wel omgee as 'n programmeerder is druk van 'n naam. 549 00:22:40,090 --> 00:22:43,414 En so, watter beter manier om dit te doen as deur 'n funksie, die naam gedrukte roeping? 550 00:22:43,414 --> 00:22:46,330 En so, dit was een van die motiverings vir iets soos dit te doen. 551 00:22:46,330 --> 00:22:50,370 Maak die kode meer leesbaar, meer herbruikbare, en ook self beskrywende. 552 00:22:50,370 --> 00:22:52,120 Nou, laat ons neem 'n blik by 'n ander voorbeeld, 553 00:22:52,120 --> 00:22:56,220 wat funksies een wat ons gehad het oor hier. 554 00:22:56,220 --> 00:23:00,367 >> So, hierdie een is miskien selfs meer dwingende, want in hierdie geval, 555 00:23:00,367 --> 00:23:01,700 Ek wil nie net kry 'n int. 556 00:23:01,700 --> 00:23:03,320 Ek wil 'n positiewe int kry. 557 00:23:03,320 --> 00:23:06,470 En dit blyk 'n positiewe te kry int jy 'n klomp van die informatieverzameling doen. 558 00:23:06,470 --> 00:23:06,969 Reg? 559 00:23:06,969 --> 00:23:09,600 Dit is nie 'n eenvoudige een lyn noem soos naam gedrukte was, 560 00:23:09,600 --> 00:23:11,480 wat is weliswaar minder oortuigend. 561 00:23:11,480 --> 00:23:16,000 >> Om 'n positiewe int te kry, logically-- laat my blaai terug na hierdie weg te steek. 562 00:23:16,000 --> 00:23:18,887 Wat het jy om te doen? 563 00:23:18,887 --> 00:23:20,720 Soos al die gereedskap wat ons op die oomblik is 564 00:23:20,720 --> 00:23:24,440 dinge soos gedrukte def van Standard Biblioteek en ook van CS50 biblioteek 565 00:23:24,440 --> 00:23:26,990 ons het Kry Int, en kry Float, Kry Long Long, kry String, 566 00:23:26,990 --> 00:23:29,260 maar die enigste een, Duitse, nou is Kry Int. 567 00:23:29,260 --> 00:23:32,970 Dus, as die enigste instrument wat jy het in jou tool box is Kry Int, 568 00:23:32,970 --> 00:23:35,505 hoe kan ons gaan om dit positief int te kry? 569 00:23:35,505 --> 00:23:35,929 >> GEHOOR: Skep 'n log en kyk of die insette wat hulle het 570 00:23:35,929 --> 00:23:36,762 was positief is of nie. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> Spreker 1: Perfect. 573 00:23:40,640 --> 00:23:41,200 Presies. 574 00:23:41,200 --> 00:23:43,950 Nog 'n instrument wat ons in ons toolbox van 'n week of twee gelede 575 00:23:43,950 --> 00:23:45,419 is net die herhaling konstruk. 576 00:23:45,419 --> 00:23:48,210 En so, ja, as ons gebruik 'n rukkie lus, of 'n doen terwyl loop, of 'n vore 577 00:23:48,210 --> 00:23:50,850 lus ons kon waarskynlik wegkom met enige van diegene wat in een of ander vorm. 578 00:23:50,850 --> 00:23:55,140 Ons kan die idee van get implementeer positiewe int deur net die gebruik Kry Int, 579 00:23:55,140 --> 00:23:57,830 en dan hou net noem dit weer en hou neul die gebruiker 580 00:23:57,830 --> 00:24:00,320 totdat hy of sy eintlik gee ons wat ons wil hê. 581 00:24:00,320 --> 00:24:03,260 >> En so nou is dit onttrekking van die proses 582 00:24:03,260 --> 00:24:05,680 om 'n positiewe int in 'n funksie genoem 583 00:24:05,680 --> 00:24:08,930 Kry Positiewe Int is 'n bietjie meer dwingende omdat kyk na hierdie. 584 00:24:08,930 --> 00:24:10,990 Dit is soos '10 plus lyne van kode wat 585 00:24:10,990 --> 00:24:15,090 betrokke in om 'n positiewe int, en ek het nie regtig omgee hoe jy dit doen. 586 00:24:15,090 --> 00:24:17,850 Al wat ek omgee is dat jy kan dit doen, en so ek het 587 00:24:17,850 --> 00:24:21,660 versteek al hierdie besonderhede agter 'n funksie genoem Kry Positiewe int dat 588 00:24:21,660 --> 00:24:23,430 Trouens, doen dit terwyl loop. 589 00:24:23,430 --> 00:24:27,660 >> En kyk verlede week vir die sintaksis daar, maar dit is net verklaar N, 590 00:24:27,660 --> 00:24:29,800 en dit druk die opdrag aan die gebruiker. 591 00:24:29,800 --> 00:24:33,330 Dit is dan Kry Int en dan is dit tjeks hierdie toestand weer en weer, 592 00:24:33,330 --> 00:24:35,230 en weer totdat die gebruiker saam. 593 00:24:35,230 --> 00:24:38,000 >> So nou, 'n paar gesonde verstand tjeks. 594 00:24:38,000 --> 00:24:40,370 Vir diegene dalk vertroud met 'n paar programme, 595 00:24:40,370 --> 00:24:46,410 hoekom N verklaar, waarom doen Ek skep N buite die doen terwyl loop? 596 00:24:46,410 --> 00:24:50,370 Hoekom is dit op die lyn 29 en nie op soos 33, byvoorbeeld. 597 00:24:50,370 --> 00:24:53,529 >> GEHOOR: Want wanneer jy verklaar dat dit buite, is dit soort 598 00:24:53,529 --> 00:24:56,688 meer, die groter scope-- 599 00:24:56,688 --> 00:24:58,146 >> Spreker 1: Goed. 600 00:24:58,146 --> 00:24:59,604 >> GEHOOR: --and as jy verklaar dit binne die lus, [onhoorbaar] 601 00:24:59,604 --> 00:25:00,979 omdat dit nie weet nie. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 Spreker 1: Presies. 604 00:25:03,610 --> 00:25:06,330 As ek kan simplify-- dit is 'n kwessie van omvang. 605 00:25:06,330 --> 00:25:11,530 En omvang verwys na die konteks wat 'n veranderlike bestaan ​​of is bruikbaar. 606 00:25:11,530 --> 00:25:15,050 En die mooi reël hier is dat algemeen wanneer jy verklaar of te skep 607 00:25:15,050 --> 00:25:21,642 'n veranderlike kan jy net gebruik dit binne van die naaste omhels krullerige draadjies. 608 00:25:21,642 --> 00:25:22,600 So wat beteken dit? 609 00:25:22,600 --> 00:25:26,551 As ek, in plaas daarvan, ongedaan te maak en gaan saam met hierdie iets wat 'n bietjie eenvoudiger voel. 610 00:25:26,551 --> 00:25:27,050 Reg? 611 00:25:27,050 --> 00:25:29,360 >> Line 32 lyk net skoner nou vir my. 612 00:25:29,360 --> 00:25:31,500 Ek doen beide dinge op een keer en dan toeken 613 00:25:31,500 --> 00:25:33,070 die regterhand na die linkerhand. 614 00:25:33,070 --> 00:25:35,180 Die probleem nou gebaseer op dat definisie van omvang 615 00:25:35,180 --> 00:25:41,130 is dat N gebruik kan word in lyne 31 en 32 in hierdie lus, 616 00:25:41,130 --> 00:25:45,100 Maar waar deur daardie definisie kan dit nie gebruik word nie? 617 00:25:45,100 --> 00:25:45,660 In lyn wat? 618 00:25:45,660 --> 00:25:46,160 Ja. 619 00:25:46,160 --> 00:25:47,490 >> GEHOOR: 35. 620 00:25:47,490 --> 00:25:49,180 >> Spreker 1: 35. 621 00:25:49,180 --> 00:25:50,480 Beslis nie 35. 622 00:25:50,480 --> 00:25:52,349 En ook waar anders? 623 00:25:52,349 --> 00:25:52,890 GEHOOR: 34. 624 00:25:52,890 --> 00:25:55,040 Spreker 1: Selfs 34 is problematies, want dit is 625 00:25:55,040 --> 00:25:56,450 buite die krullerige draadjies. 626 00:25:56,450 --> 00:25:58,200 En so in werklikheid, laat ons sien wat gebeur. 627 00:25:58,200 --> 00:25:58,700 Reg? 628 00:25:58,700 --> 00:26:00,722 Dit kan 'n bietjie lyk intuïtief of dalk nie, 629 00:26:00,722 --> 00:26:02,680 maar laat ons sien wat die samesteller het om te sê wanneer 630 00:26:02,680 --> 00:26:04,730 ons gaan in vandag se bron gids. 631 00:26:04,730 --> 00:26:08,950 Maak funksie een. 632 00:26:08,950 --> 00:26:11,231 O, my God. 633 00:26:11,231 --> 00:26:12,980 Wel, ek uiteindelik klaar dat, deur die manier. 634 00:26:12,980 --> 00:26:14,030 Alles reg. 635 00:26:14,030 --> 00:26:15,510 En wat is die probleem hier? 636 00:26:15,510 --> 00:26:17,430 Baie arcane om na te kyk. 637 00:26:17,430 --> 00:26:19,570 Maar hier is wat ek typed-- maak funksie een. 638 00:26:19,570 --> 00:26:21,640 Hier is wat maak geïnduseerde, wat eintlik 639 00:26:21,640 --> 00:26:23,705 die gebruik van die samesteller klang met 'n paar van daardie vlae 640 00:26:23,705 --> 00:26:25,080 dat ons weer sal sien voor lank. 641 00:26:25,080 --> 00:26:26,829 En weer, altyd kyk by die eerste fout, 642 00:26:26,829 --> 00:26:30,540 want dit mag dalk net 'n waterval betekenisloos effek op ander lyne. 643 00:26:30,540 --> 00:26:34,410 >> So wat dit beteken, is dat die probleem is in die funksie 1.C. 644 00:26:34,410 --> 00:26:36,890 Dit is op die lyn 32. 645 00:26:36,890 --> 00:26:39,712 En dit is op kolom of karakter, 13. 646 00:26:39,712 --> 00:26:42,670 So wanneer jou teks editor wat kan help om te identifiseer waar die probleem is. 647 00:26:42,670 --> 00:26:47,079 So as ek blaai up, wat lyn 32? 648 00:26:47,079 --> 00:26:49,120 Dit is inderdaad hierdie een dit is reeds uitgelig 649 00:26:49,120 --> 00:26:50,607 reg here-- ongebruikte veranderlike n. 650 00:26:50,607 --> 00:26:51,440 Maar dit is nie ongebruikte. 651 00:26:51,440 --> 00:26:52,320 Ek gebruik dit. 652 00:26:52,320 --> 00:26:56,110 Maar die samesteller se verwar, want dit bestaan ​​slegs binne hierdie omvang. 653 00:26:56,110 --> 00:26:57,727 En so kan ek nie hier gebruik nie. 654 00:26:57,727 --> 00:26:58,560 Ek kan nie hier gebruik nie. 655 00:26:58,560 --> 00:27:01,320 En die samesteller, dus nie eens om dat ek probeer. 656 00:27:01,320 --> 00:27:03,940 Dit lyk ongebruikte te wees binne sy werklike omvang. 657 00:27:03,940 --> 00:27:08,854 >> So kan ons die omvang verbreed deur te doen presies wat ons begin with-- int n. 658 00:27:08,854 --> 00:27:11,020 En selfs al is dit nie lyk elegant, miskien, 659 00:27:11,020 --> 00:27:15,110 en ons neem 'n ekstra lyn hier, nou is dit in omvang oral. 660 00:27:15,110 --> 00:27:15,970 So kom ons probeer weer. 661 00:27:15,970 --> 00:27:19,040 So maak funksie een. 662 00:27:19,040 --> 00:27:19,610 Nice. 663 00:27:19,610 --> 00:27:23,370 As ek dan nou as ek hardloop funksie een, kom ons gee dit negatiewe 10, 664 00:27:23,370 --> 00:27:27,170 negatiewe 1, 0, 1, en dit inderdaad werk. 665 00:27:27,170 --> 00:27:28,610 >> So is daar 'n ander oplossing hier. 666 00:27:28,610 --> 00:27:29,280 Jy weet wat? 667 00:27:29,280 --> 00:27:31,230 Wat as ek regtig is stoei met hierdie? 668 00:27:31,230 --> 00:27:33,140 Ek weet nie waar die N veronderstel is om te gaan nie. 669 00:27:33,140 --> 00:27:33,723 Jy weet wat? 670 00:27:33,723 --> 00:27:39,220 Ek gaan net om dit te sit al die manier aan die bokant van my lêer hier. 671 00:27:39,220 --> 00:27:42,835 Wat sou dit doen, dink jy? 672 00:27:42,835 --> 00:27:43,335 Ja? 673 00:27:43,335 --> 00:27:44,251 >> GEHOOR: [onhoorbaar]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 Spreker 1: Ja. 676 00:27:48,630 --> 00:27:50,560 So ek het dit globale gemaak, om so te praat. 677 00:27:50,560 --> 00:27:54,430 As jy 'n veranderlike wat buite al jou funksies wat toegelaat word, 678 00:27:54,430 --> 00:27:58,780 en die kode moet saam, en N sal nou toeganklik wees nie net in get 679 00:27:58,780 --> 00:28:02,490 positiewe int, maar ook in main-- wat is 'n bietjie lastig, want daar is 680 00:28:02,490 --> 00:28:04,864 reeds 'n N in die belangrikste, sodat meer oor wat in net 'n moment-- 681 00:28:04,864 --> 00:28:06,530 maar dit sou oorweeg slegte ontwerp. 682 00:28:06,530 --> 00:28:06,910 Alles reg. 683 00:28:06,910 --> 00:28:08,570 As jy hê om plek te iets soos, ag, ek sal 684 00:28:08,570 --> 00:28:10,125 net sit dit hier omdat die kode blyk te stel 685 00:28:10,125 --> 00:28:12,180 is oor die algemeen nie die beste praktyk. 686 00:28:12,180 --> 00:28:14,590 Eerder jy wil om te kies die kleinste moontlike omvang 687 00:28:14,590 --> 00:28:18,720 vir u veranderlikes, wat sou beteken gaan met ons aanvanklike ontwerp, wat 688 00:28:18,720 --> 00:28:19,920 is reg hier. 689 00:28:19,920 --> 00:28:24,400 >> Nou as 'n eenkant, as jy gehad het nie 'n identies-naam veranderlike hier 690 00:28:24,400 --> 00:28:27,750 die manier c sal hanteer this-- al is dit nie sal gebeur te often-- 691 00:28:27,750 --> 00:28:30,150 is dat dit nog steeds heeltemal fyn hier. 692 00:28:30,150 --> 00:28:35,000 Maar hierdie definisie van N in lyn 22 sal die globale een skaduwee. 693 00:28:35,000 --> 00:28:38,190 So hierdie een sal binne werk hoof, en die globale een 694 00:28:38,190 --> 00:28:41,670 sal eintlik van toepassing is wanneer jy in kry positiewe int maar meer oor dit 695 00:28:41,670 --> 00:28:43,890 'n ander tyd, maar net vir diegene nuuskierig. 696 00:28:43,890 --> 00:28:45,970 >> So in kort, ons dit los hier. 697 00:28:45,970 --> 00:28:49,220 Nou laat terg uitmekaar twee ander stukke Voordat ons kyk na 'n laaste reël van die kode 698 00:28:49,220 --> 00:28:50,170 in hierdie program. 699 00:28:50,170 --> 00:28:52,170 Kry positiewe int. 700 00:28:52,170 --> 00:28:54,450 Op die linkerkant van sy woord is die woord int. 701 00:28:54,450 --> 00:28:56,860 Wat beteken dit dui dink jy? 702 00:28:56,860 --> 00:28:58,900 Tot dusver het ons meestal gesien nietig. 703 00:28:58,900 --> 00:28:59,400 Ja? 704 00:28:59,400 --> 00:29:01,810 >> GEHOOR: Dis die tipe veranderlike wat jy vra oor. 705 00:29:01,810 --> 00:29:04,550 >> Spreker 1: Ja Dis die tipe, laat my nie sê veranderlike, maar die tipe waarde 706 00:29:04,550 --> 00:29:05,990 dat ek vra weer vir. 707 00:29:05,990 --> 00:29:08,070 En inderdaad, dit is intuïtief hier, hopelik. 708 00:29:08,070 --> 00:29:08,200 Reg? 709 00:29:08,200 --> 00:29:10,250 As jy wil 'n te kry positiewe int, wat is dit wat jy 710 00:29:10,250 --> 00:29:12,920 wil die function-- soos ons vrywilligers van verlede week 711 00:29:12,920 --> 00:29:15,720 om jou hand terug 'n stuk papier met 'n int op dit? 712 00:29:15,720 --> 00:29:19,190 En so het ons bepaal dat die sogenaamde terugkeer tipe van hierdie funksie 713 00:29:19,190 --> 00:29:20,450 is te kry positiewe int. 714 00:29:20,450 --> 00:29:22,990 As ons nie wil hê dit moet enigiets, jy leemte sê. 715 00:29:22,990 --> 00:29:25,270 As jy dit wil hê om terug te keer 'n string, jy sê string. 716 00:29:25,270 --> 00:29:27,310 As jy dit wil hê om terug te keer 'n vlot, sê jy float. 717 00:29:27,310 --> 00:29:30,440 Maar die enigste een wat hier van toepassing logies, want ek gebruik get int, 718 00:29:30,440 --> 00:29:34,130 selfs al is die beperking van dit wat ek tot positiewe waardes, is om 'n int terugkeer. 719 00:29:34,130 --> 00:29:38,380 >> So omgekeerd, wat beteken dit dat daar 'n leemte in hakies? 720 00:29:38,380 --> 00:29:40,130 Wat doen die hakies algemeen te definieer? 721 00:29:40,130 --> 00:29:40,588 Ja? 722 00:29:40,588 --> 00:29:42,880 >> GEHOOR: Dit beteken die funksie se nie eintlik om nie. 723 00:29:42,880 --> 00:29:44,650 >> Spreker 1: Dit beteken die funksie se nie eintlik om wat? 724 00:29:44,650 --> 00:29:45,430 >> GEHOOR: 'n toevoer. 725 00:29:45,430 --> 00:29:46,763 >> Spreker 1: 'n toevoer, wat ook al. 726 00:29:46,763 --> 00:29:49,870 So inderdaad, as hakies Hier kan jy spesifiseer leemte, 727 00:29:49,870 --> 00:29:51,650 wat net beteken dat ek nie wil hê enige insette. 728 00:29:51,650 --> 00:29:53,269 Ek sal gaan met die probleem myself. 729 00:29:53,269 --> 00:29:55,810 En inderdaad, het jy nie hoef te vertel kry positiewe int enigiets. 730 00:29:55,810 --> 00:29:59,630 Jy sê net, kry positiewe int, en dat funksie sal afgaan en sy ding doen. 731 00:29:59,630 --> 00:30:02,970 >> Maar daar was 'n bietjie truuk Ek het speel hier hele tyd 732 00:30:02,970 --> 00:30:04,970 om seker te maak hierdie kode saamstel. 733 00:30:04,970 --> 00:30:09,620 Let daarop dat int-- positiewe kry int void-- is op die lyn 27. 734 00:30:09,620 --> 00:30:14,530 Maar vir sommige oënskynlik vreemde rede dit is ook hier op die lyn 16. 735 00:30:14,530 --> 00:30:18,530 En net vir 'n goeie maatreël Ek sal herhaal hierdie so dit is perfek identies. 736 00:30:18,530 --> 00:30:21,640 En ek het gesê prototipe met 'n bietjie een-line kommentaar. 737 00:30:21,640 --> 00:30:28,850 Wat gebeur as ek dit verwyder, en nou tik maak funksie 1, betree. 738 00:30:28,850 --> 00:30:29,350 Oeps. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Wag 'n minuut. 741 00:30:33,110 --> 00:30:34,764 Waar is my blad? 742 00:30:34,764 --> 00:30:35,263 Huh? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 Staan by. 745 00:30:39,620 --> 00:30:41,570 Maak funksie 1. 746 00:30:41,570 --> 00:30:42,150 Daar gaan ons. 747 00:30:42,150 --> 00:30:42,310 OK. 748 00:30:42,310 --> 00:30:43,400 Was dit nie behoorlik gestoor. 749 00:30:43,400 --> 00:30:45,220 So, ek dink daar is 'n bietjie fout hier waar ek is nie 750 00:30:45,220 --> 00:30:46,636 sien die blad naam op die oomblik. 751 00:30:46,636 --> 00:30:47,940 So, wat is hier aan die gang? 752 00:30:47,940 --> 00:30:52,210 Implisiete verklaring van funksie kry positiewe int is ongeldig in C99. 753 00:30:52,210 --> 00:30:53,940 So weer verwarrend. 754 00:30:53,940 --> 00:30:55,200 So, wat is hierdie 'n aanduiding van? 755 00:30:55,200 --> 00:30:57,287 Wel, dit blyk dat C is redelik dom. 756 00:30:57,287 --> 00:30:59,912 Wel, dit is die ontwikkeling taal, of eerder die samesteller is. 757 00:30:59,912 --> 00:31:02,940 Dit weet net wat jy het geleer nie, en dit is net 758 00:31:02,940 --> 00:31:05,640 gaan iets weet as jy dit voorheen onderrig is. 759 00:31:05,640 --> 00:31:07,960 Met ander woorde, in belangrikste op die oomblik, ek is 760 00:31:07,960 --> 00:31:10,900 probeer om 'n funksie te roep genoem te kry positiewe int. 761 00:31:10,900 --> 00:31:14,120 Maar die samesteller gaan nie om te sien dat kry positiewe int 762 00:31:14,120 --> 00:31:16,500 bestaan ​​totdat lyn 26. 763 00:31:16,500 --> 00:31:21,360 En ja, wat die samesteller doen is net foute so gou as dit kry om te reël 17, 764 00:31:21,360 --> 00:31:23,700 sê implisiete verklaring te kry positiewe int, wat 765 00:31:23,700 --> 00:31:27,740 is net 'n fancy manier om te sê, ek doen nie weet wat kry positiewe int nog. 766 00:31:27,740 --> 00:31:31,240 >> Ander tale soos Java en Python en Ruby kan vorentoe te kyk. 767 00:31:31,240 --> 00:31:32,240 C nie. 768 00:31:32,240 --> 00:31:35,110 En so het die manier waarop ons los dit is een van twee maniere. 769 00:31:35,110 --> 00:31:40,160 Óf die een, as die probleem is dat te kry positiewe int nog nie voorheen gesien het nie, 770 00:31:40,160 --> 00:31:42,150 Wel, laat ek skuif dit net om die top. 771 00:31:42,150 --> 00:31:43,650 Dit sou hierdie probleem op te los. 772 00:31:43,650 --> 00:31:46,790 Maar oor die algemeen, is dit beskou beter tegniek 773 00:31:46,790 --> 00:31:50,220 jou belangrikste funksie sit by die heel top so dat 'n mens lees jou kode 774 00:31:50,220 --> 00:31:52,710 weet wat die program doen, omdat belangrikste is nie al begrawe 775 00:31:52,710 --> 00:31:53,960 die pad aan die onderkant of in die middel. 776 00:31:53,960 --> 00:31:55,130 Dit is op die heel boonste. 777 00:31:55,130 --> 00:31:56,410 Sodat voel nie ideaal. 778 00:31:56,410 --> 00:31:58,326 En jy kan eintlik kry in situasies waar 779 00:31:58,326 --> 00:32:00,820 As een funksie oproepe 'n ander, wat 'n ander beroep, 780 00:32:00,820 --> 00:32:04,630 jy kan kry in 'n kwessie waar nie kan gaan bo die ander, logies. 781 00:32:04,630 --> 00:32:05,920 Dit is net nie moontlik nie. 782 00:32:05,920 --> 00:32:09,290 >> En so het die manier om te werk om hierdie is net te neem 783 00:32:09,290 --> 00:32:13,200 handtekening van die funksie, so om speak-- die eerste reël waar dit declared-- 784 00:32:13,200 --> 00:32:16,850 en net kopieer, plak dit op die top, maar nie met krullerige braces-- 785 00:32:16,850 --> 00:32:17,980 net met 'n kommapunt. 786 00:32:17,980 --> 00:32:20,840 Dit is soos 'n klein wenk van wat aan die kom is. 787 00:32:20,840 --> 00:32:26,630 En in die feit, al hierdie tyd wanneer ons het dinge soos die standaard io.h gesien 788 00:32:26,630 --> 00:32:33,040 en cs50.h, insgelyks, in daardie dot h lêers daar ander prototipes. 789 00:32:33,040 --> 00:32:35,250 En ons sal sien wat voor lank. 790 00:32:35,250 --> 00:32:39,340 >> So in kort, as jy 'n program in 'n lêer met verskeie funksies 791 00:32:39,340 --> 00:32:42,300 Behalwe belangrikste, jy amper wil altyd te verklaar 792 00:32:42,300 --> 00:32:45,360 net by wyse van hul eerste lyn, gevolg deur 'n kommapunt, 793 00:32:45,360 --> 00:32:48,410 by die top van die lêer. 794 00:32:48,410 --> 00:32:50,460 Dit was 'n baie op een slag. 795 00:32:50,460 --> 00:32:53,130 Enige vrae? 796 00:32:53,130 --> 00:32:53,920 Enige vrae? 797 00:32:53,920 --> 00:32:54,530 Alles reg. 798 00:32:54,530 --> 00:32:59,760 >> So laat ons beweeg op dan iets soos hoes. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 Hoe pas. 801 00:33:00,570 --> 00:33:01,220 Alles reg. 802 00:33:01,220 --> 00:33:02,260 Hoes. 803 00:33:02,260 --> 00:33:05,080 So hier is 'n c implementering van 'n program 804 00:33:05,080 --> 00:33:07,560 ons het die ander dag in Nuuts wat baie eenvoudig net 805 00:33:07,560 --> 00:33:08,691 sê hoes, hoes, hoes. 806 00:33:08,691 --> 00:33:09,190 Alles reg. 807 00:33:09,190 --> 00:33:11,136 En iemand het gesê 'n paar dae gelede dat daar 808 00:33:11,136 --> 00:33:12,760 'n manier van die skoonmaak van die kode up reeds. 809 00:33:12,760 --> 00:33:12,880 Alles reg? 810 00:33:12,880 --> 00:33:15,440 Sodra jy kopieer en plak waarskynlik slegte ontwerp. 811 00:33:15,440 --> 00:33:18,725 Ten minste een keer kry ons vier of vyf of 20 hoes, voel dit slegte praktyk. 812 00:33:18,725 --> 00:33:19,850 Ons hou net kopieer, plak. 813 00:33:19,850 --> 00:33:22,213 Wat is die oplossing voor die hand liggend om die skoonmaak van hierdie program word? 814 00:33:22,213 --> 00:33:23,120 >> GEHOOR: Loop. 815 00:33:23,120 --> 00:33:23,350 >> Spreker 1: Ja. 816 00:33:23,350 --> 00:33:24,070 So gebruik 'n lus. 817 00:33:24,070 --> 00:33:27,697 En ons kan 'n vir-lus te gebruik, 'n rukkie lus, enige aantal benaderings. 818 00:33:27,697 --> 00:33:29,780 En inderdaad, dit is wat ons doen in die weergawe wat hier. 819 00:33:29,780 --> 00:33:32,250 Ek het in plaas herskryf dit in die weergawe van cough.c een 820 00:33:32,250 --> 00:33:35,170 net hoes binne 'n for-lus wees. 821 00:33:35,170 --> 00:33:38,240 Alle reg, maar daar is 'n geleentheid nou soort van begin 822 00:33:38,240 --> 00:33:41,630 om dit 'n bietjie meer soos ontwerp die les wat ons geleer 'n oomblik gelede 823 00:33:41,630 --> 00:33:46,190 wat is this-- veronderstel dat ek wou om 'n funksie genoem hoes skep, 824 00:33:46,190 --> 00:33:49,730 Kom ons kyk vir 'n oomblik wat dit gaan lyk. 825 00:33:49,730 --> 00:33:51,900 So as ek wil iets hoes, ek moet net 826 00:33:51,900 --> 00:33:53,800 te druk f gebruik binne die funksie. 827 00:33:53,800 --> 00:33:55,030 En inderdaad is ek. 828 00:33:55,030 --> 00:33:56,990 En in die feit, dit alles tyd, enige tyd wat jy is 829 00:33:56,990 --> 00:33:59,000 druk om iets te die skerm, 'n programmeerder 830 00:33:59,000 --> 00:34:00,610 sou noem dat 'n newe-effek. 831 00:34:00,610 --> 00:34:02,990 Dit is vir my nie oorhandig terug iemand 'n waarde. 832 00:34:02,990 --> 00:34:06,170 Dit is vir my 'n aksie te neem wat kan wees visueel voor die hand liggend. 833 00:34:06,170 --> 00:34:10,672 Maar hierdie funksie te hoes, beteken dit terug enigiets wat gebaseer is op die eerste lyn? 834 00:34:10,672 --> 00:34:12,880 Nee, want sy terugkeer tipe is nietig, wat beteken net 835 00:34:12,880 --> 00:34:14,250 dit is nie die uitreiking van my niks terug. 836 00:34:14,250 --> 00:34:16,791 Dit mag dalk iets te doen visueel, maar dit is nie vir my oorhandig 837 00:34:16,791 --> 00:34:18,639 terug 'n stuk papier soos verlede week. 838 00:34:18,639 --> 00:34:21,310 >> Is dit enige insette nodig? 839 00:34:21,310 --> 00:34:21,810 Geen. 840 00:34:21,810 --> 00:34:23,134 En so is dit hier leemte ook. 841 00:34:23,134 --> 00:34:25,600 So ook dit is 'n soort van oor-ingenieurswese hierdie probleem. 842 00:34:25,600 --> 00:34:26,099 Reg? 843 00:34:26,099 --> 00:34:28,820 Ek het die program meer gemaak kompleks, meer reëls van die kode, 844 00:34:28,820 --> 00:34:31,889 Ek het dit nie gemaak meer funksionele, maar dit 845 00:34:31,889 --> 00:34:34,210 sou 'n stepping stone wees, miskien, vir 'n breër 846 00:34:34,210 --> 00:34:36,830 konteks met meer ingewikkeld kode. 847 00:34:36,830 --> 00:34:38,150 Maar wat van hierdie? 848 00:34:38,150 --> 00:34:42,050 Wat het ek done-- net skrams by hierdie sonder om na die kommentaar 849 00:34:42,050 --> 00:34:46,076 by die top van die file-- wat het Ek hier fundamenteel gedoen met my hoes 850 00:34:46,076 --> 00:34:47,409 implementering wat anders is? 851 00:34:47,409 --> 00:34:48,327 Ja, in die rug? 852 00:34:48,327 --> 00:34:51,384 >> GEHOOR: Maak dit sodat jy kan het 'n karakter uit te skakel. 853 00:34:51,384 --> 00:34:52,050 Spreker 1: Ja. 854 00:34:52,050 --> 00:34:53,270 So dit voel soort van mooi. 855 00:34:53,270 --> 00:34:53,389 Reg? 856 00:34:53,389 --> 00:34:56,600 Dit is soos die toevoeging van 'n funksie om jou program of jou funksie, in hierdie geval. 857 00:34:56,600 --> 00:34:57,830 Dit gee nog steeds niks. 858 00:34:57,830 --> 00:35:00,538 Dit mag dalk 'n visuele newe-effek het, want dit is 'n beroep druk f. 859 00:35:00,538 --> 00:35:02,800 Maar nou het ek parametrized die funksie, wat 860 00:35:02,800 --> 00:35:06,470 beteken dat ek verskaf het geneem insette van die tipe int en noem dit n, 861 00:35:06,470 --> 00:35:08,510 maar ek kan dit iets wat ek wil noem. 862 00:35:08,510 --> 00:35:11,550 In werklikheid is, kan dit net wees keer om nog meer eksplisiete wees. 863 00:35:11,550 --> 00:35:13,310 En dan het ek kon net dit te verander hier. 864 00:35:13,310 --> 00:35:16,450 Maar die punt is dat dit is hoe ek skep 'n funksie wat insette neem. 865 00:35:16,450 --> 00:35:19,530 En as jy onthou daarby deur miskien aanlyn in een 866 00:35:19,530 --> 00:35:23,000 van die loop-throughs, die vierde en laaste hoes byvoorbeeld 867 00:35:23,000 --> 00:35:27,150 jy hier sien ek het veralgemeen my kode further-- soort abstrakte 868 00:35:27,150 --> 00:35:27,690 dit verder. 869 00:35:27,690 --> 00:35:31,390 Soos hoes en nies, beide is oor soos om te sê iets of maak 870 00:35:31,390 --> 00:35:32,330 'n soort van klank. 871 00:35:32,330 --> 00:35:34,725 Save sou wees om die ooreenstemmende Scratch blok. 872 00:35:34,725 --> 00:35:37,350 En so wat ek gedoen het in hierdie weergawe, wat ons kan net blik op, 873 00:35:37,350 --> 00:35:43,170 is hoes is net soos om te sê, [COUGH], hoes, en intussen, nies is 874 00:35:43,170 --> 00:35:44,570 soos om te sê, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 En so ek het veralgemeen die implementering van die 876 00:35:46,900 --> 00:35:48,970 nou implementering Hierdie generiese funksie, 877 00:35:48,970 --> 00:35:51,490 sê, wat is interessant vir doeleindes vandag se 878 00:35:51,490 --> 00:35:54,300 net omdat dit nog steeds het nie 'n soort terugkeer. 879 00:35:54,300 --> 00:35:56,398 Maar hoeveel insette het dit? 880 00:35:56,398 --> 00:35:56,981 GEHOOR: Twee. 881 00:35:56,981 --> 00:35:57,430 Spreker 1: Twee. 882 00:35:57,430 --> 00:35:59,263 En so as jy wil neem twee argumente, 883 00:35:59,263 --> 00:36:00,710 net hulle te skei met 'n komma. 884 00:36:00,710 --> 00:36:03,110 En as jy wil dan noem daardie funksie, 885 00:36:03,110 --> 00:36:05,800 sien dat jy net roep sê, kwotasie, unquote, 886 00:36:05,800 --> 00:36:09,090 vir die eerste argument, algemene n, vir die tweede argument. 887 00:36:09,090 --> 00:36:12,130 So weer, ons het nou net die boustene sodat ons kan eintlik 888 00:36:12,130 --> 00:36:15,686 implementeer sommige van ons eie funksies. 889 00:36:15,686 --> 00:36:16,570 Alles reg. 890 00:36:16,570 --> 00:36:19,690 Enige vrae oor hierdie? 891 00:36:19,690 --> 00:36:22,400 >> So nou, laat ons skil terug 'n laag indien wel. 892 00:36:22,400 --> 00:36:24,840 En die doel te bereik, uiteindelik, is die probleem stel volgende week se 893 00:36:24,840 --> 00:36:27,710 gaan op cryptogrophy-- die kuns van skommeling inligting. 894 00:36:27,710 --> 00:36:30,640 En spesifiek die inligting sal jy versleutelen 895 00:36:30,640 --> 00:36:31,605 gaan teks. 896 00:36:31,605 --> 00:36:33,980 En so dat die soort uitnodigings Die vraag vandag soos goed, 897 00:36:33,980 --> 00:36:38,480 wat aangaan onder die enjinkap met teks buite ASCII van week nul, 898 00:36:38,480 --> 00:36:40,730 En hoe kan ons eintlik begin om dit te manipuleer? 899 00:36:40,730 --> 00:36:43,070 So hier is die naam Zamyla se. 900 00:36:43,070 --> 00:36:47,380 En in die teks, kan dit wees ingevoer in soos die get string funksie. 901 00:36:47,380 --> 00:36:52,540 En begin nou, wanneer jy sien 'n string soos this-- Z-A-M-Y-L-A-- 902 00:36:52,540 --> 00:36:56,550 begin dink dit asof elke van die karakters in 'n boks van sy 903 00:36:56,550 --> 00:36:57,050 eie. 904 00:36:57,050 --> 00:36:59,460 En inderdaad, in 'n week of so is tyd, elk van hierdie bokse 905 00:36:59,460 --> 00:37:04,280 gaan baie spesifiek verteenwoordig 'n blok memory-- 'n hap van die geheue. 906 00:37:04,280 --> 00:37:07,050 So elkeen van hierdie briewe, Uiteindelik sal 8 stukkies verteenwoordig. 907 00:37:07,050 --> 00:37:10,560 En ons sal eintlik sien wat gaan op onder die enjinkap in my rekenaar. 908 00:37:10,560 --> 00:37:13,440 >> Maar vir nie dit voldoende net om te kyk na Zamyla 909 00:37:13,440 --> 00:37:17,520 deur hierdie lens, waardeur elk van hierdie briewe is in sy eie boks. 910 00:37:17,520 --> 00:37:22,697 En mooi genoeg in C kan ons toegang elk van hierdie bokse direk. 911 00:37:22,697 --> 00:37:25,530 So as jy wil hê dat die eerste kry letter van haar naam, super maklik in C. 912 00:37:25,530 --> 00:37:28,410 As jy wil die laaste kry brief, super maklik asook 913 00:37:28,410 --> 00:37:30,240 met 'n stukkie van die nuwe sintaksis. 914 00:37:30,240 --> 00:37:36,250 >> So ek gaan om voort te gaan in CS50 IDE en maak die tou nul dot C. 915 00:37:36,250 --> 00:37:40,270 En in hierdie voorbeeld hier, is daar 'n paar nuwe dinge aan die gang. 916 00:37:40,270 --> 00:37:44,360 So eerste in die lyn 19, het ons gesien hierdie before-- get string. 917 00:37:44,360 --> 00:37:49,840 So net so 'n vinnige gesonde verstand tjek, as iemand verbaal kan bied up 918 00:37:49,840 --> 00:37:52,662 verduideliking van 'n leek se wat gaan aan in die lyn 19. 919 00:37:52,662 --> 00:37:55,370 Soos hierdie net vertaal in English dat 'n kamermaat nie in CS50 920 00:37:55,370 --> 00:37:56,416 kan verstaan. 921 00:37:56,416 --> 00:37:56,916 Ja. 922 00:37:56,916 --> 00:37:59,749 >> GEHOOR: Het die toevoer van die gebruiker 'n string en stoor dit in 'n veranderlike s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 Spreker 1: Goed. 925 00:38:02,600 --> 00:38:05,579 Die toevoer van die gebruiker 'n string en bêre dit in 'n veranderlike s. 926 00:38:05,579 --> 00:38:06,120 Dit is 'n groot. 927 00:38:06,120 --> 00:38:08,090 So op die regterkant kant, bel ons kry string. 928 00:38:08,090 --> 00:38:10,340 Dit gee 'n waarde dit het nie kry wat 929 00:38:10,340 --> 00:38:14,230 van regs na links hand kant in 'n veranderlike genaamd s wat 930 00:38:14,230 --> 00:38:15,950 ontwerp om 'n string te stoor. 931 00:38:15,950 --> 00:38:16,800 Presies. 932 00:38:16,800 --> 00:38:20,000 >> So nou line 22, per die kommentaar in lyn 21, 933 00:38:20,000 --> 00:38:22,780 natuurlik druk wat string een karakter per lyn. 934 00:38:22,780 --> 00:38:23,740 Maar hoe? 935 00:38:23,740 --> 00:38:27,040 So die eerste van alles, inisialiseer ons ek tot 0. 936 00:38:27,040 --> 00:38:31,061 En dan hoe kry ons om die einde van die naam Zamyla se? 937 00:38:31,061 --> 00:38:32,810 Wel, aan die einde van Naam Zamyla se, kon ek 938 00:38:32,810 --> 00:38:38,151 hand te tik in die laaste teken van haar naam of ander manier, of die getal van dit. 939 00:38:38,151 --> 00:38:38,650 Reg? 940 00:38:38,650 --> 00:38:43,500 As ons gaan terug here-- Z-A-M-L-- Y-L-A-- so ek kon tik. 941 00:38:43,500 --> 00:38:47,340 Wat is die indeks van Laaste brief Zamyla se? 942 00:38:47,340 --> 00:38:52,517 As dit is 0-- praat soos 'n programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Ek heard-- so inderdaad, die laaste brief in die naam van Zamyla se is die sesde, 944 00:38:56,570 --> 00:38:58,890 maar as ons tel van 0, dit gaan nommer 5 wees. 945 00:38:58,890 --> 00:39:01,320 So hou dit in gedagte hier. 946 00:39:01,320 --> 00:39:04,929 >> Dit blyk daar is 'n funksie in C genoem StrLen en terug in die dag 947 00:39:04,929 --> 00:39:06,720 en tot vandag nog, 'n baie programmeerders 948 00:39:06,720 --> 00:39:09,524 kies om name te sinchroniseer vir hul funksies wat klink soos die woorde 949 00:39:09,524 --> 00:39:10,440 hulle probeer om te sê. 950 00:39:10,440 --> 00:39:12,590 So StrLen is string lengte. 951 00:39:12,590 --> 00:39:18,168 En so wat sou string lengte van S terugkeer wanneer Zamyla is die insette? 952 00:39:18,168 --> 00:39:19,569 >> GEHOOR: Five. 953 00:39:19,569 --> 00:39:22,090 >> Spreker 1: Z-A-M-Y-L. Ses. 954 00:39:22,090 --> 00:39:22,590 Reg? 955 00:39:22,590 --> 00:39:23,940 Wat is die lengte van die naam Zamyla se? 956 00:39:23,940 --> 00:39:24,440 Reg? 957 00:39:24,440 --> 00:39:26,240 En net in die werklikheid, ses letters. 958 00:39:26,240 --> 00:39:26,740 Reg? 959 00:39:26,740 --> 00:39:28,940 En so wat beteken dit vir ons lus? 960 00:39:28,940 --> 00:39:32,130 Ons gaan om te gaan van 0 tot ses, wat 961 00:39:32,130 --> 00:39:33,650 gaan ons vyf iterasies gee. 962 00:39:33,650 --> 00:39:34,890 Wat doen ons op elke iterasie? 963 00:39:34,890 --> 00:39:36,870 Wel, persent C, iemand raai die ander dag, 964 00:39:36,870 --> 00:39:38,710 beteken 'n plekhouer vir wat? 965 00:39:38,710 --> 00:39:39,335 >> GEHOOR: Char. 966 00:39:39,335 --> 00:39:40,293 Spreker 1: Net 'n kar. 967 00:39:40,293 --> 00:39:42,877 So 'n enkele character-- nie verskeie karakters soos 'n string. 968 00:39:42,877 --> 00:39:45,251 En dan hier is die nuwe reël wat ons het uit te druk. 969 00:39:45,251 --> 00:39:46,580 En dan hier is die nuwe sintaksis. 970 00:39:46,580 --> 00:39:51,130 As jy wil om uit te druk die i-de karakter in die string S, om so te praat, 971 00:39:51,130 --> 00:39:54,060 jy kan net sê die Naam van die string S, 972 00:39:54,060 --> 00:39:58,230 en dan oop vierkante bracket, en dan gesluit vierkante bracket, met 'n i 973 00:39:58,230 --> 00:39:58,780 die middel. 974 00:39:58,780 --> 00:40:01,430 En dit is soort van mooi in daardie dit soort van soos 'n vierkant lyk 975 00:40:01,430 --> 00:40:06,210 net soos die blokkies in wat Zamyla se karakters bestaan ​​op die foto is daar. 976 00:40:06,210 --> 00:40:09,970 >> So as ek dit eintlik loop nou, laat ons sien wat gebeur. 977 00:40:09,970 --> 00:40:15,190 Maak string 0 dot streep string 0, en dan is ek 978 00:40:15,190 --> 00:40:16,720 gaan tik naam Zamyla se. 979 00:40:16,720 --> 00:40:19,428 Daar is geen vinnige, want ek het nie gebruik gedrukte f, maar dit is goed. 980 00:40:19,428 --> 00:40:20,660 Ek weet presies wat om te doen nie. 981 00:40:20,660 --> 00:40:23,240 En inderdaad, dit druk uit Zamyla se naam, een per lyn. 982 00:40:23,240 --> 00:40:25,760 >> Nou laat 'n bietjie roekeloos. 983 00:40:25,760 --> 00:40:28,461 Veronderstel dat ek nie geweet het nie oor StrLen en ek het gedink, 984 00:40:28,461 --> 00:40:31,460 Alle reg, niemand gaan 'n het noem groter as soos 50 karakters. 985 00:40:31,460 --> 00:40:36,360 Kom ons gaan voort en heropstel hierdie en tik dit, en dan tik in Zamyla 986 00:40:36,360 --> 00:40:37,160 weer. 987 00:40:37,160 --> 00:40:40,850 Logies, wat is die program gaan probeer om druk? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A dan soos 45 onbekend grepe van die geheue. 989 00:40:49,545 --> 00:40:51,670 En inderdaad, sal ons terug te kom hierdie idee van die geheue. 990 00:40:51,670 --> 00:40:54,180 Maar net logies, as Naam Zamyla se is dit 'n lang, 991 00:40:54,180 --> 00:40:56,450 soos per die prentjie hier, wat ons sê 992 00:40:56,450 --> 00:40:59,810 is hou die druk, hou die druk, hou druk, hou die druk, hou die druk, 993 00:40:59,810 --> 00:41:03,781 al die pad na die 50 karakter, wat wie weet wat gaan gebeur. 994 00:41:03,781 --> 00:41:05,030 So laat eintlik 'n blik. 995 00:41:05,030 --> 00:41:06,720 Kom ons tik in Zamyla. 996 00:41:06,720 --> 00:41:07,250 Interessant. 997 00:41:07,250 --> 00:41:08,190 Ons het gelukkig. 998 00:41:08,190 --> 00:41:09,700 Net 'n hele klomp van die wit spasie. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 Daar is 'n funky karakter. 1001 00:41:11,120 --> 00:41:14,577 Dit lyk amper soos 'n vreemde vraag merk, maar daar is die naam Zamyla se. 1002 00:41:14,577 --> 00:41:15,660 Kom ons kry regtig roekeloos. 1003 00:41:15,660 --> 00:41:20,000 Hoe gaan ons uit te druk 500 blokke in die onbekende? 1004 00:41:20,000 --> 00:41:24,380 Kom ons gaan voort en maak hierdie so goed en dan weer hardloop. 1005 00:41:24,380 --> 00:41:27,980 En die volle screen nie, want laat ons ons nodig het om meer ruimte te sien. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Het weer gelukkig. 1008 00:41:31,830 --> 00:41:33,070 >> Durf ons kry meer roekelose? 1009 00:41:33,070 --> 00:41:36,070 Kom ons kry meer roekeloos. 1010 00:41:36,070 --> 00:41:39,350 50000 karakters. 1011 00:41:39,350 --> 00:41:41,390 Dit is die meeste sekerlik nie 'n goeie idee. 1012 00:41:41,390 --> 00:41:41,890 Alles reg. 1013 00:41:41,890 --> 00:41:42,990 Maak string 0. 1014 00:41:42,990 --> 00:41:44,720 Dit sal ons laaste demo wees. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Ugh. 1017 00:41:48,632 --> 00:41:50,010 Ugh. 1018 00:41:50,010 --> 00:41:50,680 OK. 1019 00:41:50,680 --> 00:41:54,407 So my geheue is regtig leë nou, wat eintlik soort gerieflik. 1020 00:41:54,407 --> 00:41:55,990 Wat ek probeer om aan- kry alles reg. 1021 00:41:55,990 --> 00:41:57,614 En nou is ek net gaan roekelose kry. 1022 00:41:57,614 --> 00:41:58,570 500,000. 1023 00:41:58,570 --> 00:42:03,860 Make-- full-screen laat dit. 1024 00:42:03,860 --> 00:42:04,990 Betree. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 Daar gaan ons. 1028 00:42:13,390 --> 00:42:15,610 Ek het geen idee wat dit is nie, maar dit klink sleg. 1029 00:42:15,610 --> 00:42:16,110 Alles reg. 1030 00:42:16,110 --> 00:42:20,322 En in die feit, gou, as jy onder die gelukkige paar in kantoorure 1031 00:42:20,322 --> 00:42:22,780 en in die probleem stel een, het jy baie goed kan dit teëkom. 1032 00:42:22,780 --> 00:42:25,490 Segmentering skuld eintlik nie het 'n goed-gedefinieerde betekenis. 1033 00:42:25,490 --> 00:42:28,450 Dit beteken 'n soort van fout met betrekking tot 'n segment van die geheue. 1034 00:42:28,450 --> 00:42:30,490 En in leketaal, beteken dit dat ons aangeraak 1035 00:42:30,490 --> 00:42:34,780 memory-- ons gebruik RAM in my rekenaar dat ek nie toegang tot sou gehad het. 1036 00:42:34,780 --> 00:42:37,050 En dit is wat beide kragtige en ook gevaarlik 1037 00:42:37,050 --> 00:42:39,910 oor C is dat jy eintlik het onbeperkte toegang 1038 00:42:39,910 --> 00:42:45,910 om die geheel van die geheue van jou program of grepe of RAM, meer spesifiek. 1039 00:42:45,910 --> 00:42:49,510 >> So selfs al naam Zamyla se is net ses karakters lank, 1040 00:42:49,510 --> 00:42:51,450 Ek kan nog steeds oral te gaan in die geheue wat ek wil. 1041 00:42:51,450 --> 00:42:53,491 En as 'n eenkant, as jy het ooit 'n artikel te lees 1042 00:42:53,491 --> 00:42:55,610 oor die jare oor 'n paar bediener of 'n program 1043 00:42:55,610 --> 00:42:58,654 kry gekraak of gekap dis geneem voordeel van iets 1044 00:42:58,654 --> 00:43:00,820 bekend as 'n buffer oorloop ontgin dat ons sal eintlik 1045 00:43:00,820 --> 00:43:04,970 praat oor 'n paar weke, dit is algemeen verwys na een of ander manier tricking 1046 00:43:04,970 --> 00:43:09,090 'n rekenaar in goed gaan buite die grense van die geheue 1047 00:43:09,090 --> 00:43:11,410 dat dit behoort te hê, en vind iets sappige 1048 00:43:11,410 --> 00:43:13,530 in daardie memory-- n wagwoord dalk 'n manier 1049 00:43:13,530 --> 00:43:16,990 ontduiking van sommige reeksnommer kyk, of net oor die algemeen in staat 1050 00:43:16,990 --> 00:43:20,360 om te mislei die rekenaar uitvoer kode wat nie bedoel is. 1051 00:43:20,360 --> 00:43:22,360 Maar laat ons terug te kom na werklikheid vir net 'n oomblik 1052 00:43:22,360 --> 00:43:24,550 waar hierdie program was geïmplementeer met StrLen, 1053 00:43:24,550 --> 00:43:26,110 en stel een ding hier. 1054 00:43:26,110 --> 00:43:30,030 Wat is nuut onder hierdie top drie lyne? 1055 00:43:30,030 --> 00:43:30,910 >> So string dot h. 1056 00:43:30,910 --> 00:43:35,490 Dit blyk daar is hierdie biblioteek genoem String Dot H, of die string Biblioteek, 1057 00:43:35,490 --> 00:43:38,490 wie header lêer, om so te praat, is string dot h wat gee my 1058 00:43:38,490 --> 00:43:40,860 toegang tot hierdie funksie StrLen. 1059 00:43:40,860 --> 00:43:43,841 As ek dit laat, die samesteller is gaan op my skreeu in een of ander vorm. 1060 00:43:43,841 --> 00:43:44,590 Maar weet jy wat? 1061 00:43:44,590 --> 00:43:46,090 Nou laat kry regtig genuanseerde. 1062 00:43:46,090 --> 00:43:50,820 In lyn 22, daar is iets soort van inefficient-- swak ontwerp, 1063 00:43:50,820 --> 00:43:53,990 arguably-- oor hierdie lyn van die kode. 1064 00:43:53,990 --> 00:43:56,280 Dink terug aan hoe vir-loop geïmplementeer 1065 00:43:56,280 --> 00:44:00,140 en watter stappe weer gebeur en weer en again-- die inisialisering, 1066 00:44:00,140 --> 00:44:04,110 die toestand, die kode wat kry uitgevoer word, dan is die inkrement 1067 00:44:04,110 --> 00:44:07,880 of die verandering, sal die toestand, dan die kode, dan is die verandering, dan 1068 00:44:07,880 --> 00:44:11,280 die toestand, dan die kode, dan is die verandering, en so meer. 1069 00:44:11,280 --> 00:44:15,320 So, wat dalk 'n bietjie te wees kommerwekkende of swak hier gedoen? 1070 00:44:15,320 --> 00:44:16,387 Ja, in blou. 1071 00:44:16,387 --> 00:44:18,220 GEHOOR: StrLen is genoem baie, baie keer. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 Spreker 1: Ja. 1074 00:44:21,320 --> 00:44:23,700 So StrLen genoem baie keer, maar wat is 1075 00:44:23,700 --> 00:44:27,113 die lengte van die naam Zamyla se die eerste keer die lus voer? 1076 00:44:27,113 --> 00:44:27,860 >> GEHOOR: Ses. 1077 00:44:27,860 --> 00:44:28,110 >> Spreker 1: Ses. 1078 00:44:28,110 --> 00:44:30,976 Wel, wat is die lengte van haar naam die tweede keer die kode voer? 1079 00:44:30,976 --> 00:44:31,432 >> GEHOOR: Ses. 1080 00:44:31,432 --> 00:44:31,890 >> Spreker 1: Alle reg. 1081 00:44:31,890 --> 00:44:32,720 Dit is nog steeds ses. 1082 00:44:32,720 --> 00:44:33,220 Reg? 1083 00:44:33,220 --> 00:44:35,260 Naam Zarla se het nie verander, selfs as ek soek 1084 00:44:35,260 --> 00:44:38,240 slegs deel van die letters in haar naam. 1085 00:44:38,240 --> 00:44:41,349 En so het die feit dat ek effektief hierdie vraag, wat is 1086 00:44:41,349 --> 00:44:44,640 die lengte van Zamyla, wat is die lengte van Zamyla, wat is die lengte van Zamyla, 1087 00:44:44,640 --> 00:44:47,990 ses afsonderlike tye, of sewe die aand, is net dom, 1088 00:44:47,990 --> 00:44:50,390 want dit is onveranderlike die antwoord. 1089 00:44:50,390 --> 00:44:53,550 En so wat ek kon eintlik doen is this-- in string een 1090 00:44:53,550 --> 00:44:55,680 Ek het 'n effens beter weergawe hier. 1091 00:44:55,680 --> 00:45:00,110 There-- whoops-- string twee Ek het 'n effens beter weergawe waarin 1092 00:45:00,110 --> 00:45:05,010 Ek doen this-- plaas van net initializing i tot 0, het ek ook met 'n komma 1093 00:45:05,010 --> 00:45:07,990 verklaar 'n tweede veranderlike genoem n-- Ek hoef nie te int weer sê. 1094 00:45:07,990 --> 00:45:09,220 Ek moet nie, in werklikheid. 1095 00:45:09,220 --> 00:45:10,380 Maar Ek sê n. 1096 00:45:10,380 --> 00:45:13,610 En dan inisialiseer I n te die StrLen van N, so wat nou 1097 00:45:13,610 --> 00:45:17,110 Hoeveel keer kom StrLen kry uitgevoer in totaal? 1098 00:45:17,110 --> 00:45:17,610 Net een keer. 1099 00:45:17,610 --> 00:45:20,257 En so is dit wat ons bedoel vroeër oor 'n beter ontwerp. 1100 00:45:20,257 --> 00:45:23,090 Eintlik keer jou kode korrek is, terug te gaan en te dink deur middel, 1101 00:45:23,090 --> 00:45:26,820 gebruik ek so min geheue of as n paar sekondes 1102 00:45:26,820 --> 00:45:30,409 of millisekondes van die rekenaar tyd as moontlik om 'n probleem te implementeer? 1103 00:45:30,409 --> 00:45:32,200 En ek gaan om te blaai en net noem 1104 00:45:32,200 --> 00:45:34,283 dat daar hierdie melding van nul in hierdie weergawe, 1105 00:45:34,283 --> 00:45:36,390 maar ons sal terug kom voor lank. 1106 00:45:36,390 --> 00:45:41,010 Want vir nou, laat ons 'n blik na waar dit gaan om ons te lei. 1107 00:45:41,010 --> 00:45:44,110 So een, dit blyk dat nou dat ons die vermoë 1108 00:45:44,110 --> 00:45:46,860 om te kyk na die individuele karakters, kan ons iets hefboom 1109 00:45:46,860 --> 00:45:50,807 van week 0 daardie arcane was en soort van oninteressant by die tyd. 1110 00:45:50,807 --> 00:45:53,390 Maar nou, en veral wanneer ons kry kriptografie in 'n week, 1111 00:45:53,390 --> 00:45:54,820 dit gaan mooi kragtig te wees. 1112 00:45:54,820 --> 00:45:57,450 Dit blyk dat met 'n paar data types-- SY en dryf 1113 00:45:57,450 --> 00:46:00,300 en karakters en snare en ander things-- sommige van hulle 1114 00:46:00,300 --> 00:46:02,800 kan baie maklik omskep word in 'n ander. 1115 00:46:02,800 --> 00:46:05,840 >> Byvoorbeeld, wanneer ons gepraat oor ASCII geruime tyd ago-- hier is 1116 00:46:05,840 --> 00:46:07,796 die hoofletters A deur M dot, dot, 1117 00:46:07,796 --> 00:46:12,530 dot-- ons gesê dat daar is 'n kartering tussen hierdie briewe en getalle. 1118 00:46:12,530 --> 00:46:14,970 En in die feit, dit waar hou vir kleinletters as well. 1119 00:46:14,970 --> 00:46:17,470 Kleine letters is 97, die hoofstad 'n 65. 1120 00:46:17,470 --> 00:46:20,860 En daar is 'n aantal in ASCII, wat net die kartering 1121 00:46:20,860 --> 00:46:23,240 stelsel vir al die ander briewe. 1122 00:46:23,240 --> 00:46:25,030 So wat beteken dit? 1123 00:46:25,030 --> 00:46:28,390 Wel, ek gaan om voort te gaan en oop tot ware vinnig iets genoem 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, waarvan die meeste is kommentaar. 1125 00:46:31,240 --> 00:46:33,860 En weer aanlyn jy kan altyd oogopslag deur die kommentaar. 1126 00:46:33,860 --> 00:46:36,180 >> En neem 'n blik wat dit gaan doen nie. 1127 00:46:36,180 --> 00:46:38,410 So dit is 'n hooffunksie. 1128 00:46:38,410 --> 00:46:41,490 Ek het hard-gekodeerde die getalle net vir nou, want ek weet wat ek doen. 1129 00:46:41,490 --> 00:46:42,950 Ek weet wat ek wil hier te sien. 1130 00:46:42,950 --> 00:46:45,220 En ek het ek geïnisialiseer tot 65. 1131 00:46:45,220 --> 00:46:48,490 En ek tel up deur 26 letters in totaal. 1132 00:46:48,490 --> 00:46:52,990 En wat gaan ek druk 'n lyn op 'n tyd 1133 00:46:52,990 --> 00:46:54,930 as jy nie kan interpreteer hierdie uitgelig lyn? 1134 00:46:54,930 --> 00:46:55,970 Wat kry gedruk? 1135 00:46:55,970 --> 00:46:56,797 Ja. 1136 00:46:56,797 --> 00:46:57,264 >> GEHOOR: Is jy gaan tot op die letter te druk wat 1137 00:46:57,264 --> 00:46:59,805 ooreenstem met die kaart van die brief waarde en getal waarde? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 Spreker 1: Presies. 1140 00:47:01,990 --> 00:47:04,740 Ek gaan die brief te druk ooreenstem met die getal waarde, 1141 00:47:04,740 --> 00:47:06,131 en omgekeerd, soos volg. 1142 00:47:06,131 --> 00:47:08,880 Wel, dit is, iemand vroeër gesê het, is net 'n plekhouer vir 'n kar. 1143 00:47:08,880 --> 00:47:09,490 Dit is nog steeds. 1144 00:47:09,490 --> 00:47:12,280 Dit, natuurlik, is 'n plekhouer vir 'n int-- nie 'n nuwe lyn. 1145 00:47:12,280 --> 00:47:18,140 En nou sien, my eerste waarde wat Ek steek in vir daardie plekhouer 1146 00:47:18,140 --> 00:47:22,320 is nie net I. ek sê, hakies, char I, 1147 00:47:22,320 --> 00:47:26,700 wat die hakies char is vertel die samesteller, behandel ek 1148 00:47:26,700 --> 00:47:28,490 nie as wat dit is, wat is 'n nommer. 1149 00:47:28,490 --> 00:47:30,490 Behandel dit as 'n werklike karakter. 1150 00:47:30,490 --> 00:47:34,490 Terwyl die tweede waarde ek steek in-- I-- moet net 'n getal wees. 1151 00:47:34,490 --> 00:47:38,140 >> So as ek dit program-- stel so dit is te maak ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot streep ASCII 0-- ek kry net hierdie handige klein grafiek wat 1153 00:47:41,720 --> 00:47:44,950 wys my al die moontlike afbeeldings sonder om dit te dink 1154 00:47:44,950 --> 00:47:46,450 deur of dit uitwerk op my eie. 1155 00:47:46,450 --> 00:47:48,783 En ek is ook uit te druk, kennis van die kleinletters, 1156 00:47:48,783 --> 00:47:51,410 omdat 'n paar lyne later, het ek ook druk uit hierdie kartering 1157 00:47:51,410 --> 00:47:53,737 sowel, wat net om sê dat as jy verstaan 1158 00:47:53,737 --> 00:47:55,570 wat gaan aan onder die kap, kan jy 1159 00:47:55,570 --> 00:47:57,111 outomaties omskep heen en weer. 1160 00:47:57,111 --> 00:48:00,160 En in die feit, indien enige van julle ooit in graad skool het 1161 00:48:00,160 --> 00:48:03,490 of gehoor oor iemand mitiese neem 'n nota 1162 00:48:03,490 --> 00:48:05,620 en om dit aan sy of haar vriendin in die klas, 1163 00:48:05,620 --> 00:48:08,300 maar jy roer die briewe soos A word B, 1164 00:48:08,300 --> 00:48:11,240 en B word C, of ​​iets meer ingewikkeld as dit, wel, 1165 00:48:11,240 --> 00:48:13,410 hoe sou jy te werk gaan uitvoering van hierdie as 'n kind? 1166 00:48:13,410 --> 00:48:16,340 Wel, jy moet net soort van weet A word B, B raak C, 1167 00:48:16,340 --> 00:48:19,700 maar wiskundig wat daardie kind doen? 1168 00:48:19,700 --> 00:48:22,050 Wat het jy die toevoeging van elke letter? 1169 00:48:22,050 --> 00:48:23,340 Effektief 1. 1170 00:48:23,340 --> 00:48:27,740 >> So wanneer jy 'n verandering aan B, dis soort van soos die verandering van 65-66, 1171 00:48:27,740 --> 00:48:29,590 wat wiskundig beteken net voeg 1. 1172 00:48:29,590 --> 00:48:33,300 En so as jy was om te implementeer wat min misleidende tegniek 1173 00:48:33,300 --> 00:48:36,380 vir jou onderwyser in die kode, jy mag dit net presies doen 1174 00:48:36,380 --> 00:48:38,552 deur die toevoeging van 'n enkele brief saam. 1175 00:48:38,552 --> 00:48:40,260 So kort voor lank, ons is gaan ons sien hoe 1176 00:48:40,260 --> 00:48:43,300 kan neem voordeel van daardie eintlik werklik scramble ontleden en 1177 00:48:43,300 --> 00:48:43,991 inligting. 1178 00:48:43,991 --> 00:48:47,240 In die tussentyd, weet dat ons het begin om 'n paar ander biblioteke stel 1179 00:48:47,240 --> 00:48:48,990 here-- die string vandag een. 1180 00:48:48,990 --> 00:48:51,180 En 'n baie nuttige webwerf hopelik sal jy vind 1181 00:48:51,180 --> 00:48:55,010 genoem reference.cs50.net, wat die personeel het saam te stel, 1182 00:48:55,010 --> 00:48:57,510 sodat as jy wil kyk hoe StrLen werke, 1183 00:48:57,510 --> 00:48:59,300 jy kan begin tik die naam van die funksie se 1184 00:48:59,300 --> 00:49:02,890 Klik daar StrLen, en dan 'n minder gemaklik verduideliking 1185 00:49:02,890 --> 00:49:03,700 gaan verskyn. 1186 00:49:03,700 --> 00:49:06,880 Of as jy wil hê dat die amptelike Linux-gebaseerde verduideliking, 1187 00:49:06,880 --> 00:49:08,945 kan jy meer gemaklik klik bo regs, en dit 1188 00:49:08,945 --> 00:49:12,070 sal dieselfde inligting aan te bied, maar in meer komplekse terme. 1189 00:49:12,070 --> 00:49:15,070 Dit is 'n nuttige hulpbron te eintlik weet wat alles doen nie. 1190 00:49:15,070 --> 00:49:17,320 >> Volgende keer gaan ons 'n blik op Ovaltine 1191 00:49:17,320 --> 00:49:20,070 en meer, en onsself om die wêreld van die kriptografie. 1192 00:49:20,070 --> 00:49:21,930 Voor die tyd, sal ons sien jy later hierdie week. 1193 00:49:21,930 --> 00:49:23,390 En nou, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Sien julle op Woensdag. 1195 00:49:26,730 --> 00:49:30,216 >> [Speel van musiek] 1196 00:49:30,216 --> 00:49:33,702 >> [Speel van musiek] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> Spreker 1: Wat die [Oproep] doen jy? 1199 00:49:42,200 --> 00:49:45,720 >> Spreker 1: ek eet my nagereg? 1200 00:49:45,720 --> 00:49:47,160 Hoe weet jy dit eet? 1201 00:49:47,160 --> 00:49:47,860 Met jou hande? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [Speel van musiek] 1204 00:49:57,940 --> 00:50:03,453