1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [MUZIKO Ludante] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 DAVID J. Malan: Bone. 5 00:00:12,230 --> 00:00:16,440 Jen CS50, kaj ĉi estas la fino de la semajno 2. 6 00:00:16,440 --> 00:00:18,480 Do hodiaŭ, ni iras daŭrigi nian rigardon 7 00:00:18,480 --> 00:00:21,150 ĉe kio ni reprezentas tion sub la hood-- malproksimigante 8 00:00:21,150 --> 00:00:23,520 de nombroj kiel entjeroj kaj glitpunktaj valoroj 9 00:00:23,520 --> 00:00:26,810 kaj enfokusigante kordoj kaj finfine pli interesaj programoj. 10 00:00:26,810 --> 00:00:30,140 Sed ni ankaux rigardu al Paro de domajna specifaj problems-- 11 00:00:30,140 --> 00:00:33,620 la unua el kiuj volas esti engaĝante ĉifriko, 12 00:00:33,620 --> 00:00:36,570 La arto de grimpadi informo, kiun vi vidas supre tie 13 00:00:36,570 --> 00:00:41,480 estas portreto de Radio Orphan Annie La sekreta deĉifrilo ringon de pasintaj tempoj. 14 00:00:41,480 --> 00:00:46,490 >> Tiu estas vere tre primitiva formo kaj infano-amika formo de cryptopgraphy 15 00:00:46,490 --> 00:00:50,590 per tiu ringo havas du disks-- unu interne kaj ekstere. 16 00:00:50,590 --> 00:00:54,740 Kaj per turnanta unu el tiuj, vi povas esence laŭliniigi literoj kiel A 17 00:00:54,740 --> 00:00:59,520 tra Z kun aliaj leteroj kiel B per A. Alivorte, 18 00:00:59,520 --> 00:01:03,730 vi povas laŭvorte turni la alfabeto, sekve veni supren kun surĵeto de 19 00:01:03,730 --> 00:01:07,820 leteroj al leterojn tiel ke, se vi volis sendi sekreta mesaĝo 20 00:01:07,820 --> 00:01:11,820 al iu kiel Annie, vi povus skribi malsupren vian mesaĝon kaj tiam turni 21 00:01:11,820 --> 00:01:15,370 la leteroj, per kiu, se vi volas diri diri "A", vi anstataŭ diri "B" 22 00:01:15,370 --> 00:01:17,280 vi volas diri "B" vi anstataŭ diri "C" - 23 00:01:17,280 --> 00:01:20,240 aŭ io iom pli ruza ol that-- kaj poste, finfine, 24 00:01:20,240 --> 00:01:24,630 tiel longe kiel Annie havas ĉi deĉifrilo ringo, ŝi povas deĉifri la mesaĝon. 25 00:01:24,630 --> 00:01:28,540 Nun, eble vi memoras, fakte, ke tiu Estis uzita en tre fama filmo kiu 26 00:01:28,540 --> 00:01:31,140 ludas ad nauseum dum la kristnaska sezono. 27 00:01:31,140 --> 00:01:32,650 Ni rigardu tien. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 Ralphie Parker: "Kompaton konata al ĉiuj en resumo 30 00:01:37,210 --> 00:01:41,000 ke Ralph Parker maniere enoficigita membro de Little Orphan Annie Sekreto 31 00:01:41,000 --> 00:01:44,860 Rondo kaj ĝi rajtas al ĉiuj honorojn kaj profitojn okazanta al tio. " 32 00:01:44,860 --> 00:01:47,410 >> Ralphie Parker (rakonti): Subskribita Little Orphan Annie. 33 00:01:47,410 --> 00:01:50,070 Legalizita, Pierre Andre! 34 00:01:50,070 --> 00:01:51,490 Inke. 35 00:01:51,490 --> 00:01:55,494 Honoroj kaj profitoj, Jam en la aĝo de naŭ. 36 00:01:55,494 --> 00:01:57,402 >> [MUZIKO Ludante] 37 00:01:57,402 --> 00:02:00,470 >> [RADIO babilado] 38 00:02:00,470 --> 00:02:01,470 Ralphie Parker: Venu. 39 00:02:01,470 --> 00:02:02,344 Ni daŭrigu ĝin. 40 00:02:02,344 --> 00:02:06,029 Mi ne bezonas ĉiujn ke ĵazo pri kontrabandistoj kaj piratoj. 41 00:02:06,029 --> 00:02:08,820 RADIO proklamanto: Aŭskultu morgaŭ nokte por finante aventuro 42 00:02:08,820 --> 00:02:11,060 de La Nigra Pirato Ŝipo. 43 00:02:11,060 --> 00:02:14,740 Nun, estas tempo por Annie La Sekreta Mesaĝo por vi anoj 44 00:02:14,740 --> 00:02:17,110 de la Sekreta Rondo. 45 00:02:17,110 --> 00:02:20,700 Memoru infanoj, nur membroj de Annie Sekreto Rondon 46 00:02:20,700 --> 00:02:23,270 povas malkodi Annie sekreta mesaĝo. 47 00:02:23,270 --> 00:02:27,270 >> Memoru, Annie estas dependanta sur vin. 48 00:02:27,270 --> 00:02:30,060 Ŝanĝu vian najloj al B-2. 49 00:02:30,060 --> 00:02:34,004 Jen la message-- 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 Ralphie Parker (rakonti): Mi estas en mia unua sekreta kunveno. 51 00:02:36,503 --> 00:02:40,041 RADIO proklamanto: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 Ralphie Parker (rakonti): Ho, Pierre estis en granda voĉo ĉinokte. 53 00:02:42,790 --> 00:02:46,110 Mi povus diri ke ĉinokte La mesaĝo estis vere grava. 54 00:02:46,110 --> 00:02:47,930 >> RADIO proklamanto: --3 25. 55 00:02:47,930 --> 00:02:49,940 Tio estas mesaĝo de Annie sin. 56 00:02:49,940 --> 00:02:52,182 Memoru, ne diru al iu ajn. 57 00:02:52,182 --> 00:02:55,077 >> [Anhelante] 58 00:02:55,077 --> 00:02:57,285 Ralphie Parker (rakonti): Naŭdek sekundoj poste, mi 59 00:02:57,285 --> 00:03:00,090 en la sola salono en la domo kie knabo de naŭ 60 00:03:00,090 --> 00:03:04,380 povis sidi en la privacidad kaj malkodi. 61 00:03:04,380 --> 00:03:04,990 Ha. 62 00:03:04,990 --> 00:03:05,680 "B." 63 00:03:05,680 --> 00:03:06,524 >> [Sonoj] 64 00:03:06,524 --> 00:03:08,684 >> Ralphie Parker (rakonti): Mi iris al la sekva. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 La unua vorto estas "esti". 67 00:03:11,641 --> 00:03:12,140 Jes! 68 00:03:12,140 --> 00:03:14,293 Ĝi venas pli facile nun. 69 00:03:14,293 --> 00:03:15,259 "Aŭ" 70 00:03:15,259 --> 00:03:16,225 >> [Sonoj] 71 00:03:16,225 --> 00:03:18,157 >> Randy Parker: Aw, venu, Ralphie. 72 00:03:18,157 --> 00:03:19,606 Mi devas iri! 73 00:03:19,606 --> 00:03:21,538 >> Ralphie Parker: Mi tuj malsupreniris, Ma. 74 00:03:21,538 --> 00:03:22,504 Gee Whiz. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "T." «O.» "Nepre al. "" Nepre "kio? 77 00:03:31,220 --> 00:03:33,981 Kio estis Little Orphan Annie provas diri? "Nepre" kio? 78 00:03:33,981 --> 00:03:35,522 PATRINO: Ralphie, Randy jam alvenis al iri. 79 00:03:35,522 --> 00:03:36,735 Ĉu vi bonvole eliros? 80 00:03:36,735 --> 00:03:38,190 >> Ralphie Parker: Bone, panjo! 81 00:03:38,190 --> 00:03:39,787 Mi tuj ekstere! 82 00:03:39,787 --> 00:03:41,995 Ralphie Parker (rakonti): Mi Alproksimigi nun. 83 00:03:41,995 --> 00:03:43,370 La streĉiĝo estis teruraj. 84 00:03:43,370 --> 00:03:44,794 Kio estis tio? 85 00:03:44,794 --> 00:03:47,656 La sorto de la planedo povas pendi en la ekvilibro. 86 00:03:47,656 --> 00:03:50,518 >> PATRINO: Ralphie, Randy havas jam iri! 87 00:03:50,518 --> 00:03:53,635 >> Ralphie Parker: Mi tuj eliris, por laŭte ploris! 88 00:03:53,635 --> 00:03:55,343 Ralphie Parker (Rakonti): Preskaŭ tie! 89 00:03:55,343 --> 00:03:56,520 Miaj fingroj flugis! 90 00:03:56,520 --> 00:03:58,500 Mia menso estis ŝtalo kaptilo. 91 00:03:58,500 --> 00:03:59,850 Ĉiun poron vibris. 92 00:03:59,850 --> 00:04:01,806 Estis preskaŭ evidenta! 93 00:04:01,806 --> 00:04:02,773 Jes! 94 00:04:02,773 --> 00:04:03,273 Jes! 95 00:04:03,273 --> 00:04:03,773 Jes! 96 00:04:03,773 --> 00:04:04,740 Jes! 97 00:04:04,740 --> 00:04:10,250 >> Ralphie Parker: "Nepre trinki via Ovaltine. " 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 A crummy komerca? 101 00:04:17,539 --> 00:04:19,439 >> [MUZIKO Ludante] 102 00:04:19,439 --> 00:04:21,724 >> Ralphie Parker: Filo de putino. 103 00:04:21,724 --> 00:04:23,460 >> [Ridante] 104 00:04:23,460 --> 00:04:27,070 >> DAVID J. Malan: Do kiu tiam estas ekvido je kio ĉifriko 105 00:04:27,070 --> 00:04:29,880 eblas por this-- a trinki el pasintaj tempoj. 106 00:04:29,880 --> 00:04:30,900 Do rapidan anonco. 107 00:04:30,900 --> 00:04:33,410 Se vi estas libera ĉi Vendredo ĉe 1:15 am kaj volus 108 00:04:33,410 --> 00:04:36,610 ŝatus aliĝi nin por CS50 tagmanĝo estras ĉi URL tie. 109 00:04:36,610 --> 00:04:38,080 Unua venis, unua servi kiel kutime. 110 00:04:38,080 --> 00:04:41,840 Sed super tempo, ni certigu ke plej iu ajn kiu ŝatus partopreni 111 00:04:41,840 --> 00:04:43,640 eble plani-saĝa. 112 00:04:43,640 --> 00:04:45,170 >> Do kordoj. 113 00:04:45,170 --> 00:04:47,940 Ni havas Zamyla-- kiun vi jam renkontis pli verŝajna 114 00:04:47,940 --> 00:04:50,750 en Problemo Ara 1-- kies nomo literumas tiel. 115 00:04:50,750 --> 00:04:53,570 Kaj supozas ke vi tajpis sian nomon en komputila programo, kiu estas 116 00:04:53,570 --> 00:04:55,710 uzante iun kiel getString. 117 00:04:55,710 --> 00:04:57,890 Por rekuperi tiuj klavoj, kiom 118 00:04:57,890 --> 00:05:01,620 cxu ni iru sur reprezentante kordo, vorto, alineo, 119 00:05:01,620 --> 00:05:03,960 aŭ multnombraj literoj ŝatas tiujn ĉi tien? 120 00:05:03,960 --> 00:05:06,790 >> Ni parolis lastan tempon sur entjeroj kaj problemoj 121 00:05:06,790 --> 00:05:09,960 kiuj ŝprucas kun entjeraj overflow kaj glitpunktaj valoroj 122 00:05:09,960 --> 00:05:12,190 kaj problemoj levigxu ene precizeco. 123 00:05:12,190 --> 00:05:16,080 Kun kordoj, ni almenaŭ havi iom pli fleksebleco 124 00:05:16,080 --> 00:05:17,970 ĉar strings-- simple en la reala world-- 125 00:05:17,970 --> 00:05:19,790 povas esti bela arbitra longo. 126 00:05:19,790 --> 00:05:21,055 Sufiĉe mallonga, bela longa. 127 00:05:21,055 --> 00:05:23,680 Sed eĉ tiam ni tuj trovi ke komputiloj povas kelkfoje 128 00:05:23,680 --> 00:05:27,200 kuri el memoro kaj eĉ butika suficxe kordo. 129 00:05:27,200 --> 00:05:30,840 >> Sed nuntempe, ni komencu visualizar ĉeno kiel ion en tiuj skatoloj 130 00:05:30,840 --> 00:05:31,340 tie. 131 00:05:31,340 --> 00:05:36,410 Do ses tiajn skatolojn, ĉiu el kiuj reprezentas karakteron aŭ "char". 132 00:05:36,410 --> 00:05:40,646 Do memoru, ke "character" - c-h-a-r-- estas unu el la korpigita datumtipoj en C. 133 00:05:40,646 --> 00:05:43,520 Kaj kio estas agrabla estas ke vi povas uzi tiaj kiel konstruaĵo bloko, 134 00:05:43,520 --> 00:05:47,880 puzlo peco, se vi volas, formi granda tipo de datumoj kiujn ni devos daŭrigi 135 00:05:47,880 --> 00:05:49,410 voki "ŝnuro". 136 00:05:49,410 --> 00:05:53,650 >> Nun, kio estas utila pri pensante pri aĵoj kiel ŝnurojn tiamaniere? 137 00:05:53,650 --> 00:05:57,720 Nu, ĝi rezultas ke ni povas reale utiligi ĉi strukturo 138 00:05:57,720 --> 00:06:01,420 efektive konsentas individuaj karakteroj en bela simpla maniero. 139 00:06:01,420 --> 00:06:04,099 Mi tuj iros antaŭen kaj krei dosiero nomata "stringzero.c" 140 00:06:04,099 --> 00:06:05,765 sed vi povas nomi ĝin kion ajn vi volas. 141 00:06:05,765 --> 00:06:08,500 Kaj en la paso de afiŝinto estas jam tiu ekzemplo anticipe, 142 00:06:08,500 --> 00:06:10,430 tial vi ne bezonas tajpi ĉiun eksteren. 143 00:06:10,430 --> 00:06:13,820 >> Kaj mi tuj iros antaŭen kaj unue fari int ĉefa malplenon. 144 00:06:13,820 --> 00:06:15,980 Kaj ene de kelkaj tagoj, ni komencos turmentus aparte 145 00:06:15,980 --> 00:06:19,070 kion void estas ĉi tie, kial estas int apud ĉefa ks. 146 00:06:19,070 --> 00:06:21,180 Sed nuntempe, ni daŭrigi kopii almeti tion. 147 00:06:21,180 --> 00:06:23,455 >> Mi tuj rakontos ŝnuro nomita s. 148 00:06:23,455 --> 00:06:26,920 Kaj mi tuj revenos de GetString ajn la uzanto tajpas en. 149 00:06:26,920 --> 00:06:29,170 Ĉi tuj estos simpla programo, neniu instrukcioj, 150 00:06:29,170 --> 00:06:31,336 Mi simple tuj blinde atendi ke la uzanto sciu 151 00:06:31,336 --> 00:06:32,600 kion fari por teni ĝin simpla. 152 00:06:32,600 --> 00:06:34,220 >> Kaj nun mi iras al havi por buklo. 153 00:06:34,220 --> 00:06:37,450 Kaj ene de mia por buklo min tuj havi int i ricevas nulon. 154 00:06:37,450 --> 00:06:40,660 Kaj i estas, denove, simple konvencio, indekso variablo por rakonti, 155 00:06:40,660 --> 00:06:42,350 sed mi povis nomi ĉi kion mi volas. 156 00:06:42,350 --> 00:06:46,275 Mi iras fari i estas malpli than-- puto Zamyla nomo estas ses literoj. 157 00:06:46,275 --> 00:06:48,150 Do mi tuj forte kodo kiu tie nun. 158 00:06:48,150 --> 00:06:49,730 >> Kaj tiam mi ++. 159 00:06:49,730 --> 00:06:53,190 Kaj nun ene de tiuj buklaj krampoj mi faros printf, 160 00:06:53,190 --> 00:06:55,460 kaj mi volas presi unu karaktero samtempe. 161 00:06:55,460 --> 00:06:58,227 Do mi tuj uzos% c por eble la unua fojo. 162 00:06:58,227 --> 00:07:00,560 Kaj tiam mi volas presi ĉiu karaktero sur lia propra linio. 163 00:07:00,560 --> 00:07:02,550 Do mi tuj metos iom backslash n tie. 164 00:07:02,550 --> 00:07:03,640 Fermi citaĵo. 165 00:07:03,640 --> 00:07:06,250 >> Kaj nun mi volas fari ion tie. 166 00:07:06,250 --> 00:07:10,610 Mi volas presi la specifa litero en la kordo, 167 00:07:10,610 --> 00:07:13,670 s, kiel mi ripetanta de nulo je ĝis ses. 168 00:07:13,670 --> 00:07:17,150 Alivorte, mi volas presi la i'th karaktero de s. 169 00:07:17,150 --> 00:07:18,420 Nun kiel mi povas fari tion? 170 00:07:18,420 --> 00:07:21,550 >> Nu multe ŝatas la skatoloj en tiu reprezento tie, 171 00:07:21,550 --> 00:07:25,560 ia, sorĉvenigi la nocio de boksado literojn, vi povas simile fari tion 172 00:07:25,560 --> 00:07:32,630 sintakse en C simple specifante, Mi volas presi s la i'th karaktero. 173 00:07:32,630 --> 00:07:35,640 Uzante la rektaj krampoj sur via komputilo klavaron 174 00:07:35,640 --> 00:07:38,910 ke sur usona klavaro estas ĝenerale super via reveno ŝlosilon. 175 00:07:38,910 --> 00:07:42,630 >> Do tio ne estas tute korekta tamen, kiel vi eble rimarkis. 176 00:07:42,630 --> 00:07:44,780 Sed mi tuj speco de blinde forĝi antaŭen tie. 177 00:07:44,780 --> 00:07:47,020 Kaj Mi faros fari ĉenon 0. 178 00:07:47,020 --> 00:07:50,860 Sed antaŭ ol mi faros tion, ni vidu se ni ne povas anticipi iuj komunaj eraroj. 179 00:07:50,860 --> 00:07:52,844 Estas ĉi tuj kompili? 180 00:07:52,844 --> 00:07:54,510 Ne, mi mankis tutan faskon da aĵoj. 181 00:07:54,510 --> 00:07:55,280 Bibliotekoj mi aŭdis. 182 00:07:55,280 --> 00:07:58,480 >> Do kion header dosierojn eble mi volas aldoni ĉi tie? 183 00:07:58,480 --> 00:07:59,205 Yeah. 184 00:07:59,205 --> 00:08:01,580 >> Publiko: Vi bezonas standard I / O [inaudible] 185 00:08:01,580 --> 00:08:02,663 >> DAVID J. Malan: Bonege. 186 00:08:02,663 --> 00:08:06,060 Do mi bezonas normo / S. Por kio celo mi volas normo / S? 187 00:08:06,060 --> 00:08:06,670 Por printf. 188 00:08:06,670 --> 00:08:09,220 Do inkluzivi stdio.h. 189 00:08:09,220 --> 00:08:13,490 Kaj vi ankaŭ proponas ke mi inkluzivi la CS50 biblioteko, por kio? 190 00:08:13,490 --> 00:08:14,650 Havi kordoj. 191 00:08:14,650 --> 00:08:17,780 Do ni vidos kion CS50 biblioteko estas faranta 192 00:08:17,780 --> 00:08:19,260 krei ĉi nocio de kordo. 193 00:08:19,260 --> 00:08:21,930 Sed nuntempe, oni povas simple pensi de ĝi kiel reala datumtipo. 194 00:08:21,930 --> 00:08:23,596 >> Tiel ke ŝajnas esti iom purigis. 195 00:08:23,596 --> 00:08:27,060 Nun mi tuj iros antaŭen kaj ja faras fari ĉenon 0. 196 00:08:27,060 --> 00:08:27,700 Kompilita. 197 00:08:27,700 --> 00:08:28,370 Do tio estas bona. 198 00:08:28,370 --> 00:08:32,799 Do ./string0 lasu min zomi do ni povas vidu pli detale kio okazas. 199 00:08:32,799 --> 00:08:33,850 Eniri. 200 00:08:33,850 --> 00:08:37,789 Z-A-M-Y-L-A eniri. 201 00:08:37,789 --> 00:08:39,440 Kaj ni presas al Zamyla nomo. 202 00:08:39,440 --> 00:08:40,409 >> Do tio estas sufiĉe bona. 203 00:08:40,409 --> 00:08:43,220 Do nun ni iru antaŭen kaj kuri ĉi programo denove, 204 00:08:43,220 --> 00:08:45,659 kaj tajpu el Daven Kompleta nomo. 205 00:08:45,659 --> 00:08:46,450 Surprizo, surprizo. 206 00:08:46,450 --> 00:08:48,021 Eniri. 207 00:08:48,021 --> 00:08:48,520 Hmm. 208 00:08:48,520 --> 00:08:51,750 Ni ne presita Daven La plena antaŭnomo korekte. 209 00:08:51,750 --> 00:08:54,250 Nun tio devus esti evidentaj en Retrospektive pro kio, 210 00:08:54,250 --> 00:08:57,010 ia, stulta dezajno decido? 211 00:08:57,010 --> 00:08:59,590 >> Jes, mi malfacile kodita la ses interne de mia por buklo. 212 00:08:59,590 --> 00:09:01,610 Nun mi faris tion nur ĉar Mi sciis Zamyla nomon 213 00:09:01,610 --> 00:09:02,776 tuj estos ses literoj. 214 00:09:02,776 --> 00:09:04,720 Sed certe tio ne estas ĝeneralan solvon. 215 00:09:04,720 --> 00:09:07,720 Do rezultas ni povas dinamike elkompreni la longeco de kordo 216 00:09:07,720 --> 00:09:10,440 nomante funkcio nomita strlen. 217 00:09:10,440 --> 00:09:12,840 >> Denove, intence koncize nomata simple 218 00:09:12,840 --> 00:09:14,450 fari ĝin pli oportune tajpi. 219 00:09:14,450 --> 00:09:17,170 Sed tio sinonimo akirante la longeco de kordo. 220 00:09:17,170 --> 00:09:23,190 Mi tuj reiri en mian fina fenestro kaj re-ruli la tradukilo. 221 00:09:23,190 --> 00:09:24,170 Sed gxi kriante al mi. 222 00:09:24,170 --> 00:09:29,130 Implice deklarante biblioteko funkcio strlen kun tipo unsigned int const-- 223 00:09:29,130 --> 00:09:29,780 Mi perdis. 224 00:09:29,780 --> 00:09:30,590 Tute. 225 00:09:30,590 --> 00:09:32,940 >> Do, speciale kiel via okuloj komencas Glaze super 226 00:09:32,940 --> 00:09:36,000 kun erarmesaĝojn ŝatas ĉi, fokuso honeste sur la unuaj vortoj. 227 00:09:36,000 --> 00:09:38,590 Ni konas la problemo estas en linio 8, kiel indikite tie. 228 00:09:38,590 --> 00:09:40,500 Kaj ĝi estas en string-0.c. 229 00:09:40,500 --> 00:09:43,580 Implice deklarante biblioteko funkcio strlen. 230 00:09:43,580 --> 00:09:47,000 Do kiu estas ĝenerale tuj esti mastro de erarmesaĝoj. 231 00:09:47,000 --> 00:09:49,190 Implice deklari ion. 232 00:09:49,190 --> 00:09:53,250 >> Do mallonge, kion mi ŝajnis agis kun respekto al linio 8, tie. 233 00:09:53,250 --> 00:09:56,880 Kio povus esti la solvo estos eĉ Se vi neniam uzis strlen mem? 234 00:09:56,880 --> 00:09:58,907 >> Publiko: Parto de malsama biblioteko? 235 00:09:58,907 --> 00:10:00,740 DAVID J. Malan: Parto de malsama biblioteko. 236 00:10:00,740 --> 00:10:02,400 Do ĝi estas deklarita, por tiel diri. 237 00:10:02,400 --> 00:10:07,510 Ĝi estas menciita en iu dosiero escepte stdio.h kaj CS50.h. 238 00:10:07,510 --> 00:10:09,179 Sed kie estas difinis? 239 00:10:09,179 --> 00:10:12,220 Por esti honesta, vi devas aŭ simple koni ĉi sur la supro de via kapo, 240 00:10:12,220 --> 00:10:13,640 aŭ vi Guglas tion kaj eltrovi. 241 00:10:13,640 --> 00:10:18,150 Aux cxu tio, mi malfermis la CS50 Appliance la fina programo, kiu 242 00:10:18,150 --> 00:10:22,200 estas ĝuste la granda, plena ekrano versio de kio estas en la fundo de gedit fenestron. 243 00:10:22,200 --> 00:10:24,970 >> Kaj ĝi rezultas ke ne estas simile konciza komando, nomata 244 00:10:24,970 --> 00:10:29,280 viro por manlibro, kie se vi tajpas la nomo de funkcio kaj batis Enter, 245 00:10:29,280 --> 00:10:32,240 vi reiri sufiĉe arcane dokumentado. 246 00:10:32,240 --> 00:10:35,299 Estas nur tekston kiu ĝenerale aspektas iom io tiamaniere. 247 00:10:35,299 --> 00:10:37,090 Estas iom blindiga unuavide. 248 00:10:37,090 --> 00:10:39,048 Sed sincere mi tuj miaj okuloj Glaze super 249 00:10:39,048 --> 00:10:41,930 kaj nur enfokusigi fare Mi zorgas pri la momenton. 250 00:10:41,930 --> 00:10:42,780 >> Kiu estas tiu. 251 00:10:42,780 --> 00:10:45,470 Kiu aspektas strukture ŝatas io mi estas familiara kun. 252 00:10:45,470 --> 00:10:48,080 Efektive la viro paĝo, do paroli, mi diros al vi 253 00:10:48,080 --> 00:10:51,590 en kio kaplinion dosieron funkcio kiel strlen estas difinita. 254 00:10:51,590 --> 00:10:54,170 Do mi tuj reiri nun al gedit. 255 00:10:54,170 --> 00:10:59,070 Kaj mi tuj iros antaŭen kaj aldoni tien #include 256 00:10:59,070 --> 00:11:00,480 kaj savu la dosieron. 257 00:11:00,480 --> 00:11:04,300 >> Mi tuj liberigi la ekrano per Kontrolo L Se mi demandis. 258 00:11:04,300 --> 00:11:08,210 Kaj mi tuj re-kuri make string.0, kompilas tiu tempo. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 Tio ŝajnis funkcii Foririgu min antaŭeniris kaj rerun kun Davenport. 261 00:11:15,020 --> 00:11:15,860 Eniri. 262 00:11:15,860 --> 00:11:17,730 Kaj tion, ŝajnis funkcii. 263 00:11:17,730 --> 00:11:21,220 >> Do ni povas fari iom pli bona ol tio, kvankam, ni povas komenci ordigi aferojn 264 00:11:21,220 --> 00:11:23,257 supren malmulta. 265 00:11:23,257 --> 00:11:25,590 Kaj mi tuj reale enkonduki unu alia afero nun. 266 00:11:25,590 --> 00:11:28,930 Mi tuj iros antaŭen kaj savi tio en malsamaj dosiero. 267 00:11:28,930 --> 00:11:31,770 Kaj mi tuj vokos tiun dosieron string1.c simple 268 00:11:31,770 --> 00:11:34,620 esti kohera kun la kodo vi povos trovi en Interreto. 269 00:11:34,620 --> 00:11:37,050 >> Kaj ni enfokusigi en la ĝuste la saman kodon. 270 00:11:37,050 --> 00:11:39,000 Ĝi rezultas ke mi havas estis speco de preno 271 00:11:39,000 --> 00:11:42,600 por koncedis la fakto ke mia portebla komputilo, kaj siavice, la CS50 aparaton 272 00:11:42,600 --> 00:11:47,450 havas multan memoron, multaj RAM, multaj bajtoj de spaco 273 00:11:47,450 --> 00:11:48,920 en kiu mi povas stoki kordoj. 274 00:11:48,920 --> 00:11:53,560 >> Sed la realaĵo se mi tajpis longa sufiĉis, kaj sufiĉe pulsbatoj, 275 00:11:53,560 --> 00:11:56,170 Mi povis en teorio tipo en pli karakteroj 276 00:11:56,170 --> 00:11:58,830 ol mia komputilo fizike havas memoron por. 277 00:11:58,830 --> 00:11:59,830 Kaj tio estas problema. 278 00:11:59,830 --> 00:12:03,050 Multe kiel int povas nur kalkuli tiel alta, en teorio, 279 00:12:03,050 --> 00:12:06,600 Vi nur povas Cram tiom da karakteroj en via komputilo RAM aŭ Hazarda 280 00:12:06,600 --> 00:12:07,920 Aliro Memoro. 281 00:12:07,920 --> 00:12:11,140 >> Do mi estis pli bone anticipi tiu problemo, eĉ 282 00:12:11,140 --> 00:12:13,660 kvankam ĝi povus esti malofta angulo kazo, por tiel diri. 283 00:12:13,660 --> 00:12:15,670 Ne okazas ke ofte, povus okazi. 284 00:12:15,670 --> 00:12:18,815 Kaj se okazas, kaj mi ne anticipi kaj programo por tio, 285 00:12:18,815 --> 00:12:20,300 mia programo povus fari kiu scias kion. 286 00:12:20,300 --> 00:12:22,220 Frostigi, pendi, reboot ajn. 287 00:12:22,220 --> 00:12:24,490 Io anticipis povus okazi. 288 00:12:24,490 --> 00:12:27,120 >> Do kion mi faros nun, nun vere, 289 00:12:27,120 --> 00:12:31,630 estas antaux mi iam blinde uzi variablon kiel s ke 290 00:12:31,630 --> 00:12:36,790 estis atribuita la reveno valoro de iu alia funkcio kiel getstring, 291 00:12:36,790 --> 00:12:40,200 Mi iras al certigi ke ĝia valoro estas valida. 292 00:12:40,200 --> 00:12:44,280 Do mi konas nur el leginte CS50 la dokumentaron por getstring, 293 00:12:44,280 --> 00:12:49,020 kiun finfine ni atentigi vin je, ke getstring revenas speciala simbolo 294 00:12:49,020 --> 00:12:53,610 nomata NULL, N-U-L-L en ĉiuj Caps, se iu eliras malbone. 295 00:12:53,610 --> 00:12:55,650 >> Do kutime, redonas ĉenon. 296 00:12:55,650 --> 00:12:59,700 Sed alie se li revenas N-U-L-L-- ni fine vidos kion tio vere 297 00:12:59,700 --> 00:13:01,790 means-- ke nur per io malbona okazis. 298 00:13:01,790 --> 00:13:05,560 Nun ĉi signifas, multe kiel en Scratch, Mi povas kontroli kondiĉo tie en C, 299 00:13:05,560 --> 00:13:08,830 se s ne egala NULL. 300 00:13:08,830 --> 00:13:11,930 Do se vi ne vidis ĉi tion antaŭe, tio simple signifas ne egala. 301 00:13:11,930 --> 00:13:15,290 >> Do ĝi estas la malo de egala egaluloj, kiu, memoru, 302 00:13:15,290 --> 00:13:18,940 Estas malsama de sola egalas, kio estas farita. 303 00:13:18,940 --> 00:13:23,030 Do se s ne egala NULL, nur tiam fari 304 00:13:23,030 --> 00:13:25,980 Mi volas ekzekuti tiujn liniojn de kodo. 305 00:13:25,980 --> 00:13:28,080 Do alivorte, antaux Mi plonĝi en blinde 306 00:13:28,080 --> 00:13:30,919 kaj komencos ripetanta super s, kaj traktante ĝin 307 00:13:30,919 --> 00:13:33,710 kvazaŭ ĝi estas vico de karakteroj, mi tuj unue kontroli, 308 00:13:33,710 --> 00:13:37,900 atendi minuton, estas s definitive ne egalan al tiu speciala valoro NULL? 309 00:13:37,900 --> 00:13:40,030 >> Ĉar se ĝi estas, malbonaj aferoj povas okazi. 310 00:13:40,030 --> 00:13:43,080 Kaj nun, supozi ke malbonaj aferoj okazas signifas via programo kraŝoj, 311 00:13:43,080 --> 00:13:45,070 kaj vi ne povas nepre resaniĝos. 312 00:13:45,070 --> 00:13:46,800 Do sincere, ĝi aspektas pli malbelaj. 313 00:13:46,800 --> 00:13:48,660 ĝi estas ia konfuzante nun ekrigardi. 314 00:13:48,660 --> 00:13:50,780 Sed tio iĝos pli familiara antaŭ longe. 315 00:13:50,780 --> 00:13:52,920 >> Sed mi tuj proponos nun alia plibonigo. 316 00:13:52,920 --> 00:13:54,660 Tio estas plibonigo al korekto. 317 00:13:54,660 --> 00:13:58,800 Mia programo estas nun pli ĝentila, ĉar en la malofta kazo, ke ne sufiĉas la memoro 318 00:13:58,800 --> 00:14:01,180 Ekzistas Mi manipuli ĝin, kaj mi simple faras nenion. 319 00:14:01,180 --> 00:14:02,680 Mi almenaŭ ne frakasi. 320 00:14:02,680 --> 00:14:05,000 >> Sed ni faros definitivan version tie. 321 00:14:05,000 --> 00:14:07,690 Kaj nomita arkivo string2.c. 322 00:14:07,690 --> 00:14:10,190 Mi tuj almeti ke sama kodo por nur momente, 323 00:14:10,190 --> 00:14:14,210 kaj mi tuj elstaros ĉi linio 11, tie, por nur momento. 324 00:14:14,210 --> 00:14:18,179 Nun la realaĵo estas kiu smart tradukiloj kiel tin povus ripari tion por ni 325 00:14:18,179 --> 00:14:19,970 malantaŭ la scenoj sen nia iam scii. 326 00:14:19,970 --> 00:14:24,670 Sed pensu pri tiu fundamente kiel probleman dezajno. 327 00:14:24,670 --> 00:14:29,010 >> Ĉi tiu linio de kodo estas, kompreneble, dirante pravalorizi iu variablo i al 0. 328 00:14:29,010 --> 00:14:30,260 Tio estas sufiĉe simpla. 329 00:14:30,260 --> 00:14:34,691 Kaj kio denove estas ĉi deklaro, tie, i ++, farante? 330 00:14:34,691 --> 00:14:37,066 Ni jam vidis ĝin antaŭe, sed ni ne vere parolas pri ĝi. 331 00:14:37,066 --> 00:14:37,900 >> Publiko: pliigante i. 332 00:14:37,900 --> 00:14:39,191 >> DAVID J. Malan: pliigante i. 333 00:14:39,191 --> 00:14:41,890 Do sur ĉiu ripeto tra tiu ciklo, ĉiu ciklo, 334 00:14:41,890 --> 00:14:43,570 vi pliigante i per unu. 335 00:14:43,570 --> 00:14:45,740 Do ĝi ricevas pli kaj pli granda, kaj grandaj ĝis la buklo finas. 336 00:14:45,740 --> 00:14:46,810 Kiel ĝi finiĝi? 337 00:14:46,810 --> 00:14:49,430 Bone tie estas tio mezo kondiĉo kiun ni uzis antaŭe. 338 00:14:49,430 --> 00:14:52,500 Vi vidis kaj walkthroughs en la P aro. 339 00:14:52,500 --> 00:14:53,880 >> Sed kio estas tiu parolo? 340 00:14:53,880 --> 00:14:58,352 Ĉu la jenaj buklo tiel longa kiel i estas malpli ol kio? 341 00:14:58,352 --> 00:14:59,810 Aŭdienco: La longo de la kordo. 342 00:14:59,810 --> 00:15:01,518 DAVID J. Malan: La longo de la kordo. 343 00:15:01,518 --> 00:15:04,300 Do ĝi tradukas bela pure angla en tiu senco. 344 00:15:04,300 --> 00:15:08,810 Nun la problemo estas ke ĉiu tempo mi persisti tra tiu buklo teorie, 345 00:15:08,810 --> 00:15:10,000 Mi demandas ĉi demando. 346 00:15:10,000 --> 00:15:12,250 Ĉu mi malpli ol la kordo longo de s? 347 00:15:12,250 --> 00:15:14,500 Ĉu mi malpli ol la kordo longo de s? 348 00:15:14,500 --> 00:15:18,380 >> Nun mi ŝanĝas en ĉiu ripeto? 349 00:15:18,380 --> 00:15:18,880 Ĝi estas. 350 00:15:18,880 --> 00:15:19,629 Pro la ++. 351 00:15:19,629 --> 00:15:21,700 Do ĉiu ripeto i fariĝas pli granda. 352 00:15:21,700 --> 00:15:25,411 Sed estas s atingi pli granda, aŭ malgranda, aŭ ŝanĝi je ĉiuj? 353 00:15:25,411 --> 00:15:25,910 No. 354 00:15:25,910 --> 00:15:30,240 Do en terminoj de dezajno, unu el la aksoj laŭ kiuj ni provas taksi kodo 355 00:15:30,240 --> 00:15:32,610 en la klaso, tiu sentas specon de stultulo. 356 00:15:32,610 --> 00:15:34,690 >> Kiel vi estas laŭvorte, sur ĉiu ripeto 357 00:15:34,690 --> 00:15:37,110 de tiu buklo petante la sama malbenita demando denove, 358 00:15:37,110 --> 00:15:40,770 kaj denove, kaj denove, kaj laŭvorte ĝi neniam tuj ŝanĝos. 359 00:15:40,770 --> 00:15:44,220 Almenaŭ se mi ne tuŝante ejon kaj klopodi ŝanĝi la enhavon de s. 360 00:15:44,220 --> 00:15:46,610 Do mi povos fari iom pli bona ol tiu. 361 00:15:46,610 --> 00:15:49,530 >> Kaj kion mi tuj faros estas ne deklari nur unu variablo i, 362 00:15:49,530 --> 00:15:53,330 sed dua variablo Mi timige arbitre, sed konvencie, nomas gxin n. 363 00:15:53,330 --> 00:15:55,940 Asigni n egalas al la kordo longo de s. 364 00:15:55,940 --> 00:15:59,090 Kaj poste tien, mi tuj fari saĝa iom optimumigo, do 365 00:15:59,090 --> 00:16:03,460 paroli, ke ĉe la fino de la tago plu estas korekta aŭ ne malpli korekta 366 00:16:03,460 --> 00:16:04,260 ol antaŭe. 367 00:16:04,260 --> 00:16:05,500 Sed estas pli bona dezajno. 368 00:16:05,500 --> 00:16:09,480 En la fakto ke mi uzas malpli tempo, malpli CPU cikloj, tiel 369 00:16:09,480 --> 00:16:14,040 paroli, respondi la samajn demandon, sed nur unufoje. 370 00:16:14,040 --> 00:16:17,870 >> Demandojn sur tiu ĝenerala principo de plibonigante, 371 00:16:17,870 --> 00:16:21,294 diri, programo de eficiencia? 372 00:16:21,294 --> 00:16:21,991 Yeah? 373 00:16:21,991 --> 00:16:23,699 Publiko: Kial vi uzu la [inaudible]? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 DAVID J. Malan: Bona demando. 376 00:16:27,010 --> 00:16:30,690 Do kial ni metis la ++ je la fino de i anstataŭ la komenco de la i? 377 00:16:30,690 --> 00:16:33,070 En ĉi tiu kazo, ĝi havas neniu funkcia trafo. 378 00:16:33,070 --> 00:16:36,670 Kaj ĝenerale mi emas uzi la postfix operatoro 379 00:16:36,670 --> 00:16:41,750 tiel ke ĝi estas iom pli klara kiel por kiam la operacio okazas. 380 00:16:41,750 --> 00:16:46,670 >> Por kiuj ne konas, estas alia deklaroj per vi povus fari ++ i. 381 00:16:46,670 --> 00:16:48,747 Tiuj estas funkcie ekvivalenta en tiu kazo 382 00:16:48,747 --> 00:16:51,080 ĉar tie estas nenio alia ĉirkaŭ tiu incrementation. 383 00:16:51,080 --> 00:16:54,435 Sed vi povas veni supre kun kazoj kaj linioj de kodo 384 00:16:54,435 --> 00:16:55,810 en kiu tiu faras diferencon. 385 00:16:55,810 --> 00:16:57,810 Do ĝenerale, ni ne eĉ paroli pri ĉi tiu. 386 00:16:57,810 --> 00:17:00,690 Ĉar sincere, ĝi faras vian kodo sexier, kaj speco de slicker, 387 00:17:00,690 --> 00:17:01,776 kaj malpli gravuloj. 388 00:17:01,776 --> 00:17:04,859 Sed la realaĵo estas kiu estas multe pli malfacila, Mi kredas, eĉ por mi envolver mia menso 389 00:17:04,859 --> 00:17:07,319 ĉirkaŭ ĝi iam, la ordo de operacioj. 390 00:17:07,319 --> 00:17:09,750 Do kiel flanken, se vi vere ne ŝatas tion, 391 00:17:09,750 --> 00:17:14,650 kvankam tiu estas speco de sexy rigardante, vi ankaŭ povas fari i + = 1, 392 00:17:14,650 --> 00:17:18,880 kiu estas la pli malbelaj versio de la sama ideo por postfix incrementation. 393 00:17:18,880 --> 00:17:22,250 >> Mi diras tion, kaj vi devus moki lin, 394 00:17:22,250 --> 00:17:25,140 sed vi venos vidi kodo kiel ion belan antaŭ longe. 395 00:17:25,140 --> 00:17:27,160 >> [Ridado] 396 00:17:27,160 --> 00:17:28,410 >> DAVID J. Malan: Ĝuste? 397 00:17:28,410 --> 00:17:29,360 Yeah. 398 00:17:29,360 --> 00:17:30,480 Demando en la mezo. 399 00:17:30,480 --> 00:17:32,146 >> Publiko: Ĉu vi bezonas diri int n? 400 00:17:32,146 --> 00:17:34,020 DAVID J. Malan: Fasko Ne bezonas diri int n. 401 00:17:34,020 --> 00:17:37,670 Do ĉar ni jam diris int, Vi ne bezonas diri ĝin denove. 402 00:17:37,670 --> 00:17:41,820 La ruzo estas ke n devas esti la sama datumtipo kiel i. 403 00:17:41,820 --> 00:17:43,310 Do tio estas nur oportunajho tie. 404 00:17:43,310 --> 00:17:44,058 Yeah. 405 00:17:44,058 --> 00:17:47,806 >> Publiko: Ĉu vi transiros print karaktero s krampo i denove? 406 00:17:47,806 --> 00:17:48,930 DAVID J. Malan: Absolute. 407 00:17:48,930 --> 00:17:52,110 Do% c, rememoran de lasta tempo, estas nur lokokupilon. 408 00:17:52,110 --> 00:17:53,930 Ĝi signifas meti char tie. 409 00:17:53,930 --> 00:17:56,780 backslash n, kompreneble, nur per metis linerompo tie. 410 00:17:56,780 --> 00:17:59,540 Tiel ke nur lasas nun tiu peco de nova sintakso. 411 00:17:59,540 --> 00:18:03,730 Kaj tiu estas laŭvorte dirante grab la ŝnuro nomita s kaj iros trovi ĝian 412 00:18:03,730 --> 00:18:06,050 i'th karaktero, por tiel diri. 413 00:18:06,050 --> 00:18:10,590 >> Kaj mi konservos dirante i'th karaktero ĉar sur ĉiu ripeto de tiu buklo 414 00:18:10,590 --> 00:18:14,540 ĝi estas kvazaŭ ni presi el, unue s krampo 0, 415 00:18:14,540 --> 00:18:15,780 kiel programisto dirus. 416 00:18:15,780 --> 00:18:18,680 Tiam s krampo 1, tiam s krampo 2, tiam 3, tiam 4. 417 00:18:18,680 --> 00:18:21,610 Sed kompreneble estas ŝanĝiĝema, do mi simple esprimi ĝin per i. 418 00:18:21,610 --> 00:18:23,900 >> Ŝlosilo, kvankam, estas realigi, speciale se vi havas ne 419 00:18:23,900 --> 00:18:26,358 estis ambientando al tiu mondo de programado, kie ni ĉiuj 420 00:18:26,358 --> 00:18:28,950 ŝajnas al rakonti de nulo, Gotta komenci kalkulon nulo nun. 421 00:18:28,950 --> 00:18:35,130 Ĉar kordoj, unua karaktero, la z en Zamyla estas por bone aŭ por malbone 422 00:18:35,130 --> 00:18:40,490 tuj vivos al situo nombro nulo. 423 00:18:40,490 --> 00:18:48,210 >> Bone, do mi elirigos ni revenu al Zamyla 424 00:18:48,210 --> 00:18:50,746 kaj vidu kio vere tuj sur sub la kapuĉo. 425 00:18:50,746 --> 00:18:52,370 Do ekzistas tiu nocio de tipo casting. 426 00:18:52,370 --> 00:18:53,800 Vi povus havi reale ludis kun tiu jam, 427 00:18:53,800 --> 00:18:55,970 eble por la hacker eldono de P starigis unu. 428 00:18:55,970 --> 00:19:00,320 Sed tipo casting nur aludas al la kapablecon en C kaj iuj aliaj lingvoj 429 00:19:00,320 --> 00:19:03,170 konverti unu datumtipo al alia. 430 00:19:03,170 --> 00:19:05,450 >> Nun kiel eble vidas ĉi bela straightforwardly? 431 00:19:05,450 --> 00:19:08,530 Do tiu, revokon, estas la komenco de la angla alfabeto. 432 00:19:08,530 --> 00:19:11,265 Kaj la kunteksto, rememoras, de kiel antaŭ semajno estas ASCII. 433 00:19:11,265 --> 00:19:13,790 La American Standard Code Informo Interŝanĝo. 434 00:19:13,790 --> 00:19:17,080 Kio estas nur vere longa vojo diri surĵeto de leteroj 435 00:19:17,080 --> 00:19:19,370 al nombroj kaj de nombroj al literoj. 436 00:19:19,370 --> 00:19:22,940 >> Do A tra M tie dot dot dot, regiono kun, revokon, 437 00:19:22,940 --> 00:19:25,582 la dekuma numero 65 sur supren. 438 00:19:25,582 --> 00:19:27,290 Kaj ni ne parolas pri tiu eksplicite, 439 00:19:27,290 --> 00:19:29,850 sed certe ekzistas simila nombroj por minusklaj literoj. 440 00:19:29,850 --> 00:19:30,820 Kaj efektive, ekzistas. 441 00:19:30,820 --> 00:19:33,730 La mondo decidis iuj jaroj antaŭ ke iom pli, minuskla a, 442 00:19:33,730 --> 00:19:35,020 tuj estos 97. 443 00:19:35,020 --> 00:19:38,010 Kaj iom b tuj esti 98, ks. 444 00:19:38,010 --> 00:19:40,200 >> Kaj por neniu alia klavo via klavaro, ekzistas 445 00:19:40,200 --> 00:19:42,190 tuj estos simila ŝablono de bitoj. 446 00:19:42,190 --> 00:19:44,540 Aŭ ekvivalente, dekuma nombro. 447 00:19:44,540 --> 00:19:47,110 Do la demando en la mano, do, estas kiel oni povas 448 00:19:47,110 --> 00:19:49,400 reale vidi ĉi sube la kapuĉo? 449 00:19:49,400 --> 00:19:51,539 Do mi tuj transiru al gedit denove. 450 00:19:51,539 --> 00:19:53,330 Kaj anstataŭ tipo tiu unu el nenio, 451 00:19:53,330 --> 00:19:55,330 Mi tuj iros antaŭen kaj nur malfermi ion 452 00:19:55,330 --> 00:19:58,350 el hodiaŭa kodo nomita ASCII nulo. 453 00:19:58,350 --> 00:20:01,210 >> Askio nulo aspektas kiel ĉi. 454 00:20:01,210 --> 00:20:02,710 Do ni envolver niaj mensoj ĉirkaŭ ĉi. 455 00:20:02,710 --> 00:20:04,969 Do unue mi komentis la kodo, kiu estas bela. 456 00:20:04,969 --> 00:20:07,010 Ĉar ĝi estas laŭvorte diri al mi kion atendi, 457 00:20:07,010 --> 00:20:08,950 montri surĵeto por majuskloj literoj. 458 00:20:08,950 --> 00:20:13,690 Nun mi ne tute scias, kion mi signifas, do ni konkludi. 459 00:20:13,690 --> 00:20:16,870 >> En la angla, eble iom techie angla, 460 00:20:16,870 --> 00:20:20,660 kion faras linion 18 aperi esti farante por ni? 461 00:20:20,660 --> 00:20:21,500 Nur linio 18. 462 00:20:21,500 --> 00:20:22,430 Kio ĝi indukti? 463 00:20:22,430 --> 00:20:25,192 Kio fartas piedbati ekstere tie? 464 00:20:25,192 --> 00:20:26,100 >> Publiko: Ciklo. 465 00:20:26,100 --> 00:20:26,630 >> DAVID J. Malan: Ciklo. 466 00:20:26,630 --> 00:20:28,463 Kaj kiom da fojoj estas kiuj iras persisti? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 Publiko: [intermetante voĉoj] ses fojojn. 469 00:20:33,270 --> 00:20:34,830 DAVID J. Malan: Not ses fojojn. 470 00:20:34,830 --> 00:20:35,840 Publiko: 26 fojojn. 471 00:20:35,840 --> 00:20:36,560 DAVID J. Malan: 26 fojojn. 472 00:20:36,560 --> 00:20:37,060 Yeah, bedaŭras. 473 00:20:37,060 --> 00:20:37,960 26 fojojn. 474 00:20:37,960 --> 00:20:38,460 Kial? 475 00:20:38,460 --> 00:20:41,590 Nu, tio estas iom bizara, sed Mi komencis rakontante de 65. 476 00:20:41,590 --> 00:20:43,300 Kio estas stranga, sed ne malbone. 477 00:20:43,300 --> 00:20:44,610 Ne malbone por diri. 478 00:20:44,610 --> 00:20:46,980 Kaj mi faras ke nur ĉar, pro tio ekzemple, 479 00:20:46,980 --> 00:20:50,455 Mi speco de anticipante ke ĉefurbo A 65. 480 00:20:50,455 --> 00:20:53,330 Nun tio ne estas la plej elegantaj maniero fari tion, al speco de malmola kodo 481 00:20:53,330 --> 00:20:56,130 esotera valoroj kiujn neniu estas iam atendis memori. 482 00:20:56,130 --> 00:21:00,155 >> Sed nuntempe, rimarki ke mi estas fari tion tra 65 plus 26. 483 00:21:00,155 --> 00:21:03,030 Ĉar ŝajne, mi eĉ ne volas fari la aritmetiko en mia kapo. 484 00:21:03,030 --> 00:21:04,440 Do mi lasos al la tradukilo faru. 485 00:21:04,440 --> 00:21:08,600 Sed tiam en ĉiu ciklo, ĉiu ripeto de la buklo, mi pliigante i. 486 00:21:08,600 --> 00:21:10,196 >> Do nun tio aspektas iom kamufla. 487 00:21:10,196 --> 00:21:13,320 Sed ni havas la baza konstruaĵo blokoj kun kiu komprenos ĉi. 488 00:21:13,320 --> 00:21:15,510 % C estas nur lokokupilon por char. 489 00:21:15,510 --> 00:21:19,010 % I estas lokokupilon por int. 490 00:21:19,010 --> 00:21:23,310 Kaj ĝi rezultas ke per uzado tiun nova sintakso, ĉi parenthetical, do 491 00:21:23,310 --> 00:21:26,100 paroli, do datumtipo ene krampoj, 492 00:21:26,100 --> 00:21:32,270 Mi povas devigi la tradukilo trakti i ne estas entjero, sed kiel signo. 493 00:21:32,270 --> 00:21:35,520 >> Modo montras min la karaktero ekvivalento de tiu nombro. 494 00:21:35,520 --> 00:21:37,986 Nun ĉi tie, ĉi kodo estas sufiĉe multa identaj. 495 00:21:37,986 --> 00:21:39,860 Mi nur volis fari super eksplicita la fakto 496 00:21:39,860 --> 00:21:42,095 ke mi startanta je 97, kiu estas minuskla a. 497 00:21:42,095 --> 00:21:44,080 On tra 26 pli literoj. 498 00:21:44,080 --> 00:21:46,970 Kaj mi doing-- denove, kusxiginte i, por tiel diri. 499 00:21:46,970 --> 00:21:49,160 Aŭ tipo casting i, por tiel diri. 500 00:21:49,160 --> 00:21:51,420 >> De int al char. 501 00:21:51,420 --> 00:21:55,760 Do la fina rezulto estas tuj estos, sincere, informojn ni jam scias. 502 00:21:55,760 --> 00:21:59,411 Mi tuj faros ascii-0 dot-- ne dot c. 503 00:21:59,411 --> 00:22:02,160 Avizo, vi probable faris ke eraron kiel mi ĵus faris akcidente. 504 00:22:02,160 --> 00:22:03,820 Faru ascii-0. 505 00:22:03,820 --> 00:22:06,090 Nun mi intencas fari ./ascii-0. 506 00:22:06,090 --> 00:22:09,050 Mi zomi, kaj bedaŭrinde ĝi tuj rulumi for la ekrano. 507 00:22:09,050 --> 00:22:15,060 Sed ni vidos tutan grafikaĵo kie oni mapoj 97, b mapojn al 98, 508 00:22:15,060 --> 00:22:18,931 kaj se ni rulumu supren plua A kompreneble mapas al 65. 509 00:22:18,931 --> 00:22:21,180 Do tio estas nur por diri ke kion ni estis predikante, 510 00:22:21,180 --> 00:22:25,310 estas tiu ekvivalentrilato, estas fakte la kazo en realo. 511 00:22:25,310 --> 00:22:28,000 Tiel rapida modifo de tiu. 512 00:22:28,000 --> 00:22:31,220 Lasu min malfermi ascii-1.c. 513 00:22:31,220 --> 00:22:38,070 Kaj rimarki ĉi saĝa, varo de, klarigo de tio. 514 00:22:38,070 --> 00:22:41,770 Jen ascii-1.c kaj rimarki ĉi freneza afero. 515 00:22:41,770 --> 00:22:45,120 >> Kaj tio vere alvenas al la koron kion komputiloj faras. 516 00:22:45,120 --> 00:22:48,150 Eĉ kvankam ni homoj farus ne rakontas koncerne letters-- 517 00:22:48,150 --> 00:22:50,380 Mi ne komencas pensi, ĉiuj dekstra tiam b, 518 00:22:50,380 --> 00:22:52,590 kaj uzi tiujn por rakonti fizikaj objektoj. 519 00:22:52,590 --> 00:22:58,680 Vi certe povas diri, ke mi volas pravalorizi iu variablo nomita c-- 520 00:22:58,680 --> 00:23:03,220 sed mi nomis ĉi anything-- tiel c inicializa al ĉefurbo A. 521 00:23:03,220 --> 00:23:07,560 >> Ĉar en fino de la tago, la komputilo Ne gravas kion vi provizo, 522 00:23:07,560 --> 00:23:10,170 nur zorgas kiel vi volas prezenti tiun informon. 523 00:23:10,170 --> 00:23:13,560 Kiel vi volas la komputilo interpreti ke ŝablono de bitoj? 524 00:23:13,560 --> 00:23:16,320 Do tio ne estas iu estus ĝenerale rekomendas fari. 525 00:23:16,320 --> 00:23:19,500 Estas vere nur ekzemplo por transdoni ke vi povas absolute 526 00:23:19,500 --> 00:23:22,049 pravalorizi entjero al char. 527 00:23:22,049 --> 00:23:24,090 Ĉar sub la kapuĉo de char, kompreneble, 528 00:23:24,090 --> 00:23:26,170 estas nur nombro de 0 al 255. 529 00:23:26,170 --> 00:23:28,540 >> Do vi povas certe metis gxin interne de int. 530 00:23:28,540 --> 00:23:30,890 Kaj kion tio ankaŭ pruvas estas kiu ni 531 00:23:30,890 --> 00:23:34,040 povas konverti el unu tajpi alian tie, 532 00:23:34,040 --> 00:23:36,780 finfine presi la samon. 533 00:23:36,780 --> 00:23:44,760 Kaj fakte, mi korektos online-- celis diri tion, denove, ĉi tie. 534 00:23:44,760 --> 00:23:48,610 Lasu min purigi ĉi supre interreto, kaj ni vidi en linio walkthrough drajvo, 535 00:23:48,610 --> 00:23:50,280 kion intencis tie. 536 00:23:50,280 --> 00:23:50,960 >> OK. 537 00:23:50,960 --> 00:23:53,892 Do lastan ekzemplon nun engaĝante al la b-aj kaj tiam ni 538 00:23:53,892 --> 00:23:54,850 preni aĵojn muesca. 539 00:23:54,850 --> 00:23:58,330 Do kun la b-aj kaj c estas en la capitalización 540 00:23:58,330 --> 00:24:01,560 kaj la ekvivalento gxiajn ni rigardu ĉi ekzemplo, ĉi tie. 541 00:24:01,560 --> 00:24:02,752 Alia kodo ekzemplo. 542 00:24:02,752 --> 00:24:04,460 Ni malfermu unu tio jam faris, do ni 543 00:24:04,460 --> 00:24:06,440 ne devas tajpi ĝin ĉiuj el nulo. 544 00:24:06,440 --> 00:24:09,420 >> Kaj rimarki anticipante ni uzas multnombraj kaplinion 545 00:24:09,420 --> 00:24:13,240 dosierojn, inter kiuj trovas nia nova amiko, string.h. 546 00:24:13,240 --> 00:24:15,597 Nun tio aspektas, je unua rigardo, iom kamufla. 547 00:24:15,597 --> 00:24:18,180 Sed ni vidu, se ni ne povas rezoni tra kio okazas tie. 548 00:24:18,180 --> 00:24:21,150 Unue mi ricevi ĉenon de la uzanto, kaj Mi metis tiun ĉenon en ŝanĝiĝema 549 00:24:21,150 --> 00:24:22,286 nomita s. 550 00:24:22,286 --> 00:24:24,090 Kopiu pasto de antaŭe. 551 00:24:24,090 --> 00:24:27,250 En linio 22, mi ŝajne fari precize kion 552 00:24:27,250 --> 00:24:30,760 Mi faris antaŭ momento, mi ripetanta super la karakteroj en s. 553 00:24:30,760 --> 00:24:34,780 >> Kaj la nova lertaĵoj tie abonas kordo longo, la plej malgranda optimumigo 554 00:24:34,780 --> 00:24:37,930 de stoki la kordo longo en n, anstataŭ voko strlen denove, 555 00:24:37,930 --> 00:24:38,850 kaj denove, kaj denove. 556 00:24:38,850 --> 00:24:41,120 Kaj ĝuste kontrolanta ke i estas malpli ol n. 557 00:24:41,120 --> 00:24:43,330 Nun tie, aĵoj iom interesa. 558 00:24:43,330 --> 00:24:45,980 Sed estas ĝuste apliko de tiu sama nova ideo. 559 00:24:45,980 --> 00:24:48,470 Kio en la angla faras s krampo i reprezentas? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> Publiko: Counting ĉiu karaktero [inaudible]. 562 00:24:54,260 --> 00:24:55,926 >> DAVID J. Malan: Counting ĉiu karaktero. 563 00:24:55,926 --> 00:24:58,680 Kaj eĉ pli koncize, s krampo i reprezentas kio? 564 00:24:58,680 --> 00:25:00,950 Ĉu vi diras. 565 00:25:00,950 --> 00:25:04,084 Ne meti vin sur la lokon tie. 566 00:25:04,084 --> 00:25:06,375 >> Publiko: Well-- 567 00:25:06,375 --> 00:25:09,500 DAVID J. Malan: Do se la vorto is-- se la kordo estas Zamyla, kiun starts-- 568 00:25:09,500 --> 00:25:12,380 Publiko: --you trakti la karakteroj separately-- 569 00:25:12,380 --> 00:25:13,690 DAVID J. Malan: Bone. 570 00:25:13,690 --> 00:25:14,190 Ĝuste. 571 00:25:14,190 --> 00:25:17,940 La kvadrata krampo skribmaniero permesas aliri ĉiu karaktero individue, 572 00:25:17,940 --> 00:25:21,120 tial s krampo 0 tuj estos la unua gravulo en la kordo. 573 00:25:21,120 --> 00:25:24,110 s krampo 1 tuj estos la dua, kaj tiel plu. 574 00:25:24,110 --> 00:25:28,050 Do la demando Mi petas, ĉi tie, en ĉi tiu kondiĉo estas kio? 575 00:25:28,050 --> 00:25:33,984 Ĉu la i'th karaktero de s granda ol aŭ egala al minuskla a? 576 00:25:33,984 --> 00:25:36,400 Kaj kion tio signifas, ĉi tie, kun la duobla ampersands? 577 00:25:36,400 --> 00:25:36,800 Publiko (KUNE): Kaj. 578 00:25:36,800 --> 00:25:37,210 DAVID J. Malan: Kaj. 579 00:25:37,210 --> 00:25:38,418 Estas nur ekvivalenta al tiu. 580 00:25:38,418 --> 00:25:42,310 Kaj ne estas ŝlosilvorto en C, oni devas uzo, annoyingly, signo-simbolo. 581 00:25:42,310 --> 00:25:47,520 Kaj tiu, male, estas demandi estas s La i'th karakteron malpli ol aŭ egala 582 00:25:47,520 --> 00:25:49,030 al minuskle z? 583 00:25:49,030 --> 00:25:52,440 Kaj cetere, jen kie kompreni la suba 584 00:25:52,440 --> 00:25:54,550 efektivigo de komputilo faras sencon. 585 00:25:54,550 --> 00:25:57,330 Rimarku ke, eĉ se mi la skalara dot dot tie, 586 00:25:57,330 --> 00:26:04,410 aspektas kiel tra z en minuskla estas ĉiuj apudaj valorojn el 97 sur supren. 587 00:26:04,410 --> 00:26:07,820 >> Kaj sama por majuskloj komencante ĉe 65. 588 00:26:07,820 --> 00:26:10,410 Do la takeaway do estas, ke en la angla, 589 00:26:10,410 --> 00:26:12,760 kiel vi priskribus kion linio 24 estas faranta? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 Yeah? 592 00:26:16,728 --> 00:26:21,575 >> Publiko: On 24 ĝi estas kontrolanta vidi ĉu ĉiu karaktero estas minuskla. 593 00:26:21,575 --> 00:26:24,700 DAVID J. Malan: Ĝi estas kontrolanta ĉu ĉiu karaktero estas minuskla litero. 594 00:26:24,700 --> 00:26:28,590 Do eĉ pli koncize, estas la i'th karaktero de s minuskle? 595 00:26:28,590 --> 00:26:30,690 Tio estas ĉio ni esprimanta tie logike, 596 00:26:30,690 --> 00:26:33,750 iom enigme, sed finfine bela straightforwardly. 597 00:26:33,750 --> 00:26:36,480 Ĉu s-oj i'th karaktero minuskle? 598 00:26:36,480 --> 00:26:40,130 >> Se tiel, kaj ĉi tie estas kie aferoj preni iom menso fleksante 599 00:26:40,130 --> 00:26:44,760 por nur momenton, se tiel, iru antaŭeniris kaj presi karaktero. 600 00:26:44,760 --> 00:26:47,360 Do tio estas nur lokokupilon, sed kion karakteron? 601 00:26:47,360 --> 00:26:53,710 Kial mi faras s krampo i minus tiun esprimon ĉi tie? 602 00:26:53,710 --> 00:26:55,110 >> Nu rimarkos la mastro tie. 603 00:26:55,110 --> 00:26:57,380 La realaj nombroj ne gravas tiom. 604 00:26:57,380 --> 00:27:02,700 Sed rimarki ke 97 estas kiom malproksime de la 65? 605 00:27:02,700 --> 00:27:03,560 >> Publiko: 32. 606 00:27:03,560 --> 00:27:04,480 >> DAVID J. Malan: 32. 607 00:27:04,480 --> 00:27:06,890 Kiom for estas 98 el 66? 608 00:27:06,890 --> 00:27:07,740 >> Publiko: 32. 609 00:27:07,740 --> 00:27:09,890 >> DAVID J. Malan: Eta c de granda C? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 Do tie estas 32 lupolon el unu leteron al alia. 612 00:27:14,550 --> 00:27:17,790 Do sincere mi povis simpligi ĉi tiu. 613 00:27:17,790 --> 00:27:20,400 Sed tiam mi specon de malmolaj kodigo tiu malalta nivelo kompreno 614 00:27:20,400 --> 00:27:21,740 ke neniu leganto estas iam tuj komprenos. 615 00:27:21,740 --> 00:27:25,080 Do mi tuj ĝeneraligi ĝin kiel mi konas la minusklaj literoj estas pli grandaj. 616 00:27:25,080 --> 00:27:28,400 Mi konas la majuskloj estas malgrandaj valoroj, ironie. 617 00:27:28,400 --> 00:27:33,216 >> Sed tio estas efike ekvivalenta al dirante subtrahi 32 de s krampo i. 618 00:27:33,216 --> 00:27:35,430 Do en la kunteksto de tiuj literoj, se la letero 619 00:27:35,430 --> 00:27:38,950 okazas esti, minuskle a, kaj mi subtrahi 32, 620 00:27:38,950 --> 00:27:43,442 kion efekto tio ke havi, matematike, en minuskla a? 621 00:27:43,442 --> 00:27:44,400 Publiko: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 DAVID J. Malan: Capitalizes ĝin. 623 00:27:45,691 --> 00:27:48,440 Kaj efektive, ĉi tio nia programo nomiĝas capitalizar nulo. 624 00:27:48,440 --> 00:27:51,590 Tiu programo aŭ capitalizes leteron, 625 00:27:51,590 --> 00:27:54,580 post kontroli se ĝi estas ja minuskla litero. 626 00:27:54,580 --> 00:27:59,810 Alie, en linio 30, kion mi faru, se ĝi ne estas minuskla litero kiu mi 627 00:27:59,810 --> 00:28:02,852 rigardante je aparta ripeto en la buklo. 628 00:28:02,852 --> 00:28:03,890 Nur presi ĝin ekstere. 629 00:28:03,890 --> 00:28:07,010 >> Do ne ŝanĝos stuff tio estas eĉ minuskle. 630 00:28:07,010 --> 00:28:10,790 Limigi vin al malabunda tra iom z. 631 00:28:10,790 --> 00:28:12,730 Nun tiu estas sufiĉe arcane. 632 00:28:12,730 --> 00:28:15,230 Sed ĉe la fino de la tago, tiu estas kiel ni, iam, 633 00:28:15,230 --> 00:28:16,460 devis efektivigi tion. 634 00:28:16,460 --> 00:28:19,780 Se mi anstataŭe malfermita capitalizar unu, ho dankas dion. 635 00:28:19,780 --> 00:28:22,320 Ekzistas funkcio vokis supra kiu povas 636 00:28:22,320 --> 00:28:25,410 fari ĉion ni ĵus faris je sufiĉe malalta nivelo. 637 00:28:25,410 --> 00:28:28,752 >> Nun al supra estas interesa ĉar ĝi estas deklarita en dosiero, 638 00:28:28,752 --> 00:28:31,210 kaj vi nur scias tion kontrolante la dokumentado, 639 00:28:31,210 --> 00:28:35,730 aŭ kalkulitan diru, en klaso, kie ekzistas, en dosiero nomita ctype.h. 640 00:28:35,730 --> 00:28:37,630 Do ĉi tio estas alia nova amiko de nia. 641 00:28:37,630 --> 00:28:40,750 Kaj supra faras ĝuste kio lia nomo sugestas. 642 00:28:40,750 --> 00:28:44,860 >> Vi povas pasi en, kiel argumento, inter tiuj krampoj, iuj karaktero. 643 00:28:44,860 --> 00:28:48,390 Mi tuj pasos en la i'th karaktero de s uzante nia imago novan skribmaniero 644 00:28:48,390 --> 00:28:49,870 engaĝante kvadrataj krampoj. 645 00:28:49,870 --> 00:28:53,391 Kaj prenu diveno, kia estas la reveno valoro de upper ŝajne tuj 646 00:28:53,391 --> 00:28:53,890 esti? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 Al majusklo. 649 00:28:57,770 --> 00:28:58,620 Al majusklo. 650 00:28:58,620 --> 00:29:02,330 >> Do se mi pasas en minuskla a, espereble, per difino de upper, 651 00:29:02,330 --> 00:29:05,600 ĝi tuj revenos kun majuskloj A. Alie 652 00:29:05,600 --> 00:29:08,590 se ĝi ne estas minuskla litero en Unue, mi simple presas ĝin. 653 00:29:08,590 --> 00:29:10,800 Kaj efektive, rimarki la dua amikon tie. 654 00:29:10,800 --> 00:29:13,840 Ne nur al supra ekzistas, sed estas malaltaj, kiuj 655 00:29:13,840 --> 00:29:16,200 efektive respondas tiun demandon por mi. 656 00:29:16,200 --> 00:29:19,730 >> Nun kiu ajn skribis tion, 10s de jaroj, vi scias kion? 657 00:29:19,730 --> 00:29:23,840 Implementado por supra kaj estas malsupreniri uzante kodo kiel ĉi. 658 00:29:23,840 --> 00:29:27,270 Sed denove, kohera kun ĉi tiu ideo de abstracting for, 659 00:29:27,270 --> 00:29:29,190 ia, malsupra nivelo efektivigo detaloj. 660 00:29:29,190 --> 00:29:32,600 Kaj starante sur la ŝultrojn de homoj kiuj venis antaŭ ni, uzante funkcioj 661 00:29:32,600 --> 00:29:36,300 kiel al supra kaj malsupra, kio Mirinde estas sufiĉe bele 662 00:29:36,300 --> 00:29:40,190 nomata diri kion ili faras, estas mirinda paradigmo adopti. 663 00:29:40,190 --> 00:29:44,040 >> Nun, ĝi rezultas ke se mi legas la viro paĝo por, diru al supra, 664 00:29:44,040 --> 00:29:45,010 Mi lernas ion alian. 665 00:29:45,010 --> 00:29:46,890 Tiel homo toUpper. 666 00:29:46,890 --> 00:29:48,050 Estas iom abrumadora. 667 00:29:48,050 --> 00:29:51,110 Sed rimarki, jen tiu mencio la kaplinio dosieron kiun mi devus uzi. 668 00:29:51,110 --> 00:29:54,460 Kiel flanken, ĉar tiu estas iluzia, la funkcio 669 00:29:54,460 --> 00:29:59,070 Uzas ints anstataŭ signoj por kialoj de eraro kontrolanta. 670 00:29:59,070 --> 00:30:01,260 Sed ni eble venu reen al kiuj en la estonteco. 671 00:30:01,260 --> 00:30:05,910 >> Sed rimarki, tie, al supra konvertitoj la literon c al majuskla se eblas. 672 00:30:05,910 --> 00:30:07,674 Do tio estas bela simpla. 673 00:30:07,674 --> 00:30:09,340 Kaj nun ni estu iom pli specifa. 674 00:30:09,340 --> 00:30:12,750 Ni rigardu la parto de la viro paĝo sub reveno valoro. 675 00:30:12,750 --> 00:30:15,420 La valoro revenis estas ke de la konvertita leteron. 676 00:30:15,420 --> 00:30:18,690 Aŭ c, se la konvertiĝo Ne eblas, 677 00:30:18,690 --> 00:30:20,250 kie c estas la origina enigo. 678 00:30:20,250 --> 00:30:24,140 Kiun mi konas de ĉi tie, de la argumento al supra. 679 00:30:24,140 --> 00:30:25,780 >> Do kio estas la takeaway de tio? 680 00:30:25,780 --> 00:30:28,060 La valoro revenis estas ke de la konvertita letero 681 00:30:28,060 --> 00:30:32,110 aŭ c, la originala letero, se la konvertiĝo ne estis ebla. 682 00:30:32,110 --> 00:30:36,460 Kio pliboniĝo povas mi do fari al mia kodo dezajno? 683 00:30:36,460 --> 00:30:37,146 Yeah? 684 00:30:37,146 --> 00:30:38,810 >> Publiko: Vi povas forigi la alian. 685 00:30:38,810 --> 00:30:40,810 DAVID J. Malan: Mi povas forigi la alia aserto, 686 00:30:40,810 --> 00:30:42,510 kaj ne nur la alia aserto. 687 00:30:42,510 --> 00:30:44,150 >> Publiko: Vi povas forigi [inaudible]. 688 00:30:44,150 --> 00:30:46,310 >> DAVID J. Malan: Mi povas forigi la tutan forko 689 00:30:46,310 --> 00:30:48,209 en la vojo, la se alia tute. 690 00:30:48,209 --> 00:30:50,250 Do ja, lasu min malfermi la fina versio de tiu, 691 00:30:50,250 --> 00:30:55,540 capitalizar-2 kaj rimarki kiom, se vi, sexy, la kodo estas nun ricevas, 692 00:30:55,540 --> 00:31:00,040 en kiun mi reduktis de iuj sep aŭ tiel liniojn al nur kvar, 693 00:31:00,040 --> 00:31:03,850 la funcionalidad kiu mi intencis simple vokas supran 694 00:31:03,850 --> 00:31:09,410 pasante en s krampo i kaj presi ekstere, kun la lokokupilon% c: 695 00:31:09,410 --> 00:31:11,090 ke aparta karaktero. 696 00:31:11,090 --> 00:31:14,560 >> Nun disputeble, tie estas cimo, aŭ almenaŭ la riskon de cimo, 697 00:31:14,560 --> 00:31:15,350 en tiu programo. 698 00:31:15,350 --> 00:31:18,200 Do simple veni reen al antaŭa takeaway, 699 00:31:18,200 --> 00:31:21,820 kion mi probable ankaŭ fari en tiun programon por fari ĝin pli fortika, 700 00:31:21,820 --> 00:31:24,974 tiel ke ekzistas neniu maniero povas frakasi, eĉ en maloftaj kazoj? 701 00:31:24,974 --> 00:31:26,390 Publiko: Certiĝu ne estas NULL. 702 00:31:26,390 --> 00:31:28,056 DAVID J. Malan: Certiĝu ne estas NULL. 703 00:31:28,056 --> 00:31:31,030 Do vere, por fari ĉi tiu super taŭga, mi devus fari ion kiel, 704 00:31:31,030 --> 00:31:35,300 se s estas ne nula, tiam antaŭeniri kaj ekzekuti 705 00:31:35,300 --> 00:31:38,470 tiuj linioj de kodo, kiuj Mi povas do indent tiel, 706 00:31:38,470 --> 00:31:39,870 kaj tiam metis en mia proksima krampoj. 707 00:31:39,870 --> 00:31:41,550 Do bone ligante proksime de la du ideoj. 708 00:31:41,550 --> 00:31:42,429 Yeah? 709 00:31:42,429 --> 00:31:44,470 Publiko: Ĉu vi uzas oni faros dum buklo, anstataŭe? 710 00:31:44,470 --> 00:31:47,270 DAVID J. Malan: Could Mi faros do dum buklo? 711 00:31:47,270 --> 00:31:50,020 Publiko: --you volas certigi ke vi efektive [inaudible]. 712 00:31:50,020 --> 00:31:51,728 DAVID J. Malan: Could vi uzu do dum? 713 00:31:51,728 --> 00:31:52,450 Mallonga respondo: ne. 714 00:31:52,450 --> 00:31:54,700 Ĉar vi estas estonta enkonduki alian angulon kazo. 715 00:31:54,700 --> 00:31:56,660 Se la ligilo estas de nulo longa. 716 00:31:56,660 --> 00:31:59,600 Se ekzemple, mi ĵus batis Enter, sen iam tajpante Zamyla. 717 00:31:59,600 --> 00:32:02,490 Mi tuj transdonos vin reala kordoj, kiel ni fine vidos, 718 00:32:02,490 --> 00:32:03,780 kiu havas nulon karakteroj. 719 00:32:03,780 --> 00:32:05,630 Ankoraŭ cxeno, estas nur super mallonga. 720 00:32:05,630 --> 00:32:07,960 Sed se vi uzas la do momenton, vi tuj blinde 721 00:32:07,960 --> 00:32:10,050 provu fari ion kun respekti tiun ĉenon, 722 00:32:10,050 --> 00:32:12,537 kaj nenio tuj estos tie. 723 00:32:12,537 --> 00:32:18,607 >> Publiko: Nu, se vi faris fari [inaudible] dum s-- 724 00:32:18,607 --> 00:32:21,190 DAVID J. Malan: Ho mi vidas, gardu prenanta kordo de la uzanto. 725 00:32:21,190 --> 00:32:23,525 Tiel mallonga respondo, vi povis kaj observos tedante 726 00:32:23,525 --> 00:32:26,150 ilin doni al vi ĉenon tio mallonga sufiĉas por havi en la memoro. 727 00:32:26,150 --> 00:32:26,700 Absolute. 728 00:32:26,700 --> 00:32:27,630 Mi simple elektis ne. 729 00:32:27,630 --> 00:32:30,505 Se ili ne donos al mi la ŝnuron mi volas, mi lasi, mi rezignas. 730 00:32:30,505 --> 00:32:33,260 Sed tute ne, por tiu celo, Vi povus absolute fari tion. 731 00:32:33,260 --> 00:32:37,500 >> Do la biblioteko kaplinion dosieroj ni nun familiara kun estas, ĉi tie. 732 00:32:37,500 --> 00:32:41,550 Norma I / O, CS50.h, string.h, ctype.h, kaj ekzistas ja aliaj. 733 00:32:41,550 --> 00:32:44,460 Iuj el vi jam eltrovis la math biblioteko en math.h. 734 00:32:44,460 --> 00:32:48,200 Sed lasu min prezenti vin nun al tiu rimedo ke CS50 bastonon Davin, 735 00:32:48,200 --> 00:32:50,630 kaj Rob kaj Gabe aparta kunmetis. 736 00:32:50,630 --> 00:32:52,630 Tio baldaŭ ligas sur la kurso de afiŝinto. 737 00:32:52,630 --> 00:32:54,870 Ĝi nomiĝas CS50 referenco. 738 00:32:54,870 --> 00:32:58,230 >> Kio ĝuste doni al vi rapidan gusto, verkoj jene. 739 00:32:58,230 --> 00:33:00,740 Lasu min iri al reference.cs50.net. 740 00:33:00,740 --> 00:33:02,990 Vi vidos maldekstre anko abrumadora listo 741 00:33:02,990 --> 00:33:04,595 de funkcioj kiuj venas kun c. 742 00:33:04,595 --> 00:33:07,790 Sed se mi zorgas, por la momento, pri iu kiel strlen, 743 00:33:07,790 --> 00:33:08,746 Mi povas tajpi ĝin tie. 744 00:33:08,746 --> 00:33:10,870 Filtras suben la elenco justaj kio interesas min. 745 00:33:10,870 --> 00:33:11,940 Mi iras klaki ĝin. 746 00:33:11,940 --> 00:33:14,740 Kaj nun en la maldekstra, vi vidos kion ni esperas 747 00:33:14,740 --> 00:33:18,290 estas pli simpla, homa amika ekspliko de kiel 748 00:33:18,290 --> 00:33:19,170 tiu funkcio laboras. 749 00:33:19,170 --> 00:33:20,600 >> Liveras la longo de kordo. 750 00:33:20,600 --> 00:33:24,060 Jen sinopsis, jen kiel vi uzi ĝin en terminoj de la kaplinio dosieron, 751 00:33:24,060 --> 00:33:27,430 kaj en terminoj de kio la funkcio aspektas kiel en terminoj de liaj argumentoj. 752 00:33:27,430 --> 00:33:30,250 Kaj tiam tie, revenas la longeco de kordo. 753 00:33:30,250 --> 00:33:34,280 Sed por tiuj el vi pli komforte, Vi povas fakte klaku pli comfy, 754 00:33:34,280 --> 00:33:37,070 kaj la enhavon de ĉi tiu paĝo nun ŝanĝos 755 00:33:37,070 --> 00:33:41,660 esti la defaŭlta valoroj de kio vi akiras uzante la viro paĝo. 756 00:33:41,660 --> 00:33:44,100 >> En aliaj vortoj, CS50 referenco estas plisimpligo 757 00:33:44,100 --> 00:33:46,220 de homo paĝoj de la bastono, por studentoj. 758 00:33:46,220 --> 00:33:49,320 Aparte, tiuj malpli komforta kaj en inter, por ke vi 759 00:33:49,320 --> 00:33:51,660 ne devas provi ĉirkaŭfermi via menso ĉirkaŭe, sincere, 760 00:33:51,660 --> 00:33:55,030 iuj sufiĉe kamufla sintakso kaj dokumentado iam. 761 00:33:55,030 --> 00:33:57,650 >> Observu do, ke en menso en la tempo estonta. 762 00:33:57,650 --> 00:33:59,560 Do jen, denove, estas Zamyla. 763 00:33:59,560 --> 00:34:03,255 Ni nun demandas tio iom pli homa atingebla. 764 00:34:03,255 --> 00:34:05,380 Danke al Chang, kiu jam pasis presi pli elefantoj 765 00:34:05,380 --> 00:34:07,090 Nonstop dum la pasintaj kelkaj tagoj. 766 00:34:07,090 --> 00:34:09,730 Ni havas ŝancon doni almenaŭ unu el ili foriris. 767 00:34:09,730 --> 00:34:13,239 Se ni povus akiri nur unu volontulon veni supren desegni sur la ekrano. 768 00:34:13,239 --> 00:34:14,530 Kiom proksimume tie? 769 00:34:14,530 --> 00:34:15,340 >> Venu supren. 770 00:34:15,340 --> 00:34:16,720 Kio estas via nomo? 771 00:34:16,720 --> 00:34:17,219 ALEX: Alex. 772 00:34:17,219 --> 00:34:17,760 DAVID J. Malan: Alex. 773 00:34:17,760 --> 00:34:18,259 Bone. 774 00:34:18,259 --> 00:34:19,388 Alex, venu supren. 775 00:34:19,388 --> 00:34:21,679 Ni volis vidi vian skribo sur la ekrano tie. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 Bone, agrable renkonti vin. 778 00:34:25,570 --> 00:34:26,429 >> ALEX: Nice vi renkontos vin. 779 00:34:26,429 --> 00:34:27,512 >> DAVID J. Malan: Bone. 780 00:34:27,512 --> 00:34:28,969 Do, súper simpla ekzerco. 781 00:34:28,969 --> 00:34:31,440 Trinkejo estas altaj por preni elefanton hodiaŭ. 782 00:34:31,440 --> 00:34:33,439 Vi ludas la rolon de getstring. 783 00:34:33,439 --> 00:34:35,980 Kaj mi tuj diru al vi la ŝnuro ke vi alvenas. 784 00:34:35,980 --> 00:34:38,080 Kaj supozu ke vi, getstring, estis nomata. 785 00:34:38,080 --> 00:34:42,480 Kaj la homo, kiel mi, havas tajpita en Zamyla, Z-A-M-Y-L-A. 786 00:34:42,480 --> 00:34:45,650 Nur bonvolu skribi Zamyla sur la ekrano kvazaŭ vi metis ŝin 787 00:34:45,650 --> 00:34:47,250 kaj stokita gxin ie en la memoro. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> Lasante spacon por kio estos pluraj aliaj words-- tio OK, observu tuj. 790 00:34:55,570 --> 00:34:59,620 >> [Ridado] 791 00:34:59,620 --> 00:35:00,800 >> Do Zamyla, Bonega. 792 00:35:00,800 --> 00:35:04,880 Do nun supozas ke vi, getstring, nomiĝas denove. 793 00:35:04,880 --> 00:35:09,350 Kaj do, mi proponas al vi, en la klavaro, kun alia nomo, Belinda. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 Bone. 796 00:35:18,060 --> 00:35:22,380 Kaj nun la sekva fojo getstring estas vokita, mi tajpas ion kiel Gabe, 797 00:35:22,380 --> 00:35:27,560 G-A-B-E. Vi vere preni al koro hazarda aliro memoro. 798 00:35:27,560 --> 00:35:29,631 Kiun desegnas ĉiun tute hazarde. 799 00:35:29,631 --> 00:35:30,130 OK. 800 00:35:30,130 --> 00:35:31,104 >> [Ridado] 801 00:35:31,104 --> 00:35:32,520 ALEX: Pardonu mian manskribo estas malbona. 802 00:35:32,520 --> 00:35:33,770 DAVID J. Malan: Ne, tio estas okej. 803 00:35:33,770 --> 00:35:40,480 Kaj kio pri Rob, R-O-B. OK. 804 00:35:40,480 --> 00:35:41,020 Bonan. 805 00:35:41,020 --> 00:35:43,853 Do mi ne anticipis vi ia kuŝis aferojn tiamaniere. 806 00:35:43,853 --> 00:35:45,020 Sed ni povas fari tiun laboron. 807 00:35:45,020 --> 00:35:48,810 Do kiel vi iri pri sidiĝante el tiuj signoj en memoro? 808 00:35:48,810 --> 00:35:51,310 Alivorte, se ni pensas ĉi rektangula nigra ekrano 809 00:35:51,310 --> 00:35:53,550 kiel reprezentante komputilo RAM, aŭ memoro. 810 00:35:53,550 --> 00:35:55,850 >> Kaj memoru ke RAM estas nur tutan faskon da bajtoj, 811 00:35:55,850 --> 00:35:57,480 kaj bajtoj estas tuta fasko da bitoj. 812 00:35:57,480 --> 00:35:59,350 Kaj bitoj estas iel implementado, ĝenerale 813 00:35:59,350 --> 00:36:01,119 kun iu formo de elektro en aparataro. 814 00:36:01,119 --> 00:36:03,160 Do tio estas speco de la layering ni parolis 815 00:36:03,160 --> 00:36:04,510 kaj povas nun akceptas. 816 00:36:04,510 --> 00:36:07,020 Kiel vi irad decidi kie skribi 817 00:36:07,020 --> 00:36:11,634 Rob kontre Gabe kontre Belinda kontre Zamyla? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: Mi nur faris en la ordigi ke vi sciigis min. 819 00:36:14,020 --> 00:36:15,650 >> DAVID J. Malan: Kaj kiu estas vera. 820 00:36:15,650 --> 00:36:20,100 Sed kion regita kie vi metis Belinda nomo kaj Gabe nomo? 821 00:36:20,100 --> 00:36:20,764 >> ALEX: Nenio? 822 00:36:20,764 --> 00:36:22,930 DAVID J. Malan: [rie] Por ke funkciu, estas bone. 823 00:36:22,930 --> 00:36:25,290 Do komputiloj estas iom pli bonorda ol tio. 824 00:36:25,290 --> 00:36:29,000 Kaj kiam ni implement-- restu tie cxar nur moment-- kiam ni efektive 825 00:36:29,000 --> 00:36:31,470 implementar iu kiel getstring en komputilon, 826 00:36:31,470 --> 00:36:34,480 Zamyla povus esti elspezata preskaux kiel vi faris en la ekrano, tie. 827 00:36:34,480 --> 00:36:36,660 >> Kaj kio estas ŝlosila rimarki tie, kio Alex faris, 828 00:36:36,660 --> 00:36:40,260 Estas tie estas speco de demarcación inter ĉiu de tiuj vortoj, ĉu ne? 829 00:36:40,260 --> 00:36:46,580 Vi ne skribis Z-A-M-Y-L-A-B-E-L-Mi-No-D-A-G-A-B-- 830 00:36:46,580 --> 00:36:49,740 en aliaj vortoj, ekzistas ia de demarcación kiu ŝajnas esti, 831 00:36:49,740 --> 00:36:52,370 ia, hazarda Interspacigo inter tiuj diversaj vortoj. 832 00:36:52,370 --> 00:36:54,120 Sed tio estas bona, ĉar Ni homoj povas nun 833 00:36:54,120 --> 00:36:56,470 visualizar ke tiuj estas kvar malsamaj ĉenoj. 834 00:36:56,470 --> 00:36:59,540 Ĝi estas ne nur unu vico de multaj gravuloj. 835 00:36:59,540 --> 00:37:04,190 Do komputilo, do, dume, povus preni kiel cxeno Zamyla, 836 00:37:04,190 --> 00:37:07,220 metis ĉiun de tiuj literoj ene de bajto da memoro. 837 00:37:07,220 --> 00:37:10,400 Sed tiu nombro estas multe pli granda, kompreneble, ol ses karakteroj. 838 00:37:10,400 --> 00:37:11,690 >> Ekzistas tuta fasko da RAM. 839 00:37:11,690 --> 00:37:15,330 Kaj tiel plu, tiu krado de skatoloj tuj 840 00:37:15,330 --> 00:37:17,560 reprezenti kion Alex simple faris tie sur la ekrano. 841 00:37:17,560 --> 00:37:20,937 Kaj nun, Alex, ni povas proponi al vi blua aŭ oranĝkolora elefanto de Chang. 842 00:37:20,937 --> 00:37:22,270 ALEX: Mi prenos blua elefanto. 843 00:37:22,270 --> 00:37:23,120 DAVID J. Malan: blua elefanto. 844 00:37:23,120 --> 00:37:25,580 Tiel granda ĉirkaŭvojo de aplaŭdoj, se ni povus, por Alex ĉi tie. 845 00:37:25,580 --> 00:37:26,100 >> [Aplaŭdo] 846 00:37:26,100 --> 00:37:26,766 >> ALEX: Dankon. 847 00:37:26,766 --> 00:37:28,820 DAVID J. Malan: Dankon. 848 00:37:28,820 --> 00:37:36,230 Do la takeaway estas ke, kvankam la ŝablono ia ŝanĝis super tempo, tie 849 00:37:36,230 --> 00:37:40,430 sur la tabulo, estis tiu demarcación inter la diversaj ĉenoj 850 00:37:40,430 --> 00:37:42,610 ke Alex havas por ni. 851 00:37:42,610 --> 00:37:45,230 Nun komputiloj, sincere, povus fari la samon. 852 00:37:45,230 --> 00:37:48,210 Ili povus speco de Plop kordoj ajn en RAM. 853 00:37:48,210 --> 00:37:50,710 Ĝis tie, ĉi tie, malsupren tie, ĉi tie. 854 00:37:50,710 --> 00:37:52,020 >> Ili povis fari ĝuste tion. 855 00:37:52,020 --> 00:37:54,280 Sed, kompreneble, tiu estas probable ne la plej bona planado. 856 00:37:54,280 --> 00:37:54,780 Ĝuste? 857 00:37:54,780 --> 00:37:57,340 Se mi observas demandante Alex akiri nomojn, probable li estos plej 858 00:37:57,340 --> 00:38:01,370 metis iom pli malsupren tie, eble supren ĉi tie, ĉi tie, ĉi tie, eventuale 859 00:38:01,370 --> 00:38:02,211 tien. 860 00:38:02,211 --> 00:38:05,460 Sed kun iom pli planado, certe, Ni povus meti aferojn pli pure. 861 00:38:05,460 --> 00:38:07,350 Kaj efektive, jen kion komputilo faras. 862 00:38:07,350 --> 00:38:10,720 >> Sed la ruzo estas ke se la sekvanta ŝnuro Mi alvenas 863 00:38:10,720 --> 00:38:14,050 post Zamyla estas io kiel Belinda, 864 00:38:14,050 --> 00:38:17,929 proponas kie ni povus skribi la letero b kun respekto al tiu krado? 865 00:38:17,929 --> 00:38:18,720 Kien vi iris? 866 00:38:18,720 --> 00:38:21,480 Dekstre de la a, sub la z, sub la a? 867 00:38:21,480 --> 00:38:23,204 Kio estus via unua instinktoj esti? 868 00:38:23,204 --> 00:38:24,120 Publiko: Sub la z. 869 00:38:24,120 --> 00:38:25,100 DAVID J. Malan: Do sub la z. 870 00:38:25,100 --> 00:38:26,530 Kaj tio estas bela simpla, ĉu ne? 871 00:38:26,530 --> 00:38:29,321 Estas speco de neat, estas kion ni faras sur klavaro kiam ni batis Enter, 872 00:38:29,321 --> 00:38:31,770 aŭ retpoŝton kiam farante bula listo de aĵoj. 873 00:38:31,770 --> 00:38:34,310 Sed la realo estas ke komputiloj provu esti pli efikaj, 874 00:38:34,310 --> 00:38:37,170 kaj Cram certe tiel datumojn en RAM ebla, 875 00:38:37,170 --> 00:38:38,890 por ke vi ne perdas neniun bajtoj. 876 00:38:38,890 --> 00:38:41,545 Por ke vi ne malŝpari ajna ekrano nemoveblaĵoj. 877 00:38:41,545 --> 00:38:44,170 Kaj la problemo, tamen, estas ke se ni laŭvorte metis la leteron 878 00:38:44,170 --> 00:38:49,940 b post, kiel ni tuj scias kie Zamyla nomo finiĝas 879 00:38:49,940 --> 00:38:51,840 kaj Belinda nomo komencas? 880 00:38:51,840 --> 00:38:55,270 Do vi homoj simple proponis, nu, batis la Eniga klavo, esence. 881 00:38:55,270 --> 00:38:56,410 Metu ĝin sube. 882 00:38:56,410 --> 00:38:59,750 Aŭ eĉ kiel Alex faris, ĝuste komenci skribon la sekvanta nomo sub la antaŭa, 883 00:38:59,750 --> 00:39:01,583 kaj sub tiu, kaj tiam sub tiu. 884 00:39:01,583 --> 00:39:02,510 Tio vida cue. 885 00:39:02,510 --> 00:39:05,960 >> Komputiloj havas alian vida cue, sed ĝi estas iom pli konciza. 886 00:39:05,960 --> 00:39:07,840 Estas ĉi funky karaktero. 887 00:39:07,840 --> 00:39:11,890 Backslash 0, kiu estas eble memoras backslash n, 888 00:39:11,890 --> 00:39:12,640 ks, nun. 889 00:39:12,640 --> 00:39:14,120 La speciala eskapo sekvencoj. 890 00:39:14,120 --> 00:39:19,120 Backslash 0 estas la vojo de reprezentas ok nulo bitoj en vico. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> La vojo vi esprimas, ke ne estas batis la nombro nulo sur via klavaro, 893 00:39:26,130 --> 00:39:28,140 ĉar fakte tiu estas ASCII character. 894 00:39:28,140 --> 00:39:30,990 Ĝi aspektas kiel numero, sed fakte dekuma nombro 895 00:39:30,990 --> 00:39:35,910 kiu reprezentas la cirkulero Signo, La cirkla tipografía. 896 00:39:35,910 --> 00:39:38,410 Dume, backslash nulo signifas, laŭvorte 897 00:39:38,410 --> 00:39:40,700 metis ok nulo bitokoj tie por mi. 898 00:39:40,700 --> 00:39:42,136 >> Do ĉi tiu estas iom arbitra. 899 00:39:42,136 --> 00:39:44,260 Ni povis jam uzis neniun mastron de bitoj, sed la mondo 900 00:39:44,260 --> 00:39:46,610 decidis iuj jaroj Antaŭ ke reprezenti 901 00:39:46,610 --> 00:39:49,710 la finon de ŝnuro en la memoro, nur meti tutan faskon da nuloj. 902 00:39:49,710 --> 00:39:51,000 Ĉar ni povas detekti ke. 903 00:39:51,000 --> 00:39:54,790 Nun tio signifas ke neniu litero de la alfabeto povas esti reprezentitaj per nuloj. 904 00:39:54,790 --> 00:39:58,480 >> Sed tio OK, ni jam vidis ke ni uzas 65 supren en 97 sur supren. 905 00:39:58,480 --> 00:40:00,290 Ni ne ricevis ie fermi ĉiujn nuloj. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 Do Belinda en komputila memoro Efektive tuj iros tien. 908 00:40:06,540 --> 00:40:09,764 Mi desegnis ŝin en flava simple desegni nian atenton al ĝi. 909 00:40:09,764 --> 00:40:11,680 Kaj avizo ankaŭ ĉi estas tute arbitra. 910 00:40:11,680 --> 00:40:12,680 Mi desegnis ŝin kiel krado. 911 00:40:12,680 --> 00:40:14,460 Kiel, RAM estas nur iuj fizika objekto. 912 00:40:14,460 --> 00:40:17,300 Ĝi ne nepre havas vicoj kaj kolumnoj, po se. 913 00:40:17,300 --> 00:40:20,490 Ĝi nur havas ĉiu aro de bajtoj implementado en aparataro iel. 914 00:40:20,490 --> 00:40:22,817 Sed se post Belinda mi tajpita en Gabe nomo, 915 00:40:22,817 --> 00:40:25,650 Li tuj finos tie en memoro, kaj se mi tajpas en Daven nomo, 916 00:40:25,650 --> 00:40:27,316 Ekzemple, li tuj finos tie. 917 00:40:27,316 --> 00:40:29,310 Kaj mi povas daŭre skribi eĉ pli nomojn. 918 00:40:29,310 --> 00:40:32,100 >> Bedaŭrinde, se mi provos skribi super longa nomo 919 00:40:32,100 --> 00:40:33,730 Mi povus eventuale kuri el memoro. 920 00:40:33,730 --> 00:40:37,810 Tiaokaze, getstring estas tuj revenos NULL, kiel ni diris. 921 00:40:37,810 --> 00:40:41,720 Sed dankeme, almenaŭ en ĉi tiu vida tie, ni ne ricevis tute tiel for. 922 00:40:41,720 --> 00:40:45,860 >> Nun kio estas agrabla estas tiu ĉi ĝenerala ideo de trakti aferojn 923 00:40:45,860 --> 00:40:49,720 kiel estante en skatoloj estas reprezentanto de esprimilo de C 924 00:40:49,720 --> 00:40:52,690 kaj multajn lingvojn, konata kiel tabelo. 925 00:40:52,690 --> 00:40:55,490 Tabelo estas alia tipo de datumoj. 926 00:40:55,490 --> 00:40:57,380 Estas datumstrukturo, se vi volas. 927 00:40:57,380 --> 00:41:01,160 Strukturo en la senco de vero, ia, aspektante kiel skatolo, almenaŭ 928 00:41:01,160 --> 00:41:02,320 en via menso. 929 00:41:02,320 --> 00:41:09,680 Tabelo estas lindan vico de identaj datumtipoj, 930 00:41:09,680 --> 00:41:11,330 malantaŭo al malantaŭo al malantaŭo al malantaŭo. 931 00:41:11,330 --> 00:41:14,720 >> Do ŝnuro, en aliaj vortoj estas tabelo de signoj. 932 00:41:14,720 --> 00:41:16,120 Tabelo de signoj. 933 00:41:16,120 --> 00:41:19,070 Sed rezultu vi povas havi arrays de aroj da aĵoj. 934 00:41:19,070 --> 00:41:21,870 Fakte, ni povas meti eĉ nombroj en tabelo. 935 00:41:21,870 --> 00:41:23,920 Do la formo en kiu Ni tuj komencu 936 00:41:23,920 --> 00:41:26,590 deklarante ĉi datumoj strukturo konata kiel tabelo 937 00:41:26,590 --> 00:41:28,250 ankaŭ tuj uzos kvadrataj krampoj. 938 00:41:28,250 --> 00:41:31,500 Sed tiuj rektaj krampoj tuj havas malsamajn signifojn en tiu kunteksto. 939 00:41:31,500 --> 00:41:33,450 >> Kaj ni vidos kiel sekvas. 940 00:41:33,450 --> 00:41:36,780 Supozu ke mi malfermis novan dosieron tie. 941 00:41:36,780 --> 00:41:38,535 Kaj mi savos tiun kiel ages.c. 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 Kaj mi ŝparos ĉi en mia dosierujo tie. 944 00:41:43,470 --> 00:41:46,130 Nun mi tuj iros antaŭen kaj ektajpu ion 945 00:41:46,130 --> 00:41:53,940 kiel inkluzivi CS50.h, inkluzivi stdio.h, int ĉefa malplenon. 946 00:41:53,940 --> 00:41:57,370 Kaj tiam ene de tie, mi volas unue havi int nomita aĝo. 947 00:41:57,370 --> 00:42:01,371 >> Kaj mi tuj uzos tiun por ricevi int de la uzanto por lia aŭ ŝia aĝo. 948 00:42:01,371 --> 00:42:04,620 Sed tiu programo estas intencita esti uzita per multnombraj homoj, por kiaj kuntekston. 949 00:42:04,620 --> 00:42:05,490 Mi havas linion de homoj. 950 00:42:05,490 --> 00:42:08,281 Ĉiuj ili devas tajpi en sian aĝo por eble iuj, mi ne scias, 951 00:42:08,281 --> 00:42:10,530 konkurenco, aŭ okazaĵo ke mi alvenis. 952 00:42:10,530 --> 00:42:13,030 Do la sekvanta persono, mi bezonas alian variablo. 953 00:42:13,030 --> 00:42:15,790 >> Ĉar se mi nur faru aĝo ricevas getInt, tio 954 00:42:15,790 --> 00:42:18,500 tuj clobber, aŭ anstataŭigi la antaŭa persono aĝo. 955 00:42:18,500 --> 00:42:19,760 Do tio ne estas bona. 956 00:42:19,760 --> 00:42:21,790 Do mia unua instinkto povus esti, ho, bone, 957 00:42:21,790 --> 00:42:26,260 se mi volas ricevi multnombraj homoj ages-- ni nomas tiun age1, 958 00:42:26,260 --> 00:42:31,280 int age2 ricevas int, int age3 ricevas getInt. 959 00:42:31,280 --> 00:42:35,340 Kaj nun mi tuj uzos iuj _pseudocode_ kodo tie. 960 00:42:35,340 --> 00:42:37,679 >> Ĉu io kun tiuj nombroj. 961 00:42:37,679 --> 00:42:40,470 Ni lasos por alia tago kion ni faras tie, ĉar ni nur 962 00:42:40,470 --> 00:42:44,200 prizorgi la momento pri age1, age2, age3. 963 00:42:44,200 --> 00:42:46,450 Bedaŭrinde, kiam mi kompili tiun programon 964 00:42:46,450 --> 00:42:51,140 kaj metis gxin antaux reala uzantoj kio estas la fundamente malriĉa dezajno 965 00:42:51,140 --> 00:42:53,890 decido ŝajnas esti farita? 966 00:42:53,890 --> 00:42:54,624 Yeah? 967 00:42:54,624 --> 00:42:55,499 Publiko: [inaudible] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 DAVID J. Malan: Jes, Mi eĉ ne provis 970 00:42:59,820 --> 00:43:02,028 elkompreni kiel multaj aĝoj mi vere zorgas pri? 971 00:43:02,028 --> 00:43:05,380 Se mi havas malpli ol tri homoj ĉi tie, kaj do malpli ol tri aĝoj, 972 00:43:05,380 --> 00:43:07,260 Mi ankoraŭ blinde atendante tri. 973 00:43:07,260 --> 00:43:08,720 Dio malpermesu kvar personoj aperas. 974 00:43:08,720 --> 00:43:10,990 Mia programo simple eĉ ne apogas ilin. 975 00:43:10,990 --> 00:43:13,280 >> Kaj tiu, longa rakonto mallonga, ne estas bona kutimo. 976 00:43:13,280 --> 00:43:13,780 Ĝuste? 977 00:43:13,780 --> 00:43:16,530 Mi estis esence kopiado kaj alglui kodo kaj nur tweaking 978 00:43:16,530 --> 00:43:17,430 la variablo nomoj. 979 00:43:17,430 --> 00:43:22,410 Kaj mia dio, se vi havis, ne tri aĝoj, sed 10 aux 100 aux ecx 6500 980 00:43:22,410 --> 00:43:23,820 studentoj, ekz. 981 00:43:23,820 --> 00:43:26,950 Ĉi tio ne tuj estos aparte elegantan kodon, aŭ daŭrigebla. 982 00:43:26,950 --> 00:43:29,200 Vi tuj devas reverki la programon ĉiufoje 983 00:43:29,200 --> 00:43:30,760 Via nombro de homoj ŝanĝoj. 984 00:43:30,760 --> 00:43:35,090 >> Do dankeme, en nia reala ages.c dosiero por hodiaŭ, 985 00:43:35,090 --> 00:43:36,970 ni havos pli saĝa solvo. 986 00:43:36,970 --> 00:43:39,800 Unue, Mi iras por pruntepreni konstrui ni uzis kelkajn fojojn, 987 00:43:39,800 --> 00:43:43,744 tio faros dum buklo, por atingi la nombro de homoj en la ĉambro. 988 00:43:43,744 --> 00:43:46,910 Mi simple tuj Pester la uzanto, denove kaj ree, ĝis li aŭ ŝi donas al mi 989 00:43:46,910 --> 00:43:49,260 valoro de n, kiu estas pozitiva entjero. 990 00:43:49,260 --> 00:43:51,590 >> Mi povus esti uzita, lasta tempo de akiri pozitivajn int. 991 00:43:51,590 --> 00:43:53,720 Sed ni ne havas tiun por vera, do mi iris antaŭen 992 00:43:53,720 --> 00:43:55,660 kaj re implementado ĉi ideo. 993 00:43:55,660 --> 00:43:58,410 Nun ĉi tie, ĉi tiu estas la nova lertaĵo. 994 00:43:58,410 --> 00:44:02,260 En linio 27, kiel la komentojn en linio 26 sugestas, 995 00:44:02,260 --> 00:44:05,180 deklari tabelo en kiu stoki ĉies aĝo. 996 00:44:05,180 --> 00:44:09,320 >> Do se vi volas, ne unu int, ne du ints, sed tutan faskon da ints. 997 00:44:09,320 --> 00:44:13,800 Specife n entjeroj estis n multobligita tri, eble 100, eble 1000. 998 00:44:13,800 --> 00:44:17,570 La sintakso, tutsimple, estas diru, kio datumtipo vi volas? 999 00:44:17,570 --> 00:44:19,620 Kion vi volas nomi ke eron de memoro? 1000 00:44:19,620 --> 00:44:23,530 Kion vi volas nomi la krado kiuj aspektas kiel tiu pictóricamente? 1001 00:44:23,530 --> 00:44:27,700 >> Kaj en krampoj tie, vi diras kiom granda vi volas la tabelo esti. 1002 00:44:27,700 --> 00:44:30,450 Kaj antaŭe, kiam mi diris la sintakso estas iom malsama ĉi tie, 1003 00:44:30,450 --> 00:44:33,614 ni ankoraŭ uzas kvadrataj krampoj, sed kiam mi deklarante tabelo, 1004 00:44:33,614 --> 00:44:35,530 la nombro ene de la rektaj krampoj rimedoj 1005 00:44:35,530 --> 00:44:37,610 kiom granda vi volas la tabelo esti. 1006 00:44:37,610 --> 00:44:42,490 >> Kontraŭe, kiam oni uzis s krampo i antaŭ momento, s, ŝnuro, 1007 00:44:42,490 --> 00:44:46,820 Estas ja tabelo de signoj, sed kiam vi ne deklari variablon, 1008 00:44:46,820 --> 00:44:49,760 kiel kun ĉi ŝlosilvorto tie, vi simple ricevas 1009 00:44:49,760 --> 00:44:54,280 specifa indico, specifa ero el tiu tabelo. 1010 00:44:54,280 --> 00:44:57,090 Iam ni scias, ke la cetera de tio estas simpla. 1011 00:44:57,090 --> 00:45:00,765 Se novaj Mi unue tuj presi kio estas la aĝo de persono nombro mi. 1012 00:45:00,765 --> 00:45:03,890 Kie mi nur diros persono numero unu, persono numeron du, persono numero tri. 1013 00:45:03,890 --> 00:45:06,306 >> Kaj mi simple faranta aritmetiko, tiel ke kiel normala homo, 1014 00:45:06,306 --> 00:45:09,030 ni kalkulo por tiu programo, kaj ne de nulo. 1015 00:45:09,030 --> 00:45:13,620 Tiam mi nomas getint, sed mi stoki la respondo en aĝoj heligas i. 1016 00:45:13,620 --> 00:45:16,610 Kiu estas la i'th aĝo en la tabelo. 1017 00:45:16,610 --> 00:45:21,640 Do dum la lasta tempo ni trakti tiuj skatoloj kiel signoj por Zamyla nomo, 1018 00:45:21,640 --> 00:45:22,490 kaj aliaj. 1019 00:45:22,490 --> 00:45:26,530 Nun, tiuj skatoloj reprezenti 32 bitoj, aŭ kvar bitokoj 1020 00:45:26,530 --> 00:45:29,510 en kiu ni povas stoki kiel int, kiel int, kiel int. 1021 00:45:29,510 --> 00:45:31,890 Ĉiuj kiuj, denove, Estas la sama datumtipo. 1022 00:45:31,890 --> 00:45:33,890 >> Nun mi faras ion stultan, kiel tempo pasas, nur 1023 00:45:33,890 --> 00:45:35,510 pravigi skribi ĉi programo. 1024 00:45:35,510 --> 00:45:40,050 Kaj poste malsupren tie, mi denove persisti super la tabelo jene jaron ekde nun, 1025 00:45:40,050 --> 00:45:43,090 persono numero unu volo io jaroj. 1026 00:45:43,090 --> 00:45:45,010 Kaj elkompreni ke math-- Mi volas diri, tiu 1027 00:45:45,010 --> 00:45:49,260 ne estas tre komplika arithmetic-- Mi nur aldonas al ilia aĝo. 1028 00:45:49,260 --> 00:45:51,240 Nur por pruvi, denove, ĉi. 1029 00:45:51,240 --> 00:45:57,910 >> Tiel kiel mi, facile indekson en ŝnuro, s, do mi povas indekson en tabelo de aĝoj, 1030 00:45:57,910 --> 00:45:59,950 kiel kiu ekzistas. 1031 00:45:59,950 --> 00:46:03,340 Do kie estas tiu tuj estos prenante nin? 1032 00:46:03,340 --> 00:46:07,070 Do ni vidas, en definitiva, kelkon en la tempo venonta. 1033 00:46:07,070 --> 00:46:09,510 Unu, ĉiu ĉi tiu tempo, kiam skribi viajn proprajn programojn, 1034 00:46:09,510 --> 00:46:11,239 kiel Mario, avida, kredito. 1035 00:46:11,239 --> 00:46:13,780 Vi estis tajpi la nomon de la programo kaj koliziante Entajpu. 1036 00:46:13,780 --> 00:46:15,610 Kaj poste atingante la uzanto enigo. 1037 00:46:15,610 --> 00:46:18,137 >> Kun getString, getInt, getLongLong, aŭ simile. 1038 00:46:18,137 --> 00:46:20,720 Sed rezultu ke C apogoj iu nomita komandlinio 1039 00:46:20,720 --> 00:46:25,740 argumentoj, kiuj tuj ni reale preni je vortoj kiujn vi tajpas, 1040 00:46:25,740 --> 00:46:28,570 ĉe la palpebrumantaj prompto, post via programo nomo. 1041 00:46:28,570 --> 00:46:31,430 >> Do, en la tempo estonta vi povus tajpi iun kiel Cezaro, 1042 00:46:31,430 --> 00:46:34,950 aŭ ./caesar numero 13, poste. 1043 00:46:34,950 --> 00:46:36,070 Ni vidos kiel tio funkcias. 1044 00:46:36,070 --> 00:46:37,550 Ĉar efektive, en problemo starigis du, ni 1045 00:46:37,550 --> 00:46:39,383 prezentos vin al etaĵon 1046 00:46:39,383 --> 00:46:42,360 rememorado de Ralphie La defii fruaj de cartografía. 1047 00:46:42,360 --> 00:46:43,970 La arto de grimpadi informo. 1048 00:46:43,970 --> 00:46:46,660 Tio, fakte, estas tre memoras kion Ralphie faris. 1049 00:46:46,660 --> 00:46:51,380 >> Ĉi tio estas ekzemplo de ĉifrado algoritmon vokis ROT13, R-O-T 13. 1050 00:46:51,380 --> 00:46:54,910 Kiu simple signifas turni la literoj en la alfabeto 13 lokoj. 1051 00:46:54,910 --> 00:46:58,309 Kaj se vi faros tion, vi vidos nun kio estas, eble, familiara frazo. 1052 00:46:58,309 --> 00:47:01,100 Sed la vojo ni tuj uzos tiu, finfine, estas pli ĝenerale. 1053 00:47:01,100 --> 00:47:04,390 >> En P starigis du, en la eldono normo, vi implementar paro de ĉifroj, 1054 00:47:04,390 --> 00:47:06,720 nomata cezaro, oni nomas Vigenère. 1055 00:47:06,720 --> 00:47:10,090 Ambaux estas turna ĉifroj, ke iel vi 1056 00:47:10,090 --> 00:47:11,826 turni unu litero en malsaman literon. 1057 00:47:11,826 --> 00:47:12,950 Kaj Cezaro estas súper simpla. 1058 00:47:12,950 --> 00:47:16,220 Vi aldoni unu, oni aldonas 13 aŭ iun numeron ĝis 26. 1059 00:47:16,220 --> 00:47:19,570 Vigenère faras ke sur oni po literon bazo. 1060 00:47:19,570 --> 00:47:22,140 Do Vigenère, kiel vi vidos en la spec, estas pli sekura. 1061 00:47:22,140 --> 00:47:24,973 >> Sed ĉe la fino de la tago kion vi estos implementar kaj P starigis du, 1062 00:47:24,973 --> 00:47:29,050 estas tiu klavo kiu vi uzas ambaŭ por ĉifrado kaj malĉifro. 1063 00:47:29,050 --> 00:47:32,160 Aludante al la procezo de igi plata teksto, iuj originalan mesaĝon, 1064 00:47:32,160 --> 00:47:34,490 en Cypher teksto, kiu Estas io ĉifrita. 1065 00:47:34,490 --> 00:47:36,220 Kaj tiam decrypting denove. 1066 00:47:36,220 --> 00:47:38,119 >> En la hacker eldono, dume, vi estos 1067 00:47:38,119 --> 00:47:40,660 tasked kun io simila spirite, kie ni donos al vi 1068 00:47:40,660 --> 00:47:44,610 dosiero, de tipa Linukso aŭ Mac, aŭ Unikso komputilo nomita etsy 1069 00:47:44,610 --> 00:47:47,800 pasvorto, kiu enhavas tutaj faskon da uzantnomojn kaj pasvortojn. 1070 00:47:47,800 --> 00:47:50,932 Kaj tiuj pasvortoj havi ĉiuj estis ĉifrita aŭ hashed, 1071 00:47:50,932 --> 00:47:53,140 tiel diri, pli ĝuste kiel vi vidos en la spec. 1072 00:47:53,140 --> 00:47:57,090 >> Kaj la hacker eldono defios vi per zorgado enigaĵoj ŝatas ĉi, 1073 00:47:57,090 --> 00:47:58,800 kaj krakas la pasvorton. 1074 00:47:58,800 --> 00:48:02,590 Tio estas, elŝeligi kion la homa pasvorton efektive estis. 1075 00:48:02,590 --> 00:48:05,570 Ĉar ja pasvortoj ĝenerale ne stokas en la klara, 1076 00:48:05,570 --> 00:48:08,260 kaj ĝenerale pasvortoj devus esti malfacile diveni. 1077 00:48:08,260 --> 00:48:09,610 Tio ne estas ofte la kazo. 1078 00:48:09,610 --> 00:48:12,110 >> Kaj kion mi pensis ke ni faras estas konkludi kun paro minutoj 1079 00:48:12,110 --> 00:48:15,160 ekrigardi aparte malriĉa elekto de pasvortoj 1080 00:48:15,160 --> 00:48:17,260 de filmo vi povus memori kovradis. 1081 00:48:17,260 --> 00:48:18,915 Kaj se ne, vi devus lui. 1082 00:48:18,915 --> 00:48:20,070 >> [VIDEO Playback] 1083 00:48:20,070 --> 00:48:22,320 >> -Helmet, Vi Fiend, kio okazas? 1084 00:48:22,320 --> 00:48:24,240 Kion vi faras por mia filino? 1085 00:48:24,240 --> 00:48:28,010 >> -Permit Min enkonduki la brila juna mola kirurgo, 1086 00:48:28,010 --> 00:48:30,010 Doktoro Phillip Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 La plej granda nazo laboron viro en la tutan universon kaj Beverly Hills. 1088 00:48:35,020 --> 00:48:36,140 >> -Your Moŝto. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose Laboron? 1090 00:48:36,820 --> 00:48:37,700 Mi ne komprenas. 1091 00:48:37,700 --> 00:48:39,070 Ŝi jam havis nazon laboron. 1092 00:48:39,070 --> 00:48:40,800 Ĝi estis ŝia dolĉa 16 ĉeestis. 1093 00:48:40,800 --> 00:48:42,590 >> -No, Tio ne estas kion vi pensas. 1094 00:48:42,590 --> 00:48:44,490 Ĝi estas multe, multe pli malbone. 1095 00:48:44,490 --> 00:48:48,160 Se vi ne donas al mi la kombino al la aero ŝildo, 1096 00:48:48,160 --> 00:48:52,748 kuraciston Schlotkin donos vian filino apogi sian malnovan nazo. 1097 00:48:52,748 --> 00:48:53,748 - [GASPS] Nooooooooooooo. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 Kie vi akiris tion? 1100 00:48:59,652 --> 00:49:00,640 >> -All Pravas. 1101 00:49:00,640 --> 00:49:02,506 Mi rakontos, mi diros. 1102 00:49:02,506 --> 00:49:03,498 >> -No, Paĉjo, ne. 1103 00:49:03,498 --> 00:49:04,490 Vi ne devas. 1104 00:49:04,490 --> 00:49:06,090 >> -You're Dekstra kara. 1105 00:49:06,090 --> 00:49:07,390 Vi mankos via nova nazo. 1106 00:49:07,390 --> 00:49:10,990 Sed mi ne diros al ili la kombinaĵo negrave kio. 1107 00:49:10,990 --> 00:49:12,450 >> -Very Bone. 1108 00:49:12,450 --> 00:49:14,830 Doktoro Schlotkin, fari vian plej malbonan. 1109 00:49:14,830 --> 00:49:15,744 >> -My Plezuro. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> -No! 1112 00:49:20,800 --> 00:49:22,780 Atendu, atendu. 1113 00:49:22,780 --> 00:49:24,000 Mi rakontos. 1114 00:49:24,000 --> 00:49:25,830 Mi rakontos. 1115 00:49:25,830 --> 00:49:28,270 >> -Mi Sciis laborus. 1116 00:49:28,270 --> 00:49:31,390 Bone, donu ĝin al mi. 1117 00:49:31,390 --> 00:49:36,220 >> -la Kombino estas unu. 1118 00:49:36,220 --> 00:49:36,740 >> -One. 1119 00:49:36,740 --> 00:49:37,473 >> -One. 1120 00:49:37,473 --> 00:49:37,972 -Two. 1121 00:49:37,972 --> 00:49:38,471 -Two. 1122 00:49:38,471 --> 00:49:39,800 -Two. 1123 00:49:39,800 --> 00:49:40,300 -Three. 1124 00:49:40,300 --> 00:49:40,800 -Three. 1125 00:49:40,800 --> 00:49:41,800 -Three. 1126 00:49:41,800 --> 00:49:42,300 -Four. 1127 00:49:42,300 --> 00:49:42,800 -Four. 1128 00:49:42,800 --> 00:49:44,707 -Four. 1129 00:49:44,707 --> 00:49:45,521 -Five. 1130 00:49:45,521 --> 00:49:46,430 -Five. 1131 00:49:46,430 --> 00:49:47,930 -Five. 1132 00:49:47,930 --> 00:49:53,480 -So La kombino estas unu, du, tri, kvar, kvin. 1133 00:49:53,480 --> 00:49:56,140 Tio estas la stupidest kombinaĵo Mi iam aŭdis en mia vivo. 1134 00:49:56,140 --> 00:49:58,640 Tio estas la speco de aĵo estas idioto havus sur lian pakaĵon. 1135 00:49:58,640 --> 00:50:00,000 >> -Thank Vin, vian majesteco. 1136 00:50:00,000 --> 00:50:01,340 >> [Fora klakoj] 1137 00:50:01,340 --> 00:50:02,450 >> -Kio Vi faris? 1138 00:50:02,450 --> 00:50:03,800 >> -Mi Elŝaltis la muro. 1139 00:50:03,800 --> 00:50:05,010 >> -No, Vi ne faris, vi elŝaltis la tuta filmo. 1140 00:50:05,010 --> 00:50:06,220 >> -Mi Must've premis malĝustan butonon. 1141 00:50:06,220 --> 00:50:07,064 >> -Well, Remetis ĝin sur! 1142 00:50:07,064 --> 00:50:07,910 Metu la filmon denove sur! 1143 00:50:07,910 --> 00:50:08,300 >> Jes, sinjoro! 1144 00:50:08,300 --> 00:50:08,799 Jes, sinjoro. 1145 00:50:08,799 --> 00:50:09,660 -Let Iru, Arnold. 1146 00:50:09,660 --> 00:50:10,450 Venu, Gretchen. 1147 00:50:10,450 --> 00:50:12,533 Kompreneble vi scias Mi timige devas fakturojn vi pro tio. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 -Well? 1150 00:50:17,220 --> 00:50:17,802 Ĉu ĝi funkcias? 1151 00:50:17,802 --> 00:50:18,510 Kie estas la reĝo? 1152 00:50:18,510 --> 00:50:20,218 >> -ĝi Laboris, sinjoro, ni havi la ĉifron. 1153 00:50:20,218 --> 00:50:20,740 -Great. 1154 00:50:20,740 --> 00:50:24,810 Nun ni povas preni ĉiun lastan spiron da freŝa aero de planedo Druidia. 1155 00:50:24,810 --> 00:50:25,890 Kio estas la kombino? 1156 00:50:25,890 --> 00:50:28,155 >> -One, Du, tri, kvar, kvin. 1157 00:50:28,155 --> 00:50:29,890 >> -One, Du, tri, kvar, kvin? 1158 00:50:29,890 --> 00:50:30,390 -Jes. 1159 00:50:30,390 --> 00:50:31,110 -Tio Nekredebla. 1160 00:50:31,110 --> 00:50:34,550 Mi havas la saman kombinaĵo sur mia pakaĵo. 1161 00:50:34,550 --> 00:50:37,160 Pretigu Spaceball 1 por tuja foriro. 1162 00:50:37,160 --> 00:50:38,160 >> Jes, sinjoro. 1163 00:50:38,160 --> 00:50:40,745 >> -Kaj Ŝanĝi kombinaĵo sur mia pakaĵo. 1164 00:50:40,745 --> 00:50:41,578 [Pordon fermo SOUND] 1165 00:50:41,578 --> 00:50:42,064 [Clink de pordoj batante kasko] 1166 00:50:42,064 --> 00:50:42,550 -Ahh. 1167 00:50:42,550 --> 00:50:43,383 [FINO VIDEO Playback] 1168 00:50:43,383 --> 00:50:46,700 DAVID J. Malan: Estas tio por CS50, ni vidos vin proksima semajno. 1169 00:50:46,700 --> 00:50:49,883 Rakontanto: Kaj nun, Deep Pensoj per Daven Farnham. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> DAVEN Farnham: Kodigo en C estas tiel malfacila ol Scratch. 1172 00:50:55,860 --> 00:50:57,320 printf, Scratch estis mensogo. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [Ridado SOUNDBITE] 1175 00:51:01,430 --> 00:51:02,486