1 00:00:00,000 --> 00:00:03,395 >> [MIZIK jwe] 2 00:00:03,395 --> 00:00:11,031 3 00:00:11,031 --> 00:00:13,280 DAVID J. Malan: Sa a se tankou yon seminè nevyèm ane jodi a. 4 00:00:13,280 --> 00:00:14,060 OK. 5 00:00:14,060 --> 00:00:15,024 Se konsa, trè lapli deyò. 6 00:00:15,024 --> 00:00:17,690 Sa a gen tandans fè rive sou mèkredi, men tout opòtinite pou plis 7 00:00:17,690 --> 00:00:18,700 pou kesyon jodi a. 8 00:00:18,700 --> 00:00:22,210 Se konsa, kite la kòmanse koupe aktyèlman ak fim nan nan jis yon moman. 9 00:00:22,210 --> 00:00:24,560 Men, nou pral kòmanse grandly kòm toujou. 10 00:00:24,560 --> 00:00:28,000 >> Sa a se CS50, e sa se nan fen semèn 4. 11 00:00:28,000 --> 00:00:30,820 Se konsa, si ou te janm gade Televizyon oswa yon fim dans 12 00:00:30,820 --> 00:00:34,690 gen nan kèk ekspè òdinatè ak polis la, oswa FBI, oswa kèk ajans 13 00:00:34,690 --> 00:00:36,930 ap eseye trape kèk lènmi, byen, ou te 14 00:00:36,930 --> 00:00:40,850 pwobableman tande ekspresyon "amelyore," kijan ki teknisyen yon jan kanmenm 15 00:00:40,850 --> 00:00:44,750 maji zoum nan enfiniman byen lwen yo wè kriminèl yo 16 00:00:44,750 --> 00:00:48,640 idantite oswa nimewo a plak machin nan menm sentiye nan yon glas 17 00:00:48,640 --> 00:00:50,390 oswa briye an nan je yon moun. 18 00:00:50,390 --> 00:00:55,196 Se konsa, tout bon, se pou yo pran yon gade nan yon kèk sèn sa yo soti nan Hollywood. 19 00:00:55,196 --> 00:00:55,862 [VIDEO lèktur] 20 00:00:55,862 --> 00:00:59,243 -OK, Kounye a kite a jwenn yon gade bon nan ou. 21 00:00:59,243 --> 00:01:06,488 22 00:01:06,488 --> 00:01:07,415 >> -Hold Li. 23 00:01:07,415 --> 00:01:08,267 Kouri ki tounen. 24 00:01:08,267 --> 00:01:09,121 >> -Wait Yon minit. 25 00:01:09,121 --> 00:01:11,300 Ale dwat. 26 00:01:11,300 --> 00:01:12,209 >> -Pa, Friz sa. 27 00:01:12,209 --> 00:01:12,750 -Full Ekran. 28 00:01:12,750 --> 00:01:13,558 -OK, Friz sa. 29 00:01:13,558 --> 00:01:14,820 -Tighten Moute sou sa, pral ou? 30 00:01:14,820 --> 00:01:16,530 -Vector An sou sa nèg pa volan an tounen. 31 00:01:16,530 --> 00:01:19,400 -Zoom Nan bon isit la sou plas sa a. 32 00:01:19,400 --> 00:01:22,846 -Avèk Ekipman an dwa, imaj la te kapab elaji ak file. 33 00:01:22,846 --> 00:01:24,065 -Ki Nan sa? 34 00:01:24,065 --> 00:01:25,600 -Li Nan yon pwogram amelyorasyon. 35 00:01:25,600 --> 00:01:26,860 -Timoun Ou klè ke moute nenpòt? 36 00:01:26,860 --> 00:01:27,890 -M pa konnen. 37 00:01:27,890 --> 00:01:29,050 Se pou nou amelyore li. 38 00:01:29,050 --> 00:01:31,575 >> -Enhance Seksyon A6. 39 00:01:31,575 --> 00:01:33,642 >> -Mwen Ranfòse detay nan, and-- Mwen panse ke gen nan 40 00:01:33,642 --> 00:01:35,433 ase yo amelyore, lage l 'nan ekran m' yo. 41 00:01:35,433 --> 00:01:37,080 -Mwen Ranfòse refleksyon an nan je l '. 42 00:01:37,080 --> 00:01:38,830 >> -Kite Nan kouri sa a nan videyo amelyorasyon. 43 00:01:38,830 --> 00:01:40,100 -Edgar, Èske ou kapab amelyore sa a? 44 00:01:40,100 --> 00:01:41,875 >> -Hang Sou. 45 00:01:41,875 --> 00:01:44,010 >> -I've Te ap travay sou refleksyon sa a. 46 00:01:44,010 --> 00:01:44,995 >> Refleksyon -Someone la. 47 00:01:44,995 --> 00:01:45,495 -Reflection. 48 00:01:45,495 --> 00:01:47,399 -Pa Nan yon refleksyon nan devan chèf la. 49 00:01:47,399 --> 00:01:48,065 -La Refleksyon. 50 00:01:48,065 --> 00:01:48,981 -Pa Nan yon refleksyon. 51 00:01:48,981 --> 00:01:50,600 -Zoom Nan sou glas la. 52 00:01:50,600 --> 00:01:52,712 -Ou Ka wè yon refleksyon. 53 00:01:52,712 --> 00:01:54,350 -Timoun Ou amelyore imaj la soti isit la? 54 00:01:54,350 --> 00:01:55,370 -Timoun Ou amelyore l 'dwa isit la? 55 00:01:55,370 --> 00:01:56,210 -Timoun Ou amelyore li? 56 00:01:56,210 --> 00:01:56,900 Èske ou ka amelyore li? 57 00:01:56,900 --> 00:01:57,870 >> -Timoun Nou amelyore sa a? 58 00:01:57,870 --> 00:01:58,717 >> -Timoun Ou amelyore li? 59 00:01:58,717 --> 00:02:00,050 -Hold Sou yon dezyèm fwa, mwen pral amelyore. 60 00:02:00,050 --> 00:02:00,924 -Zoom Nan sou pòt la. 61 00:02:00,924 --> 00:02:01,700 -Times 10. 62 00:02:01,700 --> 00:02:02,586 -Zoom. 63 00:02:02,586 --> 00:02:03,490 -Move An. 64 00:02:03,490 --> 00:02:03,990 -more. 65 00:02:03,990 --> 00:02:04,690 -Wait, Sispann. 66 00:02:04,690 --> 00:02:05,190 -Stop. 67 00:02:05,190 --> 00:02:05,970 -Pause Li. 68 00:02:05,970 --> 00:02:09,460 -Thorne Nou 75 degre alantou vètikal la, tanpri. 69 00:02:09,460 --> 00:02:10,962 -Stop. 70 00:02:10,962 --> 00:02:14,040 Tounen nan pati a sou pòt la, ankò. 71 00:02:14,040 --> 00:02:15,860 >> -Got Yon aktivateur imaj ki ka bitmap? 72 00:02:15,860 --> 00:02:18,776 >> -Hey, Petèt nou ka sèvi ak Pradeep nan Sen metòd yo wè nan fenèt la. 73 00:02:18,776 --> 00:02:20,372 Lojisyèl -Sa a se eta de atizay la. 74 00:02:20,372 --> 00:02:21,845 >> -La Eigenvalue se koupe. 75 00:02:21,845 --> 00:02:24,300 >> -Avèk Dwat a konbinezon de algorithm 76 00:02:24,300 --> 00:02:26,755 >> Pran eliminasyon an -Li algoritm li nan yon nivo kap vini an, 77 00:02:26,755 --> 00:02:28,730 e mwen ka sèvi ak yo nan amelyore foto sa a. 78 00:02:28,730 --> 00:02:31,286 >> -Lock Sou yo ak sou elaji-aks la z. 79 00:02:31,286 --> 00:02:32,560 >> -Enhance. 80 00:02:32,560 --> 00:02:33,100 >> -Enhance. 81 00:02:33,100 --> 00:02:33,600 >> -Enhance. 82 00:02:33,600 --> 00:02:34,960 -Freeze Ak amelyore. 83 00:02:34,960 --> 00:02:37,180 >> [END lèktur] 84 00:02:37,180 --> 00:02:41,160 >> DAVID J. Malan: Tout dwa, se konsa tout moun ki yo aktyèlman mo yo. 85 00:02:41,160 --> 00:02:44,450 Yo ap jis nèrveu ansanm nan yon fason sa a, se pa aktyèlman sansib. 86 00:02:44,450 --> 00:02:48,400 Epi, an reyalite, CS50 ak kou tankou li gen tandans fè ruin yon anpil nan televizyon ak sinema 87 00:02:48,400 --> 00:02:48,900 pou ou. 88 00:02:48,900 --> 00:02:52,330 Paske lè moun ekspè òdinatè yo formidable nan tèm yo t'ap di konsa 89 00:02:52,330 --> 00:02:56,860 bagay sa yo anpenpan tankou eigenvectors, ak-aks la z, 90 00:02:56,860 --> 00:02:59,572 ak nenpòt kantite lòt aktyèlman plis tèm teknik, 91 00:02:59,572 --> 00:03:02,030 yo ap vrèman jis stringing Mo ansanm tout twò souvan. 92 00:03:02,030 --> 00:03:05,020 Eske se sa ke youn nan espere ke nou an, se ke, kòm yon efè segondè nan kou pran 93 00:03:05,020 --> 00:03:08,245 tankou sa a, pral plis moun nan a mond aktyèlman ap kapab peze nan 94 00:03:08,245 --> 00:03:12,040 ak jis yon ti kras janm konsa enfliyanse a bon jan kalite ak presizyon nan fim sa yo? 95 00:03:12,040 --> 00:03:14,350 >> An reyalite, se pou yo pran yon gade nan reyalite. 96 00:03:14,350 --> 00:03:18,070 Se konsa, isit la se foto a anplwaye nan Mari, youn nan zanmi ansèyman nou an. 97 00:03:18,070 --> 00:03:20,050 Apre sa, ta kwè li se yo sispèk ki yon bagay. 98 00:03:20,050 --> 00:03:23,730 E ankò, gen nan yon ekla nan kèk moso nan prèv nan je l ', 99 00:03:23,730 --> 00:03:25,480 oswa nan refleksyon an nan linèt li. 100 00:03:25,480 --> 00:03:30,760 Bon, si nou fè egzakteman jan fim sa yo pwopoze, kote nou rale ak "amelyore", 101 00:03:30,760 --> 00:03:34,080 sa a se konbyen lajan enfòmasyon se nan figi Mary a 102 00:03:34,080 --> 00:03:36,795 lè ou pran yon imaj ak sa rezolisyon orijinal la. 103 00:03:36,795 --> 00:03:39,120 >> Epi, an reyalite, ou ka wè pwen sa yo. 104 00:03:39,120 --> 00:03:41,900 Men ki sa yo rele piksèl, P-I-X-E-L-S, 105 00:03:41,900 --> 00:03:45,740 ki se jis yon kare tipikman ki se yon dot ki konpoze yon imaj. 106 00:03:45,740 --> 00:03:49,200 Ak tounen lakay ou nan jounen an, ak aktyèlman menm jodi a ak kèk nan jodi a ki ap dirije televizyon 107 00:03:49,200 --> 00:03:51,950 oswa LCD televizyon, si ou te gen yon sèl nan chanm ou oswa nan kay la, 108 00:03:51,950 --> 00:03:55,100 si ou ale moute super fèmen nan li, epi espesyalman si li nan yon televizyon yon ti jan pi gran, 109 00:03:55,100 --> 00:03:58,760 ou ka pwobableman menm wè pwen sa yo ak se sa ki konpoze yon imaj. 110 00:03:58,760 --> 00:04:00,980 >> Apre sa, se pa plis enfòmasyon pase sa a. 111 00:04:00,980 --> 00:04:05,400 Nou te kapab "amelyore", nan sans nan atenuasyon bagay sou yo ak sòt de 112 00:04:05,400 --> 00:04:09,040 èksklamasyon kalite, sòt de ki sa koulè yo ta dwe pwochen nan je Mary a 113 00:04:09,040 --> 00:04:10,910 se konsa ke li la pa aktyèlman se konsa piselize. 114 00:04:10,910 --> 00:04:14,510 Men, si mwen kenbe zoum nan, gen se nèg la move nan je l '. 115 00:04:14,510 --> 00:04:16,600 Fè tankou ke tout se nan enfòmasyon nou genyen. 116 00:04:16,600 --> 00:04:18,920 Ou pa kapab kreye enfòmasyon soti nan pa gen anyen. 117 00:04:18,920 --> 00:04:20,790 Genyen sèlman yon fini kantite Bits la. 118 00:04:20,790 --> 00:04:22,873 >> Se konsa, nan pwoblèm Fikse 4, kote ou gen yon opòtinite 119 00:04:22,873 --> 00:04:24,580 yo jwe ak sa a kalite nan lemonn. 120 00:04:24,580 --> 00:04:27,610 Nan pwoblèm Mete 4, ou pral eksplore nan mond nan grafik, ak forensics, 121 00:04:27,610 --> 00:04:30,870 ak aktyèlman ekri kòd ki restaure pèdi imaj. 122 00:04:30,870 --> 00:04:33,510 Ou ap ekri kòd ki manipul imaj ki deja egziste 123 00:04:33,510 --> 00:04:36,120 epi finalman konprann sa ki nan ale sou anba kapo a. 124 00:04:36,120 --> 00:04:38,540 >> Epi, li vire soti, li la aktyèlman pa tout sa ki konplike. 125 00:04:38,540 --> 00:04:41,320 Pou egzanp, si nou te vle reprezante yon figi Smiley kote 126 00:04:41,320 --> 00:04:44,160 ak sa yo piksèl nwa, oswa sa yo pwen nwa, 127 00:04:44,160 --> 00:04:47,230 byen, nou te ka tou senpleman reprezante yo tankou vrèman yon bitmap. 128 00:04:47,230 --> 00:04:50,040 Men, si ou te janm vin konnen ekspresyon bitmap, petèt 129 00:04:50,040 --> 00:04:52,330 li kounye a kòmanse fè yon ti kras pi plis sans jodi a. 130 00:04:52,330 --> 00:04:53,580 >> Nou deja konnen sa yon ti jan se. 131 00:04:53,580 --> 00:04:54,160 Li nan 0 oswa 1. 132 00:04:54,160 --> 00:04:56,201 Apre sa, yon kat jeyografik se jis yon bagay tankou yon moso papye 133 00:04:56,201 --> 00:04:59,180 ki ba ou direksyon e li gen petèt yon griy a x- ak y-kowòdone. 134 00:04:59,180 --> 00:05:00,540 Se konsa, isit la se yon bitmap. 135 00:05:00,540 --> 00:05:03,680 Li se yon kat jeyografik nan Bits kijan yon 1 se aparamman 136 00:05:03,680 --> 00:05:07,857 ale nan reprezante yon pixel blan, ak yon 0 ki pral reprezante yon pixel nwa. 137 00:05:07,857 --> 00:05:09,440 Men, nou te ka sètènman baskile l 'nan. 138 00:05:09,440 --> 00:05:11,648 Li pa reyèlman gen pwoblèm konsa lontan ke nou ap konsistan. 139 00:05:11,648 --> 00:05:15,570 Ak isit la se ki jan, nan binary-- andedan nan memwa yon òdinatè a, oswa menm andedan 140 00:05:15,570 --> 00:05:18,160 nan yon dosye sou difisil ou drive-- te kapab ou sere 141 00:05:18,160 --> 00:05:20,240 pi senp la nan imaj figi Smiley. 142 00:05:20,240 --> 00:05:23,990 Men, sa ki nou ye, nan kou, manke nan imaj sa a? 143 00:05:23,990 --> 00:05:24,610 Koulè, dwa? 144 00:05:24,610 --> 00:05:28,220 Se yon evidan pwochen etap oswa amelyorasyon amelyore sa a ak koulè. 145 00:05:28,220 --> 00:05:32,230 Se konsa, malerezman ak jis yon sèl ti jan, 0 oswa 1, nou te ka reprezante koulè. 146 00:05:32,230 --> 00:05:36,100 Sa ta ka wouj, oswa ble, oswa nwa, oswa blan, oswa vèt, oswa woz, 147 00:05:36,100 --> 00:05:37,420 oswa nenpòt ki pè koulè. 148 00:05:37,420 --> 00:05:40,860 Men, pou dedomajman pou senplisite a, nou pral jis asime nwa ak blan. 149 00:05:40,860 --> 00:05:45,930 >> Se konsa, sa lojikman nou bezwen si nou vle aplike koulè nan yon imaj? 150 00:05:45,930 --> 00:05:49,080 Ki sa nou dwe fè? 151 00:05:49,080 --> 00:05:51,900 Fè tankou si faktè a limite isit la se ke ak yon sèl ti jan ou ka sèlman 152 00:05:51,900 --> 00:05:55,977 reprezante de eta, 0 oswa 1, blan oswa nwa, ki sa ou vle fè? 153 00:05:55,977 --> 00:05:56,810 ODYANS: Plis done. 154 00:05:56,810 --> 00:05:58,813 DAVID J. Malan: Plis Bits, yeah plis done, plis miyèt moso. 155 00:05:58,813 --> 00:06:01,440 Epi, tout bon, sa a, se egzakteman ki jan imaj koulè yo reprezante. 156 00:06:01,440 --> 00:06:05,120 Olye ke sèvi ak yon ti jan yon sèl, yon 0 oswa 1 pou chak pixel, chak dot, 157 00:06:05,120 --> 00:06:06,170 ou jis itilize miltip. 158 00:06:06,170 --> 00:06:09,660 Petèt itilize 8, petèt, pi souvan itilize 24, ak tout bon, nan pwoblèm Fikse 159 00:06:09,660 --> 00:06:13,300 4, ou pral jwe ak yon dosye fòma ki sèvi ak 24 Bits tipikman. 160 00:06:13,300 --> 00:06:15,430 >> Men, pi fò nan nou yo se pwobableman abitye avèk JPEGs. 161 00:06:15,430 --> 00:06:17,460 Si ou te janm pran yon foto sou telefòn ou, 162 00:06:17,460 --> 00:06:20,360 oswa Uploaded oswa wè yon bagay sou Facebook, oswa Flickr, nenpòt ki kantite 163 00:06:20,360 --> 00:06:24,882 nan sit entènèt foto ki baze sou, ou te pwobableman wè yon imaj JPEG anvan. 164 00:06:24,882 --> 00:06:27,840 Epi li vire soti, sa a se dosye a fòma nou ap ale nan sèvi ak nan pset 4, 165 00:06:27,840 --> 00:06:30,340 kijan w ap ale nan gen refè imaj 166 00:06:30,340 --> 00:06:35,160 ke mwen te aksidantèlman efase ki sòti nan yon pèvèti kat memwa nan kamera a, 167 00:06:35,160 --> 00:06:35,800 si ou pral. 168 00:06:35,800 --> 00:06:38,490 >> Epi li vire soti ke menm si JPEG se trè sophisticated-- 169 00:06:38,490 --> 00:06:40,906 li nan pi plis sofistike pase pwen yo nwa ak blan 170 00:06:40,906 --> 00:06:44,480 nou te wè yon ti moman de sa, paske gen nan algoritm aktyèlman anpenpan ki 171 00:06:44,480 --> 00:06:47,410 yo te itilize yo konpresyon yon JPEG, se konsa ke ou ka gen yon vrèman bèl, 172 00:06:47,410 --> 00:06:49,832 foto bon jan kalite lè l sèvi avèk men relativman kèk miyèt moso. 173 00:06:49,832 --> 00:06:51,790 Epitou, n ap tounen vin jwenn konpresyon anvan lontan. 174 00:06:51,790 --> 00:06:56,280 Li sanble ke premye a twa bytes nan yon image-- JPEG 175 00:06:56,280 --> 00:07:02,750 pa gen pwoblèm sa ou te pran yon foto de- yo valè yo 255, 216, 255. 176 00:07:02,750 --> 00:07:05,990 >> Nan lòt mo, si ou jis wè ke modèl nan Bits, 177 00:07:05,990 --> 00:07:09,180 reprezante isit la tankou twa bytes, oswa 24 Bits totalize, 178 00:07:09,180 --> 00:07:13,810 ak segondè pwobabilite ou ka dégager ki w ap chèche a li sa a twa premye 179 00:07:13,810 --> 00:07:15,230 bytes nan yon JPEG. 180 00:07:15,230 --> 00:07:18,040 Lè sa a se sa ki nan li te ye kòm siyati a nan yon JPEG. 181 00:07:18,040 --> 00:07:20,540 Yon anpil nan fòma dosye yo deyò yo gen tandans kòmanse 182 00:07:20,540 --> 00:07:23,735 ak sèten modèl nan 0s ak 1S, se konsa ke Windows, ak Mac OS, ak iOS, 183 00:07:23,735 --> 00:07:28,272 ak android konnen ki kalite dosye yo yo, nan adisyon a dosye a sa yo rele 184 00:07:28,272 --> 00:07:29,730 ekstansyon ke yon anpil nan dosye genyen. 185 00:07:29,730 --> 00:07:32,590 Si ou te .jpg, sa se yon lòt siy nan òdinatè a. 186 00:07:32,590 --> 00:07:35,310 >> Se konsa, kite pou nou kounye a gade nan sa a yon ti kras plis teknikman. 187 00:07:35,310 --> 00:07:37,390 Nou konnen desimal a sistèm se 0 a 9. 188 00:07:37,390 --> 00:07:38,740 Nou konnen binè se 0 ak 1. 189 00:07:38,740 --> 00:07:41,842 Men, si ou panse tounen nan PSet 0, nou te gen ou lite ak, 190 00:07:41,842 --> 00:07:43,800 pou yon ti jan, yon bagay rele ekzadesimal, 191 00:07:43,800 --> 00:07:47,320 ki kote ou gen 16 chif, olye pou yo 10 oswa olye pou yo 2. 192 00:07:47,320 --> 00:07:50,405 Ak moun ki chif, pa konvansyon, yo se 0 a 9 ak lè sa a yon 193 00:07:50,405 --> 00:07:55,040 a f, kote f reprezante sa Nimewo desimal, jis kòm yon saniti rapid 194 00:07:55,040 --> 00:07:56,640 tcheke? 195 00:07:56,640 --> 00:07:57,610 Se konsa, 15. 196 00:07:57,610 --> 00:08:01,390 Apre sa, yon dwe reprezante 10, jis pa nati nan kòmann-nan nan ke mwen te bay yo. 197 00:08:01,390 --> 00:08:04,350 Se jis yon konvansyon abitrè, men li la byen estanda. 198 00:08:04,350 --> 00:08:06,870 >> Se konsa, si nou gade nan modèl sa a nan twa bytes-- kite nan 199 00:08:06,870 --> 00:08:09,620 jis kòmanse fè yon gade nan li nan yon fason ki konsistan avèk ki jan 200 00:08:09,620 --> 00:08:12,450 syantis òdinatè jeneralman gade nan epi reflechi sou dosye. 201 00:08:12,450 --> 00:08:15,580 Ou ka sètènman panse osijè de dosye nan 0s, ak 1S, ak desimal, 202 00:08:15,580 --> 00:08:19,340 men nan reyalite, nou gen tandans sèvi ak binè oswa plis tipikman hexadecimal-- 203 00:08:19,340 --> 00:08:20,760 tounen soti nan PSet 0. 204 00:08:20,760 --> 00:08:25,857 Se pou m 'pwopoze ke 255, 216, ak 255 yo se jis sa yo modèl nan 0s ak 1S. 205 00:08:25,857 --> 00:08:28,440 Epi ou ka tcheke sa a si ou vle fè matematik la soti nan Semèn 0. 206 00:08:28,440 --> 00:08:30,810 Men, pou kounye a, jis asime ke sa a se tout bon kòrèk. 207 00:08:30,810 --> 00:08:33,850 Mwen te jis reekri twa desimal nimewo ke twa valè binè. 208 00:08:33,850 --> 00:08:36,100 Koulye a, sa m ap pral fè se jis ajoute kèk espas blan, 209 00:08:36,100 --> 00:08:37,266 jis pou dedomajman pou lizibilite nan. 210 00:08:37,266 --> 00:08:39,940 Apre sa, avi, mwen jis ale pou avanse pou pi bagay sa yo apa. 211 00:08:39,940 --> 00:08:43,090 Se konsa, anvan, apre yo fin, anvan, apre yo fin. 212 00:08:43,090 --> 00:08:46,180 M ap fè pa gen anyen enteresan lòt pase jis gaye bagay sa yo soti pou 213 00:08:46,180 --> 00:08:50,380 ki avi chak mete nan uit Bits se kounye a de kouche nan kat miyèt moso. 214 00:08:50,380 --> 00:08:54,920 Sa a se itil paske ekzadesimal se patikilyèman alamòd 215 00:08:54,920 --> 00:09:00,930 paske chak chif ekzadesimal 0 a f, oswa plis espesyalman 0 a 15, 216 00:09:00,930 --> 00:09:03,430 ka reprezante ak egzakteman kat miyèt moso. 217 00:09:03,430 --> 00:09:07,960 Nan lòt mo, nan ekzadesimal si ou vle reprezante yon 0, li nan jis 0000, 218 00:09:07,960 --> 00:09:08,780 kat zewo. 219 00:09:08,780 --> 00:09:13,997 Men, si ou vle reprezante 15, li nan 1111, ki se kat miyèt moso. 220 00:09:13,997 --> 00:09:16,080 Men, si ou fè matematik la, si sa a se plas la yo menm, 221 00:09:16,080 --> 00:09:18,210 sa a se plas la 16, ki nan pral bay you-- 222 00:09:18,210 --> 00:09:19,960 olye ki k ap pase to-- regrèt, nan binè, 223 00:09:19,960 --> 00:09:23,660 ki k ap pase l 'ban nou 15, yo menm plas, plas Dezan, four ak eights plas. 224 00:09:23,660 --> 00:09:26,821 Se pou m 'pwopoze ke ki mete nan kat Bits sou bò gòch la 225 00:09:26,821 --> 00:09:28,070 se sa nou ap ale nan rele f. 226 00:09:28,070 --> 00:09:30,110 Li nan nimewo a pi gwo ou ka reprezante ak kat miyèt moso. 227 00:09:30,110 --> 00:09:33,300 Apre sa, nou deja konnen soti nan ekzadesimal, f se chif nan pi gwo nan ekzadesimal. 228 00:09:33,300 --> 00:09:36,020 Nou te gen yon lòt f la, de plis sou la. 229 00:09:36,020 --> 00:09:38,980 Apre sa, pou kounye a, jis pran sou lafwa ke mwen te fè nan matematik dwa 230 00:09:38,980 --> 00:09:41,890 e ke mwatye nan bò gòch nan tout sa yo Bits, 1101, 231 00:09:41,890 --> 00:09:43,980 se menm bagay la kòm d nan ekzadesimal. 232 00:09:43,980 --> 00:09:46,490 Ak men dwat la, 1000, se jis 8. 233 00:09:46,490 --> 00:09:48,140 >> Epi sa yon sèl la fasil wè, dwa? 234 00:09:48,140 --> 00:09:51,670 Represents-- a 8 ki dwat anba kote sa a eights. 235 00:09:51,670 --> 00:09:56,040 Se konsa, nou gen yon sèl nan kolòn nan eights e pa gen anyen nan four, Dezan yo oswa moun. 236 00:09:56,040 --> 00:09:59,830 Se konsa, kounye a plis konvansyonèl, moun yo gen tandans yo ekri ekzadesimal chif tankou sa a, 237 00:09:59,830 --> 00:10:03,000 ou jis gargouyi yo ansanm, ak Lè sa a ou prefiks yo ak 0x. 238 00:10:03,000 --> 00:10:05,920 Sa vle di pa gen anyen lòt pase yon siy vizyèl nan yon human-- 239 00:10:05,920 --> 00:10:10,350 isit la vini yon value-- ekzadesimal paske li pa ta ka otreman dwe evidan. 240 00:10:10,350 --> 00:10:13,629 >> Sa vle di, finalman, ki modèl la nan zewo ak moun yo, 241 00:10:13,629 --> 00:10:16,170 oswa modèl la nan ekzadesimal chif équivalant ke w ap 242 00:10:16,170 --> 00:10:18,990 pral kòmanse kap chèche nan pwoblèm Fikse 4 se sa a men 243 00:10:18,990 --> 00:10:22,120 ak pwoblèm Mete 4 espèk a ap mache ou atravè sa a nan plis detail-- 244 00:10:22,120 --> 00:10:25,344 men mwen reyalize kòm sòt de Esoteric kòm sa a ta ka gade nan premye gade, 245 00:10:25,344 --> 00:10:27,010 w ap ale nan kòmanse wè sa a yon anpil. 246 00:10:27,010 --> 00:10:30,320 Lè an reyalite, menm nan gdb, nan debugjeur nou prezante nan Lendi 247 00:10:30,320 --> 00:10:35,440 lavil Dann entwodui nan pset 3, ki pral souvan montre w valè ekzadesimal 248 00:10:35,440 --> 00:10:39,910 jis paske yo gen tandans yo dwe plis konvansyonèl pase desimal oswa binè 249 00:10:39,910 --> 00:10:41,157 nan mond lan nan òdinatè. 250 00:10:41,157 --> 00:10:42,490 Koulye a, kite a mete sa a nan kontèks. 251 00:10:42,490 --> 00:10:48,040 Anpil nan nou ta ka sonje sa a foto isit la, ki te soti nan ki sa? 252 00:10:48,040 --> 00:10:51,240 Vista a, kidonk menm pi bonè pase sa, nan Windows XP te fè premye sa a. 253 00:10:51,240 --> 00:10:52,620 Se konsa, sa a se yon jaden flè bèl. 254 00:10:52,620 --> 00:10:55,940 Lè an reyalite, si ou pike alantou online-- Mwen panse ke li nan yon atik Wikipedya, 255 00:10:55,940 --> 00:11:00,110 dans yon moun trè étonant soti jwenn kote sa a nan mond lan mete kanpe 256 00:11:00,110 --> 00:11:02,240 li oswa li nan kamera jisteman place-- nan dwa 257 00:11:02,240 --> 00:11:06,510 ak sa a jodi a sanble like-- men li nan ekzakteman menm bagay anviwònman an. 258 00:11:06,510 --> 00:11:10,060 Imaj sa a, menm si, se nan yon dosye fòma rele bitmap, b-m-p. 259 00:11:10,060 --> 00:11:12,910 Epi nou ap ale nan pran yon super rapid ti koutje sou nan ki sa sa vle di. 260 00:11:12,910 --> 00:11:17,770 >> Men, bitmap se jis yon fason diferan pou imaj reprezante toujou lè l sèvi avèk piksèl 261 00:11:17,770 --> 00:11:19,580 nan 0s ak 1S, finalman. 262 00:11:19,580 --> 00:11:23,282 Men, nan ti koutje sou rapid, li gen yon siyati plis enteresan 263 00:11:23,282 --> 00:11:24,490 nan kòmansman an nan dosye a. 264 00:11:24,490 --> 00:11:26,670 Li pa jis twa bytes, olye gen nan 265 00:11:26,670 --> 00:11:30,770 yon pakèt antye nan modèl nan bytes sa yo ki te Predetermined sans. 266 00:11:30,770 --> 00:11:34,490 Pou egzanp, yon kote nan la premye bytes kèk nan imaj bitmap yon 267 00:11:34,490 --> 00:11:37,440 a pwal gwosè a nan la imaj, lajè a nan imaj la, 268 00:11:37,440 --> 00:11:40,390 wotè nan imaj la, se konsa Metadata ki itil, si ou pral. 269 00:11:40,390 --> 00:11:43,940 Itil enfòmasyon ki fotoschop oswa nenpòt grafik pwogram w ap itilize 270 00:11:43,940 --> 00:11:45,180 ta ka aktyèlman pran swen sou. 271 00:11:45,180 --> 00:11:47,170 >> Se konsa, plis sou sa a nan Pwoblèm Mete 4, men sa a 272 00:11:47,170 --> 00:11:49,220 se sèlman yo di ke nan fen a nan jounen an 273 00:11:49,220 --> 00:11:52,390 tout fòma yo ranpli ou ve yo te lè l sèvi avèk pou years-- dosye Microsoft Word, 274 00:11:52,390 --> 00:11:55,820 Resansman dosye, Excel dosye, nenpòt ki kantite fòma dosye 275 00:11:55,820 --> 00:11:57,770 ki ta ka gen kèk li te ye ekstansyon dosye 276 00:11:57,770 --> 00:12:00,130 yo se jis 0s ak 1S anba kapo a. 277 00:12:00,130 --> 00:12:02,970 Ak moun te deside sa konvansyon ki se, 278 00:12:02,970 --> 00:12:08,340 sa modèl nan 0s ak 1S reprezante yon Pawòl depoze kont yon dosye Excel, 279 00:12:08,340 --> 00:12:10,322 kont nenpòt ki kantite lòt fòma dosye-a. 280 00:12:10,322 --> 00:12:12,780 Se konsa, nan pset 4, ou pral gen yon opòtinite yo jwe ak sa. 281 00:12:12,780 --> 00:12:14,405 >> Men, sa ki fè sa ki sa vle di gen yon struct. 282 00:12:14,405 --> 00:12:18,012 Sa a se aktyèlman yon seg bèl kounye a nan C, ki te gen sèlman yon koup 283 00:12:18,012 --> 00:12:20,220 karakteristik nan adisyonèl sa yo ki nou pa gen gade ankò. 284 00:12:20,220 --> 00:12:24,230 Li se yon bèl ti ak lang ak youn nan karakteristik yo ki bèl sou C se yon struct. 285 00:12:24,230 --> 00:12:27,300 Pou egzanp, si ou te vle represent-- kite nan 286 00:12:27,300 --> 00:12:33,690 di ou te vle gen yon varyab ki reprezante yon elèv nan kèk pwogram nan. 287 00:12:33,690 --> 00:12:37,330 Petèt ou te ekri yon kou pwogram enskripsyon, oswa fè makèt nwayo 288 00:12:37,330 --> 00:12:38,870 zouti, oswa yon bagay tankou sa. 289 00:12:38,870 --> 00:12:42,922 Ki sa ki moso nan done ki gen rapò nan yon elèv ki vini nan lespri? 290 00:12:42,922 --> 00:12:44,880 Fè tankou yon elèv reprezante ak sa valè? 291 00:12:44,880 --> 00:12:45,732 Yeah? 292 00:12:45,732 --> 00:12:46,940 Ou gen yon non kòm yon elèv. 293 00:12:46,940 --> 00:12:48,900 Ki lòt bagay yon elèv tipik genyen? 294 00:12:48,900 --> 00:12:49,320 >> ODYANS: [fèbl] 295 00:12:49,320 --> 00:12:50,200 >> DAVID J. Malan: Se konsa, regrèt. 296 00:12:50,200 --> 00:12:50,660 >> ODYANS: laj. 297 00:12:50,660 --> 00:12:52,980 >> DAVID J. Malan: Yon laj oswa anivèsè nesans équivalant, YEP. 298 00:12:52,980 --> 00:12:53,557 Kisa ankò? 299 00:12:53,557 --> 00:12:54,390 ODYANS: nimewo ID? 300 00:12:54,390 --> 00:12:57,460 DAVID J. Malan: Se konsa, yon nimewo ID, petèt yon nimewo telefòn, petèt yon dòtwa, oswa kay, 301 00:12:57,460 --> 00:12:58,670 oswa kolèj, oswa yon bagay tankou sa. 302 00:12:58,670 --> 00:13:01,820 Nenpòt ki kantite moso nan done ki ou ta ka genyen nan lis kontak ou 303 00:13:01,820 --> 00:13:03,890 se sa ki ka defini yon elèv. 304 00:13:03,890 --> 00:13:08,490 Se konsa, si nou te vle fè sa, nan kòd, nou ta ka fè yon bagay senp tankou sa a. 305 00:13:08,490 --> 00:13:15,670 Nou ka gen yon pwogram pou ke gen kite a di, int prensipal (san valè). 306 00:13:15,670 --> 00:13:18,920 Men, si mwen vle reprezante yon elèv mwen ta ka gen, pou egzanp, 307 00:13:18,920 --> 00:13:24,330 yon afè rele pou sa elèv, yon afè rele dòtwa pou sa elèv, 308 00:13:24,330 --> 00:13:26,900 petèt yon int rele ID pou sa elèv yo. 309 00:13:26,900 --> 00:13:30,840 Epi paske mwen lè l sèvi avèk fisèl, mwen bezwen ale retounen lakay yo epi mete cs50.h. 310 00:13:30,840 --> 00:13:33,300 Petèt mwen pral bezwen stdio.h. 311 00:13:33,300 --> 00:13:38,190 Se pou m 'fè moun preemptively ak mwen se pral rele student.c sa a pou kounye a 312 00:13:38,190 --> 00:13:40,080 epi sove sa a. 313 00:13:40,080 --> 00:13:44,206 >> Epi, koulye a mwen kapab fè yon bagay ak varyab sa yo. 314 00:13:44,206 --> 00:13:46,830 E nou jis ale nan ekri ke kòm yon kòmantè nan kòd pseudo, 315 00:13:46,830 --> 00:13:48,829 paske li nan pa enteresan sa nou fè pou kounye a. 316 00:13:48,829 --> 00:13:51,242 OK, se konsa sa a se yon pwogram ki yon jan kanmenm magazen yon elèv. 317 00:13:51,242 --> 00:13:53,450 Ki sa mwen vle fè si mwen vle nan magazen de elèv? 318 00:13:53,450 --> 00:13:55,991 Se konsa, premye ensten mwen ki pral yo dwe tout dwa, rete tann yon minit, 319 00:13:55,991 --> 00:14:01,920 si mwen gen yon lòt elèv poukisa pa fè sa mwen jis fè Non fisèl 2, fisèl dòtwa 2, 320 00:14:01,920 --> 00:14:04,190 int id2. 321 00:14:04,190 --> 00:14:06,540 Apre sa, nou te fè ale desann wout sa a anvan 322 00:14:06,540 --> 00:14:10,890 ak sa ki te solisyon nou yo sa ki sanble yo dwe kalite yon keratin kopi hackish 323 00:14:10,890 --> 00:14:11,555 travay isit la? 324 00:14:11,555 --> 00:14:12,346 ODYANS: Yon etalaj. 325 00:14:12,346 --> 00:14:13,830 DAVID J. Malan: Yeah, nou te ka sèvi ak yon etalaj. 326 00:14:13,830 --> 00:14:15,620 Dwa sa a trè byen vit vin maladwa. 327 00:14:15,620 --> 00:14:18,453 Ou gen sòt nan abitrèman kòmanse nonmen tout nan varyab sa yo. 328 00:14:18,453 --> 00:14:22,190 Epi ou, imen an, te kenbe swiv ki koresponn OK name2 329 00:14:22,190 --> 00:14:25,060 ak dorm2 koresponn ak id2. 330 00:14:25,060 --> 00:14:26,200 Li jis vin tounen yon dezòd. 331 00:14:26,200 --> 00:14:29,350 Se konsa, li nan yon anpil pi fasil, sonje ki sòti nan yon kèk semèn de sa, 332 00:14:29,350 --> 00:14:34,300 jis gen yo rele non fisèl e petèt ban nou twa nan sa yo. 333 00:14:34,300 --> 00:14:36,940 Lè sa a, petèt nou gen dortwar fisèl epi yo gen 334 00:14:36,940 --> 00:14:41,900 twa nan sa yo, oswa avèk yon konstan, int idantite epi yo gen twa nan sa yo. 335 00:14:41,900 --> 00:14:45,250 Men, menm sa a santi l kounye a yon ti kras peu, dwa. 336 00:14:45,250 --> 00:14:49,440 Nou ap pale de elèv yo ak ankò Mwen vrèman rete sou nivo a ki ba 337 00:14:49,440 --> 00:14:50,470 aplikasyon detay. 338 00:14:50,470 --> 00:14:52,790 Elèv la se yon non ak yon dòtwa ak ID. 339 00:14:52,790 --> 00:14:59,814 >> Poukisa nou pa mwen ka jis deklare yon varyab rele elèv yo ak rele li s. 340 00:14:59,814 --> 00:15:02,230 Men, si mwen vle yon lòt elèv, poukisa yo pa mwen jis rele li t. 341 00:15:02,230 --> 00:15:05,260 Oswa si mwen vle yon pakèt antye elèv, poukisa pa fè sa mwen jis 342 00:15:05,260 --> 00:15:09,740 di mwen gen yon klas antye nan elèv yo, ak li nan twa nan yo. 343 00:15:09,740 --> 00:15:12,470 Nan lòt mo, poukisa yo pa kapab mwen vini moute ak pwòp mwen kalite done, ki rele 344 00:15:12,470 --> 00:15:15,641 Elèv, andedan nan yo ki se yon non, se yon ID, se yon dòtwa, 345 00:15:15,641 --> 00:15:16,890 se nenpòt kantite lòt jaden. 346 00:15:16,890 --> 00:15:19,030 Epi li vire soti ou kapab fè egzakteman sa. 347 00:15:19,030 --> 00:15:21,850 >> Se konsa, C gen sa a karakteristik rele struct. 348 00:15:21,850 --> 00:15:24,700 Sa se yon karakteristik lang ki pèmèt nou fè egzakteman sa a. 349 00:15:24,700 --> 00:15:28,370 Mwen pral ale pi devan epi louvri moute structs.h 350 00:15:28,370 --> 00:15:32,299 kote nou ap ale nan wè nan apre definisyon nan yon elèv. 351 00:15:32,299 --> 00:15:35,215 Li sanble - ak yon sèl sa a nan menm ki pi senp pase yon sèl la ki enplike yon ID 352 00:15:35,215 --> 00:15:36,080 yon ti moman de sa. 353 00:15:36,080 --> 00:15:39,120 Si ou vle vini ak endijèn done kalite ou, 354 00:15:39,120 --> 00:15:42,750 ak nan adisyon nan int, ak Char ak flote ak tout lòt moun sa yo ki egziste, 355 00:15:42,750 --> 00:15:45,810 ou ka fè sa pa literalman ekri tipedèf struct, 356 00:15:45,810 --> 00:15:47,880 Lè sa a, kèk aparèy òtopedik Curly, andedan nan ki ou 357 00:15:47,880 --> 00:15:51,460 lis varyab yo ou vle asosye ak sa a nouvo done koutim 358 00:15:51,460 --> 00:15:55,670 tape tankou yon non ak yon dòtwa, ak Lè sa a apre aparèy òtopedik yo Curly 359 00:15:55,670 --> 00:15:57,860 ou bay yon non nan nouvo kalite a done. 360 00:15:57,860 --> 00:15:59,220 Se konsa, pou egzanp, elèv yo. 361 00:15:59,220 --> 00:16:03,247 >> Ak sa ki nan bèl sou sa a kounye a se ke si nou gade nan kòd la korespondan, 362 00:16:03,247 --> 00:16:05,080 konvansyon an, premye nan tout, se yo mete sa a 363 00:16:05,080 --> 00:16:08,230 nan yon dosye rele yon bagay dot h, yon dosye header, ki nou pa gen 364 00:16:08,230 --> 00:16:09,780 te kòmanse lè l sèvi avèk tèt nou twòp. 365 00:16:09,780 --> 00:16:12,120 Men, nou ap ale nan kòmanse lè l sèvi avèk byen yon ti jan kounye a. 366 00:16:12,120 --> 00:16:18,650 Ak sa ki nou ka fè ak sa a, finalman, nan liy sa yo kèk nan kòd 367 00:16:18,650 --> 00:16:22,130 se deklare egzakteman sa done kalite, yon elèv. 368 00:16:22,130 --> 00:16:23,230 Epi, koulye a kite a sèvi ak li. 369 00:16:23,230 --> 00:16:27,274 >> Mwen pral kounye a ale nan yon dosye rele structs1.c. 370 00:16:27,274 --> 00:16:29,440 Li kite yo pran yon gade nan yon kèk Karakteristik isit la. 371 00:16:29,440 --> 00:16:32,250 Se konsa, bagay la moute isit la se sitou yo konnen yo, ak nou pral 372 00:16:32,250 --> 00:16:35,040 tounen vin jwenn sa ki pa abitye nan jis yon moman. 373 00:16:35,040 --> 00:16:39,880 Sa a nan kou se ki gen ladan pwòp mwen dosye header, ki se nouvo kòm byen, 374 00:16:39,880 --> 00:16:42,580 eksepte pou PSet 3 kote, sonje, nou gen helpers.h. 375 00:16:42,580 --> 00:16:45,150 Se konsa, ou ta ka sonje # enkli helpers.h. 376 00:16:45,150 --> 00:16:49,381 >> Poukisa menm si mwen lè l sèvi avèk quotes olye pou yo parantèz Incline? 377 00:16:49,381 --> 00:16:50,630 Lè m 'chwazi ant yo? 378 00:16:50,630 --> 00:16:52,310 Prèske toujou mwen sanble yo sèvi ak parantèz Incline. 379 00:16:52,310 --> 00:16:55,040 Apre sa, lè sa a, tout nan yon toudenkou sou liy sis mwen lè l sèvi avèk quotes doub. 380 00:16:55,040 --> 00:16:55,860 Poukisa ta ka ki ta dwe ye? 381 00:16:55,860 --> 00:16:56,700 Yeah? 382 00:16:56,700 --> 00:16:57,725 >> ODYANS: [fèbl] 383 00:16:57,725 --> 00:16:59,350 DAVID J. Malan: Sa a yon vrè, ki sa? 384 00:16:59,350 --> 00:17:00,559 ODYANS: Sa a nan IDE ou yo. 385 00:17:00,559 --> 00:17:02,475 DAVID J. Malan: Yeah, sa a, se nan IDE aktyèl m 'yo. 386 00:17:02,475 --> 00:17:05,690 Li kite yo pa rete sou IDE a, paske sa se sèlman yon zouti ke mwen lè l sèvi avèk. 387 00:17:05,690 --> 00:17:08,119 Sa a nan aktyèl m ' anyè, espesyalman. 388 00:17:08,119 --> 00:17:11,647 Se konsa, structs.h se dosye pwòp mwen pa enstale nan IDE a, 389 00:17:11,647 --> 00:17:14,480 nan sistèm nan fonksyone tèt li, olye li a nan anyè mwen ye kounye a. 390 00:17:14,480 --> 00:17:16,910 Se konsa, konvansyon an se si ou vle genyen ladan yo pwòp dosye header ou, 391 00:17:16,910 --> 00:17:18,200 ou jis itilize quotes doub. 392 00:17:18,200 --> 00:17:23,290 >> Ki sa nou rele sa a bagay nan liy 8, jeneralman pale? 393 00:17:23,290 --> 00:17:25,200 Sa a se ki sa? 394 00:17:25,200 --> 00:17:28,220 # defini yon bagay. 395 00:17:28,220 --> 00:17:31,040 Sa a reprezante konstan, dwa? 396 00:17:31,040 --> 00:17:33,140 Si ou vle gen yon valè nan pwogram ou an 397 00:17:33,140 --> 00:17:35,110 ke ou itilize yon antye pakèt moun sou fwa, li nan 398 00:17:35,110 --> 00:17:39,330 bon konvansyon faktè li soti, deklare li, ak senbòl la regle 399 00:17:39,330 --> 00:17:43,340 defini, lè sa a, pa konvansyon, nan tout majuskul pawòl la- menm si li pa 400 00:17:43,340 --> 00:17:45,320 estrikteman nesesè, men li nan konvansyon imen 401 00:17:45,320 --> 00:17:47,210 yo kapitalize konstan sa yo ke yo so soti 402 00:17:47,210 --> 00:17:50,380 nan ou visually-- espas ak Lè sa a, valè a ou vle yo dwe 403 00:17:50,380 --> 00:17:52,250 ekivalan a non ki konstan nan. 404 00:17:52,250 --> 00:17:56,110 Pa gen virgules, men ou tou senpleman swiv ki modèl la. 405 00:17:56,110 --> 00:17:57,770 >> Se konsa, sa ou yé fè nan sa a Kòd vrè. 406 00:17:57,770 --> 00:18:00,660 Se konsa, kite a pran yon gade nan pwogram lan prensipal isit la. 407 00:18:00,660 --> 00:18:04,080 Nan liy 12 paske mwen te enkli structs.h, 408 00:18:04,080 --> 00:18:06,492 Mwen kounye a gen maji nan m ' jete yon nouvo kalite done. 409 00:18:06,492 --> 00:18:09,200 Mwen pa jis gen aksè a int, ak Char, ak flote, ak fisèl, 410 00:18:09,200 --> 00:18:10,060 ak ble ak lòt moun. 411 00:18:10,060 --> 00:18:12,470 Mwen kounye a gen aksè a yon kalite done elèv yo. 412 00:18:12,470 --> 00:18:17,740 Se konsa, nan liy 12, mwen konbine de ideas-- youn yon kalite done koutim ak de, 413 00:18:17,740 --> 00:18:18,940 lè l sèvi avèk yon etalaj. 414 00:18:18,940 --> 00:18:21,700 Se konsa, nan pwogram sa a si Mwen vle aktyèlman sipòte 415 00:18:21,700 --> 00:18:24,320 twa elèv diferan nan pwogram mwen, mwen 416 00:18:24,320 --> 00:18:30,480 ka senpleman di ban m 'yon varyab rele elèv yo, chak nan yo ki 417 00:18:30,480 --> 00:18:32,970 se elèv kalite, ki se mwen kalite done koutim. 418 00:18:32,970 --> 00:18:35,890 Epi, espesyalman, ban m ' twa nan moun ki nan etalaj m 'yo. 419 00:18:35,890 --> 00:18:37,750 >> Se konsa, kounye sa nou fè nan pwogram sa a? 420 00:18:37,750 --> 00:18:40,670 Isit la nan jis yon pou riban iteration ki ant 0 a 3, paske se sa 421 00:18:40,670 --> 00:18:42,110 sa valè a nan elèv yo se. 422 00:18:42,110 --> 00:18:44,420 Mwen jis pouse itilizatè a ban m 'non elèv la. 423 00:18:44,420 --> 00:18:48,090 Lè sa a, nan liy 17, nou gen yon liy sitou yo konnen yo. 424 00:18:48,090 --> 00:18:50,370 Nou gen zanmi fin vye granmoun nou an GetString sou bò dwat la. 425 00:18:50,370 --> 00:18:52,345 Ak sa ki moso nan sentaks se aparamman nouvo, 426 00:18:52,345 --> 00:18:55,130 si ou pa janm te pwograme nan C anvan, epi pa janm te itilize strukt yo? 427 00:18:55,130 --> 00:18:55,510 Yeah? 428 00:18:55,510 --> 00:18:56,417 >> ODYANS: .Non la. 429 00:18:56,417 --> 00:18:57,500 DAVID J. Malan: .Non la. 430 00:18:57,500 --> 00:19:01,220 Men sa se pa twòp nan yon bon, paske kounye a elèv yo bracket mwen 431 00:19:01,220 --> 00:19:02,590 ba ou elèv la m-th. 432 00:19:02,590 --> 00:19:04,730 Men, si ou vle plonje andedan nan ki estrikti, 433 00:19:04,730 --> 00:19:09,490 ou jis sèvi ak yon peryòd yon sèl ak Lè sa a, non an nan varyab la andedan, 434 00:19:09,490 --> 00:19:11,900 oswa pwopriyete a andedan ki ou vle jwenn aksè nan. 435 00:19:11,900 --> 00:19:14,816 Menm jan an tou lè sa a, si mwen Lè sa a, èd memwa a itilizatè, ban m 'dòtwa elèv la, 436 00:19:14,816 --> 00:19:18,390 ou ka Menm jan an tou magazen ki fisèl nan varyab la dòtwa andedan 437 00:19:18,390 --> 00:19:19,940 nan ki estrikti elèv yo. 438 00:19:19,940 --> 00:19:21,410 >> Epi, koulye a bagay sa yo jwenn yon ti kras anpenpan. 439 00:19:21,410 --> 00:19:24,420 Lè sa a se pral gade a petèt yon anpil byen byento. 440 00:19:24,420 --> 00:19:27,970 Men, ou pral wè sa a byen lwen plis nan pset 4, se konsa kite yo jis ti koutje sou nan li kounye a. 441 00:19:27,970 --> 00:19:33,364 Li sanble ke nan liy 23 a 38, ki sa ou panse mwen petèt ap fè? 442 00:19:33,364 --> 00:19:35,530 Mwen te retire kòmantè sa yo pou jodi a, men vèsyon an 443 00:19:35,530 --> 00:19:38,660 nan kòd la jwèt pou referans gen tout kòmantè. 444 00:19:38,660 --> 00:19:40,171 Ki sa mwen sanble yo dwe ap fè? 445 00:19:40,171 --> 00:19:42,530 >> ODYANS: Ekonomize dosye a ak tout enfòmasyon ki ki itilizatè a antre nan. 446 00:19:42,530 --> 00:19:44,530 >> DAVID J. Malan: Yeah, egzakteman, sa a se yon nouvo fason 447 00:19:44,530 --> 00:19:46,370 ke nou ap wè de, Yon lòt karakteristik nan C, 448 00:19:46,370 --> 00:19:48,700 kijan mwen kapab kreye dosye pwòp mwen. 449 00:19:48,700 --> 00:19:51,580 Se konsa, lwen, prèske chak pwogram ou te ekri se pagen atach. 450 00:19:51,580 --> 00:19:53,334 Le pli vit ke li fè kouri, sa a, se li. 451 00:19:53,334 --> 00:19:55,000 Gen nan pa gen memwa oswa rekoleksyon nan li. 452 00:19:55,000 --> 00:19:56,110 Gen nan pa gen dosye sove. 453 00:19:56,110 --> 00:19:58,120 Men, si ou vle sove D 'ki gen 454 00:19:58,120 --> 00:20:02,100 ki te pase, tankou nan yon jwèt oubyen yon pwogram tankou sa a, li vire soti nou kapab fè sa. 455 00:20:02,100 --> 00:20:04,360 Epi ou pral wè sa a plis nan pset 4 ak nan Seksyon. 456 00:20:04,360 --> 00:20:08,661 Men, liy sa a 23 esansyèlman kreye yon dosye rele students.csv. 457 00:20:08,661 --> 00:20:10,160 Apre sa, ou ta ka gen pou wè sa a anvan. 458 00:20:10,160 --> 00:20:14,250 Menm si ou pa janm te etidye CS anvan, CSV se varyab vigil-separe. 459 00:20:14,250 --> 00:20:19,000 Se tankou yon nonm la trè pòv vèsyon nan yon dosye Excel, 460 00:20:19,000 --> 00:20:22,270 ki vle di ke li te kapab dwe louvri nan Excel ak nan Apple Numbers, 461 00:20:22,270 --> 00:20:23,830 epi li gen ranje ak kolòn. 462 00:20:23,830 --> 00:20:26,485 Men, li la pa yon propriétaires fòma tankou Microsoft oswa Apple la. 463 00:20:26,485 --> 00:20:29,840 Se jis vigil separe nan valè ki nou pral wè nan yon moman. 464 00:20:29,840 --> 00:20:31,010 >> Apre sa, jis pran yon devine. 465 00:20:31,010 --> 00:20:33,480 Nan liy 23, nan anpil nan fen, dezyèm agiman mwen 466 00:20:33,480 --> 00:20:37,700 nan fonksyon sa a nouvo rele f louvri pou dosye louvri se w. 467 00:20:37,700 --> 00:20:39,430 Ki sa ki ta w endike? 468 00:20:39,430 --> 00:20:40,022 Yeah? 469 00:20:40,022 --> 00:20:41,260 >> ODYANS: Li pèmèt ou ekri nan dosye a? 470 00:20:41,260 --> 00:20:42,630 >> DAVID J. Malan: Li pèmèt ou ekri nan dosye a. 471 00:20:42,630 --> 00:20:44,810 Se konsa, gen nan yon koup nan varyant ke nou ka ploge nan isit la. 472 00:20:44,810 --> 00:20:47,184 Men, si ou jis vle li dosye a, se sa ki gade nan li 473 00:20:47,184 --> 00:20:50,010 , li li l nan memwa, ou jis itilize quote unquote "R". 474 00:20:50,010 --> 00:20:53,110 Si ou vle yo pou yo ekri nan dosye, ou sèvi ak quote unquote "fòm W". 475 00:20:53,110 --> 00:20:55,190 Gen la tou kole ak yon koup la lòt bagay 476 00:20:55,190 --> 00:20:57,356 si ou vle li modifye dosye ki egziste deja. 477 00:20:57,356 --> 00:21:00,480 Koulye a, nou ap ale nan kenbe wè sa a bagay, Lè sa a, nou pral tounen vin jwenn liy 24. 478 00:21:00,480 --> 00:21:02,640 Nil, li vire soti, se se yon valè espesyal ki 479 00:21:02,640 --> 00:21:06,070 ka tounen pa sèten fonksyon si gen yon bagay te ale wrong-- 480 00:21:06,070 --> 00:21:08,490 si dosye a pa egziste, si ou te kouri soti nan memwa, 481 00:21:08,490 --> 00:21:09,620 oswa yon pakèt moun sou lòt erè. 482 00:21:09,620 --> 00:21:13,470 Men, pou kounye a, kite yo jis asime ke sa a se jis konvansyonèl kont kouran erè. 483 00:21:13,470 --> 00:21:17,090 Isit la nan liy 26, mwen iteration ki ant 0 a 3 sou tout elèv yo m 'yo. 484 00:21:17,090 --> 00:21:20,470 Lè sa a se kalite sòt nan yon fonksyon nouvo, fprintf, 485 00:21:20,470 --> 00:21:21,460 men jis pran yon devine. 486 00:21:21,460 --> 00:21:24,370 Si printf se jis ekri an lèt detache yon afè fòma, 487 00:21:24,370 --> 00:21:26,507 sa fprintf pwobableman vle di? 488 00:21:26,507 --> 00:21:27,590 ODYANS: Enprime nan yon dosye-a. 489 00:21:27,590 --> 00:21:29,290 DAVID J. Malan: Enprime yon fòma fisèl nan yon dosye-a. 490 00:21:29,290 --> 00:21:31,180 Sa a ki sa lòt la f vle di se dosye-a. 491 00:21:31,180 --> 00:21:36,420 Ak nouvo premye agiman an gen yo dwe varyab la ki reprezante dosye ou. 492 00:21:36,420 --> 00:21:38,866 Lè sa a, nou jis gen yon fòma fisèl jis tankou printf. 493 00:21:38,866 --> 00:21:40,740 E menm menm si sa a sentaks se nouvo, sa a jis 494 00:21:40,740 --> 00:21:44,610 vle di ploge nan non elèv la, ploge nan dòtwa elèv la, ak Lè sa 495 00:21:44,610 --> 00:21:47,160 ak fkloz, fèmen dosye a. 496 00:21:47,160 --> 00:21:49,730 Lè sa a, sa a se nouvo lastly-- epi n ap tounen vin jwenn sa a 497 00:21:49,730 --> 00:21:53,240 anvan long-- mwen libere elèv la pou rezon 498 00:21:53,240 --> 00:21:54,860 sa ki te rive moute pi wo a la. 499 00:21:54,860 --> 00:21:56,820 Men, nou pral tounen vin ak sa yo ki anvan long-- 500 00:21:56,820 --> 00:21:59,820 sa a, se paske nan ki jan GetString se aktyèlman ap travay anba kapo a. 501 00:21:59,820 --> 00:22:01,280 >> Se konsa, kite a pran yon gade rapid isit la. 502 00:22:01,280 --> 00:22:04,380 Si m 'tape ls nan anyè m' yo, remake ke mwen pa fè sa 503 00:22:04,380 --> 00:22:09,360 gen yon dosye rele students.csv, jis pa gen, pa egziste. 504 00:22:09,360 --> 00:22:14,965 Se konsa, si mwen kounye a konpile pwogram sa a, fè strukt-1,. / strukt-1, 505 00:22:14,965 --> 00:22:20,570 ak mwen pral ale pi devan epi tape nan Andi, ki moun ki ap viv nan Berkeley nan Yale. 506 00:22:20,570 --> 00:22:26,350 Nou ap ale nan gen Rob ki ap viv nan Thayer jou sa yo. 507 00:22:26,350 --> 00:22:33,760 Li kite yo vini ak ki kote se, mwen panse, Maria se an Mather, 508 00:22:33,760 --> 00:22:35,100 si mwen te vin chonje kòrèkteman. 509 00:22:35,100 --> 00:22:36,460 >> Se konsa, pa gen anyen sanble yo rive. 510 00:22:36,460 --> 00:22:40,680 Men, si mwen tape ls kounye a, gen students.csv. 511 00:22:40,680 --> 00:22:43,080 Se pou nou ale pi devan epi louvri students.csv. 512 00:22:43,080 --> 00:22:46,050 Sa a se ankò yon trè dosye fòma ki lejè. 513 00:22:46,050 --> 00:22:49,570 Men, mwen te tou senpleman te adopte yon konvansyon ke mwen gen de ranje ak kolòn isit la. 514 00:22:49,570 --> 00:22:52,020 Premye kolòn nan se premye non moun nan. 515 00:22:52,020 --> 00:22:55,740 Dezyèm kolòn nan se elèv la nan dòtwa, oswa kolèj, oswa kay, oswa etajèr. 516 00:22:55,740 --> 00:22:57,900 Epi, koulye a mwen te sove sa a pou tout tan nan yon dosye. 517 00:22:57,900 --> 00:22:59,280 >> Se konsa, li pa tout sa ki enteresan. 518 00:22:59,280 --> 00:23:02,980 Men, sa a se jis yon wòch kite kounye a ke yo te kapab pèsiste enfòmasyon 519 00:23:02,980 --> 00:23:04,040 nèt. 520 00:23:04,040 --> 00:23:08,340 Se konsa nou wè kounye a sa ki plis nou kapab fè ak sa yo ak lòt karakteristik. 521 00:23:08,340 --> 00:23:10,729 Men, anvan, nenpòt kesyon? 522 00:23:10,729 --> 00:23:12,145 Sa ki te yon anpil, ak sa ki te vit. 523 00:23:12,145 --> 00:23:16,131 Men, ou pral wè yon anpil plis nan pset 4, tou. 524 00:23:16,131 --> 00:23:16,630 Yeah? 525 00:23:16,630 --> 00:23:19,360 >> ODYANS: Èske gen yon fason yo kontinye ajoute non ak sa yo ki dosye? 526 00:23:19,360 --> 00:23:19,880 >> DAVID J. Malan: Bon kesyon. 527 00:23:19,880 --> 00:23:21,800 Èske gen yon fason yo kontinye ajoute non ak sa yo ki dosye? 528 00:23:21,800 --> 00:23:22,340 Wi. 529 00:23:22,340 --> 00:23:24,630 Epi, an reyalite, si ou fini moute re-louvri dosye a, 530 00:23:24,630 --> 00:23:26,780 ou ta itilize quote unquote "yon" pou ajoutra, 531 00:23:26,780 --> 00:23:31,090 ki ta jis ajoute yon liy nouvo, yon nouvo liy ankò e ankò, egzakteman. 532 00:23:31,090 --> 00:23:32,010 Bon kesyon. 533 00:23:32,010 --> 00:23:32,950 Lòt kesyon? 534 00:23:32,950 --> 00:23:33,450 Yeah? 535 00:23:33,450 --> 00:23:35,580 ODYANS: Si ou kouri nan pwogram ankò kounye a, 536 00:23:35,580 --> 00:23:38,000 li ta kenbe ajoute non nan la ranpli oswa ou ta li louvri moute yon dosye nouvo? 537 00:23:38,000 --> 00:23:38,740 >> DAVID J. Malan: Ah, bon kesyon. 538 00:23:38,740 --> 00:23:41,448 Si ou kouri pwogram nan ankò dwat kounye a, petèt tape nan nouvo non, 539 00:23:41,448 --> 00:23:44,820 li ta ajoute nan dosye a oswa recouvrir dosye a? 540 00:23:44,820 --> 00:23:47,420 Lèt la, paske mwen se pa lè l sèvi avèk mòd ajoutra. 541 00:23:47,420 --> 00:23:49,930 Epi paske mwen jis je fèmen louvri dokiman an pou ekri, 542 00:23:49,930 --> 00:23:51,310 li nan jis ale nan recouvrir dosye a. 543 00:23:51,310 --> 00:23:54,570 Se konsa, mwen ta vre bezwen fè se kole, si mwen vle aktyèlman gen yon ki dire lontan 544 00:23:54,570 --> 00:23:55,350 baz done. 545 00:23:55,350 --> 00:23:58,220 >> Koulye a, CSV se itil, franchman, menm pou tankou si w ap writing-- 546 00:23:58,220 --> 00:24:00,100 epi n ap wè sa a evantyèlman pita nan semès la lè 547 00:24:00,100 --> 00:24:01,455 nou itilize CSVs pou lòt rezon. 548 00:24:01,455 --> 00:24:04,920 Si ou vle nan magazen tout nan moun yo ki te anrejistre pou kèk evènman, 549 00:24:04,920 --> 00:24:07,420 oswa siyen li pou elèv ou gwoup, oswa yon bagay tankou sa yo, 550 00:24:07,420 --> 00:24:10,330 estoke done ki nan sa a kalite nan fòma se super pratik. 551 00:24:10,330 --> 00:24:12,580 Paske literalman, si mwen te telechaje sa a dosye-a. 552 00:24:12,580 --> 00:24:14,540 Mwen te kapab double-- ak kite a aktyèlman eseye sa a 553 00:24:14,540 --> 00:24:16,720 si mwen gen Excel oswa Numbers sou isit la. 554 00:24:16,720 --> 00:24:19,130 >> Mwen pral dwa-klike sou oswa kontwòl-klike sou dosye mwen. 555 00:24:19,130 --> 00:24:20,020 Whoops. 556 00:24:20,020 --> 00:24:21,830 Dwa-klike oswa kontwòl-klike sou dosye mwen. 557 00:24:21,830 --> 00:24:24,960 Vini non sou, sourit m 'lan pa se kolabore. 558 00:24:24,960 --> 00:24:32,694 Download-- mwen pral download tout dosye yo isit la pou 559 00:24:32,694 --> 00:24:33,860 jis Se konsa, mwen ka gen tan pwan yon sèl sa a. 560 00:24:33,860 --> 00:24:37,850 Li kite yo wè si sa a ap travay students.csv-- premye fwa 561 00:24:37,850 --> 00:24:39,310 Mwen te aktive. 562 00:24:39,310 --> 00:24:41,360 Koulye a, yo vle wè kontak m 'yo. 563 00:24:41,360 --> 00:24:44,310 Koulye a, mwen bezwen enskri. 564 00:24:44,310 --> 00:24:47,620 Gade kouman li fasil se yo sèvi ak CSVs? 565 00:24:47,620 --> 00:24:50,840 Wi, kenbe l 'jiska dat. 566 00:24:50,840 --> 00:24:52,375 OK, kounye a nou ap pare pou klas la. 567 00:24:52,375 --> 00:24:58,750 568 00:24:58,750 --> 00:25:00,370 OK, oh, sa ki nan nouvo? 569 00:25:00,370 --> 00:25:02,920 OK, fèmen. 570 00:25:02,920 --> 00:25:04,750 Sa ki te majik. 571 00:25:04,750 --> 00:25:07,280 OK, kounye a nou gen mete ajou. 572 00:25:07,280 --> 00:25:10,890 Epi, koulye a, li bliye sa ranpli Mwen orijinal louvri, 573 00:25:10,890 --> 00:25:13,090 men ki sa a-- gen nou ale. 574 00:25:13,090 --> 00:25:16,341 OK, se konsa kounye a nou gen yon dosye Excel. 575 00:25:16,341 --> 00:25:18,290 Mèsi poutèt ou. 576 00:25:18,290 --> 00:25:20,764 >> OK, Se konsa, sa m 'te fè te fè pati ki pi fasil la. 577 00:25:20,764 --> 00:25:23,930 Natirèlman mwen te kapab pre-enstale Excel, oswa Resansman, oswa kèlkeswa sa pwogram lan. 578 00:25:23,930 --> 00:25:25,846 Men, sa a se bèl, paske koulye a, mwen ka manipile 579 00:25:25,846 --> 00:25:28,090 done yo nan yon fòma estanda. 580 00:25:28,090 --> 00:25:30,294 >> Kontèks Se konsa, kounye a, kite a chanje a yon kote nou sispann 581 00:25:30,294 --> 00:25:32,710 dènye fwa, ki te kòmanse yo pran an wou fòmasyon. 582 00:25:32,710 --> 00:25:34,543 Men, anvan, ou pa t ' wè manje midi pi bonè sa a 583 00:25:34,543 --> 00:25:38,150 se ankò vini isit la nan Ponpye ak Glas nan Cambridge, Sitar nan New Haven. 584 00:25:38,150 --> 00:25:43,150 Enskri sou sit entènèt CS50s ASAP yo rantre nan elèv yo CS50 ak anplwaye yo. 585 00:25:43,150 --> 00:25:46,090 >> Se konsa, nou te pran wou fòmasyon koupe sou Lendi kòm follows-- 586 00:25:46,090 --> 00:25:49,120 te fisèl te deklare nan CS50s bibliyotèk pou kèk tan. 587 00:25:49,120 --> 00:25:52,650 Lè li nan bèl, paske li pèmèt nou pale sou varyab tankou se te 588 00:25:52,650 --> 00:25:54,660 Mo ki konplè epi ki fraz ak plis ankò. 589 00:25:54,660 --> 00:25:56,710 Men, li vire soti fisèl pa egziste. 590 00:25:56,710 --> 00:26:00,200 Sa se jis yon synonym, oswa yon alyas, ke nou te kreye pou yon bagay ki 591 00:26:00,200 --> 00:26:03,780 aktyèlman se yon ti kras plis teknik rele yon Char *. 592 00:26:03,780 --> 00:26:07,900 >> Ak tout bon, nou te wè yon egzanp nan yon pwogram nan Lendi 593 00:26:07,900 --> 00:26:11,200 ki pa t 'konpòte byen kòm nou espere. 594 00:26:11,200 --> 00:26:13,630 Sa a te dosye a, konpare-0. 595 00:26:13,630 --> 00:26:17,910 Epi sonje ke konpare-0, si Mwen compile pwogram Lendi a 596 00:26:17,910 --> 00:26:22,670 epi kouri konpare-0 ak kalite nan manman an miniskil, ak manman an miniskil ankò. 597 00:26:22,670 --> 00:26:25,320 Pwogram nan ensiste pou l di mwen tape bagay diferan, 598 00:26:25,320 --> 00:26:29,210 menm si manman, tout moun ki nan miniskil, se ki idantik vizyèlman. 599 00:26:29,210 --> 00:26:31,990 Se konsa, sa ki te repons lan kout pou poukisa òdinatè a panse 600 00:26:31,990 --> 00:26:34,500 de strings sa yo se diferan? 601 00:26:34,500 --> 00:26:35,250 Yeah? 602 00:26:35,250 --> 00:26:36,534 >> ODYANS: [fèbl] 603 00:26:36,534 --> 00:26:37,450 DAVID J. Malan: Dwa. 604 00:26:37,450 --> 00:26:39,600 Se konsa, manman, premye fwa a Mwen tape l 'nan, se ke yo te 605 00:26:39,600 --> 00:26:42,710 ki estoke yon kote nan la òdinatè mwen an memwa men nan yon kote diferan 606 00:26:42,710 --> 00:26:44,690 pase dezyèm fwa mwen tape nan manman. 607 00:26:44,690 --> 00:26:46,580 Koulye a, li sètènman ta ka optimisé. 608 00:26:46,580 --> 00:26:49,205 Òdinatè a ta ka lespri ak reyalize de strings sa yo, hey, 609 00:26:49,205 --> 00:26:49,954 yo ap idantik. 610 00:26:49,954 --> 00:26:51,520 Kite m 'pa redundantly magazen li. 611 00:26:51,520 --> 00:26:54,229 Men, òdinatè pa fè sa optimize sof si ou di yo a. 612 00:26:54,229 --> 00:26:56,061 Se konsa, pa default, yo ap jis ale nan fini 613 00:26:56,061 --> 00:26:57,670 nan de kote diferan nan memwa. 614 00:26:57,670 --> 00:27:01,570 Se konsa, yo dwe plis klè, lè nou konpare de strings yo, 615 00:27:01,570 --> 00:27:03,950 nan yo an premye te rele, te dezyèm lan rele 616 00:27:03,950 --> 00:27:08,530 t, ki sa espesyalman te mwen konpare isit la sou liy 13? 617 00:27:08,530 --> 00:27:09,494 Yeah. 618 00:27:09,494 --> 00:27:12,390 >> ODYANS: Li nan plas la nan memwa varyab sa a ap lonje dwèt sou. 619 00:27:12,390 --> 00:27:14,900 >> DAVID J. Malan: Egzakteman, mwen te konpare plas nan nan memwa 620 00:27:14,900 --> 00:27:16,300 ke moun varyab pwente nan. 621 00:27:16,300 --> 00:27:20,560 Se konsa, espesyalman, si manman te nan Nimewo multiple 1, ak 2, ak 3, 622 00:27:20,560 --> 00:27:24,020 ak 4-- paske sonje antislach a 0 bezwen yo dwe tout wout la nan fen an. 623 00:27:24,020 --> 00:27:29,420 Men, yon lòt egzanp nan manman, m-o-m, te nan adrès 10, 11, 12, ak 13. 624 00:27:29,420 --> 00:27:33,100 Mwen te konpare 1, adrès sa, ki kote nan memwa, 625 00:27:33,100 --> 00:27:35,160 kont 10, ki se evidamman pa menm bagay la. 626 00:27:35,160 --> 00:27:36,260 1 se pa 10. 627 00:27:36,260 --> 00:27:39,620 >> Se konsa, sa a se bèl nan ki li a trè senp. 628 00:27:39,620 --> 00:27:42,870 Men, li la pwoblèm tèl degre ke nou pa ka sanble yo konpare strings. 629 00:27:42,870 --> 00:27:44,930 Se konsa, fundamentally-- ak nan nivo ki ba sa a, 630 00:27:44,930 --> 00:27:47,300 si ou te vle aplike yon pwogram yo konpare 631 00:27:47,300 --> 00:27:50,270 de mo ki nan separe te itilizatè tape nan pou bon jan kalite, 632 00:27:50,270 --> 00:27:53,944 fè yo liy moute pou Char Char, jis an tèm jeneral, 633 00:27:53,944 --> 00:27:55,360 ki sa nou bezwen fè, aparamman? 634 00:27:55,360 --> 00:27:57,940 Li pa ase jis yo gade nan sa yo de adrès. 635 00:27:57,940 --> 00:27:58,860 Ki sa nou bezwen fè? 636 00:27:58,860 --> 00:27:59,360 Yeah? 637 00:27:59,360 --> 00:28:01,120 >> ODYANS: répétèr nan fisèl la [fèbl]. 638 00:28:01,120 --> 00:28:02,600 >> DAVID J. Malan: Yeah, se pou yo repekte nan fisèl la. 639 00:28:02,600 --> 00:28:05,808 Se pou yo sèvi ak yon pou riban, se yon riban pandan y ap, oswa tou sa w ap pi konfòtab ak. 640 00:28:05,808 --> 00:28:08,840 Men, si nou te gen de strings yon kote nan memwa, se pou yo gade nan chak nan 641 00:28:08,840 --> 00:28:11,770 premye karaktè, Lè sa a, chak nan dezyèm karaktè, Lè sa a, twazyèm, ak katriyèm, 642 00:28:11,770 --> 00:28:15,206 ak senkyèm, jouk nou frape sa ki valè Sentinel espesyal? 643 00:28:15,206 --> 00:28:16,080 ODYANS: [fèbl] 644 00:28:16,080 --> 00:28:18,800 DAVID J. Malan: Yeah, antislach a zewo, nan ki pwen nan swa fisèl 645 00:28:18,800 --> 00:28:20,100 nou ka deside sa a, se li. 646 00:28:20,100 --> 00:28:21,970 Èske nou matche chak karaktè sèl? 647 00:28:21,970 --> 00:28:22,990 Si ou pa, retounen fo. 648 00:28:22,990 --> 00:28:24,770 Si se konsa, retounen vre. 649 00:28:24,770 --> 00:28:28,800 Se konsa, sa a, se ekzakteman ki sa vèsyon sa-a nan pwogram nan konpare-1.c fè. 650 00:28:28,800 --> 00:28:31,677 Li se ki idantik ak sa nou gade Lendi eksepte ke mwen te 651 00:28:31,677 --> 00:28:34,760 vinn m de mo an menm si string-- ki pa gen okenn impact-- fonksyonèl tout 652 00:28:34,760 --> 00:28:37,450 M ap fè kounye a se retire kèk wou fòmasyon vizyèl, 653 00:28:37,450 --> 00:28:40,880 men yo wè klè ki a ak t yo adrès. 654 00:28:40,880 --> 00:28:43,020 Epi sa a, ki sa zetwal la, asterisk a, reprezante 655 00:28:43,020 --> 00:28:46,690 se yon adrès, otreman li te ye plis teknikman kòm yon konsèy. 656 00:28:46,690 --> 00:28:49,880 >> Se konsa, lè Mwen deklare a sou liy 9 ak di Char * s, 657 00:28:49,880 --> 00:28:52,160 sa pa vle di ban m 'yon fisèl. 658 00:28:52,160 --> 00:28:56,360 Sa vle di, ban m 'yon varyab ki gen objektif nan lavi se nan magazen yon adrès. 659 00:28:56,360 --> 00:29:00,400 Paske Mwen pral mete nan adrès nan yon afè nan li. 660 00:29:00,400 --> 00:29:03,500 Ak tout bon, GetString, yo dwe klè, pa retounen yon kòd. 661 00:29:03,500 --> 00:29:06,110 Li pa retounen manman antislach zewo, se pou chak. 662 00:29:06,110 --> 00:29:10,005 Ki sa ki GetString espesyalman ak jisteman retounen? 663 00:29:10,005 --> 00:29:10,880 ODYANS: [fèbl] 664 00:29:10,880 --> 00:29:14,080 DAVID J. Malan: Yon adrès, nan adrès nan karaktè nan premye 665 00:29:14,080 --> 00:29:16,070 nan kèk fisèl li te vinn. 666 00:29:16,070 --> 00:29:19,250 Se konsa, kounye a nou ap wè yon mo kle espesyal ankò. 667 00:29:19,250 --> 00:29:20,640 Epi, mwen mansyone sa a pi bonè. 668 00:29:20,640 --> 00:29:23,620 Sa a se pral yo dwe bon konvansyon ke nou pral wè ankò e ankò kounye a. 669 00:29:23,620 --> 00:29:27,540 Mwen tcheke a asire w ke a se pa nil epi t se pa nil. 670 00:29:27,540 --> 00:29:30,100 Paske ki baze sou mwen reyèlman mansyone rapid pi bonè, 671 00:29:30,100 --> 00:29:35,510 sa ki ka vle di si GetString retounen pa yon adrès men N-U-L-L, ki se ankò, 672 00:29:35,510 --> 00:29:36,990 kèk valè espesyal? 673 00:29:36,990 --> 00:29:37,890 >> ODYANS: Erè. 674 00:29:37,890 --> 00:29:38,600 >> DAVID J. Malan: Se yon erè. 675 00:29:38,600 --> 00:29:39,550 Yon bagay ale mal. 676 00:29:39,550 --> 00:29:41,341 Ak sa ki tipikman ka rive, espesyalman 677 00:29:41,341 --> 00:29:45,162 ak strings ki ta dwe nan longè enkoni nan advance-- 678 00:29:45,162 --> 00:29:46,870 petèt òdinatè yo ' soti nan memwa, petèt 679 00:29:46,870 --> 00:29:49,280 ou tape nan yon lontan mo oubyen yon fraz 680 00:29:49,280 --> 00:29:51,880 oswa kopye tankou yon redaksyon gwo gen nan jis pa ase memwa. 681 00:29:51,880 --> 00:29:55,340 Se konsa, GetString pa ka retounen adrès ki nan tout bagay la, 682 00:29:55,340 --> 00:29:56,620 se konsa li jis retounen pa gen anyen. 683 00:29:56,620 --> 00:30:00,580 Apre sa, li di yon erè ki te rive pa retounen valè a nil espesyal. 684 00:30:00,580 --> 00:30:02,890 Li nan adrès la zewo, se konsa pale. 685 00:30:02,890 --> 00:30:06,157 >> Koulye a, li vire soti C vini ak yon fonksyon ki fè sa iterasyon. 686 00:30:06,157 --> 00:30:09,240 Nou pa gen aplike sa a ak yon pou riban oswa yon riban pandan y ap tèt nou. 687 00:30:09,240 --> 00:30:11,150 Nou ka sèvi ak yon fonksyon, rele suksen, 688 00:30:11,150 --> 00:30:15,400 brase comp, oswa fisèl konpare, ki gen objektif nan lavi se fè egzakteman sa. 689 00:30:15,400 --> 00:30:19,990 Ou ba li de endikasyon, de adrès, epi li pral ale nan adrès sa yo 690 00:30:19,990 --> 00:30:23,130 ak Lè sa a konpare lèt pou lèt pou lèt pou bon jan kalite, 691 00:30:23,130 --> 00:30:26,610 kanpe sèlman lè ki sa ki vre? 692 00:30:26,610 --> 00:30:31,540 Lè entwitif ta dwe brase comp sispann iteration, jis yo dwe klè? 693 00:30:31,540 --> 00:30:35,400 Lè li frape yon antislach 0 nan swa fisèl, nan ki pwen li ka deside 694 00:30:35,400 --> 00:30:38,910 te tout bagay matche, oswa te gen te yon erè? 695 00:30:38,910 --> 00:30:42,740 >> Se konsa, si nou kouri sa a kounye a epi eseye jwèt ti kras lèt majiskil nou an, 696 00:30:42,740 --> 00:30:49,260 kidonk fè konpare-1, ./compare-1, ak tape manman an miniskil tou de fwa. 697 00:30:49,260 --> 00:30:50,560 Kounye a li nan menm bagay la. 698 00:30:50,560 --> 00:30:54,080 Men, si mwen fè l 'ankò ak miniskil ak Lè sa a petèt majuskul. 699 00:30:54,080 --> 00:30:56,720 Koulye a, li tout bon fè distenksyon ant anwo ak miniskil. 700 00:30:56,720 --> 00:31:00,440 Se konsa, pa tout sa ki difisil oswa majik, men li kounye a eksplike 701 00:31:00,440 --> 00:31:03,140 sa k ap pase anba kapo a. 702 00:31:03,140 --> 00:31:07,640 >> Se konsa, sa plis nou ka ekstrè soti nan sa a kalite leson? 703 00:31:07,640 --> 00:31:08,980 Se konsa, kite a pran yon gade nan sa a. 704 00:31:08,980 --> 00:31:15,380 Mwen pral ale pi devan epi ekri yon pwogram rapid isit la rele kopi-0. 705 00:31:15,380 --> 00:31:21,594 Epi, koulye a kite a ale pi devan ak aktyèlman kite a fè sa a men ak kopi-0, 706 00:31:21,594 --> 00:31:23,010 pran yon gade nan ki sa mwen te gen isit la. 707 00:31:23,010 --> 00:31:24,712 M 'premye di itilizatè a, di yon bagay. 708 00:31:24,712 --> 00:31:26,420 Lè sa a, mwen jwenn yon fisèl ak mwen estoke l 'nan la. 709 00:31:26,420 --> 00:31:29,810 Apre sa, mwen tcheke si la egal egal nil, jis retounen 1. 710 00:31:29,810 --> 00:31:31,590 Se konsa, sa a se jis estanda kont kouran erè. 711 00:31:31,590 --> 00:31:33,112 Pa gen anyen ki enteresan te rive fèt. 712 00:31:33,112 --> 00:31:36,320 Lè an reyalite, si nou debarase m de erè a tcheke, sa a sanble semèn 1 Kòd 713 00:31:36,320 --> 00:31:36,985 nan moman an. 714 00:31:36,985 --> 00:31:39,110 Men, mwen te kòmanse yo ka resevwa yon ti kras pi byen sou sa. 715 00:31:39,110 --> 00:31:43,340 >> Koulye a, nan liy 16, yon semèn de sa, petèt jou menm yon koup oswa minit de sa, 716 00:31:43,340 --> 00:31:46,720 ou ta ka di liy 16 se kreye yon varyab rele t 717 00:31:46,720 --> 00:31:48,219 ak kopye s nan li. 718 00:31:48,219 --> 00:31:50,010 Epi sa a, yon parfe Takeaway ki rezonab. 719 00:31:50,010 --> 00:31:51,560 Men, dwe plis presi kounye a. 720 00:31:51,560 --> 00:31:54,190 Sa k ap pase nan liy 16? 721 00:31:54,190 --> 00:31:56,170 Ki sa ki ap resevwa kopye de dwat a gòch? 722 00:31:56,170 --> 00:31:56,669 Yeah? 723 00:31:56,669 --> 00:31:58,490 ODYANS: Èske t ap resevwa yon adrès nan a? 724 00:31:58,490 --> 00:32:01,220 >> DAVID J. Malan: Egzakteman, t a ap vin adrès ki nan a. 725 00:32:01,220 --> 00:32:05,170 Se konsa, yo dwe klè kounye a, si mwen ale tounen nan egzanp ki pi bonè 726 00:32:05,170 --> 00:32:08,520 ak mwen trase soti bagay la mwen te tape nan. 727 00:32:08,520 --> 00:32:11,640 Ak sa ki mwen te tape in-- isit la nan la, ak isit la 728 00:32:11,640 --> 00:32:15,830 se sa m 'te tape nan yon kote nan memwa, manman ak lè sa a yon antislach 729 00:32:15,830 --> 00:32:17,840 0 ki nan te ajoute pou mwen. 730 00:32:17,840 --> 00:32:23,060 Ki sa mwen ki estoke nan isit la, sonje, sa a se nan pozisyon 1, 2, 3, 4, 731 00:32:23,060 --> 00:32:24,655 sa a se sa ki nan kounye a nan la. 732 00:32:24,655 --> 00:32:29,220 Se konsa, si sou liy 16, mwen di ban m ' yon lòt varyab yo rele t ak magazen 733 00:32:29,220 --> 00:32:33,590 nan nan valè a nan a, sa ki vin estoke isit la pa pral manman 734 00:32:33,590 --> 00:32:35,480 men pito jis nimewo a 1. 735 00:32:35,480 --> 00:32:38,520 >> Se konsa, si nou gade devan yo nan pwogram sa a kounye a, ki sa ki pwal pase? 736 00:32:38,520 --> 00:32:40,690 Se konsa, remake ke gen nan sa a fonksyon ou ta ka 737 00:32:40,690 --> 00:32:44,410 te itilize sa a kèk tan de sa pou Seza, oswa Vigenere, oswa petèt pa nan tout. 738 00:32:44,410 --> 00:32:48,170 Mwen reklamasyon ak printf m 'yo, mwen se ale nan tirer t la kopi. 739 00:32:48,170 --> 00:32:51,616 Premye nan liy 19, saniti rapid tcheke, chèk strlèn longè a nan t. 740 00:32:51,616 --> 00:32:53,740 Paske mwen pa vle eseye kapitalize yon bagay 741 00:32:53,740 --> 00:32:55,104 si gen nan pa gen fisèl la. 742 00:32:55,104 --> 00:32:57,520 Si itilizatè a jis frape Antre, gen nan pa gen anyen yo tirer. 743 00:32:57,520 --> 00:33:01,100 Se konsa, mwen pa vle fè liy 21. 744 00:33:01,100 --> 00:33:05,758 Se konsa, liy 21 se valorizasyon ki lèt, aparamman, nan t? 745 00:33:05,758 --> 00:33:06,514 >> ODYANS: m? 746 00:33:06,514 --> 00:33:08,722 DAVID J. Malan: Li sanble tankou li nan kopye ki youn? 747 00:33:08,722 --> 00:33:09,486 ODYANS: m. 748 00:33:09,486 --> 00:33:10,450 DAVID J. Malan: Uh, m. 749 00:33:10,450 --> 00:33:12,685 OK, se konsa premye m nan, paske avi ke mwen se 750 00:33:12,685 --> 00:33:14,935 pase nan toupper, ki si ou pa janm te wè l 'li nan 751 00:33:14,935 --> 00:33:16,980 jis yon fonksyon kapitalize kòm opinyon li yo. 752 00:33:16,980 --> 00:33:20,240 t bracket zewo vle di bay m 'pèsonaj la zewo nan t. 753 00:33:20,240 --> 00:33:22,550 Se konsa, ki jan fè sa a chanjman foto, yo dwe klè? 754 00:33:22,550 --> 00:33:25,490 755 00:33:25,490 --> 00:33:29,160 Ki sa ki bezwen jwenn reekri oswa chanje ki gen rapò ak la ak t ak manman 756 00:33:29,160 --> 00:33:30,097 antislach zewo. 757 00:33:30,097 --> 00:33:31,470 >> ODYANS: [fèbl] 758 00:33:31,470 --> 00:33:34,030 >> DAVID J. Malan: Yeah, kidonk sa a isit la tou senpleman yon sèl 759 00:33:34,030 --> 00:33:40,860 bezwen jwenn chanje to-- ranje sa a men bezwen jwenn chanje a yon kapital m. 760 00:33:40,860 --> 00:33:44,330 Men koulye a,, gade pita nan la pwogram, si mwen enprime soti 761 00:33:44,330 --> 00:33:49,800 a ak t jan mwen netwaye isit la, gade sa ki nan pral rive enprime soti a ak t. 762 00:33:49,800 --> 00:33:54,310 Se konsa, fè kopi-0, ./copy-0. 763 00:33:54,310 --> 00:33:57,140 Kite m 'ale pi devan epi tape nan manman nan tout miniskil. 764 00:33:57,140 --> 00:34:00,140 Avi tou de orijinal ak nan te kopi an te pwofite kapitalize. 765 00:34:00,140 --> 00:34:00,850 Poukisa? 766 00:34:00,850 --> 00:34:04,431 Oke, a ak tou de t ap lonje dwèt a, si ou vle, moso nan menm nan memwa. 767 00:34:04,431 --> 00:34:06,930 Apre sa, franchman, sa a ap resevwa reyèlman uninteresting-- lefèt 768 00:34:06,930 --> 00:34:09,150 ke nou ap lè l sèvi avèk adrès zewo isit la. 769 00:34:09,150 --> 00:34:11,719 Mwen vle di, mwen pa reyèlman sousye kote bagay se nan memwa. 770 00:34:11,719 --> 00:34:13,550 Padon Mwen efase yon ti kras twòp. 771 00:34:13,550 --> 00:34:15,674 Men, mwen pa reyèlman sousye kote bagay sa yo yo nan memwa. 772 00:34:15,674 --> 00:34:18,510 Se konsa, tout bon ki sa pwogramasyon yo gen tandans panse osijè de 773 00:34:18,510 --> 00:34:21,080 se ke lè ou pale sou yon adrès, oswa yon konsèy, 774 00:34:21,080 --> 00:34:22,679 ki sousye kote li se nan memwa. 775 00:34:22,679 --> 00:34:24,989 Mwen pa pran swen si li nan nan multiple youn oswa yon sèl milya dola. 776 00:34:24,989 --> 00:34:27,920 Mwen jis pran swen ke sa a varyab se efektivman 777 00:34:27,920 --> 00:34:29,620 montre nan ki ti moso nan memwa. 778 00:34:29,620 --> 00:34:33,350 Se konsa, koulye a, olye ke chikan sou adrès memwa abitrè, se pou yo 779 00:34:33,350 --> 00:34:36,710 jis kòmanse fè desen endikasyon kòm endikasyon, kòm kèk flèch. 780 00:34:36,710 --> 00:34:39,340 Se konsa, sa a ak t reyèlman yo, dapre pwogram sa a, 781 00:34:39,340 --> 00:34:42,130 paske yo te ki jan mwen kreye t, li nan jis de varyab ki apa a 782 00:34:42,130 --> 00:34:43,840 montre nan moso nan menm nan memwa. 783 00:34:43,840 --> 00:34:45,215 Apre sa, nou pa pran swen kote yo ye. 784 00:34:45,215 --> 00:34:47,130 Se konsa, nou kapab abstrè lwen ke detay. 785 00:34:47,130 --> 00:34:48,780 >> Se konsa, ki jan mwen ranje sa a? 786 00:34:48,780 --> 00:34:54,120 Si m 'vle ekri yon vèsyon nan kopi a pwogram ki aktyèlman kopi fisèl la 787 00:34:54,120 --> 00:34:56,840 ak lèt ​​majiskil sèlman nan kopi, jis entwitif, 788 00:34:56,840 --> 00:34:59,766 sa k ap resevwa yo dwe genyen yon engredyan nan solisyon nou an? 789 00:34:59,766 --> 00:35:00,640 ODYANS: [fèbl] 790 00:35:00,640 --> 00:35:01,420 DAVID J. Malan: Nou bezwen yon ki sa? 791 00:35:01,420 --> 00:35:01,820 ODYANS: Chunk nan memwa. 792 00:35:01,820 --> 00:35:03,280 DAVID J. Malan: Nou bezwen yon lòt ti moso nan memwa, dwa? 793 00:35:03,280 --> 00:35:05,360 Nou pa konnen ki jan yo fè l 'ankò, nesesèman. 794 00:35:05,360 --> 00:35:11,330 Men, mwen kalite bezwen sa a rive konsa ki manman orijinal la nan pi ba ka 795 00:35:11,330 --> 00:35:14,170 fini moute nan ki moso siplemantè nan memwa. 796 00:35:14,170 --> 00:35:19,770 Lè sa a, lè m 'chanje kopi a, mwen pa vle chanje sa a kopi isit la. 797 00:35:19,770 --> 00:35:26,020 Mwen olye pou vle chanje sèlman sa a kopi pou ke orijinal la se chanje. 798 00:35:26,020 --> 00:35:27,980 >> Se konsa, kite a wè ki jan nou ta ka fè sa. 799 00:35:27,980 --> 00:35:31,800 Nan kopi-1, ki te gen deja te dechouke li nan kòmantè, 800 00:35:31,800 --> 00:35:33,250 men se kòmante sou entènèt. 801 00:35:33,250 --> 00:35:36,710 Nou olye pou fè annapre sa yo nan liy yo ki idantik, jwenn m 'yon fisèl 802 00:35:36,710 --> 00:35:38,340 epi rele li s. 803 00:35:38,340 --> 00:35:43,500 Men koulye a, se pou yo gade nan youn nan ki pi nou an konplèks men dènye a nan konpleksite nan 804 00:35:43,500 --> 00:35:47,340 pou ti tan, liy 16 fè egzakteman sa a. 805 00:35:47,340 --> 00:35:49,400 Se konsa, si confortable ou a ak nan foto nou jis drew-- 806 00:35:49,400 --> 00:35:51,790 ban m 'yon moso nouvo nan memwa, kopi tout bagay nan li, 807 00:35:51,790 --> 00:35:53,730 kite a wè ki jan nou tradui ke yo kòd. 808 00:35:53,730 --> 00:35:59,400 >> Se konsa, liy 16, sou bò men gòch, Char * T ki ban m 'bwat sa a sou isit la. 809 00:35:59,400 --> 00:36:00,230 Sa a tout li fè sa. 810 00:36:00,230 --> 00:36:03,240 Sou bò nan men dwat, m alok, oswa malok, 811 00:36:03,240 --> 00:36:06,480 se alokasyon memwa, super anpenpan, yon fason skre nan jis di 812 00:36:06,480 --> 00:36:07,640 ban m 'yon ti moso nan memwa. 813 00:36:07,640 --> 00:36:09,290 Ki kantite memwa nou bezwen? 814 00:36:09,290 --> 00:36:10,910 Oke, se kalite yon ekspresyon gwo. 815 00:36:10,910 --> 00:36:12,570 Men, kite a wè sa li di isit la. 816 00:36:12,570 --> 00:36:15,940 Se konsa, sa a, nan kou, se ba m 'longè a afè de la. 817 00:36:15,940 --> 00:36:19,094 Se konsa, manman li ta dwe ki sa? 818 00:36:19,094 --> 00:36:21,010 Se konsa, jis twa, dwa? manman se twa karaktè. 819 00:36:21,010 --> 00:36:22,830 Ou pa konte nan antislach zewo lè ou 820 00:36:22,830 --> 00:36:25,960 pale sou longè a nan yon afè li nan aktyèlman lèt yo imen vizib. 821 00:36:25,960 --> 00:36:28,020 Se konsa, manman, kidonk sa a ki ban m '3. 822 00:36:28,020 --> 00:36:31,170 Men, rete tann yon minit, mwen kounye a pandan l ajoute 1. 823 00:36:31,170 --> 00:36:34,861 Poukisa pou m 'aktyèlman vle asiyen 4 bytes epi li pa jis 3? 824 00:36:34,861 --> 00:36:35,360 Yeah? 825 00:36:35,360 --> 00:36:36,910 >> ODYANS: Pou valè a Sentinel? 826 00:36:36,910 --> 00:36:38,951 >> DAVID J. Malan: Egzakteman, pou ke valè Sentinel. 827 00:36:38,951 --> 00:36:40,840 Pou antislach a zewo, Mwen bezwen 4 bytes total. 828 00:36:40,840 --> 00:36:42,870 Se konsa, mwen bezwen longè a nan fisèl la plis 1. 829 00:36:42,870 --> 00:36:45,400 Lè sa a, jis pou bon measure-- menm si sou sistèm sa a, 830 00:36:45,400 --> 00:36:49,390 li nan toujou pral fè 1-- m ap di anpil anpil pitit sa a pa gwosè a nan yon Char. 831 00:36:49,390 --> 00:36:51,552 Vire soti sizof se yon operatè nan C ki 832 00:36:51,552 --> 00:36:53,260 jis di ou la kantite bytes sa a, se 833 00:36:53,260 --> 00:36:54,700 egzije pou yon sèten kalite done. 834 00:36:54,700 --> 00:36:57,740 Li pa travay pou ranje, tipikman, pafwa li fè sa. 835 00:36:57,740 --> 00:36:59,210 Men, nan ka la an jeneral, pa gen okenn. 836 00:36:59,210 --> 00:37:02,330 Men, li pral fè m 'konnen ki jan anpil bytes yon Char se, ki sanble se toujou 1. 837 00:37:02,330 --> 00:37:04,080 Se konsa, sa a se tankou miltipliye pa 1. 838 00:37:04,080 --> 00:37:05,900 >> Se konsa, super skre liy kap nan kòd. 839 00:37:05,900 --> 00:37:09,320 Men, tout li fè sa se donne m 'yon ti moso nan memwa. 840 00:37:09,320 --> 00:37:13,590 Men, li sanble yo dwe kopye anyen nan ki memwa? 841 00:37:13,590 --> 00:37:14,560 Pa ankò. 842 00:37:14,560 --> 00:37:22,040 Se konsa, ki sa mwen sou liy 22, ak 23, 24, 25, byen, Mwen tou senpleman fè sa. 843 00:37:22,040 --> 00:37:23,760 Lè sa a se sòt de fin vye granmoun bagay lekòl kounye a. 844 00:37:23,760 --> 00:37:26,010 Sa a se tankou PSet 2, kote w ap sèlman k ap deplase bagay sa yo 845 00:37:26,010 --> 00:37:28,620 alantou an memwa, ou pito nan strings. 846 00:37:28,620 --> 00:37:31,920 >> Se konsa, mwen iteration ki ant 0 a longè a nan an la fisèl. 847 00:37:31,920 --> 00:37:37,820 Apre sa, mwen kopye pèsonaj la m-th nan s nan pèsonaj la m-th nan t. 848 00:37:37,820 --> 00:37:41,820 Epi paske mwen menm, pwogramè a, te fè asire w ke ou asiyen egzakteman jan anpil bytes 849 00:37:41,820 --> 00:37:44,600 jan mwen bezwen, li nan pafè yon sèl-a-youn relasyon. 850 00:37:44,600 --> 00:37:47,060 Apre sa, mwen kopi manman an miniskil nan yon sèl nan nouvo. 851 00:37:47,060 --> 00:37:50,170 Lè sa a, anfen, mwen fè liy sa a. 852 00:37:50,170 --> 00:37:54,637 Se konsa, efè a se sèlman yo kapitalize sa a t isit la. 853 00:37:54,637 --> 00:37:56,470 Se konsa, yon anpil yo absòbe, men si ou jis konsidere 854 00:37:56,470 --> 00:37:58,220 sa k ap reyèlman ale sou anba kapo a 855 00:37:58,220 --> 00:38:00,880 se jis k ap deplase sa yo bytes alantou li, tout sa ki 856 00:38:00,880 --> 00:38:06,617 ki nesesè yo rezoud pwoblèm sa a se jis yo ban nou sa a ti moso nan memwa. 857 00:38:06,617 --> 00:38:08,450 Koulye a, nan risk pou yo akablan, kite m 'montre 858 00:38:08,450 --> 00:38:13,200 yon lòt egzanp sa a, se prèske ki idantik yo, eksepte pou yon sèl sa a 859 00:38:13,200 --> 00:38:14,350 liy nan kòd. 860 00:38:14,350 --> 00:38:18,870 Se konsa, sa a se vèsyon an HACKER nan pwogram sa a, si ou pral. 861 00:38:18,870 --> 00:38:21,050 Men, kite a jis distile l 'nan sa k ap pase sou. 862 00:38:21,050 --> 00:38:28,920 Liy 24 itilize yo dwe sa a t bracket mwen vin la bracket mwen. 863 00:38:28,920 --> 00:38:33,370 Koulye a, mwen chanje sa a yo t nan zetwal pi plis skre 864 00:38:33,370 --> 00:38:36,280 plis 1 egal zetwal nan plis 1. 865 00:38:36,280 --> 00:38:38,702 >> Se konsa, sa k ap pase ak poukisa nou gen yon karaktè zetwal? 866 00:38:38,702 --> 00:38:41,410 Nou te wè zetwal la anvan, epi li nan ki te itilize yon fason diferan isit la. 867 00:38:41,410 --> 00:38:45,490 Nou deja wè Char *, koulye a, mwen ap wè yon etwal nan kòmansman an, e ke sa a OK. 868 00:38:45,490 --> 00:38:48,190 Paske li sanble nou ka kalite dégager jis 869 00:38:48,190 --> 00:38:50,280 nan men moun premye prensip sa k ap pase sou. 870 00:38:50,280 --> 00:38:53,860 Se konsa, jis yo dwe klè, ki sa ki la? 871 00:38:53,860 --> 00:38:55,052 Semèn pase a, li te yon fisèl. 872 00:38:55,052 --> 00:38:56,260 Sa pa sifi ankò. 873 00:38:56,260 --> 00:38:57,690 Ki sa ki se an, espesyalman? 874 00:38:57,690 --> 00:38:58,590 >> ODYANS: [fèbl] 875 00:38:58,590 --> 00:38:59,881 >> DAVID J. Malan: Li se yon konsèy. 876 00:38:59,881 --> 00:39:02,610 Li nan adrès ki nan la premye karaktè nou tape nan. 877 00:39:02,610 --> 00:39:04,780 OK, ki sa ki t? 878 00:39:04,780 --> 00:39:05,660 >> ODYANS: [fèbl] 879 00:39:05,660 --> 00:39:07,950 >> DAVID J. Malan: nan adrès nan multiple an premye 880 00:39:07,950 --> 00:39:10,490 nan t, ki ti moso nan memwa realokasyon. 881 00:39:10,490 --> 00:39:14,720 Se konsa, li sanble ke lè nou repekte ki ant 0 sou jiska fisèl la 882 00:39:14,720 --> 00:39:17,424 length-- premye nan tout, mwen kòmanse koupe nan 0, paske 883 00:39:17,424 --> 00:39:18,840 a sa a lekòl la fin vye granmoun pou bagay riban. 884 00:39:18,840 --> 00:39:22,400 Se konsa, jis pou senplisite, se pou yo asime ke liy lan premye nan kòd 885 00:39:22,400 --> 00:39:23,760 se reyèlman jis sa a, dwat. 886 00:39:23,760 --> 00:39:26,080 Si mwen se zewo, pandan l ajoute zewo nan yon bagay prezimableman 887 00:39:26,080 --> 00:39:27,540 a pa pral gen yon efè. 888 00:39:27,540 --> 00:39:28,560 >> Se konsa, sa se sa a di? 889 00:39:28,560 --> 00:39:31,600 Li sanble ke zetwal la operatè nan kontèks sa a 890 00:39:31,600 --> 00:39:33,700 se dèreferans a operatè, ki se jis 891 00:39:33,700 --> 00:39:37,530 yon fason anpenpan nan di ale nan adrès sa a. 892 00:39:37,530 --> 00:39:42,080 Se konsa, si a se adrès ki nan premye a karaktè nan sa a ti moso nan memwa, 893 00:39:42,080 --> 00:39:43,630 * a vle di ale la. 894 00:39:43,630 --> 00:39:45,630 Epi paske nou te trase foto a nan fason sa a, 895 00:39:45,630 --> 00:39:47,430 ou ka adopte nan apre modèl mantal. 896 00:39:47,430 --> 00:39:51,030 Si sa a se nan, epi ou di * a, * s kalite tankou parachut ak nechèl, 897 00:39:51,030 --> 00:39:54,540 si ou sonje jwèt la nan anfans, se tankou swiv ki flèch epi ale 898 00:39:54,540 --> 00:39:55,570 nan adrès la. 899 00:39:55,570 --> 00:39:57,080 >> * T se menm bagay la. 900 00:39:57,080 --> 00:39:59,855 Se konsa, kòmanse isit la, ale nan moso li yo. 901 00:39:59,855 --> 00:40:03,350 Mwen pa ka jis desine sou ekran sa a ki fason. 902 00:40:03,350 --> 00:40:05,560 * T vle di yo ale isit la. 903 00:40:05,560 --> 00:40:08,830 Lè sa a,, se la pou riban jis di deplase karaktè sa a isit la, 904 00:40:08,830 --> 00:40:11,330 deplase karaktè sa a isit la, deplase karaktè sa a isit la. 905 00:40:11,330 --> 00:40:12,890 Men, ki jan m 'fè ki incrementation? 906 00:40:12,890 --> 00:40:15,430 Mwen bezwen defèt sa mwen jis efase. 907 00:40:15,430 --> 00:40:18,140 Sa a se sa k ap jeneralman rele konsèy aritmetik, ki 908 00:40:18,140 --> 00:40:20,040 vle di matematik ak adrès. 909 00:40:20,040 --> 00:40:22,460 >> Si, nan sa a pou riban, Mwen kenbe incrementing mwen, 910 00:40:22,460 --> 00:40:26,880 ak s se yon adrès ak t se yon adrès, si mwen jis kenbe ajoute 1, 911 00:40:26,880 --> 00:40:31,406 ki jis vle di kenbe deplase pi devan, ak pou pi devan, ak pou pi devan nan memwa a. 912 00:40:31,406 --> 00:40:34,030 Se tankou Oxford Street, nan lari ke bilding lan CS se sou. 913 00:40:34,030 --> 00:40:36,490 Bilding yo CS se nan 33 Oxford Street. 914 00:40:36,490 --> 00:40:39,870 Se konsa, si ou te fè 33 Oxford Street plis 1, 915 00:40:39,870 --> 00:40:42,870 ki pote ou nan 34 Oxford Street, Lè sa a, 35 Oxford Street, 916 00:40:42,870 --> 00:40:46,380 Lè sa a, 36 Oxford Street, tou sa moun bilding aktyèlman yo - si yo egziste. 917 00:40:46,380 --> 00:40:50,540 Se konsa, sa a, se tout sa nou ap fè isit la ak konsèy aritmetik. 918 00:40:50,540 --> 00:40:53,820 >> Se konsa, li nan yon fason super Esoteric a eksprime tèt nou. 919 00:40:53,820 --> 00:40:56,160 Men, tout sa ki nan k ap pase anba kapo a 920 00:40:56,160 --> 00:40:59,330 se jis sa yo adrès sa yo, tankou apre yon kat jeyografik, si ou pral, 921 00:40:59,330 --> 00:41:02,692 oswa sa yo flèch tankou nou te trase sou ekran an. 922 00:41:02,692 --> 00:41:04,910 OK, yon anpil yo dijere. 923 00:41:04,910 --> 00:41:10,410 Nenpòt kesyon sou sentaks, konsèp, endikasyon, malok, oswa renmen an. 924 00:41:10,410 --> 00:41:11,480 Yeah, sou isit la an premye. 925 00:41:11,480 --> 00:41:13,755 >> ODYANS: Se konsa, kote ki di * T egal toupper * T, 926 00:41:13,755 --> 00:41:15,575 se ke ale nan tirer tout lèt yo oswa just-- 927 00:41:15,575 --> 00:41:17,283 >> DAVID J. Malan: Ah, reyèlman bon kesyon. 928 00:41:17,283 --> 00:41:19,805 Se konsa, nan liy sa a isit la, 31, sa a se ale nan tirer 929 00:41:19,805 --> 00:41:21,430 lèt la premye oswa tout lèt yo. 930 00:41:21,430 --> 00:41:23,460 Se konsa nou reponn ki pa ale tounen nan prensip premye. 931 00:41:23,460 --> 00:41:26,168 Ak prensip premye isit la mwen vle di jis ale nan definisyon debaz yo 932 00:41:26,168 --> 00:41:27,000 a sa k ap enplike nan sa. 933 00:41:27,000 --> 00:41:29,770 Se konsa, toupper nan yon fonksyon ki lèt majiskil yon Char. 934 00:41:29,770 --> 00:41:30,530 Sa a tout. 935 00:41:30,530 --> 00:41:36,740 * T vle di ale nan first-- nan ale nan adrès la nan t. 936 00:41:36,740 --> 00:41:40,350 Se konsa, nan foto a, si sa a se moso nan nan memwa nou resevwa lajan ak malok, 937 00:41:40,350 --> 00:41:43,310 ak sa a se t, * T vle di ale isit la. 938 00:41:43,310 --> 00:41:46,710 >> Pandan se tan, w ap pase ki valè, miniskil m 939 00:41:46,710 --> 00:41:50,040 toupper, w ap vin tounen kapital M, ki bò ou mete li? 940 00:41:50,040 --> 00:41:52,410 W ap mete l 'nan ke kote menm. 941 00:41:52,410 --> 00:41:55,540 Se konsa, pa ke lojik nan sa yo definisyon debaz li a sèlman 942 00:41:55,540 --> 00:41:58,792 valorizasyon lèt nan premye sof si ou repekte ak mwen oswa yon 943 00:41:58,792 --> 00:42:02,000 pou riban oswa yon riban pandan y ap, li pa k ap pase fè anyen plis pase sa ou mande li. 944 00:42:02,000 --> 00:42:02,583 Bon kesyon. 945 00:42:02,583 --> 00:42:03,237 Yeah? 946 00:42:03,237 --> 00:42:05,369 >> ODYANS: Poukisa ou te itilize nan dèreferans metòd olye ke 947 00:42:05,369 --> 00:42:05,979 etalaj la? 948 00:42:05,979 --> 00:42:07,395 >> DAVID J. Malan: Ah, bon kesyon. 949 00:42:07,395 --> 00:42:10,672 Poukisa ou ta sèvi ak dèreferans a metòd olye pou yo metòd la etalaj? 950 00:42:10,672 --> 00:42:12,130 Okenn rezon patikilye, yo dwe onèt. 951 00:42:12,130 --> 00:42:15,290 Epi, an reyalite, pou sa a kalite egzanp, dwa, 952 00:42:15,290 --> 00:42:17,556 Mwen jis diskite fè nan pwogram pi konplike, 953 00:42:17,556 --> 00:42:19,680 plis je yo lustraj sou yo, moun ap kouran soti nan 954 00:42:19,680 --> 00:42:22,830 paske sa a sanble super Esoteric, men menm si li ap fè menm bagay la. 955 00:42:22,830 --> 00:42:26,695 Se konsa, franchman, sa a se yon solisyon san nesesite vizyèlman konplèks 956 00:42:26,695 --> 00:42:27,320 nan pwoblèm nan. 957 00:42:27,320 --> 00:42:29,580 >> Li nan toujou bon konsepsyon, senk soti nan senk pou konsepsyon, 958 00:42:29,580 --> 00:42:33,140 si li nan nan bracket a notasyon notasyon oswa nan konsèy. 959 00:42:33,140 --> 00:42:36,299 But-- espesyalman lè nou jwenn pita nan kou a nan pset 5 960 00:42:36,299 --> 00:42:39,340 lè nou aplike ki diksyonè ki Mwen te mansyone yon koup la jou- 961 00:42:39,340 --> 00:42:42,300 nou pral aktyèlman pran swen sou nan ba nivo adrès memwa 962 00:42:42,300 --> 00:42:44,140 ke nou reyèlman konprann sa k ap pase sou. 963 00:42:44,140 --> 00:42:48,300 >> Men, pou kounye a, li vire soti ke sa a liy nan Kòd parantèz isit la kare 964 00:42:48,300 --> 00:42:49,900 pa reyèlman egziste. 965 00:42:49,900 --> 00:42:52,230 Yo se sa ki rele Massachusetts Institute of Technology sik, ki 966 00:42:52,230 --> 00:42:58,390 se jis yon fason weirdly fre nan di a du konvèti parantèz kare yo dwe 967 00:42:58,390 --> 00:43:00,420 ki ekspresyon matematik. 968 00:43:00,420 --> 00:43:02,660 Se konsa, li nan yon konvansyon imen pou kapab jis ekri 969 00:43:02,660 --> 00:43:04,220 sa yo trè user-zanmitay parantèz. 970 00:43:04,220 --> 00:43:06,850 Men, sa ki du a, rezone, se reyèlman fè nenpòt ki lè 971 00:43:06,850 --> 00:43:10,970 ou ekri sa k ap make nan liy 24, anba kapo a li vrèman 972 00:43:10,970 --> 00:43:12,330 konvèti li nan sa a. 973 00:43:12,330 --> 00:43:16,200 Se jis plis plezi kòm yon moun li ak ekri Kòd tankou liy 24. 974 00:43:16,200 --> 00:43:18,530 Men, evantyèlman moun wou fòmasyon twò vin koupe 975 00:43:18,530 --> 00:43:21,780 lè pwòp konfò yon sèl la vin pi fò. 976 00:43:21,780 --> 00:43:27,240 >> Tout dwa, se konsa Lè sa a, sonje ke sa a te sòt nan nan pi gwo pwoblèm 977 00:43:27,240 --> 00:43:27,807 nou li pran kouri nan. 978 00:43:27,807 --> 00:43:30,640 Epi sa a, ki sa te pwovoke antye sa a konvèsasyon modi sou endikasyon, 979 00:43:30,640 --> 00:43:32,340 ak adrès, ak bagay kopye. 980 00:43:32,340 --> 00:43:35,410 Li te paske nou trebiche sou sa a estipid, pwoblèm estipid, annakò ak sa 981 00:43:35,410 --> 00:43:38,830 Mwen aplike logically-- ak Lauren moute isit la sou Demo a ak ji an zoranj 982 00:43:38,830 --> 00:43:43,770 nan milk-- nan yon parfe fonksyon algorithmically kòrèk 983 00:43:43,770 --> 00:43:47,010 pou échanjé de varyab ' valè, men bagay la modi 984 00:43:47,010 --> 00:43:50,550 pa t gen okenn ki pèsistan, oswa pèmanan, efè sou Kòd m 'yo. 985 00:43:50,550 --> 00:43:51,820 >> Epi poukisa te sa? 986 00:43:51,820 --> 00:43:54,650 Nan yon Nutshell, poukisa se sa a mete sou pye swap 987 00:43:54,650 --> 00:43:58,740 lojikman kòrèk, men pa gen okenn enpak sou varyab yo ke yo te pase nan li, 988 00:43:58,740 --> 00:44:01,119 tankou x ak y pou prensipal yo? 989 00:44:01,119 --> 00:44:02,410 Ki sa ki esansyèl la nan pwoblèm nan te ye? 990 00:44:02,410 --> 00:44:02,909 Yeah? 991 00:44:02,909 --> 00:44:05,532 ODYANS: Paske varyab te fè kopi varyab nan pas la 992 00:44:05,532 --> 00:44:06,240 a fonksyon. 993 00:44:06,240 --> 00:44:09,060 >> DAVID J. Malan: Egzakteman, lè ou pase varyab nan yon fonksyon, oswa agiman 994 00:44:09,060 --> 00:44:11,030 nan yon fonksyon, yo ap pase bò kopi, ki 995 00:44:11,030 --> 00:44:14,770 vle di ou jwenn yon ki idantik kap modèl nan Bits pou tou de x ak y, 996 00:44:14,770 --> 00:44:15,955 rele isit la yon ak b. 997 00:44:15,955 --> 00:44:18,080 Epi ou ka fè anyen ou vle ak sa yo kopi, 998 00:44:18,080 --> 00:44:20,657 men yo pwal santi yo pa gen okenn efè sou fonksyon an rele. 999 00:44:20,657 --> 00:44:22,990 Epi, an reyalite, nou te trase ki foto sou ekran, rapèl la 1000 00:44:22,990 --> 00:44:25,520 dènye fwa, annakò ak sa si ou reyèlman panse osijè de sa ki nan 1001 00:44:25,520 --> 00:44:28,570 ale sou anba a si hood-- sa a se memwa òdinatè w lan an, 1002 00:44:28,570 --> 00:44:31,650 , li desann isit la se moso nan memwa te itilize pou prensipal yo, 1003 00:44:31,650 --> 00:44:34,020 sa a se moso nan memwa te itilize pou swap, 1004 00:44:34,020 --> 00:44:37,090 e konsa menm si prensipal gen de varyab, x ak y, 1005 00:44:37,090 --> 00:44:41,840 swap ta ka gen ki idantik kap valè, tou de kote yo 1 ak 2, 1006 00:44:41,840 --> 00:44:44,520 men yo ap konplètman fragman diferan nan memwa. 1007 00:44:44,520 --> 00:44:46,130 >> Se konsa, nou bezwen yon solisyon a sa a. 1008 00:44:46,130 --> 00:44:51,580 Apre sa, franchman, li ta sanble ke kounye a nou gen yon solisyon a pwoblèm sa a, dwat. 1009 00:44:51,580 --> 00:44:55,760 Si nou kounye a gen kapasite a manipile bagay pa fason pou adrès 1010 00:44:55,760 --> 00:44:59,310 epi, sòt de parachut ak nechèl style, swiv flèch sa yo 1011 00:44:59,310 --> 00:45:02,820 epi ale nenpòt kote nou vle nan memwa, pa t 'kapab nou 1012 00:45:02,820 --> 00:45:06,220 rezoud pwoblèm sa a pa pase soti nan prensipal swap 1013 00:45:06,220 --> 00:45:09,650 pa valè yo nou vle swap, men jis entwitif 1014 00:45:09,650 --> 00:45:11,630 sa ki ta nou pase swap olye? 1015 00:45:11,630 --> 00:45:12,620 >> [Entèrpozisyon vwa] 1016 00:45:12,620 --> 00:45:15,244 >> DAVID J. Malan: Poukisa pa fè sa nou jis pase l adrès yo, dwa? 1017 00:45:15,244 --> 00:45:17,470 Poukisa nou pa nou bay swap yon kat jeyografik trezò, si ou vle, 1018 00:45:17,470 --> 00:45:20,950 ki mennen l 'bay la valè aktyèl x ak y. 1019 00:45:20,950 --> 00:45:24,340 Swap Se pou yo, aktyèlman chanje moun Bits orijinal, olye ke 1020 00:45:24,340 --> 00:45:26,797 jis pase kopi Bits yo. 1021 00:45:26,797 --> 00:45:29,130 Se konsa, an reyalite, sa a, se sa ki nan pral fè solisyon an. 1022 00:45:29,130 --> 00:45:31,899 Sa a vèsyon isit la se klèman move ak defekte. 1023 00:45:31,899 --> 00:45:35,190 Epi, koulye a, nan premye gade, li jis sanble tankou nou te ajoute yon pakèt moun sou zetwal owaza 1024 00:45:35,190 --> 00:45:37,106 li janbe lòt dwèt nou ke li ta konpile. 1025 00:45:37,106 --> 00:45:38,460 Men, li ta kounye a konpile. 1026 00:45:38,460 --> 00:45:40,090 >> Men, kite a wè sa ki bagay sa yo vle di. 1027 00:45:40,090 --> 00:45:43,990 Epi, malerezman, otè yo nan C te kapab te chwazi yon lòt senbòl 1028 00:45:43,990 --> 00:45:46,380 fè sa-a yon ti kras pi klè, men operatè a zetwal 1029 00:45:46,380 --> 00:45:48,610 gen diferan siyifikasyon an de kontèks diferan. 1030 00:45:48,610 --> 00:45:50,890 Epi nou te wè tou de, men kite a fè distenksyon ant. 1031 00:45:50,890 --> 00:45:55,310 >> Se konsa, moute nan tèt la a, lè m 'te chanje a ak b 1032 00:45:55,310 --> 00:46:00,470 nan men yo te int a nan move a vèsyon int zetwal, A ak B, 1033 00:46:00,470 --> 00:46:01,740 deja, yo te nonm antye relatif. 1034 00:46:01,740 --> 00:46:05,752 Ki sa ki a ak b kounye a nan bon, vèt vèsyon an? 1035 00:46:05,752 --> 00:46:06,900 Yo ap adrès. 1036 00:46:06,900 --> 00:46:09,610 Adrès nan sa ki, yo dwe klè? 1037 00:46:09,610 --> 00:46:10,770 Adrès nan nonm antye relatif. 1038 00:46:10,770 --> 00:46:12,520 Se konsa, lefèt ke mwen se li di zetwal int vle di 1039 00:46:12,520 --> 00:46:15,440 sa a se adrès ki nan yon nonb antye relatif, espesyalman. 1040 00:46:15,440 --> 00:46:19,120 >> Se konsa, kounye remake nan liy yo nan kòd, te yon lòt bagay chanje tou. 1041 00:46:19,120 --> 00:46:22,770 TMP rete menm bagay la tou, paske li nan jis nonb antye relatif nan yon ti tan, 1042 00:46:22,770 --> 00:46:24,110 pa gen okenn majik memwa a. 1043 00:46:24,110 --> 00:46:26,370 Men, yon kounye a bezwen yon etwal. 1044 00:46:26,370 --> 00:46:28,560 Epi, an reyalite, chak lòt mansyone nan A ak B, 1045 00:46:28,560 --> 00:46:31,780 remake ke tout sa a, se chanje soti nan wouj nan vèt 1046 00:46:31,780 --> 00:46:34,209 se ke mwen prefiks moun varyab ak zetwal yo. 1047 00:46:34,209 --> 00:46:35,750 Paske mwen pa vle a kapab bay kopi yon ak b. 1048 00:46:35,750 --> 00:46:40,350 Paske si mwen jis kopi a ak b ak swap A ak B, ki sa mwen aktyèlman échanjé? 1049 00:46:40,350 --> 00:46:43,760 Jis adrès, mwen vle swap sa ki nan nan adrès sa yo. 1050 00:46:43,760 --> 00:46:44,860 Mwen vle ale la. 1051 00:46:44,860 --> 00:46:48,000 Se konsa, operatè a zetwal andedan nan fonksyon m 'yo, 1052 00:46:48,000 --> 00:46:51,700 pa andedan nan lis la paramèt, vle di ou ale nan adrès sa yo 1053 00:46:51,700 --> 00:46:54,490 ak aktyèlman chanje valè sa yo. 1054 00:46:54,490 --> 00:46:56,500 >> Se konsa, sa fè foto a kounye a gade tankou pito. 1055 00:46:56,500 --> 00:47:03,250 Bon, si olye pou m ap pase nan pou yon ak b pa 1 ak 2-- 1056 00:47:03,250 --> 00:47:05,790 Mwen aktyèlman bezwen ajoute yon lòt definisyon isit la. 1057 00:47:05,790 --> 00:47:09,030 Se konsa, ta kwè ke sa a moso nan memwa se nan kote 10. 1058 00:47:09,030 --> 00:47:12,960 >> Sa a se nan pozisyon 11, men sa a se yon ti jan nan yon senplifikasyon, 1059 00:47:12,960 --> 00:47:18,900 Mwen kounye a gen de chwa pou m pase x ak y oswa mwen pase adrès yo? 1060 00:47:18,900 --> 00:47:22,500 Si m 'pase yo adrès tankou sa a, mwen jis 1061 00:47:22,500 --> 00:47:25,390 koulye a bezwen aplike swap pou chak kòd la vèt 1062 00:47:25,390 --> 00:47:29,080 se konsa ke lè li wè yon ak lè li wè yon b, li pa jis kopi a ak b 1063 00:47:29,080 --> 00:47:30,540 yo epi li deplase lèt la ak ji zoranj. 1064 00:47:30,540 --> 00:47:32,664 Lèt ak zoranj ji a metafò kounye a kase desann, 1065 00:47:32,664 --> 00:47:35,060 paske sa yo se tas nan kat likid ak pa. 1066 00:47:35,060 --> 00:47:37,750 Nou olye bezwen ale nan adrès 10 epi nou 1067 00:47:37,750 --> 00:47:42,420 bezwen ale nan adrès 11, ak Lè sa a, fè ki lojik échanjé. 1068 00:47:42,420 --> 00:47:45,580 >> Se konsa, lojik la se menm bagay la, men nou bezwen yon fason yon ti kras diferan 1069 00:47:45,580 --> 00:47:47,160 a aksè moun varyab. 1070 00:47:47,160 --> 00:47:52,400 Se konsa, nan fen a, ki sa a pwogram gen yo gade tankou se sa a. 1071 00:47:52,400 --> 00:47:56,610 Nan swap.c literalman kopye ak kopye vèsyon an vèt. 1072 00:47:56,610 --> 00:47:58,450 Men, mwen bezwen fè yon sèl chanjman. 1073 00:47:58,450 --> 00:48:00,180 Li pa ase jis chanje swap. 1074 00:48:00,180 --> 00:48:03,830 Ki lòt liy nan Kòd mwen bezwen chanje? 1075 00:48:03,830 --> 00:48:04,330 Yeah? 1076 00:48:04,330 --> 00:48:05,770 >> ODYANS: Ki kote li pran agiman yo. 1077 00:48:05,770 --> 00:48:07,603 >> DAVID J. Malan: Ki kote li pran agiman li yo. 1078 00:48:07,603 --> 00:48:09,985 Se konsa, si mwen woulo liv jiska prensipal yo, mwen pa ka jis pase nan x ak y, 1079 00:48:09,985 --> 00:48:12,820 epi, mwen te pwomèt, dènye a moso nan nouvo sentaks jodi a. 1080 00:48:12,820 --> 00:48:17,200 Mwen bezwen pase nan pa x ak y men adrès ki nan x ak y. 1081 00:48:17,200 --> 00:48:20,400 Apre sa, li vire soti, senbòl la ki otè yo nan C te chwazi 1082 00:48:20,400 --> 00:48:23,860 se si ou sèvi ak yon comercial isit la, nou pa dwe konfonn ak comercial a lojik, 1083 00:48:23,860 --> 00:48:27,130 si ou sèvi ak yon comercial isit la ak yon comercial isit la, 1084 00:48:27,130 --> 00:48:29,570 sa a figi soti pou ou, sa ki nan adrès ki nan x, 1085 00:48:29,570 --> 00:48:31,740 petèt li nan 10, sa ki nan la adrès nan y, petèt li nan 1086 00:48:31,740 --> 00:48:35,400 11, epi pase sa yo ki nan pito. 1087 00:48:35,400 --> 00:48:37,210 >> Se konsa, yon anpil yo absòbe tout nan yon fwa. 1088 00:48:37,210 --> 00:48:40,190 Men, kite a wè kounye a byen vit nan nou an rete kat minit 1089 00:48:40,190 --> 00:48:42,150 kote bagay sa yo ka ale courbe. 1090 00:48:42,150 --> 00:48:45,120 Apre sa, kòm yon sou kote, aktyèlman Mwen te pran foto sa a, 1091 00:48:45,120 --> 00:48:46,920 TF pran foto sa a yon ane oswa de de sa. 1092 00:48:46,920 --> 00:48:49,190 Se konsa, sa a se kwen an tounen a Eliot Gastronomie Hall. 1093 00:48:49,190 --> 00:48:52,310 Endikasyon yo se petèt pi di a sijè ke nou kouvri nan CS50. 1094 00:48:52,310 --> 00:48:54,810 Se konsa, si ou enkyete sòt nan nan pant, se tankou petèt li nan 1095 00:48:54,810 --> 00:48:56,770 plis nan yon baton Hockey tankou sa a, reyalize 1096 00:48:56,770 --> 00:49:00,160 nou ap kalite apochan yon pikwa nan tèm de konpleksite nan filozofik. 1097 00:49:00,160 --> 00:49:02,300 >> Apre sa, mwen pote yo moute sa a foto, paske mwen fè sèman 1098 00:49:02,300 --> 00:49:05,920 bay Bondye, nan sezon otòn 1996, lè m 'te pran CS50 ak parèy ansèyman mwen, 1099 00:49:05,920 --> 00:49:09,620 Nishat Mehta, li chita m 'desann nan la kwen nan Eliot D. Hall la sou manje midi, 1100 00:49:09,620 --> 00:49:12,330 oswa dine, oswa yon bagay eseye pote m 'sekou konprann endikasyon. 1101 00:49:12,330 --> 00:49:16,520 Lè sa a se kote mwen te semèn apre li te prezante nan konferans lè 1102 00:49:16,520 --> 00:49:18,170 Mwen finalman konprann endikasyon. 1103 00:49:18,170 --> 00:49:20,590 Apre sa, mwen se espwa ke sa a pral klike lwen pi bonè pou ou. 1104 00:49:20,590 --> 00:49:23,540 Men, reyalize sa a absoliman nan mitan sijè ki pi plis sofistike 1105 00:49:23,540 --> 00:49:24,420 nou te gade. 1106 00:49:24,420 --> 00:49:25,819 Men, li la nan mitan ki pi pwisan an. 1107 00:49:25,819 --> 00:49:28,860 Men, lè ou jwenn li, li vrèman tout jis ale nan finalman vini ansanm. 1108 00:49:28,860 --> 00:49:31,460 Se konsa, rès asire li pa fè sa bezwen tout koule nan jodi a. 1109 00:49:31,460 --> 00:49:32,980 >> Se konsa, isit la nan pwogram ki sot pase a nou ap ale nan gade nan. 1110 00:49:32,980 --> 00:49:35,605 Epi nou ap ale nan fini ak yon rapid twa minit nan claymation 1111 00:49:35,605 --> 00:49:37,030 fèt pa zanmi nou an, Nick Parlante. 1112 00:49:37,030 --> 00:49:41,440 Isit la nan yon pwogram, ki sou de nan tèt liy deklare yon x varyab ak y. 1113 00:49:41,440 --> 00:49:44,780 Tou de nan yo ki adrès a nonm antye relatif, AKA endikasyon. 1114 00:49:44,780 --> 00:49:48,125 Nou Lè sa a, asiyen ase memwa nan magazen yon int 1115 00:49:48,125 --> 00:49:51,344 epi estoke adrès la nan ki memwa nan x. 1116 00:49:51,344 --> 00:49:53,260 Se konsa, li nan menm pi senp pase egzanp lan anvan. 1117 00:49:53,260 --> 00:49:56,100 Ban m 'kat bytes nan memwa, sa a, se gwosè a nan yon int, 1118 00:49:56,100 --> 00:49:58,000 , li mete ke nan adrès x. 1119 00:49:58,000 --> 00:50:01,070 Liy sa a isit la vle di ale nan adrès la nan x 1120 00:50:01,070 --> 00:50:05,270 , li mete siyifikasyon an nan lavi, nimewo a 42 la. 1121 00:50:05,270 --> 00:50:07,710 Men, liy sa a enkyetid m '. 1122 00:50:07,710 --> 00:50:12,620 Star y vle di ale nan adrès la nan y, epi li mete nimewo a malheureux 13 la. 1123 00:50:12,620 --> 00:50:15,780 Poukisa li danjere, nan pwen sa a nan story-- yo kwake rapidman di 1124 00:50:15,780 --> 00:50:17,980 nan kèk minit diminisyon nou an isit lan-- poukisa li move 1125 00:50:17,980 --> 00:50:19,660 pou mwen pou m di, ale nan adrès la nan y? 1126 00:50:19,660 --> 00:50:21,077 >> ODYANS: pa Ou gen [fèbl]. 1127 00:50:21,077 --> 00:50:22,910 DAVID J. Malan: Mwen pa gen mete anyen nan y. 1128 00:50:22,910 --> 00:50:25,520 Se konsa, ki sa ki valè a nan y, nan pwen sa a nan istwa a? 1129 00:50:25,520 --> 00:50:26,570 Nou pa gen okenn lide. 1130 00:50:26,570 --> 00:50:29,190 Li nan kèk valè fatra ak ni Binky konnen. 1131 00:50:29,190 --> 00:50:32,532 Si nou te kapab fini sou nòt sa a. 1132 00:50:32,532 --> 00:50:34,832 >> [VIDEO lèktur] 1133 00:50:34,832 --> 00:50:36,500 >> -Hey, Binky, reveye. 1134 00:50:36,500 --> 00:50:39,140 Li lè pou plezi konsèy. 1135 00:50:39,140 --> 00:50:40,210 >> -Ki Nan sa? 1136 00:50:40,210 --> 00:50:41,690 Aprann sou endikasyon? 1137 00:50:41,690 --> 00:50:43,570 Oh, chokola. 1138 00:50:43,570 --> 00:50:46,600 >> -Bon, Jwenn te kòmanse, mwen devine nou ap ale nan bezwen yon endikasyon koup. 1139 00:50:46,600 --> 00:50:47,380 >> -OK. 1140 00:50:47,380 --> 00:50:51,120 Kòd sa a repati de pwent sa ki ka lonje dwèt sou nonm antye relatif. 1141 00:50:51,120 --> 00:50:53,557 >> -OK, Byen mwen wè nan de endikasyon, men yo 1142 00:50:53,557 --> 00:50:55,140 pa sanble yo gen montre nan anyen. 1143 00:50:55,140 --> 00:50:55,970 >> -ki A dwat. 1144 00:50:55,970 --> 00:50:58,100 Okòmansman endikasyon pa lonje dwèt sou anyen. 1145 00:50:58,100 --> 00:51:00,950 Bagay sa yo yo lonje dwèt sou yo rele pointees ak anviwònman yo moute 1146 00:51:00,950 --> 00:51:02,330 se yon etap ki apa a. 1147 00:51:02,330 --> 00:51:03,210 >> -Oh, Dwa, dwa. 1148 00:51:03,210 --> 00:51:03,940 Mwen te konnen sa. 1149 00:51:03,940 --> 00:51:05,730 Pointees yo se apa a. 1150 00:51:05,730 --> 00:51:08,310 Se konsa, kouman ou asiyen yon pointee? 1151 00:51:08,310 --> 00:51:11,960 >> -OK, Byen sa a rezèvè Kòd yon nouvo pointee nonb antye relatif, 1152 00:51:11,960 --> 00:51:15,050 ak sa a ansanm pati x nan pwen nan li. 1153 00:51:15,050 --> 00:51:16,240 >> -Hey, Ki sanble pi bon. 1154 00:51:16,240 --> 00:51:17,743 Se konsa, fè l 'fè yon bagay. 1155 00:51:17,743 --> 00:51:23,580 >> -OK, Mwen pral dèreferans x la konsèy nan magazen nimewo a 42 nan pointee li yo. 1156 00:51:23,580 --> 00:51:27,130 Pou sa jwe fent, mwen pral bezwen m ' majik ralonj nan dereferencing. 1157 00:51:27,130 --> 00:51:30,200 >> Ralonj majik -Ou nan dereferencing? 1158 00:51:30,200 --> 00:51:32,310 Uh, ki, sa se gwo. 1159 00:51:32,310 --> 00:51:34,270 >> -Sa A se sa kòd la sanble. 1160 00:51:34,270 --> 00:51:35,970 Mwen pral jis mete kanpe nimewo a and-- 1161 00:51:35,970 --> 00:51:37,070 >> [POP SOUND] 1162 00:51:37,070 --> 00:51:39,140 >> -Hey, Gade gen li ale. 1163 00:51:39,140 --> 00:51:43,980 Se konsa, fè yon dèreferans sou x swiv flèch la jwenn aksè nan pointee li yo. 1164 00:51:43,980 --> 00:51:46,150 Nan ka sa a, nan magazen 42 an la. 1165 00:51:46,150 --> 00:51:50,700 Hey, eseye lè l sèvi avèk li nan magazen nimewo a 13 nan lòt konsèy la, y. 1166 00:51:50,700 --> 00:51:51,840 >> -OK. 1167 00:51:51,840 --> 00:51:56,270 Mwen pral jis ale sou isit la yo y, epi pou yo jwenn nimewo 13 seri a leve. 1168 00:51:56,270 --> 00:52:00,380 Lè sa a, pran ralonj la dereferencing ak just-- 1169 00:52:00,380 --> 00:52:01,646 >> [SONNÈT SOUND] 1170 00:52:01,646 --> 00:52:04,080 >> -Oh, Hey ki pa t 'travay. 1171 00:52:04,080 --> 00:52:06,470 Di, en, Binky, mwen pa fè sa panse dereferencing 1172 00:52:06,470 --> 00:52:10,850 y se yon bon lide, paske mete moute pointee la se yon etap ki apa a. 1173 00:52:10,850 --> 00:52:12,480 Apre sa, mwen pa panse ke nou tout tan tout tan te fè li. 1174 00:52:12,480 --> 00:52:14,620 >> -Hmm, Bon pwen. 1175 00:52:14,620 --> 00:52:19,810 >> -Yeah, Nou resevwa lajan konsèy, y la, men nou pa janm mete l 'nan pwen nan yon pointee. 1176 00:52:19,810 --> 00:52:21,590 >> -Hmm, Trè vijilan. 1177 00:52:21,590 --> 00:52:23,215 -Hey, W ap chèche bon la, Binky. 1178 00:52:23,215 --> 00:52:26,390 Èske ou ka fikse li pou ke pwen y pointee a menm jan ak x. 1179 00:52:26,390 --> 00:52:29,290 >> -Sure, Mwen sèvi ak ralonj majik mwen nan plasman konsèy. 1180 00:52:29,290 --> 00:52:31,970 >> Ki-Eske pral gen yon pwoblèm, tankou anvan an? 1181 00:52:31,970 --> 00:52:33,790 >> -Pa Gen, sa a pa manyen pointees yo. 1182 00:52:33,790 --> 00:52:35,840 Li jis chanje yon sèl konsèy A ak pwen nan menm bagay-- nan 1183 00:52:35,840 --> 00:52:36,465 >> [Eklate SOUND] 1184 00:52:36,465 --> 00:52:37,450 --as lòt. 1185 00:52:37,450 --> 00:52:38,440 >> -Oh, Mwen wè. 1186 00:52:38,440 --> 00:52:41,200 Koulye a, y pwen nan plas la menm jan ak x. 1187 00:52:41,200 --> 00:52:42,950 Se konsa, rete tann, kounye a y se fiks yo. 1188 00:52:42,950 --> 00:52:44,110 Li te gen yon pointee. 1189 00:52:44,110 --> 00:52:47,779 Se konsa, ou ka eseye ralonj la nan dereferencing ankò nan voye 13 sou la. 1190 00:52:47,779 --> 00:52:51,110 >> -Oh, OK, isit la ale. 1191 00:52:51,110 --> 00:52:52,330 >> -Hey, Gade nan sa. 1192 00:52:52,330 --> 00:52:53,570 Koulye a, dereferencing travay sou y. 1193 00:52:53,570 --> 00:52:57,900 Epi paske endikasyon yo ap pataje ke yon moun pointee yo, yo tou de wè 13 la. 1194 00:52:57,900 --> 00:52:59,952 >> -Yeah, Pataje, en, kèlkeswa sa. 1195 00:52:59,952 --> 00:53:01,535 Se konsa, nou pral chanje kote kounye a? 1196 00:53:01,535 --> 00:53:03,730 >> -Oh, Gade nou ap soti nan tan. 1197 00:53:03,730 --> 00:53:04,660 >> -But-- 1198 00:53:04,660 --> 00:53:06,520 >> -Jis Sonje twa règ yo konsèy. 1199 00:53:06,520 --> 00:53:09,550 Nimewo 1, estrikti nan debaz se ke ou gen yon konsèy, 1200 00:53:09,550 --> 00:53:11,630 epi li lonje dwèt sou nan yon pointee. 1201 00:53:11,630 --> 00:53:13,740 Men, konsèy la ak pointee yo apa a. 1202 00:53:13,740 --> 00:53:15,620 Ak erè an komen se yo mete kanpe yon konsèy 1203 00:53:15,620 --> 00:53:18,000 men yo bliye bay li yon pointee. 1204 00:53:18,000 --> 00:53:21,170 >> Nimewo 2, konsèy dereferencing kòmanse nan konsèy la 1205 00:53:21,170 --> 00:53:24,020 ak swiv flèch li yo sou jwenn aksè nan pointee li yo. 1206 00:53:24,020 --> 00:53:27,815 Kòm nou tout konnen, sa a sèlman travay si gen se yon pointee, ki kalite vin tounen 1207 00:53:27,815 --> 00:53:29,260 ak règ nimewo 1. 1208 00:53:29,260 --> 00:53:31,990 >> Nimewo 3, konsèy plasman pran yon sèl konsèy 1209 00:53:31,990 --> 00:53:35,330 ak chanjman li nan lonje dwèt sou nan menm pointee kòm yon lòt konsèy. 1210 00:53:35,330 --> 00:53:37,150 Se konsa, apre plasman an, de pwent yo 1211 00:53:37,150 --> 00:53:40,927 pral pwen nan menm pointee a, pafwa ki yo rele pataje. 1212 00:53:40,927 --> 00:53:42,510 Epi sa a, tout gen nan li, vrèman. 1213 00:53:42,510 --> 00:53:43,130 Bye-bye kounye a. 1214 00:53:43,130 --> 00:53:43,475 >> [END lèktur] 1215 00:53:43,475 --> 00:53:44,830 >> DAVID J. Malan: Sa a li pou CS50. 1216 00:53:44,830 --> 00:53:46,246 Mèsi a Pwofesè Nick Parlante. 1217 00:53:46,246 --> 00:53:47,730 Nou pral wè ou an semèn pwochèn. 1218 00:53:47,730 --> 00:53:51,706 1219 00:53:51,706 --> 00:53:56,435 >> [ELEKTWONIK MIZIK jwe] 1220 00:53:56,435 --> 00:57:22,775