1 00:00:00,000 --> 00:00:10,970 >> [Jwe mizik] 2 00:00:10,970 --> 00:00:12,536 >> DAVID J. Malan: Tout dwa. 3 00:00:12,536 --> 00:00:13,392 >> [Ri] 4 00:00:13,392 --> 00:00:14,240 >> Byenveni tounen. 5 00:00:14,240 --> 00:00:14,990 Sa a se CS50. 6 00:00:14,990 --> 00:00:16,890 Lè sa a fen semèn senk. 7 00:00:16,890 --> 00:00:20,020 Men, moute jouk koulye a, nou te bèl anpil te pran pou yo akòde ke gen 8 00:00:20,020 --> 00:00:23,480 egziste sa a du, rezone, ke ou te te envoke pa fason pou sa a 9 00:00:23,480 --> 00:00:27,100 lòt zouti ki rele Fè ke yon jan kanmenm maji konvèti Kòd sous ou 10 00:00:27,100 --> 00:00:31,350 nan Kòd objè, zewo yo ak moun yo ki CPU òdinatè ou a, santral 11 00:00:31,350 --> 00:00:33,410 inite pwosesis, aktyèlman konprann. 12 00:00:33,410 --> 00:00:36,770 Men, li vire soti gen yon nimewo ki nan ale sou anba kapo a nan 13 00:00:36,770 --> 00:00:38,690 ant opinyon ak pwodiksyon. 14 00:00:38,690 --> 00:00:41,800 >> Apre sa, mwen ta renmen pwopoze ke nou kò ki soti nan yon detay ti kras pi plis nan 15 00:00:41,800 --> 00:00:45,130 etap sa yo kat yo, yo gen yon bagay yo rele pre-pwosesis, yon bagay 16 00:00:45,130 --> 00:00:48,300 rele élaboration, ki nou te wè, yon bagay yo rele rasanble, ak 17 00:00:48,300 --> 00:00:49,420 yon bagay yo rele ki lye ak. 18 00:00:49,420 --> 00:00:53,270 Se konsa, moute jouk koulye a, nan kèk nan nou an pwogram yo, nou te gen byen file gen ladan. 19 00:00:53,270 --> 00:00:56,650 Plis dènyèman nou te gen kèk byen file defini pou konstan. 20 00:00:56,650 --> 00:01:00,660 Se konsa, li sanble ke bagay sa yo ke yo genyen prefiks yo ak senbòl regle oswa 21 00:01:00,660 --> 00:01:04,150 senbòl nan liv yo se pre-processeur direktiv. 22 00:01:04,150 --> 00:01:07,960 Se jis yon fason anpenpan nan li di li nan yon liy nan kòd ki la aktyèlman 23 00:01:07,960 --> 00:01:12,280 konvèti nan yon lòt bagay anvan an òdinatè menm eseye konvèti ou 24 00:01:12,280 --> 00:01:13,800 pwogram nan zewo ak moun yo. 25 00:01:13,800 --> 00:01:19,000 >> Pou egzanp, byen file gen ladan estanda I / O. H, bèl anpil jis vle di ale 26 00:01:19,000 --> 00:01:24,010 devan, gen tan pwan sa ki nan dosye yo stdio.h epi kole yo dwa gen. 27 00:01:24,010 --> 00:01:25,880 Se konsa, pa gen okenn zewo ak moun yo nan pwen sa a ankò. 28 00:01:25,880 --> 00:01:27,470 Li nan reyèlman jis yon sibstitisyon. 29 00:01:27,470 --> 00:01:30,790 Epi sa a, fè pandan sa yo rele an- pre-pwosesis etap, lè ou 30 00:01:30,790 --> 00:01:34,230 aktyèlman kouri sonnen oswa espesyalman Fè nan pifò ka yo. 31 00:01:34,230 --> 00:01:36,950 Se konsa, tout sa ki te pase premye otomatikman konsa byen lwen. 32 00:01:36,950 --> 00:01:38,800 >> Lè sa a, vini etap la konpilasyon. 33 00:01:38,800 --> 00:01:40,920 Men, nou ve yo te twò senplifye konpilasyon. 34 00:01:40,920 --> 00:01:45,060 Konpile yon pwogram vrèman vle di pran an li soti nan yon bagay tankou C, 35 00:01:45,060 --> 00:01:48,430 Kòd sous nou ve yo te ekri, desann nan yon bagay yo rele asanble. 36 00:01:48,430 --> 00:01:52,900 Asanble lang se yon pi ba nivo lang sa, Erezman, nou pap 37 00:01:52,900 --> 00:01:55,480 yo te anpil okazyon ekri sa a semès la. 38 00:01:55,480 --> 00:01:59,100 Men, li la nan nivo ki pi ba a nan la sans ke ou literalman kòmanse ekri 39 00:01:59,100 --> 00:02:04,270 adisyon ak soustraksyon ak anpil anpil pitit ak chaj soti nan memwa ak sove nan memwa, nan 40 00:02:04,270 --> 00:02:08,259 anpil debaz enstriksyon ki yon òdinatè, anba kapo a, 41 00:02:08,259 --> 00:02:09,639 aktyèlman konprann. 42 00:02:09,639 --> 00:02:14,930 >> Anfen, rasanble pran ke lang zewo yo ak moun yo ke nou ve yo te 43 00:02:14,930 --> 00:02:16,190 ki dekri konsa byen lwen. 44 00:02:16,190 --> 00:02:19,270 Men, se vre wi: anfen, gen nan sa yo rele an ki lye ak faz, ki nou pral 45 00:02:19,270 --> 00:02:22,360 wè nan jis moman sa yon, ki konbine zewo ou ak moun yo ak zewo ak 46 00:02:22,360 --> 00:02:24,870 yo menm lòt moun anvan ou te kreye. 47 00:02:24,870 --> 00:02:26,660 >> Se konsa, konsidere sa a super pwogram ki senp. 48 00:02:26,660 --> 00:02:27,560 Li te soti nan Semèn 1. 49 00:02:27,560 --> 00:02:29,610 Li jis te di, Bonjou Mondyal la, sou ekran an. 50 00:02:29,610 --> 00:02:30,920 Nou kouri sa a nan sonnen. 51 00:02:30,920 --> 00:02:33,200 Oswa nou kouri l 'nan fè ki kouri sonnen. 52 00:02:33,200 --> 00:02:36,170 Men, outputted la nan moman kote kèk zewo ak moun yo. 53 00:02:36,170 --> 00:02:38,100 Men, li vire soti gen nan yon etap entèmedyè. 54 00:02:38,100 --> 00:02:40,460 Si mwen ale sou isit la - Wouch, pa t ' vle wè l 'ankò. 55 00:02:40,460 --> 00:02:44,800 Si mwen ale sou isit la yo aparèy mwen ak mwen louvri moute hello.c, isit la 56 00:02:44,800 --> 00:02:46,160 se ke pwogram menm. 57 00:02:46,160 --> 00:02:48,600 Ak sa ki mwen pral fè nan tèminal mwen fenèt isit la se mwen pral 58 00:02:48,600 --> 00:02:51,430 kouri sonnen olye ke Fè, ki automatise tout kat nan 59 00:02:51,430 --> 00:02:52,870 moun ki etap pou nou. 60 00:02:52,870 --> 00:02:58,620 Ak mwen se pral fè rezone-S ak Lè sa a, hello.c ak Lè sa a antre. 61 00:02:58,620 --> 00:03:00,590 >> Apre sa, mwen jwenn yon èd memwa kliyote ankò, sa ki byen. 62 00:03:00,590 --> 00:03:05,280 Epi, koulye a nan yon lòt fenèt yon ti kras pi gwo, Mwen pral louvri moute jdi nan isit la. 63 00:03:05,280 --> 00:03:09,610 Men, mwen pral louvri moute yon dosye sa, vire soti, yo rele hello.s sa a 64 00:03:09,610 --> 00:03:11,870 ki gen ladan lang asanble Mwen refere yo bay pi bonè. 65 00:03:11,870 --> 00:03:15,060 Lè sa a se sa ki rele asanble lang, san patipri ba nivo 66 00:03:15,060 --> 00:03:18,470 enstriksyon ki CPU Intel ou oswa tou sa li se sa a, se andedan 67 00:03:18,470 --> 00:03:19,350 konprann. 68 00:03:19,350 --> 00:03:24,480 Men, mov se pou deplase. rele se pou rele, yon fonksyon nivo ki ba anpil. 69 00:03:24,480 --> 00:03:26,380 sub se pou soustrè. 70 00:03:26,380 --> 00:03:30,370 >> Se konsa, lè ou gen yon CPU patikilye andedan nan òdinatè w lan, sa ki fè li 71 00:03:30,370 --> 00:03:34,300 distenk, kont lòt proseseur sou la mache, se ki enstriksyon li 72 00:03:34,300 --> 00:03:39,460 konprann epi byen souvan yo ki jan efikas li se, konbyen vit li se nan egzekite kèk 73 00:03:39,460 --> 00:03:40,380 nan tout sa yo enstriksyon yo. 74 00:03:40,380 --> 00:03:45,150 Koulye a, pou plis enfòmasyon sou sa a, ou ka pran ann otòn pwochen CS61 nan kolèj la. 75 00:03:45,150 --> 00:03:48,170 Men, isit la nou gen, pou egzanp, yon kèk Out bann kod ki ta ka gade yo konnen yo. 76 00:03:48,170 --> 00:03:50,150 hello.c se non an nan pwogram nan. 77 00:03:50,150 --> 00:03:51,070 >> . Tèks - 78 00:03:51,070 --> 00:03:54,190 gen nan pa anpil nan enterè gen jis kounye a, sonje ke tèks la 79 00:03:54,190 --> 00:03:59,190 segman, kòm nan Lendi, se kote nan memwa pwogram ou an aktyèlman fini moute. 80 00:03:59,190 --> 00:04:01,330 Se konsa, sa a, se omwen vagman abitye a. 81 00:04:01,330 --> 00:04:03,730 Isit la, nan kou, se yon chwa nan prensipal fonksyon nou an. 82 00:04:03,730 --> 00:04:07,220 Defile desann, sa yo, al gade nan bagay sa yo anrejistre yo rele, anpil ti fragman nan 83 00:04:07,220 --> 00:04:09,190 andedan memwa nan CPU aktyèl ou yo. 84 00:04:09,190 --> 00:04:12,930 Men, si mwen desann menm pi lwen, mwen wè kèk sòt 85 00:04:12,930 --> 00:04:14,240 endirèk mansyone nan ASCII. 86 00:04:14,240 --> 00:04:17,120 Lè sa a, tout bon, se ke fisèl, hello, vigil, nan lemonn. 87 00:04:17,120 --> 00:04:20,079 >> Se konsa, depi lontan istwa kout, sa a te gen k ap pase pou ou, otomatikman, 88 00:04:20,079 --> 00:04:22,140 anba kapo a tout tan sa a. 89 00:04:22,140 --> 00:04:26,450 Men, sa ki te pase reyèlman se yon fwa ou te kouri sonnen, oswa pa fason pou 90 00:04:26,450 --> 00:04:29,150 Fè, w ap vin an premye, nan kòd la sous, nan 91 00:04:29,150 --> 00:04:30,700 sa yo rele lang asanble. 92 00:04:30,700 --> 00:04:35,210 Lè sa a, rezone se konvèti sa a asanble lang desann nan zewo ak moun yo. 93 00:04:35,210 --> 00:04:38,340 Lè sa a se glise a ke nou te kòmanse diskisyon nou an nan Semèn 0 sou - 94 00:04:38,340 --> 00:04:39,840 ak Lè sa a Semèn 1 sou. 95 00:04:39,840 --> 00:04:44,030 Lè sa a, finalman, moun zewo ak moun yo yo konbine avèk zewo yo ak moun yo 96 00:04:44,030 --> 00:04:47,190 nan men moun bibliyotèk nou ve yo te pran pou yo akòde tankou Creole mwen an / O oswa 97 00:04:47,190 --> 00:04:50,010 Bibliyotèk fisèl oswa menm bibliyotèk la CS50. 98 00:04:50,010 --> 00:04:54,200 >> Se konsa, nan penti foto sa a plis vizyèlman, nou gen hello.c. 99 00:04:54,200 --> 00:04:57,220 Epi li, nan kou, itilize printf la fonksyone vle di, alo nan lemonn. 100 00:04:57,220 --> 00:05:01,810 Etap la konpilasyon pran li desann nan ki dosye nou jis te wè hello.s, menm 101 00:05:01,810 --> 00:05:04,290 menm si ke nan tipikman efase otomatikman pou ou. 102 00:05:04,290 --> 00:05:06,050 Men, sa a kòd la tout pèp nan etap la presegondè. 103 00:05:06,050 --> 00:05:09,750 Lè sa a, lè nou rasanble tout pèp la lang, se konsa pale, sa a, se lè ou 104 00:05:09,750 --> 00:05:10,830 jwenn sa yo zewo ak moun yo. 105 00:05:10,830 --> 00:05:13,920 Se konsa, nou te agrandi nan efektivman jodi a sou ki sa nou ve yo te pran pou yo akòde, 106 00:05:13,920 --> 00:05:16,430 vle di pral Kòd sous fè objeksyon kòd. 107 00:05:16,430 --> 00:05:18,850 >> Men, alafen, kounye a ke foto menm - kite a bouskile li sou nan 108 00:05:18,850 --> 00:05:20,020 bò men gòch. 109 00:05:20,020 --> 00:05:22,880 Men, sonje ke nan tèt la gen Mwen mansyone stdio.h. 110 00:05:22,880 --> 00:05:25,030 Sa se yon dosye ke nou te enkli nan prèske tout nan la 111 00:05:25,030 --> 00:05:26,250 pwogram nou te ekri nan Liv la. 112 00:05:26,250 --> 00:05:28,830 Epi sa a, dosye a ki gen ladan jwenn kopi kopye, 113 00:05:28,830 --> 00:05:30,350 efektivman anlè Kòd ou. 114 00:05:30,350 --> 00:05:34,170 Men, li sanble ke, sou yon òdinatè sistèm yon kote, gen nan prezimableman yon 115 00:05:34,170 --> 00:05:39,150 stdio.c dosye ke yon moun te ekri ane de sa ki aplike nan tout la 116 00:05:39,150 --> 00:05:41,870 fonksyon ki te deklare nan stdio.h. 117 00:05:41,870 --> 00:05:45,465 >> Koulye a, an reyalite li la pwobableman pa sou ou Mac oswa PC ou oswa menm nan la 118 00:05:45,465 --> 00:05:47,660 CS50 aparèy la se yon anvan tout koreksyon C kòd. 119 00:05:47,660 --> 00:05:52,710 Yon moun ki deja konpile li epi li enkli . O dosye pou Kòd objè oswa. Yon 120 00:05:52,710 --> 00:05:56,020 dosye, ki vle di yon bibliyotèk pataje sa a te pre-enstale ak 121 00:05:56,020 --> 00:05:57,240 pre-konpile pou ou. 122 00:05:57,240 --> 00:06:01,950 Men, si ke gen tout bon ki egziste sou stdio.c konpitè nou an nan paralèl 123 00:06:01,950 --> 00:06:02,650 ak sonnen. 124 00:06:02,650 --> 00:06:04,960 Nan Kòd ou ke yo te konpile ansanm, yo sanble. 125 00:06:04,960 --> 00:06:09,200 se stdio.c nan Kòd yo te konpile ak reyini, se konsa ke sa a trè dènye 126 00:06:09,200 --> 00:06:13,730 etap, desann isit la, nou gen yon jan kanmenm lyen, se konsa pale, zewo ou ak moun yo 127 00:06:13,730 --> 00:06:18,430 ak li oswa li zewo ak moun yo nan yon sèl senp pwogram ki finalman se 128 00:06:18,430 --> 00:06:20,540 rele jis Hello. 129 00:06:20,540 --> 00:06:23,340 >> Se konsa, ki nan tout nan majik la sa a, se te pase konsa byen lwen. 130 00:06:23,340 --> 00:06:26,430 Epi yo pral kontinye pran sa yo pwosesis pou yo akòde, men mwen reyalize 131 00:06:26,430 --> 00:06:28,750 gen nan yon anpil nan detay juicy ale sou anba a. 132 00:06:28,750 --> 00:06:31,920 Lè sa a se sa ki fè ou òdinatè ki gen Intel andedan 133 00:06:31,920 --> 00:06:33,940 patikilyèman diferan. 134 00:06:33,940 --> 00:06:37,020 >> Se konsa, sou ki nòt, si ou ta renmen rantre nan nou pou manje midi sa a Vandredi, fè ale 135 00:06:37,020 --> 00:06:41,570 cs50.net/rsvp la kote dabitid, 1:15 PM sa a Vandredi. 136 00:06:41,570 --> 00:06:43,400 Epi, koulye a yon anons kèk. 137 00:06:43,400 --> 00:06:44,670 Se konsa, nou gen kèk bon nouvèl. 138 00:06:44,670 --> 00:06:45,970 Epi nou gen kèk move nouvèl. 139 00:06:45,970 --> 00:06:47,260 Kòmanse ak kèk bon nouvèl isit la. 140 00:06:47,260 --> 00:06:52,038 141 00:06:52,038 --> 00:06:54,510 >> [Rèl] 142 00:06:54,510 --> 00:06:54,710 >> Tout dwa. 143 00:06:54,710 --> 00:06:56,670 Oke, li la teknikman yon jou fèt, se konsa li nan pa tèlman yon kado nan men nou. 144 00:06:56,670 --> 00:06:58,030 Men, Lè sa a, move nouvèl yo nan kou. 145 00:06:58,030 --> 00:07:00,550 146 00:07:00,550 --> 00:07:01,880 >> [Rèl] 147 00:07:01,880 --> 00:07:03,530 >> Mwen te pase anpil tan sou sa yo Animations. 148 00:07:03,530 --> 00:07:04,690 >> [Ri] 149 00:07:04,690 --> 00:07:07,000 >> Li pral fè yon sesyon revizyon sa a ap vini Lendi. 150 00:07:07,000 --> 00:07:08,340 Li k ap pase yo dwe nan 5:30 PM. 151 00:07:08,340 --> 00:07:11,210 Nou pral fè ou sonje nan tout detay sa yo via imel sou la kou a 152 00:07:11,210 --> 00:07:13,470 sou sit wèb nan jis yon koup de tan jou. 153 00:07:13,470 --> 00:07:16,610 Li pral filme-li yo e te fè ki disponib yon ti tan apre sa. 154 00:07:16,610 --> 00:07:19,200 Se konsa, si ou pa ka fè ke Lendi plas mitan lannwit, pa enkyete. 155 00:07:19,200 --> 00:07:22,270 Seksyon semèn sa a ap vini pral tou konsantre sou revizyon pou egzamen an. 156 00:07:22,270 --> 00:07:25,670 Si seksyon ou se nan Lendi, ki se tout bon inivèsite jou ferye, n ap 157 00:07:25,670 --> 00:07:26,920 toujou satisfè nan seksyon. 158 00:07:26,920 --> 00:07:28,890 Si ou tou senpleman pa ka fè sa seksyon paske w ap ale 159 00:07:28,890 --> 00:07:29,860 ale, sa a, se amann. 160 00:07:29,860 --> 00:07:33,710 Patisipe nan yon dimanch oubyen yon Madi seksyon oswa melodi-an nan seksyon Jason a, ki se 161 00:07:33,710 --> 00:07:35,110 disponib sou entènèt. 162 00:07:35,110 --> 00:07:37,490 >> Se konsa, plis move nouvèl. 163 00:07:37,490 --> 00:07:41,960 Se konsa, dapre progranm a, nou gen konferans Vandredi kap vini. 164 00:07:41,960 --> 00:07:43,690 Men, bon nouvèl la - 165 00:07:43,690 --> 00:07:44,860 byen klè, mwen te pase twòp tan sou sa. 166 00:07:44,860 --> 00:07:45,280 >> [Ri] 167 00:07:45,280 --> 00:07:47,140 >> Nou pral anile pwochen konferans Vandredi a. 168 00:07:47,140 --> 00:07:50,590 Se konsa, ki pral gen yon kado pou nou, kidonk, ou ka vrèman gen yon relèv bèl nan 169 00:07:50,590 --> 00:07:52,990 ant semèn sa a ak de semèn isit la. 170 00:07:52,990 --> 00:07:57,460 Se konsa, pa gen okenn konferans nan semèn kap vini, jis yon ti ti kras egzamen, pou ki ou ta dwe 171 00:07:57,460 --> 00:07:59,030 ap resevwa de pli zan pli eksite. 172 00:07:59,030 --> 00:08:03,870 >> Se konsa, kite a kounye a vire atansyon nou nan yon bagay ki se vre plis vizyèl 173 00:08:03,870 --> 00:08:06,990 ak plis enteresan ak yo mete sèn nan pou sa k ap pase yo dwe sou orizon an 174 00:08:06,990 --> 00:08:08,420 nan jis yon koup de tan semèn. 175 00:08:08,420 --> 00:08:12,160 Apre egzamen an premye, nou pral vire nan konsantre nan seri pwoblèm nou yo nan yon lòt 176 00:08:12,160 --> 00:08:16,710 domèn espesifik pwoblèm, sa yo ki an forensics oswa sekirite plis jeneralman. 177 00:08:16,710 --> 00:08:19,550 >> An reyalite, tradisyon an ak pwoblèm sa a seri a se pou m 'youn nan la 178 00:08:19,550 --> 00:08:24,850 anseye parèy oswa sèrtifikasyon mache atravè lakou lekòl la pran kèk foto nan 179 00:08:24,850 --> 00:08:29,450 idantifye men ki pa moun evidan, kote, oswa bagay sa yo, Lè sa a, chak ane mwen 180 00:08:29,450 --> 00:08:34,520 yon jan kanmenm jere aksidantèlman efase oswa Piga digital medya kat la 181 00:08:34,520 --> 00:08:35,720 sa a, se andedan nan kamera nou an. 182 00:08:35,720 --> 00:08:36,860 Men, pa gen kontra gwo. 183 00:08:36,860 --> 00:08:39,200 Mwen ka ale pi devan ak ploge ki nan òdinatè mwen an. 184 00:08:39,200 --> 00:08:43,010 Mwen ka fè yon imaj mediko-legal nan li, se konsa yo pale, lè w kopye zewo yo ak 185 00:08:43,010 --> 00:08:46,830 moun koupe nan ki kat memwa, si wi ou non yon li yo SD kat oswa kontra enfòmèl ant kat flash oswa 186 00:08:46,830 --> 00:08:48,100 tou sa ou ap abitye avèk yo. 187 00:08:48,100 --> 00:08:49,300 Lè sa a, nou ka men ki soti. 188 00:08:49,300 --> 00:08:53,190 >> Se konsa, defi a devan ou, nan mitan lòt bagay pou ou, yo pral ekri 189 00:08:53,190 --> 00:08:58,630 C kòd ki restaure yon pakèt antye nan JPEGs pou m 'ak devwale yo pral 190 00:08:58,630 --> 00:09:00,190 moun sa yo, kote, oswa bagay sa yo. 191 00:09:00,190 --> 00:09:03,340 Epitou, n ap tou pale, nan pwoblèm sa a mete ak nan jou k'ap vini yo, sou 192 00:09:03,340 --> 00:09:04,440 grafik pi plis jeneralman. 193 00:09:04,440 --> 00:09:06,140 Nou te itilize yo, yon kou, pou kraze soti. 194 00:09:06,140 --> 00:09:09,080 Men, ou te sòt de pran pou yo akòde gen egziste sa yo nosyon wo nivo 195 00:09:09,080 --> 00:09:10,680 nan rektang ak oval. 196 00:09:10,680 --> 00:09:12,450 Men, anba kapo a gen piksèl. 197 00:09:12,450 --> 00:09:14,370 Men, ou te kòmanse panse sou sa yo. 198 00:09:14,370 --> 00:09:18,800 Oswa ou pral pou p-seri 4 bezwen panse sou diferans ki genyen ant brik ou, ki jan 199 00:09:18,800 --> 00:09:21,990 byen vit w ap boul ap deplase atravè ekran an pou kraze soti. 200 00:09:21,990 --> 00:09:24,830 Se konsa, gen sa a nosyon nan la pwen sou ekran ou a ki nan 201 00:09:24,830 --> 00:09:26,290 antre nan jwe deja. 202 00:09:26,290 --> 00:09:29,430 >> Koulye a, sa ou wè, menm si, se sa ki ou jwenn sou yon ekran òdinatè. 203 00:09:29,430 --> 00:09:33,680 Si ou te janm gade kèk bon oswa move televizyon, chans yo se yo bèl anpil 204 00:09:33,680 --> 00:09:36,280 trete odyans lan tankou technophobes ki pa fè sa vrèman 205 00:09:36,280 --> 00:09:37,630 konnen anpil sou informatique. 206 00:09:37,630 --> 00:09:40,840 Se konsa, li trè fasil pou polis la detektif vle di, ou kapab 207 00:09:40,840 --> 00:09:41,710 netwaye ki moute pou m 'konsa? 208 00:09:41,710 --> 00:09:42,710 Oubyen pou ogmante, dwa? 209 00:09:42,710 --> 00:09:45,550 Amelyore, se tankou pawòl Bondye a Buzz nan pi nenpòt ki krim ki gen rapò ak montre sa. 210 00:09:45,550 --> 00:09:49,240 Men, reyalite a se si ou pran yon trè twoub foto nan yon moun ki sispèk ap fè 211 00:09:49,240 --> 00:09:51,620 yon move bagay, ou pa kapab jis amelyore li. 212 00:09:51,620 --> 00:09:53,080 Ou pa ka rale nan enfiniman. 213 00:09:53,080 --> 00:09:56,350 Ou pa ka wè nan briye an nan yon moun nan je ki komèt ki 214 00:09:56,350 --> 00:09:59,860 patikilye krim, malgre la prévalence de sa a sou televizyon. 215 00:09:59,860 --> 00:10:04,110 >> Se konsa, ak sa yo ki kite a motive ki k ap vini pwoblèm mete ak yon aperçu nan 216 00:10:04,110 --> 00:10:05,765 kèk montre ak kote ou ta kapab yo konnen yo. 217 00:10:05,765 --> 00:10:06,500 >> [Lèktur videyo] 218 00:10:06,500 --> 00:10:07,835 >> -OK. 219 00:10:07,835 --> 00:10:09,956 Koulye a, kite a jwenn yon gade bon nan ou. 220 00:10:09,956 --> 00:10:17,060 221 00:10:17,060 --> 00:10:17,766 >> -Kenbe li. 222 00:10:17,766 --> 00:10:18,658 Kouri ki tounen. 223 00:10:18,658 --> 00:10:19,550 >> -Rete tann yon minit. 224 00:10:19,550 --> 00:10:21,580 Ale dwat. 225 00:10:21,580 --> 00:10:21,800 >> -Gen. 226 00:10:21,800 --> 00:10:22,690 Friz sa. 227 00:10:22,690 --> 00:10:23,692 >> -Konplè ekran. 228 00:10:23,692 --> 00:10:23,846 >> -OK. 229 00:10:23,846 --> 00:10:24,154 Friz sa. 230 00:10:24,154 --> 00:10:25,140 >> -Sere moute sou sa, pral ya? 231 00:10:25,140 --> 00:10:27,090 >> -Vektè nan sou ke nèg pa volan an tounen. 232 00:10:27,090 --> 00:10:29,730 >> -Zoom nan dwa isit la sou plas sa a. 233 00:10:29,730 --> 00:10:33,700 >> -Avèk ekipman dwat la, imaje la yo ka elaji ak file. 234 00:10:33,700 --> 00:10:34,490 >> -Ki sa ki nan sa? 235 00:10:34,490 --> 00:10:35,870 >> -Se yon pwogram amelyorasyon. 236 00:10:35,870 --> 00:10:36,793 >> -Èske ou ka klè ke moute nenpòt? 237 00:10:36,793 --> 00:10:38,560 >> -Mwen pa konnen. 238 00:10:38,560 --> 00:10:39,090 Se pou yo amelyore li. 239 00:10:39,090 --> 00:10:41,690 >> -Amelyore seksyon A-6. 240 00:10:41,690 --> 00:10:43,510 >> -Mwen ogmante detay a ak - 241 00:10:43,510 --> 00:10:44,456 >> -Mwen panse ke gen nan ase yo amelyore. 242 00:10:44,456 --> 00:10:45,402 Lage l 'bay ekran m' yo. 243 00:10:45,402 --> 00:10:47,300 >> -Amelyore refleksyon a ki nan je li. 244 00:10:47,300 --> 00:10:49,330 >> -Se pou yo kouri sa a nan amelyorasyon videyo. 245 00:10:49,330 --> 00:10:50,340 >> -Edgar, ou ka amelyore sa a? 246 00:10:50,340 --> 00:10:52,320 >> -Kwoke sou. 247 00:10:52,320 --> 00:10:54,290 >> -I've te ap travay sou sa a refleksyon. 248 00:10:54,290 --> 00:10:55,560 >> -Yon moun refleksyon an. 249 00:10:55,560 --> 00:10:56,440 >> -Refleksyon. 250 00:10:56,440 --> 00:10:57,940 >> -Gen yon refleksyon nan figi moun la. 251 00:10:57,940 --> 00:10:58,860 >> -Refleksyon nan. 252 00:10:58,860 --> 00:10:59,710 >> -Gen yon refleksyon. 253 00:10:59,710 --> 00:11:00,900 >> -Rale nan sou glas la. 254 00:11:00,900 --> 00:11:03,500 >> -Ou ka wè yon refleksyon. 255 00:11:03,500 --> 00:11:04,700 >> -Èske ou ka amelyore imaj la soti isit la? 256 00:11:04,700 --> 00:11:05,700 >> -Èske ou ka amelyore l 'dwa isit la? 257 00:11:05,700 --> 00:11:06,500 >> -Èske ou ka amelyore li? 258 00:11:06,500 --> 00:11:07,380 >> -Èske ou ka amelyore li? 259 00:11:07,380 --> 00:11:08,190 >> -Èske nou ka amelyore sa a? 260 00:11:08,190 --> 00:11:08,940 >> -Èske ou ka amelyore li? 261 00:11:08,940 --> 00:11:10,280 >> -Kenbe yon dezyèm fwa, mwen pral amelyore. 262 00:11:10,280 --> 00:11:11,570 >> -Rale nan sou pòt la. 263 00:11:11,570 --> 00:11:12,180 >> -X10. 264 00:11:12,180 --> 00:11:13,052 >> -Zoom. 265 00:11:13,052 --> 00:11:13,197 >> [Ri] 266 00:11:13,197 --> 00:11:14,360 >> -Deplase pous 267 00:11:14,360 --> 00:11:15,100 >> -Rete tann, sispann. 268 00:11:15,100 --> 00:11:15,740 >> -Stop. 269 00:11:15,740 --> 00:11:16,290 >> -Pran yon poz li. 270 00:11:16,290 --> 00:11:19,390 >> -Vire yon degre 75 nan vètikal la, tanpri. 271 00:11:19,390 --> 00:11:19,886 >> [Ri] 272 00:11:19,886 --> 00:11:24,350 >> -Stop, ak tounen yo nan pati a sou pòt la ankò. 273 00:11:24,350 --> 00:11:26,330 >> -Got yon aktivateur imaj ki ka bitmap? 274 00:11:26,330 --> 00:11:28,990 >> -Petèt nou ka sèvi ak Sen an Pradeep metòd yo wè nan fenèt la. 275 00:11:28,990 --> 00:11:30,680 >> -Sa a lojisyèl se leta nan atizay la. 276 00:11:30,680 --> 00:11:31,676 >> -Icon valè a se nan. 277 00:11:31,676 --> 00:11:34,166 >> -Avèk konbinezon an dwa nan algoritm. 278 00:11:34,166 --> 00:11:38,399 >> -Li te pran algoritm lumières nivo siperyè-a e mwen ka sèvi ak yo nan 279 00:11:38,399 --> 00:11:38,648 amelyore foto sa a. 280 00:11:38,648 --> 00:11:42,050 >> -Fèmen sou yo ak sou elaji z-aks la. 281 00:11:42,050 --> 00:11:42,760 >> -Amelyore. 282 00:11:42,760 --> 00:11:43,060 >> -Amelyore. 283 00:11:43,060 --> 00:11:43,760 >> -Amelyore. 284 00:11:43,760 --> 00:11:45,010 >> -Glase ak amelyore. 285 00:11:45,010 --> 00:11:47,470 286 00:11:47,470 --> 00:11:47,910 >> [Lèktur videyo END] 287 00:11:47,910 --> 00:11:51,470 >> DAVID J. Malan: Se konsa, Set Pwoblèm 5 se sa ki bay manti devan la. 288 00:11:51,470 --> 00:11:55,260 Se konsa, nou pral byento jwenn yon pi bon konprann nan lè ak poukisa ou kapab 289 00:11:55,260 --> 00:11:57,300 ak nou yo pa kapab amelyore nan fason sa a. 290 00:11:57,300 --> 00:12:00,090 Men, anvan, se pou yo tounen atansyon nou nan kèk nan blòk yo bilding nou pral 291 00:12:00,090 --> 00:12:02,250 bezwen pou kapab di ke istwa. 292 00:12:02,250 --> 00:12:05,580 >> Se konsa, sonje ke nou te trase foto sa a sou Lendi ak yon ti kras semèn pase a. 293 00:12:05,580 --> 00:12:09,970 Lè sa a dekri Layout nan de bagay sa yo nan memwa òdinatè w lan an lè 294 00:12:09,970 --> 00:12:11,000 kouri kèk pwogram lan. 295 00:12:11,000 --> 00:12:14,310 Segman nan teknoloji moute tèt, sonje, refere zewo yo reyèl ak moun yo 296 00:12:14,310 --> 00:12:16,000 ki konpoze pwogram ou an. 297 00:12:16,000 --> 00:12:19,340 Genyen, anba a ki, gen kèk initialisé oswa uninitialized done, ki tipikman 298 00:12:19,340 --> 00:12:22,910 refere a bagay sa yo tankou konstan oswa strings oswa varyab mondyal ki gen 299 00:12:22,910 --> 00:12:24,200 yo te deklare an davans. 300 00:12:24,200 --> 00:12:26,500 Genyen pil wòch la, men nou ap vin tounen nan ke nan yon ti jan. 301 00:12:26,500 --> 00:12:27,410 >> Lè sa a, gen nan chemine a. 302 00:12:27,410 --> 00:12:30,660 Anpil tankou yon pil nan plato ki anba po nan la kafeterya, sa a se kote memwa vin 303 00:12:30,660 --> 00:12:33,610 kouch ak kouch chak fwa sa ou te fè nan yon pwogram? 304 00:12:33,610 --> 00:12:36,380 305 00:12:36,380 --> 00:12:37,730 Ki sa ki se itilize nan chemine pou? 306 00:12:37,730 --> 00:12:39,320 >> Yeah? 307 00:12:39,320 --> 00:12:40,000 >> Rele nan fonksyon. 308 00:12:40,000 --> 00:12:42,890 Nenpòt ki lè w rele yon fonksyon, li nan bay tranch nan memwa pou li yo 309 00:12:42,890 --> 00:12:45,020 varyab lokal oswa paramèt li yo. 310 00:12:45,020 --> 00:12:48,810 Men, pictorially, nou wè ke ak chak siksesif fonksyon rele, lè yon 311 00:12:48,810 --> 00:12:52,520 apèl B apèl C D Kout telefòn yo, yo jwenn kouch sou pil la. 312 00:12:52,520 --> 00:12:55,630 Men, nan chak nan sa yo tranch memwa se esansyèlman se yon sijè ki abòde inik 313 00:12:55,630 --> 00:12:58,590 pou sa fonksyon, ki, nan kou, se yon pwoblèm si ou vle lage 314 00:12:58,590 --> 00:13:01,850 soti nan yon fonksyon nan yon lòt Yon moso nan done ke ou vle li 315 00:13:01,850 --> 00:13:03,500 k ap oswa chanje. 316 00:13:03,500 --> 00:13:08,060 >> Se konsa, sa ki te solisyon nou yo pèmèt Yon fonksyon reprezante pa yon sèl chemine 317 00:13:08,060 --> 00:13:11,390 ankadreman chanje memwa a andedan nan yon lòt ankadreman chemine? 318 00:13:11,390 --> 00:13:14,590 Kouman fè moun pale de youn ak lòt? 319 00:13:14,590 --> 00:13:18,510 Se konsa, pa fason pou endikasyon oswa adrès, ki, ankò, jis dekri ki kote nan 320 00:13:18,510 --> 00:13:22,280 memwa, pa fason pou yon espesifik nimewo mòde, an patikilye nan 321 00:13:22,280 --> 00:13:23,830 valè ka jwenn. 322 00:13:23,830 --> 00:13:26,860 Se konsa, sonje dènye fwa twò nou kontinye istwa a, li gade yon 323 00:13:26,860 --> 00:13:28,280 san patipri buggy pwogram nan. 324 00:13:28,280 --> 00:13:32,900 Men, pwogram sa a se buggy pou yon kèk rezon ki fè, men se yon sèl la ki pi inkyétant se 325 00:13:32,900 --> 00:13:34,620 paske li echwe yo tcheke ki sa? 326 00:13:34,620 --> 00:13:39,111 327 00:13:39,111 --> 00:13:40,450 >> Yeah, li echwe yo tcheke D 'a. 328 00:13:40,450 --> 00:13:41,870 M regrèt? 329 00:13:41,870 --> 00:13:43,880 >> Si li nan plis pase 12 karaktè. 330 00:13:43,880 --> 00:13:47,260 Se konsa, trè smartly, lè w rele nan memcopy, ki, kòm non an sijere, jis 331 00:13:47,260 --> 00:13:50,630 kopi memwa soti nan agiman dezyèm li yo nan premye agiman li yo. 332 00:13:50,630 --> 00:13:54,730 Agiman nan twazyèm, trè smartly, se tcheke a asire w ke ou pa fè sa 333 00:13:54,730 --> 00:13:59,400 kopye plis pase, nan ka sa a, longè nan ba, kantite karaktè, 334 00:13:59,400 --> 00:14:03,810 nan destinasyon an, ki se sa a etalaj C. Men, pwoblèm nan se ke sa ki 335 00:14:03,810 --> 00:14:07,230 si C tèt li se pa gwo ase okipe sa? 336 00:14:07,230 --> 00:14:09,900 W ap ale nan kopi ki kantite bytes ke ou ve yo te bay yo. 337 00:14:09,900 --> 00:14:13,040 Men, sa ki ou gen aktyèlman plis bytes pase ou gen plas pou? 338 00:14:13,040 --> 00:14:16,770 >> Oke, pwogram sa a tankou moun fou jis je fèmen montan yo pran tou sa li a 339 00:14:16,770 --> 00:14:20,650 yo bay yo, alo antislach 0 se gwo si fisèl se kout 340 00:14:20,650 --> 00:14:22,040 ase, tankou senk charaktèr. 341 00:14:22,040 --> 00:14:26,470 Men, si li la aktyèlman 12 karaktè oswa 1,200 karaktè, nou te wè dènye fwa 342 00:14:26,470 --> 00:14:29,380 ke w ap jis ale nan konplètman recouvrir memwa ki 343 00:14:29,380 --> 00:14:30,470 pa fè pati nan ou. 344 00:14:30,470 --> 00:14:34,390 Men, pi move ka, si ou recouvrir ki wouj pòsyon gen ke nou rele an 345 00:14:34,390 --> 00:14:35,380 retounen adrès - 346 00:14:35,380 --> 00:14:38,370 sa a se jis kote òdinatè a otomatikman, pou ou, dèyè a 347 00:14:38,370 --> 00:14:43,130 sèn, bord lwen yon valè 32-ti jan ki raple li nan sa ki adrès li ta dwe 348 00:14:43,130 --> 00:14:47,080 retounen lè foo, fonksyon sa a ak lòt, se fè egzekite. 349 00:14:47,080 --> 00:14:49,320 Li se yon myèt pen nan kalite nan ki li retounen. 350 00:14:49,320 --> 00:14:52,490 Si ou recouvrir sa, ki kapab, si w ap nèg la move, kapab te kapab 351 00:14:52,490 --> 00:14:54,750 potansyèlman pran sou òdinatè yon moun. 352 00:14:54,750 --> 00:14:58,020 Epi ou pral pi sètènman aksidan li nan pifò ka yo. 353 00:14:58,020 --> 00:15:01,690 >> Koulye a, te pwoblèm sa a sèlman anvayi jan nou te kòmanse pale sou memwa 354 00:15:01,690 --> 00:15:03,010 jesyon plis jeneralman. 355 00:15:03,010 --> 00:15:07,150 Men, malok, pou alokasyon memwa, se yon fonksyon ki nou kapab itilize asiyen 356 00:15:07,150 --> 00:15:11,260 memwa lè nou pa konnen an avans ki nou ta ka bezwen kèk. 357 00:15:11,260 --> 00:15:13,960 Se konsa, pou egzanp, si m 'ale tounen aparèy la isit la. 358 00:15:13,960 --> 00:15:21,010 Apre sa, mwen louvri moute soti nan hello2.c tan sot pase yo, sonje pwogram sa a isit la, ki gade 359 00:15:21,010 --> 00:15:23,500 yon yon bagay ti kras tankou sa a, jis twa liy - 360 00:15:23,500 --> 00:15:27,940 endike non ou, Lè sa a, Non fisèl, sou bò gòch la, egal getstring. 361 00:15:27,940 --> 00:15:29,690 Lè sa a, nou enprime li soti, Non itilizatè a la. 362 00:15:29,690 --> 00:15:31,170 >> Se konsa, sa a te yon super pwogram ki senp. 363 00:15:31,170 --> 00:15:34,870 Pou yo kapab klè, kite m 'ale pi devan epi fè alo-2 a. 364 00:15:34,870 --> 00:15:36,680 Mwen pral fè dot koupe alo-2 a. 365 00:15:36,680 --> 00:15:37,750 Endike non ou - 366 00:15:37,750 --> 00:15:38,140 David la. 367 00:15:38,140 --> 00:15:38,840 Antre nan. 368 00:15:38,840 --> 00:15:39,540 Bonjou David la. 369 00:15:39,540 --> 00:15:41,060 Li sanble nan travay OK. 370 00:15:41,060 --> 00:15:43,140 Men, sa ki nan reyèlman ale sou anba kapo isit la? 371 00:15:43,140 --> 00:15:44,670 Premye a kite kale tounen kèk kouch. 372 00:15:44,670 --> 00:15:48,380 Chèn se jis yon synonym nou te reyalize pou ki sa? 373 00:15:48,380 --> 00:15:49,110 Char zetwal. 374 00:15:49,110 --> 00:15:52,740 Se konsa, kite a fè l 'yon ti kras pi plis Esoteric men plis teknikman kòrèk ke sa a 375 00:15:52,740 --> 00:15:55,570 se yon etwal Char, ki vle di ke Non, repons lan se wi, se yon varyab. 376 00:15:55,570 --> 00:15:59,920 Men, sa ki magazen Non kote adrès la nan yon Char, ki santi l yon ti kras etranj 377 00:15:59,920 --> 00:16:01,050 paske mwen vin tounen yon kòd. 378 00:16:01,050 --> 00:16:03,580 Mwen vin tounen miltip charaktèr pa yon Char. 379 00:16:03,580 --> 00:16:07,400 >> Men, nan kou, ou sèlman bezwen premye a adrès Char la sonje kote a 380 00:16:07,400 --> 00:16:08,870 fisèl antye se paske poukisa? 381 00:16:08,870 --> 00:16:12,700 Ki jan ou fè konnen ki kote nan fen fisèl la se konnen nan konmansman an? 382 00:16:12,700 --> 00:16:13,630 Zewo a antislach. 383 00:16:13,630 --> 00:16:17,260 Se konsa, ak de sa yo endikasyon ou konnen anvan kòmansman ak nan fen a nan 384 00:16:17,260 --> 00:16:20,280 nenpòt fil yo, toutotan yo ap byen fòme ak ki nil 385 00:16:20,280 --> 00:16:22,110 Terminator, ki zewo antislach. 386 00:16:22,110 --> 00:16:24,520 >> Men, sa a ap rele getstring. 387 00:16:24,520 --> 00:16:28,020 Men, li vire soti ki getstring te tout tan sa a te kalite 388 00:16:28,020 --> 00:16:28,820 kopye pou nou. 389 00:16:28,820 --> 00:16:32,460 Li te fè sa travay la, yo dwe asire, jwenn yon fisèl soti nan itilizatè a. 390 00:16:32,460 --> 00:16:34,580 Men, kote a ki memwa te vini soti nan? 391 00:16:34,580 --> 00:16:38,440 Si nou tounen nan foto a isit la ak aplike definisyon an soti nan jis yon 392 00:16:38,440 --> 00:16:42,610 moman sa de sa, ki chemine a se kote memwa ale lè fonksyon yo rele yo, 393 00:16:42,610 --> 00:16:45,370 pa ki lojik, lè ou rele getstring, ak Lè sa a mwen tape nan 394 00:16:45,370 --> 00:16:50,900 D-A-V-I-D Mete, kote se D-A-V-I-D antislach zewo estoke, ki baze sou la 395 00:16:50,900 --> 00:16:53,480 istwa nou te di nou byen lwen? 396 00:16:53,480 --> 00:16:55,190 >> Li ta sanble yo dwe nan chemine a, dwa? 397 00:16:55,190 --> 00:16:58,120 Lè ou rele jwenn fisèl ou jwenn yon ti tranch nan memwa sou pil la. 398 00:16:58,120 --> 00:17:01,630 Se konsa, li vle di rezon ki D-A-V-I-D antislach zewo estoke 399 00:17:01,630 --> 00:17:02,770 gen nan chemine a. 400 00:17:02,770 --> 00:17:07,680 Men, tann yon minit, getstring retounen ki fisèl, se konsa pale, ki vle di 401 00:17:07,680 --> 00:17:11,700 li nan plato ki soti nan kafeterya a se pran fèmen chemine a. 402 00:17:11,700 --> 00:17:14,560 Nou te reponn dènye fwa ke le pli vit ke yon retounen fonksyon, epi ou pran ki 403 00:17:14,560 --> 00:17:20,109 plato, se konsa pale, nan chemine a, ki sa ki ou ka asime sou sold yo nan 404 00:17:20,109 --> 00:17:21,819 ki memwa? 405 00:17:21,819 --> 00:17:25,160 Mwen sòt de redrew yo kòm mak kesyon paske yo efektivman vin 406 00:17:25,160 --> 00:17:26,250 valè sèks. 407 00:17:26,250 --> 00:17:29,500 Yo ka itilize l ankò lè kèk se pwochen fonksyon yo rele. 408 00:17:29,500 --> 00:17:31,870 >> Nan lòt mo, si nou rive yo dwe estoke - 409 00:17:31,870 --> 00:17:34,350 Mwen pral pran yon foto rapid isit la nan chemine a. 410 00:17:34,350 --> 00:17:38,690 Si nou rive yo dwe desen anba a nan segman memwa mwen, epi nou pral di 411 00:17:38,690 --> 00:17:42,230 ke sa a se plas la nan memwa okipe pa prensipal e petèt c ARG ak 412 00:17:42,230 --> 00:17:46,790 ARG v ak tout lòt bagay nan pwogram nan, lè getstring rele, 413 00:17:46,790 --> 00:17:51,120 prezimableman getstring vin yon moso nan memwa isit la. 414 00:17:51,120 --> 00:17:53,940 Lè sa a, D-A-V-I-D yon jan kanmenm fini moute nan fonksyon sa a. 415 00:17:53,940 --> 00:17:55,320 Men, mwen pral senplifye. 416 00:17:55,320 --> 00:18:00,050 Men, kite a sipoze ke li D-A-V-I-D antislach zewo. 417 00:18:00,050 --> 00:18:03,500 Se konsa, sa a bytes anpil yo te itilize nan ankadreman an pou getstring. 418 00:18:03,500 --> 00:18:08,270 >> Men, le pli vit ke retounen getstring, nou di dènye fwa ke sa a memwa sou 419 00:18:08,270 --> 00:18:11,340 isit la tout vin - woops! - 420 00:18:11,340 --> 00:18:14,270 tout vin efektivman efasman. 421 00:18:14,270 --> 00:18:17,220 Epi nou ka panse a sa a kounye a kòm kesyon mak paske moun ki konnen 422 00:18:17,220 --> 00:18:18,720 sa k ap pase yo vin nan ke memwa. 423 00:18:18,720 --> 00:18:22,130 Vreman vre, mwen trè souvan rele fonksyon lòt pase getstring. 424 00:18:22,130 --> 00:18:24,750 Lè m 'rele kèk lòt fonksyon pase getstring, petèt pa nan 425 00:18:24,750 --> 00:18:28,860 pwogram sa a an patikilye nou jis gade nan men gen kèk lòt, siman lòt kèk 426 00:18:28,860 --> 00:18:34,180 fonksyon ta ka fini yo te ba yo plas sa a kap vini yo nan chemine a. 427 00:18:34,180 --> 00:18:39,410 >> Se konsa, li pa kapab ki magazen getstring D-A-V-I-D sou chemine a, paske mwen ta 428 00:18:39,410 --> 00:18:41,040 imedyatman pèdi aksè a li. 429 00:18:41,040 --> 00:18:43,720 Men, nou konnen yo getstring sèlman retounen ki sa? 430 00:18:43,720 --> 00:18:47,220 Li pa nan retounen nan m 'sis karaktè. 431 00:18:47,220 --> 00:18:51,090 Ki sa ki li vrèman retounen t ' nou konkli dènye fwa? 432 00:18:51,090 --> 00:18:52,480 Postal la nan premye a. 433 00:18:52,480 --> 00:18:56,650 Se konsa, yon jan kanmenm, lè ou rele getstring, li nan allocation yon moso nan memwa pou 434 00:18:56,650 --> 00:18:59,620 fisèl la ki itilizatè kalite ak Lè sa a, retounen adrès nan li. 435 00:18:59,620 --> 00:19:02,930 Men, li vire soti ki lè ou vle fonksyone asiyen memwa nan sa a 436 00:19:02,930 --> 00:19:08,390 fason ak retounen nan moun ki te rele ki fonksyon, adrès la nan 437 00:19:08,390 --> 00:19:11,870 ki moso nan memwa, ou absoliman pa ka mete l 'nan chemine a nan la 438 00:19:11,870 --> 00:19:14,750 anba, paske fonksyonèl li nan jis pral pa vin pou ou trè 439 00:19:14,750 --> 00:19:17,800 byen vit, konsa ou ka pwobableman devine kote nou ap pwobableman ale nan jete l ' 440 00:19:17,800 --> 00:19:20,130 olye de sa, pil wòch la sa yo rele. 441 00:19:20,130 --> 00:19:25,290 >> Se konsa, ant anba a nan memwa ou a Layout ak tèt la nan memwa ou a 442 00:19:25,290 --> 00:19:26,820 Layout tout yon seri nan segments. 443 00:19:26,820 --> 00:19:29,270 Youn nan se chemine a, e yo gen dwa pi wo a li se pil wòch la. 444 00:19:29,270 --> 00:19:33,680 Men, pil wòch se jis yon moso diferan nan memwa ki pa nan itilize pou fonksyon 445 00:19:33,680 --> 00:19:34,770 yo lè yo ap rele. 446 00:19:34,770 --> 00:19:38,100 Li nan itilize pou memwa long tèm, lè ou vle yon fonksyon gen tan pwan kèk 447 00:19:38,100 --> 00:19:42,700 memwa epi yo dwe kapab kwoke sou li san yo pa pèdi kontwòl sou li. 448 00:19:42,700 --> 00:19:45,550 >> Koulye a, ou te kapab petèt imedyatman wè ke sa a se pa 449 00:19:45,550 --> 00:19:48,060 nesesèman yon konsepsyon pafè. 450 00:19:48,060 --> 00:19:51,350 Kòm pwogram ou an resevwa lajan memwa sou chemine a, oswa jan ou rele pi plis ak 451 00:19:51,350 --> 00:19:55,540 plis fonksyon, oswa jan ou asiyen memwa sou pil wòch la ak malok li kòm 452 00:19:55,540 --> 00:20:00,690 getstring ap fè, ki sa ki byen klè sanble ap inevitab pwoblèm? 453 00:20:00,690 --> 00:20:00,860 >> Dwa. 454 00:20:00,860 --> 00:20:03,150 Menm jan ak lefèt ke sa yo flèch yo montre nan chak lòt 455 00:20:03,150 --> 00:20:04,380 pa anonse byen. 456 00:20:04,380 --> 00:20:08,630 Ak tout bon, nou te ka trè byen vit aksidan yon pwogram nan nenpòt ki kantite fason. 457 00:20:08,630 --> 00:20:12,050 An reyalite, mwen panse ke nou ka gen fè sa aksidantèlman yon fwa. 458 00:20:12,050 --> 00:20:14,020 Oswa si se pa, se pou yo fè l ' fè espre kounye a. 459 00:20:14,020 --> 00:20:21,330 Kite m 'ale pi devan epi ekri super byen vit yon pwogram ki rele dontdothis.c. 460 00:20:21,330 --> 00:20:26,730 Epi, koulye a mwen pral ale nan isit la ak byen file gen ladan stdio.h. 461 00:20:26,730 --> 00:20:32,620 Se pou yo deklare fonksyon foo pran pa gen agiman, ki se 462 00:20:32,620 --> 00:20:34,040 deziye kòm byen pa anile. 463 00:20:34,040 --> 00:20:37,830 >> Men, bagay la sèlman foo ki pral fè se rele foo, ki pwobableman se la pa 464 00:20:37,830 --> 00:20:39,100 intélijant lide, men se konsa se pou li. 465 00:20:39,100 --> 00:20:40,490 Ent prensipal anile. 466 00:20:40,490 --> 00:20:45,270 Koulye a, bagay la sèlman prensipal ki pral fè se rele foo kòm byen. 467 00:20:45,270 --> 00:20:51,050 Epi jis pou anvwaye, mwen pral ale devan isit la ak di printf "Alo soti nan 468 00:20:51,050 --> 00:20:52,340 foo. " 469 00:20:52,340 --> 00:20:52,890 >> OK. 470 00:20:52,890 --> 00:21:00,160 Se konsa, si mwen pa t 'fè okenn erè, Fè dontdothis dot koupe. 471 00:21:00,160 --> 00:21:01,960 Li kite yo fè l 'nan yon fenèt pi gwo - 472 00:21:01,960 --> 00:21:03,210 dot koupe, dontdothis. 473 00:21:03,210 --> 00:21:07,590 474 00:21:07,590 --> 00:21:08,840 Vini non sou. 475 00:21:08,840 --> 00:21:10,940 476 00:21:10,940 --> 00:21:11,890 Uh oh. 477 00:21:11,890 --> 00:21:13,100 Aparamman, ou ka fè sa. 478 00:21:13,100 --> 00:21:15,190 Modi li. 479 00:21:15,190 --> 00:21:16,190 OK. 480 00:21:16,190 --> 00:21:16,580 Rete tann. 481 00:21:16,580 --> 00:21:17,370 Kanpe pa. 482 00:21:17,370 --> 00:21:18,270 Èske nou - 483 00:21:18,270 --> 00:21:20,110 Nou t 'sèvi ak li ak Fè. 484 00:21:20,110 --> 00:21:22,050 >> [Soupir] 485 00:21:22,050 --> 00:21:25,110 >> Mwen konnen men mwen panse ke nou jis efase sa. 486 00:21:25,110 --> 00:21:28,410 Uh, wi. 487 00:21:28,410 --> 00:21:30,660 Modi li. 488 00:21:30,660 --> 00:21:32,640 Rezoud sa a Rob. 489 00:21:32,640 --> 00:21:34,678 Ki sa? 490 00:21:34,678 --> 00:21:35,928 Li trè senp. 491 00:21:35,928 --> 00:21:43,820 492 00:21:43,820 --> 00:21:47,360 Yeah, nou tounen tounen optimize la. 493 00:21:47,360 --> 00:21:48,970 OK, kanpe babay. 494 00:21:48,970 --> 00:21:49,950 Koulye a, mwen santi ou pi byen. 495 00:21:49,950 --> 00:21:51,390 OK. 496 00:21:51,390 --> 00:21:51,780 Tout dwa. 497 00:21:51,780 --> 00:21:53,430 >> Se konsa, kite a compile sa a - 498 00:21:53,430 --> 00:21:55,880 Fè ou dontdothis. 499 00:21:55,880 --> 00:22:00,090 Ou ka gen chanje non sa a dothis.c nan jis moman sa a. 500 00:22:00,090 --> 00:22:00,710 Gen nou ale. 501 00:22:00,710 --> 00:22:01,240 Mèsi poutèt ou. 502 00:22:01,240 --> 00:22:02,050 OK. 503 00:22:02,050 --> 00:22:05,480 Se konsa, lefèt ke mwen te enprime soti yon bagay te aktyèlman jis 504 00:22:05,480 --> 00:22:08,150 ralanti desann pwosesis la pa ki nou ta yo te rive jwenn pwen sa. 505 00:22:08,150 --> 00:22:08,510 OK. 506 00:22:08,510 --> 00:22:08,870 Phew! 507 00:22:08,870 --> 00:22:11,180 >> Se konsa, sa ki aktyèlman ale sou? 508 00:22:11,180 --> 00:22:14,440 Rezon ki fè la a, jis kòm yon sou kote, se fè anyen an tèm de opinyon ak 509 00:22:14,440 --> 00:22:17,270 pwodiksyon gen tandans ka pi dousman paske ou gen yo ekri karaktè a 510 00:22:17,270 --> 00:22:18,600 ekran, Li te gen a woulo liv. 511 00:22:18,600 --> 00:22:21,720 Se konsa, depi lontan istwa kout, te gen mwen aktyèlman ki te pase konsa enpasyan, nou ta gen 512 00:22:21,720 --> 00:22:23,260 wè rezilta sa a fen kòm byen. 513 00:22:23,260 --> 00:22:26,220 Kounye a ke mwen te resevwa woulib nan UPS yo ekri an lèt detache, nou wè li touswit. 514 00:22:26,220 --> 00:22:28,410 Se konsa, poukisa se sa kap pase. 515 00:22:28,410 --> 00:22:31,300 Oke, eksplikasyon an senp, nan kou, se ke foo pwobableman pa ta dwe 516 00:22:31,300 --> 00:22:32,500 dwe rele tèt li. 517 00:22:32,500 --> 00:22:34,470 >> Koulye a, an tèm jeneral, sa a se rkursyon. 518 00:22:34,470 --> 00:22:36,970 Men, nou te panse yon semèn koup Anons sa pibliye depi repetitif se yon bon bagay. 519 00:22:36,970 --> 00:22:40,330 Rkursyon se fason sa a majik nan eksprime tèt ou super suksen. 520 00:22:40,330 --> 00:22:41,400 Men, li jis travay. 521 00:22:41,400 --> 00:22:45,060 Men, gen se yon karakteristik kle nan tout pwogram yo repetitif nou te pale 522 00:22:45,060 --> 00:22:48,260 sou, li gade konsa byen lwen, ki te yo ke yo te ki sa? 523 00:22:48,260 --> 00:22:52,610 Yon baz ka-a, ki te gen kèk difisil kode ka ki te di nan kèk sitiyasyon 524 00:22:52,610 --> 00:22:56,210 pa rele foo, ki se byen klè pa ka a isit la. 525 00:22:56,210 --> 00:22:58,920 >> Se konsa, sa k ap fèt vreman an tèm de foto sa a? 526 00:22:58,920 --> 00:23:01,790 Bon, lè prensipal rele foo, li vin yon ti tranch nan memwa. 527 00:23:01,790 --> 00:23:04,150 Lè foo rele foo, li vin yon ti tranch nan memwa. 528 00:23:04,150 --> 00:23:06,430 Lè foo rele foo, li vin yon ti tranch. 529 00:23:06,430 --> 00:23:07,080 Li vin yon ti tranch. 530 00:23:07,080 --> 00:23:08,120 Li vin yon ti tranch. 531 00:23:08,120 --> 00:23:09,460 Paske foo pa janm retounen. 532 00:23:09,460 --> 00:23:12,160 Nou pa janm ap efase youn nan moun ki ankadreman ki soti nan chemine an. 533 00:23:12,160 --> 00:23:15,930 Se konsa, nou ap mouche nan pil wòch la, pa mansyone ki konnen ki lòt bagay, ak 534 00:23:15,930 --> 00:23:19,600 nou ap Depatman limit yo nan nou an sa yo rele segman nan memwa. 535 00:23:19,600 --> 00:23:21,790 Erè ale segmentation fo. 536 00:23:21,790 --> 00:23:24,110 >> Se konsa, solisyon an gen klèman pa fè sa. 537 00:23:24,110 --> 00:23:28,830 Men, enplikasyon nan pi gwo se ke, repons lan se wi, gen absoliman se kèk limit, 538 00:23:28,830 --> 00:23:32,470 menm si li pa nan byen defini, ki di kòman fonksyon anpil ou ka rele nan yon 539 00:23:32,470 --> 00:23:34,970 pwogram nan, konbyen fwa yon fonksyon ka rele tèt li. 540 00:23:34,970 --> 00:23:38,430 Se konsa, menm si nou te fè konnen mesaj rkursyon kòm bagay sa a ki kapab majik yon 541 00:23:38,430 --> 00:23:41,870 koup la semèn de sa pou sigma nan fonksyon, ak lè nou jwenn done yo 542 00:23:41,870 --> 00:23:45,270 estrikti yo epi CS50, ou ap wè lòt aplikasyon pou li, li pa 543 00:23:45,270 --> 00:23:46,500 nesesèman pi bon bagay. 544 00:23:46,500 --> 00:23:50,070 Paske si yon fonksyon rele tèt li, rele tèt li, menm si gen yon baz 545 00:23:50,070 --> 00:23:54,860 ka, si ou pa frape ki ka baz pou 1,000 apèl oswa 10,000 apèl, pa 546 00:23:54,860 --> 00:23:58,800 tan sa a ou ta ka genyen kouri soti nan chanm sou sa yo rele pil ou ak frape 547 00:23:58,800 --> 00:24:00,400 kèk segments lòt kote nan memwa. 548 00:24:00,400 --> 00:24:03,950 Se konsa, li tou se yon konsepsyon komès-off ant distenksyon ak ant 549 00:24:03,950 --> 00:24:06,920 fyabilite nan patikilye ou aplikasyon. 550 00:24:06,920 --> 00:24:10,780 >> Se konsa, gen nan yon lòt inconvénient oswa yon lòt gotcha nan sa nou te 551 00:24:10,780 --> 00:24:11,720 te fè konsa byen lwen. 552 00:24:11,720 --> 00:24:12,980 Lè m 'rele getstring - 553 00:24:12,980 --> 00:24:15,120 kite m 'ale tounen nan alo 2-. 554 00:24:15,120 --> 00:24:18,170 Remake mwen ap rele getstring, ki se retounen yon adrès. 555 00:24:18,170 --> 00:24:20,730 Epi nou fè reklamasyon jodi a ki adrès se soti nan pil la. 556 00:24:20,730 --> 00:24:24,480 Men, koulye a, mwen enprime soti nan fisèl nan ki adrès. 557 00:24:24,480 --> 00:24:27,000 Men, nou pa janm te rele nan opoze a getstring. 558 00:24:27,000 --> 00:24:30,850 Nou pa janm te gen calll yon fonksyon tankou ungetstring, kote ou men tounen 559 00:24:30,850 --> 00:24:31,610 ki memwa. 560 00:24:31,610 --> 00:24:33,250 Men, franchman nou pwobableman ta dwe. 561 00:24:33,250 --> 00:24:37,390 Paske si nou kontinye mande òdinatè a pou memwa, pa fason pou yon moun tankou 562 00:24:37,390 --> 00:24:40,830 getstring men pa janm bay li tounen, siman ki tou se mare yo mennen nan 563 00:24:40,830 --> 00:24:42,970 pwoblèm kijan nou kouri soti nan memwa. 564 00:24:42,970 --> 00:24:46,140 >> Men, an reyalite, nou ka gade pou sa yo pwoblèm ki genyen ak zouti nan nouvo ki gen itilizasyon 565 00:24:46,140 --> 00:24:47,640 se yon skre ti tape. 566 00:24:47,640 --> 00:24:50,960 Men, kite m 'ale pi devan, w'a vide l moute sou ekran an nan jis moman sa a. 567 00:24:50,960 --> 00:24:56,940 Mwen pral ale pi devan epi kouri Valgrind ak paramèt ki gen premye lòd 568 00:24:56,940 --> 00:25:00,260 agiman liy se non an nan pwogram sa a alo-2 a. 569 00:25:00,260 --> 00:25:02,650 Men, malerezman li nan pwodiksyon se atrociously 570 00:25:02,650 --> 00:25:04,290 konplèks pou okenn rezon bon. 571 00:25:04,290 --> 00:25:06,280 Se konsa, nou wè tout sa ki dezòd. 572 00:25:06,280 --> 00:25:07,530 David se bay non mwen. 573 00:25:07,530 --> 00:25:09,760 Se konsa, sa a, se pwogram nan aktyèlman kouri. 574 00:25:09,760 --> 00:25:11,180 Koulye a, nou jwenn sa a pwodiksyon. 575 00:25:11,180 --> 00:25:13,400 >> Se konsa, Valgrind se menm jan nan Lespri Bondye a gdb. 576 00:25:13,400 --> 00:25:14,950 Li pa yon debugjeur se pou chak. 577 00:25:14,950 --> 00:25:16,270 Men, li la yon korektè memwa. 578 00:25:16,270 --> 00:25:20,140 Li se yon pwogram ki pral kouri ou pwogram yo epi di ou si ou mande l 'yon 579 00:25:20,140 --> 00:25:23,860 òdinatè pou memwa epi pa janm lage l ' tounen, kidonk sa vle di ke ou gen 580 00:25:23,860 --> 00:25:24,570 yon fwit memwa. 581 00:25:24,570 --> 00:25:26,240 Men, dlo ap koule memwa gen tandans yo dwe move. 582 00:25:26,240 --> 00:25:29,120 Epi ou se itilizatè yo nan òdinatè gen pwobableman te santi sa a, si wi ou non ou gen yon 583 00:25:29,120 --> 00:25:30,300 Mac oswa PC yon. 584 00:25:30,300 --> 00:25:33,730 Èske w te janm itilize òdinatè w lan pou pandan y ap epi yo pa demare nan plizyè 585 00:25:33,730 --> 00:25:36,820 jou, oswa ou te jis te resevwa yon anpil nan pwogram kouri, ak bagay la modi 586 00:25:36,820 --> 00:25:42,360 ralanti nan yon kanpe fanm k'ap pile, oswa omwen li nan super anmèdan yo sèvi ak yo, paske 587 00:25:42,360 --> 00:25:44,350 tout bagay jis te resevwa super dousman. 588 00:25:44,350 --> 00:25:46,260 >> Kounye a ke kapab gen nenpòt ki kantite rezon. 589 00:25:46,260 --> 00:25:49,600 Li ta ka yon bouk enfini, yon ensèk nan Kòd yon moun nan, oswa, plis tou senpleman, li 590 00:25:49,600 --> 00:25:53,250 te kapab vle di ke w ap itilize plis memwa, oswa ap eseye, pase ou 591 00:25:53,250 --> 00:25:54,920 òdinatè aktyèlman gen. 592 00:25:54,920 --> 00:25:57,770 E petèt gen yon ensèk nan kèk pwogram ki kenbe mande pou memwa. 593 00:25:57,770 --> 00:26:02,480 Navigatè pou ane te repite pou sa a, mande pou pi plis ak plis memwa 594 00:26:02,480 --> 00:26:03,870 men pa janm Distribiye l 'tounen. 595 00:26:03,870 --> 00:26:07,220 Se vre wi, si ou sèlman gen yon fini kantite lajan pou memwa, ou pa ka mande 596 00:26:07,220 --> 00:26:09,990 enfiniman anpil fwa pou kèk nan ki memwa. 597 00:26:09,990 --> 00:26:13,070 >> Se konsa, sa ou wè la a, menm si ankò pwodiksyon Valgrind a se 598 00:26:13,070 --> 00:26:17,490 san nesesite konplèks nan zye nan premye, sa a se pati nan enteresan. 599 00:26:17,490 --> 00:26:18,890 Pil wòch - 600 00:26:18,890 --> 00:26:20,060 nan itilize nan sòti. 601 00:26:20,060 --> 00:26:22,810 Se konsa, isit la nan konbyen lajan memwa te nan itilize nan pil wòch la nan la 602 00:26:22,810 --> 00:26:24,300 tan pwogram mwen quitté - 603 00:26:24,300 --> 00:26:27,280 aparamman sis bytes nan yon blòk. 604 00:26:27,280 --> 00:26:28,710 Se konsa, mwen pral balanse men m ' nan sa ki yon blòk an se. 605 00:26:28,710 --> 00:26:31,270 Panse de li se jis yon moso, yon plis teknik mo pou moso. 606 00:26:31,270 --> 00:26:33,140 Men, sis bytes - 607 00:26:33,140 --> 00:26:36,870 ki sa yo bytes yo sis ki te toujou nan itilize? 608 00:26:36,870 --> 00:26:37,390 >> Egzakteman. 609 00:26:37,390 --> 00:26:41,520 D-A-V-I-D zewo antislach, senk lèt Non plis Terminator a nil. 610 00:26:41,520 --> 00:26:46,350 Se konsa, Valgrind pwogram sa a remake ke mwen mande pou sis bytes, aparamman, pa 611 00:26:46,350 --> 00:26:48,950 fason pou getstring, men pa janm te ba yo tounen. 612 00:26:48,950 --> 00:26:52,030 Men, an reyalite, sa a pa ta ka fèt konsa evidan si pwogram mwen an se pa twa 613 00:26:52,030 --> 00:26:53,590 liy, men li la 300 liy yo. 614 00:26:53,590 --> 00:26:56,920 Se konsa, nou ka aktyèlman bay yon lòt lòd agiman liy Valgrind 615 00:26:56,920 --> 00:26:58,290 fè li pi sil. 616 00:26:58,290 --> 00:26:59,760 Li se yon ti kras anmèdan sonje. 617 00:26:59,760 --> 00:27:01,580 Men, si mwen fè - 618 00:27:01,580 --> 00:27:01,930 kite a wè. 619 00:27:01,930 --> 00:27:03,540 Genyen fuit - 620 00:27:03,540 --> 00:27:05,030 Te li genyen fuit - 621 00:27:05,030 --> 00:27:07,580 menm Mwen pa sonje sa li ye sou men yo. 622 00:27:07,580 --> 00:27:08,550 >> - Fuit radyasyon-chèk egal plen. 623 00:27:08,550 --> 00:27:10,180 Oui, di ou mèsi. 624 00:27:10,180 --> 00:27:12,520 - Fuit radyasyon-chèk egal plen. 625 00:27:12,520 --> 00:27:13,800 Antre nan. 626 00:27:13,800 --> 00:27:14,940 Menm pwogram ap kouri. 627 00:27:14,940 --> 00:27:16,180 Tape nan David ankò. 628 00:27:16,180 --> 00:27:17,660 Koulye a, mwen wè yon ti kras plis detay. 629 00:27:17,660 --> 00:27:20,890 Men, pi ba a rezime an pil wòch la, ki se ki idantik ak kat - Ah, 630 00:27:20,890 --> 00:27:22,120 sa a se kalite bèl. 631 00:27:22,120 --> 00:27:25,460 Koulye a, Valgrind se aktyèlman kap yon ti kras pi difisil nan Kòd mwen. 632 00:27:25,460 --> 00:27:29,580 Epi li di ke, aparamman, malok nan liy - 633 00:27:29,580 --> 00:27:30,580 nou rale soti. 634 00:27:30,580 --> 00:27:31,980 Nan liy - 635 00:27:31,980 --> 00:27:32,930 nou pa wè sa ki liy li se. 636 00:27:32,930 --> 00:27:35,110 Men, malok se koupab la an premye. 637 00:27:35,110 --> 00:27:38,630 Genyen yon blog nan malok. 638 00:27:38,630 --> 00:27:39,810 >> Tout dwa? 639 00:27:39,810 --> 00:27:40,450 OK, pa gen. 640 00:27:40,450 --> 00:27:40,940 Dwa? 641 00:27:40,940 --> 00:27:42,520 Mwen te rele getstring. 642 00:27:42,520 --> 00:27:44,460 getstring aparamman rele malok. 643 00:27:44,460 --> 00:27:47,800 Se konsa, sa liy nan Kòd la se aparamman nan fay pou gen 644 00:27:47,800 --> 00:27:49,050 resevwa lajan sa a memwa? 645 00:27:49,050 --> 00:27:51,560 646 00:27:51,560 --> 00:27:55,540 Se pou yo asime ke moun ki te ekri malok te alantou lontan ase ke li nan 647 00:27:55,540 --> 00:27:56,390 pa fòt yo. 648 00:27:56,390 --> 00:27:57,520 Se konsa, li la pwobableman mwen yo ye. 649 00:27:57,520 --> 00:28:02,000 getstring nan cs50.c - pou ki nan yon pote yon kote sou òdinatè a - 650 00:28:02,000 --> 00:28:05,210 nan liy 286 sanble ap koupab la. 651 00:28:05,210 --> 00:28:08,140 Koulye a, kite a sipoze ke cs50 te alantou pou desan kantite tan, se konsa 652 00:28:08,140 --> 00:28:09,720 tou nou menm nou yo reusi. 653 00:28:09,720 --> 00:28:14,080 Se konsa, li la pwobableman pa nan getstring ki pinèz la bay manti, men pito nan 654 00:28:14,080 --> 00:28:17,810 alo-2.c liy 18. 655 00:28:17,810 --> 00:28:20,670 >> Se konsa, kite a pran yon gade nan ki sa sa liy 18 te ye a. 656 00:28:20,670 --> 00:28:21,130 Oh. 657 00:28:21,130 --> 00:28:27,130 Yon jan kanmenm liy sa a se pa nesesèman buggy, se pou chak, men li se rezon ki fè yo 658 00:28:27,130 --> 00:28:28,630 dèyè ke fwit memwa. 659 00:28:28,630 --> 00:28:32,140 Se konsa, super tou senpleman, sa ki ta entwitif gen solisyon an isit la? 660 00:28:32,140 --> 00:28:34,710 Si nou ap mande pou memwa, yo te pa janm bay li tounen, e ke sa sanble gen yon 661 00:28:34,710 --> 00:28:37,940 pwoblèm paske sou tan òdinatè mwen ta ka kouri soti nan memwa, ta ka ralanti 662 00:28:37,940 --> 00:28:42,110 desann, move bagay ka rive, byen, sa ki nan solisyon an senp entwisyon? 663 00:28:42,110 --> 00:28:43,140 Jis ba l 'tounen. 664 00:28:43,140 --> 00:28:44,770 >> Ki jan ou fè libere ond ki memwa? 665 00:28:44,770 --> 00:28:49,970 Oke, Erezman li nan byen senp jis di gratis Non. 666 00:28:49,970 --> 00:28:51,260 Men, nou pa janm te fè sa a anvan. 667 00:28:51,260 --> 00:28:55,890 Men, ou ka esansyèlman panse a gratis kòm opoze a nan malok. 668 00:28:55,890 --> 00:28:58,030 gratis se opoze a nan allocation memwa. 669 00:28:58,030 --> 00:28:59,540 Se konsa, kounye a kite m 'compile sa a. 670 00:28:59,540 --> 00:29:02,050 Fè alo-2 a. 671 00:29:02,050 --> 00:29:04,620 Kite m 'kouri l' ankò. alo 2-David la. 672 00:29:04,620 --> 00:29:07,290 Se konsa, li sanble nan travay nan egzakteman menm jan an. 673 00:29:07,290 --> 00:29:11,180 Men, si mwen tounen nan Valgrind ak re-kouri ki bay lòd menm sou ki fèk mwen 674 00:29:11,180 --> 00:29:14,720 konpile pwogram nan, sezisman nan non mwen tankou anvan - 675 00:29:14,720 --> 00:29:15,370 bèl. 676 00:29:15,370 --> 00:29:16,760 Rezime pil wòch - 677 00:29:16,760 --> 00:29:17,740 nan itilize nan sòti - 678 00:29:17,740 --> 00:29:19,370 zewo bytes nan blòk zewo. 679 00:29:19,370 --> 00:29:21,840 Lè sa a se super bèl, tout blòk pil wòch yo te libere. 680 00:29:21,840 --> 00:29:23,480 Pa gen fwit yo posib. 681 00:29:23,480 --> 00:29:27,200 >> Se konsa, vini, pa ak mete Pwoblèm 4, Men, se avèk Set Pwoblèm 5, forensics yo 682 00:29:27,200 --> 00:29:30,740 ak pati, sa a twò ap vin yon mezi Correct nan ou 683 00:29:30,740 --> 00:29:33,630 pwogram nan, si wi ou non ou gen oswa ou pa gen fwit memwa. 684 00:29:33,630 --> 00:29:36,900 Men, Erezman, se pa sèlman ou ka rezon ki fè nan yo entwitif ki, 685 00:29:36,900 --> 00:29:40,430 se, joui, fasil pou pwogram ti men pi difisil pou pi gwo pwogram, 686 00:29:40,430 --> 00:29:43,860 Valgrind, pou pwogram sa yo pi gwo, ka ede w idantifye 687 00:29:43,860 --> 00:29:45,360 pwoblèm nan an patikilye. 688 00:29:45,360 --> 00:29:47,500 >> Men, gen yon pwoblèm lòt ki ka rive. 689 00:29:47,500 --> 00:29:51,245 Kite m 'louvri moute sa a ranpli isit la, ki se, ankò, yon egzanp yon ti jan senp. 690 00:29:51,245 --> 00:29:53,760 Men, nan kite konsantre sou sa ki pwogram sa a ap fè. 691 00:29:53,760 --> 00:29:55,190 Se sa yo rele memory.c. 692 00:29:55,190 --> 00:29:58,380 Nou pral poste sa a jodi a pita nan la postal nan kòd sous la jodi a. 693 00:29:58,380 --> 00:30:01,610 Ak Avi ke mwen gen yon fonksyon ki rele f ki pran pa gen agiman ak 694 00:30:01,610 --> 00:30:02,800 retounen pa gen anyen. 695 00:30:02,800 --> 00:30:07,240 Nan liy 20, mwen aparamman deklare yon konsèy nan yon Int ak rele li x. 696 00:30:07,240 --> 00:30:09,570 Mwen plase se retounen nan valè de malok. 697 00:30:09,570 --> 00:30:14,590 Men, jis yo dwe klè, ki jan anpil bytes am Mwen pwobableman ap resevwa tounen soti nan malok 698 00:30:14,590 --> 00:30:17,080 nan sitiyasyon sa a? 699 00:30:17,080 --> 00:30:18,040 >> Pwobableman 40. 700 00:30:18,040 --> 00:30:18,840 Ki kote ou jwenn ki soti nan? 701 00:30:18,840 --> 00:30:22,410 Byen, si w sonje ke yon Int se souvan 4 bytes, omwen li se nan la 702 00:30:22,410 --> 00:30:25,110 aparèy, 10 fwa 4 se evidamman 40. 703 00:30:25,110 --> 00:30:28,920 Se konsa, malok se retounen yon adrès nan yon moso nan memwa epi estoke ki 704 00:30:28,920 --> 00:30:30,800 adrese finalman nan x. 705 00:30:30,800 --> 00:30:32,570 Se konsa, yo dwe klè, ki sa ki Lè sa a, k ap pase? 706 00:30:32,570 --> 00:30:34,990 Oke, kite m 'chanje tounen sou foto a nou isit la. 707 00:30:34,990 --> 00:30:38,150 Kite m 'pa sèlman trase anba a nan mwen memwa òdinatè a, kite m 'ale pi devan epi 708 00:30:38,150 --> 00:30:42,990 trase rektang la tout antye ki reprezante tout nan RAM m 'yo. 709 00:30:42,990 --> 00:30:44,790 >> Nou pral di ke chemine a se sou anba a. 710 00:30:44,790 --> 00:30:47,010 Apre sa, nan yon segman tèks nan done yo uninitialized. 711 00:30:47,010 --> 00:30:49,880 Men, mwen jis ale nan abstrè sa yo lòt bagay lwen kòm dot, dot dot. 712 00:30:49,880 --> 00:30:53,470 Mwen jis ale nan, al gade nan sa a kòm pil wòch la nan tèt la. 713 00:30:53,470 --> 00:30:57,070 Lè sa a, nan pati anba a nan foto sa a, ki reprezante prensipal yo, mwen pral 714 00:30:57,070 --> 00:30:59,880 bay li yon memwa tranch sou pil la. 715 00:30:59,880 --> 00:31:03,150 Pou f, mwen pral bay li yon tranch nan memwa sou pil la. 716 00:31:03,150 --> 00:31:05,140 Koulye a, mwen te rive nan konsilte mwen Kòd sous ankò. 717 00:31:05,140 --> 00:31:07,170 Ki sa ki varyab yo lokal yo, pou prensipal yo? 718 00:31:07,170 --> 00:31:10,710 Aparamman pa gen anyen, se konsa ke tranch se efektivman vid oswa pa menm kòm gwo 719 00:31:10,710 --> 00:31:11,600 kòm mwen te trase li. 720 00:31:11,600 --> 00:31:15,730 Men, nan f, mwen gen yon varyab lokal yo, ki te rele x. 721 00:31:15,730 --> 00:31:20,410 Se konsa, mwen pral ale pi devan epi bay f yon ti moso nan memwa, rele li x. 722 00:31:20,410 --> 00:31:24,680 >> Epi, koulye a malok nan 4 10 fwa, Se konsa, 40 malok kote a ki 723 00:31:24,680 --> 00:31:25,430 memwa vini soti nan? 724 00:31:25,430 --> 00:31:27,530 Nou pa te trase yon foto renmen sa a anvan. 725 00:31:27,530 --> 00:31:31,140 Men, kite a sipoze ke li nan efektivman vini soti nan isit la, se konsa yon sèl, 726 00:31:31,140 --> 00:31:33,170 de, twa, kat, senk. 727 00:31:33,170 --> 00:31:34,680 Koulye a, mwen bezwen 40 nan sa yo. 728 00:31:34,680 --> 00:31:37,540 Se konsa, mwen pral jis fè dot, dot, dot sijere ki gen nan memwa menm plis 729 00:31:37,540 --> 00:31:39,350 vini tounen soti nan pil la. 730 00:31:39,350 --> 00:31:40,710 Koulye a, sa ki nan adrès la? 731 00:31:40,710 --> 00:31:42,620 Se pou yo chwazi abitrè nou adrese kòm toujou, - 732 00:31:42,620 --> 00:31:46,310 Ox123, menm si li la pwobableman pral yo dwe yon bagay konplètman diferan. 733 00:31:46,310 --> 00:31:50,420 Sa a adrès la nan multiple an premye nan memwa ke mwen mande malok pou. 734 00:31:50,420 --> 00:31:53,630 >> Se konsa, nan kout, liy yon fwa 20 ègzekutra, ki sa ki literalman 735 00:31:53,630 --> 00:31:57,170 estoke andedan nan x isit la? 736 00:31:57,170 --> 00:31:58,730 Ox123. 737 00:31:58,730 --> 00:32:00,370 Ox123. 738 00:32:00,370 --> 00:32:01,550 Epi dezyèm towo a se entérésan. 739 00:32:01,550 --> 00:32:03,200 Li jis vle di, isit la nan yon ekzadesimal nimewo. 740 00:32:03,200 --> 00:32:06,490 Men, sa ki nan kle se ke sa mwen te magazen nan x, ki se yon varyab lokal yo. 741 00:32:06,490 --> 00:32:10,260 Men, ki kalite done li yo, ankò, se yon adrès nan yon Int. 742 00:32:10,260 --> 00:32:12,710 Oke, mwen pral nan magazen Ox123. 743 00:32:12,710 --> 00:32:16,610 Men, ankò, si sa a, se yon ti kras twò konplike san nesesite, si mwen woulo liv 744 00:32:16,610 --> 00:32:21,490 tounen, nou kapab abstrè sa a ale byen rezonab ak jis di ke x ki se yon 745 00:32:21,490 --> 00:32:23,910 konsèy sa yo ki ti moso nan memwa. 746 00:32:23,910 --> 00:32:24,070 >> OK. 747 00:32:24,070 --> 00:32:26,230 Koulye a, kesyon an nan men se sa ki annapre yo - 748 00:32:26,230 --> 00:32:29,910 liy 21, li vire soti, se buggy. 749 00:32:29,910 --> 00:32:31,160 Poukisa? 750 00:32:31,160 --> 00:32:34,890 751 00:32:34,890 --> 00:32:36,930 >> M regrèt? 752 00:32:36,930 --> 00:32:38,640 Li pa gen - 753 00:32:38,640 --> 00:32:40,390 di ke yon fwa plis. 754 00:32:40,390 --> 00:32:41,240 Oke, li pa fè sa gratis. 755 00:32:41,240 --> 00:32:42,350 Se konsa, sa a, se dezyèm nan men. 756 00:32:42,350 --> 00:32:45,000 Se konsa, gen nan yon lòt men espesyalman nan liy 21. 757 00:32:45,000 --> 00:32:49,480 758 00:32:49,480 --> 00:32:50,040 >> Egzakteman. 759 00:32:50,040 --> 00:32:54,980 Liy sa a senp nan kòd se jis yon debòde tanpon, yon depase tanpon. 760 00:32:54,980 --> 00:32:57,050 Yon tanpon jis vle di yon ti moso nan memwa. 761 00:32:57,050 --> 00:33:01,520 Men, sa ti moso nan memwa se nan gwosè 10, 10 nonm antye yo, ki vle di si nou 762 00:33:01,520 --> 00:33:05,350 endèks nan li lè l sèvi avèk sik nan Massachusetts Institute of Technology nan notasyon etalaj, kare a 763 00:33:05,350 --> 00:33:09,220 parantèz, ou gen aksè nan x bracket 0 x bracket 1 x, 764 00:33:09,220 --> 00:33:10,390 bracket dot, dot, dot. 765 00:33:10,390 --> 00:33:13,270 x bracket 9 se youn nan pi gwo. 766 00:33:13,270 --> 00:33:17,680 Se konsa, si m 'fè x, 10 bracket kote Mwen aktyèlman pral nan memwa? 767 00:33:17,680 --> 00:33:19,120 >> Oke, si mwen gen 10 Int - 768 00:33:19,120 --> 00:33:21,070 kite a aktyèlman rale tout nan sa yo soti isit la. 769 00:33:21,070 --> 00:33:22,700 Se konsa, sa ki te senk an premye. 770 00:33:22,700 --> 00:33:24,660 Isit la nan lòt senk antye yo. 771 00:33:24,660 --> 00:33:29,580 Se konsa, x bracket 0 se isit la. x bracket 1 se isit la. x bracket 9 se isit la. x bracket 772 00:33:29,580 --> 00:33:37,960 10 se isit la, ki vle di m'ap di, nan liy 21, òdinatè a yo mete nan 773 00:33:37,960 --> 00:33:39,400 nimewo ki kote? 774 00:33:39,400 --> 00:33:42,010 Nimewo a 0 ki kote? 775 00:33:42,010 --> 00:33:43,380 Oke, li nan 0, repons lan se wi. 776 00:33:43,380 --> 00:33:45,460 Men, jis lefèt ke 0 li yo se kalite yon konyensidans. 777 00:33:45,460 --> 00:33:47,140 Li ta ka nimewo a 50, pou tout sa nou pran swen. 778 00:33:47,140 --> 00:33:50,480 Men, nou ap eseye mete l 'nan x bracket 10, ki se kote sa a 779 00:33:50,480 --> 00:33:53,700 se make kesyon trase, ki se pa yon bon bagay. 780 00:33:53,700 --> 00:33:57,070 Pwogram sa a ta ka trè byen aksidan kòm yon rezilta. 781 00:33:57,070 --> 00:33:59,400 >> Koulye a, kite a ale pi devan epi wè si sa a se, tout bon, sa k ap pase. 782 00:33:59,400 --> 00:34:02,600 Fè memwa, depi dosye a rele memory.c. 783 00:34:02,600 --> 00:34:05,950 Se pou yo ale pi devan epi kouri pwogram memwa a. 784 00:34:05,950 --> 00:34:08,239 Se konsa, nou gen chans, aktyèlman, li sanble. 785 00:34:08,239 --> 00:34:09,340 Nou gen chans. 786 00:34:09,340 --> 00:34:11,060 Men, kite a wè si nou kouri kounye a Valgrind. 787 00:34:11,060 --> 00:34:14,170 Nan premye gade, pwogram m 'lan ka sanble yo gen parfe kòrèk. 788 00:34:14,170 --> 00:34:18,010 Men, kite m 'kouri Valgrind ak nan - Fuit radyasyon-chèk egal plen sou memwa. 789 00:34:18,010 --> 00:34:20,110 >> Epi, koulye a lè m 'kouri sa a - 790 00:34:20,110 --> 00:34:21,030 enteresan. 791 00:34:21,030 --> 00:34:26,800 Envalid ekri nan gwosè 4 nan liy 21 nan memory.c. 792 00:34:26,800 --> 00:34:29,284 Liy 21 nan memory.c se ki youn? 793 00:34:29,284 --> 00:34:30,340 Oh, enteresan. 794 00:34:30,340 --> 00:34:31,080 Men, tann. 795 00:34:31,080 --> 00:34:32,389 Size 4 an, sa sa refere li a? 796 00:34:32,389 --> 00:34:34,969 Mwen sèlman t 'yon sèl ekri, men li la nan gwosè 4. 797 00:34:34,969 --> 00:34:36,889 Poukisa li 4? 798 00:34:36,889 --> 00:34:39,280 Li nan paske li nan yon Int, ki se, ankò, kat bytes. 799 00:34:39,280 --> 00:34:42,510 Se konsa, Valgrind yo te jwenn yon ensèk se mwen menm, ensidan nan Kòd m 'yo, pa t'. 800 00:34:42,510 --> 00:34:45,040 E petèt TF ou ta oswa pa ta. 801 00:34:45,040 --> 00:34:48,469 Ki sa ki Men, Valgrind pou asire w te jwenn ke nou te fè yon erè a, menm 802 00:34:48,469 --> 00:34:52,719 si nou gen chans, ak òdinatè a deside, eh, mwen pa ale nan aksidan 803 00:34:52,719 --> 00:34:57,470 jis paske w manyen yon sèl multiple, yon sèl vo Int la nan memwa ke ou pa t ' 804 00:34:57,470 --> 00:34:58,550 aktyèlman pwòp. 805 00:34:58,550 --> 00:35:00,380 >> Oke, ki lòt bagay se buggy isit la. 806 00:35:00,380 --> 00:35:01,180 Adrès - 807 00:35:01,180 --> 00:35:03,190 sa a se yon adrès fou kap nan ekzadesimal. 808 00:35:03,190 --> 00:35:06,890 Sa jis vle di yon kote nan pil wòch la se zewo bytes apre yon blòk nan gwosè 40 809 00:35:06,890 --> 00:35:07,620 se atribye ba. 810 00:35:07,620 --> 00:35:10,610 Kite m 'rale soti isit la ak wè si sa a se yon ti kras pi plis itil. 811 00:35:10,610 --> 00:35:11,410 Enteresan. 812 00:35:11,410 --> 00:35:15,600 40 bytes yo definitivman pèdi nan dosye pèt 1 nan 1. 813 00:35:15,600 --> 00:35:17,840 Yon fwa ankò, pi plis mo pase se itil isit la. 814 00:35:17,840 --> 00:35:21,350 Men, ki baze sou liy ki make, kote mwen ta dwe pwobableman konsantre mwen 815 00:35:21,350 --> 00:35:24,070 atansyon pou yon lòt ensèk? 816 00:35:24,070 --> 00:35:26,570 Sanble yon liy 20 nan memory.c. 817 00:35:26,570 --> 00:35:30,990 >> Se konsa, si nou tounen nan liy 20, sa a, se la yon sèl ke ou idantifye pi bonè. 818 00:35:30,990 --> 00:35:33,030 Men, li pa nan nesesèman buggy. 819 00:35:33,030 --> 00:35:35,160 Men, nou te sa a ranvèse efè li yo. 820 00:35:35,160 --> 00:35:38,790 Se konsa, kouman mwen korije omwen youn nan moun ki erè? 821 00:35:38,790 --> 00:35:42,240 Kisa ki ta kapab pou m fè apre liy 21? 822 00:35:42,240 --> 00:35:47,110 Mwen te kapab fè gratis nan x, se konsa bay tounen ke memwa. 823 00:35:47,110 --> 00:35:49,230 Men, ki jan mwen ranje sa a ensèk? 824 00:35:49,230 --> 00:35:52,120 Mwen ta dwe definitivman ale pa gen okenn pi lwen pase 0. 825 00:35:52,120 --> 00:35:53,670 Se konsa, kite m 'a eseye, ak re-kouri sa a. 826 00:35:53,670 --> 00:35:56,080 Padon, definitivman ale pa gen okenn pi lwen pase 9. 827 00:35:56,080 --> 00:35:57,510 Fè memwa. 828 00:35:57,510 --> 00:36:00,650 Kite m 'relance Valgrind nan yon lòt fenèt pi gran. 829 00:36:00,650 --> 00:36:01,580 Epi, koulye a gade. 830 00:36:01,580 --> 00:36:02,250 Nice. 831 00:36:02,250 --> 00:36:03,270 Tout blòk pil wòch yo te libere. 832 00:36:03,270 --> 00:36:04,270 Pa gen fwit yo posib. 833 00:36:04,270 --> 00:36:07,520 Men, moute pi wo a isit la, gen nan pa gen mansyone nenpòt ki plis nan dwa valab. 834 00:36:07,520 --> 00:36:09,820 >> Jis jwenn visye, ak nan kite wè si yon lòt demonstrasyon 835 00:36:09,820 --> 00:36:11,050 pa ale kòm gen entansyon - 836 00:36:11,050 --> 00:36:12,560 Mwen t 'jwenn chans yon moman de sa. 837 00:36:12,560 --> 00:36:15,530 Men, lefèt ke sa a se 0 se petèt san nesesite erè ladann. 838 00:36:15,530 --> 00:36:20,650 Se pou yo jis fè 50, yon abitrè yon ti jan nimewo, fè memwa dot koupe memwa - 839 00:36:20,650 --> 00:36:21,410 toujou jwenn chans. 840 00:36:21,410 --> 00:36:22,510 Pa gen anyen nan kolizyon. 841 00:36:22,510 --> 00:36:26,150 Sipoze mwen jis fè yon bagay reyèlman tèt chaje, mwen fè 100. 842 00:36:26,150 --> 00:36:30,360 Kite m 'renouvèlman memwa, dot koupe memwa - 843 00:36:30,360 --> 00:36:31,075 gen chans ankò. 844 00:36:31,075 --> 00:36:32,800 Kouman sou 1,000? 845 00:36:32,800 --> 00:36:35,370 antye pi lwen pase, apeprè, kote mwen ta dwe? 846 00:36:35,370 --> 00:36:37,410 Fè memwa - 847 00:36:37,410 --> 00:36:38,570 modi li. 848 00:36:38,570 --> 00:36:39,920 >> [Ri] 849 00:36:39,920 --> 00:36:41,270 >> OK. 850 00:36:41,270 --> 00:36:43,920 Se pou yo pa dezòd alantou ankò. 851 00:36:43,920 --> 00:36:45,120 Relance memwa. 852 00:36:45,120 --> 00:36:45,840 Gen nou ale. 853 00:36:45,840 --> 00:36:46,410 Tout dwa. 854 00:36:46,410 --> 00:36:52,500 Se konsa, aparamman ou endèks 100,000 antye pi lwen pase kote ou ta dwe te nan 855 00:36:52,500 --> 00:36:54,410 memwa, move bagay rive. 856 00:36:54,410 --> 00:36:56,430 Se konsa, sa a se evidamman pa yon difisil, vit règ. 857 00:36:56,430 --> 00:36:58,190 Mwen te kalite lè l sèvi avèk jijman ak erè yo ka resevwa gen. 858 00:36:58,190 --> 00:37:02,230 Men, sa a se paske, depi lontan istwa kout, se memwa òdinatè w lan an tou divize 859 00:37:02,230 --> 00:37:03,580 nan bagay sa yo rele segments. 860 00:37:03,580 --> 00:37:07,260 Epi pafwa, òdinatè a aktyèlman te ban nou yon ti kras plis memwa 861 00:37:07,260 --> 00:37:08,400 pase ou mande pou ou. 862 00:37:08,400 --> 00:37:12,170 Men, pou efikasite, li nan jis pi fasil jwenn plis memwa men se sèlman di ou 863 00:37:12,170 --> 00:37:13,780 ke w ap resevwa yon pòsyon nan li. 864 00:37:13,780 --> 00:37:16,370 >> Men, si ou jwenn chans pafwa, Se poutèt sa, ou ta ka kapab manyen 865 00:37:16,370 --> 00:37:17,795 memwa ki pa fè pati ou. 866 00:37:17,795 --> 00:37:21,860 Ou gen okenn garanti ke sa ki valè ou mete ladan l 'ap rete la, paske 867 00:37:21,860 --> 00:37:25,080 òdinatè a toujou panse li pa ou, men li pa la nesesèman pral 868 00:37:25,080 --> 00:37:29,910 frape yon lòt segman nan memwa nan la òdinatè ak pwovoke yon erè tankou 869 00:37:29,910 --> 00:37:31,710 yon sèl sa a isit la. 870 00:37:31,710 --> 00:37:32,060 Tout dwa. 871 00:37:32,060 --> 00:37:37,240 Nenpòt kesyon Lè sa a, sou memwa? 872 00:37:37,240 --> 00:37:37,590 >> Tout dwa. 873 00:37:37,590 --> 00:37:40,610 Ann pran yon gade isit la, lè sa a, nan yon bagay nou ve yo te pran pou 874 00:37:40,610 --> 00:37:48,361 akòde pou kèk tan, ki se nan sa a ranpli rele cs50.h. 875 00:37:48,361 --> 00:37:49,420 Se konsa, sa a se yon dosye. 876 00:37:49,420 --> 00:37:51,130 Sa yo se sèlman yon pakèt tout nan kòmantè moute tèt. 877 00:37:51,130 --> 00:37:53,900 Epi ou ka gen gade sa a si ou poked alantou sou aparèy la. 878 00:37:53,900 --> 00:37:57,000 Men, li sanble ke tout tan tout tan an, lè nou itilize yo itilize fisèl kòm yon 879 00:37:57,000 --> 00:38:01,130 synonym, vle di la pa ki nou te deklare ki synonym te la avèk sa a 880 00:38:01,130 --> 00:38:03,990 mo kle tipedèf, pou definisyon kalite. 881 00:38:03,990 --> 00:38:07,500 Men, nou ap esansyèlman li di yo: fè fisèl yon synonym pou zetwal Char. 882 00:38:07,500 --> 00:38:11,190 Sa vle di yo pa ki chemine a kreye sa yo wou fòmasyon li te ye kòm 883 00:38:11,190 --> 00:38:12,040 fisèl la. 884 00:38:12,040 --> 00:38:14,830 >> Koulye a isit la a, se jis yon pwototip pou getchar. 885 00:38:14,830 --> 00:38:17,350 Nou te ka wè l 'devan, men sa a tout bon ki sa li fè. getchar 886 00:38:17,350 --> 00:38:19,070 pran pa gen agiman, retounen yon Char. 887 00:38:19,070 --> 00:38:21,340 getdouble pran pa gen agiman, retounen yon doub. 888 00:38:21,340 --> 00:38:24,440 getfloat pran pa gen agiman, retounen yon flote, ak pou fè. 889 00:38:24,440 --> 00:38:27,270 getint se nan isit la. getlonglong se nan isit la. 890 00:38:27,270 --> 00:38:28,820 Men, getstring se nan isit la. 891 00:38:28,820 --> 00:38:29,420 Epi sa a, li. 892 00:38:29,420 --> 00:38:33,080 Liy sa a koulè wouj violèt se yon lòt preproseseur direktiv paske yo te nan 893 00:38:33,080 --> 00:38:35,550 hashtag nan konmansman an nan li. 894 00:38:35,550 --> 00:38:35,870 >> Tout dwa. 895 00:38:35,870 --> 00:38:38,380 Se konsa, kounye a kite m 'ale nan cs50.c. 896 00:38:38,380 --> 00:38:40,400 Epi nou pa pral pale twò lontan sou sa. 897 00:38:40,400 --> 00:38:43,280 Men, yo ba ou yon aperçu nan sa ki nan te ale sou tout bagay sa a 898 00:38:43,280 --> 00:38:46,434 tan sa a, kite m 'ale nan - 899 00:38:46,434 --> 00:38:48,250 kite a fè getchar. 900 00:38:48,250 --> 00:38:51,050 Se konsa, getchar se sitou kòmantè. 901 00:38:51,050 --> 00:38:52,060 Men, li sanble tankou sa a. 902 00:38:52,060 --> 00:38:54,800 Se konsa, sa a se fonksyon aktyèl la getchar ke nou ve yo te 903 00:38:54,800 --> 00:38:56,055 pran pou aki egziste. 904 00:38:56,055 --> 00:38:59,370 Men, menm si nou pa gen itilize yon sèl sa a ki souvan, si tout tan tout tan, li la omwen 905 00:38:59,370 --> 00:39:00,470 relativman senp. 906 00:39:00,470 --> 00:39:02,580 Se konsa, li la vo pran yon rapid gade nan isit la. 907 00:39:02,580 --> 00:39:06,540 >> Se konsa, getchar gen yon bouk enfini, fè espre pou aparamman. 908 00:39:06,540 --> 00:39:10,050 Li Lè sa a, rele - e sa se kalite yon bèl sèvi ak yo ankò nan kòd Nou menm nou te ekri. 909 00:39:10,050 --> 00:39:11,220 Li rele getstring. 910 00:39:11,220 --> 00:39:12,460 Paske sa ki fè li vle di yo ka resevwa yon Char? 911 00:39:12,460 --> 00:39:14,730 Oke, ou ta ka kòm byen eseye jwenn yon tout liy nan tèks la ki soti nan itilizatè a ak 912 00:39:14,730 --> 00:39:16,940 Lè sa a, jis gade nan yon sèl nan tout sa yo karaktè. 913 00:39:16,940 --> 00:39:19,170 Nan liy 60, isit la nan yon ti kras ti jan nan yon chèk saniti. 914 00:39:19,170 --> 00:39:21,610 Si getstring tounen nil, kite a pa kontinye. 915 00:39:21,610 --> 00:39:22,820 Yon bagay te ale mal. 916 00:39:22,820 --> 00:39:28,120 >> Koulye a, sa a se yon ti jan anmèdan men konvansyonèl nan C. max Char pwobableman 917 00:39:28,120 --> 00:39:29,960 reprezante sa jis ki baze sou non li? 918 00:39:29,960 --> 00:39:31,670 Li se yon konstan. 919 00:39:31,670 --> 00:39:36,040 Se tankou valè a nimerik nan la pi gwo Char ou ka reprezante ak 920 00:39:36,040 --> 00:39:40,370 yon sèl mòde, ki se pwobableman nimewo a 255, ki se nimewo nan pi gwo ou 921 00:39:40,370 --> 00:39:42,720 reprezante uit Bits, kòmanse nan zewo. 922 00:39:42,720 --> 00:39:47,460 Se konsa, mwen te sèvi ak sa a, nan fonksyon sa a, lè ekri sa a kòd, sèlman paske 923 00:39:47,460 --> 00:39:51,753 si gen yon bagay ale mal nan getchar men objektif li nan lavi a se retounen yon 924 00:39:51,753 --> 00:39:54,830 Char, ou bezwen yon jan kanmenm kapab yo fè siyal itilizatè a ki 925 00:39:54,830 --> 00:39:55,840 yon bagay ale mal. 926 00:39:55,840 --> 00:39:56,970 Nou pa ka retounen nil. 927 00:39:56,970 --> 00:39:58,480 Li sanble ke nil se yon konsèy. 928 00:39:58,480 --> 00:40:01,030 Li di ankò: getchar gen retounen yon Char. 929 00:40:01,030 --> 00:40:04,760 >> Se konsa, konvansyon an, si gen yon bagay ale sa ki mal, se ou menm, pwogramè a, oswa nan 930 00:40:04,760 --> 00:40:08,160 ka sa a, m 'ak bibliyotèk la, mwen te gen yon jis deside abitrèman, si 931 00:40:08,160 --> 00:40:12,230 yon bagay ale mal, mwen pral retounen nimewo a 255, ki se vre wi: 932 00:40:12,230 --> 00:40:17,240 vle di nou pa kapab, itilizatè a kapab pa tape pèsonaj la reprezante pa la 933 00:40:17,240 --> 00:40:21,410 nimewo 255 paske nou te gen yon vòlè li kòm yon valè Sentinel sa yo rele 934 00:40:21,410 --> 00:40:23,410 reprezante yon pwoblèm. 935 00:40:23,410 --> 00:40:27,010 Koulye a, li sanble ke pèsonaj la 255 se pa yon bagay ou ka tape sou 936 00:40:27,010 --> 00:40:28,380 klavye ou, se konsa li gen okenn kontra gwo. 937 00:40:28,380 --> 00:40:30,910 Itilizatè a pa remake ke Mwen te yo vòlè li sa a karaktè. 938 00:40:30,910 --> 00:40:34,620 Men, si ou janm wè nan paj nonm sou yon sistèm òdinatè kèk referans a yon 939 00:40:34,620 --> 00:40:38,560 tout bouchon konstan tankou sa a ki di, nan ka nan erè sa a ta ka konstan 940 00:40:38,560 --> 00:40:42,720 dwe retounen, ki nan tout kèk moun te fè ane de sa te abitrèman deside 941 00:40:42,720 --> 00:40:45,680 retounen sa a valè espesyal ak rele li yon konstan nan ka 942 00:40:45,680 --> 00:40:46,840 yon bagay ale mal. 943 00:40:46,840 --> 00:40:48,580 >> Koulye a, majik la k ap pase desann isit la. 944 00:40:48,580 --> 00:40:52,600 Premyèman, m ap deklare nan liy 67 de karaktè, C1 ak C2. 945 00:40:52,600 --> 00:40:57,080 Lè sa a, nan liy 68, gen nan aktyèlman yon liy nan Kòd sa a, se okoumansman de 946 00:40:57,080 --> 00:41:01,140 zanmi nou an printf, bay sa li gen CS pousan nan quotes. 947 00:41:01,140 --> 00:41:06,490 Men, remake sa kap pase isit la. sskanf vle di eskanè fisèl - 948 00:41:06,490 --> 00:41:11,690 vle di eskane yon formate fisèl, sskanf èrgo. 949 00:41:11,690 --> 00:41:12,590 Kisa sa vle di? 950 00:41:12,590 --> 00:41:16,310 Sa vle di ou pase nan sskanf yon kòd. 951 00:41:16,310 --> 00:41:18,420 Men, liy la se tou sa itilizatè ki kalite pous 952 00:41:18,420 --> 00:41:23,520 Ou pase nan sskanf yon kòd fòma tankou sa a ki di skanf ki sa yo 953 00:41:23,520 --> 00:41:25,870 ou espere te itilizatè a tape pous 954 00:41:25,870 --> 00:41:29,730 Ou Lè sa a, pase-nan adrès yo nan de fragman nan memwa, nan ka sa a, 955 00:41:29,730 --> 00:41:31,150 paske mwen gen de placeholders. 956 00:41:31,150 --> 00:41:34,610 Se konsa, mwen pral bay li adrès la nan C1 ak adrès la nan C2. 957 00:41:34,610 --> 00:41:37,700 >> Men, sonje ke ou bay la yon fonksyon adrès nan kèk varyab, sa ki nan 958 00:41:37,700 --> 00:41:38,950 enplikasyon a? 959 00:41:38,950 --> 00:41:41,400 960 00:41:41,400 --> 00:41:45,050 Ki sa ki ka ki fonksyon fè kòm yon konsekans nan bay li adrès la nan yon 961 00:41:45,050 --> 00:41:48,170 varyab, kòm opoze a varyab nan tèt li? 962 00:41:48,170 --> 00:41:49,450 Li ka chanje li, dwa? 963 00:41:49,450 --> 00:41:53,250 Si ou te gen yon moun yon kat jeyografik nan yon fizik adrès, yo ka ale la epi fè 964 00:41:53,250 --> 00:41:54,750 tou sa yo vle lè sa adrès. 965 00:41:54,750 --> 00:41:55,800 Menm lide isit la. 966 00:41:55,800 --> 00:41:59,950 Si nou pase nan sskanf, adrès la nan de fragman nan memwa, menm sa yo ti 967 00:41:59,950 --> 00:42:03,585 fragman ti kras nan memwa C1, ak C2, men nou di li adrès la nan yo, 968 00:42:03,585 --> 00:42:05,170 sskanf kapab chanje li. 969 00:42:05,170 --> 00:42:08,530 >> Se konsa, objektif sskanf a nan lavi yo, si nou li paj la moun, se yo li sa a 970 00:42:08,530 --> 00:42:13,420 itilizatè tape nan, espwa pou itilizatè a gen tape nan yon karaktè e petèt 971 00:42:13,420 --> 00:42:16,470 yon lòt karaktè, ak tou sa itilizatè a tape, pèsonaj la premye ale 972 00:42:16,470 --> 00:42:19,310 isit la, pèsonaj la dezyèm ale isit la. 973 00:42:19,310 --> 00:42:22,470 Koulye a, kòm yon sou kote, sa a, epi ou ta konnen sèlman sa a soti nan dokiman an, 974 00:42:22,470 --> 00:42:25,570 lefèt ke mwen mete yon espas vid gen jis vle di ke mwen pa pran swen si 975 00:42:25,570 --> 00:42:28,440 itilizatè a frape bar nan espas yon kèk fwa devan lotèl li oswa li te pran yon 976 00:42:28,440 --> 00:42:30,400 karaktè, mwen pral inyore nenpòt ki espas blan. 977 00:42:30,400 --> 00:42:32,510 Se konsa, ki, mwen konnen ki soti nan lòt dokiman an. 978 00:42:32,510 --> 00:42:36,570 >> Lefèt ke gen yon c% dezyèm ki te swiv pa espas blan se aktyèlman 979 00:42:36,570 --> 00:42:37,410 ekspre. 980 00:42:37,410 --> 00:42:41,190 Mwen vle pou kapab detekte si itilizatè a vise monte oswa pa t 'kolabore. 981 00:42:41,190 --> 00:42:45,630 Se konsa, mwen espere ke itilizatè a sèlman tape nan yon sèl karaktè, Se poutèt sa mwen espere 982 00:42:45,630 --> 00:42:50,640 ki sskanf se sèlman pral retounen nan valè 1 paske, ankò, si mwen li 983 00:42:50,640 --> 00:42:55,400 dokiman an, bi sskanf a nan lavi a se pou li retounen nan nimewo a nan 984 00:42:55,400 --> 00:42:59,170 varyab ki te plen ak konsèy itilizatè. 985 00:42:59,170 --> 00:43:02,270 >> Mwen te pase nan de varyab adrès, C1 ak C2. 986 00:43:02,270 --> 00:43:06,420 Mwen espere, menm si, ke se sèlman youn nan yo vin touye paske si sskanf 987 00:43:06,420 --> 00:43:11,130 retounen 2, sa ki nan prezimableman enplikasyon la lojikman? 988 00:43:11,130 --> 00:43:14,600 Sa itilizatè a pa t 'jis ban m' yon sèl N. tankou mwen te di l 'oswa li. 989 00:43:14,600 --> 00:43:17,860 Yo pwobableman tape nan omwen de karaktè. 990 00:43:17,860 --> 00:43:22,430 Se konsa, si mwen olye pa t 'gen dezyèm lan C%, mwen jis te gen yon sèl, ki 991 00:43:22,430 --> 00:43:25,370 franchman ta gen plis entwisyon apwòch, mwen panse ke yon premye gade, 992 00:43:25,370 --> 00:43:30,220 ou pa pwal pou kapab detekte si itilizatè a te ban nou plis 993 00:43:30,220 --> 00:43:31,780 D 'pase ou aktyèlman te vle. 994 00:43:31,780 --> 00:43:34,100 Se konsa, sa a se yon fòm enplisit nan kont kouran erè. 995 00:43:34,100 --> 00:43:35,640 >> Men, remake sa mwen fè isit la. 996 00:43:35,640 --> 00:43:39,970 Yon fwa mwen se asire w ke itilizatè a te ban m 'yon sèl karaktè, mwen libere liy lan, ap fè 997 00:43:39,970 --> 00:43:44,450 opoze a nan getstring, ki an vire sèvi ak malok, ak Lè sa a, m'a tounen 998 00:43:44,450 --> 00:43:51,030 C1, pèsonaj la ke mwen te espere a itilizatè yo bay epi sèlman bay yo. 999 00:43:51,030 --> 00:43:54,680 Se konsa, yon rapid yon apèsi sèlman, men nenpòt kesyon sou getchar? 1000 00:43:54,680 --> 00:43:57,450 1001 00:43:57,450 --> 00:43:59,590 Nou pral tounen vin jwenn kèk nan lòt moun yo. 1002 00:43:59,590 --> 00:44:03,770 >> Oke, kite m 'ale pi devan epi fè sa - ta kwè kounye a, jis motive nou 1003 00:44:03,770 --> 00:44:08,910 diskisyon nan yon semèn plis tan, sa a se yon dosye rele structs.h. 1004 00:44:08,910 --> 00:44:11,440 Li di ankò, sa a se jis yon gou nan yon bagay ki bay manti devan. 1005 00:44:11,440 --> 00:44:13,090 Men, avi ke anpil nan sa a se kòmantè. 1006 00:44:13,090 --> 00:44:17,440 Se konsa, kite m 'mete aksan sou sèlman nan enteresan pati pou kounye a. 1007 00:44:17,440 --> 00:44:18,020 tipedèf - 1008 00:44:18,020 --> 00:44:19,700 gen nan ke mo kle menm ankò. 1009 00:44:19,700 --> 00:44:23,100 tipedèf nou itilize deklare fisèl kòm yon espesyal kalite done. 1010 00:44:23,100 --> 00:44:27,490 Ou kapab sèvi ak tipedèf yo kreye nouvo mak done kalite ki pa t egziste lè 1011 00:44:27,490 --> 00:44:28,570 C te envante. 1012 00:44:28,570 --> 00:44:32,520 Pou egzanp, Int vini ak C. Char vini ak C. doub vini ak C. Men, 1013 00:44:32,520 --> 00:44:34,000 gen nan pa gen nosyon yon elèv. 1014 00:44:34,000 --> 00:44:37,230 Men, li ta trè itil yo dwe kapab ekri yon pwogram ki magazen 1015 00:44:37,230 --> 00:44:40,440 nan yon varyab, nimewo ID elèv-la, Non yo, epi yo kay yo. 1016 00:44:40,440 --> 00:44:42,890 Nan lòt mo, twa moso done, renmen yon Int ak yon 1017 00:44:42,890 --> 00:44:44,420 fisèl ak fisèl yon lòt. 1018 00:44:44,420 --> 00:44:48,220 >> Avèk tipedèf, ki sa ki trè pwisan sou sa a ak sturct nan mo kle pou 1019 00:44:48,220 --> 00:44:53,660 estrikti, ou menm, pwogramè a nan 2013, ka aktyèlman defini nan pwòp ou a 1020 00:44:53,660 --> 00:44:57,530 done kalite ki pa t egziste ane de sa men sa kostim rezon ou a. 1021 00:44:57,530 --> 00:45:01,910 Se konsa, isit la, nan liy 13 a 19, nou ap deklare yon kalite done nouvo, tankou 1022 00:45:01,910 --> 00:45:04,320 yon Int, men rele li elèv yo. 1023 00:45:04,320 --> 00:45:09,310 Ak andedan sa a varyab ki pral gen twa bagay sa yo - yon Int, yon kòd, 1024 00:45:09,310 --> 00:45:09,930 ak yon kòd. 1025 00:45:09,930 --> 00:45:13,040 Se konsa, ou ka panse a sa ki nan vrèman rive isit la, menm si sa a se yon 1026 00:45:13,040 --> 00:45:17,160 ti jan nan yon senplifikasyon pou jodi a, yon elèv ap esansyèlman pral 1027 00:45:17,160 --> 00:45:19,450 gade tankou sa a. 1028 00:45:19,450 --> 00:45:22,580 Li pral gen yon ti moso nan memwa ak yon ID, yon non 1029 00:45:22,580 --> 00:45:25,580 jaden, ak yon jaden kay la. 1030 00:45:25,580 --> 00:45:30,670 Epitou, n ap kapab sèvi ak sa yo fragman nan memwa ak jwenn aksè nan yo jan sa a. 1031 00:45:30,670 --> 00:45:38,870 >> Si m 'ale nan struct0.c, isit la se yon relativman long, men apre yon 1032 00:45:38,870 --> 00:45:42,630 modèl, nan kòd ki sèvi ak sa a jwe fent nouvo. 1033 00:45:42,630 --> 00:45:45,790 Se konsa, premye, kite m 'trase atansyon ou pati pyès sa yo enteresan moute tèt. 1034 00:45:45,790 --> 00:45:49,670 Sharp defini elèv yo 3, deklare yon konstan rele elèv yo li ak mandatè 1035 00:45:49,670 --> 00:45:53,450 li abitrèman nimewo a 3, jis Se konsa, mwen gen twa elèv yo lè l sèvi avèk 1036 00:45:53,450 --> 00:45:54,830 pwogram sa a pou kounye a. 1037 00:45:54,830 --> 00:45:55,960 Isit la vini Main. 1038 00:45:55,960 --> 00:45:58,860 Men, avi, jan mwen deklare yon etalaj de elèv yo? 1039 00:45:58,860 --> 00:46:00,480 Bon, mwen jis itilize sentaks la menm. 1040 00:46:00,480 --> 00:46:02,110 Elèv la mo se evidamman nouvo. 1041 00:46:02,110 --> 00:46:04,790 Men, elèv, klas, bracket elèv yo. 1042 00:46:04,790 --> 00:46:06,720 >> Se konsa, malerezman, gen nan yon anpil nan sèvi ak yo ankò nan tèm isit la. 1043 00:46:06,720 --> 00:46:07,660 Sa a se jis yon nimewo. 1044 00:46:07,660 --> 00:46:09,040 Se konsa, sa a se tankou li di twa. 1045 00:46:09,040 --> 00:46:11,430 Gwoup se jis sa m 'vle yo rele varyab la. 1046 00:46:11,430 --> 00:46:12,840 Mwen te kapab rele li elèv yo. 1047 00:46:12,840 --> 00:46:15,880 Men, klas, sa a se pa yon klas nan yon objè oryante Java kalite fason. 1048 00:46:15,880 --> 00:46:17,220 Se jis nan yon klas elèv yo. 1049 00:46:17,220 --> 00:46:20,590 Ak done ki kalite chak eleman nan ki etalaj se elèv yo. 1050 00:46:20,590 --> 00:46:23,040 Se konsa, sa a se yon ti kras diferan ak nan li di yon bagay 1051 00:46:23,040 --> 00:46:25,250 tankou sa a, li nan jis - 1052 00:46:25,250 --> 00:46:29,500 M ap di, ban m 'twa elèv epi rele ki klas etalaj. 1053 00:46:29,500 --> 00:46:29,800 >> Tout dwa. 1054 00:46:29,800 --> 00:46:30,680 Koulye a, isit la nan yon bouk kat. 1055 00:46:30,680 --> 00:46:33,480 Abitye sa a nèg a - répétèr soti nan zewo sou jiska twa. 1056 00:46:33,480 --> 00:46:35,160 Men, isit la nan moso nan nouvo nan sentaks. 1057 00:46:35,160 --> 00:46:37,710 Pwogram lan pral pouse m ', moun la, bay li yon elèv 1058 00:46:37,710 --> 00:46:39,200 ID, ki se yon Int. 1059 00:46:39,200 --> 00:46:44,650 Men, isit la nan sentaks la ak ki ou kapab magazen yon bagay nan jaden an ID a 1060 00:46:44,650 --> 00:46:48,630 kote klas bracket I. Se konsa, sa a sentaks se pa nouvo. 1061 00:46:48,630 --> 00:46:51,450 Sa a jis vle di, ban m 'wityèm lan elèv nan klas la. 1062 00:46:51,450 --> 00:46:52,940 Men, sa a senbòl se nouvo. 1063 00:46:52,940 --> 00:46:56,320 Moute jouk koulye a, nou te pa kapab itilize dot, omwen nan Kòd tankou sa a. 1064 00:46:56,320 --> 00:47:01,490 Sa vle di ale nan struct la li te ye kòm yon elèv, li mete yon bagay la. 1065 00:47:01,490 --> 00:47:05,670 Menm jan an tou, nan liy sa a kap vini an, 31, ale pi devan epi mete tou sa itilizatè a kalite 1066 00:47:05,670 --> 00:47:10,530 pou yon Non isit la ak sa yo fè pou yon kay, menm bagay la, ale pi devan epi 1067 00:47:10,530 --> 00:47:13,230 mete l 'nan. kay la. 1068 00:47:13,230 --> 00:47:15,955 >> Se konsa, sa fè pwogram sa a finalman fè? 1069 00:47:15,955 --> 00:47:17,220 Ou ka wè yon kol ti kras la. 1070 00:47:17,220 --> 00:47:24,780 Kite m 'ale pi devan epi fè strukt 0 dot koupe struct 0, ID elèv la 1, 1071 00:47:24,780 --> 00:47:28,250 di David Mather, elèv ID 2. 1072 00:47:28,250 --> 00:47:32,070 Rob Kirkland, elèv ID 3. 1073 00:47:32,070 --> 00:47:35,010 Lauren Leverit - 1074 00:47:35,010 --> 00:47:38,380 ak bagay la sèlman pwogram sa a te fè, ki se jis konplètman abitrè, se 1075 00:47:38,380 --> 00:47:40,980 Mwen te vle fè yon bagay ak done sa yo, kounye a ke mwen te anseye nou ki jan yo 1076 00:47:40,980 --> 00:47:43,450 sèvi ak strukt, se mwen jis te gen sa a bouk siplemantè isit la. 1077 00:47:43,450 --> 00:47:45,260 Mwen répétèr sou etalaj la nan elèv yo. 1078 00:47:45,260 --> 00:47:49,170 Mwen itilize, nou zanmi petèt kounye a yo konnen yo, fisèl konpare, stircomp 1079 00:47:49,170 --> 00:47:53,780 chèk la se kay 8yèm elèv la egal a Mather? 1080 00:47:53,780 --> 00:47:56,760 Men, si se konsa, jis ekri ak lèt ​​detache yon bagay abitrèman renmen, repons lan se wi, li se. 1081 00:47:56,760 --> 00:47:59,430 Men, ankò, jis bay m 'opòtinite itilize ak jam itilize ak 1082 00:47:59,430 --> 00:48:02,270 jam itilize sa a notasyon dot nouvo. 1083 00:48:02,270 --> 00:48:03,250 >> Se konsa, ki sousye, dwa? 1084 00:48:03,250 --> 00:48:06,270 Vini ak yon pwogram elèv la se yon ti jan abitrè, men li vire soti 1085 00:48:06,270 --> 00:48:09,800 ke nou kapab fè bagay sa yo itil ak sa a, pou egzanp jan sa a. 1086 00:48:09,800 --> 00:48:14,600 Sa a se yon struct pi plis konplike nan C. Li nan te resevwa yon douzèn oswa jaden plis, 1087 00:48:14,600 --> 00:48:15,880 yon ti jan cryptically yo te rele. 1088 00:48:15,880 --> 00:48:20,110 Men, si ou te janm tande pale de yon grafik fòma dosye rele bitmap, BMP, li 1089 00:48:20,110 --> 00:48:22,830 sanble ke fòma a dosye bitmap bèl anpil sanble ke sa a. 1090 00:48:22,830 --> 00:48:24,200 Li se yon sòt ti kras Smiley figi. 1091 00:48:24,200 --> 00:48:27,840 Li se yon imaj ti ke mwen te agrandi nan sou bèl gwo pou m 'te kapab wè chak 1092 00:48:27,840 --> 00:48:30,410 nan pwen yo moun oswa piksèl. 1093 00:48:30,410 --> 00:48:33,800 Koulye a, li vire soti nou ka reprezante yon nwa dot ak, di, nimewo a 0. 1094 00:48:33,800 --> 00:48:35,520 Men, yon dot blan ak nimewo a 1. 1095 00:48:35,520 --> 00:48:39,140 >> Se konsa, nan lòt mo, si ou vle trase yon Smiley fè fas ak delivre sa imaj nan yon 1096 00:48:39,140 --> 00:48:42,680 òdinatè, li sifizan nan magazen zewo ak moun ki gade tankou sa a, ki kote, 1097 00:48:42,680 --> 00:48:45,250 ankò, yo menm yo se blan ak zewo yo nwa. 1098 00:48:45,250 --> 00:48:48,290 Men, ansanm, si ou efektivman gen yon mare sentiwon nan yo menm ak zewo, ou gen yon 1099 00:48:48,290 --> 00:48:51,030 kadriyaj nan piksèl, epi si ou mete yo soti, ou gen yon bèl 1100 00:48:51,030 --> 00:48:52,560 ti Smiley figi. 1101 00:48:52,560 --> 00:48:58,150 Koulye a, fòma bitmap ranpli, BMP, se efektivman ki anba kapo a, 1102 00:48:58,150 --> 00:49:00,970 men ki gen plis piksèl sot ke ou ka aktyèlman reprezante koulè. 1103 00:49:00,970 --> 00:49:05,170 >> Men, lè ou gen pi plis sofistike dosye fòma tankou BMP ak JPEG ak GIF 1104 00:49:05,170 --> 00:49:09,360 ak ou ka yo konnen yo, moun ki dosye sou ki gen kapasite tipikman pa sèlman 1105 00:49:09,360 --> 00:49:13,760 gen zewo ak moun yo pou piksèl yo, men yo gen kèk Metadata kòm byen - 1106 00:49:13,760 --> 00:49:16,960 meta nan sans ke se pa reyèlman done men li la itil nan genyen. 1107 00:49:16,960 --> 00:49:21,370 Se konsa, sa yo jaden yo isit la qui, ak nou pral wè sa a nan plis detay nan P mete- 1108 00:49:21,370 --> 00:49:25,810 5, ke anvan zewo yo ak moun yo ki reprezante piksèl yo nan yon imaj, 1109 00:49:25,810 --> 00:49:29,110 gen yon pakèt moun sou Metadata tankou gwosè a nan imaj la ak 1110 00:49:29,110 --> 00:49:30,250 lajè nan imaj la. 1111 00:49:30,250 --> 00:49:32,910 Ak Avi mwen arrache nan kèk bagay sa yo abitrè isit la - 1112 00:49:32,910 --> 00:49:34,260 lajè ak wotè. 1113 00:49:34,260 --> 00:49:36,160 Konte ti jan ak kèk lòt bagay. 1114 00:49:36,160 --> 00:49:37,840 Se konsa, gen nan kèk Metadata nan yon dosye. 1115 00:49:37,840 --> 00:49:41,470 >> Men, pa konprann ki jan dosye yo mete soti nan fason sa a, ou kapab aktyèlman 1116 00:49:41,470 --> 00:49:45,890 Lè sa a, manipile imaj, refè imaj soti nan ki gen kapasite, rdimansyonman imaj. 1117 00:49:45,890 --> 00:49:47,560 Men, ou kapab pa nesesèman amelyore yo. 1118 00:49:47,560 --> 00:49:48,480 Mwen te bezwen yon foto. 1119 00:49:48,480 --> 00:49:52,840 Se konsa, mwen tounen al jwenn RJ isit la, ki moun ki ou te wè sou ekran an byen kèk tan de sa. 1120 00:49:52,840 --> 00:49:57,160 Men, si mwen louvri moute éliminer isit la, sa a se sa k ap pase si ou eseye rale nan ak 1121 00:49:57,160 --> 00:49:59,380 amelyore RJ. 1122 00:49:59,380 --> 00:50:01,480 Li pa la ap resevwa nenpòt ki pi bon vrèman. 1123 00:50:01,480 --> 00:50:06,240 Koulye a, éliminer se kalite flou li yon ti kras ti jan, jis enteprete sou la 1124 00:50:06,240 --> 00:50:11,040 reyalite ki RJ pa jwenn patikilyèman ranfòse lè ou rale pous 1125 00:50:11,040 --> 00:50:13,310 Men, si fè li fason sa a, wè kare yo? 1126 00:50:13,310 --> 00:50:15,490 Yeah, ou kapab definitivman wè kare yo sou yon pwojektè. 1127 00:50:15,490 --> 00:50:17,690 >> Sa a ki sa ou jwenn lè ou amelyore. 1128 00:50:17,690 --> 00:50:22,570 Men, nan konpreyansyon ki jan nou RJ la oswa Se Smiley figi aplike pral fè nou 1129 00:50:22,570 --> 00:50:24,950 aktyèlman ekri kòd ki manipul bagay sa yo. 1130 00:50:24,950 --> 00:50:29,970 Apre sa, mwen te panse mwen ta fini sou nòt sa a, ak 55 segonn nan yon amelyore sa a, se, 1131 00:50:29,970 --> 00:50:31,230 Mwen bay gabèl, di olye erè ladann. 1132 00:50:31,230 --> 00:50:32,990 >> [Lèktur videyo] 1133 00:50:32,990 --> 00:50:34,790 >> -Li te bay manti. 1134 00:50:34,790 --> 00:50:38,310 Sou sa ki, mwen pa konnen. 1135 00:50:38,310 --> 00:50:41,200 >> -Se konsa, sa nou konnen? 1136 00:50:41,200 --> 00:50:45,280 >> -Sa a 9:15 Ray Santoya te nan ATM lan. 1137 00:50:45,280 --> 00:50:47,830 >> -Se konsa, kesyon an se sa ki te li fè nan 9:16? 1138 00:50:47,830 --> 00:50:50,750 >> -Fiziyad milimèt nan nèf nan yon bagay. 1139 00:50:50,750 --> 00:50:52,615 Petèt li te wè tirè pwofesyonèl la. 1140 00:50:52,615 --> 00:50:54,760 >> -Oswa te ap travay avè l '. 1141 00:50:54,760 --> 00:50:56,120 >> -Rete tann. 1142 00:50:56,120 --> 00:50:57,450 Tounen yon sèl. 1143 00:50:57,450 --> 00:50:58,700 >> -Kisa ou wè? 1144 00:50:58,700 --> 00:51:05,530 1145 00:51:05,530 --> 00:51:09,490 >> -Pote figi l 'leve, plen ekran. 1146 00:51:09,490 --> 00:51:09,790 >> -Li linèt. 1147 00:51:09,790 --> 00:51:11,040 >> -Gen yon refleksyon. 1148 00:51:11,040 --> 00:51:21,790 1149 00:51:21,790 --> 00:51:23,520 >> -Sa a ekip la bezbòl Neuvitas. 1150 00:51:23,520 --> 00:51:24,530 Sa a logo yo. 1151 00:51:24,530 --> 00:51:27,040 >> -Apre sa, li la pale ak moun ki nan mete ke levit. 1152 00:51:27,040 --> 00:51:27,530 >> [Lèktur videyo END] 1153 00:51:27,530 --> 00:51:29,180 >> DAVID J. Malan: Sa a pral dwe mete Pwoblèm 5. 1154 00:51:29,180 --> 00:51:30,720 Nou pral wè ou an semèn pwochèn. 1155 00:51:30,720 --> 00:51:32,330 >> MALE Oratè: Nan CS50 nan pwochen an. 1156 00:51:32,330 --> 00:51:39,240 >> [Krikèt chan] 1157 00:51:39,240 --> 00:51:41,270 >> [Jwe mizik]