1 00:00:00,000 --> 00:00:02,880 >> [Prehrávanie hudby] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> Reproduktor 1: Toto je CS50 a to je začiatok dvoch týždňov. 4 00:00:13,500 --> 00:00:18,400 Takže, poďme sa ponoriť sa priamo do niečoho že je buggy, aby som tak povedal. 5 00:00:18,400 --> 00:00:24,015 Takže, tu je CS50 IDE a ja som zastavil v predstihu to screen-- zatracený 6 00:00:24,015 --> 00:00:25,070 za to. 7 00:00:25,070 --> 00:00:25,760 Spojler alert. 8 00:00:25,760 --> 00:00:26,260 Dobre. 9 00:00:26,260 --> 00:00:29,060 Ja som vytiahol túto obrazovku tu, ktorý má veľmi jednoduchý program. 10 00:00:29,060 --> 00:00:32,659 Ak sa budeme posunúť dole, najviac to je len komentáre, 11 00:00:32,659 --> 00:00:36,730 ale tu v riadkoch 13 až 17 máme program. 12 00:00:36,730 --> 00:00:40,580 >> To je syntakticky platné, čo znamená, že ak Aj skompilovať, bude to skompilovať a spustiť, 13 00:00:40,580 --> 00:00:41,920 ale je to kočík. 14 00:00:41,920 --> 00:00:47,330 Tento program tvrdí v komentári up vrchole, že by sa mala vytlačiť 10 hviezd, 15 00:00:47,330 --> 00:00:48,870 ale to nie je. 16 00:00:48,870 --> 00:00:53,290 A na základe vašich skúseností, alebo čoskoro bude skúsenosť s C, 17 00:00:53,290 --> 00:00:56,820 môžete logicky rozoznať prečo to je v skutočnosti, kočík? 18 00:00:56,820 --> 00:00:57,804 Jo? 19 00:00:57,804 --> 00:00:59,220 Divákov: Ide to od nuly do 10 rokov. 20 00:00:59,220 --> 00:01:01,884 To je 11 iterácií. 21 00:01:01,884 --> 00:01:02,550 Reproduktor 1: Jo. 22 00:01:02,550 --> 00:01:06,030 Takže, bude to od nuly nahor a sa rovná 10, 23 00:01:06,030 --> 00:01:08,140 čo je samozrejme 11 iterácií. 24 00:01:08,140 --> 00:01:10,020 Tak, to bude tlač, naozaj, 11 hviezdy. 25 00:01:10,020 --> 00:01:13,040 Takže, počítačové vedy konvencie vo väčšine programovacích jazykov 26 00:01:13,040 --> 00:01:15,270 je naozaj len preto, aby začne počítať od nuly, 27 00:01:15,270 --> 00:01:18,800 ale počítať až po, ale nie cez hodnota, ktorú ste skutočne záleží. 28 00:01:18,800 --> 00:01:21,216 >> Teraz, to je jedna vec, ktorá trvá trochu zvyknúť 29 00:01:21,216 --> 00:01:25,350 a dokonca aj Scratch, navrhnutý ako je pre non programátorov alebo non počítači 30 00:01:25,350 --> 00:01:28,070 vedci a pre deti z veľkej časti, je navrhnutý tak, aby 31 00:01:28,070 --> 00:01:29,570 začnete počítať zvyčajne v jednom. 32 00:01:29,570 --> 00:01:30,277 A to je v poriadku. 33 00:01:30,277 --> 00:01:33,110 Môžete úplne začať počítať v jednom prípade, že je to oveľa pohodlnejšie. 34 00:01:33,110 --> 00:01:37,210 A počítať až do a cez 10, ale si uvedomíte, zvlášť tento týždeň 35 00:01:37,210 --> 00:01:39,950 a za ňou len tak veľa vecí v programovaní 36 00:01:39,950 --> 00:01:42,465 Predpokladáme, že 0 je prvá číslice, s ktorým budete počítať, 37 00:01:42,465 --> 00:01:45,590 že budete ľahšie len sa dostať do tohto zvyku spúšťanie 38 00:01:45,590 --> 00:01:49,490 od nuly a počíta do hodnoty vám záleží práve teraz od 39 00:01:49,490 --> 00:01:49,990 dostať ísť. 40 00:01:49,990 --> 00:01:50,990 >> Tak, že má pevné, že. 41 00:01:50,990 --> 00:01:53,670 Zmenili sme menej než alebo sa rovná len menej ako. 42 00:01:53,670 --> 00:01:56,050 Poďme sa pozrieť na druhý príklad tu. 43 00:01:56,050 --> 00:01:59,585 >> Tak, tento program tiež uvádza, vo svojom komentuje up top, že by mala vytlačiť 44 00:01:59,585 --> 00:02:02,260 desať hviezdy, ale to nie je. 45 00:02:02,260 --> 00:02:05,540 Čo je to chyba tu? 46 00:02:05,540 --> 00:02:07,930 >> Tak, what-- a prepáč, poďme byť jasné. 47 00:02:07,930 --> 00:02:08,610 10 hviezdy. 48 00:02:08,610 --> 00:02:11,644 Jedno na riadok, ale to nie je. 49 00:02:11,644 --> 00:02:14,810 Takže v skutočnosti, nechajte ma ísť dopredu a skompilovať tento, pretože je to o niečo menej 50 00:02:14,810 --> 00:02:16,900 jasné na základe tohto opisu. 51 00:02:16,900 --> 00:02:18,720 Nechaj ma ísť do nášho zdrojového adresára. 52 00:02:18,720 --> 00:02:25,110 Urobiť Buggy jednu bodku lomítko, buggy jeden. 53 00:02:25,110 --> 00:02:28,680 OK, vidím, 11 hviezdy, ktoré je stále problematické, 54 00:02:28,680 --> 00:02:30,090 ale sú tiež všetky v jednom riadku. 55 00:02:30,090 --> 00:02:31,500 Čo je problém tu? 56 00:02:31,500 --> 00:02:32,339 Jo. 57 00:02:32,339 --> 00:02:33,255 Divákov: [Nepočuteľné]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 Reproduktor 1: Jo. 60 00:02:36,860 --> 00:02:40,210 Takže to je jemnosť, že môžete pripomínajú mi robiť krátku zmienku o. 61 00:02:40,210 --> 00:02:42,793 Aj keď všetko vyzerá pekná, a to je pekne členité, 62 00:02:42,793 --> 00:02:45,850 a to trochu vyzerá ako Scratch- V tomto riadku 16 a 17 sú, 63 00:02:45,850 --> 00:02:47,600 vskutku, odsadené pod že pre sláčiky. 64 00:02:47,600 --> 00:02:48,400 To je nepodstatné. 65 00:02:48,400 --> 00:02:50,460 Počítač nie je vedia alebo vidieť prázdne miesto. 66 00:02:50,460 --> 00:02:52,910 Biely priestor je len pre nás ľudí, štylisticky. 67 00:02:52,910 --> 00:02:57,010 Počítač má vedieť, kedy máte zložené zátvorky, ktoré by, naozaj, 68 00:02:57,010 --> 00:02:58,280 tento problém vyriešiť. 69 00:02:58,280 --> 00:03:02,350 >> Takže, keď sme vlastne išiel dovnútra a výslovne dať v týchto zložených zátvoriek 70 00:03:02,350 --> 00:03:05,220 že by sa tento problém vyriešiť tým, Vďaka jasné, kompilátor 71 00:03:05,220 --> 00:03:07,930 že som vlastne chcú spustiť opäť dva riadky kódu, 72 00:03:07,930 --> 00:03:09,220 a znova a znova. 73 00:03:09,220 --> 00:03:11,680 Ale to, čo je základný vysvetlenie? 74 00:03:11,680 --> 00:03:12,180 Je to tak? 75 00:03:12,180 --> 00:03:15,260 Nemáme striktne potrebovať zložené zátvorky po celú dobu, 76 00:03:15,260 --> 00:03:18,210 aj keď je to asi najlepšie Prax sa dostať do tohto zvyku rovnako 77 00:03:18,210 --> 00:03:20,878 keď dodáva dva znaky na váš kód. prečo? 78 00:03:20,878 --> 00:03:22,380 >> Divákov: [Nepočuteľné]? 79 00:03:22,380 --> 00:03:24,630 Reproduktor 1: Jo, tak to je iné riešenie úplne. 80 00:03:24,630 --> 00:03:25,130 Je to tak? 81 00:03:25,130 --> 00:03:28,250 Zvlášť keď na prvý pohľad, že nie Naozaj si to vážim, čo sa deje. 82 00:03:28,250 --> 00:03:31,070 No, určite sme mohli proste robiť dve veci naraz 83 00:03:31,070 --> 00:03:32,710 a len sa problému vyhnúť úplne. 84 00:03:32,710 --> 00:03:36,080 A to je v poriadku, ale teraz, pre dnešné účely, čo 85 00:03:36,080 --> 00:03:38,200 je vysvetlenie pre chybu? 86 00:03:38,200 --> 00:03:39,810 Prečo boli všetky tie hviezdy na jednej linke? 87 00:03:39,810 --> 00:03:40,806 Jo? 88 00:03:40,806 --> 00:03:43,296 >> Divákov: Zdá sa, že v prípade, máte jeden riadok kódu, 89 00:03:43,296 --> 00:03:46,649 môžete to urobiť bez nich. 90 00:03:46,649 --> 00:03:47,440 Reproduktor 1: Presne tak. 91 00:03:47,440 --> 00:03:48,750 To je len ľudská konvencie. 92 00:03:48,750 --> 00:03:50,750 Ľudia si uvedomiť, že je to Trochu nepríjemné alebo nudné 93 00:03:50,750 --> 00:03:53,470 musieť dať zložené zátvorky všetky času, ak všetko, čo chcete robiť 94 00:03:53,470 --> 00:03:55,090 je spustiť jeden riadok kódu. 95 00:03:55,090 --> 00:03:57,660 Takže, ľudia sa rozhodol niektoré pred časom, že to je v poriadku. 96 00:03:57,660 --> 00:04:01,180 Ak chcete, aby všetky vaše slučky len na tom jednom riadku, ako je táto, 97 00:04:01,180 --> 00:04:04,030 to je v poriadku so singlom bodkočiarka na konci. 98 00:04:04,030 --> 00:04:07,210 Ale môžete urobiť len jeden taký linka bez zložených zátvoriek. 99 00:04:07,210 --> 00:04:09,900 >> Takže, keď sprievodca CS50 štýl ako bude bod, ktorý, 100 00:04:09,900 --> 00:04:11,980 uvidíte, že vo všeobecnosti je to dobrý zvyk 101 00:04:11,980 --> 00:04:14,920 sa dostať do toho, kým ste celkom pohodlné zblúdení 102 00:04:14,920 --> 00:04:17,404 z týchto druhov konvencií a robí svoju vlastnú vec. 103 00:04:17,404 --> 00:04:18,820 Tak dlho, ako ste vlastné konzistentné. 104 00:04:18,820 --> 00:04:21,540 A budeme hovoriť o štýl trochu neskôr dnes. 105 00:04:21,540 --> 00:04:23,200 >> Takže mi dovoľte, aby som otvoriť jeden iný program. 106 00:04:23,200 --> 00:04:24,930 Samozrejme, mali by sme opraviť, že 10 rovnako. 107 00:04:24,930 --> 00:04:32,470 Nechaj ma ísť napred a napísať skutočný rýchly program, ktorý budem hovoriť, 108 00:04:32,470 --> 00:04:38,140 povedzme, slučka bodka C. Takže, slučka dot C. A v slučke dot C budem mať, 109 00:04:38,140 --> 00:04:41,970 zahŕňajú štandardný I / O dot H int main neplatné. 110 00:04:41,970 --> 00:04:44,020 A teraz poďme jednoducho robiť, naozaj, slučka. 111 00:04:44,020 --> 00:04:46,020 Takže, 4 int som dostane nula. 112 00:04:46,020 --> 00:04:48,660 Aj je menšia ako, povedzme, 50. 113 00:04:48,660 --> 00:04:49,950 Aj plus, plus. 114 00:04:49,950 --> 00:04:53,350 A potom tu poďme choďte do toho a do tlače F. 115 00:04:53,350 --> 00:04:56,400 A potom chcem vytlačiť I a nový riadok, bodkočiarka. 116 00:04:56,400 --> 00:05:00,015 >> A to by malo tlačiť všetky Čísla od nuly do 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Niekoľko hlava prikyvuje. 119 00:05:03,680 --> 00:05:04,270 Niekoľko nos. 120 00:05:04,270 --> 00:05:05,339 Čo je to chyba už? 121 00:05:05,339 --> 00:05:06,630 Čo je ľahké chybu som urobil? 122 00:05:06,630 --> 00:05:07,170 Jo. 123 00:05:07,170 --> 00:05:08,544 >> Divákov: [Nepočuteľné]. 124 00:05:08,544 --> 00:05:09,210 Reproduktor 1: Jo. 125 00:05:09,210 --> 00:05:11,520 Takže aj keď to vyzerá, takto je to, čo mám v úmysle, 126 00:05:11,520 --> 00:05:13,920 pripomenúť, že som ich tiež len ASCII znak. 127 00:05:13,920 --> 00:05:14,955 >> Takže, keď poviem, print "I." 128 00:05:14,955 --> 00:05:16,670 Je to doslova deje do I. tlač Takže, keď som 129 00:05:16,670 --> 00:05:20,030 chcú plug-in zástupný Hodnota som skutočne potrebujú to urobiť 130 00:05:20,030 --> 00:05:22,630 a potom pripojte-in hodnota I, dynamicky. 131 00:05:22,630 --> 00:05:25,200 Inak ja som jednoducho ísť dostanete 50 rokov som na obrazovke. 132 00:05:25,200 --> 00:05:28,140 >> Takže, nechaj ma ísť dopredu a túto slučku, spustite ho, 133 00:05:28,140 --> 00:05:30,650 a, samozrejme, sme všetci cesta hore cez 49. 134 00:05:30,650 --> 00:05:34,140 A keď som sa posúvať späť v čase vidím číslo na začiatku nula. 135 00:05:34,140 --> 00:05:36,050 >> No, čo keby som druh Zpacká? 136 00:05:36,050 --> 00:05:37,800 Čo keď to urobím? 137 00:05:37,800 --> 00:05:40,120 Len preto, že som nepremýšľal. 138 00:05:40,120 --> 00:05:40,970 Čo je tento program. 139 00:05:40,970 --> 00:05:43,970 Akonáhle znovu zostavený a spustenie, robiť logicky? 140 00:05:43,970 --> 00:05:44,870 >> Divákov: Nič. 141 00:05:44,870 --> 00:05:45,661 >> Reproduktor 1: Nič. 142 00:05:45,661 --> 00:05:47,156 Prečo tomu tak je? 143 00:05:47,156 --> 00:05:49,124 >> Divákov: Aj je určený pre nulu. 144 00:05:49,124 --> 00:05:51,899 Takže, je podmienka nepravdivá. 145 00:05:51,899 --> 00:05:52,940 Reproduktor 1: Jo, presne tak. 146 00:05:52,940 --> 00:05:55,110 Všetok kód je správny, syntakticky. 147 00:05:55,110 --> 00:05:57,310 To bude zostavovať, to Kód bude spustený, ale nie je to 148 00:05:57,310 --> 00:06:00,110 robiť niečo užitočného pretože som inicializovať som na nulu. 149 00:06:00,110 --> 00:06:02,240 Potom sme zistiť, je, že som väčší ako 50? 150 00:06:02,240 --> 00:06:03,810 Je zrejmé, že nie, že to nie je. 151 00:06:03,810 --> 00:06:05,760 Takže sa slučka nebude nikdy vykonaný vôbec. 152 00:06:05,760 --> 00:06:09,580 >> Čo keď niečo robíme trochu viac ľahkomyseľný? 153 00:06:09,580 --> 00:06:12,890 Takže, čo keď budeme robiť, ako int aj dostane nula. 154 00:06:12,890 --> 00:06:15,640 A teraz mi dovoľte použiť chvíľu slučky, čo bol ďalší podmienkou. 155 00:06:15,640 --> 00:06:21,810 A keď hovorím, keď som je väčšia než alebo sa rovná nule, a potom sa v tú I 156 00:06:21,810 --> 00:06:26,070 choďte do toho a uložte súbor, aby slučku. 157 00:06:26,070 --> 00:06:27,070 A ja som asi ho spustiť. 158 00:06:27,070 --> 00:06:30,230 Čo mám to vidieť tentoraz s slučky while? 159 00:06:30,230 --> 00:06:30,852 Jo. 160 00:06:30,852 --> 00:06:32,120 >> Divákov: nekonečnú slučku? 161 00:06:32,120 --> 00:06:35,360 >> Reproduktor 1: nekonečnej slučke? 162 00:06:35,360 --> 00:06:36,662 Áno, a prečo? 163 00:06:36,662 --> 00:06:38,120 Divákov: Pretože je to vždy nula. 164 00:06:38,120 --> 00:06:38,786 Reproduktor 1: Jo. 165 00:06:38,786 --> 00:06:40,100 Takže, je inicializovaný ako nula. 166 00:06:40,100 --> 00:06:44,470 Samozrejme, že je vždy väčšia než alebo rovný 0 ako výsledok. 167 00:06:44,470 --> 00:06:46,460 Takže, ja som jednoducho ísť vidieť nekonečne. 168 00:06:46,460 --> 00:06:49,850 A teraz, to má prísť raz alebo dvakrát do hlavy kurzu je. 169 00:06:49,850 --> 00:06:52,417 Čo sa stane, keď vás majú nekonečnú slučku? 170 00:06:52,417 --> 00:06:53,314 >> Publikum: Control C. 171 00:06:53,314 --> 00:06:53,980 Reproduktor 1: Jo. 172 00:06:53,980 --> 00:06:56,250 Takže Control C bude nakoniec reagovať. 173 00:06:56,250 --> 00:06:59,520 Bohužiaľ, sme vytlačiť milióny a milióny nuly už 174 00:06:59,520 --> 00:07:01,520 a tak má počítač druh dostal pred sebou. 175 00:07:01,520 --> 00:07:03,394 Takže to bude ignorovať ma na trochu. 176 00:07:03,394 --> 00:07:06,560 Ale ak ste práve hit ovládač C málo Časy na počítači Mac alebo PC klávesnica, 177 00:07:06,560 --> 00:07:08,790 nakoniec to by skutočne ukončiť. 178 00:07:08,790 --> 00:07:11,770 A ak nie, budeme vám ukázať niektoré techniky, kde na vás pred dlhým 179 00:07:11,770 --> 00:07:14,850 môže skutočne zabíjať násilne programy, podobne ako v systémoch Windows a Mac OS, 180 00:07:14,850 --> 00:07:15,562 v prípade potreby. 181 00:07:15,562 --> 00:07:16,770 Ale poďme skúsiť niečo iné. 182 00:07:16,770 --> 00:07:19,895 Poďme skutočne zvýšiť I. to stále bude nekonečný? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Dovoľte mi, aby som to bežať. 185 00:07:25,140 --> 00:07:27,090 A teraz môžete druh zistiť, čo sa deje. 186 00:07:27,090 --> 00:07:30,140 To, tiež, je nekonečné slučke. 187 00:07:30,140 --> 00:07:33,080 Ale to je tak trochu chyták. 188 00:07:33,080 --> 00:07:35,460 Je to bude tlačiť čísla navždy? 189 00:07:35,460 --> 00:07:36,647 >> Publikum: Nie. 190 00:07:36,647 --> 00:07:37,230 Reproduktor 1: Nie. 191 00:07:37,230 --> 00:07:37,620 Prečo? 192 00:07:37,620 --> 00:07:38,820 Počul som nejaké nos sem. 193 00:07:38,820 --> 00:07:41,859 Someone-- Jo. 194 00:07:41,859 --> 00:07:44,275 Divákov: Nemáte dosť bity naozaj ísť ďalej. 195 00:07:44,275 --> 00:07:44,730 Reproduktor 1: Dobre. 196 00:07:44,730 --> 00:07:46,000 Takže nemám dosť bity ísť ďalej. 197 00:07:46,000 --> 00:07:47,124 Takže, čo sa stane? 198 00:07:47,124 --> 00:07:49,320 Je to len tak prestať? 199 00:07:49,320 --> 00:07:52,542 >> Divákov: Na nejakom mieste to bude zavrel the-- 200 00:07:52,542 --> 00:07:54,500 Reproduktor 1: Bude zavrieť slučky dole, ale prečo? 201 00:07:54,500 --> 00:07:57,950 Čo sa bude diať u Veľmi koniec jeho hraníc? 202 00:07:57,950 --> 00:07:58,479 Jo? 203 00:07:58,479 --> 00:08:00,520 Divákov: Bude cyklus späť do záporných čísel. 204 00:08:00,520 --> 00:08:02,900 Reproduktor 1: Ak chcete záporných čísel, alebo Ak by sme boli práve liečbu pozitívne, 205 00:08:02,900 --> 00:08:03,570 nula minimálne. 206 00:08:03,570 --> 00:08:04,550 Takže áno, absolútne. 207 00:08:04,550 --> 00:08:08,059 Pripomeňme, že sme videli naposledy, že ak zvýšiť vaše bity jeden príliš mnohokrát, 208 00:08:08,059 --> 00:08:10,225 a vy tam Fore pretečeniu kapacita vášho int 209 00:08:10,225 --> 00:08:13,058 alebo bez ohľadu na typ dát je, že ste bude zalomiť okolo, pravdepodobne, 210 00:08:13,058 --> 00:08:14,020 dve záporné čísla. 211 00:08:14,020 --> 00:08:16,644 Alebo ak ste sa určiť, že rozsah by mal byť iba pozitívne, 212 00:08:16,644 --> 00:08:18,560 ktoré môžete urobiť, ale sme nevideli, že doteraz, 213 00:08:18,560 --> 00:08:21,420 môžete skončiť aspoň späť na nulu. 214 00:08:21,420 --> 00:08:22,410 Aj keď, vlastne áno. 215 00:08:22,410 --> 00:08:24,320 V tomto prípade, negatívne čísla, pričom v tomto prípade 216 00:08:24,320 --> 00:08:26,870 slučka bude k ukončeniu preto, že som sa ani, v skutočnosti, 217 00:08:26,870 --> 00:08:29,220 väčší alebo rovné nula, ak je to negatívne. 218 00:08:29,220 --> 00:08:31,780 >> Takže, bohužiaľ, ako dlho budeme musieť čakať? 219 00:08:31,780 --> 00:08:35,490 Práve teraz sme až do čo, 2000000-ish? 220 00:08:35,490 --> 00:08:37,705 Sme ako 2 miliardy, budeme musieť počkať 221 00:08:37,705 --> 00:08:39,330 kým sa skutočne môžeme vidieť tento príznak. 222 00:08:39,330 --> 00:08:46,200 Ale my to vidieť o niečo rýchlejšie, maybe-- uvidíme, či môžeme prerušiť. 223 00:08:46,200 --> 00:08:46,700 No ták. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Dokonca aj menu sa objavujú pomaly. 226 00:08:51,331 --> 00:08:51,830 Dobre. 227 00:08:51,830 --> 00:08:54,270 Takže, budeme vracať k tomu onedlho. 228 00:08:54,270 --> 00:08:56,320 Je to dobrá time-- sakra, šteňatá. 229 00:08:56,320 --> 00:08:58,280 >> Je to dobrý čas na nejaké oznámenia. 230 00:08:58,280 --> 00:09:01,225 Takže, ak vám bude páčiť aby sa zapojili do YHack, 231 00:09:01,225 --> 00:09:03,600 ktorý je udalosť, že podporovaný našimi priateľmi na Yale. 232 00:09:03,600 --> 00:09:05,990 A skutočne, niektorí kurz je TFS na Yale sú spojené s týmto. 233 00:09:05,990 --> 00:09:08,610 YHack je medzinárodná hack-a-thon hostil a držal 234 00:09:08,610 --> 00:09:12,395 na Yale, združuje 1500 rovnako zmýšľajúcimi hackermi a reklamy všetkých 235 00:09:12,395 --> 00:09:13,120 na celom svete. 236 00:09:13,120 --> 00:09:14,610 Ak sa jedná o záujme, pozrite sa sem. 237 00:09:14,610 --> 00:09:17,401 Ak je to príliš krátko na obrazovky, sa pozrieť na dnešné šmýkačky 238 00:09:17,401 --> 00:09:19,622 pre URL pre yhack.org. 239 00:09:19,622 --> 00:09:21,080 Takže, aj niekoľko rýchlych oznámenia. 240 00:09:21,080 --> 00:09:24,410 Takže, oficiálne sekcia začne Budúci týždeň ako tu, New Haven. 241 00:09:24,410 --> 00:09:27,660 Majte na pamäti, budete získanie e-mail neskôr tento víkend najpravdepodobnejší. 242 00:09:27,660 --> 00:09:29,390 To trvá dlhú dobu pre CS50 k bodu, 243 00:09:29,390 --> 00:09:32,080 Vzhľadom ku všetkým ľuďom v trieda a každý pohybujúce sa okolo. 244 00:09:32,080 --> 00:09:34,871 A všetky výučby Fellows " rozvrhy sú tiež stále spevňovať, 245 00:09:34,871 --> 00:09:38,110 ale zostaňte naladení pre e-mail a v prípade potreby sa môžete re-oddiel tam po. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Takže, aj keď ste konštantný účastníka na úsekoch, uvedomiť si, že takmer všetky 248 00:09:43,280 --> 00:09:46,786 zdrojov používame v oddieloch sú verejne dostupné na CS50 249 00:09:46,786 --> 00:09:48,460 Štúdium na tejto adrese URL tu. 250 00:09:48,460 --> 00:09:51,630 Takže, ak by ste niekedy chceli obnoviť recenziu materiál z časti, alebo čítanie dopredu, 251 00:09:51,630 --> 00:09:54,170 alebo nemôžete robiť to nejaký týždeň, uvedomiť, že ukážkové snímky, 252 00:09:54,170 --> 00:09:58,210 a problémy, a definície, a ďalšie sú tam tiež. 253 00:09:58,210 --> 00:10:00,645 >> Úradné hodiny pokračovať dnes, a zajtra, a v stredu, 254 00:10:00,645 --> 00:10:03,020 a vo štvrtok skontrolovať kurz je webové stránky pre časový rozvrh. 255 00:10:03,020 --> 00:10:05,690 >> A tiež, teraz začína dnes je CS50 Diskutovať. 256 00:10:05,690 --> 00:10:09,230 Takže, ak a keď máte otázky pre navzájom alebo pre zamestnancov Course, 257 00:10:09,230 --> 00:10:12,099 a sú všeobecne pracujú na nejaký problém set, 258 00:10:12,099 --> 00:10:15,015 Uvedomujem si, že nemusíte nutne musieť obrátiť na človeka Ďalší. 259 00:10:15,015 --> 00:10:17,810 Ak sa to nikto tam, môžete natiahnuť nás a spolužiakmi 260 00:10:17,810 --> 00:10:19,890 on-line prostredníctvom CS50 Diskutovať. 261 00:10:19,890 --> 00:10:22,600 Takže, to je diskusia doska pre kurzu, 262 00:10:22,600 --> 00:10:24,550 a uvedomiť si, že toto je možno najlepší 263 00:10:24,550 --> 00:10:28,480 miestom, kde začať, keď máte otázky, kedy mimo úradných hodín 264 00:10:28,480 --> 00:10:29,470 zvlášť. 265 00:10:29,470 --> 00:10:31,070 >> Obedy začne tento týždeň taky. 266 00:10:31,070 --> 00:10:33,170 U ohňa a ľadu [Nepočuteľné] v New Haven. 267 00:10:33,170 --> 00:10:35,379 Pozrite sa na kurz je webové stránky, aby sa RSVP. 268 00:10:35,379 --> 00:10:36,753 Kto skôr príde, ten skôr melie za to. 269 00:10:36,753 --> 00:10:39,380 Ak sa nechcete dostať v tomto týždni urobíme to najviac každý piatok 270 00:10:39,380 --> 00:10:40,400 počas semestra. 271 00:10:40,400 --> 00:10:41,830 >> OK, a teraz slovo o triedení. 272 00:10:41,830 --> 00:10:44,690 Najmä ako sme sa vstúpiť problém set človek, ktorý je tento týždeň, 273 00:10:44,690 --> 00:10:46,670 a problém nastaviť dva a potom. 274 00:10:46,670 --> 00:10:51,680 Ako môžeme ísť o hodnotení P sety a hodnotenie ich kvality? 275 00:10:51,680 --> 00:10:55,560 Takže, je to štyri osi, ktoré používame v CS50, a sú to tieto štyri tu. 276 00:10:55,560 --> 00:10:59,200 >> Rozsah pôsobnosti, ktorý zachytáva na numerickej Základom, koľko zo súboru P 277 00:10:59,200 --> 00:10:59,860 si riešiť. 278 00:10:59,860 --> 00:11:02,890 Je to zhruba zodpovedá úsilie, a to je náš spôsob, ako zachytiť 279 00:11:02,890 --> 00:11:05,190 Skúsili ste polovicu P set, všetky sady P. 280 00:11:05,190 --> 00:11:08,860 Jedná sa o jednoduchý, kto dostať perfektné skóre na ak áno, naozaj, 281 00:11:08,860 --> 00:11:11,020 vyskúšať každý aspekt sady P. 282 00:11:11,020 --> 00:11:12,010 Takže majte na pamäti. 283 00:11:12,010 --> 00:11:13,420 >> Korektnosť je presne to. 284 00:11:13,420 --> 00:11:17,760 Má váš kód fungovať ako špecifikácia a ako vzorky roztoku štábov ' 285 00:11:17,760 --> 00:11:19,730 naznačujú, že váš kód by v skutočnosti fungovať. 286 00:11:19,730 --> 00:11:23,260 Skontrolujte, 50, ak ste ju stretol napriek tomu je v P nastaviť jednu špecifikáciu 287 00:11:23,260 --> 00:11:25,060 a všeobecne vám áno / nie odpovede 288 00:11:25,060 --> 00:11:26,518 o tom, či je váš kód je správny. 289 00:11:26,518 --> 00:11:30,680 Aspoň tak ďaleko, že budeme zhodnotiť ho na základe skúšok 290 00:11:30,680 --> 00:11:32,430 že sme sa spustiť v rámci tohto programu. 291 00:11:32,430 --> 00:11:33,850 >> Dizajn je oveľa viac subjektívne. 292 00:11:33,850 --> 00:11:35,994 To je, ako dobre napísaný je váš kód. 293 00:11:35,994 --> 00:11:38,410 A to je niečo, budete mať lepší na čase, 294 00:11:38,410 --> 00:11:41,201 a je to niečo, že budeme poskytujú viac kvalitatívnu spätnú väzbu. 295 00:11:41,201 --> 00:11:43,350 A zámerné by som mohol znamenať, onedlho budete 296 00:11:43,350 --> 00:11:47,650 by mohol byť v pokušení nejakým P nastavený na niečo loopingly, 297 00:11:47,650 --> 00:11:51,590 , Ale nebude mať možno tri, alebo štyri, alebo päť vnorené Predné slučky alebo vnorené zatiaľ čo 298 00:11:51,590 --> 00:11:52,090 slučky. 299 00:11:52,090 --> 00:11:54,130 To by vo všeobecnosti začnú vás krčiť 300 00:11:54,130 --> 00:11:56,070 a by všeobecne považované za zlé konštrukcie. 301 00:11:56,070 --> 00:11:59,490 A začnete vidieť v triede a z triedy dobrých spôsobov, ako robiť veci, 302 00:11:59,490 --> 00:12:02,920 zlé spôsoby, ako robiť veci, ktoré by mohli byť všetky správne, ale nie 303 00:12:02,920 --> 00:12:04,304 nutne dobre navrhnutý. 304 00:12:04,304 --> 00:12:05,220 Rovnako ako písanie eseje. 305 00:12:05,220 --> 00:12:08,100 Tie by mohli byť schopní dať slová na Stránka, ktorá sú gramaticky správne, 306 00:12:08,100 --> 00:12:10,016 ale esej alebo Práce sú v je jednoducho 307 00:12:10,016 --> 00:12:11,810 úplne nesúvislá či nepresvedčivé. 308 00:12:11,810 --> 00:12:15,930 A tak, že môže byť analóg v písomná svet zlého alebo dobrého dizajnu. 309 00:12:15,930 --> 00:12:18,490 >> A štýl, taky, je pomerne subjektívna. 310 00:12:18,490 --> 00:12:20,060 Ale aspoň očakávame konzistenciu. 311 00:12:20,060 --> 00:12:21,480 To je, ako krásna je váš kód. 312 00:12:21,480 --> 00:12:22,840 Sú veci pekne členité? 313 00:12:22,840 --> 00:12:26,600 Sú vaše premenné dobre menuje / sú všetky vaše zátvoriek a zložených zátvorkách 314 00:12:26,600 --> 00:12:27,920 zladená, ako by mali? 315 00:12:27,920 --> 00:12:31,490 Máme sprievodca CS50 štýl ako Problém sada bude ukazovať vás na adrese. 316 00:12:31,490 --> 00:12:33,730 Tí, ktorí sú pohodlnejšie vitajte blúdiť z toho 317 00:12:33,730 --> 00:12:35,771 tak dlho, ako ste vlastné konzistentné. 318 00:12:35,771 --> 00:12:38,020 A aj to je lekcia budeme posilňovať v oddiele. 319 00:12:38,020 --> 00:12:40,990 Takže, ak to všetko bolo trochu rýchla, si uvedomiť, P množina a profilov 320 00:12:40,990 --> 00:12:42,900 pôjde do väčšej hĺbky, ako dlhý. 321 00:12:42,900 --> 00:12:45,490 >> Ale všeobecne máme veľmi málo vedierka na CS50. 322 00:12:45,490 --> 00:12:48,170 Výsledky sú všeobecne na stupnici obsahujúci jeden až tri, alebo jednej do piatich. 323 00:12:48,170 --> 00:12:50,836 Sme literally-- a nemôžem povedať, to dosť v prvom týždni. 324 00:12:50,836 --> 00:12:51,582 Tri je dobrá. 325 00:12:51,582 --> 00:12:54,290 Takže, aj keď, áno, tri zo z piatich normálne, matematicky, 326 00:12:54,290 --> 00:12:57,240 môže byť 60 percent, alebo ako D mínus. 327 00:12:57,240 --> 00:12:58,840 Tri je v skutočnosti, dobre. 328 00:12:58,840 --> 00:13:01,050 A v skutočnosti, očakávame, že väčšina študentov v triede 329 00:13:01,050 --> 00:13:04,280 odštartovať termín okolo dvojky, trojky a štvorky a. 330 00:13:04,280 --> 00:13:05,510 Pravdepodobne nie toľko päťky. 331 00:13:05,510 --> 00:13:06,661 Nie príliš veľa z nich. 332 00:13:06,661 --> 00:13:08,910 Ale všeobecne začať v že sweet spot v krivke 333 00:13:08,910 --> 00:13:11,694 tak, že postupom času, je to vlastne priestor pre, 334 00:13:11,694 --> 00:13:13,360 a príležitosti pre vyššiu progresie. 335 00:13:13,360 --> 00:13:15,810 Takže, prosím, sa nerovnajú tri s 60%. 336 00:13:15,810 --> 00:13:17,410 Je to oveľa viac než to abstraktné. 337 00:13:17,410 --> 00:13:20,160 Vzorec, s ktorou počítame stupňa sa vážia takto. 338 00:13:20,160 --> 00:13:21,610 Správnosť stojí najviac. 339 00:13:21,610 --> 00:13:23,010 Dizajn je stojí za trochu menej. 340 00:13:23,010 --> 00:13:24,490 Štýl je stojí za trochu menej. 341 00:13:24,490 --> 00:13:26,950 A toto všeobecne zachytáva množstvo času 342 00:13:26,950 --> 00:13:29,800 že ide do dostať každý z týchto osí tak akurát. 343 00:13:29,800 --> 00:13:31,810 Štýl je super ľahko, by mala byť super rýchly, 344 00:13:31,810 --> 00:13:33,657 ale je to jednoduchý zvyk dostať lenivý okolo. 345 00:13:33,657 --> 00:13:35,490 Správnosť môže trvať budete väčšinu času. 346 00:13:35,490 --> 00:13:38,990 Naháňa nejaký bug silu prijať, že ďalšiu hodinu či viac, 347 00:13:38,990 --> 00:13:41,737 a tak, bodovanie nakoniec zachytí to. 348 00:13:41,737 --> 00:13:43,070 A tak teraz vážnejšie slovo. 349 00:13:43,070 --> 00:13:45,240 Vzhľadom k tomu, CS50 má rozlíšenie, pre lepšiu 350 00:13:45,240 --> 00:13:47,440 alebo horšie, že sú možná lepšie zoznámili 351 00:13:47,440 --> 00:13:50,065 s problematikou akademickej poctivosť než väčšina akýchkoľvek iných programov. 352 00:13:50,065 --> 00:13:53,720 A skutočne, to je mi známe, že vyšleme viac študentov, bohužiaľ, 353 00:13:53,720 --> 00:13:56,690 na disciplinárne účely každý rok ako výsledok. Tak, 354 00:13:56,690 --> 00:13:59,040 v záujme plnej zverejňovanie, poďme sa krátko prehovoriť 355 00:13:59,040 --> 00:14:02,820 o tom, čo sa deje v CS50, a to, čo vás môže robiť, a čo môžete mať na pamäti. 356 00:14:02,820 --> 00:14:05,530 >> Takže, tu od roku 2007, kedy Zdedil som kurz, 357 00:14:05,530 --> 00:14:07,870 je počet prípadov Ad rady. 358 00:14:07,870 --> 00:14:10,690 Ad rada je Harvarde disciplinárny telo, alebo teraz Honor Counsel, 359 00:14:10,690 --> 00:14:13,790 , Na ktoré sa odvoláva, keď prípady Študenti niečo urobiť, že kurz je 360 00:14:13,790 --> 00:14:15,470 Osnova považuje za neprimerané. 361 00:14:15,470 --> 00:14:17,220 Nie je tam žiadny skutočný vzor tú, povedal by som. 362 00:14:17,220 --> 00:14:19,530 To kolíše cez rokov, ale všeobecne 363 00:14:19,530 --> 00:14:22,262 to je počet prípady, ktoré sú uvedené. 364 00:14:22,262 --> 00:14:23,970 Počet študentov ktoré sú zapojené? 365 00:14:23,970 --> 00:14:25,290 Je to príliš líši. 366 00:14:25,290 --> 00:14:27,930 Typicky, v minulom roku pre Napríklad, 29 študenti na Harvarde 367 00:14:27,930 --> 00:14:29,740 boli Ad Boarded, aby som tak povedal. 368 00:14:29,740 --> 00:14:32,670 29 z nich sa študentmi prúdu, Dva z nich minulých študentov, 369 00:14:32,670 --> 00:14:35,610 ktorí boli spolupráca nejakým nepríjemným spôsobom. 370 00:14:35,610 --> 00:14:38,400 A potom, pokiaľ ide o percento, je to zvyčajne asi 3% 371 00:14:38,400 --> 00:14:41,360 triedy, ktorá, bohužiaľ, robí tieto druhy rozhodnutí. 372 00:14:41,360 --> 00:14:44,470 >> Takže, v minulom roku to bolo 3,5% z CS50 študentský zbor 373 00:14:44,470 --> 00:14:46,820 to bolo Ad Boarded, aby som tak povedal. 374 00:14:46,820 --> 00:14:48,490 >> Takže, čo to všetko znamená? 375 00:14:48,490 --> 00:14:49,660 A čo vlastne robiť? 376 00:14:49,660 --> 00:14:52,930 >> Takže, pre úplné zverejnenie, my absolútne, as počítačových vedcov, 377 00:14:52,930 --> 00:14:57,620 majú softvérové ​​nástroje máme k dispozícii a to je pre nás veľmi jednoduché, v spravodlivosť, 378 00:14:57,620 --> 00:15:00,980 že ostatné je spolužiaci, ktorí nie sú kríženie tieto riadky prekročiť porovnať 379 00:15:00,980 --> 00:15:04,570 každý podanie tento rok proti každý Podanie žiadosti o posledných osem rokov. 380 00:15:04,570 --> 00:15:05,445 Softvér robí toto. 381 00:15:05,445 --> 00:15:07,440 A nakoniec je to ľudské oči, ktoré sa rozhodnú 382 00:15:07,440 --> 00:15:11,410 či sa má odkazovať nejaký jedno pre ďalšie rozhodovanie, 383 00:15:11,410 --> 00:15:12,737 ale softvér určite pomáha. 384 00:15:12,737 --> 00:15:15,820 A to, úprimne povedané, je dôvod, prečo si myslím, máme tak veľké čísla v CS50. 385 00:15:15,820 --> 00:15:18,540 Nie je to preto, CS50 študenti alebo CS študenti viac 386 00:15:18,540 --> 00:15:20,840 sú všeobecne nič menej úprimný než akékoľvek iné študentmi, 387 00:15:20,840 --> 00:15:22,340 je to len máme nástroje a techniky 388 00:15:22,340 --> 00:15:24,095 , S ktorou sa tento prvý priechod. 389 00:15:24,095 --> 00:15:25,960 >> Ale my strážiť Na všetky tieto veci 390 00:15:25,960 --> 00:15:30,340 rovnako opäť v záujme uznávajúc prácu, ktorá je ich uvedením 391 00:15:30,340 --> 00:15:32,397 v o super väčšinou triedy. 392 00:15:32,397 --> 00:15:34,230 A politika kurzu je na akademickej poctivosti, 393 00:15:34,230 --> 00:15:37,021 aj keď je to banda odsekov dlhý s partiou guliek 394 00:15:37,021 --> 00:15:40,490 že sú snáď dosť čitateľné, to naozaj redukuje byť rozumný. 395 00:15:40,490 --> 00:15:44,000 A to najlepšie pravidlo, ktoré ponúkame vybudovaná v rámci osnov 396 00:15:44,000 --> 00:15:46,020 je to, esencia všetky práce, ktorá vás 397 00:15:46,020 --> 00:15:47,850 predloží kurzu, musí byť váš vlastný. 398 00:15:47,850 --> 00:15:51,510 A skutočne, v takmer všetkých tých, Prípady uvedené pre disciplinárne konanie 399 00:15:51,510 --> 00:15:55,640 bolo to preto, že niektoré študentské raz neskoro noc typicky obrátil svoj kód 400 00:15:55,640 --> 00:15:58,130 cez priamo na spolužiaka, kto potom ho prijala 401 00:15:58,130 --> 00:16:00,840 v celom rozsahu alebo výrazne nich. 402 00:16:00,840 --> 00:16:02,680 >> Ale naozaj, to je v poriadku. 403 00:16:02,680 --> 00:16:04,684 A skutočne, v kancelárii hodiny, papieriky 404 00:16:04,684 --> 00:16:07,850 ste bol odovzdaný, ak ste prišli úradom hodín minulý týždeň povzbudzuje toľko. 405 00:16:07,850 --> 00:16:09,710 Máte úplnú privítal a povzbudil 406 00:16:09,710 --> 00:16:12,340 prerokovať problémové sady so spolužiakmi. 407 00:16:12,340 --> 00:16:14,461 Ak chcete si navzájom pomáhajú pri zakopnutia. 408 00:16:14,461 --> 00:16:17,710 Ale všeobecne pravidlo by malo byť takto, "keď sa žiadosťou o pomoc, 409 00:16:17,710 --> 00:16:20,412 môžete ukázať svoj kód s ostatnými, ale nemusí zobraziť ich. " 410 00:16:20,412 --> 00:16:22,620 Takže, inými slovami, keď som zápasí s niektorými P sadou 411 00:16:22,620 --> 00:16:25,290 a ja sedím tam v jedáleň, alebo v knižnici, 412 00:16:25,290 --> 00:16:28,470 alebo v triede sa snaží nájsť nejakú chybu, 413 00:16:28,470 --> 00:16:30,340 Ja určite ukázať môj kód na mojej obrazovke 414 00:16:30,340 --> 00:16:32,590 sa osoba sediaca vedľa pre mňa, určite personál, 415 00:16:32,590 --> 00:16:33,600 ale aj spolužiak. 416 00:16:33,600 --> 00:16:36,580 Ale v prípade, že riešenie, ktoré môj spolužiak ponúka, je, oh, 417 00:16:36,580 --> 00:16:39,200 Tu stačí sa pozrieť na to, čo Urobil som, že prekročí hranicu. 418 00:16:39,200 --> 00:16:43,120 >> A ja by som si tvrdiť, že je to všeobecne rozumná vec pre väčšinu ľudí 419 00:16:43,120 --> 00:16:45,030 veľmi ľahko rozpoznať líniu. 420 00:16:45,030 --> 00:16:47,195 A tak, pozri osnova pre ďalšie podrobnosti. 421 00:16:47,195 --> 00:16:49,070 A teraz jedným z viac sporné aspekty 422 00:16:49,070 --> 00:16:52,529 z CS50 osnov, že som si myslel, by hovoril v závere tu 423 00:16:52,529 --> 00:16:53,820 je takzvaná klauzula ľútosť. 424 00:16:53,820 --> 00:16:55,340 Tak, tu je všetko drobným písmom. 425 00:16:55,340 --> 00:16:58,090 Ale všeobecne sme videli, počas posledných 8 rokov pluse 426 00:16:58,090 --> 00:17:01,510 že skutočne takmer všetky CS50 je prípady akademickej nepoctivosti 427 00:17:01,510 --> 00:17:04,390 boli dôsledkom práve chudobní rozhodovanie neskoro v noci. 428 00:17:04,390 --> 00:17:07,144 Výsledkom stresu, výsledok nedostatku jedlo, nedostatok spánku, 429 00:17:07,144 --> 00:17:09,560 príliš veľa súpravy P, príliš veľa termíny, príliš veľa záväzkov. 430 00:17:09,560 --> 00:17:13,520 Stres buduje v 2:00 ráno, 03:00 AM, 04:00, s termín rysuje. 431 00:17:13,520 --> 00:17:17,020 Väčšina študentov v týchto prípadoch práve urobil zlých rozhodnutí 432 00:17:17,020 --> 00:17:20,619 že oni by mohli veľmi dobre ľutovať Druhý deň ráno, ak nie minút neskôr, 433 00:17:20,619 --> 00:17:25,490 ale až do minulého roku nedošlo uvoľňovanie ventil, ktorý títo študenti mohli 434 00:17:25,490 --> 00:17:29,140 skutočne otvoriť až skutočne riešiť problém Problém s hlavou bez strachu z bytia 435 00:17:29,140 --> 00:17:30,850 zavedený z vysokej školy vôbec. 436 00:17:30,850 --> 00:17:33,260 >> A naozaj, sme zaviedli táto ľútosť klauzula v minulom roku, 437 00:17:33,260 --> 00:17:35,970 ktorý hovorí, že ak v rámci 72 hodín, tri dni, 438 00:17:35,970 --> 00:17:37,970 kríženie nejaké linky predpísaný v učebných osnovách 439 00:17:37,970 --> 00:17:41,178 prídete tešiť na jednu z kurzu je hlavy a budeme porozprávať sa o tom. 440 00:17:41,178 --> 00:17:43,720 Tam sú ešte niektoré výsledok, na rozdiel od toho, čo je 441 00:17:43,720 --> 00:17:44,990 Bolo hlásené, že naopak. 442 00:17:44,990 --> 00:17:49,190 Tam je ešte nejaká výsledkom, že je žalovateľné priebehom, 443 00:17:49,190 --> 00:17:51,611 všeobecne nulovania a P set alebo prijímanie inú akciu, 444 00:17:51,611 --> 00:17:53,610 ale budeme, samozrejme, zvládnuť to sami, a nie 445 00:17:53,610 --> 00:17:58,460 nájdete je vyššia boli výsledkom môže byť oveľa prísnejšie. 446 00:17:58,460 --> 00:18:01,810 A, samozrejme, zdieľať to, čo sa stalo v minulom roku, v ôsmich rokoch, a teraz 447 00:18:01,810 --> 00:18:04,950 deväť rokov, výučby tohto kurzu a potom, čo hrať sa s rôznymi gombíkmi, 448 00:18:04,950 --> 00:18:07,866 sústruženie rôzne číselníky nad minulosťou niekoľko rokov na akademickej poctivosti, 449 00:18:07,866 --> 00:18:11,920 a keď videl podľa údajov bez zjavného dopad, a to aj prejavy, ako je tento, 450 00:18:11,920 --> 00:18:15,490 to vynesie najlepšie vec sme zaviedli pedagogicky 451 00:18:15,490 --> 00:18:18,090 Za osem rokov spolu tieto linky CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 študentov pristúpil na základe tohto ustanovenia v minulom roku. 453 00:18:21,010 --> 00:18:23,389 Zobrali sme žiadnu akciu pre sedem z týchto študentov, 454 00:18:23,389 --> 00:18:25,430 určenie, že sú zbytočne starosti. 455 00:18:25,430 --> 00:18:27,304 Nemali, v skutočnosti, prekročili čiaru ,, ale je 456 00:18:27,304 --> 00:18:28,960 Bol to dobrý rozhovor mať však. 457 00:18:28,960 --> 00:18:31,190 My vynulované 11 o skóre ktoré boli predložené. 458 00:18:31,190 --> 00:18:33,840 A v jednom prípade sme sa spýtal sa Študent robiť problém nastaviť. 459 00:18:33,840 --> 00:18:36,370 Ale ešte presvedčivejšie, úprimne, s týmito 19 chatov, 460 00:18:36,370 --> 00:18:39,020 čo bolo oveľa viac ako ja Očakáva sa, že majú, každý z nich 461 00:18:39,020 --> 00:18:41,370 10 minút na možná hodinový, tiež priniesla 462 00:18:41,370 --> 00:18:44,920 na svetlo rad problémov, pokiaľ ide o familiárny otázky, otázky priateľ, 463 00:18:44,920 --> 00:18:46,940 duševné zdravotné problémy že sme sa potom zaoberá, 464 00:18:46,940 --> 00:18:50,200 s študenta požehnanie, bydlisko dekan, alebo priatelia, ani žiadne iné číslo 465 00:18:50,200 --> 00:18:51,450 podporných prostriedkov. 466 00:18:51,450 --> 00:18:54,454 Takže to bol zďaleka jeden najlepších využitie našej doby 467 00:18:54,454 --> 00:18:55,870 a jeden z najlepších intervencií. 468 00:18:55,870 --> 00:18:58,870 >> Vďaka, že povedal, že nemal vstup na rýchlosti detekcie 469 00:18:58,870 --> 00:19:00,909 akademickej nepoctivosti všeobecnejšie. 470 00:19:00,909 --> 00:19:02,950 A trúfam si povedať, túto podmnožinu študentov v minulom roku 471 00:19:02,950 --> 00:19:06,350 bolo demografickú skupinu, ktoré sme predtým nikdy zistená predo 472 00:19:06,350 --> 00:19:08,140 a nikdy spojení s predtým. 473 00:19:08,140 --> 00:19:10,020 A tak, jednalo nádherné príbehy o úspechu 474 00:19:10,020 --> 00:19:13,390 aj keď boli prinesené na svetlo za menej ako optimálnych podmienok. 475 00:19:13,390 --> 00:19:15,640 Takže majte na pamäti ako si urobiť, snáď, 476 00:19:15,640 --> 00:19:17,390 Niektoré chudobné rozhodnutie si neskoro v noci, 477 00:19:17,390 --> 00:19:20,151 že sa pristúpi tak dlho ako študent v tejto situácii 478 00:19:20,151 --> 00:19:23,400 vlastniť a prísť dopredu tak, aby môžeme mať tento druh chatu a vysporiadať sa s ňou 479 00:19:23,400 --> 00:19:27,310 spôsobom, ktorý je vzdelávací, a potom môžeme dať to za nami ďalší deň. 480 00:19:27,310 --> 00:19:30,335 >> Takže bez ďalších okolkov, vezmite hrany z tohto rozhovoru, 481 00:19:30,335 --> 00:19:35,080 dôvod, prečo šteniatka sú hore znamená len preto, aby prelomiť ľady na chvíľu. 482 00:19:35,080 --> 00:19:39,560 A bohužiaľ, oni sú všetci spať, ale to, čo sa malo stať tu 483 00:19:39,560 --> 00:19:41,760 bol každý mal k úctu a trochu relaxovať 484 00:19:41,760 --> 00:19:43,910 po tomto veľmi ťažkom konverzácie. 485 00:19:43,910 --> 00:19:46,930 Ale zrejme som dal šteniatka spať. 486 00:19:46,930 --> 00:19:50,070 Ale keď idete do CS50 je Webové stránky lomítko šteňatá, 487 00:19:50,070 --> 00:19:51,610 môžete dlho pozerať sa na ne celý deň. 488 00:19:51,610 --> 00:19:55,280 Zvlášť možno 2:00, alebo 03:00, alebo 04:00 v noci 489 00:19:55,280 --> 00:19:57,480 vidieť trochu pnutia tam. 490 00:19:57,480 --> 00:19:58,805 Takže to je lomítko šteňatá. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 Dobre. 493 00:20:02,200 --> 00:20:03,020 Nebolo to sranda? 494 00:20:03,020 --> 00:20:04,200 OK. 495 00:20:04,200 --> 00:20:07,140 Takže, späť do istej počítača veda, ak môžem. 496 00:20:07,140 --> 00:20:10,600 >> Takže, pripomenúť, že naposledy sme začali pri pohľade nielen na hlavné, čo 497 00:20:10,600 --> 00:20:13,930 bol predvolený funkcie sa pri zelenou vlajkou klikli ekvivalent, 498 00:20:13,930 --> 00:20:16,999 ale sme tiež začali krátko písanie niektoré z našich vlastných funkcií. 499 00:20:16,999 --> 00:20:20,040 A zatiaľ žiaden z týchto funkcií boli osobitne veľký alebo výstižné. 500 00:20:20,040 --> 00:20:24,570 Dostanete do tých väčších funkcia pravdepodobne P set 2, P set 3, 501 00:20:24,570 --> 00:20:26,410 Rozhodne P set 4 a ďalej. 502 00:20:26,410 --> 00:20:29,340 Práve teraz väčšina vašich programov, ak nie všetky z nich, určite pre P 503 00:20:29,340 --> 00:20:31,550 set 1 môže byť vykonané úplne v hlavnej. 504 00:20:31,550 --> 00:20:33,810 Ak je váš program je jediný päť riadkov, 10 riadkov, 505 00:20:33,810 --> 00:20:37,070 dokonca 20 riadkov dlhá, dokonale rozumné písať to 506 00:20:37,070 --> 00:20:40,930 to všetko v hlavnej, a nie na viac než komplikovať váš kód, ale to, čo robíme dnes 507 00:20:40,930 --> 00:20:44,360 a ďalej sa snaží tiež zaviesť nejaké dobré techniky dizajnu 508 00:20:44,360 --> 00:20:48,660 tak, že keď váš kód dostane viac komplikované a ako problémy 509 00:20:48,660 --> 00:20:51,690 Ak chcete vyriešiť dostať ťažšie a zaujímavejšie máte, tak nejako, 510 00:20:51,690 --> 00:20:55,850 nástroje v paneli nástrojov, s ktorými navrhnúť dobré riešenie pre tých. 511 00:20:55,850 --> 00:21:01,210 >> Takže, poďme sa rýchlo pozrieť sa na tento program z môjho minulého týždňa, ktorý 512 00:21:01,210 --> 00:21:06,550 bola funkcia nulový dot C. A Všimnite si, že úplne jednoducho, 513 00:21:06,550 --> 00:21:10,310 vyzerá to, že to s dvoma funkcie, hlavný a názov tlače. 514 00:21:10,310 --> 00:21:13,160 A spomínal alebo možno reverzné inžinierstvo dnes, 515 00:21:13,160 --> 00:21:16,880 čo bolo motiváciou pre zavedenie funkcie v súlade s názvom 28, 516 00:21:16,880 --> 00:21:18,180 názov tlačového? 517 00:21:18,180 --> 00:21:21,745 Alebo čo sa tento príklad v podmienky zásady alebo stánok s jedlom, 518 00:21:21,745 --> 00:21:22,605 ak by ste. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Niektoré hundre. 521 00:21:27,300 --> 00:21:28,830 Čo? 522 00:21:28,830 --> 00:21:32,210 >> Jo, tak Funkčné rozkladu je druh efektný spôsob, ako hovoriť, 523 00:21:32,210 --> 00:21:34,690 rozložiť svoj program do jeho súčasťou 524 00:21:34,690 --> 00:21:37,530 a potom použiť tie časti zostaviť celok. 525 00:21:37,530 --> 00:21:39,620 Tak, to taky je len tak z sústo už, 526 00:21:39,620 --> 00:21:42,050 ale je možná aj lepší príklad niečoho 527 00:21:42,050 --> 00:21:43,081 Práve volal abstrakcie. 528 00:21:43,081 --> 00:21:43,580 Je to tak? 529 00:21:43,580 --> 00:21:46,950 Abstrakcie bude jeden z opakujúcich sa tém v CS50 530 00:21:46,950 --> 00:21:49,085 a tiež počítačové vedy všeobecnejšie, pretože je to 531 00:21:49,085 --> 00:21:53,060 technika, s ktorou môžete vyriešiť Problémy efektívnejšie, pretože vás 532 00:21:53,060 --> 00:21:56,807 môže písať riešenie viac intuitívne a tak, aby váhy 533 00:21:56,807 --> 00:21:58,390 a je pochopiteľné inými ľuďmi. 534 00:21:58,390 --> 00:21:59,860 Čo tým chcem povedať, že? 535 00:21:59,860 --> 00:22:04,340 >> Takže, pravdepodobne to je oveľa čitateľnejší sa pozrieť na program, ako je táto, 536 00:22:04,340 --> 00:22:05,990 extra krátke hoci to je. 537 00:22:05,990 --> 00:22:10,050 Keď vidíte na linke 22, ktorá je tu funkcia nazvaná, názov tlače. 538 00:22:10,050 --> 00:22:12,620 Sám názov hovorí, že to, čo robí. 539 00:22:12,620 --> 00:22:15,780 Táto funkcia zrejme berie Vstup medzi jeho zátvorkách, 540 00:22:15,780 --> 00:22:18,600 a zrejme niečo robí, pravdepodobne vytlačí meno. 541 00:22:18,600 --> 00:22:20,880 A tak, aj keď sme absolútne by mohlo mať 542 00:22:20,880 --> 00:22:25,280 urobil, čo sme robili pred týždňom, ktorý bol Len tento skutočné riadok kódu, 543 00:22:25,280 --> 00:22:28,710 sa zbaviť tohto, a získať zbaviť to všetko dohromady, 544 00:22:28,710 --> 00:22:31,436 sme sa nejako abstrahovať preč pojem tlače meno. 545 00:22:31,436 --> 00:22:33,060 Je mi jedno, či používate tlačové def. 546 00:22:33,060 --> 00:22:35,601 Je mi jedno, či máte S percent a spätné lomítko N. Tieto 547 00:22:35,601 --> 00:22:37,270 sú neuveriteľne tajomné detaily. 548 00:22:37,270 --> 00:22:40,090 Čo mi záleží ako programátor práve tlačí meno. 549 00:22:40,090 --> 00:22:43,414 A tak to, čo lepší spôsob, ako to urobiť, než tým, že volá funkcia, názov tlačového? 550 00:22:43,414 --> 00:22:46,330 A tak, aby bol jeden z motiváciou robiť niečo také. 551 00:22:46,330 --> 00:22:50,370 Sprístupnenie kód čitateľnejší, viac opakovane použiteľné, a tiež vlastné opisný. 552 00:22:50,370 --> 00:22:52,120 A teraz, poďme sa pozrieť na ďalší príklad, 553 00:22:52,120 --> 00:22:56,220 čo bola jedna funkcia, ktoré sme mali tu. 554 00:22:56,220 --> 00:23:00,367 >> Tak, toto je snáď ešte viac presvedčivá, pretože v tomto prípade, 555 00:23:00,367 --> 00:23:01,700 Nechcem len dostať int. 556 00:23:01,700 --> 00:23:03,320 Chcem sa dostať pozitívny int. 557 00:23:03,320 --> 00:23:06,470 A ukázalo sa, aby sa pozitívne int, čo musíte urobiť veľa terénny výskum. 558 00:23:06,470 --> 00:23:06,969 Je to tak? 559 00:23:06,969 --> 00:23:09,600 Nie je to jednoduché jeden riadok zavolajte ako názov tlačového bolo, 560 00:23:09,600 --> 00:23:11,480 čo je síce menej presvedčivé. 561 00:23:11,480 --> 00:23:16,000 >> Ak chcete získať pozitívny int, logically-- dovoľte mi, aby som prejdite späť dole skryť toto. 562 00:23:16,000 --> 00:23:18,887 Čo musíte urobiť? 563 00:23:18,887 --> 00:23:20,720 Rovnako ako všetky nástroje, ktoré majú v okamihu, kedy sú 564 00:23:20,720 --> 00:23:24,440 veci, ako tlačový def od spoločnosti Standard Knižnica a tiež z CS50 knižnice 565 00:23:24,440 --> 00:23:26,990 máme Get Int, a dostať Float, Get Long Long, get String, 566 00:23:26,990 --> 00:23:29,260 ale len jeden, German, práve teraz, je dostať Int. 567 00:23:29,260 --> 00:23:32,970 Takže, ak je jediný nástroj, ktorý má v krabici náradie, je dostať Int, 568 00:23:32,970 --> 00:23:35,505 ako sme sa ísť o vykonávaní to sa dostať pozitívny int? 569 00:23:35,505 --> 00:23:35,929 >> Divákov: Vytvorte protokol a skontrolovať na tom, či je vstup, ktorý dali 570 00:23:35,929 --> 00:23:36,762 bolo pozitívne, alebo nie. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> Reproduktor 1: Perfect. 573 00:23:40,640 --> 00:23:41,200 Presne tak. 574 00:23:41,200 --> 00:23:43,950 Ďalším nástrojom máme v našej Panel nástrojov z jedného alebo dvoch týždňov pred 575 00:23:43,950 --> 00:23:45,419 je len je slučka konštrukt. 576 00:23:45,419 --> 00:23:48,210 A tak, jo, ak budeme používať chvíľu slučka, alebo robiť, kým slučka, alebo predné 577 00:23:48,210 --> 00:23:50,850 slučka by sme pravdepodobne mohli dostať preč s niektorým z v určitej forme. 578 00:23:50,850 --> 00:23:55,140 Môžeme realizovať predstavu get Pozitívne int len ​​pomocou Get Int, 579 00:23:55,140 --> 00:23:57,830 a potom už len držať volať to Znovu a držať otravovať užívateľa 580 00:23:57,830 --> 00:24:00,320 kým nie on alebo ona vlastne dáva nám, čo chceme. 581 00:24:00,320 --> 00:24:03,260 >> A tak teraz, to abstrakcie procesu 582 00:24:03,260 --> 00:24:05,680 ako sa dostať pozitívny int do funkcie s názvom 583 00:24:05,680 --> 00:24:08,930 Získať Pozitívne Int je trochu viac presvedčivé, pretože sa na to pozrieť. 584 00:24:08,930 --> 00:24:10,990 Sú ako 10 Plus riadkov kódu, ktorý 585 00:24:10,990 --> 00:24:15,090 sú zapojení do získavania pozitívny int, a je mi to naozaj jedno, ako to urobiť. 586 00:24:15,090 --> 00:24:17,850 Všetko, čo záleží, je, že vás Môžete to urobiť, a tak som 587 00:24:17,850 --> 00:24:21,660 skryté všetky tieto údaje za Funkcie s názvom Get Pozitívne int to, 588 00:24:21,660 --> 00:24:23,430 vskutku, má tento robiť, zatiaľ čo slučky. 589 00:24:23,430 --> 00:24:27,660 >> A pozri minulý týždeň pre syntax tam, ale to len deklaruje N, 590 00:24:27,660 --> 00:24:29,800 a to tlačí inštrukcie pre používateľa. 591 00:24:29,800 --> 00:24:33,330 Vyzýva Získajte Int a potom skontroluje opäť tento stav, a znovu, 592 00:24:33,330 --> 00:24:35,230 a znova, až kým sa používateľ spolupracuje. 593 00:24:35,230 --> 00:24:38,000 >> Takže teraz, niekoľko rýchlej kontroly. 594 00:24:38,000 --> 00:24:40,370 Pre tých, ktorí možno oboznámení s niektorými programovania 595 00:24:40,370 --> 00:24:46,410 prečo N deklarovaný, prečo som sa vytvoriť N mimo robiť, zatiaľ čo slučky? 596 00:24:46,410 --> 00:24:50,370 Prečo je to na linke 29 a nie o, ako je 33, napríklad. 597 00:24:50,370 --> 00:24:53,529 >> Divákov: Pretože keď vás deklarovať to vonku, to láskavý 598 00:24:53,529 --> 00:24:56,688 viac, tým väčšia scope-- 599 00:24:56,688 --> 00:24:58,146 >> Reproduktor 1: Dobre. 600 00:24:58,146 --> 00:24:59,604 >> Divákov: --and ak deklarovať to vnútri slučky, [nepočuteľných] 601 00:24:59,604 --> 00:25:00,979 pretože sa nevie o tom. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 Reproduktor 1: Presne tak. 604 00:25:03,610 --> 00:25:06,330 Keď sa mi podarí simplify-- to je otázka rozsahu pôsobnosti. 605 00:25:06,330 --> 00:25:11,530 A rozsah odkazuje na kontextu v čo je premenná existuje, alebo je použiteľný. 606 00:25:11,530 --> 00:25:15,050 A pekné pravidlom je, že obvykle pri deklarovať alebo vytvorenie 607 00:25:15,050 --> 00:25:21,642 premenné môžete ho použiť iba vo vnútri z najbližších všeobjímajúca zložené zátvorky. 608 00:25:21,642 --> 00:25:22,600 Takže čo to znamená? 609 00:25:22,600 --> 00:25:26,551 Ak by som, namiesto toho, vrátiť späť to a ísť s niečo, čo sa cíti trochu jednoduchšie. 610 00:25:26,551 --> 00:25:27,050 Je to tak? 611 00:25:27,050 --> 00:25:29,360 >> Linka 32 len vyzerá čistejšie pre mňa teraz. 612 00:25:29,360 --> 00:25:31,500 Robím oboje na raz a potom priradením 613 00:25:31,500 --> 00:25:33,070 pravá ruka na ľavej ruke. 614 00:25:33,070 --> 00:25:35,180 Problém teraz založený na že vymedzenie rozsahu pôsobnosti 615 00:25:35,180 --> 00:25:41,130 sa, že N môže byť použitý v riadkoch 31 a 32 vnútri tejto slučky, 616 00:25:41,130 --> 00:25:45,100 ale tam, kde touto definíciou to nemôže byť použitý? 617 00:25:45,100 --> 00:25:45,660 V súlade čo? 618 00:25:45,660 --> 00:25:46,160 Jo. 619 00:25:46,160 --> 00:25:47,490 >> Divákov: 35. 620 00:25:47,490 --> 00:25:49,180 >> Reproduktor 1: 35. 621 00:25:49,180 --> 00:25:50,480 Rozhodne nie 35. 622 00:25:50,480 --> 00:25:52,349 A taky kde inde? 623 00:25:52,349 --> 00:25:52,890 Divákov: 34. 624 00:25:52,890 --> 00:25:55,040 Reproduktor 1: I 34 problematické, pretože je to 625 00:25:55,040 --> 00:25:56,450 mimo zložených zátvoriek. 626 00:25:56,450 --> 00:25:58,200 A tak v skutočnosti, uvidíme, čo sa stane. 627 00:25:58,200 --> 00:25:58,700 Je to tak? 628 00:25:58,700 --> 00:26:00,722 To sa môže zdať trochu intuitívne, alebo možno nie, 629 00:26:00,722 --> 00:26:02,680 ale poďme sa pozrieť, čo kompilátor musí povedať, kedy 630 00:26:02,680 --> 00:26:04,730 ideme do dnešnej zdrojového adresára. 631 00:26:04,730 --> 00:26:08,950 Vykonajte funkciu jeden. 632 00:26:08,950 --> 00:26:11,231 Ach, môj bože. 633 00:26:11,231 --> 00:26:12,980 No, nakoniec som skončil ktorá, mimochodom. 634 00:26:12,980 --> 00:26:14,030 Dobre. 635 00:26:14,030 --> 00:26:15,510 A čo je problém tu? 636 00:26:15,510 --> 00:26:17,430 Veľmi Arcane na pohľad. 637 00:26:17,430 --> 00:26:19,570 Ale tu je to, čo som typed-- aby funkcia jedného. 638 00:26:19,570 --> 00:26:21,640 Tu je to, čo robiť vyvolané, čo je vlastne 639 00:26:21,640 --> 00:26:23,705 pomocou kompilátora rinčanie s niektorými z týchto príznakov 640 00:26:23,705 --> 00:26:25,080 že uvidíme zase onedlho. 641 00:26:25,080 --> 00:26:26,829 A opäť, vždy sa na prvej chybe, 642 00:26:26,829 --> 00:26:30,540 pretože by to mohlo mať len reťazenie bezvýznamný vplyv na iných tratiach. 643 00:26:30,540 --> 00:26:34,410 >> Takže to, čo to znamená, je to, že Problém je vo funkcii 1.c. 644 00:26:34,410 --> 00:26:36,890 To je na potrubie 32. 645 00:26:36,890 --> 00:26:39,712 A to je v stĺpci, alebo znak, 13. 646 00:26:39,712 --> 00:26:42,670 Takže keď váš textový editor, ktorý môže pomôžu určiť, kde je problém. 647 00:26:42,670 --> 00:26:47,079 Takže keď som sa posunúť nahor, čo je linka 32? 648 00:26:47,079 --> 00:26:49,120 To je naozaj tahle že už je zvýraznený 649 00:26:49,120 --> 00:26:50,607 právo here-- nepoužitý premenná n. 650 00:26:50,607 --> 00:26:51,440 Ale nie je to nevyužité. 651 00:26:51,440 --> 00:26:52,320 Ja používam ho. 652 00:26:52,320 --> 00:26:56,110 Ale kompilátora zmätený, pretože že existuje iba vo vnútri tohto rozsahu. 653 00:26:56,110 --> 00:26:57,727 A tak nemôžem použiť tu. 654 00:26:57,727 --> 00:26:58,560 Nemôžem použiť tu. 655 00:26:58,560 --> 00:27:01,320 A kompilátor, a preto, ani jedno, že sa snažím. 656 00:27:01,320 --> 00:27:03,940 Zdá sa, že nevyužité v jeho skutočný rozsah. 657 00:27:03,940 --> 00:27:08,854 >> Takže môžeme rozšíriť rozsah tým, že robí presne to, čo sme začali with-- int n. 658 00:27:08,854 --> 00:27:11,020 A aj keď to nie je vyzerať ako elegantný, snáď, 659 00:27:11,020 --> 00:27:15,110 a berieme ďalší riadok tu, teraz je to čo do rozsahu všade. 660 00:27:15,110 --> 00:27:15,970 Tak poďme skúsiť znova. 661 00:27:15,970 --> 00:27:19,040 Tak, aby funkcia jedného. 662 00:27:19,040 --> 00:27:19,610 Nice. 663 00:27:19,610 --> 00:27:23,370 A teraz, keď ja, keď som bežať funkcie človek, poďme dať to negatívne 10, 664 00:27:23,370 --> 00:27:27,170 negatívny 1, 0, 1, a to naozaj funguje. 665 00:27:27,170 --> 00:27:28,610 >> Takže tam je ďalšie riešenia, sem. 666 00:27:28,610 --> 00:27:29,280 Vieš čo? 667 00:27:29,280 --> 00:27:31,230 Čo ak naozaj som zápasil s tým? 668 00:27:31,230 --> 00:27:33,140 Neviem, kde je n to má ísť. 669 00:27:33,140 --> 00:27:33,723 Vieš čo? 670 00:27:33,723 --> 00:27:39,220 Ja som jednoducho ísť, aby to všetko cesta na vrchole môjho súboru tu. 671 00:27:39,220 --> 00:27:42,835 Čo by to to, čo myslíte? 672 00:27:42,835 --> 00:27:43,335 Jo? 673 00:27:43,335 --> 00:27:44,251 >> Divákov: [Nepočuteľné]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 Reproduktor 1: Jo. 676 00:27:48,630 --> 00:27:50,560 Takže som robil to globálny, aby som tak povedal. 677 00:27:50,560 --> 00:27:54,430 Ak máte premennú, ktorá je vonku všetky svoje funkcie, ktoré je povolené, 678 00:27:54,430 --> 00:27:58,780 a kód by mal zostaviť a n budú teraz prístupné nielen v get 679 00:27:58,780 --> 00:28:02,490 kladný int, ale aj v ktorom main-- je trochu znepokojujúce, pretože tam je 680 00:28:02,490 --> 00:28:04,864 už n v hlavnej, tak viac o že za púhy moment-- 681 00:28:04,864 --> 00:28:06,530 ale to by bolo považované za zlé konštrukciu. 682 00:28:06,530 --> 00:28:06,910 Dobre. 683 00:28:06,910 --> 00:28:08,570 Ak máte sa uchýliť k niečo ako, oh, ja 684 00:28:08,570 --> 00:28:10,125 len dať to tu, pretože Zdá sa, že kód kompilovať 685 00:28:10,125 --> 00:28:12,180 vo všeobecnosti nie je najlepší praxou. 686 00:28:12,180 --> 00:28:14,590 Skôr chcete zvoliť najužšia možný rozsah 687 00:28:14,590 --> 00:28:18,720 pre premenné, čo by znamenalo, deje s našou počiatočného návrhu, ktorý 688 00:28:18,720 --> 00:28:19,920 je tu. 689 00:28:19,920 --> 00:28:24,400 >> Teraz ako stranou, keď ste máte identicky pomenované variabilný tu, 690 00:28:24,400 --> 00:28:27,750 cesta c by zvládnuť tohle-- aj keď sa to nestane príliš often-- 691 00:28:27,750 --> 00:28:30,150 je to, že je to stále úplne v poriadku tu. 692 00:28:30,150 --> 00:28:35,000 Avšak táto definícia n v súlade 22 bude tieň globálneho jeden. 693 00:28:35,000 --> 00:28:38,190 Tak toto bude fungovať v rámci hlavné, a celosvetový 694 00:28:38,190 --> 00:28:41,670 bude skutočne platiť, keď ste v získať pozitívne int Ale o tom viac 695 00:28:41,670 --> 00:28:43,890 inokedy, ale len pre tých, zvedavý. 696 00:28:43,890 --> 00:28:45,970 >> Takže v skratke, sme opraviť tu. 697 00:28:45,970 --> 00:28:49,220 Teraz poďme srandista oddelene dva iné kusy Než sa pozrieme na poslednom riadku kódu 698 00:28:49,220 --> 00:28:50,170 v tomto programe. 699 00:28:50,170 --> 00:28:52,170 Získať pozitívne int. 700 00:28:52,170 --> 00:28:54,450 Na ľavej strane jeho slovo je slovo int. 701 00:28:54,450 --> 00:28:56,860 Čo to má znamenať si o tom myslíš? 702 00:28:56,860 --> 00:28:58,900 Doteraz sme videli hlavne neplatné. 703 00:28:58,900 --> 00:28:59,400 Jo? 704 00:28:59,400 --> 00:29:01,810 >> Divákov: Je to typ premenná, ktorá sa pýtate. 705 00:29:01,810 --> 00:29:04,550 >> Reproduktor 1: Jo, je to ten typ, dovoľte mi, aby som Nepovedal variabilné, ale typ hodnoty 706 00:29:04,550 --> 00:29:05,990 že sa pýtam späť. 707 00:29:05,990 --> 00:29:08,070 A naozaj, to je tu intuitívne, snáď. 708 00:29:08,070 --> 00:29:08,200 Je to tak? 709 00:29:08,200 --> 00:29:10,250 Ak chcete získať kladný int, čo je to vás 710 00:29:10,250 --> 00:29:12,920 chcú function-- Rovnako ako naše dobrovoľníci z minulého týždňa 711 00:29:12,920 --> 00:29:15,720 Tá vám odovzdá späť kus papiera s int na to? 712 00:29:15,720 --> 00:29:19,190 A tak sme sa spresniť, že takzvaný návrat typ tejto funkcie 713 00:29:19,190 --> 00:29:20,450 je získať pozitívne int. 714 00:29:20,450 --> 00:29:22,990 Ak by sme nechceli, aby to vrátiť niečo, hovoríte neplatné. 715 00:29:22,990 --> 00:29:25,270 Ak chcete, aby sa vrátiť reťazec, hovoríte reťazec. 716 00:29:25,270 --> 00:29:27,310 Ak chcete, aby sa vrátiť float, hovoríte plávať. 717 00:29:27,310 --> 00:29:30,440 Ale jediný, kto to platí tu logicky, pretože som pomocou get int, 718 00:29:30,440 --> 00:29:34,130 aj keď som ho obmedzovali na pozitívne hodnoty, je vrátiť int. 719 00:29:34,130 --> 00:29:38,380 >> Tak naopak, čo to znamená že je tu prázdno v zátvorke? 720 00:29:38,380 --> 00:29:40,130 Čo zátvorky všeobecne definovať? 721 00:29:40,130 --> 00:29:40,588 Jo? 722 00:29:40,588 --> 00:29:42,880 >> Divákov: To znamená, že funkcia je nie je vlastne márne. 723 00:29:42,880 --> 00:29:44,650 >> Reproduktor 1: To znamená, že funkcia je nie je vlastne dostať to, čo? 724 00:29:44,650 --> 00:29:45,430 >> Divákov: Vstup. 725 00:29:45,430 --> 00:29:46,763 >> Reproduktor 1: Vstup, vôbec. 726 00:29:46,763 --> 00:29:49,870 Takže naozaj, pokiaľ zátvorka Tu zadáte neplatné, 727 00:29:49,870 --> 00:29:51,650 to len znamená, že nechcem žiadny vstup. 728 00:29:51,650 --> 00:29:53,269 Budem jednať s problémom sám. 729 00:29:53,269 --> 00:29:55,810 A naozaj, vy nemusíte povedz si pozitívny int nič. 730 00:29:55,810 --> 00:29:59,630 Stačí povedať, dostať pozitívne int, a že funkcie zhasne a robiť svoju vec. 731 00:29:59,630 --> 00:30:02,970 >> Ale tam bol malý trik som Hrali tu celú túto dobu 732 00:30:02,970 --> 00:30:04,970 aby sa ubezpečil, tento kód je zostavený. 733 00:30:04,970 --> 00:30:09,620 Všimnite si, že int-- dostať pozitívne int void-- je vedením 27. 734 00:30:09,620 --> 00:30:14,530 Ale z nejakého podivného dôvodu zdanlivo to je tiež tu na linke 16. 735 00:30:14,530 --> 00:30:18,530 A len pre istotu budem opakovať to tak je to úplne identické. 736 00:30:18,530 --> 00:30:21,640 A ja som povedal prototyp s trochu jednoriadkový komentár. 737 00:30:21,640 --> 00:30:28,850 Čo sa stane, keď odstránim, že, a Teraz spustite, aby funkcia 1, zadajte. 738 00:30:28,850 --> 00:30:29,350 Jejda. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Počkaj minútu. 741 00:30:33,110 --> 00:30:34,764 Kde je moja karta? 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 Standby. 745 00:30:39,620 --> 00:30:41,570 Vykonajte funkcie 1. 746 00:30:41,570 --> 00:30:42,150 Tam sme ísť. 747 00:30:42,150 --> 00:30:42,310 OK. 748 00:30:42,310 --> 00:30:43,400 Vari chytá správne. 749 00:30:43,400 --> 00:30:45,220 Takže si myslím, že je to trochu bug tu, kde si nie som 750 00:30:45,220 --> 00:30:46,636 videnie na názov záložky v tejto chvíli. 751 00:30:46,636 --> 00:30:47,940 Takže to, čo sa tu deje? 752 00:30:47,940 --> 00:30:52,210 Implicitné deklarácie funkcie získať pozitívne int je C99 neplatný. 753 00:30:52,210 --> 00:30:53,940 Takže znovu mätúce. 754 00:30:53,940 --> 00:30:55,200 Takže to, čo je to svedčí o? 755 00:30:55,200 --> 00:30:57,287 No, to ukáže, že C je celkom hlúpe. 756 00:30:57,287 --> 00:30:59,912 No, je to programovanie jazyk, alebo skôr kompilátor je. 757 00:30:59,912 --> 00:31:02,940 To vie len to, čo máte učil ju, a je to len 758 00:31:02,940 --> 00:31:05,640 bude niečo vedieť pokiaľ ju učil predtým. 759 00:31:05,640 --> 00:31:07,960 Inými slovami, v hlavné v tejto chvíli, ja som 760 00:31:07,960 --> 00:31:10,900 pokusu o volanie funkcie volal získať pozitívne int. 761 00:31:10,900 --> 00:31:14,120 Ale kompilátor nebude si uvedomiť, že dostať pozitívne int 762 00:31:14,120 --> 00:31:16,500 existuje do potrubia 26. 763 00:31:16,500 --> 00:31:21,360 A tak to, čo robí, je len kompilátor Chyby, akonáhle sa dostane do riadku 17, 764 00:31:21,360 --> 00:31:23,700 hovorí implicitné vyhlásenie o získanie pozitívneho int, ktorý 765 00:31:23,700 --> 00:31:27,740 je len fantázia spôsob, ako hovoriť, nemám viete, čo dostanete pozitívnu int je doteraz. 766 00:31:27,740 --> 00:31:31,240 >> Iné jazyky, ako je Java a Python a Ruby môže vyzerať dopredu. 767 00:31:31,240 --> 00:31:32,240 C nie je. 768 00:31:32,240 --> 00:31:35,110 A tak, ako sme opraviť toto je jeden z dvoch spôsobov. 769 00:31:35,110 --> 00:31:40,160 Buď jeden, v prípade, že problém je, že sa Pozitívne int nebol videný predtým, 770 00:31:40,160 --> 00:31:42,150 No, dovoľte mi, aby som ho len presunúť až na vrchol. 771 00:31:42,150 --> 00:31:43,650 To by tento problém vyriešiť. 772 00:31:43,650 --> 00:31:46,790 Ale všeobecne, to je považovaná za lepšiu techniku 773 00:31:46,790 --> 00:31:50,220 aby váš hlavný funkcie u veľmi top tak, že človek čítanie vášho kódu 774 00:31:50,220 --> 00:31:52,710 vie, čo program robí, preto, že hlavné nie je pochovaný všetky 775 00:31:52,710 --> 00:31:53,960 ako v spodnej časti, alebo v stredu. 776 00:31:53,960 --> 00:31:55,130 Je to na samom vrchole. 777 00:31:55,130 --> 00:31:56,410 Tak, že necíti ideálne. 778 00:31:56,410 --> 00:31:58,326 A môžete skutočne dostať do situácie, kde 779 00:31:58,326 --> 00:32:00,820 ak volanie funkcií ďalšie, ktoré si vyžaduje ďalšie, 780 00:32:00,820 --> 00:32:04,630 sa môžete dostať do problému, kedy ani jeden môžu ísť nad druhým, logicky. 781 00:32:04,630 --> 00:32:05,920 Je to jednoducho nie je možné. 782 00:32:05,920 --> 00:32:09,290 >> A tak sa spôsob práce okolo je to len vziať 783 00:32:09,290 --> 00:32:13,200 Podpis funkciu, takže sa speak-- prvý riadok, kde je declared-- 784 00:32:13,200 --> 00:32:16,850 a len kopírovať, vložiť ho u top, ale nie s kučeravými braces-- 785 00:32:16,850 --> 00:32:17,980 Len sa bodkočiarkou. 786 00:32:17,980 --> 00:32:20,840 Je to ako malý náznak z toho, čo má prísť. 787 00:32:20,840 --> 00:32:26,630 A v skutočnosti, všetky tieto čase, keď Videl veci, ako štandardné IO.H 788 00:32:26,630 --> 00:32:33,040 a cs50.h, podobne, v tých dot h súbory sú tam ďalšie prototypy. 789 00:32:33,040 --> 00:32:35,250 A my budeme vidieť, že onedlho. 790 00:32:35,250 --> 00:32:39,340 >> Takže v skratke, keď máte program v súbore s viacerými funkciami 791 00:32:39,340 --> 00:32:42,300 Okrem hlavnej, skoro vždy chcú, aby ich deklarovať 792 00:32:42,300 --> 00:32:45,360 len tým, že spôsob ich najprv linka, nasleduje bodkočiarka, 793 00:32:45,360 --> 00:32:48,410 na samom vrchole časti súboru. 794 00:32:48,410 --> 00:32:50,460 To bolo veľa naraz. 795 00:32:50,460 --> 00:32:53,130 Nejaké otázky? 796 00:32:53,130 --> 00:32:53,920 Nejaké otázky? 797 00:32:53,920 --> 00:32:54,530 Dobre. 798 00:32:54,530 --> 00:32:59,760 >> Takže poďme ďalej potom na niečo ako kašeľ. 799 00:32:59,760 --> 00:33:00,260 Aha. 800 00:33:00,260 --> 00:33:00,570 Ako priliehajúce. 801 00:33:00,570 --> 00:33:01,220 Dobre. 802 00:33:01,220 --> 00:33:02,260 Kašeľ. 803 00:33:02,260 --> 00:33:05,080 Takže tu je c realizácie programu 804 00:33:05,080 --> 00:33:07,560 sme sa na druhý deň v Scratch, že len veľmi jednoducho len 805 00:33:07,560 --> 00:33:08,691 hovorí kašeľ, kašeľ, kašeľ. 806 00:33:08,691 --> 00:33:09,190 Dobre. 807 00:33:09,190 --> 00:33:11,136 A niekto povedal pár dni, že je tu 808 00:33:11,136 --> 00:33:12,760 spôsob čistenia tento kód do už. 809 00:33:12,760 --> 00:33:12,880 Dobre? 810 00:33:12,880 --> 00:33:15,440 Akonáhle ste kopírovanie a vkladanie pravdepodobne zlý dizajn. 811 00:33:15,440 --> 00:33:18,725 Najmenej raz sa dostaneme na štyri alebo päť alebo 20 kašľa, to je zlá prax. 812 00:33:18,725 --> 00:33:19,850 Práve sme sa držať kópiu, vkladanie. 813 00:33:19,850 --> 00:33:22,213 Čo je samozrejmé riešenie na čistenie tohto programu up? 814 00:33:22,213 --> 00:33:23,120 >> Divákov: Loop. 815 00:33:23,120 --> 00:33:23,350 >> Reproduktor 1: Jo. 816 00:33:23,350 --> 00:33:24,070 Takže pomocou opakovania. 817 00:33:24,070 --> 00:33:27,697 A môžeme použiť pre-slučky, chvíľu slučka, ľubovoľný počet prístupov. 818 00:33:27,697 --> 00:33:29,780 A naozaj, to je to, čo robíme v jednom verzii tu. 819 00:33:29,780 --> 00:33:32,250 Ja som namiesto toho prepísať ju vo verzii jedného z cough.c 820 00:33:32,250 --> 00:33:35,170 že je len kašeľ v rámci pre-slučky. 821 00:33:35,170 --> 00:33:38,240 Dobre, ale je tu príležitosť teraz druhu štartu 822 00:33:38,240 --> 00:33:41,630 navrhovať to trochu viac ako ponaučenie sme učili pred chvíľou, 823 00:33:41,630 --> 00:33:46,190 čo je tohle-- predpokladám, že som chcel na vytvorenie funkcie nazýva kašeľ, 824 00:33:46,190 --> 00:33:49,730 uvažujme len na chvíľu čo to bude vyzerať. 825 00:33:49,730 --> 00:33:51,900 Takže ak chcem niečo ku kašľu, ja len potrebujem 826 00:33:51,900 --> 00:33:53,800 použiť tlačové f vnútri funkcie. 827 00:33:53,800 --> 00:33:55,030 A skutočne som. 828 00:33:55,030 --> 00:33:56,990 A v skutočnosti, to všetko čas, kedykoľvek budete 829 00:33:56,990 --> 00:33:59,000 tlač niečo obrazovky, programátor 830 00:33:59,000 --> 00:34:00,610 by volal, že vedľajší efekt. 831 00:34:00,610 --> 00:34:02,990 To nie som ja podával späť niekto hodnota. 832 00:34:02,990 --> 00:34:06,170 To som ja, pričom niektoré akcie to by mohlo byť vizuálne zrejmé. 833 00:34:06,170 --> 00:34:10,672 Ale táto funkcia kašeľ, to vrátiť čokoľvek založený na jeho prvom riadku? 834 00:34:10,672 --> 00:34:12,880 Nie, pretože jeho návratový typ je neplatné, čo znamená len 835 00:34:12,880 --> 00:34:14,250 to nie je mi podával nič späť. 836 00:34:14,250 --> 00:34:16,791 To by mohlo byť niečo robiť vizuálne, ale to mi podával 837 00:34:16,791 --> 00:34:18,639 späť kus papiera, ako minulý týždeň. 838 00:34:18,639 --> 00:34:21,310 >> Má to potrebovať žiadny vstup? 839 00:34:21,310 --> 00:34:21,810 Nie. 840 00:34:21,810 --> 00:34:23,134 A tak to je neplatný aj tu. 841 00:34:23,134 --> 00:34:25,600 Takže aj toto je druh over-engineering tento problém. 842 00:34:25,600 --> 00:34:26,099 Je to tak? 843 00:34:26,099 --> 00:34:28,820 Som urobil program viac komplexné, viac riadkov kódu, 844 00:34:28,820 --> 00:34:31,889 Nemám robil to niektorý viac funkčné, ale toto 845 00:34:31,889 --> 00:34:34,210 by bola odrazovým mostíkom, Možno, pre širšie 846 00:34:34,210 --> 00:34:36,830 kontext s zložitejšie kódom. 847 00:34:36,830 --> 00:34:38,150 Ale čo to? 848 00:34:38,150 --> 00:34:42,050 Čo som done-- práve pozrel na to bez pohľadu na komentár 849 00:34:42,050 --> 00:34:46,076 na samom vrchole file--, čo majú Zásadne som tu urobil s mojím kašeľ 850 00:34:46,076 --> 00:34:47,409 implementácia, ktorá je niečo iné? 851 00:34:47,409 --> 00:34:48,327 Jo, v chrbte? 852 00:34:48,327 --> 00:34:51,384 >> Divákov: Nech je to, takže môžete majú charakter vypnúť. 853 00:34:51,384 --> 00:34:52,050 Reproduktor 1: Jo. 854 00:34:52,050 --> 00:34:53,270 Takže to cíti celkom pekné. 855 00:34:53,270 --> 00:34:53,389 Je to tak? 856 00:34:53,389 --> 00:34:56,600 Je to ako pridanie funkcie do svojho Program alebo vaše funkcie, v tomto prípade. 857 00:34:56,600 --> 00:34:57,830 Je to stále vráti nič. 858 00:34:57,830 --> 00:35:00,538 To by mohlo mať vizuálne vedľajšie účinky, pretože je to volá tlačový f. 859 00:35:00,538 --> 00:35:02,800 Ale teraz som parametrized funkcia, ktorá 860 00:35:02,800 --> 00:35:06,470 znamená, že ste zadali vziať vstup typu int a nazývať to n, 861 00:35:06,470 --> 00:35:08,510 ale to by som mohol hovoriť, čo chcem. 862 00:35:08,510 --> 00:35:11,550 V skutočnosti je to môže byť len časy byť dokonca viac explicitné. 863 00:35:11,550 --> 00:35:13,310 A potom som mohol len zmeniť tu. 864 00:35:13,310 --> 00:35:16,450 Ale ide o to, že to je, ako som vytvoriť funkciu, ktorá zoberie vstup. 865 00:35:16,450 --> 00:35:19,530 A ak si spomínate mizerný cez snáď online v jednom 866 00:35:19,530 --> 00:35:23,000 z Walk-prienikov sa Štvrtý a posledný príklad kašeľ, 867 00:35:23,000 --> 00:35:27,150 si všimnete, tu som zovšeobecniť môj kód further-- trochu roztržitý 868 00:35:27,150 --> 00:35:27,690 ďalej. 869 00:35:27,690 --> 00:35:31,390 Rovnako ako kašeľ a kýchnutie, obaja sú asi ako povedať, niečo, alebo robiť 870 00:35:31,390 --> 00:35:32,330 nejaký druh zvuku. 871 00:35:32,330 --> 00:35:34,725 Uložte by zodpovedajúce Scratch blok. 872 00:35:34,725 --> 00:35:37,350 A tak to, čo som robil v tejto verzii, ktorý môžeme práve pohľad na, 873 00:35:37,350 --> 00:35:43,170 je kašeľ je ako hovoriť, [kašeľ], kašeľ, a medzitým, kýchanie je 874 00:35:43,170 --> 00:35:44,570 ako hovoriť, [Achom]. 875 00:35:44,570 --> 00:35:46,900 A tak som zovšeobecniť vykonávanie týchto 876 00:35:46,900 --> 00:35:48,970 Od tejto chvíle sa vykonáva Táto kmeňová funkcie, 877 00:35:48,970 --> 00:35:51,490 hovoriť, čo je zaujímavé pre dnešné účely 878 00:35:51,490 --> 00:35:54,300 len preto, že stále nemá návratový typ. 879 00:35:54,300 --> 00:35:56,398 Ale koľko vstupy to má? 880 00:35:56,398 --> 00:35:56,981 Divákov: Two. 881 00:35:56,981 --> 00:35:57,430 Reproduktor 1: Two. 882 00:35:57,430 --> 00:35:59,263 A tak ak chcete trvať dva argumenty, 883 00:35:59,263 --> 00:36:00,710 Len oddeľte ich čiarkou. 884 00:36:00,710 --> 00:36:03,110 A ak chcete, aby potom volanie tejto funkcie, 885 00:36:03,110 --> 00:36:05,800 Všimnite si, že ste práve volajte povedzme, citujem, koniec citátu, 886 00:36:05,800 --> 00:36:09,090 Ako prvý argument, časté n, pre druhý argument. 887 00:36:09,090 --> 00:36:12,130 Takže znovu, len musíme teraz stavebné kamene tak, že môžeme vlastne 888 00:36:12,130 --> 00:36:15,686 realizovať niektoré z našich vlastných funkcií. 889 00:36:15,686 --> 00:36:16,570 Dobre. 890 00:36:16,570 --> 00:36:19,690 Akékoľvek otázky týkajúce sa týchto? 891 00:36:19,690 --> 00:36:22,400 >> Takže teraz poďme zlúpnite vrstvu, ak tak. 892 00:36:22,400 --> 00:36:24,840 A cieľ, nakoniec, je budúci týždeň problém set 893 00:36:24,840 --> 00:36:27,710 bude na cryptogrophy-- umenie kódovanie informácie. 894 00:36:27,710 --> 00:36:30,640 A zvlášť, informácie ťa bude kódovanie alebo dekódovanie 895 00:36:30,640 --> 00:36:31,605 bude textu. 896 00:36:31,605 --> 00:36:33,980 A tak ten druh pozýva Otázkou dnes podobne dobre, 897 00:36:33,980 --> 00:36:38,480 čo sa deje pod kapotou s textom mimo ASCII z týždňa nula, 898 00:36:38,480 --> 00:36:40,730 a ako môžeme vlastne začne manipulovať s ním? 899 00:36:40,730 --> 00:36:43,070 Takže tu je Zamyla meno. 900 00:36:43,070 --> 00:36:47,380 A v texte, ktoré by mohli byť zadané do ako funkcia GET reťazca. 901 00:36:47,380 --> 00:36:52,540 A od tejto chvíle, keď vidíte string ako tohle-- Z-A-M-Y-L-je-- 902 00:36:52,540 --> 00:36:56,550 začať premýšľať o tom, ako by každý z týchto znakov je v krabici jej 903 00:36:56,550 --> 00:36:57,050 vlastné. 904 00:36:57,050 --> 00:36:59,460 A naozaj, za týždeň alebo tak to čas, pričom každá z týchto krabíc 905 00:36:59,460 --> 00:37:04,280 bude reprezentovať veľmi špecificky blok memory-- sústo pamäte. 906 00:37:04,280 --> 00:37:07,050 Takže každý z týchto písmen, nakoniec, bude reprezentovať 8 bitov. 907 00:37:07,050 --> 00:37:10,560 A my budeme skutočne vidieť, čo sa deje Na pod pokrievku v mojom počítači. 908 00:37:10,560 --> 00:37:13,440 >> Ale za to, že postačí stačí sa pozrieť na Zamyla 909 00:37:13,440 --> 00:37:17,520 touto optikou, pričom každý z tieto písmená je v jeho vlastnom poli. 910 00:37:17,520 --> 00:37:22,697 A dosť pekne v C môžeme prístup každej z týchto krabíc priamo. 911 00:37:22,697 --> 00:37:25,530 Takže ak chcete získať prvý List jej mena, super ľahké v C. 912 00:37:25,530 --> 00:37:28,410 Ak chcete získať posledný List, super jednoduché, ako dobre 913 00:37:28,410 --> 00:37:30,240 s kusom novou syntaxou. 914 00:37:30,240 --> 00:37:36,250 >> Takže budem pokračovať do CS50 IDE a otvoriť reťazec nulový bod C. 915 00:37:36,250 --> 00:37:40,270 A v tomto prípade, je tu pár nových vecí deje. 916 00:37:40,270 --> 00:37:44,360 Takže najprv v rade 19, máme videli túto before-- get reťazec. 917 00:37:44,360 --> 00:37:49,840 Takže rovnako ako rýchlu kontrolu sanitačného, keby niekto mohol ponúknuť až slovne 918 00:37:49,840 --> 00:37:52,662 vysvetlenie laik z čo sa deje v rade 19. 919 00:37:52,662 --> 00:37:55,370 Rovnako ako práve to preložiť do Angličtina, že spolubývajúci nie je CS50 920 00:37:55,370 --> 00:37:56,416 by mohol rozumieť. 921 00:37:56,416 --> 00:37:56,916 Jo. 922 00:37:56,916 --> 00:37:59,749 >> Divákov: Mať užívateľského vstupu A reťazec a uložiť ho do variabilný s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 Reproduktor 1: Dobre. 925 00:38:02,600 --> 00:38:05,579 Majú vstup používateľa reťazec a uložiť ich v premennej s. 926 00:38:05,579 --> 00:38:06,120 To je skvelé. 927 00:38:06,120 --> 00:38:08,090 A tak na pravom side, hovoríme get reťazec. 928 00:38:08,090 --> 00:38:10,340 To vracia hodnotu že nedostal pridelené 929 00:38:10,340 --> 00:38:14,230 z pravej strany na ľavú ruku strana do premennej s názvom S, ktorá je 930 00:38:14,230 --> 00:38:15,950 určený na ukladanie reťazec. 931 00:38:15,950 --> 00:38:16,800 Presne tak. 932 00:38:16,800 --> 00:38:20,000 >> Takže teraz potrubím 22, per komentár na riadku 21, 933 00:38:20,000 --> 00:38:22,780 samozrejme vytlačí tento reťazec jeden znak za riadok. 934 00:38:22,780 --> 00:38:23,740 Ale ako? 935 00:38:23,740 --> 00:38:27,040 Takže v prvom rade, sme inicializovať som sa 0. 936 00:38:27,040 --> 00:38:31,061 A potom ako sa dostaneme do koniec Zamyla mená? 937 00:38:31,061 --> 00:38:32,810 No, na konci roka Zamyla meno, mohol by som 938 00:38:32,810 --> 00:38:38,151 ručne zadať v poslednej znak jej meno nejako, alebo počet na to. 939 00:38:38,151 --> 00:38:38,650 Je to tak? 940 00:38:38,650 --> 00:38:43,500 Ak by sme sa vrátiť here-- Z-A-M-L-- Y-L-je--, takže som mohol písať. 941 00:38:43,500 --> 00:38:47,340 Čo je index Posledné písmeno Zamyla je? 942 00:38:47,340 --> 00:38:52,517 Ak je to 0-- hovorí sa ako programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Aj heard-- tak naozaj, posledné písmeno V Zamyla mene je šiesty, 944 00:38:56,570 --> 00:38:58,890 ale ak budeme počítať od 0, že to bude číslo 5. 945 00:38:58,890 --> 00:39:01,320 Takže majte na pamäti, že tu. 946 00:39:01,320 --> 00:39:04,929 >> Ukazuje sa, že je funkcia v C zavolal strlen, a späť v deň 947 00:39:04,929 --> 00:39:06,720 a k tomuto dňu ešte, veľa programátorov 948 00:39:06,720 --> 00:39:09,524 rozhodnete synchronizovať mená pre ich funkcie, ktoré znejú ako slová 949 00:39:09,524 --> 00:39:10,440 že sa snaží povedať. 950 00:39:10,440 --> 00:39:12,590 Takže strlen je dĺžka reťazca. 951 00:39:12,590 --> 00:39:18,168 A tak to, čo by sa dĺžka reťazca S vráti, až Zamyla je vstup? 952 00:39:18,168 --> 00:39:19,569 >> Divákov: Five. 953 00:39:19,569 --> 00:39:22,090 >> Reproduktor 1: Z-A-M-Y-L. Six. 954 00:39:22,090 --> 00:39:22,590 Je to tak? 955 00:39:22,590 --> 00:39:23,940 Aká je dĺžka Zamyla mená? 956 00:39:23,940 --> 00:39:24,440 Je to tak? 957 00:39:24,440 --> 00:39:26,240 A práve v skutočnosti, šesť písmen. 958 00:39:26,240 --> 00:39:26,740 Je to tak? 959 00:39:26,740 --> 00:39:28,940 A tak čo to znamená pre našu slučky? 960 00:39:28,940 --> 00:39:32,130 Chystáme sa ísť od 0 až šesť, ktorý 961 00:39:32,130 --> 00:39:33,650 sa chystá dať nám päť iterácií. 962 00:39:33,650 --> 00:39:34,890 Čo budeme robiť na každej iterácii? 963 00:39:34,890 --> 00:39:36,870 No, percento C, niekto odhadoval, že druhý deň, 964 00:39:36,870 --> 00:39:38,710 znamená zástupným symbolom pre čo? 965 00:39:38,710 --> 00:39:39,335 >> Divákov: Char. 966 00:39:39,335 --> 00:39:40,293 Reproduktor 1: Len char. 967 00:39:40,293 --> 00:39:42,877 Takže jediný character-- nie viac znakov, ako reťazec. 968 00:39:42,877 --> 00:39:45,251 A potom tu je nová rada že máme vytlačiť. 969 00:39:45,251 --> 00:39:46,580 A potom tu je nová syntax. 970 00:39:46,580 --> 00:39:51,130 Ak chcete vytlačiť i-teho znak v reťazci S, aby som tak povedal, 971 00:39:51,130 --> 00:39:54,060 môžete jednoducho povedať, Názov reťazca S, 972 00:39:54,060 --> 00:39:58,230 a potom otvorte hranatú zátvorku, a zavrel zátvorka, s i 973 00:39:58,230 --> 00:39:58,780 stred. 974 00:39:58,780 --> 00:40:01,430 A je to celkom pekné, že to trochu vyzerá ako štvorec 975 00:40:01,430 --> 00:40:06,210 rovnako ako na námestiach, v ktorých je Zamyla znaky existujú na tamtej obrázok. 976 00:40:06,210 --> 00:40:09,970 >> Takže keď som sa vlastne spustiť tento Teraz sa pozrime, čo sa stane. 977 00:40:09,970 --> 00:40:15,190 Urobiť reťazec 0 dot lomítko Reťazec 0, a potom som 978 00:40:15,190 --> 00:40:16,720 chystá zadať Zamyla mene. 979 00:40:16,720 --> 00:40:19,428 Neexistuje žiadna výzva, pretože som nemal používajte tlačové f, ale to je v poriadku. 980 00:40:19,428 --> 00:40:20,660 Ja len viem, čo mám robiť. 981 00:40:20,660 --> 00:40:23,240 A skutočne, to vytlačí Zamyla meno, na každý riadok jednu. 982 00:40:23,240 --> 00:40:25,760 >> Teraz buďme trochu ľahkomyseľný. 983 00:40:25,760 --> 00:40:28,461 Predpokladajme, že som nevedel, o strlen a ja som prišiel, 984 00:40:28,461 --> 00:40:31,460 v poriadku, nikto to bude mať meno väčší než ako 50 znakov. 985 00:40:31,460 --> 00:40:36,360 Poďme ďalej a překompilovat to a spustite ho, a potom zadajte Zamyla 986 00:40:36,360 --> 00:40:37,160 znova. 987 00:40:37,160 --> 00:40:40,850 Logicky, čo je Program bude snažiť k tlači? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A potom, ako 45 neznáme bajtov pamäte. 989 00:40:49,545 --> 00:40:51,670 A skutočne, budeme vracať k tejto myšlienke pamäti. 990 00:40:51,670 --> 00:40:54,180 Ale len logicky, ak Zamyla meno je tak dlho, 991 00:40:54,180 --> 00:40:56,450 podľa obrázku tu, čo hovoríme 992 00:40:56,450 --> 00:40:59,810 je pokračovať v tlači, pokračovať v tlači, majte tlač, pokračovať v tlači, pokračovať v tlači, 993 00:40:59,810 --> 00:41:03,781 celú cestu až do 50. charakter, čo kto vie, čo sa bude diať. 994 00:41:03,781 --> 00:41:05,030 Takže poďme vlastne sa pozrieť. 995 00:41:05,030 --> 00:41:06,720 Poďme zadajte Zamyla. 996 00:41:06,720 --> 00:41:07,250 Zaujímavé. 997 00:41:07,250 --> 00:41:08,190 Mali sme šťastie. 998 00:41:08,190 --> 00:41:09,700 Len celá partia biele miesto. 999 00:41:09,700 --> 00:41:09,930 Aha. 1000 00:41:09,930 --> 00:41:11,120 Je tu ešte jedna funky znak. 1001 00:41:11,120 --> 00:41:14,577 Vyzerá to trochu ako podivný otázka označiť tam, ale tam je Zamyla meno. 1002 00:41:14,577 --> 00:41:15,660 Poďme naozaj nezodpovedné. 1003 00:41:15,660 --> 00:41:20,000 Čo keby sme vytlačiť 500 blokuje do neznáma? 1004 00:41:20,000 --> 00:41:24,380 Poďme ďalej a robiť to ako dobre a potom znova spustiť. 1005 00:41:24,380 --> 00:41:27,980 A poďme na celú obrazovku, pretože musíme vidieť viac priestoru. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Mám opäť šťastie. 1008 00:41:31,830 --> 00:41:33,070 >> Dare dostaneme viac ľahkomyseľný? 1009 00:41:33,070 --> 00:41:36,070 Poďme viac ľahkomyseľný. 1010 00:41:36,070 --> 00:41:39,350 50,000 znaky. 1011 00:41:39,350 --> 00:41:41,390 To je najviac rozhodne nie je dobrý nápad. 1012 00:41:41,390 --> 00:41:41,890 Dobre. 1013 00:41:41,890 --> 00:41:42,990 Vykonajte reťazec 0. 1014 00:41:42,990 --> 00:41:44,720 To bude naša posledná demo. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Uff. 1017 00:41:48,632 --> 00:41:50,010 Uff. 1018 00:41:50,010 --> 00:41:50,680 OK. 1019 00:41:50,680 --> 00:41:54,407 Takže moja pamäť je naozaj prázdna práve teraz, čo je vlastne trochu pohodlnejšie. 1020 00:41:54,407 --> 00:41:55,990 Snažím sa dostať to-- v poriadku. 1021 00:41:55,990 --> 00:41:57,614 A teraz som jednoducho ísť dostať bezohľadný. 1022 00:41:57,614 --> 00:41:58,570 500000. 1023 00:41:58,570 --> 00:42:03,860 Make-- poďme plnú-obrazovku to. 1024 00:42:03,860 --> 00:42:04,990 Enter. 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 Tam sme ísť. 1028 00:42:13,390 --> 00:42:15,610 Nemám potuchy, čo to Je, ale znie to zle. 1029 00:42:15,610 --> 00:42:16,110 Dobre. 1030 00:42:16,110 --> 00:42:20,322 A v skutočnosti, skoro, ak ste medzi Šťastné nemnoho v úradných hodinách 1031 00:42:20,322 --> 00:42:22,780 a v probléme nastaviť jednu, vás môže veľmi dobre stretnúť toto. 1032 00:42:22,780 --> 00:42:25,490 Porucha Segmentácia vlastne robí majú dobre definovaný význam. 1033 00:42:25,490 --> 00:42:28,450 Znamená to nejaký omyl vzťahujúce sa k segmentu pamäti. 1034 00:42:28,450 --> 00:42:30,490 A v Laicky povedané, to znamená, že sme sa dotkli 1035 00:42:30,490 --> 00:42:34,780 memory-- sme použili RAM v mojom počítači že by som nemal prístup. 1036 00:42:34,780 --> 00:42:37,050 A to je to, čo ich oboch výkonné a tiež nebezpečné 1037 00:42:37,050 --> 00:42:39,910 o C, je, že ste skutočne majú neobmedzený prístup 1038 00:42:39,910 --> 00:42:45,910 na celý rozsah pamäte programu alebo bajtov alebo RAM, konkrétnejšie. 1039 00:42:45,910 --> 00:42:49,510 >> Takže aj keď Zamyla mená je dlhá iba šesť znakov, 1040 00:42:49,510 --> 00:42:51,450 Stále môžem ísť kamkoľvek v pamäti chcem. 1041 00:42:51,450 --> 00:42:53,491 A ako stranou, ak ste niekedy čítal nejaký článok 1042 00:42:53,491 --> 00:42:55,610 v priebehu rokov o niektorých servera alebo nejaký program 1043 00:42:55,610 --> 00:42:58,654 prasknuté alebo dostať nabúral to je využili niečo 1044 00:42:58,654 --> 00:43:00,820 volal buffer overflow exploit, že budeme v skutočnosti 1045 00:43:00,820 --> 00:43:04,970 hovoriť o tom, za pár týždňov, to je všeobecne odkazuje na nejako podvádzať 1046 00:43:04,970 --> 00:43:09,090 počítač do poriadku za hranice pamäte 1047 00:43:09,090 --> 00:43:11,410 že by mal mať, a nájsť niečo šťavnaté 1048 00:43:11,410 --> 00:43:13,530 v tom, že memory-- heslo, možno cesta 1049 00:43:13,530 --> 00:43:16,990 obchádzanie nejaké sériové číslo skontrolovať, alebo len všeobecne schopní 1050 00:43:16,990 --> 00:43:20,360 prinútiť počítač vykonávajúci kód, ktorý nebol určený. 1051 00:43:20,360 --> 00:43:22,360 Ale poďme sa vrátiť do reality na chvíľku 1052 00:43:22,360 --> 00:43:24,550 kde tento program bol implementovaný s strlen, 1053 00:43:24,550 --> 00:43:26,110 a zaviesť jednu vec tu. 1054 00:43:26,110 --> 00:43:30,030 Čo je nové u týchto špičkových troch riadkov? 1055 00:43:30,030 --> 00:43:30,910 >> Takže reťazec bodka h. 1056 00:43:30,910 --> 00:43:35,490 Ukázalo sa, že je to knižnica s názvom String Dot H, alebo reťazec Knižnica, 1057 00:43:35,490 --> 00:43:38,490 ktorej súbor hlavičky, aby som tak povedal, je reťazec bodka h, ktorý mi dáva 1058 00:43:38,490 --> 00:43:40,860 Prístup k tejto funkcii strlen. 1059 00:43:40,860 --> 00:43:43,841 Ak pominiem to, že kompilátor je bude kričať na mňa v nejakej forme. 1060 00:43:43,841 --> 00:43:44,590 Ale viete čo? 1061 00:43:44,590 --> 00:43:46,090 A teraz poďme naozaj nuáns. 1062 00:43:46,090 --> 00:43:50,820 V súlade 22, je tu niečo, čo druh z inefficient-- zle navrhnutý, 1063 00:43:50,820 --> 00:43:53,990 arguably-- o tomto riadku kódu. 1064 00:43:53,990 --> 00:43:56,280 Spomeňte si na to, ako pre-slučky sú implementované 1065 00:43:56,280 --> 00:44:00,140 a aké kroky sa to stalo znova a Znovu a again-- inicializácia, 1066 00:44:00,140 --> 00:44:04,110 stav, kód, ktorý dostane vykonaný, potom prírastok 1067 00:44:04,110 --> 00:44:07,880 alebo zmena, potom sa podmienka, potom kód, potom je zmena, potom 1068 00:44:07,880 --> 00:44:11,280 stav, potom je kód, potom je zmena, a tak ďalej. 1069 00:44:11,280 --> 00:44:15,320 Takže to, čo by mohlo byť trochu znepokojujúce alebo tu zle urobil? 1070 00:44:15,320 --> 00:44:16,387 Jo, v modrej farbe. 1071 00:44:16,387 --> 00:44:18,220 Publikum: strlen je volal mnohokrát. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 Reproduktor 1: Jo. 1074 00:44:21,320 --> 00:44:23,700 Tak strlen sa nazýva mnohokrát, ale to, čo je 1075 00:44:23,700 --> 00:44:27,113 dĺžka Zamyla mená na Prvýkrát slučky vykoná? 1076 00:44:27,113 --> 00:44:27,860 >> Divákov: Six. 1077 00:44:27,860 --> 00:44:28,110 >> Reproduktor 1: Six. 1078 00:44:28,110 --> 00:44:30,976 No, a čo je dĺžka jej mena druhýkrát kód spustí? 1079 00:44:30,976 --> 00:44:31,432 >> Divákov: Six. 1080 00:44:31,432 --> 00:44:31,890 >> Reproduktor 1: Dobre. 1081 00:44:31,890 --> 00:44:32,720 Stále je to šesť. 1082 00:44:32,720 --> 00:44:33,220 Je to tak? 1083 00:44:33,220 --> 00:44:35,260 Žiarli meno nemá zmenili, aj keď sa pozerám 1084 00:44:35,260 --> 00:44:38,240 len na časť listov v jej mene. 1085 00:44:38,240 --> 00:44:41,349 A tak skutočnosť, že som skutočne nie som dotazom na túto otázku, čo je 1086 00:44:41,349 --> 00:44:44,640 dĺžka Zamyla, čo je dĺžka z Zamyla, čo je dĺžka Zamyla, 1087 00:44:44,640 --> 00:44:47,990 šesť samostatných časy, alebo seven dokonca, je jednoducho hlúpe, 1088 00:44:47,990 --> 00:44:50,390 pretože to je nemenná, že odpoveď. 1089 00:44:50,390 --> 00:44:53,550 A tak to, čo som mohol vlastne urobiť, je tohle-- v reťazci jednom 1090 00:44:53,550 --> 00:44:55,680 Mám tu okrajovo lepšiu verziu. 1091 00:44:55,680 --> 00:45:00,110 There-- whoops-- reťazec dvoch mám okrajovo lepšia verzia, kde 1092 00:45:00,110 --> 00:45:05,010 Ja tohle-- miesto len inicializácii aj na 0, aj ja s čiarkou 1093 00:45:05,010 --> 00:45:07,990 deklarovať druhú premennú s názvom n- Ja nemusím hovoriť int znova. 1094 00:45:07,990 --> 00:45:09,220 By som nemal, v skutočnosti. 1095 00:45:09,220 --> 00:45:10,380 Ale ja hovorím n. 1096 00:45:10,380 --> 00:45:13,610 A potom som sa inicializovať n strlen n, tak, že teraz 1097 00:45:13,610 --> 00:45:17,110 koľkokrát to strlen vykonaný celkom? 1098 00:45:17,110 --> 00:45:17,610 Len raz. 1099 00:45:17,610 --> 00:45:20,257 A tak to je to, čo máme na mysli skôr o lepšom prevedení. 1100 00:45:20,257 --> 00:45:23,090 V skutočnosti, akonáhle je váš kód je správny, vracať a premýšľaní, 1101 00:45:23,090 --> 00:45:26,820 mám používať tak málo, pamäť alebo ako pár sekúnd 1102 00:45:26,820 --> 00:45:30,409 alebo milisekúnd počítačového času as možné realizovať nejaký problém? 1103 00:45:30,409 --> 00:45:32,200 A budem posúvať up a len spomenúť 1104 00:45:32,200 --> 00:45:34,283 že tam je táto zmienka null v tejto verzii, 1105 00:45:34,283 --> 00:45:36,390 ale vrátime sa, že onedlho. 1106 00:45:36,390 --> 00:45:41,010 Pretože teraz, poďme sa pozrieť na to, kde to bude, aby nás viedol. 1107 00:45:41,010 --> 00:45:44,110 Takže človek, sa ukazuje, že Teraz, keď máme možnosť 1108 00:45:44,110 --> 00:45:46,860 sa pozrieť na jednotlivé znaky, môžeme využiť niečo 1109 00:45:46,860 --> 00:45:50,807 od týždňa 0, ktorá bola veľmi tajomný a nejako nezaujímavé v tej dobe. 1110 00:45:50,807 --> 00:45:53,390 Ale teraz, a to najmä, keď sme dostať sa do kryptografia v týždni, 1111 00:45:53,390 --> 00:45:54,820 že to bude dosť silný. 1112 00:45:54,820 --> 00:45:57,450 Ukazuje sa, že niektoré údajmi types-- ints a pláva 1113 00:45:57,450 --> 00:46:00,300 a znaky a reťazca a iné things-- niektoré z nich 1114 00:46:00,300 --> 00:46:02,800 môže byť veľmi ľahko previesť na inú. 1115 00:46:02,800 --> 00:46:05,840 >> Napríklad, keď sme spolu hovorili o ASCII nejaký čas ago-- tady 1116 00:46:05,840 --> 00:46:07,796 Veľké písmená cez M, bodka, bodka, 1117 00:46:07,796 --> 00:46:12,530 dot-- sme hovorili, že tam je mapovanie medzi týmito písmenami a číslami. 1118 00:46:12,530 --> 00:46:14,970 A v skutočnosti, je pravdou, pre malé písmená, rovnako. 1119 00:46:14,970 --> 00:46:17,470 Malé písmo a je 97, hlavné mesto a je 65. 1120 00:46:17,470 --> 00:46:20,860 A je tu číslo v ASCII, čo je práve táto mapovanie 1121 00:46:20,860 --> 00:46:23,240 systém pre všetky tie ostatné listy. 1122 00:46:23,240 --> 00:46:25,030 Takže čo to znamená? 1123 00:46:25,030 --> 00:46:28,390 No, ja idem ďalej a otvorená Real rýchlo niečo, čo nazýva 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, z ktorých väčšina je komentár. 1125 00:46:31,240 --> 00:46:33,860 A opäť on-line môžete vždy pohľad cez komentáre. 1126 00:46:33,860 --> 00:46:36,180 >> A pozrite sa, čo to bude robiť. 1127 00:46:36,180 --> 00:46:38,410 Tak je to tu hlavnú funkciu. 1128 00:46:38,410 --> 00:46:41,490 Ja som pevne čísla len pre teraz, pretože viem, čo robím. 1129 00:46:41,490 --> 00:46:42,950 Viem, čo chcem vidieť tu. 1130 00:46:42,950 --> 00:46:45,220 A ja som inicializuje Aj 65 rokov. 1131 00:46:45,220 --> 00:46:48,490 A ja som počítal hore cez 26 písmen celkom. 1132 00:46:48,490 --> 00:46:52,990 A čo mám vytlačiť jeden riadok naraz 1133 00:46:52,990 --> 00:46:54,930 ak môžete interpretovať Táto skúsenosť zvýraznila linku? 1134 00:46:54,930 --> 00:46:55,970 Čo sa vytlačí? 1135 00:46:55,970 --> 00:46:56,797 Jo. 1136 00:46:56,797 --> 00:46:57,264 >> Divákov: Chystáš vytlačiť list, ktorý 1137 00:46:57,264 --> 00:46:59,805 odpovedá na mapu z List hodnoty a celočíselná hodnota? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 Reproduktor 1: Presne tak. 1140 00:47:01,990 --> 00:47:04,740 Chystám sa vytlačiť list zodpovedajúce celé číslo, 1141 00:47:04,740 --> 00:47:06,131 a naopak, a to nasledovne. 1142 00:47:06,131 --> 00:47:08,880 No to, niekto povedal predtým, je len zástupným symbolom pre char. 1143 00:47:08,880 --> 00:47:09,490 Je to ešte je. 1144 00:47:09,490 --> 00:47:12,280 To, samozrejme, je zástupný Aby bola int-- nie je nový riadok. 1145 00:47:12,280 --> 00:47:18,140 A teraz si všimnúť, môj prvý hodnotu, ktorá Som zasunutie pre tento zástupný symbol 1146 00:47:18,140 --> 00:47:22,320 nie je len ja hovorím, v zátvorke, char I, 1147 00:47:22,320 --> 00:47:26,700 ktorý v zátvorkách je char hovorí kompilátora, liečiť I 1148 00:47:26,700 --> 00:47:28,490 nie ako to, čo je to, ktoré je číslo. 1149 00:47:28,490 --> 00:47:30,490 Považujte to za skutočné postavy. 1150 00:47:30,490 --> 00:47:34,490 Vzhľadom k tomu, druhá hodnota som upchávanie in-- Já-- by mal byť len číslo. 1151 00:47:34,490 --> 00:47:38,140 >> Takže keď som skompilovať program-- tak toto je urobiť ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot lomítko ASCII 0-- som len získať Tento šikovný malý graf, ktorý 1153 00:47:41,720 --> 00:47:44,950 Ukazuje mi všetky možné mapovanie, bez toho aby si to 1154 00:47:44,950 --> 00:47:46,450 skrz alebo na to prísť sám. 1155 00:47:46,450 --> 00:47:48,783 A ja som tiež vytlačenie, Všimnite si malé písmená, 1156 00:47:48,783 --> 00:47:51,410 preto, že pár riadkov neskôr som tiež vytlačiť toto mapovanie 1157 00:47:51,410 --> 00:47:53,737 rovnako, čo je len hovoria, že akonáhle pochopíte, 1158 00:47:53,737 --> 00:47:55,570 čo sa deje pod kapota, môžete 1159 00:47:55,570 --> 00:47:57,111 automaticky konvertovať tam a späť. 1160 00:47:57,111 --> 00:48:00,160 A v skutočnosti, ak niekto z vás kedy urobil to na základnej škole 1161 00:48:00,160 --> 00:48:03,490 alebo počul o niekom mýtický prijatie poznámku 1162 00:48:03,490 --> 00:48:05,620 a jej odovzdanie k jeho alebo jej priateľ v triede, 1163 00:48:05,620 --> 00:48:08,300 ale miešaná listy od podobné ako vo stane B, 1164 00:48:08,300 --> 00:48:11,240 a B sa stáva C, alebo tak niečo zložitejšie než to, dobre, 1165 00:48:11,240 --> 00:48:13,410 ako by ste ísť o ktorým sa vykonáva, že ako dieťa? 1166 00:48:13,410 --> 00:48:16,340 No, to jednoducho viem, Â B, B sa stane C, 1167 00:48:16,340 --> 00:48:19,700 ale matematicky, čo sa ten chlapec robí? 1168 00:48:19,700 --> 00:48:22,050 Čo ste pridanie do každého listu? 1169 00:48:22,050 --> 00:48:23,340 Účinne, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Takže keď zmeníte A do miesta B, to je niečo ako meniace sa 65 až 66, 1171 00:48:27,740 --> 00:48:29,590 čo znamená, že matematicky len pridať 1. 1172 00:48:29,590 --> 00:48:33,300 A tak ak ste boli realizovať ten malý klamný technika 1173 00:48:33,300 --> 00:48:36,380 pre učiteľov v kóde, budete mohli robiť presne to, že práve 1174 00:48:36,380 --> 00:48:38,552 pridaním jedno písmeno spoločne. 1175 00:48:38,552 --> 00:48:40,260 Takže ako dlhý, my sme uvidí, ako 1176 00:48:40,260 --> 00:48:43,300 môžu využiť, ktoré skutočne skutočne ťahanice a dešifrovať 1177 00:48:43,300 --> 00:48:43,991 informácie. 1178 00:48:43,991 --> 00:48:47,240 Do tej doby, viem, že sme začali predstaviť pár iných knižníc 1179 00:48:47,240 --> 00:48:48,990 here-- Reťazec jeden dnes. 1180 00:48:48,990 --> 00:48:51,180 A veľmi užitočné stránky dúfajme, že zistíte, 1181 00:48:51,180 --> 00:48:55,010 sa nazýva reference.cs50.net, ktorý pedagogickí pracovníci dali dohromady, 1182 00:48:55,010 --> 00:48:57,510 takže ak chcete vyhľadať ako strlen práce, 1183 00:48:57,510 --> 00:48:59,300 môžete začať písať Meno Funkcia je, 1184 00:48:59,300 --> 00:49:02,890 kliknite na tlačidlo strlen tam, a potom menej komfortné vysvetlenie 1185 00:49:02,890 --> 00:49:03,700 sa chystá objaviť. 1186 00:49:03,700 --> 00:49:06,880 Alebo ak chcete úradník Linux-založené vysvetlenie, 1187 00:49:06,880 --> 00:49:08,945 môžete kliknutím na tlačidlo viac pohodlný v pravom hornom rohu, a to 1188 00:49:08,945 --> 00:49:12,070 bude prezentovať rovnaké informácie, ale v zložitejších podmienok. 1189 00:49:12,070 --> 00:49:15,070 To je užitočným zdrojom pre skutočne vedieť, čo všetko robí. 1190 00:49:15,070 --> 00:49:17,320 >> Nabudúce budeme sa pozrieť na Ovaltine 1191 00:49:17,320 --> 00:49:20,070 a ďalšie, a predstaviť sami seba do sveta kryptografie. 1192 00:49:20,070 --> 00:49:21,930 Do tej doby, uvidíme neskôr tento týždeň. 1193 00:49:21,930 --> 00:49:23,390 A teraz, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Uvidíme sa v stredu. 1195 00:49:26,730 --> 00:49:30,216 >> [Prehrávanie hudby] 1196 00:49:30,216 --> 00:49:33,702 >> [Prehrávanie hudby] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> Reproduktor 1: Čo [Pípanie] robíš? 1199 00:49:42,200 --> 00:49:45,720 >> Reproduktor 1: Ja som jesť svoj dezert? 1200 00:49:45,720 --> 00:49:47,160 Ako sa vám to jesť? 1201 00:49:47,160 --> 00:49:47,860 S rukami? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [Prehrávanie hudby] 1204 00:49:57,940 --> 00:50:03,453