1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Sekcio 4] [Less Komfortaj] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Universitato Harvard] 3 00:00:04,000 --> 00:00:07,000 [Jen CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:10,000 >> Bone, bonvenigas al sekcio. 5 00:00:10,000 --> 00:00:13,000 En ĉi tiu semajno sekcio ni tuj faros kelkajn aferojn. 6 00:00:13,000 --> 00:00:17,000 Ni iras al unua recap Problemo Serio 2, 7 00:00:17,000 --> 00:00:20,000 kiu estas la cezaro kaj Vigenère problemo aro. 8 00:00:20,000 --> 00:00:23,000 Kaj poste ni iras al plonĝi en Quiz 0 review 9 00:00:23,000 --> 00:00:26,000 kaj pasigi iom da tempo recapping kion ni jam parolis pri 10 00:00:26,000 --> 00:00:30,000 en ĉiu de la prelegoj ĝis nun, kaj ni ankaŭ faros kelkajn problemojn 11 00:00:30,000 --> 00:00:32,000 de antaŭa jaro Quizzes. 12 00:00:32,000 --> 00:00:36,000 Tiel vi infanoj havas bonan vojon por prepari por tio. 13 00:00:36,000 --> 00:00:40,000 >> Por komenci, mi booted supren paron de bonaj solvoj 14 00:00:40,000 --> 00:00:45,000 por la antaŭa problemo aro, Problemo Ŝanĝu 2, en tiun spacon. 15 00:00:45,000 --> 00:00:48,000 Se vi infanoj ĉiuj batis tiun ligilon 16 00:00:48,000 --> 00:00:53,000 kaj se vi klakas mian nomon kaj klaku al mia unua revizio 17 00:00:53,000 --> 00:00:56,000 vi vidos caesar.c, kiu estas ĝuste kion mi rigardis. 18 00:00:56,000 --> 00:01:00,000 Ni parolu pri tiu vere rapide. 19 00:01:00,000 --> 00:01:02,000 Tiu estas nur specimeno solvo. 20 00:01:02,000 --> 00:01:05,000 Tiu ne estas nepre la perfekta solvo. 21 00:01:05,000 --> 00:01:08,000 Estas multaj malsamaj manieroj por skribi ĉi, 22 00:01:08,000 --> 00:01:10,000 sed estas kelkaj aferoj kiujn mi volis reliefigi 23 00:01:10,000 --> 00:01:13,000 kiun mi vidis, kiel estis grading, komunaj eraroj kiujn mi kredas 24 00:01:13,000 --> 00:01:18,000 tiu solvo faras tre bonan laboron de uzado. 25 00:01:18,000 --> 00:01:22,000 >> La unua havas ian header komento ĉe la supro. 26 00:01:22,000 --> 00:01:25,000 Sur linioj 1 ĝis 7 vi vidas la detalojn, 27 00:01:25,000 --> 00:01:28,000 kio precize tiu programo faras. 28 00:01:28,000 --> 00:01:32,000 Bona normala praktiko, kiam vi skribas C kodo 29 00:01:32,000 --> 00:01:35,000 sendepende se via programo estas enhavita en sola dosiero aŭ 30 00:01:35,000 --> 00:01:38,000 ĉu ĝi estas dividita sur multnombraj arkivoj estas havi ian 31 00:01:38,000 --> 00:01:40,000 orientante komento ĉe la supro. 32 00:01:40,000 --> 00:01:43,000 Tio estas ankaŭ por homoj, kiuj eliru kaj skribi kodon en la reala mondo. 33 00:01:43,000 --> 00:01:47,000 Tie estas kie ili metos informo pri kopirajto. 34 00:01:47,000 --> 00:01:50,000 Jen la plej # inkluzivas. 35 00:01:50,000 --> 00:01:55,000 On line 16 tie estas tio # difini, kion ni revenos al en nur iom. 36 00:01:55,000 --> 00:01:59,000 Kaj tiam tuj la funkcio komencas, unufoje ĉefa skuigxas, 37 00:01:59,000 --> 00:02:03,000 ĉar tiu programo estis ĉiuj enhavita en sola funkcio 38 00:02:03,000 --> 00:02:09,000 la unua afero kiu okazas-kaj ĉi tiu estas tre idiomáticos kaj tipaj de C-programo 39 00:02:09,000 --> 00:02:14,000 kiu portas en komanda linio argumentojn-is ke tuj kontrolas 40 00:02:14,000 --> 00:02:18,000 >> por la argumento grafo, argc. 41 00:02:18,000 --> 00:02:24,000 Ĝuste tie oni vidas ke tiu programo atendas 2 argumentoj ĝuste. 42 00:02:24,000 --> 00:02:27,000 Memoru ke estas tiu unua argumento kiu estas la speciala 43 00:02:27,000 --> 00:02:29,000 ke ĉiam la nomo de la programo ke tio esti kuri, 44 00:02:29,000 --> 00:02:31,000 la nomo de la plenumebla dosiero. 45 00:02:31,000 --> 00:02:36,000 Kaj tiel kion ĉi faras estas tio malhelpas al la uzanto de kurante la programo 46 00:02:36,000 --> 00:02:42,000 kun pli aŭ malpli argumentoj. 47 00:02:42,000 --> 00:02:44,000 La kialo ni volas kontroli por ĉi tuj estas ĉar 48 00:02:44,000 --> 00:02:52,000 ni ne povas vere aliro ĉi argv tabelo dekstre tie fidinde 49 00:02:52,000 --> 00:02:55,000 ĝis ni kontrolis por vidi kiel granda ĝi estas. 50 00:02:55,000 --> 00:02:58,000 >> Unu el la komunaj eraroj mi vidis, estis homo tuj iros 51 00:02:58,000 --> 00:03:01,000 kaj kapti argv [1]. 52 00:03:01,000 --> 00:03:06,000 Ili volas akapari la ŝlosilo argumento el la tabelo kaj do la a al i kontroli sur ĝi, 53 00:03:06,000 --> 00:03:11,000 kaj poste ili volas fari la teston por argc tiel kiel la sekvanta provo, 54 00:03:11,000 --> 00:03:16,000 ĉu la unua argumento estis ja entjero samtempe, 55 00:03:16,000 --> 00:03:20,000 kaj tio ne funkcias ĉar en la kazo, ke ne ekzistas argumentoj provizitaj 56 00:03:20,000 --> 00:03:26,000 vi estos kaptante argumento kiu ne estas tie aŭ provi kapti unu kiu ne estas tie. 57 00:03:26,000 --> 00:03:29,000 >> La alia granda afero, kiun vi devas rimarki ke estas 58 00:03:29,000 --> 00:03:32,000 vi ĉiam volas presi ia helpema erarmesaĝon 59 00:03:32,000 --> 00:03:34,000 al la uzanto por orienti ilin. 60 00:03:34,000 --> 00:03:37,000 Mi certas ke vi havas ĉiujn run programoj kie subite ĝi kraŝas, 61 00:03:37,000 --> 00:03:41,000 kaj vi ricevos tiun ridindan iom dialogon kiu Popoj supren kaj diras 62 00:03:41,000 --> 00:03:44,000 io terure kamufla kaj eble donas eraron kodo aŭ io simila 63 00:03:44,000 --> 00:03:47,000 ke ne havas senson. 64 00:03:47,000 --> 00:03:50,000 Tie estas kie vi vere volas havigi ion helpema 65 00:03:50,000 --> 00:03:54,000 kaj celis al la uzanto por ke kiam ili kuras tio iri "Ho," vizaĝo palmo. 66 00:03:54,000 --> 00:03:58,000 "Mi scias precize kion fari. Mi scias kiel ripari tion." 67 00:03:58,000 --> 00:04:01,000 >> Se vi ne presi mesaĝon, tiam vi finos reale 68 00:04:01,000 --> 00:04:04,000 lasante al la uzanto por iri ekzameni vian fontokodon 69 00:04:04,000 --> 00:04:07,000 elŝeligi kio misfunkciis. 70 00:04:07,000 --> 00:04:11,000 Ankaŭ estas iuj fojoj ke vi uzas malsaman eraro kodoj. 71 00:04:11,000 --> 00:04:14,000 Ĉi tie ni nur uzis unu diri tie estis eraro, 72 00:04:14,000 --> 00:04:16,000 tie estis eraro, estis eraro. 73 00:04:16,000 --> 00:04:20,000 Bigger programoj, ofte programojn kiuj estas nomataj per aliaj programoj, 74 00:04:20,000 --> 00:04:25,000 revenos ia speciala eraro kodoj en malsamaj scenaroj 75 00:04:25,000 --> 00:04:28,000 al programmatically komuniki kion vi farus alie 76 00:04:28,000 --> 00:04:32,000 nur uzi belan anglan mesaĝon por. 77 00:04:32,000 --> 00:04:35,000 Cool. 78 00:04:35,000 --> 00:04:37,000 Kiel ni laboras sube, vi povas vidi, ni treni la ŝlosilo eksteren. 79 00:04:37,000 --> 00:04:40,000 Ni testi por vidi se la ŝlosilo persvadas. 80 00:04:40,000 --> 00:04:42,000 Ni preni mesaĝon de la uzanto. 81 00:04:42,000 --> 00:04:46,000 La kialo ni faras en ĉi tiu fari dum buklo-kaj ĉi tiu estas iu kiu nin kovros 82 00:04:46,000 --> 00:04:50,000 en iom-sed ĝi rezultas ke se vi tajpas kontrolo D 83 00:04:50,000 --> 00:04:54,000 kiam vi ricevas tio GetString prompto en la fina 84 00:04:54,000 --> 00:04:59,000 kion tio vere faras estas ĝi sendas specialan karakteron 85 00:04:59,000 --> 00:05:01,000 al la programo. 86 00:05:01,000 --> 00:05:05,000 Ĝi estas nomata la ELF aŭ la fino de dosiero karaktero. 87 00:05:05,000 --> 00:05:08,000 Kaj en tiu kazo, nia mesaĝo string estos nula, 88 00:05:08,000 --> 00:05:14,000 do tio ne estis io kontrolata pri la problemo starigis sin. 89 00:05:14,000 --> 00:05:17,000 >> Sed kiel ni iru, nun ke ni komencis paroli pri punteros 90 00:05:17,000 --> 00:05:21,000 kaj dinamika memoro atribuo sur la havaĵon, 91 00:05:21,000 --> 00:05:25,000 kontrolanta por nula krom se vi havas funkcion kiu povus 92 00:05:25,000 --> 00:05:30,000 revenu nula kiel valoro estas iu kiu vi volas ricevi en la kutimon de faras. 93 00:05:30,000 --> 00:05:33,000 Ĉi tie estas unuavice por ilustrado. 94 00:05:33,000 --> 00:05:36,000 Sed kiam vi faras vidi GetString en la estonteco, 95 00:05:36,000 --> 00:05:41,000 tial de Problemo Ŝanĝu 4 sur, vi volas konservi tion en menso. 96 00:05:41,000 --> 00:05:44,000 Denove, ĉi tio ne estas temo por Problemo Ŝanĝu 3 ĉu ĉar ni ne kovris ankoraŭ. 97 00:05:44,000 --> 00:05:53,000 Fine, ni atingos ĉi parto kie ni atingos la ĉefa ĉifrado buklo, 98 00:05:53,000 --> 00:05:57,000 kaj estas kelkaj aliaj aferoj okazas ĉi tie. 99 00:05:57,000 --> 00:06:02,000 Unue, ni persisti super la tuta mesaĝo string mem. 100 00:06:02,000 --> 00:06:07,000 Jen ni faris la strlen alvoko en la kondiĉo, 101 00:06:07,000 --> 00:06:12,000 kiuj kelkaj vi atentigis ne estas granda vojo por iri. 102 00:06:12,000 --> 00:06:15,000 Ĝi rezultas en ĉi tiu kazo ĝi estas ankaŭ ne granda, 103 00:06:15,000 --> 00:06:20,000 parte ĉar ni modifi la enhavon de la mesaĝo mem 104 00:06:20,000 --> 00:06:27,000 interne de la por ciklo, do se ni havas mesaĝon tio 10 signojn longa, 105 00:06:27,000 --> 00:06:32,000 la unua fojo ni starti ke por buklo strlen revenos kio? 106 00:06:32,000 --> 00:06:35,000 10. 107 00:06:35,000 --> 00:06:40,000 >> Sed se ni tiam modifi mesaĝo, ke ni modifi lian 5th karaktero, 108 00:06:40,000 --> 00:06:46,000 kaj ni ĵetu en \ 0 karaktero en la 5a pozicio, 109 00:06:46,000 --> 00:06:49,000 sur posta ripeto strlen (mesaĝon) ne revenos kio faris 110 00:06:49,000 --> 00:06:52,000 la tre unua fojo ni ripetis, 111 00:06:52,000 --> 00:06:56,000 sed ĝi anstataŭ reveni 5 ĉar ni jxetis en tiu nula finilo, 112 00:06:56,000 --> 00:06:59,000 kaj la kordoj de longo estas difinita 113 00:06:59,000 --> 00:07:03,000 por la pozicio de tiu \ 0. 114 00:07:03,000 --> 00:07:09,000 En ĉi tiu kazo, ĉi tiu estas granda vojo por iri ĉar ni modifante ĝin en loko. 115 00:07:09,000 --> 00:07:13,000 Sed vi rimarkos ke tio estas fakte surprize simple kodi 116 00:07:13,000 --> 00:07:16,000 se vi povas ricevi la math ĝentila. 117 00:07:16,000 --> 00:07:19,000 Ĉiuj ke tio postulas estas por kontroli ĉu la letero, kiun vi rigardas 118 00:07:19,000 --> 00:07:21,000 estas majuskla aŭ minuskla. 119 00:07:21,000 --> 00:07:24,000 >> La kialo ni nur devas kontroli por tio kaj ni ne devas kontroli por 120 00:07:24,000 --> 00:07:27,000 la estas alfa kazo estas ĉar 121 00:07:27,000 --> 00:07:30,000 se karaktero estas majuskla aŭ se estas minuskla 122 00:07:30,000 --> 00:07:33,000 tiam ĝi estas definitive alfabeta karaktero, 123 00:07:33,000 --> 00:07:38,000 ĉar ni ne havas majusklajn kaj minusklajn ciferoj. 124 00:07:38,000 --> 00:07:41,000 La alia afero ni do-kaj ĉi tiu estas iom malfacila- 125 00:07:41,000 --> 00:07:45,000 estas ni modifis la normo Cezaro kodita formulo 126 00:07:45,000 --> 00:07:49,000 ke ni donis en la problemo aro specifo. 127 00:07:49,000 --> 00:07:52,000 Kio estas malsama tie estas ke ni subtrahita 128 00:07:52,000 --> 00:07:58,000 en la majuskla kazo ĉefurbo A, kaj tiam ni aldonis ĉefurbo A 129 00:07:58,000 --> 00:08:02,000 apogi en la fino. 130 00:08:02,000 --> 00:08:05,000 >> Mi konas kelkajn el vi faris tion en via kodo. 131 00:08:05,000 --> 00:08:09,000 Ĉu iu el vi faras tion en viaj sendoj? 132 00:08:09,000 --> 00:08:13,000 Vi tion faris. Ĉu vi povas klarigi kion tio faras, Sahb? 133 00:08:13,000 --> 00:08:18,000 Per subtrahanta ĝin, ĉar vi faris mod tuj post ĝi, 134 00:08:18,000 --> 00:08:21,000 vi devas preni ĝin, por ke maniero vi ricevas [tusado] pozicio. 135 00:08:21,000 --> 00:08:25,000 Kaj poste aldonante ĝin poste vi kopiis super kiu vi volis. 136 00:08:25,000 --> 00:08:27,000 Yeah, precize. 137 00:08:27,000 --> 00:08:32,000 Kio Sahb diris, ke kiam ni volas aldoni 138 00:08:32,000 --> 00:08:36,000 nian mesaĝon kaj niaj ŝlosilaj kune 139 00:08:36,000 --> 00:08:42,000 kaj tiam mod ke, mod ke per NUM_LETTERS, 140 00:08:42,000 --> 00:08:50,000 se ni ne grimpi nian mesaĝon en la taŭgan 0 al 25 gamo unua, 141 00:08:50,000 --> 00:08:54,000 tiam ni povus fini atingi vere bizara nombro 142 00:08:54,000 --> 00:08:59,000 ĉar la valoroj kiujn ni rigardas kiam ni rigardas mesaĝon [i], 143 00:08:59,000 --> 00:09:03,000 kiam ni rigardas la th,-a karaktero de nia ebenaĵo-teksto mesaĝo, 144 00:09:03,000 --> 00:09:08,000 estas valoro en iu parto de ĉi tiu 65 al 122 gamo 145 00:09:08,000 --> 00:09:13,000 surbaze de la ASCII valoroj por majuskla A tra minuskla z. 146 00:09:13,000 --> 00:09:18,000 Kaj tiel, kiam ni mod ĝin por 26 aŭ per NUM_LETTERS, 147 00:09:18,000 --> 00:09:23,000 ĉar tio estis nia # difini supre dekstre supre tie, 148 00:09:23,000 --> 00:09:28,000 ke tuj donu al ni valoro kiu estas en la 0 al 25 gamo, 149 00:09:28,000 --> 00:09:30,000 kaj ni bezonas manieron tiam grimpi ke back up 150 00:09:30,000 --> 00:09:32,000 kaj akiri ĝin en la taŭga ASCII gamo. 151 00:09:32,000 --> 00:09:36,000 La plej facila maniero por fari tion estas nur grimpi ĉio malsupren 152 00:09:36,000 --> 00:09:39,000 en la 0 al 25 gamo por komenci, 153 00:09:39,000 --> 00:09:43,000 kaj poste ŝanĝi ĉio reen ĉe la fino. 154 00:09:43,000 --> 00:09:46,000 >> Alia komuna eraro, kiun mi vidis homojn kolizii estas ke 155 00:09:46,000 --> 00:09:50,000 se vi ne vere faras ĉi skalo tuj 156 00:09:50,000 --> 00:09:53,000 kaj vi aldoni mesaĝon kaj ŝlosilo kune kaj vi aldoni ilin, diru, 157 00:09:53,000 --> 00:09:58,000 enen char variablo, la problemo kun tiu 158 00:09:58,000 --> 00:10:01,000 estas ekde mesaĝo [i] estas relative granda nombro por komenci kun- 159 00:10:01,000 --> 00:10:05,000 memori estas almenaŭ 65 se temas pri majuskla karaktero- 160 00:10:05,000 --> 00:10:09,000 se vi havas grandan ŝlosilon, diru ion kiel 100, 161 00:10:09,000 --> 00:10:13,000 kaj vi aldoni tiujn 2 amase en subskribis char vi tuj ricevas superflui. 162 00:10:13,000 --> 00:10:17,000 Vi ricevos valoro kiu estas pli granda ol 127, 163 00:10:17,000 --> 00:10:22,000 kiu estas la plej granda valoro kiun char variablo povas teni. 164 00:10:22,000 --> 00:10:26,000 Denove, tio estas kial vi volas volas fari tiaj aferoj por komenci. 165 00:10:26,000 --> 00:10:29,000 Kelkaj homoj havas ĉirkaŭ tiu kazo por farante se pli kaj provi 166 00:10:29,000 --> 00:10:33,000 por vidi, ĉu ĝi estus superflui antaŭ fari tion, 167 00:10:33,000 --> 00:10:36,000 sed tiamaniere akiras ĉirkaŭ tiu. 168 00:10:36,000 --> 00:10:40,000 Kaj poste en ĉi tiu solvo ni presita el la tuta ĉeno ĉe la fino. 169 00:10:40,000 --> 00:10:45,000 Aliaj personoj presita ekster karakteron samtempe. Ambaŭ estas timinda. 170 00:10:45,000 --> 00:10:51,000 Je ĉi tiu punkto, do you guys havas demandojn, komentojn pri tiu? 171 00:10:51,000 --> 00:10:56,000 Aĵoj vi volas, tion vi ne ŝatas? 172 00:10:56,000 --> 00:10:58,000 >> Mi havis demandon. 173 00:10:58,000 --> 00:11:01,000 Eble mi maltrafis ĝin dum via klarigo, sed kiel faras ĉi tiu programo 174 00:11:01,000 --> 00:11:07,000 salti la spacojn por konekti la ŝlosilo al la longo de la teksto? 175 00:11:07,000 --> 00:11:10,000 Tiu estas nur Cezaro kodita. >> Ho, pardonu, jes. 176 00:11:10,000 --> 00:11:13,000 Yeah, ni vidos tion. 177 00:11:13,000 --> 00:11:16,000 En la cezaro kodita ni akiris ĉirkaŭ ke pro 178 00:11:16,000 --> 00:11:18,000 ni nur spegulita gravuloj. 179 00:11:18,000 --> 00:11:27,000 Ni nur turnis ilin se ili estus majuskle aŭ minuskle. 180 00:11:27,000 --> 00:11:32,000 You guys sentante sufiĉe bona pri tio? 181 00:11:32,000 --> 00:11:34,000 Bonvolu kopii ĉi domo, prenu ĝin, 182 00:11:34,000 --> 00:11:37,000 kompari ĝin al kio vi infanoj skribis. 183 00:11:37,000 --> 00:11:42,000 Definitive bonvolu sendi demandojn pri tio tro. 184 00:11:42,000 --> 00:11:46,000 Kaj ankaux rimarkas ke la celo tie kun via problemo aroj 185 00:11:46,000 --> 00:11:50,000 ne estas akiri you guys verki perfektan kodo por via problemo aroj. 186 00:11:50,000 --> 00:11:57,000 Ĝi estas lerni sperton. Yeah. 187 00:11:57,000 --> 00:12:01,000 >> Reen al la do dum ciklo, se ĝi egalas nula, 188 00:12:01,000 --> 00:12:06,000 do nula nur signifas nenion, ili simple batis eniri? 189 00:12:06,000 --> 00:12:12,000 Nula estas speciala puntero valoro, 190 00:12:12,000 --> 00:12:17,000 kaj ni uzas nula kiam ni volas diri 191 00:12:17,000 --> 00:12:23,000 ni havas puntero variablo kiu estas indikante nenion. 192 00:12:23,000 --> 00:12:28,000 Kaj tiel tipe signifas ke ĉi tiu variablo, ĉi tiu mesaĝo variablo 193 00:12:28,000 --> 00:12:35,000 estas malplena, kaj tie, ĉar ni uzas la CS50 speciala kordo tipo, 194 00:12:35,000 --> 00:12:37,000 kio estas la CS50 kordoj tipo? 195 00:12:37,000 --> 00:12:42,000 Ĉu vi vidis kio estas kiam David tiris malantaŭen la kapuĉo en prelego? 196 00:12:42,000 --> 00:12:44,000 Estas funky-ĝi estas puntero, ĉu ne? 197 00:12:44,000 --> 00:12:48,000 Konsentite, yeah. >> Estas char *. 198 00:12:48,000 --> 00:12:52,000 Kaj tiel efektive ni povus anstataŭigi tiun 199 00:12:52,000 --> 00:12:56,000 ĉi tie kun char * mesaĝo, 200 00:12:56,000 --> 00:13:04,000 kaj do la GetString funkcio, se ĝi ne sukcese akiri kordoj de la uzanto, 201 00:13:04,000 --> 00:13:08,000 ĝi ne povas analizi ĉeno, kaj la kazo en kiu ne povas analizi ĉeno 202 00:13:08,000 --> 00:13:11,000 estas se la uzanto tajpas la fino de dosiero karaktero, la kontrolo D, 203 00:13:11,000 --> 00:13:17,000 kio ne estas io, kion vi tipe fari, sed se tio okazas 204 00:13:17,000 --> 00:13:20,000 tiam la funkcio estos redoni ĉi nula valoro kiel maniero de diri 205 00:13:20,000 --> 00:13:23,000 "Hej, mi ne havis linio." 206 00:13:23,000 --> 00:13:27,000 Kio okazus, se ni ne metas mesaĝo = nula, 207 00:13:27,000 --> 00:13:30,000 kiu estas iu kiun ni ne faras ankoraŭ? 208 00:13:30,000 --> 00:13:32,000 Kial tio estus problemo ĉi tie? 209 00:13:32,000 --> 00:13:38,000 Ĉar mi scias, ke ni parolis iomete en prelego pri memoro likas. 210 00:13:38,000 --> 00:13:42,000 Yeah, ni faru tion, kaj ni vidu kio okazas. 211 00:13:42,000 --> 00:13:44,000 >> Bazilo demando estis kio okazas se ni ne vere havas 212 00:13:44,000 --> 00:13:48,000 tiun mesaĝon = nula testo? 213 00:13:48,000 --> 00:13:51,000 Ni rulumu supren al la supro. 214 00:13:51,000 --> 00:13:53,000 You guys povas diri ĉi tion. 215 00:13:53,000 --> 00:13:55,000 Fakte, mi savos ĝin en revizio. 216 00:13:55,000 --> 00:13:58,000 Ĉi tiu estos redaktoj 3. 217 00:13:58,000 --> 00:14:02,000 Kion vi devos fari por kuri ĉi programo estas vi devos klaki ĉi gear ikono tien, 218 00:14:02,000 --> 00:14:04,000 kaj vi devos aldoni argumento al ĝi. 219 00:14:04,000 --> 00:14:10,000 Vi devos doni al ĝi la ŝlosilon argumento ĉar ni volas pasi en komanda linio argumento. 220 00:14:10,000 --> 00:14:13,000 Jen mi ĝin donacos la numero 3. Mi ŝatas 3. 221 00:14:13,000 --> 00:14:19,000 Nun zoom reen ekster, kurante la programo. 222 00:14:19,000 --> 00:14:24,000 Oni kuras, kompili, konstruante. 223 00:14:24,000 --> 00:14:27,000 Ĉi tie ni iru. Oni atendas esti instigis. 224 00:14:27,000 --> 00:14:33,000 Se mi tajpas en iu kiel saluton-el kie kiuj iras? 225 00:14:33,000 --> 00:14:38,000 Ho, mia programo prenis tro longa kuri. Mi estis jawing por tro longa. 226 00:14:38,000 --> 00:14:40,000 Tie iras. 227 00:14:40,000 --> 00:14:43,000 Nun mi tajpas en saluton. 228 00:14:43,000 --> 00:14:46,000 Ni vidas ke encrypts taŭge. 229 00:14:46,000 --> 00:14:52,000 Nun kio okazas se ni faru prompto GetString reveni nula? 230 00:14:52,000 --> 00:14:57,000 Memoru, mi diris, ke ni faris tion premante kontrolo D samtempe. 231 00:14:57,000 --> 00:14:59,000 Mi rulumu supren tie. Ni kuros ĝin denove. 232 00:14:59,000 --> 00:15:01,000 Konstruaĵo. Tie iras. 233 00:15:01,000 --> 00:15:04,000 Nun kiam mi batis kontrolo D 234 00:15:04,000 --> 00:15:12,000 Mi akiris tiun linion kiu diras opt/sandbox50/bin/run.sh, Segmentación kulpo. 235 00:15:12,000 --> 00:15:15,000 Ĉu vi infanoj vidis, ke antaŭ? 236 00:15:15,000 --> 00:15:17,000 >> [Studenta] Kial estas neniu >> Pardonu? 237 00:15:17,000 --> 00:15:20,000 [Studenta] Kial mankas kerno dump en ĉi tiu kazo? 238 00:15:20,000 --> 00:15:26,000 La kerno dump estas-la demando estas kial neniu kerno dump tie? 239 00:15:26,000 --> 00:15:29,000 La demando estas, ke povas esti, sed la kerno dump estas dosiero 240 00:15:29,000 --> 00:15:31,000 ke gets stokita en la malmola disko. 241 00:15:31,000 --> 00:15:34,000 En ĉi tiu kazo ni malebligita kerno vertederos 242 00:15:34,000 --> 00:15:37,000 en la sinsekvo servilo por ke ni ne havas popolon seg faulting 243 00:15:37,000 --> 00:15:40,000 kaj konstruante tunoj de kerno renversas. 244 00:15:40,000 --> 00:15:46,000 Sed vi povas ricevi unu. 245 00:15:46,000 --> 00:15:48,000 Kerno vertederos estas la speco de afero, kiun vi povas ofte malebligi, 246 00:15:48,000 --> 00:15:52,000 kaj kelkfoje vi faru. 247 00:15:52,000 --> 00:15:55,000 La segmentación kulpo, por respondi vian demandon, Bazilo, 248 00:15:55,000 --> 00:16:00,000 diras, ke ni provis aliri puntero 249 00:16:00,000 --> 00:16:05,000 kiu ne estis metita al punkto al nenio. 250 00:16:05,000 --> 00:16:09,000 Memoru Binky en la video kiam Binky provas 251 00:16:09,000 --> 00:16:12,000 iri aliri puntero ke ne estas indikante ion? 252 00:16:12,000 --> 00:16:16,000 En ĉi tiu kazo mi supozas teknike la puntero estas montras ion. 253 00:16:16,000 --> 00:16:20,000 Ĝi estas indikante nula, kiu estas teknike 0, 254 00:16:20,000 --> 00:16:25,000 sed kiu estas difinita al esti en segmento kiu ne estas atingebla 255 00:16:25,000 --> 00:16:28,000 per via programo, tiel vi ricevas segmentación kulpo 256 00:16:28,000 --> 00:16:31,000 ĉar vi ne konsentas memoro jen en valida segmento 257 00:16:31,000 --> 00:16:38,000 kiel la amaso segmento aŭ la pilo segmento aŭ la datumojn segmento. 258 00:16:38,000 --> 00:16:40,000 Cool. 259 00:16:40,000 --> 00:16:48,000 Plu demandoj pri Cezaro? 260 00:16:48,000 --> 00:16:51,000 >> Ni movi plu. Ni rigardu redaktoj 2 vere rapide. 261 00:16:51,000 --> 00:17:00,000 Tio Vigenère. 262 00:17:00,000 --> 00:17:04,000 Tie en Vigenère 263 00:17:04,000 --> 00:17:06,000 ni iros tra ĉi tiu bela rapide ĉar, denove, 264 00:17:06,000 --> 00:17:10,000 Vigenère kaj Cezaro estas sufiĉe similaj. 265 00:17:10,000 --> 00:17:12,000 Header komento estas antaŭe, 266 00:17:12,000 --> 00:17:17,000 # Difini estas antaux eviti uzi tiujn magian nombroj. 267 00:17:17,000 --> 00:17:21,000 La belan aĵon diri ni volis movi 268 00:17:21,000 --> 00:17:23,000 malsama alfabeto aŭ io kiel tio. 269 00:17:23,000 --> 00:17:26,000 Prefere ol devi iri permane ŝanĝi la tuta 26 de la kodo 270 00:17:26,000 --> 00:17:30,000 ni povus ŝanĝi ĉi tion al 27 aŭ faligi ĝin 271 00:17:30,000 --> 00:17:34,000 se ni uzis malsamajn alfabetojn, malsamaj lingvoj. 272 00:17:34,000 --> 00:17:38,000 Denove, ni havas ĉi ĉeko de la argumento grafo, 273 00:17:38,000 --> 00:17:42,000 kaj vere oni povas preskaŭ preni tion kiel ŝablono. 274 00:17:42,000 --> 00:17:46,000 Preskaux cxiu programo skribas devus havi- 275 00:17:46,000 --> 00:17:50,000 se ĝi portas komandlinio argumentojn-iu vico de linioj 276 00:17:50,000 --> 00:17:55,000 kiu legas kiel tiu en la komenco. 277 00:17:55,000 --> 00:17:59,000 Tio estas unu el la unuaj provoj prudenton vi volas fari. 278 00:17:59,000 --> 00:18:03,000 >> Jen kion ni faris estis ni certigis ke 279 00:18:03,000 --> 00:18:06,000 la ŝlosilvorto estis valida, kaj kiu estis la dua ĉeko ke ni faris. 280 00:18:06,000 --> 00:18:11,000 Rimarku ke ni denove disigis tiun de argc kaj 2. 281 00:18:11,000 --> 00:18:14,000 Notu ke en tiu kazo unu afero kiun ni devis fari estis anstataŭ 282 00:18:14,000 --> 00:18:18,000 de uzante al mi ni volis validigi la tutan ĉenon, 283 00:18:18,000 --> 00:18:21,000 kaj por fari tion vi vere devas iri karaktero de karaktero 284 00:18:21,000 --> 00:18:23,000 super la kordoj. 285 00:18:23,000 --> 00:18:29,000 Ne bona maniero nomi ion sur ĝi 286 00:18:29,000 --> 00:18:31,000 ĉar eĉ, ekzemple, al mi revenos 0 287 00:18:31,000 --> 00:18:37,000 se ĝi ne povas analizi entjero, por ke eĉ ne funkciis. 288 00:18:37,000 --> 00:18:42,000 Denove, agrabla mesaĝo diras la uzanto ĝuste kio okazis. 289 00:18:42,000 --> 00:18:45,000 Tiam tie, denove, ni ankaŭ manipuli la kazo kie 290 00:18:45,000 --> 00:18:50,000 la uzanto tajpas en kontrolo D hazarda karaktero. 291 00:18:50,000 --> 00:18:54,000 >> Kaj tiam Charlotte havis demandon pli frue pri kiel ni sukcesas salti spacoj 292 00:18:54,000 --> 00:18:57,000 en nia ĉeno ĉi tie. 293 00:18:57,000 --> 00:19:00,000 Tio estis ia simila al tio, kion ni faris kun la Myspace programo 294 00:19:00,000 --> 00:19:04,000 kiun ni faris en la sekcio, kaj la maniero ĉi laboris 295 00:19:04,000 --> 00:19:08,000 estas ke ni spuris la nombro de literoj kiujn ni volas vidi. 296 00:19:08,000 --> 00:19:13,000 Kiel ni marŝis sur la mesaĝo de ŝnuroj, kiel ni marsxis karaktero de karaktero, 297 00:19:13,000 --> 00:19:16,000 ni spuris la indekso kiel parto de nia por ciklo, kaj tiam ni ankaŭ spuris 298 00:19:16,000 --> 00:19:21,000 la nombro de literoj, do ne-supersignoj, ne-ciferoj, ne-blanka spaco 299 00:19:21,000 --> 00:19:27,000 ke ni volas vidi en la aparta variablo. 300 00:19:27,000 --> 00:19:33,000 Kaj tiam tiu solvo modifas la ŝlosilon 301 00:19:33,000 --> 00:19:41,000 akiri veran ŝlosilo entjero, kaj faras ke la flugo, 302 00:19:41,000 --> 00:19:47,000 ĝuste antaŭ ĝi tiam iras al kodi la reala mesaĝo karaktero. 303 00:19:47,000 --> 00:19:50,000 Estas iuj solvoj, kiuj estis perfekte granda tro 304 00:19:50,000 --> 00:19:58,000 kiu modifas la ŝlosilon ĝis kiam provi por la ŝlosilo de valideco. 305 00:19:58,000 --> 00:20:01,000 Krom certigante ke la karaktero kaj la ŝlosilvorto 306 00:20:01,000 --> 00:20:05,000 iris alfabeta karaktero ankaŭ turnis ke en entjero 307 00:20:05,000 --> 00:20:13,000 en la 0 al 25 gamo al la tiam salti devi fari tion poste en ĉi por buklo. 308 00:20:13,000 --> 00:20:18,000 Denove, vi vidas tie ĉi estas vere la ĝusta sama kodo 309 00:20:18,000 --> 00:20:22,000 kiun ni uzas en Cezaro je ĉi tiu punkto. 310 00:20:22,000 --> 00:20:25,000 Vi faras la ĝustan samon, do la reala lertaĵo estas elŝeligi 311 00:20:25,000 --> 00:20:30,000 kiel por turni la ŝlosilvorto en entjero. 312 00:20:30,000 --> 00:20:35,000 >> Unu afero, kiun ni faris ĉi tie, ke estas iom densa 313 00:20:35,000 --> 00:20:39,000 estas ni ripetas ĉi tiu frazo, mi supozas ke vi povus nomi ĝin, 314 00:20:39,000 --> 00:20:45,000 3 apartaj fojoj sur linioj 58, 59, kaj 61. 315 00:20:45,000 --> 00:20:52,000 Ĉu iu povas klarigi, kio precize tiu frazo faras? 316 00:20:52,000 --> 00:20:55,000 Ĝi estas aliro al gravulo, kiel vi diris. 317 00:20:55,000 --> 00:20:59,000 Yeah, estas [inaudible] karaktero en la ŝlosilvorto, 318 00:20:59,000 --> 00:21:04,000 kaj tiel ĝi estas nombro de literoj vidis ĉar vi nur movante kune 319 00:21:04,000 --> 00:21:06,000 la ŝlosilvorto iam vi vidis la leteron, 320 00:21:06,000 --> 00:21:10,000 por ke tuj efektive salti spacoj kaj da tio. 321 00:21:10,000 --> 00:21:12,000 Yeah, precize. 322 00:21:12,000 --> 00:21:16,000 Kaj tiam kiam vi vidis la ŝlosilvorto malplenan vi ĵus mod tiel vi movas reen ĉirkaŭe. 323 00:21:16,000 --> 00:21:18,000 Ekzakte. Tio estas perfekta klarigo. 324 00:21:18,000 --> 00:21:23,000 Kio Kevin diris estas ke ni volas indekson en la ŝlosilvorto. 325 00:21:23,000 --> 00:21:28,000 Ni volas ricevi la num_letters_seen karaktero, se vi volas, 326 00:21:28,000 --> 00:21:32,000 sed se num_letters_seen superas la longon de la ŝlosilvorto, 327 00:21:32,000 --> 00:21:37,000 la vojo ni reiros al la adekvata gamo estas ni uzi la mod operatoro 328 00:21:37,000 --> 00:21:40,000 efike envolver ĉirkaŭe. 329 00:21:40,000 --> 00:21:43,000 Ekzemple, kiel en la mallonga, nia ŝlosilvorto estas lardo, 330 00:21:43,000 --> 00:21:46,000 kaj estas 5 literojn longaj. 331 00:21:46,000 --> 00:21:50,000 Sed ni jam vidis 6 literoj en nia simpla teksto en ĉi tiu punkto 332 00:21:50,000 --> 00:21:52,000 kaj ĉifrita 6. 333 00:21:52,000 --> 00:21:57,000 Ni finos alirante la num_letters_seen, 334 00:21:57,000 --> 00:22:00,000 kiu estas 6, mod la longo de la ŝlosilvorto, 5, 335 00:22:00,000 --> 00:22:04,000 kaj tiel ni ricevos 1, kaj tiom, kion ni faros estas ni 336 00:22:04,000 --> 00:22:14,000 aliri al la unua gravulo ene de nia ŝlosilvorto en tiu punkto. 337 00:22:14,000 --> 00:22:21,000 >> Bone, demandojn en Vigenère 338 00:22:21,000 --> 00:22:26,000 antaŭ ol ni movos on? 339 00:22:26,000 --> 00:22:31,000 You guys sentante sufiĉe bona pri tio? 340 00:22:31,000 --> 00:22:35,000 Cool, granda. 341 00:22:35,000 --> 00:22:38,000 Mi volas certigi ke vi infanoj ricevas la ŝancon de vidi kodo 342 00:22:38,000 --> 00:22:48,000 ke ni pensas aspektas bone kaj havi la eblecon lerni de ĝi. 343 00:22:48,000 --> 00:22:53,000 Ĉi tuj estos la lasta ni estos uzi spacoj por la momento, 344 00:22:53,000 --> 00:22:59,000 kaj ni iras al transiro nun, kaj mi tuj iros al cs50.net/lectures 345 00:22:59,000 --> 00:23:06,000 do ni povas fari iom da kvizo revizio. 346 00:23:06,000 --> 00:23:10,000 La plej bona maniero mi pensas komenci fari kvizo recenzo 347 00:23:10,000 --> 00:23:15,000 devas veni al ĉi Prelegoj paĝo, cs50.net/lectures, 348 00:23:15,000 --> 00:23:20,000 kaj sub ĉiu de la semajno rubrikoj, do se mi rigardas ĉi tie Semajno 0, 349 00:23:20,000 --> 00:23:27,000 Mi vidas ke ni havas liston de temoj kiujn ni kovrita Semajno 0. 350 00:23:27,000 --> 00:23:31,000 >> Se iu el tiuj temoj ŝajnas ne koni vin 351 00:23:31,000 --> 00:23:34,000 vi certe volas reveni kaj scour la prelego notoj kaj eble 352 00:23:34,000 --> 00:23:39,000 eĉ skim tra la prelegoj, rigardi ilin denove se vi volas 353 00:23:39,000 --> 00:23:44,000 akiri senton por kio okazas kun ĉiu el tiuj temoj. 354 00:23:44,000 --> 00:23:49,000 Mi diros aldone tiu jaro unu el la malvarmaj rimedoj ni havas 355 00:23:49,000 --> 00:23:55,000 estas tiuj mallongaj kiu ni kreis, kaj se vi rigardas Semajno 0, 356 00:23:55,000 --> 00:24:00,000 ni ne havas ĉiujn el la temoj kovritaj, sed ni havas sufiĉe da ili, 357 00:24:00,000 --> 00:24:03,000 kelkaj el la trickier bonaj, do rigardante tiujn mallongaj denove 358 00:24:03,000 --> 00:24:08,000 estas bona maniero por akiri vin por akceli. 359 00:24:08,000 --> 00:24:15,000 En aparta, mi tuj metos en kuseneto por la 3 sur la fundo, kiel mi faris tiujn. 360 00:24:15,000 --> 00:24:20,000 Sed se vi luktas kun duuma, bitoj, deksesumajn, ke ia aĵo, 361 00:24:20,000 --> 00:24:22,000 duuma estas bonega loko por komenci. 362 00:24:22,000 --> 00:24:25,000 ASCII estas alia tio estas bona por rigardi ankaŭ. 363 00:24:25,000 --> 00:24:31,000 Vi povas eĉ spekti min 1.5x rapido se mi iros tro malrapida por vi. 364 00:24:31,000 --> 00:24:35,000 Pro tio la recenzo, bonvolu fari tion. 365 00:24:35,000 --> 00:24:40,000 >> Nur por komenci vere rapide, ni tuj iru tra paro el tiuj kvizo problemoj 366 00:24:40,000 --> 00:24:44,000 nur por rapide Mazara tra tiuj. 367 00:24:44,000 --> 00:24:50,000 Ekzemple, ni rigardu problemo 16 kiu mi havas rajton ĝis tie sur la tabulo. 368 00:24:50,000 --> 00:24:54,000 Ni havas ĉi sekvan ŝtonon en duuma, 369 00:24:54,000 --> 00:24:56,000 kaj ni volas montri ian laboron. 370 00:24:56,000 --> 00:24:59,000 Konsentite, mi tuj donos ĉi ŝoton. 371 00:24:59,000 --> 00:25:01,000 You guys devus sekvi kune kun papero, 372 00:25:01,000 --> 00:25:04,000 kaj ni faros ĉi vere rapide. 373 00:25:04,000 --> 00:25:06,000 Ni volas realigi la sekvan ŝtonon en duuma. 374 00:25:06,000 --> 00:25:16,000 Mi havas 00110010. 375 00:25:16,000 --> 00:25:27,000 Kaj mi tuj aldoni al ĝi 00110010. 376 00:25:27,000 --> 00:25:30,000 Por la math genioj post kune hejme, 377 00:25:30,000 --> 00:25:35,000 ĉi tiu estas efektive multiplikante per 2. 378 00:25:35,000 --> 00:25:37,000 Ni komencu. 379 00:25:37,000 --> 00:25:39,000 Ni tuj sekvas la saman Krome algoritmo kiu ni 380 00:25:39,000 --> 00:25:43,000 kiam ni aldonos decimalaj numeroj kune. 381 00:25:43,000 --> 00:25:46,000 Vere la sola diferenco estas, ke ni buklo reen ĉirkaŭ 382 00:25:46,000 --> 00:25:51,000 iam ni havas 1 +1 anstataŭ iam ni atingos 10. 383 00:25:51,000 --> 00:25:53,000 >> Se ni komencos de la dekstra, vere rapide, kio estas la unua cifero? 384 00:25:53,000 --> 00:25:55,000 [Studenta] 0. >> [Nate H.] 0. 385 00:25:55,000 --> 00:25:58,000 Granda, la dua cifero? 386 00:25:58,000 --> 00:26:00,000 [Studenta] 1. 387 00:26:00,000 --> 00:26:02,000 [Nate H.] Ĉu ĝi estas 1? 1 + 1 estas? 388 00:26:02,000 --> 00:26:04,000 [Studenta] 10. 389 00:26:04,000 --> 00:26:08,000 [Nate H.] Ekzakte, do kio estas la cifero ke mi skribas dekstren sub la 2 karaj aldonis kune? 390 00:26:08,000 --> 00:26:11,000 [Studenta] 1, 0, aŭ 0 kaj tiam porti la 1. 391 00:26:11,000 --> 00:26:15,000 [Nate H.] 0 kaj porti 1, ĝuste. 392 00:26:15,000 --> 00:26:18,000 Sekva unu supre, Bazilo, vi estas supren. 393 00:26:18,000 --> 00:26:20,000 Kio estas la tria? >> [Bazilo] 1. 394 00:26:20,000 --> 00:26:23,000 [Nate H.] 1, perfekta. Kevin? 395 00:26:23,000 --> 00:26:27,000 [Kevin] 0. >> [Nate H.] 0, Charlotte? 396 00:26:27,000 --> 00:26:30,000 [Charlotte] 0. >> [Nate H.] Jes, kaj kion mi faras? 397 00:26:30,000 --> 00:26:32,000 [Studenta] La 1. 398 00:26:32,000 --> 00:26:34,000 [Nate H.] Kaj kion mi faru? Kaj tiam mi portas la 1. 399 00:26:34,000 --> 00:26:36,000 Perfekta, Sahb? >> [Sahb] Nun vi havas 1. 400 00:26:36,000 --> 00:26:40,000 [Nate H.] Kaj do mi faras ion tie? 401 00:26:40,000 --> 00:26:43,000 [Sahb] Tiam por la venonta unu vi havas 1 ĉar vi portis super 1. 402 00:26:43,000 --> 00:26:49,000 [Nate H.] Granda, tiel ĉi tie ni povas fini ĝin. 403 00:26:49,000 --> 00:26:51,000 Cool. 404 00:26:51,000 --> 00:26:54,000 [Studenta] Does 0 + 0 = 0? 405 00:26:54,000 --> 00:26:56,000 0 + 0 = 0. 406 00:26:56,000 --> 00:27:01,000 1 + 1, kiel vi diris, estas 10, aŭ 1, 0, prefere. 407 00:27:01,000 --> 00:27:07,000 10 estas _misnomer_ ĉar al mi 10 signifas la numero 10, 408 00:27:07,000 --> 00:27:12,000 kaj estas la Quirk de kiel ni reprezentas ĝin kiam ni skribas ĝin. 409 00:27:12,000 --> 00:27:20,000 Ni reprezentas la nombron 2 per 1, 0, kaj la nombro 10 estas iomete malsamaj. 410 00:27:20,000 --> 00:27:23,000 >> Kio estas speco de agrabla pri duuma estas kiu vere ne estas ke multaj 411 00:27:23,000 --> 00:27:25,000 kazoj vi bezonas lerni. 412 00:27:25,000 --> 00:27:30,000 Estas 0 + 0 = 0, 0 + 1 = 1, 413 00:27:30,000 --> 00:27:34,000 1 + 1 estas 0, kaj poste porti 1, 414 00:27:34,000 --> 00:27:37,000 kaj tiam vi povas vidi tie en la tria kolumno de la dekstra 415 00:27:37,000 --> 00:27:40,000 ni havis ĉi 1, 1, kaj 1. 416 00:27:40,000 --> 00:27:43,000 Kaj 1 + 1 + 1 estas 1, 417 00:27:43,000 --> 00:27:45,000 kaj vi portas alian 1. 418 00:27:45,000 --> 00:27:48,000 Kiam vi faras duuma krome, belaj simpla. 419 00:27:48,000 --> 00:27:51,000 Mi faros kelkajn pli el tiuj al prudento kontrolu vin 420 00:27:51,000 --> 00:27:54,000 antaŭ ol vi iros, ĉar ĉi tiu estas 421 00:27:54,000 --> 00:28:00,000 Probable iu kiun ni vidos en la kvizo. 422 00:28:00,000 --> 00:28:03,000 Nun ni faru ĉi sekva tiu siavice. 423 00:28:03,000 --> 00:28:06,000 Ni faru problemo 17. 424 00:28:06,000 --> 00:28:12,000 Ni tuj konverti la sekva duuma nombro al decimala. 425 00:28:12,000 --> 00:28:28,000 Mi havas 10100111001. 426 00:28:28,000 --> 00:28:33,000 Memori en la duuma video kiun mi faris 427 00:28:33,000 --> 00:28:36,000 Mi promenis tra kelkaj ekzemploj, kaj mi montris kiel 428 00:28:36,000 --> 00:28:41,000 ĉio funkcias kiam vi faras ĝin en dekuma. 429 00:28:41,000 --> 00:28:45,000 Kiam vi laboras en dekuma reprezento Mi kredas ke ni estas 430 00:28:45,000 --> 00:28:48,000 en ĉi tiu punkto en nia vivo tiel flua en gxi, ke 431 00:28:48,000 --> 00:28:53,000 ĝi estas bela facile glosan super la mekaniko de kiel reale funkcias. 432 00:28:53,000 --> 00:28:59,000 >> Sed por fari rapidan recap, se mi havas la numeron 137 433 00:28:59,000 --> 00:29:06,000 ĉi vere signifas-kaj denove, ĉi tiu estas en dekuma reprezento- 434 00:29:06,000 --> 00:29:19,000 la nombro 137 en dekuma signifas ke mi havas 1 x 100 + 3 x 10 + 7 x 1. 435 00:29:19,000 --> 00:29:22,000 Tio estas ĉio restas en la ekrano. 436 00:29:22,000 --> 00:29:29,000 Kaj tiam se vi rigardas tiujn numerojn ĉi tie, 437 00:29:29,000 --> 00:29:34,000 100, 10 kaj 1, vi vidos ke ili estas vere ĉiuj potencoj de 10. 438 00:29:34,000 --> 00:29:43,000 Mi havas 10 ², 10 ¹, kaj 10 por la nulo. 439 00:29:43,000 --> 00:29:48,000 Ni havas similan tiaj aferoj en duuma, 440 00:29:48,000 --> 00:29:55,000 krom ke nia bazo, kiel ni nomas ĝin, estas 2 anstataŭ 10. 441 00:29:55,000 --> 00:29:58,000 Tiuj 10s ke mi skribis cxi tie malsupre, 442 00:29:58,000 --> 00:30:02,000 ĉi 10 ², 10 ¹, 10 al la nulo, 10 estas nia bazo, 443 00:30:02,000 --> 00:30:08,000 kaj la eksponento, 0, 1, aŭ 2, 444 00:30:08,000 --> 00:30:14,000 estas enhavita per la pozicio de la cifero en la numero kiun ni skribas. 445 00:30:14,000 --> 00:30:21,000 1, se ni rigardas ĝin, tiu 1 estas en la 2-a pozicio. 446 00:30:21,000 --> 00:30:27,000 La 3 estas en la 1-a pozicio, kaj la 7 estas en la 0th pozicio. 447 00:30:27,000 --> 00:30:35,000 Tiel estas kiel ni preni la diversajn eksponentoj sube por niaj bazoj. 448 00:30:35,000 --> 00:30:40,000 >> Post ĉio ĉi we'll-efektive, vi scias kion? 449 00:30:40,000 --> 00:30:43,000 Ni do-kien mia malfari butono iras? 450 00:30:43,000 --> 00:30:45,000 Tie iras. 451 00:30:45,000 --> 00:30:47,000 Mi amas ĉi malfari afero. 452 00:30:47,000 --> 00:30:51,000 Post tio mi pensas ke mi almenaŭ 453 00:30:51,000 --> 00:30:54,000 la plej facila maniero por komenci igi duuma nombro 454 00:30:54,000 --> 00:30:57,000 aŭ deksesuma nombro kie la bazo estas 16 455 00:30:57,000 --> 00:31:02,000 kaj ne 10 aŭ 2 estas iri antaŭen kaj skribi eksteren 456 00:31:02,000 --> 00:31:09,000 la bazoj kaj eksponentoj por ĉiuj nombroj en mia duuma nombro ĉe la supro. 457 00:31:09,000 --> 00:31:14,000 Se ni komencos de maldekstra al dekstra denove, 458 00:31:14,000 --> 00:31:17,000 kiu estas speco de _counterintuitive_, 459 00:31:17,000 --> 00:31:23,000 Mi ŝanĝos al nigra tie, ni havas la 2 al la 0th pozicio, 460 00:31:23,000 --> 00:31:27,000 kaj poste ni havas 2 ¹, 2 ², 461 00:31:27,000 --> 00:31:33,000 kaj poste 2 al la 3, 2 al la 4, 2 al la 5, 6, 462 00:31:33,000 --> 00:31:39,000 7, 8, 9, kaj 10. 463 00:31:39,000 --> 00:31:41,000 Ĉi tiuj numeroj, kiujn mi skribis el ĉiuj estas la eksponentoj. 464 00:31:41,000 --> 00:31:48,000 Mi nur skribis la bazojn tie en la unuaj 3 nur por spaco. 465 00:31:48,000 --> 00:31:50,000 >> Je ĉi tiu punkto mi tuj iros antaŭen kaj mi fakte tuj viŝi 466 00:31:50,000 --> 00:31:53,000 la aĵoj kiujn ni faris en dekuma, se tio estas bone. 467 00:31:53,000 --> 00:31:57,000 Vi ĉiuj havas tiun. 468 00:31:57,000 --> 00:32:05,000 Tiuj el vi rigardi en linio mi certas povos rebobinar min se vi ŝatus. 469 00:32:05,000 --> 00:32:07,000 Ŝanĝi reen al la plumo. 470 00:32:07,000 --> 00:32:12,000 Nun, kion ni povas fari-se vi infanoj ne estas plene ĝis akceli en via potencoj de 2, 471 00:32:12,000 --> 00:32:15,000 jen tute malvarmeta. 472 00:32:15,000 --> 00:32:18,000 Ĝi okazas. Mi komprenas. 473 00:32:18,000 --> 00:32:23,000 Mi iam havis laboron intervjuo kie mi diris ke mi konas ĉiujn potencoj de 2 474 00:32:23,000 --> 00:32:26,000 supren tra 2 al la 30a. 475 00:32:26,000 --> 00:32:29,000 Ĝi ne estis laboro mi ricevis. 476 00:32:29,000 --> 00:32:32,000 Ĉiuokaze, vi infanoj povas antaŭeniri kaj faru la math tie, 477 00:32:32,000 --> 00:32:35,000 sed kun binara ne vere havas sencon, 478 00:32:35,000 --> 00:32:38,000 kaj nek ne havas sencon kun dekuma aŭ deksesuma ankaŭ ne, 479 00:32:38,000 --> 00:32:43,000 fari la math el kie vi havas nulojn. 480 00:32:43,000 --> 00:32:49,000 Vi povas vidi mi havas 0 tie, 0 tie, 0 tie, 0 tie, 0 tie, 0 tie. 481 00:32:49,000 --> 00:32:52,000 Kial povus ĝin ne havas sencon fari la efektiva math 482 00:32:52,000 --> 00:32:56,000 por kalkuli la taŭga potenco de 2 por tiu posteno? 483 00:32:56,000 --> 00:32:59,000 Ĝuste, kiel Charlotte diris, estos 0. 484 00:32:59,000 --> 00:33:05,000 Povus tiel savu vin la tempo se kalkuli potencoj de 2 ne estas via forta kostumo. 485 00:33:05,000 --> 00:33:10,000 En ĉi tiu kazo ni nur bezonas kalkuli ĝin por 2 ĝis la 0 kiu estas-? 486 00:33:10,000 --> 00:33:12,000 [Studenta] 1. 487 00:33:12,000 --> 00:33:14,000 [Nate H.] 1, 2 al la 3 kiu estas-? 488 00:33:14,000 --> 00:33:16,000 [Studenta] 8. >> [Nate H.] 8. 489 00:33:16,000 --> 00:33:18,000 2 al la 4? 490 00:33:18,000 --> 00:33:21,000 [Studenta] 2. Mi bedauxras, 1. 491 00:33:21,000 --> 00:33:26,000 [Nate H.] 2 al la 4 estas 16, precize. 492 00:33:26,000 --> 00:33:28,000 2 al la 5, Kevin? >> 32. 493 00:33:28,000 --> 00:33:32,000 [Nate H.] 32, 2 al la 8? 494 00:33:32,000 --> 00:33:38,000 [Studenta] 32 x 8, 256. 495 00:33:38,000 --> 00:33:41,000 [Nate H.] Perfekta. 496 00:33:41,000 --> 00:33:43,000 Kaj 2 al la 10? 497 00:33:43,000 --> 00:33:45,000 [Studenta] 1024. 498 00:33:45,000 --> 00:33:49,000 [Nate H.] Yeah, 1024. 499 00:33:49,000 --> 00:33:57,000 >> Iam ni devas tiujn numerojn ni povas resumi ilin ĉiujn supren. 500 00:33:57,000 --> 00:34:01,000 Kaj tiu estas kie estas vere grava por fari kelkajn aferojn. 501 00:34:01,000 --> 00:34:07,000 Unu estas iri malrapida kaj kontrolu vian laboron. 502 00:34:07,000 --> 00:34:10,000 Vi povas diri ke tie estas 1 je la fino de ĉi tiu numero, 503 00:34:10,000 --> 00:34:15,000 do mi devas definitive ricevas neparan numeron kiel mia rezulto, 504 00:34:15,000 --> 00:34:18,000 ĉar ĉiuj aliaj aĵoj tuj estos eĉ nombroj 505 00:34:18,000 --> 00:34:21,000 pro tio ke ĝi estas duuma nombro. 506 00:34:21,000 --> 00:34:24,000 La alia afero por fari estas se vi atingos tiun punkton sur la provo 507 00:34:24,000 --> 00:34:27,000 kaj vi skribis ĝin ĝis ĉi tie 508 00:34:27,000 --> 00:34:30,000 kaj ke vi uzas el tempo 509 00:34:30,000 --> 00:34:33,000 rigardi la numeron de punktoj, ke tiu problemo meritas. 510 00:34:33,000 --> 00:34:40,000 Ĉi tiu problemo, kiel vi povas vidi-se mi klaki al mia tekkomputilo vere rapide- 511 00:34:40,000 --> 00:34:44,000 tiu problemo meritas 2 punktoj, do tio ne estas la speco de krome 512 00:34:44,000 --> 00:34:47,000 vi devas iri tra se vi vere premis por tempo. 513 00:34:47,000 --> 00:34:52,000 Sed ni ŝanĝi reen al la iPad, kaj ni iros tra ĝi vere rapide. 514 00:34:52,000 --> 00:34:54,000 >> Mi ŝatas fari la malgrandaj nombroj unua 515 00:34:54,000 --> 00:34:56,000 ĉar mi trovas ke pli facila. 516 00:34:56,000 --> 00:35:00,000 Mi ŝatas 32 kaj 8, ĉar ili iras kune belajn facile, kaj ni preni 50. 517 00:35:00,000 --> 00:35:03,000 16 kaj 1 ricevas 17. 518 00:35:03,000 --> 00:35:05,000 Tie ni preni 57, 519 00:35:05,000 --> 00:35:14,000 kaj poste ni povas fari la reston de tio, do ni povas fari 57, 156. 520 00:35:14,000 --> 00:35:16,000 Venu. 521 00:35:16,000 --> 00:35:19,000 Viro, nu, ni vidos. 522 00:35:19,000 --> 00:35:27,000 Ni havis 57, 256, kaj 1024. 523 00:35:27,000 --> 00:35:31,000 Je ĉi tiu punkto, mi preferus simple iri tra. 524 00:35:31,000 --> 00:35:35,000 Mi havas neniun postsignon. Mi klare bezonas legi sur ĉi. 525 00:35:35,000 --> 00:35:40,000 7, 6, kaj 4, vi ricevas 17. 526 00:35:40,000 --> 00:35:42,000 1, 5, 5, 2, 13. 527 00:35:42,000 --> 00:35:45,000 Tiam ni preni 3, kaj tiam ni preni 1. 528 00:35:45,000 --> 00:35:52,000 1337. 529 00:35:52,000 --> 00:35:55,000 Easter egg, neniu? 530 00:35:55,000 --> 00:35:59,000 Neniu rekonas tiun numeron? 531 00:35:59,000 --> 00:36:02,000 Chris rekonas la nombro. Kion tio signifas, Chris? 532 00:36:02,000 --> 00:36:04,000 [Chris] Leet. 533 00:36:04,000 --> 00:36:11,000 Leet, do se vi rigardas tion, ĝi aspektas kiel Leet. 534 00:36:11,000 --> 00:36:15,000 Hacker stuff. Atentu, ke ia aĵo en la midterm aŭ la kvizo, prefere. 535 00:36:15,000 --> 00:36:19,000 Se vi vidas tian materialon kaj vi demandas "Hm," 536 00:36:19,000 --> 00:36:22,000 kiuj povus reale signifas ion. 537 00:36:22,000 --> 00:36:24,000 Mi ne scias. David ŝatas meti ĝin in 538 00:36:24,000 --> 00:36:26,000 Estas bona maniero prudento kontroli ĝin. 539 00:36:26,000 --> 00:36:30,000 Kiel bone, mi vidas kio okazas. 540 00:36:30,000 --> 00:36:34,000 >> Tio Semajno 0/Week 1 stuff. 541 00:36:34,000 --> 00:36:39,000 Se ni ŝanĝi reen al nia tekkomputilo nun, 542 00:36:39,000 --> 00:36:46,000 malzomi, kaj paro de aliaj aĵoj. 543 00:36:46,000 --> 00:36:50,000 Ekzistas ASCII, kiu ni estis farante multajn kun la problemo aroj. 544 00:36:50,000 --> 00:36:55,000 Ĉi tiu nocio de ĉefurbo A. Kio estas tio vere? 545 00:36:55,000 --> 00:36:57,000 Sciante ke estas la dekuma entjero. 546 00:36:57,000 --> 00:37:00,000 65 estas kio ĝi estas mapita al la ASCII tablo, 547 00:37:00,000 --> 00:37:03,000 kaj tio estas do, kiel la komputila skribas ĝin, 548 00:37:03,000 --> 00:37:06,000 kaj tiel estas kiel ni estas atingi forigu reale skribi 549 00:37:06,000 --> 00:37:09,000 la karaktero ĉefurbo A kaj la karaktero minuskla a 550 00:37:09,000 --> 00:37:14,000 en iu el tiuj solvoj kaj problemo aroj kiuj vi estis farante. 551 00:37:14,000 --> 00:37:16,000 Paro de aliaj aĵoj. 552 00:37:16,000 --> 00:37:25,000 Ni havas deklaroj, bulea esprimoj, kondiĉoj, cikloj, variabloj kaj fadenoj. 553 00:37:25,000 --> 00:37:29,000 >> Tiuj ĉiuj ŝajnas sencon plejparte? 554 00:37:29,000 --> 00:37:35,000 Iuj el ĉi terminaro estas iom funky foje. 555 00:37:35,000 --> 00:37:46,000 Mi ŝatas pensi de formulita kiel plejparte iu kiu finiĝas per punktokomo. 556 00:37:46,000 --> 00:37:51,000 Deklaroj kiel x = 7, kiu difinas variablon, 557 00:37:51,000 --> 00:37:54,000 supozeble nomata x = 7. 558 00:37:54,000 --> 00:38:01,000 Supozeble x estas ankaŭ speco ke povas stoki la numero 7, 559 00:38:01,000 --> 00:38:05,000 do ĝi estas int aŭ eble kaleŝego aŭ mallonga aŭ char, 560 00:38:05,000 --> 00:38:07,000 io simila. 561 00:38:07,000 --> 00:38:12,000 Al bulea esprimo uzante tiujn duobla egalas 562 00:38:12,000 --> 00:38:17,000 kaj la bang egalas aŭ ne egalas, malpli ol, pli grandaj ol, 563 00:38:17,000 --> 00:38:22,000 malpli ol aŭ egala al, ĉiuj tian materialon. 564 00:38:22,000 --> 00:38:28,000 Kondiĉoj do se alie deklaroj. 565 00:38:28,000 --> 00:38:32,000 Mi memoras, ke vi ne povas havi alian sen responda se. 566 00:38:32,000 --> 00:38:37,000 Tiel same, vi ne povas havi alian se sen responda se. 567 00:38:37,000 --> 00:38:40,000 Cikloj, memori la 3 specoj de cikloj ni estis martelante en vin 568 00:38:40,000 --> 00:38:43,000 por la lasta paro de sekcioj kaj problemo aroj. 569 00:38:43,000 --> 00:38:46,000 Uzanta do dum kiam vi ricevas uzanto enigo, 570 00:38:46,000 --> 00:38:51,000 uzante dum maŝojn ĝis aparta kondiĉo estas vera, 571 00:38:51,000 --> 00:38:56,000 kaj tiam uzanta tiuj por maŝojn se vi bezonas 572 00:38:56,000 --> 00:39:01,000 scias kion ripeto de la ciklo vi estas nuntempe en estas kiel mi pensas pri ĝi. 573 00:39:01,000 --> 00:39:07,000 Aŭ se vi faras por ĉiu signo en cxeno mi volas fari ion, 574 00:39:07,000 --> 00:39:15,000 por ĉiu ero en tabelo mi volas fari ion por ke elemento. 575 00:39:15,000 --> 00:39:18,000 >> Fadenoj kaj okazaĵoj. 576 00:39:18,000 --> 00:39:21,000 Tiuj ni ne kovris tiom eksplicite en C, 577 00:39:21,000 --> 00:39:23,000 sed memoru ĉi tion de Scratch. 578 00:39:23,000 --> 00:39:26,000 Ĉi tiu estas la nocio de havi malsamajn skriptoj. 579 00:39:26,000 --> 00:39:32,000 Ĉi tiu estas ankaŭ tiu nocio de elsendi okazaĵon. 580 00:39:32,000 --> 00:39:37,000 Kelkaj homoj ne uzis elsendoj en siaj projektoj komence, 581 00:39:37,000 --> 00:39:40,000 kio estas plene cool, 582 00:39:40,000 --> 00:39:46,000 sed ĉi tiuj estas 2 malsamaj manieroj manipuli tiun grandan temo nomis konkurenco, 583 00:39:46,000 --> 00:39:49,000 kiu estas kiel vi akiri programoj por ekzekuti 584 00:39:49,000 --> 00:39:54,000 aŭ ŝajne ekzekuti samtempe? 585 00:39:54,000 --> 00:39:59,000 Malsamaj taskoj kurante dum aliaj taskoj estas ankaŭ kuri. 586 00:39:59,000 --> 00:40:01,000 Tiel estas kiel via operaciumo ŝajnas funkcii. 587 00:40:01,000 --> 00:40:04,000 Jen kial, kvankam, ekzemple, 588 00:40:04,000 --> 00:40:10,000 Mi got mia retumilo kurante, mi povas ankaŭ ŝalti Spotify kaj ludi kanto. 589 00:40:10,000 --> 00:40:14,000 Tio estas pli ol koncepta afero por kompreni. 590 00:40:14,000 --> 00:40:17,000 Mi rigardu la fadenoj mallonga 591 00:40:17,000 --> 00:40:21,000 se vi volas lerni pli pri tio. 592 00:40:21,000 --> 00:40:26,000 >> Vidu, mi kredas ke povus esti 593 00:40:26,000 --> 00:40:31,000 problemo pri tiu en unu el tiuj. 594 00:40:31,000 --> 00:40:35,000 Denove, mi kredas fadenoj kaj eventoj ne estas iu kiu nin kovros en C 595 00:40:35,000 --> 00:40:41,000 nur ĉar ĝi estas signife pli malfacila ol en Scratch. 596 00:40:41,000 --> 00:40:44,000 Vi devus ne maltrankviliĝu pri tio tie, sed definitive kompreni la konceptojn, 597 00:40:44,000 --> 00:40:47,000 kompreni kio okazas. 598 00:40:47,000 --> 00:40:52,000 Antaŭ ol ni movos on, demandojn en Semajno 0 materialo? 599 00:40:52,000 --> 00:40:55,000 Ĉiuj sentas sufiĉe bonaj? 600 00:40:55,000 --> 00:41:03,000 Kompreno variabloj kaj kion variablo estas? 601 00:41:03,000 --> 00:41:08,000 >> Movante plu. Semajno 1. 602 00:41:08,000 --> 00:41:12,000 Paro de aferoj tie kiuj ne aparte kovrita 603 00:41:12,000 --> 00:41:21,000 en la kvizo revizio nepre kaj ankaŭ estas pli koncepta aferojn por pripensi. 604 00:41:21,000 --> 00:41:30,000 La unua estas tiu nocio de kio fontkodo, tradukiloj kaj celo kodo estas. 605 00:41:30,000 --> 00:41:32,000 Neniu? Bazilo. 606 00:41:32,000 --> 00:41:37,000 Estas objekto kodo-mi volas diri fontkodo estas kion vi metas en clang, 607 00:41:37,000 --> 00:41:42,000 kaj objekto kodo estas kion clang metas ekster por ke via komputilo povas legi la programon. 608 00:41:42,000 --> 00:41:44,000 Ekzakte. 609 00:41:44,000 --> 00:41:47,000 Fontkodo estas la C-kodo, kiun vi vere tajpi supren. 610 00:41:47,000 --> 00:41:50,000 Objekto kodo estas kion vi eliri de clang. 611 00:41:50,000 --> 00:41:54,000 Ĝi estas la _0s_ kaj _1s_ en tiu duuma formato. 612 00:41:54,000 --> 00:41:59,000 Tiam kio okazas estas kiam vi havas faskon da objekto dosieroj, 613 00:41:59,000 --> 00:42:04,000 diru vi kompili projekto aŭ programo kiu uzas plurajn fontkodon dosieroj, 614 00:42:04,000 --> 00:42:09,000 kiu per konvencio estas donitaj la. c sufikso. 615 00:42:09,000 --> 00:42:13,000 Tial ni havas caesar.c, vigenère.c. 616 00:42:13,000 --> 00:42:18,000 Se vi skribas Java programojn vi donos al ili la etendo. Java. 617 00:42:18,000 --> 00:42:24,000 Pitono programoj havas la etendo. Py ofte. 618 00:42:24,000 --> 00:42:26,000 >> Kiam vi havas multnombraj. C dosierojn, vi kompili ilin. 619 00:42:26,000 --> 00:42:29,000 Clang kraĉas el ĉio ĉi duuma rubo. 620 00:42:29,000 --> 00:42:33,000 Tiam ĉar vi nur volas 1 programon 621 00:42:33,000 --> 00:42:37,000 vi havas la enlazador ligas ĉiujn tiujn objekto Fajlilo kune 622 00:42:37,000 --> 00:42:40,000 en 1 ruleblan dosieron. 623 00:42:40,000 --> 00:42:45,000 Tiu estas ankaŭ kio okazas kiam vi uzas la CS50 biblioteko, ekzemple. 624 00:42:45,000 --> 00:42:50,000 La CS50 biblioteko estas ambaŭ tio. H kapdosiero 625 00:42:50,000 --> 00:42:53,000 ke vi legas, ke # includecs50.h. 626 00:42:53,000 --> 00:42:58,000 Kaj tiam ĝi estas ankaŭ speciala duuma biblioteko dosieron 627 00:42:58,000 --> 00:43:02,000 ke tio estis kompilita tio estas _0s_ kaj _1s_, 628 00:43:02,000 --> 00:43:08,000 kaj ke-l flago, do se ni reiru al nia Spacetoj kaj ni rigardas vere rapide 629 00:43:08,000 --> 00:43:11,000 ĉe kio okazas ĉi tie kiam ni rigardas nian clang komando, 630 00:43:11,000 --> 00:43:15,000 kion ni havas estas tiu estas nia fontkodon dosieron ĉi tie. 631 00:43:15,000 --> 00:43:18,000 Tio estas aro da tradukilo flagoj. 632 00:43:18,000 --> 00:43:22,000 Kaj poste en la fino, tiuj-l flagoj ligilon en 633 00:43:22,000 --> 00:43:30,000 la efektiva duumajn dosierojn por tiuj 2 bibliotekoj, la CS50 biblioteko kaj tiam la math biblioteko. 634 00:43:30,000 --> 00:43:35,000 >> Komprenante unu la tipo de dosieroj 'celo 635 00:43:35,000 --> 00:43:38,000 en la kompilaĵo procezo estas io vi volas povi 636 00:43:38,000 --> 00:43:43,000 doni almenaŭ altan nivelon superrigardon pri. 637 00:43:43,000 --> 00:43:46,000 Fontkodon envenas Objekto kodo eliras. 638 00:43:46,000 --> 00:43:53,000 Celkodo dosieroj ligi kune, kaj vi ricevos belan, plenumebla dosiero. 639 00:43:53,000 --> 00:43:55,000 Cool. 640 00:43:55,000 --> 00:43:58,000 Ĉi tiu estas ankaŭ kie vi povas akiri erarojn en multnombraj punktoj 641 00:43:58,000 --> 00:44:00,000 en la kompilaĵo procezo. 642 00:44:00,000 --> 00:44:04,000 Tie estas kie, ekzemple, se vi prenas tiun ligas flago, 643 00:44:04,000 --> 00:44:10,000 la CS50 flago, kaj vi preterlasas ĝin en Spacetoj aŭ kiam vi uzas vian kodon, 644 00:44:10,000 --> 00:44:13,000 ĉi tiu estas kie vi ricevos eraro en la sinsekvo fazo, 645 00:44:13,000 --> 00:44:18,000 kaj la enlazador diros, "Hej, vi nomas funkcio GetString 646 00:44:18,000 --> 00:44:20,000 jen en la CS50 biblioteko. " 647 00:44:20,000 --> 00:44:25,000 "Vi diris al mi estis en la CS50 biblioteko, kaj mi ne povas trovi la kodon por ĝi." 648 00:44:25,000 --> 00:44:28,000 Tie estas kie vi devas ligi ĝin, kaj tio estas aparta 649 00:44:28,000 --> 00:44:33,000 el tradukilo eraro ĉar la tradukilo rigardas sintakson kaj tiu klaso de aĵoj. 650 00:44:33,000 --> 00:44:38,000 Estas bone scii kio okazas kiam. 651 00:44:38,000 --> 00:44:42,000 >> Aliaj aferoj por scii pri. 652 00:44:42,000 --> 00:44:49,000 Mi dirus al vi certe volas rigardi la mallongajn sur typecasting farita de Jordan 653 00:44:49,000 --> 00:44:55,000 kompreni kion ints estas sub la kapuĉo, 654 00:44:55,000 --> 00:44:58,000 kion signoj estas sub la kapuĉo. 655 00:44:58,000 --> 00:45:02,000 Kiam ni parolas pri ASCII kaj ni efektive rigardi la ASCII tablo, 656 00:45:02,000 --> 00:45:07,000 kio ke tio faras, donas al ni sub la kapuĉo rigardo 657 00:45:07,000 --> 00:45:13,000 ĉe kio la komputilo fakte reprezentas ĉefurbo A kaj la cifero 7 658 00:45:13,000 --> 00:45:17,000 kaj komo kaj demandosigno. 659 00:45:17,000 --> 00:45:20,000 La komputilo ankaŭ havas specialajn formojn por reprezenti 660 00:45:20,000 --> 00:45:23,000 la nombro 7 kiel entjero. 661 00:45:23,000 --> 00:45:27,000 Ĝi havas specialan manieron por reprezenti la numeron 7 kiel glitpunktaj numeron, 662 00:45:27,000 --> 00:45:29,000 kaj tiuj estas tre malsamaj. 663 00:45:29,000 --> 00:45:32,000 Typecasting estas kiel vi diras al la komputilo "Hej, mi volas ke vi konverti 664 00:45:32,000 --> 00:45:37,000 de unu prezento al alia prezento. " 665 00:45:37,000 --> 00:45:40,000 Kial ni ne rigardu tion. 666 00:45:40,000 --> 00:45:44,000 >> Mi ankaŭ rigardu la mallonga sur bibliotekoj kaj la mallonga sur tradukiloj. 667 00:45:44,000 --> 00:45:47,000 Tiuj diskuto pri la procezo de kompilaĵo, 668 00:45:47,000 --> 00:45:53,000 kia biblioteko estas, kaj iru sur kelkaj el tiuj demandoj, kiuj vi eble demandas. 669 00:45:53,000 --> 00:45:55,000 Demandojn sur Semajno 1 materialo? 670 00:45:55,000 --> 00:46:03,000 Ĉu estas temoj en ĉi tie kiuj similas fortimiga vi ŝatus kovri? 671 00:46:03,000 --> 00:46:07,000 Mi provas blovi tra la plimulto de tiuj antaŭaj temoj por ke ni povas atingi 672 00:46:07,000 --> 00:46:13,000 punteros kaj faru iom de rekursio. 673 00:46:13,000 --> 00:46:15,000 Pensoj? 674 00:46:15,000 --> 00:46:19,000 Ion por kovri? 675 00:46:19,000 --> 00:46:21,000 Tempo por iu ĉokolado eble? 676 00:46:21,000 --> 00:46:23,000 You guys laboras tra ĝi. 677 00:46:23,000 --> 00:46:26,000 Mi iros por subteni trinketis mian kafon. 678 00:46:26,000 --> 00:46:31,000 Semajno 2. 679 00:46:31,000 --> 00:46:34,000 Bona alvoko, bonaj alvokon. 680 00:46:34,000 --> 00:46:38,000 En Semajno 2 ni parolis iom pli pri funkcioj. 681 00:46:38,000 --> 00:46:43,000 >> En la unuaj kelkaj problemo aroj ni ne vere skribis neniun funkcioj je ĉiu 682 00:46:43,000 --> 00:46:45,000 alia ol kion funkcio? 683 00:46:45,000 --> 00:46:47,000 [Studenta] Ĉefaj. >> Main, precize. 684 00:46:47,000 --> 00:46:51,000 Kaj tial ni vidis la malsamaj kostumoj kiujn ĉefa portas. 685 00:46:51,000 --> 00:46:54,000 Estas unu en kiu prenas neniun argumenton, 686 00:46:54,000 --> 00:46:58,000 kaj ni simple diri malplena en inter la krampoj, 687 00:46:58,000 --> 00:47:01,000 kaj tiam tie estas la alia unu kie ni volis preni komandlinio argumentoj, 688 00:47:01,000 --> 00:47:08,000 kaj kiel ni vidis, jen kie vi havas int argc kaj kordoj argv tabelo 689 00:47:08,000 --> 00:47:13,000 aŭ nun ke ni reale elmontrita string esti la signo * ke estas 690 00:47:13,000 --> 00:47:20,000 nin tuj komenci skribi ĝin kiel char * argv kaj poste krampoj. 691 00:47:20,000 --> 00:47:22,000 En Problemo Serio 3, you guys vidis aron da funkcioj, 692 00:47:22,000 --> 00:47:27,000 kaj vi implementado faskon da funkcioj, desegni, serĉi, scramble. 693 00:47:27,000 --> 00:47:31,000 La prototipoj estis ĉiuj skribita tie por vi. 694 00:47:31,000 --> 00:47:33,000 >> Kion mi volis paroli pri ĉi tie kun funkcioj vere rapide 695 00:47:33,000 --> 00:47:38,000 estas ke estas 3 partoj al ili kiam ajn vi skribas funkcio. 696 00:47:38,000 --> 00:47:43,000 Vi devas specifi la reveno tipon de la funkcio. 697 00:47:43,000 --> 00:47:46,000 Vi devas specifi nomon por la funkcio, kaj tiam vi devas specifi 698 00:47:46,000 --> 00:47:51,000 la argumento listo aŭ la parametron listo. 699 00:47:51,000 --> 00:47:57,000 Ekzemple, se mi skribus funkcio por sumigi faskon de entjeroj 700 00:47:57,000 --> 00:48:03,000 kaj poste reveni al mi la sumo kio estus mia reveno tipo 701 00:48:03,000 --> 00:48:06,000 se mi volis resumi entjeroj kaj tiam revenu la sumo? 702 00:48:06,000 --> 00:48:12,000 Tiam la nomo de la funkcio. 703 00:48:12,000 --> 00:48:27,000 Se mi iras antaŭen kaj skribi en verdo, ĉi tiu parto estas la reveno tipo. 704 00:48:27,000 --> 00:48:34,000 Tiu parto estas la nomo. 705 00:48:34,000 --> 00:48:40,000 Kaj poste en inter krampoj 706 00:48:40,000 --> 00:48:46,000 estas kie mi donas la argumentoj, 707 00:48:46,000 --> 00:48:56,000 ofte mallongigita kiel argumentojn, kelkfoje nomita params por parametroj. 708 00:48:56,000 --> 00:49:00,000 Kaj se vi havas unu, vi simple specifis la unu. 709 00:49:00,000 --> 00:49:06,000 Se vi havas plurajn vi apartigos ĉiu kun komo. 710 00:49:06,000 --> 00:49:13,000 Kaj por ĉiu argumento vi donas ĝin 2 aferoj kiuj estas-Kevin? 711 00:49:13,000 --> 00:49:18,000 [Kevin] Oni devas doni la tipo kaj tiam la nomo. 712 00:49:18,000 --> 00:49:21,000 Kaj tiam la nomo, kaj la nomo estas la nomo kiun vi tuj uzi 713 00:49:21,000 --> 00:49:25,000 por raporti al tiu argumento ene de la sumo funkcio, 714 00:49:25,000 --> 00:49:27,000 ene de la funkcio kiun vi aktuale skribas. 715 00:49:27,000 --> 00:49:32,000 >> Vi ne devas-ekzemple, se mi iros en adicias, 716 00:49:32,000 --> 00:49:41,000 diri, tabelo de entjeroj-we'll fari int tabelo, 717 00:49:41,000 --> 00:49:46,000 kaj Mi donos al mi iun frizita krampoj tie- 718 00:49:46,000 --> 00:49:51,000 tiam, kiam mi pasas tabelo al la sumo funkcio 719 00:49:51,000 --> 00:49:55,000 Mi pasi ĝin en la unua pozicio de la argumento listo. 720 00:49:55,000 --> 00:49:59,000 Sed la tabelo, ke mi pasas en ne devas havi la nomon Arr. 721 00:49:59,000 --> 00:50:07,000 Arr tuj estos kiel mi rilatas al tiu argumento ene de la korpo de la funkcio. 722 00:50:07,000 --> 00:50:10,000 La alia afero ke ni bezonas konsideri, 723 00:50:10,000 --> 00:50:14,000 kaj ĉi tiu estas iomete malsamaj de funkcioj, sed mi kredas ke estas grava punkto, 724 00:50:14,000 --> 00:50:20,000 estas ke en C kiam mi skribas funkcio kiel tiu 725 00:50:20,000 --> 00:50:29,000 kiom mi scias, kiel multaj elementoj estas en ĉi tiu tabelo? 726 00:50:29,000 --> 00:50:31,000 Tio estas iom da ruzo demando. 727 00:50:31,000 --> 00:50:35,000 Ni parolis pri tiu iomete en la pasinta semajno sekcio. 728 00:50:35,000 --> 00:50:40,000 Kiel mi sciu la nombron de elementoj interne tabelo en C? 729 00:50:40,000 --> 00:50:44,000 Ĉu estas maniero? 730 00:50:44,000 --> 00:50:49,000 >> Rezultas, ke ne estas maniero scii. 731 00:50:49,000 --> 00:50:52,000 Vi devas pasi ĝin en aparta. 732 00:50:52,000 --> 00:50:55,000 Estas lertaĵo, ke vi povas fari 733 00:50:55,000 --> 00:51:00,000 se vi estas en la sama funkcio en kiu la tabelo estis deklarita, 734 00:51:00,000 --> 00:51:04,000 kaj vi laboras kun stako tabelo. 735 00:51:04,000 --> 00:51:06,000 Sed tio nur funkcias se vi estas en la sama funkcio. 736 00:51:06,000 --> 00:51:09,000 Iam vi pasas tabelo al alia funkcio aŭ se vi jam deklaris tabelo 737 00:51:09,000 --> 00:51:12,000 kaj vi metis tiun tabelo sur la havaĵon, vi uzis malloc 738 00:51:12,000 --> 00:51:15,000  kaj ke ia aĵo, tiam ĉiuj vetas estas for. 739 00:51:15,000 --> 00:51:18,000 Tiam vi vere havas pasi ĉirkaŭ 740 00:51:18,000 --> 00:51:21,000 speciala argumento aŭ alia parametro 741 00:51:21,000 --> 00:51:23,000 diras al vi kiel granda la tabelo estas. 742 00:51:23,000 --> 00:51:28,000 En ĉi tiu kazo, mi volas uzi komo-I'm sorry, ĝi estas pafante la ekrano tie- 743 00:51:28,000 --> 00:51:32,000 kaj mi pasas en alia argumento 744 00:51:32,000 --> 00:51:40,000  kaj nomas ĝin int len ​​por la longa. 745 00:51:40,000 --> 00:51:44,000 >> Unu afero kiu povas veni sur la kvizo 746 00:51:44,000 --> 00:51:49,000 petas vin skribi aŭ apliki aparta funkcio nomita ion. 747 00:51:49,000 --> 00:51:54,000 Se ni ne donos al vi la prototipo, do ĉi tiu tuta afero ĉi tie, 748 00:51:54,000 --> 00:51:58,000 ĉi tiu tuta salaton nomas la funkcion deklaro aŭ la funkcio prototipo, 749 00:51:58,000 --> 00:52:01,000 tio estas unu el la unuaj aferoj kiujn vi volas najli malsupren se ĝi estas ne donita 750 00:52:01,000 --> 00:52:03,000 vin tuj sur la kvizo. 751 00:52:03,000 --> 00:52:06,000 La alia ruzo mi lernis estas ke 752 00:52:06,000 --> 00:52:11,000 diras, ke ni faru al vi prototipo por funkcio, kaj ni diru, "He, vi devas skribi ĝin." 753 00:52:11,000 --> 00:52:16,000 Interne de la frizita krampoj, ke vi havas sur la kvizo 754 00:52:16,000 --> 00:52:20,000 se vi rimarkos ke ekzistas reveno tipo kaj vi rimarkos ke la reveno tipo 755 00:52:20,000 --> 00:52:25,000 estas io alia ol malplena, kio signifas ke la funkcio ne redonas nenion, 756 00:52:25,000 --> 00:52:28,000 tiam unu afero vi ja volas fari estas skribi 757 00:52:28,000 --> 00:52:33,000 ia reveno deklaro ĉe la fino de la funkcio. 758 00:52:33,000 --> 00:52:40,000 Revenu, kaj en ĉi tiu kazo, ni metos malplenan ĉar ni volas plenigi la malplenan. 759 00:52:40,000 --> 00:52:44,000 Sed ĉi gets vi pensas en la dekstra vojo pri tio, kiel mi povos alproksimigi tiun problemon? 760 00:52:44,000 --> 00:52:49,000 Kaj ĝi rememorigas al vi ke vi tuj devas reveni valoro 761 00:52:49,000 --> 00:52:51,000 al la telefonanto de la funkcio. 762 00:52:51,000 --> 00:52:54,000 >> Yeah. >> [Studenta] Does stilo apliki kiam ni skribas kodo en la kvizo? 763 00:52:54,000 --> 00:52:58,000 Kiel deŝovon kaj tiu klaso de aĵoj? >> [Studenta] Yeah. 764 00:52:58,000 --> 00:53:00,000 Ne, ne tiel. 765 00:53:00,000 --> 00:53:09,000 Mi kredas multan-ĉi estas io ni klarigi la kvizo en la tago de, 766 00:53:09,000 --> 00:53:15,000 sed tipe maltrankviligante # inkludas kaj tian materialon, estas speco de ekstere. 767 00:53:15,000 --> 00:53:17,000 [Studenta] Cxu vi bezonas diri vian manskribita kodo? 768 00:53:17,000 --> 00:53:19,000 Ĉu vi bezonas diri vian manskribita kodo? 769 00:53:19,000 --> 00:53:24,000 Dirante estas ĉiam bona se vi ĝenus pri partaj kredito 770 00:53:24,000 --> 00:53:29,000 aŭ vi volas komuniki vian intencon al la grader. 771 00:53:29,000 --> 00:53:33,000 Sed mi, denove, klarigos en la kvizo mem kaj en la kvizo tago, 772 00:53:33,000 --> 00:53:39,000 sed mi ne kredas ke vi estos necesa por skribi komentojn, ne. 773 00:53:39,000 --> 00:53:42,000 Tipe ne, sed estas definitive la tiaj aferoj kie 774 00:53:42,000 --> 00:53:45,000 vi povas komuniki vian intencon, kiel "Hej, ĉi tiu estas kie mi iros kun ĝi." 775 00:53:45,000 --> 00:53:49,000 Kaj kelkfoje, ke ili povas helpi kun parta kredito. 776 00:53:49,000 --> 00:53:51,000 Cool. 777 00:53:51,000 --> 00:53:53,000 >> Bazilo. 778 00:53:53,000 --> 00:53:56,000 [Bazilo] Kio estas la diferenco inter deklarante, diru, int lang 779 00:53:56,000 --> 00:54:03,000 en la argumentoj aŭ parametroj kontre deklari variablon en la funkcio? 780 00:54:03,000 --> 00:54:05,000 Wow, kafo malsupreniris la windpipe. 781 00:54:05,000 --> 00:54:07,000 [Bazilo] Kiel kiujn aferojn ni volas meti en argumentoj. 782 00:54:07,000 --> 00:54:09,000 Yeah, ke estas granda demando. 783 00:54:09,000 --> 00:54:11,000 Kiel vi elektas tion, kion vi volas meti en la argumentoj 784 00:54:11,000 --> 00:54:17,000 kontre kion vi devas fari ene de la funkcio? 785 00:54:17,000 --> 00:54:24,000 En ĉi tiu kazo ni inkludis ambaŭ de ĉi tiuj kiel argumentoj 786 00:54:24,000 --> 00:54:29,000 ĉar ili estas io ke kiu tuj uzos la sumo funkcio 787 00:54:29,000 --> 00:54:32,000 bezonas precizigi tion. 788 00:54:32,000 --> 00:54:35,000 >> La sumo funkcio, kiel ni raportis, ne havas manieron de scii 789 00:54:35,000 --> 00:54:40,000 kiel granda la tabelo estas alvenas de lia telefonanto aŭ kiu ajn uzas la sumo funkcio. 790 00:54:40,000 --> 00:54:44,000 Ĝi ne havas manieron de scii granda ke tabelo estas. 791 00:54:44,000 --> 00:54:48,000 La kialo ni pasas en ĉi longo ĉi tie kiel argumento 792 00:54:48,000 --> 00:54:51,000 estas ĉar tio estas iu kiu ni esence diri la telefonanto de la funkcio, 793 00:54:51,000 --> 00:54:55,000 ajn tuj uzos la sumo funkcio, "He, ne nur vi devas doni al ni tabelo 794 00:54:55,000 --> 00:54:59,000 de ints, vi ankaŭ devas diri al ni kiel granda la tabelo kiun vi donis al ni estas. " 795 00:54:59,000 --> 00:55:03,000 [Bazilo] Tiuj estos ambaŭ esti komandlinio argumentoj? 796 00:55:03,000 --> 00:55:06,000 Ne, ĉi tiuj estas realaj argumentoj kiujn vi pasus al la funkcio. 797 00:55:06,000 --> 00:55:10,000 >> Lasu min fari novan paĝon tie. 798 00:55:10,000 --> 00:55:13,000 [Bazilo] Kiel nomo pasus- 799 00:55:13,000 --> 00:55:24,000 [Nate H.] Se mi havas int main (void), 800 00:55:24,000 --> 00:55:27,000 kaj mi tuj metos en mia reveno 0 cxi tie malsupre, 801 00:55:27,000 --> 00:55:31,000 kaj diru mi volas nomi la sumo funkcio. 802 00:55:31,000 --> 00:55:42,000 Mi volas diri int x = sumo (); 803 00:55:42,000 --> 00:55:46,000 Por uzi la sumo funkcio mi devas pasi en ambaŭ la tabelo, ke mi volas resumi 804 00:55:46,000 --> 00:55:51,000 kaj la longo de la tabelo, do ĉi tiu estas kie 805 00:55:51,000 --> 00:55:54,000 supozante mi havis aron da ints, 806 00:55:54,000 --> 00:56:12,000 diras mi havis int numbaz [] = 1, 2, 3, 807 00:56:12,000 --> 00:56:16,000 ia uzo kiu tiras supren sintakso dekstra tie, 808 00:56:16,000 --> 00:56:21,000 tiam kion mi faras estas en sumo mi volus pasi en 809 00:56:21,000 --> 00:56:27,000 ambaŭ numbaz kaj la numero 3 810 00:56:27,000 --> 00:56:30,000 por diri al la sumo funkcio "Okay, jen la tabelo mi volas ke vi resumi." 811 00:56:30,000 --> 00:56:34,000 "Jen lia grandeco." 812 00:56:34,000 --> 00:56:39,000 Ĉu tio havas sencon? Ĉu tio respondas vian demandon? 813 00:56:39,000 --> 00:56:42,000 >> En multaj manieroj ĝi faras paralelajn kion ni faras kun ĉefa 814 00:56:42,000 --> 00:56:44,000 kiam ni havas la komandlinio argumentoj. 815 00:56:44,000 --> 00:56:47,000 Programo kiel Cezaro kodita, ekzemple, kiu bezonis 816 00:56:47,000 --> 00:56:53,000 komandlinio argumentoj ne estus kapabla fari ion. 817 00:56:53,000 --> 00:56:57,000 Ĝi ne scias kiel kodi se vi ne diros ĝin kio ŝlosilon por uzi 818 00:56:57,000 --> 00:57:03,000 aŭ se vi ne diros ĝin kio string vi volis kodi. 819 00:57:03,000 --> 00:57:08,000 Instigante por enigo, ĉi tiu estas kie ni havas 2 malsamajn mekanismojn 820 00:57:08,000 --> 00:57:14,000 por preni enigo en de la uzanto, por preni informojn en de la uzanto. 821 00:57:14,000 --> 00:57:19,000 Por Problemo Ŝanĝu 1 ni vidis ĉi GetInt, GetString, GetFloat vojo 822 00:57:19,000 --> 00:57:26,000 de instigante por enigo kaj ke nomas uzanta la normo eniro rivereto. 823 00:57:26,000 --> 00:57:28,000 Estas iomete malsamaj. 824 00:57:28,000 --> 00:57:31,000 Estas iu kiu povas fari samtempe kiel kontraŭ 825 00:57:31,000 --> 00:57:35,000 kiam vi vokas la programo, kiam vi komencas la programo kuras. 826 00:57:35,000 --> 00:57:41,000 La komandlinio argumentoj ĉiuj estas precizigita kiam vi komencas la programo kurado. 827 00:57:41,000 --> 00:57:47,000 Ni estis miksante la du el tiuj. 828 00:57:47,000 --> 00:57:52,000 Kiam ni uzas argumentojn al funkcio, estas multe kiel komanda linio argumentojn al ĉefa. 829 00:57:52,000 --> 00:57:56,000 Estas kiam vi alvokas la funkcion vi bezonas sciigi 830 00:57:56,000 --> 00:58:05,000 kion ekzakte li bezonas, por plenumi siajn taskojn. 831 00:58:05,000 --> 00:58:08,000 Alia bona afero por rigardi, kaj mi ellasos vin rigardi ĝin en via libera tempo, 832 00:58:08,000 --> 00:58:11,000 kaj estis kovrita en la kvizo-estis tiu nocio de medio 833 00:58:11,000 --> 00:58:15,000 kaj lokajn variablojn kontre tutmonda variabloj. 834 00:58:15,000 --> 00:58:18,000 Ĉu atentu tion. 835 00:58:18,000 --> 00:58:23,000 >> Nun kiam ni pretigis al tiu alia materialo, 836 00:58:23,000 --> 00:58:27,000 en Semajno 3 ni komencis paroli pri serĉado kaj ordigi. 837 00:58:27,000 --> 00:58:32,000 Serĉado kaj ordigi, almenaŭ en CS50, 838 00:58:32,000 --> 00:58:39,000 estas tre enkonduko al kelkaj el la pli teoria partoj de komputiko. 839 00:58:39,000 --> 00:58:42,000 La problemo de serĉado, la problemo de ordigi 840 00:58:42,000 --> 00:58:46,000 estas granda, kanona problemojn. 841 00:58:46,000 --> 00:58:52,000 Kiel vi trovos apartan numeron en tabelo de miliardoj de entjeroj? 842 00:58:52,000 --> 00:58:55,000 Kiel trovi apartan nomon ene de telefono libro 843 00:58:55,000 --> 00:58:59,000 ke tio trovigxas en via portebla? 844 00:58:59,000 --> 00:59:04,000 Kaj tial ni enkondukas ĉi nocio de asimptota run fojoj 845 00:59:04,000 --> 00:59:11,000 por vere kvantigi kiel longe, kiel malfacile tiuj problemo estas, 846 00:59:11,000 --> 00:59:14,000 kiel longe ili prenas solvi. 847 00:59:14,000 --> 00:59:20,000 En, mi kredas, 2011 La kvizo tie estas problemo, kiun mi opinias meritoj 848 00:59:20,000 --> 00:59:27,000 kovrante tre rapide, kiu estas ĉi tiu, problemo 12. 849 00:59:27,000 --> 00:59:32,000 Ho ne, ĝi estas Omega. 850 00:59:32,000 --> 00:59:41,000 >> Ĉi tie ni parolas pri la plej rapida ebla tempo de ekzekuto 851 00:59:41,000 --> 00:59:46,000 por aparta algoritmo kaj tiam la plej malrapida ebla tempo de ekzekuto. 852 00:59:46,000 --> 00:59:52,000 Ĉi Omega kaj O estas vere ĝuste ŝparvojoj. 853 00:59:52,000 --> 00:59:55,000 Ili estas _notational_ ligiloj por diri 854 00:59:55,000 --> 00:59:59,000 kiom firme en la plej bona ebla kazo volo nia algoritmo kuri, 855 00:59:59,000 --> 01:00:06,000 kaj kiel malrapida en la plej malbona ebla kazo nia algoritmo ruli? 856 01:00:06,000 --> 01:00:10,000 Ni faru kelkajn el tiuj, kaj tiuj ankaŭ estis kovrita 857 01:00:10,000 --> 01:00:13,000 en la mallonga sur asimptota skribmaniero, kiun mi tre rekomendas. 858 01:00:13,000 --> 01:00:17,000 Jackson faris vere bonan laboron. 859 01:00:17,000 --> 01:00:23,000 Kun duuma serĉo, ni parolas pri duuma serĉo kiel algoritmo, 860 01:00:23,000 --> 01:00:28,000 kaj ni kutime parolas pri tio en terminoj de lia granda O. 861 01:00:28,000 --> 01:00:30,000 Kio estas la granda a? 862 01:00:30,000 --> 01:00:34,000 Kio estas la plej malrapida ebla tempo de ekzekuto de duuma serĉo? 863 01:00:34,000 --> 01:00:36,000 [Studenta] N ²? 864 01:00:36,000 --> 01:00:41,000 Apude, mi supozas similan al tio. 865 01:00:41,000 --> 01:00:43,000 Estas multe pli rapida ol tio. 866 01:00:43,000 --> 01:00:45,000 [Studenta] Duuma? >> Jes, duuma serĉo. 867 01:00:45,000 --> 01:00:47,000 [Studenta] Estas logo n. 868 01:00:47,000 --> 01:00:49,000 Ensalutu n, tiel kion faras ensaluti n signifas? 869 01:00:49,000 --> 01:00:51,000 Ĝi duonoj ĝin ĉiu ripeto. 870 01:00:51,000 --> 01:00:56,000 Precize, do en la plej malrapida ebla kazo, 871 01:00:56,000 --> 01:01:00,000 diru se vi havas ordo tabelo 872 01:01:00,000 --> 01:01:08,000 de miliono entjeroj kaj la nombro vi serĉas 873 01:01:08,000 --> 01:01:14,000 estas ĉu la unua elemento en la tabelo aŭ la lastan eron en la tabelo. 874 01:01:14,000 --> 01:01:18,000 Memoru, la duuma serĉo algoritmo funkcias rigardante la mezo elemento, 875 01:01:18,000 --> 01:01:21,000 vidante se tio estas la partio kiu vi serĉas. 876 01:01:21,000 --> 01:01:23,000 Se jes, tiam granda, vi trovis ĝin. 877 01:01:23,000 --> 01:01:27,000 >> En la plej bona ebla kazo, kiel rapide faras duuma serĉo kuri? 878 01:01:27,000 --> 01:01:29,000 [Studentoj] 1. 879 01:01:29,000 --> 01:01:32,000 1, ĝi estas konstanta tempo, granda O de 1. Yeah. 880 01:01:32,000 --> 01:01:36,000 [Studenta] Mi havas demandon. Kiam vi diras ensaluti de n, vi volas diri kun respekto al bazo 2, ĉu ne? 881 01:01:36,000 --> 01:01:40,000 Jes, tiel ke estas la alia afero. 882 01:01:40,000 --> 01:01:44,000 Ni diru log n, kaj mi supozas, kiam mi estis en mezlernejo 883 01:01:44,000 --> 01:01:48,000 Mi ĉiam supozis ke log estis bazo 10. 884 01:01:48,000 --> 01:01:57,000 Yeah, do jes, log bazo 2 tipe estas kion ni uzas. 885 01:01:57,000 --> 01:02:02,000 Denove, irante reen al duuma serĉo, se vi serĉas ĉu 886 01:02:02,000 --> 01:02:05,000 la elemento en la fino aŭ en la elemento en la komenco, 887 01:02:05,000 --> 01:02:08,000 ĉar vi komencas en la mezo kaj tiam vi forĵetos 888 01:02:08,000 --> 01:02:13,000 ajn duono ne plenumas la kriteriojn kiujn vi serĉas, 889 01:02:13,000 --> 01:02:15,000 kaj vi iru al la sekvanta duono kaj la sekva duono kaj la sekva duono. 890 01:02:15,000 --> 01:02:19,000 Se mi serĉas la plej granda ero en la miliono entjero tabelo 891 01:02:19,000 --> 01:02:25,000 Mi tuj halve ĝi maksimume log'o da 1 milionoj fojoj 892 01:02:25,000 --> 01:02:28,000 antaŭ ol mi fine testi kaj vidi, ke la elemento Mi serĉas 893 01:02:28,000 --> 01:02:33,000 Estas en la plej granda aŭ en la plej alta indico de la tabelo, 894 01:02:33,000 --> 01:02:38,000 kaj kiu portos log n, ensaluti de 1 miliono foje. 895 01:02:38,000 --> 01:02:40,000 >> Bobelo varon. 896 01:02:40,000 --> 01:02:43,000 Ĉu vi infanoj memoras la bobelo speco algoritmo? 897 01:02:43,000 --> 01:02:47,000 Kevin, vi povas doni al mi rapidan recap de kio okazis en la veziko speco algoritmo? 898 01:02:47,000 --> 01:02:50,000 [Kevin] Esence ĝi iras tra ĉiu en la listo. 899 01:02:50,000 --> 01:02:52,000 Ĝi rigardas la du unuaj. 900 01:02:52,000 --> 01:02:55,000 Se la unua estas pli granda ol la dua oni interŝanĝas ilin. 901 01:02:55,000 --> 01:02:58,000 Tiam komparas dua kaj tria, saman, svopoj, 902 01:02:58,000 --> 01:03:00,000 tria kaj kvara, la tutan vojon malsupren. 903 01:03:00,000 --> 01:03:03,000 Granda nombro sekvos ĝis la fino. 904 01:03:03,000 --> 01:03:07,000 Kaj post tamen multaj maŝojn vi faris. 905 01:03:07,000 --> 01:03:11,000 Precize, do kio Kevin diris estas ke ni rigardas pli grandaj nombroj 906 01:03:11,000 --> 01:03:15,000 bobelo ĝis la fino de la tabelo. 907 01:03:15,000 --> 01:03:19,000 Ekzemple, ĉu vi bonvolus marŝante ni per ĉi tiu ekzemplo, se ĉi tiu estas nia tabelo? 908 01:03:19,000 --> 01:03:21,000 [Kevin] Vi prenas 2 kaj 3. 909 01:03:21,000 --> 01:03:23,000 3 estas pli grandaj ol 2, do vi interŝanĝi ilin. 910 01:03:23,000 --> 01:03:29,000 [Nate H.] Ĝuste, do ni interŝanĝi tiujn, kaj tiel ni atingos 2, 3, 6, 4, kaj 9. 911 01:03:29,000 --> 01:03:31,000 [Kevin] Tiam oni komparas la 3 kaj 6. 912 01:03:31,000 --> 01:03:33,000 3 estas pli malgranda ol 6, do vi lasos ilin, 913 01:03:33,000 --> 01:03:37,000 kaj 6 kaj 4, vi volas interŝanĝi ilin ĉar 4 estas pli malgranda ol 6. 914 01:03:37,000 --> 01:03:42,000 [Nate H.] Ĝuste, do I get 2, 3, 4, 6, 9. 915 01:03:42,000 --> 01:03:46,000 [Kevin] Kaj 9 estas pli granda ol 6, do vi lasos ĝin. 916 01:03:46,000 --> 01:03:48,000 Kaj vi volas iri reen tra ĝi denove. 917 01:03:48,000 --> 01:03:50,000 >> [Nate H.] Am mi faris je ĉi tiu punkto? >> [Kevin] No 918 01:03:50,000 --> 01:03:52,000 Kaj kial mi ne faris je ĉi tiu punkto? 919 01:03:52,000 --> 01:03:54,000 Ĉar ĝi aspektas kiel miaj tabelo estas ordigita. Mi rigardis ĝin. 920 01:03:54,000 --> 01:03:57,000 [Kevin] Go tra ĝi denove kaj certigi, ke ne ekzistas pli svopoj 921 01:03:57,000 --> 01:04:00,000 antaŭ ol vi povos plene haltos. 922 01:04:00,000 --> 01:04:04,000 Ekzakte, tiel vi devas teni tuj tra kaj certigi, ke ne ekzistas svopoj 923 01:04:04,000 --> 01:04:06,000 ke vi povas fari en ĉi tiu punkto. 924 01:04:06,000 --> 01:04:08,000 Vere estis nur bonŝanca, kiel vi diris, ke ni finis 925 01:04:08,000 --> 01:04:12,000 nur devi fari 1 pasas tra kaj ni ordo. 926 01:04:12,000 --> 01:04:16,000 Sed por fari tion en la ĝenerala kazo ni vere devas fari tion denove kaj denove. 927 01:04:16,000 --> 01:04:20,000 Kaj fakte, tio estis la ekzemplo de la plej bona ebla kazo, 928 01:04:20,000 --> 01:04:24,000 kiel ni vidis en la problemo. 929 01:04:24,000 --> 01:04:28,000 Ni vidis, ke la plej bona ebla kazo n. 930 01:04:28,000 --> 01:04:32,000 Ni trapasis la tabelo 1 fojo. 931 01:04:32,000 --> 01:04:35,000 Kio estas la plej malbona ebla kazo por ĉi tiu algoritmo? 932 01:04:35,000 --> 01:04:37,000 [Kevin] N ². 933 01:04:37,000 --> 01:04:41,000 Kaj kion tio ke rigardo ŝatus? Kion tabelo aspektas kiel kiu portus n ² tempo? 934 01:04:41,000 --> 01:04:43,000 [Kevin] [inaudible] ordo. 935 01:04:43,000 --> 01:04:51,000 Precize, do se mi havus la tabelo 9, 7, 6, 5, 2, 936 01:04:51,000 --> 01:04:54,000 unue la 9 would bobelo tuta vojo supren. 937 01:04:54,000 --> 01:04:59,000 Post 1 ripeto ni havus 7, 6, 5, 2, 9. 938 01:04:59,000 --> 01:05:07,000 Tiam la 7 would bobelo supren, 6, 5, 2, 7, 9, kaj tiel plu kaj tiel plu. 939 01:05:07,000 --> 01:05:13,000 >> Ni devus iri tra la tuta tabelo n fojoj, 940 01:05:13,000 --> 01:05:16,000 kaj vi povas reale preni iom pli precizan ol tio 941 01:05:16,000 --> 01:05:23,000 ĉar iam ni movis la 9 tuta vojo supren al lia lasta ebla pozicio 942 01:05:23,000 --> 01:05:26,000 Ni scias, ke ni neniam devas kompari kontraŭ tiu elemento denove. 943 01:05:26,000 --> 01:05:29,000 Iam ni komencu bobelis la 7 ĝis 944 01:05:29,000 --> 01:05:35,000 ni scias, ke ni povas halti tuj la 7 estas rekta antaux la 9 945 01:05:35,000 --> 01:05:37,000 ĉar ni jam komparis la 9 al ĝi. 946 01:05:37,000 --> 01:05:46,000 Se vi faros tion en inteligenta maniero ne estas vere, mi supozas, ke multe da tempo. 947 01:05:46,000 --> 01:05:49,000 Vi ne tuj kompari ĉiujn eblajn [inaudible] kombinaĵoj 948 01:05:49,000 --> 01:05:55,000 ĉiun solan fojon vi iras tra ĉiu ripeto. 949 01:05:55,000 --> 01:05:59,000 Sed ankoraŭ, kiam ni parolas pri tiu supera baro ni diras, ke 950 01:05:59,000 --> 01:06:04,000 vi serĉas al la n ² komparoj tuta vojo tra. 951 01:06:04,000 --> 01:06:12,000 >> Ni reiru, kaj pro tio ni komencis ricevi iom mallonga ĝustatempe 952 01:06:12,000 --> 01:06:15,000 Mi dirus al vi devus definitive iri tra la resto de ĉi tiu tablo, 953 01:06:15,000 --> 01:06:17,000 plenigi ĉion eksteren. 954 01:06:17,000 --> 01:06:20,000 Pensu pri ekzemploj. Pensu pri konkretaj ekzemploj. 955 01:06:20,000 --> 01:06:22,000 Tio estas vere utila kaj helpema por fari. 956 01:06:22,000 --> 01:06:25,000 Desegni ĝin. 957 01:06:25,000 --> 01:06:28,000 Ĉi tiu estas la speco de tablo, kiu kiel vi iros tra en komputiko 958 01:06:28,000 --> 01:06:32,000 vi devas vere komenci scii tiujn parkere. 959 01:06:32,000 --> 01:06:34,000 Tio estas la specoj de demandoj vi akiras en intervjuoj. 960 01:06:34,000 --> 01:06:36,000 Ĉi tiuj estas specoj de aferoj, kiuj estas bone scii, 961 01:06:36,000 --> 01:06:41,000 kaj pensas pri tiuj rando kazoj, vere decidi kiom pensi 962 01:06:41,000 --> 01:06:45,000 sciante, ke por bobelo ordigi la plej malbona ebla tabelo 963 01:06:45,000 --> 01:06:52,000 ordigi kun tiu estas unu tio estas en inversa ordo. 964 01:06:52,000 --> 01:06:58,000 >> Punteros. Ni parolu iomete pri punteros. 965 01:06:58,000 --> 01:07:03,000 En la lastaj kelkaj minutoj ni havas ĉi tie 966 01:07:03,000 --> 01:07:11,000 Mi konas ĉi tio estas iu kune kun dosiero / S kiu estas prefere nova. 967 01:07:11,000 --> 01:07:19,000 Kiam ni parolas pri punteros la kialo ni volas paroli pri punteros 968 01:07:19,000 --> 01:07:24,000 estas ĉar, oni, kiam ni laboras en C 969 01:07:24,000 --> 01:07:33,000 ni estas vere en sufiĉe malalta nivelo kompare al pli modernaj programlingvoj. 970 01:07:33,000 --> 01:07:38,000 Ni efektive povis manipuli la variabloj en memoro, 971 01:07:38,000 --> 01:07:43,000 elŝeligi kie ili estas reale lokita ene de nia memoro RAM. 972 01:07:43,000 --> 01:07:46,000 Kiam vi foriris sur preni mastruma sistemo klasoj vi vidos 973 01:07:46,000 --> 01:07:48,000 ke tio, denove, ia abstraktaĵo. 974 01:07:48,000 --> 01:07:50,000 Tio ne vere estas la kazo. 975 01:07:50,000 --> 01:07:52,000 Ni havas virtualan memoron ke tio kaŝiĝas tiuj detaloj de ni. 976 01:07:52,000 --> 01:07:58,000 >> Sed por nun vi povas supozi ke kiam vi havas programon, 977 01:07:58,000 --> 01:08:02,000 ekzemple, kiam oni komencas kuri vian Cezaro kodita programo- 978 01:08:02,000 --> 01:08:06,000 Mi ŝanĝi reen al mia iPad vere rapide- 979 01:08:06,000 --> 01:08:12,000 ke en la tre komencante via programo, se vi havas, ekzemple, 980 01:08:12,000 --> 01:08:15,000 4 gigabajtoj de RAM en via portebla, 981 01:08:15,000 --> 01:08:21,000 vi get flankenmetis tiun eron, kaj ni vokos ĉi RAM. 982 01:08:21,000 --> 01:08:25,000 Kaj parto en placo ni iras por voki 0, 983 01:08:25,000 --> 01:08:30,000 kaj ĝi finiĝas ĉe loko kiu ni vokos 4 gigabajtoj. 984 01:08:30,000 --> 01:08:37,000 Mi vere ne povas skribi. Viro, kiu tiras. 985 01:08:37,000 --> 01:08:40,000 Kiam via programo ekzekutas 986 01:08:40,000 --> 01:08:44,000 la mastruma sistemo skulptas supren RAM, 987 01:08:44,000 --> 01:08:51,000 kaj ĝi specifas malsamaj segmentoj por malsamaj partoj de via programo por enloĝi 988 01:08:51,000 --> 01:08:58,000 Cxi tie ĉi areo estas speco de tero de neniu. 989 01:08:58,000 --> 01:09:02,000 Kiam vi iros iom pli tie 990 01:09:02,000 --> 01:09:05,000 vi havas reale la loko, kie 991 01:09:05,000 --> 01:09:09,000 la kodo por via programo vivoj. 992 01:09:09,000 --> 01:09:13,000 Ke reala duuma kodo, ke ruleblan dosieron reale gets ŝarĝas en memoro 993 01:09:13,000 --> 01:09:17,000 kiam vi kuros programon, kaj ĝi vivas en la kodo segmento. 994 01:09:17,000 --> 01:09:22,000 Kaj kiel via programo ekzekutas la procesoro rigardas ĉi tiun kodon segmento 995 01:09:22,000 --> 01:09:24,000 elŝeligi kio estas la sekvan instrukcion? 996 01:09:24,000 --> 01:09:27,000 Kio estas la sekvanta linio de kodo mi bezonas por ekzekuti? 997 01:09:27,000 --> 01:09:31,000 >> Ekzistas ankaŭ datumoj segmento, kaj ĉi tiu estas kie tiuj kordoj konstantoj 998 01:09:31,000 --> 01:09:34,000 get stokita ke vi estis uzante. 999 01:09:34,000 --> 01:09:42,000 Kaj tiam pli supre estas tio loko nomata la amaso. 1000 01:09:42,000 --> 01:09:46,000 Ni aliro memoro tien per malloc, 1001 01:09:46,000 --> 01:09:49,000 kaj tiam al la plejsupro de via programo 1002 01:09:49,000 --> 01:09:52,000 tie estas la pilo, 1003 01:09:52,000 --> 01:09:57,000 kaj tie estas kie ni estis ludante por la plejparto de la komenco. 1004 01:09:57,000 --> 01:09:59,000 Tiu ne estas skalo aŭ nenion. 1005 01:09:59,000 --> 01:10:03,000 Multaj ĉi estas tre maŝino dependas, 1006 01:10:03,000 --> 01:10:10,000 mastruma sistemo dependa, sed tio estas relative kiel aferoj get chunked supren. 1007 01:10:10,000 --> 01:10:17,000 Kiam vi kuros programo kaj vi deklaras variablon nomata x- 1008 01:10:17,000 --> 01:10:27,000 Mi iros por desegni alia skatolo sube, kaj tion oni tuj estos RAM tiel. 1009 01:10:27,000 --> 01:10:29,000 Kaj mi tuj serĉos. 1010 01:10:29,000 --> 01:10:34,000 Ni desegni pintaj linioj por indiki ĉi tiu estas nur malgranda parto de RAM 1011 01:10:34,000 --> 01:10:38,000 kaj ne ĉiuj de ĝi kiel ni desegni ĉe la supro. 1012 01:10:38,000 --> 01:10:43,000 >> Se mi deklarus entjero variablo nomata x, 1013 01:10:43,000 --> 01:10:49,000 tiam kion mi reale preni estas surĵeto 1014 01:10:49,000 --> 01:10:54,000 kiu estas stokitaj en la simboltabelon de mia programo 1015 01:10:54,000 --> 01:11:00,000 kiu konektas la nomon x al ĉi tiu regiono de memoro kiu mi desegnis 1016 01:11:00,000 --> 01:11:03,000 ĉi tie inter la vertikala stangoj. 1017 01:11:03,000 --> 01:11:08,000 Se mi havas linion de kodo en mia programo kiu diras x = 7 1018 01:11:08,000 --> 01:11:15,000 la procesoro scias "Ho, bone, mi scias ke x vivojn en ĉi loko en memoro." 1019 01:11:15,000 --> 01:11:25,000 "Mi tuj iros antaŭen kaj skribi 7 tie." 1020 01:11:25,000 --> 01:11:28,000 Kiel ĝi scias kion situo estas en memoro? 1021 01:11:28,000 --> 01:11:30,000 Nu, ke tio ĉio farita en kompila tempo. 1022 01:11:30,000 --> 01:11:34,000 La tradukilo prizorgas atribuo kie ĉiu de la variabloj tuj iros 1023 01:11:34,000 --> 01:11:40,000 kaj kreante specialan surĵeto aŭ pli ĝuste ligas la punktoj 1024 01:11:40,000 --> 01:11:43,000 inter simbolo kaj kie okazas, variablo nomo 1025 01:11:43,000 --> 01:11:46,000 kaj kie okazas vivi en la memoro. 1026 01:11:46,000 --> 01:11:50,000 Sed ĝi rezultas ke ni povas efektive atingi ĝin en niaj programoj ankaŭ. 1027 01:11:50,000 --> 01:11:55,000 Ĉi gets grava kiam ni komencis paroli pri iu el la datumstrukturoj, 1028 01:11:55,000 --> 01:11:58,000 kiu estas koncepto kiu nin tuj enkonduki poste. 1029 01:11:58,000 --> 01:12:09,000 >> Sed nuntempe, kion vi povas scii estas ke mi povas krei puntero al ĉi tiu loko, x. 1030 01:12:09,000 --> 01:12:12,000 Ekzemple, mi povas krei puntero variablo. 1031 01:12:12,000 --> 01:12:16,000 Kiam ni krei puntero variablo ni uzas la stelon skribmaniero. 1032 01:12:16,000 --> 01:12:21,000 En ĉi tiu kazo, ĉi diras mi iros por krei puntero al int. 1033 01:12:21,000 --> 01:12:24,000 Ĝi estas tipo same kiel ĉiu alia. 1034 01:12:24,000 --> 01:12:27,000 Ni donas ĝin variablo kiel y, 1035 01:12:27,000 --> 01:12:32,000 kaj poste ni starigis ĝin egala al la adreso, al adreso. 1036 01:12:32,000 --> 01:12:38,000 En ĉi tiu kazo, ni povas agordi y atentigi al x 1037 01:12:38,000 --> 01:12:43,000 per prenante la adreso de x, kiun ni faras kun-signo, 1038 01:12:43,000 --> 01:12:55,000 kaj poste ni starigis y atentigi al tio. 1039 01:12:55,000 --> 01:12:59,000 Kio ĉi esence tio estas, se ni rigardas nian RAM 1040 01:12:59,000 --> 01:13:02,000 tio kreas apartan variablo. 1041 01:13:02,000 --> 01:13:04,000 Ĝi okazas nomi ĝin y, 1042 01:13:04,000 --> 01:13:06,000 kaj kiam ĉi tiu linio de kodo ekzekutas 1043 01:13:06,000 --> 01:13:13,000 ĝi estas fakte tuj krei iom puntero kiu ni kutime desegni kiel sago, 1044 01:13:13,000 --> 01:13:15,000 kaj ĝi proponas y atentigi al x. 1045 01:13:15,000 --> 01:13:17,000 Jes. 1046 01:13:17,000 --> 01:13:19,000 [Studenta] Se x estas jam pointer, ĉu vi nur faru 1047 01:13:19,000 --> 01:13:22,000 int * y = x anstataŭ havi la signo? 1048 01:13:22,000 --> 01:13:24,000 Jes. 1049 01:13:24,000 --> 01:13:27,000 Se x estas jam pointer, tiam vi povas agordi 2 punteros egala al ĉiu alia, 1050 01:13:27,000 --> 01:13:30,000 en kies kazo y ne notas al x, 1051 01:13:30,000 --> 01:13:34,000 sed ĝi indikas kion ajn x estas indikante. 1052 01:13:34,000 --> 01:13:37,000 Bedaŭrinde, ni estas el la tempo. 1053 01:13:37,000 --> 01:13:44,000 >> Kion mi dirus al ĉi tiu punkto, ni povas paroli pri tiu offline, 1054 01:13:44,000 --> 01:13:49,000 sed mi dirus komenci labori per tiu problemo, # 14. 1055 01:13:49,000 --> 01:13:53,000 Vi povas vidi ke estas jam iom plenigis por vi ĉi tie. 1056 01:13:53,000 --> 01:13:57,000 Vi povas vidi ke kiam ni deklaras 2 punteros, int * x kaj * y, 1057 01:13:57,000 --> 01:14:01,000 kaj rimarku ke notante la * apud la variablo estis iu kiu faris pasintjare. 1058 01:14:01,000 --> 01:14:05,000 Ĝi rezultas ke ĉi tiu estas simila al kion ni faras ĉi-jare. 1059 01:14:05,000 --> 01:14:11,000 Ne gravas, kie vi skribos la * kiam vi deklarante la puntero. 1060 01:14:11,000 --> 01:14:17,000 Sed ni skribis la * apud la tipo 1061 01:14:17,000 --> 01:14:24,000 ĉar tio faras tre klare, ke vi deklarante puntero variablo. 1062 01:14:24,000 --> 01:14:27,000 Vi povas vidi ke deklarante la 2 punteros donas ni 2 skatoloj. 1063 01:14:27,000 --> 01:14:31,000 Jen, kiam ni starigis x egala al malloc 1064 01:14:31,000 --> 01:14:34,000 kion ĉi diras subiras flanken memoro en la havaĵo. 1065 01:14:34,000 --> 01:14:41,000 Ĉi tiu malgranda skatolo ĉi tie, ĉi rondo, estas lokita sur la monteto. 1066 01:14:41,000 --> 01:14:43,000 X estas montrante al ĝi. 1067 01:14:43,000 --> 01:14:46,000 Notu ke y estas ankoraŭ ne indikante nenion. 1068 01:14:46,000 --> 01:14:50,000 Akiri memoron-por stoki la numero 42 en x 1069 01:14:50,000 --> 01:14:55,000 ni uzus kion skribmaniero? 1070 01:14:55,000 --> 01:14:59,000 [Studenta] * x = 42. 1071 01:14:59,000 --> 01:15:01,000 Ekzakte, * x = 42. 1072 01:15:01,000 --> 01:15:06,000 Tio signifas sekvi la sago kaj jxetu 42 en tie. 1073 01:15:06,000 --> 01:15:09,000 Jen kie ni starigis y kaj x ni y montrante al x. 1074 01:15:09,000 --> 01:15:13,000 Denove, tio estas ĝuste kiel kio Kevin diris, kie ni starigis y egala al x. 1075 01:15:13,000 --> 01:15:15,000 Y estas ne montrante al x. 1076 01:15:15,000 --> 01:15:19,000 Pli ĝuste, ĝi estas indikante kion x estas indikante ankaŭ. 1077 01:15:19,000 --> 01:15:24,000 >> Kaj poste fine en ĉi tiu lasta skatolo estas 2 eblaj aĵoj kiuj ni povus fari. 1078 01:15:24,000 --> 01:15:28,000 Unu estas ni povus diri * x = 13. 1079 01:15:28,000 --> 01:15:33,000 La alia afero estas ni povus diri-Alex, ĉu vi scias kion ni povus fari tie? 1080 01:15:33,000 --> 01:15:37,000 Vi povus diri * x = 13 aŭ- 1081 01:15:37,000 --> 01:15:41,000 [Studenta] Vi povus diri int ajn. 1082 01:15:41,000 --> 01:15:45,000 [Nate H.] Se tiu estis raportita kiel int variablo ni povus fari tion. 1083 01:15:45,000 --> 01:15:49,000 Ni povus ankaŭ diri * y = 13 ĉar ili estas ambaŭ montrante la saman lokon, 1084 01:15:49,000 --> 01:15:51,000 do ni povus uzi aŭ variablo alveni. 1085 01:15:51,000 --> 01:15:56,000 Yeah. >> [Studenta] Kion ĝi aspektas kiel se ni nur diros int x estas 13? 1086 01:15:56,000 --> 01:16:00,000 Kiu estus deklari novan variablon nomata x, kiu ne funkcius. 1087 01:16:00,000 --> 01:16:04,000 Ni havus kolizio ĉar ni deklaras x al esti puntero ĝis ĉi tie. 1088 01:16:04,000 --> 01:16:10,000 [Studenta] Se ni nur havis tiun deklaron per sin kio ĝi similas en terminoj de la cirklo? 1089 01:16:10,000 --> 01:16:14,000 Se ni havis x = 13, tiam ni havus skatolo, kaj prefere ol, havante sago 1090 01:16:14,000 --> 01:16:16,000 eliro de la skatolo ni volas desegni ĝin kiel nur 13. 1091 01:16:16,000 --> 01:16:19,000 [Studenta] En la skatolo. Okay. 1092 01:16:19,000 --> 01:16:24,000 >> Dankon pro rigardante, kaj bonan sorton en Quiz 0. 1093 01:16:24,000 --> 01:16:28,000 [CS50.TV]