1 00:00:00,000 --> 00:00:02,880 >> [Predvaja glasba] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> SPEAKER 1: To je CS50 in to je začetek dva tedna. 4 00:00:13,500 --> 00:00:18,400 Torej, kaj je potopite desno v nekaj da je buggy, tako rekoč. 5 00:00:18,400 --> 00:00:24,015 Torej, tukaj je CS50 IDE in sem potegnil vnaprej to screen-- prekleto 6 00:00:24,015 --> 00:00:25,070 ga. 7 00:00:25,070 --> 00:00:25,760 Opozorilo spojler. 8 00:00:25,760 --> 00:00:26,260 V redu. 9 00:00:26,260 --> 00:00:29,060 Sem potegnil ta zaslon tukaj, ki ima zelo preprost program. 10 00:00:29,060 --> 00:00:32,659 Če smo se pomaknite navzdol, najbolj to je samo komentira, 11 00:00:32,659 --> 00:00:36,730 ampak tukaj v vrsticah 13 do 17 imamo program. 12 00:00:36,730 --> 00:00:40,580 >> To je skladenjsko veljaven, kar pomeni, če Sem ga sestaviti, da bo sestavil in teči, 13 00:00:40,580 --> 00:00:41,920 vendar je buggy. 14 00:00:41,920 --> 00:00:47,330 Ta program navaja v pripombah do vrha, da bi morala natisniti 10 zvezd, 15 00:00:47,330 --> 00:00:48,870 vendar pa ne. 16 00:00:48,870 --> 00:00:53,290 In glede na vaše izkušnje, ali kmalu izkušnje z C, 17 00:00:53,290 --> 00:00:56,820 lahko logično razbrati zakaj to je v resnici, Buggy? 18 00:00:56,820 --> 00:00:57,804 Ja? 19 00:00:57,804 --> 00:00:59,220 OBČINSTVO: To gre od nič do 10. 20 00:00:59,220 --> 00:01:01,884 To je 11 ponovitev. 21 00:01:01,884 --> 00:01:02,550 SPEAKER 1: Ja. 22 00:01:02,550 --> 00:01:06,030 Torej, to se dogaja od nič skozi in enako 10, 23 00:01:06,030 --> 00:01:08,140 kar seveda je 11 ponovitev. 24 00:01:08,140 --> 00:01:10,020 Torej, to se dogaja, print, res, 11 zvezd. 25 00:01:10,020 --> 00:01:13,040 Torej, konvencija računalništvo V večini programskih jezikov 26 00:01:13,040 --> 00:01:15,270 je, res, samo da bi začnemo na ničli, 27 00:01:15,270 --> 00:01:18,800 ampak računam do, vendar ne prek Vrednost, ki jo dejansko skrbi. 28 00:01:18,800 --> 00:01:21,216 >> Zdaj, to je ena stvar, ki traja malo uporabljajo za pridobivanje 29 00:01:21,216 --> 00:01:25,350 in tudi nič, zasnovan kot je za ne programerjev ali brez računalnika 30 00:01:25,350 --> 00:01:28,070 znanstveniki in za otroke predvsem je zasnovana tako, da imajo 31 00:01:28,070 --> 00:01:29,570 začnete štetje običajno v enem. 32 00:01:29,570 --> 00:01:30,277 In to je v redu. 33 00:01:30,277 --> 00:01:33,110 Lahko popolnoma začetek štetja na eni, če je to bolj udobno. 34 00:01:33,110 --> 00:01:37,210 In štetje do preko 10, vendar boste spoznali predvsem ta teden 35 00:01:37,210 --> 00:01:39,950 in naprej, da samo zato, veliko stvari v programiranju 36 00:01:39,950 --> 00:01:42,465 predvidevamo, da je 0 prva mestna, s katero se šteje, 37 00:01:42,465 --> 00:01:45,590 da boš lažje samo da bi dobili v to navado zagon 38 00:01:45,590 --> 00:01:49,490 od nič in štetje do vrednosti vas skrbi zdaj od 39 00:01:49,490 --> 00:01:49,990 zaslužiti iti. 40 00:01:49,990 --> 00:01:50,990 >> Tako, da je bil določen, da. 41 00:01:50,990 --> 00:01:53,670 Smo spremenili manjši ali enak nekaj manj kot. 42 00:01:53,670 --> 00:01:56,050 Oglejmo si na Drugi primer tukaj. 43 00:01:56,050 --> 00:01:59,585 >> Torej, ta program tudi trdi v svojem Komentarji up top, da bi morala natisniti 44 00:01:59,585 --> 00:02:02,260 deset zvezde, vendar pa ne. 45 00:02:02,260 --> 00:02:05,540 Kaj je bug tukaj? 46 00:02:05,540 --> 00:02:07,930 >> Torej, what-- in žal, bodimo jasni. 47 00:02:07,930 --> 00:02:08,610 10 zvezdic. 48 00:02:08,610 --> 00:02:11,644 Enega v vsako vrstico, vendar pa ne. 49 00:02:11,644 --> 00:02:14,810 Torej, v resnici, naj gredo naprej in zbira ta, ker je malo manj 50 00:02:14,810 --> 00:02:16,900 jasno, na osnovi tega opisa. 51 00:02:16,900 --> 00:02:18,720 Naj gredo v našem imeniku izvorne kode. 52 00:02:18,720 --> 00:02:25,110 Naredite Buggy eno piko poševnica, hroščat enega. 53 00:02:25,110 --> 00:02:28,680 OK, vidim 11 zvezd, ki še vedno problematična, 54 00:02:28,680 --> 00:02:30,090 ampak oni so tudi vsi v eni vrstici. 55 00:02:30,090 --> 00:02:31,500 Kaj je problem tukaj? 56 00:02:31,500 --> 00:02:32,339 Ja. 57 00:02:32,339 --> 00:02:33,255 OBČINSTVO: [neslišno]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 SPEAKER 1: Ja. 60 00:02:36,860 --> 00:02:40,210 Torej je to subtilnost, ki jo lahko spomni me tako kratko omembo. 61 00:02:40,210 --> 00:02:42,793 Čeprav vse izgleda lepa, in to je lepo razčlenjena, 62 00:02:42,793 --> 00:02:45,850 in to nekako izgleda-Scratch všeč v tej liniji 16 in 17 sta, 63 00:02:45,850 --> 00:02:47,600 res, razčlenjena na podlagi, da je za zanko. 64 00:02:47,600 --> 00:02:48,400 To je nepomembno. 65 00:02:48,400 --> 00:02:50,460 Računalnik ne vedeti ali videti bel prostor. 66 00:02:50,460 --> 00:02:52,910 Prazen prostor je samo za nas ljudje, slogovno. 67 00:02:52,910 --> 00:02:57,010 Računalnik ne vem, če imate zaviti oklepaji, ki bi, seveda, 68 00:02:57,010 --> 00:02:58,280 popraviti to težavo. 69 00:02:58,280 --> 00:03:02,350 >> Torej, če bi dejansko šel v in izrecno dal v teh zavitih oklepajih 70 00:03:02,350 --> 00:03:05,220 da bi rešili ta problem, ki ga kar jasno prevajalnik 71 00:03:05,220 --> 00:03:07,930 da sem dejansko želijo izvesti dve vrstic kode spet, 72 00:03:07,930 --> 00:03:09,220 in znova in znova. 73 00:03:09,220 --> 00:03:11,680 Toda kaj je temeljna razlaga? 74 00:03:11,680 --> 00:03:12,180 Prav? 75 00:03:12,180 --> 00:03:15,260 Mi pravzaprav ne potrebujemo zavitimi oklepaji ves čas, 76 00:03:15,260 --> 00:03:18,210 čeprav je verjetno najbolje praksa, da se v to navado vseeno 77 00:03:18,210 --> 00:03:20,878 čeprav dodaja dva Znaki kodo. zakaj? 78 00:03:20,878 --> 00:03:22,380 >> OBČINSTVO: [neslišno]? 79 00:03:22,380 --> 00:03:24,630 SPEAKER 1: Ja, tako da je druga rešitev v celoti. 80 00:03:24,630 --> 00:03:25,130 Prav? 81 00:03:25,130 --> 00:03:28,250 Še posebej, če se na prvi pogled ne boste res cenim, kaj se dogaja. 82 00:03:28,250 --> 00:03:31,070 No, vsekakor smo lahko samo narediti dve stvari naenkrat 83 00:03:31,070 --> 00:03:32,710 in le preprečili problem v celoti. 84 00:03:32,710 --> 00:03:36,080 In to je v redu, zdaj pa, za današnje namene, kar 85 00:03:36,080 --> 00:03:38,200 je razlaga za napako? 86 00:03:38,200 --> 00:03:39,810 Zakaj so vse te zvezde na eni liniji? 87 00:03:39,810 --> 00:03:40,806 Ja? 88 00:03:40,806 --> 00:03:43,296 >> OBČINSTVO: Zdi se, da če imate eno vrstico kode, 89 00:03:43,296 --> 00:03:46,649 lahko to storite brez teh. 90 00:03:46,649 --> 00:03:47,440 SPEAKER 1: Točno tako. 91 00:03:47,440 --> 00:03:48,750 To je samo človek konvencija. 92 00:03:48,750 --> 00:03:50,750 Ljudje se zavedajo, da je to malo siten ali dolgočasno 93 00:03:50,750 --> 00:03:53,470 morali postaviti zavite oklepaje vse časa, če je vse, kar želite storiti 94 00:03:53,470 --> 00:03:55,090 se izvrši eno vrstico kode. 95 00:03:55,090 --> 00:03:57,660 Torej, ljudje odločili nekateri pred časom, da je to v redu. 96 00:03:57,660 --> 00:04:01,180 Če želite, da bi vse svoje zanke na samo tej eni vrstici, kot je ta, 97 00:04:01,180 --> 00:04:04,030 da je v redu z enotno podpičjem konec. 98 00:04:04,030 --> 00:04:07,210 Vendar pa lahko storimo samo ena taka linija brez zavitimi oklepaji. 99 00:04:07,210 --> 00:04:09,900 >> Torej, ko CS50 slogovni priročnik saj vas bodo opozarjajo, 100 00:04:09,900 --> 00:04:11,980 boste videli, da je v splošnem je dobra navada 101 00:04:11,980 --> 00:04:14,920 priti v to, dokler niste zelo udobno potepuške 102 00:04:14,920 --> 00:04:17,404 iz teh vrst konvencij in delaš svojo stvar. 103 00:04:17,404 --> 00:04:18,820 Tako dolgo, kot si jaz dosledni. 104 00:04:18,820 --> 00:04:21,540 In bomo govorili več o tem stil malo kasneje danes. 105 00:04:21,540 --> 00:04:23,200 >> Torej, naj odprejo en drug program. 106 00:04:23,200 --> 00:04:24,930 Seveda pa bi morali določi, da je 10, kot dobro. 107 00:04:24,930 --> 00:04:32,470 Naj gredo naprej in pisati pravi quick program, da bom poklical, 108 00:04:32,470 --> 00:04:38,140 recimo, zanka dot C. Torej, zanka dot C. In v zanko dot C bom imela, 109 00:04:38,140 --> 00:04:41,970 vključujejo Standard I / O dot H int glavno praznino. 110 00:04:41,970 --> 00:04:44,020 In zdaj kaj je samo naredil, res, zanka. 111 00:04:44,020 --> 00:04:46,020 Torej, 4 int sem dobil nič. 112 00:04:46,020 --> 00:04:48,660 I je manj kot recimo 50. 113 00:04:48,660 --> 00:04:49,950 I plus, plus. 114 00:04:49,950 --> 00:04:53,350 In potem je tukaj dovolimo pojdi naprej in ne natisnejo F. 115 00:04:53,350 --> 00:04:56,400 In potem hočem natisniti I ter nova linija, podpičje. 116 00:04:56,400 --> 00:05:00,015 >> In to je treba natisniti vse številke od nič do 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Nekaj ​​glavo prikima. 119 00:05:03,680 --> 00:05:04,270 Nekaj ​​nos. 120 00:05:04,270 --> 00:05:05,339 Kaj je bug že? 121 00:05:05,339 --> 00:05:06,630 Kaj je preprosta napaka, sem naredil? 122 00:05:06,630 --> 00:05:07,170 Ja. 123 00:05:07,170 --> 00:05:08,544 >> OBČINSTVO: [neslišno]. 124 00:05:08,544 --> 00:05:09,210 SPEAKER 1: Ja. 125 00:05:09,210 --> 00:05:11,520 Torej, čeprav je videti kot je to tisto, kar nameravam, 126 00:05:11,520 --> 00:05:13,920 opozarjajo, da je tudi jaz samo ASCII znak. 127 00:05:13,920 --> 00:05:14,955 >> Torej, če rečem, print "I." 128 00:05:14,955 --> 00:05:16,670 To je dobesedno dogaja na I. tiskanje Torej, če sem 129 00:05:16,670 --> 00:05:20,030 želeli plug-in v ogrado Vrednost sem dejansko morali to storiti 130 00:05:20,030 --> 00:05:22,630 in nato plug-v vrednost I dinamično. 131 00:05:22,630 --> 00:05:25,200 Drugače sem le, da bo Dobiš 50 I na zaslonu. 132 00:05:25,200 --> 00:05:28,140 >> Torej, naj gredo naprej in bi to zanko, da bi sistem deloval, 133 00:05:28,140 --> 00:05:30,650 in seveda, imamo vse pot skozi 49. 134 00:05:30,650 --> 00:05:34,140 In če sem se pomaknete nazaj v čas, vidim število nič na začetku. 135 00:05:34,140 --> 00:05:36,050 >> No, kaj pa če sem nekako zamočil? 136 00:05:36,050 --> 00:05:37,800 Kaj, če bi to naredili? 137 00:05:37,800 --> 00:05:40,120 Samo zato, ker nisem razmišljal. 138 00:05:40,120 --> 00:05:40,970 Kaj je ta program. 139 00:05:40,970 --> 00:05:43,970 Ko ponovno zbrati in teči, boš naredil logično? 140 00:05:43,970 --> 00:05:44,870 >> OBČINSTVO: Nič. 141 00:05:44,870 --> 00:05:45,661 >> SPEAKER 1: Nič. 142 00:05:45,661 --> 00:05:47,156 Zakaj je tako? 143 00:05:47,156 --> 00:05:49,124 >> OBČINSTVO: I je namenjen za nič. 144 00:05:49,124 --> 00:05:51,899 Torej, pogoj je napačen. 145 00:05:51,899 --> 00:05:52,940 SPEAKER 1: Ja, točno. 146 00:05:52,940 --> 00:05:55,110 Vse je koda pravilna, skladenjsko. 147 00:05:55,110 --> 00:05:57,310 To bo zbrati, to Koda bo potekal, vendar to ni 148 00:05:57,310 --> 00:06:00,110 boš naredil nič uporabnega ker sem inicializacijo sem nič. 149 00:06:00,110 --> 00:06:02,240 Nato smo preveriti, je, da sem več kot 50 let? 150 00:06:02,240 --> 00:06:03,810 Očitno je, da ne, to ni. 151 00:06:03,810 --> 00:06:05,760 Torej zanka nikoli ne izvede na vseh. 152 00:06:05,760 --> 00:06:09,580 >> Kaj pa, če naredimo nekaj malo bolj nepremišljeno? 153 00:06:09,580 --> 00:06:12,890 Torej, kaj če mi je všeč int sem dobil nič. 154 00:06:12,890 --> 00:06:15,640 In zdaj mi uporabite časa zanke, ki je bil še en pogoj. 155 00:06:15,640 --> 00:06:21,810 In medtem, ko sem rekel, ko sem je večja od ali enaka nič, in nato v tu 156 00:06:21,810 --> 00:06:26,070 iti naprej in shranite datoteko, da zanko. 157 00:06:26,070 --> 00:06:27,070 In jaz sem na tem, da bi sistem deloval. 158 00:06:27,070 --> 00:06:30,230 Kaj bom, da vidim to Čas z while zanko? 159 00:06:30,230 --> 00:06:30,852 Ja. 160 00:06:30,852 --> 00:06:32,120 >> OBČINSTVO: neskončno zanko? 161 00:06:32,120 --> 00:06:35,360 >> SPEAKER 1: neskončna zanka? 162 00:06:35,360 --> 00:06:36,662 Ja, in zakaj? 163 00:06:36,662 --> 00:06:38,120 OBČINSTVO: Ker je vedno nič. 164 00:06:38,120 --> 00:06:38,786 SPEAKER 1: Ja. 165 00:06:38,786 --> 00:06:40,100 Torej, jaz inicializiran kot nič. 166 00:06:40,100 --> 00:06:44,470 Seveda je vedno večja ali enak 0, kot rezultat. 167 00:06:44,470 --> 00:06:46,460 Torej, jaz sem le, da bo glej to neskončno. 168 00:06:46,460 --> 00:06:49,850 In zdaj, ta je prišel gor, ko ali dvakrat vodjem tečaja je. 169 00:06:49,850 --> 00:06:52,417 Kaj se zgodi, ko vas imajo neskončno zanko? 170 00:06:52,417 --> 00:06:53,314 >> OBČINSTVO: Nadzor C. 171 00:06:53,314 --> 00:06:53,980 SPEAKER 1: Ja. 172 00:06:53,980 --> 00:06:56,250 Torej Control C bo sčasoma odzvati. 173 00:06:56,250 --> 00:06:59,520 Na žalost, smo natisne milijone in milijone ničel že 174 00:06:59,520 --> 00:07:01,520 in tako računalnik ima nekako dobil pred menoj. 175 00:07:01,520 --> 00:07:03,394 Torej, to se dogaja, da prezreti me za malo. 176 00:07:03,394 --> 00:07:06,560 Ampak, če ste pravkar udaril Nadzorna C nekaj krat na vašem Mac ali PC tipkovnico, 177 00:07:06,560 --> 00:07:08,790 sčasoma pa naj bi, seveda, prekine. 178 00:07:08,790 --> 00:07:11,770 In če ne, vam bomo prikazali nekaj Tehnike pred dolgo, kjer vas 179 00:07:11,770 --> 00:07:14,850 lahko dejansko prisilno ubiti programe, podobno kot v operacijskem sistemu Windows in Mac OS, 180 00:07:14,850 --> 00:07:15,562 če je to potrebno. 181 00:07:15,562 --> 00:07:16,770 Ampak poskusimo nekaj drugega. 182 00:07:16,770 --> 00:07:19,895 Oglejmo dejansko prirastek I. Ali to še vedno dogaja, da je neskončno? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Naj teče to. 185 00:07:25,140 --> 00:07:27,090 In sedaj lahko nekako glej, kaj se dogaja. 186 00:07:27,090 --> 00:07:30,140 Tudi to je neskončna zanka. 187 00:07:30,140 --> 00:07:33,080 Ampak to je malo trik vprašanje. 188 00:07:33,080 --> 00:07:35,460 Bo to za tiskanje številk za vedno? 189 00:07:35,460 --> 00:07:36,647 >> OBČINSTVO: No. 190 00:07:36,647 --> 00:07:37,230 SPEAKER 1: No. 191 00:07:37,230 --> 00:07:37,620 Zakaj? 192 00:07:37,620 --> 00:07:38,820 Slišal sem nekaj številk tukaj. 193 00:07:38,820 --> 00:07:41,859 Someone-- Ja. 194 00:07:41,859 --> 00:07:44,275 OBČINSTVO: Nimate dovolj bitov res nadaljuj. 195 00:07:44,275 --> 00:07:44,730 SPEAKER 1: V redu. 196 00:07:44,730 --> 00:07:46,000 Torej nimam dovolj bitov nadaljuj. 197 00:07:46,000 --> 00:07:47,124 Torej, kaj se bo zgodilo? 198 00:07:47,124 --> 00:07:49,320 To je le, da bo ustavil? 199 00:07:49,320 --> 00:07:52,542 >> OBČINSTVO: Na neki točki bo zaprta the-- 200 00:07:52,542 --> 00:07:54,500 SPEAKER 1: To bo zaprta zanka dol, ampak zakaj? 201 00:07:54,500 --> 00:07:57,950 Kaj se bo zgodilo na Zelo konec svojih meja? 202 00:07:57,950 --> 00:07:58,479 Ja? 203 00:07:58,479 --> 00:08:00,520 OBČINSTVO: To bo cikel nazaj na negativne številke. 204 00:08:00,520 --> 00:08:02,900 SPEAKER 1: negativne številke, ali če smo le zdravljenje pozitiven, 205 00:08:02,900 --> 00:08:03,570 nič vsaj. 206 00:08:03,570 --> 00:08:04,550 Torej, ja, absolutno. 207 00:08:04,550 --> 00:08:08,059 Spomnimo se, da smo videli zadnji čas, da se, če vas prirastek tvoje bitov enega preveč krat, 208 00:08:08,059 --> 00:08:10,225 in si tam ospredje overflow zmogljivost vašega int 209 00:08:10,225 --> 00:08:13,058 ali glede na podatkovni tip je, da ste bo ovijte okoli, verjetno, 210 00:08:13,058 --> 00:08:14,020 dva negativna števila. 211 00:08:14,020 --> 00:08:16,644 Ali pa, če ste jih določite, da je vaš Razpon bi moral biti pozitiven samo, 212 00:08:16,644 --> 00:08:18,560 ki jih lahko storite, vendar smo ni videl, da je še ni, 213 00:08:18,560 --> 00:08:21,420 boste morda na koncu vsaj nazaj na ničlo. 214 00:08:21,420 --> 00:08:22,410 Kljub temu, da dejansko ja. 215 00:08:22,410 --> 00:08:24,320 V tem primeru negativnega številke, pri čemer 216 00:08:24,320 --> 00:08:26,870 zanka se dogaja, da prekine ker se ni v bistvu 217 00:08:26,870 --> 00:08:29,220 večja ali enaka nič, če je negativna. 218 00:08:29,220 --> 00:08:31,780 >> Torej, žal, kako dolgo bomo morali čakati? 219 00:08:31,780 --> 00:08:35,490 Zdaj smo do kaj, 2 milijona-ish? 220 00:08:35,490 --> 00:08:37,705 Smo kot 2 milijardi, bomo morali počakati 221 00:08:37,705 --> 00:08:39,330 dokler ne bomo dejansko videli ta simptom. 222 00:08:39,330 --> 00:08:46,200 Vendar smo lahko videli malo hitreje, maybe-- poglejmo, če lahko prekinejo. 223 00:08:46,200 --> 00:08:46,700 Daj no. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Tudi meniji se počasi pojavljajo. 226 00:08:51,331 --> 00:08:51,830 V redu. 227 00:08:51,830 --> 00:08:54,270 Torej, bomo prišli nazaj, da je pred dolgo. 228 00:08:54,270 --> 00:08:56,320 To je dobra time-- prekleto, mladički. 229 00:08:56,320 --> 00:08:58,280 >> To je dober čas za nekaj objav. 230 00:08:58,280 --> 00:09:01,225 Torej, če boste morda želeli da se vključijo v YHack, 231 00:09:01,225 --> 00:09:03,600 kar se da dogodek sponzorira naše prijatelje na univerzi Yale. 232 00:09:03,600 --> 00:09:05,990 In, seveda, nekateri seveda je TFS na univerzi Yale, so vključeni v to. 233 00:09:05,990 --> 00:09:08,610 YHack je mednarodna hack-a-thon gostila in odločilo, 234 00:09:08,610 --> 00:09:12,395 na univerzi Yale, ki združuje 1.500 podobno mislečih hekerji in ustvarjalcev vseh 235 00:09:12,395 --> 00:09:13,120 celega sveta. 236 00:09:13,120 --> 00:09:14,610 Če je to v interesu, si oglejte tukaj. 237 00:09:14,610 --> 00:09:17,401 Če je to preveč na kratko o zaslon, si oglejte današnje diapozitive 238 00:09:17,401 --> 00:09:19,622 za URL za yhack.org. 239 00:09:19,622 --> 00:09:21,080 Torej, tudi nekaj hitrih obvestil. 240 00:09:21,080 --> 00:09:24,410 Torej, uradno bodo oddelki začetek Naslednji teden tu in New Haven. 241 00:09:24,410 --> 00:09:27,660 Imejte v mislih, boste dobili email kasneje ta vikend najbolj verjetno. 242 00:09:27,660 --> 00:09:29,390 To traja dolgo časa, za CS50 na oddelku, 243 00:09:29,390 --> 00:09:32,080 Glede na vse ljudi v razred in vsi gibljejo. 244 00:09:32,080 --> 00:09:34,871 In vse Poučevanje Fellows v nadaljevanju urniki so tudi še utrdi, 245 00:09:34,871 --> 00:09:38,110 vendar ostanite z nami za e-pošto, in če je potrebno se lahko ponovno oddelek tam po. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Torej, tudi če ste stalna udeleženec na odsekih, zavedaš, da skoraj vse 248 00:09:43,280 --> 00:09:46,786 sredstev, ki jih uporabljamo v oddelkih so javno dostopni na CS50 249 00:09:46,786 --> 00:09:48,460 Študij na tem URL tukaj. 250 00:09:48,460 --> 00:09:51,630 Torej, če si kdaj želeli, da ponovno pregleda material, iz oddelka, ali brati naprej, 251 00:09:51,630 --> 00:09:54,170 ali pa ne moreš narediti, da nekateri teden, Zavedam se, da vzorec diapozitivov, 252 00:09:54,170 --> 00:09:58,210 in težave, in definicije, in več, so vse tudi tam. 253 00:09:58,210 --> 00:10:00,645 >> Uradne ure nadaljevala danes, in jutri, in v sredo, 254 00:10:00,645 --> 00:10:03,020 in četrtek preverite Seveda je Spletna stran za urnik. 255 00:10:03,020 --> 00:10:05,690 >> In tudi zdaj začenja Danes je CS50 pogovorite. 256 00:10:05,690 --> 00:10:09,230 Torej, če in ko imate vprašanja za med seboj ali za osebje tečaja je, 257 00:10:09,230 --> 00:10:12,099 in na splošno delujejo na neki problem set, 258 00:10:12,099 --> 00:10:15,015 Zavedam se, da vam ni nujno, morali obrniti na človeka naslednjo vas. 259 00:10:15,015 --> 00:10:17,810 Če ni nikogar tam, lahko stik z nami in sošolci 260 00:10:17,810 --> 00:10:19,890 spletu prek CS50 pogovorite. 261 00:10:19,890 --> 00:10:22,600 Torej, to je razprava odbor za tečaj, 262 00:10:22,600 --> 00:10:24,550 in spoznali, da je to je morda najbolje 263 00:10:24,550 --> 00:10:28,480 mesto za začetek, ko imate Vprašanja ko izven uradnih ur 264 00:10:28,480 --> 00:10:29,470 še posebej. 265 00:10:29,470 --> 00:10:31,070 >> Kosila se bo začela ta teden preveč. 266 00:10:31,070 --> 00:10:33,170 Na Fire in Ice [Neslišno] v New Haven. 267 00:10:33,170 --> 00:10:35,379 Oglejte si seveda je spletna stran, da bi RSVP. 268 00:10:35,379 --> 00:10:36,753 Prvi pride, prvi služi za to. 269 00:10:36,753 --> 00:10:39,380 Če ne boste dobili v tem tednu bomo naredili to najbolj vsak petek 270 00:10:39,380 --> 00:10:40,400 v času trajanja. 271 00:10:40,400 --> 00:10:41,830 >> OK, zdaj pa še beseda o razvrstitvi. 272 00:10:41,830 --> 00:10:44,690 Še posebej, ko vstopamo težave določi eno, ki je ta teden, 273 00:10:44,690 --> 00:10:46,670 in problem določiti dva in potem. 274 00:10:46,670 --> 00:10:51,680 Kako bomo šli o vrednotenju P sklopov in ocenjevanju njihove kakovosti? 275 00:10:51,680 --> 00:10:55,560 Torej, to je štiri osi, ki jih uporabljamo v CS50, in oni so ti štirje tukaj. 276 00:10:55,560 --> 00:10:59,200 >> Področje, ki se ujame na številčna Osnova samo koliko P niz 277 00:10:59,200 --> 00:10:59,860 ste reševanje. 278 00:10:59,860 --> 00:11:02,890 To je v grobem ujema z napora, in to je naš način zajemanja 279 00:11:02,890 --> 00:11:05,190 si poskusil polovica P nastavljen, vse P niza. 280 00:11:05,190 --> 00:11:08,860 To je enostavna, da bi dobili popoln rezultati na, če boste to storili, seveda, 281 00:11:08,860 --> 00:11:11,020 poskusite vsak vidik P nizu. 282 00:11:11,020 --> 00:11:12,010 Tako, da se vodijo v mislih. 283 00:11:12,010 --> 00:11:13,420 >> Pravilnost je točno to. 284 00:11:13,420 --> 00:11:17,760 Ali si kodo delo, kot je navedeno v specifikaciji in kot raztopino vzorca štabi " 285 00:11:17,760 --> 00:11:19,730 kažejo, da vaša koda treba dejansko deluje. 286 00:11:19,730 --> 00:11:23,260 Preverite, 50, če še niste srečal vendar je v P nastavite eno specifikacijo 287 00:11:23,260 --> 00:11:25,060 in bo na splošno vam DA / NE odgovore 288 00:11:25,060 --> 00:11:26,518 o tem, ali je pravilno kodo. 289 00:11:26,518 --> 00:11:30,680 Vsaj kolikor bomo da oceni temelji na testih 290 00:11:30,680 --> 00:11:32,430 da tečemo v tem programu. 291 00:11:32,430 --> 00:11:33,850 >> Dizajn je veliko bolj subjektivna. 292 00:11:33,850 --> 00:11:35,994 To je, kako dobro napisana, je svojo kodo. 293 00:11:35,994 --> 00:11:38,410 In to je nekaj, kar boste dobili boljši v daljšem časovnem obdobju, 294 00:11:38,410 --> 00:11:41,201 in to je nekaj, kar bomo zagotoviti več kvalitativne povratne informacije o. 295 00:11:41,201 --> 00:11:43,350 In z zasnovo bom morda pomeni pred dolgo 296 00:11:43,350 --> 00:11:47,650 morda mika, v nekaterih P nastaviti nekaj storiti loopingly, 297 00:11:47,650 --> 00:11:51,590 vendar, da imajo morda trije ali štirje, ali pet ugnezdena prednji zank ali ugnezdene medtem 298 00:11:51,590 --> 00:11:52,090 zank. 299 00:11:52,090 --> 00:11:54,130 Ki na splošno naj bi začeti, da bi si klečeplastvo 300 00:11:54,130 --> 00:11:56,070 in bi na splošno šteje slaba zasnova. 301 00:11:56,070 --> 00:11:59,490 In boste začeli videti v razredu in iz razreda dobrih načinov počne stvari, 302 00:11:59,490 --> 00:12:02,920 slabe načine početje stvari, ki lahko vse res, vendar ne 303 00:12:02,920 --> 00:12:04,304 nujno dobro oblikovana. 304 00:12:04,304 --> 00:12:05,220 Kot je pisanje eseja. 305 00:12:05,220 --> 00:12:08,100 Morda bi lahko dal besede na Stran, ki je slovnično pravilno, 306 00:12:08,100 --> 00:12:10,016 vendar esej ali teza oni v je le 307 00:12:10,016 --> 00:12:11,810 popolnoma nepovezano ali unpersuasive. 308 00:12:11,810 --> 00:12:15,930 In tako, da je lahko analogni v pisno svet slabega ali dobrega oblikovanja. 309 00:12:15,930 --> 00:12:18,490 >> In stil, preveč, je precej subjektivna. 310 00:12:18,490 --> 00:12:20,060 Ampak vsaj pričakujemo doslednost. 311 00:12:20,060 --> 00:12:21,480 To je, kako lepa je tvoja koda. 312 00:12:21,480 --> 00:12:22,840 Se stvari lepo zamaknjen? 313 00:12:22,840 --> 00:12:26,600 So vaše spremenljivke dobro imenovan / Ali vse vaših oklepajev in zavitih oklepajev 314 00:12:26,600 --> 00:12:27,920 usklajena, kot bi morale biti? 315 00:12:27,920 --> 00:12:31,490 Imamo vodnik CS50 slog kot problem set vas bodo opozorili na. 316 00:12:31,490 --> 00:12:33,730 Tisti, bolj udobno, so dobrodošli na potepuške od 317 00:12:33,730 --> 00:12:35,771 tako dolgo, kot ste sami dosledni. 318 00:12:35,771 --> 00:12:38,020 In tudi to je lekcija bomo okrepili v oddelku. 319 00:12:38,020 --> 00:12:40,990 Torej, če vse to je malo hitro, zavedaš set in profili P 320 00:12:40,990 --> 00:12:42,900 bo šel v bolj poglobljeno pred dolgo. 321 00:12:42,900 --> 00:12:45,490 >> Vendar na splošno imamo zelo malo žlic CS50. 322 00:12:45,490 --> 00:12:48,170 Rezultati so na splošno na lestvici od enega do tri, ali od ena do pet. 323 00:12:48,170 --> 00:12:50,836 Mi smo literally-- in ne morem reči, to dovolj v prvem tednu. 324 00:12:50,836 --> 00:12:51,582 Tri je dobro. 325 00:12:51,582 --> 00:12:54,290 Torej, čeprav, ja, trije pet normalno, matematično, 326 00:12:54,290 --> 00:12:57,240 Morda bi bilo 60 odstotkov ali kot D minus. 327 00:12:57,240 --> 00:12:58,840 Tri je dejansko dobro. 328 00:12:58,840 --> 00:13:01,050 In dejansko pričakujemo večina študentov v razredu 329 00:13:01,050 --> 00:13:04,280 da začnete izraz okrog dvojke in trojke, in štirice. 330 00:13:04,280 --> 00:13:05,510 Verjetno ne toliko petke. 331 00:13:05,510 --> 00:13:06,661 Ne preveč tisti. 332 00:13:06,661 --> 00:13:08,910 Ampak na splošno začeti v da sweet spot v krivulji 333 00:13:08,910 --> 00:13:11,694 tako da kot čas napreduje, tam je pravzaprav prostor za, 334 00:13:11,694 --> 00:13:13,360 in priložnosti za zgornji napredovanje. 335 00:13:13,360 --> 00:13:15,810 Torej, prosim, ne enačijo tri z 60%. 336 00:13:15,810 --> 00:13:17,410 To je veliko bolj abstraktne kot to. 337 00:13:17,410 --> 00:13:20,160 Formula, s katero smo izračunali stopnje se ponderirajo takole. 338 00:13:20,160 --> 00:13:21,610 Korektnost je vredno največ. 339 00:13:21,610 --> 00:13:23,010 Design je vreden malo manj. 340 00:13:23,010 --> 00:13:24,490 Style je vreden malo manj. 341 00:13:24,490 --> 00:13:26,950 In to na splošno ujame časa 342 00:13:26,950 --> 00:13:29,800 da gre v pridobivanje vsak od teh osi ravno prav. 343 00:13:29,800 --> 00:13:31,810 Style je super enostavna, mora biti zelo hitro, 344 00:13:31,810 --> 00:13:33,657 ampak to je enostavno navada da bi dobili leni o tem. 345 00:13:33,657 --> 00:13:35,490 Pravilnost lahko traja si večino časa. 346 00:13:35,490 --> 00:13:38,990 Preganja navzdol nekaj bug mogočnosti da to dodatno uro ali več, 347 00:13:38,990 --> 00:13:41,737 in tako je veliko prostora na koncu ujame to. 348 00:13:41,737 --> 00:13:43,070 In tako zdaj bolj resna beseda. 349 00:13:43,070 --> 00:13:45,240 Ker ima CS50 razlikovanje, za boljše 350 00:13:45,240 --> 00:13:47,440 ali še huje, o čemer morda bolje seznanili 351 00:13:47,440 --> 00:13:50,065 z vprašanji akademska iskrenost kot večina drugih predmetih. 352 00:13:50,065 --> 00:13:53,720 In res je, da mi je znano, da je bomo poslali več študentov, žal, 353 00:13:53,720 --> 00:13:56,690 za disciplinsko Vsako leto kot rezultat. Torej, 354 00:13:56,690 --> 00:13:59,040 v interesu polno razkritje, kaj je govoril na kratko 355 00:13:59,040 --> 00:14:02,820 o tem, kaj se dogaja v CS50, in kaj vas more storiti, in kaj lahko se zaveda. 356 00:14:02,820 --> 00:14:05,530 >> Torej, tukaj od leta 2007, ko je Sem podedoval tečaj, 357 00:14:05,530 --> 00:14:07,870 je število primerov Ad sveta. 358 00:14:07,870 --> 00:14:10,690 Ad Board je Harvard je disciplinska telo, ali zdaj Honor svetovalec, 359 00:14:10,690 --> 00:14:13,790 na katerega sta iz primeri, ko študentje narediti nekaj, kar seveda je 360 00:14:13,790 --> 00:14:15,470 predmetnik meni nerazumno. 361 00:14:15,470 --> 00:14:17,220 Ni pravi vzorec tu, bi rekel. 362 00:14:17,220 --> 00:14:19,530 To niha nad let, ampak na splošno 363 00:14:19,530 --> 00:14:22,262 to je število primeri, ki so navedeni. 364 00:14:22,262 --> 00:14:23,970 Število študentov da gre? 365 00:14:23,970 --> 00:14:25,290 Preveč razlikuje. 366 00:14:25,290 --> 00:14:27,930 Značilno je, da je lani za primer 29 študenti na Harvardu 367 00:14:27,930 --> 00:14:29,740 so Ad vkrcali, tako rekoč. 368 00:14:29,740 --> 00:14:32,670 29 izmed njih sedanjih študentov, Dva od njih prejšnjih študentov, 369 00:14:32,670 --> 00:14:35,610 kdo smo sodelovanje na nek način neugoden. 370 00:14:35,610 --> 00:14:38,400 In potem v odnosu na odstotek, to je običajno okoli 3% 371 00:14:38,400 --> 00:14:41,360 razreda, ki se žal naredi te vrste odločb. 372 00:14:41,360 --> 00:14:44,470 >> Torej, lansko leto je bilo za 3,5% od CS50 je študentskega telesa 373 00:14:44,470 --> 00:14:46,820 da je Ad vkrcali, tako rekoč. 374 00:14:46,820 --> 00:14:48,490 >> Torej, kaj vse to pomeni? 375 00:14:48,490 --> 00:14:49,660 In kaj smo pravzaprav storili? 376 00:14:49,660 --> 00:14:52,930 >> Torej, za popolno razkritje, smo absolutno, saj računalniški znanstveniki, 377 00:14:52,930 --> 00:14:57,620 imajo programskih orodij na razpolago in to je zelo enostavno za nas, v pravičnosti, 378 00:14:57,620 --> 00:15:00,980 sošolci, da druge strani, ki niso prečkanje te vrstice prečkati primerjati 379 00:15:00,980 --> 00:15:04,570 vsako oddajo letos zoper vsako predložitev v zadnjih osmih letih. 380 00:15:04,570 --> 00:15:05,445 Software počne. 381 00:15:05,445 --> 00:15:07,440 In na koncu je človeške oči, ki se odločijo 382 00:15:07,440 --> 00:15:11,410 ali ne, da se nanašajo nekaterih pomembno za nadaljnje odločanje, 383 00:15:11,410 --> 00:15:12,737 ampak software gotovo pomaga. 384 00:15:12,737 --> 00:15:15,820 In to, odkrito povedano, zato, da mislim, da imamo tako velike številke v CS50. 385 00:15:15,820 --> 00:15:18,540 To ni zato, ker CS50 študenti ali CS študenti več 386 00:15:18,540 --> 00:15:20,840 na splošno so vse manj iskreni kot kateri koli drugi študenti, 387 00:15:20,840 --> 00:15:22,340 to je samo imamo orodja in tehnike 388 00:15:22,340 --> 00:15:24,095 s katero naj bi to prvo sredino. 389 00:15:24,095 --> 00:15:25,960 >> Ampak mi pazi o vseh teh stvareh 390 00:15:25,960 --> 00:15:30,340 kot tudi, še enkrat, v interesu priznava delo, ki je dal 391 00:15:30,340 --> 00:15:32,397 V s super večino razreda. 392 00:15:32,397 --> 00:15:34,230 In politika Tečaj je na akademsko poštenostjo, 393 00:15:34,230 --> 00:15:37,021 čeprav je kup odstavkov dolga s kopico krogel 394 00:15:37,021 --> 00:15:40,490 da so, upajmo, zelo berljiva, je res ne omejijo na razumen. 395 00:15:40,490 --> 00:15:44,000 In kar je najboljše pravilo, da nudimo up v predmetniku 396 00:15:44,000 --> 00:15:46,020 to je bistvo vsega dela, ki vas 397 00:15:46,020 --> 00:15:47,850 predloži ta seveda mora biti vaša. 398 00:15:47,850 --> 00:15:51,510 In res, v skoraj vseh tistih primeri iz za disciplinsko 399 00:15:51,510 --> 00:15:55,640 je bil zaradi nekaterih študentskega pozno eno noč običajno obrnil svojo kodo 400 00:15:55,640 --> 00:15:58,130 več dokončnih da sošolec, ki ga je sprejel 401 00:15:58,130 --> 00:16:00,840 v celoti ali pomembno le-teh. 402 00:16:00,840 --> 00:16:02,680 >> Ampak res, to je v redu. 403 00:16:02,680 --> 00:16:04,684 In res, v pisarni ur, plačilni listek papirja 404 00:16:04,684 --> 00:16:07,850 ste bili izroči, če ste prišli s pisarno ur zadnji teden spodbuja toliko. 405 00:16:07,850 --> 00:16:09,710 Ste popolnoma pozdravil in spodbujati 406 00:16:09,710 --> 00:16:12,340 da bi razpravljali o problematičnih sklopov s sošolci. 407 00:16:12,340 --> 00:16:14,461 Da pomagamo drug drugemu, ko kamen. 408 00:16:14,461 --> 00:16:17,710 Ampak na splošno pravilo naj bi bo to, "ko prosi za pomoč, 409 00:16:17,710 --> 00:16:20,412 lahko pokažejo svojo kodo za drugim, vendar vam uresničile ne sme videti. " 410 00:16:20,412 --> 00:16:22,620 Torej, z drugimi besedami, če sem borila z nekaj P set 411 00:16:22,620 --> 00:16:25,290 in sem sedel tam v jedilnici ali v knjižnici, 412 00:16:25,290 --> 00:16:28,470 ali v učilnici poskuša najti neko napako, 413 00:16:28,470 --> 00:16:30,340 Jaz lahko zagotovo pokazati moja koda na mojem zaslonu 414 00:16:30,340 --> 00:16:32,590 je oseba, ki sedi poleg zame vsekakor osebje, 415 00:16:32,590 --> 00:16:33,600 ampak tudi sošolec. 416 00:16:33,600 --> 00:16:36,580 Ampak, če je rešitev, ki moj sošolec ponuja je, oh, 417 00:16:36,580 --> 00:16:39,200 tukaj samo poglejte, kaj Jaz sem, ki prečka črto. 418 00:16:39,200 --> 00:16:43,120 >> In jaz bi si trditi, da je v splošnem razumna stvar za večino ljudi 419 00:16:43,120 --> 00:16:45,030 zelo enostavno spot linijo. 420 00:16:45,030 --> 00:16:47,195 In tako, glej predmetnik Za več podrobnosti. 421 00:16:47,195 --> 00:16:49,070 In zdaj eden bolj spornih vidikov 422 00:16:49,070 --> 00:16:52,529 od CS50 učnega načrta, ki sem mislil, da bi govoril v zaključku tukaj 423 00:16:52,529 --> 00:16:53,820 je tako imenovana klavzula obžalovanje. 424 00:16:53,820 --> 00:16:55,340 Torej, tukaj je vse v redu natisniti. 425 00:16:55,340 --> 00:16:58,090 Ampak na splošno smo videli V zadnjih 8 plus let 426 00:16:58,090 --> 00:17:01,510 da, res, skoraj vsi CS50 je primeri akademske nepoštenosti 427 00:17:01,510 --> 00:17:04,390 so bili posledica le slaba odločanja pozno ponoči. 428 00:17:04,390 --> 00:17:07,144 Posledica stresa, rezultat pomanjkanja prehranjevanja, pomanjkanje spanja, 429 00:17:07,144 --> 00:17:09,560 preveč P sklopov, preveč roki, preveč obveznosti. 430 00:17:09,560 --> 00:17:13,520 Stres izgradnjo v 2:00, 03:00 AM, 04:00, z rok grozila. 431 00:17:13,520 --> 00:17:17,020 Večina študentov v teh primerih so pravkar slabe odločitve 432 00:17:17,020 --> 00:17:20,619 da bi lahko zelo dobro obžalujem Naslednje jutro, če ne minut kasneje, 433 00:17:20,619 --> 00:17:25,490 ampak do lani ni bilo ventil za javnost, da bi lahko ti študenti 434 00:17:25,490 --> 00:17:29,140 dejansko odpirajo dejansko obravnavati problem z glavo, brez strahu pred 435 00:17:29,140 --> 00:17:30,850 škorenj iz kolegija v celoti. 436 00:17:30,850 --> 00:17:33,260 >> In, seveda, smo uvedli ta klavzula obžalujem lani, 437 00:17:33,260 --> 00:17:35,970 ki pravi, da če v roku 72 ur, tri dni, 438 00:17:35,970 --> 00:17:37,970 crossing nekaj linijo predpisano v predmetniku 439 00:17:37,970 --> 00:17:41,178 prideš naprej do enega izmed Seveda je glave in bomo pogovorili o tem. 440 00:17:41,178 --> 00:17:43,720 Tam so še vedno nekaj izid, v nasprotju s tem, kar je 441 00:17:43,720 --> 00:17:44,990 Poročali so, da ravno nasprotno. 442 00:17:44,990 --> 00:17:49,190 Še vedno je nekaj izid, ki je kazniva, ki jih seveda, 443 00:17:49,190 --> 00:17:51,611 splošno ničelne nastavitve v P niz ali ob drugo dejanje, 444 00:17:51,611 --> 00:17:53,610 ampak bomo, seveda, ročaj sebe in ne 445 00:17:53,610 --> 00:17:58,460 nanašajo pa višje so bile rezultat bi bilo veliko hujše. 446 00:17:58,460 --> 00:18:01,810 In, seveda, naj povedo, kaj se je zgodilo lani, v osmih letih, in zdaj 447 00:18:01,810 --> 00:18:04,950 devet let, za poučevanje tega predmeta in po igračkanje z različnimi gumbi, 448 00:18:04,950 --> 00:18:07,866 obračanja različnih klicanje preko preteklosti več let na akademsko poštenostjo, 449 00:18:07,866 --> 00:18:11,920 in videnje na podatkih ni očitnih vpliv, celo govori, kot je ta, 450 00:18:11,920 --> 00:18:15,490 to je roke dol najboljša stvar smo pedagoško uvedli 451 00:18:15,490 --> 00:18:18,090 V osmih letih skupaj te vrstice v CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 študentov je javilo v skladu s to klavzulo lani. 453 00:18:21,010 --> 00:18:23,389 Mi je ne ukrepa za sedem od teh študentov, 454 00:18:23,389 --> 00:18:25,430 določitev, da so bili po nepotrebnem zaskrbljeni. 455 00:18:25,430 --> 00:18:27,304 Niso imeli, v resnici, prečka linijo, vendar 456 00:18:27,304 --> 00:18:28,960 je bil dober klepet, da imajo kljub temu. 457 00:18:28,960 --> 00:18:31,190 Ničli smo 11 točk da niso bili predloženi. 458 00:18:31,190 --> 00:18:33,840 In v enem primeru smo vprašal študent narediti težavo nastavili. 459 00:18:33,840 --> 00:18:36,370 Ampak bolj prepričljiv, pošteno, s temi 19 klepeti, 460 00:18:36,370 --> 00:18:39,020 ki je bil tako več kot I Pričakuje se, da ima vsaka od njih 461 00:18:39,020 --> 00:18:41,370 10 minut, da pa se morda uro dolgo, prinesel tudi 462 00:18:41,370 --> 00:18:44,920 prižgati številna vprašanja v zvezi z družinske zadeve, vprašanja prijatelj, 463 00:18:44,920 --> 00:18:46,940 duševnega zdravja vprašanja da smo se potem ukvarjajo, 464 00:18:46,940 --> 00:18:50,200 z študentovega blagoslov, ki prebivajo dekan, ali prijatelji, ali katera koli druga številka 465 00:18:50,200 --> 00:18:51,450 podpornih sredstev. 466 00:18:51,450 --> 00:18:54,454 Tako, da je to daleč ena najboljših uporab našega časa 467 00:18:54,454 --> 00:18:55,870 in eden izmed najboljših posegov. 468 00:18:55,870 --> 00:18:58,870 >> S tem je dejal, da ni imel vhod na stopnjo detekcije 469 00:18:58,870 --> 00:19:00,909 akademske nepoštenosti bolj na splošno. 470 00:19:00,909 --> 00:19:02,950 In upam si trditi, to podskupino študentov, lani 471 00:19:02,950 --> 00:19:06,350 je demografsko, da smo prej nikoli opredelila pred 472 00:19:06,350 --> 00:19:08,140 in še nikoli ni povezan s prej. 473 00:19:08,140 --> 00:19:10,020 In tako, so bili čudovite zgodbe o uspehu 474 00:19:10,020 --> 00:19:13,390 čeprav so bile vložene na svetlobo v manj kot optimalnimi pogoji. 475 00:19:13,390 --> 00:19:15,640 Torej, imejte to v mislih kot ste jih naredili, morda, 476 00:19:15,640 --> 00:19:17,390 nekatere slabe odločitve sami pozno ponoči, 477 00:19:17,390 --> 00:19:20,151 da je uporaba tako dolgo kot študent v tej situaciji 478 00:19:20,151 --> 00:19:23,400 lastnik in pridejo naprej, tako da bomo lahko imajo te vrste klepet in z njo ravnati 479 00:19:23,400 --> 00:19:27,310 na način, ki je izobraževalne in nato bomo lahko pustili za nami naslednji dan. 480 00:19:27,310 --> 00:19:30,335 >> Torej, brez odlašanja, vzemite rob off tega pogovora, 481 00:19:30,335 --> 00:19:35,080 Razlog mladički so gor je samo prebiti led za trenutek. 482 00:19:35,080 --> 00:19:39,560 In žal, oni so vsi spijo, ampak kaj naj bi se zgodilo tukaj 483 00:19:39,560 --> 00:19:41,760 je vsakdo naj da awe in vrsta sprostite 484 00:19:41,760 --> 00:19:43,910 Po tej zelo težki pogovor. 485 00:19:43,910 --> 00:19:46,930 Ampak očitno sem dal mladički spati. 486 00:19:46,930 --> 00:19:50,070 Ampak, če greš na CS50 je Spletna stran poševnica mladički, 487 00:19:50,070 --> 00:19:51,610 si jih lahko ogledate cel dan. 488 00:19:51,610 --> 00:19:55,280 Posebej morda 2:00, ali 3:00 ali 4:00 ponoči 489 00:19:55,280 --> 00:19:57,480 videti malo stres olajšave tam. 490 00:19:57,480 --> 00:19:58,805 Tako da je poševnica mladičke. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 V redu. 493 00:20:02,200 --> 00:20:03,020 Ni bilo tako zabavno? 494 00:20:03,020 --> 00:20:04,200 V REDU. 495 00:20:04,200 --> 00:20:07,140 Torej, nazaj k neki računalnik znanost, če smem. 496 00:20:07,140 --> 00:20:10,600 >> Torej, se spomni, da je zadnjič, ko smo začeli ne išče le na glavni, ki 497 00:20:10,600 --> 00:20:13,930 je privzeta funkcija je, ko zelena zastava kliknili enakovredni, 498 00:20:13,930 --> 00:20:16,999 vendar smo začeli tudi kratko pisanje nekaterih naših lastnih funkcij. 499 00:20:16,999 --> 00:20:20,040 In doslej nobena od teh funkcij so bila zlasti velika ali mesnat. 500 00:20:20,040 --> 00:20:24,570 Boste dobili v tiste večje Funkcije verjetno, P sklopa 2, P določi 3, 501 00:20:24,570 --> 00:20:26,410 definitivno P nastavite 4 in naprej. 502 00:20:26,410 --> 00:20:29,340 Zdaj je večina vaših programov, če že ne vse od njih, zagotovo za P 503 00:20:29,340 --> 00:20:31,550 sklop 1 se lahko izvede v celoti, v glavnem. 504 00:20:31,550 --> 00:20:33,810 Če vaš program je le pet vrstic, 10 vrstic, 505 00:20:33,810 --> 00:20:37,070 celo 20 vrstic, popolnoma razumno napisati 506 00:20:37,070 --> 00:20:40,930 vse v glavni in ne čez zaplete kodo, ampak kaj smo danes počne 507 00:20:40,930 --> 00:20:44,360 in naprej poskuša tudi uvesti nekaj dobrih tehnik oblikovanja 508 00:20:44,360 --> 00:20:48,660 tako da, kot je vaša koda postane bolj zapleteno in tudi težave 509 00:20:48,660 --> 00:20:51,690 hočeš rešiti dobili težje in bolj zanimivo imate, nekako, 510 00:20:51,690 --> 00:20:55,850 orodje v vašem orodjarni, s katerim oblikovati dobre rešitve za tiste. 511 00:20:55,850 --> 00:21:01,210 >> Torej, kaj je na hitro pogledamo nazaj ta program od mojega zadnjega tedna, ki 512 00:21:01,210 --> 00:21:06,550 je funkcije nič pika C in opazili, da je precej enostavno, 513 00:21:06,550 --> 00:21:10,310 izgleda, da je ta z dvema funkcije, glavni in ime s tiskanimi črkami. 514 00:21:10,310 --> 00:21:13,160 In razmišljam nazaj ali morda reverse danes inženiring, 515 00:21:13,160 --> 00:21:16,880 kakšna je bila motivacija za uvedbo funkcijo v liniji 28 klical 516 00:21:16,880 --> 00:21:18,180 Ime print? 517 00:21:18,180 --> 00:21:21,745 Ali kaj je bil to primer v Pogoji načelno ali takeaway, 518 00:21:21,745 --> 00:21:22,605 če bi. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Nekateri šumi. 521 00:21:27,300 --> 00:21:28,830 Kaj? 522 00:21:28,830 --> 00:21:32,210 >> Ja tako Funkcionalna razpadanja je nekako fancy način rekel, 523 00:21:32,210 --> 00:21:34,690 razpadejo svoj program v njegovih sestavnih delov 524 00:21:34,690 --> 00:21:37,530 in nato uporabite tiste dele sestaviti celoto. 525 00:21:37,530 --> 00:21:39,620 Tako, da je tudi nekako zalogaja že, 526 00:21:39,620 --> 00:21:42,050 vendar je to morda celo boljši primer nečesa 527 00:21:42,050 --> 00:21:43,081 pravkar klical abstrakcija. 528 00:21:43,081 --> 00:21:43,580 Prav? 529 00:21:43,580 --> 00:21:46,950 Črpanje se bo eden od ponavljajočih se tem v CS50 530 00:21:46,950 --> 00:21:49,085 in tudi računalništvo bolj splošno, saj je 531 00:21:49,085 --> 00:21:53,060 tehnika, s katero lahko rešili Težave bolj učinkovito, saj vas 532 00:21:53,060 --> 00:21:56,807 Lahko napišete rešitev več intuitivno in na način, da je na tehtnici 533 00:21:56,807 --> 00:21:58,390 in je razumljivo, z drugimi ljudmi. 534 00:21:58,390 --> 00:21:59,860 Kaj mislim s tem? 535 00:21:59,860 --> 00:22:04,340 >> Torej, verjetno je veliko bolj berljivo gledati program, kot je ta, 536 00:22:04,340 --> 00:22:05,990 zelo kratka, čeprav je. 537 00:22:05,990 --> 00:22:10,050 Ko vidite na liniji 22, da obstaja funkcija se imenuje, ime print. 538 00:22:10,050 --> 00:22:12,620 Sam to ime pove kaj počne. 539 00:22:12,620 --> 00:22:15,780 Ta funkcija je očitno potrebno vhod med njenimi oklepajih 540 00:22:15,780 --> 00:22:18,600 in očitno počne nekaj, predvidoma natisne ime. 541 00:22:18,600 --> 00:22:20,880 In tako, čeprav smo absolutno bi morali 542 00:22:20,880 --> 00:22:25,280 storiti kaj smo naredili pred tednom dni, ki je bil vzemite to dejansko vrstico kode, 543 00:22:25,280 --> 00:22:28,710 znebiti tega, in dobili znebili to vse skupaj, 544 00:22:28,710 --> 00:22:31,436 smo nekako načrpane stran pojem tiskanje imena. 545 00:22:31,436 --> 00:22:33,060 Briga me, če uporabljate tiskalne def. 546 00:22:33,060 --> 00:22:35,601 Briga me, če imate odstotkov S in poševnica nazaj N. To 547 00:22:35,601 --> 00:22:37,270 so neverjetno Skrivnosten podrobnosti. 548 00:22:37,270 --> 00:22:40,090 Kaj mi mar kot programer je tiskanje imena. 549 00:22:40,090 --> 00:22:43,414 In tako, kaj je boljši način za to, da kot ga kliče funkcijo, ime tisk? 550 00:22:43,414 --> 00:22:46,330 In tako, da je bil eden od motivov za kaj takega počneš. 551 00:22:46,330 --> 00:22:50,370 Making koda bolj berljiva, več za enkratno uporabo, in tudi samo opisno. 552 00:22:50,370 --> 00:22:52,120 Zdaj pa si oglejte v drugem primeru 553 00:22:52,120 --> 00:22:56,220 ki je bil funkcije ena, ki smo jih imeli tukaj. 554 00:22:56,220 --> 00:23:00,367 >> Torej, ta je morda še bolj prepričljivi, ker v tem primeru 555 00:23:00,367 --> 00:23:01,700 Nočem, da bi le dobili int. 556 00:23:01,700 --> 00:23:03,320 Želim, da bi dobili pozitiven int. 557 00:23:03,320 --> 00:23:06,470 In se je izkazalo, da bi dobili pozitiven int moraš narediti kup legwork. 558 00:23:06,470 --> 00:23:06,969 Prav? 559 00:23:06,969 --> 00:23:09,600 To ni preprosto ena vrstica klic, kot je bilo ime print, 560 00:23:09,600 --> 00:23:11,480 kar je sicer manj prepričljivi. 561 00:23:11,480 --> 00:23:16,000 >> Da bi dobili pozitivno int, logically-- Naj se pomaknete nazaj skrivati ​​to. 562 00:23:16,000 --> 00:23:18,887 Kaj morate storiti? 563 00:23:18,887 --> 00:23:20,720 Tako kot vsa orodja, ki jih imajo v tem trenutku 564 00:23:20,720 --> 00:23:24,440 Stvari, kot so tiskani def iz standarda Knjižnica in tudi iz CS50 knjižnici 565 00:23:24,440 --> 00:23:26,990 imamo Get Int, in Get Float, Get Long Long, dobili String, 566 00:23:26,990 --> 00:23:29,260 vendar je le eden, nem, zdaj je Get Int. 567 00:23:29,260 --> 00:23:32,970 Torej, če je le orodje, ki ga ima V vašem orodje polje je Get Int, 568 00:23:32,970 --> 00:23:35,505 kako bomo šli o izvajanju to, da bi dobili pozitiven int? 569 00:23:35,505 --> 00:23:35,929 >> OBČINSTVO: Ustvarite dnevnik in preverite o tem, ali je vhodni da dobimo 570 00:23:35,929 --> 00:23:36,762 je bil pozitiven ali ne. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> SPEAKER 1: Popolno. 573 00:23:40,640 --> 00:23:41,200 Točno tako. 574 00:23:41,200 --> 00:23:43,950 Drugo orodje imamo v našem toolbox od teden ali dva nazaj 575 00:23:43,950 --> 00:23:45,419 je samo zanka konstrukt. 576 00:23:45,419 --> 00:23:48,210 In tako, ja, če bomo uporabili nekaj časa zanka ali naredi medtem zanke ali prednji 577 00:23:48,210 --> 00:23:50,850 zanka smo lahko verjetno pobegniti s katerim koli od tistih v neki obliki. 578 00:23:50,850 --> 00:23:55,140 Mi lahko izvajajo pojem get Pozitiven int, ki jih samo z uporabo Get Int, 579 00:23:55,140 --> 00:23:57,830 in potem kar naprej kliče znova in obdržati gnjaviti uporabnika 580 00:23:57,830 --> 00:24:00,320 dokler on ali ona dejansko nam daje tisto, kar želimo. 581 00:24:00,320 --> 00:24:03,260 >> In zdaj, to abstrakcija procesa 582 00:24:03,260 --> 00:24:05,680 dobili pozitivno int v odvisnosti imenovano 583 00:24:05,680 --> 00:24:08,930 Pridobite Pozitivni Int je malo bolj prepričljiv, ker poglej tole. 584 00:24:08,930 --> 00:24:10,990 To so, kot 10 plus vrstic kode, ki 585 00:24:10,990 --> 00:24:15,090 sodelujejo pri pridobivanju pozitivne int, in res ne skrbi, kako si to naredil. 586 00:24:15,090 --> 00:24:17,850 Vse me skrbi, je, da vas lahko to storite, in zato sem imel 587 00:24:17,850 --> 00:24:21,660 skrite vse te podrobnosti izza Funkcija se imenuje Get Positive int, da 588 00:24:21,660 --> 00:24:23,430 Dejansko je to storila, medtem ko zanke. 589 00:24:23,430 --> 00:24:27,660 >> In glej prejšnji teden za sintakso tam, ampak to šele izjavlja N, 590 00:24:27,660 --> 00:24:29,800 in ga natisne ven navodila za uporabnika. 591 00:24:29,800 --> 00:24:33,330 Poziva Get Int in potem preveri Ponovno je to stanje, in ponovno, 592 00:24:33,330 --> 00:24:35,230 in znova, dokler uporabnik ne sodeluje. 593 00:24:35,230 --> 00:24:38,000 >> Torej, zdaj, nekaj pregledih prištevnosti. 594 00:24:38,000 --> 00:24:40,370 Za tiste, ki morda pozna z nekaj programiranja, 595 00:24:40,370 --> 00:24:46,410 zakaj je N izjavil, zakaj sem ustvaril N izven Opravilo while zanka? 596 00:24:46,410 --> 00:24:50,370 Zakaj je to na liniji 29 in ne na kot 33, na primer. 597 00:24:50,370 --> 00:24:53,529 >> OBČINSTVO: Ker, ko vas jo razglasi zunaj, tako nekako 598 00:24:53,529 --> 00:24:56,688 več, večji scope-- 599 00:24:56,688 --> 00:24:58,146 >> SPEAKER 1: Dobro. 600 00:24:58,146 --> 00:24:59,604 >> OBČINSTVO: --and če razglasi je v notranjosti zanke, [neslišno] 601 00:24:59,604 --> 00:25:00,979 ker ne ve o tem. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 SPEAKER 1: Točno tako. 604 00:25:03,610 --> 00:25:06,330 Če sem lahko simplify-- to je vprašanje obsega. 605 00:25:06,330 --> 00:25:11,530 In področje se nanaša na kontekst v ki spremenljivka obstaja ali je uporabna. 606 00:25:11,530 --> 00:25:15,050 In lepo pravilo tukaj je, da na splošno, ko izjavi, ali pa ustvarite 607 00:25:15,050 --> 00:25:21,642 spremenljivka ga lahko uporabljate le znotraj od najbližje sprejemajo zavitimi oklepaji. 608 00:25:21,642 --> 00:25:22,600 Torej, kaj to pomeni? 609 00:25:22,600 --> 00:25:26,551 Če sem, namesto, razveljavite to in iti z nekaj, da se počuti nekoliko enostavnejši. 610 00:25:26,551 --> 00:25:27,050 Prav? 611 00:25:27,050 --> 00:25:29,360 >> Line 32 samo izgleda čistejše, da me zdaj. 612 00:25:29,360 --> 00:25:31,500 Delam obe stvari na enkrat, nato dodeljevanje 613 00:25:31,500 --> 00:25:33,070 desno roko na levo roko. 614 00:25:33,070 --> 00:25:35,180 Problem sedaj temelji na da opredelitev področja 615 00:25:35,180 --> 00:25:41,130 je ta N se lahko uporabljajo v vrsticah 31 in 32 znotraj te zanke 616 00:25:41,130 --> 00:25:45,100 kjer pa jih ta opredelitev Lahko se ne uporablja? 617 00:25:45,100 --> 00:25:45,660 V skladu kaj? 618 00:25:45,660 --> 00:25:46,160 Ja. 619 00:25:46,160 --> 00:25:47,490 >> OBČINSTVO: 35. 620 00:25:47,490 --> 00:25:49,180 >> SPEAKER 1: 35. 621 00:25:49,180 --> 00:25:50,480 Zagotovo ne 35. 622 00:25:50,480 --> 00:25:52,349 In kje tudi drugje? 623 00:25:52,349 --> 00:25:52,890 OBČINSTVO: 34. 624 00:25:52,890 --> 00:25:55,040 SPEAKER 1: Tudi 34 je problematično, saj je 625 00:25:55,040 --> 00:25:56,450 izven zavitimi oklepaji. 626 00:25:56,450 --> 00:25:58,200 In tako v resnici, da vidimo, kaj se zgodi. 627 00:25:58,200 --> 00:25:58,700 Prav? 628 00:25:58,700 --> 00:26:00,722 To se lahko zdi malo intuitivno, ali morda ne, 629 00:26:00,722 --> 00:26:02,680 ampak poglejmo, kaj prevajalnik ima za povedati, ko 630 00:26:02,680 --> 00:26:04,730 gremo v današnjem imeniku izvorne kode. 631 00:26:04,730 --> 00:26:08,950 Naredite funkcijo eno. 632 00:26:08,950 --> 00:26:11,231 O moj bog. 633 00:26:11,231 --> 00:26:12,980 No, sem končno končal ki, mimogrede. 634 00:26:12,980 --> 00:26:14,030 V redu. 635 00:26:14,030 --> 00:26:15,510 In kaj je problem tukaj? 636 00:26:15,510 --> 00:26:17,430 Zelo Skrivnosten gledati. 637 00:26:17,430 --> 00:26:19,570 Ampak tukaj je tisto, kar sem typed-- da funkcijo eno. 638 00:26:19,570 --> 00:26:21,640 Tukaj je tisto, kar bi povzročil, ki je pravzaprav 639 00:26:21,640 --> 00:26:23,705 uporabi prevajalnik Jek z nekaterimi od teh zastavice 640 00:26:23,705 --> 00:26:25,080 da bomo spet videli kmalu. 641 00:26:25,080 --> 00:26:26,829 In spet, vedno videti na prvi napake, 642 00:26:26,829 --> 00:26:30,540 ker bi to samo še kaskadno nesmiselna, učinek na drugih progah. 643 00:26:30,540 --> 00:26:34,410 >> Torej, kaj to pomeni, da je Problem je v funkciji 1.C. 644 00:26:34,410 --> 00:26:36,890 To je na liniji 32. 645 00:26:36,890 --> 00:26:39,712 In to je v stolpcu ali značaja, 13. 646 00:26:39,712 --> 00:26:42,670 Torej, ko vaš urejevalnik besedila, ki lahko vam pomaga ugotoviti, kje je težava. 647 00:26:42,670 --> 00:26:47,079 Torej, če sem se pomaknite navzgor, kar je linija 32? 648 00:26:47,079 --> 00:26:49,120 To je res to ena ki je že izpostavil 649 00:26:49,120 --> 00:26:50,607 Pravica here-- unused spremenljivka n. 650 00:26:50,607 --> 00:26:51,440 Ampak to ni neizkoriščena. 651 00:26:51,440 --> 00:26:52,320 Jaz sem ga uporabljate. 652 00:26:52,320 --> 00:26:56,110 Ampak prevajalnik je zmeden, ker obstaja samo znotraj tega področja. 653 00:26:56,110 --> 00:26:57,727 In tako ga ne morem uporabiti tukaj. 654 00:26:57,727 --> 00:26:58,560 Ne morem uporabljati tu. 655 00:26:58,560 --> 00:27:01,320 In prevajalnik, zato sploh ne briga, da sem poskušal. 656 00:27:01,320 --> 00:27:03,940 Zdi se, da neuporabljena na njenem dejanskem obsegu. 657 00:27:03,940 --> 00:27:08,854 >> Tako smo lahko razširili obseg s tem točno to, kar smo začeli with-- int n. 658 00:27:08,854 --> 00:27:11,020 In čeprav ne videti tako elegantno, morda, 659 00:27:11,020 --> 00:27:15,110 in smo pri tem dodatno linijo tukaj, zdaj pa je po obsegu povsod. 660 00:27:15,110 --> 00:27:15,970 Torej, poskusimo znova. 661 00:27:15,970 --> 00:27:19,040 Torej bi funkcijo eno. 662 00:27:19,040 --> 00:27:19,610 Lepo. 663 00:27:19,610 --> 00:27:23,370 In zdaj, če sem, če sem teči funkcijo ena, dajmo to negativno 10, 664 00:27:23,370 --> 00:27:27,170 negativna 1, 0, 1, in to dejansko deluje. 665 00:27:27,170 --> 00:27:28,610 >> Torej obstaja druga rešitev tukaj. 666 00:27:28,610 --> 00:27:29,280 Veš kaj? 667 00:27:29,280 --> 00:27:31,230 Kaj pa, če sem res jaz spopadam s tem? 668 00:27:31,230 --> 00:27:33,140 Ne vem, če je n je moral iti. 669 00:27:33,140 --> 00:27:33,723 Veš kaj? 670 00:27:33,723 --> 00:27:39,220 Jaz sem le, da bo dal vse Tako na vrhu moje datoteke tukaj. 671 00:27:39,220 --> 00:27:42,835 Kaj bi to storili, pa ti misliš? 672 00:27:42,835 --> 00:27:43,335 Ja? 673 00:27:43,335 --> 00:27:44,251 >> OBČINSTVO: [neslišno]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 SPEAKER 1: Ja. 676 00:27:48,630 --> 00:27:50,560 Tako sem je bilo po vsem svetu, tako rekoč. 677 00:27:50,560 --> 00:27:54,430 Če imate spremenljivko, ki je zunaj vse svoje funkcije, je dovoljeno, 678 00:27:54,430 --> 00:27:58,780 in koda je treba zbrati, in n Zdaj bo dostopna ne samo v get 679 00:27:58,780 --> 00:28:02,490 pozitiven int, ampak tudi v main-- kateri je malo zaskrbljujoče zato, ker je 680 00:28:02,490 --> 00:28:04,864 že n v glavnem, tako da več na to v samo moment-- 681 00:28:04,864 --> 00:28:06,530 vendar bi se to šteje za slabo načrtovanje. 682 00:28:06,530 --> 00:28:06,910 V redu. 683 00:28:06,910 --> 00:28:08,570 Če boste morali zateči k nekaj podobnega, oh, bom 684 00:28:08,570 --> 00:28:10,125 Samo dal sem, ker gor koda se zdi, da zbere 685 00:28:10,125 --> 00:28:12,180 je na splošno ni najboljša praksa. 686 00:28:12,180 --> 00:28:14,590 Namesto želite izbrati najožji možni obseg 687 00:28:14,590 --> 00:28:18,720 za spremenljivke, kar bi pomenilo, dogaja z našo prvotno zasnovo, ki 688 00:28:18,720 --> 00:28:19,920 je tukaj. 689 00:28:19,920 --> 00:28:24,400 >> Zdaj kot prahi, če ste imeli enako poimenovana-tukaj spremenljivka, 690 00:28:24,400 --> 00:28:27,750 način c bi ročaj this-- čeprav to ne bo zgodilo preveč often-- 691 00:28:27,750 --> 00:28:30,150 je, da je to še vedno popolnoma v redu sem. 692 00:28:30,150 --> 00:28:35,000 Toda ta definicija n v skladu 22 bo senci svetovnega enega. 693 00:28:35,000 --> 00:28:38,190 Tako da bo tale delo v Glavni in globalna 694 00:28:38,190 --> 00:28:41,670 bo dejansko uporabljati, ko ste v dobili pozitiven int Ampak več o tem 695 00:28:41,670 --> 00:28:43,890 en čas, ampak samo za tiste, radoveden. 696 00:28:43,890 --> 00:28:45,970 >> Torej na kratko, bomo popraviti to tukaj. 697 00:28:45,970 --> 00:28:49,220 Zdaj pa draži narazen dva druga preden gledamo na eni zadnji vrstici kode 698 00:28:49,220 --> 00:28:50,170 v tem programu. 699 00:28:50,170 --> 00:28:52,170 Dobili pozitivno int. 700 00:28:52,170 --> 00:28:54,450 Na levi strani njegova beseda je beseda int. 701 00:28:54,450 --> 00:28:56,860 Kaj to pomeni, pa ti misliš? 702 00:28:56,860 --> 00:28:58,900 Tako daleč smo večinoma videli neveljavne. 703 00:28:58,900 --> 00:28:59,400 Ja? 704 00:28:59,400 --> 00:29:01,810 >> OBČINSTVO: To je tip spremenljivka, ki ste spraševali. 705 00:29:01,810 --> 00:29:04,550 >> SPEAKER 1: Ja To je tip, naj me ne govori spremenljiva, vendar vrsta vrednosti 706 00:29:04,550 --> 00:29:05,990 da jaz vprašam nazaj. 707 00:29:05,990 --> 00:29:08,070 In res, da je intuitivno tukaj, upam. 708 00:29:08,070 --> 00:29:08,200 Prav? 709 00:29:08,200 --> 00:29:10,250 Če želite, da bi dobili pozitiven int, kaj je to, kar 710 00:29:10,250 --> 00:29:12,920 želijo function-- kot naš prostovoljci iz zadnjem tednu 711 00:29:12,920 --> 00:29:15,720 vam vrniti košček papirja z notr na njej? 712 00:29:15,720 --> 00:29:19,190 In tako smo navedli, da ti tip rezultata te funkcije 713 00:29:19,190 --> 00:29:20,450 je dobil pozitivno int. 714 00:29:20,450 --> 00:29:22,990 Če je nismo želeli vrne ničesar, pravite nična. 715 00:29:22,990 --> 00:29:25,270 Če želite, da se vrnete niz, pravite niz. 716 00:29:25,270 --> 00:29:27,310 Če želite, da se vrnete plovec, pravite plovec. 717 00:29:27,310 --> 00:29:30,440 Ampak samo tisti, ki se uporablja tu logično, saj sem z get int, 718 00:29:30,440 --> 00:29:34,130 čeprav jo bom omejil na pozitivne vrednosti, je, da se vrne int. 719 00:29:34,130 --> 00:29:38,380 >> Torej nasprotno, kaj to pomeni da obstaja praznina v oklepaju? 720 00:29:38,380 --> 00:29:40,130 Kaj storiti z oklepaji na splošno opredeliti? 721 00:29:40,130 --> 00:29:40,588 Ja? 722 00:29:40,588 --> 00:29:42,880 >> OBČINSTVO: To pomeni, da je funkcija je dejansko ne dojemaš. 723 00:29:42,880 --> 00:29:44,650 >> SPEAKER 1: To pomeni, da je funkcija je dejansko ne dobiš kaj? 724 00:29:44,650 --> 00:29:45,430 >> OBČINSTVO: An vhod. 725 00:29:45,430 --> 00:29:46,763 >> SPEAKER 1: vhod, whatsoever. 726 00:29:46,763 --> 00:29:49,870 Torej res, če oklepaj Tu lahko določite nična, 727 00:29:49,870 --> 00:29:51,650 to samo pomeni, nočem nobenega vnosa. 728 00:29:51,650 --> 00:29:53,269 Bom se ukvarjajo s problemom sam. 729 00:29:53,269 --> 00:29:55,810 In res, ti ne bi bilo treba povej dobili pozitivno int ničesar. 730 00:29:55,810 --> 00:29:59,630 Pravkar ste rekli, dobili pozitivno int, in da Funkcija bo ugasnila in narediti svojo stvar. 731 00:29:59,630 --> 00:30:02,970 >> Vendar je bilo malo trik Sem bil tukaj igral ves ta čas 732 00:30:02,970 --> 00:30:04,970 zagotoviti, da to kodo prevede. 733 00:30:04,970 --> 00:30:09,620 Obvestilo, da int-- dobili pozitiven int void-- je na liniji 27. 734 00:30:09,620 --> 00:30:14,530 Toda za nekatere na videz čudno razloga je tudi tu gor na linijo 16. 735 00:30:14,530 --> 00:30:18,530 In samo za dober ukrep bom ponoviti to tako, da je popolnoma enaka. 736 00:30:18,530 --> 00:30:21,640 In sem rekel prototip z malo enovrstični komentar. 737 00:30:21,640 --> 00:30:28,850 Kaj se zgodi, če izbrišem da, In zdaj ponovljena bo funkcija 1, vstop. 738 00:30:28,850 --> 00:30:29,350 Ops. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Počakaj minuto. 741 00:30:33,110 --> 00:30:34,764 Kje je moj jeziček? 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 Ostani v pripravljenosti. 745 00:30:39,620 --> 00:30:41,570 Naredite funkcijo 1. 746 00:30:41,570 --> 00:30:42,150 Tam gremo. 747 00:30:42,150 --> 00:30:42,310 V REDU. 748 00:30:42,310 --> 00:30:43,400 Ne bi pravilno shranjeno. 749 00:30:43,400 --> 00:30:45,220 Torej, mislim, da je malo bug tukaj, kjer sem, ne 750 00:30:45,220 --> 00:30:46,636 videnje ime zavihek v tem trenutku. 751 00:30:46,636 --> 00:30:47,940 Torej, kaj se dogaja tukaj? 752 00:30:47,940 --> 00:30:52,210 Implicitno izjavo o funkciji dobili pozitivno int je ničen v C99. 753 00:30:52,210 --> 00:30:53,940 Torej, še enkrat zmedeno. 754 00:30:53,940 --> 00:30:55,200 Torej, kaj je ta znak? 755 00:30:55,200 --> 00:30:57,287 No, izkaže se, da C je precej neumno. 756 00:30:57,287 --> 00:30:59,912 No, to je programiranje jezik, ali raje prevajalnik je. 757 00:30:59,912 --> 00:31:02,940 To samo ve, kaj imate ga je učil, in to je samo 758 00:31:02,940 --> 00:31:05,640 bo vedel, kaj če ga je učil prej. 759 00:31:05,640 --> 00:31:07,960 Z drugimi besedami, Glavna v tem trenutku, da sem 760 00:31:07,960 --> 00:31:10,900 poskuša poklicati funkcijo imenovano dobili pozitivno int. 761 00:31:10,900 --> 00:31:14,120 Vendar pa je prevajalnik ne bo opazili, da bi dobili pozitiven int 762 00:31:14,120 --> 00:31:16,500 ne obstaja, dokler linijo 26. 763 00:31:16,500 --> 00:31:21,360 In kaj prevajalnik pa je le napake takoj, ko ga dobi na linijo 17, 764 00:31:21,360 --> 00:31:23,700 rekoč implicitno izjavo od dobili pozitivno int, ki 765 00:31:23,700 --> 00:31:27,740 je samo fancy način rekel, jaz ne vem, kaj bi dobili pozitiven int je še. 766 00:31:27,740 --> 00:31:31,240 >> Drugi jeziki, kot je Java in Python in Ruby morda pogled v prihodnost. 767 00:31:31,240 --> 00:31:32,240 C ne. 768 00:31:32,240 --> 00:31:35,110 In tako naš način popraviti To je ena izmed dveh načinov. 769 00:31:35,110 --> 00:31:40,160 Eden, če je problem, da bi dobili pozitiven int ni videl, 770 00:31:40,160 --> 00:31:42,150 dobro, mi je le korak do vrha. 771 00:31:42,150 --> 00:31:43,650 Da bi rešili ta problem. 772 00:31:43,650 --> 00:31:46,790 Ampak na splošno, to je šteje boljša tehnika 773 00:31:46,790 --> 00:31:50,220 postaviti svojo glavno funkcijo na zelo top, tako da človek bere kodo 774 00:31:50,220 --> 00:31:52,710 ve, kaj je program, ker glavni ni pokopan vse 775 00:31:52,710 --> 00:31:53,960 pot na dnu ali v sredini. 776 00:31:53,960 --> 00:31:55,130 To je na samem vrhu. 777 00:31:55,130 --> 00:31:56,410 Tako da se ne počutim idealno. 778 00:31:56,410 --> 00:31:58,326 In lahko dejansko dobili v situacijah, ko 779 00:31:58,326 --> 00:32:00,820 če klici funkcij drugo, ki poziva k drugemu 780 00:32:00,820 --> 00:32:04,630 lahko dobite na vprašanje, kjer ne more iti nad drugo logično. 781 00:32:04,630 --> 00:32:05,920 To preprosto ni mogoče. 782 00:32:05,920 --> 00:32:09,290 >> In tako pot na delo okrog je to vzemite 783 00:32:09,290 --> 00:32:13,200 podpis funkciji, tako da speak-- prva linija, kjer je declared-- 784 00:32:13,200 --> 00:32:16,850 in samo kopirate, prilepite Na top, vendar ne z kodrasti braces-- 785 00:32:16,850 --> 00:32:17,980 samo s podpičjem. 786 00:32:17,980 --> 00:32:20,840 To je kot majhen namig o tem, kaj nas čaka v prihodnosti. 787 00:32:20,840 --> 00:32:26,630 In dejansko vse te ko smo so videli stvari, kot so standardni io.h 788 00:32:26,630 --> 00:32:33,040 in cs50.h podobno, v tisti dot h datoteke obstajajo drugi prototipi. 789 00:32:33,040 --> 00:32:35,250 In bomo videli, da je pred dolgo. 790 00:32:35,250 --> 00:32:39,340 >> Torej na kratko, če imate program v datoteki z več funkcijami 791 00:32:39,340 --> 00:32:42,300 poleg glavnega, boste skoraj vedno želeli, da jih razglasi 792 00:32:42,300 --> 00:32:45,360 samo s pomočjo njihova prva linija, ki mu sledi s podpičjem, 793 00:32:45,360 --> 00:32:48,410 na samem vrhu datoteke. 794 00:32:48,410 --> 00:32:50,460 To je bilo veliko naenkrat. 795 00:32:50,460 --> 00:32:53,130 Kakšno vprašanje? 796 00:32:53,130 --> 00:32:53,920 Kakšno vprašanje? 797 00:32:53,920 --> 00:32:54,530 V redu. 798 00:32:54,530 --> 00:32:59,760 >> Torej, pojdimo na takrat nekaj podobnega kašelj. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 Kako opremljanja. 801 00:33:00,570 --> 00:33:01,220 V redu. 802 00:33:01,220 --> 00:33:02,260 Kašelj. 803 00:33:02,260 --> 00:33:05,080 Torej, tukaj je c izvajanje programa 804 00:33:05,080 --> 00:33:07,560 smo drugi dan v Scratch, da je zelo preprosto samo 805 00:33:07,560 --> 00:33:08,691 pravi, kašelj, kašelj, kašelj. 806 00:33:08,691 --> 00:33:09,190 V redu. 807 00:33:09,190 --> 00:33:11,136 In nekdo rekel nekaj pred dnevi, da obstaja 808 00:33:11,136 --> 00:33:12,760 način čiščenja to kodo gor že. 809 00:33:12,760 --> 00:33:12,880 V redu? 810 00:33:12,880 --> 00:33:15,440 Takoj, ko ste kopiranje in prilepite verjetno slab design. 811 00:33:15,440 --> 00:33:18,725 Vsaj enkrat pridemo do štiri ali pet ali 20 kašlja, se počuti slabo prakso. 812 00:33:18,725 --> 00:33:19,850 Pravkar smo obdržati kopijo, lepljenje. 813 00:33:19,850 --> 00:33:22,213 Kakšna je očitna rešitev za čiščenje, je ta program gor? 814 00:33:22,213 --> 00:33:23,120 >> OBČINSTVO: Loop. 815 00:33:23,120 --> 00:33:23,350 >> SPEAKER 1: Ja. 816 00:33:23,350 --> 00:33:24,070 Torej uporabiti zanko. 817 00:33:24,070 --> 00:33:27,697 In smo lahko uporabite za zanko, nekaj časa zanka, poljubno število pristopov. 818 00:33:27,697 --> 00:33:29,780 In res, da je kaj delamo v različici eni tukaj. 819 00:33:29,780 --> 00:33:32,250 Sem namesto da ga predelajo v različici enem od cough.c 820 00:33:32,250 --> 00:33:35,170 da je samo kašelj v za-zanke. 821 00:33:35,170 --> 00:33:38,240 Vse je v redu, ampak tam je priložnost sedaj na vrsto začetek 822 00:33:38,240 --> 00:33:41,630 oblikovati to malo več kot lekcija smo naučil pred nekaj trenutki, 823 00:33:41,630 --> 00:33:46,190 ki je this-- Predvidevam, da sem si želel ustvariti funkcijo imenovano kašelj, 824 00:33:46,190 --> 00:33:49,730 kaj menijo, za trenutek kaj se dogaja, bi izgledal. 825 00:33:49,730 --> 00:33:51,900 Torej, če kaj hočem kašelj, samo rabim 826 00:33:51,900 --> 00:33:53,800 Za uporabo tiskalno f notranjosti funkcijo. 827 00:33:53,800 --> 00:33:55,030 In res sem. 828 00:33:55,030 --> 00:33:56,990 In v bistvu vse to čas, vsakič, ko ste 829 00:33:56,990 --> 00:33:59,000 Nekaj ​​tiskanje zaslon, programer 830 00:33:59,000 --> 00:34:00,610 bi rekel, da je stranski učinek. 831 00:34:00,610 --> 00:34:02,990 To nisem jaz odnesete nazaj nekdo vrednost. 832 00:34:02,990 --> 00:34:06,170 To se mi je ob nekaj ukrepov da je lahko vizualno očitna. 833 00:34:06,170 --> 00:34:10,672 Toda ta funkcija kašelj, ne vrne vse temelji na svoji prvi vrstici? 834 00:34:10,672 --> 00:34:12,880 Ne, ker svojega tipa vračanja je nična, kar pomeni le 835 00:34:12,880 --> 00:34:14,250 to ni mi deliti ničesar nazaj. 836 00:34:14,250 --> 00:34:16,791 To lahko počne nekaj vizualno, vendar to ni me odnesete 837 00:34:16,791 --> 00:34:18,639 nazaj na kos papirja tako kot prejšnji teden. 838 00:34:18,639 --> 00:34:21,310 >> Ali je treba vse surovine? 839 00:34:21,310 --> 00:34:21,810 No. 840 00:34:21,810 --> 00:34:23,134 In zato je ničen tudi tukaj. 841 00:34:23,134 --> 00:34:25,600 Torej, tudi to je nekako over-inženiring ta problem. 842 00:34:25,600 --> 00:34:26,099 Prav? 843 00:34:26,099 --> 00:34:28,820 Naredil sem program bolj kompleksni, več vrstic kode, 844 00:34:28,820 --> 00:34:31,889 Nisem ga kar koli bolj funkcionalna, vendar je to 845 00:34:31,889 --> 00:34:34,210 bi bila mejnik, morda, za širši 846 00:34:34,210 --> 00:34:36,830 kontekst z bolj zapleteno kodo. 847 00:34:36,830 --> 00:34:38,150 Kaj pa je to? 848 00:34:38,150 --> 00:34:42,050 Kaj sem done-- pravkar pogledal na to ne gledaš komentarja 849 00:34:42,050 --> 00:34:46,076 na samem vrhu file-- kaj imajo V bistvu sem tukaj naredil z mojim kašljem 850 00:34:46,076 --> 00:34:47,409 izvedba, ki je drugačen? 851 00:34:47,409 --> 00:34:48,327 Ja, v hrbtu? 852 00:34:48,327 --> 00:34:51,384 >> OBČINSTVO: Naredite ga tako lahko imajo značaj izklopiti. 853 00:34:51,384 --> 00:34:52,050 SPEAKER 1: Ja. 854 00:34:52,050 --> 00:34:53,270 Torej, to čuti nekako lepo. 855 00:34:53,270 --> 00:34:53,389 Prav? 856 00:34:53,389 --> 00:34:56,600 To je, kot dodaja funkcijo za vaš Program ali vaša funkcija v tem primeru. 857 00:34:56,600 --> 00:34:57,830 Še vedno vrne ničesar. 858 00:34:57,830 --> 00:35:00,538 Morda ima vidni stranski učinek, saj kliče tiskanja f. 859 00:35:00,538 --> 00:35:02,800 Ampak zdaj sem parametriziramo funkcija, ki 860 00:35:02,800 --> 00:35:06,470 pomeni, da sem bila določena v sprejeti vhod tipa int in ga imenujemo n, 861 00:35:06,470 --> 00:35:08,510 ampak sem ga lahko pokličete karkoli hočem. 862 00:35:08,510 --> 00:35:11,550 Pravzaprav bi to šele bo časi, da bo še bolj eksplicitno. 863 00:35:11,550 --> 00:35:13,310 In potem sem lahko samo spremeni to tukaj. 864 00:35:13,310 --> 00:35:16,450 Ampak bistvo je, da je to, kako sem ustvariti funkcijo, ki ima vhod. 865 00:35:16,450 --> 00:35:19,530 In če se spomnimo lahkota skozi morda na spletu v enem 866 00:35:19,530 --> 00:35:23,000 od sprehod-kanale je Četrti in zadnji primer kašelj, 867 00:35:23,000 --> 00:35:27,150 boste opazili, tukaj sem generalizirana moja koda further-- vrsta odvzete 868 00:35:27,150 --> 00:35:27,690 nadalje. 869 00:35:27,690 --> 00:35:31,390 Kot so kašelj in kihanja, oba sta o, kot bi rekel kaj ali dajanje 870 00:35:31,390 --> 00:35:32,330 nekakšen zvok. 871 00:35:32,330 --> 00:35:34,725 Shrani bi bilo ustreza Scratch blok. 872 00:35:34,725 --> 00:35:37,350 In kaj sem storil v tej različici, ki smo jih lahko samo pogled na, 873 00:35:37,350 --> 00:35:43,170 je kašelj je tako kot pravijo, [kašelj], kašelj, in medtem, kihanje je 874 00:35:43,170 --> 00:35:44,570 kot pravi, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 In tako sem generalizirana izvajanje tistih 876 00:35:46,900 --> 00:35:48,970 do sedaj izvajanjem ta generična funkcija, 877 00:35:48,970 --> 00:35:51,490 reči, ki je zanimiva za današnje namene 878 00:35:51,490 --> 00:35:54,300 samo zato, ker je še vedno nima tip donosa. 879 00:35:54,300 --> 00:35:56,398 Ampak koliko vhodov ima? 880 00:35:56,398 --> 00:35:56,981 OBČINSTVO: Two. 881 00:35:56,981 --> 00:35:57,430 SPEAKER 1: Dva. 882 00:35:57,430 --> 00:35:59,263 In tako, če želite, da sprejme v dveh argumentov, 883 00:35:59,263 --> 00:36:00,710 samo jih ločite z vejico. 884 00:36:00,710 --> 00:36:03,110 In če želite, da potem klic te funkcije, 885 00:36:03,110 --> 00:36:05,800 opazili, da vas samo pokličite recimo, citiram, konec citata, 886 00:36:05,800 --> 00:36:09,090 za prvi argument, skupna n, za drugega argumenta. 887 00:36:09,090 --> 00:36:12,130 Torej še enkrat, bomo morali zdaj gradniki, tako da bomo lahko dejansko 888 00:36:12,130 --> 00:36:15,686 izvajanje nekaterih naših lastnih funkcij. 889 00:36:15,686 --> 00:36:16,570 V redu. 890 00:36:16,570 --> 00:36:19,690 Vsa vprašanja glede te teme? 891 00:36:19,690 --> 00:36:22,400 >> Torej, zdaj pa olupimo nazaj plast, če tako. 892 00:36:22,400 --> 00:36:24,840 In cilj, na koncu, je problem set naslednji teden 893 00:36:24,840 --> 00:36:27,710 se bo na cryptogrophy-- umetnost kodiranja podatkov. 894 00:36:27,710 --> 00:36:30,640 In še posebej, informacije boste imeli šifriranje ali dešifriranje 895 00:36:30,640 --> 00:36:31,605 se bo besedilo. 896 00:36:31,605 --> 00:36:33,980 In tako, da nekako vabi Vprašanje je danes, kot tudi, 897 00:36:33,980 --> 00:36:38,480 kaj se dogaja pod pokrovom z besedilom, ki presega ASCII od nič teden, 898 00:36:38,480 --> 00:36:40,730 in kako lahko dejansko začnejo manipulirati? 899 00:36:40,730 --> 00:36:43,070 Torej, tukaj je ime Zamyla je. 900 00:36:43,070 --> 00:36:47,380 In v besedilu, ki bi se lahko vnaša v podobno funkcijo get niza. 901 00:36:47,380 --> 00:36:52,540 In že sedaj, ko vidite Niz kot this-- Z-A-m-Y-L-A-- 902 00:36:52,540 --> 00:36:56,550 začeti razmišljati o tem, kot da je vsak od teh znakov je v škatli njenih 903 00:36:56,550 --> 00:36:57,050 lastna. 904 00:36:57,050 --> 00:36:59,460 In res, v tednu ali tako je Čas, vsaka od teh poljih 905 00:36:59,460 --> 00:37:04,280 se dogaja, da predstavljajo zelo specifično blok memory-- ugriz pomnilnika. 906 00:37:04,280 --> 00:37:07,050 Torej, vsak od teh pisem, na koncu, bo predstavljala 8 bitov. 907 00:37:07,050 --> 00:37:10,560 In bomo dejansko videli, kaj se dogaja na pod pokrovom v mojem računalniku. 908 00:37:10,560 --> 00:37:13,440 >> Vendar ne zadostuje samo poglej Zamyla 909 00:37:13,440 --> 00:37:17,520 skozi to lečo, pri čemer je vsak izmed ta pisma je v svojem polju. 910 00:37:17,520 --> 00:37:22,697 In dovolj lepo v C smo lahko dostop do vsakega od neposredno teh škatel. 911 00:37:22,697 --> 00:37:25,530 Torej, če želite, da bi dobili prvi črko njenega imena, super enostavno v C. 912 00:37:25,530 --> 00:37:28,410 Če želite, da bi dobili zadnji pismo, super enostavno, kot tudi 913 00:37:28,410 --> 00:37:30,240 s kosom nove sintakse. 914 00:37:30,240 --> 00:37:36,250 >> Tako da sem šel naprej v CS50 IDE in odpirajo godalnim nič pika C. 915 00:37:36,250 --> 00:37:40,270 In v tem primeru tukaj obstaja nekaj novih stvari se dogaja. 916 00:37:40,270 --> 00:37:44,360 Torej, najprej v vrstici 19, ki smo jih videl to before-- get niz. 917 00:37:44,360 --> 00:37:49,840 Torej samo kot preverjanje hitro razumnosti, če bi nekdo ponudi up verbalno 918 00:37:49,840 --> 00:37:52,662 razlaga poljuden od kaj se dogaja v vrstici 19. 919 00:37:52,662 --> 00:37:55,370 Tako kot samo to prevesti v Angleščina, da ne sostanovalec v CS50 920 00:37:55,370 --> 00:37:56,416 bi razumel. 921 00:37:56,416 --> 00:37:56,916 Ja. 922 00:37:56,916 --> 00:37:59,749 >> OBČINSTVO: Have uporabniško vhoda niz in ga shranite na spremenljivo s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 SPEAKER 1: Dobro. 925 00:38:02,600 --> 00:38:05,579 Imeti uporabniški vhod niz in ga shranite na spremenljivo s. 926 00:38:05,579 --> 00:38:06,120 To je super. 927 00:38:06,120 --> 00:38:08,090 Torej na desnem Lepo, pravimo get niz. 928 00:38:08,090 --> 00:38:10,340 Da vrne vrednost da se ni dodeljena 929 00:38:10,340 --> 00:38:14,230 iz desne strani na levo roko stran v spremenljivo imenovano ih, ki je 930 00:38:14,230 --> 00:38:15,950 predviden za shranjevanje niz. 931 00:38:15,950 --> 00:38:16,800 Točno tako. 932 00:38:16,800 --> 00:38:20,000 >> Torej, zdaj vrstici 22, na komentar v vrstici 21, 933 00:38:20,000 --> 00:38:22,780 očitno natisne ta niz en znak na vrstico. 934 00:38:22,780 --> 00:38:23,740 Ampak kako? 935 00:38:23,740 --> 00:38:27,040 Torej, najprej moramo inicializirati I do 0. 936 00:38:27,040 --> 00:38:31,061 In potem, kako bomo prišli do konec imena Zamyla je? 937 00:38:31,061 --> 00:38:32,810 No, na koncu Ime Zamyla, sem lahko 938 00:38:32,810 --> 00:38:38,151 ročno vnesite v zadnjem značaja njeno ime nekako, ali število nje. 939 00:38:38,151 --> 00:38:38,650 Prav? 940 00:38:38,650 --> 00:38:43,500 Če gremo nazaj here-- Ž-A-M-L-- Y-L-A--, da sem lahko vnesete. 941 00:38:43,500 --> 00:38:47,340 Kaj je indeks Zadnje pismo Zamyla je? 942 00:38:47,340 --> 00:38:52,517 Če je to 0-- gledano Like programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Jaz heard-- tako res, zadnje pismo v imenu Zamyla je šesti, 944 00:38:56,570 --> 00:38:58,890 ampak, če štejemo od 0, to se dogaja, da je številka 5. 945 00:38:58,890 --> 00:39:01,320 Tako da se vodijo v mislih. 946 00:39:01,320 --> 00:39:04,929 >> Izkazalo se je, da je funkcija C se imenuje strlen in nazaj v dan 947 00:39:04,929 --> 00:39:06,720 in do danes še vedno, Veliko programerjev 948 00:39:06,720 --> 00:39:09,524 odločijo za sinhronizacijo imen za svoje Funkcije, ki zvenijo kot besede 949 00:39:09,524 --> 00:39:10,440 oni povedati. 950 00:39:10,440 --> 00:39:12,590 Torej strlen je dolžina niza. 951 00:39:12,590 --> 00:39:18,168 In kaj bi se dolžina niz S vrne, ko je Zamyla vhodni? 952 00:39:18,168 --> 00:39:19,569 >> OBČINSTVO: Five. 953 00:39:19,569 --> 00:39:22,090 >> ZVOČNIKI 1: Z-A-P-D-L. Six. 954 00:39:22,090 --> 00:39:22,590 Prav? 955 00:39:22,590 --> 00:39:23,940 Kakšna je dolžina imena Zamyla je? 956 00:39:23,940 --> 00:39:24,440 Prav? 957 00:39:24,440 --> 00:39:26,240 In samo v resnici, šest črk. 958 00:39:26,240 --> 00:39:26,740 Prav? 959 00:39:26,740 --> 00:39:28,940 In tako, kaj to pomeni za naše zanke? 960 00:39:28,940 --> 00:39:32,130 Mi smo šli iz 0 do šest, ki 961 00:39:32,130 --> 00:39:33,650 se dogaja, da nam pet iteracij. 962 00:39:33,650 --> 00:39:34,890 Kaj naj naredimo na vsaki ponovitvi? 963 00:39:34,890 --> 00:39:36,870 No, odstotka C, nekdo Uganili drugi dan, 964 00:39:36,870 --> 00:39:38,710 pomeni ogrado za kaj? 965 00:39:38,710 --> 00:39:39,335 >> OBČINSTVO: Char. 966 00:39:39,335 --> 00:39:40,293 SPEAKER 1: Samo char. 967 00:39:40,293 --> 00:39:42,877 Torej ena character-- ne več znakov, kot niz. 968 00:39:42,877 --> 00:39:45,251 In potem tukaj je nova linija da imamo tiskanje. 969 00:39:45,251 --> 00:39:46,580 In potem tukaj je nova skladnja. 970 00:39:46,580 --> 00:39:51,130 Če želite natisniti i-tega lik iz niza S, tako rekoč, 971 00:39:51,130 --> 00:39:54,060 lahko preprosto reči ime godalnega S, 972 00:39:54,060 --> 00:39:58,230 in nato odprite peto nosilec, in nato zapremo s peto nosilec, z i 973 00:39:58,230 --> 00:39:58,780 sredina. 974 00:39:58,780 --> 00:40:01,430 In to je nekako lepo, da to nekako izgleda kvadrata 975 00:40:01,430 --> 00:40:06,210 tako kot kvadratov, v katerih Zamyla je obstajajo znaki o tej sliki tam. 976 00:40:06,210 --> 00:40:09,970 >> Torej, če sem dejansko vodijo to zdaj, da vidimo, kaj se zgodi. 977 00:40:09,970 --> 00:40:15,190 Naredite niz 0 dot poševnica Niz 0, nato pa sem 978 00:40:15,190 --> 00:40:16,720 dogaja, da tip v imenu Zamyla je. 979 00:40:16,720 --> 00:40:19,428 Ni hitro, ker nisem uporabite za tiskanje f, ampak to je v redu. 980 00:40:19,428 --> 00:40:20,660 Jaz samo vem, kaj naj naredim. 981 00:40:20,660 --> 00:40:23,240 In res, da natisne Ime Zamyla je, eno na vrstico. 982 00:40:23,240 --> 00:40:25,760 >> Zdaj pa bodimo malo nepremišljene. 983 00:40:25,760 --> 00:40:28,461 Recimo, da nisem vedel, o strlen in sem ugotovil, 984 00:40:28,461 --> 00:40:31,460 Vse je v redu, nihče se dogaja, da imajo ime večja kot kot 50 znakov. 985 00:40:31,460 --> 00:40:36,360 Pojdimo naprej in prevedem to in ga ponovno zaženite in nato vnesite v Zamyla 986 00:40:36,360 --> 00:40:37,160 znova. 987 00:40:37,160 --> 00:40:40,850 Logično je, da tisto, kar je Program bo poskusil natisniti? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A nato kot 45 neznanih bajtov pomnilnika. 989 00:40:49,545 --> 00:40:51,670 In res, bomo prišli nazaj te ideje spomina. 990 00:40:51,670 --> 00:40:54,180 Ampak samo logično, če Ime Zamyla je tako dolgo, 991 00:40:54,180 --> 00:40:56,450 kot na sliki tu, kaj smo govoriš 992 00:40:56,450 --> 00:40:59,810 se vodijo tiskanje, da tiskanje, da tiskanje, da tiskate, da tiskanje, 993 00:40:59,810 --> 00:41:03,781 vse do 50. značaja, ki je kdo ve, kaj se bo zgodilo. 994 00:41:03,781 --> 00:41:05,030 Torej, kaj je dejansko si oglejte. 995 00:41:05,030 --> 00:41:06,720 Naj tip v Zamyla. 996 00:41:06,720 --> 00:41:07,250 Zanimivo. 997 00:41:07,250 --> 00:41:08,190 Imamo srečo. 998 00:41:08,190 --> 00:41:09,700 Samo cel kup praznega prostora. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 Tam je ena funky znak. 1001 00:41:11,120 --> 00:41:14,577 To izgleda nekako kot čudno vprašanje označi tam, vendar pa je ime Zamyla je. 1002 00:41:14,577 --> 00:41:15,660 Pojdimo res nepremišljeno. 1003 00:41:15,660 --> 00:41:20,000 Kako pa smo izpisal 500 bloki v neznano? 1004 00:41:20,000 --> 00:41:24,380 Pojdimo naprej in da bi to kot dobro in nato ponovno teči. 1005 00:41:24,380 --> 00:41:27,980 In kaj je celoten zaslon je, ker moramo videti več prostora. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Spet imaš srečo. 1008 00:41:31,830 --> 00:41:33,070 >> Dare bomo dobili bolj nepremišljeno? 1009 00:41:33,070 --> 00:41:36,070 Pojdimo bolj nepremišljeno. 1010 00:41:36,070 --> 00:41:39,350 50.000 znakov. 1011 00:41:39,350 --> 00:41:41,390 To je najbolj zagotovo ni dobra ideja. 1012 00:41:41,390 --> 00:41:41,890 V redu. 1013 00:41:41,890 --> 00:41:42,990 Naredite niz 0. 1014 00:41:42,990 --> 00:41:44,720 To bo naša zadnja demo. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Ugh. 1017 00:41:48,632 --> 00:41:50,010 Ugh. 1018 00:41:50,010 --> 00:41:50,680 V REDU. 1019 00:41:50,680 --> 00:41:54,407 Torej, moj spomin je res prazna zdaj, ki je pravzaprav nekako prikladno. 1020 00:41:54,407 --> 00:41:55,990 Kaj sem poskušal priti to-- vso pravico. 1021 00:41:55,990 --> 00:41:57,614 In zdaj sem šele tekoč, da bi dobili nepremišljene. 1022 00:41:57,614 --> 00:41:58,570 500.000. 1023 00:41:58,570 --> 00:42:03,860 Make-- dajmo celozaslonski ga. 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 gremo. 1028 00:42:13,390 --> 00:42:15,610 Nimam pojma, kaj to je, ampak zveni slabo. 1029 00:42:15,610 --> 00:42:16,110 V redu. 1030 00:42:16,110 --> 00:42:20,322 In v resnici, kmalu, če ste med srečo malo uradnih ur 1031 00:42:20,322 --> 00:42:22,780 in problem določiti enega, vas lahko zelo dobro srečati to. 1032 00:42:22,780 --> 00:42:25,490 Segmentacija napaka dejansko počne imajo dobro opredeljen pomen. 1033 00:42:25,490 --> 00:42:28,450 To pomeni nekakšno napako ki se nanaša na segment pomnilnika. 1034 00:42:28,450 --> 00:42:30,490 In v smislu navadnega je, to pomeni, da smo se dotaknili 1035 00:42:30,490 --> 00:42:34,780 memory-- smo uporabili RAM na mojem računalniku da mi ne bi imeli dostop do. 1036 00:42:34,780 --> 00:42:37,050 In to je tisto, kar je tako zmogljiv in tudi nevarno 1037 00:42:37,050 --> 00:42:39,910 o C je, da vas dejansko imajo neoviran dostop 1038 00:42:39,910 --> 00:42:45,910 v celoti pomnilnika vašega programa ali bajtov ali RAM, natančneje. 1039 00:42:45,910 --> 00:42:49,510 >> Torej, čeprav ime Zamyla je je dolga le šest znakov, 1040 00:42:49,510 --> 00:42:51,450 Še vedno lahko gremo nikamor v spomin hočem. 1041 00:42:51,450 --> 00:42:53,491 In kot prahi, če ste kdaj prebral nekaj članek 1042 00:42:53,491 --> 00:42:55,610 v zadnjih letih približno nekaj strežnik ali nekatere Program 1043 00:42:55,610 --> 00:42:58,654 pridobivanje razpokan ali kramp, ki je sprejeti prednost nečesa 1044 00:42:58,654 --> 00:43:00,820 imenuje buffer overflow izkoristiti, da bomo dejansko 1045 00:43:00,820 --> 00:43:04,970 govoriti v nekaj tednih, ki je na splošno sklicuje na nekako prelisičijo 1046 00:43:04,970 --> 00:43:09,090 računalnik v šlo dobro preko meja spomina 1047 00:43:09,090 --> 00:43:11,410 da mora imeti, in najti nekaj sočno 1048 00:43:11,410 --> 00:43:13,530 s tem, da memory-- gesla, morda, način 1049 00:43:13,530 --> 00:43:16,990 izogibanja nekaj serijsko številko preverite, ali pa samo na splošno lahko 1050 00:43:16,990 --> 00:43:20,360 trik je računalnik izvršitve Koda, ki ni bila predvidena. 1051 00:43:20,360 --> 00:43:22,360 Ampak kaj je prišel nazaj realnost za trenutek 1052 00:43:22,360 --> 00:43:24,550 kje je ta program izvajajo s strlen, 1053 00:43:24,550 --> 00:43:26,110 in uvesti eno stvar tukaj. 1054 00:43:26,110 --> 00:43:30,030 Kaj je novega med temi top tri vrstice? 1055 00:43:30,030 --> 00:43:30,910 >> Torej niz pika h. 1056 00:43:30,910 --> 00:43:35,490 Izkazalo se je, da je to knjižnica imenuje String Dot H ali niz knjižnica, 1057 00:43:35,490 --> 00:43:38,490 čigar glava datoteke, tako rekoč, je niz dot h, ki mi daje 1058 00:43:38,490 --> 00:43:40,860 Dostop do te funkcije strlen. 1059 00:43:40,860 --> 00:43:43,841 Če sem izpustite, da prevajalnik je dogaja kričati name v neki obliki. 1060 00:43:43,841 --> 00:43:44,590 Ampak veš kaj? 1061 00:43:44,590 --> 00:43:46,090 Sedaj pa se res odtenkov. 1062 00:43:46,090 --> 00:43:50,820 V vrstico 22, nekaj je vrsta od inefficient-- slabo zasnovan, 1063 00:43:50,820 --> 00:43:53,990 arguably-- o tem vrstico kode. 1064 00:43:53,990 --> 00:43:56,280 Pomisli nazaj, kako se izvajajo za zanke 1065 00:43:56,280 --> 00:44:00,140 in kakšne ukrepe ponovilo in spet in again-- inicializacijo, 1066 00:44:00,140 --> 00:44:04,110 pogoj, koda, ki dobi izvrši, nato prirastek 1067 00:44:04,110 --> 00:44:07,880 ali sprememba, potem je pogoj, Nato kodo, nato sprememba, nato 1068 00:44:07,880 --> 00:44:11,280 stanje, nato pa kodo, nato sprememba, in tako naprej. 1069 00:44:11,280 --> 00:44:15,320 Torej, kaj bi lahko bilo malo Zaskrbljujoč ali slabo narejeno tukaj? 1070 00:44:15,320 --> 00:44:16,387 Ja, v modri barvi. 1071 00:44:16,387 --> 00:44:18,220 OBČINSTVO: strlen je imenovano veliko, veliko krat. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 SPEAKER 1: Ja. 1074 00:44:21,320 --> 00:44:23,700 Torej strlen se imenuje mnogokrat, ampak tisto, kar je 1075 00:44:23,700 --> 00:44:27,113 dolžina imena Zamyla je v prvič zanka izvaja? 1076 00:44:27,113 --> 00:44:27,860 >> OBČINSTVO: Six. 1077 00:44:27,860 --> 00:44:28,110 >> SPEAKER 1: Six. 1078 00:44:28,110 --> 00:44:30,976 No, kaj je dolžina njeno ime drugič koda izvrši? 1079 00:44:30,976 --> 00:44:31,432 >> OBČINSTVO: Six. 1080 00:44:31,432 --> 00:44:31,890 >> SPEAKER 1: V redu. 1081 00:44:31,890 --> 00:44:32,720 To je še vedno šest. 1082 00:44:32,720 --> 00:44:33,220 Prav? 1083 00:44:33,220 --> 00:44:35,260 Ime Zarla je nima spremenilo, tudi če iščem 1084 00:44:35,260 --> 00:44:38,240 na samo del črk v njenem imenu. 1085 00:44:38,240 --> 00:44:41,349 In tako je dejstvo, da sem dejansko sem sprašuje to vprašanje, kaj je 1086 00:44:41,349 --> 00:44:44,640 dolžina Zamyla, kakšna je dolžina od Zamyla, kakšna je dolžina Zamyla, 1087 00:44:44,640 --> 00:44:47,990 šest ločenih krat, ali sedem celo, je samo neumen, 1088 00:44:47,990 --> 00:44:50,390 ker to je nespremenljiva, da odgovor. 1089 00:44:50,390 --> 00:44:53,550 In kaj sem lahko dejansko storiti, je this-- v nizu enem 1090 00:44:53,550 --> 00:44:55,680 Imam nekoliko boljšo različico tukaj. 1091 00:44:55,680 --> 00:45:00,110 There-- whoops-- niz dveh imam neznatnega boljša različica, kjer 1092 00:45:00,110 --> 00:45:05,010 Jaz this-- namesto samo inicializacija i na 0, sem se tudi z vejico 1093 00:45:05,010 --> 00:45:07,990 razglasi drugo spremenljivko z imenom N- nimam spet reči int. 1094 00:45:07,990 --> 00:45:09,220 Jaz ne bi v resnici. 1095 00:45:09,220 --> 00:45:10,380 Ampak sem rekel n. 1096 00:45:10,380 --> 00:45:13,610 In potem sem inicializacijo n strlen n, tako da sedaj 1097 00:45:13,610 --> 00:45:17,110 kolikokrat se strlen se izvede v celoti? 1098 00:45:17,110 --> 00:45:17,610 Samo enkrat. 1099 00:45:17,610 --> 00:45:20,257 In zato je to tisto, kar mislimo prej o boljšem oblikovanju. 1100 00:45:20,257 --> 00:45:23,090 Pravzaprav, ko vaša koda je pravilna, vrača in razmišljanja, 1101 00:45:23,090 --> 00:45:26,820 sem s tako malo spomin ali kot nekaj sekund 1102 00:45:26,820 --> 00:45:30,409 ali milisekund računalniške časa kot mogoče izvajati neki problem? 1103 00:45:30,409 --> 00:45:32,200 In bom, da se pomaknete in samo omenim 1104 00:45:32,200 --> 00:45:34,283 da je ta omemba iz vezi v tej različici, 1105 00:45:34,283 --> 00:45:36,390 vendar bomo prišli nazaj, da je pred dolgo. 1106 00:45:36,390 --> 00:45:41,010 Ker za zdaj, vzemimo si oglejte pri kateri se to dogaja, da nas vodi. 1107 00:45:41,010 --> 00:45:44,110 Torej ena, se izkaže, da zdaj, ko imamo možnost, 1108 00:45:44,110 --> 00:45:46,860 pogled na posameznih likov, bomo lahko izkoristite nekaj 1109 00:45:46,860 --> 00:45:50,807 od tedna 0, da je zelo Skrivnosten in nekako nezanimiva v tistem času. 1110 00:45:50,807 --> 00:45:53,390 Toda zdaj, in še posebej, ko smo priti do kriptografije v tednu, 1111 00:45:53,390 --> 00:45:54,820 to se dogaja, da je precej močna. 1112 00:45:54,820 --> 00:45:57,450 Izkazalo se je, da je z nekaterimi so podatki, types-- Ints in plava 1113 00:45:57,450 --> 00:46:00,300 in znakov in godala in drugi things-- nekateri od njih 1114 00:46:00,300 --> 00:46:02,800 mogoče zelo enostavno pretvorimo v drugo. 1115 00:46:02,800 --> 00:46:05,840 >> Na primer, ko smo se pogovarjali o ASCII nekaj časa ago-- tukaj 1116 00:46:05,840 --> 00:46:07,796 kapitalski črkam A prek M, dot, dot, 1117 00:46:07,796 --> 00:46:12,530 dot-- smo rekli, da je preslikava med temi črkami in številkami. 1118 00:46:12,530 --> 00:46:14,970 In v resnici pa velja za malimi črkami, kot tudi. 1119 00:46:14,970 --> 00:46:17,470 Male je a 97, kapital je a 65. 1120 00:46:17,470 --> 00:46:20,860 In tam je številka v ASCII, ki je le ta preslikava 1121 00:46:20,860 --> 00:46:23,240 sistem za vse tiste drugimi črkami. 1122 00:46:23,240 --> 00:46:25,030 Torej, kaj to pomeni? 1123 00:46:25,030 --> 00:46:28,390 No, jaz grem, da gredo naprej in odprt up real hitro nekaj imenovanih 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, od katerih večina je pripomb. 1125 00:46:31,240 --> 00:46:33,860 In spet na spletu si lahko vedno pogled skozi pripomb. 1126 00:46:33,860 --> 00:46:36,180 >> In si oglejte, kaj To se dogaja, da storiti. 1127 00:46:36,180 --> 00:46:38,410 Torej, to je dobil glavno funkcijo. 1128 00:46:38,410 --> 00:46:41,490 Sem hard-kodirane številke samo za Zdaj, ker vem, kaj delam. 1129 00:46:41,490 --> 00:46:42,950 Vem, kaj hočem videti tukaj. 1130 00:46:42,950 --> 00:46:45,220 In jaz sem inicializiran do 65. 1131 00:46:45,220 --> 00:46:48,490 In jaz računam up prek 26 črk skupaj. 1132 00:46:48,490 --> 00:46:52,990 In kaj bom natisniti eno vrstico naenkrat 1133 00:46:52,990 --> 00:46:54,930 če si lahko razlagali to poudarjeno linijo? 1134 00:46:54,930 --> 00:46:55,970 Kaj dobi natisnjeno? 1135 00:46:55,970 --> 00:46:56,797 Ja. 1136 00:46:56,797 --> 00:46:57,264 >> OBČINSTVO: Ali greš natisniti pismo, 1137 00:46:57,264 --> 00:46:59,805 ustreza zemljevidu pismo vrednost in celo vrednost? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 SPEAKER 1: Točno tako. 1140 00:47:01,990 --> 00:47:04,740 Grem natisniti pismo ustreza celo število, 1141 00:47:04,740 --> 00:47:06,131 in obratno, kot sledi. 1142 00:47:06,131 --> 00:47:08,880 No to, nekdo rekel prej, je samo ograda za char. 1143 00:47:08,880 --> 00:47:09,490 Še vedno je. 1144 00:47:09,490 --> 00:47:12,280 To, seveda, je ogrado dokumentacija int-- ni nova linija. 1145 00:47:12,280 --> 00:47:18,140 In zdaj opazili, moj prvi vrednosti, ki Jaz sem priklopom za to ogrado 1146 00:47:18,140 --> 00:47:22,320 ni samo I. govorim, v oklepaju, char I, 1147 00:47:22,320 --> 00:47:26,700 katerega oklepajih char je pove prevajalniku, zdravljenje I 1148 00:47:26,700 --> 00:47:28,490 ne kot tisto, kar je, kar je številka. 1149 00:47:28,490 --> 00:47:30,490 Obravnavati kot dejanskega značaja. 1150 00:47:30,490 --> 00:47:34,490 Ker drugi vrednosti sem priklopom in-- morala I-- biti samo številka. 1151 00:47:34,490 --> 00:47:38,140 >> Torej, če sem sestaviti ta program-- tako da je to, da ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot slash ASCII 0-- sem dobil Ta priročen mali grafikon, ki 1153 00:47:41,720 --> 00:47:44,950 mi pokaže vse mogoče preslikave, ne da bi to misliš 1154 00:47:44,950 --> 00:47:46,450 skozi ali pogruntal sam. 1155 00:47:46,450 --> 00:47:48,783 In jaz sem tudi tiskanje, Opazili male črke, 1156 00:47:48,783 --> 00:47:51,410 ker nekaj vrstic kasneje sem tudi natisnete to kartiranje 1157 00:47:51,410 --> 00:47:53,737 kot tudi, kar je samo pravijo, da ko boste razumeli 1158 00:47:53,737 --> 00:47:55,570 kaj se dogaja pod pokrov, lahko 1159 00:47:55,570 --> 00:47:57,111 samodejno pretvorbo naprej in nazaj. 1160 00:47:57,111 --> 00:48:00,160 In v resnici, če kdo od vas kdaj je to storila v osnovni šoli 1161 00:48:00,160 --> 00:48:03,490 ali slišal o nekom mitično ob beležko 1162 00:48:03,490 --> 00:48:05,620 in gre v njegov ali njena prijateljica v razredu, 1163 00:48:05,620 --> 00:48:08,300 ampak ti je zmešala pisma, ki jih kot postane B, 1164 00:48:08,300 --> 00:48:11,240 in B postane C, ali kaj bolj zapletena, kot da je dobro, 1165 00:48:11,240 --> 00:48:13,410 kako bi se lotili izvajanje, da kot otrok? 1166 00:48:13,410 --> 00:48:16,340 No, samo nekako vedeti Postane B, B postane C, 1167 00:48:16,340 --> 00:48:19,700 ampak matematično, kaj je ta fant počne? 1168 00:48:19,700 --> 00:48:22,050 Kaj ste tako, da vsako črko? 1169 00:48:22,050 --> 00:48:23,340 Učinkovito, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Torej, ko ste spremenili A do B, ki je nekako kot spreminja od 65 do 66, 1171 00:48:27,740 --> 00:48:29,590 ki matematično pomeni, dodajte 1. 1172 00:48:29,590 --> 00:48:33,300 In tako, če ste bili za izvajanje da je malo zavajajoče tehnika 1173 00:48:33,300 --> 00:48:36,380 za učitelja v kodi, ki jih lahko naredite točno to samo 1174 00:48:36,380 --> 00:48:38,552 z dodajanjem ene črke skupaj. 1175 00:48:38,552 --> 00:48:40,260 Torej, preden dolgo, da smo bomo videli, kako bomo 1176 00:48:40,260 --> 00:48:43,300 lahko izkoristite, da dejansko resnično scramble in Razmrsiti 1177 00:48:43,300 --> 00:48:43,991 informacije. 1178 00:48:43,991 --> 00:48:47,240 V vmesnem času, vemo, da smo začeli uvesti nekaj drugih knjižnic 1179 00:48:47,240 --> 00:48:48,990 here-- godalnega eno danes. 1180 00:48:48,990 --> 00:48:51,180 In zelo koristna stran upajmo, da boste našli 1181 00:48:51,180 --> 00:48:55,010 se imenuje reference.cs50.net, ki učno osebje so sestavili, 1182 00:48:55,010 --> 00:48:57,510 tako da, če želite poglej kako strlen del, 1183 00:48:57,510 --> 00:48:59,300 lahko začnete tipkati Funkcija ime, 1184 00:48:59,300 --> 00:49:02,890 kliknite tam strlen, in nato manj udoben razlaga 1185 00:49:02,890 --> 00:49:03,700 se dogaja, da se pojavijo. 1186 00:49:03,700 --> 00:49:06,880 Ali če želite uradnika Linux temelji razlaga, 1187 00:49:06,880 --> 00:49:08,945 lahko kliknete bolj udoben v zgornjem desnem kotu, in 1188 00:49:08,945 --> 00:49:12,070 bo predstavil isto informacijo, vendar v bolj zahtevnih pogojih. 1189 00:49:12,070 --> 00:49:15,070 To je koristno sredstvo za dejansko vem, kaj vse počne. 1190 00:49:15,070 --> 00:49:17,320 >> Naslednjič, ko bomo si oglejte Ovaltine 1191 00:49:17,320 --> 00:49:20,070 in še več, in uvesti sebe na svetu kriptografije. 1192 00:49:20,070 --> 00:49:21,930 Do takrat, bomo videli boste kasneje ta teden. 1193 00:49:21,930 --> 00:49:23,390 In zdaj, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Se vidimo v sredo. 1195 00:49:26,730 --> 00:49:30,216 >> [Predvaja glasba] 1196 00:49:30,216 --> 00:49:33,702 >> [Predvaja glasba] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> SPEAKER 1: Kaj [Škripati] počneš? 1199 00:49:42,200 --> 00:49:45,720 >> SPEAKER 1: Jaz sem jedel mojo sladico? 1200 00:49:45,720 --> 00:49:47,160 Kako ga jeste? 1201 00:49:47,160 --> 00:49:47,860 Z rokami? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [Predvaja glasba] 1204 00:49:57,940 --> 00:50:03,453