1 00:00:00,000 --> 00:00:00,487 2 00:00:00,487 --> 00:00:11,210 >> [MIZIK jwe] 3 00:00:11,210 --> 00:00:12,100 >> ROB bodèn: Tout dwat. 4 00:00:12,100 --> 00:00:15,620 Se konsa,, premye bagay an premye, nan videyo ki sòti nan yon figi yo konnen yo. 5 00:00:15,620 --> 00:00:22,080 6 00:00:22,080 --> 00:00:22,560 >> [VIDEO lèktur] 7 00:00:22,560 --> 00:00:23,370 >> -Tout dwa. 8 00:00:23,370 --> 00:00:27,150 Sa a se CS50, e sa se kòmanse nan semèn twa. 9 00:00:27,150 --> 00:00:29,980 Mwen regrèt Mwen pa ta ka gen avèk ou jodi a, men pèmèt mwen prezante 10 00:00:29,980 --> 00:00:32,880 CS50 nan pwòp Rob bodèn. 11 00:00:32,880 --> 00:00:33,872 >> [FEN VIDEO lèktur] 12 00:00:33,872 --> 00:00:39,340 >> [Aplodisman AK cheers] 13 00:00:39,340 --> 00:00:41,277 >> ROB bodèn: filmografi an nan ki videyo ki kokenn. 14 00:00:41,277 --> 00:00:47,280 15 00:00:47,280 --> 00:00:47,770 Tout dwa. 16 00:00:47,770 --> 00:00:50,960 Se konsa, premye, gen nan yon lòt manje midi. 17 00:00:50,960 --> 00:00:52,330 Li nan demen nan 1:15. 18 00:00:52,330 --> 00:00:54,480 Gen nan pa gen manje midi Vandredi sa a. 19 00:00:54,480 --> 00:00:55,810 Li se ak Quora. 20 00:00:55,810 --> 00:01:00,190 Apre sa, Tommy a pa isit la ankò, men se yon sèl nan moun yo gen ansyen CF tèt, 21 00:01:00,190 --> 00:01:01,530 Tommy McWilliam. 22 00:01:01,530 --> 00:01:02,730 Se konsa, li se yon nèg plezi. 23 00:01:02,730 --> 00:01:04,819 Ou ta dwe vini an. 24 00:01:04,819 --> 00:01:05,900 >> Tout dwa. 25 00:01:05,900 --> 00:01:11,360 Se konsa, semèn pase a, nou te kòmanse kraze apa sou sa ki yon kòd vrèman se. 26 00:01:11,360 --> 00:01:14,830 Nou te li te ye depi nan konmansman an ki li nan yon sekans nan karaktè. 27 00:01:14,830 --> 00:01:18,130 Men, semèn pase a, nou delved nan lefèt ke sa se reyèlman yon sekans 28 00:01:18,130 --> 00:01:22,110 karaktè, byen, nou genyen kounye a ranje nan karaktè. 29 00:01:22,110 --> 00:01:26,450 , Nou konn sa yon kòd, li nan yon etalaj nan karaktè, nan fen anpil, 30 00:01:26,450 --> 00:01:30,920 nou gen sa a multiple nil espesyal, sa a antislach 0, ki endike nan fen 31 00:01:30,920 --> 00:01:32,230 fisèl la. 32 00:01:32,230 --> 00:01:36,970 >> Se konsa, yon kòd se yon etalaj de karaktè, men nou ka gen plis pase 33 00:01:36,970 --> 00:01:39,530 jis yon etalaj de karaktè yo, nou kapab gen yon etalaj de nenpòt ki 34 00:01:39,530 --> 00:01:40,890 di ki kalite bagay nou vle. 35 00:01:40,890 --> 00:01:51,570 Se konsa, si ou sonje soti nan semèn pase a, a Laj pwogram ki David prezante 36 00:01:51,570 --> 00:01:53,560 vrèman byen vit. 37 00:01:53,560 --> 00:01:57,010 Se konsa, premye bagay nou pral fè se mande itilizatè a pou yon nonb antye ki pè, la 38 00:01:57,010 --> 00:01:58,800 kantite moun ki nan sal la. 39 00:01:58,800 --> 00:02:01,260 Yon fwa nou genyen ki nonb antye ki pè, nou ap deklare yon etalaj. 40 00:02:01,260 --> 00:02:02,890 Avi sa a sentaks bracket. 41 00:02:02,890 --> 00:02:04,540 W ap ale nan jwenn itilize sa a. 42 00:02:04,540 --> 00:02:09,430 >> Se konsa, nou ap deklare yon etalaj de nonb antye relatif rele laj, e gen n 43 00:02:09,430 --> 00:02:12,080 nonb antye relatif nan etalaj sa a. 44 00:02:12,080 --> 00:02:16,480 Se konsa, modèl sa a dwa isit la, sa a Int 4 mwen egal 0, mwen se mwens pase n, mwen plis 45 00:02:16,480 --> 00:02:20,580 plis, se sa ki tou pral gen yon modèl ke ou jwenn anpil itilize yo. 46 00:02:20,580 --> 00:02:24,000 Paske sa a, se bèl anpil ki jan w ap toujou ale nan repňte sou ranje. 47 00:02:24,000 --> 00:02:26,330 Se konsa, sonje ke n se la longè nan etalaj nou an. 48 00:02:26,330 --> 00:02:32,120 Se konsa, isit la, nou ap repete mande pou laj la nan moun mwen nan sal la. 49 00:02:32,120 --> 00:02:36,640 >> Apre sa a, nou desann, epi pou tou sa rezon ki fè abitrè, nou Lè sa a, 50 00:02:36,640 --> 00:02:40,220 ekri ak lèt ​​detache konnen ki jan fin vye granmoun yo ap ale yo dwe yon ane soti nan kounye a. 51 00:02:40,220 --> 00:02:49,980 Ak kouri pwogram sa a, se pou yo fè laj, dot koupe laj. 52 00:02:49,980 --> 00:02:53,010 Se konsa, kantite moun ki nan chanm nan, Se pou nou di gen twa. 53 00:02:53,010 --> 00:02:59,880 Epi n'ap di: premye moun ki se 13, pwochen se 26, ak dènye a se 30. 54 00:02:59,880 --> 00:03:05,080 Se konsa, lè sa a li pral repňte sou sa yo twa moun, enprime soti 14, 27, ak 31. 55 00:03:05,080 --> 00:03:16,060 >> Se konsa, sonje ke lè nou deklare yon etalaj de gwosè n, endis yo nan ki 56 00:03:16,060 --> 00:03:19,950 etalaj, etalaj la gen valè ak endis 0, 1, 2, tout wout la 57 00:03:19,950 --> 00:03:21,680 jiska n mwens 1. 58 00:03:21,680 --> 00:03:26,255 Se konsa, lè nou te di te gen twa moun ki nan chanm nan, epi nou mete nan isit la 59 00:03:26,255 --> 00:03:29,850 iterasyon an premye nan sa a bouk, mwen a pwal 0. 60 00:03:29,850 --> 00:03:31,650 Se konsa, nan endèks 0. 61 00:03:31,650 --> 00:03:34,540 Nou ap plase premye a gen laj itilizatè a antre nan. 62 00:03:34,540 --> 00:03:38,870 Lè sa a, nan yon sèl kap vini an, nou ap antre nan la dezyèm n itilizatè a antre nan, ak nan 63 00:03:38,870 --> 00:03:40,580 akote de, dènye n la. 64 00:03:40,580 --> 00:03:44,200 >> Se konsa, remake ke yon etalaj de gwosè twa pa gen anyen 65 00:03:44,200 --> 00:03:46,040 nan endèks la twa. 66 00:03:46,040 --> 00:03:49,036 Sa a se pa ki valid. 67 00:03:49,036 --> 00:03:50,250 Tout dwa. 68 00:03:50,250 --> 00:03:55,136 Se konsa, pral tounen isit la. 69 00:03:55,136 --> 00:03:57,650 70 00:03:57,650 --> 00:04:01,590 Se konsa, kounye a ke nou te te fè fas ak ranje, nou gen kèk abitye. 71 00:04:01,590 --> 00:04:03,780 Koulye a, nou ap ale pou avanse pou sou lòd agiman liy, ki fè yo pral fè 72 00:04:03,780 --> 00:04:05,890 trè ki gen rapò ak pwoblèm sa a seri egzèsis la. 73 00:04:05,890 --> 00:04:09,670 >> Se konsa, moute jouk koulye a, chak fwa ou te te deklare fonksyon prensipal ou an, nou te 74 00:04:09,670 --> 00:04:11,230 di Int anile prensipal la. 75 00:04:11,230 --> 00:04:14,070 Se konsa, anile jis vle di ke nou pa pase nenpòt ki 76 00:04:14,070 --> 00:04:16,440 agiman nan fonksyon sa a. 77 00:04:16,440 --> 00:04:19,190 Koulye a, nou ap ale nan wè ke prensipal ka pran kèk agiman. 78 00:04:19,190 --> 00:04:22,470 Isit la nou rele yo Int arg ak tout kòd parantèz argv. 79 00:04:22,470 --> 00:04:26,930 Parantèz yo, yon lòt fwa ankò, ki endike ke nou ap fè fas ak ranje. 80 00:04:26,930 --> 00:04:31,850 Se konsa, isit la, parantèz fisèl argv, nou fè fas ak yon etalaj de strings. 81 00:04:31,850 --> 00:04:35,360 Se konsa, arg, ki k ap pase yo endike konbyen agiman nou te 82 00:04:35,360 --> 00:04:37,580 pase nan pwogram sa a. 83 00:04:37,580 --> 00:04:46,050 Apre sa, yo wè sa ki sa vle di, kite a fèmen sa a. 84 00:04:46,050 --> 00:04:46,490 >> OK. 85 00:04:46,490 --> 00:04:50,790 Se konsa, moute jouk koulye a, nou te kouri chak pwogram tankou laj koupe dot. 86 00:04:50,790 --> 00:04:55,250 Nou kapab tou, nan liy lan lòd, sot pase yo pase agiman, enben, tèm nan, lòd 87 00:04:55,250 --> 00:04:56,550 liy agiman. 88 00:04:56,550 --> 00:04:59,760 Se konsa, agiman an premye, bonjou nan lemonn. 89 00:04:59,760 --> 00:05:03,350 Se konsa, isit la, arg ta dwe twa. 90 00:05:03,350 --> 00:05:07,720 Li nan konte a nan agiman yo nan liy lan lòd. 91 00:05:07,720 --> 00:05:12,840 Arg se toujou omwen 1, depi dot koupe laj, li menm, konsidere kòm youn nan 92 00:05:12,840 --> 00:05:14,490 liy lòd agiman yo. 93 00:05:14,490 --> 00:05:17,010 >> Lè sa a, bonjou se premye a. 94 00:05:17,010 --> 00:05:20,460 Si laj koupe dot se zeroth a, Lè sa a, alo se premye a, ak mond la se nan 95 00:05:20,460 --> 00:05:22,830 dezyèm lòd liy agiman. 96 00:05:22,830 --> 00:05:29,490 Se konsa, argv nan fisèl, nou ap ale nan wè la a, gen strings, dot koupe nan 97 00:05:29,490 --> 00:05:33,830 laj, hello, ak nan lemonn. 98 00:05:33,830 --> 00:05:38,945 Epi, si ou mande sa David la, nou pral yo jwe yon videyo entwodwi sa a. 99 00:05:38,945 --> 00:05:42,486 100 00:05:42,486 --> 00:05:43,890 >> [VIDEO lèktur] 101 00:05:43,890 --> 00:05:46,240 >> -Up jouk koulye a nan pwogram nou te ekri, nou te deklare 102 00:05:46,240 --> 00:05:48,500 prensipal kòm Int anile prensipal la. 103 00:05:48,500 --> 00:05:51,170 Apre sa, tout tan sa a, ki anile gen tou senpleman te espesifye ki la 104 00:05:51,170 --> 00:05:54,430 pwogram pa pran okenn lòd liy agiman. 105 00:05:54,430 --> 00:05:57,750 Nan lòt mo, lè yon itilizatè kouri yon pwogram nan, li oswa li te ka bay lòd 106 00:05:57,750 --> 00:06:01,710 agiman liy pa ekri plis mo ak fraz apre pwogram lan 107 00:06:01,710 --> 00:06:03,000 non nan èd memwa a. 108 00:06:03,000 --> 00:06:06,550 >> Byen, si w ou vle pwogram ou a pran lòd agiman liy, youn oswa 109 00:06:06,550 --> 00:06:10,540 plis mo sa yo, nou bezwen ranplase anile ak yon koup la agiman. 110 00:06:10,540 --> 00:06:12,200 Se konsa, kite a fè sa. 111 00:06:12,200 --> 00:06:15,750 Mete CS50.h. 112 00:06:15,750 --> 00:06:19,360 Mete estanda io.h. 113 00:06:19,360 --> 00:06:20,760 Int prensipal la. 114 00:06:20,760 --> 00:06:26,330 Epi, koulye a, olye pou yo anile, mwen pral presize yon Int rele arg, ak yon 115 00:06:26,330 --> 00:06:28,780 etalaj de strings rele argv. 116 00:06:28,780 --> 00:06:31,820 Koulye a, arg ak argv yo tou senpleman konvansyon. 117 00:06:31,820 --> 00:06:34,000 >> Nou te kapab yo te rele agiman sa yo anyen ki pi nou vle. 118 00:06:34,000 --> 00:06:37,630 Men, ki sa ki enpòtan se ke arg se yon Int paske, pa definisyon, li se 119 00:06:37,630 --> 00:06:41,360 ale nan gen ladan konte nan agiman, nan kantite mo nan manm ki la 120 00:06:41,360 --> 00:06:43,380 te itilizatè tape nan èd memwa li. 121 00:06:43,380 --> 00:06:47,910 argv, pandan se tan, agiman vektè, se ale nan aktyèlman ap yon etalaj estoke 122 00:06:47,910 --> 00:06:52,020 tout nan mo sa yo ki itilizatè a gen tape nan èd memwa li. 123 00:06:52,020 --> 00:06:54,500 >> Se pou yo kontinye nan fè yon bagay kounye a ak youn oswa plis nan sa yo 124 00:06:54,500 --> 00:06:55,660 lòd liy agiman. 125 00:06:55,660 --> 00:07:00,070 An patikilye, se pou yo ale pi devan epi ekri ak lèt ​​detache tou sa pawòl ki kalite itilizatè 126 00:07:00,070 --> 00:07:03,960 apre Non pwogram lan nan èd memwa a. 127 00:07:03,960 --> 00:07:04,730 Louvri bracket. 128 00:07:04,730 --> 00:07:06,240 Fèmen bracket. 129 00:07:06,240 --> 00:07:10,510 S antislach printf pousan ak vigil. 130 00:07:10,510 --> 00:07:14,550 Koulye a, mwen bezwen di printf sa ki valè ploge nan ki kontneur. 131 00:07:14,550 --> 00:07:18,600 Mwen vle pawòl Bondye a premye ki itilizatè a gen tape apre Non pwogram lan, 132 00:07:18,600 --> 00:07:23,130 yo ak pou mwen pral presize argv bracket 1, fèmen 133 00:07:23,130 --> 00:07:24,830 parantèz, pwenvigil. 134 00:07:24,830 --> 00:07:27,290 >> Koulye a, poukisa bracket 1 epi yo pa bracket 0? 135 00:07:27,290 --> 00:07:30,990 Oke, li vire soti, otomatikman ki estoke nan argv 0 a pwal nan 136 00:07:30,990 --> 00:07:32,620 aktyèl Non pwogram lan. 137 00:07:32,620 --> 00:07:36,180 Se konsa, pawòl Bondye a premye ki kalite mouvman yo itilizatè apre Non pwogram lan se, pa 138 00:07:36,180 --> 00:07:38,990 konvansyon, pral fè ki estoke nan argv 1. 139 00:07:38,990 --> 00:07:42,380 Se pou nou kounye a konpile ak kouri pwogram sa a. 140 00:07:42,380 --> 00:07:47,780 >> Fè argv 0, dot koupe argv 0. 141 00:07:47,780 --> 00:07:50,520 Epi, koulye a yon mo tankou hello. 142 00:07:50,520 --> 00:07:51,670 Antre. 143 00:07:51,670 --> 00:07:53,520 Apre sa, nou genyen li, hello. 144 00:07:53,520 --> 00:07:55,750 >> [FEN VIDEO lèktur] 145 00:07:55,750 --> 00:07:57,000 >> ROB bodèn: Tout dwat. 146 00:07:57,000 --> 00:07:59,380 147 00:07:59,380 --> 00:08:01,230 Fèmen sa a. 148 00:08:01,230 --> 00:08:16,730 Se konsa, pran yon gade nan ki pwogram ki nou jis prezante yo nou, byen, jis 149 00:08:16,730 --> 00:08:24,710 yo montre, si nou ekri ak lèt ​​detache argv 0, fè, kounye a ki sa ki li, argv 0, dot koupe argv 0. 150 00:08:24,710 --> 00:08:30,440 Se konsa, jan yo espere a, li te enprime soti nan Non pwogram lan, depi argv 0 se 151 00:08:30,440 --> 00:08:32,970 toujou pral fè a Non pwogram lan. 152 00:08:32,970 --> 00:08:35,640 Men, kite a fè yon bagay yon ti jan pi plis enteresan. 153 00:08:35,640 --> 00:08:42,080 >> Se konsa, nan pwoblèm mete nan, ou pral prezante yo fonksyon sa a, atwa. 154 00:08:42,080 --> 00:08:44,440 Se konsa, sa nou itilize atwa pou? 155 00:08:44,440 --> 00:08:48,550 Sa a ale nan konvèti yon fisèl nan yon nonb antye ki pè. 156 00:08:48,550 --> 00:08:53,280 Se konsa, si, fòk mwen pase fisèl la, yon sèl de twa, atwa, ki pral konvèti ki 157 00:08:53,280 --> 00:08:56,910 nonb antye ki pè a, yon sèl de twa. 158 00:08:56,910 --> 00:09:01,480 Se konsa, nou ap ale nan konvèti premye a lòd liy agiman nan yon nonb antye ki pè, 159 00:09:01,480 --> 00:09:05,690 ak Lè sa a, jis ekri ak lèt ​​detache ki nonb antye ki pè. 160 00:09:05,690 --> 00:09:09,680 >> Se konsa, fondamantalman, nou kalite reimplementing getint, jis nan 161 00:09:09,680 --> 00:09:12,350 nonb antye ki pè se te antre nan nan yo lòd, ki liy olye pou yo nan pwogram nan 162 00:09:12,350 --> 00:09:14,560 epi youn. 163 00:09:14,560 --> 00:09:23,170 Se konsa, lè sa a, fè argv 0, se pou yo fè li nan isit la, epi fèmen sa a. 164 00:09:23,170 --> 00:09:27,670 Se konsa, kouri argv 0, e kite yo antre nan la nonb antye ki pè, yon sèl de twa kat youn de. 165 00:09:27,670 --> 00:09:30,840 Se konsa, li pral ekri ak lèt ​​detache nonb antye ki pè a, yon sèl de twa kat youn de. 166 00:09:30,840 --> 00:09:35,500 Gen kèk sibtilite atwa ki li pral sispann pran swen sou anyen 167 00:09:35,500 --> 00:09:39,040 ale pi lwen pase ki valid nimerik karaktè, men sa pa gen pwoblèm. 168 00:09:39,040 --> 00:09:42,870 >> Se konsa, ki sa ou panse k ap pase si mwen fè sa? 169 00:09:42,870 --> 00:09:45,520 170 00:09:45,520 --> 00:09:47,050 Segmentation fay. 171 00:09:47,050 --> 00:09:50,410 Se konsa, poukisa se sa? 172 00:09:50,410 --> 00:09:56,060 Si ou gade tounen nan pwogram nou an, nou konvèti argv 1, agiman an premye 173 00:09:56,060 --> 00:09:59,610 apre Non pwogram lan, nan yon nonb antye ki pè. 174 00:09:59,610 --> 00:10:03,350 Men pa gen okenn agiman te pase apre Non pwogram lan. 175 00:10:03,350 --> 00:10:08,060 Se konsa, isit la, nou wè ke sa a se yon buggy pwogram, depi, si nou eseye kouri li 176 00:10:08,060 --> 00:10:10,530 san yo pa nenpòt agiman, li pral jis aksidan. 177 00:10:10,530 --> 00:10:16,950 >> Se konsa, yon lòt modèl komen ou pral wè se yon bagay tankou, si arg ki pi piti a 178 00:10:16,950 --> 00:10:21,100 pase de, ki endike ke pa t 'la omwen non pwogram nan ak yon 179 00:10:21,100 --> 00:10:29,100 premye agiman, lè sa a nou pral fè yon bagay tankou printf, pa ase 180 00:10:29,100 --> 00:10:31,190 lòd liy agiman. 181 00:10:31,190 --> 00:10:33,170 Sa a pwobableman pa yon bon ekri ak lèt ​​detache, li la pwobableman yon bagay, tankou 182 00:10:33,170 --> 00:10:35,440 ou ta dwe antre nan yon nonb antye relatif nan liy lan lòd. 183 00:10:35,440 --> 00:10:37,450 Mwen pral jis fini ak li a. 184 00:10:37,450 --> 00:10:39,600 Lè sa a, retounen 1. 185 00:10:39,600 --> 00:10:44,740 Se konsa, sonje ke nan fen nou an pwogram, si nou tounen 0, ki sòt de 186 00:10:44,740 --> 00:10:47,060 endike siksè. 187 00:10:47,060 --> 00:10:50,940 Apre sa, prensipal tou otomatikman retounen 0 si w pa fè sa. 188 00:10:50,940 --> 00:10:55,800 >> Se konsa, isit la, nou ap retuning 1 a endike ki sa a pa siksè. 189 00:10:55,800 --> 00:11:01,000 Apre sa, ou ka retounen tou sa ou vle, jis, 0 endike siksè, ak 190 00:11:01,000 --> 00:11:03,390 nenpòt lòt bagay endike echèk. 191 00:11:03,390 --> 00:11:04,855 Se konsa, kite a kouri vèsyon sa-a nan bagay sa yo. 192 00:11:04,855 --> 00:11:12,880 193 00:11:12,880 --> 00:11:16,600 Se konsa, koulye a, si nou pa antre nan yon liy lòd agiman, li pral di kòrèkteman 194 00:11:16,600 --> 00:11:18,290 nou, pa ase liy lòd. 195 00:11:18,290 --> 00:11:20,610 Pa t 'fini fraz la. 196 00:11:20,610 --> 00:11:24,950 Lòt Bagay, si nou aktyèlman pase l yon sèl, li ka konplete pwogram la. 197 00:11:24,950 --> 00:11:27,920 Se konsa, sa a se ki jan ou ta sèvi ak arg nan lòd yo valide ki kantite 198 00:11:27,920 --> 00:11:30,630 liy lòd agiman ki yo aktyèlman te pase. 199 00:11:30,630 --> 00:11:39,360 >> Se konsa, kite a fè pwogram sa a yon ti jan pi plis konplike, epi gade nan dezyèm lan 200 00:11:39,360 --> 00:11:42,180 iterasyon de bagay sa yo. 201 00:11:42,180 --> 00:11:46,310 Se konsa, koulye a, nou ap pa sèlman enprime la premye lòd liy agiman. 202 00:11:46,310 --> 00:11:51,210 Isit la, nou ap iteration soti nan Int egal mwen 0, mwen se mwens pase arg, mwen plis 203 00:11:51,210 --> 00:11:55,280 plis, ak argv enprime, endèks mwen. 204 00:11:55,280 --> 00:11:59,300 Se konsa, modèl sa a, ankò, sa a se menm bagay la tou modèl tankou anvan, eksepte olye pou 205 00:11:59,300 --> 00:12:02,600 pou rezidan yo rele varyab la n, nou ap lè l sèvi avèk arg. 206 00:12:02,600 --> 00:12:09,520 >> Se konsa, sa a se iteration sou chak endèks nan etalaj la, ak enprime chak 207 00:12:09,520 --> 00:12:11,910 eleman nan ki etalaj. 208 00:12:11,910 --> 00:12:20,300 Se konsa, lè nou kouri pwogram sa a, byen, Mwen pa t 'antre nan nenpòt liy lòd 209 00:12:20,300 --> 00:12:22,540 agiman, se konsa li jis simagri Non pwogram lan. 210 00:12:22,540 --> 00:12:26,053 Si m 'antre nan yon pakèt moun sou bagay sa yo, li pral ekri ak lèt ​​detache yon sèl, yo chak sou liy pwòp li yo. 211 00:12:26,053 --> 00:12:31,213 212 00:12:31,213 --> 00:12:32,210 >> OK. 213 00:12:32,210 --> 00:12:34,770 Se konsa, kite a pran yon sèl sa a etap pi lwen. 214 00:12:34,770 --> 00:12:38,890 Apre sa, olye pou yo enprime chak agiman sou liy pwòp li yo, se pou yo ekri ak lèt ​​detache chak 215 00:12:38,890 --> 00:12:42,590 karaktè nan chak agiman sou liy pwòp li yo. 216 00:12:42,590 --> 00:12:46,700 Se konsa, sonje ke argv se yon etalaj de strings. 217 00:12:46,700 --> 00:12:50,960 Se konsa, sa se yon fil, men yon etalaj de karaktè? 218 00:12:50,960 --> 00:12:57,140 Se konsa, ki vle di ke argv se reyèlman yon etalaj de yon etalaj de karaktè. 219 00:12:57,140 --> 00:13:04,920 Se konsa, pran avantaj de sa a, kite a inyore sa a pou kounye a. 220 00:13:04,920 --> 00:13:08,190 Se pou nou jis konsidere argv la fisèl 0. 221 00:13:08,190 --> 00:13:14,170 >> Se konsa, si nou vle pote chak karaktè nan argv 0 sou liy pwòp li yo, Lè sa a, mwen vle 222 00:13:14,170 --> 00:13:19,500 fè modèl la n ap itilize yo, mwen se mwens pase longè a nan etalaj la, 223 00:13:19,500 --> 00:13:23,990 ki isit la, se strlèn nan, ki nan pa sa m 'vle fè a, fisèl 224 00:13:23,990 --> 00:13:26,450 s egal argv 0. 225 00:13:26,450 --> 00:13:30,390 Se konsa, mwen se mwens pase longè a nan nou an etalaj, ki nan ka sa a se yon etalaj 226 00:13:30,390 --> 00:13:34,410 nan karaktè, mwen plis plis. 227 00:13:34,410 --> 00:13:41,040 Se konsa, kòm nou te wè semèn pase a, li la ideyal si nou demenaje ki strlèn deyò 228 00:13:41,040 --> 00:13:45,210 nan kondisyon an, depi n ap ajoute strlèn a nan s chak fwa nou ale 229 00:13:45,210 --> 00:13:47,720 nan bouk la, epi li pa yo pral chanje. 230 00:13:47,720 --> 00:13:50,230 Se konsa, nou pral mete l 'egal a n sou isit la. 231 00:13:50,230 --> 00:13:54,260 232 00:13:54,260 --> 00:13:55,170 >> OK. 233 00:13:55,170 --> 00:14:01,320 Se konsa, koulye a, nou ap iteration sou chak endèks nan etalaj la. 234 00:14:01,320 --> 00:14:05,630 Se konsa, si nou vle ekri ak lèt ​​detache chak karaktè nan ki etalaj, pousan c se 235 00:14:05,630 --> 00:14:06,880 drapo a nou vle sèvi ak pou karaktè. 236 00:14:06,880 --> 00:14:10,750 237 00:14:10,750 --> 00:14:19,770 Epi, koulye a yon mwen bracket a pwal nan fisèl, pèsonaj endèks mwen, kidonk si la 238 00:14:19,770 --> 00:14:20,970 fisèl te hello. 239 00:14:20,970 --> 00:14:27,530 Lè sa a, s 0 a pwal h, s bracket 1 yo pral e, ak sou sa. 240 00:14:27,530 --> 00:14:30,800 >> Se konsa, koulye a nou vle konbine de bagay sa yo. 241 00:14:30,800 --> 00:14:35,440 Nou vle ekri ak lèt ​​detache chak karaktè nan chak agiman liy lòd. 242 00:14:35,440 --> 00:14:38,950 Se konsa, nou ap ale nan gen yon nich pou bouk. 243 00:14:38,950 --> 00:14:47,480 Apre sa, konvansyonèl, premye kontwa an Se mwen menm, pwochen an a pwal j, n 244 00:14:47,480 --> 00:14:54,450 yo pral strlèn a nan argv mwen, mwen se mwens pase n, mwen plis plis. 245 00:14:54,450 --> 00:14:59,150 246 00:14:59,150 --> 00:15:06,870 Epi, koulye a olye pou yo enprime argv mwen, se konsa argv bracket mwen se ale nan endèks - 247 00:15:06,870 --> 00:15:14,280 ki k ap pase yo dwe liy lan m-th lòd agiman, argv mwen, j ki pral 248 00:15:14,280 --> 00:15:16,925 gen karaktè a jth nan m-th agiman an. 249 00:15:16,925 --> 00:15:20,580 250 00:15:20,580 --> 00:15:24,810 Mwen pral debarase m de sa a moute isit la kounye a depi nou mete l 'nan ke bouk. 251 00:15:24,810 --> 00:15:33,900 Se konsa, ki ekivalan a egal fisèl la argv mwen, ak Lè sa a, yo bracket j. 252 00:15:33,900 --> 00:15:36,980 >> Oke, nou pa bezwen deklare sa a s varyab. 253 00:15:36,980 --> 00:15:44,530 Olye de sa, nou pral jis konbine sa yo de nan ki sa nou te genyen, argv mwen, j. 254 00:15:44,530 --> 00:15:45,780 >> Oratè 1: [fèbl]. 255 00:15:45,780 --> 00:15:48,850 256 00:15:48,850 --> 00:15:49,680 >> ROB bodèn: Bon apèl. 257 00:15:49,680 --> 00:15:52,936 Se konsa, sa a se kase. 258 00:15:52,936 --> 00:15:55,510 Si m 'aktyèlman kouri l', nou ta te reyalize sa a. 259 00:15:55,510 --> 00:16:01,210 Se konsa, kontwa an mwen pran swen sou nan sa a an patikilye pou 260 00:16:01,210 --> 00:16:05,410 bouk se j, iterator la. 261 00:16:05,410 --> 00:16:08,560 Se konsa, ou ta gen kouri antre nan pwoblèm, pwobableman yon bouk enfini, si nou 262 00:16:08,560 --> 00:16:09,540 pa t 'fiks sa. 263 00:16:09,540 --> 00:16:12,220 Se poutèt sa nou ap tou ap pale sou debogaj jodi a. 264 00:16:12,220 --> 00:16:13,120 >> OK. 265 00:16:13,120 --> 00:16:15,240 Se konsa, kite a kouri pwogram sa a. 266 00:16:15,240 --> 00:16:21,200 Li kite yo aktyèlman ajoute yon printf separe dwa isit la ki pral jis ekri ak lèt ​​detache 267 00:16:21,200 --> 00:16:27,480 yon lòt liy, depi sa sa vle di lè nou kouri pwogram nan, gen pral yon vid 268 00:16:27,480 --> 00:16:31,830 liy nan ant chak karaktè nan chak liy agiman lòd. 269 00:16:31,830 --> 00:16:33,448 Oke, nou pral wè kisa sa vle di. 270 00:16:33,448 --> 00:16:37,310 271 00:16:37,310 --> 00:16:37,790 Op. 272 00:16:37,790 --> 00:16:39,870 Gen kèk ensèk. 273 00:16:39,870 --> 00:16:42,860 Erè chal deklare fonksyon bibliyotèk strlèn. 274 00:16:42,860 --> 00:16:51,630 >> Se konsa, pral tounen nan pwogram nou an, mwen bliye Hash gen ladan string.h. 275 00:16:51,630 --> 00:16:54,240 276 00:16:54,240 --> 00:16:57,730 Se konsa, string.h a pwal nan dosye header ki deklare 277 00:16:57,730 --> 00:16:58,980 fonksyon an strlèn. 278 00:16:58,980 --> 00:17:04,650 279 00:17:04,650 --> 00:17:06,060 OK, li compiles. 280 00:17:06,060 --> 00:17:09,109 Koulye a, se pou yo kouri li. 281 00:17:09,109 --> 00:17:10,930 Se konsa, sèlman sa. 282 00:17:10,930 --> 00:17:17,790 Li ale nan ekri ak lèt ​​detache soti nou an Non pwogram nan, bonjou nan lemonn. 283 00:17:17,790 --> 00:17:23,510 Li ale nan ekri ak lèt ​​detache chak bagay, chak karaktè, sou liy pwòp li yo. 284 00:17:23,510 --> 00:17:24,540 OK. 285 00:17:24,540 --> 00:17:30,625 >> Se konsa, kite a aktyèlman pran sa a yon sèl etap pi lwen. 286 00:17:30,625 --> 00:17:34,050 287 00:17:34,050 --> 00:17:39,700 Apre sa, olye pou yo lè l sèvi avèk string.h, se pou yo panse osijè de kòman nou ta aplike pwòp nou 288 00:17:39,700 --> 00:17:41,420 strlèn fonksyon. 289 00:17:41,420 --> 00:17:45,600 Se konsa, mwen pral ba imedyatman yon siyati fonksyon. 290 00:17:45,600 --> 00:17:52,900 Se konsa, kite a rele nan my_strlen, epi li pral pran yon kòd kòm yon diskisyon, 291 00:17:52,900 --> 00:17:57,220 e nou espere retounen nan longè ki fisèl. 292 00:17:57,220 --> 00:18:03,430 Se konsa, kote se ke nèg? 293 00:18:03,430 --> 00:18:04,990 Wi. 294 00:18:04,990 --> 00:18:06,740 OK. 295 00:18:06,740 --> 00:18:12,900 Se konsa, sonje soti nan glise la pi bonè ke te tou ki soti nan semèn pase a, ke yon 296 00:18:12,900 --> 00:18:18,890 etalaj de karaktè, byen, yon kòd, Se konsa, kite a di sa a se nan fil nou an. 297 00:18:18,890 --> 00:18:29,870 Se konsa, si yo se fisèl la, hello, lè sa a, H-E-L-L-O, nan memwa, ki nan ale nan 298 00:18:29,870 --> 00:18:35,610 dwe, ak Lè sa a, sa a antislach 0 karaktè. 299 00:18:35,610 --> 00:18:39,170 >> Se konsa, kouman nou jwenn longè a nan a? 300 00:18:39,170 --> 00:18:43,190 Oke, se jwe fent la kap chèche sa a repèkisyon 0 karaktè, nil sa a 301 00:18:43,190 --> 00:18:44,380 Terminator. 302 00:18:44,380 --> 00:18:50,270 Se konsa, algorithm a pral yo dwe yon bagay tankou kèk 303 00:18:50,270 --> 00:18:51,510 ase karaktè ki - 304 00:18:51,510 --> 00:18:56,180 kite a gen men sa a reprezante kèk vann san preskripsyon, se pou yo rele sa longè Int. 305 00:18:56,180 --> 00:19:00,060 Se konsa, kòmanse soti nan plis pase isit la, nou ap ale nan repňte sou fisèl nou an. 306 00:19:00,060 --> 00:19:04,100 >> Se konsa, karaktè a an premye, li nan H, epi li pa la tounen koupe 0, se konsa 307 00:19:04,100 --> 00:19:05,170 longè a se 1. 308 00:19:05,170 --> 00:19:08,050 Repňte nan karaktè kap vini an, E, epi li pa la antislach 0. 309 00:19:08,050 --> 00:19:09,630 Longè se 2. 310 00:19:09,630 --> 00:19:10,960 L, 3. 311 00:19:10,960 --> 00:19:11,850 L, 4. 312 00:19:11,850 --> 00:19:13,050 O, 5. 313 00:19:13,050 --> 00:19:16,690 E finalman, nou rive nan antislach 0, e konsa sa vle di, byen, 314 00:19:16,690 --> 00:19:17,780 fisèl sa a se sou. 315 00:19:17,780 --> 00:19:20,130 Se konsa, kite a retounen 5. 316 00:19:20,130 --> 00:19:33,630 >> Se konsa, aktyèlman mete ann aplikasyon sa a, premye, longè n mwen an egal 0, men dwat mwen an. 317 00:19:33,630 --> 00:19:36,088 Apre sa, nou pral repňte - 318 00:19:36,088 --> 00:19:38,000 >> Oratè 1: [fèbl] 319 00:19:38,000 --> 00:19:38,640 >> ROB bodèn: Oh, tire. 320 00:19:38,640 --> 00:19:39,870 Bon apèl. 321 00:19:39,870 --> 00:19:42,680 Boom. 322 00:19:42,680 --> 00:19:44,140 Se konsa, n longè egal 0. 323 00:19:44,140 --> 00:19:46,910 324 00:19:46,910 --> 00:19:58,310 Se konsa, koulye a, longè pandan y ap s pa fè sa egal ak Lè sa a, antislach 0. 325 00:19:58,310 --> 00:20:04,660 Se konsa, sonje, sa a antislach 0, li se yon N. reyèl, epi li endike 326 00:20:04,660 --> 00:20:05,820 nan fen fisèl la. 327 00:20:05,820 --> 00:20:09,850 Jis tankou, tou, antislach n se yon karaktè vrè. 328 00:20:09,850 --> 00:20:14,040 Antislach 0 ki pral endike nan fen fisèl nou an. 329 00:20:14,040 --> 00:20:15,414 Mwen pa vle mete sa a. 330 00:20:15,414 --> 00:20:19,190 331 00:20:19,190 --> 00:20:25,620 Epi pandan ke y s Catalogue pa longè se pa egal a Terminator a nil, lè sa a 332 00:20:25,620 --> 00:20:27,130 nou ap jis ale nan enkreman longè. 333 00:20:27,130 --> 00:20:29,860 334 00:20:29,860 --> 00:20:34,880 Se konsa, lè sa a, nan fen pwogram nou an, longè ki evantyèlman ale nan 335 00:20:34,880 --> 00:20:37,610 gen 5 nan ka sa a. 336 00:20:37,610 --> 00:20:39,210 Epitou, n ap jis retounen longè. 337 00:20:39,210 --> 00:20:42,570 338 00:20:42,570 --> 00:20:43,530 >> OK. 339 00:20:43,530 --> 00:20:48,290 Se konsa, koulye desann isit la, mwen pa fè sa fè my_strlen. 340 00:20:48,290 --> 00:20:50,700 Se pou nou konpile li nan asire w ke tout bagay kouri fèt san pwoblèm. 341 00:20:50,700 --> 00:20:55,820 342 00:20:55,820 --> 00:20:58,210 Te mwen fè nan 2? 343 00:20:58,210 --> 00:21:00,565 Oswa te ke 1 an? 344 00:21:00,565 --> 00:21:01,940 Sa ta dwe fè. 345 00:21:01,940 --> 00:21:02,690 Tout dwa. 346 00:21:02,690 --> 00:21:08,490 Se konsa, sa a se argv 2. 347 00:21:08,490 --> 00:21:11,585 Travay kòm prevwa, byenke te ke youn nan m 'te fè l' nan? 348 00:21:11,585 --> 00:21:15,060 349 00:21:15,060 --> 00:21:15,550 Wi. 350 00:21:15,550 --> 00:21:16,760 OK. 351 00:21:16,760 --> 00:21:21,820 Sa a vèsyon de bagay sa yo pa t 'gen printf liy nan nouvo apre, men li 352 00:21:21,820 --> 00:21:22,910 pa fè okenn diferans. 353 00:21:22,910 --> 00:21:23,300 OK. 354 00:21:23,300 --> 00:21:25,780 Se konsa, te travay kòm espere. 355 00:21:25,780 --> 00:21:34,750 >> Koulye a, nou ka menm konbine etap sa a yon sèl pi lwen, kote avi isit la, byen, 356 00:21:34,750 --> 00:21:38,920 premye, nou ap arachman strlèn a nan argv mwen, ak Lè sa a, nou ap iteration sou 357 00:21:38,920 --> 00:21:41,450 chak karaktè nan ki fil. 358 00:21:41,450 --> 00:21:47,480 Se konsa, olye pou yo fè sa, ki sa ki si nou jis konbine sa a lojik nan ap tann 359 00:21:47,480 --> 00:21:50,740 jiskaske nou frape antislach 0 dwa nan sa a pou bouk? 360 00:21:50,740 --> 00:21:53,740 361 00:21:53,740 --> 00:22:07,490 Se konsa, repňte pandan y ap argv mwen, j fè pa egal antislach 0. 362 00:22:07,490 --> 00:22:10,680 Se konsa, kite a kouri li an premye. 363 00:22:10,680 --> 00:22:19,838 364 00:22:19,838 --> 00:22:21,180 >> Tout dwa. 365 00:22:21,180 --> 00:22:27,655 Se konsa, isit la, kondisyon sa a ap di - 366 00:22:27,655 --> 00:22:38,090 367 00:22:38,090 --> 00:22:40,060 kite a klè ke. 368 00:22:40,060 --> 00:22:49,140 Se konsa, koulye a, se pou sa a gen argv nou an. 369 00:22:49,140 --> 00:22:55,290 Se konsa, lè mwen jis kouri pwogram sa a anvan, argv se yon etalaj de strings. 370 00:22:55,290 --> 00:23:03,100 Se konsa, si mwen kouri li ak dot argv koupe 2, bonjou sou latè, Lè sa a, argv la 371 00:23:03,100 --> 00:23:07,650 tèt li se longè 3, pou argv zewo, hello, ak nan lemonn. 372 00:23:07,650 --> 00:23:11,700 373 00:23:11,700 --> 00:23:19,660 >> Ak andedan nan chak nan endis sa yo se, tèt li yon etalaj, kote sa a pral 374 00:23:19,660 --> 00:23:23,780 dot, sa a pral koupe, mwen pa konnen si sa ki te bon direksyon an, mwen 375 00:23:23,780 --> 00:23:25,680 pa panse ke li te ye. 376 00:23:25,680 --> 00:23:30,110 A-R-V priz, bezwen plis espas. 377 00:23:30,110 --> 00:23:32,570 Se pou yo koupe nan etalaj sa a. 378 00:23:32,570 --> 00:23:38,230 A-R-V priz 0, epi Lè sa a, antislach 0. 379 00:23:38,230 --> 00:23:43,160 Lè sa a, nan tètchaje yo pral hello. 380 00:23:43,160 --> 00:23:45,910 Se pou nou di, H-E antislach 0. 381 00:23:45,910 --> 00:23:51,130 E finalman, W-O antislach 0. 382 00:23:51,130 --> 00:23:59,730 >> Se konsa, algorithm a ke nou jis te ekri, pare solèy la pou pasan, ki sa ki yo ap 383 00:23:59,730 --> 00:24:07,321 fè se, nou gen nan premye vann san preskripsyon mwen ak Lè sa a, j. 384 00:24:07,321 --> 00:24:15,206 Sa a ta ka pi fasil avèk kòd sou la ekran, Se pou yo tounen nan sa a. 385 00:24:15,206 --> 00:24:17,476 OK. 386 00:24:17,476 --> 00:24:24,600 Se konsa, remake ke mwen se iterator a ki nan iteration sou chak lòd 387 00:24:24,600 --> 00:24:25,610 liy agiman. 388 00:24:25,610 --> 00:24:28,870 Apre sa, j a se iteration nan iterator sou chak karaktè nan ki 389 00:24:28,870 --> 00:24:30,410 lòd liy agiman. 390 00:24:30,410 --> 00:24:46,755 Se konsa, sa printf sa a entim ap fè se, nou te printf argv 0 0, printf 391 00:24:46,755 --> 00:24:58,680 argv 0 1, printf argv 0 2, 0 3, 0 4, 0 5, 0, 6, men kounye a, argv 0 7 ki pral 392 00:24:58,680 --> 00:25:00,670 egal antislach 0. 393 00:25:00,670 --> 00:25:05,730 >> Se konsa, lè sa a nou sòti ki pou bouk, e kounye a, mwen iterates a 1. 394 00:25:05,730 --> 00:25:10,910 Epi, koulye a nou pral ekri ak lèt ​​detache argv 1 0, argv 1 1 - 395 00:25:10,910 --> 00:25:17,040 byen, kounye a, depi m 'koupe alo ti bout tan, argv 1 2 se ankò pral fè 396 00:25:17,040 --> 00:25:18,170 antislach 0. 397 00:25:18,170 --> 00:25:25,050 Se konsa, enkreman mwen yo e yo kontinye, ak sou sa, jouk nou enprime soti tout nan 398 00:25:25,050 --> 00:25:28,580 mond lan, ak sa yo se twa liy lòd agiman, epi n ap sòti soti nan 399 00:25:28,580 --> 00:25:31,670 bouk ki pi aleksteryè, ak fini pwogram nou an. 400 00:25:31,670 --> 00:25:38,390 401 00:25:38,390 --> 00:25:39,640 OK. 402 00:25:39,640 --> 00:25:43,903 403 00:25:43,903 --> 00:25:46,795 >> Se konsa, kite a va tounen isit la. 404 00:25:46,795 --> 00:25:49,670 405 00:25:49,670 --> 00:25:52,370 Se konsa, ou pral jwenn kèk abitye avèk agiman liy lòd sa a sou 406 00:25:52,370 --> 00:25:54,460 pwoblèm patikilye mete. 407 00:25:54,460 --> 00:25:56,630 >> Koulye a, debogaj. 408 00:25:56,630 --> 00:26:01,680 Se konsa, ou pwobableman te deja te fè kèk debogaj ak anvan ou 409 00:26:01,680 --> 00:26:03,120 pwoblèm mete. 410 00:26:03,120 --> 00:26:08,420 Apre sa, yon fason trè fasil nan debogaj, premye, se pou yo gade nan yon pwogram buggy. 411 00:26:08,420 --> 00:26:20,710 412 00:26:20,710 --> 00:26:23,830 Oke, mache nan pwogram sa a, nou pral mande itilizatè a pou yon 413 00:26:23,830 --> 00:26:29,350 nonb antye ki pè, gen tan pwan ke nonb antye ki pè, ak lè sa a, abitrèman, nou gen yon bouk pandan y ap ki 414 00:26:29,350 --> 00:26:32,280 se jis ale nan dekrwasans mwen jouk li a egal a 10. 415 00:26:32,280 --> 00:26:35,820 Se pou nou jis asime mwen k ap antre nan yon nonb antye relatif ki pi gran pase 10. 416 00:26:35,820 --> 00:26:38,700 Se konsa, dekrwasans mwen jouk li a egal a 10. 417 00:26:38,700 --> 00:26:42,630 >> Lè sa a, nou gen yon lòt bouk pandan y ap ki, pandan y ap mwen pa fè sa egal 0, nou ap 418 00:26:42,630 --> 00:26:44,540 ale nan dekrwasans mwen pa 3. 419 00:26:44,540 --> 00:26:49,790 Se konsa, si ou wè entansyon an nan pinèz la isit la, li nan ke sa a pral dekrwasans m ' 420 00:26:49,790 --> 00:26:57,010 gen 10, ak Lè sa a, sa a pral pandan y ap bouk dekrwasans mwen soti nan 10, nan 7, a 4, a 1, 421 00:26:57,010 --> 00:27:02,880 negatif 2, nan negatif 5, ak sou sa, Infinity negatif, depi m 'pral 422 00:27:02,880 --> 00:27:05,920 aktyèlman pa janm egal a 0. 423 00:27:05,920 --> 00:27:08,610 Lè sa a, nan fen pwogram sa a, nou gen fonksyon an foo ki se 424 00:27:08,610 --> 00:27:12,130 ale sou ekri ak lèt ​​detache soti ke mwen. 425 00:27:12,130 --> 00:27:16,520 >> Se konsa, sa a se yon pwogram kout ak trivial, ak pinèz la se evidan, 426 00:27:16,520 --> 00:27:18,790 sitou apre mwen jis di ki sa pinèz la te ye a. 427 00:27:18,790 --> 00:27:24,840 Men, entansyon a isit la se, byen, sa a ta ka aktyèlman gade tankou kèk nan ou 428 00:27:24,840 --> 00:27:30,040 solisyon soti nan visye ki soti nan dènye a pwoblèm mete, ak petèt ou gen 429 00:27:30,040 --> 00:27:32,800 kèk bouk enfini nan pwogram ou an, epi ou pa gen okenn lide 430 00:27:32,800 --> 00:27:34,100 sa ki sa ki lakòz li. 431 00:27:34,100 --> 00:27:38,690 Se konsa, yon teknik debogaj trè itil se jis ajoute printfs 432 00:27:38,690 --> 00:27:40,180 tout lòt peyi sou Kòd ou. 433 00:27:40,180 --> 00:27:49,200 >> Se konsa, isit la mwen vle yon printf deyò premye pandan y ap bouk. 434 00:27:49,200 --> 00:27:53,155 Ak isit la mwen vle yon printf, epi mwen pral jis ekri ak lèt ​​detache mwen. 435 00:27:53,155 --> 00:27:55,670 436 00:27:55,670 --> 00:27:58,330 Mwen pral menm fè premye pandan y ap bouk, mwen. 437 00:27:58,330 --> 00:28:05,130 438 00:28:05,130 --> 00:28:09,040 Deyò, dezyèm pandan y ap bouk. 439 00:28:09,040 --> 00:28:12,170 Yon fwa ankò, ekri ak lèt ​​detache andedan nan isit la, valè a mwen. 440 00:28:12,170 --> 00:28:16,270 441 00:28:16,270 --> 00:28:17,520 Li kite yo kouri sa a. 442 00:28:17,520 --> 00:28:22,620 443 00:28:22,620 --> 00:28:24,800 >> Se konsa, dot koupe debug. 444 00:28:24,800 --> 00:28:25,610 Antre nan yon nonb antye relatif. 445 00:28:25,610 --> 00:28:28,150 Se pou yo fè 13. 446 00:28:28,150 --> 00:28:28,760 Apre sa, boom. 447 00:28:28,760 --> 00:28:33,300 Nou wè ke nou se enfini loupin andedan nan dezyèm bouk la pandan y ap. 448 00:28:33,300 --> 00:28:36,305 Se konsa, kounye a nou konnen ki sa ensèk la se. 449 00:28:36,305 --> 00:28:39,610 450 00:28:39,610 --> 00:28:45,610 Men, printf debogaj se parfe gwo, men yon fwa pwogram ou jwenn 451 00:28:45,610 --> 00:28:50,560 pi long ak pi konplike, gen solisyon pi plis sofistike 452 00:28:50,560 --> 00:28:51,705 ap resevwa bagay sa yo ap travay. 453 00:28:51,705 --> 00:28:52,955 Se konsa, kite a retire tout printfs sa yo. 454 00:28:52,955 --> 00:29:06,242 455 00:29:06,242 --> 00:29:08,896 Li kite yo asire yo ke mwen pa t ' kraze anyen. 456 00:29:08,896 --> 00:29:09,850 OK. 457 00:29:09,850 --> 00:29:14,180 >> Se konsa, pwogram lan nou pral prezante yo rele 458 00:29:14,180 --> 00:29:16,715 Gdb, pou GNU debogeur. 459 00:29:16,715 --> 00:29:21,892 460 00:29:21,892 --> 00:29:27,510 Oke, aktyèlman, se pou yo retire debug pou yon dezyèm fwa, epi fè debug ankò. 461 00:29:27,510 --> 00:29:31,420 462 00:29:31,420 --> 00:29:34,440 Oke, aktyèlman an premye, yon bon leson nan lòd liy agiman. 463 00:29:34,440 --> 00:29:37,780 Remake lòd sa a sonnen se sa ki konpile se tout bagay yo te pase 464 00:29:37,780 --> 00:29:41,300 nan liy lan lòd, sa yo lòd liy agiman. 465 00:29:41,300 --> 00:29:46,250 Se konsa, egzakteman kouman ou yo pral lè l sèvi avèk liy lòd agiman, jan nou 466 00:29:46,250 --> 00:29:51,500 te fè anvan, ak jan ou pral nan PSET 2, sa a, se ki jan sonnen se lè l sèvi avèk yo. 467 00:29:51,500 --> 00:30:00,070 >> Se konsa, remake ke sa a premye drapo, priz ggdb3, ki sa ki ki nan di se, rezone, 468 00:30:00,070 --> 00:30:03,790 ou ta dwe konpile sa a ranpli ak nan entansyon ke nou pral evantyèlman 469 00:30:03,790 --> 00:30:05,380 bezwen debug li. 470 00:30:05,380 --> 00:30:13,840 Se konsa, osi lontan ke ou genyen ki drapo, Lè sa a, nou kapab gdb debug. 471 00:30:13,840 --> 00:30:17,380 Apre sa, li pral louvri moute GNU debogeur la. 472 00:30:17,380 --> 00:30:22,920 >> Se konsa, gen yon anpil nan kòmandman ke ou bezwen jwenn itilize. 473 00:30:22,920 --> 00:30:27,100 Premye yon sèl ke ou ap pwobableman imedyatman bezwen se kouri. 474 00:30:27,100 --> 00:30:28,200 Se konsa, sa se kouri pral fè? 475 00:30:28,200 --> 00:30:30,910 Li pral kòmanse pwogram nou an. 476 00:30:30,910 --> 00:30:36,180 Se konsa, kouri, pwogram kòmanse, pwogram nan mande nou pou yon nonb antye ki pè, 13. 477 00:30:36,180 --> 00:30:39,170 Lè sa a, li la enfini loupin kòm yo espere a, eksepte mwen retire nan 478 00:30:39,170 --> 00:30:40,500 printfs, se konsa nou pa menm wè sa. 479 00:30:40,500 --> 00:30:43,320 480 00:30:43,320 --> 00:30:44,600 Quitté nòmalman. 481 00:30:44,600 --> 00:30:45,850 Oh. 482 00:30:45,850 --> 00:30:48,570 483 00:30:48,570 --> 00:30:53,640 Li posib ke li vlope tout la fason alantou li, tounen nan - inyore sa. 484 00:30:53,640 --> 00:30:55,170 Sipoze li pa t 'soti nan nòmalman. 485 00:30:55,170 --> 00:30:59,500 486 00:30:59,500 --> 00:31:03,370 Genyen yon repons konplike nan sa. 487 00:31:03,370 --> 00:31:07,890 >> Se konsa, kounye a, sa a pa trè itil. 488 00:31:07,890 --> 00:31:11,480 Se konsa, jis kouri pwogram nou an andedan nan debugjeur sa a pa ede nou nan nenpòt ki 489 00:31:11,480 --> 00:31:15,610 fason sa a, depi nou te kapab jis fè dot koupe debug soti an deyò de gdb. 490 00:31:15,610 --> 00:31:21,250 Se konsa, yo lòd, ki moun ki Ou ap pwobableman - 491 00:31:21,250 --> 00:31:22,970 epi mwen pral kite sa-a. 492 00:31:22,970 --> 00:31:25,850 Kontwòl-d oswa ou kite, tou de travay. 493 00:31:25,850 --> 00:31:29,550 Se konsa, kite a louvri l 'ankò. 494 00:31:29,550 --> 00:31:31,130 >> Yon lòt lòd ke ou ap pwobableman imedyatman vle 495 00:31:31,130 --> 00:31:33,600 jwenn itilize se Pak. 496 00:31:33,600 --> 00:31:37,120 Se konsa, nou pral kraze sou prensipal pou kounye a, ak Lè sa a, mwen pral eksplike ke. 497 00:31:37,120 --> 00:31:41,010 498 00:31:41,010 --> 00:31:46,370 Oke, isit la nou wè nou mete yon breakpoint nan liy sa a nan debug.c. 499 00:31:46,370 --> 00:31:50,160 Se konsa, sa ti repo vle di se ke lè m ' tape kouri, pwogram nan se ale nan 500 00:31:50,160 --> 00:31:53,560 kontinye kouri jouk Mwen frape yon breakpoint. 501 00:31:53,560 --> 00:31:59,390 Se konsa, lè m 'frape kouri, pwogram nan kòmanse, ak Lè sa a, li kraze le pli vit ke li 502 00:31:59,390 --> 00:32:01,940 antre nan fonksyon prensipal la. 503 00:32:01,940 --> 00:32:06,930 Kraze prensipal ki pral gen yon bagay ou trè souvan fè. 504 00:32:06,930 --> 00:32:11,340 >> Epi, koulye a, nan entwodui ou nan kèk kòmandman plis ankò. 505 00:32:11,340 --> 00:32:14,330 Avi isit la, ke li nan di nou te kraze nan liy 11, ki se 506 00:32:14,330 --> 00:32:16,230 printf, antre nan yon nonb antye relatif. 507 00:32:16,230 --> 00:32:21,260 Se konsa, yo lòd, ki Next a pwal ki jan nou ale nan liy nan pwochen nan kòd. 508 00:32:21,260 --> 00:32:24,810 Sa a se ale nan pèmèt nou nan etap nan liy pwogram nou an pa liy. 509 00:32:24,810 --> 00:32:26,260 Se konsa, kap vini an. 510 00:32:26,260 --> 00:32:29,820 >> Koulye a, liy 12, nou pral jwenn nonb antye ki pè a. 511 00:32:29,820 --> 00:32:30,450 Kap vini an. 512 00:32:30,450 --> 00:32:34,290 Ak si ou jis frape Antre ankò, li pral refè bagay la pase ou te fè. 513 00:32:34,290 --> 00:32:36,480 Se konsa, mwen pa bezwen tape pwochen chak fwa. 514 00:32:36,480 --> 00:32:40,100 Se konsa, antre nan yon nonb antye relatif, 13. 515 00:32:40,100 --> 00:32:46,940 Se konsa, koulye a, liy 14, pandan y ap mwen an gen plis pouvwa pase 10, epi mwen pral fè pwochen. 516 00:32:46,940 --> 00:32:48,685 Lè nou wè nou pral dekrwasans mwen. 517 00:32:48,685 --> 00:32:50,210 Se konsa, nou ap ale nan dekrwasans mwen ankò. 518 00:32:50,210 --> 00:32:53,620 >> Se konsa, koulye a, yon lòt itil lòd se Enprime. 519 00:32:53,620 --> 00:32:55,750 Se konsa, Enprime ki pral enprime soti valè a nan varyab la. 520 00:32:55,750 --> 00:32:57,825 Se pou yo pote l 'valè a nan varyab mwen. 521 00:32:57,825 --> 00:32:58,705 Se pou yo ekri ak lèt ​​detache mwen. 522 00:32:58,705 --> 00:33:00,910 Li pral di mwen se 11. 523 00:33:00,910 --> 00:33:03,330 Koulye a, nou Next ankò pandan y ap mwen gen plis pouvwa pase 10. 524 00:33:03,330 --> 00:33:05,590 Se konsa, mwen la toujou pi gran pase 10, depi li nan 11. 525 00:33:05,590 --> 00:33:06,920 mwen mwens mwens. 526 00:33:06,920 --> 00:33:08,250 Se pou yo ekri ak lèt ​​detache mwen ankò. 527 00:33:08,250 --> 00:33:10,950 Kòm espere, li la 10. 528 00:33:10,950 --> 00:33:12,510 >> Se konsa, kounye a, kap vini an. 529 00:33:12,510 --> 00:33:16,250 Li pral tounen nan kondisyon an, mwen se pi gran pase 10, men mwen se kounye a 10, Se konsa, 530 00:33:16,250 --> 00:33:20,040 li pa pi plis pase 10, se konsa nou espere li soti tonbe nan bouk la pandan y ap. 531 00:33:20,040 --> 00:33:22,220 Epi, koulye a nou ap anba a ki liy nan kòd. 532 00:33:22,220 --> 00:33:28,750 Ak yon lòt lòd, Lis, se jis ale an montre anvan an ak pwochen 533 00:33:28,750 --> 00:33:31,240 koup la liy nan Kòd, nan ka ou pèdi tèt ou. 534 00:33:31,240 --> 00:33:35,420 Se konsa, nou jis quitté sa a bouk ti tan, epi kounye a nou gen antre nan sa a 535 00:33:35,420 --> 00:33:37,080 pandan y ap bouk, liy 18. 536 00:33:37,080 --> 00:33:39,860 Se konsa, pandan mwen pa fè sa egal 0. 537 00:33:39,860 --> 00:33:46,570 Epi, kap vini an, mwen egal mwen mwens 3, epi n ap avi, sa a pral jis kenbe prale. 538 00:33:46,570 --> 00:33:48,270 Apre sa, nou ka ekri ak lèt ​​detache mwen. 539 00:33:48,270 --> 00:33:49,990 >> Chak lòd sòt de gen rakoursi. 540 00:33:49,990 --> 00:33:51,720 Se konsa, p se kout pou Ekri an lèt detache. 541 00:33:51,720 --> 00:33:53,400 Se konsa, nou kapab p mwen. 542 00:33:53,400 --> 00:33:57,550 Jis kenbe kenbe n, oswa kontinye ap fè kap vini an. 543 00:33:57,550 --> 00:33:58,340 Enprime mwen ankò. 544 00:33:58,340 --> 00:34:00,380 Ou wè kounye a li nan negatif 167. 545 00:34:00,380 --> 00:34:06,030 Se konsa, sa a pral ale sou pou tout tan, men se pa vrèman pou tout tan, depi ou jis te wè, li 546 00:34:06,030 --> 00:34:09,330 aktyèlman ap fini nan kèk pwen. 547 00:34:09,330 --> 00:34:15,699 >> Se konsa, ki se Kòmanse gdb. 548 00:34:15,699 --> 00:34:19,504 Men, kite a fè yon bagay plis nan gdb. 549 00:34:19,504 --> 00:34:20,754 Uh, debug. 550 00:34:20,754 --> 00:34:23,540 551 00:34:23,540 --> 00:34:28,534 Se konsa, nan ka sa a an patikilye, nan enfini bouk ki te pase yo dwe andedan nan 552 00:34:28,534 --> 00:34:30,050 fonksyon prensipal la. 553 00:34:30,050 --> 00:34:35,779 Se pou kounye a, jis aksepte ke ke mwen se ale pou avanse pou pi bouk la enfini nan 554 00:34:35,779 --> 00:34:37,029 fonksyon an foo. 555 00:34:37,029 --> 00:34:40,679 556 00:34:40,679 --> 00:34:43,730 Jis sonje ke, nan fen sa a pwogram, byen, sa a te orijinal 557 00:34:43,730 --> 00:34:46,210 rele foo, sa ki te jis ale nan ekri ak lèt ​​detache mwen. 558 00:34:46,210 --> 00:34:51,880 Men koulye a, nou ap rele foo, ki se ale nan dekrwasans mwen jouk li a 0, epi 559 00:34:51,880 --> 00:34:54,548 Lè sa a, ekri ak lèt ​​detache varyab sa a. 560 00:34:54,548 --> 00:34:55,469 OK. 561 00:34:55,469 --> 00:34:57,970 Delivre sa. 562 00:34:57,970 --> 00:35:00,175 Fè debug. 563 00:35:00,175 --> 00:35:03,310 Koulye a, gdb debug. 564 00:35:03,310 --> 00:35:04,090 OK. 565 00:35:04,090 --> 00:35:10,580 >> Se konsa, si mwen jis kouri Lè sa a, mwen pa ale nan kapab aktyèlman etap nan mwen 566 00:35:10,580 --> 00:35:11,730 liy-pa-liy pwogram nan. 567 00:35:11,730 --> 00:35:19,820 Se konsa, kite a kraze nan prensipal yo, ak Lè sa a, tape kouri. 568 00:35:19,820 --> 00:35:28,160 Se konsa, ale nan sa a, printf, antre nan yon nonb antye relatif, jwenn nonb antye ki pè a, 13. 569 00:35:28,160 --> 00:35:34,180 570 00:35:34,180 --> 00:35:37,490 Se konsa, nou ap ale nan kenbe decrementing jouk tan mwen gen plis pouvwa pase 10. 571 00:35:37,490 --> 00:35:42,840 Lè sa a, nou pral tonbe nan la pandan y ap bouk, epi pou yo jwenn nan liy lan - 572 00:35:42,840 --> 00:35:44,364 kite a louvri li moute nan yon fennèt apa a. 573 00:35:44,364 --> 00:35:48,720 574 00:35:48,720 --> 00:35:53,300 Se konsa, nou dekremante jouk tan mwen te gen okenn ankò pi gran pase 10, ak Lè sa a, nou 575 00:35:53,300 --> 00:35:55,700 rele fonksyon an, foo. 576 00:35:55,700 --> 00:36:01,340 >> Se konsa, sa ki te pase le pli vit ke mwen frape foo fonksyon, byen, mwen te rele foo, ak 577 00:36:01,340 --> 00:36:04,030 Lè sa a, mwen pa gen okenn ankò te gen kontwòl sou gdb. 578 00:36:04,030 --> 00:36:10,230 Se konsa, le pli vit ke mwen frape Next nan liy sa a, bagay sa yo kontinye jouk sa a te pase a, 579 00:36:10,230 --> 00:36:12,400 kote pwogram lan quitté lè - 580 00:36:12,400 --> 00:36:14,450 sipoze li pa t 'egziste evantyèlman. 581 00:36:14,450 --> 00:36:16,390 Ou te wè sa pran yon poz pou yon ti jan si. 582 00:36:16,390 --> 00:36:22,040 Se konsa, poukisa mwen te pèdi kontwòl sou pwogram lan nan pwen sa? 583 00:36:22,040 --> 00:36:27,540 Oke, lè mwen tape kap vini an, ki ale nan literal liy nan pwochen nan kòd ki 584 00:36:27,540 --> 00:36:28,850 ap egzekite. 585 00:36:28,850 --> 00:36:35,950 Se konsa, apre liy 21, liy nan pwochen nan Kòd ki pral egzekite se liy 22, 586 00:36:35,950 --> 00:36:38,520 ki se, elèv la kite prensipal la. 587 00:36:38,520 --> 00:36:43,810 Se konsa, mwen pa vle jis ale nan liy lan pwochen nan kòd. 588 00:36:43,810 --> 00:36:48,170 Mwen vle ale nan fonksyon, foo a, ak Lè sa a, tou etap nan 589 00:36:48,170 --> 00:36:49,830 moun ki liy nan kòd. 590 00:36:49,830 --> 00:36:53,726 >> Se konsa, pou ke, nou gen yon altènatif. 591 00:36:53,726 --> 00:36:56,770 Se pou nou kite sa ankò. 592 00:36:56,770 --> 00:36:58,020 Kraze prensipal la. 593 00:36:58,020 --> 00:37:00,520 594 00:37:00,520 --> 00:37:06,370 Uh, 1, apre, pwochèn nan, 13, kap vini an, kap vini an, kap vini an, ak anpil atansyon, 595 00:37:06,370 --> 00:37:09,820 anvan nou frape liy foo. 596 00:37:09,820 --> 00:37:10,520 OK. 597 00:37:10,520 --> 00:37:13,700 >> Se konsa, koulye a, nou ap nan liy 21, kote nou rele foo. 598 00:37:13,700 --> 00:37:17,100 Nou pa vle tape kap vini an, depi ke pral jis rele foo an fonksyon, ak 599 00:37:17,100 --> 00:37:18,710 ale nan liy nan pwochen nan kòd. 600 00:37:18,710 --> 00:37:20,840 Ki sa nou vle sèvi ak se Etap. 601 00:37:20,840 --> 00:37:25,690 Se konsa, gen nan yon diferans ant Etap ak Apre sa, kote Etap etap nan la 602 00:37:25,690 --> 00:37:28,190 fonksyone, ak pwochen ale sou fonksyon an. 603 00:37:28,190 --> 00:37:32,830 Li jis ègzekutra antye nan fonksyon an ak kenbe prale. 604 00:37:32,830 --> 00:37:37,210 >> Se konsa, Etap ki pral mennen nou nan fonksyon an, foo. 605 00:37:37,210 --> 00:37:41,160 Lè nou wè isit la, kounye a, nou ap tounen nan sa a bouk pandan y ap sa a, se, nan teyori, 606 00:37:41,160 --> 00:37:44,190 pral kontinye pou tout tan. 607 00:37:44,190 --> 00:37:50,420 Men, si ou frape Etap, lè li se pa menm yon fonksyon yo rele, lè sa a li nan 608 00:37:50,420 --> 00:37:51,720 ki idantik ak pwochen an. 609 00:37:51,720 --> 00:37:55,320 Se konsa, li a sèlman lè w ap nan yon liy ki ap rele yon fonksyon ki etap 610 00:37:55,320 --> 00:37:56,970 ki pral diferan de kap vini an. 611 00:37:56,970 --> 00:37:57,930 Se konsa, Etap ap fè nou isit la. 612 00:37:57,930 --> 00:38:02,100 Etap, etap, etap, etap, etap, etap, ak nou pral jis enfini bouk pou tout tan. 613 00:38:02,100 --> 00:38:06,810 >> Se konsa, ou ta ka jwenn itilize sa a kòm ou fason pou idantifye pasan enfini, se 614 00:38:06,810 --> 00:38:08,960 jis kenbe sa a antre nan kle yo wè ki kote ou jwenn kole. 615 00:38:08,960 --> 00:38:11,610 616 00:38:11,610 --> 00:38:14,780 Gen pi bon fason yo fè sa, men pou kounye a, se sa ki parfe ase. 617 00:38:14,780 --> 00:38:17,967 Apre sa, estilitikman, nan konfòme yo ak Style 50, mwen ta dwe fè sa a. 618 00:38:17,967 --> 00:38:21,550 619 00:38:21,550 --> 00:38:24,030 OK. 620 00:38:24,030 --> 00:38:28,400 >> Se konsa, yon dènye lòd prezante. 621 00:38:28,400 --> 00:38:30,810 Oke, kite la gdb debug pous 622 00:38:30,810 --> 00:38:35,580 Se konsa, olye pou yo kraze nan prensipal yo, si mwen konnen fonksyon an foo se tou nan 623 00:38:35,580 --> 00:38:39,230 pwoblèm, Lè sa a, mwen te kapab gen sèlman te di, kraze nan foo, olye pou. 624 00:38:39,230 --> 00:38:42,310 Se pou nou di mwen kraze nan tou de pwensipal yo ak foo. 625 00:38:42,310 --> 00:38:45,390 Se konsa, ou ka mete kòm anpil breakpoints jan ou vle. 626 00:38:45,390 --> 00:38:49,230 Lè m 'tape kouri, li pral yo sispann nan a - 627 00:38:49,230 --> 00:38:52,180 Ooh, se pou yo compile, depi Mwen chanje bagay sa yo. 628 00:38:52,180 --> 00:38:55,950 Ou pral wè liy sa a, avètisman, sous dosye a se pi plis ki sot pase pase ègzèkutabl. 629 00:38:55,950 --> 00:38:59,680 Se konsa, ki vle di ke mwen jis te ale nan isit la Li chanje sa yo konfòme yo ak Style 630 00:38:59,680 --> 00:39:03,100 50, men mwen pa t 'compile pwogram lan. 631 00:39:03,100 --> 00:39:04,870 Se konsa, gdb fè m 'okouran de sa. 632 00:39:04,870 --> 00:39:10,130 Mwen pral kite fimen, fè debug ankò, frape gdb debug. 633 00:39:10,130 --> 00:39:10,700 OK. 634 00:39:10,700 --> 00:39:12,800 >> Se konsa, koulye a, tounen nan sa mwen te fè a. 635 00:39:12,800 --> 00:39:15,720 Kraze prensipal yo, kraze foo. 636 00:39:15,720 --> 00:39:20,680 Koulye a, si mwen kouri pwogram nan, se konsa li a ale nan kontinye jiskaske frape yon 637 00:39:20,680 --> 00:39:21,320 breakpoint. 638 00:39:21,320 --> 00:39:24,680 Sa breakpoint k ap pase nan fè yon sèl la an premye nan prensipal la. 639 00:39:24,680 --> 00:39:28,630 Koulye a, olye pou yo fè apre, pwochèn nan, apre, apre, pwochèn nan, jouk tan mwen frape foo, mwen 640 00:39:28,630 --> 00:39:35,230 ka tape kontinye, ki ap kontinye jiskaske ou frape breakpoint nan pwochen an. 641 00:39:35,230 --> 00:39:37,200 Mwen gen antre nan nonb antye ki pè a an premye. 642 00:39:37,200 --> 00:39:40,570 Kontinye ap kontinye jouk tan mwen frape nan pwochen breakpoint, ki se ki 643 00:39:40,570 --> 00:39:43,320 fonksyon nan foo. 644 00:39:43,320 --> 00:39:50,130 >> Se konsa, kouri pral kouri jiskaske ou frape yon breakpoint, men ou sèlman tape kouri lè 645 00:39:50,130 --> 00:39:54,060 w ap kòmanse pwogram nan, ak Lè sa a, soti nan Lè sa a, sou, li la kontinye. 646 00:39:54,060 --> 00:40:01,950 Si mwen jis te fè kraze prensipal ak Lè sa a, kouri, li pral kraze a 647 00:40:01,950 --> 00:40:03,670 prensipal yo, ak Lè sa a kontinye. 648 00:40:03,670 --> 00:40:10,050 Depi mwen pa gen yon pwen kraze nan foo, antre nan nonb antye ki pè a, Lè sa a, koulye a, mwen se 649 00:40:10,050 --> 00:40:11,380 pa ale nan kraze nan foo. 650 00:40:11,380 --> 00:40:16,318 Se jis ale nan enfini bouk jouk sa. 651 00:40:16,318 --> 00:40:17,568 OK. 652 00:40:17,568 --> 00:40:19,500 653 00:40:19,500 --> 00:40:24,420 >> Se konsa, sa a, se Entwodiksyon nan gdb. 654 00:40:24,420 --> 00:40:27,790 Ou ta dwe kòmanse lè l sèvi avèk li nan aparèy televisyon HD pwoblèm ou an. 655 00:40:27,790 --> 00:40:30,550 Li kapab trè itil yo idantifye pinèz. 656 00:40:30,550 --> 00:40:35,280 Si ou aktyèlman jis, liy-pa-liy, ale nan Kòd ou, epi konpare sa ki 657 00:40:35,280 --> 00:40:39,740 aktyèlman pase ak sa w ap atann rive, Lè sa a, li a trè 658 00:40:39,740 --> 00:40:41,060 difisil yo kapab manke pinèz ou. 659 00:40:41,060 --> 00:40:45,280 660 00:40:45,280 --> 00:40:46,530 OK. 661 00:40:46,530 --> 00:40:48,310 662 00:40:48,310 --> 00:40:54,040 >> Se konsa, semèn pase a David te fè sa a sekrè-kle bagay chifreman pou la 663 00:40:54,040 --> 00:40:59,350 premye fwa, kote nou pa vle modpas jis dwe estoke sou nou 664 00:40:59,350 --> 00:41:03,210 òdinatè nan kèk dosye tèks plenn, kote yon moun ka vin sou yo ak jis 665 00:41:03,210 --> 00:41:04,660 louvri li leve, li li yo. 666 00:41:04,660 --> 00:41:07,530 Idealman, yo ta dwe chiffres nan kèk fason. 667 00:41:07,530 --> 00:41:13,340 Ak nan Pwoblèm Set 2, ou pral fè fas ak yon sèl metòd pou chifreman, 668 00:41:13,340 --> 00:41:16,520 oswa, byen, de metòd, men yo menm yo pa tèlman gwo. 669 00:41:16,520 --> 00:41:20,050 Si ou fè sa edisyon an HACKER, w ap tou yo pral fè fas ak 670 00:41:20,050 --> 00:41:22,150 dechifre kèk bagay sa yo. 671 00:41:22,150 --> 00:41:29,770 >> Se konsa, pwoblèm nan kounye a se, byen, menm si nou gen chifreman ki te pi fò 672 00:41:29,770 --> 00:41:34,830 algorithm nan mond lan, si ou chwazi yon patikilyèman pòv modpas, Lè sa a, li 673 00:41:34,830 --> 00:41:37,720 pa pral ede w anpil, depi moun ap toujou kapab figi li soti. 674 00:41:37,720 --> 00:41:41,530 Menm si wè fisèl la chiffres ak li sanble yon dezòd nan fatra 675 00:41:41,530 --> 00:41:44,760 sa vle di pa gen anyen yo, si yo toujou jis bezwen eseye yon modpas kèk 676 00:41:44,760 --> 00:41:50,560 figi li soti, lè sa a ou yo pa twò ki an sekirite. 677 00:41:50,560 --> 00:41:55,890 Se konsa, l ap gade yon videyo ki fè pwen sa. 678 00:41:55,890 --> 00:41:59,587 679 00:41:59,587 --> 00:42:00,970 >> [VIDEO lèktur] 680 00:42:00,970 --> 00:42:02,100 >> -Kask, ou anraje. 681 00:42:02,100 --> 00:42:03,370 Sa k ap pase sou? 682 00:42:03,370 --> 00:42:05,170 Kisa ou ap fè bay pitit fi mwen an? 683 00:42:05,170 --> 00:42:09,910 >> -Kite m prezante briyan nan jèn chirijyen plastik, Dr Phillip 684 00:42:09,910 --> 00:42:13,730 Schlotkin, nen an pi gran moun travay nan tout la 685 00:42:13,730 --> 00:42:16,080 linivè, ak Beverly Hills. 686 00:42:16,080 --> 00:42:17,210 >> -Ou Samajeste. 687 00:42:17,210 --> 00:42:18,070 >> -Nen travay? 688 00:42:18,070 --> 00:42:18,670 Mwen pa konprann. 689 00:42:18,670 --> 00:42:20,090 Li te te deja gen yon travay nen yo. 690 00:42:20,090 --> 00:42:21,910 Se te yon dous sèz prezan. 691 00:42:21,910 --> 00:42:22,140 >> -Non. 692 00:42:22,140 --> 00:42:23,690 Li pa sa w panse. 693 00:42:23,690 --> 00:42:25,420 Li nan anpil, anpil vin pi mal. 694 00:42:25,420 --> 00:42:30,300 Si ou pa ban m 'konbinezon nan plak pwotèj li a lè, Dr Schlotkin pral 695 00:42:30,300 --> 00:42:34,226 bay pitit fi ou tounen nen fin vye granmoun li. 696 00:42:34,226 --> 00:42:35,476 >> -Non. 697 00:42:35,476 --> 00:42:38,712 698 00:42:38,712 --> 00:42:40,516 Ki kote ou t 'jwenn sa? 699 00:42:40,516 --> 00:42:41,440 >> -Tout dwa. 700 00:42:41,440 --> 00:42:42,180 Mwen pral di. 701 00:42:42,180 --> 00:42:43,381 Mwen pral di. 702 00:42:43,381 --> 00:42:44,263 Pa gen, papa. 703 00:42:44,263 --> 00:42:45,590 Non, ou pa dwe fèt la. 704 00:42:45,590 --> 00:42:46,860 >> -You're dwat, mwen renmen anpil. 705 00:42:46,860 --> 00:42:48,450 Mwen pral manke nen nouvo ou. 706 00:42:48,450 --> 00:42:52,090 Men, mwen pa pral di l 'konbinezon an, pa gen pwoblèm sa. 707 00:42:52,090 --> 00:42:53,680 >> -Trè byen. 708 00:42:53,680 --> 00:42:55,685 Dr Schlotkin, fè pi mal ou. 709 00:42:55,685 --> 00:42:56,914 >> -Mwen plezi. 710 00:42:56,914 --> 00:43:00,690 >> [ZOUTI YO file] 711 00:43:00,690 --> 00:43:01,910 >> -Non. 712 00:43:01,910 --> 00:43:02,520 Rete tann. 713 00:43:02,520 --> 00:43:03,836 Rete tann. 714 00:43:03,836 --> 00:43:05,300 Mwen pral di. 715 00:43:05,300 --> 00:43:06,880 Mwen pral di. 716 00:43:06,880 --> 00:43:09,130 >> -Mwen te konnen li ta travay. 717 00:43:09,130 --> 00:43:09,900 Tout dwa. 718 00:43:09,900 --> 00:43:12,850 Ba li avè m '. 719 00:43:12,850 --> 00:43:16,918 >> -Konbinezon a se youn. 720 00:43:16,918 --> 00:43:17,406 >> -Yon. 721 00:43:17,406 --> 00:43:18,382 >> -Yon. 722 00:43:18,382 --> 00:43:19,358 >> -De. 723 00:43:19,358 --> 00:43:19,846 >> -De. 724 00:43:19,846 --> 00:43:20,822 >> -De. 725 00:43:20,822 --> 00:43:21,310 >> -Twa. 726 00:43:21,310 --> 00:43:21,798 >> -Twa. 727 00:43:21,798 --> 00:43:22,774 >> -Twa. 728 00:43:22,774 --> 00:43:23,262 >> -Kat. 729 00:43:23,262 --> 00:43:23,750 >> -Kat. 730 00:43:23,750 --> 00:43:26,150 >> -Kat. 731 00:43:26,150 --> 00:43:27,010 >> -Senk. 732 00:43:27,010 --> 00:43:27,670 >> -Senk. 733 00:43:27,670 --> 00:43:29,010 >> -Senk. 734 00:43:29,010 --> 00:43:34,770 >> -Se konsa, konbinezon an se youn, de, twa, kat, senk. 735 00:43:34,770 --> 00:43:37,460 Sa a konbinezon an estipid Mwen janm tande nan lavi mwen. 736 00:43:37,460 --> 00:43:39,710 Sa a ki kalite bagay yon moun sòt ta gen sou bagaj l 'yo. 737 00:43:39,710 --> 00:43:42,000 >> -Mèsi, Samajeste. 738 00:43:42,000 --> 00:43:43,530 >> -Ki sa ou te fè? 739 00:43:43,530 --> 00:43:44,490 >> -Mwen etenn miray la. 740 00:43:44,490 --> 00:43:45,420 >> -Pa gen ou pa t '. 741 00:43:45,420 --> 00:43:45,840 Ou etenn fim nan tout antye. 742 00:43:45,840 --> 00:43:46,930 >> -Mwen dwe te bourade bouton an mal. 743 00:43:46,930 --> 00:43:48,265 >> -Bon, mete l 'tounen sou. 744 00:43:48,265 --> 00:43:49,110 Mete fim nan tounen sou. 745 00:43:49,110 --> 00:43:49,510 >> -Wi, mesye. 746 00:43:49,510 --> 00:43:49,917 Wi, mesye. 747 00:43:49,917 --> 00:43:50,324 >> -Ann al, Arnold. 748 00:43:50,324 --> 00:43:51,140 Vini non, Gretchen. 749 00:43:51,140 --> 00:43:53,060 Natirèlman, ou konnen mwen pral toujou gen pou voye bòdwo pou ou pou sa a. 750 00:43:53,060 --> 00:43:53,440 >> [FEN VIDEO lèktur] 751 00:43:53,440 --> 00:43:54,690 >> ROB bodèn: Tout dwat. 752 00:43:54,690 --> 00:43:59,690 753 00:43:59,690 --> 00:44:08,430 Se konsa, kounye a ke nou ap deja ap pale de sekirite nan kèk fason, bèl 754 00:44:08,430 --> 00:44:16,050 afich fim ti kras, se konsa nan ki sot pase jou, pwoblèm sa yo ak NSA la 755 00:44:16,050 --> 00:44:17,300 kontwole tout bagay. 756 00:44:17,300 --> 00:44:21,840 757 00:44:21,840 --> 00:44:26,930 Li kapab difisil a santi tankou ou gen kèk sòt de vi prive nan la 758 00:44:26,930 --> 00:44:34,540 sou entènèt nan lemonn, byenke mwen pa t 'kapab di ou pi fò nan detay yo nan pris. 759 00:44:34,540 --> 00:44:42,130 Se konsa, k ap deplase pi lwen pase prism, nou pa ap ale yo dwe pale sou sa, koulye a 760 00:44:42,130 --> 00:44:44,030 panse osijè de laptop ou. 761 00:44:44,030 --> 00:44:48,360 Se konsa, Moute bò isit, mwen vle chanje nan kont aktyèl m 'yo, 762 00:44:48,360 --> 00:44:50,370 ak pengwen ti kras mwen. 763 00:44:50,370 --> 00:44:57,310 Se konsa, mwen gen yon seri modpas, e ke sa modpas se tou sa mwen vle li yo dwe. 764 00:44:57,310 --> 00:45:02,430 >> Men sonje ke sa m ap ouvri sesyon nan ak, se konsa login sa a 765 00:45:02,430 --> 00:45:04,850 rapid, se kèk nan pwogram nan. 766 00:45:04,850 --> 00:45:07,910 Li nan kèk pwogram ki te ekri pa kèk moun. 767 00:45:07,910 --> 00:45:13,250 Se konsa, moun sa a, si yo patikilyèman move, yo te kapab 768 00:45:13,250 --> 00:45:17,780 te di, tout dwa, Se konsa, si modpas la ke mwen antre nan ki egal a mwen 769 00:45:17,780 --> 00:45:22,800 aktyèl modpas, oswa li a egal nan kèk modpas espesyal - 770 00:45:22,800 --> 00:45:25,550 David se pè oubyen yon bagay - 771 00:45:25,550 --> 00:45:27,190 Lè sa a, se pou yo pous 772 00:45:27,190 --> 00:45:33,760 Se konsa, yon pwogramè move te kapab gen aksè a tout nan Macs ou, oswa 773 00:45:33,760 --> 00:45:36,150 Fenèt yo, oswa nenpòt bagay. 774 00:45:36,150 --> 00:45:41,980 >> Se konsa, ki se pa anpil nan yon enkyetid, depi, Mwen vle di, sa a se pwogram login 775 00:45:41,980 --> 00:45:48,720 ki nan anbake ak OS X, dè santèn oswa dè milye de moun ki gen 776 00:45:48,720 --> 00:45:50,020 revize Kòd sa a. 777 00:45:50,020 --> 00:45:55,330 Se konsa, si, nan Kòd ou yon kote, ou di si fisèl sa a egal egal 778 00:45:55,330 --> 00:45:58,860 David se pè, login, Lè sa a, yon moun nan pral fè, tankou, rete tann. 779 00:45:58,860 --> 00:45:59,800 Sa a se pa dwat. 780 00:45:59,800 --> 00:46:01,790 Sa a pa ta dwe isit la. 781 00:46:01,790 --> 00:46:06,650 Se konsa, sa a, se youn nan fason nou resevwa bagay sa yo yo dwe kalite ki an sekirite. 782 00:46:06,650 --> 00:46:10,300 >> Men, panse osijè de pwogram menm ke ou ekri. 783 00:46:10,300 --> 00:46:13,000 Se pou nou di ou te ekri pwogram nan login. 784 00:46:13,000 --> 00:46:20,440 Se konsa, pwogram sa a login ke ou te ekri, Se konsa, evidamman, ou se yon bon 785 00:46:20,440 --> 00:46:21,210 pwogramè. 786 00:46:21,210 --> 00:46:25,610 Ou pa ap ale nan mete nenpòt move si x egal egal David se pè 787 00:46:25,610 --> 00:46:27,860 nan Kòd ou. 788 00:46:27,860 --> 00:46:31,930 Men, pwogram sa a, sa ki fè ou sèvi ak konpile pwogram sa a? 789 00:46:31,930 --> 00:46:34,180 Yon bagay tankou sonnen. 790 00:46:34,180 --> 00:46:38,460 Se konsa, sa si moun nan ki te rive ekri sonnen espesyal gèn nan rezone 791 00:46:38,460 --> 00:46:44,310 yon bagay tankou, si mwen konpile nan konekte pwogram nan, Lè sa a, antre kòd sa a 792 00:46:44,310 --> 00:46:49,720 nan pwogram lan login ki di, si x egal egal David te pè? 793 00:46:49,720 --> 00:46:59,890 Se konsa, pa byen ankò, men nou gen menm bagay la tou bay isit la, kote sonnen, byen, 794 00:46:59,890 --> 00:47:03,790 dè milye, si se pa dè dizèn de milye nan moun, yo te gade sonnen yo, yo gen 795 00:47:03,790 --> 00:47:07,160 gade liy li yo nan Kòd, li di: tout dwa, gen nan pa gen anyen move isit la. 796 00:47:07,160 --> 00:47:10,680 Li evidan, pa gen yon sèl ap fè anyen sa a move. 797 00:47:10,680 --> 00:47:15,780 >> Men, sa ki se rezone tèt li, tankou, E si mwen konpile sonnen? 798 00:47:15,780 --> 00:47:20,900 E si mwen gen kèk du ki compiles rezone ke foure nan rezone 799 00:47:20,900 --> 00:47:25,610 sa a Hack espesyal ki di, tout dwa, lè m 'konpile sonnen, lè sa a nan 800 00:47:25,610 --> 00:47:31,290 ègzèkutabl mwen jwenn yo ta dwe espesyalman gade andedan nan pwogram nan login ak insert 801 00:47:31,290 --> 00:47:34,230 sa a modpas, egal egal Dave se pè? 802 00:47:34,230 --> 00:47:37,990 Se konsa, sonje ke du ou tèt li bezwen yo dwe konpile nan kèk pwen. 803 00:47:37,990 --> 00:47:42,810 Se konsa, si sa ou chwazi yo konpile rezone ak, tèt li se move, Lè sa a, ou 804 00:47:42,810 --> 00:47:45,580 ta ka vise tout la fason desann liy lan. 805 00:47:45,580 --> 00:47:49,630 >> Se konsa, isit la, nou gen Ken Thompson ak Dennis Ritchie. 806 00:47:49,630 --> 00:47:53,780 Se konsa, sa a se yon foto Iconiţă. 807 00:47:53,780 --> 00:47:55,470 Dennis Ritchie se sou bò dwat la. 808 00:47:55,470 --> 00:47:58,740 Li se yon gwo - 809 00:47:58,740 --> 00:48:03,640 bèl anpil te ekri C. Se konsa, ou kapab di li mèsi pou klas sa a. 810 00:48:03,640 --> 00:48:04,840 Ken Thomson nan sou bò gòch la. 811 00:48:04,840 --> 00:48:07,780 De a yo fondamantalman ekri UNIX. 812 00:48:07,780 --> 00:48:10,140 Oke, yo te gwo kontribye nan UNIX. 813 00:48:10,140 --> 00:48:11,310 Te gen kèk lòt moun. 814 00:48:11,310 --> 00:48:16,240 Se konsa, Ken Thompson, nan kèk pwen, li ranport prim lan Turing. 815 00:48:16,240 --> 00:48:20,860 Apre sa, prim lan Turing, Mwen te toujou tande li referans fason sa a, li la a 816 00:48:20,860 --> 00:48:23,100 Pri nobèl nan syans òdinatè. 817 00:48:23,100 --> 00:48:27,500 >> Se konsa, nan prim lan Turing, li te gen yo bay diskou aksepte l 'yo. 818 00:48:27,500 --> 00:48:31,790 Apre sa, li bay sa a diskou trè popilè kounye a, yo rele Refleksyon sou mete konfyans 819 00:48:31,790 --> 00:48:35,620 Trust, nou te lye sou sit entènèt la kou. 820 00:48:35,620 --> 00:48:41,670 Apre sa, nan diskou sa a, li te di, tout dwa, Se konsa, mwen te ekri UNIX, epi kounye a tout moun nan 821 00:48:41,670 --> 00:48:43,320 ou moun yo lè l sèvi avèk UNIX. 822 00:48:43,320 --> 00:48:46,960 Koulye a, sonje jodi a ke Linux se yon pitit dirèk nan UNIX. 823 00:48:46,960 --> 00:48:50,140 OS X dirèkteman sèvi ak UNIX. 824 00:48:50,140 --> 00:48:53,810 Windows fè pa konsa pou sa anpil, men yon anpil nan lide yo te pran nan UNIX. 825 00:48:53,810 --> 00:48:59,220 >> Se konsa, li ale jiska etap nan e li di, tout dwa, mwen te ekri UNIX. 826 00:48:59,220 --> 00:49:03,940 Apre sa, jis pou ou nèg konnen, mwen se kapab ale nan tout 827 00:49:03,940 --> 00:49:05,590 yon sèl youn nan òdinatè ou. 828 00:49:05,590 --> 00:49:14,280 Depi mwen mete youn nan sa yo espesyal si x egal egal Ken Thomson se pè, 829 00:49:14,280 --> 00:49:16,350 Lè sa a, mwen pèmèt yo konekte. 830 00:49:16,350 --> 00:49:18,370 Se konsa, moun, yo sanble, byen, how'd ou fè sa? 831 00:49:18,370 --> 00:49:21,090 Nou te gade pwogram nan login e pa gen anyen nan la. 832 00:49:21,090 --> 00:49:24,700 Li se tankou, byen, mwen modifye du a ou kapab konekte nan pwogram nan login 833 00:49:24,700 --> 00:49:30,490 se konsa ke pwogram nan login kounye a ap gen ki x egal egal Ken Thompson 834 00:49:30,490 --> 00:49:31,700 se pè. 835 00:49:31,700 --> 00:49:33,120 >> Apre sa, yo di, byen, sa a, se pa vre. 836 00:49:33,120 --> 00:49:35,740 Nou ap chèche a du a, ak nan du pa gen okenn liy nan 837 00:49:35,740 --> 00:49:36,400 Kòd tankou sa. 838 00:49:36,400 --> 00:49:40,540 Li se tankou, OK, men ki sa yo ou konpile du a ak? 839 00:49:40,540 --> 00:49:44,810 Apre sa, yo panse, e li, tankou, byen, Mwen se youn nan moun ki te ban nou du a 840 00:49:44,810 --> 00:49:50,580 w ap itilize konpile du a, se konsa w ap konpile yon du, se sa 841 00:49:50,580 --> 00:49:56,390 tèt li se move, epi yo pral kraze pwogram nan login. 842 00:49:56,390 --> 00:49:59,360 Se konsa, fondamantalman, nan ki pwen, gen nan pa gen okenn fason ou ta ka gade nan sous la 843 00:49:59,360 --> 00:50:02,450 Kòd nan pwogram nan login yo wè sa ki mal. 844 00:50:02,450 --> 00:50:04,220 Ou pa t 'kapab menm gade nan la sous Kòd la du a 845 00:50:04,220 --> 00:50:06,790 yo wè sa ki mal. 846 00:50:06,790 --> 00:50:11,940 >> Ou ta bezwen gade machin nan Kòd, binè aktyèl la nan la 847 00:50:11,940 --> 00:50:16,760 konpile du yo wè, rete tann, sa yo liy nan Kòd pa ta dwe isit la. 848 00:50:16,760 --> 00:50:22,130 Men, Ken Thompson pran l 'yon sèl etap plis, li di: byen, gen 849 00:50:22,130 --> 00:50:25,980 pwogram espesyal sa yo ki aktyèlman ede w li binè a nan pwogram yo, 850 00:50:25,980 --> 00:50:29,340 ak Se konsa, si yon moun te itilize ke pwogram nan li binè a, yo ta wè sa yo 851 00:50:29,340 --> 00:50:30,490 liy nan kòd. 852 00:50:30,490 --> 00:50:34,020 Li te modifye pwogram sa yo vle di, tout dwat, si w ap chèche a nan 853 00:50:34,020 --> 00:50:38,460 du, pa montre sa a an patikilye seri binè. 854 00:50:38,460 --> 00:50:42,830 >> Se konsa, Lè sa a, ou bezwen pran ke yon etap pli lwen ak fondamantalman, ki ta ka gen 855 00:50:42,830 --> 00:50:46,210 pran plizyè nivo indirection, ak nan kèk pwen, pa gen yon la aktyèlman 856 00:50:46,210 --> 00:50:47,990 yo pral tcheke. 857 00:50:47,990 --> 00:50:52,590 Se konsa, moral la nan istwa a se, w ap pa yo pral ekri 858 00:50:52,590 --> 00:50:54,340 Sonnen nan klas sa a. 859 00:50:54,340 --> 00:50:57,020 W ap ale nan dwe lè l sèvi avèk k ap grenpe Sonnen yon anpil nan klas sa a. 860 00:50:57,020 --> 00:51:00,490 Pou tout ou konnen, rezone se yon move pwogram ki sabote tout 861 00:51:00,490 --> 00:51:03,520 pwogram sèl ou janm konpile. 862 00:51:03,520 --> 00:51:08,206 Apre sa, yo kite ou sou sa trè menasan note, wè ou nan Mèkredi. 863 00:51:08,206 --> 00:51:10,030 >> [Aplodisman] 864 00:51:10,030 --> 00:51:12,935 >> Oratè 2: Nan CS50 nan pwochen an. 865 00:51:12,935 --> 00:51:14,580 >> Oratè 3: pa ou oze di sa. 866 00:51:14,580 --> 00:51:15,930 Ou ka fè sa. 867 00:51:15,930 --> 00:51:19,440 Ou te fè sa anvan, ou kapab fè sa a jodi a, ou ka fè sa denmen. 868 00:51:19,440 --> 00:51:20,930 Ou ve yo te fè sa pandan plizyè ane. 869 00:51:20,930 --> 00:51:22,790 Jis ale kanpe ak fè sa. 870 00:51:22,790 --> 00:51:24,310 Ou ka fè sa. 871 00:51:24,310 --> 00:51:26,102 >> [MIZIK jwe]