1 00:00:00,000 --> 00:00:11,200 2 00:00:11,200 --> 00:00:12,580 >> DAVID Malan: Tout dwa, akeyi tounen. 3 00:00:12,580 --> 00:00:13,290 Sa a se CS50. 4 00:00:13,290 --> 00:00:15,130 Sa a se kòmanse nan semèn sèt. 5 00:00:15,130 --> 00:00:18,890 Se konsa, li te yon pandan y ap, se konsa mwen te panse nou ta pran yon toune toubouyon nan kote nou 6 00:00:18,890 --> 00:00:20,760 sispann ak kote n ap kounye a prale. 7 00:00:20,760 --> 00:00:23,310 >> Se konsa, bagay sa a isit la ka gen lakòz kèk Yanguas an premye. 8 00:00:23,310 --> 00:00:27,680 Men, èspere ke, w ap kòmanse aklimate a ki sa sa a vle di isit la - 9 00:00:27,680 --> 00:00:32,670 etwal ki reprezante yon konsèy, ki se jis sa, an tèm plis pwofàn la? 10 00:00:32,670 --> 00:00:33,400 Se konsa, li nan yon lari yo. 11 00:00:33,400 --> 00:00:35,490 >> Se konsa, li adrès la nan yon bagay nan memwa. 12 00:00:35,490 --> 00:00:38,260 Epi nou te kòmanse kale tounen kouch yo yon koup la semèn de sa, bagay sa yo tankou 13 00:00:38,260 --> 00:00:41,800 GetString ak lòt fonksyon sa yo tout tan sa a yo te retounen 14 00:00:41,800 --> 00:00:46,010 adrès de bagay sa yo nan memwa, tankou nan adrès nan karaktè a an premye nan 15 00:00:46,010 --> 00:00:46,990 kèk sekans. 16 00:00:46,990 --> 00:00:50,360 >> Se konsa, nou menm tou nou prezante valgrind, ki ou pral kòmanse pou itilize pou pwoblèm sa a 17 00:00:50,360 --> 00:00:53,380 mete, sitou pou pwochen an pwoblèm mete yo tou. 18 00:00:53,380 --> 00:00:54,980 Men, valgrind fè sa pou nou? 19 00:00:54,980 --> 00:00:57,520 20 00:00:57,520 --> 00:01:01,020 Li chèk pou fwit memwa, epi li tou chèk pou abi nan memwa. 21 00:01:01,020 --> 00:01:05,890 >> Li ka, ak kèk pwobabilite, detekte si Kòd ou a pral nan manyen memwa 22 00:01:05,890 --> 00:01:07,100 ke li tou senpleman pa ta dwe. 23 00:01:07,100 --> 00:01:10,410 Se konsa, pa nesesèman yon fwit, men si ou ale pi lwen pase limit yo nan kèk 24 00:01:10,410 --> 00:01:14,730 etalaj, epi ou aktyèlman kouri valgrind ak pwovoke konpòtman pandan y ap 25 00:01:14,730 --> 00:01:17,870 valgrind ap kouri nan pwogram ou an kouri andedan nan li, ou pral jwenn 26 00:01:17,870 --> 00:01:21,460 mesaj tankou sa a - "valab ekri nan gwosè 4, "ki, sonje yon koup la 27 00:01:21,460 --> 00:01:25,880 semèn de sa vle di ke mwen te gen aksidantèlman renmen sou yon sèl Int twò lwen 28 00:01:25,880 --> 00:01:27,250 pi lwen pase limit yo nan yon etalaj. 29 00:01:27,250 --> 00:01:30,790 Se konsa, gwosè 4 vle di isit la gwosè a nan ki Int patikilye. 30 00:01:30,790 --> 00:01:35,260 >> Se konsa, pran rasirans nan lefèt ke pwodiksyon valgrind a, fòma a nan li, 31 00:01:35,260 --> 00:01:36,170 se jis atròs. 32 00:01:36,170 --> 00:01:40,180 Li nan reyèlman difisil yo wè nan dezòd la pou enfòmasyon an enteresan. 33 00:01:40,180 --> 00:01:42,910 Se konsa, sa nou te fè isit la se jis ekstrè kèk nan koup la ki gen plis 34 00:01:42,910 --> 00:01:43,850 liy ki enteresan. 35 00:01:43,850 --> 00:01:46,760 Men, reyalize ke 80% nan la valgrind pwodiksyon a pwal yon ti jan nan yon 36 00:01:46,760 --> 00:01:47,650 distraksyon. 37 00:01:47,650 --> 00:01:52,820 >> Jis gade pou modèl tankou sa yo - valab dwat, valab li, 40 bytes 38 00:01:52,820 --> 00:01:56,690 ak kèk nimewo nan blòk yo definitivman pèdi, mo kle tankou sa. 39 00:01:56,690 --> 00:02:01,920 Ak sa ki ou pral èspere ke wè se kèk kalite tras nan sa ki fonksyone nan 40 00:02:01,920 --> 00:02:03,340 erè se aktyèlman pous 41 00:02:03,340 --> 00:02:07,195 Nan ka sa a isit la, nan sa ki liy nan Kòd mwen te erè a aparamman? 42 00:02:07,195 --> 00:02:09,729 43 00:02:09,729 --> 00:02:14,130 >> 26 nan yon dosye rele memory.c, ki te egzanp lan nou te jwe ak 44 00:02:14,130 --> 00:02:14,890 nan moman an. 45 00:02:14,890 --> 00:02:16,460 Se konsa, li pwobableman pa nan malok. 46 00:02:16,460 --> 00:02:18,630 Li te pwobableman nan Kòd mwen pito. 47 00:02:18,630 --> 00:02:20,910 Se konsa, nou pral wè sa a ankò ak ankò anvan lontan. 48 00:02:20,910 --> 00:02:24,080 >> Se konsa, skanf, sa a te vini nan yon koup nan fòm konsa byen lwen. 49 00:02:24,080 --> 00:02:26,410 Nou te wè sskanf yon ti tan. 50 00:02:26,410 --> 00:02:28,330 Li te yon bagay yon kantite ou plonje nan nan ou 51 00:02:28,330 --> 00:02:29,535 preparasyon pou egzamen an. 52 00:02:29,535 --> 00:02:33,130 Men, skanf se aktyèlman sa CS50 nan bibliyotèk a te lè l sèvi avèk anba a 53 00:02:33,130 --> 00:02:36,560 kapo pou kèk tan yo nan lòd l ka jwenn dizon soti nan itilizatè a. 54 00:02:36,560 --> 00:02:40,420 >> Pou egzanp, si mwen demenaje sou nan CS50 nan aparèy isit la, kite m 'louvri moute yon 55 00:02:40,420 --> 00:02:45,315 egzanp jodi a ke yo rele skanf-0.c Lè li nan senp super. 56 00:02:45,315 --> 00:02:46,590 Se jis nan yon liy kèk nan kòd. 57 00:02:46,590 --> 00:02:50,880 Men, li demontre vrèman ki jan getInt ki te travay tout tan sa a. 58 00:02:50,880 --> 00:02:54,710 >> Nan pwogram sa a isit la, nan liy 16 , Avi ke mwen deklare yon Int. 59 00:02:54,710 --> 00:02:57,270 Se konsa, pa gen okenn endikasyon, pa gen anyen majik la, jis yon Int. 60 00:02:57,270 --> 00:03:00,330 Lè sa a, nan liy 17, mwen Èd memwa a itilizatè pou yon nimewo, tanpri. 61 00:03:00,330 --> 00:03:02,930 Lè sa a, nan 18 an reta, mwen sèvi ak skanf isit la. 62 00:03:02,930 --> 00:03:06,910 Apre sa, mwen espesifye, kalite tankou printf, ke mwen ap tann quote 63 00:03:06,910 --> 00:03:08,110 unquote pousan mwen. 64 00:03:08,110 --> 00:03:10,920 >> Se konsa, pousan mwen, nan kou, vle di yon Int. 65 00:03:10,920 --> 00:03:14,580 Men, remake sa dezyèm lan agiman skanf se. 66 00:03:14,580 --> 00:03:17,350 Kouman ou ta dekri dezyèm lan agiman apre vigil la? 67 00:03:17,350 --> 00:03:19,450 Ki sa ki se sa? 68 00:03:19,450 --> 00:03:20,670 >> Li nan adrès ki nan x. 69 00:03:20,670 --> 00:03:25,490 Se konsa, sa a se itil paske lè yo bay skanf ak adrès la nan x, ki sa ki 70 00:03:25,490 --> 00:03:29,560 ap òganize pou pèmèt ke fonksyon fè? 71 00:03:29,560 --> 00:03:33,010 Pa sèlman ale la, men tou, fè sa? 72 00:03:33,010 --> 00:03:34,060 >> Fè yon chanjman nan li. 73 00:03:34,060 --> 00:03:38,080 Paske ou ka ale la, li sòt de tankou yon kat jeyografik nan yon kote nan memwa. 74 00:03:38,080 --> 00:03:41,900 Se konsa, depi w bay skanf, oswa nenpòt ak sa yo kat jeyografik yon, ki 75 00:03:41,900 --> 00:03:45,840 fonksyon ka ale la, epi yo pa sèlman gade nan valè a, men li kapab tou 76 00:03:45,840 --> 00:03:49,670 chanje sa valè, ki se itil si bi pou yo nan lavi nan skanf se 77 00:03:49,670 --> 00:03:53,060 eskane opinyon soti nan itilizatè a, espesyalman soti nan klavye la. 78 00:03:53,060 --> 00:03:57,830 Men, f a vle di formate, jis tankou printf, f a vle di yon formate 79 00:03:57,830 --> 00:03:58,930 fisèl ke ou vle ekri ak lèt ​​detache. 80 00:03:58,930 --> 00:04:04,430 >> Se konsa, nan kout, sa a 18 liy tou senpleman di, eseye li yon Int soti nan la nan itilizatè 81 00:04:04,430 --> 00:04:10,420 klavye ak magazen li andedan nan x, nan kèlkeswa adrès x k ap pase nan ap viv nan. 82 00:04:10,420 --> 00:04:14,860 Lè sa a, alafen, liy 19 jis di, mèsi pou Int a, nan ka sa a. 83 00:04:14,860 --> 00:04:15,940 >> Se konsa, kite m 'ale pi devan epi fè sa-a. 84 00:04:15,940 --> 00:04:18,570 Se konsa, fè skanf 0. 85 00:04:18,570 --> 00:04:20,130 Kite m 'ale pi devan epi rale pous 86 00:04:20,130 --> 00:04:22,960 Mwen pral ale epi kouri sa a ak pwen koupe skanf 0. 87 00:04:22,960 --> 00:04:24,020 Nimewo, tanpri? 88 00:04:24,020 --> 00:04:24,720 50. 89 00:04:24,720 --> 00:04:25,730 Mèsi pou 50 an. 90 00:04:25,730 --> 00:04:27,270 Se konsa, li byen senp. 91 00:04:27,270 --> 00:04:28,160 >> Koulye a, ki sa ki li pa fè la a? 92 00:04:28,160 --> 00:04:29,940 Li pa nan fè yon pakèt tout nan kont kouran erè. 93 00:04:29,940 --> 00:04:33,000 Pou egzanp, si mwen pa kowopere, epi mwen pa tape nan yon kantite, men 94 00:04:33,000 --> 00:04:37,860 olye pou m 'ekri yon bagay tankou "hello," sa se sèlman kalite etranj. 95 00:04:37,860 --> 00:04:41,130 Se konsa, youn nan bagay ki CS50 nan bibliyotèk ki te fè pou nou pou kèk 96 00:04:41,130 --> 00:04:43,440 tan se ke reprompting ak reprompting. 97 00:04:43,440 --> 00:04:49,320 >> Sonje nan fraz rekoumanse te nan cs50.c, e ke sa a rezon ki fè getInt nan 98 00:04:49,320 --> 00:04:51,670 bibliyotèk la CS50 se aktyèlman yon antye pakèt moun sou liy ki long, paske nou ap 99 00:04:51,670 --> 00:04:53,190 tcheke pou bagay estipid tankou sa a. 100 00:04:53,190 --> 00:04:55,730 Èske itilizatè a pa bay nou, an reyalite, yon Int? 101 00:04:55,730 --> 00:04:57,910 Èske li oswa li te ban nou yon bagay tankou yon lèt alfabetik? 102 00:04:57,910 --> 00:05:01,410 Si se konsa, nou vle detekte ki ak rele nan yo. 103 00:05:01,410 --> 00:05:03,915 >> Men, bagay sa yo jwenn plis enteresan nan egzanp sa a kap vini an. 104 00:05:03,915 --> 00:05:09,840 Si m 'ale nan skanf 1.c-, ki sa ki se youn nan bagay ki fondamantalman chanje nan 105 00:05:09,840 --> 00:05:11,135 egzanp sa a kap vini yo? 106 00:05:11,135 --> 00:05:13,690 107 00:05:13,690 --> 00:05:16,010 Mwen lè l sèvi avèk Char *, nan kou, olye pou yo Int. 108 00:05:16,010 --> 00:05:19,210 >> Se konsa, sa a se enteresan, paske * Char, sonje, se reyèlman jis nan 109 00:05:19,210 --> 00:05:20,190 menm bagay kòm fisèl. 110 00:05:20,190 --> 00:05:23,840 Se konsa, li santi l tankou petèt sa a se yon super senp aplikasyon GetString. 111 00:05:23,840 --> 00:05:26,010 Men, mwen te kale tounen kouch nan nan bibliyotèk la CS50, se konsa mwen 112 00:05:26,010 --> 00:05:27,550 rele sa a * Char kounye a. 113 00:05:27,550 --> 00:05:30,070 Se konsa, kite a wè ki kote, si nenpòt kote, n 'al jwenn sa ki mal. 114 00:05:30,070 --> 00:05:30,840 >> Liy 17 - 115 00:05:30,840 --> 00:05:33,950 Mwen ankò di, tanpri, ban m 'yon bagay, nan ka sa a, yon kòd. 116 00:05:33,950 --> 00:05:37,940 Lè sa a, nan liy kap vini an, mwen rele skanf, ankò, bay li yon kòd fòma, 117 00:05:37,940 --> 00:05:39,310 men sa a nan pousan tan. 118 00:05:39,310 --> 00:05:41,900 Lè sa a, tan sa a, mwen se bay li tanpon. 119 00:05:41,900 --> 00:05:43,550 >> Koulye a, avi, mwen pa lè l sèvi avèk comercial la. 120 00:05:43,550 --> 00:05:47,120 Men, poukisa se ke pwobableman OK isit la? 121 00:05:47,120 --> 00:05:49,760 Paske sa ki pezib deja? 122 00:05:49,760 --> 00:05:50,770 Li nan deja yon konsèy. 123 00:05:50,770 --> 00:05:51,650 Li nan deja yon adrès. 124 00:05:51,650 --> 00:05:54,510 >> Li kite yo sa a mo "konfonn," kite m ' jis rele li s, pou egzanp, pou 125 00:05:54,510 --> 00:05:55,050 senplisite. 126 00:05:55,050 --> 00:05:58,250 Men, mwen te rele l 'tanpon paske se nan jeneral, nan pwogram, si ou gen yon 127 00:05:58,250 --> 00:06:02,130 ti moso nan memwa, ki yon kòd reyèlman jis ki, ou ta ka rele li yon tanpon. 128 00:06:02,130 --> 00:06:04,460 Li nan yon kote ki nan magazen enfòmasyon. 129 00:06:04,460 --> 00:06:07,400 >> Menm jan ak bagay sa yo tankou YouTube, lè yo ap tampon, se konsa pale, ki 130 00:06:07,400 --> 00:06:10,270 jis vle di li nan Téléchargez Bits soti nan entènèt la epi estoke yo nan yon 131 00:06:10,270 --> 00:06:14,160 lokal etalaj, yon moso lokal nan memwa pou ke ou ka gade li pita san yo pa 132 00:06:14,160 --> 00:06:16,830 li sote oswa pann sou ou pandan y ap jwe tounen. 133 00:06:16,830 --> 00:06:20,930 >> Se konsa, gen nan yon pwoblèm isit la menm si, paske mwen di skanf, espere yon 134 00:06:20,930 --> 00:06:22,320 fisèl soti nan itilizatè a. 135 00:06:22,320 --> 00:06:24,410 Isit la nan adrès ki nan yon ti moso nan memwa. 136 00:06:24,410 --> 00:06:26,180 Mete ki fisèl la. 137 00:06:26,180 --> 00:06:31,230 Poukisa se sa mare bay nou pwoblèm, menm si? 138 00:06:31,230 --> 00:06:33,490 >> Ki sa ki nan sa? 139 00:06:33,490 --> 00:06:35,510 Èske mwen pèmèt yo gen aksè nan pati sa a nan memwa? 140 00:06:35,510 --> 00:06:36,250 Ou konnen, mwen pa konnen. 141 00:06:36,250 --> 00:06:39,210 Paske gen tanpon te initialisé anyen? 142 00:06:39,210 --> 00:06:39,820 Pa vrèman. 143 00:06:39,820 --> 00:06:43,090 Se konsa, li a ki sa nou ve yo te rele yon fatra valè, ki 144 00:06:43,090 --> 00:06:44,040 se pa di yon mo fòmèl. 145 00:06:44,040 --> 00:06:49,200 Li jis vle di nou pa gen okenn lide ki sa Bits yo andedan nan kat bytes yo ki 146 00:06:49,200 --> 00:06:51,240 Mwen te resevwa lajan kòm tanpon. 147 00:06:51,240 --> 00:06:52,450 >> Mwen pa yo te rele malok. 148 00:06:52,450 --> 00:06:53,940 Mwen te definitivman pa rele GetString. 149 00:06:53,940 --> 00:06:56,380 Se konsa, moun ki konnen sa ki aktyèlman andedan nan tanpon? 150 00:06:56,380 --> 00:07:00,550 Men, di skanf je fèmen, ale la , li mete tou sa itilizatè a tape. 151 00:07:00,550 --> 00:07:04,460 >> Se konsa, sa se kapab lakòz nan Kòd nou si nou kouri li? 152 00:07:04,460 --> 00:07:05,700 Pwobableman yon segfault. 153 00:07:05,700 --> 00:07:07,970 Petèt pa yo, men pwobableman yon segfault. 154 00:07:07,970 --> 00:07:10,620 Apre sa, mwen di petèt pa paske pafwa ou fè sa, pafwa 155 00:07:10,620 --> 00:07:11,380 ou pa jwenn yon segfault. 156 00:07:11,380 --> 00:07:14,280 Pafwa ou jis jwenn chans, men li nan Alòske yo pral 157 00:07:14,280 --> 00:07:15,340 yon ensèk nan pwogram nou an. 158 00:07:15,340 --> 00:07:17,060 >> Se konsa, kite m 'ale pi devan epi pou konpile sa a. 159 00:07:17,060 --> 00:07:18,280 Mwen pral fè l 'fason lekòl la fin vye granmoun. 160 00:07:18,280 --> 00:07:23,825 Se konsa, priz sonnen 0, skanf-1, skanf-1.c, antre. 161 00:07:23,825 --> 00:07:24,720 Wouch, tou fin vye granmoun lekòl la. 162 00:07:24,720 --> 00:07:26,550 Ann wè. 163 00:07:26,550 --> 00:07:28,440 Ki kote mwen te ale? 164 00:07:28,440 --> 00:07:29,700 Oh, Char tanpon *. 165 00:07:29,700 --> 00:07:33,595 166 00:07:33,595 --> 00:07:35,130 Oh, di ou mèsi - 167 00:07:35,130 --> 00:07:36,930 Save, OK - 168 00:07:36,930 --> 00:07:37,690 fin vye granmoun lekòl la. 169 00:07:37,690 --> 00:07:38,900 Tout dwa, li te gen yon ti tan. 170 00:07:38,900 --> 00:07:41,720 >> Se konsa, mwen te jis sove dosye a apre yo fin fè ke pou yon ti tan 171 00:07:41,720 --> 00:07:42,700 chanje yon ti moman de sa. 172 00:07:42,700 --> 00:07:46,090 Koulye a, mwen te konpile li manyèlman ak sonnen. 173 00:07:46,090 --> 00:07:49,500 Epi, koulye a mwen pral ale pi devan epi kouri skanf-1, Antre. 174 00:07:49,500 --> 00:07:50,290 Fisèl tanpri. 175 00:07:50,290 --> 00:07:51,600 Mwen pral tape "hello." 176 00:07:51,600 --> 00:07:54,070 >> Koulye a, isit la nan kote, franchman, printf ka se yon ti kras anmèdan. 177 00:07:54,070 --> 00:07:56,020 Li pa nan aktyèlman ale nan segfault nan ka sa a. 178 00:07:56,020 --> 00:07:59,860 Printf se yon ti kras espesyal paske li nan se konsa super souvan itilize ki 179 00:07:59,860 --> 00:08:03,570 esansyèlman printf ap fè nou yon favè ak ka akonpli, 180 00:08:03,570 --> 00:08:04,830 sa a, se pa yon konsèy ki valid. 181 00:08:04,830 --> 00:08:09,080 Kite m 'pran l' sou tèt mwen jis ekri ak lèt ​​detache soti nan parantèz yo nil, menm 182 00:08:09,080 --> 00:08:13,340 menm si li pa nesesèman sa ki Nou menm nou espere. 183 00:08:13,340 --> 00:08:16,940 >> Se konsa, nou pa ka vrèman fasil pwovoke yon segfault ak sa-a, men byen klè sa a 184 00:08:16,940 --> 00:08:18,600 se pa konpòtman an mwen te vle. 185 00:08:18,600 --> 00:08:19,800 Se konsa, sa ki nan solisyon an senp? 186 00:08:19,800 --> 00:08:25,650 Oke, nan skanf 2-, kite m 'pwopoze ki olye pou yo aktyèlman jis allocation yon 187 00:08:25,650 --> 00:08:30,100 Char *, kite m 'gen yon ti kras pi entelijan sou sa a, ak kite m 'asiyen tanpon 188 00:08:30,100 --> 00:08:32,940 kòm yon sekans 16 charaktèr. 189 00:08:32,940 --> 00:08:34,200 >> Se konsa, mwen ka fè sa nan yon koup nan fason. 190 00:08:34,200 --> 00:08:35,610 Mwen te kapab absoliman itilize malok. 191 00:08:35,610 --> 00:08:38,980 Men, mwen ka ale tounen nan semèn de lè Mwen jis bezwen yon pakèt antye nan 192 00:08:38,980 --> 00:08:39,620 karaktè. 193 00:08:39,620 --> 00:08:40,860 Se jis yon etalaj. 194 00:08:40,860 --> 00:08:44,870 Se konsa, kite m 'olye redéfinir tanpon yo dwe yon etalaj de 16 karaktè. 195 00:08:44,870 --> 00:08:47,340 >> Epi, koulye a, lè m 'pase tanpon nan - 196 00:08:47,340 --> 00:08:49,940 ak sa a se yon bagay nou pa t ' pale sou nan semèn de - 197 00:08:49,940 --> 00:08:53,730 men ou ka trete yon etalaj kòm menm si li nan yon lari yo. 198 00:08:53,730 --> 00:08:56,390 Teknikman, jan nou te wè, yo ap yon ti jan diferan. 199 00:08:56,390 --> 00:09:01,290 Men, skanf pa pral tèt ou si ou pase l non an nan yon etalaj, paske sa 200 00:09:01,290 --> 00:09:05,030 Rezone pral fè pou nou se esansyèlman trete non an nan ki etalaj kòm la 201 00:09:05,030 --> 00:09:08,280 adrès nan moso an nan 16 bytes. 202 00:09:08,280 --> 00:09:09,550 >> Se konsa, sa a se pi byen. 203 00:09:09,550 --> 00:09:12,110 Sa vle di kounye a ke mwen kapab èspere ke fè bagay sa a. 204 00:09:12,110 --> 00:09:16,800 Kite m 'rale soti pou yon moman ak fè fè skanf-2, konpile OK. 205 00:09:16,800 --> 00:09:19,390 Koulye a, kite m 'te resevwa koupe skanf-2 a. 206 00:09:19,390 --> 00:09:22,430 Fisèl tanpri. "Hello." Epi li te sanble yo travay tan sa a. 207 00:09:22,430 --> 00:09:26,020 >> Men, ka yon moun pwopoze yon senaryo nan ki li pa ta ka toujou travay? 208 00:09:26,020 --> 00:09:28,550 Yeah? 209 00:09:28,550 --> 00:09:30,640 Yon bagay ki pi long pase 16 karaktè. 210 00:09:30,640 --> 00:09:32,020 Men, aktyèlman, nou ka yon ti kras plis presi. 211 00:09:32,020 --> 00:09:36,540 Yon bagay ki pi long Lè sa a, 15 karaktè, paske reyèlman nou bezwen kenbe nan tèt ou 212 00:09:36,540 --> 00:09:39,920 ke nou bezwen ki antislach zewo chal nan fen fisèl la, 213 00:09:39,920 --> 00:09:42,950 ki se yon skanf sou kote yo pral anjeneral pran swen pou nou. 214 00:09:42,950 --> 00:09:46,210 >> Se konsa, kite m 'fè yon bagay tankou - 215 00:09:46,210 --> 00:09:48,040 pafwa nou kapab jis kite li tankou sa. 216 00:09:48,040 --> 00:09:50,630 OK, se konsa nou te gen koulye a pwovoke fòt segmentation nou an. 217 00:09:50,630 --> 00:09:51,000 Poukisa? 218 00:09:51,000 --> 00:09:54,940 Paske mwen tape nan plis pase 15 karaktè, e konsa nou te aktyèlman 219 00:09:54,940 --> 00:09:58,280 manyen memwa ke mwen aktyèlman pa ta dwe gen. 220 00:09:58,280 --> 00:10:00,180 >> Se konsa, sa se vrèman solisyon an isit la? 221 00:10:00,180 --> 00:10:02,210 Oke, sa si nou bezwen yon fisèl ankò? 222 00:10:02,210 --> 00:10:03,960 Oke, nou petèt fè li 32 bytes. 223 00:10:03,960 --> 00:10:05,160 Oke, sa ki si sa a pa lontan ase? 224 00:10:05,160 --> 00:10:06,040 Kouman sou 64 bytes? 225 00:10:06,040 --> 00:10:07,080 E si sa a pa lontan ase? 226 00:10:07,080 --> 00:10:09,640 Kouman sou 128 oswa 200 bytes? 227 00:10:09,640 --> 00:10:12,660 Ki sa ki reyèlman se solisyon an isit la nan la jeneral ka, si nou pa konnen nan 228 00:10:12,660 --> 00:10:14,460 avanse sa ki itilizatè a ale nan tape? 229 00:10:14,460 --> 00:10:20,000 230 00:10:20,000 --> 00:10:23,050 >> Se jis nan kalite yon doulè gwo nan manman bourik la, yo dwe onèt, ki se poukisa la 231 00:10:23,050 --> 00:10:29,050 CS50 bibliyotèk gen yon liy douzèn kèk nan kòd ki kolektivman aplike 232 00:10:29,050 --> 00:10:32,390 GetString fisèl nan yon fason ki nou pa fè sa gen konnen davans sa ki nan 233 00:10:32,390 --> 00:10:33,430 itilizatè ki pral tape. 234 00:10:33,430 --> 00:10:37,370 An patikilye, si ou gade tounen nan cs50.c soti nan de semèn de sa, ou ap wè 235 00:10:37,370 --> 00:10:40,480 ki GetString aktyèlman fè Pa sèvi ak skanf nan fason sa a. 236 00:10:40,480 --> 00:10:43,720 Olye de sa, li li yon karaktè nan yon tan. 237 00:10:43,720 --> 00:10:46,010 >> Paske yon sèl bèl bagay la sou li yon karaktè se sa nou kapab 238 00:10:46,010 --> 00:10:48,490 garanti tèt nou toujou gen omwen yon Char. 239 00:10:48,490 --> 00:10:51,740 Mwen ka jis deklare yon Char, ak Lè sa a, pran etap sa yo se vre wi: ti bebe a jis 240 00:10:51,740 --> 00:10:54,380 li yon karaktè nan nan yon tan soti nan klavye la. 241 00:10:54,380 --> 00:10:58,240 Lè sa a,, ki sa ou pral wè GetString fè, se chak fwa li kouri soti nan, 242 00:10:58,240 --> 00:11:02,280 di, 16 bytes nan memwa, li itilize malok, oswa yon ladan l 'kouzen, nan 243 00:11:02,280 --> 00:11:06,810 asiyen plis memwa, kopye fin vye granmoun lan memwa nan rale nan nouvo, ak Lè sa a, 244 00:11:06,810 --> 00:11:09,900 ansanm, ap resevwa yon karaktè nan yon moman, ak lè li kouri soti nan ki 245 00:11:09,900 --> 00:11:13,370 ti moso nan memwa, lanse li ale, sezi yon moso pi gwo nan memwa, kopi fin vye granmoun 246 00:11:13,370 --> 00:11:14,750 nan nouvo, repete ak. 247 00:11:14,750 --> 00:11:18,480 Epi li vrèman yon doulè ki aktyèlman aplike yon bagay kòm senp tankou 248 00:11:18,480 --> 00:11:19,710 ap resevwa opinyon ki sòti nan yon itilizatè. 249 00:11:19,710 --> 00:11:21,090 >> Se konsa, ou ka itilize skanf. 250 00:11:21,090 --> 00:11:22,430 Ou kapab sèvi ak lòt fonksyon menm jan an. 251 00:11:22,430 --> 00:11:25,420 Ak yon anpil nan liv lekòl yo ak sou entènèt egzanp fè, men yo ap tout 252 00:11:25,420 --> 00:11:27,210 vilnerab a pwoblèm tankou sa a. 253 00:11:27,210 --> 00:11:29,550 Men, finalman, ap resevwa yon segfault se kalite anmèdan. 254 00:11:29,550 --> 00:11:30,680 Li pa bon pou itilizatè a. 255 00:11:30,680 --> 00:11:33,560 >> Men, nan ka ki pi mal la, ki sa ki li fondamantalman mete ou 256 00:11:33,560 --> 00:11:37,160 Kòd a risk pou yo? 257 00:11:37,160 --> 00:11:39,250 Gen kèk kalite atak, kapab. 258 00:11:39,250 --> 00:11:41,680 Nou te pale de yon atak sa yo - debòde chemine a. 259 00:11:41,680 --> 00:11:44,660 Men, an jeneral, si w ap pèmèt yo debòde yon tanpon, tankou nou te fè yon 260 00:11:44,660 --> 00:11:48,070 koup la semèn de sa, ak jis ekri plis pase "alo" sou chemine a, ou 261 00:11:48,070 --> 00:11:52,330 ka tout bon pran sou, ki kapab, yon òdinatè, oswa omwen jwenn nan done ki 262 00:11:52,330 --> 00:11:53,510 pa fè pati nan ou. 263 00:11:53,510 --> 00:11:55,970 >> Se konsa, nan kout, sa a se rezon sa a genyen sa yo fòmasyon wou. 264 00:11:55,970 --> 00:11:59,090 Men koulye a,, nou kòmanse pran yo koupe, kòm pwogram nou yo pa bezwen ankò, 265 00:11:59,090 --> 00:12:00,610 nesesèman, D 'soti nan itilizatè a. 266 00:12:00,610 --> 00:12:03,960 Men, nan ka a nan pwoblèm mete sis, apò ou ap soti nan yon gwo 267 00:12:03,960 --> 00:12:07,520 dosye diksyonè ak 150 kèk enpè mil mo yo. 268 00:12:07,520 --> 00:12:10,330 >> Se konsa, ou pa pral gen enkyete sou abitrè D 'itilizatè a la. 269 00:12:10,330 --> 00:12:13,720 Nou pral ba ou kèk sipozisyon sou sa dosye. 270 00:12:13,720 --> 00:12:20,340 Nenpòt kesyon sou endikasyon oswa skanf oswa opinyon itilizatè an jeneral? 271 00:12:20,340 --> 00:12:24,450 >> Tout dwa, se konsa yon gade rapid Lè sa a, nan yon sèl fin sijè soti nan de semèn de sa. 272 00:12:24,450 --> 00:12:28,590 Men, sa ki te sa a nosyon nan yon struct. 273 00:12:28,590 --> 00:12:34,180 Se pa ke - sa a nosyon nan yon struct, ki te ki sa? 274 00:12:34,180 --> 00:12:35,430 Ki sa ki t 'struct fè pou nou? 275 00:12:35,430 --> 00:12:39,280 276 00:12:39,280 --> 00:12:39,860 >> Defini - 277 00:12:39,860 --> 00:12:41,710 regrèt? 278 00:12:41,710 --> 00:12:42,820 Defini yon kalite varyab. 279 00:12:42,820 --> 00:12:44,410 Se konsa, sòt de. 280 00:12:44,410 --> 00:12:46,180 Nou ap aktyèlman konbine de sijè. 281 00:12:46,180 --> 00:12:49,510 Se konsa, avèk tipedèf, sonje ke nou kapab deklare yon di ki kalite pwòp nou, tankou yon 282 00:12:49,510 --> 00:12:51,500 synonym, tankou fil pou * Char. 283 00:12:51,500 --> 00:12:56,200 Men, lè l sèvi avèk tipedèf ak struct, nou ka kreye se vre wi: pwòp nou done estrikti. 284 00:12:56,200 --> 00:12:59,600 >> Pou egzanp, si m 'ale tounen nan jdi isit la sèlman pou moman yon, epi mwen ale pi devan 285 00:12:59,600 --> 00:13:08,230 ak fè yon bagay tankou, kite m 'sove sa a kòm, se pou yo di, structs.c 286 00:13:08,230 --> 00:13:10,840 pou yon ti tan, mwen jis ale ale pi devan epi gen ladan 287 00:13:10,840 --> 00:13:14,360 standardio.h, Int anile prensipal la. 288 00:13:14,360 --> 00:13:18,960 Lè sa a, nan isit la, ann sipoze ke mwen vle yo ekri yon pwogram ki magazen 289 00:13:18,960 --> 00:13:21,840 elèv yo miltip soti nan plizyè kay, pou egzanp. 290 00:13:21,840 --> 00:13:24,430 Se konsa, li tankou yon registrarial baz done nan kèk sòt. 291 00:13:24,430 --> 00:13:29,550 >> Se konsa, si mwen bezwen Non yon elèv a, mwen ta kapab fè yon bagay tankou Non * Char, 292 00:13:29,550 --> 00:13:31,570 epi mwen pral fè yon bagay tankou - 293 00:13:31,570 --> 00:13:34,410 aktyèlman, se pou yo sèvi ak bibliyotèk la CS50 sèlman pou moman yon fè sa-a yon 294 00:13:34,410 --> 00:13:38,380 ti kras pi fasil, pou nou ka prete sa yo plizyè douzèn liy nan kòd. 295 00:13:38,380 --> 00:13:39,340 Li kite yo jis kenbe li senp. 296 00:13:39,340 --> 00:13:42,610 Nou pwal kenbe li fisèl, e kounye a, GetString. 297 00:13:42,610 --> 00:13:47,420 >> Se konsa, mwen fè reklamasyon kounye a ke mwen te estoke non an nan kèk elèv, ak kay la nan 298 00:13:47,420 --> 00:13:50,240 kèk elèv, tou senpleman lè l sèvi avèk varyab tankou nou te fè ak nan yon semèn. 299 00:13:50,240 --> 00:13:52,370 Men, si mwen kounye a ou vle sipòte elèv yo miltip. 300 00:13:52,370 --> 00:13:58,460 Tout dwa, se konsa ensten m ', se fè fisèl name2, vin GetString, fisèl 301 00:13:58,460 --> 00:14:01,370 house2 vin GetString. 302 00:14:01,370 --> 00:14:05,850 Lè sa a, twazyèm elèv nou yo, kite a fè name3 GetString. 303 00:14:05,850 --> 00:14:09,170 >> Tout dwa, se konsa sa a se èspere ke frape ou kòm kalite estipid, 304 00:14:09,170 --> 00:14:11,580 paske pwosesis sa a se reyèlman pa janm ale nan fini, epi li jis ale nan 305 00:14:11,580 --> 00:14:13,130 fè Kòd mwen gade pi mal ak pi mal ak pi mal. 306 00:14:13,130 --> 00:14:14,810 Men, nou rezoud sa a twò nan semèn de. 307 00:14:14,810 --> 00:14:19,450 Ki sa ki te solisyon relativman pwòp nou lè nou te varyab miltip nan la 308 00:14:19,450 --> 00:14:23,580 menm done kalite ki, yo tout ki gen rapò, men nou pa t 'vle dezòd sa a atròs 309 00:14:23,580 --> 00:14:26,870 nan Menm jan an tou yo te rele varyab? 310 00:14:26,870 --> 00:14:30,060 Ki sa ki t 'nou fè olye? 311 00:14:30,060 --> 00:14:31,260 >> Se konsa, mwen panse ke mwen tande yon kote kèk. 312 00:14:31,260 --> 00:14:32,590 Nou te gen yon etalaj. 313 00:14:32,590 --> 00:14:37,110 Si ou vle ka miltip nan yon bagay, poukisa yo pa nou netwaye sa a tout 314 00:14:37,110 --> 00:14:39,540 leve, li jis di, ban m ' etalaj rele non? 315 00:14:39,540 --> 00:14:41,640 >> Men, pou kounye a, se pou yo difisil 3 kòd. 316 00:14:41,640 --> 00:14:44,450 Lè sa a, ban m 'yon lòt etalaj rele kay, ak kite m 'pou 317 00:14:44,450 --> 00:14:45,800 kounye a difisil Kòd 3. 318 00:14:45,800 --> 00:14:49,220 Apre sa, mwen te twouve netwaye la moute dezòd ke mwen jis te kreye. 319 00:14:49,220 --> 00:14:52,400 Koulye a, mwen te toujou di kode 3, men menm 3 a te kapab dynamique soti nan la 320 00:14:52,400 --> 00:14:54,350 itilizatè, oswa argv, oswa tankou la. 321 00:14:54,350 --> 00:14:55,720 Se konsa, sa a se deja pwòp. 322 00:14:55,720 --> 00:15:00,100 >> Men, sa ki nan anmèdan sou sa a se ke kounye a, menm si yon non se yon jan kanmenm 323 00:15:00,100 --> 00:15:02,280 fondamantalman lye nan kay yon elèv - 324 00:15:02,280 --> 00:15:04,720 li nan yon elèv vrèman ke mwen vle reprezante - 325 00:15:04,720 --> 00:15:08,080 Mwen kounye a gen de ranje ki paralèl nan sans ke yo ap nan 326 00:15:08,080 --> 00:15:13,930 menm gwosè, ak non bracket 0 prezimableman kat bracket kay 0, 327 00:15:13,930 --> 00:15:16,600 ak non bracket 1 kat nan kay bracket 1. 328 00:15:16,600 --> 00:15:19,280 Nan lòt mo, ke elèv ap viv nan kay sa a, e ke sa lòt elèv yo 329 00:15:19,280 --> 00:15:20,530 lavi nan kay sa a ak lòt. 330 00:15:20,530 --> 00:15:23,720 Men, siman sa a ta ka fè menm plis propr. 331 00:15:23,720 --> 00:15:24,990 >> Oke, li kapab, an reyalite. 332 00:15:24,990 --> 00:15:28,730 Men, kite m 'ale pi devan epi louvri moute structs.h, epi ou pral 333 00:15:28,730 --> 00:15:31,130 wè ide sa a isit la. 334 00:15:31,130 --> 00:15:34,905 Remake mwen te itilize tipedèf, menm jan ou mansyone nan yon moman de sa deklare nou 335 00:15:34,905 --> 00:15:35,570 pwòp done kalite. 336 00:15:35,570 --> 00:15:39,660 Men, mwen tou lè l sèvi avèk sa a mo kle lòt rele struct ki ban m 'yon nouvo 337 00:15:39,660 --> 00:15:40,790 done estrikti. 338 00:15:40,790 --> 00:15:43,980 >> Lè sa a estrikti done Mwen reklamasyon ki pral gen de bagay sa yo andedan nan 339 00:15:43,980 --> 00:15:47,060 li - yon kòd rele, ak yon kòd yo rele kay la. 340 00:15:47,060 --> 00:15:49,820 Ak non mwen pral bay estrikti sa a done ki pral 341 00:15:49,820 --> 00:15:51,005 yo dwe rele elèv yo. 342 00:15:51,005 --> 00:15:54,030 Mwen te kapab rele li anyen mwen vle, men sa a Semantics fè 343 00:15:54,030 --> 00:15:55,810 sans nan m 'nan lide m'. 344 00:15:55,810 --> 00:15:59,160 >> Se konsa, koulye a, si mwen louvri moute yon vèsyon pi bon nan pwogram nan, mwen te kòmanse ekri 345 00:15:59,160 --> 00:16:00,390 la, kite m 'woulo liv nan tèt la. 346 00:16:00,390 --> 00:16:03,190 Apre sa, nan kèk plis liy nan Kòd isit la, men kite m 'konsantre pou 347 00:16:03,190 --> 00:16:04,160 moman sa a sou yon sèl. 348 00:16:04,160 --> 00:16:07,790 Mwen te deklare yon konstan elèv yo rele epi yo ka difisil kode 3 pou kounye a. 349 00:16:07,790 --> 00:16:11,110 Men koulye a,, avi ki pwòp Kòd mwen kòmanse jwenn. 350 00:16:11,110 --> 00:16:15,030 >> Nan liy 22, Mwen deklare etalaj de elèv yo. 351 00:16:15,030 --> 00:16:18,760 Men, remake ke elèv la se aparamman kounye a yon done ki kalite. 352 00:16:18,760 --> 00:16:23,360 Paske nan tèt yo nan sa a ranpli, remake Mwen te enkli ke dosye header 353 00:16:23,360 --> 00:16:24,820 ke mwen rale moute jis yon ti moman de sa. 354 00:16:24,820 --> 00:16:28,820 Epi ki dosye header byen tou senpleman te gen definisyon sa a yon elèv. 355 00:16:28,820 --> 00:16:32,470 >> Se konsa, koulye a, mwen te kreye done m 'pwòp koutim kalite ki otè yo nan C ane 356 00:16:32,470 --> 00:16:33,890 de sa pa t 'panse a an davans. 357 00:16:33,890 --> 00:16:34,570 Men, pa gen pwoblèm. 358 00:16:34,570 --> 00:16:35,870 Mwen ka fè li tèt mwen. 359 00:16:35,870 --> 00:16:39,050 Se konsa, sa a se yon etalaj rele elèv yo, chak nan manm ki gen 360 00:16:39,050 --> 00:16:41,100 se yon estrikti elèv yo. 361 00:16:41,100 --> 00:16:44,270 Apre sa, mwen vle twa nan moun ki nan etalaj la. 362 00:16:44,270 --> 00:16:46,030 >> Epi, koulye a, ki sa ki rès la nan pwogram sa a fè? 363 00:16:46,030 --> 00:16:47,550 Mwen te bezwen yon bagay yon ti kras abitrè. 364 00:16:47,550 --> 00:16:51,450 Se konsa, soti nan sou entènèt pati 24, Mwen répétèr ki ant 0 a 3. 365 00:16:51,450 --> 00:16:54,000 Mwen Lè sa a, mande itilizatè a pou Non elèv la. 366 00:16:54,000 --> 00:16:56,110 Lè sa a, mwen itilize GetString tankou anvan. 367 00:16:56,110 --> 00:16:59,410 Apre sa, mwen mande pou kay elèv la, ak pou mwen sèvi ak GetString tankou anvan. 368 00:16:59,410 --> 00:17:01,780 >> Men, avi - yon ti kras nouvo moso nan sentaks - 369 00:17:01,780 --> 00:17:07,010 Mwen kapab toujou endèks elèv la m-th, men ki jan mwen jwenn nan done yo espesifik 370 00:17:07,010 --> 00:17:08,354 andedan jaden an struct a? 371 00:17:08,354 --> 00:17:11,770 Oke, sa ki nan aparamman a nouvo moso nan sentaks? 372 00:17:11,770 --> 00:17:13,339 Se jis nan operatè a dot. 373 00:17:13,339 --> 00:17:14,510 >> Nou pa te reyèlman wè sa a anvan. 374 00:17:14,510 --> 00:17:17,819 Ou te wè l 'nan pset senk si ou te plonje nan deja ak dosye bitmap. 375 00:17:17,819 --> 00:17:22,372 Men, dot a jis vle di andedan sa a struct oswa jaden miltip, bay dot 376 00:17:22,372 --> 00:17:24,510 Non, oswa, ban m 'dot kay la. 377 00:17:24,510 --> 00:17:28,690 Sa vle di ale andedan nan struct la epi pou yo jwenn sa yo jaden an patikilye. 378 00:17:28,690 --> 00:17:30,200 >> Ki sa ki rès la nan pwogram sa a fè? 379 00:17:30,200 --> 00:17:31,190 Li pa tout sa ki sexy. 380 00:17:31,190 --> 00:17:34,640 Remake mwen répétèr ki ant 0 a 3 ankò, ak mwen tou senpleman kreye yon angle 381 00:17:34,640 --> 00:17:40,500 fraz tankou sa, epi sa se nan sa yo ak tankou yon kay, pase nan non dot soti nan 382 00:17:40,500 --> 00:17:43,320 elèv la m-th ak yo kay kòm byen. 383 00:17:43,320 --> 00:17:47,560 >> Lè sa a, alafen, kounye a nou ap kòmanse jwenn twou dèyè sou sa a, kounye a ke nou ap 384 00:17:47,560 --> 00:17:49,580 abitye ak sa ki malok ak lòt fonksyon yo te 385 00:17:49,580 --> 00:17:50,570 fè tout tan sa a. 386 00:17:50,570 --> 00:17:54,220 Poukisa mwen gen yo gratis tou de Non ak kay, menm si mwen 387 00:17:54,220 --> 00:17:56,960 pa t 'rele malok? 388 00:17:56,960 --> 00:17:58,020 >> GetString te fè sa. 389 00:17:58,020 --> 00:18:00,930 Men, sa ki te sal sekrè a ti kras pou plizyè semèn, men GetString gen 390 00:18:00,930 --> 00:18:03,530 te koule memwa tout lòt peyi sou la mete tout semès konsa byen lwen. 391 00:18:03,530 --> 00:18:05,990 Men, valgrand pral finalman revele sa a yo ban nou. 392 00:18:05,990 --> 00:18:10,730 >> Men, li la pa yon kontra gwo, paske mwen konnen ke mwen ka tou senpleman libere non an 393 00:18:10,730 --> 00:18:15,750 ak kay la, menm si teknikman, nan gen super, super san danje, mwen ta dwe 394 00:18:15,750 --> 00:18:17,890 fè kèk erè tcheke isit la. 395 00:18:17,890 --> 00:18:19,040 Ki sa yo ensten ou di ou? 396 00:18:19,040 --> 00:18:22,480 Kisa mwen ta dwe dwe tcheke pou mwen anvan m 'libere sa ki se yon 397 00:18:22,480 --> 00:18:25,470 fisèl, aka ki yon * Char? 398 00:18:25,470 --> 00:18:33,460 >> Mwen ta dwe vrèman dwe tcheke si elèv bracket mwen dot Non pa fè sa 399 00:18:33,460 --> 00:18:34,840 egal nil. 400 00:18:34,840 --> 00:18:40,400 Lè sa a, li pral OK ale pi devan epi gratis ki konsèy, ak menm oswa lòt la 401 00:18:40,400 --> 00:18:41,160 yon sèl kòm byen. 402 00:18:41,160 --> 00:18:46,860 Si elèv yo bracket mwen dot kay se pa egal a nil, sa a kounye a ap pwoteje 403 00:18:46,860 --> 00:18:52,520 kont ka a kwen nan ki GetString retounen yon bagay tankou nil. 404 00:18:52,520 --> 00:18:57,310 Men, nou te wè yon ti moman de sa, printf pral pwoteje nou moute isit la pa jis di 405 00:18:57,310 --> 00:18:58,990 nil, ki se pral gade etranj. 406 00:18:58,990 --> 00:19:02,340 Men, nan omwen li pa pral segfault, kòm nou te wè. 407 00:19:02,340 --> 00:19:05,990 >> Oke, kite m 'fè yon lòt bagay isit la. strukt-0 se kalite yon pwogram estipid 408 00:19:05,990 --> 00:19:09,700 paske mwen antre nan tout done sa yo, ak Lè sa a, li a pèdi yon fwa pwogram lan fini. 409 00:19:09,700 --> 00:19:10,940 Men, kite m 'ale pi devan epi fè sa. 410 00:19:10,940 --> 00:19:12,830 Kite m 'fè tèminal nan fenèt yon ti jan pi gran. 411 00:19:12,830 --> 00:19:17,000 Kite m 'fè strukt-1, ki se yon nouvo vèsyon an sa a. 412 00:19:17,000 --> 00:19:18,520 >> Mwen pral rale nan yon ti kras. 413 00:19:18,520 --> 00:19:21,620 Epi, koulye a kite m 'kouri dot koupe strukt-1 an. 414 00:19:21,620 --> 00:19:22,590 Non Elèv la - 415 00:19:22,590 --> 00:19:31,500 David Mather, se pou yo fè Rob Kirkland, kite a fè Lauren LEVERETT. 416 00:19:31,500 --> 00:19:33,650 Ki sa ki nan enteresan kounye a se avi - 417 00:19:33,650 --> 00:19:35,540 ak mwen sèlman konnen sa paske Mwen te ekri pwogram nan - 418 00:19:35,540 --> 00:19:38,930 gen yon dosye kounye a sou mwen ye kounye a anyè rele students.csv. 419 00:19:38,930 --> 00:19:40,420 Gen kèk nan ou ta ka gen pou wè sa yo nan mond lan reyèl. 420 00:19:40,420 --> 00:19:42,980 >> Ki sa ki nan yon dosye CSV? 421 00:19:42,980 --> 00:19:44,170 Vigil-separe valè. 422 00:19:44,170 --> 00:19:46,670 Li nan sòt de tankou yon an pòv moun vèsyon an yon dosye Excel. 423 00:19:46,670 --> 00:19:50,580 Li se yon tab nan ranje ak kolòn ki ou ka ouvè nan yon pwogram tankou Excel, 424 00:19:50,580 --> 00:19:51,800 oswa Numbers sou yon Mac. 425 00:19:51,800 --> 00:19:55,180 >> Men, si mwen louvri sa a ranpli isit la sou jdi, avi - ak nimewo yo pa jwenn yo. 426 00:19:55,180 --> 00:19:57,360 Se jis jdi di m 'nimewo liy. 427 00:19:57,360 --> 00:19:59,740 Avi sou liy lan premye nan sa a dosye a se David ak Mather. 428 00:19:59,740 --> 00:20:01,450 Liy nan pwochen se Rob vigil Kirkland. 429 00:20:01,450 --> 00:20:04,170 Men, liy la twazyèm se Lauren vigil LEVERETT. 430 00:20:04,170 --> 00:20:05,480 >> Se konsa, sa m 'te kreye? 431 00:20:05,480 --> 00:20:09,580 Mwen te kounye a ekri nan Liv la yon pwogram C ki efektivman ka jenere tableur 432 00:20:09,580 --> 00:20:11,840 ki ka louvri nan yon pwogram tankou Excel. 433 00:20:11,840 --> 00:20:15,520 Pa tout sa ki impérieux yon gwoup done ki, men si ou gen pi gwo fragman nan 434 00:20:15,520 --> 00:20:18,440 done ke ou aktyèlman vle manipile, epi fè graf yo nan ak 435 00:20:18,440 --> 00:20:21,260 renmen, sa a se petèt youn fason yo kreye ki done. 436 00:20:21,260 --> 00:20:25,370 Anplis, CSVs yo aktyèlman super komen jis pou estoke done senp - 437 00:20:25,370 --> 00:20:28,940 Yahoo Finans, pou egzanp, si ou jwenn stock quotes atravè rele sa yo yo 438 00:20:28,940 --> 00:20:33,180 API, sèvis la gratis ki pèmèt ou jwenn kounye a monte-a-dat-a stock 439 00:20:33,180 --> 00:20:35,650 quotes pou konpayi yo, yo bay done yo tounen nan la 440 00:20:35,650 --> 00:20:37,800 super senp CSV fòma. 441 00:20:37,800 --> 00:20:39,380 >> Se konsa, kouman nou te fè sa? 442 00:20:39,380 --> 00:20:42,530 Oke remake, pi fò nan sa a nan pwogram prèske menm bagay la. 443 00:20:42,530 --> 00:20:46,870 Men, remake desann isit la, olye ke ekri an lèt detache elèv yo soti, sou liy 35 444 00:20:46,870 --> 00:20:51,040 pati, mwen reklamasyon ke mwen ekonomize nan elèv yo ki gen kapasite, se konsa ekonomize yon dosye. 445 00:20:51,040 --> 00:20:53,630 >> Se konsa, remake mwen deklare yon dosye * - 446 00:20:53,630 --> 00:20:57,260 kounye a, sa a se kalite yon anomali nan C. Pou kèlkeswa rezon an, DOSYE se tout kaskèt, 447 00:20:57,260 --> 00:21:00,690 ki se pa tankou pifò kalite lòt done nan C. Men, sa a se yon bati-an 448 00:21:00,690 --> 00:21:02,320 done ki kalite, * DOSYE. 449 00:21:02,320 --> 00:21:05,900 Ak mwen se deklare yon konsèy nan yon dosye, ki jan pou ou ka panse a sa. 450 00:21:05,900 --> 00:21:08,070 >> fopen vle di dosye louvri. 451 00:21:08,070 --> 00:21:09,470 Ki sa ki dosye ou vle ouvri? 452 00:21:09,470 --> 00:21:12,620 Mwen vle louvri yon dosye ke mwen pral abitrèman rele students.csv. 453 00:21:12,620 --> 00:21:14,480 Mwen te kapab rele ki anyen mwen vle. 454 00:21:14,480 --> 00:21:15,200 >> Lè sa a, pran yon devine. 455 00:21:15,200 --> 00:21:18,960 Ki sa agiman nan dezyèm fopen pwobableman vle di? 456 00:21:18,960 --> 00:21:21,480 Dwa, w pou ekri, te kapab dwe r pou li. 457 00:21:21,480 --> 00:21:24,120 Genyen yon pou ajoutra si ou vle ajoute ranje epi yo pa 458 00:21:24,120 --> 00:21:25,200 recouvrir tout bagay la. 459 00:21:25,200 --> 00:21:28,005 >> Men, mwen jis vle kreye sa a ranpli yon fwa, se konsa mwen pral sèvi ak quote unquote w. 460 00:21:28,005 --> 00:21:31,880 Apre sa, mwen konnen ke se sèlman soti nan li te gen li dokiman an, oswa paj an moun. 461 00:21:31,880 --> 00:21:35,100 Si dosye se pa nil - nan lòt mo, si pa gen anyen ale mal gen - 462 00:21:35,100 --> 00:21:37,820 kite m 'répétèr sou la elèv yo ki ant 0 a 3. 463 00:21:37,820 --> 00:21:40,410 >> Epi, koulye a remake gen nan yon bagay tout tan tout tan se konsa yon ti kras diferan 464 00:21:40,410 --> 00:21:42,110 sou liy 41 isit la. 465 00:21:42,110 --> 00:21:42,960 Li pa printf. 466 00:21:42,960 --> 00:21:46,530 Li nan fprintf pou dosye printf. 467 00:21:46,530 --> 00:21:47,790 Se konsa, li pral yo pou yo ekri pote. 468 00:21:47,790 --> 00:21:48,860 Ki dosye? 469 00:21:48,860 --> 00:21:53,630 Yon sèl nan ki gen konsèy ou presize kòm agiman an premye. 470 00:21:53,630 --> 00:21:55,940 >> Lè sa a, nou presize yon kòd fòma. 471 00:21:55,940 --> 00:21:59,660 Lè sa a, nou presize ki fisèl nou vle ploge nan pou yo a pousan an premye, ak 472 00:21:59,660 --> 00:22:04,320 Lè sa a, yon lòt varyab oswa s la pousan dezyèm fwa. 473 00:22:04,320 --> 00:22:06,760 Lè sa a, nou fèmen dosye a ak fkloz. 474 00:22:06,760 --> 00:22:09,380 Pase mwen libere memwa a tankou anvan, menm si Mwen ta dwe ale tounen nan epi ajoute 475 00:22:09,380 --> 00:22:10,540 kèk chèk pou nil. 476 00:22:10,540 --> 00:22:12,090 >> Epi sa a, li. 477 00:22:12,090 --> 00:22:16,960 fopen, fprintf, fkloz bay la m ' kapasite yo kreye fichye tèks. 478 00:22:16,960 --> 00:22:19,640 Koulye a, ou pral wè nan seri pwoblèm senk, ki gen ladan imaj, ou pral lè l sèvi avèk 479 00:22:19,640 --> 00:22:20,990 binè dosye pito. 480 00:22:20,990 --> 00:22:24,200 Men, fondamantalman, lide a se menm bagay la tou, menm si fonksyon yo ou pral 481 00:22:24,200 --> 00:22:28,710 wè se yon ti jan diferan. 482 00:22:28,710 --> 00:22:32,580 >> Se konsa, gwo toubouyon vwayaj, men ou pral jwenn tout twò abitye ak dosye I/O-- 483 00:22:32,580 --> 00:22:34,960 D 'ak pwodiksyon - ki gen pset senk. 484 00:22:34,960 --> 00:22:38,607 Men, nenpòt kesyon sou la Basics premye isit la? 485 00:22:38,607 --> 00:22:39,857 Yeah? 486 00:22:39,857 --> 00:22:41,880 487 00:22:41,880 --> 00:22:43,710 >> E si ou eseye libere yon valè nil? 488 00:22:43,710 --> 00:22:48,880 Mwen kwè ke, sof si gratis te vinn yon ti kras pi plis user-zanmitay, ou ka 489 00:22:48,880 --> 00:22:49,890 potansyèlman segfault. 490 00:22:49,890 --> 00:22:54,160 Pase li nil se move paske mwen pa fè sa kwè gratis nwi yo tcheke pou ou, 491 00:22:54,160 --> 00:22:57,330 paske li ta kapab gen yon dechè nan tan pou li fè tèt li pou 492 00:22:57,330 --> 00:22:59,022 tout moun nan mond lan. 493 00:22:59,022 --> 00:23:00,590 Bon kesyon, menm si. 494 00:23:00,590 --> 00:23:04,300 >> Tout dwa, se konsa sa a kalite vin nou nan yon sijè enteresan. 495 00:23:04,300 --> 00:23:07,010 Tèm nan an seri pwoblèm senk se forensics. 496 00:23:07,010 --> 00:23:08,420 Omwen sa a, se yon pòsyon nan mete a pwoblèm. 497 00:23:08,420 --> 00:23:12,030 Medsin legal jeneralman refere a nan gerizon nan enfòmasyon ki kapab oswa 498 00:23:12,030 --> 00:23:14,110 pa gen dwa yo te efase fè espre. 499 00:23:14,110 --> 00:23:18,680 Se konsa, mwen te panse mwen ta ba ou yon rapid gou nan sa ki reyèlman ale sou tout 500 00:23:18,680 --> 00:23:21,230 tan sa a anba a kapo nan òdinatè ou. 501 00:23:21,230 --> 00:23:23,960 >> Pou egzanp, si ou gen andedan nan ou laptop oswa òdinatè Desktop ou yon 502 00:23:23,960 --> 00:23:28,040 kondwi difisil, li nan swa yon mekanik aparèy ki aktyèlman vire - 503 00:23:28,040 --> 00:23:31,650 gen nan bagay sa yo sikilè rele gwo bòl ki gade byen renmen sa mwen 504 00:23:31,650 --> 00:23:34,540 jis te gen moute sou ekran an isit la, menm si sa a se lekòl de pli zan pli fin vye granmoun. 505 00:23:34,540 --> 00:23:37,370 Sa a se yon twa-ak-yon-demi pous difisil kondwi. 506 00:23:37,370 --> 00:23:40,070 , Twa ak yon mwatye pous refere nan ak nan bagay la lè ou enstale li 507 00:23:40,070 --> 00:23:40,890 nan yon òdinatè. 508 00:23:40,890 --> 00:23:44,890 >> Anpil nan nou mesye nan laptops ou an kounye a gen kondui semi-conducteurs, oswa SSDs, 509 00:23:44,890 --> 00:23:46,260 ki pa gen okenn deplase pati. 510 00:23:46,260 --> 00:23:49,170 Yo ap pi plis tankou RAM ak mwens tankou aparèy sa yo mekanik. 511 00:23:49,170 --> 00:23:51,450 Men, lide yo se toujou menm bagay la, sètènman jan yo gen rapò 512 00:23:51,450 --> 00:23:52,790 nan pwoblèm mete senk. 513 00:23:52,790 --> 00:23:57,400 >> Men, si ou panse osijè de kounye a yon kondwi difisil reprezante yo te yon sèk, ki 514 00:23:57,400 --> 00:23:58,930 Mwen pral pran tankou sa a isit la. 515 00:23:58,930 --> 00:24:02,290 Lè ou kreye yon dosye sou òdinatè ou, si li nan yon SSD, oswa nan 516 00:24:02,290 --> 00:24:06,610 ka sa a, yon lekòl ki pi gran kondwi difisil, ki dosye konprann Bits miltip. 517 00:24:06,610 --> 00:24:10,510 Se pou nou di ke li nan sa a 0 ak 1, yon pakèt tout 0s ak 1S. 518 00:24:10,510 --> 00:24:11,660 Se konsa, sa a se tout mwen kondwi difisil. 519 00:24:11,660 --> 00:24:13,225 Sa a se aparamman yon dosye trè gwo. 520 00:24:13,225 --> 00:24:18,080 Epi li se lè l sèvi avèk moute 0s la ak 1S nan ki pòsyon nan plat la fizik. 521 00:24:18,080 --> 00:24:19,750 >> Oke, sa se ke pòsyon fizik? 522 00:24:19,750 --> 00:24:25,310 Oke, li vire soti ki sou yon kondwi difisil, omwen nan kalite sa a, gen nan 523 00:24:25,310 --> 00:24:27,340 sa yo ti ti kras patikil mayetik. 524 00:24:27,340 --> 00:24:32,630 Apre sa, yo esansyèlman gen nò ak poto nan sid yo, se konsa ke si ou 525 00:24:32,630 --> 00:24:35,710 vire youn nan moun ki patikil mayetik fason sa a, ou ta ka di ke li nan 526 00:24:35,710 --> 00:24:36,720 reprezante yon 1. 527 00:24:36,720 --> 00:24:39,340 Men, si li nan tèt anba sid nan nò, ou ta ka di ke li nan 528 00:24:39,340 --> 00:24:40,390 reprezante yon 0. 529 00:24:40,390 --> 00:24:43,660 >> Se konsa, nan mond reyèl la fizik, sa a, se ki jan ou ka reprezante yon bagay nan 530 00:24:43,660 --> 00:24:45,670 eta binè nan 0 a ak yon 1. 531 00:24:45,670 --> 00:24:46,720 Se konsa, ki nan tout yon dosye se. 532 00:24:46,720 --> 00:24:49,300 Genyen yon pakèt antye nan mayetik patikil ki fason sa a yo oswa 533 00:24:49,300 --> 00:24:51,920 fason sa a, kreye modèl nan 0s ak 1S. 534 00:24:51,920 --> 00:24:56,760 >> Men, li vire soti lè ou sove yon dosye li an, se kèk enfòmasyon sove separeman. 535 00:24:56,760 --> 00:25:00,000 Se konsa, sa a se yon tab ti kras, yon anyè, se konsa pale. 536 00:25:00,000 --> 00:25:05,810 Apre sa, mwen pral rele non sa a kolòn, ak Mwen pral rele sa a kote kolòn. 537 00:25:05,810 --> 00:25:08,850 >> Men, mwen pral di, ann sipoze sa a se rezime m 'yo. 538 00:25:08,850 --> 00:25:14,050 Se resume.doc mwen ki estoke nan kote, se pou yo di 123. 539 00:25:14,050 --> 00:25:15,390 Mwen toujou ale pou ladan nimewo. 540 00:25:15,390 --> 00:25:18,810 Men, sufi li vle di ke jis tankou nan RAM, ou ka pran yon kondwi difisil 541 00:25:18,810 --> 00:25:22,350 ki nan yon jigokte jigokte oswa 200 oswa yon teraokte, epi ou ka 542 00:25:22,350 --> 00:25:23,750 nimewo tout bytes yo. 543 00:25:23,750 --> 00:25:26,480 Ou ka Nimewo tout fragman nan 8 miyèt moso. 544 00:25:26,480 --> 00:25:29,030 >> Se konsa, nou pral di ke sa a se 123 kote. 545 00:25:29,030 --> 00:25:32,070 Se konsa, anyè sa a andedan nan opere mwen sistèm sonje ke mwen 546 00:25:32,070 --> 00:25:34,250 kourikouloum-vite se nan kote 123. 547 00:25:34,250 --> 00:25:36,850 Men, li vin enteresan lè ou efase yon dosye. 548 00:25:36,850 --> 00:25:37,820 >> Se konsa, pou egzanp - 549 00:25:37,820 --> 00:25:40,790 ak Erezman, pi fò nan mond lan gen kenbe sou sa a - sa ki pase lè 550 00:25:40,790 --> 00:25:45,040 ou trennen yon dosye nan fatra Mac ou eksplwatasyon oswa fenèt ou resikle bin? 551 00:25:45,040 --> 00:25:48,290 552 00:25:48,290 --> 00:25:50,510 Ki sa ki nan bi pou yo fè sa? 553 00:25:50,510 --> 00:25:53,860 Li nan evidamman debarase m de dosye a, men sa ki fè zak la nan trenen ak 554 00:25:53,860 --> 00:25:57,550 jete nan fatra ou oswa ou Resikle Bin fè sou yon òdinatè? 555 00:25:57,550 --> 00:25:59,230 >> Absoliman pa gen anyen, vrèman. 556 00:25:59,230 --> 00:26:00,320 Li nan jis tankou yon katab. 557 00:26:00,320 --> 00:26:01,800 Li se yon katab espesyal, yo dwe asire. 558 00:26:01,800 --> 00:26:04,460 Men, li aktyèlman efase dosye a? 559 00:26:04,460 --> 00:26:06,780 >> Oke, pa gen okenn, paske gen kèk nan pwobableman ou yo te tankou, o modi, ou pa t ' 560 00:26:06,780 --> 00:26:07,420 vle di fè sa. 561 00:26:07,420 --> 00:26:09,130 Se konsa, ou doub klike sou la Fatra oswa Bin Resikle. 562 00:26:09,130 --> 00:26:11,630 Ou te poked ozalantou yo ak ou te refè dosye a jis nan antrenman li 563 00:26:11,630 --> 00:26:12,110 soti nan la. 564 00:26:12,110 --> 00:26:14,420 Se konsa, byen klè, li pa nesesèman efase li. 565 00:26:14,420 --> 00:26:15,990 >> OK, w ap pi entelijan pase sa. 566 00:26:15,990 --> 00:26:18,860 Ou konnen jis trenen l 'nan la Fatra oswa resikle bin pa vle di 567 00:26:18,860 --> 00:26:19,930 w ap vide fatra a. 568 00:26:19,930 --> 00:26:24,110 Se konsa, ou moute nan meni an, epi ou di Vide fatra oswa Vide Bin Resikle. 569 00:26:24,110 --> 00:26:25,360 Lè sa a, sa k ap pase? 570 00:26:25,360 --> 00:26:29,070 571 00:26:29,070 --> 00:26:32,530 >> Yeah, kidonk li se efase plis konsa. 572 00:26:32,530 --> 00:26:37,660 Men, tout sa ki ap pase sa a. 573 00:26:37,660 --> 00:26:45,350 Òdinatè a bliye kote resume.doc te ye a. 574 00:26:45,350 --> 00:26:47,400 >> Men, sa ki pa te chanje aparamman nan foto a? 575 00:26:47,400 --> 00:26:51,390 576 00:26:51,390 --> 00:26:55,570 Bits yo, 0s la ak 1S ke mwen fè reklamasyon yo se sou sit nan kèk aspè fizik 577 00:26:55,570 --> 00:26:56,280 pyès ki nan konpitè a. 578 00:26:56,280 --> 00:26:57,110 Yo ap toujou la. 579 00:26:57,110 --> 00:26:58,930 Se jis nan òdinatè a gen bliye sa yo ye. 580 00:26:58,930 --> 00:27:03,160 >> Se konsa, li la esansyèlman libere dosye a nan Bits sa yo ke yo itilize yo ankò. 581 00:27:03,160 --> 00:27:06,940 Men, pa jiskaske ou kreye plis dosye, ak plis ankò dosye, ak plis ankò dosye yo pral 582 00:27:06,940 --> 00:27:12,150 probabilistically, sa yo ki 0s ak 1, sa yo patikil mayetik, jwenn reyitilize, 583 00:27:12,150 --> 00:27:16,220 tèt oswa dwa bò moute, pou dosye lòt, 0s ak 1S. 584 00:27:16,220 --> 00:27:17,980 >> Se konsa, ou gen fenèt sa a nan tan. 585 00:27:17,980 --> 00:27:19,860 Epi li pa nan previzib longè, vrèman. 586 00:27:19,860 --> 00:27:22,240 Sa depann de gwosè a nan di ou yo kondwi ak konbyen dosye ou gen ak 587 00:27:22,240 --> 00:27:23,490 kouman vit ou fè bann nouvo. 588 00:27:23,490 --> 00:27:27,050 Men, gen nan fenèt sa a nan tan pandan ki ki dosye se toujou parfe 589 00:27:27,050 --> 00:27:27,770 recouvre. 590 00:27:27,770 --> 00:27:31,050 >> Se konsa, si ou te janm sèvi ak pwogram tankou McAfee oswa Norton pou yo eseye refè 591 00:27:31,050 --> 00:27:35,680 done yo, tout yo ap fè ap eseye refè anyè sa a sa yo rele 592 00:27:35,680 --> 00:27:37,340 konnen ki kote dosye ou te ye a. 593 00:27:37,340 --> 00:27:40,605 Epi pafwa Norton epi yo pral di, dosye a se 93% recouvre. 594 00:27:40,605 --> 00:27:42,020 Oke, sa sa vle di? 595 00:27:42,020 --> 00:27:45,690 Sa jis vle di ke gen kèk dosye lòt azar te fini lè l sèvi avèk, di, 596 00:27:45,690 --> 00:27:48,920 sa yo Bits soti nan orijinal la dosye ou. 597 00:27:48,920 --> 00:27:51,950 >> Se konsa, sa ki aktyèlman ki patisipe nan rekipere done? 598 00:27:51,950 --> 00:27:55,720 Oke, si ou pa gen yon bagay tankou Norton pre-enstale sou òdinatè w lan, 599 00:27:55,720 --> 00:27:59,510 pi bon an ou ka pafwa fè se gade nan tout kondwi a difisil kap chèche 600 00:27:59,510 --> 00:28:00,510 modèl nan miyèt moso. 601 00:28:00,510 --> 00:28:05,350 Ak youn nan tèm yo nan seri pwoblèm senk se ke ou ap fè rechèch la 602 00:28:05,350 --> 00:28:09,570 ekivalan nan yon kondwi difisil, yon mediko-legal imaj de yon kat flash kontra enfòmèl ant ki sòti nan yon 603 00:28:09,570 --> 00:28:13,660 kamera dijital, pou chèche 0s la ak 1S ki tipikman, ak segondè 604 00:28:13,660 --> 00:28:16,720 pwobabilite, reprezante nan kòmanse nan yon imaj JPEG. 605 00:28:16,720 --> 00:28:21,120 >> Epi ou nèg ka refè sa yo imaj pa asepte, si mwen wè modèl sa a nan 606 00:28:21,120 --> 00:28:24,380 Bits sou imaj la mediko-legal, ak segondè pwobabilite, ki make 607 00:28:24,380 --> 00:28:25,650 kòmanse nan yon JPEG. 608 00:28:25,650 --> 00:28:29,520 Men, si mwen wè modèl la menm ankò, ki pwobableman make kòmansman an nan 609 00:28:29,520 --> 00:28:32,440 yon lòt JPEG, ak yon lòt JPEG, ak yon lòt JPEG. 610 00:28:32,440 --> 00:28:34,970 Lè sa a se tipikman ki jan done rekiperasyon pral travay. 611 00:28:34,970 --> 00:28:37,870 Ki sa ki nan bèl sou JPEGs se menm si fòma a dosye tèt li se yon ti jan 612 00:28:37,870 --> 00:28:44,400 konplèks, nan konmansman an nan chak tankou dosye se aktyèlman san patipri ki pèmèt idantifye 613 00:28:44,400 --> 00:28:47,370 ak senp, menm jan ou pral wè, Si ou te pa deja. 614 00:28:47,370 --> 00:28:50,270 >> Se konsa, kite a pran yon gade pi pre anba kapo a kòm ekzakteman ki sa a te 615 00:28:50,270 --> 00:28:53,360 ale sou, e ki sa sa yo 0s ak 1S yo, ba w yon ti jan pi plis nan yon 616 00:28:53,360 --> 00:28:55,330 kontèks pou sa a defi patikilye. 617 00:28:55,330 --> 00:28:55,510 >> [Lèktur videyo] 618 00:28:55,510 --> 00:28:58,700 >> -Ki kote PC ou magazen ki pi nan done pèmanan li yo. 619 00:28:58,700 --> 00:29:03,390 Pou fè sa, done a vwayaje soti nan RAM ansanm ak siyal lojisyèl ki di 620 00:29:03,390 --> 00:29:06,110 kondwi a difisil ki jan nan magazen ki done. 621 00:29:06,110 --> 00:29:09,410 Sikui yo kondwi difisil tradui sa yo siyal nan vòltaj 622 00:29:09,410 --> 00:29:10,870 fluctuations. 623 00:29:10,870 --> 00:29:14,970 Sa yo, nan vire, pou kontwole, difisil kondwi a nan k ap deplase pati, kèk nan kèk nan 624 00:29:14,970 --> 00:29:17,910 k ap deplase pati kite yo nan la modèn òdinatè. 625 00:29:17,910 --> 00:29:22,130 >> Gen kèk nan siyal yo kontwole yon motè ki vire gwo bòl metal-kouvwi. 626 00:29:22,130 --> 00:29:25,470 Done ou a ap aktyèlman estoke sou sa yo bòl. 627 00:29:25,470 --> 00:29:28,610 Siyal Lòt deplase li nan / ekri tèt li oswa 628 00:29:28,610 --> 00:29:30,710 ekri done sou gwo bòl yo. 629 00:29:30,710 --> 00:29:35,450 Sa a machin pou egzak ke yon moun tout cheve nan tèt pa t 'kapab menm pase ant la 630 00:29:35,450 --> 00:29:37,280 tèt ak gwo bòl k ap vire. 631 00:29:37,280 --> 00:29:40,316 Men, li tout travay nan vitès formidable. 632 00:29:40,316 --> 00:29:40,660 >> [Lèktur videyo END] 633 00:29:40,660 --> 00:29:42,190 >> DAVID Malan: Zoom nan yon ti kras pi fon kounye a nan sa ki nan 634 00:29:42,190 --> 00:29:44,360 aktyèlman sou moun gwo bòl. 635 00:29:44,360 --> 00:29:44,720 >> [Lèktur videyo] 636 00:29:44,720 --> 00:29:47,660 >> -Se pou yo gade nan ki sa nou jis te wè nan mouvman dousman. 637 00:29:47,660 --> 00:29:51,710 Lè yon batman kè kout nan elektrisite se voye nan tèt la li / ekri, si viraj 638 00:29:51,710 --> 00:29:54,650 sou yon elektwomayetik ti pou yon fraksyon nan yon dezyèm fwa. 639 00:29:54,650 --> 00:29:58,970 Leman nan kreye yon jaden, ki chanjman polarite a nan yon ti ti, 640 00:29:58,970 --> 00:30:02,850 pòsyon nan patikil yo metal ki rad chak sifas plato. 641 00:30:02,850 --> 00:30:05,940 >> Yon modèl seri de sa yo ti, chaje-up zòn sou ki gen kapasite a 642 00:30:05,940 --> 00:30:08,470 reprezante yon ti jan yon sèl nan done nan kantite binè 643 00:30:08,470 --> 00:30:10,530 sistèm itilize pa òdinatè. 644 00:30:10,530 --> 00:30:13,775 Koulye a, si se aktyèl la voye yon fason nan li, la / ekri tèt, zòn nan 645 00:30:13,775 --> 00:30:15,970 se polarize nan yon direksyon. 646 00:30:15,970 --> 00:30:17,950 Si se aktyèl la voye nan la opoze direksyon, nan 647 00:30:17,950 --> 00:30:19,930 polarization se ranvèse. 648 00:30:19,930 --> 00:30:22,370 >> Ki jan ou fè jwenn done sou ki gen kapasite a difisil? 649 00:30:22,370 --> 00:30:24,090 Jis ranvèse pwosesis la. 650 00:30:24,090 --> 00:30:26,550 Se konsa, li patikil yo sou ki gen kapasite a ki jwenn aktyèl la nan la 651 00:30:26,550 --> 00:30:27,960 li / ekri tèt deplase. 652 00:30:27,960 --> 00:30:30,700 Mete ansanm dè milyon de sa yo sèmante segments, ak 653 00:30:30,700 --> 00:30:32,160 ou te gen yon dosye. 654 00:30:32,160 --> 00:30:36,060 >> Koulye a, moso yo nan yon dosye sèl kapab pral gaye nan bwa tout lòt peyi sou yon nan kondwi 655 00:30:36,060 --> 00:30:39,970 bòl, kalite tankou dezòd la nan papye sou biwo ou. 656 00:30:39,970 --> 00:30:43,500 Se konsa, yon dosye espesyal siplemantè kenbe yon dosye nan kote tout bagay se. 657 00:30:43,500 --> 00:30:45,985 Pa fè sa ou vle ou te gen yon bagay tankou sa? 658 00:30:45,985 --> 00:30:46,470 >> [Lèktur videyo END] 659 00:30:46,470 --> 00:30:47,820 >> DAVID Malan: OK, pwobableman pa. 660 00:30:47,820 --> 00:30:52,070 Se konsa, kouman anpil nan nou mesye te grandi ak sa yo? 661 00:30:52,070 --> 00:30:53,970 OK, se konsa li mwens ak mwens men chak ane. 662 00:30:53,970 --> 00:30:56,550 Men, mwen kontan w ap omwen abitye avèk yo, paske sa a ak pwòp nou 663 00:30:56,550 --> 00:31:00,520 Demo liv, Malerezman, yo ap mouri yon trè ralanti lanmò isit la nan abitye. 664 00:31:00,520 --> 00:31:04,010 >> Men, sa a se sa m ', nan omwen, li tounen nan lekòl segondè, yo itilize itilize pou sovgad. 665 00:31:04,010 --> 00:31:08,110 Epi li te etonan, paske ou te kapab sere 1.4 megabit sou 666 00:31:08,110 --> 00:31:08,930 sa a ki gen kapasite patikilye. 667 00:31:08,930 --> 00:31:12,260 Lè sa a te vèsyon an dansite segondè, jan sa endike nan HD a, ki te gen 668 00:31:12,260 --> 00:31:14,240 sa vle di anvan HD videyo a jodi a. 669 00:31:14,240 --> 00:31:16,400 >> Creole dansite te 800 kilookte. 670 00:31:16,400 --> 00:31:18,640 Men, anvan sa, te gen 400-kilobit disk. 671 00:31:18,640 --> 00:31:23,120 Men, anvan sa, te gen 5 ak 1/4 disk pous, ki te se vre wi: lage lage, 672 00:31:23,120 --> 00:31:25,680 ak yon ti kras pi laj ak pi wo pase tout bagay sa yo isit la. 673 00:31:25,680 --> 00:31:29,150 Men, ou ka aktyèlman wè sa yo rele an lage lage aspè nan sa yo disk. 674 00:31:29,150 --> 00:31:32,630 >> Men, fonksyonèl, yo ap aktyèlman trè menm jan ak kondui difisil nan nan 675 00:31:32,630 --> 00:31:33,570 pi piti sa a ki kalite. 676 00:31:33,570 --> 00:31:37,270 Yon fwa ankò, SSDs nan nouvo òdinatè travay yon ti kras diferan. 677 00:31:37,270 --> 00:31:41,530 Men, si ou deplase ki tab metal ti kras, ou ka aktyèlman wè yon bonbon ti kras, 678 00:31:41,530 --> 00:31:42,560 oswa plato. 679 00:31:42,560 --> 00:31:43,830 >> Li pa metal tankou sa a yon sèl. 680 00:31:43,830 --> 00:31:46,000 Sa a yon sèl la aktyèlman kèk pi bon mache plastik materyèl. 681 00:31:46,000 --> 00:31:46,750 Epi ou ka kalite ajite li. 682 00:31:46,750 --> 00:31:50,310 Men, ou te trully jis siye koupe kèk kantite Bits oswa patikil mayetik 683 00:31:50,310 --> 00:31:51,220 sa a soti nan ki gen kapasite. 684 00:31:51,220 --> 00:31:52,710 >> Se konsa, Erezman, pa gen anyen sou li. 685 00:31:52,710 --> 00:31:55,790 Si ke bagay la nan wout la - epi kouvri je ou yo ak sa yo ki nan frè parèy ou - 686 00:31:55,790 --> 00:31:58,865 ou ka jis kalite rale sa a tout djenn koupe tankou sa. 687 00:31:58,865 --> 00:32:01,900 Men, gen yon sezon prentan ti kras, se konsa dwe okouran de sa ak je ou. 688 00:32:01,900 --> 00:32:03,620 Se konsa, kounye a ou gen vrèman yon ki gen kapasite lage lage. 689 00:32:03,620 --> 00:32:07,090 >> Ak sa ki nan remakab sou sa a se ke nan kòm anpil jan sa a se yon 690 00:32:07,090 --> 00:32:10,830 ti-echèl reprezantasyon nan yon pi gwo difisil kondwi, bagay sa yo super, 691 00:32:10,830 --> 00:32:11,590 super senp. 692 00:32:11,590 --> 00:32:15,170 Si ou zongle anba a nan li, kounye a ke ke bagay metal nan koupe, epi kale 693 00:32:15,170 --> 00:32:20,990 yo louvri yo, tout gen se de moso nan te santi ak ki gen kapasite a lage lage sa yo rele 694 00:32:20,990 --> 00:32:22,930 ak yon moso metal sou andedan an. 695 00:32:22,930 --> 00:32:25,990 >> Apre sa, ale mwatye nan sa ki gen kapasite m 'lan. 696 00:32:25,990 --> 00:32:27,540 Gen ale yon lòt mwatye nan yo. 697 00:32:27,540 --> 00:32:31,375 Men, sa a tout sa ki te k ap vire andedan nan òdinatè w lan nan pase. 698 00:32:31,375 --> 00:32:35,220 699 00:32:35,220 --> 00:32:38,310 >> Li di ankò: yo mete sa a nan pèspektiv, Kòman gwo se pi fò nan ou 700 00:32:38,310 --> 00:32:39,560 difisil kondui jou sa yo? 701 00:32:39,560 --> 00:32:41,960 702 00:32:41,960 --> 00:32:46,230 500 jigokte, yon teraokte, petèt nan yon Desktop òdinatè, 2 teraokte, 3 703 00:32:46,230 --> 00:32:47,630 teraokte, 4 teraokte, dwa? 704 00:32:47,630 --> 00:32:52,480 Sa a se youn megaokte, bay oswa pran, ki pa menm ka anfòm yon MP3 tipik 705 00:32:52,480 --> 00:32:55,310 ankò jou sa yo, oswa kèk menm jan an mizik dosye-a. 706 00:32:55,310 --> 00:32:59,500 >> Se konsa, yon souvni ti kras pou ou jodi a, e tou ede kontèkstualize sa ki 707 00:32:59,500 --> 00:33:03,570 nou pral pran pou yo akòde kounye a nan pwoblèm mete senk. 708 00:33:03,570 --> 00:33:04,820 Se konsa, sa yo se pou ou kenbe. 709 00:33:04,820 --> 00:33:07,340 710 00:33:07,340 --> 00:33:13,370 Se konsa, kite m 'tranzisyon nan kote yo pral depans pset nan pwochen tou. 711 00:33:13,370 --> 00:33:18,470 Se konsa, nou te kounye a mete paj sa a pou - oh, yon koup nan anons byen vit. 712 00:33:18,470 --> 00:33:21,730 >> Sa a Vandredi, si ou ta renmen rantre nan CS50 pou manje midi, ale nan plas la nòmal, 713 00:33:21,730 --> 00:33:23,610 cs50.net/rsvp. 714 00:33:23,610 --> 00:33:25,100 Men, final pwojè - 715 00:33:25,100 --> 00:33:28,520 se konsa pou chak progranm a, nou te afiche nan final pwojè spesifikasyon deja. 716 00:33:28,520 --> 00:33:31,410 Reyalize ke sa pa vle di li nan akòz patikilyèman byento. 717 00:33:31,410 --> 00:33:33,990 Li nan afiche, reyèlman, jis jwenn ou nèg panse sou li. 718 00:33:33,990 --> 00:33:37,620 Ak tout bon, yon super enpòtan pousantaj nan ou pral abòde 719 00:33:37,620 --> 00:33:40,780 pwojè final sou materyèl ke nou pa gen menm vinn nan klas la, 720 00:33:40,780 --> 00:33:42,730 men yo pral kòm byen bonè nan semèn kap vini. 721 00:33:42,730 --> 00:33:45,530 >> Avi, menm si, ki espèk a mande pou yon kèk eleman diferan nan la 722 00:33:45,530 --> 00:33:46,190 final pwojè. 723 00:33:46,190 --> 00:33:49,590 Premye a, nan yon kèk semèn, se yon pre-pwopozisyon, yon imel trè aksidantèl 724 00:33:49,590 --> 00:33:52,760 TF ou a di l 'oswa sa w ap panse sou pou pwojè ou a, ak 725 00:33:52,760 --> 00:33:53,650 Angajman Pa gen. 726 00:33:53,650 --> 00:33:56,710 Pwopozisyon yo pral patikilye ou angajman, li di, isit la, sa a se sa 727 00:33:56,710 --> 00:33:57,770 Mwen ta renmen pou fè pou pwojè mwen. 728 00:33:57,770 --> 00:33:58,250 Ki sa ou panse? 729 00:33:58,250 --> 00:33:58,650 Twò gwo? 730 00:33:58,650 --> 00:33:59,145 Twò piti? 731 00:33:59,145 --> 00:34:00,330 Èske li ka jere? 732 00:34:00,330 --> 00:34:02,230 Men, ou wè espèk a pou plis detay. 733 00:34:02,230 --> 00:34:05,060 >> Koup la semèn aprè sa, se estati rapò, ki se yon Menm jan an tou 734 00:34:05,060 --> 00:34:08,260 aksidantèl imèl bay TF ou a di jis ki jan byen lwen dèyè ou se nan final ou a 735 00:34:08,260 --> 00:34:12,360 egzekisyon pwojè a, ki te swiv pa Hackathon nan CS50 kote tout moun 736 00:34:12,360 --> 00:34:17,520 se envite, ki pral yon evènman soti nan 8:00 PM sou yon sèl aswè jouk 7:00 737 00:34:17,520 --> 00:34:19,150 AM nan denmen maten. 738 00:34:19,150 --> 00:34:22,560 Pitza, menm jan mwen te ka mansyone nan semèn zewo, Wil ap sèvi a 9:00 PM, 739 00:34:22,560 --> 00:34:24,120 Chinwa manje nan 1:00 AM. 740 00:34:24,120 --> 00:34:27,929 Men, si w ap toujou reveye a 5:00 AM, nou pral pran ou nan IHOP pou manje maten. 741 00:34:27,929 --> 00:34:31,310 >> Se konsa, Hackathon a se youn nan pi plis nan eksperyans memorab nan klas la. 742 00:34:31,310 --> 00:34:35,290 Lè sa a, aplikasyon an se akòz, ak Lè sa a, climactic CS50 san Patipri la. 743 00:34:35,290 --> 00:34:38,070 Plis detay sou tout moun sa yo nan semèn k'ap vini yo. 744 00:34:38,070 --> 00:34:40,739 >> Men, kite a tounen nan yon bagay fin vye granmoun lekòl la - 745 00:34:40,739 --> 00:34:41,920 ankò, yon etalaj. 746 00:34:41,920 --> 00:34:45,040 Se konsa, yon etalaj te bèl, paske li rezoud pwoblèm tankou nou te wè jis yon 747 00:34:45,040 --> 00:34:49,290 moman sa de sa ak estrikti elèv ap resevwa yon ti kras nan kontwòl si nou 748 00:34:49,290 --> 00:34:52,405 vle gen yon sèl elèv la, elèv de, elèv twa, elèv dot dot dot, 749 00:34:52,405 --> 00:34:54,400 kèk nimewo abitrè elèv yo. 750 00:34:54,400 --> 00:34:58,850 >> Se konsa, ranje, yon kèk semèn de sa, swooped nan ak rezoud tout pwoblèm nou an pa 751 00:34:58,850 --> 00:35:03,340 konnen davans ki jan anpil bagay sa yo nan kèk kalite nou ta ka vle. 752 00:35:03,340 --> 00:35:07,390 Epi nou te wè ki strukt ka ede nou plis òganize Kòd nou yo ak kenbe 753 00:35:07,390 --> 00:35:11,660 concept menm jan varyab, tankou yon Non ak kay yon, ansanm, pou nou 754 00:35:11,660 --> 00:35:15,570 ka trete yo tankou yon moun antite, andedan nan yo ki gen ti mòso pi piti. 755 00:35:15,570 --> 00:35:17,810 >> Men, ranje gen kèk dezavantaj yo. 756 00:35:17,810 --> 00:35:19,780 Ki sa ki yo se kèk nan dezavantaj yo nou te rankontre 757 00:35:19,780 --> 00:35:22,320 ak ranje konsa byen lwen? 758 00:35:22,320 --> 00:35:23,450 Ki sa ki nan sa? 759 00:35:23,450 --> 00:35:28,130 Fiks gwosè - Se konsa, menm si ou ka kapab asiyen memwa pou yon 760 00:35:28,130 --> 00:35:32,310 etalaj, yon fwa ou konnen ki jan anpil elèv ou gen, konbyen karaktè ou gen 761 00:35:32,310 --> 00:35:35,460 soti nan itilizatè a, yon fwa ou te resevwa lajan etalaj la, ou te kalite pentire 762 00:35:35,460 --> 00:35:36,740 tèt ou nan yon kwen. 763 00:35:36,740 --> 00:35:40,600 >> Paske ou pa ka insert eleman nouvo nan mitan an nan yon etalaj. 764 00:35:40,600 --> 00:35:43,660 Ou pa ka mete plis eleman nan fen yon etalaj. 765 00:35:43,660 --> 00:35:47,750 Vrèman, ou gen resort kreye yon tout etalaj nouvo, kòm nou te diskite, 766 00:35:47,750 --> 00:35:49,320 kopye fin vye granmoun lan nan nouvo an. 767 00:35:49,320 --> 00:35:52,610 Li di ankò, se sa ki maltèt la ki GetString kontra avèk pou ou. 768 00:35:52,610 --> 00:35:56,170 >> Men, ankò, ou pa menm ka insert yon bagay nan mitan an nan etalaj la 769 00:35:56,170 --> 00:35:58,200 si pousantaj la pa antyèman plen. 770 00:35:58,200 --> 00:36:03,010 Pou egzanp, si sa a etalaj isit la nan gwosè sis sèlman gen senk bagay sa yo nan li, 771 00:36:03,010 --> 00:36:06,080 byen, ou ta ka jis fofile yon bagay sou fen an. 772 00:36:06,080 --> 00:36:08,200 Men, sa ki si ou vle insert yon bagay nan mitan an nan la 773 00:36:08,200 --> 00:36:11,280 etalaj, menm si li ka gen senk ou sis bagay sa yo nan li? 774 00:36:11,280 --> 00:36:14,250 >> Oke, nou sa nou te fè lè nou te gen tout volontè moun nou Sur nan 775 00:36:14,250 --> 00:36:15,110 semèn sot pase yo? 776 00:36:15,110 --> 00:36:18,710 Si nou te vle mete yon moun isit la, swa moun sa yo ki jan pou avanse pou pi sa a 777 00:36:18,710 --> 00:36:22,540 fason sa a, oswa moun sa yo ki jan pou avanse pou pi sa a fason sa a, ak ki te vin chè. 778 00:36:22,540 --> 00:36:26,950 Déplacement nan moun nan pèp andedan nan yon etalaj te fini ajoute leve, li Des 779 00:36:26,950 --> 00:36:31,240 nou tan, kon sa anpil nan n okib nou kouri fwa tankou sòt ensèsyon, pou 780 00:36:31,240 --> 00:36:32,550 egzanp, nan ka ki pi mal la. 781 00:36:32,550 --> 00:36:36,520 Se konsa, ranje yo se gwo, men ou gen konnen davans ki jan gwo ou vle yo. 782 00:36:36,520 --> 00:36:38,030 >> Se konsa, OK, isit la nan yon solisyon. 783 00:36:38,030 --> 00:36:43,860 Si m 'pa konnen davans ki jan anpil elèv yo, mwen ta ka gen, mwen konnen yon fwa 784 00:36:43,860 --> 00:36:47,870 Mwen deside, menm si, mwen kole ak ki anpil elèv, poukisa pa fè sa mwen jis toujou 785 00:36:47,870 --> 00:36:51,740 asiyen espas de fwa lavalè jan mwen ta ka panse mwen bezwen? 786 00:36:51,740 --> 00:36:54,450 Eske se sa ke pa yon solisyon rezonab? 787 00:36:54,450 --> 00:36:58,240 >> Pli reyèlman, mwen pa panse ke nou ap pral bezwen plis pase 50 fant 788 00:36:58,240 --> 00:37:02,190 nan yon etalaj pou yon klas mwayen ki gwosè, se konsa kite yo jis wonn moute. 789 00:37:02,190 --> 00:37:07,040 Mwen pral fè 100 fant nan etalaj m 'yo, jis pou nou kapab definitivman jwenn nan 790 00:37:07,040 --> 00:37:10,330 kantite elèv mwen espere gen nan kèk klas mwayen-gwosè. 791 00:37:10,330 --> 00:37:14,320 Se konsa, poukisa pa jis wonn moute ak asiyen plis memwa, anjeneral, pou yon etalaj 792 00:37:14,320 --> 00:37:16,290 pase ou panse ou ta ka menm bezwen? 793 00:37:16,290 --> 00:37:20,190 Ki sa ki nan sa a pushback senp ak sa yo ki lide? 794 00:37:20,190 --> 00:37:21,440 >> Ou jis ap gaspiye memwa. 795 00:37:21,440 --> 00:37:25,350 Literalman chak pwogram ou ekri Lè sa a, se petèt lè l sèvi avèk memwa de fwa lavalè tou 796 00:37:25,350 --> 00:37:26,680 ou aktyèlman bezwen. 797 00:37:26,680 --> 00:37:28,990 Epi ki jis pa santi tankou yon patikilyèman elegant solisyon an. 798 00:37:28,990 --> 00:37:31,990 Anplis, li jis diminye la pwobabilite nan yon pwoblèm. 799 00:37:31,990 --> 00:37:35,300 Si ou rive gen yon kou popilè yon semès epi ou gen 101 800 00:37:35,300 --> 00:37:39,610 elèv yo, pwogram ou an se toujou fondamantalman fè fas a pwoblèm nan menm. 801 00:37:39,610 --> 00:37:44,280 >> Se konsa, Erezman, gen nan yon solisyon a anons sa a oubyen tout pwoblèm nou yo nan fòm lan 802 00:37:44,280 --> 00:37:46,790 nan estrikti done ki pi konplèks pase sa yo 803 00:37:46,790 --> 00:37:47,970 nou te wè konsa byen lwen. 804 00:37:47,970 --> 00:37:50,530 Sa a, mwen reklame, se yon lis lye. 805 00:37:50,530 --> 00:37:51,920 Sa a se yon lis nimewo - 806 00:37:51,920 --> 00:37:54,970 9, 17, 22, 26, ak 34 - 807 00:37:54,970 --> 00:38:00,120 ki te lye ansanm pa fason nan sa ki mwen te trase kòm kèk flèch. 808 00:38:00,120 --> 00:38:03,580 >> Nan lòt mo, si mwen te vle reprezante yon etalaj, mwen ta ka fè 809 00:38:03,580 --> 00:38:04,910 yon bagay tankou sa. 810 00:38:04,910 --> 00:38:07,310 Apre sa, mwen pral mete sa a sou anlè tèt yo nan jis moman sa a. 811 00:38:07,310 --> 00:38:09,970 Mwen te kapab fè - 812 00:38:09,970 --> 00:38:12,520 hello, tout dwa. 813 00:38:12,520 --> 00:38:14,470 Kanpe pa. 814 00:38:14,470 --> 00:38:17,360 New òdinatè isit la, klè - 815 00:38:17,360 --> 00:38:18,090 tout dwa. 816 00:38:18,090 --> 00:38:21,730 >> Se konsa, si mwen gen nimewo sa yo nan etalaj - 817 00:38:21,730 --> 00:38:28,880 9, 17, 22, 26, 24 - 818 00:38:28,880 --> 00:38:30,530 pa nesesèman selon echèl la. 819 00:38:30,530 --> 00:38:33,730 Tout dwa, se konsa isit la se etalaj mwen - 820 00:38:33,730 --> 00:38:34,980 oh Bondye mwen an. 821 00:38:34,980 --> 00:38:38,700 822 00:38:38,700 --> 00:38:40,395 Tout dwa, se konsa isit la se etalaj mwen. 823 00:38:40,395 --> 00:38:44,110 824 00:38:44,110 --> 00:38:45,050 Oh Bondye mwen an. 825 00:38:45,050 --> 00:38:48,820 >> [Ri] 826 00:38:48,820 --> 00:38:49,440 >> DAVID Malan: imitasyon. 827 00:38:49,440 --> 00:38:52,330 Li nan efò twòp ale tounen ak ranje sa, Se konsa, gen - 828 00:38:52,330 --> 00:38:54,290 26. 829 00:38:54,290 --> 00:38:57,650 Se konsa, nou gen sa a etalaj de 9, 17, 22, 26, ak 34. 830 00:38:57,650 --> 00:39:00,260 Pou moun nan ou ka wè nan anbarasan erè mwen jis te fè, 831 00:39:00,260 --> 00:39:00,830 gen li se. 832 00:39:00,830 --> 00:39:04,490 >> Se konsa, mwen reklamasyon ke sa a se yon trè efikas solisyon an. 833 00:39:04,490 --> 00:39:07,310 Mwen te resevwa lajan kòm antye anpil kòm Mwen bezwen - yon sèl, de, twa, 834 00:39:07,310 --> 00:39:09,100 kat, senk, oswa sis - 835 00:39:09,100 --> 00:39:11,660 epi mwen te Lè sa a, ki estoke chif yo andedan nan sa a etalaj. 836 00:39:11,660 --> 00:39:15,220 Men, si, lè sa a, mwen vle insert yon valè tankou nimewo a 8? 837 00:39:15,220 --> 00:39:16,100 Oke, kote li ale? 838 00:39:16,100 --> 00:39:18,530 Sipoze mwen vle insert yon kantite tankou 20. 839 00:39:18,530 --> 00:39:19,790 Oke, kote li ale? 840 00:39:19,790 --> 00:39:23,160 Yon kote gen nan mitan an, oswa nimewo a 35 gen yo ale 841 00:39:23,160 --> 00:39:24,010 yon kote nan fen an. 842 00:39:24,010 --> 00:39:25,320 Men, mwen tout soti nan espas. 843 00:39:25,320 --> 00:39:29,120 >> Se konsa, sa a se yon defi fondamantal nan ranje ki solisyon an. 844 00:39:29,120 --> 00:39:32,280 Mwen te reklame yon ti moman de sa, GetString rezoud pwoblèm sa a. 845 00:39:32,280 --> 00:39:37,380 Si ou vle insert yon nimewo sizyèm nan sa a etalaj, ki sa ki omwen yon 846 00:39:37,380 --> 00:39:40,090 solisyon ou ka tonbe sou do yo pou asire w, jis tankou nou fè ak GetString? 847 00:39:40,090 --> 00:39:44,340 848 00:39:44,340 --> 00:39:46,030 Ki sa ki nan sa? 849 00:39:46,030 --> 00:39:48,190 >> Oke, fè li pi gwo se pi fasil te di pase fè. 850 00:39:48,190 --> 00:39:52,810 Nou pa ka nesesèman fè etalaj la pi gwo, men sa ki nou ka fè? 851 00:39:52,810 --> 00:39:56,570 Fè yon etalaj nouvo sa a, se pi gwo, ki gen yon gwosè , 6, oswa petèt gwosè 10, si nou vle 852 00:39:56,570 --> 00:40:00,490 jwenn devan yo nan bagay sa yo, ak Lè sa a kopye etalaj la fin vye granmoun nan nouvo a, ak Lè sa a, 853 00:40:00,490 --> 00:40:01,680 libere etalaj la fin vye granmoun. 854 00:40:01,680 --> 00:40:05,770 >> Men, sa ki lè nan kouri kounye a nan pwosesis sa a? 855 00:40:05,770 --> 00:40:09,870 Li nan gwo O n, paske kopye la ki pral koute ou kèk inite nan 856 00:40:09,870 --> 00:40:13,480 tan, se konsa pa konsa pou sa ideyal si nou gen asiyen yon etalaj nouvo, ki pral 857 00:40:13,480 --> 00:40:15,610 te konsome de fwa lavalè memwa tanporèman. 858 00:40:15,610 --> 00:40:16,660 Kopi fin vye granmoun nan nouvo - 859 00:40:16,660 --> 00:40:18,800 Mwen vle di, li nan jis yon tèt fè mal, ki se, ankò, pou rezon sa a te ekri 860 00:40:18,800 --> 00:40:19,920 GetString pou ou. 861 00:40:19,920 --> 00:40:21,380 >> Se konsa, sa ki ka nou fè olye? 862 00:40:21,380 --> 00:40:25,000 Oke, sa ki si estrikti done nou an aktyèlman gen twou vid ki genyen nan li? 863 00:40:25,000 --> 00:40:30,790 Sipoze ke mwen detann objektif mwen pou yo gen fragman ki toupre yo nan memwa, kote 9yèm ane 864 00:40:30,790 --> 00:40:34,500 se dwa pwochen nan 17, ki se dwa akote 22, ak sou sa. 865 00:40:34,500 --> 00:40:39,570 >> Men, sipoze ke 9yèm ane kapab sou isit la nan RAM, ak 17 ka sou isit la nan RAM, 866 00:40:39,570 --> 00:40:40,990 ak 22 ka sou isit la nan RAM. 867 00:40:40,990 --> 00:40:43,610 Nan lòt mo, mwen pa bezwen yo menm tounen nan do ankò. 868 00:40:43,610 --> 00:40:47,850 Mwen jis gen yon jan kanmenm fil yon zegwi nan chak nan nimewo sa yo, oswa chak 869 00:40:47,850 --> 00:40:51,010 nan sa yo nœuds, menm jan nou ap rele nan rektang kòm mwen te trase yo, yo 870 00:40:51,010 --> 00:40:55,670 sonje ki jan pou li ale nan dènye a sa yo ne soti nan premye a. 871 00:40:55,670 --> 00:40:59,940 >> Se konsa, sa a se pwogram lan konstwi nou te wè byen dènyèman ak ki mwen 872 00:40:59,940 --> 00:41:03,030 ka aplike ki fil, oswa trase isit la, ak ki mwen kapab 873 00:41:03,030 --> 00:41:05,430 aplike sa yo flèch? 874 00:41:05,430 --> 00:41:06,500 Endikasyon Se konsa,, dwa? 875 00:41:06,500 --> 00:41:09,560 Si m 'asiyen pa sèlman yon Int, men ne yon - ak pa 876 00:41:09,560 --> 00:41:10,810 ne, mwen jis vle di veso. 877 00:41:10,810 --> 00:41:12,900 Ak vizyèlman, mwen vle di yon rektang. 878 00:41:12,900 --> 00:41:16,420 Se konsa, yon ne aparamman bezwen a ki genyen de valè - 879 00:41:16,420 --> 00:41:21,490 Int nan tèt li, ak lè sa a, kòm enplisit pa mwatye nan pati anba nan rektang lan, 880 00:41:21,490 --> 00:41:23,010 ase espas pou yon Int. 881 00:41:23,010 --> 00:41:26,130 >> Se konsa, jis panse devan yo isit la, Kòman gwo se sa a ne, sa a 882 00:41:26,130 --> 00:41:27,170 veso nan kesyon? 883 00:41:27,170 --> 00:41:29,250 Konbyen bytes pou Int a? 884 00:41:29,250 --> 00:41:31,310 Assume 4, si li nan menm bagay la tou kòm dabitid. 885 00:41:31,310 --> 00:41:33,270 Lè sa a, ki jan anpil bytes pou konsèy la? 886 00:41:33,270 --> 00:41:33,650 4. 887 00:41:33,650 --> 00:41:37,940 Se konsa, sa a veso, oswa ne sa a, se yo pral yon estrikti ki 8-multiple. 888 00:41:37,940 --> 00:41:41,760 Oh, ak sa a, se yon konyensidans kontan ke nou jis prezante sa a nosyon nan 889 00:41:41,760 --> 00:41:44,400 yon struct, oswa yon estrikti C. 890 00:41:44,400 --> 00:41:48,890 >> Se konsa, mwen reklamasyon ke mwen vle pran yon etap nan direksyon sa a sofistike plis 891 00:41:48,890 --> 00:41:52,560 egzekisyon pou yon lis nimewo, yon lye lis nimewo, mwen bezwen fè yon 892 00:41:52,560 --> 00:41:56,920 ti kras pi plis panse moute devan ak deklare pa sèlman yon Int, men struct yon 893 00:41:56,920 --> 00:41:58,620 ke mwen ap rele, konvansyonèl isit la, ne. 894 00:41:58,620 --> 00:42:01,630 Nou te kapab rele li anyen nou vle, men ne a pwal tematik nan yon anpil 895 00:42:01,630 --> 00:42:03,560 nan bagay sa yo nou kòmanse kap nan kounye a. 896 00:42:03,560 --> 00:42:06,480 >> Anndan nan ki ne se yon n Int. 897 00:42:06,480 --> 00:42:09,350 Lè sa a, sa a sentaks, yon ti kras etranj nan premye gade - 898 00:42:09,350 --> 00:42:12,960 struct ne * kap vini an. 899 00:42:12,960 --> 00:42:16,900 Oke pictorially an, sa sa? 900 00:42:16,900 --> 00:42:21,000 Sa se mwatye nan pati anba nan rektang lan ke nou wè 901 00:42:21,000 --> 00:42:22,730 jis yon ti moman de sa. 902 00:42:22,730 --> 00:42:27,600 >> Men, poukisa mwen di struct ne * kòm opoze a jis * ne? 903 00:42:27,600 --> 00:42:31,370 Paske si ke konsèy ap montre nan yon lòt ne, li jis nan 904 00:42:31,370 --> 00:42:32,760 adrès nan yon ne. 905 00:42:32,760 --> 00:42:35,630 Sa a ki konsistan avèk ki sa nou te gen diskite sou endikasyon konsa byen lwen. 906 00:42:35,630 --> 00:42:39,690 Men, poukisa, si mwen fè reklamasyon estrikti sa a se rele ne, Mwen te di struct 907 00:42:39,690 --> 00:42:42,660 ne andedan isit la? 908 00:42:42,660 --> 00:42:43,190 >> Egzakteman. 909 00:42:43,190 --> 00:42:46,490 Li nan sòt de yon reyalite estipid nan C. Tipedèf a, se konsa pale, pa gen anyen an 910 00:42:46,490 --> 00:42:47,220 rive fèt ankò. 911 00:42:47,220 --> 00:42:48,510 C se super literal. 912 00:42:48,510 --> 00:42:51,050 Li li tèt Kòd ou a anba a, gòch a dwat. 913 00:42:51,050 --> 00:42:54,930 Men, jouk li frape ki virgules sou la liy anba a, devine kisa ki pa 914 00:42:54,930 --> 00:42:57,590 egziste kòm yon kalite done? 915 00:42:57,590 --> 00:42:59,060 Ne, quote unquote ne. 916 00:42:59,060 --> 00:43:03,050 >> Men, paske se nan sil a pi plis deklarasyon mwen te fè sou liy nan premye - 917 00:43:03,050 --> 00:43:05,340 tipedèf struct ne - 918 00:43:05,340 --> 00:43:08,790 paske ki te vin an premye, anvan an aparèy òtopedik Curly, ki nan sòt de tankou 919 00:43:08,790 --> 00:43:11,800 pre-edike sonnen sa, ou konnen ki sa, ban m 'yon struct 920 00:43:11,800 --> 00:43:13,570 rele ne struct. 921 00:43:13,570 --> 00:43:16,270 Franchman, mwen pa renmen rele bagay sa yo struct ne, struct ne tout 922 00:43:16,270 --> 00:43:17,090 nan tout Kòd mwen. 923 00:43:17,090 --> 00:43:20,660 Men, mwen pral sèlman sèvi ak li yon fwa, jis andedan, pou m 'ka efektivman 924 00:43:20,660 --> 00:43:25,010 kreye yon sòt de referans sikilè, pa yon konsèy tèt mwen se pou chak, men yon 925 00:43:25,010 --> 00:43:29,400 konsèy nan yon lòt nan yon kalite ki idantik. 926 00:43:29,400 --> 00:43:32,330 >> Se konsa, li sanble ke sou yon estrikti done tankou sa a, gen yon kèk 927 00:43:32,330 --> 00:43:34,470 operasyon ke sa ta kapab nan enterè nou. 928 00:43:34,470 --> 00:43:37,460 Nou ta ka vle insert nan yon lis tankou sa a. 929 00:43:37,460 --> 00:43:39,850 Nou ta ka vle efase nan yon lis tankou sa a. 930 00:43:39,850 --> 00:43:43,490 Nou ta ka vle rechèch lis la pou yon valè, oswa plis jeneralman, Traverse. 931 00:43:43,490 --> 00:43:46,410 Lè Traverse se jis yon fason anpenpan nan li di kòmanse sou bò gòch la yo epi li deplase tout 932 00:43:46,410 --> 00:43:47,650 wout la sou bò dwat la. 933 00:43:47,650 --> 00:43:52,640 >> Ak Avi, menm avèk sa a plis yon ti kras sofistike done estrikti, se pou 934 00:43:52,640 --> 00:43:56,510 m 'pwopoze ke nou kapab prete kèk nan ide yo nan de semèn ki sot pase yo ak 935 00:43:56,510 --> 00:43:58,410 aplike yon fonksyon rele rechèch tankou sa a. 936 00:43:58,410 --> 00:44:01,360 Li nan ale nan retounen vre oubyen fo, ki endike, repons lan se wi oswa 937 00:44:01,360 --> 00:44:03,390 pa gen okenn, n se nan lis la. 938 00:44:03,390 --> 00:44:05,960 Agiman dezyèm li se yon konsèy nan lis nan tèt li, se konsa yon 939 00:44:05,960 --> 00:44:07,920 konsèy nan yon ne. 940 00:44:07,920 --> 00:44:10,350 >> Tout mwen pral Lè sa a, fè se deklare yon varyab pou yon ti tan. 941 00:44:10,350 --> 00:44:12,730 Nou pral rele li ptr pa konvansyon, pou konsèy. 942 00:44:12,730 --> 00:44:15,220 Apre sa, mwen bay li egal a la kòmanse nan lis la. 943 00:44:15,220 --> 00:44:16,680 >> Epi, koulye a remake bouk la pandan y ap. 944 00:44:16,680 --> 00:44:20,640 Se konsa, lontan ke konsèy se pa egal nil, mwen pral tcheke. 945 00:44:20,640 --> 00:44:24,520 Èske flèch konsèy n egal a n nan ki te pase nan? 946 00:44:24,520 --> 00:44:26,410 Epi rete tann yon minit - nouvo moso nan sentaks. 947 00:44:26,410 --> 00:44:29,324 Ki sa ki se flèch tout nan yon toudenkou? 948 00:44:29,324 --> 00:44:30,574 Yeah? 949 00:44:30,574 --> 00:44:34,200 950 00:44:34,200 --> 00:44:34,810 >> Egzakteman. 951 00:44:34,810 --> 00:44:38,860 Se konsa, Lè nou konsidere ke yon kèk minit de sa, nou itilize dot notasyon a gen aksè a yon bagay 952 00:44:38,860 --> 00:44:43,080 andedan nan yon struct a, si varyab la ou te se pa struct la 953 00:44:43,080 --> 00:44:47,420 tèt li, men yon konsèy nan yon struct, Erezman, yon moso nan sentaks ki 954 00:44:47,420 --> 00:44:48,620 finalman fè sans entwisyon. 955 00:44:48,620 --> 00:44:52,360 Flèch la vle di yo swiv konsèy la, tankou flèch nou yo tipikman vle di 956 00:44:52,360 --> 00:44:56,570 pictorially, epi ale nan done anndan jaden. 957 00:44:56,570 --> 00:44:59,700 Se konsa, flèch se menm bagay la kòm dot, men ou sèvi ak li lè ou gen yon konsèy. 958 00:44:59,700 --> 00:45:05,270 >> Se konsa, jis Rekapitilasyon lè sa a, si n jaden an andedan nan struct a rele konsèy 959 00:45:05,270 --> 00:45:07,760 egal egal n, retounen vre. 960 00:45:07,760 --> 00:45:11,970 Sinon, liy sa a isit la - konsèy egal konsèy kap vini an. 961 00:45:11,970 --> 00:45:17,540 Se konsa, sa sa a ap fè, avi, se si mwen k lonje dwèt nan struct la 962 00:45:17,540 --> 00:45:21,430 ki gen 9, ak 9 se pa nimewo a M 'ap chache - ta kwè m' ap chache 963 00:45:21,430 --> 00:45:22,830 pou n egal 50 - 964 00:45:22,830 --> 00:45:25,930 Mwen pral mete ajou konsèy pou yon ti tan mwen pa nan pwen sa a nan ne 965 00:45:25,930 --> 00:45:31,190 ankò, men konsèy flèch kap vini yo, ki ki pral mete m 'moute isit la. 966 00:45:31,190 --> 00:45:34,270 >> Koulye a, mwen reyalize se yon gwo toubouyon entwodiksyon. 967 00:45:34,270 --> 00:45:37,380 Nan Mèkredi, nou pral aktyèlman fè sa a ak kèk moun ak ak kèk plis 968 00:45:37,380 --> 00:45:38,900 Kòd nan yon plus apante. 969 00:45:38,900 --> 00:45:42,990 Men, reyalize, nou kounye a fè done nou an estrikti pi konplèks pou ke nou 970 00:45:42,990 --> 00:45:45,780 algoritm ka jwenn plis efikas, ki a pwal voulu pou 971 00:45:45,780 --> 00:45:50,500 sis pset, lè nou chaje nan, ankò, sa yo 150,000 se mo, men yo bezwen yo fè sa 972 00:45:50,500 --> 00:45:55,650 avèk efikasite, ak depreferans, kreye yon pwogram ki kouri pou itilizatè nou yo pa nan 973 00:45:55,650 --> 00:46:00,460 lineyè, pa nan N okib, men nan konstan tan, nan ideyal la. 974 00:46:00,460 --> 00:46:02,300 >> Nou pwal wè ou nan Mèkredi. 975 00:46:02,300 --> 00:46:07,240 >> Oratè: Nan CS50 kap vini an, David bliye ka baz l 'yo. 976 00:46:07,240 --> 00:46:12,770 >> DAVID Malan: Epi sa a, ki jan ou voye mesaj tèks ak C. Kisa - a 977 00:46:12,770 --> 00:46:14,020 >> [Divès kalite mesaj tèks NOTIFIKASYON son] 978 00:46:14,020 --> 00:46:19,734