1 00:00:00,000 --> 00:00:02,880 >> [MUZIKO Ludante] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> Parolanto 1: Ĉi tiu estas CS50 kaj tiu estas la komenco de semajno du. 4 00:00:13,500 --> 00:00:18,400 Do, ni plonĝi en ion dekstra ke estas kalesxo, por tiel diri. 5 00:00:18,400 --> 00:00:24,015 Do, ĉi tie estas CS50 IDE kaj mi havas tirita supren anticipe ĉi screen-- malbenita 6 00:00:24,015 --> 00:00:25,070 ĝin. 7 00:00:25,070 --> 00:00:25,760 Spoiler atentigo. 8 00:00:25,760 --> 00:00:26,260 Bone. 9 00:00:26,260 --> 00:00:29,060 Mi tiris supren tiu ekrano tie, kiu havas tre simplan programon. 10 00:00:29,060 --> 00:00:32,659 Se ni rulumu malsupren, plej ĉi estas nur komentas, 11 00:00:32,659 --> 00:00:36,730 sed tie en linioj 13 tra 17 ni havas programon. 12 00:00:36,730 --> 00:00:40,580 >> Ĝi estas sintakse valida, kio signifas se Mi tradukigi ĝin, kompilos kaj kuras, 13 00:00:40,580 --> 00:00:41,920 sed estas kalesxon. 14 00:00:41,920 --> 00:00:47,330 Tiu programo asertas en la komentoj supren supro, kiun ĝi devus presi 10 steloj, 15 00:00:47,330 --> 00:00:48,870 sed ne. 16 00:00:48,870 --> 00:00:53,290 Kaj bazita sur viaj spertoj, aŭ baldaŭ esti sperto kun C, 17 00:00:53,290 --> 00:00:56,820 vi povas logike povoscii kial tiu estas, fakte, kalesxo? 18 00:00:56,820 --> 00:00:57,804 Yeah? 19 00:00:57,804 --> 00:00:59,220 Spektantaro: Ĝi iras de nulo ĝis 10. 20 00:00:59,220 --> 00:01:01,884 Jen 11 ripetoj. 21 00:01:01,884 --> 00:01:02,550 Parolanto 1: Yeah. 22 00:01:02,550 --> 00:01:06,030 Do, ĝi tuj de nulo supren tra kaj egalaj al 10, 23 00:01:06,030 --> 00:01:08,140 kiu kompreneble estas 11 ripetoj. 24 00:01:08,140 --> 00:01:10,020 Do, ĝi tuj print ja 11 steloj. 25 00:01:10,020 --> 00:01:13,040 Do, la komputikaj konvencio en plej programlingvoj 26 00:01:13,040 --> 00:01:15,270 estas ja nur komenci kalkulon je nulo, 27 00:01:15,270 --> 00:01:18,800 sed rakonti ĝis sed ne tra la valoro ke vi efektive volas. 28 00:01:18,800 --> 00:01:21,216 >> Nun, ĉi tiu estas unu afero ke prenas iom alkutimiĝi al 29 00:01:21,216 --> 00:01:25,350 kaj eĉ Scratch, desegnita kiel ĝi estas por ne programistoj aŭ ne komputilo 30 00:01:25,350 --> 00:01:28,070 sciencistoj kaj por infanoj plejparte, estas desegnita havi 31 00:01:28,070 --> 00:01:29,570 vi komencas rakonti ĝenerale je unu. 32 00:01:29,570 --> 00:01:30,277 Kaj tio estas bone. 33 00:01:30,277 --> 00:01:33,110 Vi povas absolute komenci kalkulon ĉe unu se tio estas pli komforta. 34 00:01:33,110 --> 00:01:37,210 Kaj kalkulu ĝis kaj tra 10, sed vi rimarkas aparte tiu semajno 35 00:01:37,210 --> 00:01:39,950 kaj preter tio nur tiel multaj aferoj en programado 36 00:01:39,950 --> 00:01:42,465 supozas ke 0 estas la unua cifero kun kiu vi kalkulas, 37 00:01:42,465 --> 00:01:45,590 ke vi tuj trovos ĝin pli facila nur enir ĉi kutimon starta 38 00:01:45,590 --> 00:01:49,490 de nulo kaj kalkulado de la valoro vi zorgas pri rajto nun de la 39 00:01:49,490 --> 00:01:49,990 akiri iri. 40 00:01:49,990 --> 00:01:50,990 >> Do, kiu fiksis tion. 41 00:01:50,990 --> 00:01:53,670 Ni ŝanĝis la malpli ol aŭ egalas al nur malpli ol. 42 00:01:53,670 --> 00:01:56,050 Ni rigardu dua ekzemplo tie. 43 00:01:56,050 --> 00:01:59,585 >> Do, ĉi tiu programo ankaŭ asertas en lia komentas supren supro, kiun ĝi devus presi 44 00:01:59,585 --> 00:02:02,260 dek steloj, sed ne. 45 00:02:02,260 --> 00:02:05,540 Kio estas la cimo tie? 46 00:02:05,540 --> 00:02:07,930 >> Do, what-- kaj bedaŭras, ni estu klaraj. 47 00:02:07,930 --> 00:02:08,610 10 steloj. 48 00:02:08,610 --> 00:02:11,644 Unu po linio, sed ĝi ne. 49 00:02:11,644 --> 00:02:14,810 Do, fakte, lasu min antaŭeniri kaj kompili ĉi tiu ĉar ĝi estas iom malpli 50 00:02:14,810 --> 00:02:16,900 malbari bazita sur tiu priskribo. 51 00:02:16,900 --> 00:02:18,720 Lasu min iri en nia fonto katalogo. 52 00:02:18,720 --> 00:02:25,110 Faru kalesxon unu dot oblikvo, kalesxo unu. 53 00:02:25,110 --> 00:02:28,680 OK, mi komprenas 11 steloj, kiu Estas ankoraŭ problema, 54 00:02:28,680 --> 00:02:30,090 sed ili estas ankaŭ ĉiuj en unu linio. 55 00:02:30,090 --> 00:02:31,500 Kio estas la afero tie? 56 00:02:31,500 --> 00:02:32,339 Yeah. 57 00:02:32,339 --> 00:02:33,255 Spektantaro: [inaudible]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 Parolanto 1: Yeah. 60 00:02:36,860 --> 00:02:40,210 Do tiu estas subtileco por ke vi memoru min farante mallonga mencio. 61 00:02:40,210 --> 00:02:42,793 Eĉ kvankam ĉiu aspektas bela, kaj ĝi estas bele dentado, 62 00:02:42,793 --> 00:02:45,850 kaj tio ia aspektas Scratch-simila en tiu linio 16 kaj 17 estas, 63 00:02:45,850 --> 00:02:47,600 ja, dentado sub tiu por buklo. 64 00:02:47,600 --> 00:02:48,400 Tio nemateria. 65 00:02:48,400 --> 00:02:50,460 La komputilo ne koni aŭ vidi blankan spacon. 66 00:02:50,460 --> 00:02:52,910 Blanka spaco estas nur por nin homojn, stile. 67 00:02:52,910 --> 00:02:57,010 La komputilo ne scias kiam vi havas frizita krampoj, kiuj volus efektive 68 00:02:57,010 --> 00:02:58,280 korekti tiun problemon. 69 00:02:58,280 --> 00:03:02,350 >> Do, se ni efektive eniris kaj eksplicite meti en tiuj buklaj krampoj 70 00:03:02,350 --> 00:03:05,220 ke fiksus ĉi problemon per klarigi al la kompililo 71 00:03:05,220 --> 00:03:07,930 ke mi efektive volas ekzekuti du linioj de kodo denove, 72 00:03:07,930 --> 00:03:09,220 kaj denove, kaj denove. 73 00:03:09,220 --> 00:03:11,680 Sed kio estas la fundamenta klarigo? 74 00:03:11,680 --> 00:03:12,180 Dekstra? 75 00:03:12,180 --> 00:03:15,260 Ni ne strikte necesas krispa krampoj tutan tempon, 76 00:03:15,260 --> 00:03:18,210 kvankam ĝi estas verŝajne plej praktiko akiri en tiu kutimo ĉiuokaze 77 00:03:18,210 --> 00:03:20,878 kvankam ĝi aldonas du karakteroj al via kodo. kial? 78 00:03:20,878 --> 00:03:22,380 >> Spektantaro: [inaudible]? 79 00:03:22,380 --> 00:03:24,630 Parolanto 1: Jes do tio estas alian solvon entute. 80 00:03:24,630 --> 00:03:25,130 Dekstra? 81 00:03:25,130 --> 00:03:28,250 Speciale se unuarigarde vi ne vere dankas kio okazas. 82 00:03:28,250 --> 00:03:31,070 Nu, certe ni povus nur faru du aferojn samtempe 83 00:03:31,070 --> 00:03:32,710 kaj simple eviti la problemon entute. 84 00:03:32,710 --> 00:03:36,080 Kaj tio estas bone, sed nun, por hodiaŭa celoj, kion 85 00:03:36,080 --> 00:03:38,200 estas la klarigo por la cimo? 86 00:03:38,200 --> 00:03:39,810 Kial ĉiuj tiuj steloj sur unu linio? 87 00:03:39,810 --> 00:03:40,806 Yeah? 88 00:03:40,806 --> 00:03:43,296 >> Spektantaro: Ĝi similas ke se vi havas unu linion de kodo, 89 00:03:43,296 --> 00:03:46,649 vi povas fari tion sen tiuj. 90 00:03:46,649 --> 00:03:47,440 Parolanto 1: Ekzakte. 91 00:03:47,440 --> 00:03:48,750 Tio estas nur homa konvencio. 92 00:03:48,750 --> 00:03:50,750 Homoj komprenas ke ĝi estas iom ĝenaj aŭ teda 93 00:03:50,750 --> 00:03:53,470 havi meti krispa krampoj ĉiuj de la tempo se ĉiuj vi volas fari 94 00:03:53,470 --> 00:03:55,090 estas ekzekuti unu linio de kodo. 95 00:03:55,090 --> 00:03:57,660 Do, la homoj decidis iuj tempon kiu tio estas bone. 96 00:03:57,660 --> 00:04:01,180 Se vi volas meti ĉiujn viajn maŝo sur nura ke unu linio tiel, 97 00:04:01,180 --> 00:04:04,030 tio estas bone kun la sola punktokomo ĉe la fino. 98 00:04:04,030 --> 00:04:07,210 Sed vi povas fari nur unu tia linio sen la frizita krampoj. 99 00:04:07,210 --> 00:04:09,900 >> Do, kiam CS50 stilo gvidas kiel montros al vi, 100 00:04:09,900 --> 00:04:11,980 vi vidos ke ĝenerale ĝi estas bona kutimo 101 00:04:11,980 --> 00:04:14,920 enir ĉi ĝis vi estas tute komforta vagadas 102 00:04:14,920 --> 00:04:17,404 el tiuj specoj de konvencioj kaj fari vian propran aferon. 103 00:04:17,404 --> 00:04:18,820 Tiel longe kiel vi estas mem konsekvenca. 104 00:04:18,820 --> 00:04:21,540 Kaj ni parolos pli pri stiligi iom poste hodiaŭ. 105 00:04:21,540 --> 00:04:23,200 >> Do, lasu min malfermi unu alia programo. 106 00:04:23,200 --> 00:04:24,930 Kompreneble, ni devus fiksi ke 10 ankaŭ. 107 00:04:24,930 --> 00:04:32,470 Lasu min kaj skribi reala rapida programo kiu mi vokos, 108 00:04:32,470 --> 00:04:38,140 diru, buklo dot C. Do, buklo dot C. Kaj en buklo punkto C mi tuj havas, 109 00:04:38,140 --> 00:04:41,970 inkluzivas normo / S punkto H int ĉefa malplenon. 110 00:04:41,970 --> 00:04:44,020 Kaj nun ni nur faru, efektive, buklo. 111 00:04:44,020 --> 00:04:46,020 Do, 4 int mi ricevas nulon. 112 00:04:46,020 --> 00:04:48,660 Mi estas malpli ol, ni diru, 50. 113 00:04:48,660 --> 00:04:49,950 Mi plie, plus. 114 00:04:49,950 --> 00:04:53,350 Kaj tiam tie ni antaŭeniri kaj ne presi F. 115 00:04:53,350 --> 00:04:56,400 Kaj tiam mi volas presi mi kaj nova linio, punktokomo. 116 00:04:56,400 --> 00:05:00,015 >> Kaj tio devus presi ĉiujn nombroj de nulo ĝis 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Kelkaj kapo kapsignas. 119 00:05:03,680 --> 00:05:04,270 Kelkaj nos. 120 00:05:04,270 --> 00:05:05,339 Kio estas la cimo jam? 121 00:05:05,339 --> 00:05:06,630 Kio estas facila eraro mi faris? 122 00:05:06,630 --> 00:05:07,170 Yeah. 123 00:05:07,170 --> 00:05:08,544 >> Spektantaro: [inaudible]. 124 00:05:08,544 --> 00:05:09,210 Parolanto 1: Yeah. 125 00:05:09,210 --> 00:05:11,520 Do kvankam ĝi aspektas kiel tio estas kion mi intencas, 126 00:05:11,520 --> 00:05:13,920 memoras ke mi estas ankaŭ nur ASCII karaktero. 127 00:05:13,920 --> 00:05:14,955 >> Do, se mi diras, presi "Mi." 128 00:05:14,955 --> 00:05:16,670 Ĝi estas laŭvorte iri presi I. Do, se mi 129 00:05:16,670 --> 00:05:20,030 volas plug-in lokokupilo valoro mi vere devas fari ĉi 130 00:05:20,030 --> 00:05:22,630 kaj tiam plug-en la valoron de mi dinamike. 131 00:05:22,630 --> 00:05:25,200 Alie mi simple tuj akiri 50 Mi estas sur la ekrano. 132 00:05:25,200 --> 00:05:28,140 >> Do, lasu min antaŭeniri kaj fari ĉi buklo, ruli ĝin, 133 00:05:28,140 --> 00:05:30,650 kaj cetere, ni havas ĉiujn la vojo supren tra 49. 134 00:05:30,650 --> 00:05:34,140 Kaj se mi rulumu reen en tempo mi vidas la nombro nulo komence. 135 00:05:34,140 --> 00:05:36,050 >> Nu, kio se mi specon de ŝraŭbo supren? 136 00:05:36,050 --> 00:05:37,800 Kio se mi faras tion? 137 00:05:37,800 --> 00:05:40,120 Nur ĉar mi ne pensas. 138 00:05:40,120 --> 00:05:40,970 Kio estas tio programo. 139 00:05:40,970 --> 00:05:43,970 Iam re kompilita kaj kuri, faros logike? 140 00:05:43,970 --> 00:05:44,870 >> Publiko: Nenio. 141 00:05:44,870 --> 00:05:45,661 >> Parolanto 1: Nenio. 142 00:05:45,661 --> 00:05:47,156 Kial estas tio? 143 00:05:47,156 --> 00:05:49,124 >> Publiko: Mi estas desegnita por nulo. 144 00:05:49,124 --> 00:05:51,899 Do, la kondiĉo estas falsa. 145 00:05:51,899 --> 00:05:52,940 Parolanto 1: Jes, ĝuste. 146 00:05:52,940 --> 00:05:55,110 Ĉiuj kodo estas ĝentila, sintakse. 147 00:05:55,110 --> 00:05:57,310 Ĉi kompilos, ĉi kodo kuros, sed ĝi ne estas 148 00:05:57,310 --> 00:06:00,110 tuj fari ion utilan ĉar mi pravalorizi mi al nulo. 149 00:06:00,110 --> 00:06:02,240 Ni tiam kontrolu, estas mi pli granda ol 50? 150 00:06:02,240 --> 00:06:03,810 Evidente, ne, ĝi ne estas. 151 00:06:03,810 --> 00:06:05,760 Do la buklo neniam ekzekutas ajn. 152 00:06:05,760 --> 00:06:09,580 >> Kio se ni faros ion iom pli temerara? 153 00:06:09,580 --> 00:06:12,890 Do, kio se ni imitu int mi ricevas nulon. 154 00:06:12,890 --> 00:06:15,640 Kaj nun lasu min uzi tempon buklo, kiu estis alia kondiĉo. 155 00:06:15,640 --> 00:06:21,810 Kaj dum mi diras, dum mi estas pli granda ol aŭ egala al nulo, kaj tiam tie mi 156 00:06:21,810 --> 00:06:26,070 antaŭeniri kaj savi la dosieron, fari banton. 157 00:06:26,070 --> 00:06:27,070 Kaj mi komencis forkuri ĝin. 158 00:06:27,070 --> 00:06:30,230 Kion mi tuj vidos ĉi tempo kun dum buklo? 159 00:06:30,230 --> 00:06:30,852 Yeah. 160 00:06:30,852 --> 00:06:32,120 >> Publiko: senfina ciklo? 161 00:06:32,120 --> 00:06:35,360 >> Parolanto 1: senfina ciklo? 162 00:06:35,360 --> 00:06:36,662 Jes, kial? 163 00:06:36,662 --> 00:06:38,120 Publiko: Ĉar estas ĉiam nulo. 164 00:06:38,120 --> 00:06:38,786 Parolanto 1: Yeah. 165 00:06:38,786 --> 00:06:40,100 Do, mi estas pravalorizitaj kiel nulo. 166 00:06:40,100 --> 00:06:44,470 Kompreneble mi estas ĉiam pli granda ol aŭ egala al 0 kiel rezulto. 167 00:06:44,470 --> 00:06:46,460 Do, mi simple tuj vidu tiun senfine. 168 00:06:46,460 --> 00:06:49,850 Nun, ĉi tio venas supren iam aŭ dufoje al la kurso la kapoj. 169 00:06:49,850 --> 00:06:52,417 Kio okazas kiam vi havas senfina ciklo? 170 00:06:52,417 --> 00:06:53,314 >> Publiko: Kontrolo C. 171 00:06:53,314 --> 00:06:53,980 Parolanto 1: Yeah. 172 00:06:53,980 --> 00:06:56,250 Do Kontrolo C eventuale respondi. 173 00:06:56,250 --> 00:06:59,520 Bedaŭrinde, ni presis eksteren milionoj kaj milionoj da nuloj jam 174 00:06:59,520 --> 00:07:01,520 kaj tiel la komputilo havas ia akiris antaŭ mi. 175 00:07:01,520 --> 00:07:03,394 Do, ĝi tuj ignori min por iomete. 176 00:07:03,394 --> 00:07:06,560 Sed se vi nur batis Kontrolo C kelkaj fojojn sur via Mac aŭ PC klavaro, 177 00:07:06,560 --> 00:07:08,790 eventuale ĝi devus ja finiĝi. 178 00:07:08,790 --> 00:07:11,770 Kaj se ne, ni montros al vi kelkajn teknikojn antaŭ longa kie vi 179 00:07:11,770 --> 00:07:14,850 povas fakte perforte mortigi programojn, multe kiel en Windows kaj Mac VIN, 180 00:07:14,850 --> 00:07:15,562 se necese. 181 00:07:15,562 --> 00:07:16,770 Sed ni provu ion alian. 182 00:07:16,770 --> 00:07:19,895 Ni fakte pliigo I. Is tiu ankoraŭ tuj estos senfina? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Mi kuros ĉi. 185 00:07:25,140 --> 00:07:27,090 Kaj nun vi povas ia vidu kio okazas. 186 00:07:27,090 --> 00:07:30,140 Ĉi tio, ankaŭ, estas senfina ciklo. 187 00:07:30,140 --> 00:07:33,080 Sed tio estas iom de lertaĵo demando. 188 00:07:33,080 --> 00:07:35,460 Estas ĉi presigos nombroj ĉiam? 189 00:07:35,460 --> 00:07:36,647 >> Publiko: No. 190 00:07:36,647 --> 00:07:37,230 Parolanto 1: No. 191 00:07:37,230 --> 00:07:37,620 Kial? 192 00:07:37,620 --> 00:07:38,820 Mi aŭdis iun nos super tie. 193 00:07:38,820 --> 00:07:41,859 Someone-- Yeah. 194 00:07:41,859 --> 00:07:44,275 Spektantaro: Vi ne havas sufiĉan bitojn por vere plu iri. 195 00:07:44,275 --> 00:07:44,730 Parolanto 1: Bone. 196 00:07:44,730 --> 00:07:46,000 Do mi ne havas sufiĉan bitoj plu iri. 197 00:07:46,000 --> 00:07:47,124 Do, kio okazos? 198 00:07:47,124 --> 00:07:49,320 Ĝi simple tuj ĉesos? 199 00:07:49,320 --> 00:07:52,542 >> Publiko: Ĉe iu punkto ĝi fermos the-- 200 00:07:52,542 --> 00:07:54,500 Parolanto 1: Ĝi fermos la buklo malsupren, sed kial? 201 00:07:54,500 --> 00:07:57,950 Kio okazos ĉe la tre fino de ĝiaj limoj? 202 00:07:57,950 --> 00:07:58,479 Yeah? 203 00:07:58,479 --> 00:08:00,520 Spektantaro: Ĝi ciklo reen al negativaj nombroj. 204 00:08:00,520 --> 00:08:02,900 Parolanto 1: Por negativaj nombroj, aŭ se ni ĵus traktanta pozitiva, 205 00:08:02,900 --> 00:08:03,570 nulo almenaŭ. 206 00:08:03,570 --> 00:08:04,550 Do jes, absolute. 207 00:08:04,550 --> 00:08:08,059 Memoru ke ni vidis lastan fojon ke, se vi pliigo via bitoj unu tro da fojoj, 208 00:08:08,059 --> 00:08:10,225 kaj vi tie Fore superfluaĵo la kapablo de via int 209 00:08:10,225 --> 00:08:13,058 aŭ nenial la datumtipo estas, vi estas tuj envolver ĉirkaŭe, probable, 210 00:08:13,058 --> 00:08:14,020 du negativaj nombroj. 211 00:08:14,020 --> 00:08:16,644 Aŭ se vi specifas ke via intervalo devus nur esti pozitiva, 212 00:08:16,644 --> 00:08:18,560 kiun vi povas fari, sed Ni ne vidis ke ankoraŭ, 213 00:08:18,560 --> 00:08:21,420 vi eble finos almenaŭ reen ĉe nulo. 214 00:08:21,420 --> 00:08:22,410 Kvankam, fakte jes. 215 00:08:22,410 --> 00:08:24,320 En tiu kazo, negativa nombroj, tiaokaze 216 00:08:24,320 --> 00:08:26,870 la buklo tuj chesigi ĉar mi ne estas, fakte, 217 00:08:26,870 --> 00:08:29,220 pli granda ol aŭ egala al nulo se ĝi estas negativa. 218 00:08:29,220 --> 00:08:31,780 >> Do, bedaŭrinde, kiom longe estus ni devas atendi? 219 00:08:31,780 --> 00:08:35,490 Ĝuste nun ni estas ĝis kio, 2 milionoj-ish? 220 00:08:35,490 --> 00:08:37,705 Ni estas kiel 2 miliardoj, ni tuj devas atendi 221 00:08:37,705 --> 00:08:39,330 ĝis ni vere povas vidi ĉi simptomo. 222 00:08:39,330 --> 00:08:46,200 Sed ni povas vidi ĝin iom pli rapida, maybe-- ni vidu se ni povas interrompi. 223 00:08:46,200 --> 00:08:46,700 Venu. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Eĉ la menuoj aperas malrapide. 226 00:08:51,331 --> 00:08:51,830 Bone. 227 00:08:51,830 --> 00:08:54,270 Do, ni revenos al tiu post nelonge. 228 00:08:54,270 --> 00:08:56,320 Estas bona time-- damn it, hundidoj. 229 00:08:56,320 --> 00:08:58,280 >> Estas bona tempo por iuj anoncoj. 230 00:08:58,280 --> 00:09:01,225 Do, se vi povus ŝati okupiĝi YHack, 231 00:09:01,225 --> 00:09:03,600 kiu estas okazaĵo estanta patronita de niaj amikoj ĉe Yale. 232 00:09:03,600 --> 00:09:05,990 Kaj vere, iuj de la kurso TFS ĉe Yale estas implikita kun ĉi tiu. 233 00:09:05,990 --> 00:09:08,610 YHack estas internacia hack-a-thon gastigita fare kaj tenis 234 00:09:08,610 --> 00:09:12,395 ĉe Yale, alportante kune 1,500 kiel minded hackers kaj creatives ĉiuj 235 00:09:12,395 --> 00:09:13,120 super la mondo. 236 00:09:13,120 --> 00:09:14,610 Se ĉi tiu estas de intereso, rigardu ĉi tie. 237 00:09:14,610 --> 00:09:17,401 Se ĉi tiu estas tro mallonge sur la ekrano, rigardu hodiaŭa diapozitivoj 238 00:09:17,401 --> 00:09:19,622 cxar la URL por yhack.org. 239 00:09:19,622 --> 00:09:21,080 Do, ankaŭ kelkaj rapidaj anoncoj. 240 00:09:21,080 --> 00:09:24,410 Do, oficiale sekcioj komencos venontsemajne ambaŭ tie kaj New Haven. 241 00:09:24,410 --> 00:09:27,660 Memoru vi estos ricevi retpoŝto poste tiu semajnfino plej verŝajna. 242 00:09:27,660 --> 00:09:29,390 Ĝi prenas longan tempon por CS50 al sekcio, 243 00:09:29,390 --> 00:09:32,080 donita tuta popolo en la klaso kaj ĉiu movas ĉirkaŭe. 244 00:09:32,080 --> 00:09:34,871 Kaj ĉiuj Teaching Fellows ' horaroj estas ankaŭ ankoraŭ solidigante, 245 00:09:34,871 --> 00:09:38,110 sed Sekvu por email kaj se bezono esti, vi povas re-sekcio tie post. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Do, eĉ se vi estas konstanta partoprenanto ĉe sekcioj, rimarkas ke preskaŭ ĉiuj 248 00:09:43,280 --> 00:09:46,786 de la resursoj ni uzi en sekcioj estas publike havebla ĉe CS50 249 00:09:46,786 --> 00:09:48,460 Studi ĉe ĉi URL tie. 250 00:09:48,460 --> 00:09:51,630 Do, se vi volas iam ŝatus re revizio materialo de sekcio, aŭ legi antaŭ, 251 00:09:51,630 --> 00:09:54,170 aŭ vi ne povas fari ĝin iu semajno, konscias ke specimeno diapozitivoj, 252 00:09:54,170 --> 00:09:58,210 kaj problemojn, kaj difinoj, kaj pli estas ĉiuj tie ankaŭ. 253 00:09:58,210 --> 00:10:00,645 >> Oficejo horoj rekomencos hodiaŭ, kaj morgaux, kaj merkredo, 254 00:10:00,645 --> 00:10:03,020 kaj ĵaŭdo kontroli la kurso retejo por la horaro. 255 00:10:03,020 --> 00:10:05,690 >> Kaj ankaŭ, nun lanĉanta hodiaŭ estas CS50 Diskutu. 256 00:10:05,690 --> 00:10:09,230 Do, se kaj kiam vi havas demandojn pri reciproke aŭ por la kurso de dungitaro, 257 00:10:09,230 --> 00:10:12,099 kaj ĝenerale laboras sur iu problemo aro, 258 00:10:12,099 --> 00:10:15,015 rimarkas ke vi ne nepre devas turni al la homa apud vi. 259 00:10:15,015 --> 00:10:17,810 Se neniu estas ĉi tie, vi povas atingi ekstere al ni kaj samklasanoj 260 00:10:17,810 --> 00:10:19,890 linio tra CS50 Diskutu. 261 00:10:19,890 --> 00:10:22,600 Do, tiu estas diskuto tabulo por la kurso, 262 00:10:22,600 --> 00:10:24,550 kaj konscii ke ĉi estas eble la plej bona 263 00:10:24,550 --> 00:10:28,480 loko komenci kiam vi havas demandoj kiam ekster oficejo horoj 264 00:10:28,480 --> 00:10:29,470 en aparta. 265 00:10:29,470 --> 00:10:31,070 >> Lunĉoj funkciigos tiun semajnon ankaŭ. 266 00:10:31,070 --> 00:10:33,170 Ĉe Fajro kaj Ice [Inaudible] en New Haven. 267 00:10:33,170 --> 00:10:35,379 Rigardu la kurson de retejon por RSVP. 268 00:10:35,379 --> 00:10:36,753 Unua venis, unua servas por tio. 269 00:10:36,753 --> 00:10:39,380 Se vi ne ricevas en tiu semajno ni faros tiujn plej ĉiu vendredo 270 00:10:39,380 --> 00:10:40,400 dum la termino. 271 00:10:40,400 --> 00:10:41,830 >> OK, kaj nun eĉ unu vorton pri gradiganta. 272 00:10:41,830 --> 00:10:44,690 Precipe kiel ni eniras problemon starigis unu, kio estas ekstere ĉi tiu semajno, 273 00:10:44,690 --> 00:10:46,670 kaj problemo starigis du kaj poste. 274 00:10:46,670 --> 00:10:51,680 Kiel ni iras pri pritaksanta P aroj kaj taksi la kvaliton de gxi? 275 00:10:51,680 --> 00:10:55,560 Do, estas kvar aksoj kiuj ni uzas en CS50, kaj ili estas tiuj kvar tie. 276 00:10:55,560 --> 00:10:59,200 >> Amplekso, kiu kaptas sur nombra Surbaze nur kiom de la P aro 277 00:10:59,200 --> 00:10:59,860 vi pritrakti. 278 00:10:59,860 --> 00:11:02,890 Ĝi estas malglate korespondas kun peno, kaj ĝi estas nia maniero de kapti 279 00:11:02,890 --> 00:11:05,190 vi provos duono la P starigis, ĉiuj la P aro. 280 00:11:05,190 --> 00:11:08,860 Tio estas facila por akiri perfektan partituroj sur se vi ja 281 00:11:08,860 --> 00:11:11,020 provi ĉiu aspekto de la P aro. 282 00:11:11,020 --> 00:11:12,010 Do, gardu tion en menso. 283 00:11:12,010 --> 00:11:13,420 >> Praveco estas ĝuste tio. 284 00:11:13,420 --> 00:11:17,760 Ĉu via kodo laboro kiel la specifo kaj kiel la bastonoj 'specimenon solvo 285 00:11:17,760 --> 00:11:19,730 sugestas ke via kodo devus, fakte, labori. 286 00:11:19,730 --> 00:11:23,260 Kontrolu 50, se vi ne renkontis ŝin tamen, estas en P starigis unu specifo 287 00:11:23,260 --> 00:11:25,060 kaj ĝenerale donu vi jes / ne respondoj 288 00:11:25,060 --> 00:11:26,518 ĉu via kodo estas ĝusta. 289 00:11:26,518 --> 00:11:30,680 Almenaŭ tiom kiom ni iras Taksi ĝin bazite sur la provoj 290 00:11:30,680 --> 00:11:32,430 ke ni kuras ene de tiu programo. 291 00:11:32,430 --> 00:11:33,850 >> Dezajno estas multe pli subjektiva. 292 00:11:33,850 --> 00:11:35,994 Jen kiel bone skribita estas via kodo. 293 00:11:35,994 --> 00:11:38,410 Kaj tiu estas iu kiu vi ricevos pli bona ĉe la tempo, 294 00:11:38,410 --> 00:11:41,201 kaj ĝi estas io kion ni provizi pli kvalita reagojn pri. 295 00:11:41,201 --> 00:11:43,350 Kaj projekte mi povus signifas antaux longe vi 296 00:11:43,350 --> 00:11:47,650 povus esti tentita en iuj P fiksita fari ion loopingly, 297 00:11:47,650 --> 00:11:51,590 sed havanta eble tri aŭ kvar, aŭ kvin nestitaj antaŭo maŝojn aŭ nestitaj dum 298 00:11:51,590 --> 00:11:52,090 bukloj. 299 00:11:52,090 --> 00:11:54,130 Ke ĝenerale devus komenci fari vi cringe 300 00:11:54,130 --> 00:11:56,070 kaj ĝenerale estus konsiderita maltaŭga. 301 00:11:56,070 --> 00:11:59,490 Kaj vi komencos vidi en klaso kaj el klaso bonaj manieroj de fari aferojn, 302 00:11:59,490 --> 00:12:02,920 malbonaj manieroj fari aĵoj kiujn povus ĉiuj esti ĝustaj, sed ne 303 00:12:02,920 --> 00:12:04,304 nepre bone desegnita. 304 00:12:04,304 --> 00:12:05,220 Kiel skribi eseon. 305 00:12:05,220 --> 00:12:08,100 Vi eble povus meti vortojn sur paĝo kiu estas gramatike ĝusta, 306 00:12:08,100 --> 00:12:10,016 sed la eseo aŭ la tezo ili estas en estas nur 307 00:12:10,016 --> 00:12:11,810 tute nekohera aŭ unpersuasive. 308 00:12:11,810 --> 00:12:15,930 Kaj tial eble estos la analoga en la skribita mondo de malbona aŭ bona dezajno. 309 00:12:15,930 --> 00:12:18,490 >> Kaj stilo, ankaŭ, estas sufiĉe subjektiva. 310 00:12:18,490 --> 00:12:20,060 Sed almenaŭ ni atendas consistencia. 311 00:12:20,060 --> 00:12:21,480 Jen kiel bela estas via kodo. 312 00:12:21,480 --> 00:12:22,840 Ĉu aferojn bonguste dentado? 313 00:12:22,840 --> 00:12:26,600 Ĉu via variabloj bone enoficigis / Ĉu ĉiuj de via parentezoj kaj buklaj krampoj 314 00:12:26,600 --> 00:12:27,920 vicigita kiel ili devus esti? 315 00:12:27,920 --> 00:12:31,490 Ni ja havas CS50 stilo gvidas kiel la problemo aro estos atentigi vin je. 316 00:12:31,490 --> 00:12:33,730 Tiuj pli komforta estas bonvenigi malproksimigi de tiu 317 00:12:33,730 --> 00:12:35,771 tiel longe kiel vi estas mem konsekvenca. 318 00:12:35,771 --> 00:12:38,020 Kaj tiu, tro, estas leciono ni plifortigi en sekcio. 319 00:12:38,020 --> 00:12:40,990 Do, se ĉio ĉi estis malgranda rapida, rimarkas la P aro kaj sekcioj 320 00:12:40,990 --> 00:12:42,900 iros en pli profundo antaŭ longe. 321 00:12:42,900 --> 00:12:45,490 >> Sed ĝenerale ni havas tre malmultaj siteloj por CS50. 322 00:12:45,490 --> 00:12:48,170 Dudekopo estas ĝenerale en skalo de al tri, aŭ unu al kvin. 323 00:12:48,170 --> 00:12:50,836 Ni literally-- kaj mi ne povas diri tiu sufiĉe en la unua semajno. 324 00:12:50,836 --> 00:12:51,582 Tri estas bona. 325 00:12:51,582 --> 00:12:54,290 Do, kvankam, jes, tri el de kvin kutime, matematike, 326 00:12:54,290 --> 00:12:57,240 povus esti 60 procentoj aŭ kiel D minus. 327 00:12:57,240 --> 00:12:58,840 Tri estas, fakte, bonaj. 328 00:12:58,840 --> 00:13:01,050 Kaj, fakte, ni atendas plej lernantoj en la klaso 329 00:13:01,050 --> 00:13:04,280 dividi la termino ĉirkaŭ duope, triope, kvarpiede kaj. 330 00:13:04,280 --> 00:13:05,510 Probable ne tiel multaj Fives. 331 00:13:05,510 --> 00:13:06,661 Ne tro da aĵoj. 332 00:13:06,661 --> 00:13:08,910 Sed ĝenerale komenci en ke dolĉa punkto en la kurbo 333 00:13:08,910 --> 00:13:11,694 tiel ke, kiel tempo progresas, ekzistas reale ĉambron por, 334 00:13:11,694 --> 00:13:13,360 kaj ŝancojn por supra progresio. 335 00:13:13,360 --> 00:13:15,810 Do, bonvolu ne egaligas tri kun 60%. 336 00:13:15,810 --> 00:13:17,410 Ĝi estas multe pli abstrakta ol tiu. 337 00:13:17,410 --> 00:13:20,160 La formulo per kiu oni kalkulas gradoj estas pezita kiel sekvas. 338 00:13:20,160 --> 00:13:21,610 Ĝustecon valoras la plej. 339 00:13:21,610 --> 00:13:23,010 Dezajno valoras iom malpli. 340 00:13:23,010 --> 00:13:24,490 Stilo valoras iom malpli. 341 00:13:24,490 --> 00:13:26,950 Kaj tiu ĝenerale kaptas la kvanto de tempo 342 00:13:26,950 --> 00:13:29,800 kiu iras al atingi ĉiu de ĉi tiuj aksoj nur rajto. 343 00:13:29,800 --> 00:13:31,810 Stilo estas super facila, devus esti super rapida, 344 00:13:31,810 --> 00:13:33,657 sed estas facila kutimo akiri mallaborema pri. 345 00:13:33,657 --> 00:13:35,490 Ĝustecon povus preni vi plejofte. 346 00:13:35,490 --> 00:13:38,990 Chasing malsupren iuj cimoj heroajxoj preni ke ekstra horo aŭ pli, 347 00:13:38,990 --> 00:13:41,737 kaj tiel, la poentado finfine kaptas tion. 348 00:13:41,737 --> 00:13:43,070 Kaj do, nun pli seriozan vorton. 349 00:13:43,070 --> 00:13:45,240 Ekde CS50 havas la distingo, por bone 350 00:13:45,240 --> 00:13:47,440 aŭ por malbone, de esti eble pli bona acquainted 351 00:13:47,440 --> 00:13:50,065 kun la temoj de akademia honesteco ol plej ajna alia kurso. 352 00:13:50,065 --> 00:13:53,720 Kaj ja, ĝi estas laŭ mia scio ke ni sendas pli da studentoj, bedaŭrinde, 353 00:13:53,720 --> 00:13:56,690 por disciplinaj celoj ĉiujare kiel rezulto. Do, 354 00:13:56,690 --> 00:13:59,040 en la intereso de plena malkaŝo, ni parolu brevemente 355 00:13:59,040 --> 00:14:02,820 pri kio daŭriĝas en CS50, kaj kion vi povas fari, kaj kion vi povas memori. 356 00:14:02,820 --> 00:14:05,530 >> Do, ĉi tie ekde 2007, kiam Mi heredis la kurso, 357 00:14:05,530 --> 00:14:07,870 estas la nombro de Ad Board kazoj. 358 00:14:07,870 --> 00:14:10,690 Ad Board estas Harvard disciplina korpo, aŭ nun la Honoro Counsel, 359 00:14:10,690 --> 00:14:13,790 al kiuj kazoj estas referitaj kiam lernantoj fari iun kiu la kurso 360 00:14:13,790 --> 00:14:15,470 Syllabus konsideras neracia. 361 00:14:15,470 --> 00:14:17,220 Ekzistas neniu reala padrono tie, mi dirus. 362 00:14:17,220 --> 00:14:19,530 Ĝi variadas super la jaroj sed ĝenerale 363 00:14:19,530 --> 00:14:22,262 Jen estas la nombro de kazoj kiuj raportas. 364 00:14:22,262 --> 00:14:23,970 La nombro de studentoj ke estas implikitaj? 365 00:14:23,970 --> 00:14:25,290 Ĝi tro varias. 366 00:14:25,290 --> 00:14:27,930 Tipe, lasta jaro por Ekzemple, 29 studentoj ĉe Harvard 367 00:14:27,930 --> 00:14:29,740 estis Ad eniĝis, tiel diri. 368 00:14:29,740 --> 00:14:32,670 29 el ili nunaj studentoj, du el ili antaŭ studentoj, 369 00:14:32,670 --> 00:14:35,610 kiuj kunlaboris en iu perversa maniero. 370 00:14:35,610 --> 00:14:38,400 Kaj tiam en terminoj de la procento, ĝi estas kutime ĉirkaŭ 3% 371 00:14:38,400 --> 00:14:41,360 de la klaso kiu, bedaŭrinde, faras tiajn decidojn. 372 00:14:41,360 --> 00:14:44,470 >> Do, lasta jaro estis 3.5% de CS50 la studentaro 373 00:14:44,470 --> 00:14:46,820 kiu estis Ad eniĝis, tiel diri. 374 00:14:46,820 --> 00:14:48,490 >> Do, kion signifas ĉio ĉi signifas? 375 00:14:48,490 --> 00:14:49,660 Kaj kion ni efektive faros? 376 00:14:49,660 --> 00:14:52,930 >> Do, por plena malkaŝo, ni absolute, kiel komputilo sciencistoj, 377 00:14:52,930 --> 00:14:57,620 havi programaro iloj je nia dispono kaj ĝi estas tre facila por ni, juste 378 00:14:57,620 --> 00:15:00,980 ke alies samklasanoj kiuj ne transirante tiuj linioj transiri kompari 379 00:15:00,980 --> 00:15:04,570 ĉiun submetiĝo tiu jaro kontraŭ ĉiu submetiĝo dum la pasintaj ok jaroj. 380 00:15:04,570 --> 00:15:05,445 Programaro tion faras. 381 00:15:05,445 --> 00:15:07,440 Kaj finfine estas homaj okuloj decidantaj 382 00:15:07,440 --> 00:15:11,410 ĉu por raporti iun gravas por plua adjudication, 383 00:15:11,410 --> 00:15:12,737 sed programaro certe helpas. 384 00:15:12,737 --> 00:15:15,820 Kaj tiu, sincere, tial ke mi pensas ni havas tiajn grandajn nombrojn en CS50. 385 00:15:15,820 --> 00:15:18,540 Ne ĉar CS50 lernantoj aŭ CS studentoj pli 386 00:15:18,540 --> 00:15:20,840 ĝenerale estas ajna malpli honesta ol ajna aliaj studentoj, 387 00:15:20,840 --> 00:15:22,340 ĝi estas nur ni havas la iloj kaj la teknikoj 388 00:15:22,340 --> 00:15:24,095 kun kiu preni tiun unuan paŝon. 389 00:15:24,095 --> 00:15:25,960 >> Sed ni tenas okulon sur ĉiuj tiuj aferoj 390 00:15:25,960 --> 00:15:30,340 tiel, denove, en la interesoj de rekonante la laboro kiu estas estanta metita 391 00:15:30,340 --> 00:15:32,397 tra la super plimulto de la klaso. 392 00:15:32,397 --> 00:15:34,230 Kaj la kurso la privateco sur akademia honesteco, 393 00:15:34,230 --> 00:15:37,021 kvankam ĝi estas aro da alineoj longa kun aro da kugloj 394 00:15:37,021 --> 00:15:40,490 kiuj estas espereble tre facile legebla, ĝi vere bolas malsupren al racia. 395 00:15:40,490 --> 00:15:44,000 Kaj la plej bona regulo de thumb ke ni oferi ene la Syllabus 396 00:15:44,000 --> 00:15:46,020 estas tio, la esenco de ĉiu laboro, kiun vi 397 00:15:46,020 --> 00:15:47,850 submetiĝi al tiu kurso devas esti via propra. 398 00:15:47,850 --> 00:15:51,510 Kaj efektive, en preskaŭ ĉiuj el tiuj kazoj rilatis por disciplina ago 399 00:15:51,510 --> 00:15:55,640 ĝi estis pro iu studento malfrue unu nokto tipe turnis sian kodon 400 00:15:55,640 --> 00:15:58,130 super rekte al samklasano, kiu tiam adoptis 401 00:15:58,130 --> 00:16:00,840 bloke aŭ signife largxo. 402 00:16:00,840 --> 00:16:02,680 >> Sed vere, tiu estas okej. 403 00:16:02,680 --> 00:16:04,684 Kaj efektive, en oficejo horoj, la papelitos 404 00:16:04,684 --> 00:16:07,850 vi estis enmanigis se vi venis por ofico Horoj lasta semajno instigas tiel. 405 00:16:07,850 --> 00:16:09,710 Vi tute bonvenigis kaj kuraĝigis 406 00:16:09,710 --> 00:16:12,340 diskuti problemo aroj kun samklasanoj. 407 00:16:12,340 --> 00:16:14,461 Helpi unu la alian kiam falpusxigxo. 408 00:16:14,461 --> 00:16:17,710 Sed ĝenerale la regulo de thumb devus esti tiu, "kiam vi petas helpon, 409 00:16:17,710 --> 00:16:20,412 vi rajtas montri vian kodon por aliaj, sed vi povas ne rigardi ilian. " 410 00:16:20,412 --> 00:16:22,620 Do, alivorte, se mi baraktante kun iuj P aro 411 00:16:22,620 --> 00:16:25,290 kaj mi sidas tie en la manĝejo, aŭ en la biblioteko, 412 00:16:25,290 --> 00:16:28,470 aŭ en la klasĉambro provante trovi iun kulpon, 413 00:16:28,470 --> 00:16:30,340 Mi certe povas montri mia kodo sur mia ekrano 414 00:16:30,340 --> 00:16:32,590 al la persono sidanta apud al mi, certe la bastonon, 415 00:16:32,590 --> 00:16:33,600 sed ankaŭ samklasano. 416 00:16:33,600 --> 00:16:36,580 Sed se la solvo kiu mia samklasano proponas estas, ho, 417 00:16:36,580 --> 00:16:39,200 tie nur rigardu kion Mi faris, kiu transiras la linion. 418 00:16:39,200 --> 00:16:43,120 >> Kaj mi kuraĝas diri, ke estas ĝenerale racia afero por multaj homoj 419 00:16:43,120 --> 00:16:45,030 al tre facile ekvidi la linio de. 420 00:16:45,030 --> 00:16:47,195 Kaj tial, vidu la Syllabus por pli detale. 421 00:16:47,195 --> 00:16:49,070 Kaj nun unu el la pli polemikaj aspektoj 422 00:16:49,070 --> 00:16:52,529 de CS50 syllabus ke mi supozis ke parolus al konklude tie 423 00:16:52,529 --> 00:16:53,820 estas la tn bedaŭro klaŭzo. 424 00:16:53,820 --> 00:16:55,340 Do, jen ĉiuj fajnan print. 425 00:16:55,340 --> 00:16:58,090 Sed ĝenerale ni vidis dum la pasintaj 8 jaroj pli 426 00:16:58,090 --> 00:17:01,510 kiu, efektive, preskaŭ ĉiuj el CS50 la kazoj de akademia malhonesteco 427 00:17:01,510 --> 00:17:04,390 estis la rezulto de nur malriĉa decidado malfrunokte. 428 00:17:04,390 --> 00:17:07,144 La rezulto de streso, la rezulto de manko de manĝado, manko de dormo, 429 00:17:07,144 --> 00:17:09,560 tro multaj P aroj, tro multaj templimoj, tro multaj engaĝiĝoj. 430 00:17:09,560 --> 00:17:13,520 Streso edifado en 2:00 AM, 3:00 AM, 4:00 AM, kun limdato minacanta. 431 00:17:13,520 --> 00:17:17,020 Plej studentoj en tiuj kazoj ĵus faris malbonajn decidojn 432 00:17:17,020 --> 00:17:20,619 ke ili povus tre bone bedaŭri la sekvamatene se ne minutojn poste, 433 00:17:20,619 --> 00:17:25,490 sed ĝis la pasinta jaro ne estis liberigo valvo ke tiuj studentoj povis 434 00:17:25,490 --> 00:17:29,140 fakte malfermas reale alparoli la problemo kapon sur sen timo de esti 435 00:17:29,140 --> 00:17:30,850 booted el kolegio entute. 436 00:17:30,850 --> 00:17:33,260 >> Kaj, efektive, ni enkondukis ĉi bedaŭro klaŭzo pasintjare, 437 00:17:33,260 --> 00:17:35,970 kiuj diras ke se ene 72 horoj, tri tagoj, 438 00:17:35,970 --> 00:17:37,970 transiri iu linio preskribitaj en la Syllabus 439 00:17:37,970 --> 00:17:41,178 vi veni antaŭen al unu el la kurso kapoj kaj ni devos babili pri ĝi. 440 00:17:41,178 --> 00:17:43,720 Tie ankoraŭ estos kelkaj rezulto, male al kio estas 441 00:17:43,720 --> 00:17:44,990 estis raportita al la kontrauxa. 442 00:17:44,990 --> 00:17:49,190 Ankoraŭ iuj rezulton estas priagebla de la kurso, 443 00:17:49,190 --> 00:17:51,611 ĝenerale informoj nulo P aro aŭ prenante iuj aliaj agoj, 444 00:17:51,611 --> 00:17:53,610 Sed ni ja manipuli ĝin mem kaj ne 445 00:17:53,610 --> 00:17:58,460 rilati gxin pli alta estis la rezulto povu multe pli severa. 446 00:17:58,460 --> 00:18:01,810 Kaj ĝuste dividi kio okazis lasta jaro, en la ok jaroj, kaj nun 447 00:18:01,810 --> 00:18:04,950 naŭ jaroj, instrui tiun kurson kaj post laboreti kun diversaj kapetoj 448 00:18:04,950 --> 00:18:07,866 turnante diversaj ciferplatoj super la pasinteco pluraj jaroj sur akademia honesteco, 449 00:18:07,866 --> 00:18:11,920 kaj vidante po la datumoj ne ŝajna efikon, eĉ de paroladoj kiel tiu, 450 00:18:11,920 --> 00:18:15,490 jen manoj malsupren la plej bona afero ni enkondukis pedagogie 451 00:18:15,490 --> 00:18:18,090 en ok jaroj kune tiuj linioj en CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 studentoj venis antaŭen sub tiu klaŭzo pasintjare. 453 00:18:21,010 --> 00:18:23,389 Ni prenis neniun agon por sep de tiuj lernantoj, 454 00:18:23,389 --> 00:18:25,430 determinante ke ili estis nenecese maltrankviligita. 455 00:18:25,430 --> 00:18:27,304 Ili havis ne, fakte, transiris linion, sed ĝi 456 00:18:27,304 --> 00:18:28,960 estis bona babilejo havi tamen. 457 00:18:28,960 --> 00:18:31,190 Ni zeroed 11 de la partituroj ke prizentita. 458 00:18:31,190 --> 00:18:33,840 Kaj en unu kazo ni demandis studenton fari problemo starigis. 459 00:18:33,840 --> 00:18:36,370 Sed pli konvinka, Honeste, kun tiuj 19 babilejoj, 460 00:18:36,370 --> 00:18:39,020 kiu estis maniero pli ol mi atendita havi, ĉiu el ili 461 00:18:39,020 --> 00:18:41,370 10 minutoj eble oni horo longa, ankaŭ alportis 462 00:18:41,370 --> 00:18:44,920 lumigi kelkajn temojn koncerne familial temoj, amiko temoj, 463 00:18:44,920 --> 00:18:46,940 mensa sano temoj ke ni tiam engaĝitaj, 464 00:18:46,940 --> 00:18:50,200 kun la studenta beno, loĝanto dekano, aŭ amikoj, aŭ ajna alia nombro 465 00:18:50,200 --> 00:18:51,450 de subteno rimedoj. 466 00:18:51,450 --> 00:18:54,454 Por ke tiu estis certe unu de la plej bonaj uzoj de nia tempo 467 00:18:54,454 --> 00:18:55,870 kaj unu el la plej bonaj intervenoj. 468 00:18:55,870 --> 00:18:58,870 >> Kun kiu diris, ĝi ne havis enigo en la indico de detekto 469 00:18:58,870 --> 00:19:00,909 de akademia malhonesteco pli ĝenerale. 470 00:19:00,909 --> 00:19:02,950 Kaj mi kuraĝas diri, ke tiu subaro de studentoj pasintjare 471 00:19:02,950 --> 00:19:06,350 estis demografia ke ni antaŭe neniam identigita antaŭ 472 00:19:06,350 --> 00:19:08,140 kaj neniam konektita kun antaŭe. 473 00:19:08,140 --> 00:19:10,020 Kaj do, tiuj estis mirinda sukceso rakontojn 474 00:19:10,020 --> 00:19:13,390 kvankam ili estis alportitaj al la lumo en malpli ol optimuma cirkonstancoj. 475 00:19:13,390 --> 00:19:15,640 Do, daŭru en menso kiel vi faras, eble, 476 00:19:15,640 --> 00:19:17,390 kelkaj malriĉaj decido mem malfrunokte, 477 00:19:17,390 --> 00:19:20,151 ke estas rimedo por longa kiel la studento en tiu situacio 478 00:19:20,151 --> 00:19:23,400 posedi supren kaj veni antaŭen tiel ke ni povas havas tian babilejo kaj trakti ĝin 479 00:19:23,400 --> 00:19:27,310 en maniero kiu estas eduka kaj tiam ni povas meti ĝin malantaŭ ni la sekva tago. 480 00:19:27,310 --> 00:19:30,335 >> Do sen pli enkonduko, preni la rando ekstere de ĉi tiu konversacio, 481 00:19:30,335 --> 00:19:35,080 la kialo la idoj estas UP nur rompi la glacion dum momento. 482 00:19:35,080 --> 00:19:39,560 Kaj bedaŭrinde, ili estas ĉiuj dormos, sed kio supozeble okazis tie 483 00:19:39,560 --> 00:19:41,760 Estis ĉiuj laŭsupoze timigi kaj tipon de relax 484 00:19:41,760 --> 00:19:43,910 poste tre peza konversacio. 485 00:19:43,910 --> 00:19:46,930 Sed ŝajne mi metis la hundidoj dormi. 486 00:19:46,930 --> 00:19:50,070 Sed se vi iros al CS50 retejo oblikvo hundidoj, 487 00:19:50,070 --> 00:19:51,610 vi povas rigardi ilin la tutan tagon. 488 00:19:51,610 --> 00:19:55,280 Aparte eble 2:00, aŭ 3:00, aŭ 4:00 AM nokte 489 00:19:55,280 --> 00:19:57,480 vidi iom streso reliefo tie. 490 00:19:57,480 --> 00:19:58,805 Do kiu estas oblikvo hundidoj. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 Bone. 493 00:20:02,200 --> 00:20:03,020 Ne estis tio amuza? 494 00:20:03,020 --> 00:20:04,200 BONE. 495 00:20:04,200 --> 00:20:07,140 Do, reen al iuj komputilaj scienco, se mi povas. 496 00:20:07,140 --> 00:20:10,600 >> Do, memoras ke lastfoje ni komencis rigardante ne nur ĉe ĉefaj, kiuj 497 00:20:10,600 --> 00:20:13,930 estis la defaŭlta funkcio, la kiam verda flago clicked ekvivalento, 498 00:20:13,930 --> 00:20:16,999 sed ni ankaŭ komencis mallonge skribi iuj de niaj propraj funkcioj. 499 00:20:16,999 --> 00:20:20,040 Kaj ĝis nun neniu el tiuj funkcioj estis aparte grandaj aŭ meaty. 500 00:20:20,040 --> 00:20:24,570 Vi ricevos en tiuj grandaj funkcioj probable, P starigis 2, P starigis 3, 501 00:20:24,570 --> 00:20:26,410 sendube P starigis 4 kaj pluen. 502 00:20:26,410 --> 00:20:29,340 Nun plejparto de viaj programoj, se ne ĉiuj, certe por P 503 00:20:29,340 --> 00:20:31,550 aro 1 povas esti farita tute en ĉefa. 504 00:20:31,550 --> 00:20:33,810 Se via programo estas nur kvin linioj, 10 linioj, 505 00:20:33,810 --> 00:20:37,070 eĉ 20 linioj longaj, perfekte racie skribi ĝin 506 00:20:37,070 --> 00:20:40,930 ĉiuj en ĉefaj kaj ne over kompliki via kodo, sed kion ni faras hodiaŭ 507 00:20:40,930 --> 00:20:44,360 kaj plue provas ankaŭ enkonduki iun bonan dezajno teknikoj 508 00:20:44,360 --> 00:20:48,660 por ke kiel via kodo ricevas pli komplikitaj kaj kiel la problemoj 509 00:20:48,660 --> 00:20:51,690 vi volas solvi akiras pli malfacilan kaj pli interesa vi havas, ia, 510 00:20:51,690 --> 00:20:55,850 la iloj en via toolbox kun kiu desegni bona solvojn al tiuj. 511 00:20:55,850 --> 00:21:01,210 >> Do, ni prenu rapidan rigardon reen ĉe ĉi programo de mia lasta semajno, kiun 512 00:21:01,210 --> 00:21:06,550 Estis funkcioj nul streketo C. Kaj rimarkos ke, tute simple, 513 00:21:06,550 --> 00:21:10,310 ĝi aspektas kiel tiu kun du funkcioj, ĉefa kaj presita nomo. 514 00:21:10,310 --> 00:21:13,160 Kaj pensante dorso aŭ eble retroprojektadon hodiaŭ, 515 00:21:13,160 --> 00:21:16,880 kio estis la motivado por enkondukanta funkcio en linio 28 nomita, 516 00:21:16,880 --> 00:21:18,180 print nomo? 517 00:21:18,180 --> 00:21:21,745 Aŭ kio estis tiu ekzemplo de en Kondiĉoj de komenco aŭ takeaway, 518 00:21:21,745 --> 00:21:22,605 se vi volus. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Iuj murmuroj. 521 00:21:27,300 --> 00:21:28,830 Kio? 522 00:21:28,830 --> 00:21:32,210 >> Yeah tiel Funkcia Malkomponaĵo estas speco de la fantazio maniero diri, 523 00:21:32,210 --> 00:21:34,690 malkomponi vian programon en ĝiaj konsistigaj partoj 524 00:21:34,690 --> 00:21:37,530 kaj tiam uzi tiujn partojn kunvenigi tuto. 525 00:21:37,530 --> 00:21:39,620 Do, ankaŭ tio nur speco de bocado jam, 526 00:21:39,620 --> 00:21:42,050 sed tio eble estas eĉ bona ekzemplo de io 527 00:21:42,050 --> 00:21:43,081 nur nomis abstraktado. 528 00:21:43,081 --> 00:21:43,580 Dekstra? 529 00:21:43,580 --> 00:21:46,950 Abstraktado tuj estos unu de la temoj recurrentes en CS50 530 00:21:46,950 --> 00:21:49,085 kaj ankaŭ komputiko pli ĝenerale ĉar estas 531 00:21:49,085 --> 00:21:53,060 tekniko per kiu vi povas solvi problemojn pli efike ĉar vi 532 00:21:53,060 --> 00:21:56,807 povas skribi solvoj pli intuicie kaj en maniero kiun skaloj 533 00:21:56,807 --> 00:21:58,390 kaj estas komprenebla de aliaj personoj. 534 00:21:58,390 --> 00:21:59,860 Kion mi celas diri per tio? 535 00:21:59,860 --> 00:22:04,340 >> Do, eble estas multe pli legebla rigardi programon kiel tiu, 536 00:22:04,340 --> 00:22:05,990 super mallonga kvankam tio. 537 00:22:05,990 --> 00:22:10,050 Kiam vi vidas sur linio 22 ke ekzistas funkcio vokita, presaĵo nomo. 538 00:22:10,050 --> 00:22:12,620 Tiu nomo sole diras kion ĝi faras. 539 00:22:12,620 --> 00:22:15,780 Domadministranto ŝajne prenas enigo inter lia krampoj, 540 00:22:15,780 --> 00:22:18,600 kaj ŝajne faras ion, supozeble presas la nomon. 541 00:22:18,600 --> 00:22:20,880 Kaj tiel, kvankam ni absolute povus havi 542 00:22:20,880 --> 00:22:25,280 faris kion ni faris antaŭ unu semajno, kiu estis nur prenu tiun fakta linio de kodo, 543 00:22:25,280 --> 00:22:28,710 Forigi ĉi, kaj instigi forigi ĉi ĉiuj kune, 544 00:22:28,710 --> 00:22:31,436 ni ia abstraída for la nocio de presado nomon. 545 00:22:31,436 --> 00:22:33,060 Mi ne zorgas se vi uzas presaĵo def. 546 00:22:33,060 --> 00:22:35,601 Ne gravas se vi havas procento S kaj backslash N. Tiuj 547 00:22:35,601 --> 00:22:37,270 Estas nekredeble arcano detaloj. 548 00:22:37,270 --> 00:22:40,090 Kion mi faras zorgon pri kiel programisto estas videbligi nomon. 549 00:22:40,090 --> 00:22:43,414 Kaj do, ¿kio pli bona maniero fari tion ol nomante funkcio, presi nomo? 550 00:22:43,414 --> 00:22:46,330 Kaj do, tio estis unu el la motivaciones cxar farante io tiamaniere. 551 00:22:46,330 --> 00:22:50,370 Farante la kodon pli legebla, pli reuzebla, kaj ankaŭ mem priskriba. 552 00:22:50,370 --> 00:22:52,120 Nun, ni rigardu ĉe alia ekzemplo, 553 00:22:52,120 --> 00:22:56,220 kio funkcioj unu, kiun ni havis super tie. 554 00:22:56,220 --> 00:23:00,367 >> Do, ĉi tiu estas eble eĉ pli konvinka ĉar, en tiu kazo, 555 00:23:00,367 --> 00:23:01,700 Mi ne volas simple ricevas int. 556 00:23:01,700 --> 00:23:03,320 Mi volas ricevi pozitivan int. 557 00:23:03,320 --> 00:23:06,470 Kaj ĝi rezultas akiri pozitivan int vi devi fari faskon de legwork. 558 00:23:06,470 --> 00:23:06,969 Dekstra? 559 00:23:06,969 --> 00:23:09,600 Ĝi ne estas simpla linio nomas kiel presaĵo nomo estis, 560 00:23:09,600 --> 00:23:11,480 kio estas koncedite malpli konvinka. 561 00:23:11,480 --> 00:23:16,000 >> Por ricevi pozitivan int, logically-- lasu min rulumi reen malsupren por kaŝi tiun. 562 00:23:16,000 --> 00:23:18,887 Kion vi devas fari? 563 00:23:18,887 --> 00:23:20,720 Kiel ĉiuj iloj ni havas nuntempe 564 00:23:20,720 --> 00:23:24,440 aĵoj kiel presaĵo def de Norma Biblioteko kaj ankaŭ el CS50 biblioteko 565 00:23:24,440 --> 00:23:26,990 ni havos Get Mez, kaj Get Float, Get Long Long, Akiri String, 566 00:23:26,990 --> 00:23:29,260 sed la sola, germane, nun estas Get Int. 567 00:23:29,260 --> 00:23:32,970 Do, se la sola ilo vi havas en via ilo skatolo estas Get Mez, 568 00:23:32,970 --> 00:23:35,505 Kiel ni iras pri efektivigado ĝi akiri pozitivan int? 569 00:23:35,505 --> 00:23:35,929 >> Publiko: Krei sxtipo kaj kontroli sur ĉu la enigaĵo ke ili donis 570 00:23:35,929 --> 00:23:36,762 estis pozitivaj aŭ ne. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> Parolanto 1: Perfekta. 573 00:23:40,640 --> 00:23:41,200 Ekzakte. 574 00:23:41,200 --> 00:23:43,950 Alia ilo ni havas en nia toolbox de unu-du semajnoj antaŭ 575 00:23:43,950 --> 00:23:45,419 Estas ĝuste la looping konstrui. 576 00:23:45,419 --> 00:23:48,210 Do, jes, se ni uzas dum buklo, aŭ fari dum buklo, aŭ ĉefan 577 00:23:48,210 --> 00:23:50,850 buklo ni povus probable foriri kun iu el tiuj en iu formo. 578 00:23:50,850 --> 00:23:55,140 Ni povas apliki la nocio de Get pozitivaj int per nur uzanta Get Mez, 579 00:23:55,140 --> 00:23:57,830 kaj tiam simple observu nomante ĝin denove kaj teni tedante la uzanto 580 00:23:57,830 --> 00:24:00,320 ĝis li aŭ ŝi reale donas al ni kion ni deziras. 581 00:24:00,320 --> 00:24:03,260 >> Kaj tial nun, tiu abstraktado de la procezo 582 00:24:03,260 --> 00:24:05,680 akiri pozitivan int en funkcio nomita 583 00:24:05,680 --> 00:24:08,930 Get Pozitivaj Mez estas iom pli konvinka ĉar rigardas tiun. 584 00:24:08,930 --> 00:24:10,990 Tiuj estas kiel 10 plus linioj de kodo kiu 585 00:24:10,990 --> 00:24:15,090 estas implikitaj en prenanta pozitivajn int, kaj mi ne vere zorgas kiel vi faras ĝin. 586 00:24:15,090 --> 00:24:17,850 Ĉiuj mi zorgas estas ke vi povas fari ĝin, kaj tiel mi havas 587 00:24:17,850 --> 00:24:21,660 kaŝita ĉiujn tiujn detalojn malantaŭ funkcio nomita Get Pozitivaj int ke, 588 00:24:21,660 --> 00:24:23,430 ja havas ĉi do dum buklo. 589 00:24:23,430 --> 00:24:27,660 >> Kaj vidi lasta semajno por la sintakso tie, sed simple deklaras N, 590 00:24:27,660 --> 00:24:29,800 kaj ĝi presas el la instrukcion al la uzanto. 591 00:24:29,800 --> 00:24:33,330 Ĝi alvokas Get Mez kaj tiam kontrolas kondicxo denove, kaj denove, 592 00:24:33,330 --> 00:24:35,230 kaj denove ĝis la uzanto kunlaboras. 593 00:24:35,230 --> 00:24:38,000 >> Do nun, kelkajn prudento ĉekoj. 594 00:24:38,000 --> 00:24:40,370 Por tiuj eble familiara kun iu programado, 595 00:24:40,370 --> 00:24:46,410 kial N deklaris, kial mi krei N ekster la do dum buklo? 596 00:24:46,410 --> 00:24:50,370 Kial estas sur linio 29 kaj ne sur kiel 33, ekzemple. 597 00:24:50,370 --> 00:24:53,529 >> Publiko: Ĉar kiam vi deklari ĝin ekstere, ĝi speco 598 00:24:53,529 --> 00:24:56,688 de pli, la pli granda scope-- 599 00:24:56,688 --> 00:24:58,146 >> Parolanto 1: Bona. 600 00:24:58,146 --> 00:24:59,604 >> Publiko: --and se vi rakontos tion malantaux la buklo, [inaudible] 601 00:24:59,604 --> 00:25:00,979 ĉar ne scias pri ĝi. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 Parolanto 1: Ekzakte. 604 00:25:03,610 --> 00:25:06,330 Se mi povas simplify-- ĝi estas afero de medio. 605 00:25:06,330 --> 00:25:11,530 Kaj amplekso rilatas al la kunteksto en kiu variablo ekzistas aŭ estas uzebla. 606 00:25:11,530 --> 00:25:15,050 Kaj la bela regulo de thumb estas, ke ĝenerale kiam vi deklaras aŭ krei 607 00:25:15,050 --> 00:25:21,642 ŝanĝiĝema vi povas nur uzi ĝin ene de la plej proksima brakumante buklaj krampoj. 608 00:25:21,642 --> 00:25:22,600 Do kion tio signifas? 609 00:25:22,600 --> 00:25:26,551 Se mi, anstataŭe, malfari tion kaj iru kun iu kiu sentas iom pli simpla. 610 00:25:26,551 --> 00:25:27,050 Dekstra? 611 00:25:27,050 --> 00:25:29,360 >> Linio 32 nur aspektas purigisto min nun. 612 00:25:29,360 --> 00:25:31,500 Mi faras ambaŭ aferojn unufoje kaj tiam asignanta 613 00:25:31,500 --> 00:25:33,070 la dekstra mano al la maldekstra mano. 614 00:25:33,070 --> 00:25:35,180 La problemo nun estas bazita sur ke difino de amplekso 615 00:25:35,180 --> 00:25:41,130 estas ke N povas esti uzata en linioj 31 kaj 32 ene de tiu ciklo, 616 00:25:41,130 --> 00:25:45,100 sed kie por tiu difino povas ne esti uzata? 617 00:25:45,100 --> 00:25:45,660 En linio kio? 618 00:25:45,660 --> 00:25:46,160 Yeah. 619 00:25:46,160 --> 00:25:47,490 >> Publiko: 35. 620 00:25:47,490 --> 00:25:49,180 >> Parolanto 1: 35. 621 00:25:49,180 --> 00:25:50,480 Definitive ne 35. 622 00:25:50,480 --> 00:25:52,349 Kaj ankaŭ kie alia? 623 00:25:52,349 --> 00:25:52,890 Publiko: 34. 624 00:25:52,890 --> 00:25:55,040 Parolanto 1: Eĉ 34 estas problema ĉar ĝi estas 625 00:25:55,040 --> 00:25:56,450 eksteren de la frizita krampoj. 626 00:25:56,450 --> 00:25:58,200 Do fakte, ni vidu kio okazas. 627 00:25:58,200 --> 00:25:58,700 Dekstra? 628 00:25:58,700 --> 00:26:00,722 Tio povas ŝajni iom intuicia aŭ eble ne, 629 00:26:00,722 --> 00:26:02,680 sed ni vidu kio la tradukilo devas diri kiam 630 00:26:02,680 --> 00:26:04,730 ni iros en la hodiaŭa fonto dosierujo. 631 00:26:04,730 --> 00:26:08,950 Faru funkcio unu. 632 00:26:08,950 --> 00:26:11,231 Ho, mia dio. 633 00:26:11,231 --> 00:26:12,980 Nu, mi fine finis ke, parenteze. 634 00:26:12,980 --> 00:26:14,030 Bone. 635 00:26:14,030 --> 00:26:15,510 Kaj kio estas la demando tie? 636 00:26:15,510 --> 00:26:17,430 Tre arcano rigardi. 637 00:26:17,430 --> 00:26:19,570 Sed jen kion mi typed-- faru funkcion unu. 638 00:26:19,570 --> 00:26:21,640 Jen kion fari induktita, kiu estas reale 639 00:26:21,640 --> 00:26:23,705 uzante la tradukilon tin kun kelkaj el tiuj flagoj 640 00:26:23,705 --> 00:26:25,080 ke ni vidos denove antaŭ longe. 641 00:26:25,080 --> 00:26:26,829 Kaj denove, ĉiam aspektas ĉe la unua eraro, 642 00:26:26,829 --> 00:26:30,540 ĉar ĝi nur povus havi kaskadan sensignifa efikon sur aliaj linioj. 643 00:26:30,540 --> 00:26:34,410 >> Do kion tio signifas estas ke la problemo estas en funkcio 1.c. 644 00:26:34,410 --> 00:26:36,890 Ĝi estas ĉe linio 32. 645 00:26:36,890 --> 00:26:39,712 Kaj ĝi estas ĉe kolumno, aŭ karaktero, 13. 646 00:26:39,712 --> 00:26:42,670 Do kiam via tekstoredaktilo kiu povas helpi vin identigi kie la temo estas. 647 00:26:42,670 --> 00:26:47,079 Do se mi rulumu supren, kio estas linio 32? 648 00:26:47,079 --> 00:26:49,120 Tio ja ĉi tiu ke tio jam elstarigitaj 649 00:26:49,120 --> 00:26:50,607 dekstra here-- neuzitaj variablo n. 650 00:26:50,607 --> 00:26:51,440 Sed ĝi ne estas neuzata. 651 00:26:51,440 --> 00:26:52,320 Mi uzas ĝin. 652 00:26:52,320 --> 00:26:56,110 Sed la tradukilo konfuzas, ĉar ĝi nur ekzistas ene de tiu medio. 653 00:26:56,110 --> 00:26:57,727 Kaj tial mi ne povas uzi ĝin ĉi tie. 654 00:26:57,727 --> 00:26:58,560 Mi ne povas uzi gxin tie. 655 00:26:58,560 --> 00:27:01,320 Kaj la tradukilo do eĉ ne gravas ke mi provas. 656 00:27:01,320 --> 00:27:03,940 Ŝajnas esti neuzitaj ene ĝia fakta medio. 657 00:27:03,940 --> 00:27:08,854 >> Do ni povas plivastigi la medio per farado ĝuste kion ni komencis with-- int n. 658 00:27:08,854 --> 00:27:11,020 Kaj eĉ se ĝi ne aspektas kiel eleganta, eble, 659 00:27:11,020 --> 00:27:15,110 kaj ni prenas ekstran linion tie, nun ĝi estas en amplekso ĉie. 660 00:27:15,110 --> 00:27:15,970 Do ni provu denove. 661 00:27:15,970 --> 00:27:19,040 Do fari funkcio unu. 662 00:27:19,040 --> 00:27:19,610 Nice. 663 00:27:19,610 --> 00:27:23,370 Kaj nun se mi se mi kuros funkcio unu, ni donu al ĝi negativan 10, 664 00:27:23,370 --> 00:27:27,170 negativa 1, 0, 1, kaj ĝi efektive funkcias. 665 00:27:27,170 --> 00:27:28,610 >> Do ekzistas alia solvo tie. 666 00:27:28,610 --> 00:27:29,280 Vi scias kion? 667 00:27:29,280 --> 00:27:31,230 Kio se mi vere estas luktanta kun tio? 668 00:27:31,230 --> 00:27:33,140 Mi ne scias kie la n supozas iri. 669 00:27:33,140 --> 00:27:33,723 Vi scias kion? 670 00:27:33,723 --> 00:27:39,220 Mi simple tuj meti ĝin ĉiuj vojo ĉe la supro de mia dosiero tie. 671 00:27:39,220 --> 00:27:42,835 Kion cxi faras, vi opinias? 672 00:27:42,835 --> 00:27:43,335 Yeah? 673 00:27:43,335 --> 00:27:44,251 >> Spektantaro: [inaudible]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 Parolanto 1: Yeah. 676 00:27:48,630 --> 00:27:50,560 Do mi faris ĝin tutmonda, por tiel diri. 677 00:27:50,560 --> 00:27:54,430 Se vi havas variablo kiu estas ekster ĉiuj viaj funkcioj kiuj estas permesitaj, 678 00:27:54,430 --> 00:27:58,780 kaj la kodo devus kompili, kaj n nun estos atingebla ne nur en Get 679 00:27:58,780 --> 00:28:02,490 pozitivaj int, sed ankaŭ en main-- kiu estas iom preocupante ĉar estas 680 00:28:02,490 --> 00:28:04,864 Jam n en ĉefaj, tiel pli sur tiu en nur moment-- 681 00:28:04,864 --> 00:28:06,530 sed tiu estus konsiderita maltaŭga. 682 00:28:06,530 --> 00:28:06,910 Bone. 683 00:28:06,910 --> 00:28:08,570 Se vi devi recurrir al io kiel, oh, mi 684 00:28:08,570 --> 00:28:10,125 simple metu ĝin ĉi tie ĉar la kodo ŝajnas kompili 685 00:28:10,125 --> 00:28:12,180 estas ĝenerale ne la plej bona praktiko. 686 00:28:12,180 --> 00:28:14,590 Prefere vi volas elekti la plej mallarĝa ebla amplekso 687 00:28:14,590 --> 00:28:18,720 por via variabloj, kion signifus irante kun nia komenca dezajno, kiu 688 00:28:18,720 --> 00:28:19,920 Estas ĝuste ĉi tie. 689 00:28:19,920 --> 00:28:24,400 >> Nun kiel flanken, se vi havas an idente-nomita variablo tie, 690 00:28:24,400 --> 00:28:27,750 la vojo c pritraktus this-- kvankam tio ne okazos tro often-- 691 00:28:27,750 --> 00:28:30,150 estas ke tiu estas ankoraŭ perfekte bone en ĉi tie. 692 00:28:30,150 --> 00:28:35,000 Sed tiu difino de n en linio 22 estos shadow la suma. 693 00:28:35,000 --> 00:28:38,190 Do ĉi tiu laboros ene ĉefa, kaj la suma 694 00:28:38,190 --> 00:28:41,670 efektive apliki kiam vi estas en akiri pozitivajn int Sed pli sur tiu 695 00:28:41,670 --> 00:28:43,890 alia tempo, sed ĝuste por tiuj scivola. 696 00:28:43,890 --> 00:28:45,970 >> Do mallonge, ni riparos tion ĉi tie. 697 00:28:45,970 --> 00:28:49,220 Nun ni turmentus aparte du aliaj pecoj antaŭ ni rigardas unu lastan linion de kodo 698 00:28:49,220 --> 00:28:50,170 en tiu programo. 699 00:28:50,170 --> 00:28:52,170 Akiri pozitivajn int. 700 00:28:52,170 --> 00:28:54,450 Sur la maldekstra flanko de lia vorto estas la vorto int. 701 00:28:54,450 --> 00:28:56,860 Kion tio signifas vi pensas? 702 00:28:56,860 --> 00:28:58,900 Tiel nun ni plejparte vidis malplenon. 703 00:28:58,900 --> 00:28:59,400 Yeah? 704 00:28:59,400 --> 00:29:01,810 >> Spektantaro: Ĝi estas la tipo de ŝanĝiĝema ke vi demandas pri. 705 00:29:01,810 --> 00:29:04,550 >> Parolanto 1: Yeah Estas la tipo de, lasu min Ne diru varia, sed la tipo de valoro 706 00:29:04,550 --> 00:29:05,990 ke mi demandas reen por. 707 00:29:05,990 --> 00:29:08,070 Kaj efektive, jen intuicia tie, espereble. 708 00:29:08,070 --> 00:29:08,200 Dekstra? 709 00:29:08,200 --> 00:29:10,250 Se vi volas ricevi pozitivaj int, kio estas vi 710 00:29:10,250 --> 00:29:12,920 volas la function-- kiel nia volontuloj el pasintsemajne 711 00:29:12,920 --> 00:29:15,720 transdoni vin pecon de papero kun int sur ĝi? 712 00:29:15,720 --> 00:29:19,190 Kaj tial ni specifis ke la tn reveno tipo de ĉi tiu funkcio 713 00:29:19,190 --> 00:29:20,450 estas akiri pozitivajn int. 714 00:29:20,450 --> 00:29:22,990 Se ni ne volas ĝin redoni ion, vi diras malplenon. 715 00:29:22,990 --> 00:29:25,270 Se vi volas ĝin reveni kordo, vi diras kordoj. 716 00:29:25,270 --> 00:29:27,310 Se vi volas ĝin reveni kaleŝego, vi diris kaleŝego. 717 00:29:27,310 --> 00:29:30,440 Sed la sola kiu aplikas tie logike, ĉar mi uzas get int, 718 00:29:30,440 --> 00:29:34,130 kvankam mi restrikti ĝin al pozitivaj valoroj, estas reveni al int. 719 00:29:34,130 --> 00:29:38,380 >> Do inverse, kion tio signifas ke ekzistas malpleno en parentezoj? 720 00:29:38,380 --> 00:29:40,130 Kion faru la krampoj ĝenerale difini? 721 00:29:40,130 --> 00:29:40,588 Yeah? 722 00:29:40,588 --> 00:29:42,880 >> Spektantaro: Ĝi signifas la funkcia ne efektive akiranta ĝin. 723 00:29:42,880 --> 00:29:44,650 >> Parolanto 1: Ĝi signifas la funkcia ne fakte ricevas kion? 724 00:29:44,650 --> 00:29:45,430 >> Publiko: enigaĵoj. 725 00:29:45,430 --> 00:29:46,763 >> Parolanto 1: enigaĵoj, whatsoever. 726 00:29:46,763 --> 00:29:49,870 Do efektive, se parentezo tie vi specifas malplenon, 727 00:29:49,870 --> 00:29:51,650 ke nur signifas mi ne volas enigo. 728 00:29:51,650 --> 00:29:53,269 Mi trakti la problemon mem. 729 00:29:53,269 --> 00:29:55,810 Kaj efektive, vi ne devas diru akiri pozitivajn int ion. 730 00:29:55,810 --> 00:29:59,630 Vi nur diru, akiri pozitivajn int, kaj ke funkcio pafos kaj fari lian aferon. 731 00:29:59,630 --> 00:30:02,970 >> Sed tie jam iom lertaĵo mi havas estis ludanta tie ĉi tuta tempo 732 00:30:02,970 --> 00:30:04,970 certigi tiun kodon kompilas. 733 00:30:04,970 --> 00:30:09,620 Rimarku ke int-- akiri pozitivajn int void-- estas ĉe linio 27. 734 00:30:09,620 --> 00:30:14,530 Sed por iuj ŝajne bizara kialo ĝi estas ankaŭ tie sur linio 16. 735 00:30:14,530 --> 00:30:18,530 Kaj ĝuste por bona mezuro Mi ripetas ĉi do estas perfekte identaj. 736 00:30:18,530 --> 00:30:21,640 Kaj mi diris prototipo kun iom unulinia rimarko. 737 00:30:21,640 --> 00:30:28,850 Kio okazas se mi forigas ke, Kaj nun rerun fari funkcio 1, eniru. 738 00:30:28,850 --> 00:30:29,350 Whoops. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Atendu minuton. 741 00:30:33,110 --> 00:30:34,764 Kie estas mia langeto? 742 00:30:34,764 --> 00:30:35,263 Huh? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 Standby. 745 00:30:39,620 --> 00:30:41,570 Faru funkcio 1. 746 00:30:41,570 --> 00:30:42,150 Tie ni marŝos. 747 00:30:42,150 --> 00:30:42,310 BONE. 748 00:30:42,310 --> 00:30:43,400 Ne savis ĝin taŭge. 749 00:30:43,400 --> 00:30:45,220 Do, mi kredas ke estas iom cimo tie kie mi ne estas 750 00:30:45,220 --> 00:30:46,636 vidante la langeto nomo nuntempe. 751 00:30:46,636 --> 00:30:47,940 Do kio okazas ĉi tie? 752 00:30:47,940 --> 00:30:52,210 Implica deklaro de funkcio akiri pozitivajn int estas nevalida en C99. 753 00:30:52,210 --> 00:30:53,940 Do konfuzante denove. 754 00:30:53,940 --> 00:30:55,200 Do kio estas tiu indika? 755 00:30:55,200 --> 00:30:57,287 Nu, Ĝi rezultas ke C estas sufiĉe stulta. 756 00:30:57,287 --> 00:30:59,912 Nu, estas la programado lingvo, aŭ prefere la kompililo estas. 757 00:30:59,912 --> 00:31:02,940 Ĝi nur scias kion vi havas instruita kaj estas nur 758 00:31:02,940 --> 00:31:05,640 tuj scios ion se vi instruis ĝin antaŭe. 759 00:31:05,640 --> 00:31:07,960 Alivorte, en ĉefa Nuntempe, mi estas 760 00:31:07,960 --> 00:31:10,900 provas nomi funkcio nomata akiri pozitivajn int. 761 00:31:10,900 --> 00:31:14,120 Sed la tradukilo ne tuj rimarki ke akiri pozitivajn int 762 00:31:14,120 --> 00:31:16,500 ekzistas ĝis linio 26. 763 00:31:16,500 --> 00:31:21,360 Kaj tiel kion la tradukilo faras estas nur eraroj tuj kiam ĝi alvenas al linio 17, 764 00:31:21,360 --> 00:31:23,700 dirante implicitan deklaron de akiri pozitivajn int, kiu 765 00:31:23,700 --> 00:31:27,740 estas nur fantazio maniero diri, mi ne faras scias kion akiri pozitivajn int estas ankoraŭ. 766 00:31:27,740 --> 00:31:31,240 >> Aliaj lingvoj kiel Java kaj Python kaj Ruby povus rigardi antaŭen. 767 00:31:31,240 --> 00:31:32,240 C ne. 768 00:31:32,240 --> 00:31:35,110 Kaj tial la maniero kiun ni ripari tio estas unu el du manieroj. 769 00:31:35,110 --> 00:31:40,160 Ĉu unu, ĉu la problemo estas ke akiri pozitivaj int ne vidis antaŭe, 770 00:31:40,160 --> 00:31:42,150 nu, lasu min nur movi ĝin al la supro. 771 00:31:42,150 --> 00:31:43,650 Tio estus korekti tiun problemon. 772 00:31:43,650 --> 00:31:46,790 Sed ĝenerale, estas konsiderata bona tekniko 773 00:31:46,790 --> 00:31:50,220 meti via ĉefa funkcio je la tre pinto tiel ke homa legante via kodo 774 00:31:50,220 --> 00:31:52,710 scias kion la programo faras, ĉar ĉefa ne enterigis ĉiuj 775 00:31:52,710 --> 00:31:53,960 la vojo ĉe la malsupro aŭ en la mezo. 776 00:31:53,960 --> 00:31:55,130 Ĝi estas ĉe la tre pinta. 777 00:31:55,130 --> 00:31:56,410 Por ke ne sentas idealo. 778 00:31:56,410 --> 00:31:58,326 Kaj vi povas reale preni en situacioj kie 779 00:31:58,326 --> 00:32:00,820 se unu funkcio alvokoj alia, kiu nomas alian, 780 00:32:00,820 --> 00:32:04,630 vi povas akiri en temo kie nek povas iri super la alia, logike. 781 00:32:04,630 --> 00:32:05,920 Ĝi estas nur ne ebla. 782 00:32:05,920 --> 00:32:09,290 >> Kaj tial la vojo labori ĉirkaŭ ĉi estas nur prenu 783 00:32:09,290 --> 00:32:13,200 la funkcio subskribon, tiel diri la unua linio kie ĝi estas declared-- 784 00:32:13,200 --> 00:32:16,850 kaj simple kopii, alglui ĝin en la supron, sed ne kun krispa braces-- 785 00:32:16,850 --> 00:32:17,980 nur kun punktokomo. 786 00:32:17,980 --> 00:32:20,840 Estas kiel malgranda sugesto de kio estas por veni. 787 00:32:20,840 --> 00:32:26,630 Kaj fakte, ĉiuj ĉi tempo, kiam ni vidis aĵojn kiel normo io.h 788 00:32:26,630 --> 00:32:33,040 kaj cs50.h, simile, en tiuj skalara h dosieroj estas tie aliaj prototipoj. 789 00:32:33,040 --> 00:32:35,250 Kaj ni vidos, ke antaŭ longe. 790 00:32:35,250 --> 00:32:39,340 >> Do mallonge, kiam vi havas programon en dosiero kun multnombraj funkcioj 791 00:32:39,340 --> 00:32:42,300 krom ĉefa, vi preskaŭ Ĉiam volas deklari ilin 792 00:32:42,300 --> 00:32:45,360 nur pere de sia unua linio, sekvita per punktokomo, 793 00:32:45,360 --> 00:32:48,410 ĉe la plejsupro de la dosiero. 794 00:32:48,410 --> 00:32:50,460 Tio estis multe cxiujn samtempe. 795 00:32:50,460 --> 00:32:53,130 Demandojn? 796 00:32:53,130 --> 00:32:53,920 Demandojn? 797 00:32:53,920 --> 00:32:54,530 Bone. 798 00:32:54,530 --> 00:32:59,760 >> Do ni pluiru tiam al io kiel tuso. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 Kiel adaptado. 801 00:33:00,570 --> 00:33:01,220 Bone. 802 00:33:01,220 --> 00:33:02,260 Tuso. 803 00:33:02,260 --> 00:33:05,080 Do jen estas c efektivigo de programo 804 00:33:05,080 --> 00:33:07,560 ni faris la aliajn tago Scratch ke tre simple nur 805 00:33:07,560 --> 00:33:08,691 diras tuso, tuso, tuso. 806 00:33:08,691 --> 00:33:09,190 Bone. 807 00:33:09,190 --> 00:33:11,136 Kaj iu diris kelkajn tagojn kiuj ekzistas 808 00:33:11,136 --> 00:33:12,760 maniero de purigi tiun kodon supren jam. 809 00:33:12,760 --> 00:33:12,880 Bone? 810 00:33:12,880 --> 00:33:15,440 Apenaŭ vi kopiado kaj alglui probable maltaŭga. 811 00:33:15,440 --> 00:33:18,725 Almenaŭ iam ni atingos kvar aŭ kvin aŭ 20 tusoj, sentas malbona praktiko. 812 00:33:18,725 --> 00:33:19,850 Ni simple observu kopion, alglui. 813 00:33:19,850 --> 00:33:22,213 Kio estas la evidenta solvo por purigi ĉi programo kolektis? 814 00:33:22,213 --> 00:33:23,120 >> Spektantaro: Cirkla. 815 00:33:23,120 --> 00:33:23,350 >> Parolanto 1: Yeah. 816 00:33:23,350 --> 00:33:24,070 Do uzi buklo. 817 00:33:24,070 --> 00:33:27,697 Kaj ni povas uzi por-ciklo, tempo buklo, ajna nombro da aliroj. 818 00:33:27,697 --> 00:33:29,780 Kaj efektive, jen kio ni faras en versio tie. 819 00:33:29,780 --> 00:33:32,250 Mi anstataŭe reskribita ĝi en versio unu el cough.c 820 00:33:32,250 --> 00:33:35,170 esti nur tuso ene por-buklo. 821 00:33:35,170 --> 00:33:38,240 Bone, sed tie estas ŝanco nun al ia komenco 822 00:33:38,240 --> 00:33:41,630 desegni ĉi iom pli kiel la leciono ni instruis antaŭ momento, 823 00:33:41,630 --> 00:33:46,190 kio estas this-- supozu ke mi volis krei funkcion nomita tuso, 824 00:33:46,190 --> 00:33:49,730 ni konsideru por nur momento kion ĝi tuj aspekti. 825 00:33:49,730 --> 00:33:51,900 Do se mi volas ion tusi, mi nur bezonas 826 00:33:51,900 --> 00:33:53,800 uzi print f ene la funkcio. 827 00:33:53,800 --> 00:33:55,030 Kaj ja certe. 828 00:33:55,030 --> 00:33:56,990 Kaj fakte, ĉiuj ĉi tempo, ajna tempo vi estas 829 00:33:56,990 --> 00:33:59,000 presi ion la ekrano, programisto 830 00:33:59,000 --> 00:34:00,610 vokus ke kromefikon. 831 00:34:00,610 --> 00:34:02,990 Tio ne min disdonanta reen iu valoro. 832 00:34:02,990 --> 00:34:06,170 Oni min prenante iun agon kiu eble estas vide evidenta. 833 00:34:06,170 --> 00:34:10,672 Sed tiu funkcio tuso, ĝi revenos ion bazita sur ĝia unua linio? 834 00:34:10,672 --> 00:34:12,880 Ne, ĉar lia reveno tipo estas malplena, kiu signifas nur 835 00:34:12,880 --> 00:34:14,250 ĝi ne disdonanta mi ion reen. 836 00:34:14,250 --> 00:34:16,791 Povus esti faranta ion vide, sed ĝi ne estas disdonanta min 837 00:34:16,791 --> 00:34:18,639 malantaŭeniri paperpeco kiel pasintsemajne. 838 00:34:18,639 --> 00:34:21,310 >> Ĉu ĝi bezonas neniun enigo? 839 00:34:21,310 --> 00:34:21,810 No. 840 00:34:21,810 --> 00:34:23,134 Kaj do ĝi estas nula tie ankaŭ. 841 00:34:23,134 --> 00:34:25,600 Do ĉi tiu estas ankaŭ speco de super-Engineering tiun problemon. 842 00:34:25,600 --> 00:34:26,099 Dekstra? 843 00:34:26,099 --> 00:34:28,820 Mi jam faris la programon pli kompleksa, pli linioj de kodo, 844 00:34:28,820 --> 00:34:31,889 Mi ne faris ajnan pli praktika, sed tio 845 00:34:31,889 --> 00:34:34,210 estus paŝanta ŝtono, eble, por pli ampleksa 846 00:34:34,210 --> 00:34:36,830 kunteksto kun pli komplika kodo. 847 00:34:36,830 --> 00:34:38,150 Sed kio pri tio? 848 00:34:38,150 --> 00:34:42,050 Kion mi done-- nur rigardante tiu sen rigardi la komenton 849 00:34:42,050 --> 00:34:46,076 ĉe la plejsupro de la file-- kio havas Mi fundamente farita tie kun mia tuso 850 00:34:46,076 --> 00:34:47,409 implementación kiu estas malsama? 851 00:34:47,409 --> 00:34:48,327 Jes, en reen? 852 00:34:48,327 --> 00:34:51,384 >> Publiko: Faru tiel vi povas havas karakteron elŝalti. 853 00:34:51,384 --> 00:34:52,050 Parolanto 1: Yeah. 854 00:34:52,050 --> 00:34:53,270 Do tiu sentas speco de agrabla. 855 00:34:53,270 --> 00:34:53,389 Dekstra? 856 00:34:53,389 --> 00:34:56,600 Estas kiel aldonante esprimilo al via programo aŭ via funkcio, en tiu kazo. 857 00:34:56,600 --> 00:34:57,830 Ĝi ankoraŭ redonas nenion. 858 00:34:57,830 --> 00:35:00,538 Ĝi povus havi vidan kromefikon, ĉar ĝi estas vokanta print f. 859 00:35:00,538 --> 00:35:02,800 Sed nun mi parametrigita la funkcio, kiu 860 00:35:02,800 --> 00:35:06,470 signifas Mi specifita prenita enigo de tipo int kaj nomas ĝin n, 861 00:35:06,470 --> 00:35:08,510 sed mi povis nomi ion mi volas. 862 00:35:08,510 --> 00:35:11,550 Fakte, ĝi povus nur esti fojojn esti eĉ pli eksplicitaj. 863 00:35:11,550 --> 00:35:13,310 Kaj tiam mi povis nur ŝanĝi ĉi tie. 864 00:35:13,310 --> 00:35:16,450 Sed la punkto estas ke tio ĉi estas kiel mi krei funkcion kiu prenas enigo. 865 00:35:16,450 --> 00:35:19,530 Kaj se vi memoras klakanta tra eble rete en unu 866 00:35:19,530 --> 00:35:23,000 de la piediro-throughs, La kvara kaj fina tuso ekzemple, 867 00:35:23,000 --> 00:35:27,150 vi rimarkos tie mi ĝeneraligis mia kodo further-- speco de distrita 868 00:35:27,150 --> 00:35:27,690 ĝi cetere. 869 00:35:27,690 --> 00:35:31,390 Kiel tuso kaj terno, ambaŭ estas pri kiel diri ion aŭ fari 870 00:35:31,390 --> 00:35:32,330 ia sono. 871 00:35:32,330 --> 00:35:34,725 Konservu estus la responda Scratch bloko. 872 00:35:34,725 --> 00:35:37,350 Kaj do, kion mi faris en tiu versio, kion ni povas nur ekrigardi, 873 00:35:37,350 --> 00:35:43,170 Estas tuso estas nur kiel diri, [TUSO], tusi, kaj dume, sneezing estas 874 00:35:43,170 --> 00:35:44,570 kiel diri, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 Kaj tial mi ĝeneraligis la efektivigo de tiuj 876 00:35:46,900 --> 00:35:48,970 nun efektivigado ĉi genérico funkcio, 877 00:35:48,970 --> 00:35:51,490 diru, kio estas interesa por hodiaŭa celoj 878 00:35:51,490 --> 00:35:54,300 nur ĉar ĝi ankoraŭ ne havas reveno tipo. 879 00:35:54,300 --> 00:35:56,398 Sed kiel multaj enigoj gxi portas? 880 00:35:56,398 --> 00:35:56,981 Publiko: Du. 881 00:35:56,981 --> 00:35:57,430 Parolanto 1: Du. 882 00:35:57,430 --> 00:35:59,263 Kaj do se vi volas preni en du argumentoj, 883 00:35:59,263 --> 00:36:00,710 nur apartigi ilin per komo. 884 00:36:00,710 --> 00:36:03,110 Kaj se vi volas tiam voki tiun funkcion, 885 00:36:03,110 --> 00:36:05,800 rimarki ke vi nur voki diru, citaĵo, unquote, 886 00:36:05,800 --> 00:36:09,090 por la unua argumento, komuna n, por la dua argumento. 887 00:36:09,090 --> 00:36:12,130 Do denove, ni nur nun havas la konstruelementoj por ke ni povas reale 888 00:36:12,130 --> 00:36:15,686 implementar iuj de niaj propraj funkcioj. 889 00:36:15,686 --> 00:36:16,570 Bone. 890 00:36:16,570 --> 00:36:19,690 Demandojn pri tiuj? 891 00:36:19,690 --> 00:36:22,400 >> Do nun ni senŝeligi reen mantelo okazo. 892 00:36:22,400 --> 00:36:24,840 Kaj la celo, finfine, estas sekva semajno problemo aro 893 00:36:24,840 --> 00:36:27,710 tuj estos sur cryptogrophy-- la arto de grimpadi informo. 894 00:36:27,710 --> 00:36:30,640 Kaj specife, la informo devos vin ĉifri aŭ deĉifri 895 00:36:30,640 --> 00:36:31,605 tuj estos tekston. 896 00:36:31,605 --> 00:36:33,980 Kaj do tian invitas la demando hodiaŭ kiel bone, 897 00:36:33,980 --> 00:36:38,480 kio okazas sub la kapuĉo kun teksto preter ASCII el semajno nulo, 898 00:36:38,480 --> 00:36:40,730 kiel ni vere komencos manipuli ĝin? 899 00:36:40,730 --> 00:36:43,070 Do jen Zamyla nomo. 900 00:36:43,070 --> 00:36:47,380 Kaj en teksto, kiu eble estos inputted en kiel la akiri string funkcio. 901 00:36:47,380 --> 00:36:52,540 Kaj ekde nun, kiam vi vidas kordo kiel this-- Z-Al-M-Y-L-A-- 902 00:36:52,540 --> 00:36:56,550 komenci pensi pri ĝi kvazaŭ ĉiu de tiuj karakteroj estas en skatolo de lia 903 00:36:56,550 --> 00:36:57,050 propra. 904 00:36:57,050 --> 00:36:59,460 Kaj efektive, en semajno aŭ tiel estas tempo, ĉiu de ĉi tiuj skatoloj 905 00:36:59,460 --> 00:37:04,280 tuj reprezenti tre specife bloko da memory-- mordo de memoro. 906 00:37:04,280 --> 00:37:07,050 Do ĉiu el tiuj literoj, finfine, reprezentos 8 bitoj. 907 00:37:07,050 --> 00:37:10,560 Kaj ni efektive vidas kio okazas sur sub la kapuĉo en mia komputilo. 908 00:37:10,560 --> 00:37:13,440 >> Sed por ne sufiĉas nur rigardi Zamyla 909 00:37:13,440 --> 00:37:17,520 tra ĉi lenso, per kiu ĉiu de tiuj literoj estas en lia propra skatolo. 910 00:37:17,520 --> 00:37:22,697 Kaj bonguste sufiĉa en C ni povas aliri ĉiun el tiuj skatoloj rekte. 911 00:37:22,697 --> 00:37:25,530 Do se vi volas ricevi la unuan letero de ŝia nomo, super facila en C. 912 00:37:25,530 --> 00:37:28,410 Se vi deziras akiri la lastan letero, super facila tiel 913 00:37:28,410 --> 00:37:30,240 kun peco de nova sintakso. 914 00:37:30,240 --> 00:37:36,250 >> Do mi tuj iros antaŭen en CS50 IDE kaj malfermu la kordo nul streketo C. 915 00:37:36,250 --> 00:37:40,270 Kaj en ĉi tiu ekzemplo tie, estas paro de novaj aĵoj okazas. 916 00:37:40,270 --> 00:37:44,360 Do unue en linio 19, ni vidis tiun before-- get kordoj. 917 00:37:44,360 --> 00:37:49,840 Do ĝuste kiel rapida prudento ĉeko, se iu povus oferi parole 918 00:37:49,840 --> 00:37:52,662 laiko eksplikado de kio okazas en linio 19. 919 00:37:52,662 --> 00:37:55,370 Kiel ĝuste traduki tion ĉi en Esperanta ke kunloĝanto ne en CS50 920 00:37:55,370 --> 00:37:56,416 komprenu. 921 00:37:56,416 --> 00:37:56,916 Yeah. 922 00:37:56,916 --> 00:37:59,749 >> Publiko: Havu la uzanto enigo kordo kaj stoki ĝin en variablo s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 Parolanto 1: Bona. 925 00:38:02,600 --> 00:38:05,579 Havi la uzanto enigo kordo kaj stoki ĝin en variablo s. 926 00:38:05,579 --> 00:38:06,120 Tio estas granda. 927 00:38:06,120 --> 00:38:08,090 Do sur la dekstra flanko, ni nomas get kordoj. 928 00:38:08,090 --> 00:38:10,340 Kiu resendas valoro kiu ne akiras asignita 929 00:38:10,340 --> 00:38:14,230 de dekstra flanko maldekstren-mano bordo, en variablon nomita s kiu estas 930 00:38:14,230 --> 00:38:15,950 desegnita por stoki kordo. 931 00:38:15,950 --> 00:38:16,800 Ekzakte. 932 00:38:16,800 --> 00:38:20,000 >> Do nun linio 22, po la komento en linio 21, 933 00:38:20,000 --> 00:38:22,780 evidente presas ke kordo unu signo por linio. 934 00:38:22,780 --> 00:38:23,740 Sed kiel? 935 00:38:23,740 --> 00:38:27,040 Do unue, ni pravalorizi mi al 0. 936 00:38:27,040 --> 00:38:31,061 Kaj tiam kiel ni atingos Fine de Zamyla nomo? 937 00:38:31,061 --> 00:38:32,810 Nu, fine de Zamyla nomo, mi povis 938 00:38:32,810 --> 00:38:38,151 permane tajpi en la lasta signo de ŝia nomo iel, aux la numeron de ĝi. 939 00:38:38,151 --> 00:38:38,650 Dekstra? 940 00:38:38,650 --> 00:38:43,500 Se ni superas here-- Z-Al-M-L-- Y-L-A-- do mi povis tajpi en. 941 00:38:43,500 --> 00:38:47,340 Kio estas la indekso de Zamyla lasta letero? 942 00:38:47,340 --> 00:38:52,517 Se tiu estas 0-- parolante kvazaŭ programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Mi heard-- tiel ja, la lastan literon en Zamyla nomo estas la sesa, 944 00:38:56,570 --> 00:38:58,890 sed se ni kalkulu de 0, ĝi tuj estos numero 5. 945 00:38:58,890 --> 00:39:01,320 Observu do, ke en menso ĉi tie. 946 00:39:01,320 --> 00:39:04,929 >> Ĝi rezultas tie estas funkcio en C nomita strlen, kaj reen en la tago 947 00:39:04,929 --> 00:39:06,720 kaj al tiu tago ankoraŭ, multaj programistoj 948 00:39:06,720 --> 00:39:09,524 elektu al sync nomoj por iliaj funkcioj kiuj sonas kiel la vortoj 949 00:39:09,524 --> 00:39:10,440 ili provas diri. 950 00:39:10,440 --> 00:39:12,590 Do strlen estas kordoj longo. 951 00:39:12,590 --> 00:39:18,168 Kaj tiel kion farus kordo longo de S reveni kiam Zamyla estas la enigo? 952 00:39:18,168 --> 00:39:19,569 >> Publiko: Kvin. 953 00:39:19,569 --> 00:39:22,090 >> Parolanto 1: Z-Al-M-Y-L. Ses. 954 00:39:22,090 --> 00:39:22,590 Dekstra? 955 00:39:22,590 --> 00:39:23,940 Kio estas la longo de Zamyla nomo? 956 00:39:23,940 --> 00:39:24,440 Dekstra? 957 00:39:24,440 --> 00:39:26,240 Kaj ĝuste en realeco, ses literoj. 958 00:39:26,240 --> 00:39:26,740 Dekstra? 959 00:39:26,740 --> 00:39:28,940 Do kion tio signifas por nia buklo? 960 00:39:28,940 --> 00:39:32,130 Ni tuj iras el 0 ĝis ses, kiuj 961 00:39:32,130 --> 00:39:33,650 tuj donos nin kvin ripetoj. 962 00:39:33,650 --> 00:39:34,890 Kion ni faru sur ĉiu ripeto? 963 00:39:34,890 --> 00:39:36,870 Nu, procento C, iu divenis la alia tago, 964 00:39:36,870 --> 00:39:38,710 signifas lokokupilo por kio? 965 00:39:38,710 --> 00:39:39,335 >> Publiko: Char. 966 00:39:39,335 --> 00:39:40,293 Parolanto 1: Nur char. 967 00:39:40,293 --> 00:39:42,877 Do ununura character-- ne multoblaj karakteroj kiel kordo. 968 00:39:42,877 --> 00:39:45,251 Kaj poste jen la nova linio ke ni hvas presi el. 969 00:39:45,251 --> 00:39:46,580 Kaj poste jen la nova sintakso. 970 00:39:46,580 --> 00:39:51,130 Se vi volas presi la ia karaktero en la kordo S, tiel diri, 971 00:39:51,130 --> 00:39:54,060 vi povas simple diri la nomo de la kordo S, 972 00:39:54,060 --> 00:39:58,230 kaj tiam malfermu kvadrata krampo, kaj tiam fermis kvadrata krampo, kun i 973 00:39:58,230 --> 00:39:58,780 la meza. 974 00:39:58,780 --> 00:40:01,430 Kaj ĝi estas speco de bela en tiu Ĉio aspektas kiel kvadrato 975 00:40:01,430 --> 00:40:06,210 samkiel la kvadratoj kiuj Zamyla La karakteroj ekzistantaj je tiu bildo ekzistas. 976 00:40:06,210 --> 00:40:09,970 >> Do se mi vere kuras ĉi Nun ni vidu kio okazas. 977 00:40:09,970 --> 00:40:15,190 Faru ĉenon 0 dot oblikvo string 0, kaj tiam mi 978 00:40:15,190 --> 00:40:16,720 tuj tajpi en Zamyla nomo. 979 00:40:16,720 --> 00:40:19,428 Mankas prompto, ĉar mi ne uzi print f, sed tio estas bone. 980 00:40:19,428 --> 00:40:20,660 Mi nur scias, kion fari. 981 00:40:20,660 --> 00:40:23,240 Kaj ja, ĝi presas el Zamyla nomo, unu po linio. 982 00:40:23,240 --> 00:40:25,760 >> Nun ni iom malzorgema. 983 00:40:25,760 --> 00:40:28,461 Supozi ke mi ne konis pri strlen kaj mi kalkulis, 984 00:40:28,461 --> 00:40:31,460 Bone, neniu tuj havi nomi granda ol kiel 50 karakteroj. 985 00:40:31,460 --> 00:40:36,360 Ni iru antaŭen kaj rekompili ĉi kaj rerun ĝin, kaj poste tajpi en Zamyla 986 00:40:36,360 --> 00:40:37,160 denove. 987 00:40:37,160 --> 00:40:40,850 Logike, kio estas la programo provos presi? 988 00:40:40,850 --> 00:40:49,545 Z-Al-M-Y-L-A tiam kiel 45 nekonata bajtoj de memoro. 989 00:40:49,545 --> 00:40:51,670 Kaj efektive, ni revenos al tiu ideo de memoro. 990 00:40:51,670 --> 00:40:54,180 Sed nur logike, se Zamyla nomiĝas tiu longa, 991 00:40:54,180 --> 00:40:56,450 kiel por la bildo tie, kion ni dirante 992 00:40:56,450 --> 00:40:59,810 estas teni presado, teni presado, konservi preso, gardu presado, teni presado, 993 00:40:59,810 --> 00:41:03,781 tutan vojon al la 50-karaktero, kiu kiu scias kio okazos. 994 00:41:03,781 --> 00:41:05,030 Do ni vere rigardi. 995 00:41:05,030 --> 00:41:06,720 Ni entajpi Zamyla. 996 00:41:06,720 --> 00:41:07,250 Interesaj. 997 00:41:07,250 --> 00:41:08,190 Ni akiris bonŝanca. 998 00:41:08,190 --> 00:41:09,700 Nur tuta fasko de blanka spaco. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 Ekzistas unu funky karaktero. 1001 00:41:11,120 --> 00:41:14,577 Ĝi aspektas ia kiel bizara demando marki tie, sed ekzistas Zamyla nomo. 1002 00:41:14,577 --> 00:41:15,660 Ni ricevas vere temerara. 1003 00:41:15,660 --> 00:41:20,000 Kion pri ni presi 500 blokoj en nekonatan? 1004 00:41:20,000 --> 00:41:24,380 Ni iru antaŭen kaj fari ĉi tiel kaj tiam re-run. 1005 00:41:24,380 --> 00:41:27,980 Kaj ni tutekrana ĝin, ĉar ni bezonas vidi pli spaco. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Got bonŝanca denove. 1008 00:41:31,830 --> 00:41:33,070 >> Dare ni preni pli temerara? 1009 00:41:33,070 --> 00:41:36,070 Ni lasu pli malzorgema. 1010 00:41:36,070 --> 00:41:39,350 50.000 karakteroj. 1011 00:41:39,350 --> 00:41:41,390 Tio estas konstatitaj ne estas bona ideo. 1012 00:41:41,390 --> 00:41:41,890 Bone. 1013 00:41:41,890 --> 00:41:42,990 Faru ĉenon 0. 1014 00:41:42,990 --> 00:41:44,720 Tiu estos nia lasta demo. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Uf. 1017 00:41:48,632 --> 00:41:50,010 Uf. 1018 00:41:50,010 --> 00:41:50,680 BONE. 1019 00:41:50,680 --> 00:41:54,407 Do mia memoro estas vere malplena nun, kiu estas fakte speco de oportuna. 1020 00:41:54,407 --> 00:41:55,990 Kion mi klopodas akiri to-- gxuste. 1021 00:41:55,990 --> 00:41:57,614 Kaj nun mi simple tuj senzorge. 1022 00:41:57,614 --> 00:41:58,570 500.000. 1023 00:41:58,570 --> 00:42:03,860 Make-- ni kompleta ekrano. 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 Tie ni marŝos. 1028 00:42:13,390 --> 00:42:15,610 Mi havas neniun ideon kio tiu estas, sed sonas malbona. 1029 00:42:15,610 --> 00:42:16,110 Bone. 1030 00:42:16,110 --> 00:42:20,322 Kaj fakte, baldaŭ, se vi estas inter la bonŝanca malmultaj en oficejo horoj 1031 00:42:20,322 --> 00:42:22,780 kaj en problemo aro, vi povus tre bone renkontas tiun. 1032 00:42:22,780 --> 00:42:25,490 Segmentación kulpo vere faras havas klare difinitan signifon. 1033 00:42:25,490 --> 00:42:28,450 Ĝi signifas ian eraro rilatante al segmento de memoro. 1034 00:42:28,450 --> 00:42:30,490 Kaj en lego de terminoj, ĝi signifas ke ni tuŝis 1035 00:42:30,490 --> 00:42:34,780 memory-- ni uzis RAM en mia komputilo ke mi ne havis aliron al. 1036 00:42:34,780 --> 00:42:37,050 Kaj tio estas kio estas ambaŭ potenca kaj ankaŭ danĝera 1037 00:42:37,050 --> 00:42:39,910 pri C estas ke vi fakte havas senbrida aliro 1038 00:42:39,910 --> 00:42:45,910 al la tuteco de via programo memoro aŭ bajtoj aŭ RAM, pli specife. 1039 00:42:45,910 --> 00:42:49,510 >> Do kvankam Zamyla nomon Estas nur ses karakteroj longe, 1040 00:42:49,510 --> 00:42:51,450 Mi ankoraŭ povas iri ie ajn en memoro mi volas. 1041 00:42:51,450 --> 00:42:53,491 Kaj kiel flanken, se vi havas iam legis iun artikolon 1042 00:42:53,491 --> 00:42:55,610 tra la jaroj pri iuj servilo aŭ iu programo 1043 00:42:55,610 --> 00:42:58,654 Akiranta fendita aŭ hakita tio utiligita ion 1044 00:42:58,654 --> 00:43:00,820 nomata buffer overflow ekspluati ke ni vere 1045 00:43:00,820 --> 00:43:04,970 raportas en kelkaj semajnoj, tio estas ĝenerale raportante iel trompante 1046 00:43:04,970 --> 00:43:09,090 komputilo en iranta bone preter la limoj de memoro 1047 00:43:09,090 --> 00:43:11,410 Ke gxi havas, kaj trovanta ion sukaj 1048 00:43:11,410 --> 00:43:13,530 en tiu memory-- a Pasvorto, eble, maniero 1049 00:43:13,530 --> 00:43:16,990 de circumventing iuj seria numero kontroli, aŭ nur ĝenerale povis 1050 00:43:16,990 --> 00:43:20,360 trompi la komputilo estas ekzekuti kodo kiu ne estis intencita. 1051 00:43:20,360 --> 00:43:22,360 Sed ni revenu al realo por nur momento 1052 00:43:22,360 --> 00:43:24,550 kie tiu programo estis implementado kun strlen, 1053 00:43:24,550 --> 00:43:26,110 kaj enkonduki unu afero tien. 1054 00:43:26,110 --> 00:43:30,030 Kio novas inter tiuj supraj tri linioj? 1055 00:43:30,030 --> 00:43:30,910 >> Do string skalara h. 1056 00:43:30,910 --> 00:43:35,490 Ĝi rezultas tie estas tio biblioteko nomita String Dot H, aŭ la kordo biblioteko, 1057 00:43:35,490 --> 00:43:38,490 kies kaplinio dosiero, por tiel diri, Estas kordoj skalara h kiu donas al mi 1058 00:43:38,490 --> 00:43:40,860 aliro al ĉi strlen funkcio. 1059 00:43:40,860 --> 00:43:43,841 Se mi preterlasas ke la tradukilo estas tuj krias al mi en iu formo. 1060 00:43:43,841 --> 00:43:44,590 Sed vi scias kion? 1061 00:43:44,590 --> 00:43:46,090 Nun ni akiras vere nuancita. 1062 00:43:46,090 --> 00:43:50,820 En linio 22, estas iu speco de inefficient-- malbone desegnita, 1063 00:43:50,820 --> 00:43:53,990 arguably-- pri ĉi tiu linio de kodo. 1064 00:43:53,990 --> 00:43:56,280 Pensu reen al kiel por-buklo realigitajn 1065 00:43:56,280 --> 00:44:00,140 kaj kio paŝoj okazi denove kaj denove kaj again-- la inicialización, 1066 00:44:00,140 --> 00:44:04,110 la kondiĉo, la kodo kiu ricevas ekzekutita, tiam la pliigo 1067 00:44:04,110 --> 00:44:07,880 aŭ la ŝanĝo, tiam la kondiĉo, tiam la kodon, tiam la ŝanĝo, tiam 1068 00:44:07,880 --> 00:44:11,280 la kondiĉo, do la kodon, tiam la ŝanĝo, kaj tiel antaŭen. 1069 00:44:11,280 --> 00:44:15,320 Do kio povus esti iom preocupante aŭ nebone farita tie? 1070 00:44:15,320 --> 00:44:16,387 Jes, en blua. 1071 00:44:16,387 --> 00:44:18,220 Publiko: Strlen estas nomata multfoje. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 Parolanto 1: Yeah. 1074 00:44:21,320 --> 00:44:23,700 Do strlen nomiĝas multfoje, sed kio estas 1075 00:44:23,700 --> 00:44:27,113 la longo de Zamyla nomo la unuafoje la buklo ekzekutas? 1076 00:44:27,113 --> 00:44:27,860 >> Publiko: Ses. 1077 00:44:27,860 --> 00:44:28,110 >> Parolanto 1: Ses. 1078 00:44:28,110 --> 00:44:30,976 Nu, kio estas la longo de sia nomo duafoje la kodo ekzekutas? 1079 00:44:30,976 --> 00:44:31,432 >> Publiko: Ses. 1080 00:44:31,432 --> 00:44:31,890 >> Parolanto 1: Bone. 1081 00:44:31,890 --> 00:44:32,720 Estas ankoraŭ ses. 1082 00:44:32,720 --> 00:44:33,220 Dekstra? 1083 00:44:33,220 --> 00:44:35,260 Zarla nomo havas ne ŝanĝiĝis, eĉ se mi estas rigardanta 1084 00:44:35,260 --> 00:44:38,240 je nur parto de la leteroj en ŝia nomo. 1085 00:44:38,240 --> 00:44:41,349 Kaj do la fakto ke mi estas efike petante tiun demandon, kio estas 1086 00:44:41,349 --> 00:44:44,640 la longo de Zamyla, kio estas la longo de Zamyla, kio estas la longo de Zamyla, 1087 00:44:44,640 --> 00:44:47,990 ses apartaj fojoj, aŭ sep eĉ, estas nur stulta, 1088 00:44:47,990 --> 00:44:50,390 ĉar tio estas senŝanĝa tiun respondon. 1089 00:44:50,390 --> 00:44:53,550 Kaj do, kion mi povis reale fari estas this-- en string unu 1090 00:44:53,550 --> 00:44:55,680 Mi havas marĝene pli bona versio tie. 1091 00:44:55,680 --> 00:45:00,110 There-- whoops-- string du mi havas a marĝene pli bona versio kien 1092 00:45:00,110 --> 00:45:05,010 Mi faros this-- anstataŭ ĝuste inicialización i al 0, mi ankaŭ kun komo 1093 00:45:05,010 --> 00:45:07,990 deklari duan variablon nomata n-- mi ne devas diri int denove. 1094 00:45:07,990 --> 00:45:09,220 Mi ne devus, fakte. 1095 00:45:09,220 --> 00:45:10,380 Sed mi diras n. 1096 00:45:10,380 --> 00:45:13,610 Kaj tiam mi pravalorizi n al la strlen de n, tiel ke nun 1097 00:45:13,610 --> 00:45:17,110 Multfoje does strlen get ekzekutita en entute? 1098 00:45:17,110 --> 00:45:17,610 Nur unufoje. 1099 00:45:17,610 --> 00:45:20,257 Kaj tiel tio estas kion ni volas diri pli frue pri bona dezajno. 1100 00:45:20,257 --> 00:45:23,090 Fakte unufoje vian kodo estas ĝentila, revenanta kaj pensante tra, 1101 00:45:23,090 --> 00:45:26,820 mi estas uzanta kiel malgranda memoro aŭ kiel malmultaj sekundoj 1102 00:45:26,820 --> 00:45:30,409 aŭ milisekundoj de komputila tempo ebla implementar iu problemo? 1103 00:45:30,409 --> 00:45:32,200 Kaj mi tuj rulumu kaj nur mencii 1104 00:45:32,200 --> 00:45:34,283 ke ekzistas tiu mencio de nulaj en tiu versio, 1105 00:45:34,283 --> 00:45:36,390 sed ni revenos al tiu post nelonge. 1106 00:45:36,390 --> 00:45:41,010 Ĉar nuntempe, ni rigardu al kie ĉi tiu tuj kondukos nin. 1107 00:45:41,010 --> 00:45:44,110 Do oni, ĝi rezultas ke nun ke ni havas la kapablon 1108 00:45:44,110 --> 00:45:46,860 rigardi individuajn karakterojn, ni povas utiligi ion 1109 00:45:46,860 --> 00:45:50,807 de semajno 0 kiu estis tre arkaikaj kaj ia neinteresa tiutempe. 1110 00:45:50,807 --> 00:45:53,390 Sed nun, kaj precipe kiam ni akiri al ĉifriko en semajno, 1111 00:45:53,390 --> 00:45:54,820 ĝi tuj estos sufiĉe potenca. 1112 00:45:54,820 --> 00:45:57,450 Ĝi rezultas ke iuj datumoj types-- ints kaj flosoj 1113 00:45:57,450 --> 00:46:00,300 kaj signoj kaj kordoj kaj aliaj things-- iuj el ili 1114 00:46:00,300 --> 00:46:02,800 povas tre facile konvertita al alia. 1115 00:46:02,800 --> 00:46:05,840 >> Ekzemple, kiam ni parolis pri ASCII iam ago-- jen 1116 00:46:05,840 --> 00:46:07,796 la majuskloj A tra M, dot, punkto, 1117 00:46:07,796 --> 00:46:12,530 dot-- ni diris ke ekzistas surĵeto inter tiuj literoj kaj numeroj. 1118 00:46:12,530 --> 00:46:14,970 Kaj fakte, ĝi tenas veran por minuskla literoj ankaŭ. 1119 00:46:14,970 --> 00:46:17,470 Minuskla a estas 97, ĉefurbo estas 65. 1120 00:46:17,470 --> 00:46:20,860 Kaj estas kelkaj en ASCII, kiu estas nur tiu surĵeto 1121 00:46:20,860 --> 00:46:23,240 sistemo por ĉiuj tiuj aliaj literoj. 1122 00:46:23,240 --> 00:46:25,030 Do kion tio signifas? 1123 00:46:25,030 --> 00:46:28,390 Nu, mi tuj iros antaŭen kaj malfermi supren reala rapide ion nomatan 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, la plimulto de kiuj estas komentoj. 1125 00:46:31,240 --> 00:46:33,860 Kaj denove rete vi povas ĉiam rigardo tra la komentoj. 1126 00:46:33,860 --> 00:46:36,180 >> Kaj rigardu kion ĉi tuj faros. 1127 00:46:36,180 --> 00:46:38,410 Do ĝi estas alvenis ĉefa funkcio. 1128 00:46:38,410 --> 00:46:41,490 Mi malfacile-kodita la nombrojn nur por nun, ĉar mi scias kion mi faras. 1129 00:46:41,490 --> 00:46:42,950 Mi scias kion mi volas vidi ĉi tie. 1130 00:46:42,950 --> 00:46:45,220 Kaj mi pravalorizitaj mi al 65. 1131 00:46:45,220 --> 00:46:48,490 Kaj mi kalkulado tra 26 literojn entute. 1132 00:46:48,490 --> 00:46:52,990 Kaj kion mi povos presi unu linio samtempe 1133 00:46:52,990 --> 00:46:54,930 se vi povas interpreti ĉi emfazita linio? 1134 00:46:54,930 --> 00:46:55,970 Kio gets presita? 1135 00:46:55,970 --> 00:46:56,797 Yeah. 1136 00:46:56,797 --> 00:46:57,264 >> Spektantaro: Ĉu vi presi la literon kiu 1137 00:46:57,264 --> 00:46:59,805 respondas al la mapo de la letero valoro kaj entjera valoro? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 Parolanto 1: Ekzakte. 1140 00:47:01,990 --> 00:47:04,740 Mi tuj presi la letero responda al la entjera valoro, 1141 00:47:04,740 --> 00:47:06,131 kaj inverse, kiel sekvas. 1142 00:47:06,131 --> 00:47:08,880 Nu tiu, iu diris antaŭe, estas nur lokokupilo por char. 1143 00:47:08,880 --> 00:47:09,490 Ĝi ankoraŭ estas. 1144 00:47:09,490 --> 00:47:12,280 Tio, kompreneble, estas lokokupilo por int-- Ne nova linio. 1145 00:47:12,280 --> 00:47:18,140 Kaj nun rimarkas, mia unua valoro kiu Mi ŝtopanta en por ke lokokupilo 1146 00:47:18,140 --> 00:47:22,320 ne nur I. mi dirante, en krampoj, char mi, 1147 00:47:22,320 --> 00:47:26,700 kiun la parenthetical char estas rakontanta la tradukilo, trakti mi 1148 00:47:26,700 --> 00:47:28,490 ne kiel kio estas, kio estas nombro. 1149 00:47:28,490 --> 00:47:30,490 Trakti ĝin kiel fakta karaktero. 1150 00:47:30,490 --> 00:47:34,490 Dum kiu la dua valoro mi ŝtopanta in-- I-- devus nur esti nombro. 1151 00:47:34,490 --> 00:47:38,140 >> Do se mi kompili ĉi program-- do tiu estas fari ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot oblikvo ASCII 0-- Mi simple akiri tiu oportuna malgranda abako ke 1153 00:47:41,720 --> 00:47:44,950 montras min ĉiuj eblaj mappings sen bezono pripensi gxin 1154 00:47:44,950 --> 00:47:46,450 tra aŭ kompreni ĝin sur mia propra. 1155 00:47:46,450 --> 00:47:48,783 Kaj mi ankaŭ presi ekstere, rimarki la minusklaj literoj, 1156 00:47:48,783 --> 00:47:51,410 ĉar kelkaj linioj poste, mi ankaŭ printi ĉi surĵeto 1157 00:47:51,410 --> 00:47:53,737 tiel, kiu estas nur diri, ke iam vi komprenos 1158 00:47:53,737 --> 00:47:55,570 kio okazas sub la kapuĉo, ĉu 1159 00:47:55,570 --> 00:47:57,111 aŭtomate konvertas reen. 1160 00:47:57,111 --> 00:48:00,160 Kaj fakte, se iu el vi iam faris tion en grado lernejo 1161 00:48:00,160 --> 00:48:03,490 aŭ aŭdis pri iu míticamente prenante noto 1162 00:48:03,490 --> 00:48:05,620 kaj pasante ĝin al sia aŭ ŝia amiko en klaso, 1163 00:48:05,620 --> 00:48:08,300 sed vi grimpis la literojn per kiel A iĝas B, 1164 00:48:08,300 --> 00:48:11,240 kaj B iĝas C, aŭ io pli komplika ol tio, nu, 1165 00:48:11,240 --> 00:48:13,410 Kiel volus vin iras pri efektivigado ke kiel infano? 1166 00:48:13,410 --> 00:48:16,340 Nu, vi nur ia scias A iĝas B, B iĝas C, 1167 00:48:16,340 --> 00:48:19,700 sed matematike, Kio estis tio kid doing? 1168 00:48:19,700 --> 00:48:22,050 Kion vi aldonante al ĉiu litero? 1169 00:48:22,050 --> 00:48:23,340 Efike, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Do kiam vi ŝanĝas A al B, kiu estas ia kiel ŝanĝanta 65 al 66, 1171 00:48:27,740 --> 00:48:29,590 kion matematike signifas simple aldoni 1. 1172 00:48:29,590 --> 00:48:33,300 Do se vi estus implementar ke iom trompaj tekniko 1173 00:48:33,300 --> 00:48:36,380 cxar via instruisto en kodo, vi plenumadu ekzakte tion ĵus 1174 00:48:36,380 --> 00:48:38,552 aldonante ununuran leteron kune. 1175 00:48:38,552 --> 00:48:40,260 Do antaŭ longe, ni estas tuj vidos kiel ni 1176 00:48:40,260 --> 00:48:43,300 povas utiligi tiun al reale aŭtente scramble kaj unscramble 1177 00:48:43,300 --> 00:48:43,991 informo. 1178 00:48:43,991 --> 00:48:47,240 Intertempe, sciu ke ni komencis enkonduki paron aliaj bibliotekoj 1179 00:48:47,240 --> 00:48:48,990 here-- la kordoj unu hodiaŭ. 1180 00:48:48,990 --> 00:48:51,180 Kaj tre helpema paĝaro espereble vi trovos 1181 00:48:51,180 --> 00:48:55,010 nomiĝas reference.cs50.net, kiu la instruistaro kunmetis, 1182 00:48:55,010 --> 00:48:57,510 tial se vi volas rigardi supren kiel strlen verkoj, 1183 00:48:57,510 --> 00:48:59,300 vi povas ektajpu la funkcia nomo, 1184 00:48:59,300 --> 00:49:02,890 klaku strlen tie kaj tiam malpli komforta klarigo 1185 00:49:02,890 --> 00:49:03,700 tuj aperos. 1186 00:49:03,700 --> 00:49:06,880 Aŭ se vi volas ke la oficiala Linukso-bazita klarigo, 1187 00:49:06,880 --> 00:49:08,945 Vi povas alklaki pli comfy ĉe supra dekstra, kaj ĝi 1188 00:49:08,945 --> 00:49:12,070 prezentos la sama informo, sed en pli kompleksaj terminoj. 1189 00:49:12,070 --> 00:49:15,070 Tio estas utila rimedo por efektive scias kion ĉiu faras. 1190 00:49:15,070 --> 00:49:17,320 >> Venontfoje ni tuj rigardu Ovaltine 1191 00:49:17,320 --> 00:49:20,070 kaj pli, kaj enkonduki nin al la mondo de ĉifriko. 1192 00:49:20,070 --> 00:49:21,930 Antaŭ tiam, ni vidos vi poste tiun semajnon. 1193 00:49:21,930 --> 00:49:23,390 Kaj nun, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Vidu vin merkredon. 1195 00:49:26,730 --> 00:49:30,216 >> [MUZIKO Ludante] 1196 00:49:30,216 --> 00:49:33,702 >> [MUZIKO Ludante] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> Parolanto 1: Kion la [Bleep] vi faras? 1199 00:49:42,200 --> 00:49:45,720 >> Parolanto 1: Mi manĝas mian deserton? 1200 00:49:45,720 --> 00:49:47,160 Kiel vi manĝos ĝin? 1201 00:49:47,160 --> 00:49:47,860 Kun viaj manoj? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [MUZIKO Ludante] 1204 00:49:57,940 --> 00:50:03,453