1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Semèn 4] 2 00:00:03,000 --> 00:00:05,000 [David J. Malan] [Inivèsite Harvard] 3 00:00:05,000 --> 00:00:08,000 [Sa a se CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Tout dwa, sa a se CS50, e sa se kòmansman an nan semèn 4, 5 00:00:12,000 --> 00:00:16,000 ak sa a se youn nan algoritm yo klasman plus posib. 6 00:00:16,000 --> 00:00:19,000 Ki youn te ye ke nou fèk sòt gade a? 7 00:00:19,000 --> 00:00:24,000 Sa yo ki te sòt jarèt, nan lòd gwo O (n ^ 2) + sòm, 8 00:00:24,000 --> 00:00:28,000 ak tout bon nou se pa yo menm sèlman nan mond sa a sanble yo konnen 9 00:00:28,000 --> 00:00:30,000 sa ki sòt jarèt se oswa tan kouri li yo. 10 00:00:30,000 --> 00:00:33,000 Vreman vre, sa a te yon entèvyou ak Eric Schmidt nan Google 11 00:00:33,000 --> 00:00:45,000 ak ansyen senatè Barack Obama jis yon kèk ane de sa. 12 00:00:45,000 --> 00:00:48,000 >> Koulye a, Senatè, w ap isit la nan Google, 13 00:00:48,000 --> 00:00:54,000 ak mwen renmen panse a prezidans lan kòm yon entèvyou travay. 14 00:00:54,000 --> 00:00:58,000 Koulye a, li difisil a jwenn yon travay kòm prezidan, ak yon w ap ale atravè tout rigoureux yo kounye a. 15 00:00:58,000 --> 00:01:00,000 Li la tou difisil yo jwenn yon travay nan Google. 16 00:01:00,000 --> 00:01:05,000 Nou gen kesyon, epi nou poze kesyon kandida nou an, 17 00:01:05,000 --> 00:01:10,000 ak sa a se yon sèl soti nan Larry Schwimmer. 18 00:01:10,000 --> 00:01:14,000 Ou nèg panse mwen plèzantri? Li nan dwa isit la. 19 00:01:14,000 --> 00:01:18,000 Ki sa ki se yon fason a ki pi efikas sòt yon milyon nonm antye relatif 32-bit? 20 00:01:18,000 --> 00:01:21,000 [Ri] 21 00:01:21,000 --> 00:01:24,000 Ki byen 22 00:01:24,000 --> 00:01:26,000 Mwen regrèt. >> Non, pa gen okenn, pa gen okenn, pa gen okenn. 23 00:01:26,000 --> 00:01:34,000 Mwen panse ke sòt nan jarèt ta dwe fason a mal yo ale. 24 00:01:34,000 --> 00:01:39,000 >> Vini non sou, ki moun ki te di l 'sa a? 25 00:01:39,000 --> 00:01:43,000 Semèn pase a sonje nou te pran yon repo nan kòd, omwen pou yon jou, 26 00:01:43,000 --> 00:01:46,000 e li te kòmanse konsantre sou kèk ide pi wo nivo ak pou rezoud pwoblèm plis jeneralman 27 00:01:46,000 --> 00:01:49,000 nan yon kontèks chèche ak Fouye, 28 00:01:49,000 --> 00:01:53,000 epi nou prezante yon bagay ki nou pa t 'kalòt sa a non sou semèn sot pase yo, 29 00:01:53,000 --> 00:01:56,000 men asenptotik notasyon, O a Big, Omega an Big, 30 00:01:56,000 --> 00:02:00,000 epi pafwa Big Theta notasyon a, ak sa yo ki te tou senpleman fason 31 00:02:00,000 --> 00:02:02,000 nan ki dekri tan an kouri nan algoritm, 32 00:02:02,000 --> 00:02:05,000 konbyen tan li pran pou yon algorithm nan kouri. 33 00:02:05,000 --> 00:02:08,000 >> Epi ou ka sonje ke ou te pale osijè de tan nan kouri an tèm de gwosè a 34 00:02:08,000 --> 00:02:11,000 nan opinyon la, ki nou jeneralman rele n, kèlkeswa pwoblèm yo kapab, 35 00:02:11,000 --> 00:02:13,000 kote n se kantite moun ki nan sal la, 36 00:02:13,000 --> 00:02:17,000 ki kantite paj nan yon liv telefòn, epi nou kòmanse ekri bagay sa yo deyò 37 00:02:17,000 --> 00:02:21,000 tankou O (n ^ 2) oswa O (n) oswa O (n boutèy demi lit n), 38 00:02:21,000 --> 00:02:24,000 e menm lè matematik la pa t 'byen travay deyò konsa parfe 39 00:02:24,000 --> 00:02:28,000 epi li te n ² - n / 2 oswa yon bagay tankou sa 40 00:02:28,000 --> 00:02:31,000 nou ta olye jis jete kèk nan tèm yo lòd pi ba, 41 00:02:31,000 --> 00:02:34,000 ak motivasyon an gen se ke nou vreman vle yon 42 00:02:34,000 --> 00:02:37,000 sòt de fason objektif nan evalye 43 00:02:37,000 --> 00:02:39,000 pèfòmans nan pwogram oswa pèfòmans de algoritm 44 00:02:39,000 --> 00:02:42,000 ki nan fen jou a, pa gen anyen fè, pou egzanp, 45 00:02:42,000 --> 00:02:45,000 ak vitès la nan òdinatè w lan jodi a. 46 00:02:45,000 --> 00:02:47,000 >> Pou egzanp, si ou aplike sòt bil, 47 00:02:47,000 --> 00:02:50,000 oswa ou aplike rantre sòt oswa seleksyon sòt sou òdinatè jodi a, 48 00:02:50,000 --> 00:02:53,000 yon 2 GHz òdinatè, ak ou kouri li, 49 00:02:53,000 --> 00:02:56,000 epi li pran kèk kantite segonn, ane pwochèn gen yon GHz 3 50 00:02:56,000 --> 00:02:59,000 oswa yon 4 GHz òdinatè, ak ou ta ka Lè sa a, reklamasyon ke "Wow, algorithm mwen 51 00:02:59,000 --> 00:03:03,000 se kounye a de fwa osi vit, "lè an reyalite sa a, se evidamman pa ka a. 52 00:03:03,000 --> 00:03:06,000 Se jis te kenkayri a te vinn pi vit, men òdinatè w lan 53 00:03:06,000 --> 00:03:10,000 pa te, ak pou nou reyèlman vle jete bagay sa yo tankou 54 00:03:10,000 --> 00:03:13,000 multiples nan 2 oswa miltip nan 3 lè li rive ki dekri 55 00:03:13,000 --> 00:03:17,000 konbyen vit oswa ki jan ralanti yon algorithm se ak reyèlman jis konsantre 56 00:03:17,000 --> 00:03:20,000 sou n oswa kèk faktè ladan l ', 57 00:03:20,000 --> 00:03:24,000 kèk pouvwa ladan l 'tankou nan ka a nan kalite ki soti nan semèn dènye a. 58 00:03:24,000 --> 00:03:27,000 Ak rapel ki avèk èd nan sòt unifye 59 00:03:27,000 --> 00:03:31,000 nou tout nou te kapab fè tèlman pi bon pase sòt jarèt ak sòt seleksyon 60 00:03:31,000 --> 00:03:33,000 e menm ensèsyon zèl. 61 00:03:33,000 --> 00:03:36,000 >> Nou te jwenn desann nan n boutèy demi lit n, e ankò, 62 00:03:36,000 --> 00:03:39,000 rapel ki n log jeneralman vle di yon bagay ki ap grandi 63 00:03:39,000 --> 00:03:43,000 pi dousman Lè sa a, n, se konsa n boutèy demi lit n konsa byen lwen te bon 64 00:03:43,000 --> 00:03:45,000 paske li te mwens pase ² n. 65 00:03:45,000 --> 00:03:47,000 Men, reyalize n ale n ak sòt unifye 66 00:03:47,000 --> 00:03:51,000 ki sa ki te jèm la debaz nan yon lide ke nou te ogmante 67 00:03:51,000 --> 00:03:54,000 ki nou menm tou nou exploitées tounen nan semèn 0? 68 00:03:54,000 --> 00:03:58,000 Ki jan nou atake pwoblèm nan klasman malen ak sòt unifye? 69 00:03:58,000 --> 00:04:04,000 Ki sa ki te insight nan kle, petèt? 70 00:04:04,000 --> 00:04:07,000 Nenpòt moun ki nan tout. 71 00:04:07,000 --> 00:04:09,000 Okay, kite a pran yon etap tounen. 72 00:04:09,000 --> 00:04:11,000 Dekri rantre sòt nan mo pwòp ou yo. 73 00:04:11,000 --> 00:04:15,000 Kouman li travay? 74 00:04:15,000 --> 00:04:17,000 Okay, nou pral tounen nan ranje 0 semèn. 75 00:04:17,000 --> 00:04:19,000 Okay, yeah. 76 00:04:19,000 --> 00:04:22,000 [Fèbl-elèv] 77 00:04:22,000 --> 00:04:26,000 Okay, bon, konsa nou divize etalaj la nan nimewo nan 2 moso. 78 00:04:26,000 --> 00:04:29,000 Nou klase chak de moso sa yo, ak Lè sa a, nou fizyone yo, 79 00:04:29,000 --> 00:04:33,000 epi nou te wè ide sa a anvan pou yo pran yon pwoblèm ki nan sa a gwo 80 00:04:33,000 --> 00:04:36,000 ak découper li moute nan yon pwoblèm ki nan sa a gwo oswa sa a gwo. 81 00:04:36,000 --> 00:04:38,000 >> Sonje egzanp lan liv telefòn nan. 82 00:04:38,000 --> 00:04:42,000 Sonje algorithm nan tèt-konte nan semèn de sa, 83 00:04:42,000 --> 00:04:45,000 te tèlman rantre sòt rezime sa a pseudocode isit la. 84 00:04:45,000 --> 00:04:48,000 Lè w ap bay eleman n, premye li te saniti tcheke. 85 00:04:48,000 --> 00:04:51,000 Si n <2 Lè sa a, pa fè anyen nan tout 86 00:04:51,000 --> 00:04:55,000 paske si n <2 Lè sa a, n se evidamman 0 oswa 1, 87 00:04:55,000 --> 00:04:57,000 epi konsa si li nan swa 0 oswa 1 pa gen anyen yo sòt. 88 00:04:57,000 --> 00:04:59,000 W ap fè. 89 00:04:59,000 --> 00:05:01,000 Se lis ou a deja trivyalman Ranje. 90 00:05:01,000 --> 00:05:04,000 Men, otreman si ou te gen 2 oubyen plis eleman ale pi devan epi divize yo 91 00:05:04,000 --> 00:05:06,000 nan 2 mwatye, kite la ak dwa. 92 00:05:06,000 --> 00:05:09,000 Sòt chak nan sa yo mwatye, ak Lè sa a, fizyone mwatye nan Klase. 93 00:05:09,000 --> 00:05:13,000 Men, pwoblèm nan isit la se ke nan zye premye sa a santi l tankou nou ap punting. 94 00:05:13,000 --> 00:05:17,000 Sa a se yon definisyon sikilè nan ke si mwen te mande ou pou'w sòt eleman sa yo n 95 00:05:17,000 --> 00:05:22,000 ak w ap di m '"Tout dwa, amann, nou pral klase sa yo eleman n / 2, ak moun ki n / 2," 96 00:05:22,000 --> 00:05:27,000 Lè sa a, kesyon pwochen m 'a pwal "Fine, ki jan ou sòt n nan / 2 eleman?" 97 00:05:27,000 --> 00:05:30,000 >> Men, paske se nan estrikti a nan pwogram sa a, 98 00:05:30,000 --> 00:05:33,000 paske gen ka sa a baz, se konsa pale, 99 00:05:33,000 --> 00:05:39,000 ka sa a espesyal ki di si n ap 00:05:42,000 pa reponn ak sa repons menm sikilè. 101 00:05:42,000 --> 00:05:46,000 Pwosesis sa a, sa a siklisite pral evantyèlman fini. 102 00:05:46,000 --> 00:05:50,000 Si m 'mande ou "Triye eleman sa yo n," epi ou di, "Fine, sòt sa yo n / 2," 103 00:05:50,000 --> 00:05:53,000 Lè sa a, ou di, "Fine, sòt sa yo n / 4, n / 8, n/16," 104 00:05:53,000 --> 00:05:56,000 evantyèlman ou pral divize pa yon nimewo gwo ase 105 00:05:56,000 --> 00:05:59,000 ki ou pral gen jis 1 gòch eleman, nan ki pwen ou ka di, 106 00:05:59,000 --> 00:06:02,000 "Isit la, isit la se yon eleman Ranje yon sèl." 107 00:06:02,000 --> 00:06:06,000 Lè sa a, briyans sa a algorithm moute isit la se yo dériver de la lefèt 108 00:06:06,000 --> 00:06:09,000 ke yon fwa ou gen tout moun sa yo bay lis endividyèlman Ranje, 109 00:06:09,000 --> 00:06:12,000 tout nan yo ki yo se nan gwosè 1, ki sanble ap initil, 110 00:06:12,000 --> 00:06:15,000 yon fwa ou kòmanse Fusion yo ak fusion yo 111 00:06:15,000 --> 00:06:19,000 ou bati finalman kòm Rob te fè nan videyo a yon lis finalman Ranje. 112 00:06:19,000 --> 00:06:22,000 >> Men, ide sa a fin lwen lwen pase klasman. 113 00:06:22,000 --> 00:06:26,000 Gen ide sa a entegre nan pwogram sa a ke yo rekonèt kòm rkursyon, 114 00:06:26,000 --> 00:06:29,000 lide a kote ou se yon pwogram nan, 115 00:06:29,000 --> 00:06:32,000 ak yo rezoud kèk pwoblèm ou rele tèt ou, 116 00:06:32,000 --> 00:06:36,000 oubyen yo mete li nan yon kontèks lang programmation ou se yon fonksyon, 117 00:06:36,000 --> 00:06:39,000 ak yo nan lòd yo rezoud yon pwoblèm, ou fonksyon an rele tèt ou 118 00:06:39,000 --> 00:06:42,000 ankò, li ankò e ankò, men ou fonksyon an 119 00:06:42,000 --> 00:06:44,000 pa ka rele tèt ou fwa enfiniman anpil. 120 00:06:44,000 --> 00:06:47,000 Evantyèlman ou gen anba soti, sa yo pale, 121 00:06:47,000 --> 00:06:49,000 epi gen kèk kondisyon baz difisil-kode ki di 122 00:06:49,000 --> 00:06:53,000 nan pwen sa a sispann rele tèt ou pou ke pwosesis la tout antye 123 00:06:53,000 --> 00:06:56,000 finalman an reyalite sispann. 124 00:06:56,000 --> 00:06:58,000 Ki sa sa reyèlman vle di, nan recurse? 125 00:06:58,000 --> 00:07:01,000 >> Ann gade pou wè, si nou ka fè yon senp, trivial egzanp ak, di, 126 00:07:01,000 --> 00:07:03,000 3 moun avè m 'moute isit la sou sèn, si yon moun se konfòtab. 127 00:07:03,000 --> 00:07:06,000 1, vini sou moute 2, ak 3. 128 00:07:06,000 --> 00:07:09,000 Si ou 3 vle vini isit la. 129 00:07:09,000 --> 00:07:12,000 Si ou vle kanpe dwat pwochen m 'isit la nan yon liy, sipoze ke pwoblèm nan nan men 130 00:07:12,000 --> 00:07:15,000 trè trivyalman konte kantite moun ki gen isit la. 131 00:07:15,000 --> 00:07:18,000 Men, franchman, mwen fatige nan tout egzanp sa yo konte. 132 00:07:18,000 --> 00:07:21,000 Sa a se pral pran kèk tan, 1, 2, ak dot, dot, dot. 133 00:07:21,000 --> 00:07:23,000 Li nan pral pran pou tout tan. 134 00:07:23,000 --> 00:07:25,000 Mwen ta pito jis bote pwoblèm sa a tout ansanm avèk èd nan-sa ki nan non ou? 135 00:07:25,000 --> 00:07:27,000 Sara. >> Sara, tout dwa. 136 00:07:27,000 --> 00:07:29,000 Kelly. >> Kelly ak? 137 00:07:29,000 --> 00:07:31,000 >> Willy. >> Willy, Sara, Kelly, ak Willy. 138 00:07:31,000 --> 00:07:34,000 Dwa koulye a, mwen te poze kesyon sa a pa yon moun 139 00:07:34,000 --> 00:07:37,000 konbyen moun ki moute sou etap sa a, epi mwen pa gen okenn lide. 140 00:07:37,000 --> 00:07:40,000 Sa a se yon lis reyèlman long, ak Se konsa, olye mwen pral fè sa a jwe fent. 141 00:07:40,000 --> 00:07:43,000 Mwen pral mande moun nan pwochen pou m 'fè pifò nan travay la, 142 00:07:43,000 --> 00:07:46,000 epi yon fwa li se fè ap fè pi fò nan travay la 143 00:07:46,000 --> 00:07:49,000 Mwen pral fè pi piti kantite travay posib ak jis ajoute 1 144 00:07:49,000 --> 00:07:51,000 mèt fè tout sa repons li bay la, se konsa isit la nou ale. 145 00:07:51,000 --> 00:07:54,000 Mwen te mande konbyen moun ki sou sèn. 146 00:07:54,000 --> 00:07:57,000 Konbyen moun ki se sou sèn nan kite nan ou? 147 00:07:57,000 --> 00:08:00,000 Bò gòch la nan m 'konsa? >> Okay, men se pa tronpe. 148 00:08:00,000 --> 00:08:04,000 Sa a bon, sa se kòrèk, men si nou vle kontinye sa a lojik 149 00:08:04,000 --> 00:08:08,000 kite a asime ke ou menm vle bote pwoblèm sa a nan kite nan nou, nou menm 150 00:08:08,000 --> 00:08:11,000 konsa olye ke repons dirèkteman ale pi devan epi jis pase Buck la. 151 00:08:11,000 --> 00:08:14,000 Oh, konbyen moun ki nan kite nan m 'konsa? 152 00:08:14,000 --> 00:08:16,000 Konbyen moun ki yo se sou bò goch la? 153 00:08:16,000 --> 00:08:18,000 1. 154 00:08:18,000 --> 00:08:27,000 [Ri] 155 00:08:27,000 --> 00:08:30,000 Oke, kidonk 0 konsa, sa ki kounye a Willy te fè 156 00:08:30,000 --> 00:08:33,000 se ou te tounen repons ou an direksyon sa a li di 0. 157 00:08:33,000 --> 00:08:36,000 Koulye a, ki sa ou ta dwe fè? >> 1. 158 00:08:36,000 --> 00:08:39,000 Oke, kidonk ou ap 1 a, se konsa ou di, "Tout dwa, mwen pral ajoute 1 159 00:08:39,000 --> 00:08:41,000 mèt fè tout sa konte Willy a te ", defason 1 + 0. 160 00:08:41,000 --> 00:08:43,000 Ou se kounye a 1 pou repons ou a sou bò dwat la se kounye a- 161 00:08:43,000 --> 00:08:45,000 1. >> Epi m 'ta dwe 2. 162 00:08:45,000 --> 00:08:48,000 Bon, se konsa w ap pran repons la anvan nan 1, 163 00:08:48,000 --> 00:08:51,000 ajoute kantite lajan an minimòm nan travay ou vle fè, ki se +1. 164 00:08:51,000 --> 00:08:55,000 Ou kounye a gen 2, epi ou Lè sa a, lage m 'ki valè? 165 00:08:55,000 --> 00:08:57,000 3, Mwen vle di, regrèt, 2. 166 00:08:57,000 --> 00:08:59,000 Bon. 167 00:08:59,000 --> 00:09:02,000 >> Oke, nou te gen 0 a bò gòch li. 168 00:09:02,000 --> 00:09:05,000 Lè sa a, nou te gen 1, ak Lè sa a, nou ajoute 2, 169 00:09:05,000 --> 00:09:07,000 e kounye a, w ap rmiz m 'nimewo 2 a, 170 00:09:07,000 --> 00:09:10,000 ak sa m ap di, oke, +1, 3. 171 00:09:10,000 --> 00:09:13,000 Genyen nan tout bon 3 moun kanpe akote m 'sou etap sa a, 172 00:09:13,000 --> 00:09:16,000 Se konsa nou te ka genyen evidamman fè sa trè linear, 173 00:09:16,000 --> 00:09:19,000 anpil nan menm jan an nan evidan, men nou sa nou te reyèlman fè? 174 00:09:19,000 --> 00:09:21,000 Nou te pran yon pwoblèm nan gwosè 3 okòmansman. 175 00:09:21,000 --> 00:09:24,000 Nou Lè sa a, li kase l 'desann nan yon pwoblèm nan gwosè 2, 176 00:09:24,000 --> 00:09:27,000 Lè sa a, yon pwoblèm nan gwosè 1, ak Lè sa a, finalman ka a baz 177 00:09:27,000 --> 00:09:29,000 te reyèlman, o, gen nan pa gen yon sèl la, 178 00:09:29,000 --> 00:09:33,000 nan ki pwen Willy tounen efektivman yon repons difisil-kode yon koup de fwa, 179 00:09:33,000 --> 00:09:36,000 epi yo te yon sèl nan dezyèm Lè sa a, bul leve, bul leve, bul leve, 180 00:09:36,000 --> 00:09:39,000 ak Lè sa a, pa ajoute nan sa a 1 yon lòt 181 00:09:39,000 --> 00:09:41,000 nou te aplike ide sa a debaz nan rkursyon. 182 00:09:41,000 --> 00:09:44,000 >> Koulye a, nan ka sa a li pa t 'reyèlman rezoud yon pwoblèm 183 00:09:44,000 --> 00:09:46,000 nenpòt ki plis efikasite Lè sa a, nou te wè konsa byen lwen. 184 00:09:46,000 --> 00:09:48,000 Men, panse osijè de algoritm yo nou te fè sou sèn konsa byen lwen. 185 00:09:48,000 --> 00:09:51,000 Nou te gen 8 moso papye sou tablo a, 186 00:09:51,000 --> 00:09:55,000 sou videyo lè Sean te kap chèche nimewo a, 7yèm, ak ki sa l 'te fè vrèman fè? 187 00:09:55,000 --> 00:09:58,000 Oke, li pa t 'fè nenpòt kalite separe ak konkeri. 188 00:09:58,000 --> 00:10:01,000 Li pa t 'fè nenpòt kalite rkursyon. 189 00:10:01,000 --> 00:10:03,000 Olye de sa li jis te fè sa algorithm lineyè. 190 00:10:03,000 --> 00:10:07,000 Men, lè nou prezante lide nan Ranje nimewo sou sèn viv semèn pase a 191 00:10:07,000 --> 00:10:09,000 Lè sa a, nou te gen sa a ensten pou yo ale nan mitan an, 192 00:10:09,000 --> 00:10:13,000 nan ki pwen nou te gen yon lis ki pi piti nan gwosè 4 oswa yon lòt lis nan gwosè 4, 193 00:10:13,000 --> 00:10:17,000 ak Lè sa a, nou te gen egzak menm pwoblèm lan, se konsa nou repete, repete, repete. 194 00:10:17,000 --> 00:10:19,000 Nan lòt mo, nou recursed. 195 00:10:19,000 --> 00:10:24,000 Mèsi anpil nan 3 volontè nou yo isit la pou demontre rkursyon avèk nou. 196 00:10:24,000 --> 00:10:28,000 >> Ann wè si nou pa ka fè sa a kounye a yon ti kras pi plis konkrè, 197 00:10:28,000 --> 00:10:30,000 rezoud yon pwoblèm ki ankò nou te kapab fè bèl byen fasil, 198 00:10:30,000 --> 00:10:34,000 men nou pwal sèvi ak li kòm yon wòch kite nan aplikasyon sa a lide debaz. 199 00:10:34,000 --> 00:10:37,000 Si m 'vle kalkile somasyon an yon pakèt moun sou chif, 200 00:10:37,000 --> 00:10:39,000 pou egzanp, si w pase nan kantite 3, 201 00:10:39,000 --> 00:10:42,000 Mwen vle ba ou valè a nan sigma 3, 202 00:10:42,000 --> 00:10:46,000 Se konsa sòm total la nan 3 + 2 + 1 + 0. 203 00:10:46,000 --> 00:10:48,000 Mwen vle jwenn tounen repons lan, 6, 204 00:10:48,000 --> 00:10:51,000 se konsa nou pral aplike sa a fonksyon sigma, sa a fonksyon somasyon 205 00:10:51,000 --> 00:10:54,000 sa, ankò, pran nan D ', ak Lè sa a, retounen somasyon an 206 00:10:54,000 --> 00:10:57,000 nan nimewo sa a tout wout la desann nan 0. 207 00:10:57,000 --> 00:10:59,000 Nou ta ka fè sa a bèl tou senpleman, dwa? 208 00:10:59,000 --> 00:11:01,000 Nou ta ka fè sa ak kèk kalite estrikti loupin, 209 00:11:01,000 --> 00:11:04,000 Se konsa, kite m 'ale pi devan epi pou yo jwenn sa a te kòmanse. 210 00:11:04,000 --> 00:11:07,000 >> Mete stdio.h. 211 00:11:07,000 --> 00:11:09,000 Kite m 'jwenn tèt mwen nan prensipal yo travay avèk isit la. 212 00:11:09,000 --> 00:11:12,000 Se pou nou sove sa a kòm sigma.c. 213 00:11:12,000 --> 00:11:14,000 Lè sa a, mwen pral ale nan isit la, ak mwen pral deklare yon n Int, 214 00:11:14,000 --> 00:11:18,000 ak mwen pral fè bagay sa yo pandan y ap itilizatè a pa kolabore. 215 00:11:18,000 --> 00:11:22,000 Pandan ke itilizatè a pa ban m 'yon chif pozitif 216 00:11:22,000 --> 00:11:26,000 kite m 'ale pi devan epi akselere yo pou GetInt n =, 217 00:11:26,000 --> 00:11:28,000 ak kite m 'ba yo kèk enstriksyon tankou sa ki fè, 218 00:11:28,000 --> 00:11:33,000 Se konsa printf ("pozitif nonm antye tanpri"). 219 00:11:33,000 --> 00:11:39,000 Jis yon bagay relativman senp tankou sa a pou ke nan moman an nou frape liy 14 220 00:11:39,000 --> 00:11:42,000 nou genyen kounye a yon antye relatif pozitif prezimableman nan n. 221 00:11:42,000 --> 00:11:44,000 >> Koulye a, kite a fè yon bagay avèk li. 222 00:11:44,000 --> 00:11:50,000 Kite m 'ale pi devan epi kalkile somasyon a, se konsa int sòm = sigma (n). 223 00:11:50,000 --> 00:11:54,000 Sigma se jis somasyon, se konsa mwen jis ekri l 'nan wout la amateur. 224 00:11:54,000 --> 00:11:56,000 Nou pral jis rele li sigma la. 225 00:11:56,000 --> 00:11:58,000 Sa a se sòm total la, epi kounye a mwen pral enprime soti rezilta a, 226 00:11:58,000 --> 00:12:08,000 printf ("sòm la, se pousantaj% d, \ n", sòm). 227 00:12:08,000 --> 00:12:11,000 Lè sa a, mwen pral tounen 0 pou mezire bon. 228 00:12:11,000 --> 00:12:15,000 Nou te fè tout bagay ki nan pwogram sa a egzije pou eksepte pati nan enteresan, 229 00:12:15,000 --> 00:12:18,000 ki se yo aktyèlman aplike fonksyon an sigma. 230 00:12:18,000 --> 00:12:22,000 >> Kite m 'ale desann isit la jouk anba a, ak kite m' deklare fonksyon sigma. 231 00:12:22,000 --> 00:12:26,000 Li nan te rive nan pran yon varyab ki nan nonb antye relatif nan kalite, 232 00:12:26,000 --> 00:12:30,000 epi ki sa done kalite mwen vle retounen prezimableman soti nan sigma? 233 00:12:30,000 --> 00:12:34,000 Int, paske mwen vle li matche ak atant mwen sou liyn 15. 234 00:12:34,000 --> 00:12:37,000 Nan isit la, kite m 'ale pi devan epi aplike sa a 235 00:12:37,000 --> 00:12:41,000 nan yon fason trè dwat. 236 00:12:41,000 --> 00:12:45,000 >> Se pou nou ale pi devan epi di Int sòm = 0, 237 00:12:45,000 --> 00:12:47,000 e kounye a, mwen pral ale gen yon ti kras pou riban isit la 238 00:12:47,000 --> 00:12:50,000 ki nan pral di yon bagay tankou sa a, 239 00:12:50,000 --> 00:13:01,000 pou (Int mwen = 0; mwen <= nimewo; mwen + +) sòm + = mwen. 240 00:13:01,000 --> 00:13:05,000 Lè sa a, mwen pral tounen sòm. 241 00:13:05,000 --> 00:13:07,000 Mwen te kapab aplike sa a nan nenpòt ki nimewo nan fason. 242 00:13:07,000 --> 00:13:09,000 Mwen te kapab itilize yon riban pandan y ap. 243 00:13:09,000 --> 00:13:11,000 Mwen te kapab sote lè l sèvi avèk varyab la sòm si mwen reyèlman te vle, 244 00:13:11,000 --> 00:13:15,000 men nan ti bout tan, nou jis gen yon fonksyon ke si mwen pa t 'gafe Se mwen menm sòm se 0. 245 00:13:15,000 --> 00:13:18,000 Lè sa a, li iterates ki ant 0 sou moute nan nimewo a, 246 00:13:18,000 --> 00:13:23,000 yo, epi sou chak iterasyon li ajoute ke valè aktyèl a sòm ak Lè sa a, retounen sòm. 247 00:13:23,000 --> 00:13:25,000 >> Koulye a, gen yon Optimization ti tay isit la. 248 00:13:25,000 --> 00:13:29,000 Sa a se pwobableman yon etap gaspiye, men se la pou li. Sa a se amann pou kounye a. 249 00:13:29,000 --> 00:13:32,000 Nou se omwen yo te konplè e byen pral 0 tout wout la sou yo. 250 00:13:32,000 --> 00:13:34,000 Pa trè di, e trè dwat, 251 00:13:34,000 --> 00:13:37,000 men li sanble ke ak fonksyon nan sigma nou gen opòtinite nan menm 252 00:13:37,000 --> 00:13:39,000 tankou nou te fè isit la sou sèn. 253 00:13:39,000 --> 00:13:42,000 Sou sèn nou jis konte konbyen moun ki te bò kote m ', 254 00:13:42,000 --> 00:13:47,000 men olye si nou te vle konte kantite 3 + 2 + 1 255 00:13:47,000 --> 00:13:51,000 sou desann nan 0 nou te kapab menm jan bote nan yon fonksyon 256 00:13:51,000 --> 00:13:55,000 ke mwen pral olye dekri tankou se te repetitif. 257 00:13:55,000 --> 00:13:57,000 Mwen kite nan yon saniti rapid tcheke, epi fè sèten mwen pa t 'gafe. 258 00:13:57,000 --> 00:14:00,000 >> Mwen konnen gen nan omwen youn nan bagay nan pwogram sa a ke mwen t 'fè sa ki mal. 259 00:14:00,000 --> 00:14:04,000 Lè m 'frape antre nan mwen pral jwenn nenpòt kalite tap rele ke nan m' konsa? 260 00:14:04,000 --> 00:14:06,000 Kisa mwen pwal yo dwe rele nan sou? 261 00:14:06,000 --> 00:14:11,000 Yeah, mwen bliye pwototip a, se konsa mwen lè l sèvi avèk yon fonksyon rele sigma sou liy 15, 262 00:14:11,000 --> 00:14:16,000 men li pa la te deklare jiskaske liy 22, Se konsa, mwen pi bon dinamik moute isit la 263 00:14:16,000 --> 00:14:22,000 epi deklare yon pwototip, epi mwen pral di Int sigma (Int nimewo), ak sa a, se li. 264 00:14:22,000 --> 00:14:24,000 Li nan aplike nan pati anba nan. 265 00:14:24,000 --> 00:14:27,000 >> Oswa yon lòt fason mwen te kapab rezoud sa a, 266 00:14:27,000 --> 00:14:30,000 Mwen te kapab deplase fonksyon an 'kanpe, ki se pa move, 267 00:14:30,000 --> 00:14:32,000 men omwen lè pwogram ou kòmanse jwenn long, franchman, 268 00:14:32,000 --> 00:14:35,000 Mwen panse ke gen nan kèk valè nan toujou gen prensipal nan tèt la 269 00:14:35,000 --> 00:14:38,000 pou ke ou nan lektè a ka louvri dosye a epi Lè sa a, imedyatman wè 270 00:14:38,000 --> 00:14:40,000 sa ki pwogram la ap fè san yo pa gen nan rechèch atravè li 271 00:14:40,000 --> 00:14:42,000 kap chèche ki fonksyon prensipal. 272 00:14:42,000 --> 00:14:49,000 Ann al desann nan fenèt tèminal mwen isit la, eseye fè sigma fè sigma, 273 00:14:49,000 --> 00:14:51,000 epi mwen vise jouk la a tou. 274 00:14:51,000 --> 00:14:55,000 Deklarasyon enplisit nan GetInt fonksyon vle di mwen te bliye fè sa lòt bagay? 275 00:14:55,000 --> 00:14:57,000 [Fèbl-elèv] 276 00:14:57,000 --> 00:15:00,000 Bon, se konsa aparamman yon erè komen, se konsa kite a mete sa a moute isit la, 277 00:15:00,000 --> 00:15:04,000 cs50.h, ak kounye a kite a tounen nan fenèt tèminal m 'yo. 278 00:15:04,000 --> 00:15:08,000 >> Mwen pral klè ekran an, epi mwen pral relance fè sigma. 279 00:15:08,000 --> 00:15:11,000 Li sanble yo te konpile. Kite m 'kouri sigma. 280 00:15:11,000 --> 00:15:15,000 Mwen pral tape nan nimewo a 3, e mwen t 'jwenn, 6, Se konsa, pa yon chèk rijid, 281 00:15:15,000 --> 00:15:18,000 men omwen li sanble yo dwe ap travay nan zye premye, men kounye a kite a RIP l 'apa, 282 00:15:18,000 --> 00:15:21,000 e kite yo aktyèlman ogmante lide nan rkursyon, ankò, 283 00:15:21,000 --> 00:15:24,000 nan yon kontèks trè senp pou ke nan tan yon kèk semèn ' 284 00:15:24,000 --> 00:15:27,000 lè nou kòmanse eksplore amateur estrikti done pase ranje 285 00:15:27,000 --> 00:15:30,000 nou gen yon lòt zouti nan bwat zouti a ak ki 286 00:15:30,000 --> 00:15:33,000 manipile estrikti ki done kòm nou pral wè. 287 00:15:33,000 --> 00:15:36,000 Sa a se apwòch la repete, apwòch la riban ki baze sou. 288 00:15:36,000 --> 00:15:39,000 >> Kite m 'olye kounye a fè sa. 289 00:15:39,000 --> 00:15:44,000 Kite m 'olye di ke somasyon an kantite 290 00:15:44,000 --> 00:15:48,000 sou desann nan 0 se reyèlman menm bagay la kòm 291 00:15:48,000 --> 00:15:53,000 nimewo + sigma (nimewo - 1). 292 00:15:53,000 --> 00:15:57,000 Nan lòt mo, jis tankou sou sèn mwen punted nan chak moun nan pèp la akote m ', 293 00:15:57,000 --> 00:16:00,000 epi yo nan vire te kenbe punting jiskaske nou finalman fon soti nan Willy, 294 00:16:00,000 --> 00:16:03,000 ki te gen retounen yon repons difisil-kode tankou 0. 295 00:16:03,000 --> 00:16:07,000 Isit la kounye a nou ap menm punting sigma 296 00:16:07,000 --> 00:16:10,000 fonksyon an menm jan sa te orijinal rele, men insight nan kle isit la 297 00:16:10,000 --> 00:16:12,000 se ke nou pa rele sigma idantik. 298 00:16:12,000 --> 00:16:14,000 Nou pa pase nan n. 299 00:16:14,000 --> 00:16:17,000 Nou ap byen klè pase nan nimewo - 1, 300 00:16:17,000 --> 00:16:20,000 Se konsa yon pwoblèm yon ti kras pi piti, yon ti jan pi piti pwoblèm. 301 00:16:20,000 --> 00:16:23,000 >> Malerezman, sa a se pa byen yon solisyon ankò, epi anvan nou ranje 302 00:16:23,000 --> 00:16:26,000 sa ki ta ka sote deyò tankou evidan nan kèk nan ou 303 00:16:26,000 --> 00:16:28,000 kite m 'ale pi devan epi relance fè. 304 00:16:28,000 --> 00:16:30,000 Li sanble te rekeyi oke. 305 00:16:30,000 --> 00:16:32,000 Kite m 'relance sigma ak 6. 306 00:16:32,000 --> 00:16:37,000 Whoops, kite m 'relance sigma ak 6. 307 00:16:37,000 --> 00:16:42,000 Nou te wè sa a anvan, kwake tan aksidantèlman dènye kòm byen. 308 00:16:42,000 --> 00:16:48,000 Poukisa mwen jwenn sa a fòt segmentation skre? Yeah. 309 00:16:48,000 --> 00:16:50,000 [Fèbl-elèv] 310 00:16:50,000 --> 00:16:53,000 Gen nan pa gen ka baz, ak plis espesyalman, ki sa ki pwobableman te pase? 311 00:16:53,000 --> 00:16:58,000 Sa a se yon sentòm nan ki kalite konpòtman? 312 00:16:58,000 --> 00:17:00,000 Di li yon ti kras pi fò. 313 00:17:00,000 --> 00:17:02,000 [Fèbl-elèv] 314 00:17:02,000 --> 00:17:05,000 Se yon riban enfini efektivman, ak pwoblèm nan ki gen pasan enfini 315 00:17:05,000 --> 00:17:08,000 lè yo gen ladan yo rkursyon nan ka sa a, yon fonksyon rele tèt li, 316 00:17:08,000 --> 00:17:10,000 kisa k ap rive chak fwa ou rele yon fonksyon? 317 00:17:10,000 --> 00:17:13,000 Oke, panse tounen nan ki jan nou mete deyò memwa a nan yon òdinatè. 318 00:17:13,000 --> 00:17:16,000 Nou te di ke gen nan sa a ti moso nan memwa rele pil la ki nan nan pati anba a, 319 00:17:16,000 --> 00:17:19,000 ak vin chak fwa ou rele yon fonksyon yon ti kras plis memwa mete 320 00:17:19,000 --> 00:17:24,000 sa a sou chemine sa yo rele ki gen varyab lokal ki fonksyon a oswa paramèt, 321 00:17:24,000 --> 00:17:27,000 Se konsa, si sigma rele sigma apèl sigma rele sigma 322 00:17:27,000 --> 00:17:29,000  rele sigma ki kote sa fen istwa? 323 00:17:29,000 --> 00:17:31,000 >> Oke, li evantyèlman Depatman kantite total 324 00:17:31,000 --> 00:17:33,000 nan memwa ki di ou gen disponib nan òdinatè ou. 325 00:17:33,000 --> 00:17:37,000 Ou anvahi segman nan ke w ap sipoze fè rete nan, 326 00:17:37,000 --> 00:17:40,000 epi ou jwenn sa a fòt segmentation, nwayo fatra a, 327 00:17:40,000 --> 00:17:43,000 epi ki sa debaz jete vle di se ke mwen kounye a gen yon dosye rele nwayo 328 00:17:43,000 --> 00:17:46,000 ki se yon dosye ki gen zewo ak moun yo 329 00:17:46,000 --> 00:17:49,000 ki aktyèlman nan tan kap vini an pral diagnostically itil. 330 00:17:49,000 --> 00:17:52,000 Si li pa evidan ak ou ki kote ensèk ou a se 331 00:17:52,000 --> 00:17:54,000 ou ka aktyèlman fè yon ti jan nan analiz legal, se konsa pale, 332 00:17:54,000 --> 00:17:58,000 sou sa a ranpli pil fatra nwayo, ki, ankò, se jis yon pakèt antye nan zewo ak moun yo 333 00:17:58,000 --> 00:18:02,000 ki esansyèlman reprezante eta a nan pwogram ou an nan memwa 334 00:18:02,000 --> 00:18:05,000 moman sa a li te fè kolizyon nan fason sa. 335 00:18:05,000 --> 00:18:11,000 >> Ranje a isit la se ke nou pa kapab jis je fèmen retounen sigma, 336 00:18:11,000 --> 00:18:14,000 nimewo a + sigma nan yon pwoblèm yon ti kras pi piti. 337 00:18:14,000 --> 00:18:16,000 Nou bezwen gen kèk kalite ka baz isit la, 338 00:18:16,000 --> 00:18:19,000 epi ki sa yo ta dwe ka a baz pwobableman ta dwe ye? 339 00:18:19,000 --> 00:18:22,000 [Fèbl-elèv] 340 00:18:22,000 --> 00:18:25,000 Okay, toutotan nimewo a se pozitif nou ta dwe aktyèlman retounen sa a, 341 00:18:25,000 --> 00:18:29,000 oubyen yo mete li yon lòt fason, si nonb ki se, di, <= a 0 342 00:18:29,000 --> 00:18:32,000 ou konnen ki sa, mwen pral ale pi devan epi retounen 0, 343 00:18:32,000 --> 00:18:36,000 anpil tankou Willy te fè, ak lòt bagay, mwen pral ale pi devan 344 00:18:36,000 --> 00:18:41,000 epi retounen sa a, se konsa li pa ke anpil ki pi kout 345 00:18:41,000 --> 00:18:44,000 pase vèsyon an repete ke nou te vide premye lè l sèvi avèk yon pou riban, 346 00:18:44,000 --> 00:18:48,000 men remake ke gen nan sa a sòt de distenksyon li. 347 00:18:48,000 --> 00:18:51,000 Olye pou yo retounen kèk nimewo ak fè tout sa a matematik 348 00:18:51,000 --> 00:18:54,000 epi ajoute bagay yo ak varyab lokal 349 00:18:54,000 --> 00:18:57,000 w ap olye li di: "Oke, si sa a se yon pwoblèm Super fasil, 350 00:18:57,000 --> 00:19:01,000 tankou nimewo a se <0, kite m 'imedyatman retounen 0. " 351 00:19:01,000 --> 00:19:03,000 >> Nou pa pwal santi yo deranje sipòte nimewo negatif, 352 00:19:03,000 --> 00:19:05,000 se konsa mwen pral kòd difisil valè a 0. 353 00:19:05,000 --> 00:19:08,000 Men, otreman, aplike ide sa a nan adisyon 354 00:19:08,000 --> 00:19:11,000 tout nimewo sa yo ansanm ou ka efektivman pran yon mòde ti 355 00:19:11,000 --> 00:19:14,000 soti nan pwoblèm nan, anpil tankou nou te fè sa isit la sou sèn, 356 00:19:14,000 --> 00:19:18,000 Lè sa a, bote rès la nan pwoblèm lan nan moun kap vini an, 357 00:19:18,000 --> 00:19:20,000 men nan ka sa a moun nan pwochen se tèt ou. 358 00:19:20,000 --> 00:19:22,000 Li nan yon fonksyon idantik yo te rele. 359 00:19:22,000 --> 00:19:25,000 Jis pase l yon pwoblèm ki pi piti ak pi piti ak pi piti chak fwa, 360 00:19:25,000 --> 00:19:28,000 e menm si nou gen pa byen ofisyèlman bagay sa yo nan kòd isit la 361 00:19:28,000 --> 00:19:33,000 sa a se egzakteman sa ki te ap pase nan semèn 0 ak liv la telefòn nan. 362 00:19:33,000 --> 00:19:36,000 Sa a se egzakteman sa ki te ap pase nan semèn sot pase ak Sean 363 00:19:36,000 --> 00:19:39,000 e avèk manifestasyon nou an pou chèche nimewo yo. 364 00:19:39,000 --> 00:19:42,000 Li nan ap pran yon pwoblèm epi divize li ankò epi ankò. 365 00:19:42,000 --> 00:19:44,000 >> Nan lòt mo, gen nan yon fason kounye a nan tradui 366 00:19:44,000 --> 00:19:47,000 sa a aranje mond reyèl, sa a aranje nivo ki pi wo 367 00:19:47,000 --> 00:19:51,000 nan separe ak konkeri ak fè yon bagay ankò e ankò 368 00:19:51,000 --> 00:19:56,000 nan kòd, kidonk sa a se yon bagay nou pral wè ankò sou tan. 369 00:19:56,000 --> 00:20:00,000 Koulye a, kòm yon sou kote, si ou nouvo nan rkursyon ou ta dwe omwen konprann kounye a 370 00:20:00,000 --> 00:20:02,000 poukisa sa a se komik. 371 00:20:02,000 --> 00:20:05,000 Mwen pral pou yo ale nan google.com, 372 00:20:05,000 --> 00:20:17,000 ak mwen pral pou fè rechèch pou kèk konsèy ak ke trik nouvèl sou rkursyon, antre. 373 00:20:17,000 --> 00:20:21,000 Di moun nan kap vini jwenn ou si yo pa te ri jis kounye a. 374 00:20:21,000 --> 00:20:23,000 Eske ou te vle di rkursyon? 375 00:20:23,000 --> 00:20:25,000 Eske ou te vle di-ah, gen nou ale. 376 00:20:25,000 --> 00:20:28,000 Okay, kounye a ki nan rès la nan tout moun. 377 00:20:28,000 --> 00:20:30,000 Yon ti kras Pak ze embedded yon kote gen nan Google. 378 00:20:30,000 --> 00:20:33,000 Kòm yon sou kote, youn nan lyen yo nou mete sou sit entènèt kou a nan 379 00:20:33,000 --> 00:20:36,000 pou jodi a se jis gri sa a nan algoritm klasman divès kalite, 380 00:20:36,000 --> 00:20:39,000 kèk nan yo ki nou gade semèn dènye, men sa ki nan bon sou sa a vizyalizasyon 381 00:20:39,000 --> 00:20:43,000 menm jan ou eseye vlope tèt ou tout bagay nou divès kalite ki gen rapò ak algoritm 382 00:20:43,000 --> 00:20:46,000 konnen ke ou ka trè fasil kounye a kòmanse ak diferan kalite entrain. 383 00:20:46,000 --> 00:20:50,000 Entrain yo tout ranvèse, entrain yo ki sitou Ranje, entrain yo o aza ak pou fè. 384 00:20:50,000 --> 00:20:53,000 Menm jan ou eseye, ankò, distenge bagay sa yo nan tèt ou 385 00:20:53,000 --> 00:20:57,000 reyalize ke sa a URL sou sit entènèt kou a la sou paj la Konferans 386 00:20:57,000 --> 00:21:00,000 ta ka ede ou rezon ki fè nan kèk nan moun yo. 387 00:21:00,000 --> 00:21:05,000 >> Jodi a nou finalman jwenn yo rezoud pwoblèm sa a ki sòti nan yon pandan y ap tounen, 388 00:21:05,000 --> 00:21:08,000 ki te ke sa a fonksyon swap jis pa t 'travay, 389 00:21:08,000 --> 00:21:12,000 ak ki sa ki te pwoblèm nan fondamantal ak sa a swap fonksyon, 390 00:21:12,000 --> 00:21:15,000 objektif la nan yo ki te ye a, ankò, fè echanj yon valè isit la ak isit la 391 00:21:15,000 --> 00:21:17,000 sa yo ki sa a k ap pase? 392 00:21:17,000 --> 00:21:20,000 Sa a pa t 'aktyèlman ap travay. Poukisa? 393 00:21:20,000 --> 00:21:22,000 Yeah. 394 00:21:22,000 --> 00:21:28,000 [Fèbl-elèv] 395 00:21:28,000 --> 00:21:31,000 Egzakteman, eksplikasyon a pou sa a bugginess 396 00:21:31,000 --> 00:21:34,000 tou senpleman se te paske lè w rele fonksyon nan C 397 00:21:34,000 --> 00:21:38,000 ak moun ki fonksyon pran agiman, tankou a ak b isit la, 398 00:21:38,000 --> 00:21:42,000 w ap pase nan kopi kèlkeswa valè w ap bay ak sa yo ki fonksyon. 399 00:21:42,000 --> 00:21:46,000 Ou pa yo ap bay valè orijinal yo tèt yo, 400 00:21:46,000 --> 00:21:49,000 Se konsa nou te wè sa a nan yon kontèks buggyc, 401 00:21:49,000 --> 00:21:52,000 buggy3.c, ki te gade yon ti kras yon bagay tankou sa a. 402 00:21:52,000 --> 00:21:57,000 >> Sonje byen, nou te gen x ak y inisyalizèd 1 ak 2, respektivman. 403 00:21:57,000 --> 00:21:59,000 Nou Lè sa a, enprime konnen ki sa ki yo te ye. 404 00:21:59,000 --> 00:22:03,000 Mwen Lè sa a, te deklare ke mwen te échanjé yo lè ou rele swap nan x, y. 405 00:22:03,000 --> 00:22:06,000 Men, pwoblèm lan te ke échanjé a te travay, 406 00:22:06,000 --> 00:22:10,000 men se sèlman nan sijè ki abòde lan swap a fonksyone tèt li. 407 00:22:10,000 --> 00:22:13,000 Osito ke nou frape liy 40 valè sa yo échanges 408 00:22:13,000 --> 00:22:16,000 yo te voye jete lwen, epi konsa pa gen anyen 409 00:22:16,000 --> 00:22:21,000 nan fonksyon orijinal la prensipal te aktyèlman chanje nan tout, 410 00:22:21,000 --> 00:22:26,000 Se konsa, si ou panse tounen Lè sa a, tankou sa ki sa a sanble an tèm de memwa nou 411 00:22:26,000 --> 00:22:29,000 si sa a bò gòch-men nan tablo a reprezante- 412 00:22:29,000 --> 00:22:33,000 ak, m pral fè pi byen m 'pou tout moun yo wè sa a-si sa a bò gòch-men nan tablo a 413 00:22:33,000 --> 00:22:37,000 reprezante, di, RAM ou a, ak chemine a pral grandi sou moute fason sa a, 414 00:22:37,000 --> 00:22:43,000 epi nou ka rele yon fonksyon tankou prensipal yo, ak prensipal gen 2 varyab lokal yo, x ak y, 415 00:22:43,000 --> 00:22:48,000 kite a dekri moun kòm x isit la, e kite yo dekri sa yo tankou y isit la, 416 00:22:48,000 --> 00:22:55,000 e kite yo mete nan 1 valè yo ak 2, kidonk sa a isit la se prensipal yo, 417 00:22:55,000 --> 00:22:58,000 ak ki lè prensipal rele fonksyon an swap sistèm nan fonksyone 418 00:22:58,000 --> 00:23:02,000 bay fonksyon an swap band pwòp li yo nan memwa sou chemine a, 419 00:23:02,000 --> 00:23:04,000 ankadreman pwòp li yo sou chemine a, se konsa pale. 420 00:23:04,000 --> 00:23:08,000 Li te tou repati 32 Bits pou sa yo antye. 421 00:23:08,000 --> 00:23:11,000 Li k ap pase nan rele yo a ak b, men sa a totalman abitrè. 422 00:23:11,000 --> 00:23:13,000 Li kapab yo rele yo tou sa li vle, men ki sa k ap pase lè prensipal 423 00:23:13,000 --> 00:23:19,000 apèl swap se li pran sa a 1, mete yon kopi a, mete yon kopi a. 424 00:23:19,000 --> 00:23:23,000 >> Gen 1 varyab lòt lokal yo nan swap, menm si, yo rele sa? >> Tan. 425 00:23:23,000 --> 00:23:27,000 Tan, se konsa, kite m 'bay tèt mwen yon lòt Bits 32 isit la, 426 00:23:27,000 --> 00:23:29,000 epi ki sa mwen te fè nan sa a fonksyon? 427 00:23:29,000 --> 00:23:34,000 M 'te di tan int jwenn yon, konsa yon gen 1, se konsa mwen te fè sa lè nou dènye te jwe ak egzanp sa a. 428 00:23:34,000 --> 00:23:39,000 Lè sa a, yon vin b, se konsa b se 2, pou kounye a sa a vin tounen 2, 429 00:23:39,000 --> 00:23:42,000 e kounye a, b vin tanporèr, se konsa tanporèr se 1, 430 00:23:42,000 --> 00:23:44,000 konsa koulye a b vin sa a. 431 00:23:44,000 --> 00:23:46,000 Sa a se gwo. Li te travay. 432 00:23:46,000 --> 00:23:49,000 Men, Lè sa a, le pli vit ke retounen yo fonksyon 433 00:23:49,000 --> 00:23:52,000 memwa swap a efektivman disparèt konsa ke li kapab itilize yo ankò 434 00:23:52,000 --> 00:23:58,000 pa kèk fonksyon lòt nan tan kap vini an, ak prensipal se evidamman konplètman chanje. 435 00:23:58,000 --> 00:24:00,000 Nou bezwen yon fason pou fondamantalman rezoud pwoblèm sa a, 436 00:24:00,000 --> 00:24:03,000 ak jodi a nou pral finalman gen yon fason pou fè sa kote 437 00:24:03,000 --> 00:24:06,000 nou ka prezante yon bagay yo rele yon konsèy. 438 00:24:06,000 --> 00:24:09,000 Li sanble ke nou ka rezoud pwoblèm sa a 439 00:24:09,000 --> 00:24:12,000 pa si yo pase nan kopi x ak y 440 00:24:12,000 --> 00:24:18,000 men olye si yo pase nan sa, ou panse ke, nan fonksyon an swap? 441 00:24:18,000 --> 00:24:20,000 Yeah, sa ki sou adrès sa a? 442 00:24:20,000 --> 00:24:22,000 Nou pa t vreman pale de adrès an detay anpil, 443 00:24:22,000 --> 00:24:25,000 Men, si sa a tablo reprezante memwa òdinatè mwen an 444 00:24:25,000 --> 00:24:28,000 nou te ka sètènman kòmanse Genyen bytes yo nan RAM mwen 445 00:24:28,000 --> 00:24:31,000 epi di sa a se multiple # 1, sa a se multiple # 2, multiple # 3, 446 00:24:31,000 --> 00:24:35,000 multiple # 4, multiple # ... 2 milya dola si mwen gen 2 jigokte nan RAM, 447 00:24:35,000 --> 00:24:38,000 pou nou te kapab sètènman vini ak kèk konplo abitrè numerotasyon 448 00:24:38,000 --> 00:24:41,000 pou tout bytes endividyèl yo nan memwa òdinatè mwen an. 449 00:24:41,000 --> 00:24:43,000 >> E si olye lè m 'rele swap 450 00:24:43,000 --> 00:24:47,000 olye ke pas nan kopi x ak y 451 00:24:47,000 --> 00:24:51,000 poukisa m pa olye pase nan adrès ki nan x isit la, 452 00:24:51,000 --> 00:24:55,000 adrès ki nan y isit la, esansyèlman adrès lapòs la 453 00:24:55,000 --> 00:24:59,000 nan x ak y paske lè sa a swap, si li te enfòme 454 00:24:59,000 --> 00:25:01,000 adrès la nan memwa nan x ak y, 455 00:25:01,000 --> 00:25:04,000 Lè sa a, boukante, si nou ki resevwa fòmasyon l 'yon ti jan, 456 00:25:04,000 --> 00:25:07,000 li te kapab potansyèlman kondwi ak sa yo ki adrès, se konsa pale, 457 00:25:07,000 --> 00:25:11,000 x, ak chanje nimewo a la, Lè sa a, kondwi nan adrès ki nan y, 458 00:25:11,000 --> 00:25:16,000 chanje nimewo a la, menm pandan pa aktyèlman ap resevwa kopi valè sa yo tèt li, 459 00:25:16,000 --> 00:25:19,000 se konsa menm si nou te pale osijè de sa a tankou se te memwa prensipal la 460 00:25:19,000 --> 00:25:23,000 ak memwa sa a swap tankou se te nan pwisan an ak pati nan danjere nan C 461 00:25:23,000 --> 00:25:28,000 se ke nenpòt fonksyon kapab touche memwa nan nenpòt kote nan òdinatè a, 462 00:25:28,000 --> 00:25:32,000 ak sa a se pwisan nan ke ou ka fè bagay sa yo trè anpenpan ak pwogram òdinatè nan C. 463 00:25:32,000 --> 00:25:36,000 Sa a se danjere paske ou ka tou vis moute nan trè fasil. 464 00:25:36,000 --> 00:25:39,000 An reyalite, youn nan fason yo pou pwogram ki pi komen jou sa yo yo dwe eksplwate 465 00:25:39,000 --> 00:25:42,000 toujou, se pou yon pwogramè pa reyalize 466 00:25:42,000 --> 00:25:45,000 ke li se pèmèt yon done 467 00:25:45,000 --> 00:25:49,000 Ou dwe ekri nan yon kote nan memwa ki pa te gen entansyon. 468 00:25:49,000 --> 00:25:51,000 >> Pou egzanp, li oswa li deklare yon etalaj de gwosè 10 469 00:25:51,000 --> 00:25:56,000 men Lè sa a, aksidantèlman ap eseye mete 11 bytes nan ki etalaj la memwa, 470 00:25:56,000 --> 00:25:59,000 epi ou kòmanse manyen pati nan memwa ki pa valab. 471 00:25:59,000 --> 00:26:02,000 Jis kontèks sa a, kèk nan ou ta ka konnen ke 472 00:26:02,000 --> 00:26:06,000 lojisyèl souvan envit ou pou nimewo seri oswa kle enskripsyon, 473 00:26:06,000 --> 00:26:08,000 Photoshop ak Pawòl ak pwogram tankou sa a. 474 00:26:08,000 --> 00:26:12,000 Egziste Gen fant yo, jan kèk nan nou konnen, sou entènèt kote ou ka kouri nan yon pwogram ti kras, 475 00:26:12,000 --> 00:26:14,000 ak vwala, pa gen okenn demann plis pou yon nimewo seri. 476 00:26:14,000 --> 00:26:16,000 Kouman yo ki ap travay? 477 00:26:16,000 --> 00:26:21,000 Nan anpil ka tout bagay sa yo yo se tou senpleman jwenn nan òdinatè yo 478 00:26:21,000 --> 00:26:24,000 tèks segments nan zewo reyèl òdinatè a nan ak moun yo 479 00:26:24,000 --> 00:26:28,000 kote se ke fonksyon kote nimewo seri a mande l, 480 00:26:28,000 --> 00:26:31,000 epi ou recouvrir espas sa a, oswa pandan y ap pwogram nan ap kouri 481 00:26:31,000 --> 00:26:33,000 ou kapab konnen ki kote se kle nan aktyèlman estoke 482 00:26:33,000 --> 00:26:37,000 lè l sèvi avèk yon bagay yo rele yon debugjeur, epi ou ka krak lojisyèl ki fason. 483 00:26:37,000 --> 00:26:40,000 Sa a se pa vle di ke sa a se objektif nou an pou koup la pwochen nan jou, 484 00:26:40,000 --> 00:26:42,000 men li gen anpil ramifications mond reyèl la. 485 00:26:42,000 --> 00:26:45,000 Ke youn k ap pase nan enplike vòl nan lojisyèl, 486 00:26:45,000 --> 00:26:47,000 , men tou genyen tou konpwomi nan machin tout antye. 487 00:26:47,000 --> 00:26:50,000 >> An reyalite, lè sit entènèt jou sa yo yo eksplwate 488 00:26:50,000 --> 00:26:53,000 ak konpwomèt ak done se fwit ak modpas yo yo vòlè li 489 00:26:53,000 --> 00:26:58,000 sa a trè souvan gen rapò ak jesyon pòv nan memwa yon sèl la, 490 00:26:58,000 --> 00:27:01,000 oswa, nan ka a nan bazdone, echèk yo prevwa 491 00:27:01,000 --> 00:27:03,000 konfwontasyon D ', se konsa pi plis sou sa nan semèn kap vini yo 492 00:27:03,000 --> 00:27:07,000 men pou kounye a jis yon preview glisman nan sòt nan nan domaj ke ou ka fè 493 00:27:07,000 --> 00:27:11,000 yo lè li pa byen konprann ki jan bagay yo travay anba kapo a. 494 00:27:11,000 --> 00:27:14,000 Ann al sou konprann poukisa sa a se kase 495 00:27:14,000 --> 00:27:17,000 ak yon zouti ki pral vin pi plis ak plis itil 496 00:27:17,000 --> 00:27:19,000 kòm pwogram nou jwenn plis konplèks. 497 00:27:19,000 --> 00:27:21,000 Se konsa, lwen lè ou te gen yon ensèk nan pwogram ou an 498 00:27:21,000 --> 00:27:23,000 kòman ou ale sou debogaj li? 499 00:27:23,000 --> 00:27:25,000 Ki sa ki te teknik ou a te konsa byen lwen, si anseye pa tf ou 500 00:27:25,000 --> 00:27:27,000 oswa jis tèt yo anseye yo? 501 00:27:27,000 --> 00:27:29,000 [Elèv] printf. 502 00:27:29,000 --> 00:27:31,000 Printf, se konsa printf te pwobableman te zanmi ou a nan ke si ou vle wè 503 00:27:31,000 --> 00:27:33,000 sa k ap pase sou andedan nan pwogram ou an 504 00:27:33,000 --> 00:27:36,000 ou jis mete printf isit la, printf isit la, printf isit la. 505 00:27:36,000 --> 00:27:38,000 Lè sa a, ou kouri l ', epi ou jwenn yon pakèt antye nan bagay sou ekran an 506 00:27:38,000 --> 00:27:43,000 ke ou ka itilize Lè sa a, enferyè ki sa ki aktyèlman pral mal nan pwogram ou an. 507 00:27:43,000 --> 00:27:45,000 >> Printf gen tandans ka yon bagay trè pwisan, 508 00:27:45,000 --> 00:27:47,000 men li la yon pwosesis ki trè manyèl. 509 00:27:47,000 --> 00:27:49,000 Ou gen yo mete yon printf isit la, yon printf isit la, 510 00:27:49,000 --> 00:27:51,000 epi si ou mete l 'andedan yon riban ou ta ka jwenn 100 liy 511 00:27:51,000 --> 00:27:53,000 nan pwodiksyon ke ou Lè sa a, gen pase atravè. 512 00:27:53,000 --> 00:27:58,000 Li pa yon mekanis trè user-zanmitay oswa entèaktif pou debogaj pwogram yo, 513 00:27:58,000 --> 00:28:00,000 men Erezman gen egziste altènatif. 514 00:28:00,000 --> 00:28:03,000 Genyen nan yon pwogram, pou egzanp, rele gdb, debogeur an gnou, 515 00:28:03,000 --> 00:28:06,000 ki se yon ti kras Esoteric nan fason ou sèvi ak li. 516 00:28:06,000 --> 00:28:08,000 Li se yon konplèks ti kras, men franchman, 517 00:28:08,000 --> 00:28:11,000 sa a se youn nan bagay sa yo kote si ou mete nan semèn sa a ak pwochen 518 00:28:11,000 --> 00:28:14,000 èdtan siplemantè a yo konprann yon bagay tankou gdb 519 00:28:14,000 --> 00:28:18,000 li pral delivre ou pwobableman dè dizèn de èdtan nan kouri long la, 520 00:28:18,000 --> 00:28:21,000 Se konsa ak sa, kite m 'ba ou yon kol sou kouman bagay sa a travay. 521 00:28:21,000 --> 00:28:23,000 >> Mwen nan fenèt tèminal m 'yo. 522 00:28:23,000 --> 00:28:26,000 Kite m 'ale pi devan epi pou konpile tout pwogram sa a, buggy3. 523 00:28:26,000 --> 00:28:28,000 Li nan deja jiska dat sa a. 524 00:28:28,000 --> 00:28:31,000 Kite m 'kouri li jis tankou nou te fè sa yon tounen pandan y ap, ak tout bon, li te kase. 525 00:28:31,000 --> 00:28:34,000 Men, poukisa sa a ye? Petèt mwen vise moute fonksyon an swap. 526 00:28:34,000 --> 00:28:37,000 Petèt li nan yon ak b. Mwen pa byen k ap deplase yo alantou kòrèkteman. 527 00:28:37,000 --> 00:28:39,000 Kite m 'ale pi devan epi fè sa. 528 00:28:39,000 --> 00:28:43,000 Olye ke sèlman kouri buggy3 kite m 'olye kouri sa a gdb pwogram nan, 529 00:28:43,000 --> 00:28:48,000 ak mwen pral di l 'bay kouri buggy3, 530 00:28:48,000 --> 00:28:52,000 ak mwen pral genyen ladan yo yon agiman liy lòd,-twi, 531 00:28:52,000 --> 00:28:55,000 epi n ap mete sa a nan pwoblèm nan fiti nan espèk fè sonje. 532 00:28:55,000 --> 00:28:57,000 Epi, koulye a sa a koòdone nwa ak blan déja moute sa, ankò, 533 00:28:57,000 --> 00:28:59,000 se yon ti kras akablan nan premye paske gen nan tout bagay sa a 534 00:28:59,000 --> 00:29:02,000 enfòmasyon garanti desann isit la, men omwen gen nan yon bagay yo konnen yo. 535 00:29:02,000 --> 00:29:04,000 Nan tèt la nan fenèt la se kòd aktyèl m 'yo, 536 00:29:04,000 --> 00:29:08,000 ak si mwen woulo liv moute isit la, kite m 'woulo liv nan tèt la anpil nan dosye mwen, 537 00:29:08,000 --> 00:29:11,000 ak tout bon, gen nan buggy3.c, ak avi nan fon an nan fenèt sa a 538 00:29:11,000 --> 00:29:13,000 Mwen gen sa a èd memwa gdb. 539 00:29:13,000 --> 00:29:16,000 >> Sa a se pa menm bagay la tou kòm nòmal mwen John Harvard èd memwa. 540 00:29:16,000 --> 00:29:19,000 Sa a se yon èd memwa ki k ap pase pou pou pèmèt mwen kontwole gdb. 541 00:29:19,000 --> 00:29:21,000 Gdb se yon debugjeur. 542 00:29:21,000 --> 00:29:24,000 Yon debugjeur se yon pwogram ki pèmèt ou mache nan 543 00:29:24,000 --> 00:29:27,000 ekzekisyon nan liy pwogram ou an pa liy pa liy, 544 00:29:27,000 --> 00:29:30,000 nan tout wout la fè anyen ou vle pwogram nan, 545 00:29:30,000 --> 00:29:33,000 te menm rele fonksyon, oswa kap, plis enpòtan, 546 00:29:33,000 --> 00:29:35,000 nan valè divès varyab la. 547 00:29:35,000 --> 00:29:37,000 Se pou nou ale pi devan epi fè sa. 548 00:29:37,000 --> 00:29:40,000 Mwen pral ale pi devan epi tape nan kouri nan èd memwa gdb a, 549 00:29:40,000 --> 00:29:43,000 Se konsa remake nan pati anba a kite nan ekran an mwen te tape kouri, 550 00:29:43,000 --> 00:29:45,000 epi mwen te frape antre nan, ak kisa nou te ke fè? 551 00:29:45,000 --> 00:29:50,000 Li literalman kouri pwogram m ', men mwen pa t' aktyèlman wè anpil ale nan isit la 552 00:29:50,000 --> 00:29:55,000 paske mwen pa gen aktyèlman te di debugjeur a 553 00:29:55,000 --> 00:29:57,000 pran yon poz nan yon moman patikilye nan tan. 554 00:29:57,000 --> 00:29:59,000 Jis tape kouri kouri pwogram nan. 555 00:29:59,000 --> 00:30:01,000 Mwen pa wè aktyèlman anyen. Mwen pa ka manipile li. 556 00:30:01,000 --> 00:30:03,000 >> Olye de sa, kite m 'fè sa. 557 00:30:03,000 --> 00:30:08,000 Lè sa a gdb èd memwa, kite m 'olye tape repo, antre. 558 00:30:08,000 --> 00:30:10,000 Sa se pa sa m 'vle di ke yo tape. 559 00:30:10,000 --> 00:30:13,000 Se pou nou olye tape repo prensipal la. 560 00:30:13,000 --> 00:30:15,000 Nan lòt mo, mwen vle yo mete yon bagay yo rele yon breakpoint, 561 00:30:15,000 --> 00:30:18,000 ki se jistèman rele paske li pral kraze oswa pran yon poz 562 00:30:18,000 --> 00:30:21,000 ekzekisyon nan pwogram ou an nan kote sa a an patikilye. 563 00:30:21,000 --> 00:30:23,000 Main se non an nan fonksyon m 'yo. 564 00:30:23,000 --> 00:30:25,000 Remake gdb se trè entelijan. 565 00:30:25,000 --> 00:30:28,000 Li kalkile soti ke prensipal k ap pase nan kòmanse apeprè nan liy 18 566 00:30:28,000 --> 00:30:32,000 nan buggy3.c, ak Lè sa a, remake isit la sou bò gòch tèt 567 00:30:32,000 --> 00:30:34,000 b + se dwa pwochen nan liy 18. 568 00:30:34,000 --> 00:30:38,000 Sa se raple m 'ke mwen te mete yon breakpoint nan liyn 18. 569 00:30:38,000 --> 00:30:42,000 Fwa sa a, lè m 'tape kouri, mwen pral kouri pwogram mwen 570 00:30:42,000 --> 00:30:45,000 moute jiskaske li frape ki breakpoint, 571 00:30:45,000 --> 00:30:48,000 Se konsa pwogram lan pral pran yon poz pou m 'nan liyn 18. 572 00:30:48,000 --> 00:30:50,000 Isit la nou ale, kouri. 573 00:30:50,000 --> 00:30:53,000 Pa gen anyen sanble li te rive, men avi nan pati anba kite 574 00:30:53,000 --> 00:30:58,000 kòmanse pwogram nan, buggy3, breakpoint 1 nan prensipal nan liy buggy3.c 18. 575 00:30:58,000 --> 00:31:00,000 Ki sa mwen ka fè kounye a? 576 00:31:00,000 --> 00:31:03,000 >> Avi mwen ka kòmanse sezisman bagay sa yo tankou ekri ak lèt ​​detache, 577 00:31:03,000 --> 00:31:08,000 pa printf, x ekri ak lèt ​​detache, epi kounye a ki nan etranj. 578 00:31:08,000 --> 00:31:11,000 $ A 1 se jis yon kiryozite, menm jan nou pral wè 579 00:31:11,000 --> 00:31:14,000 chak fwa ou enprime yon bagay ou jwenn yon nouvo $ valè. 580 00:31:14,000 --> 00:31:18,000 Sa a pou ke ou ka al gade tounen nan valè anvan jis nan ka, 581 00:31:18,000 --> 00:31:21,000 men pou kounye a sa ki ekri ak lèt ​​detache a di m 'se ke valè x nan pwen sa a nan istwa a 582 00:31:21,000 --> 00:31:26,000 se aparamman 134514032. 583 00:31:26,000 --> 00:31:29,000 Ki sa? Ki kote t 'ke menm soti? 584 00:31:29,000 --> 00:31:31,000 [Fèbl-elèv] 585 00:31:31,000 --> 00:31:34,000 Vreman vre, sa a se ki sa nou ap rele yon valè fatra, epi nou pa te deja pale sou sa a ankò, 586 00:31:34,000 --> 00:31:37,000 men rezon ki fè la ke ou inisyalize varyab 587 00:31:37,000 --> 00:31:40,000 se evidamman sa yo ke yo gen kèk valè ke ou vle yo genyen. 588 00:31:40,000 --> 00:31:44,000 Men, trape an se sonje ke ou ka deklare varyab 589 00:31:44,000 --> 00:31:46,000 tankou m 'te fè yon ti moman Anons sa pibliye depi nan egzanp sigma mwen 590 00:31:46,000 --> 00:31:48,000 san aktyèlman ba yo yon valè. 591 00:31:48,000 --> 00:31:50,000 Chèche sonje sa m 'te fè plis pase isit la nan sigma. 592 00:31:50,000 --> 00:31:52,000 Mwen te deklare n, men ki sa valè mwen te ba ou li? 593 00:31:52,000 --> 00:31:56,000 Okenn, paske mwen te konnen ke nan liy kap vini yo 594 00:31:56,000 --> 00:31:59,000 GetInt ta pran swen nan pwoblèm lan nan mete yon valè andedan nan n. 595 00:31:59,000 --> 00:32:02,000 >> Men, nan pwen sa a nan istwa a nan liy 11 596 00:32:02,000 --> 00:32:05,000 ak liy 12 ak liy 13 ak liy 14 597 00:32:05,000 --> 00:32:08,000 nan tout liy sa yo plizyè ki sa ki valè n? 598 00:32:08,000 --> 00:32:10,000 Nan C ou jis pa konnen. 599 00:32:10,000 --> 00:32:14,000 Li nan jeneralman kèk valè fatra, gen kèk nimewo konplètman o aza 600 00:32:14,000 --> 00:32:17,000 ki nan rete sou esansyèlman nan kèk fonksyon anvan 601 00:32:17,000 --> 00:32:21,000 ke nou fin kouri, se konsa kòm pwogram ou an kouri 602 00:32:21,000 --> 00:32:24,000 rapel ki fonksyon vin fonksyon, fonksyon, fonksyon. 603 00:32:24,000 --> 00:32:27,000 Tout moun sa yo ankadreman jwenn mete yo sou memwa, ak Lè sa a, moun ki retounen fonksyon, 604 00:32:27,000 --> 00:32:31,000 ak jis tankou mwen sijere ak gonm la ap memwa yo evantyèlman ankò. 605 00:32:31,000 --> 00:32:37,000 Oke, li jis pou k ap pase ke sa a x varyab nan pwogram sa a 606 00:32:37,000 --> 00:32:41,000 sanble li te genyen kèk valè fatra tankou 134514032 607 00:32:41,000 --> 00:32:44,000 nan kèk fonksyon anvan, pa gen yon sèl ke mwen te ekri. 608 00:32:44,000 --> 00:32:47,000 Li ta ka yon bagay ki vini avèk efikasite avèk sistèm nan fonksyone, 609 00:32:47,000 --> 00:32:49,000 kèk fonksyon anba kapo a. 610 00:32:49,000 --> 00:32:52,000 >> Okay, sa a, se bon, men kite a kounye a avanse nan liy kap vini an. 611 00:32:52,000 --> 00:32:55,000 Si m 'tape "pwochen" nan èd memwa gdb mwen epi mwen frape antre nan, 612 00:32:55,000 --> 00:32:58,000 avi ke a en mouvman desann nan liy 19, 613 00:32:58,000 --> 00:33:01,000 men enplikasyon a ki lojik se ke liy 18 614 00:33:01,000 --> 00:33:06,000 gen kounye a fin egzekite, se konsa si mwen ankò tape "ekri ak lèt ​​detache x" 615 00:33:06,000 --> 00:33:10,000 M 'ta dwe wè koulye a 1, ak tout bon, m' fè. 616 00:33:10,000 --> 00:33:14,000 Yon fwa ankò, bagay la $ se yon fason pou gdb fè ou sonje 617 00:33:14,000 --> 00:33:17,000 ki sa istwa a nan simagri yo se ke ou te fè a. 618 00:33:17,000 --> 00:33:21,000 Koulye a, kite m 'ale pi devan epi enprime soti y, ak annefè, y se kèk valè fou kòm byen, 619 00:33:21,000 --> 00:33:24,000 men okenn kontra gwo paske nan liy 19 nou ap sou yo asiyen li 620 00:33:24,000 --> 00:33:27,000 valè a 2, ki fè, kite m 'tape "pwochen" ankò. 621 00:33:27,000 --> 00:33:29,000 Epi, koulye a nou ap sou liy lan printf. 622 00:33:29,000 --> 00:33:31,000 Kite m 'fè x ekri ak lèt ​​detache. 623 00:33:31,000 --> 00:33:34,000 Kite m 'fè y ekri ak lèt ​​detache. Franchman, m ap jwenn yon ti kras fatige nan enprime sa a. 624 00:33:34,000 --> 00:33:38,000 Kite m 'olye tape "ekspozisyon x" ak "ekspozisyon y," 625 00:33:38,000 --> 00:33:41,000 e kounye a, chak fwa mwen tape yon kòmann nan lavni an 626 00:33:41,000 --> 00:33:45,000 Mwen pral fè yo sonje sa ki x ak y, sa ki nan x ak y, sa ki nan x ak y. 627 00:33:45,000 --> 00:33:48,000 >> Mwen kapab tou, kòm yon sou kote kalite, nan "moun nan lokalite info." 628 00:33:48,000 --> 00:33:50,000 Info se yon lòd espesyal. 629 00:33:50,000 --> 00:33:52,000 Moun nan lokalite vle di li montre m 'varyab lokal yo. 630 00:33:52,000 --> 00:33:55,000 Jis nan ka m bliye oswa sa a se yon fou, fonksyon konplike 631 00:33:55,000 --> 00:33:57,000 ke mwen oswa yon lòt moun te ekri moun nan lokalite info ap fè w konnen 632 00:33:57,000 --> 00:34:00,000 ki sa yo se tout varyab yo lokal andedan sa a fonksyon lokal 633 00:34:00,000 --> 00:34:03,000 ke ou ta ka pran swen sou si ou vle pike alantou. 634 00:34:03,000 --> 00:34:07,000 Koulye a, printf se sou yo egzekite, se konsa, kite m 'ale pi devan ak jis kalite "kap vini an." 635 00:34:07,000 --> 00:34:10,000 Paske nou se nan anviwonman sa a nou pa aktyèlman wè li 636 00:34:10,000 --> 00:34:14,000 egzekite desann isit la, men remake li a ap resevwa yon ti kras mangled isit la. 637 00:34:14,000 --> 00:34:17,000 Men, remake li nan aksyon net ekran an la, 638 00:34:17,000 --> 00:34:21,000 Se konsa li pa yon pwogram pafè isit la, men sa a oke paske mwen ka toujou pike alantou 639 00:34:21,000 --> 00:34:23,000 lè l sèvi avèk ekri ak lèt ​​detache si mwen vle. 640 00:34:23,000 --> 00:34:26,000 >> Kite m 'tape pwochen ankò, e kounye a, isit la nan pati a ki enteresan. 641 00:34:26,000 --> 00:34:29,000 Nan pwen sa a nan istwa a y se 2, ak x se 1, 642 00:34:29,000 --> 00:34:32,000 kòm sijere la a, e ankò, 643 00:34:32,000 --> 00:34:35,000 rezon ki fè yo sa a se otomatikman montre kounye a se paske mwen te itilize yo lòd, ki 644 00:34:35,000 --> 00:34:40,000 ekspozisyon x ak ekspozisyon y, se konsa moman sa mwen tape pwochen 645 00:34:40,000 --> 00:34:43,000 nan teyori x ak y yo ta dwe vin échanges. 646 00:34:43,000 --> 00:34:45,000 Koulye a, nou deja konnen ki pa k ap pase yo dwe ka a, 647 00:34:45,000 --> 00:34:49,000 men nou pral wè nan yon moman ki jan nou ka plonje pi fon konpwan poukisa sa a, se vre. 648 00:34:49,000 --> 00:34:54,000 Next, e malerezman, y se toujou 2 ak x se toujou 1, e mwen ka konfime kòm anpil. 649 00:34:54,000 --> 00:34:56,000 Ekri an lèt detache x, ekri ak lèt ​​detache y. 650 00:34:56,000 --> 00:34:59,000 Vreman vre, yo pa gen okenn échanjé gen aktyèlman te pase, se konsa kite la kòmanse sa a sou. 651 00:34:59,000 --> 00:35:01,000 Klèman swap ap kase. 652 00:35:01,000 --> 00:35:04,000 Se pou nou olye tape "kouri" ankò. 653 00:35:04,000 --> 00:35:07,000 Kite m 'di wi, mwen vle rekòmanse li depi nan konmansman an, antre. 654 00:35:07,000 --> 00:35:09,000 >> Koulye a, mwen tounen moute nan liyn 18. 655 00:35:09,000 --> 00:35:11,000 Koulye a, remake x ak y yo se valè fatra ankò. 656 00:35:11,000 --> 00:35:15,000 Apre, pwochèn nan, apre, pwochèn nan. 657 00:35:15,000 --> 00:35:17,000 Si mwen resevwa anwiye mwen ka tou jis tape n la pou vini yo. 658 00:35:17,000 --> 00:35:21,000 Ou ka abreje li nan sekans lan nan karaktè pi kout posib. 659 00:35:21,000 --> 00:35:23,000 Boukantay se kounye a kase. 660 00:35:23,000 --> 00:35:25,000 Se pou nou plonje nan, konsa olye pou yo sezisman vini yo, 661 00:35:25,000 --> 00:35:30,000 kounye a mwen pral tape etap pou ke mwen kite andedan sa a fonksyon 662 00:35:30,000 --> 00:35:33,000 pou ke mwen ka mache atravè li, se konsa mwen frape etap ak Lè sa a, antre. 663 00:35:33,000 --> 00:35:37,000 Remake so yo en desann pi ba nan pwogram mwen an liy 36. 664 00:35:37,000 --> 00:35:39,000 Kounye a ki sa yo se varyab yo lokal yo? 665 00:35:39,000 --> 00:35:41,000 Info moun nan lokalite. 666 00:35:41,000 --> 00:35:43,000 Pa gen anyen jis ankò paske nou pa te vinn ak sa yo ki liy, 667 00:35:43,000 --> 00:35:47,000 kidonk kite a ale pi devan epi di "kap vini an." 668 00:35:47,000 --> 00:35:50,000 Koulye a, nou sanble gen tan, tan ekri ak lèt ​​detache. 669 00:35:50,000 --> 00:35:52,000 Valè fatra, dwa? Mwen panse sa. 670 00:35:52,000 --> 00:35:55,000 Kouman sou enprime yon, ekri ak lèt ​​detache b, 1 ak 2? 671 00:35:55,000 --> 00:35:58,000 Nan yon moman, kòm pli vit ke mwen tape pwochen ankò 672 00:35:58,000 --> 00:36:02,000 tan ki pral pran sou yon valè de 1, èspere ke, 673 00:36:02,000 --> 00:36:05,000 paske tan yo pral plase nan valè a nan yon. 674 00:36:05,000 --> 00:36:08,000 >> Koulye a, kite a enprime yon, ekri ak lèt ​​detache b, 675 00:36:08,000 --> 00:36:11,000 Men, koulye a enprime tan, epi li tout bon 1. 676 00:36:11,000 --> 00:36:14,000 Kite m 'fè pwochen. Kite m 'fè pwochen. 677 00:36:14,000 --> 00:36:16,000 Mwen te fini fonksyon an swap. 678 00:36:16,000 --> 00:36:19,000 Mwen toujou anndan a li nan liy 40, se konsa, kite m 'enprime yon, 679 00:36:19,000 --> 00:36:22,000 ekri ak lèt ​​detache b, ak m 'pa pran swen sa ki tan se. 680 00:36:22,000 --> 00:36:27,000 Li sanble ke swap ki kòrèk lè li rive échanjé yon b ak. 681 00:36:27,000 --> 00:36:31,000 Men, si mwen kounye a tape pwochen, mwen sote tounen nan liy 25, 682 00:36:31,000 --> 00:36:34,000 ak nan kou, si mwen kalite nan x ak ekri ak lèt ​​detache y 683 00:36:34,000 --> 00:36:38,000 yo ap toujou chanje, se konsa nou pa gen fiks pwoblèm nan. 684 00:36:38,000 --> 00:36:41,000 Men, koulye a, petèt diagnostically ak pwogram sa a gdb 685 00:36:41,000 --> 00:36:44,000 nou te omwen vinn yon sèl etap pi pre konpreyansyon 686 00:36:44,000 --> 00:36:47,000 sa k ap pase sa ki mal san yo pa gen fatra kòd nou pa mete yon printf isit la, 687 00:36:47,000 --> 00:36:50,000 printf isit la, printf isit la ak Lè sa a, kouri li ankò e ankò 688 00:36:50,000 --> 00:36:52,000 eseye dekouvri sa k ap pase sa ki mal. 689 00:36:52,000 --> 00:36:55,000 >> Mwen pral ale pi devan epi kite soti nan sa a tout ansanm ak kite fimen. 690 00:36:55,000 --> 00:36:57,000 Li nan ale nan Lè sa a, di, "Kite de tout fason?" Wi. 691 00:36:57,000 --> 00:37:00,000 Koulye a, mwen tounen nan èd memwa nòmal mwen an, epi m ap fè lè l sèvi avèk gdb. 692 00:37:00,000 --> 00:37:03,000 Kòm yon sou kote, ou pa bezwen sèvi ak sa a-twi drapo. 693 00:37:03,000 --> 00:37:07,000 An reyalite, si ou retire okenn pati sa a, nou jwenn esansyèlman mwatye a anba nan ekran an. 694 00:37:07,000 --> 00:37:11,000 Si m 'Lè sa a, tape repo prensipal ak Lè sa a, kouri 695 00:37:11,000 --> 00:37:15,000 Mwen ka toujou kouri pwogram m 'yo, men ki sa li pral fè se pi plis tèkstuelman 696 00:37:15,000 --> 00:37:18,000 jis montre m yon sèl nan liy aktyèl nan yon tan. 697 00:37:18,000 --> 00:37:21,000 Twi-a, textuelle koòdone itilizatè, 698 00:37:21,000 --> 00:37:25,000 jis montre ou plis nan pwogram nan nan yon fwa, ki se pwobableman yon ti jan concept pi fasil. 699 00:37:25,000 --> 00:37:27,000 Men, tout bon, mwen ka jis fè apre, pwochèn nan, apre, 700 00:37:27,000 --> 00:37:30,000 ak mwen pral wè yon liy nan yon moman, epi si mwen reyèlman vle wè sa k ap pase sou 701 00:37:30,000 --> 00:37:35,000 Mwen ka tape lis ak wè yon pakèt antye nan liy vwazen. 702 00:37:35,000 --> 00:37:39,000 >> Genyen nan yon videyo ki nou te mande pou w siveye pwoblèm kouche 3 703 00:37:39,000 --> 00:37:43,000 nan ki Nate kouvri kèk nan sibtilite ki nan gdb, 704 00:37:43,000 --> 00:37:46,000 ak sa a se youn nan bagay sa yo, franchman, kote kèk pousantaj ki pa trivial nan nou 705 00:37:46,000 --> 00:37:49,000 pa janm ap manyen gdb, e ke yo pral yon move bagay 706 00:37:49,000 --> 00:37:53,000 paske literalman ou pral fini depanse plis tan pita sa a semès 707 00:37:53,000 --> 00:37:56,000 kouri dèyè desann pinèz Lè sa a, ou ta si ou mete nan ke demi èdtan / è 708 00:37:56,000 --> 00:38:00,000 semèn sa a ak nan aprantisaj li pwochen jwenn konfòtab ak gdb. 709 00:38:00,000 --> 00:38:02,000 Printf te zanmi ou yo. 710 00:38:02,000 --> 00:38:05,000 Gdb ta dwe kounye a gen zanmi ou yo. 711 00:38:05,000 --> 00:38:08,000 >> Nenpòt kesyon sou gdb? 712 00:38:08,000 --> 00:38:12,000 Ak isit la a yon lis rapid nan kèk nan kòmandman yo ki pi pwisan ak itil. 713 00:38:12,000 --> 00:38:15,000 Yeah. >> Èske ou ka enprime yon kòd? 714 00:38:15,000 --> 00:38:17,000 Èske ou ka enprime yon kòd? Absoliman. 715 00:38:17,000 --> 00:38:19,000 Li pa gen yo jis pou nonm antye relatif. 716 00:38:19,000 --> 00:38:22,000 Si yon s varyab se yon fisèl jis kalite nan ekri ak lèt ​​detache nan. 717 00:38:22,000 --> 00:38:24,000 Li pral montre w ki sa sa varyab fisèl se. 718 00:38:24,000 --> 00:38:26,000 [Fèbl-elèv] 719 00:38:26,000 --> 00:38:28,000 Li pral ba ou adrès la ak tout kòd nan tèt li. 720 00:38:28,000 --> 00:38:32,000 Li pral montre w tou de. 721 00:38:32,000 --> 00:38:34,000 Ak yon dènye bagay, jis paske sa yo, se bon konnen tou. 722 00:38:34,000 --> 00:38:37,000 Baktras ak ankadreman, kite m 'plonje nan sa a yon sèl fwa sot pase yo, 723 00:38:37,000 --> 00:38:39,000 menm pwogram egzak ak gdb. 724 00:38:39,000 --> 00:38:44,000 Kite m 'ale pi devan epi kouri itilizatè textuelle vèsyon an koòdone, 725 00:38:44,000 --> 00:38:46,000 kraze prensipal la. 726 00:38:46,000 --> 00:38:49,000 Kite m 'ale pi devan epi kouri ankò. Men mwen wi. 727 00:38:49,000 --> 00:38:55,000 Koulye a, kite m 'ale apre, pwochèn nan, apre, pwochèn nan, apre, etap, antre. 728 00:38:55,000 --> 00:39:00,000 >> Epi, koulye a ta kwè mwen kounye a nan swap fè espre, men mwen tankou "modi, sa ki te valè x?" 729 00:39:00,000 --> 00:39:02,000 Mwen pa kapab fè x ankò. 730 00:39:02,000 --> 00:39:05,000 Mwen pa kapab fè y paske yo ap pa nan dimansyon. 731 00:39:05,000 --> 00:39:07,000 Yo ap pa nan yon kontèks, men pwoblèm pa gen okenn. 732 00:39:07,000 --> 00:39:09,000 Mwen ka tape baktras. 733 00:39:09,000 --> 00:39:13,000 Ki montre m 'tout nan fonksyon sa yo ki te egzekite jiska pwen sa a nan tan. 734 00:39:13,000 --> 00:39:16,000 Remake yon sèl la sou anba a, prensipal, liy moute ak prensipal 735 00:39:16,000 --> 00:39:18,000 yo te sou anba a nan foto nou yo isit la. 736 00:39:18,000 --> 00:39:22,000 Lefèt ke swap se pi wo pase l liy moute ak swap yo te pi wo pase l nan memwa isit la, 737 00:39:22,000 --> 00:39:26,000 ak si mwen vle jwenn tounen nan prensipal tanporèman mwen kapab di "ankadreman." 738 00:39:26,000 --> 00:39:30,000 Ki nonb ki? Main se ankadreman # 1. 739 00:39:30,000 --> 00:39:32,000 Mwen pral ale pi devan epi di "ankadreman 1." 740 00:39:32,000 --> 00:39:36,000 >> Koulye a, mwen tounen nan prensipal yo, e mwen ka enprime x, e mwen ka enprime y, 741 00:39:36,000 --> 00:39:40,000 men mwen pa ka enprime yon b oswa. 742 00:39:40,000 --> 00:39:43,000 Men, mwen ka si mwen di, "Oke, rete tann yon minit. Kote yo te swap a?" 743 00:39:43,000 --> 00:39:46,000 Kite m 'ale pi devan epi di "ankadreman 0." 744 00:39:46,000 --> 00:39:48,000 Koulye a, mwen tounen kote mwen vle yo, ak kòm yon sou kote, 745 00:39:48,000 --> 00:39:52,000 gen nan kòmandman lòt tou, tankou si w ap reyèlman ap resevwa anwiye sezisman apre, pwochèn nan, apre, pwochèn nan, 746 00:39:52,000 --> 00:39:56,000 ou ka jeneralman di bagay sa yo tankou "10 pwochen," epi ki pral etap jiska 10 liy kap vini yo. 747 00:39:56,000 --> 00:39:59,000 Ou kapab tou ekri "kontinye" lè ou reyèlman jwenn fed anlË ak kite atravè li. 748 00:39:59,000 --> 00:40:05,000 Kontinye pral kouri pwogram ou an san entèripsyon jiskaske li frape yon lòt breakpoint, 749 00:40:05,000 --> 00:40:07,000 si nan yon riban oswa bese atè a nan pwogram ou an. 750 00:40:07,000 --> 00:40:11,000 >> Nan ka sa a nou kontinye nan fen a, ak pwogram nan soti nan nòmalman. 751 00:40:11,000 --> 00:40:13,000 Sa a se yon fason anpenpan, enferyè pwosesis. 752 00:40:13,000 --> 00:40:16,000 Jis pwogram ou an soti nan nòmalman. 753 00:40:16,000 --> 00:40:24,000 Plis sou sa nan videyo a ak nan debogaj sesyon ap vini yo. 754 00:40:24,000 --> 00:40:26,000 Sa se te yon anpil. 755 00:40:26,000 --> 00:40:35,000 Kite a pran repo-5 minit nou yo isit la, epi nou pral retounen ak strukt ak dosye. 756 00:40:35,000 --> 00:40:38,000 >> Si ou te plonje nan pset semèn sa a nan deja 757 00:40:38,000 --> 00:40:41,000 ou pral konnen ke nou itilize nan kòd la distribisyon, 758 00:40:41,000 --> 00:40:45,000 sous la kòd ki nou ba ou kòm yon pwen depa, gen kèk nouvo teknik. 759 00:40:45,000 --> 00:40:50,000 An patikilye, nou prezante sa a mo kle nouvo rele struct, pou estrikti, 760 00:40:50,000 --> 00:40:53,000 pou nou ka kreye varyab Customized nan kalite. 761 00:40:53,000 --> 00:40:57,000 Nou menm tou nou prezante nosyon de opinyon dosye dosye Mwen / O, ak pwodiksyon, 762 00:40:57,000 --> 00:41:00,000 ak sa a se pou nou ka sove eta a 763 00:41:00,000 --> 00:41:03,000 nan tablo Goumen ou a nan yon dosye sou disk 764 00:41:03,000 --> 00:41:06,000 pou ke zanmi yo ansèyman ak mwen ka konprann 765 00:41:06,000 --> 00:41:09,000 sa k ap pase sou andedan nan pwogram ou an san yo pa gen manuelman jwe 766 00:41:09,000 --> 00:41:11,000 plizyè douzèn jwèt nan Goumen. 767 00:41:11,000 --> 00:41:13,000 Nou ka fè sa a pi plis automatedly. 768 00:41:13,000 --> 00:41:18,000 >> Ide sa a nan yon struct rezoud yon pwoblèm jistis irezistib. 769 00:41:18,000 --> 00:41:21,000 Sipoze ke nou vle aplike kèk pwogram 770 00:41:21,000 --> 00:41:25,000 ki yon jan kanmenm kenbe yon dosye sou enfòmasyon sou elèv yo, 771 00:41:25,000 --> 00:41:28,000 yo ak elèv yo ta ka gen, pou egzanp, yon ID, yon non 772 00:41:28,000 --> 00:41:31,000 ak yon kay nan yon kote tankou Harvard, se konsa sa yo, se 3 moso nan enfòmasyon 773 00:41:31,000 --> 00:41:34,000 nou vle kenbe otou, se konsa, kite m 'ale pi devan epi kòmanse ekri yon pwogram ti kras isit la, 774 00:41:34,000 --> 00:41:38,000 gen ladan yo stdio.h. 775 00:41:38,000 --> 00:41:42,000 Kite m 'fè gen ladan yo cs50.h. 776 00:41:42,000 --> 00:41:44,000 Lè sa a, kòmanse fonksyon prensipal m 'yo. 777 00:41:44,000 --> 00:41:46,000 Mwen pa pral deranje ak nenpòt ki agiman liy lòd, 778 00:41:46,000 --> 00:41:49,000 ak isit la mwen vle gen yon elèv, se konsa mwen pral di 779 00:41:49,000 --> 00:41:54,000 yon elèv gen yon non, se konsa mwen pral di "non fisèl." 780 00:41:54,000 --> 00:41:59,000 Lè sa a, mwen pral di yon elèv genyen tou yon ID, id konsa Int, 781 00:41:59,000 --> 00:42:03,000 ak yon elèv gen yon kay, se konsa mwen tou pral di "kay fisèl." 782 00:42:03,000 --> 00:42:06,000 Lè sa a, mwen pral bay lòd pou sa yo ti kras yon plis propr tankou sa a. 783 00:42:06,000 --> 00:42:11,000 Okay, koulye a, mwen gen 3 varyab ak ki reprezante yon elèv, se konsa "yon elèv." 784 00:42:11,000 --> 00:42:15,000 >> Epi, koulye a mwen vle peple valè sa yo, se konsa, kite m 'ale pi devan epi di yon bagay tankou 785 00:42:15,000 --> 00:42:18,000 "Id = 123." 786 00:42:18,000 --> 00:42:21,000 Non se pral jwenn David. 787 00:42:21,000 --> 00:42:24,000 Se pou nou di kay la pral jwenn Mather, 788 00:42:24,000 --> 00:42:31,000 ak Lè sa a, mwen pral fè yon bagay abitrèman tankou printf ("% s, 789 00:42:31,000 --> 00:42:37,000 ki gen ID se d%, ap viv nan% s. 790 00:42:37,000 --> 00:42:41,000 Epi, koulye a, ki sa mwen vle ploge nan isit la, youn apre lòt la? 791 00:42:41,000 --> 00:42:47,000 Non, id, kay; retou 0. 792 00:42:47,000 --> 00:42:50,000 Okay, sof si mwen vise moute yon kote isit la 793 00:42:50,000 --> 00:42:54,000 Mwen panse ke nou gen yon pwogram trè bon ki estoke yon sèl elèv yo. 794 00:42:54,000 --> 00:42:57,000 Natirèlman, sa a se pa tout sa ki enteresan. E si mwen vle gen 2 elèv? 795 00:42:57,000 --> 00:42:59,000 Sa a pa gen okenn kontra gwo. Mwen ka sipòte 2 moun. 796 00:42:59,000 --> 00:43:03,000 Kite m 'ale pi devan epi mete aksan sou sa a epi ale desann isit la, 797 00:43:03,000 --> 00:43:09,000 e mwen kapab di "id = 456" pou yon moun tankou Rob ki abite nan Kirkland. 798 00:43:09,000 --> 00:43:12,000 >> Oke, rete tann, men mwen pa ka rele sa yo menm bagay la, 799 00:43:12,000 --> 00:43:15,000 ak li sanble m pral gen a kapab bay kopi sa a, 800 00:43:15,000 --> 00:43:19,000 Se konsa, kite m 'di ke sa yo pral varyab David la, 801 00:43:19,000 --> 00:43:23,000 ak kite m 'jwenn kèk kopi sa yo pou Rob. 802 00:43:23,000 --> 00:43:27,000 Nou pral rele sa yo nan Rob men sa a pa pral nan travay kounye a 803 00:43:27,000 --> 00:43:33,000 paske mwen te rete tann-, kite la chanje m 'nan id1, name1 ak house1. 804 00:43:33,000 --> 00:43:35,000 Rob yo pral 2, 2. 805 00:43:35,000 --> 00:43:42,000 Mwen te gen chanje sa a isit la, isit la, isit la, isit la, isit la, isit la. 806 00:43:42,000 --> 00:43:45,000 Rete tann, sa ki sou Tommy? Se pou nou fè sa ankò. 807 00:43:45,000 --> 00:43:49,000 Li evidan, si ou toujou panse ke sa a se yon bon fason pou fè sa, li la se pa sa, 808 00:43:49,000 --> 00:43:52,000 Se konsa yon kopi / keratin move. 809 00:43:52,000 --> 00:43:55,000 Men, nou te rezoud sa a yon semèn de sa. 810 00:43:55,000 --> 00:43:59,000 >> Ki sa ki te solisyon nou an lè nou te vle gen sikonstans plizyè kalite nan menm done? 811 00:43:59,000 --> 00:44:01,000 [Elèv yo] Yon etalaj. 812 00:44:01,000 --> 00:44:03,000 Yon etalaj, se konsa, kite m 'eseye netwaye sa a leve. 813 00:44:03,000 --> 00:44:07,000 Kite m 'fè kèk chanm pou tèt mwen nan tèt la, epi kite m' olye fè sa isit la. 814 00:44:07,000 --> 00:44:12,000 Nou pral rele moun sa yo, ak olye l mwen pral di "idantifikasyon Int," 815 00:44:12,000 --> 00:44:14,000 ak mwen pral sipòte 3 nan nou pou kounye a. 816 00:44:14,000 --> 00:44:18,000 Mwen pral di "non fisèl," epi mwen pral sipòte 3 nan nou, 817 00:44:18,000 --> 00:44:22,000 ak Lè sa a, mwen pral di "kay fisèl," epi mwen pral sipòte 3 nan nou. 818 00:44:22,000 --> 00:44:26,000 Koulye a, nan isit la olye pou yo David resevwa varyab pwòp li lokal 819 00:44:26,000 --> 00:44:28,000 nou ka debarase m de sa yo. 820 00:44:28,000 --> 00:44:30,000 Ki santi l bon ke nou ap netwaye sa a leve. 821 00:44:30,000 --> 00:44:35,000 Mwen ka Lè sa a, di David a pwal [0] ak non [0] 822 00:44:35,000 --> 00:44:38,000 ak kay [0]. 823 00:44:38,000 --> 00:44:41,000 Lè sa a, Rob nou ka menm sove sou sa. 824 00:44:41,000 --> 00:44:46,000 Se pou nou mete sa a desann isit la, se konsa li te ale nan abitrèman dwe idantifikasyon [1]. 825 00:44:46,000 --> 00:44:50,000 Li pral fè non [1], 826 00:44:50,000 --> 00:44:53,000 ak Lè sa a, alafen, kay [1]. 827 00:44:53,000 --> 00:44:57,000 >> Toujou yon ti kras fatigan, ak koulye a, mwen gen figi sa a soti, 828 00:44:57,000 --> 00:45:03,000 kidonk kite a di "non [0], id [0], kay [0], 829 00:45:03,000 --> 00:45:06,000 e kite yo pluralize sa a. 830 00:45:06,000 --> 00:45:09,000 Idantifikasyon, idantite, idantite. 831 00:45:09,000 --> 00:45:12,000 Epi ankò, m ap fè li, se konsa ankò, mwen deja rkour a kapab bay kopi / keratin ankò, 832 00:45:12,000 --> 00:45:14,000 se konsa chans yo se gen nan yon lòt solisyon isit la. 833 00:45:14,000 --> 00:45:18,000 Mwen ka pwobableman netwaye sa a moute pi lwen ak yon riban oswa yon bagay tankou sa, 834 00:45:18,000 --> 00:45:21,000 sa nan ti bout tan, li nan yon ti kras pi byen men yo toujou santi l tankou 835 00:45:21,000 --> 00:45:24,000 Mwen rkour a kapab bay kopi / keratin, men menm sa a, mwen fè reklamasyon, 836 00:45:24,000 --> 00:45:27,000 se pa reyèlman fondamantalman solisyon an dwa paske 837 00:45:27,000 --> 00:45:29,000 ki sa si nenpòt moman n ap deside ou konnen ki sa? 838 00:45:29,000 --> 00:45:32,000 Nou vrèman ta dwe estoke adrès imel pou David ak Rob 839 00:45:32,000 --> 00:45:34,000 ak tout lòt moun nan pwogram sa a. 840 00:45:34,000 --> 00:45:36,000 Nou ta dwe tou mete nimewo telefòn. 841 00:45:36,000 --> 00:45:39,000 Nou ta dwe tou mete nimewo kontak ijans. 842 00:45:39,000 --> 00:45:41,000 Nou gen tout bagay sa yo moso nan done ke nou vle nan magazen, 843 00:45:41,000 --> 00:45:43,000 Se konsa, kouman ou ale sou fè sa? 844 00:45:43,000 --> 00:45:46,000 >> Ou deklare yon lòt etalaj nan tèt la, epi lè sa a ou manuelman ajoute 845 00:45:46,000 --> 00:45:49,000 yon adrès imel [0], adrès imel [1] 846 00:45:49,000 --> 00:45:51,000 pou David ak Rob ak pou fè. 847 00:45:51,000 --> 00:45:56,000 Men, gen se vrèman jis yon sipozisyon kache sa a konsepsyon 848 00:45:56,000 --> 00:45:59,000 ke mwen sèvi ak sistèm la onè konnen ke 849 00:45:59,000 --> 00:46:03,000 [Mwen] nan chak nan ranje yo plizyè 850 00:46:03,000 --> 00:46:06,000 jis pou k ap pase nan gade nan moun ki nan menm, 851 00:46:06,000 --> 00:46:10,000 Se konsa [0] nan idantite se nimewo 123, 852 00:46:10,000 --> 00:46:13,000 ak mwen pral asime ke non [0] 853 00:46:13,000 --> 00:46:16,000 se non moun ki nan menm a ak kay [0] 854 00:46:16,000 --> 00:46:21,000 se kay moun ki nan menm la ak pou fè pou tout moun nan ranje yo divès kalite ke mwen kreye. 855 00:46:21,000 --> 00:46:24,000 Men, remake ke gen nan pa gen koneksyon fondamantal 856 00:46:24,000 --> 00:46:27,000 nan mitan 3 moso sa yo nan enfòmasyon, id non, ak kay, 857 00:46:27,000 --> 00:46:32,000 menm si antite a nou ap eseye modèl nan pwogram sa a se pa ranje. 858 00:46:32,000 --> 00:46:35,000 Matris yo se jis fason sa a pwogramatik nan fè sa. 859 00:46:35,000 --> 00:46:38,000 Ki sa nou vrèman vle modèl nan pwogram nou an se yon moun ki 860 00:46:38,000 --> 00:46:41,000 tankou David, yon moun tankou Rob andedan nan yo ki 861 00:46:41,000 --> 00:46:46,000 oswa ankapsule se yon non ak ID ak kay yon. 862 00:46:46,000 --> 00:46:49,000 >> Èske nou ka yon jan kanmenm eksprime ide sa a nan ANKAPSILASYON 863 00:46:49,000 --> 00:46:52,000 kote yon moun gen yon ID, non yon ak kay yon 864 00:46:52,000 --> 00:46:55,000 epi yo pa Resort reyèlman Hack sa a kote nou jis 865 00:46:55,000 --> 00:46:58,000 fè konfyans ke yon bagay bracket 866 00:46:58,000 --> 00:47:02,000 refere a antite nan menm imen nan chak nan sa yo ranje disparate? 867 00:47:02,000 --> 00:47:04,000 Nou ka aktyèlman fè sa. 868 00:47:04,000 --> 00:47:08,000 Kite m 'ale pi wo a prensipal pou kounye a, ak kite m' kreye pwòp mwen done kalite 869 00:47:08,000 --> 00:47:10,000 pou reyèlman premye fwa a. 870 00:47:10,000 --> 00:47:14,000 Nou itilize teknik sa a nan Goumen, 871 00:47:14,000 --> 00:47:17,000 men isit la mwen pral ale pi devan epi kreye yon kalite done, 872 00:47:17,000 --> 00:47:19,000 epi ou konnen ki sa, mwen pral rele li elèv oswa moun, 873 00:47:19,000 --> 00:47:23,000 ak mwen pral sèvi ak tipedèf pou defini yon kalite. 874 00:47:23,000 --> 00:47:25,000 Mwen pral di ke sa a se yon estrikti, 875 00:47:25,000 --> 00:47:29,000 ak Lè sa a, estrikti sa a a pwal nan elèv kalite, nou pral di, 876 00:47:29,000 --> 00:47:31,000 menm si li nan yon ti kras ki date kounye a pou mwen. 877 00:47:31,000 --> 00:47:33,000 Nou pral di "int id." 878 00:47:33,000 --> 00:47:35,000 Nou pral di "non fisèl." 879 00:47:35,000 --> 00:47:37,000 Lè sa a, nou pral di "fisèl kay," 880 00:47:37,000 --> 00:47:40,000 konsa koulye a nan fen liy sa yo kèk nan kòd 881 00:47:40,000 --> 00:47:45,000 Mwen te jis anseye rezone ke gen egziste 882 00:47:45,000 --> 00:47:49,000 yon kalite done san konte antye, san konte strings, san konte double, san konte flote. 883 00:47:49,000 --> 00:47:54,000 >> Kòm nan moman sa a nan liy tan 11, gen se kounye a yon nouvo done kalite rele elèv yo, 884 00:47:54,000 --> 00:47:58,000 ak koulye a, mwen ka deklare yon varyab elèv nenpòt kote mwen vle, 885 00:47:58,000 --> 00:48:01,000 Se konsa, kite m 'desann isit la bay moun. 886 00:48:01,000 --> 00:48:05,000 Koulye a, mwen ka debarase m de sa a, e mwen ka ale tounen desann bay David isit la, 887 00:48:05,000 --> 00:48:10,000 ak pou David mwen ka aktyèlman di ke David la, 888 00:48:10,000 --> 00:48:13,000 nou ka literalman non varyab a apre tèt mwen, 889 00:48:13,000 --> 00:48:16,000 a pwal nan elèv ki kalite. 890 00:48:16,000 --> 00:48:18,000 Sa a ta ka gade yon etranj ti kras, men sa a se pa tout sa ki diferan 891 00:48:18,000 --> 00:48:22,000 soti nan deklare yon bagay kòm yon int oswa fisèl yon oswa flote yon. 892 00:48:22,000 --> 00:48:24,000 Li jis konsa k ap pase yo dwe rele elèv kounye a, 893 00:48:24,000 --> 00:48:28,000 ak si mwen vle mete yon bagay andedan nan estrikti sa a 894 00:48:28,000 --> 00:48:31,000 Mwen kounye a gen yo sèvi ak yon moso nouvo sou sentaks, men li la trè dwat, 895 00:48:31,000 --> 00:48:39,000 david.id = 123, david.name = "David" nan kapital D, 896 00:48:39,000 --> 00:48:42,000 ak david.house = "Mather," 897 00:48:42,000 --> 00:48:46,000 ak koulye a, mwen ka debarase m de bagay sa a isit la. 898 00:48:46,000 --> 00:48:51,000 Notifikasyon ke nou te kounye a reamenaje pwogram nou an nan vrèman fason yon pi bon 899 00:48:51,000 --> 00:48:54,000 nan sa koulye a pwogram nou an miwa mond reyèl la. 900 00:48:54,000 --> 00:48:57,000 >> Genyen nan yon nosyon mond reyèl la nan yon moun oswa yon elèv yon. 901 00:48:57,000 --> 00:49:02,000 Isit la nou gen kounye a yon vèsyon C nan yon moun oswa yon plis espesyalman elèv yo tounen yon. 902 00:49:02,000 --> 00:49:05,000 Anndan nan moun sa yo se karakteristik sa yo enpòtan, 903 00:49:05,000 --> 00:49:10,000 ID, non ak kay, se konsa Rob esansyèlman vin menm bagay la desann isit la, 904 00:49:10,000 --> 00:49:14,000 pou elèv piye, epi kounye a rob.id = 456, 905 00:49:14,000 --> 00:49:17,000 rob.name = "Rob." 906 00:49:17,000 --> 00:49:20,000 Reyalite a ki se varyab la rele Rob se sòt de sans. 907 00:49:20,000 --> 00:49:22,000 Nou te ka yo te rele l 'x oswa y oswa z. 908 00:49:22,000 --> 00:49:25,000 Nou jis li rele l 'Rob yo dwe Semantics ki konsistan, 909 00:49:25,000 --> 00:49:28,000 men vrèman non an se andedan nan ki jaden tèt li, 910 00:49:28,000 --> 00:49:30,000 Se konsa koulye a, mwen gen sa a. 911 00:49:30,000 --> 00:49:33,000 Sa a tou pa santi tankou desen an pi byen nan ke mwen te difisil kode David. 912 00:49:33,000 --> 00:49:35,000 Mwen te di kode Rob. 913 00:49:35,000 --> 00:49:39,000 Apre sa, mwen toujou gen Resort nan kèk kopi ak keratin chak fwa mwen vle varyab nouvo. 914 00:49:39,000 --> 00:49:43,000 Anplis, mwen dwe aparamman bay chak nan sa yo varyab yon non, 915 00:49:43,000 --> 00:49:46,000 menm si mwen ta anpil olye dekri sa yo varyab 916 00:49:46,000 --> 00:49:48,000  plis generic kòm elèv yo. 917 00:49:48,000 --> 00:49:52,000 >> Koulye a, nou ka rantre ide yo ki te travay byen pou nou 918 00:49:52,000 --> 00:49:56,000 ak olye l di, "Ou konnen ki sa, ban m 'yon varyab elèv yo rele, 919 00:49:56,000 --> 00:50:01,000 e kite yo te li ka nan gwosè 3, "se konsa koulye a, mwen ka amelyore sa a pi lwen, 920 00:50:01,000 --> 00:50:04,000 debarase m de manuelman te deklare David la, 921 00:50:04,000 --> 00:50:08,000 e mwen ka olye di yon bagay tankou elèv yo [0] isit la. 922 00:50:08,000 --> 00:50:11,000 Mwen ka Lè sa a, di elèv yo [0] isit la, 923 00:50:11,000 --> 00:50:14,000 elèv yo [0] isit la, ak pou fè, e mwen ka ale nan 924 00:50:14,000 --> 00:50:16,000 epi netwaye ki moute pou Rob. 925 00:50:16,000 --> 00:50:19,000 Mwen te kapab ale tou sou kounye a petèt ajoute yon riban 926 00:50:19,000 --> 00:50:23,000 ak lè l sèvi avèk GetString ak GetInt aktyèlman jwenn valè sa yo soti nan itilizatè lan. 927 00:50:23,000 --> 00:50:27,000 Mwen te kapab ale sou ajoute yon konstan paske sa a se jeneralman pratik move 928 00:50:27,000 --> 00:50:29,000 difisil kòd kèk nimewo abitrè tankou 3 dwa isit la 929 00:50:29,000 --> 00:50:33,000 ak Lè sa a, jis sonje ke ou ta dwe mete pa gen okenn plis pase 3 elèv yo nan li. 930 00:50:33,000 --> 00:50:36,000 Li ta kapab pwobableman pi bon yo sèvi ak # defini nan tèt la nan dosye mwen 931 00:50:36,000 --> 00:50:40,000 ak faktè ki soti, sa tout bon, kite m 'ale pi devan epi jeneralizasyon sa a. 932 00:50:40,000 --> 00:50:43,000 >> Kite m 'louvri moute yon egzanp sa a, se nan mitan jodi a 933 00:50:43,000 --> 00:50:46,000 egzanp an avanse, structs1. 934 00:50:46,000 --> 00:50:49,000 Sa a se yon pwogram pi konplè ki itilize # defini moute isit la 935 00:50:49,000 --> 00:50:51,000 e li di nou pral gen 3 elèv pa defo. 936 00:50:51,000 --> 00:50:54,000 Isit la mwen deklare yon vo klas elèv yo, 937 00:50:54,000 --> 00:50:57,000 Se konsa yon klas ki gen elèv yo, e kounye a, mwen sèvi ak yon riban 938 00:50:57,000 --> 00:51:00,000 jis asire kòd la yon ti kras plis elegant, peple klas la 939 00:51:00,000 --> 00:51:05,000 l anplas ak patisipasyon itilizatè a, se konsa répétèr soti nan mwen 0 = sou jiska elèv yo, ki se 3. 940 00:51:05,000 --> 00:51:07,000 Lè sa a, mwen rapid itilizatè a nan vèsyon sa-a 941 00:51:07,000 --> 00:51:10,000  sa ki nan ID elèv la, ak mwen jwenn li avèk GetInt. 942 00:51:10,000 --> 00:51:13,000 Ki sa ki nan non elèv la, ak Lè sa a, mwen jwenn li avèk GetString. 943 00:51:13,000 --> 00:51:15,000 Ki sa ki nan kay elèv la? Mwen jwenn li avèk GetString. 944 00:51:15,000 --> 00:51:19,000 Lè sa a, nan pati anba a isit la mwen jis deside chanje 945 00:51:19,000 --> 00:51:22,000 ki jan m ap enprime sa yo deyò epi yo aktyèlman sèvi ak yon riban, 946 00:51:22,000 --> 00:51:24,000 epi ki mwen enprime? 947 00:51:24,000 --> 00:51:27,000 Dapre kòmantè a mwen enprime nenpòt moun ki nan Mather, 948 00:51:27,000 --> 00:51:30,000 ak sa a, se li tèlman Rob ak Tommy ak pou fè-aktyèlman nan Tommy nan Mather. 949 00:51:30,000 --> 00:51:34,000 Tommy ak David ta dwe enprime nan ka sa a, men ki jan sa a ap travay? 950 00:51:34,000 --> 00:51:40,000 Nou pa t 'wè sa a fonksyon anvan, men pran yon devine tankou sa ki sa a ap fè. 951 00:51:40,000 --> 00:51:42,000 Konpare strings. 952 00:51:42,000 --> 00:51:45,000 >> Li se yon ti kras ki pa evidan fason li konpare strings paske li vire soti 953 00:51:45,000 --> 00:51:49,000 si li retounen 0 sa vle di strings yo egal. 954 00:51:49,000 --> 00:51:53,000 Si li retounen yon -1 sa vle di yon sèl vini lòd avèk lèt ​​alfabè anvan lòt la, 955 00:51:53,000 --> 00:51:57,000 epi si li retounen +1 sa vle di mo a lòt vini lòd avèk lèt ​​alfabè 956 00:51:57,000 --> 00:52:00,000 anvan lòt la, epi ou ka gade sou entènèt oswa nan paj la nonm 957 00:52:00,000 --> 00:52:04,000 yo wè egzakteman ki fason ki ki, men tout sa a se kounye a ap fè se li nan di 958 00:52:04,000 --> 00:52:09,000 si [mwen]. kay la ki egal a "Mather" 959 00:52:09,000 --> 00:52:13,000 Lè sa a, ale pi devan epi enprime soti sa, epi se konsa nan Mather. 960 00:52:13,000 --> 00:52:16,000 Men, isit la nan yon bagay nou pa t 'wè anvan, epi nou pral tounen vin jwenn sa a. 961 00:52:16,000 --> 00:52:21,000 Mwen pa sonje janm gen yo fè sa nan youn nan pwogram mwen an. 962 00:52:21,000 --> 00:52:24,000 Gratis ki aparamman refere li a memwa, libere memwa, 963 00:52:24,000 --> 00:52:31,000 men ki sa memwa mwen aparamman libere nan sa a riban nan fon an nan pwogram sa a? 964 00:52:31,000 --> 00:52:34,000 Li sanble ke mwen libere non yon moun nan 965 00:52:34,000 --> 00:52:37,000 ak kay yon moun nan, men poukisa se sa? 966 00:52:37,000 --> 00:52:41,000 >> Li vire soti pandan tout semèn sa yo ke ou ve yo te lè l sèvi avèk GetString 967 00:52:41,000 --> 00:52:45,000 nou te kalite te entwodwi yon ensèk nan tout youn nan pwogram ou an. 968 00:52:45,000 --> 00:52:51,000 GetString pa memwa konsepsyon rezèvè konsa ke li kapab tounen vin jwenn nou yon kòd, 969 00:52:51,000 --> 00:52:55,000 tankou David,, oswa Rob, epi ou ka Lè sa a, fè tou sa ou vle 970 00:52:55,000 --> 00:52:59,000 ak ki fisèl nan pwogram ou an paske nou te rezève memwa a pou ou. 971 00:52:59,000 --> 00:53:02,000 Pwoblèm lan se tout tan sa a chak fwa ou rele GetString 972 00:53:02,000 --> 00:53:05,000 nou, otè yo nan GetString, yo te mande sistèm nan fonksyone 973 00:53:05,000 --> 00:53:07,000 ba nou yon ti jan nan RAM pou sa a fisèl. 974 00:53:07,000 --> 00:53:09,000 Ban nou yon ti jan nan RAM pou sa a fil kap vini an. 975 00:53:09,000 --> 00:53:11,000 Ban nou ti gout plis RAM pou sa a fil kap vini an. 976 00:53:11,000 --> 00:53:13,000 Ki sa ou, pwogramè a, pa janm yo te fè 977 00:53:13,000 --> 00:53:15,000 an, ap ban nou ke tounen memwa, 978 00:53:15,000 --> 00:53:17,000 Se konsa pou sa yo plizyè semèn tout pwogram yo ou te ekri 979 00:53:17,000 --> 00:53:20,000 te gen sa ki rele yon leap memwa kote yo kenbe lè l sèvi avèk 980 00:53:20,000 --> 00:53:24,000 pi plis ak plis memwa chak fwa ou rele GetString, ak sa a, se amann. 981 00:53:24,000 --> 00:53:27,000 Nou fè espre fè sa nan premye semèn yo paske li nan pa sa ki enteresan 982 00:53:27,000 --> 00:53:29,000 gen enkyete sou kote fisèl la ap vini soti nan. 983 00:53:29,000 --> 00:53:34,000 Tout sa ou vle se pawòl Bondye a Rob tounen vin lè itilizatè a kalite li pous 984 00:53:34,000 --> 00:53:38,000 >> Men, fè pi devan nou genyen kounye a yo kòmanse ap resevwa pi plis sofistike sou sa a. 985 00:53:38,000 --> 00:53:42,000 Nenpòt ki lè nou asiyen memwa nou pi bon evantyèlman lage l 'tounen. 986 00:53:42,000 --> 00:53:45,000 Otreman nan mond reyèl la sou Mac ou a oswa PC ou ta ka genyen detanzantan ki gen eksperyans 987 00:53:45,000 --> 00:53:50,000 sentòm kote òdinatè ou a ap pile grenn nan yon kanpe evantyèlman 988 00:53:50,000 --> 00:53:54,000 oswa estipid boul la bondi plaj se jis okipe a nan òdinatè 989 00:53:54,000 --> 00:53:56,000 tout atansyon yo epi li ou pa kapab fè bagay sa yo. 990 00:53:56,000 --> 00:54:00,000 Ki ka eksplike a nenpòt ki kantite pinèz, men nan mitan moun pinèz posib 991 00:54:00,000 --> 00:54:03,000 yo bagay sa yo rele fwit memwa kote yon moun ki te ekri ki moso nan lojisyèl 992 00:54:03,000 --> 00:54:07,000 w ap itilize pa t 'sonje memwa gratis 993 00:54:07,000 --> 00:54:10,000 ke li te oswa li te mande sistèm nan fonksyone pou li a, 994 00:54:10,000 --> 00:54:14,000 pa lè l sèvi avèk GetString, paske sa se yon bagay CS50, men lè l sèvi avèk fonksyon sanblab 995 00:54:14,000 --> 00:54:16,000 ki mande sistèm nan fonksyone pou memwa. 996 00:54:16,000 --> 00:54:19,000 Si ou menm oswa yo vis moute nan epi pa janm aktyèlman retounen ke memwa 997 00:54:19,000 --> 00:54:24,000 yon sentòm nan ki ka ke yon pwogram ralanti ak ralanti epi li ralanti 998 00:54:24,000 --> 00:54:26,000 sof si ou sonje yo rele gratis. 999 00:54:26,000 --> 00:54:28,000 >> Nou pral tounen vin jwenn lè ak poukisa ou ta ka rele gratis, 1000 00:54:28,000 --> 00:54:32,000 Men, kite a ale pi devan jis pou bon mezi epi eseye kouri pwogram sa a an patikilye. 1001 00:54:32,000 --> 00:54:35,000 Sa a te rele structs1, antre. 1002 00:54:35,000 --> 00:54:40,000 Kite m 'ale pi devan epi kouri structs1, 123, David Mather, 1003 00:54:40,000 --> 00:54:47,000 456, Rob Kirkland, 789, 1004 00:54:47,000 --> 00:54:50,000 Tommy Mather, epi nou wè nan David nan Mather, nan Tommy nan Mather. 1005 00:54:50,000 --> 00:54:53,000 Sa a se jis yon chèk saniti ti ke pwogram nan ap travay. 1006 00:54:53,000 --> 00:54:56,000 Koulye a, malerezman, pwogram sa a se yon ti kras fwistre nan ki 1007 00:54:56,000 --> 00:55:00,000 Mwen t 'tout sa ki travay, mwen tape nan 9 strings diferan, frape antre nan, 1008 00:55:00,000 --> 00:55:04,000 te di ki te nan Mather, ankò evidamman mwen te konnen ki moun ki te nan Mather deja paske mwen tape li. 1009 00:55:04,000 --> 00:55:07,000 Li ta omwen bèl si pwogram sa a se plis tankou yon baz done 1010 00:55:07,000 --> 00:55:10,000 epi li aktyèlman sonje sa mwen te tape nan 1011 00:55:10,000 --> 00:55:12,000 Se konsa, mwen pa janm ankò gen opinyon sa yo dosye elèv yo. 1012 00:55:12,000 --> 00:55:15,000 Petèt li nan tankou yon sistèm registrarial. 1013 00:55:15,000 --> 00:55:21,000 >> Nou ka fè sa a lè l sèvi avèk teknik sa a li te ye tankou D 'dosye dosye Mwen / O, ak pwodiksyon, 1014 00:55:21,000 --> 00:55:24,000 yon fason trè enerik pou m di nenpòt ki lè ou vle li dosye oswa ekri dosye 1015 00:55:24,000 --> 00:55:26,000 ou ka fè sa a ak yon seri sèten nan fonksyon. 1016 00:55:26,000 --> 00:55:29,000 Kite m 'ale pi devan epi louvri sa a structs2.c egzanp, 1017 00:55:29,000 --> 00:55:33,000 ki se prèske ki idantik, men kite a wè sa ki li kounye a ap fè. 1018 00:55:33,000 --> 00:55:36,000 Nan tèt la nan dosye a Mwen deklare yon klas elèv yo. 1019 00:55:36,000 --> 00:55:38,000 Mwen Lè sa a, peple klas la ak D 'itilizatè a la, 1020 00:55:38,000 --> 00:55:41,000 se konsa liy sa yo nan kòd yo egzakteman tankou anvan an. 1021 00:55:41,000 --> 00:55:45,000 Lè sa a, si mwen desann isit la mwen enprime tout moun ki nan Mather abitrèman renmen anvan, 1022 00:55:45,000 --> 00:55:47,000 men sa a se yon karakteristik enteresan nouvo. 1023 00:55:47,000 --> 00:55:51,000 Liy sa yo nan kòd se nouvo, epi yo prezante yon bagay isit la, 1024 00:55:51,000 --> 00:55:55,000 DOSYE, tout kaskèt, ak li gen * nan isit la tou. 1025 00:55:55,000 --> 00:55:58,000 Kite m 'deplase sa a sou isit la, yon * sou isit la tou. 1026 00:55:58,000 --> 00:56:00,000 >> Sa a fonksyon nou pa t 'wè anvan, fopen, 1027 00:56:00,000 --> 00:56:03,000 men li vle di dosye louvri, kidonk kite a koudèy nan sa yo, 1028 00:56:03,000 --> 00:56:05,000 ak sa a se yon bagay nou pral tounen vin jwenn nan psets nan lavni, 1029 00:56:05,000 --> 00:56:10,000 men liy sa a isit la esansyèlman ouvè yon dosye rele baz done, 1030 00:56:10,000 --> 00:56:13,000 epi li espesyalman ouvè li nan yon fason ke li ka fè sa yo dwe li? 1031 00:56:13,000 --> 00:56:15,000 [Fèbl-elèv] 1032 00:56:15,000 --> 00:56:19,000 Dwa, se konsa "W" jis vle di li te di sistèm nan fonksyone 1033 00:56:19,000 --> 00:56:21,000 louvri sa a dosye ki nan yon fason ke mwen ka ekri nou nan li. 1034 00:56:21,000 --> 00:56:23,000 Mwen pa vle li li l '. Mwen pa vle jis gade nan li. 1035 00:56:23,000 --> 00:56:26,000 Mwen vle chanje li epi ajoute bagay potansyèlman sou li, 1036 00:56:26,000 --> 00:56:28,000 ak dosye a yo pral rele baz done. 1037 00:56:28,000 --> 00:56:30,000 Sa a te ka rele anyen. 1038 00:56:30,000 --> 00:56:32,000 Sa a te kapab database.txt. Sa a te kapab. Db. 1039 00:56:32,000 --> 00:56:37,000 Sa a te kapab yon mo tankou foo, men mwen te chwazi abitrèman nan non baz done a dosye. 1040 00:56:37,000 --> 00:56:42,000 Sa a se yon chèk saniti ti ke nou pral tounen vin jwenn nan gwo detay sou tan, 1041 00:56:42,000 --> 00:56:47,000 si Fp, pou konsèy ranpli, fè sa ki pa nil egal sa vle di tout bagay byen. 1042 00:56:47,000 --> 00:56:51,000 >> Long istwa kout, fonksyon tankou fopen pafwa echwe. 1043 00:56:51,000 --> 00:56:53,000 Petèt dosye a pa egziste. Petèt w ap soti nan espas disk. 1044 00:56:53,000 --> 00:56:55,000 Petèt ou pa gen pèmisyon ak sa yo ki folder, 1045 00:56:55,000 --> 00:56:58,000 Se konsa, si fopen retounen yon bagay nil move rive. 1046 00:56:58,000 --> 00:57:02,000 Kontrèman, si fopen pa retounen nil tout se byen 1047 00:57:02,000 --> 00:57:04,000 e mwen ka kòmanse ekri nan sa a dosye. 1048 00:57:04,000 --> 00:57:06,000 Isit la nan yon Trick nouvo. 1049 00:57:06,000 --> 00:57:08,000 Sa a se yon riban pou ki nan iteration sou chak nan elèv yo m 'yo, 1050 00:57:08,000 --> 00:57:10,000 ak sa a sanble se konsa menm jan ak sa nou te fè anvan, 1051 00:57:10,000 --> 00:57:15,000 men sa a fonksyon se yon kouzen li nan printf rele fprintf pou dosye printf, 1052 00:57:15,000 --> 00:57:18,000 ak avi li a diferan nan sèlman 2 fason. 1053 00:57:18,000 --> 00:57:20,000 Youn nan, li kòmanse ak f olye pou yo p, 1054 00:57:20,000 --> 00:57:23,000 men Lè sa a, agiman premye li yo se aparamman ki sa? 1055 00:57:23,000 --> 00:57:25,000 [Elèv yo] dosye-a. >> Li se yon dosye. 1056 00:57:25,000 --> 00:57:30,000 Bagay sa yo rele Fp, ki nou pral evantyèlman toumante apa ki sa yon konsèy dosye se, 1057 00:57:30,000 --> 00:57:35,000 men pou kounye a Fp tou senpleman reprezante dosye a ke mwen te louvri, 1058 00:57:35,000 --> 00:57:41,000 Se konsa fprintf isit la ap di enprime ID sa a itilizatè a nan dosye a, nou pa ekran an. 1059 00:57:41,000 --> 00:57:44,000 Ekri an lèt detache non itilizatè a nan dosye a, nou pa ekran an, 1060 00:57:44,000 --> 00:57:47,000 kay la nan dosye a, nou pa ekran an, ak Lè sa a, desann isit la, evidamman, 1061 00:57:47,000 --> 00:57:50,000 fèmen dosye a, ak Lè sa a, desann isit la gratis memwa a. 1062 00:57:50,000 --> 00:57:53,000 >> Sèl diferans ki genyen ant sa a vèsyon 2 ak vèsyon 1 1063 00:57:53,000 --> 00:57:58,000 se entwodiksyon an fopen ak sa a DOSYE ak * 1064 00:57:58,000 --> 00:58:01,000 ak sa a nosyon nan fprintf, kidonk kite a wè sa ki rezilta nan fen se. 1065 00:58:01,000 --> 00:58:03,000 Kite m 'ale nan fenèt tèminal m' yo. 1066 00:58:03,000 --> 00:58:06,000 Kite m 'kouri structs2, antre. 1067 00:58:06,000 --> 00:58:09,000 Sanble tout se byen. Se pou nou relance structs2. 1068 00:58:09,000 --> 00:58:15,000 123, David Mather, 456, Rob Kirkland, 1069 00:58:15,000 --> 00:58:19,000 789, Tommy Mather, antre. 1070 00:58:19,000 --> 00:58:23,000 Sanble li Konpòte menm bagay la tou, men si mwen fè kounye a ls 1071 00:58:23,000 --> 00:58:28,000 remake ki sa dosye se nan isit la nan mitan tout kòd m 'yo, baz done, 1072 00:58:28,000 --> 00:58:32,000 kidonk kite la louvri sa, jdi nan baz done, ak gade nan sa. 1073 00:58:32,000 --> 00:58:34,000 Li pa sèksi a nan fòma dosye-a. 1074 00:58:34,000 --> 00:58:38,000 Li reyèlman se youn moso nan liy done pou chak liy pou chak liy, 1075 00:58:38,000 --> 00:58:42,000 men moun nan nou ki sèvi ak Excel oswa CSV dosye, vigil separe valè, 1076 00:58:42,000 --> 00:58:47,000 Mwen te kapab sètènman te itilize fprintf olye petèt fè yon bagay tankou sa a 1077 00:58:47,000 --> 00:58:50,000 pou ke mwen te ka aktyèlman kreye ekivalan a nan yon dosye Excel 1078 00:58:50,000 --> 00:58:53,000 pa separe bagay ak vigil, pa sèlman nouvo liy. 1079 00:58:53,000 --> 00:58:56,000 >> Nan ka sa a si mwen te olye yo itilize vigil olye pou yo nouvo liy 1080 00:58:56,000 --> 00:59:01,000 Mwen te kapab literalman louvri sa a ranpli baz done nan Excel si mwen olye te fè li gade tankou sa a. 1081 00:59:01,000 --> 00:59:03,000 Nan ti bout tan, kounye a ke nou gen pouvwa a yo pou yo ekri dosye 1082 00:59:03,000 --> 00:59:07,000 nou kapab kounye a kòmanse done pèsistan, kenbe l 'nan sou disk 1083 00:59:07,000 --> 00:59:10,000 pou nou ka kenbe enfòmasyon alantou ankò epi ankò. 1084 00:59:10,000 --> 00:59:14,000 Avi yon koup la lòt bagay ki se kounye a yon ti jan pi plis yo konnen yo. 1085 00:59:14,000 --> 00:59:16,000 Nan tèt sa a ranpli C a nou genyen yon tipedèf 1086 00:59:16,000 --> 00:59:21,000 paske nou te vle kreye yon kalite done ki reprezante yon mo, 1087 00:59:21,000 --> 00:59:25,000 Se konsa sa a se tip ki rele mo, ak andedan nan estrikti sa a 1088 00:59:25,000 --> 00:59:27,000 li nan yon ti kras amateur kounye a. 1089 00:59:27,000 --> 00:59:30,000 Poukisa se yon mo te fè leve nan aparamman etalaj yon? 1090 00:59:30,000 --> 00:59:33,000 Ki sa ki se yon mo jis entwitivman? 1091 00:59:33,000 --> 00:59:35,000 >> Li nan yon etalaj de karaktè. 1092 00:59:35,000 --> 00:59:37,000 Li se yon sekans nan karaktè tounen nan fè bak nan do. 1093 00:59:37,000 --> 00:59:41,000 LÈT nan tout kapsil k ap pase yo nou abitrèman di longè a maksimòm 1094 00:59:41,000 --> 00:59:44,000 nan nenpòt ki pawòl nan diksyonè a ke nou ap sèvi ak pou Goumen. 1095 00:59:44,000 --> 00:59:46,000 Poukisa mwen gen yon +1? 1096 00:59:46,000 --> 00:59:48,000 Pèsonaj la nil. 1097 00:59:48,000 --> 00:59:51,000 Sonje lè nou te fè sa egzanp lan Bananagrams nou bezwen yon valè espesyal 1098 00:59:51,000 --> 00:59:55,000 nan fen mo a yo nan lòd yo kenbe tras 1099 00:59:55,000 --> 00:59:59,000 nan kote mo aktyèlman te fini, e kòm spesifikasyon la ansanm pwoblèm di 1100 00:59:59,000 --> 01:00:03,000 isit la nou ap asosye ak yon mo bay yon valè Boolean, 1101 01:00:03,000 --> 01:00:05,000 yon drapo, se konsa pale, vre oubyen fo. 1102 01:00:05,000 --> 01:00:09,000 Èske ou te jwenn mo sa a deja, paske nou reyalize 1103 01:00:09,000 --> 01:00:13,000 nou reyèlman bezwen yon fason pou sonje se pa sèlman sa ki yon mo se nan Goumen 1104 01:00:13,000 --> 01:00:15,000 men si ou pa ou, moun lan, te jwenn li 1105 01:00:15,000 --> 01:00:20,000 pou ke si ou fè jwenn pawòl Bondye a "" ou pa kapab jis tape nan la, antre nan,, antre a,, antre nan 1106 01:00:20,000 --> 01:00:23,000 epi pou yo jwenn 3 pwen, 3 pwen, 3 pwen, 3 pwen. 1107 01:00:23,000 --> 01:00:26,000 Nou vle pou kapab lis nwa mo sa a pa mete yon bouleen 1108 01:00:26,000 --> 01:00:29,000 vre si ou te deja jwenn li, ak pou ki nan rezon sa a nou 1109 01:00:29,000 --> 01:00:31,000 enklizyon li nan estrikti sa a. 1110 01:00:31,000 --> 01:00:35,000 >> Koulye a, desann isit la nan Goumen gen nan sa a struct lòt yo rele diksyonè. 1111 01:00:35,000 --> 01:00:39,000 KI PA LA isit la se pawòl Bondye a tipedèf paske nan ka sa a 1112 01:00:39,000 --> 01:00:43,000 nou bezwen ankapsulasyon lide a nan yon diksyonè, diksyonè 1113 01:00:43,000 --> 01:00:46,000 ak yon diksyonè gen yon pakèt antye nan mo, 1114 01:00:46,000 --> 01:00:49,000 kòm enplisit sa a etalaj, ak kouman anpil nan mo sa yo ki genyen? 1115 01:00:49,000 --> 01:00:51,000 Oke, kèlkeswa sa sa a gwosè varyab rele di. 1116 01:00:51,000 --> 01:00:53,000 Men, nou jis bezwen youn diksyonè. 1117 01:00:53,000 --> 01:00:55,000 Nou pa bezwen yon kalite done yo rele diksyonè. 1118 01:00:55,000 --> 01:00:58,000 Nou jis bezwen youn nan yo, se konsa li vire soti nan C 1119 01:00:58,000 --> 01:01:03,000 ke si ou pa di tipedèf, ou jis di struct, lè sa a andedan aparèy òtopedik yo Curly 1120 01:01:03,000 --> 01:01:05,000 ou mete varyab ou a, lè sa a ou mete non an. 1121 01:01:05,000 --> 01:01:09,000 Sa a se deklare yon varyab diksyonè rele 1122 01:01:09,000 --> 01:01:11,000 ki sanble tankou sa a. 1123 01:01:11,000 --> 01:01:16,000 Nan kontras, liy sa yo ap kreye yon estrikti done ki kapab itilize ankò rele mo 1124 01:01:16,000 --> 01:01:19,000 ke ou ka kreye plizyè kopi, jis tankou nou te kreye 1125 01:01:19,000 --> 01:01:22,000 plizyè kopi elèv yo. 1126 01:01:22,000 --> 01:01:24,000 >> Ki sa sa finalman pèmèt nou fè? 1127 01:01:24,000 --> 01:01:30,000 Kite m 'ale tounen nan, kite la di, yon egzanp ki pi senp nan pi senp fwa, 1128 01:01:30,000 --> 01:01:34,000 ak kite m 'louvri moute, kite la di, compare1.c. 1129 01:01:34,000 --> 01:01:38,000 Pwoblèm nan isit la nan men se aktyèlman kale tounen 1130 01:01:38,000 --> 01:01:41,000 kouch la nan yon fisèl ak kòmanse pran nan sa yo wou fòmasyon 1131 01:01:41,000 --> 01:01:44,000 paske li sanble ke yon fisèl tout tan sa a 1132 01:01:44,000 --> 01:01:47,000 se jan nou te pwomèt nan semèn 1 vrèman jis yon tinon, 1133 01:01:47,000 --> 01:01:51,000 yon sinonim nan bibliyotèk la CS50 pou yon bagay ki sanble yon ti kras plis skre, 1134 01:01:51,000 --> 01:01:53,000 Char *, epi nou te wè sa a zetwal anvan. 1135 01:01:53,000 --> 01:01:55,000 Nou te wè li nan yon kontèks dosye. 1136 01:01:55,000 --> 01:01:59,000 >> Se pou nou wè koulye a poukisa nou ve yo te kache sa a detay pou kèk tan kounye a. 1137 01:01:59,000 --> 01:02:02,000 Isit la se yon dosye rele compare1.c, 1138 01:02:02,000 --> 01:02:07,000 epi li aparamman mande itilizatè a pou 2 strings, s ak t, 1139 01:02:07,000 --> 01:02:11,000 ak Lè sa a, li ap eseye konpare sa yo strings pou egalite nan liy 26, 1140 01:02:11,000 --> 01:02:14,000 epi si yo ap egal li di, "Ou tape menm bagay la," 1141 01:02:14,000 --> 01:02:17,000 epi si yo ap pa egal li di, "Ou tape bagay diferan." 1142 01:02:17,000 --> 01:02:19,000 Kite m 'ale pi devan epi kouri pwogram sa a. 1143 01:02:19,000 --> 01:02:23,000 Kite m 'ale nan anyè sous m' yo, fè yon compare1. Li konpile oke. 1144 01:02:23,000 --> 01:02:25,000 Kite m 'kouri compare1. 1145 01:02:25,000 --> 01:02:27,000 Mwen pral rale nan, antre. 1146 01:02:27,000 --> 01:02:29,000 Di yon bagay. Hello. 1147 01:02:29,000 --> 01:02:32,000 Mwen pral di yon bagay ankò. Hello. 1148 01:02:32,000 --> 01:02:34,000 Mwen definitivman pa t 'tape bagay diferan. 1149 01:02:34,000 --> 01:02:37,000 >> Kite m 'eseye sa a ankò. BYE BYE. 1150 01:02:37,000 --> 01:02:40,000 Definitivman pa diferan, se konsa sa k ap pase sou isit la? 1151 01:02:40,000 --> 01:02:44,000 Oke, sa se reyèlman yo te konpare nan liy 26? 1152 01:02:44,000 --> 01:02:46,000 [Fèbl-elèv] 1153 01:02:46,000 --> 01:02:49,000 Wi, se konsa li sanble ke yon fisèl, done kalite, se kalite yon manti blan. 1154 01:02:49,000 --> 01:02:53,000 Yon fil se yon * Char, men ki sa se yon * Char? 1155 01:02:53,000 --> 01:02:56,000 A * Char, menm jan yo di, se yon konsèy, 1156 01:02:56,000 --> 01:03:00,000 ak yon konsèy se efektivman yon adrès, 1157 01:03:00,000 --> 01:03:05,000 yon sòm kote nan memwa, epi si ou rive gen tape nan yon mo tankou HELLO, 1158 01:03:05,000 --> 01:03:08,000 sonje soti nan diskisyon sot pase a strings 1159 01:03:08,000 --> 01:03:16,000 sa a se tankou pawòl Bondye a HELLO. 1160 01:03:16,000 --> 01:03:19,000 Sonje ke ka yon mo tankou HELLO ap reprezante 1161 01:03:19,000 --> 01:03:22,000 kòm yon etalaj de karaktè tankou sa a 1162 01:03:22,000 --> 01:03:25,000 ak Lè sa a, ak yon gwo karaktè espesyal nan fen a yo rele karaktè a nil, 1163 01:03:25,000 --> 01:03:27,000 kòm reprezant yo \. 1164 01:03:27,000 --> 01:03:29,000 Ki sa ki se aktyèlman yon fisèl? 1165 01:03:29,000 --> 01:03:32,000 Avi ke sa a se sègman miltip nan memwa, 1166 01:03:32,000 --> 01:03:36,000 ak nan reyalite, se nan fen li sèlman li te ye yon fwa ou gade nan fisèl la tout antye 1167 01:03:36,000 --> 01:03:38,000 kap chèche pèsonaj la nil espesyal. 1168 01:03:38,000 --> 01:03:41,000 Men, si sa a se yon ti moso nan memwa nan memwa òdinatè mwen an, 1169 01:03:41,000 --> 01:03:44,000 kite a abitrèman di ke sa a fisèl jis te gen chans, 1170 01:03:44,000 --> 01:03:47,000 epi li te resevwa mete nan kòmansman la anpil nan RAM òdinatè mwen an. 1171 01:03:47,000 --> 01:03:54,000 Sa a se, 0 multiple 1, 2, 3, 4, 5, 6 ... 1172 01:03:54,000 --> 01:04:02,000 >> Lè m 'di yon bagay tankou GetString ak m' fè fisèl s = GetString 1173 01:04:02,000 --> 01:04:04,000 sa ki vrèman ke yo te tounen? 1174 01:04:04,000 --> 01:04:08,000 Pou semèn sa yo sot pase plizyè, sa ki vrèman ke yo te ki estoke nan s 1175 01:04:08,000 --> 01:04:13,000 se pa sa a fisèl se pou chak, men nan ka sa a sa k ap estoke se 1176 01:04:13,000 --> 01:04:18,000 nimewo 0 a paske sa GetString aktyèlman fè sa ki 1177 01:04:18,000 --> 01:04:20,000 se li pa fizikman retounen yon kòd. 1178 01:04:20,000 --> 01:04:22,000 Ki pa menm vrèman fè konseptyèl ekspresyon sans. 1179 01:04:22,000 --> 01:04:24,000 Ki sa li fè retou se yon nimewo. 1180 01:04:24,000 --> 01:04:28,000 Nimewo a se adrès ki nan HELLO nan memwa, 1181 01:04:28,000 --> 01:04:32,000 ak tout kòd yo lè sa a, si nou kale tounen kouch sa a, fisèl pa reyèlman egziste. 1182 01:04:32,000 --> 01:04:35,000 Li nan sèlman yon senplifikasyon nan bibliyotèk la CS50. 1183 01:04:35,000 --> 01:04:38,000 >> Sa a vrèman se yon bagay yo rele Char *. 1184 01:04:38,000 --> 01:04:41,000 Char fè sans paske sa ki nan yon mo, tankou HELLO? 1185 01:04:41,000 --> 01:04:44,000 Oke, li nan yon seri de charaktèr, yon seri de karaktè. 1186 01:04:44,000 --> 01:04:47,000 * Char vle di adrès ki nan yon karaktè, 1187 01:04:47,000 --> 01:04:50,000 Se konsa, sa sa vle di retounen yon kòd? 1188 01:04:50,000 --> 01:04:53,000 Yon bèl, senp fason pou retounen yon fisèl 1189 01:04:53,000 --> 01:04:57,000 se olye ke eseye figi konnen kouman mwen retounen 5 oswa 6 bytes diferan 1190 01:04:57,000 --> 01:05:01,000 kite m 'tounen nan adrès ki nan yo ki multiple? 1191 01:05:01,000 --> 01:05:03,000 Yon sèl la an premye. 1192 01:05:03,000 --> 01:05:06,000 Nan lòt mo, kite m ba w adrès ki nan yon karaktè nan memwa. 1193 01:05:06,000 --> 01:05:10,000 Sa a ki sa * Char reprezante, adrès la nan yon karaktè sèl nan memwa. 1194 01:05:10,000 --> 01:05:12,000 Rele ki nan varyab. 1195 01:05:12,000 --> 01:05:15,000 Store li nan s ki adrès patikilye, nan Tanp kote mwen te di se abitrèman 0, 1196 01:05:15,000 --> 01:05:19,000 jis kenbe bagay sa ki senp, men nan reyalite li nan jeneralman yon nimewo pi gran. 1197 01:05:19,000 --> 01:05:21,000 >> Tann yon minit. 1198 01:05:21,000 --> 01:05:23,000 Si w ap sèlman bay m 'adrès ki nan karaktè a an premye, ki jan mwen konnen ki sa ki adrès la se 1199 01:05:23,000 --> 01:05:25,000 nan karaktè, dezyèm lan, twazyèm lan, katriyèm lan ak senkyèm lan? 1200 01:05:25,000 --> 01:05:27,000 [Fèbl-elèv] 1201 01:05:27,000 --> 01:05:31,000 Ou sèlman konnen ki kote nan fen fisèl la se pa fason pou sa a jwe fent sou lamen, 1202 01:05:31,000 --> 01:05:35,000 Se konsa, lè ou itilize yon bagay tankou printf, ki sa ki printf literalman pran kòm agiman li yo, 1203 01:05:35,000 --> 01:05:39,000 sonje ke nou itilize kontneur sa a% s, ak Lè sa a, ou pase nan 1204 01:05:39,000 --> 01:05:41,000 varyab la ki nan estoke yon kòd. 1205 01:05:41,000 --> 01:05:47,000 Ki sa w ap reyèlman pase se adrès ki nan karaktè an premye nan ki fisèl. 1206 01:05:47,000 --> 01:05:50,000 Printf Lè sa a, sèvi ak yon riban pou oswa yon riban pandan y ap yo lè li resevwa ke adrès, 1207 01:05:50,000 --> 01:05:53,000 pou egzanp, 0, se konsa, kite m 'fè sa, koulye a, 1208 01:05:53,000 --> 01:06:02,000 printf ("% s \ n," yo); 1209 01:06:02,000 --> 01:06:07,000 Lè m 'rele printf ("% s \ n," yo); sa m ap vrèman bay printf ak 1210 01:06:07,000 --> 01:06:13,000 se adrès ki nan pèsonaj la an premye nan yo, ki nan ka sa a abitrè se H. 1211 01:06:13,000 --> 01:06:16,000 >> Ki jan printf konnen ki sa egzakteman yo montre sou ekran an? 1212 01:06:16,000 --> 01:06:19,000 Moun ki aplike printf aplike yon riban pandan y ap oswa yon pou riban 1213 01:06:19,000 --> 01:06:23,000 ki di sa a karaktè egal pèsonaj la nil espesyal? 1214 01:06:23,000 --> 01:06:25,000 Si ou pa, enprime li. Kouman sou yon sèl sa a? 1215 01:06:25,000 --> 01:06:28,000 Si ou pa enprime li, enprime li, enprime li, enprime li. 1216 01:06:28,000 --> 01:06:32,000 Oh, sa a se yon sèl espesyal. One Stop enprime yo epi retounen nan itilizatè a. 1217 01:06:32,000 --> 01:06:35,000 Epi sa a, literalman tout sa ki nan te pase anba kapo machin lan, 1218 01:06:35,000 --> 01:06:38,000 epi se yon anpil nan dijere nan premye jou nan yon klas, 1219 01:06:38,000 --> 01:06:43,000 men pou kounye a li vrèman blòk la bilding nan tout bagay konpreyansyon 1220 01:06:43,000 --> 01:06:46,000 ki te konn mete pral sou andedan nan memwa òdinatè nou an, 1221 01:06:46,000 --> 01:06:49,000 ak evantyèlman nou pral toumante sa a apa ak yon ti èd 1222 01:06:49,000 --> 01:06:51,000 nan youn nan zanmi nou an nan Stanford. 1223 01:06:51,000 --> 01:06:56,000 >> Pwofesè Nick Parlante nan Stanford ki fè sa sekans videyo bèl bagay 1224 01:06:56,000 --> 01:06:58,000 soti nan tout kalite lang diferan ki prezante 1225 01:06:58,000 --> 01:07:00,000 sa a ti kras karaktè Claymation Binky. 1226 01:07:00,000 --> 01:07:03,000 Vwa a ou se sou tande nan jis yon preview kèk glisman dezyèm 1227 01:07:03,000 --> 01:07:05,000 se sa yo ki an yon Stanford pwofesè, ak w ap vin 1228 01:07:05,000 --> 01:07:07,000 sèlman 5 oswa 6 segonn dwa sa a kounye a, 1229 01:07:07,000 --> 01:07:09,000 men sa a se nòt la ki te sou nou pral konkli jodi a 1230 01:07:09,000 --> 01:07:11,000 epi kòmanse nan Mèkredi. 1231 01:07:11,000 --> 01:07:15,000 M 'ba ou Fun pwente ak Binky, preview la. 1232 01:07:15,000 --> 01:07:18,000 [♪ ♪ Klas Mizik] [Pwofesè Parlante] Hey, Binky. 1233 01:07:18,000 --> 01:07:21,000 Reveye. Li lè pou plezi konsèy. 1234 01:07:21,000 --> 01:07:24,000 [Binky] Ki sa ki nan sa? Aprann sou pwent? 1235 01:07:24,000 --> 01:07:26,000 Oh, chokola! 1236 01:07:26,000 --> 01:07:29,000 >> Nou pral wè ou nan Mèkredi. 1237 01:07:29,000 --> 01:07:32,000 [CS50.TV]