1 00:00:00,000 --> 00:00:02,970 >> [MIZIK jwe] 2 00:00:02,970 --> 00:00:14,355 3 00:00:14,355 --> 00:00:15,700 >> DAVID J. Malan: Tout dwa. 4 00:00:15,700 --> 00:00:18,832 Sa a se CS50 ak sa a se kòmansman an nan Semèn 2. 5 00:00:18,832 --> 00:00:21,040 Men, ou pral sonje ke plis pase koup ki sot pase a semèn, 6 00:00:21,040 --> 00:00:24,490 nou ve yo te entwodwi òdinatè syans ak, nan vire, pwogramasyon. 7 00:00:24,490 --> 00:00:27,640 >> Apre sa, nou te kòmanse istwa a pa fason pou Grafouyen, ke lang grafik 8 00:00:27,640 --> 00:00:28,990 soti nan Laboratwa Media MIT'S. 9 00:00:28,990 --> 00:00:30,780 Lè sa a, pi resamman, semèn pase a, te fè nou 10 00:00:30,780 --> 00:00:34,450 prezante yon higher-- yon lang pi ba nan nivo li te ye 11 00:00:34,450 --> 00:00:36,770 kòm C, yon bagay sa a, se piman textuelle. 12 00:00:36,770 --> 00:00:39,440 Epi, tout bon, dènye fwa nou eksplore nan yon kontèks ki 13 00:00:39,440 --> 00:00:40,450 yon kantite konsèp. 14 00:00:40,450 --> 00:00:43,010 >> Sa a, sonje, te trè a premye pwogram nou te gade. 15 00:00:43,010 --> 00:00:45,710 Apre sa, pwogram sa a, byen tou senpleman, simagri soti, "hello, nan lemonn." 16 00:00:45,710 --> 00:00:47,730 Men, gen nan anpil sanblans majik pral sou. 17 00:00:47,730 --> 00:00:51,460 Genyen # enkli sa a ak sa yo parantèz ang. 18 00:00:51,460 --> 00:00:52,170 Genyen Int. 19 00:00:52,170 --> 00:00:53,020 Genyen (san valè). 20 00:00:53,020 --> 00:00:56,330 Genyen parantèz, aparèy òtopedik Curly, semi-kolon, ak anpil plis. 21 00:00:56,330 --> 00:00:58,480 >> Se konsa, sonje ke nou prezante Scratch 22 00:00:58,480 --> 00:01:02,110 pou nou te kapab, depreferans, wè sot pase ki sentaks, bagay la sa a, se vrèman pa 23 00:01:02,110 --> 00:01:04,590 tout sa ki entelektyèlman enteresan, men byen bonè nan 24 00:01:04,590 --> 00:01:07,700 se, absoliman, yon ti jan difisil yo vlope tèt ou alantou. 25 00:01:07,700 --> 00:01:10,860 Epi, tout bon, yon sèl nan ki pi komen bagay byen bonè nan nan yon klas pwogram, 26 00:01:10,860 --> 00:01:13,443 espesyalman pou moun mwens konfòtab, se debarase fristre pa 27 00:01:13,443 --> 00:01:17,460 ak trebiche moute pa sèten Massachusetts Institute of Technology erè, nou pa mansyone erè lojik. 28 00:01:17,460 --> 00:01:19,800 Se konsa, nan mitan objektif nou jodi a, aktyèlman, yo pral 29 00:01:19,800 --> 00:01:23,280 gen nan ekipe ou ak kèk teknik pou rezoud pwoblèm pou konbyen 30 00:01:23,280 --> 00:01:26,705 nan pi bon rezoud pwoblèm tèt yo nan fòm lan nan debogaj. 31 00:01:26,705 --> 00:01:29,330 Men, ou pral sonje, tou, ki nan anviwònman ki nou prezante 32 00:01:29,330 --> 00:01:31,780 te dènye fwa rele CS50 IDE. 33 00:01:31,780 --> 00:01:34,850 Sa a se lojisyèl ki baze sou wèb ki pèmèt ou nan pwogram nan yon nwaj, 34 00:01:34,850 --> 00:01:38,450 se konsa pale, pandan y ap kenbe tout nan ou dosye ansanm, menm jan nou ankò pral jodi a. 35 00:01:38,450 --> 00:01:41,480 Apre sa, sonje ke nou revize sijè sa yo isit la, 36 00:01:41,480 --> 00:01:44,480 nan mitan yo fonksyon, ak pasan, ak varyab, ak ekspresyon Boolean, 37 00:01:44,480 --> 00:01:45,110 ak kondisyon. 38 00:01:45,110 --> 00:01:49,190 Ak aktyèlman yon tijan plis ke nou tradui soti nan mond lan nan Scratch 39 00:01:49,190 --> 00:01:50,800 nan mond lan nan C. 40 00:01:50,800 --> 00:01:53,220 >> Men, bilding lan fondamantal blòk, se konsa pale, 41 00:01:53,220 --> 00:01:55,150 te reyèlman toujou menm bagay semèn ki sot pase. 42 00:01:55,150 --> 00:01:57,900 An reyalite, nou vrèman jis te gen yon diferan moso devinèt, si ou pral. 43 00:01:57,900 --> 00:02:00,300 Olye pou yo ki koulè wouj violèt sove blòk, nou olye 44 00:02:00,300 --> 00:02:02,940 te printf, ki se fonksyon sa a nan C ki 45 00:02:02,940 --> 00:02:05,890 pèmèt ou enprime yon bagay ak fòma l 'sou ekran an. 46 00:02:05,890 --> 00:02:07,950 Nou prezante CS50 nan Bibliyotèk, kote ou 47 00:02:07,950 --> 00:02:11,420 gen kounye a nan get_char jete ou, ak get_int, ak get_string, 48 00:02:11,420 --> 00:02:14,610 ak kèk lòt fonksyon kòm byen, via ki ou ka jwenn D ' 49 00:02:14,610 --> 00:02:16,260 soti nan pwòp klavye itilizatè a la. 50 00:02:16,260 --> 00:02:20,640 Apre sa, nou menm tou nou te pran yon gade nan bagay sa yo tankou bouleen these-, ak Char, 51 00:02:20,640 --> 00:02:22,490 ak doub, flote, int, long_long fisèl. 52 00:02:22,490 --> 00:02:25,170 Apre sa, nan menm lòt kalite done nan C. 53 00:02:25,170 --> 00:02:28,560 >> Nan lòt mo, lè ou deklare yon varyab nan magazen kèk valè, 54 00:02:28,560 --> 00:02:32,600 oswa lè ou aplike yon fonksyon ki retounen kèk valè, 55 00:02:32,600 --> 00:02:35,290 ou ka presize ki sa di ki kalite valè se sa ki. 56 00:02:35,290 --> 00:02:37,310 Èske se yon fisèl, tankou yon sekans nan karaktè? 57 00:02:37,310 --> 00:02:39,490 Èske se yon nimewo, tankou yon nonb antye relatif? 58 00:02:39,490 --> 00:02:41,390 Èske se yon pwen k ap flote valè, oswa tankou an? 59 00:02:41,390 --> 00:02:46,180 Se konsa, nan C, kontrèman ak grafouyen, nou aktyèlman yo te kòmanse presize ki kalite done 60 00:02:46,180 --> 00:02:48,330 nou te retounen oswa lè l sèvi avèk. 61 00:02:48,330 --> 00:02:51,910 >> Men, nan kou, nou menm tou li pran kouri nan kèk limit fondamantal nan informatique. 62 00:02:51,910 --> 00:02:54,100 Ak nan patikilye, sa a ak lang C, sonje 63 00:02:54,100 --> 00:02:57,070 ke nou te pran yon gade nan nonb antye relatif debòde, reyalite a 64 00:02:57,070 --> 00:03:00,460 ke si ou gen sèlman yon fini kantite lajan nan memwa 65 00:03:00,460 --> 00:03:04,600 oswa, espesyalman, yon PO fini nan Bits, ou ka sèlman konte tèlman wo. 66 00:03:04,600 --> 00:03:08,460 Se konsa, nou gade egzanp sa a isit la kijan yon vann san preskripsyon nan yon avyon,, 67 00:03:08,460 --> 00:03:13,510 aktyèlman, si kouri lontan ase ta debòde ak rezilta nan yon lojisyèl 68 00:03:13,510 --> 00:03:15,560 yon vrè fizik erè potansyèl yo. 69 00:03:15,560 --> 00:03:18,600 >> Nou menm tou nou gade k ap flote pwen enpresizyon, reyalite a 70 00:03:18,600 --> 00:03:22,280 ke ak sèlman yon kantite fini nan Bits, si li nan 32 oswa 64, 71 00:03:22,280 --> 00:03:27,330 ou ka sèlman presize nimewo anpil apre yon pwen desimal, apre yo fin kote ou 72 00:03:27,330 --> 00:03:29,110 kòmanse jwenn enpresizyon. 73 00:03:29,110 --> 00:03:32,360 Se konsa, pou egzanp, yon sèl-twazyèm nan la mond isit la, nan mond imen nou an, 74 00:03:32,360 --> 00:03:35,360 nou konnen se jis yon nonb infini nan 3s apre pwen an desimal. 75 00:03:35,360 --> 00:03:38,820 Men, yon òdinatè pa kapab nesesèman reprezante yon nonb infini nan nimewo 76 00:03:38,820 --> 00:03:42,590 si ou sèlman pèmèt li kèk fini kantite lajan pou enfòmasyon. 77 00:03:42,590 --> 00:03:45,900 >> Se konsa, pa sèlman te fè nou ekipe ou ak pi gwo pouvwa an tèm 78 00:03:45,900 --> 00:03:49,280 nan ki jan ou ta ka eksprime tèt ou nan yon klavye an tèm de pwogram, 79 00:03:49,280 --> 00:03:51,430 nou menm tou nou limite sa ou ka aktyèlman fè. 80 00:03:51,430 --> 00:03:55,790 Ak tout bon, pinèz ak erè kapab leve soti nan kalite sa yo ki nan pwoblèm. 81 00:03:55,790 --> 00:03:59,900 Ak tout bon, nan mitan sijè yo jodi a yo ale nan dwe sijè tankou debogaj 82 00:03:59,900 --> 00:04:03,699 ak aktyèlman kap anba kapo a nan ki jan bagay sa yo Yo te vin entwodwi semèn pase a 83 00:04:03,699 --> 00:04:05,490 yo aktyèlman aplike pou ke ou pi bon 84 00:04:05,490 --> 00:04:10,530 konprann tou de kapasite yo nan ak limit yo nan yon lang tankou C. 85 00:04:10,530 --> 00:04:14,770 >> Men, an reyalite, nou pral kale tounen kouch yo nan pi senp la nan estrikti done, 86 00:04:14,770 --> 00:04:17,756 yon bagay yo rele yon etalaj, ki Grafouyen k ap pase yo rele yon "lis." 87 00:04:17,756 --> 00:04:19,589 Li yon ti jan ti kras diferan nan yon kontèks sa. 88 00:04:19,589 --> 00:04:23,340 Lè sa a, nou pral tou entwodui youn nan la premye nan pwoblèm domèn ki espesifik nou an 89 00:04:23,340 --> 00:04:26,790 nan CS50, mond lan nan chifreman, atizay la nan eskalade 90 00:04:26,790 --> 00:04:29,650 oswa nan chifreman enfòmasyon se konsa ke ou ka voye mesaj sekrè 91 00:04:29,650 --> 00:04:34,520 ak dekode mesaj sekrè ant de moun, A ak B. 92 00:04:34,520 --> 00:04:37,490 >> Se konsa, anvan nou tranzisyon ak sa yo ki mond nouvo, 93 00:04:37,490 --> 00:04:42,059 kite a eseye ekipe ou ak kèk teknik ak kote ou ka elimine 94 00:04:42,059 --> 00:04:43,850 oswa diminye omwen kèk nan fristrasyon yo 95 00:04:43,850 --> 00:04:46,630 ke ou te pwobableman rankontre sou semèn ki sot pase a pou kont li. 96 00:04:46,630 --> 00:04:50,830 An reyalite, devan yo nan w ap such-- kèk nan pwoblèm premye fwa ou nan C. Epi chans yo se, 97 00:04:50,830 --> 00:04:54,010 si w ap tankou m ', premye fwa a ou eseye tape soti yon pwogram, 98 00:04:54,010 --> 00:04:57,330 menm si ou panse lojikman pwogram nan se trè senp, 99 00:04:57,330 --> 00:05:01,200 ou ta ka trè byen frape yon miray, ak du a a pa pral kolabore. 100 00:05:01,200 --> 00:05:03,940 Fè oswa rezone pa pral ki aktyèlman fè òf ou yo. 101 00:05:03,940 --> 00:05:05,450 >> Epi poukisa ke sa ta kapab? 102 00:05:05,450 --> 00:05:07,950 Oke, kite la pran yon gade nan, petèt, yon pwogram ki senp. 103 00:05:07,950 --> 00:05:11,190 Mwen pral ale pi devan epi sove sa a nan yon dosye fè espre rele buggy0.c, 104 00:05:11,190 --> 00:05:13,590 paske mwen konnen li nan dwe defekte an davans. 105 00:05:13,590 --> 00:05:17,400 Men, mwen pa ta ka reyalize ke si sa a se pwogram nan premye oubyen dezyèm oswa yon twazyèm 106 00:05:17,400 --> 00:05:18,830 ke mwen aktyèlman fè tèt mwen. 107 00:05:18,830 --> 00:05:23,820 Se konsa, mwen pral ale pi devan ak tape soti, int prensipal (san valè). 108 00:05:23,820 --> 00:05:28,130 Lè sa a, andedan nan aparèy òtopedik Curly mwen, yon trè abitye ( "hello, world-- 109 00:05:28,130 --> 00:05:30,980 antislach, n ") - ak yon semi-kolon. 110 00:05:30,980 --> 00:05:32,360 >> Mwen te sove dosye a. 111 00:05:32,360 --> 00:05:34,850 Koulye a, mwen pral ale desann bò fennèt tèminal m ' 112 00:05:34,850 --> 00:05:40,340 ak kalite fè buggy0, paske, ankò, non an nan dosye a jodi a se buggy0.c. 113 00:05:40,340 --> 00:05:43,660 Se konsa, mwen tape fè buggy0, Antre nan. 114 00:05:43,660 --> 00:05:48,200 >> Epi, oh, bondye papa, sonje soti nan dènye fwa ke pa gen okenn mesaj erè se yon bon bagay. 115 00:05:48,200 --> 00:05:49,740 Se konsa, pa gen okenn pwodiksyon se yon bon bagay. 116 00:05:49,740 --> 00:05:52,920 Men, isit la mwen gen klèman kèk kantite erè. 117 00:05:52,920 --> 00:05:56,470 >> Se konsa, liy lan premye nan pwodiksyon apre sezisman fè buggy0, sonje, 118 00:05:56,470 --> 00:05:59,540 se pwodiksyon san patipri sil rezone a. 119 00:05:59,540 --> 00:06:02,067 Anba kapo machin lan, se CS50 IDE configuré 120 00:06:02,067 --> 00:06:04,150 yo sèvi ak yon pakèt antye nan opsyon ak sa a du 121 00:06:04,150 --> 00:06:05,941 pou ke ou pa gen yo reflechi sou yo. 122 00:06:05,941 --> 00:06:08,840 Epi sa a, tout sa ki premye liy vle di ke kòmanse ak sonnen. 123 00:06:08,840 --> 00:06:11,720 >> Men, apre sa, pwoblèm sa yo kòmanse fè aparans yo. 124 00:06:11,720 --> 00:06:17,390 Buggy0.c sou liy 3, pèsonaj 5, gen yon gwo, wouj erè. 125 00:06:17,390 --> 00:06:18,380 Kisa sa ye? 126 00:06:18,380 --> 00:06:23,562 Chal deklare fonksyon bibliyotèk printf ak kalite int (konstitisyon Char *, 127 00:06:23,562 --> 00:06:26,050 ...) [Werror-]. 128 00:06:26,050 --> 00:06:28,379 Mwen vle di, li trè byen vit vin trè Esoteric. 129 00:06:28,379 --> 00:06:30,170 Epi sètènman, nan premye gade, nou pa t 'vle 130 00:06:30,170 --> 00:06:32,380 atann ou a konprann nan antye nan ki mesaj. 131 00:06:32,380 --> 00:06:34,213 Se konsa, youn nan leson yo pou jodi a ki pral 132 00:06:34,213 --> 00:06:36,919 yo dwe pou yo eseye remake menm modèl yo, oswa bagay sa yo ki similè yo, 133 00:06:36,919 --> 00:06:38,960 nan erè ou ta ka genyen rankontre nan tan lontan an. 134 00:06:38,960 --> 00:06:41,335 Se konsa nou toumante apa sèlman mo sa yo ki gade yo konnen yo. 135 00:06:41,335 --> 00:06:44,290 gwo, wouj Erè nan se byen klè senbolik nan yon bagay ke yo te sa ki mal. 136 00:06:44,290 --> 00:06:47,940 >> chal deklare bibliyotèk fonksyon printf. 137 00:06:47,940 --> 00:06:51,680 Se konsa, menm si mwen pa byen konprann sa chal deklare fonksyon bibliyotèk 138 00:06:51,680 --> 00:06:54,900 vle di, pwoblèm nan siman gen rapò ak printf yon jan kanmenm. 139 00:06:54,900 --> 00:06:59,130 Apre sa, sous la nan ke pwoblèm te fè ak deklare li. 140 00:06:59,130 --> 00:07:02,440 >> Deklare yon fonksyon se mansyone li pou premye fwa. 141 00:07:02,440 --> 00:07:06,210 Apre sa, nou itilize tèminoloji a semèn pase a nan deklare pwototip yon fonksyon a, 142 00:07:06,210 --> 00:07:11,860 swa ak yon sèl liy nan tèt la nan ou pwòp dosye w la oubyen nan yon sa yo rele dosye header. 143 00:07:11,860 --> 00:07:15,300 Ak nan sa dosye te fè nou di semèn pase a ke printf se quote, 144 00:07:15,300 --> 00:07:17,080 unquote, te deklare? 145 00:07:17,080 --> 00:07:20,950 Nan ki dosye se pwototip li yo? 146 00:07:20,950 --> 00:07:24,640 >> Se konsa, si ou sonje, trè premye bagay la mwen tape, prèske chak pwogram dènye time-- 147 00:07:24,640 --> 00:07:30,790 ak aksidantèlman yon ti moman de sa te kòmanse sezisman moi te sa a isit lan-- youn 148 00:07:30,790 --> 00:07:38,630 regle # enkli 00:07:41,860 si mwen kounye a sove sa a ranpli, mwen pral ale pi devan epi klè ekran m 'yo, 150 00:07:41,860 --> 00:07:44,740 ki ou ka fè lè ou tape Klè, oswa ou ka kenbe kontwòl L, 151 00:07:44,740 --> 00:07:47,680 jis klè fenèt tèminal ou jis elimine kèk dezord. 152 00:07:47,680 --> 00:07:51,370 >> Mwen pral ale pi devan epi re-kalite fè buggy0, Antre nan. 153 00:07:51,370 --> 00:07:53,790 Ak vwala, mwen toujou wè ke lontan lòd soti nan rezone, 154 00:07:53,790 --> 00:07:55,470 men gen nan pa gen mesaj erè moman sa a. 155 00:07:55,470 --> 00:07:58,800 Ak tout bon, si m 'fè ./buggy0, jis tankou dènye fwa, 156 00:07:58,800 --> 00:08:01,860 kote dot vle di sa a anyè, koupe jis vle di, 157 00:08:01,860 --> 00:08:05,040 isit la vini non an nan pwogram nan epi ke non nan pwogram lan se buggy0, 158 00:08:05,040 --> 00:08:07,340 Antre, "hello, nan lemonn." 159 00:08:07,340 --> 00:08:09,440 >> Koulye a, ki jan ou ta ka genyen rete ranmase grap lòj sa a solisyon 160 00:08:09,440 --> 00:08:12,017 san yo pa nesesèman rekonèt kòm anpil mo 161 00:08:12,017 --> 00:08:14,350 jan mwen te fè, sètènman, li te gen fè sa pou anpil ane? 162 00:08:14,350 --> 00:08:18,720 Oke, reyalize pou chak pwoblèm nan premye seri, nou entwodui ou nan yon lòd 163 00:08:18,720 --> 00:08:21,175 ke anplwaye pwòp CS50 nan te ekri rele help50. 164 00:08:21,175 --> 00:08:24,300 Ak tout bon, C fè spesifikasyon pou pwoblèm nan mete ki di kòman yo sèvi ak sa a. 165 00:08:24,300 --> 00:08:27,210 >> Men, help50 se esansyèlman yon pwogram ki anplwaye CS50 nan 166 00:08:27,210 --> 00:08:30,850 te ekri ki pèmèt ou kouri yon lòd oswa kouri nan yon pwogram, 167 00:08:30,850 --> 00:08:36,169 epi si ou pa konprann li yo pwodiksyon, yo pase pwodiksyon li nan help50, 168 00:08:36,169 --> 00:08:38,890 nan ki pwen lojisyèl an ke anplwaye kou a nan te ekri 169 00:08:38,890 --> 00:08:42,429 pral gade nan pwodiksyon pwogram ou an liy pa liy, pèsonaj pa karaktè. 170 00:08:42,429 --> 00:08:46,000 Men, si nou, anplwaye a, rekonèt nan mesaj erè ke w ap fè eksperyans, 171 00:08:46,000 --> 00:08:50,580 nou pral eseye fè nou ak kèk kesyon retorisyen, ak kèk konsèy, 172 00:08:50,580 --> 00:08:54,890 anpil tankou yon TF oswa yon CA oswa tèt mwen ta fè an pèsòn nan lè biwo. 173 00:08:54,890 --> 00:08:58,320 >> Se konsa, gade nan help50 si ou pa fè sa nesesèman rekonèt yon pwoblèm. 174 00:08:58,320 --> 00:09:00,790 Men, pa konte sou li twòp kòm yon beki. 175 00:09:00,790 --> 00:09:03,990 Sètènman eseye konprann li yo pwodiksyon ak Lè sa a aprann nan men li 176 00:09:03,990 --> 00:09:07,571 se konsa ke yon sèl fwa oswa de fwa ou janm kouri help50 pou yon erè patikilye 177 00:09:07,571 --> 00:09:08,070 mesaj. 178 00:09:08,070 --> 00:09:10,660 Apre sa, ou ta dwe pi byen ekipe tèt ou 179 00:09:10,660 --> 00:09:13,180 eseye figi konnen ki sa li aktyèlman se. 180 00:09:13,180 --> 00:09:14,350 >> Se pou yo fè yon lòt isit la. 181 00:09:14,350 --> 00:09:20,410 Kite m 'ale pi devan, ak nan yon lòt dosye nou pral rele buggy1.c sa a. 182 00:09:20,410 --> 00:09:23,110 Ak nan sa a ranpli mwen se ale nan deliberately-- 183 00:09:23,110 --> 00:09:26,330 men pretann ke mwen pa fè sa konprann ki sa erè mwen te fè fè yo. 184 00:09:26,330 --> 00:09:31,420 >> Mwen pral ale pi devan epi fè sa a men # enkli, depi mwen te 185 00:09:31,420 --> 00:09:33,660 aprann leson mwen yo ki nan yon ti moman de sa. 186 00:09:33,660 --> 00:09:36,220 Int prensipal (san valè), tankou anvan. 187 00:09:36,220 --> 00:09:40,880 Lè sa a, nan isit la, mwen pral fè fisèl la - get_string. 188 00:09:40,880 --> 00:09:43,770 Apre sa, sonje soti nan dènye fwa ki sa a vle di, hey, òdinatè, 189 00:09:43,770 --> 00:09:48,280 ban m 'yon varyab, rele li s, ak fè ki kalite varyab sa yon afè 190 00:09:48,280 --> 00:09:50,150 Se konsa, mwen ka magazen youn oswa plis mo nan li. 191 00:09:50,150 --> 00:09:52,191 >> Lè sa a, sou bò dwat- bò nan siy ki egal 192 00:09:52,191 --> 00:09:54,980 se get_string, ki se yon fonksyon nan bibliyotèk la CS50 193 00:09:54,980 --> 00:09:55,980 ki fè egzakteman sa. 194 00:09:55,980 --> 00:09:59,740 Li vin yon fonksyon ak Lè sa a men li de dwat a gòch. 195 00:09:59,740 --> 00:10:02,670 Se konsa, sa siy egal pa vle di "Egal" kòm nou ta ka panse nan matematik. 196 00:10:02,670 --> 00:10:04,750 Sa vle di plasman de dwat a gòch. 197 00:10:04,750 --> 00:10:09,640 Se konsa, sa vle di, pran fisèl la soti nan itilizatè a ak magazen li andedan nan la. 198 00:10:09,640 --> 00:10:10,460 >> Koulye a, kite a sèvi ak li. 199 00:10:10,460 --> 00:10:13,820 Kite m 'ale pi devan kounye a epi kòm yon dezyèm liy, kite m 'ale pi devan epi di "alo" - 200 00:10:13,820 --> 00:10:19,330 pa "mond,", men "hello,% s-- ki se kontneur nou an, vigil la, 201 00:10:19,330 --> 00:10:22,030 ki se varyab nou an, ak Lè sa a yon semi-kolon. 202 00:10:22,030 --> 00:10:26,070 Se konsa, si mwen pa t 'vis moute nan twòp isit la, sa a sanble kòrèk kòd. 203 00:10:26,070 --> 00:10:28,090 >> Apre sa, ensten mwen an kounye a yo dwe konpile li. 204 00:10:28,090 --> 00:10:30,400 Se dosye a rele buggy1.c. 205 00:10:30,400 --> 00:10:33,770 Se konsa, mwen pral fè fè buggy1, Antre nan. 206 00:10:33,770 --> 00:10:36,377 Apre sa, reprize-li, si gen se pa menm plis erè pase anvan. 207 00:10:36,377 --> 00:10:38,210 Mwen vle di, gen nan plis mesaj erè li ta 208 00:10:38,210 --> 00:10:40,400 sanble pase liy aktyèl nan pwogram sa a. 209 00:10:40,400 --> 00:10:42,730 >> Men, Takeaway a isit la se, menm si w ap akable 210 00:10:42,730 --> 00:10:45,040 ak de oswa twa oswa kat plis mesaj erè, 211 00:10:45,040 --> 00:10:48,340 konsantre toujou sou trè a premye nan sa yo mesaj. 212 00:10:48,340 --> 00:10:52,220 Gade nan tèt-pi yonn si l defile tounen moute kòm bezwen dwe. 213 00:10:52,220 --> 00:10:53,930 Se konsa, isit la mwen tape fè buggy1. 214 00:10:53,930 --> 00:10:55,700 Isit la nan ke pwodiksyon rezone jan yo espere. 215 00:10:55,700 --> 00:10:57,290 >> Ak isit la nan premye erè a wouj. 216 00:10:57,290 --> 00:11:02,370 Sèvi ak nan sekrè idantifyan fisèl, t 'mwen vle di estanda nan? 217 00:11:02,370 --> 00:11:04,260 Se konsa, estanda nan se aktyèlman yon lòt bagay. 218 00:11:04,260 --> 00:11:06,240 Li refere a nan nan itilizatè entènèt klavye, esansyèlman. 219 00:11:06,240 --> 00:11:08,080 >> Men, sa a pa sa m 'vle di. 220 00:11:08,080 --> 00:11:11,770 M te vle di fisèl, ak mwen vle di get_string. 221 00:11:11,770 --> 00:11:16,200 Se konsa, sa se li ke mwen bliye fè tan sa a? 222 00:11:16,200 --> 00:11:20,230 Ki sa ki nan manke moman sa a? 223 00:11:20,230 --> 00:11:23,600 Mwen gen # enkli m 'yo, Se konsa, mwen gen aksè a printf. 224 00:11:23,600 --> 00:11:26,090 >> Men, sa ki mwen pa gen aksè a jis ankò? 225 00:11:26,090 --> 00:11:29,420 Oke, jis tankou dènye fwa, Mwen bezwen di du a 226 00:11:29,420 --> 00:11:31,691 Sonnen sa fonksyon sa yo ye. 227 00:11:31,691 --> 00:11:33,940 Get_string pa vini ak C. Ak nan patikilye, li 228 00:11:33,940 --> 00:11:38,160 pa vini nan nan header ranpli,. 229 00:11:38,160 --> 00:11:40,770 Li olye pou vini nan yon bagay anplwaye a te ekri, 230 00:11:40,770 --> 00:11:44,176 ki se yon dosye diferan non men justesse yo te rele. 231 00:11:44,176 --> 00:11:46,990 232 00:11:46,990 --> 00:11:50,861 >> Se konsa, tou senpleman pa pandan l ajoute ke yon sèl liy nan sonje code-- soti nan dènye fwa 233 00:11:50,861 --> 00:11:53,610 ke lè rezone kouri, li k ap pase fè yon gade nan tèt kòd m 'jouk anba, 234 00:11:53,610 --> 00:11:54,193 gòch a dwat. 235 00:11:54,193 --> 00:11:57,200 Li k ap pase a yon avi, oh, ou vle. 236 00:11:57,200 --> 00:11:59,900 Kite m 'ale ak jwenn ke, tout kote li se sou sèvè a, 237 00:11:59,900 --> 00:12:03,090 kopi epi kole li, esansyèlman, nan tèt la nan dosye pwòp ou a 238 00:12:03,090 --> 00:12:06,820 se konsa ke nan pwen sa a nan istwa a, liy 1, rès la nan pwogram nan 239 00:12:06,820 --> 00:12:11,651 ka, tout bon, sèvi ak nenpòt nan fonksyon yo ladan l ', nan mitan yo get_string. 240 00:12:11,651 --> 00:12:13,650 Se konsa, mwen ale nan inyore rès la nan erè sa yo, 241 00:12:13,650 --> 00:12:17,190 paske mwen, tout bon, sispèk ke se sèlman youn nan premye aktyèlman konte. 242 00:12:17,190 --> 00:12:20,780 Men, mwen pral ale pi devan epi relance, apre ekonomize dosye mwen fè buggy1. 243 00:12:20,780 --> 00:12:22,580 Apre sa, vwala, li te fè travay. 244 00:12:22,580 --> 00:12:29,200 Men, si m 'fè ./buggy1 ak kalite nan, pou egzanp, Zamyla, mwen kounye a pral jwenn hello, 245 00:12:29,200 --> 00:12:32,000 Zamyla, olye pou yo hello, nan lemonn. 246 00:12:32,000 --> 00:12:32,550 >> Tout dwa. 247 00:12:32,550 --> 00:12:35,890 Se konsa, takeaways yo isit la Lè sa a, yo dwe, yon sèl, eseye ranmase kòm anpil jan ou kapab 248 00:12:35,890 --> 00:12:39,140 soti nan mesaj yo erè pou kont li, kap nan kèk nan mo sa yo rekonèt. 249 00:12:39,140 --> 00:12:43,070 Anpeche sa, sèvi ak help50 pou chak pwoblèm nan mete spesifikasyon. 250 00:12:43,070 --> 00:12:46,500 Men, anpeche sa, tou, toujou gade nan erè nan tèt sèlman, omwen 251 00:12:46,500 --> 00:12:50,051 okòmansman, yo wè sa ki enfòmasyon li ta ka aktyèlman sede. 252 00:12:50,051 --> 00:12:52,300 Men, li vire yo deyò nan menm plis fonctionnalités bati 253 00:12:52,300 --> 00:12:55,030 nan bibliyotèk la CS50 ede ou byen bonè nan nan semès la 254 00:12:55,030 --> 00:12:57,580 ak byen bonè nan nan pwogram figi konnen sa k ap pase sa ki mal. 255 00:12:57,580 --> 00:12:59,840 Se konsa, kite a fè yon lòt egzanp isit la. 256 00:12:59,840 --> 00:13:04,350 Mwen pral rele buggy2 sa a, ki, ankò, yo pral defekte soti 257 00:13:04,350 --> 00:13:05,650 nan pòtay lavil la, pa konsepsyon. 258 00:13:05,650 --> 00:13:09,980 >> Apre sa, mwen pral ale pi devan ak fè # enkli. 259 00:13:09,980 --> 00:13:12,580 Lè sa a, mwen pral fè int prensipal (san valè). 260 00:13:12,580 --> 00:13:14,840 Lè sa a, mwen pral fè yon pou riban. 261 00:13:14,840 --> 00:13:16,690 Pou (int mwen _ 0. 262 00:13:16,690 --> 00:13:18,750 mwen se mwens pase oswa egal a 10. 263 00:13:18,750 --> 00:13:24,260 mwen ++, ak Lè sa an aparèy òtopedik Curly, mwen pral ekri ak lèt ​​detache soti jis yon senbòl hashtag isit la 264 00:13:24,260 --> 00:13:25,920 ak yon karaktè liy nouvo. 265 00:13:25,920 --> 00:13:29,220 >> Se konsa, entansyon m 'ak sa a pwogram se byen tou senpleman 266 00:13:29,220 --> 00:13:33,150 repekte 10 fwa epi sou chak iterasyon 267 00:13:33,150 --> 00:13:35,260 nan ki bouk chak fwa nan sik la, 268 00:13:35,260 --> 00:13:37,660 enprime soti yon hashtag, yon hashtag, se yon hashtag. 269 00:13:37,660 --> 00:13:40,480 Youn pou chak liy paske mwen gen liy nan nouvo a. 270 00:13:40,480 --> 00:13:42,787 Apre sa, sonje ke nan pou riban, pou chak week-- dènye 271 00:13:42,787 --> 00:13:44,620 epi ou pral jwenn plis abitye avèk sentaks la 272 00:13:44,620 --> 00:13:47,170 lè l sèvi avèk l 'ak pratik anvan long-- sa a ki ban m ' 273 00:13:47,170 --> 00:13:49,740 yon varyab rele mwen epi li kouche l 'bay 0. 274 00:13:49,740 --> 00:13:52,650 >> Sa a ogmantasyon mwen sou chak iterasyon pa 1. 275 00:13:52,650 --> 00:13:54,940 Se konsa, mwen ale nan 1 rive nan 2 a 3. 276 00:13:54,940 --> 00:13:57,690 Lè sa a, kondisyon sa a nan la mitan ant semi-kolon yo 277 00:13:57,690 --> 00:14:03,010 vin tcheke sou chak iterasyon fè asire w ke nou yo toujou nan ranje. 278 00:14:03,010 --> 00:14:06,830 Se konsa, mwen vle repekte 10 fwa, se konsa mwen gen sòt de trè entwitif jis 279 00:14:06,830 --> 00:14:09,070 mete 10 kòm mwen mare anwo a. 280 00:14:09,070 --> 00:14:14,310 >> E ankò, lè m 'kouri sa a, apre yo fin konpile l 'ak fè buggy2-- 281 00:14:14,310 --> 00:14:15,440 epi li konpile OK. 282 00:14:15,440 --> 00:14:17,980 Se konsa, mwen pa gen yon sentaks erè moman sa a. 283 00:14:17,980 --> 00:14:20,940 Kite m 'ale pi devan kounye a epi kouri buggy2, Antre nan. 284 00:14:20,940 --> 00:14:22,620 Epi, koulye a woulo liv yo. 285 00:14:22,620 --> 00:14:24,890 Ak kite m 'ogmante gwosè a nan fenèt la. 286 00:14:24,890 --> 00:14:33,720 >> Mwen sanble yo gen 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. 287 00:14:33,720 --> 00:14:38,891 Se konsa, gen nan 11 hashtags, menm si Mwen byen klè mete 10 andedan nan sa a bouk. 288 00:14:38,891 --> 00:14:42,140 Koulye a, kèk nan ou ta ka wè imedyatman sa erè a se paske, tout bon, sa a 289 00:14:42,140 --> 00:14:43,720 se pa yon erè trè difisil yo fè. 290 00:14:43,720 --> 00:14:46,070 Men, li la trè souvan te fè trè byen bonè nan. 291 00:14:46,070 --> 00:14:49,820 >> Ki sa mwen vle nan pwen soti, menm si, se, ki jan mwen ta ka figi sa a soti? 292 00:14:49,820 --> 00:14:52,300 Oke, li sanble ke Bibliyotèk la CS50 vini 293 00:14:52,300 --> 00:14:55,380 ak pa sèlman get_string ak get_int ak get_float ak lòt fonksyon. 294 00:14:55,380 --> 00:14:59,980 Li te tou vini ak yon fonksyon espesyal rele eprintf, oswa, erè printf. 295 00:14:59,980 --> 00:15:03,270 Apre sa, li egziste sèlman fè li yon ti jan ti kras pi fasil pou ou 296 00:15:03,270 --> 00:15:06,310 lè debogaj kòd ou a nan jis enprime yon mesaj erè sou ekran an 297 00:15:06,310 --> 00:15:07,850 ak konnen ki kote li te soti nan. 298 00:15:07,850 --> 00:15:11,000 >> Se konsa, pou egzanp, yon sèl bagay mwen ta ka fè isit la ak fonksyon sa a se sa a men 299 00:15:11,000 --> 00:15:20,230 eprintf, ak Lè sa mwen pral ale pi devan epi di m se kounye a% mwen, antislach, n. 300 00:15:20,230 --> 00:15:22,330 Men, mwen pral yo ploge nan valè a nan mwen. 301 00:15:22,330 --> 00:15:25,400 Apre sa, moute tèt, paske sa a se nan bibliyotèk la CS50, 302 00:15:25,400 --> 00:15:27,580 Mwen pral ale pi devan epi yo genyen ladan 303 00:15:27,580 --> 00:15:29,169 Se konsa, mwen gen aksè a sa a fonksyon. 304 00:15:29,169 --> 00:15:31,460 Men, kite a konsidere sa liy 9 se ta sipoze ap fè. 305 00:15:31,460 --> 00:15:32,670 Mwen pral efase sa a evantyèlman. 306 00:15:32,670 --> 00:15:34,670 Sa a pa gen anyen fè ak objektif toupatou m 'yo. 307 00:15:34,670 --> 00:15:39,090 Men, eprintf, erè printf, se jis vle di , ban m 'kèk enfòmasyon dyagnostik. 308 00:15:39,090 --> 00:15:42,460 Lè m 'kouri pwogram mwen, mwen vle wè sa a sou ekran an pou yon ti tan 309 00:15:42,460 --> 00:15:44,550 kòm byen jis yo konprann sa k pase. 310 00:15:44,550 --> 00:15:47,330 >> Epi, tout bon, sou chak iterasyon isit la nan liy 9 311 00:15:47,330 --> 00:15:49,260 Mwen vle wè, ki sa ki valè a nan mwen? 312 00:15:49,260 --> 00:15:50,290 Ki sa ki se valè a nan mwen? 313 00:15:50,290 --> 00:15:51,280 Ki sa ki se valè a nan mwen? 314 00:15:51,280 --> 00:15:55,650 Epi, èspere ke, mwen ta dwe sèlman wè ke mesaj, tou, 10 fwa. 315 00:15:55,650 --> 00:15:57,780 >> Se pou m 'ale pi devan epi compile pwogram mwen, 316 00:15:57,780 --> 00:15:59,905 jan mwen dwe fè nenpòt ki lè Mwen fè yon chanjman. ./buggy2. 317 00:15:59,905 --> 00:16:02,680 318 00:16:02,680 --> 00:16:03,640 Apre sa, now-- OK. 319 00:16:03,640 --> 00:16:04,820 Genyen yon anpil plis pral sou. 320 00:16:04,820 --> 00:16:07,610 Se pou m 'woulo liv moute nan yon fenèt menm pi gran. 321 00:16:07,610 --> 00:16:10,190 >> Men, ou pral wè ke chak nan hashtags a se toujou enprime. 322 00:16:10,190 --> 00:16:15,270 Men, nan ant chak nan yo se kounye a sa a pwodiksyon dyagnostik fòma jan sa a. 323 00:16:15,270 --> 00:16:17,960 Non a nan pwogram m 'isit la se buggy2. 324 00:16:17,960 --> 00:16:20,432 Non a nan dosye a se buggy2.c. 325 00:16:20,432 --> 00:16:24,080 Nimewo a liy ki soti nan ki sa a te enprime se liy 9. 326 00:16:24,080 --> 00:16:27,500 Lè sa a, a dwat a se sa ki nan mesaj erè ke mwen tann. 327 00:16:27,500 --> 00:16:30,701 >> Ak sa ki nan bèl sou sa a se ke koulye a, mwen pa bezwen nesesèman konte 328 00:16:30,701 --> 00:16:32,200 nan tèt mwen sa pwogram mwen ap travay. 329 00:16:32,200 --> 00:16:34,240 Mwen ka wè ke sou la premye iterasyon mwen se 0, 330 00:16:34,240 --> 00:16:39,420 Lè sa a, 1, Lè sa a, 2, Lè sa a, 3, Lè sa a, 4, Lè sa a, 5, Lè sa a, 6, Lè sa a, 7, Lè sa a, 8, Lè sa a, 9, Lè sa a, 331 00:16:39,420 --> 00:16:40,980 10. 332 00:16:40,980 --> 00:16:42,050 Se konsa, rete tann yon minit. 333 00:16:42,050 --> 00:16:43,740 Ki sa ki k ap pase sou isit la? 334 00:16:43,740 --> 00:16:48,190 Mwen toujou sanble yo dwe konte kòm gen entansyon jiska 10. 335 00:16:48,190 --> 00:16:50,550 >> Men, kote m te kòmanse? 336 00:16:50,550 --> 00:16:53,240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10. 337 00:16:53,240 --> 00:16:58,040 Se konsa, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- dwèt la 11yèm 338 00:16:58,040 --> 00:16:59,990 se indicative de pwoblèm nan. 339 00:16:59,990 --> 00:17:02,850 Mwen sanble yo gen konte mal nan bouk m 'yo. 340 00:17:02,850 --> 00:17:06,599 Olye ke ale 10 itérations, Mwen kòmanse nan 0, 341 00:17:06,599 --> 00:17:09,550 Mwen fini nan ak nan 10. 342 00:17:09,550 --> 00:17:12,030 Men, paske se, tankou yon òdinatè, Mwen kòmanse konte nan 0, 343 00:17:12,030 --> 00:17:15,250 Mwen ta dwe konte moute a, men se pa nan, 10. 344 00:17:15,250 --> 00:17:18,510 >> Se konsa, ranje a, mwen evantyèlman reyalize isit la, se youn nan de bagay sa yo. 345 00:17:18,510 --> 00:17:22,430 Mwen te kapab anpil tou senpleman di konte jiska mwens pase 10. 346 00:17:22,430 --> 00:17:27,260 Se konsa, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ki se, tout bon, kòrèk, 347 00:17:27,260 --> 00:17:28,900 menm si li son yon ti kras sa ki mal. 348 00:17:28,900 --> 00:17:35,070 Oswa mwen ta ka fè mwens pase oswa egal a 9, toutotan m'a kòmanse nan 0. 349 00:17:35,070 --> 00:17:40,056 Oswa si ou reyèlman pa renmen sa, ou ka konte moute nan 10 men kòmanse nan 1. 350 00:17:40,056 --> 00:17:41,680 Men, ankò, sa a jis se pa sa ki komen. 351 00:17:41,680 --> 00:17:43,977 Nan Programming kwake pa tèlman nan grafouyen 352 00:17:43,977 --> 00:17:45,810 men nan pwogram nan C ak lòt lang yo, 353 00:17:45,810 --> 00:17:47,670 tankou JavaScript ak Piton ak lòt moun, li nan 354 00:17:47,670 --> 00:17:49,880 jis trè komen pou diskisyon nou an binè 355 00:17:49,880 --> 00:17:53,450 jis kòmanse konte nan la pi ba nimewo ou kapab, ki se 0. 356 00:17:53,450 --> 00:17:53,950 Tout dwa. 357 00:17:53,950 --> 00:17:55,160 Se poutèt sa se eprintf. 358 00:17:55,160 --> 00:17:58,600 Epi ankò, kounye a ke mwen te kalkile konnen mwen pwoblèm, ak mwen pral pou tounen nan 0 359 00:17:58,600 --> 00:18:01,470 nan mwens pase 10, mwen pral yo ale nan ak efase eprintf. 360 00:18:01,470 --> 00:18:04,580 >> Li pa ta dwe gen lè m ' bato kòd m 'oswa soumèt kòd m' 361 00:18:04,580 --> 00:18:05,800 oswa montre li nan nenpòt lòt moun. 362 00:18:05,800 --> 00:18:07,980 Li nan vrèman jis vle di yo dwe itilize pou yon ti tan. 363 00:18:07,980 --> 00:18:11,650 Men koulye a, mwen te fiks sa a pwoblèm patikilye kòm byen. 364 00:18:11,650 --> 00:18:16,780 >> Oke, kite la fè yon sèl plis egzanp isit la ki mwen pral fwe moute jan sa a. 365 00:18:16,780 --> 00:18:22,850 Mwen pral ale pi devan epi # enkli. $ 50 366 00:18:22,850 --> 00:18:25,580 Apre sa, mwen pral ale pi devan ak # enkli. 367 00:18:25,580 --> 00:18:29,030 >> Men, mwen pral pou konsève pou sa a ranpli kòm buggy3.c. 368 00:18:29,030 --> 00:18:31,740 Apre sa, mwen pral ale pi devan ak deklare int prensipal (san valè). 369 00:18:31,740 --> 00:18:34,186 Lè sa a, andedan nan gen Mwen pral fè int mwen _ - 370 00:18:34,186 --> 00:18:36,435 Mwen vle aplike yon pwogram ak yon get_negative_int. 371 00:18:36,435 --> 00:18:39,146 372 00:18:39,146 --> 00:18:40,770 Sa a se pa yon fonksyon ki egziste ankò. 373 00:18:40,770 --> 00:18:42,870 Se konsa, nou ap ale nan aplike li nan jis yon moman. 374 00:18:42,870 --> 00:18:45,541 Men, nou ap ale nan wè poukisa li nan buggy nan premye pas. 375 00:18:45,541 --> 00:18:47,290 Ak yon lòt fwa mwen te vinn yon int soti nan itilizatè a, 376 00:18:47,290 --> 00:18:53,365 Mwen jis ale nan enprime% mwen se yon negatif nonb antye relatif, antislach, n, vigil, mwen. 377 00:18:53,365 --> 00:18:55,240 Nan lòt mo, tout mwen vle pwogram sa a fè 378 00:18:55,240 --> 00:18:58,000 se jwenn yon int negatif soti nan itilizatè a ak Lè sa a enprime soti 379 00:18:58,000 --> 00:18:59,980 ki sa yo ak sa yo se yon int negatif. 380 00:18:59,980 --> 00:19:02,080 >> Koulye a, mwen bezwen aplike fonksyon sa a. 381 00:19:02,080 --> 00:19:05,740 Se konsa, pita nan dosye mwen, mwen pral yo ale pi devan epi deklare yon fonksyon rele 382 00:19:05,740 --> 00:19:10,670 get_negative_int (san valè) - epi nou pral tounen vin jwenn ki sa sa liy vle di ankò 383 00:19:10,670 --> 00:19:18,790 nan yon n moment-- int; do-- fè n nan annapre printf se :. 384 00:19:18,790 --> 00:19:26,210 Lè sa a, mwen pral fè n - get_int, ak fè sa n pandan y ap gen plis pouvwa pase 0. 385 00:19:26,210 --> 00:19:28,310 Lè sa a, retounen n ;. 386 00:19:28,310 --> 00:19:31,730 >> Se konsa, gen nan yon anpil ap pase nan sa a, men pa youn nan ki nou pa t ' 387 00:19:31,730 --> 00:19:33,710 gade nan semèn pase a, omwen yon ti tan. 388 00:19:33,710 --> 00:19:36,980 Se konsa, sou liy 10 isit la mwen te deklare yon fonksyon rele get_negative_int, 389 00:19:36,980 --> 00:19:39,620 epi mwen te mete (san valè), nan parantèz, rezon ki fè la ke yo te sa a 390 00:19:39,620 --> 00:19:40,950 pa pran yon D '. 391 00:19:40,950 --> 00:19:42,910 Mwen pa pase anyen sa a fonksyon. 392 00:19:42,910 --> 00:19:44,690 Mwen jis ap resevwa yon bagay tounen soti nan li. 393 00:19:44,690 --> 00:19:47,270 >> Apre sa, sa m ap espere jwenn tounen se yon nonb antye relatif. 394 00:19:47,270 --> 00:19:50,040 Pa gen okenn kalite done nan C rele negative_int. 395 00:19:50,040 --> 00:19:52,880 Li nan jis int, se konsa li k ap pase yo dwe sou nou a asire w 396 00:19:52,880 --> 00:19:55,340 ke valè a sa a, se aktyèlman Retounen se pa sèlman yon int 397 00:19:55,340 --> 00:19:56,380 men tou se negatif. 398 00:19:56,380 --> 00:20:02,150 >> Sou liy 12 Mwen deklare yon varyab rele n ak fè li nan kalite int. 399 00:20:02,150 --> 00:20:07,500 Lè sa a, nan liy 13 a 18 mwen se fè yon bagay pandan y ap yon bagay ki vre. 400 00:20:07,500 --> 00:20:11,040 Mwen pral pi devan epi enprime N se, se kolon, ak Lè sa a yon espas, 401 00:20:11,040 --> 00:20:12,800 tankou yon èd memwa pou itilizatè a. 402 00:20:12,800 --> 00:20:16,410 >> Mwen Lè sa a, rele get_int ak estoke valè sa yo rele retounen li yo 403 00:20:16,410 --> 00:20:18,130 nan ki n varyab. 404 00:20:18,130 --> 00:20:22,600 Men, mwen pral kontinye ap fè sa a n pandan y ap gen plis pouvwa pase 0. 405 00:20:22,600 --> 00:20:27,960 Nan lòt mo, si itilizatè a ki ban m 'yon int e ke nonb ki se pi gran pase 0, 406 00:20:27,960 --> 00:20:31,180 èrgo, pozitif, mwen pral jis kenbe reprompting itilizatè a, 407 00:20:31,180 --> 00:20:37,160 kenbe reprompting, pa fòse yo kolabore ak ban m 'yon int negatif. 408 00:20:37,160 --> 00:20:41,640 >> Ak yon lòt fwa n se aktyèlman negative-- ta kwè itilizatè a finalman kalite -50, 409 00:20:41,640 --> 00:20:46,710 Lè sa a, sa a riban pandan y ap se pa vre paske -50 pa janm pi grannèg pase 0. 410 00:20:46,710 --> 00:20:51,140 Se konsa, nou kraze soti nan ki bouk lojikman epi retounen n. 411 00:20:51,140 --> 00:20:53,520 >> Men, gen nan yon lòt bagay mwen dwe fè. 412 00:20:53,520 --> 00:20:56,190 Apre sa, mwen ka senpleman fè sa pa w kopye e kole 413 00:20:56,190 --> 00:20:58,540 yon sèl liy nan kòd nan tèt la nan dosye a. 414 00:20:58,540 --> 00:21:01,630 Mwen bezwen anseye rezone, oswa pwomès yo rezone, 415 00:21:01,630 --> 00:21:04,630 klèman ke mwen pral, tout bon, ale epi mete an aplikasyon 416 00:21:04,630 --> 00:21:06,020 fonksyon sa a get_negative_int. 417 00:21:06,020 --> 00:21:07,674 Li ta ka jis pou pi ba nan dosye a. 418 00:21:07,674 --> 00:21:09,840 Yon fwa ankò, sonje ke rezone li bagay anwo jouk anba, 419 00:21:09,840 --> 00:21:12,330 gòch a dwat, se konsa ou pa kapab rele yon fonksyon si rezone 420 00:21:12,330 --> 00:21:15,330 pa konnen li k ap pase yo egziste. 421 00:21:15,330 --> 00:21:18,430 >> Koulye a, malerezman, pwogram sa a, tankou kèk nan ou ta ka remake gen, 422 00:21:18,430 --> 00:21:19,590 se deja buggy. 423 00:21:19,590 --> 00:21:21,400 Kite m 'ale pi devan epi fè buggy3. 424 00:21:21,400 --> 00:21:26,904 Li compiles, se konsa pwoblèm mwen kounye a se pa yon erè sentaks, tankou yon erè textuelle, 425 00:21:26,904 --> 00:21:29,570 li la aktyèlman pral gen yon lojik erè ki mwen te fè espre 426 00:21:29,570 --> 00:21:32,450 te fè kòm yon opòtinite yo etap nan sa k ap pase sou. 427 00:21:32,450 --> 00:21:35,540 >> Mwen pral ale pi devan kounye a epi yo kouri buggy3. 428 00:21:35,540 --> 00:21:37,490 Apre sa, mwen pral ale pi devan epi pa kolabore. 429 00:21:37,490 --> 00:21:39,494 Mwen pral bay li nimewo a 1. 430 00:21:39,494 --> 00:21:41,410 Li pa t 'tankou li, se konsa li nan pouse m 'ankò. 431 00:21:41,410 --> 00:21:42,147 >> Kouman sou 2? 432 00:21:42,147 --> 00:21:43,021 3? 433 00:21:43,021 --> 00:21:43,520 50? 434 00:21:43,520 --> 00:21:44,740 Pa gen yonn nan moun ap travay. 435 00:21:44,740 --> 00:21:46,890 Kouman sou -50? 436 00:21:46,890 --> 00:21:48,560 Ak pwogram nan sanble nan travay. 437 00:21:48,560 --> 00:21:49,970 >> Kite m 'eseye li yon fwa plis. 438 00:21:49,970 --> 00:21:53,400 Kite m 'eseye -1, sanble nan travay. 439 00:21:53,400 --> 00:21:56,380 Kite m 'eseye -2, sanble nan travay. 440 00:21:56,380 --> 00:21:59,640 Kite m 'eseye 0. 441 00:21:59,640 --> 00:22:01,684 Huh, sa se kòrèk. 442 00:22:01,684 --> 00:22:03,350 Koulye a, nou ap ke yo te yon ti kras pedant isit la. 443 00:22:03,350 --> 00:22:07,090 Men, li la, tout bon, ka a ke 0 ni pozitif ni negatif. 444 00:22:07,090 --> 00:22:11,150 Se konsa, lefèt ke pwogram mwen an se ki di ke 0 se yon nonb antye relatif negatif, 445 00:22:11,150 --> 00:22:12,820 sa a, se pa teknikman kòrèk. 446 00:22:12,820 --> 00:22:15,180 >> Koulye a, poukisa li fè sa? 447 00:22:15,180 --> 00:22:16,270 Oke, li ta kapab evidan. 448 00:22:16,270 --> 00:22:18,110 Epi, tout bon, pwogram nan se vle di yo dwe san patipri ki senp 449 00:22:18,110 --> 00:22:19,670 se konsa nou gen yon bagay yo eksplore. 450 00:22:19,670 --> 00:22:25,870 >> Men, kite a prezante yon debogaj twazyèm teknik isit la yo rele debug50. 451 00:22:25,870 --> 00:22:27,750 Se konsa, sa a se yon pwogram ke nou te jis te kreye 452 00:22:27,750 --> 00:22:30,770 ane rele sa a debug50 ki pral pèmèt ou 453 00:22:30,770 --> 00:22:34,130 yo sèvi ak sa ki rele yon bati-an grafik debugjeur nan CS50 IDE. 454 00:22:34,130 --> 00:22:38,400 Ak yon debugjeur se jis yon pwogram ki jeneralman pèmèt ou kouri pwogram ou an 455 00:22:38,400 --> 00:22:44,050 men etap pa etap pa etap, liy pa liy pa liy, s'arrête, poking 456 00:22:44,050 --> 00:22:47,626 alantou li, gade nan varyab pou ke pwogram lan pa jis kònen sot pase ou 457 00:22:47,626 --> 00:22:49,750 epi byen vit enprime yon bagay oswa ou pa enprime yon bagay. 458 00:22:49,750 --> 00:22:53,250 Li ba ou yon opòtinite, nan vitès imen, yo kominike avèk li. 459 00:22:53,250 --> 00:22:55,470 >> Men, fè sa, ou tou senpleman fè sa ki annapre yo. 460 00:22:55,470 --> 00:22:58,479 Apre konpile kòd ou a, ki mwen deja te fè, buggy3, 461 00:22:58,479 --> 00:23:00,020 ou ale pi devan epi kouri debug50 ./buggy. 462 00:23:00,020 --> 00:23:03,460 463 00:23:03,460 --> 00:23:06,760 Se konsa, anpil tankou help50 gen ou kouri help50 ak Lè sa a lòd la, 464 00:23:06,760 --> 00:23:10,120 debug50 gen ou kouri debug50 ak Lè sa a, non an nan lòd la. 465 00:23:10,120 --> 00:23:14,440 >> Koulye a, gade sa k ap pase sou ekran m 'yo, sou bò men dwat-ou an patikilye. 466 00:23:14,440 --> 00:23:19,400 Lè m 'frape Run, tout nan a toudenkou panèl sa a men dwat-ou 467 00:23:19,400 --> 00:23:20,419 ouvè sou ekran an. 468 00:23:20,419 --> 00:23:22,210 Apre sa, nan yon anpil pral sou nan premye gade. 469 00:23:22,210 --> 00:23:25,110 Men, gen nan pa twò anpil enkyete sou ankò. 470 00:23:25,110 --> 00:23:28,570 >> Sa a se ki montre m 'tou sa ki k ap pase sou andedan nan pwogram mwen 471 00:23:28,570 --> 00:23:31,130 kounye a epi atravè sa yo bouton moute tèt se lè sa a 472 00:23:31,130 --> 00:23:35,910 sa ki pèmèt m 'nan etap nan kòd m' finalman etap pa etap pa etap. 473 00:23:35,910 --> 00:23:37,140 Men, pa jis ankò. 474 00:23:37,140 --> 00:23:38,060 Avi sa ki rive. 475 00:23:38,060 --> 00:23:40,600 Nan fenèt tèminal m ' Mwen te pouse pou n. 476 00:23:40,600 --> 00:23:44,560 Men, mwen pral ale pi devan epi kolabore tan sa a ak kalite nan -1. 477 00:23:44,560 --> 00:23:48,770 Apre sa, kwake yon ti kras cryptically, -1 se yon nonb antye relatif negatif, jan yo espere. 478 00:23:48,770 --> 00:23:52,020 >> Lè sa a, pitit quitté ak sitiyasyon 0 GDBserver sòti. 479 00:23:52,020 --> 00:23:55,180 Gdb, GNU Debugjeur, se non an nan lojisyèl an kache 480 00:23:55,180 --> 00:23:56,620 ki aplike debugjeur sa a. 481 00:23:56,620 --> 00:24:00,500 Men, tou sa vrèman vle di, debugjeur a al fè wout yo paske pwogram mwen kite 482 00:24:00,500 --> 00:24:01,710 ak tout te byen. 483 00:24:01,710 --> 00:24:06,020 Si m 'vle se vre wi: debug pwogram m' yo, Mwen gen yo preemptively di debug50, 484 00:24:06,020 --> 00:24:08,920 kote fè Mwen vle kòmanse kite nan kòd mwen an? 485 00:24:08,920 --> 00:24:11,750 >> E petèt wout la pi senp fè sa se jan sa a. 486 00:24:11,750 --> 00:24:15,300 Si m 'hover sou la bon marse nan editè m 'isit la, 487 00:24:15,300 --> 00:24:19,090 se konsa vrèman jis nan ankadre a isit la, nan kite nan nimewo a liy, 488 00:24:19,090 --> 00:24:21,870 remake ke si mwen jis klike yon fwa, mwen mete yon ti kras dot wouj. 489 00:24:21,870 --> 00:24:24,460 Epi sa ti kras dot wouj, tankou yon siy sispann, vle di, hey, 490 00:24:24,460 --> 00:24:29,430 debug50, ekzekisyon pran yon poz nan kòd m ' dwa gen lè m 'kouri pwogram sa a. 491 00:24:29,430 --> 00:24:30,260 >> Se konsa nou fè sa. 492 00:24:30,260 --> 00:24:37,340 Kite m 'ale pi devan epi kouri pwogram mwen ankò ak debug50 ./buggy3, Antre nan. 493 00:24:37,340 --> 00:24:40,110 Epi, koulye a, avi, yon bagay diferan te rive fèt. 494 00:24:40,110 --> 00:24:42,440 Mwen pa ke yo te pouse ankò nan fenèt tèminal m ' 495 00:24:42,440 --> 00:24:45,430 pou anyen, paske mwen pa gen vinn gen anyen ankò nan pwogram m 'yo. 496 00:24:45,430 --> 00:24:47,950 Remake sou liy 8 ki se kounye a make, 497 00:24:47,950 --> 00:24:51,720 ak gen nan yon ti kras flèch nan bò gòch di, se ou ki Sarepta isit la. 498 00:24:51,720 --> 00:24:55,030 Liy sa a nan kòd, liy 8, pa gen ankò egzekite. 499 00:24:55,030 --> 00:24:58,940 >> Ak sa ki nan kirye, si mwen gade sou isit la sou bò men dwat-ou, 500 00:24:58,940 --> 00:25:03,530 remake ke mwen se yon lokal varyab, lokal nan sans 501 00:25:03,530 --> 00:25:05,450 ke li nan andedan fonksyon aktyèl la. 502 00:25:05,450 --> 00:25:08,920 Ak valè li yo, aparamman pa default, ak sòt de yon bon, se 0. 503 00:25:08,920 --> 00:25:10,260 Men, mwen pa t 'tape 0. 504 00:25:10,260 --> 00:25:13,410 Sa jis k ap pase yo li yo valè default nan moman an. 505 00:25:13,410 --> 00:25:15,490 >> Se pou m 'ale pi devan epi fè sa kounye a. 506 00:25:15,490 --> 00:25:18,680 Kite m 'ale pi devan epi sou tèt la dwa isit la, mwen se 507 00:25:18,680 --> 00:25:20,970 pral ale pi devan ak klike sou sa a icon premye ki 508 00:25:20,970 --> 00:25:25,360 vle di etap sou ki vle di pa sote li men etap sou liy sa a nan kòd, 509 00:25:25,360 --> 00:25:27,770 egzekite li sou wout la. 510 00:25:27,770 --> 00:25:30,710 >> Epi, koulye a, remake, mwen èd memwa te jis chanje. 511 00:25:30,710 --> 00:25:31,380 Poukisa se sa? 512 00:25:31,380 --> 00:25:33,639 Mwen te di debug50, kouri liy sa a nan kòd. 513 00:25:33,639 --> 00:25:34,930 Ki sa ki liy sa a nan kòd fè? 514 00:25:34,930 --> 00:25:35,960 Envit m 'pou yon int. 515 00:25:35,960 --> 00:25:36,460 OK. 516 00:25:36,460 --> 00:25:37,400 Kite m 'kolabore. 517 00:25:37,400 --> 00:25:41,340 Kite m 'ale pi devan kounye a epi tape -1, Antre nan. 518 00:25:41,340 --> 00:25:42,920 Epi, koulye a remake sa te chanje. 519 00:25:42,920 --> 00:25:46,060 Sou bò men dwat-ou, varyab lokal mwen mwen 520 00:25:46,060 --> 00:25:48,200 se endike tankou se te -1 kounye a. 521 00:25:48,200 --> 00:25:49,810 Apre sa, li la toujou nan kalite int. 522 00:25:49,810 --> 00:25:53,102 >> Apre sa, avi, tou, mwen sa yo rele rele pil, kote mwen t 'pran yon poz? 523 00:25:53,102 --> 00:25:54,810 Nou pral pale plis sou sa a nan tan kap vini an. 524 00:25:54,810 --> 00:25:58,620 Men, chemine a rele jis vle di sa fonksyon se kounye a an mouvman. 525 00:25:58,620 --> 00:26:00,040 Dwa koulye a li nan jis prensipal la. 526 00:26:00,040 --> 00:26:03,590 E yo gen dwa kounye a sèlman lokal la varyab se mwen ki gen yon valè nan 1. 527 00:26:03,590 --> 00:26:09,840 >> Lè m 'finalman etap sou liy sa a isit la, ak sa icon menm nan tèt dwat, 528 00:26:09,840 --> 00:26:11,410 -1 Se yon nonb antye relatif negatif. 529 00:26:11,410 --> 00:26:13,580 Koulye a, li la s'arrête sou ki atèl Curly. 530 00:26:13,580 --> 00:26:14,740 Se pou nou kite l fè sa li yo. 531 00:26:14,740 --> 00:26:17,300 Mwen etap sou ki liy, ak vwala. 532 00:26:17,300 --> 00:26:20,240 >> Se konsa, pa tout sa ki fò anpil Enstriktif ankò, 533 00:26:20,240 --> 00:26:23,550 men li t 'kite m' pran yon poz ak panse nan lojikman 534 00:26:23,550 --> 00:26:24,870 sa pwogram sa a ap fè. 535 00:26:24,870 --> 00:26:26,890 Men, sa pa te ka a inègza. 536 00:26:26,890 --> 00:26:28,510 Se pou yo fè sa a ankò jan sa a. 537 00:26:28,510 --> 00:26:31,340 >> Mwen pral kite ki breakpoint sou liy 8 ak dot wouj la. 538 00:26:31,340 --> 00:26:32,830 Mwen pral relance debug50. 539 00:26:32,830 --> 00:26:34,400 Li nan otomatikman Sarepta isit la. 540 00:26:34,400 --> 00:26:37,660 Men, tan sa a, olye pou yo kite sou liy sa a, 541 00:26:37,660 --> 00:26:42,290 kite m 'aktyèlman ale andedan nan get_negative_int ak figi soti, 542 00:26:42,290 --> 00:26:45,530 poukisa li aksepte 0 kòm yon repons valab? 543 00:26:45,530 --> 00:26:47,990 >> Se konsa, olye pou yo klike Etap Plis pase. 544 00:26:47,990 --> 00:26:50,630 Mwen pral ale pi devan , epi klike Etap Nan. 545 00:26:50,630 --> 00:26:54,030 Apre sa, remake ke liy lan 8 sa a, se kounye a make kounye a toudenkou 546 00:26:54,030 --> 00:26:56,900 vin liy 17. 547 00:26:56,900 --> 00:26:59,947 >> Koulye a, li pa ki debugjeur a te sote liy 14 ak 15 ak 16. 548 00:26:59,947 --> 00:27:01,780 Li nan jis pa gen anyen montre w la. 549 00:27:01,780 --> 00:27:04,050 Moun sa yo ki yo se jis deklare varyab, ak Lè sa a gen nan pawòl Bondye a Èske 550 00:27:04,050 --> 00:27:05,390 ak Lè sa a yon louvri Curly atèl. 551 00:27:05,390 --> 00:27:09,227 sèlman nan liy fonksyonèl sa a, se juicy vrèman se yon sèl sa a isit la, 17. 552 00:27:09,227 --> 00:27:11,060 Epi sa a, kote nou te Sarepta otomatikman. 553 00:27:11,060 --> 00:27:13,870 >> Se konsa, printf ( "n.is:") ;, se konsa ki pa te rive fèt ankò. 554 00:27:13,870 --> 00:27:18,250 Se konsa, kite yo ale pi devan, epi klike Etap Plis pase. 555 00:27:18,250 --> 00:27:20,326 Koulye a, èd memwa mwen, tout bon, chanje a ( "n se:"). 556 00:27:20,326 --> 00:27:22,450 Koulye a, get_int, mwen pa pwal bezwen deranje kite nan, 557 00:27:22,450 --> 00:27:24,750 paske ke fonksyon te fèt pa CS50 nan bibliyotèk la. 558 00:27:24,750 --> 00:27:25,750 Li nan prezimableman kòrèk. 559 00:27:25,750 --> 00:27:28,440 >> Se konsa, mwen pral ale pi devan ak sòt de kolabore pa bay li 560 00:27:28,440 --> 00:27:30,590 yon int, men se pa yon int negatif. 561 00:27:30,590 --> 00:27:32,870 Se pou m 'ale pi devan epi frape 0. 562 00:27:32,870 --> 00:27:39,460 Epi, koulye a sa k ap pase isit la lè m 'jwenn desann nan liy 21? 563 00:27:39,460 --> 00:27:40,890 Mwen pa te iteratif ankò. 564 00:27:40,890 --> 00:27:43,320 Mwen pa sanble yo dwe kole nan ki riban. 565 00:27:43,320 --> 00:27:45,990 Nan lòt mo, sa a jòn ba pa t 'kenbe prale alantou li, 566 00:27:45,990 --> 00:27:47,130 ak toupatou nan, ak toupatou nan. 567 00:27:47,130 --> 00:27:48,340 >> Koulye a, poukisa se sa? 568 00:27:48,340 --> 00:27:49,920 Oke, n, ki sa ki N kounye a? 569 00:27:49,920 --> 00:27:53,280 Mwen ka gade nan lokal la varyab nan debugjeur a. 570 00:27:53,280 --> 00:27:53,816 n se 0. 571 00:27:53,816 --> 00:27:55,190 Tout dwa, sa ki te kondisyon mwen an? 572 00:27:55,190 --> 00:27:58,700 >> 20-- liy 20 se, byen, 0 se pi gran pase 0. 573 00:27:58,700 --> 00:27:59,500 Sa se pa vre. 574 00:27:59,500 --> 00:28:01,020 0 pa janm pi grannèg pase 0. 575 00:28:01,020 --> 00:28:02,820 Se konsa, m 'te separe soti nan sa a. 576 00:28:02,820 --> 00:28:06,370 >> Se konsa, Se poutèt sa sou liy 21, si mwen aktyèlman kontinye, 577 00:28:06,370 --> 00:28:10,370 Mwen pral retounen 0, menm si mwen ta dwe rejte 0 578 00:28:10,370 --> 00:28:12,484 yo pa aktyèlman ke yo te negatif. 579 00:28:12,484 --> 00:28:14,650 Koulye a, mwen pa fè sa vrèman menm pran swen sou debugjeur a. 580 00:28:14,650 --> 00:28:16,900 Te li, mwen pa bezwen konnen ki sa plis ki pwal sou. 581 00:28:16,900 --> 00:28:19,233 >> Se konsa, mwen pral ale pi devan ak jis klike sou bouton an Jwe, 582 00:28:19,233 --> 00:28:20,240 epi kite sa a fini yo. 583 00:28:20,240 --> 00:28:23,440 Koulye a, mwen te reyalize ke mwen ensèk se aparamman sou liy 20. 584 00:28:23,440 --> 00:28:25,160 Sa a erè ki lojik mwen. 585 00:28:25,160 --> 00:28:28,100 >> Se konsa, sa fè mwen vle pou fè pou chanje sa a? 586 00:28:28,100 --> 00:28:32,500 Si pwoblèm nan se ke mwen pa pwan 0, li nan jis yon erè lojik. 587 00:28:32,500 --> 00:28:35,910 Apre sa, mwen ka di pandan y ap n se pi gran pase oswa egal a 0, 588 00:28:35,910 --> 00:28:38,330 kenbe pouse itilizatè a ankò e ankò. 589 00:28:38,330 --> 00:28:41,050 >> Se konsa, ankò, senp erè, petèt menm evidan lè ou te wè m ' 590 00:28:41,050 --> 00:28:42,410 ekri li jis yon kèk minit de sa. 591 00:28:42,410 --> 00:28:44,570 Men, Takeaway a isit la se ke ak dbug 50, 592 00:28:44,570 --> 00:28:46,850 ak debogaj lojisyèl plis jeneralman, 593 00:28:46,850 --> 00:28:51,370 ou gen sa a nouvo pouvwa jwenn yo mache nan Kòd pwòp ou a, gade 594 00:28:51,370 --> 00:28:55,590 via ki panèl men dwat sa valè varyab ou yo. 595 00:28:55,590 --> 00:28:57,700 Se konsa, ou pa fè sa nesesèman gen yo sèvi ak yon bagay 596 00:28:57,700 --> 00:29:00,630 tankou ou eprintf ekri ak lèt ​​detache valè sa yo. 597 00:29:00,630 --> 00:29:04,430 Ou ka aktyèlman wè yo vizyèlman sou ekran an. 598 00:29:04,430 --> 00:29:08,920 >> Koulye a, pi lwen pase sa a, li la vo anyen ke gen nan yon lòt teknik sa a, se 599 00:29:08,920 --> 00:29:09,890 aktyèlman super komen. 600 00:29:09,890 --> 00:29:13,120 Epi ou ta ka mande poukisa sa a ti kras Te nèg isit la te chita sou sèn nan. 601 00:29:13,120 --> 00:29:16,490 Se konsa, gen nan teknik sa a, jeneralman li te ye tankou kawotchou kanna debogaj, 602 00:29:16,490 --> 00:29:18,786 ki reyèlman se jis yon kontra Bondye nan lefèt 603 00:29:18,786 --> 00:29:20,660 ki souvan lè pwogramasyon ap ekri kòd, 604 00:29:20,660 --> 00:29:22,650 yo ap pa nesesèman kolabore ak lòt moun, 605 00:29:22,650 --> 00:29:24,030 oswa k ap travay nan yon anviwònman pataje. 606 00:29:24,030 --> 00:29:25,050 >> Yo ap sòt de nan kay la. 607 00:29:25,050 --> 00:29:25,910 Petèt li nan anreta nan mitan lannwit. 608 00:29:25,910 --> 00:29:28,190 Yo ap eseye figi soti kèk ensèk nan kòd yo. 609 00:29:28,190 --> 00:29:29,330 Apre sa, yo ap jis pa wè li. 610 00:29:29,330 --> 00:29:30,329 >> Apre sa, gen nan pa gen kolokasyon. 611 00:29:30,329 --> 00:29:31,250 Pa gen okenn TF. 612 00:29:31,250 --> 00:29:32,680 Pa gen okenn CA alantou. 613 00:29:32,680 --> 00:29:36,440 Tout sa yo gen sou etajè yo se sa a ducky kawotchou ti kras. 614 00:29:36,440 --> 00:29:39,030 >> Se konsa, kanna kawotchou debogaj se jis envitasyon sa a 615 00:29:39,030 --> 00:29:42,780 panse a yon bagay tankou komik tankou sa a tankou yon bèt reyèl, 616 00:29:42,780 --> 00:29:46,940 ak aktyèlman mache nan kòd ou a vèbalman sa a objè inanime. 617 00:29:46,940 --> 00:29:49,230 Se konsa, pou egzanp, si sa a se egzanp mwen isit lan-- 618 00:29:49,230 --> 00:29:52,470 ak sonje ke pi bonè pwoblèm nan te sa a, 619 00:29:52,470 --> 00:29:58,140 si mwen efase sa a liy premye nan kòd, ak mwen ale pi devan epi fè buggy 0 ankò, 620 00:29:58,140 --> 00:30:01,220 sonje ke mwen te gen sa yo erè mesaj isit la. 621 00:30:01,220 --> 00:30:05,997 Se konsa, lide a isit la, ridikil si mwen santi nan moman sa a fè sa piblikman, 622 00:30:05,997 --> 00:30:06,580 se ke erè. 623 00:30:06,580 --> 00:30:10,910 >> OK, se konsa pwoblèm mwen se ke mwen te chal deklare yon fonksyon bibliyotèk. 624 00:30:10,910 --> 00:30:12,610 Epi sa fonksyon bibliyotèk se printf. 625 00:30:12,610 --> 00:30:15,290 Declare-- OK, deklare fè m sonje nan prototip. 626 00:30:15,290 --> 00:30:18,930 >> Sa vle di mwen bezwen aktyèlman di du a davans sa ki 627 00:30:18,930 --> 00:30:19,980 fonksyon an sanble. 628 00:30:19,980 --> 00:30:20,930 Tann yon minit. 629 00:30:20,930 --> 00:30:23,580 Mwen pa t 'gen estanda io.h. 630 00:30:23,580 --> 00:30:24,530 Mèsi anpil. 631 00:30:24,530 --> 00:30:27,330 >> Se konsa, jis pwosesis sa a de- ou pa bezwen gen aktyèlman yon kanna. 632 00:30:27,330 --> 00:30:29,819 Men, sa a lide sou mache tèt ou nan Kòd pwòp ou a 633 00:30:29,819 --> 00:30:31,610 pou ke ou menm tande tèt ou, pou ke ou 634 00:30:31,610 --> 00:30:35,620 reyalize omisyon nan pwòp ou a remak, se jeneralman lide la. 635 00:30:35,620 --> 00:30:38,910 >> Epi, petèt pi plis lojikman, pa konsa pou sa anpil ak sa gen yon sèl men patisipe plis nan 636 00:30:38,910 --> 00:30:44,220 egzanp nou jis te fè nan buggy 3.c, ou ta ka mache tèt ou nan li 637 00:30:44,220 --> 00:30:45,310 jan sa a. 638 00:30:45,310 --> 00:30:49,190 Se konsa, tout dwa, kawotchou ducky, ddb, si ou pral. 639 00:30:49,190 --> 00:30:52,350 Isit la nou gen nan fonksyon prensipal m 'yo, M ap rele jwenn Int negatif. 640 00:30:52,350 --> 00:30:54,660 >> Apre sa, mwen ap resevwa valè a retounen. 641 00:30:54,660 --> 00:31:00,410 Mwen estoke l 'sou bò men gòch sou liy 8 nan yon varyab rele mwen. 642 00:31:00,410 --> 00:31:02,380 OK, men rete tann, ki jan te fè ki jwenn ke valè? 643 00:31:02,380 --> 00:31:04,130 Kite m 'gade nan fonksyon an nan liy 12. 644 00:31:04,130 --> 00:31:05,760 >> Nan liy 12, nou gen jwenn int negatif. 645 00:31:05,760 --> 00:31:08,190 pa pran okenn entrain, retounen yon int, OK. 646 00:31:08,190 --> 00:31:10,929 Mwen deklare sou liy 14 yon n varyab. 647 00:31:10,929 --> 00:31:12,220 Li nan ale nan magazen yon nonb antye relatif. 648 00:31:12,220 --> 00:31:13,760 Sa a ki sa mwen vle. 649 00:31:13,760 --> 00:31:18,480 >> Se konsa, fè sa ki annapre yo pandan y ap n is-- kite m 'defèt sa ranje a mwen deja fè fè yo. 650 00:31:18,480 --> 00:31:22,710 Se konsa, pandan n pi gran pase 0, enprime soti n se, se OK. 651 00:31:22,710 --> 00:31:25,170 Lè sa a, rele jwenn Int estoke nan n. 652 00:31:25,170 --> 00:31:30,160 Lè sa a, tcheke si n se 0, n se not-- gen li ye. 653 00:31:30,160 --> 00:31:31,910 Se konsa, ankò, ou pa fè sa bezwen kanna a vrè. 654 00:31:31,910 --> 00:31:35,650 Men, jis mache nan tèt ou kòd ou a kòm yon fè egzèsis entelektyèl 655 00:31:35,650 --> 00:31:37,720 pral souvan ede w reyalize sa k ap pase sou li a, 656 00:31:37,720 --> 00:31:41,170 kòm opoze a jis fè yon bagay tankou sa a, fikse nan ekran an, 657 00:31:41,170 --> 00:31:43,720 epi yo pa pale tèt ou nan li, ki onètman se pa 658 00:31:43,720 --> 00:31:46,270 prèske kòm yon teknik efikas. 659 00:31:46,270 --> 00:31:48,620 Se konsa, gen ou genyen li, yon kantite diferan teknik 660 00:31:48,620 --> 00:31:52,102 pou aktyèlman debogaj kòd ou a ak repwòch, nan tout ki 661 00:31:52,102 --> 00:31:54,810 ta dwe zouti nan bwat zouti ou se konsa ke ou pa anreta nan mitan lannwit, 662 00:31:54,810 --> 00:31:57,660 espesyalman, w ap nan manje a koulwa, oswa nan lè biwo louvri, 663 00:31:57,660 --> 00:32:00,368 frape tèt ou kont la miray, ap eseye rezoud kèk pwoblèm. 664 00:32:00,368 --> 00:32:02,020 Reyalize ke gen yo se zouti lojisyèl. 665 00:32:02,020 --> 00:32:03,720 Gen kawotchou zouti kanna. 666 00:32:03,720 --> 00:32:09,630 Apre sa, nan yon baton antye nan sipòte ap tann yo prete yon men. 667 00:32:09,630 --> 00:32:13,120 >> Koulye a, yon mo sou pwoblèm nan kouche, ak sou sa n ap tann ou 668 00:32:13,120 --> 00:32:15,620 jwenn soti nan yo, ak ki jan nou ale sou evalye. 669 00:32:15,620 --> 00:32:17,680 Per progranm kou a nan, CS50 nan aparèy televisyon HD pwoblèm 670 00:32:17,680 --> 00:32:22,320 yo evalye sou kat aks prensipal, se konsa speak-- sijè ki abòde, Correct, konsepsyon, 671 00:32:22,320 --> 00:32:23,060 ak style. 672 00:32:23,060 --> 00:32:25,910 Apre sa, sijè ki abòde jis vle di konbyen lajan nan moso nan ou mòde la? 673 00:32:25,910 --> 00:32:28,080 Ki jan anpil nan yon pwoblèm ou te eseye? 674 00:32:28,080 --> 00:32:30,110 Ki sa ki nivo nan efò ou manifeste? 675 00:32:30,110 --> 00:32:35,750 >> Correct se, fè travay nan pwogram kòm li nan sipoze pou chak CS50 spesifikasyon 676 00:32:35,750 --> 00:32:38,640 lè ou bay sèten entrain oswa sèten rezilta vini tounen? 677 00:32:38,640 --> 00:32:41,130 Design se pi subjectif an nan yo. 678 00:32:41,130 --> 00:32:43,360 Lè li nan yon sèl la ki pral pran pi long la yo aprann 679 00:32:43,360 --> 00:32:47,220 ak pi long la yo anseye, nan byen lwen tèlman kòm li klou desann nan, 680 00:32:47,220 --> 00:32:49,530 ki jan byen ekri se kòd ou a? 681 00:32:49,530 --> 00:32:52,920 >> Li nan yon sèl bagay yo jis enprime repons ki kòrèk la rezilta oswa retounen valè yo dwat. 682 00:32:52,920 --> 00:32:55,400 Men, n'ap fè li kòm avèk efikasite ke posib? 683 00:32:55,400 --> 00:32:58,210 Èske ou fè li divize ak konkeri, oswa binè 684 00:32:58,210 --> 00:33:01,500 rechèch jan nou pral byento wè ke nou te fè de semèn de sa ak liv la telefòn? 685 00:33:01,500 --> 00:33:04,670 Èske gen pi bon fason yo rezoud nan pwoblèm pase ou genyen kounye a isit la? 686 00:33:04,670 --> 00:33:06,380 Sa a yon opòtinite pou pi bon konsepsyon. 687 00:33:06,380 --> 00:33:08,530 >> Lè sa a, ki jan style-- bèl se kòd ou a? 688 00:33:08,530 --> 00:33:12,370 Ou ap remake ke mwen se trè patikilye sou indenting kòd m ', 689 00:33:12,370 --> 00:33:15,300 epi asire varyab mwen yo rezonab yo te rele. n, 690 00:33:15,300 --> 00:33:19,660 ti tan kout, se yon non bon pou yon Nimewo, mwen pou yon nonb antye relatif konte, 691 00:33:19,660 --> 00:33:20,727 a pou yon fisèl. 692 00:33:20,727 --> 00:33:22,560 Apre sa, nou ka gen ankò varyab non style. 693 00:33:22,560 --> 00:33:25,500 Style se jis ki jan bon kòd ou a gade? 694 00:33:25,500 --> 00:33:26,600 Ak ki jan lizib sa li ye? 695 00:33:26,600 --> 00:33:29,650 >> Ak sou tan, sa TAS ou ak TFs pral fè nan kou a 696 00:33:29,650 --> 00:33:31,870 se ofri ou ak ki kalite kalitatif fidbak 697 00:33:31,870 --> 00:33:34,330 pou ke ou jwenn pi bon nan sa yo divès aspè. 698 00:33:34,330 --> 00:33:37,510 Lè an tèm de ki jan nou evalye chak nan aks sa yo, 699 00:33:37,510 --> 00:33:40,080 li nan en ak trè kèk bokit pou ke ou, jeneralman, 700 00:33:40,080 --> 00:33:41,680 jwenn yon sans de ki jan byen w ap fè. 701 00:33:41,680 --> 00:33:45,680 Epi, tout bon, si ou resevwa yon nòt sou nenpòt nan moun sa Correct axes--, konsepsyon 702 00:33:45,680 --> 00:33:49,659 ak style especially-- ladan nimewo pral jeneralman gen ant 1 ak 5. 703 00:33:49,659 --> 00:33:52,450 Epi, literalman, si w ap vin 3 a nan kòmansman an nan semès la, 704 00:33:52,450 --> 00:33:53,977 sa a se yon bagay trè bon. 705 00:33:53,977 --> 00:33:55,810 Sa vle di gen nan toujou plas pou amelyorasyon, 706 00:33:55,810 --> 00:33:58,490 ki ou ta espere pou nan pran yon klas la pou premye fwa a. 707 00:33:58,490 --> 00:34:01,820 Genyen èspere ke kèk ti jan nan plafon yo ki ou ap aspiran yo rive. 708 00:34:01,820 --> 00:34:03,970 Se konsa, ap resevwa sou 3 a moso yo pi bonè, 709 00:34:03,970 --> 00:34:06,550 si se pa nan kèk 2 ak 4 an, se, tout bon, yon bon bagay. 710 00:34:06,550 --> 00:34:08,880 Li nan byen nan ranje, byen nan atann. 711 00:34:08,880 --> 00:34:11,421 >> Men, si tèt ou se kous, rete tann yon minit, twa nan senk. 712 00:34:11,421 --> 00:34:12,620 Sa ki nan vrèman yon soti 6 nan 10. 713 00:34:12,620 --> 00:34:13,560 Sa a 60%. 714 00:34:13,560 --> 00:34:14,830 Bondye mwen, sa a, se yon F. 715 00:34:14,830 --> 00:34:15,870 >> Li pa. 716 00:34:15,870 --> 00:34:17,600 Li pa, an reyalite, sa. 717 00:34:17,600 --> 00:34:22,710 Olye de sa, li nan yon opòtinite yo amelyore sou kou a nan semès la. 718 00:34:22,710 --> 00:34:25,580 Men, si w ap vin kèk Poors, sa yo se yon opòtinite 719 00:34:25,580 --> 00:34:29,199 pran avantaj de èdtan nan biwo a, sètènman seksyon ak lòt resous. 720 00:34:29,199 --> 00:34:32,840 >> Pi bon se yon opòtinite, reyèlman, yo dwe fyè de jis ki jan lwen ou te 721 00:34:32,840 --> 00:34:34,520 vini sou kou a nan semès la. 722 00:34:34,520 --> 00:34:38,199 Se konsa, reyalize, si pa gen anyen lòt moun, twa se yon bon bagay. 723 00:34:38,199 --> 00:34:40,179 Epi, se pèmèt plas pou kwasans sou tan. 724 00:34:40,179 --> 00:34:43,090 >> Ki di kòman moun aks yo filaplon, pli reyèlman w ap 725 00:34:43,090 --> 00:34:46,745 pral depanse pi fò nan tan ou ap resevwa bagay sa yo travay, se pou kont li kòrèkteman. 726 00:34:46,745 --> 00:34:49,120 Se konsa, Correct gen tandans fè dwe filaplon pi plis nan, menm jan ak 727 00:34:49,120 --> 00:34:51,360 sa a faktè miltiplikatif nan twa. 728 00:34:51,360 --> 00:34:54,659 Design enpòtan tou, men yon bagay ke ou pa fè sa nesesèman 729 00:34:54,659 --> 00:34:58,220 pase tout moun ki èdtan sou ap eseye jwenn bagay sa yo jis nan travay. 730 00:34:58,220 --> 00:35:00,019 >> Se konsa, li nan filaplon yon ti kras plis dousman. 731 00:35:00,019 --> 00:35:01,560 Lè sa a, style se filaplon pi piti a. 732 00:35:01,560 --> 00:35:03,710 Menm si li nan pa gen mwens enpòtan fondamantalman, 733 00:35:03,710 --> 00:35:05,990 li nan jis, petèt, nan pi fasil bagay yo fè sa ki dwat, 734 00:35:05,990 --> 00:35:08,440 miman egzanp yo nou fè nan konferans ak seksyon, 735 00:35:08,440 --> 00:35:11,080 ak bagay sa yo joliman utilize, ak kòmante, 736 00:35:11,080 --> 00:35:14,320 ak pou fè se nan mitan pi fasil la bagay yo fè epi pou yo jwenn dwa. 737 00:35:14,320 --> 00:35:16,960 Se konsa, jan sa yo, reyalize ki sa yo se pwen 738 00:35:16,960 --> 00:35:19,000 ki relativman fasil atrab. 739 00:35:19,000 --> 00:35:22,360 >> Epi, koulye a yon mo sou sa a men onètete akademik yo. 740 00:35:22,360 --> 00:35:25,150 Se konsa, pou chak nan la kou progranm, ou pral wè 741 00:35:25,150 --> 00:35:27,630 ke kou a gen byen yon ti jan nan lang alantou sa a. 742 00:35:27,630 --> 00:35:31,380 Apre sa, kou a pran pwoblèm nan de onètete akademik byen oserye. 743 00:35:31,380 --> 00:35:33,450 >> Nou gen distenksyon an, pou pi bon oswa pou vin pi mal, 744 00:35:33,450 --> 00:35:36,570 yo ki te voye chak ane pi plis elèv yo pou aksyon disiplinè 745 00:35:36,570 --> 00:35:39,670 pase sa pifò nenpòt lòt kou, se mwen menm ki okouran de. 746 00:35:39,670 --> 00:35:42,580 Sa a se pa nesesèman indicative de lefèt 747 00:35:42,580 --> 00:35:46,340 ki CS elèv yo, oswa elèv CS50, se nenpòt ki mwens onèt pase kamarad klas ou yo. 748 00:35:46,340 --> 00:35:49,090 Men, reyalite a ke nan ka sa mond, elektwonikman, nou jis 749 00:35:49,090 --> 00:35:50,990 gen teknolojik vle di nan detekte sa a. 750 00:35:50,990 --> 00:35:53,360 >> Li se enpòtan yo ban nou pou etidye ekite Règleman nan tout klas la 751 00:35:53,360 --> 00:35:58,550 ke nou fè detekte sa a, ak ogmante pwoblèm nan lè nou wè bagay sa yo. 752 00:35:58,550 --> 00:36:01,980 Epi jis nan penti yon foto, ak reyèlman ede yon bagay tankou koule sa a nan, 753 00:36:01,980 --> 00:36:04,600 sa yo, se nimewo sa yo nan elèv yo plis pase 10 ane ki sot pase 754 00:36:04,600 --> 00:36:07,610 sa yo ki te te enplike nan kèk pwoblèm sa yo de onètete akademik, 755 00:36:07,610 --> 00:36:10,990 ak kèk 32 elèv yo soti nan sezon otòn 2015, ki 756 00:36:10,990 --> 00:36:13,760 sa a vle di ke nou pran pwoblèm nan trè seryezman. 757 00:36:13,760 --> 00:36:18,380 Epi, finalman, nimewo sa yo konpoze, pi resamman, apeprè 3%, 4% oswa konsa 758 00:36:18,380 --> 00:36:19,120 nan klas la. 759 00:36:19,120 --> 00:36:25,220 >> Se konsa, pou majorite a super elèv li sanble ke liy ki yo klè. 760 00:36:25,220 --> 00:36:27,940 Men, kenbe sa a nan lide, patikilyèman an reta 761 00:36:27,940 --> 00:36:32,080 nan mitan lannwit lè gen difikilte nan kèk solisyon a yon seri pwoblèm, 762 00:36:32,080 --> 00:36:34,830 ke gen fòmil pou jwenn tèt ou pi bon 763 00:36:34,830 --> 00:36:37,870 sipò pase ou ta ka panse, menm nan ki èdtan. 764 00:36:37,870 --> 00:36:40,514 Reyalize ke lè nou resevwa soumèt elèv, nou travèse 765 00:36:40,514 --> 00:36:43,430 konpare chak soumèt ane sa a kont chak soumèt ane pase a, 766 00:36:43,430 --> 00:36:47,590 kont chak soumèt soti nan 2007, epi depi, gade nan, kòm byen, 767 00:36:47,590 --> 00:36:49,931 Kòd zarchiv sou entènèt, fowòm diskisyon, sit travay. 768 00:36:49,931 --> 00:36:51,806 Apre sa, nou mansyone sa a, reyèlman, tout pou dedomajman pou la 769 00:36:51,806 --> 00:36:56,040 nan divilgasyon konplè, ke si yon lòt moun ka jwenn li sou entènèt, 770 00:36:56,040 --> 00:36:57,880 sètènman, se konsa nou ka kou a. 771 00:36:57,880 --> 00:37:00,100 Men, reyèlman, Lespri Bondye a nan kou a klou desann 772 00:37:00,100 --> 00:37:01,650 kloz sa a nan progranm la. 773 00:37:01,650 --> 00:37:03,670 Li reyèlman se jis, se pou ki rezonab. 774 00:37:03,670 --> 00:37:06,680 >> Men, si nou te gen nan elabore sou sa ak jis yon ti jan pi plis ak lang, 775 00:37:06,680 --> 00:37:09,770 reyalize ke sans nan tout travay ke ou soumèt a kou sa a 776 00:37:09,770 --> 00:37:10,954 dwe pwòp ou yo. 777 00:37:10,954 --> 00:37:13,870 Men, nan sa, gen sètènman opòtinite, ak ankourajman, 778 00:37:13,870 --> 00:37:17,300 ak pedagojik valè nan Jezi vire bò others-- tèt mwen, TFs a, CAs a, 779 00:37:17,300 --> 00:37:20,760 TAS yo, ak lòt moun nan klas la, pou sipò, se pou kont li zanmi 780 00:37:20,760 --> 00:37:23,547 ak kolok ki te etidye CS ak pwogramasyon anvan. 781 00:37:23,547 --> 00:37:25,130 Se konsa, gen yon alokasyon pou sa. 782 00:37:25,130 --> 00:37:28,180 Apre sa, règ la an jeneral nan gwo pous se sa a men lè mande pou èd, 783 00:37:28,180 --> 00:37:31,470 ou ka montre kòd ou a bay lòt moun, men ou pa kapab gade leur. 784 00:37:31,470 --> 00:37:34,880 Se konsa, menm si w ap nan lè biwo louvri, oswa nan sal la D, oswa yon lòt kote 785 00:37:34,880 --> 00:37:37,450 ap travay sou kèk seri moso, k ap travay ansanm ak yon zanmi, ki 786 00:37:37,450 --> 00:37:40,160 se totalman amann, nan la fen nan jounen an travay ou 787 00:37:40,160 --> 00:37:43,034 ta dwe finalman apatni a chak nan nou respektivman, epi yo pa 788 00:37:43,034 --> 00:37:45,700 gen kèk efò kolaborasyon, eksepte pou pwojè final la kote 789 00:37:45,700 --> 00:37:47,410 li nan pèmèt, epi ankouraje. 790 00:37:47,410 --> 00:37:49,830 >> Reyalize ke si ou se gen difikilte nan yon bagay 791 00:37:49,830 --> 00:37:52,520 ak zanmi ou jis k ap pase yo dwe pi bon nan sa a lè sa a ou, 792 00:37:52,520 --> 00:37:55,130 oswa pi bon nan ke pwoblèm pase ou, oswa yon ti kras pi lwen devan yo pase ou, 793 00:37:55,130 --> 00:37:57,330 li nan totalman rezonab yo vire ak zanmi ou ak di, hey, 794 00:37:57,330 --> 00:38:00,480 ou lide gade nan kòd m 'isit la, ede m 'tach sa pwoblèm mwen an se? 795 00:38:00,480 --> 00:38:03,760 Epi, èspere ke, nan la enterè nan pedagojik valè 796 00:38:03,760 --> 00:38:07,040 ke zanmi pa fè sa jis di, o, fè sa, men pito, 797 00:38:07,040 --> 00:38:09,917 ki sa ou manke sou liy 6, oswa yon bagay tankou sa? 798 00:38:09,917 --> 00:38:12,000 Men, solisyon an se pa pou zanmi a kap vini jwenn ou 799 00:38:12,000 --> 00:38:15,617 yo di, o, byen, isit la, kite m 'rale sa a moute, epi montre solisyon m 'devan ou. 800 00:38:15,617 --> 00:38:16,450 Se konsa, ki se liy lan. 801 00:38:16,450 --> 00:38:18,670 Ou montre Kòd ou a lòt moun, men ou pa ka 802 00:38:18,670 --> 00:38:22,350 wè sa yo fè, sijè a lòt la kontrent nan progranm kou a. 803 00:38:22,350 --> 00:38:24,760 >> Se konsa, kenbe nan tèt ou sa a sa yo rele kloz regrèt 804 00:38:24,760 --> 00:38:27,560 nan progranm kou a nan kòm byen, ke si ou komèt kèk zak ki 805 00:38:27,560 --> 00:38:30,476 se pa rezonab, men pote l 'bay atansyon a nan tèt kou a nan 806 00:38:30,476 --> 00:38:34,240 nan lespas 72 èdtan, kou a ka enpoze sanksyon lokal ki 807 00:38:34,240 --> 00:38:37,380 ka fèt ann satisfezan oswa li pap resevwa nòt pou travay la soumèt. 808 00:38:37,380 --> 00:38:41,410 Men, kou a pa pral refere a gen pwoblèm pou aksyon disiplinè pi lwen, 809 00:38:41,410 --> 00:38:43,010 eksepte nan ka repete zak. 810 00:38:43,010 --> 00:38:46,632 Nan lòt mo, si ou fè fè kèk estipid, espesyalman byen ta lannwit, desizyon 811 00:38:46,632 --> 00:38:49,340 ki nan denmen maten oubyen de jou pita, ou reveye ak reyalize, 812 00:38:49,340 --> 00:38:50,870 sa ki te mwen panse? 813 00:38:50,870 --> 00:38:53,890 Ou fè nan CS50 gen yon priz pou repare-ke pwoblèm 814 00:38:53,890 --> 00:38:57,170 ak jan mèt jiska li, se konsa ke nou va kontre ou mwatye epi fè fas 815 00:38:57,170 --> 00:39:01,500 ak li nan yon kesyon ki se tou de edikasyon ak bonjan pou ou, 816 00:39:01,500 --> 00:39:04,200 men yo toujou pinitif nan kèk fason. 817 00:39:04,200 --> 00:39:08,590 Epi, koulye a, yo pran kwen nan koupe, sa a. 818 00:39:08,590 --> 00:39:10,570 >> [VIDEO lèktur] 819 00:39:10,570 --> 00:39:13,540 >> [MIZIK jwe] 820 00:39:13,540 --> 00:39:58,090 821 00:39:58,090 --> 00:39:58,866 >> [FEN lèktur] 822 00:39:58,866 --> 00:40:00,490 DAVID J. Malan: Tout dwa, nou yo tounen. 823 00:40:00,490 --> 00:40:03,680 Epi, koulye a nou gade nan youn nan la premye nan domèn reyèl mond nou an 824 00:40:03,680 --> 00:40:08,720 nan CS50, atizay la nan chifreman, atizay la nan voye ak resevwa 825 00:40:08,720 --> 00:40:11,840 mesaj sekrè, chiffres mesaj si ou vle, 826 00:40:11,840 --> 00:40:17,060 ki kapab fèt sèlman dechifre si ou gen kèk engredyan kle ki moun k la gen 827 00:40:17,060 --> 00:40:18,030 kòm byen. 828 00:40:18,030 --> 00:40:22,120 Se konsa, yo motive sa a nou pral pran yon gade nan sa a bagay isit la, 829 00:40:22,120 --> 00:40:26,750 ki se yon egzanp yon sekrè bag dekodaj ki 830 00:40:26,750 --> 00:40:34,042 kapab itilize yo nan lòd yo konnen ki ki sa yon komisyon aktyèlman se. 831 00:40:34,042 --> 00:40:35,750 An reyalite, li tounen nan la jou nan lekòl klas, 832 00:40:35,750 --> 00:40:38,787 si ou te janm voye mesaj sekrè kèk zanmi oswa kèk kraze nan klas la, 833 00:40:38,787 --> 00:40:40,620 ou ta ka gen te panse ou te ke yo te entelijan 834 00:40:40,620 --> 00:40:46,530 pa sou moso ou nan chanje papye, tankou, A jiska B, ak B nan C, ak C rive nan D, 835 00:40:46,530 --> 00:40:47,590 ak pou fè. 836 00:40:47,590 --> 00:40:50,300 Men, ou te aktyèlman chifreman enfòmasyon ou, menm 837 00:40:50,300 --> 00:40:53,300 si li te yon ti kras trivial, pa t ' ki difisil pou pwofesè a reyalize, 838 00:40:53,300 --> 00:40:55,675 byen, si ou jis chanje B nan A ak C rive nan B, 839 00:40:55,675 --> 00:40:57,550 ou aktyèlman konnen sa mesaj la te, 840 00:40:57,550 --> 00:40:59,700 men ou te nan chifreman enfòmasyon. 841 00:40:59,700 --> 00:41:03,420 >> Ou te jis ap fè li tou senpleman, anpil tankou Ralphie isit la 842 00:41:03,420 --> 00:41:07,934 nan yon fim pi popilè ki jwe bèl anpil nauseum anons chak sezon fredi. 843 00:41:07,934 --> 00:41:08,600 [VIDEO lèktur] 844 00:41:08,600 --> 00:41:11,180 -Fè Li te ye nan tout ki Ralph Parker se Avèk prezant sa mwen 845 00:41:11,180 --> 00:41:14,070 nonmen yon manm nan Little nan Òfelen Annie sekrè Fè yon ti wonn 846 00:41:14,070 --> 00:41:17,700 epi li gen dwa nan tout onè yo ak benefis ki rive kite yo pase. 847 00:41:17,700 --> 00:41:24,340 >> -Signed, Little Òfelen Annie, counter-siyen Pierre Andre, nan lank. 848 00:41:24,340 --> 00:41:27,160 Onè ak benefis yo, deja a laj de nèf. 849 00:41:27,160 --> 00:41:30,490 850 00:41:30,490 --> 00:41:31,825 >> [T'ap rele byen fò] 851 00:41:31,825 --> 00:41:33,750 852 00:41:33,750 --> 00:41:34,250 -Come Sou. 853 00:41:34,250 --> 00:41:35,210 Se pou nou jwenn sou ak li. 854 00:41:35,210 --> 00:41:39,530 Mwen pa bezwen tou sa djaz sou kontrebandye ak pirat. 855 00:41:39,530 --> 00:41:41,660 >> -Listen Lannwit demen pou avanti a conclure 856 00:41:41,660 --> 00:41:43,880 nan batiman an bato nwa. 857 00:41:43,880 --> 00:41:46,650 Koulye a, li lè pou komisyon Annie a 858 00:41:46,650 --> 00:41:49,840 pou ou manm nan Fè yon ti wonn la sekrè. 859 00:41:49,840 --> 00:41:53,570 Sonje byen, timoun yo, se sèlman manm nan Annie a sekrè Fè yon ti wonn 860 00:41:53,570 --> 00:41:56,140 ka dekode komisyon Annie a. 861 00:41:56,140 --> 00:42:00,340 >> Sonje byen, Annie se depann sou ou. 862 00:42:00,340 --> 00:42:02,880 Mete Pins ou a B2. 863 00:42:02,880 --> 00:42:05,230 Isit la se mesaj la. 864 00:42:05,230 --> 00:42:06,090 12, 11-- 865 00:42:06,090 --> 00:42:10,250 >> -Mwen Menm mwen nan, premye reyinyon sekrè m 'yo. 866 00:42:10,250 --> 00:42:13,890 >> -14, 11, 18, 16. 867 00:42:13,890 --> 00:42:15,780 >> -Pierre Te nan gwo aswè a vwa. 868 00:42:15,780 --> 00:42:19,000 Mwen te kapab di ke nan aswè a mesaj te vrèman enpòtan. 869 00:42:19,000 --> 00:42:22,694 >> -3, 25, sa a, se yon mesaj soti nan Annie tèt li. 870 00:42:22,694 --> 00:42:23,860 Sonje byen, pa di nenpòt ki moun. 871 00:42:23,860 --> 00:42:28,760 872 00:42:28,760 --> 00:42:32,930 >> -90 Segond apre, mwen nan sèlman nan chanm nan kay la kote yon ti gason nan nèf 873 00:42:32,930 --> 00:42:37,040 te kapab chita nan sou vi prive ak decode. 874 00:42:37,040 --> 00:42:39,730 Aha, B! 875 00:42:39,730 --> 00:42:42,360 Mwen te ale nan kap vini an, E. la 876 00:42:42,360 --> 00:42:44,520 >> Pawòl Bondye a premye se dwe. 877 00:42:44,520 --> 00:42:49,032 S, li te vini pi fasil kounye a, U, 25-- 878 00:42:49,032 --> 00:42:51,733 >> -Oh, Vini sou li a, Ralphie, mwen oblije ale! 879 00:42:51,733 --> 00:42:53,688 >> -I'll Dwe gen dwa desann, Ma! 880 00:42:53,688 --> 00:42:54,188 Gee sifleman! 881 00:42:54,188 --> 00:42:58,116 882 00:42:58,116 --> 00:43:04,060 >> -T, Nou menm, asire w ke to-- asire w ke ou ki sa? 883 00:43:04,060 --> 00:43:05,970 Ki sa ki te Little Òfelen Annie ap eseye di nou fè? 884 00:43:05,970 --> 00:43:07,264 Asire ou ke ou ki sa? 885 00:43:07,264 --> 00:43:09,634 >> -Ralphie, Andy te pran yo ale, yo pral ou tanpri ye konsa? 886 00:43:09,634 --> 00:43:10,480 >> -Tout Dwa, Ma! 887 00:43:10,480 --> 00:43:12,880 Mwen pral dwe gen dwa soti! 888 00:43:12,880 --> 00:43:14,550 >> -Mwen Te resevwa pi pre kounye a. 889 00:43:14,550 --> 00:43:16,620 tansyon an te terib. 890 00:43:16,620 --> 00:43:17,720 Sa ki te li? 891 00:43:17,720 --> 00:43:20,170 Sò a nan planèt la ka kwoke nan balans lan. 892 00:43:20,170 --> 00:43:20,670 >> -Ralphie! 893 00:43:20,670 --> 00:43:23,170 oblije Andy a ale! 894 00:43:23,170 --> 00:43:26,890 >> -I'll Dwe gen dwa soti, pou kriye byen fò! 895 00:43:26,890 --> 00:43:32,680 >> -Almost A, dwèt mwen te pran vòl, lide m ' te yon pèlen asye, chak pò vibre. 896 00:43:32,680 --> 00:43:37,198 Li te prèske klè, repons lan se wi, se wi, repons lan se wi. 897 00:43:37,198 --> 00:43:43,091 >> -Fè Asire w ke ou bwè Ovaltine ou yo. 898 00:43:43,091 --> 00:43:43,590 Ovaltine? 899 00:43:43,590 --> 00:43:48,160 900 00:43:48,160 --> 00:43:49,430 Yon komèsyal crummy? 901 00:43:49,430 --> 00:43:53,046 902 00:43:53,046 --> 00:43:54,227 Pitit yon femèl chen. 903 00:43:54,227 --> 00:43:54,810 [FEN lèktur] 904 00:43:54,810 --> 00:43:57,390 DAVID J. Malan: OK, se konsa sa ki te yon fason trè lontan 905 00:43:57,390 --> 00:44:00,660 nan entwodwi chifreman, epi tou li Ovaltine. 906 00:44:00,660 --> 00:44:04,470 An reyalite, ki soti nan anons sa a fin vye granmoun isit la, poukisa se Ovaltine tèlman bon? 907 00:44:04,470 --> 00:44:09,470 Li se yon ekstraksyon konsantre nan mi lòj malte, lèt pi bon kalite bèf krèm a, 908 00:44:09,470 --> 00:44:14,360 ak espesyalman prepare kakawo, ansanm ak fosfatid natirèl ak vitamin. 909 00:44:14,360 --> 00:44:18,240 Li se plis fòtifye ak vitamin adisyonèl B ak D, Yum. 910 00:44:18,240 --> 00:44:21,600 Epi ou ka toujou jwenn li, aparamman, sou Amazon, jan nou te fè isit la. 911 00:44:21,600 --> 00:44:24,810 >> Men, motivasyon an isit la te prezante chifreman, espesyalman 912 00:44:24,810 --> 00:44:28,340 yon kalite chifreman li te ye kòm sekrè chifreman kle. 913 00:44:28,340 --> 00:44:34,284 Apre sa, kòm non an sijere, tout la sekirite nan yon sistèm sekrè kriptografik kle, 914 00:44:34,284 --> 00:44:36,200 si ou vle, yon metodoloji pou jis eskalade 915 00:44:36,200 --> 00:44:40,960 enfòmasyon ant de moun, se ke sèlman moun k la ak sèlman benefisyè a 916 00:44:40,960 --> 00:44:46,980 konnen yon key-- sekrè kèk valè, gen kèk sekrè fraz, kèk nimewo sekrè, ki 917 00:44:46,980 --> 00:44:50,660 pèmèt yo nan tou de ankripte ak dechifre enfòmasyon. 918 00:44:50,660 --> 00:44:53,470 Apre sa, chifreman, reyèlman, se jis sa a soti nan semèn 0. 919 00:44:53,470 --> 00:44:56,715 >> Li se yon pwoblèm kote gen nan entrain, tankou mesaj aktyèl la nan lang angle 920 00:44:56,715 --> 00:44:59,340 oswa kèlkeswa sa lang ke ou vle voye ak yon moun nan klas, 921 00:44:59,340 --> 00:45:00,580 oswa atravè entènèt la. 922 00:45:00,580 --> 00:45:03,840 Gen kèk pwodiksyon, ki se ale yo dwe mesaj la grenpe moute ke ou 923 00:45:03,840 --> 00:45:05,250 vle moun k ap resevwa a resevwa. 924 00:45:05,250 --> 00:45:07,405 E menm si yon moun nan nan mitan resevwa l 'tou, 925 00:45:07,405 --> 00:45:09,780 ou pa vle yo nesesèman pral kapab dechifre li, 926 00:45:09,780 --> 00:45:12,840 paske andedan nan sa a bwat nwa, oswa algorithm, 927 00:45:12,840 --> 00:45:17,650 se kèk mekanis, gen kèk etap pa etap enstriksyon, pou pran ki opinyon 928 00:45:17,650 --> 00:45:20,710 ak konvèti l 'nan la pwodiksyon, nan èspere ke yon fason ki an sekirite. 929 00:45:20,710 --> 00:45:23,640 >> Epi, an reyalite, gen kèk vokabilè nan mond sa a jan sa a. 930 00:45:23,640 --> 00:45:26,100 Plain tèks se pawòl Bondye yon an syantis òdinatè ta 931 00:45:26,100 --> 00:45:28,449 itilize a dekri D 'a mesaj, tankou angle a 932 00:45:28,449 --> 00:45:31,240 oswa kèlkeswa sa lang ou aktyèlman vle voye nan kèk lòt moun. 933 00:45:31,240 --> 00:45:35,450 Lè sa a, chifre a se goumen nan enciphered a, oswa chiffres, 934 00:45:35,450 --> 00:45:36,520 vèsyon ladan l '. 935 00:45:36,520 --> 00:45:38,750 >> Men, gen nan yon lòt engredyan isit la. 936 00:45:38,750 --> 00:45:43,200 Genyen yon lòt D ' sekrè kle chifreman. 937 00:45:43,200 --> 00:45:45,200 E ke se kle nan tèt li, ki se, jeneralman, 938 00:45:45,200 --> 00:45:48,930 kòm nou pral wè, yon PO, oswa lèt, oswa mo, tou sa 939 00:45:48,930 --> 00:45:51,980 algorithm nan li se aktyèlman espere. 940 00:45:51,980 --> 00:45:53,870 >> Ak ki jan ou dechifre enfòmasyon? 941 00:45:53,870 --> 00:45:55,110 Ki jan ou fè dekode li? 942 00:45:55,110 --> 00:45:57,950 Oke, ou jis ranvèse nan rezilta ak entrain yo. 943 00:45:57,950 --> 00:46:00,900 >> Nan lòt mo, yon fwa yon moun resevwa mesaj chiffres ou, 944 00:46:00,900 --> 00:46:03,740 li oswa li te tou senpleman gen konnen ke kle menm. 945 00:46:03,740 --> 00:46:05,700 Yo te resevwa chifre a. 946 00:46:05,700 --> 00:46:09,530 Ak nan rakorde sa yo de entrain nan sistèm lan kriptografik, 947 00:46:09,530 --> 00:46:14,260 algorithm a, sa a bwat nwa, soti ta dwe vini plentèk orijinal la. 948 00:46:14,260 --> 00:46:17,830 Se konsa, sa a, se nivo a trè wo gade nan ki sa chifreman se aktyèlman 949 00:46:17,830 --> 00:46:18,590 tout sou. 950 00:46:18,590 --> 00:46:20,030 >> Se konsa nou rive la. 951 00:46:20,030 --> 00:46:22,700 Se pou nou kounye a gade anba kapo a nan yon bagay 952 00:46:22,700 --> 00:46:26,000 nou ve yo te pran pou yo akòde pou semèn ki sot pase, ak pou sesyon sa a 953 00:46:26,000 --> 00:46:27,629 isit lan-- fisèl la. 954 00:46:27,629 --> 00:46:30,295 Yon fil nan fen a nan jounen an se jis yon sekans nan karaktè. 955 00:46:30,295 --> 00:46:33,610 >> Li ta ka mond hello, oswa alo Zamyla, oswa kèlkeswa sa. 956 00:46:33,610 --> 00:46:37,050 Men, sa ki ki vle di gen yon sekans nan karaktè? 957 00:46:37,050 --> 00:46:41,520 An reyalite, bibliyotèk la CS50 bay nou yon kalite done rele fisèl. 958 00:46:41,520 --> 00:46:45,140 >> Men, gen aktyèlman pa gen okenn sa yo bagay tankou yon fisèl nan C. 959 00:46:45,140 --> 00:46:49,450 Li reyèlman se jis yon sekans nan karaktè, karaktè, karaktè, 960 00:46:49,450 --> 00:46:52,180 karaktè, tounen, nan do, nan tounen, nan do, nan do andedan 961 00:46:52,180 --> 00:46:54,650 nan memwa òdinatè w lan an, oswa RAM. 962 00:46:54,650 --> 00:46:58,940 Epitou, n ap gade pi fon nan ke nan la tan kap vini lè nou gade memwa tèt li, 963 00:46:58,940 --> 00:47:02,030 ak itilizasyon an, ak nan menas ke yo enplike nan sa. 964 00:47:02,030 --> 00:47:04,100 >> Men, kite a konsidere fisèl la Zamyla. 965 00:47:04,100 --> 00:47:07,480 Se konsa, jis non an nan moun nan isit la, Zamyla, 966 00:47:07,480 --> 00:47:12,030 ki se yon sekans nan karaktè, Z-A-M-Y-L-A. 967 00:47:12,030 --> 00:47:16,020 Epi, koulye a kite a ta kwè ke non Zamyla a se ke yo te ki estoke andedan nan yon òdinatè 968 00:47:16,020 --> 00:47:16,880 pwogram nan. 969 00:47:16,880 --> 00:47:20,830 >> Oke, li vle di rezon ke nou ta dwe pral kapab fè yon gade nan karaktè moun 970 00:47:20,830 --> 00:47:21,590 endividyèlman. 971 00:47:21,590 --> 00:47:24,710 Se konsa, mwen jis ale nan trase yon ti kras bwat alantou Non Zamyla a isit la. 972 00:47:24,710 --> 00:47:31,580 Epi li se ka a nan C ke lè ou gen yon fisèl, tankou Zamyla-- e petèt 973 00:47:31,580 --> 00:47:34,940 li te ke fisèl tounen soti nan yon fonksyon tankou jwenn fisèl, 974 00:47:34,940 --> 00:47:38,540 ou ka aktyèlman manipile li karaktè pa karaktè. 975 00:47:38,540 --> 00:47:42,070 >> Koulye a, sa a se konvnabl pou la konvèsasyon nan men, paske 976 00:47:42,070 --> 00:47:46,420 nan chifreman si ou vle chanje A jiska B, ak B nan C, ak C rive nan D, 977 00:47:46,420 --> 00:47:49,650 ak pou fè, ou bezwen yo dwe kapab fè yon gade nan karaktè yo moun 978 00:47:49,650 --> 00:47:50,190 nan yon fisèl. 979 00:47:50,190 --> 00:47:52,695 Ou bezwen yo dwe kapab chanje Z nan yon lòt bagay, A 980 00:47:52,695 --> 00:47:55,280 yon lòt bagay, M a yon lòt bagay, ak sou sa. 981 00:47:55,280 --> 00:47:58,000 Se konsa, nou bezwen yon fason sa a, pwogramasyon, se konsa 982 00:47:58,000 --> 00:48:03,020 konsa pale, nan C pou kapab chanje ak gade nan lèt endividyèl elèv yo. 983 00:48:03,020 --> 00:48:05,690 Apre sa, nou ka fè sa jan sa a. 984 00:48:05,690 --> 00:48:08,340 >> Kite m 'ale tèt tounen nan CS50 IDE. 985 00:48:08,340 --> 00:48:11,130 Ak kite m 'ale pi devan ak kreye yon dosye nouvo 986 00:48:11,130 --> 00:48:16,134 ke mwen pral rele sa a string0 tan, kòm nou an premye egzanp sa yo, dot c. 987 00:48:16,134 --> 00:48:18,300 Apre sa, mwen pral ale pi devan ak fwe l 'kanpe jan sa a. 988 00:48:18,300 --> 00:48:22,870 >> Se konsa, gen ladan CS50.h, ak Lè sa a, gen ladan estanda io.h, 989 00:48:22,870 --> 00:48:25,990 ki mwen prèske toujou ale nan lè l sèvi avèk nan pwogram m 'yo, omwen 990 00:48:25,990 --> 00:48:26,780 okòmansman. 991 00:48:26,780 --> 00:48:32,180 int anile prensipal yo, ak Lè sa a nan isit la mwen se pral fè strings vin jwenn fisèl. 992 00:48:32,180 --> 00:48:35,260 Lè sa a, mwen pral ale pi devan epi fè sa. 993 00:48:35,260 --> 00:48:37,460 Mwen vle ale pi devan epi, kòm yon chèk saniti, 994 00:48:37,460 --> 00:48:43,607 jis di, hello, pousan an, semi-kolon, fè fisèl 0. 995 00:48:43,607 --> 00:48:44,690 Uh oh, ki sa mwen t 'fè isit la? 996 00:48:44,690 --> 00:48:45,930 Oh, mwen pa t 'ploge li nan. 997 00:48:45,930 --> 00:48:48,120 Se konsa, leson te aprann, ki pa t 'entansyonèl. 998 00:48:48,120 --> 00:48:52,480 >> Se konsa, erè, plis pousan konvèsyon pase done agiman. 999 00:48:52,480 --> 00:48:54,940 Lè sa a se kote, nan liy 7-- OK, se konsa mwen gen, 1000 00:48:54,940 --> 00:48:56,690 quote unquote, sa se fisèl mwen an printf. 1001 00:48:56,690 --> 00:48:58,151 Mwen te gen yon siy pousan. 1002 00:48:58,151 --> 00:48:59,650 Men, mwen manke agiman, dezyèm lan. 1003 00:48:59,650 --> 00:49:03,190 >> Mwen manke nan la vigil, ki Mwen t 'gen nan egzanp anvan yo. 1004 00:49:03,190 --> 00:49:06,650 Se konsa, yon bon opòtinite yo ranje yon sèl plis erè, aksidantèlman. 1005 00:49:06,650 --> 00:49:09,950 Epi, koulye a kite m 'kouri string0, kalite nan Zamyla. 1006 00:49:09,950 --> 00:49:10,970 OK, alo Zamyla. 1007 00:49:10,970 --> 00:49:14,144 >> Se konsa, nou te kouri sa a kalite pwogram yon fwa kèk diferan kounye a. 1008 00:49:14,144 --> 00:49:16,310 Men, kite a fè yon bagay yon ti kras diferan tan sa a. 1009 00:49:16,310 --> 00:49:19,450 Olye pou yo jis enprime Zamyla a tout Non soti ak printf, 1010 00:49:19,450 --> 00:49:21,350 se pou yo fè l 'karaktè pa karaktè. 1011 00:49:21,350 --> 00:49:22,700 >> Mwen pral sèvi ak yon pou riban. 1012 00:49:22,700 --> 00:49:26,160 Men, mwen pral bay tèt mwen yon varyab konte, rele m. 1013 00:49:26,160 --> 00:49:33,530 Men, mwen pral kenbe iteration, se konsa lontan ke mwen se mwens pase longè a nan la. 1014 00:49:33,530 --> 00:49:35,930 >> Li sanble soti, nou pa t ' fè dènye fwa sa a, 1015 00:49:35,930 --> 00:49:39,100 ki c vini ak yon fonksyon rele Stirling. 1016 00:49:39,100 --> 00:49:42,690 Retounen nan jou a, epi an jeneral toujou lè mete ann aplikasyon fonksyon, 1017 00:49:42,690 --> 00:49:45,405 moun pral souvan chwazi trè non somèr ki kalite son 1018 00:49:45,405 --> 00:49:48,280 tankou sa ou vle, menm si li nan manke yon vwayèl kèk oswa lèt yo. 1019 00:49:48,280 --> 00:49:50,660 Se konsa, Stirling se nan non nan yon fonksyon ki 1020 00:49:50,660 --> 00:49:53,880 pran yon agiman ant parantèz ki ta dwe yon kòd. 1021 00:49:53,880 --> 00:49:56,910 Epi, se jis retounen yon nonb antye relatif, longè a nan ki fisèl. 1022 00:49:56,910 --> 00:50:00,580 >> Se konsa, sa pou riban sou liy 7 ki pral yo kòmanse konte nan m egal 0. 1023 00:50:00,580 --> 00:50:02,530 Li nan ale nan kantite mwen sou chak iterasyon 1024 00:50:02,530 --> 00:50:04,350 pa 1, menm jan nou te toujou ap fè yon fwa kèk. 1025 00:50:04,350 --> 00:50:06,780 Men, li k ap pase yo sèlman fè sa a moute jouk pwen an 1026 00:50:06,780 --> 00:50:09,660 lè mwen se longè a nan fisèl la tèt li. 1027 00:50:09,660 --> 00:50:14,520 >> Se konsa, sa se yon fason pou, finalman, iteration sou karaktè yo 1028 00:50:14,520 --> 00:50:17,430 nan fisèl la kòm se sa a. 1029 00:50:17,430 --> 00:50:20,670 Mwen pral enprime soti pa yon tout fisèl, men pousan c, 1030 00:50:20,670 --> 00:50:22,860 yon karaktè sèl ki te swiv pa yon liy nouvo. 1031 00:50:22,860 --> 00:50:24,880 Lè sa a, mwen pral ale pi devan, ak mwen bezwen 1032 00:50:24,880 --> 00:50:29,080 di mwen vle enprime on karaktè nan a. 1033 00:50:29,080 --> 00:50:33,450 >> Se konsa, si mwen se varyab la ki endike endèks la nan fisèl la, kote 1034 00:50:33,450 --> 00:50:37,230 w ap nan li, mwen bezwen pou kapab di, ban m 'pèsonaj la on nan la. 1035 00:50:37,230 --> 00:50:40,390 Epi c gen yon fason pou fè sa a ak parantèz kare. 1036 00:50:40,390 --> 00:50:43,679 Ou tou senpleman di non an nan la fisèl, ki nan ka sa a se la. 1037 00:50:43,679 --> 00:50:46,970 Lè sa a, ou itilize parantèz kare yo, ki se anjeneral jis anwo a Retounen ou a oswa Antre 1038 00:50:46,970 --> 00:50:48,110 kle sou klavye a. 1039 00:50:48,110 --> 00:50:52,410 Lè sa a, ou mete endèks la nan la karaktè ke ou vle enprime. 1040 00:50:52,410 --> 00:50:55,960 Se konsa, endèks la ki pral gen yon number-- 0, oswa 1, oswa 2, oswa 3, oswa dot, 1041 00:50:55,960 --> 00:50:57,590 dot, dot, kèk lòt kantite. 1042 00:50:57,590 --> 00:51:00,920 >> Apre sa, nou asire ke li k ap pase yo gen nimewo a dwa, paske mwen 1043 00:51:00,920 --> 00:51:02,360 kòmanse konte nan 0. 1044 00:51:02,360 --> 00:51:07,020 Apre sa, pa default, pèsonaj la premye nan yon fisèl se pa konvansyon 0. 1045 00:51:07,020 --> 00:51:09,230 Ak karaktè nan dezyèm se bracket 1. 1046 00:51:09,230 --> 00:51:11,120 Apre sa, pèsonaj la twazyèm se bracket 2. 1047 00:51:11,120 --> 00:51:13,630 Epi ou pa ta vle ale twò lwen, men nou pral se pa paske nou ap 1048 00:51:13,630 --> 00:51:17,780 ale nan sèlman kantite mwen jiskaske li egal longè a nan fisèl la. 1049 00:51:17,780 --> 00:51:20,210 Ak nan ki pwen, sa a pou riban yo ap sispann. 1050 00:51:20,210 --> 00:51:25,550 >> Se pou m 'ale pi devan epi sove sa a pwogram, ak kouri fè fisèl 0. 1051 00:51:25,550 --> 00:51:28,400 Men, mwen vise moute. 1052 00:51:28,400 --> 00:51:35,390 Chal deklare fonksyon bibliyotèk Stirling ak kalite sa yo ak such-- kounye a, 1053 00:51:35,390 --> 00:51:36,430 sa a son yo konnen yo. 1054 00:51:36,430 --> 00:51:37,440 Men, li pa nan printf. 1055 00:51:37,440 --> 00:51:38,540 Apre sa, li pa nan jwenn fisèl. 1056 00:51:38,540 --> 00:51:40,480 >> Mwen pa t 'vis moute nan menm jan an moman sa a. 1057 00:51:40,480 --> 00:51:45,100 Men, remake desann isit la yon ti kras desann pi lwen, gen ladan string.h nan header, 1058 00:51:45,100 --> 00:51:47,210 klèman bay nan deklarasyon pou Stirling. 1059 00:51:47,210 --> 00:51:48,820 Se konsa, gen se aktyèlman yon siy nan la. 1060 00:51:48,820 --> 00:51:51,670 >> Ak tout bon li vire soti gen nan yon lòt dosye header 1061 00:51:51,670 --> 00:51:53,970 ke nou pa te itilize nan klas ankò, men li la 1062 00:51:53,970 --> 00:51:56,480 nan mitan moun disponib nou la a, rele string.h. 1063 00:51:56,480 --> 00:52:00,930 Ak nan ki ranpli, string.h se Stirling deklare. 1064 00:52:00,930 --> 00:52:05,220 Se pou m 'ale pi devan epi sove sa a, fè fisèl 1065 00:52:05,220 --> 00:52:08,040 0-- bèl, pa gen mesaj erè sa a tan. 1066 00:52:08,040 --> 00:52:12,290 >> ./string0 Zamyla, ak Mwen se sou yo frape Antre, 1067 00:52:12,290 --> 00:52:16,710 nan ki pwen GetString ki pral retounen fisèl la, mete l 'nan la. 1068 00:52:16,710 --> 00:52:21,890 Lè sa a, ki pou riban ki pral repekte sou karaktè S a yon sèl nan yon tan, 1069 00:52:21,890 --> 00:52:28,420 epi enprime yo youn pou chak liy, paske Mwen te gen ki n antislach nan fen an. 1070 00:52:28,420 --> 00:52:34,530 Se konsa, mwen te kapab retire okenn pati ki antislach n, ak Lè sa a jis enprime Zamyla tout 1071 00:52:34,530 --> 00:52:37,460 nan liy la menm, efektivman reimplementing 1072 00:52:37,460 --> 00:52:38,999 printf, ki se pa tout sa ki itil. 1073 00:52:38,999 --> 00:52:40,540 Men, nan ka sa a, mwen pa te fè sa. 1074 00:52:40,540 --> 00:52:43,610 Mwen te aktyèlman enprime youn karaktè nan yon moman, yon sèl pou chak liy, 1075 00:52:43,610 --> 00:52:45,400 pou nou aktyèlman wè efè a. 1076 00:52:45,400 --> 00:52:46,900 >> Men, mwen ta dwe sonje yon sèl bagay isit la. 1077 00:52:46,900 --> 00:52:48,930 Epitou, n ap tounen vin jwenn sa a nan yon semèn nan lavni. 1078 00:52:48,930 --> 00:52:52,650 Li sanble ke sa a kòd se potansyèlman buggy. 1079 00:52:52,650 --> 00:52:56,560 >> Li sanble ke fisèl jwenn ak kèk lòt fonksyon nan lavi 1080 00:52:56,560 --> 00:53:00,280 fè pa nesesèman toujou retounen sa w ap tann. 1081 00:53:00,280 --> 00:53:03,010 Nou konnen nan klas dènye tan nan sa a ki jwenn 1082 00:53:03,010 --> 00:53:04,960 se fisèl sipoze retounen yon kòd. 1083 00:53:04,960 --> 00:53:09,900 Men, sa ki si itilizatè kalite mouvman yo soti tankou yon mo long, oswa paragraf, oswa redaksyon 1084 00:53:09,900 --> 00:53:13,010 ke gen nan jis pa ase memwa nan òdinatè a nan anfòm li. 1085 00:53:13,010 --> 00:53:15,410 >> Tankou, sa ki si gen yon bagay ale mal anba kapo a? 1086 00:53:15,410 --> 00:53:18,400 Li pa ka rive souvan, men li te ka rive yon fwa 1087 00:53:18,400 --> 00:53:21,520 nan yon ti tan, trè Rahman. 1088 00:53:21,520 --> 00:53:25,460 Se konsa, li sanble ke fisèl jwenn ak fonksyon tankou li pa fè sa nesesèman 1089 00:53:25,460 --> 00:53:26,380 toujou retounen strings. 1090 00:53:26,380 --> 00:53:30,680 Yo ta ka retounen kèk valè erè, kèk valè Sentinel se konsa pale, 1091 00:53:30,680 --> 00:53:32,612 ki endike ke yon bagay te ale mal. 1092 00:53:32,612 --> 00:53:35,320 Epi ou ta konnen sèlman sa a soti nan li te gen te aprann li nan klas kounye a, 1093 00:53:35,320 --> 00:53:37,700 oswa li te gen li kèk dokiman plis ankò. 1094 00:53:37,700 --> 00:53:43,120 Li sanble ke fisèl jwenn ka retounen yon valè rele nil. 1095 00:53:43,120 --> 00:53:46,220 Null se yon valè espesyal ki nou pral tounen nan vini nan yon semèn nan lavni. 1096 00:53:46,220 --> 00:53:50,420 Men, pou kounye a, jis konnen ke si mwen vle yo dwe reyèlman bon nan k ap deplase pou pi devan 1097 00:53:50,420 --> 00:53:52,650 lè l sèvi avèk jwenn fisèl, mwen pa ta dwe jis rele l ', 1098 00:53:52,650 --> 00:53:56,870 ak je fèmen itilize valè retounen li yo, kwè ke li nan yon fisèl. 1099 00:53:56,870 --> 00:53:59,420 >> Mwen ta dwe premye di, hey, rete tann yon minit, se sèlman 1100 00:53:59,420 --> 00:54:03,380 kontinye si la pa fè sa egal nil, kote nil, ankò, 1101 00:54:03,380 --> 00:54:04,660 se jis kèk valè espesyal. 1102 00:54:04,660 --> 00:54:07,770 Epitou, se sèlman valè a espesyal ou bezwen enkyete sou pou jwenn fisèl. 1103 00:54:07,770 --> 00:54:10,900 Jwenn fisèl se swa ale yo retounen yon fisèl oswa nil. 1104 00:54:10,900 --> 00:54:17,219 >> Lè sa a pwen esklamasyon egal siy ou ta ka konnen soti nan petèt klas matematik 1105 00:54:17,219 --> 00:54:20,510 ke ou ta ka trase yon siy egal ak yon liy nan li yo endike pa bon. 1106 00:54:20,510 --> 00:54:23,135 Sa a pa jeneralman yon karaktè ou ka tape sou klavye ou. 1107 00:54:23,135 --> 00:54:26,480 Se konsa, nan pifò lang programmation, lè ou vle di pa egal, 1108 00:54:26,480 --> 00:54:29,160 ou itilize yon pwen esklamasyon, ki te rekonèt kòm Bang. 1109 00:54:29,160 --> 00:54:33,180 Se konsa, ou di Bang egal, ki vle di pa egal, ak lojik. 1110 00:54:33,180 --> 00:54:38,060 Se jis tankou gen nan pa yon pi gwo pase, oswa egal a, oswa mwens pase 1111 00:54:38,060 --> 00:54:41,270 oswa egal bay kle sou klavye ou ki fè li tout nan yon sèl senbòl. 1112 00:54:41,270 --> 00:54:44,020 Se konsa, Se poutèt sa, nan egzanp sot pase yo, ou te fè yon bracket louvri, ak Lè sa a 1113 00:54:44,020 --> 00:54:48,670 yon siy egal, nan lòd yo fè pi gran pase oswa, di, mwens pase. 1114 00:54:48,670 --> 00:54:49,910 >> Se konsa, sa ki nan Takeaway a isit la? 1115 00:54:49,910 --> 00:54:53,880 Sa a se tou senpleman yon fason kounye a nan entwodwi sa a sentaks, karakteristik sa a, 1116 00:54:53,880 --> 00:54:57,390 iteration sou moun karaktè nan yon fisèl. 1117 00:54:57,390 --> 00:55:00,260 Epi jis tankou sa yo kare parantèz pèmèt ou jwenn nan yo, 1118 00:55:00,260 --> 00:55:03,790 konsidere sa yo parantèz kare kòm kalite Sa anpeche nan nivo sa a kache 1119 00:55:03,790 --> 00:55:06,040 konsepsyon, annakò ak sa chak pèsonaj andedan nan yon afè 1120 00:55:06,040 --> 00:55:10,180 se kalite bwat an yon kote anba kapo a nan memwa òdinatè ou a. 1121 00:55:10,180 --> 00:55:12,340 >> Men, kite a fè yon Variant nan sa a. 1122 00:55:12,340 --> 00:55:14,880 Li sanble ke sa a pwogram kòrèk. 1123 00:55:14,880 --> 00:55:18,810 Se konsa, pou chak aks CS50 nan pou evalye Kòd, sa a se kòrèk kounye a. 1124 00:55:18,810 --> 00:55:22,959 Espesyalman kounye a ke mwen tcheke pou nil, pwogram sa a pa ta dwe janm aksidan. 1125 00:55:22,959 --> 00:55:24,500 Apre sa, mwen jis konnen ke soti nan eksperyans. 1126 00:55:24,500 --> 00:55:28,040 Men, gen nan pa gen anyen lòt bagay ki nou ka vrèman ale mal isit la. 1127 00:55:28,040 --> 00:55:31,860 Men, li la pa trè byen-ki fèt, paske se pou yo ale tounen nan Basics. 1128 00:55:31,860 --> 00:55:34,450 >> Premyèman, principles-- ki sa yon pou riban fè? 1129 00:55:34,450 --> 00:55:36,290 A pou riban fè twa bagay sa yo. 1130 00:55:36,290 --> 00:55:39,340 Li inisyalizasyon kèk valè, si ou mande l 'bay. 1131 00:55:39,340 --> 00:55:41,770 Li chèk yon kondisyon. 1132 00:55:41,770 --> 00:55:45,380 Lè sa a, apre chak iterasyon, apre yo fin chak sik, 1133 00:55:45,380 --> 00:55:49,330 li ogmantasyon kèk valè, oswa valè, isit la. 1134 00:55:49,330 --> 00:55:50,600 >> Se konsa, sa sa vle di? 1135 00:55:50,600 --> 00:55:52,940 Nou inisyalize mwen a 0. 1136 00:55:52,940 --> 00:55:58,610 Nou tcheke, epi fè sèten mwen se mwens pase longè a nan la, ki se Z-A-M-Y-L-A, 1137 00:55:58,610 --> 00:55:59,900 se konsa ki se mwens pase 6. 1138 00:55:59,900 --> 00:56:02,590 Epi, tout bon, 0 kòm mwens pase 6. 1139 00:56:02,590 --> 00:56:05,580 >> Nou enprime soti Z nan non Zamyla a. 1140 00:56:05,580 --> 00:56:08,080 Apre sa, nou kantite mwen ki ant 0 a 1. 1141 00:56:08,080 --> 00:56:11,290 Nou Lè sa a, tcheke, se 1 mwens pase longè a nan a? 1142 00:56:11,290 --> 00:56:13,270 Longè a nan a se 6. 1143 00:56:13,270 --> 00:56:13,950 Wi, li se. 1144 00:56:13,950 --> 00:56:16,880 >> Se konsa, nou enprime yon nan non Zamyla a, ZA. 1145 00:56:16,880 --> 00:56:20,090 Nou kantite mwen soti nan 0, a 1, a 2. 1146 00:56:20,090 --> 00:56:23,720 Nou Lè sa a, tcheke, se 2 mwens pase longè a nan Non Zamyla a. 1147 00:56:23,720 --> 00:56:25,380 6- se konsa 2 se mwens pase 6. 1148 00:56:25,380 --> 00:56:30,460 Wi, se pou yo enprime soti kounye a M nan Non Zamyla a, pèsonaj la twazyèm. 1149 00:56:30,460 --> 00:56:34,110 >> Kle a isit la se ke sou chak iterasyon nan istwa a, mwen tcheke, 1150 00:56:34,110 --> 00:56:37,810 se mwen mwens pase longè a nan Zamyla? 1151 00:56:37,810 --> 00:56:40,350 Men, trape an se ke Stirling se pa yon pwopriyete. 1152 00:56:40,350 --> 00:56:43,100 Moun sa yo ki nan nou ki te pwograme anvan nan Java oswa lòt lang 1153 00:56:43,100 --> 00:56:46,310 ta ka konnen longè a nan yon afè se yon pwopriyete, sèlman kèk li sèlman valè. 1154 00:56:46,310 --> 00:56:50,220 >> Nan C nan ka sa a, si sa a se yon fonksyon ki se literalman 1155 00:56:50,220 --> 00:56:53,520 konte kantite karaktè nan Zamyla chak fwa 1156 00:56:53,520 --> 00:56:54,740 nou rele ki fonksyon. 1157 00:56:54,740 --> 00:56:58,500 Chak fwa ou mande òdinatè a yo sèvi ak Stirling, li nan pran yon gade nan Zamyla, 1158 00:56:58,500 --> 00:57:01,960 yo t'ap di konsa Z-A-M-Y-L-A, 6. 1159 00:57:01,960 --> 00:57:02,962 Apre sa, li retounen 6. 1160 00:57:02,962 --> 00:57:04,920 Tan nan pwochen ou rele li anndan ke pou riban, 1161 00:57:04,920 --> 00:57:08,610 li pral fè yon gade nan Zamyla ankò, di Z-A-M-Y-L-A, 6. 1162 00:57:08,610 --> 00:57:10,320 Epi, se nan ale nan retounen 6. 1163 00:57:10,320 --> 00:57:12,980 Se konsa, sa ki nan estipid sou sa a konsepsyon? 1164 00:57:12,980 --> 00:57:17,700 >> Poukisa se kòd m 'lan pa yon 5 soti nan 5 pou konsepsyon kounye a, se konsa pale? 1165 00:57:17,700 --> 00:57:20,600 Oke, mwen mande yon kesyon san nesesite. 1166 00:57:20,600 --> 00:57:23,030 M ap fè plis travay pase mwen bezwen. 1167 00:57:23,030 --> 00:57:25,370 >> Se konsa, menm si nan repons ki kòrèk, Se mwen menm ki 1168 00:57:25,370 --> 00:57:29,560 mande òdinatè a, ki sa ki longè a nan Zamyla ankò, 1169 00:57:29,560 --> 00:57:31,380 e ankò, epi ankò, epi ankò? 1170 00:57:31,380 --> 00:57:33,980 Epi sa repons se pa janm pral chanje. 1171 00:57:33,980 --> 00:57:35,900 Li nan toujou pral fè 6. 1172 00:57:35,900 --> 00:57:39,730 >> Se konsa, yon solisyon pi bon pase sa a ta dwe sa a vèsyon kap vini an. 1173 00:57:39,730 --> 00:57:43,390 Kite m 'ale pi devan epi mete l nan yon dosye separe rele string1.c, 1174 00:57:43,390 --> 00:57:44,990 jis kenbe li separe. 1175 00:57:44,990 --> 00:57:47,260 Epi li vire soti nan yon pou riban, ou kapab aktyèlman 1176 00:57:47,260 --> 00:57:50,210 deklare varyab miltip nan yon fwa. 1177 00:57:50,210 --> 00:57:53,460 >> Se konsa, mwen pral kenbe m li mete l 'nan 0. 1178 00:57:53,460 --> 00:57:56,190 Men, mwen tou ale nan ajoute yon vigil, y'ap di: 1179 00:57:56,190 --> 00:58:01,050 ban m 'yon varyab rele n, ki gen valè egal longè a afè de la. 1180 00:58:01,050 --> 00:58:09,410 Koulye a, tanpri, fè m 'kondisyon toutotan mwen se mwens pase n. 1181 00:58:09,410 --> 00:58:14,140 >> Se konsa, nan fason sa a, lojik la se ki idantik nan fen a nan jounen an. 1182 00:58:14,140 --> 00:58:18,280 Men, mwen sonje nan valè 6, nan ka sa a. 1183 00:58:18,280 --> 00:58:19,780 Ki longè a nan non Zamyla a? 1184 00:58:19,780 --> 00:58:20,860 Apre sa, mwen mete l 'nan n. 1185 00:58:20,860 --> 00:58:23,050 >> Apre sa, mwen toujou tcheke kondisyon an chak fwa. 1186 00:58:23,050 --> 00:58:24,300 Se 0 mwens pase 6? 1187 00:58:24,300 --> 00:58:25,600 Se 1 mwens pase 6? 1188 00:58:25,600 --> 00:58:28,600 Se 2 mwens pase 6, ak pou fè? 1189 00:58:28,600 --> 00:58:31,914 >> Men, mwen pa ap mande òdinatè a ankò, epi ankò, sa ki nan 1190 00:58:31,914 --> 00:58:33,080 longè a nan Non Zamyla a? 1191 00:58:33,080 --> 00:58:34,320 Ki sa ki nan longè a nan Non Zamyla a? 1192 00:58:34,320 --> 00:58:35,986 Ki sa ki nan longè a nan non nonm sa a Zamyla a? 1193 00:58:35,986 --> 00:58:40,440 Mwen literalman sonje ke premye ak sèlman reponn nan sa a dezyèm N varyab. 1194 00:58:40,440 --> 00:58:45,280 Se konsa, sa kounye a ta dwe pa sèlman kòrèk, men tou, ki byen fèt. 1195 00:58:45,280 --> 00:58:46,670 >> Koulye a, sa ki sou style? 1196 00:58:46,670 --> 00:58:48,866 Mwen te yo te rele varyab mwen trè byen, mwen ta ka di. 1197 00:58:48,866 --> 00:58:50,240 Yo ap super somèr kounye a. 1198 00:58:50,240 --> 00:58:52,090 Epi sa a, totalman amann. 1199 00:58:52,090 --> 00:58:55,120 >> Si ou sèlman gen yon sèl fisèl nan yon pwogram, 1200 00:58:55,120 --> 00:58:56,860 ou ta ka kòm byen rele li s pou fisèl. 1201 00:58:56,860 --> 00:58:59,370 Si ou sèlman gen yon sèl varyab pou konte nan yon pwogram, 1202 00:58:59,370 --> 00:59:00,710 ou ta ka kòm byen rele li mwen. 1203 00:59:00,710 --> 00:59:03,500 Si ou gen yon longè, n se super komen kòm byen. 1204 00:59:03,500 --> 00:59:05,800 Men, mwen pa te kòmante nenpòt nan Kòd m 'yo. 1205 00:59:05,800 --> 00:59:09,200 >> Mwen pa te enfòme reader-- la si wi ou non sa a, se TF mwen, oswa TA, 1206 00:59:09,200 --> 00:59:12,460 oswa jis colleague-- ki sa ki sipoze yo dwe ap pase nan pwogram sa a. 1207 00:59:12,460 --> 00:59:15,760 Se konsa, yo ka resevwa bon style, ki sa mwen ta vle fè 1208 00:59:15,760 --> 00:59:24,580 se sa a men yon bagay tankou mande itilizatè pou D '. 1209 00:59:24,580 --> 00:59:26,670 Apre sa, mwen te kapab ekri sa a nenpòt ki kantite fason. 1210 00:59:26,670 --> 00:59:35,630 >> Asire w ke s-- asire w jwenn fisèl tounen yon kòd. 1211 00:59:35,630 --> 00:59:40,280 Lè sa a, nan isit lan-- ak sa a se petèt repekte ki pi enpòtan comment-- 1212 00:59:40,280 --> 00:59:44,450 sou karaktè yo ki nan yon sèl nan yon tan. 1213 00:59:44,450 --> 00:59:47,060 Apre sa, mwen te kapab sèvi ak nenpòt chwa nan lang angle 1214 00:59:47,060 --> 00:59:49,650 la a yo dekri chak nan sa yo fragman nan kòd. 1215 00:59:49,650 --> 00:59:52,740 >> Remake mwen pa t 'mete yon kòmantè sou chak liy nan kòd, 1216 00:59:52,740 --> 00:59:55,690 vrèman jis sou enteresan an yo menm, sa yo ki 1217 00:59:55,690 --> 00:59:59,460 gen kèk siyifikasyon ke mwen ta ka vle fè super klè ak yon moun 1218 00:59:59,460 --> 01:00:00,460 lekti Kòd m 'yo. 1219 01:00:00,460 --> 01:00:02,920 Apre sa, poukisa w'ap rele jwenn fisèl Ask pou D '? 1220 01:00:02,920 --> 01:00:05,450 Menm ke yon moun se pa nesesèman tout sa ki deskriptif. 1221 01:00:05,450 --> 01:00:09,340 Men, li te ede rakonte yon istwa, paske nan dezyèm liy nan istwa a se, asire w ke 1222 01:00:09,340 --> 01:00:10,740 jwenn fisèl tounen yon kòd. 1223 01:00:10,740 --> 01:00:14,260 >> Ak liy lan twazyèm nan istwa a se, repekte sou karaktè yo ki nan yon sèl 1224 01:00:14,260 --> 01:00:15,380 nan yon tan. 1225 01:00:15,380 --> 01:00:17,920 Epi, koulye a jis pou bon mezi, Mwen pral ale pi devan epi ajoute 1226 01:00:17,920 --> 01:00:24,560 yon sèl plis kòmantè ki jis di ekri an lèt detache m-th karaktè nan a. 1227 01:00:24,560 --> 01:00:26,520 Koulye a, kisa m 'fè nan fen jounen an? 1228 01:00:26,520 --> 01:00:29,190 >> Mwen gen te ajoute kèk angle mo nan fòm lan nan kòmantè. 1229 01:00:29,190 --> 01:00:32,700 Senbòl la koupe koupe vle di, hey, òdinatè sa a se pou moun lan, 1230 01:00:32,700 --> 01:00:33,820 pa pou ou, òdinatè a. 1231 01:00:33,820 --> 01:00:35,119 Se konsa, yo ap inyore ak lojik. 1232 01:00:35,119 --> 01:00:35,910 Yo ap jis la. 1233 01:00:35,910 --> 01:00:39,830 >> Epi, tout bon, CS50 IDE montre yo tankou gri, tankou se te itil, men se pa kle 1234 01:00:39,830 --> 01:00:41,000 nan pwogram nan. 1235 01:00:41,000 --> 01:00:42,570 Gade sa ou kapab kounye a fè. 1236 01:00:42,570 --> 01:00:44,950 Si ou konnen C pwogramasyon oswa ou pa, ou 1237 01:00:44,950 --> 01:00:47,722 ka jis kanpe tounen nan sa a pwogram, ak ekreme kòmantè yo. 1238 01:00:47,722 --> 01:00:50,180 Mande itilizatè pou D ', asire w ke jwenn fisèl tounen yon fisèl, 1239 01:00:50,180 --> 01:00:53,009 repekte sou karaktè yo ki nan la yon sèl nan yon tan, enprime pèsonaj la 1240 01:00:53,009 --> 01:00:55,550 m-th karaktè nan s-- ou pa fè sa menm gen fè yon gade nan kòd la 1241 01:00:55,550 --> 01:00:57,270 a konprann ki sa pwogram sa a fè. 1242 01:00:57,270 --> 01:01:00,280 Epi, pi bon toujou, si ou tèt ou gade nan pwogram sa a nan yon semenn oswa de, 1243 01:01:00,280 --> 01:01:02,280 yon mwa, yon lanne, ou twò pa gen 1244 01:01:02,280 --> 01:01:04,420 yo fikse nan kòd la, ap eseye sonje, 1245 01:01:04,420 --> 01:01:06,630 sa ki te mwen ap eseye fè ak kòd sa a? 1246 01:01:06,630 --> 01:01:07,770 >> Ou te di tèt ou. 1247 01:01:07,770 --> 01:01:11,660 Ou te dekri li pou tèt ou, oswa kèk kòlèg, oswa TA, oswa TF. 1248 01:01:11,660 --> 01:01:14,860 Se konsa, sa a ta kounye a dwe kòrèk, ak bon konsepsyon, 1249 01:01:14,860 --> 01:01:18,210 epi finalman bon style kòm byen. 1250 01:01:18,210 --> 01:01:19,990 Se konsa, fè kenbe ki nan tèt li. 1251 01:01:19,990 --> 01:01:22,200 >> Se konsa, gen nan yon lòt bagay mwen pral fè isit la 1252 01:01:22,200 --> 01:01:28,240 ki kapab kounye a revele egzakteman sa ki nan ale sou anba kapo a. 1253 01:01:28,240 --> 01:01:30,390 Se konsa, gen nan karakteristik sa a nan C, ak lòt lang, 1254 01:01:30,390 --> 01:01:33,010 rele typecasting ki swa chal 1255 01:01:33,010 --> 01:01:37,250 oswa klèman pèmèt ou konvèti soti nan yon kalite done nan yon lòt. 1256 01:01:37,250 --> 01:01:39,800 Nou te ap fè fas se konsa lwen jodi a ak strings. 1257 01:01:39,800 --> 01:01:41,250 >> Apre sa, strings yo se karaktè. 1258 01:01:41,250 --> 01:01:44,910 Men, sonje soti nan semèn 0, ki sa yo karaktè? 1259 01:01:44,910 --> 01:01:49,334 Karaktè yo se jis yon distraksyon sou tèt nan nimewo desimal numéros, 1260 01:01:49,334 --> 01:01:52,500 ak nimewo desimal yo se reyèlman jis yon distraksyon sou tèt nan nimewo binè, 1261 01:01:52,500 --> 01:01:53,720 jan nou defini li. 1262 01:01:53,720 --> 01:01:55,540 >> Se konsa, karaktè yo chif yo. 1263 01:01:55,540 --> 01:01:58,410 Ak nimewo yo se karaktè, jis depann sou kontèks la. 1264 01:01:58,410 --> 01:02:01,250 Epi li vire soti ke andedan nan yon pwogram òdinatè, 1265 01:02:01,250 --> 01:02:06,830 ou ka presize ki jan ou vle gade nan Bits yo andedan nan ki pwogram? 1266 01:02:06,830 --> 01:02:10,400 >> Rapèl soti nan semèn 0 ke nou te Ascii, ki se jis kòd sa a 1267 01:02:10,400 --> 01:02:11,620 kat lèt bay chif yo. 1268 01:02:11,620 --> 01:02:13,660 Nou te reponn, kapital A se 65. 1269 01:02:13,660 --> 01:02:15,860 Kapital B se 66, ak pou fè. 1270 01:02:15,860 --> 01:02:20,500 >> Apre sa, avi, nou esansyèlman gen charaktèr sou ranje nan tèt isit la, kòm C tapral ba yo, 1271 01:02:20,500 --> 01:02:23,400 karaktè, ak Lè sa a antye nan dezyèm ranje a. 1272 01:02:23,400 --> 01:02:28,180 Epi li vire soti ou ka konvèti transparans ant de a, tipikman. 1273 01:02:28,180 --> 01:02:30,042 Men, si nou vle fè sa a fè espre, nou 1274 01:02:30,042 --> 01:02:31,750 ta ka vle atake yon bagay konsa. 1275 01:02:31,750 --> 01:02:33,590 >> Nou ta ka vle konvèti anwo ka pi ba 1276 01:02:33,590 --> 01:02:35,330 ka, oswa pi ba ka nan dosye anwo kay la. 1277 01:02:35,330 --> 01:02:38,000 Epi li vire soti gen nan aktyèlman yon modèl isit la 1278 01:02:38,000 --> 01:02:39,900 nou ka anbrase nan jis yon moman. 1279 01:02:39,900 --> 01:02:44,120 Men, se pou pou yo gade premye nan yon egzanp sou fè sa klèman. 1280 01:02:44,120 --> 01:02:46,340 >> Mwen pral ale tounen nan CS50 IDE. 1281 01:02:46,340 --> 01:02:50,640 Mwen pral kreye yon dosye rele ASCII 0.c. 1282 01:02:50,640 --> 01:02:55,960 Apre sa, mwen pral ale pi devan epi ajoute m ' estanda io.h nan tèt la, int anile prensipal 1283 01:02:55,960 --> 01:02:57,370 nan tèt yo nan fonksyon m 'yo. 1284 01:02:57,370 --> 01:03:02,700 Lè sa a, mwen jis pral fè a annapre yon pou riban soti nan mwen egal, 1285 01:03:02,700 --> 01:03:04,610 se pou yo di, 65. 1286 01:03:04,610 --> 01:03:10,460 >> Lè sa a, mwen a pwal mwens pase 65, plis 26 lèt nan alfabè a. 1287 01:03:10,460 --> 01:03:12,640 Se konsa, mwen pral kite òdinatè a fè matematik la pou m 'la. 1288 01:03:12,640 --> 01:03:15,100 Lè sa a, andedan sa a bouk, ki sa mwen pral enprime? 1289 01:03:15,100 --> 01:03:19,230 >> % C se% m antislach n. 1290 01:03:19,230 --> 01:03:21,290 Epi, koulye a mwen vle ploge nan de valè. 1291 01:03:21,290 --> 01:03:24,530 Mwen te pou yon ti tan mete kesyon make gen envite kesyon an. 1292 01:03:24,530 --> 01:03:29,940 >> Mwen vle repekte nan 65 pati pou 26 lèt nan alfabè a, 1293 01:03:29,940 --> 01:03:35,190 enprime soti sou chak iterasyon ki entegral ekivalan karaktè la. 1294 01:03:35,190 --> 01:03:38,299 Nan lòt mo, mwen vle repekte sou 26 nimewo enprime 1295 01:03:38,299 --> 01:03:41,590 sa pèsonaj la ASCII se, lèt la, ak sa nimewo ki koresponn lan is-- 1296 01:03:41,590 --> 01:03:44,650 vrèman jis rkree tablo a soti nan ki glise. 1297 01:03:44,650 --> 01:03:47,010 Se konsa, sa ta dwe sa yo mak kesyon ta dwe ye? 1298 01:03:47,010 --> 01:03:51,760 >> Oke, li sanble ke dezyèm lan youn ta dwe jis pou mwen an varyab. 1299 01:03:51,760 --> 01:03:53,860 Mwen vle wè ke kòm yon kantite. 1300 01:03:53,860 --> 01:03:58,920 Apre sa, agiman an mitan isit la, mwen ka di òdinatè a 1301 01:03:58,920 --> 01:04:03,470 nan trete ki nonb antye ki pè mwen kòm yon karaktè, se konsa yo 1302 01:04:03,470 --> 01:04:05,880 pran plas li isit la pou pousan C. 1303 01:04:05,880 --> 01:04:07,990 >> Nan lòt mo, si mwen, an pwogramè imen, konnen 1304 01:04:07,990 --> 01:04:09,865 sa yo, se jis nimewo nan fen jounen an. 1305 01:04:09,865 --> 01:04:12,500 Apre sa, mwen konnen ke 65 ta dwe kat jeyografik nan kèk karaktè. 1306 01:04:12,500 --> 01:04:15,310 Avèk jete sa a klè, ak yon parantèz, 1307 01:04:15,310 --> 01:04:18,840 non an nan kalite la done ou vle konvèti nan, ak yon parantèz fèmen, 1308 01:04:18,840 --> 01:04:21,200 ou ka di la òdinatè, hey, òdinatè, 1309 01:04:21,200 --> 01:04:24,130 konvèti nonb antye relatif sa a nan yon Char. 1310 01:04:24,130 --> 01:04:26,250 >> Se konsa, lè mwen kouri sa a pwogram apre konpile, 1311 01:04:26,250 --> 01:04:29,740 se pou yo wè sa m 'get-- fè ASCII 0. 1312 01:04:29,740 --> 01:04:33,020 Reprize li, ki sa mwen t 'fè sa ki mal isit la? 1313 01:04:33,020 --> 01:04:35,884 Sèvi ak nan sekrè idantifyan, tout dwa, pa entansyonèl, 1314 01:04:35,884 --> 01:04:37,800 men kite a wè si nou pa kapab rezon nan sa a. 1315 01:04:37,800 --> 01:04:41,220 >> Se konsa, liy five-- Se konsa, mwen pa t 'jwenn byen lwen anvan bèz yo. 1316 01:04:41,220 --> 01:04:42,140 Se byen. 1317 01:04:42,140 --> 01:04:46,560 Se konsa, liy 5 pou m egal 65-- mwen wè. 1318 01:04:46,560 --> 01:04:50,130 Se konsa, sonje ke nan C, kontrèman ak kèk lang si ou gen pwogram anvan 1319 01:04:50,130 --> 01:04:52,190 eksperyans, ou gen di òdinatè a, 1320 01:04:52,190 --> 01:04:55,040 kontrèman ak grafouyen, sa di ki kalite varyab li ye. 1321 01:04:55,040 --> 01:04:56,860 >> Apre sa, mwen bliye yon fraz kle isit la. 1322 01:04:56,860 --> 01:04:59,200 Nan liy senk, mwen te te kòmanse lè l sèvi avèk mwen. 1323 01:04:59,200 --> 01:05:01,560 Men, mwen pa te di C ki sa done kalite li ye. 1324 01:05:01,560 --> 01:05:04,570 Se konsa, mwen pral ale nan isit la ak di, ah, fè l 'yon nonb antye relatif. 1325 01:05:04,570 --> 01:05:07,050 >> Koulye a, mwen pral ale pi devan ak compile. 1326 01:05:07,050 --> 01:05:08,080 Sa fiks sa. 1327 01:05:08,080 --> 01:05:12,660 ./ascii0 Antre, sa a, se kalite fre. 1328 01:05:12,660 --> 01:05:15,360 Pa sèlman se li super vit mande òdinatè a kesyon sa a, 1329 01:05:15,360 --> 01:05:18,885 olye ke gade l 'kanpe sou yon glise, li enprime soti yon sèl pou chak liy, A se 65, 1330 01:05:18,885 --> 01:05:24,860 B se 66, tout wout la down-- depi m ' te fè sa 26 jou- jiska Z nan lèt, 1331 01:05:24,860 --> 01:05:25,630 ki se 90. 1332 01:05:25,630 --> 01:05:27,790 Epi, an reyalite, yon ti kras plis entelijan ta 1333 01:05:27,790 --> 01:05:31,030 yo te pou m 'pa fè konfyans sou òdinatè a yo ajoute 26. 1334 01:05:31,030 --> 01:05:34,060 Mwen te kapab jis fè 90 kòm byen, lontan 1335 01:05:34,060 --> 01:05:37,390 jan mwen pa fè erè nan menm de fwa. 1336 01:05:37,390 --> 01:05:41,880 Mwen vle ale moute nan z, pa sèlman moute nan y. 1337 01:05:41,880 --> 01:05:44,000 >> Se poutèt sa se yon jete eksplisit. 1338 01:05:44,000 --> 01:05:47,860 Li sanble ke sa a se pa menm nesesè. 1339 01:05:47,860 --> 01:05:52,480 Kite m 'ale pi devan epi relance sa a du, ak relance ASCII 0. 1340 01:05:52,480 --> 01:05:54,940 Li sanble ke C se trè entelijan. 1341 01:05:54,940 --> 01:05:57,150 >> Apre sa, printf, an patikilye, se trè entelijan. 1342 01:05:57,150 --> 01:06:01,260 Si ou jis pase yon m de fwa pou tou de placeholders, printf 1343 01:06:01,260 --> 01:06:04,510 pral reyalize, o, byen Mwen konnen ou te bay m 'yon integer-- kèk nimewo, 1344 01:06:04,510 --> 01:06:06,380 tankou 65, oswa 90, oswa kèlkeswa sa. 1345 01:06:06,380 --> 01:06:10,170 Men, mwen wè ke ou vle m ' fòma ladan nimewo tankou yon karaktè. 1346 01:06:10,170 --> 01:06:16,460 Se konsa, printf ka chal jete int nan yon Char pou ou kòm byen. 1347 01:06:16,460 --> 01:06:19,360 Se poutèt sa se pa yon pwoblèm nan tout. 1348 01:06:19,360 --> 01:06:23,100 >> Men, remake, paske nan sa ekivalans nou ka aktyèlman fè sa a tou. 1349 01:06:23,100 --> 01:06:26,520 Kite m 'ale pi devan epi fè yon sèl lòt vèsyon an sa a men 1.c. ASCII 1350 01:06:26,520 --> 01:06:31,800 Ak olye pou yo iteration sou nonm antye yo, ka vrèman kònen tèt ou 1351 01:06:31,800 --> 01:06:33,610 pa iteration sou karaktè. 1352 01:06:33,610 --> 01:06:37,660 Si yon Char c vin kapital A, mwen vle ale pi devan epi fè sa, 1353 01:06:37,660 --> 01:06:41,740 toutotan C se mwens pase oswa egal Z. kapital Yo, epi sou chak iterasyon 1354 01:06:41,740 --> 01:06:45,690 Mwen vle kantite C, mwen kapab kounye a nan liy printf m 'isit la 1355 01:06:45,690 --> 01:06:51,320 di, pousan C se pousan mwen ankò, vigil C. 1356 01:06:51,320 --> 01:06:57,200 >> Epi, koulye a, mwen ka ale nan lòt direksyon an, Distribisyon pèsonaj la klèman 1357 01:06:57,200 --> 01:06:58,500 nan yon nonb antye relatif. 1358 01:06:58,500 --> 01:07:00,560 Se konsa, ankò, poukisa ta ou fè sa? 1359 01:07:00,560 --> 01:07:03,830 Li se yon ti kras etranj yo sòt nan konte an tèm de karaktè. 1360 01:07:03,830 --> 01:07:07,430 >> Men, si ou konprann sa ki nan ale sou anba kapo a, 1361 01:07:07,430 --> 01:07:08,430 gen nan reyèlman pa gen okenn majik. 1362 01:07:08,430 --> 01:07:13,060 W ap jis di, hey, òdinatè bay m 'yon varyab rele C nan kalite Char. 1363 01:07:13,060 --> 01:07:16,520 Inisyalize li yo nan kapital A. Apre sa, remake sèl quotes matyè. 1364 01:07:16,520 --> 01:07:19,580 >> Pou karaktè nan C, sonje soti nan semèn pase a, ou itilize quotes sèl. 1365 01:07:19,580 --> 01:07:23,720 Pou strings, pou mo, fraz, ou itilize quotes doub. 1366 01:07:23,720 --> 01:07:27,210 OK, òdinatè, kenbe fè sa, se konsa lontan ke pèsonaj la se mwens pase 1367 01:07:27,210 --> 01:07:28,050 oswa egal a z. 1368 01:07:28,050 --> 01:07:32,640 Apre sa, mwen konnen nan tablo ASCII mwen ke tout nan kòd ASCII sa yo, se vwazen. 1369 01:07:32,640 --> 01:07:33,400 >> Gen nan pa gen twou vid ki genyen. 1370 01:07:33,400 --> 01:07:36,737 Se konsa, li jis A jiska Z, separe pa yon sèl nimewo chak. 1371 01:07:36,737 --> 01:07:38,820 Lè sa a, mwen kapab kantite yon Char, si mwen vle reyèlman. 1372 01:07:38,820 --> 01:07:40,390 Nan fen jounen an, li nan jis yon kantite. 1373 01:07:40,390 --> 01:07:41,030 Mwen konnen sa a. 1374 01:07:41,030 --> 01:07:43,670 Se konsa, mwen ka jis konprann nou ka ajoute 1 nan li. 1375 01:07:43,670 --> 01:07:46,940 >> Lè sa a, tan sa a, mwen enprime c, ak Lè sa a ekivalan a entegral. 1376 01:07:46,940 --> 01:07:50,170 Apre sa, mwen pa menm bezwen jete nan eksplisit. 1377 01:07:50,170 --> 01:07:52,680 Mwen ka kite printf a ak figi òdinatè bagay sa yo soti, 1378 01:07:52,680 --> 01:07:57,300 se konsa ke kounye a si mwen kouri fè Ascii1./ascii1, 1379 01:07:57,300 --> 01:08:01,520 Mwen jwenn egzak menm bagay la tou. 1380 01:08:01,520 --> 01:08:04,530 >> Initil pwogram, though-- pa gen yon ki pral aktyèlman ekri lojisyèl 1381 01:08:04,530 --> 01:08:07,549 yo nan lòd yo konnen ki, sa ki te nan nimewo ki kat A, oswa B, oswa Z? 1382 01:08:07,549 --> 01:08:10,340 W ap jis ale nan Google li, oswa gade l 'kanpe sou entènèt, oswa gade l' kanpe 1383 01:08:10,340 --> 01:08:11,650 sou yon glise, oswa renmen an. 1384 01:08:11,650 --> 01:08:13,520 Se konsa, kote sa a aktyèlman jwenn itil? 1385 01:08:13,520 --> 01:08:15,960 >> Oke, ann pale de glise, remake gen nan 1386 01:08:15,960 --> 01:08:20,890 yon modèl aktyèl isit la ant majuskul ak miniskil ki pa t 'aksidan. 1387 01:08:20,890 --> 01:08:23,760 Remake kapital A se 65. 1388 01:08:23,760 --> 01:08:25,830 Miniskil yon se 97. 1389 01:08:25,830 --> 01:08:29,649 Ak ki jan byen lwen se pi ba ka yon? 1390 01:08:29,649 --> 01:08:32,649 >> Se konsa, 65 se konbyen etap lwen 97? 1391 01:08:32,649 --> 01:08:36,210 Se konsa, 97 mwens 65 se 32. 1392 01:08:36,210 --> 01:08:37,910 Se konsa, kapital yon se 65. 1393 01:08:37,910 --> 01:08:39,939 Si ou ajoute 32 ak sa yo ki, ou jwenn miniskil a. 1394 01:08:39,939 --> 01:08:43,729 Epi, équivalant, si ou fè soustraksyon 32, ou jwenn tounen nan kapital A-- menm ak B 1395 01:08:43,729 --> 01:08:46,380 ti kras b, gwo C rive nan ti kras c. 1396 01:08:46,380 --> 01:08:50,670 >> Tout moun nan twou vid ki genyen sa yo, se 32 apa. 1397 01:08:50,670 --> 01:08:54,450 Koulye a, sa ta sanble yo pèmèt nou fè yon bagay tankou Microsoft Word, 1398 01:08:54,450 --> 01:08:57,729 oswa Google Docs prezante, kote ou ka chwazi tout bagay ak Lè sa a di, 1399 01:08:57,729 --> 01:09:00,520 chanje tout moun miniskil, oswa chanje tout nan dosye anwo, 1400 01:09:00,520 --> 01:09:03,840 oswa chanje sèlman pawòl Bondye a premye nan yon fraz nan dosye anwo kay la. 1401 01:09:03,840 --> 01:09:07,390 Nou ka aktyèlman fè yon bagay tankou sa tèt nou. 1402 01:09:07,390 --> 01:09:12,645 >> Kite m 'ale pi devan epi sove yon dosye isit la yo rele kapitalize 0.c. 1403 01:09:12,645 --> 01:09:15,770 Li kite yo ale pi devan epi fwe moute yon pwogram ki fè egzakteman sa jan sa a. 1404 01:09:15,770 --> 01:09:18,460 Se konsa, gen ladan bibliyotèk la CS50. 1405 01:09:18,460 --> 01:09:21,430 Epi yo genyen ladan estanda mwen / O. 1406 01:09:21,430 --> 01:09:22,787 >> Apre sa, mwen konnen sa a ap vini byento. 1407 01:09:22,787 --> 01:09:24,870 Se konsa, mwen ale nan mete l 'nan gen deja, string.h, 1408 01:09:24,870 --> 01:09:26,960 Se konsa, mwen gen aksè nan bagay sa yo tankou Stirling, 1409 01:09:26,960 --> 01:09:29,620 ak Lè sa a int anile prensipal yo, kòm dabitid. 1410 01:09:29,620 --> 01:09:33,420 Lè sa a, mwen pral ale pi devan ak fè strings vin jwenn fisèl, 1411 01:09:33,420 --> 01:09:35,032 jis yo ka resevwa yon fisèl soti nan itilizatè a. 1412 01:09:35,032 --> 01:09:36,740 Lè sa a, mwen pral fè chèk saniti mwen. 1413 01:09:36,740 --> 01:09:40,510 Si fisèl pa fè sa egal nil, Lè sa a, li nan san danje kontinye. 1414 01:09:40,510 --> 01:09:42,000 Ak sa ki fè mwen vle fè? 1415 01:09:42,000 --> 01:09:48,700 Mwen pral repekte soti nan mwen egal 0, ak n jiska longè a afè de la. 1416 01:09:48,700 --> 01:09:51,899 >> Men, mwen pral fè sa toutotan mwen se mwens pase n, e mwen plis plis. 1417 01:09:51,899 --> 01:09:55,060 Se konsa, lwen, mwen vrèman jis prete ide ki soti anvan. 1418 01:09:55,060 --> 01:09:57,010 Epi, koulye a mwen pral prezante yon branch. 1419 01:09:57,010 --> 01:09:59,635 >> Se konsa, panse tounen nan grafouyen, kote nou te gen moun fouchèt nan wout la, 1420 01:09:59,635 --> 01:10:05,110 ak semèn pase a nan C. mwen pral di sa a, si pèsonaj la m-th nan la 1421 01:10:05,110 --> 01:10:09,250 se pi gran pase oswa egal pi ba ka yon, 1422 01:10:09,250 --> 01:10:13,340 and-- nan grafouyen ou ta literalman di ak, men nan C ou di comercial, 1423 01:10:13,340 --> 01:10:19,830 ampersand-- ak karaktè nan m-th nan la se mwens pase oswa egal a pi ba ka z, 1424 01:10:19,830 --> 01:10:21,780 se pou yo fè yon bagay ki enteresan. 1425 01:10:21,780 --> 01:10:27,020 Se pou nou aktyèlman enprime soti yon pèsonaj ki pa gen okenn newline 1426 01:10:27,020 --> 01:10:31,760 ki se karaktè a nan fisèl la, pèsonaj la m-th nan fisèl la. 1427 01:10:31,760 --> 01:10:37,420 >> Men, kite a ale pi devan epi fè soustraksyon 32 soti nan li. 1428 01:10:37,420 --> 01:10:42,120 Lòt Bagay si karaktè a nan la fisèl ke nou ap chèche 1429 01:10:42,120 --> 01:10:45,950 se pa ant ti kras yon ak yon ti kras z, ale pi devan 1430 01:10:45,950 --> 01:10:48,610 ak jis enprime li soti chanje. 1431 01:10:48,610 --> 01:10:50,840 Se konsa, nou te prezante sa a notasyon kwochè 1432 01:10:50,840 --> 01:10:53,560 pou strings nou an yo ka resevwa nan la m-th karaktè nan fisèl la. 1433 01:10:53,560 --> 01:10:57,520 >> Mwen te ajoute kèk lojik kondisyonèl, tankou Grafouyen nan yon semèn semèn pase a, kote 1434 01:10:57,520 --> 01:10:59,880 Mwen jis lè l sèvi avèk fondamantal mwen konpreyansyon yo genyen sou sa ki nan 1435 01:10:59,880 --> 01:11:01,130 ale sou anba kapo a. 1436 01:11:01,130 --> 01:11:04,190 Èske pèsonaj la m-th nan la pi gran pase oswa egal a yon? 1437 01:11:04,190 --> 01:11:08,290 Tankou, se li 97, oswa 98, oswa 99, ak pou fè? 1438 01:11:08,290 --> 01:11:11,940 >> Men, se li tou mwens pase oswa egal nan valè a nan miniskil z? 1439 01:11:11,940 --> 01:11:16,210 Men, si se konsa, ki liy sa a vle di? 1440 01:11:16,210 --> 01:11:20,250 14, sa a se sòt de la jèm nan lide a tout antye, 1441 01:11:20,250 --> 01:11:23,840 kapitalize lèt la pa tou senpleman soustraksyon 32 soti nan li, 1442 01:11:23,840 --> 01:11:29,370 nan ka sa a, paske mwen konnen, pou chak ki tablo, Ki jan nimewo m 'yo ap reprezante. 1443 01:11:29,370 --> 01:11:33,925 Se konsa, kite yo ale pi devan epi kouri sa a, apre konpile kapitalize 0.c, 1444 01:11:33,925 --> 01:11:36,210 ak kouri kapitalize 0. 1445 01:11:36,210 --> 01:11:40,300 >> Se pou nan tape nan yon bagay tankou Zamyla nan tout miniskil antre. 1446 01:11:40,300 --> 01:11:42,780 Epi, koulye a nou gen Zamyla nan tout majuskul. 1447 01:11:42,780 --> 01:11:45,050 Se pou nou tape nan Rob nan tout miniskil. 1448 01:11:45,050 --> 01:11:46,674 Ann eseye Jason nan tout miniskil. 1449 01:11:46,674 --> 01:11:48,590 Apre sa, nou kontinye resevwa nan fòse lèt majiskil. 1450 01:11:48,590 --> 01:11:50,960 Genyen yon ensèk minè ke mwen kalite pa t 'antisipe. 1451 01:11:50,960 --> 01:11:54,050 Avi nouvo èd memwa mwen an fini monte sou liy lan menm jan ak non yo, 1452 01:11:54,050 --> 01:11:55,520 ki santi l yon ti kras sal. 1453 01:11:55,520 --> 01:11:59,170 >> Se konsa, mwen pral ale isit la, ak aktyèlman nan fen pwogram sa a 1454 01:11:59,170 --> 01:12:02,110 enprime soti yon karaktè newline. 1455 01:12:02,110 --> 01:12:03,160 Sa a tout. 1456 01:12:03,160 --> 01:12:06,120 Avèk printf, ou pa bezwen pase nan varyab oswa kòd fòma. 1457 01:12:06,120 --> 01:12:08,460 Ou ka literalman jis enprime yon bagay tankou yon newline. 1458 01:12:08,460 --> 01:12:13,529 >> Se konsa nou ale pi devan epi fè kapitalize 0 ankò, relance li, Zamyla. 1459 01:12:13,529 --> 01:12:14,820 Epi kounyeya, se nan yon ti kras bèl pase. 1460 01:12:14,820 --> 01:12:17,274 Koulye a, èd memwa mwen an se sou pwòp nouvo liy li yo. 1461 01:12:17,274 --> 01:12:18,440 Se poutèt sa se tout bon epi li bon. 1462 01:12:18,440 --> 01:12:19,910 Se poutèt sa se yon bon egzanp. 1463 01:12:19,910 --> 01:12:22,700 Men, mwen pa fè sa menm nesesèman bezwen difisil Kòd 32 an. 1464 01:12:22,700 --> 01:12:23,350 Ou konnen ki sa? 1465 01:12:23,350 --> 01:12:26,350 Mwen te kapab say-- mwen pa fè sa tout tan tout tan sonje sa diferans lan se. 1466 01:12:26,350 --> 01:12:29,330 >> Men, mwen konnen ke si mwen gen yon lèt ka pi ba, 1467 01:12:29,330 --> 01:12:34,430 Mwen esansyèlman vle fè soustraksyon nan tou sa distans la se ant ti kras 1468 01:12:34,430 --> 01:12:39,160 yon ak gwo Yon, paske si Mwen sipoze ke tout lòt lèt yo se menm bagay la, 1469 01:12:39,160 --> 01:12:41,045 ki ta dwe jwenn travay la fèt. 1470 01:12:41,045 --> 01:12:42,670 Men, olye ke fè sa, ou konnen ki sa? 1471 01:12:42,670 --> 01:12:44,240 Genyen yon lòt fason toujou. 1472 01:12:44,240 --> 01:12:48,090 >> Si sa a kapitalize 1.c-- si m 'te yo mete ki nan yon dosye ki apa a. 1473 01:12:48,090 --> 01:12:51,030 se pou yo kapitalize 2.c jan sa a. 1474 01:12:51,030 --> 01:12:53,060 Mwen pral reyèlman netwaye sa a moute isit la. 1475 01:12:53,060 --> 01:12:57,420 Ak olye pou yo menm gen konnen oswa pran swen sou moun nivo ki ba 1476 01:12:57,420 --> 01:13:01,090 detay aplikasyon, mwen se olye pou jis ale nan enprime yon karaktè, 1477 01:13:01,090 --> 01:13:04,610 quote unquote, pousan C, ak Lè sa a, rele yon lòt fonksyon ki 1478 01:13:04,610 --> 01:13:09,950 egziste ki pran yon diskisyon, ki se yon karaktè, tankou sa a. 1479 01:13:09,950 --> 01:13:12,630 >> Li sanble nan C, gen nan yon lòt fonksyon rele 1480 01:13:12,630 --> 01:13:15,550 nan Upper, ki kòm non li sijere pran yon karaktè 1481 01:13:15,550 --> 01:13:19,350 ak fè li nan dosye anwo li yo ekivalan, ak Lè sa a retounen li 1482 01:13:19,350 --> 01:13:21,410 se konsa ke printf kapab ploge li nan la. 1483 01:13:21,410 --> 01:13:25,484 Se konsa, fè sa, menm si, mwen bezwen prezante yon lòt dosye-a. 1484 01:13:25,484 --> 01:13:28,400 Li sanble gen nan yon lòt dosye ke ou ta ka konnen sèlman nan klas, 1485 01:13:28,400 --> 01:13:33,020 oswa yon liv, oswa yon sou entènèt referans, ki rele C type.h. 1486 01:13:33,020 --> 01:13:38,570 >> Se konsa, si mwen ajoute ke nan mitan header m ' dosye, e kounye a, re-konpile pwogram sa a, 1487 01:13:38,570 --> 01:13:43,040 capitalize2, ./capitalize2 Antre nan. 1488 01:13:43,040 --> 01:13:46,690 Se pou nou tape nan Zamyla nan tout miniskil, toujou ap travay menm bagay la. 1489 01:13:46,690 --> 01:13:48,040 Men, ou konnen ki sa? 1490 01:13:48,040 --> 01:13:55,590 Li sanble ke yo anwo gen kèk lòt fonctionnalités. 1491 01:13:55,590 --> 01:13:58,410 >> Ak kite m 'prezante sa a mande isit la, sòt de malabiyman 1492 01:13:58,410 --> 01:14:00,250 yo te rele, men moun pou manyèl. 1493 01:14:00,250 --> 01:14:03,960 Li sanble ke pi Linux òdinatè, jan nou ap itilize isit lan-- Linux opere 1494 01:14:03,960 --> 01:14:06,270 system-- gen yon lòd rele nonm, ki di, 1495 01:14:06,270 --> 01:14:08,530 hey, òdinatè, ban m ' manyèl òdinatè la. 1496 01:14:08,530 --> 01:14:10,680 Ki sa ou vle gade moute nan ki manyèl? 1497 01:14:10,680 --> 01:14:13,840 >> Mwen vle yo gade jiska fonksyon an rele anwo, Antre nan. 1498 01:14:13,840 --> 01:14:16,070 Lè li nan yon ti kras skre li pafwa. 1499 01:14:16,070 --> 01:14:18,780 Men, remake nou ap nan la manyèl Linux pwogramè la. 1500 01:14:18,780 --> 01:14:19,530 Ak li nan tout tèks. 1501 01:14:19,530 --> 01:14:21,905 Apre sa, remake ke gen nan la non nan fonksyon an moute isit la. 1502 01:14:21,905 --> 01:14:25,030 Li sanble li gen yon kouzen rele pi ba, ki fè opoze an. 1503 01:14:25,030 --> 01:14:29,710 Apre sa, avi anba Rezime, yo sèvi ak sa a fonksyone paj an moun, se konsa pale, 1504 01:14:29,710 --> 01:14:32,220 ap di m 'ke mwen bezwen gen ladan c type.h. 1505 01:14:32,220 --> 01:14:33,630 Apre sa, mwen te konnen ke nan pratik. 1506 01:14:33,630 --> 01:14:36,210 >> Isit la, li nan montre m 'de la prototip pou fonksyon an, 1507 01:14:36,210 --> 01:14:39,070 se konsa ke si mwen janm vle sèvi ak sa a Mwen konnen sa yo pran kòm D ', 1508 01:14:39,070 --> 01:14:40,652 ak sa yo retounen kòm pwodiksyon. 1509 01:14:40,652 --> 01:14:42,360 Lè sa a, si mwen li deskripsyon an, mwen wè 1510 01:14:42,360 --> 01:14:44,820 nan plis detay sa ki fonksyon an fè. 1511 01:14:44,820 --> 01:14:48,100 Men, pi enpòtan, si Mwen gade anba valè retou, 1512 01:14:48,100 --> 01:14:51,710 li di valè a tounen se sa yo ki an lèt la konvèti, 1513 01:14:51,710 --> 01:14:57,880 oswa C, D 'orijinal la, si konvèsyon an pa te posib. 1514 01:14:57,880 --> 01:15:01,992 >> Nan lòt mo, nan anwo pral eseye konvèti yon lèt bay ka anwo kay la. 1515 01:15:01,992 --> 01:15:03,450 Men, si se konsa, li k ap pase yo retounen li. 1516 01:15:03,450 --> 01:15:07,010 Men, si li pa kapab pou kèk reason-- petèt li nan deja anwo a, 1517 01:15:07,010 --> 01:15:09,550 petèt li nan yon pwen esklamasyon oswa kèk lòt punctuation-- 1518 01:15:09,550 --> 01:15:12,200 li nan jis ale nan retounen C orijinal la, 1519 01:15:12,200 --> 01:15:17,340 ki vle di mwen ka fè kòd m ' pi bon ki fèt jan sa a. 1520 01:15:17,340 --> 01:15:20,580 >> Mwen pa bezwen tout nan sa yo liy reprize nan kòd. 1521 01:15:20,580 --> 01:15:22,610 Tout moun nan liy ki Mwen te jis make kapab 1522 01:15:22,610 --> 01:15:28,700 dwe tonbe nan sèlman yon sèl senp liy, ki se sa a men pousan printf 1523 01:15:28,700 --> 01:15:33,510 C rive nan anwo S bracket mwen. 1524 01:15:33,510 --> 01:15:36,090 Lè sa a ta pwal genyen yon egzanp nan pi bon konsepsyon. 1525 01:15:36,090 --> 01:15:40,040 >> Poukisa aplike nan 7 oswa 8 liy nan kòd, tou sa li te mwen jis 1526 01:15:40,040 --> 01:15:44,960 efase, lè ou ka olye pou tonbe nan tout sa lojik ak desizyon y ap pran 1527 01:15:44,960 --> 01:15:49,620 nan yon sèl sèl liy, 13 kounye a, ki rpoz sou yon bibliyotèk fonksyon- 1528 01:15:49,620 --> 01:15:53,430 yon fonksyon ki vini ak C, men sa fè ekzakteman ki sa ou vle l 'fè. 1529 01:15:53,430 --> 01:15:55,295 Epi, franchman, menm si li pa t 'vini ak C, 1530 01:15:55,295 --> 01:15:58,880 , ou te kapab aplike li tèt ou, kòm nou te wè, ak jwenn int negatif 1531 01:15:58,880 --> 01:16:01,700 epi pou yo jwenn pozitif int semèn pase a kòm byen. 1532 01:16:01,700 --> 01:16:03,470 >> Kòd sa a kounye a se pi plis lizib. 1533 01:16:03,470 --> 01:16:06,670 Epi, tout bon, si nou woulo liv leve, gade ki jan pi plis kontra enfòmèl ant 1534 01:16:06,670 --> 01:16:08,360 vèsyon sa-a nan pwogram mwen an se. 1535 01:16:08,360 --> 01:16:11,230 Li se yon ti kras lou tèt kounye a, ak tout bagay sa yo gen ladan. 1536 01:16:11,230 --> 01:16:14,380 Men, sa a OK, paske kounye a mwen kanpe sou zepòl yo nan pwogramasyon 1537 01:16:14,380 --> 01:16:15,300 anvan mwen. 1538 01:16:15,300 --> 01:16:18,440 Moun ki li te ki aplike anwo reyèlman 1539 01:16:18,440 --> 01:16:21,470 fè m 'yon favè, anpil tankou moun ki va aplike Stirling reyèlman 1540 01:16:21,470 --> 01:16:24,790 fè m 'yon favè kèk tan de sa. 1541 01:16:24,790 --> 01:16:26,970 Se konsa, kounye a nou gen yon pi bon pwogram konsepsyon 1542 01:16:26,970 --> 01:16:31,680 ki aplike egzak lojik la menm. 1543 01:16:31,680 --> 01:16:35,580 >> Pale de Stirling, se pou m 'ale pi devan epi fè sa. 1544 01:16:35,580 --> 01:16:38,320 Kite m 'ale pi devan epi sove sa a ranpli kòm stirling.c. 1545 01:16:38,320 --> 01:16:43,255 Epi li vire soti, nou ka kale tounen yon lòt kouch bèl tou senpleman kounye a. 1546 01:16:43,255 --> 01:16:45,630 Mwen pral ale pi devan epi fwe moute yon lòt pwogram nan prensipal 1547 01:16:45,630 --> 01:16:49,759 isit la ke tou senpleman re-egzekite longè fisèl jan sa a. 1548 01:16:49,759 --> 01:16:52,300 Se konsa, isit la nan yon liy nan kòd ki ap resevwa m 'yon afè soti nan itilizatè a. 1549 01:16:52,300 --> 01:16:53,910 Nou kenbe lè l sèvi avèk sa a ankò e ankò. 1550 01:16:53,910 --> 01:16:58,900 Kite m 'bay tèt mwen yon varyab rele n nan int kalite ki estoke yon nimewo. 1551 01:16:58,900 --> 01:17:02,490 >> Ak kite m 'ale pi devan epi fè lojik sa a. 1552 01:17:02,490 --> 01:17:15,610 Pandan ke pèsonaj la n-th nan la fè pa egal antislach 0, ale pi devan 1553 01:17:15,610 --> 01:17:17,930 ak kantite n. 1554 01:17:17,930 --> 01:17:23,506 Lè sa a, enprime soti printf pousan mwen n. 1555 01:17:23,506 --> 01:17:29,200 Mwen reklamasyon ke pwogram sa a isit la, san yo pa rele longè fisèl, 1556 01:17:29,200 --> 01:17:31,150 figi konnen longè yon fisèl. 1557 01:17:31,150 --> 01:17:34,600 >> Apre sa, majik la se antyèman enklizyon nan liy 8 1558 01:17:34,600 --> 01:17:39,830 isit la ak sa ki sanble nouvo sentaks, sa a antislach 0 nan quotes sèl. 1559 01:17:39,830 --> 01:17:41,360 Men, poukisa se sa? 1560 01:17:41,360 --> 01:17:44,100 Oke, konsidere sa k te ale sou tout tan tout tan sa a. 1561 01:17:44,100 --> 01:17:47,990 >> Apre sa, kòm yon sou kote mwen anvan m 'bliye, reyalize tou, ke nan adisyon nan paj sa yo moun 1562 01:17:47,990 --> 01:17:50,920 ki vini ak yon tipik Linux sistèm tankou CS50 IDE, 1563 01:17:50,920 --> 01:17:53,770 reyalize ke nou, nan anplwaye kou a, yo te genyen tou 1564 01:17:53,770 --> 01:17:56,030 te fè yon vèsyon sit entènèt nan ide sa a menm rele 1565 01:17:56,030 --> 01:17:59,940 reference.cs50.net, ki te gen tout moun ki paj nonm menm, 1566 01:17:59,940 --> 01:18:02,020 nan tout sa menm dokiman, osi byen ke 1567 01:18:02,020 --> 01:18:05,730 yon ti kras ti bwat nan tèt la ki pèmèt ou konvèti tout nan san patipri a 1568 01:18:05,730 --> 01:18:09,025 lang Esoteric nan mwens konfòtab mòd, kote nou, anplwaye a ansèyman, 1569 01:18:09,025 --> 01:18:12,150 te ale nan ak yo te eseye senplifye kèk nan lang lan kenbe bagay sa yo 1570 01:18:12,150 --> 01:18:14,830 konsantre sou lide yo, epi yo pa kèk nan teknikalite yo. 1571 01:18:14,830 --> 01:18:20,070 Se konsa, kenbe nan tèt ou, reference.cs50.net kòm yon lòt resous kòm byen. 1572 01:18:20,070 --> 01:18:23,800 >> Men, poukisa fè fisèl longè travay nan wout la mwen pwopoze yon ti moman de sa? 1573 01:18:23,800 --> 01:18:25,160 Isit la nan Non Zamyla a ankò. 1574 01:18:25,160 --> 01:18:27,690 Ak isit la nan non Zamyla a bwat nan, jan mwen kontinye ap fè, 1575 01:18:27,690 --> 01:18:31,360 nan penti yon foto nan li ke yo te, reyèlman, jis yon sekans nan karaktè. 1576 01:18:31,360 --> 01:18:34,260 Men, Zamyla pa egziste nan izolasyon nan yon pwogram. 1577 01:18:34,260 --> 01:18:37,420 >> Lè ou ekri ak kouri nan yon pwogram, w ap itilize Mac ou a oswa PC ou 1578 01:18:37,420 --> 01:18:40,010 kòm memwa, oswa RAM se konsa pale. 1579 01:18:40,010 --> 01:18:42,620 Epi ou ka panse a òdinatè w lan tankou ke li gen 1580 01:18:42,620 --> 01:18:44,730 anpil nan jigokte nan memwa jou sa yo. 1581 01:18:44,730 --> 01:18:47,700 Ak yon Gig vle di dè milya, se konsa dè milya de bytes. 1582 01:18:47,700 --> 01:18:48,910 >> Men, kite a remonte nan tan. 1583 01:18:48,910 --> 01:18:51,530 Apre sa, ta kwè ke nou ap lè l sèvi avèk yon òdinatè reyèlman fin vye granmoun ki 1584 01:18:51,530 --> 01:18:55,150 sèlman gen 32 bytes nan memwa. 1585 01:18:55,150 --> 01:18:59,310 Mwen te kapab, sou ekran òdinatè mwen an, tou senpleman trase sa a soti jan sa a. 1586 01:18:59,310 --> 01:19:05,240 >> Mwen te kapab tou senpleman di ke mwen òdinatè te gen tout nan memwa sa a. 1587 01:19:05,240 --> 01:19:08,830 Lè sa a se tankou yon bout bwa nan memwa, si ou sonje foto nou yo soti nan dènye fwa. 1588 01:19:08,830 --> 01:19:11,670 Men, si mwen jis divize sa a nan tan ase, 1589 01:19:11,670 --> 01:19:15,040 Mwen reklamasyon ke mwen gen 32 bytes nan memwa sou ekran an. 1590 01:19:15,040 --> 01:19:18,239 >> Koulye a, an reyalite, mwen kapab sèlman trase byen lwen tèlman sou ekran sa a isit la. 1591 01:19:18,239 --> 01:19:20,280 Se konsa, mwen pral ale pi devan, ak jis pa konvansyon, 1592 01:19:20,280 --> 01:19:24,050 trase memwa òdinatè mwen an a kòm yon kadriyaj, pa sèlman kòm youn liy dwat. 1593 01:19:24,050 --> 01:19:28,190 Espesyalman, mwen reklamasyon kounye a ke kadriyaj sa a, sa a kadriyaj 8 pa 4, 1594 01:19:28,190 --> 01:19:31,800 jis reprezante tout 32 bytes nan memwa disponib nan Mac mwen an, 1595 01:19:31,800 --> 01:19:33,030 oswa ki disponib nan PC m 'yo. 1596 01:19:33,030 --> 01:19:34,780 Apre sa, yo ap vlope sou de liy, jis 1597 01:19:34,780 --> 01:19:38,030 paske li adapte plis sou ekran an. 1598 01:19:38,030 --> 01:19:40,800 Men sa se multiple an premye. 1599 01:19:40,800 --> 01:19:41,990 Sa a se multiple, dezyèm lan. 1600 01:19:41,990 --> 01:19:43,300 Sa a se multiple nan twazyèm. 1601 01:19:43,300 --> 01:19:45,310 >> Lè sa a se multiple nan 32nd. 1602 01:19:45,310 --> 01:19:52,910 Oswa, si nou panse tankou yon òdinatè syantis, sa a se multiple 0, 1, 2, 3, 31. 1603 01:19:52,910 --> 01:19:55,950 Se konsa, ou gen 0 a 31, si ou kòmanse konte nan 0. 1604 01:19:55,950 --> 01:19:59,830 >> Se konsa, si nou sèvi ak yon pwogram ke apèl jwenn fisèl, 1605 01:19:59,830 --> 01:20:05,280 e nou jwenn yon fisèl soti nan moun nan tankou mwen t 'rele Zamyla, Z-A-M-Y-L-A, 1606 01:20:05,280 --> 01:20:09,430 ki jan nan mond lan fè a kenbe òdinatè tras nan ki multiple, 1607 01:20:09,430 --> 01:20:12,230 ki ti moso nan memwa, ki dwe nan ki fisèl? 1608 01:20:12,230 --> 01:20:16,270 Nan lòt mo, si nou kontinye nan tape yon lòt non nan òdinatè a, 1609 01:20:16,270 --> 01:20:19,890 tankou sa a Andi, lè w rele jwenn fisèl yon dezyèm fwa, 1610 01:20:19,890 --> 01:20:23,030 A-N-D-mwen te fini nan nan memwa òdinatè a kòm byen. 1611 01:20:23,030 --> 01:20:23,850 Men, ki jan? 1612 01:20:23,850 --> 01:20:29,700 >> Oke, li sanble ke anba a kapo, ki sa C fè lè estoke strings 1613 01:20:29,700 --> 01:20:35,080 ki kalite mouvman yo moun nan, oswa ki soti nan kèk lòt sous, se li 1614 01:20:35,080 --> 01:20:39,190 defini nan fen yo ak yon espesyal antislach character-- 1615 01:20:39,190 --> 01:20:44,750 0, ki se jis yon fason espesyal nan di 80 Bits nan yon ranje. 1616 01:20:44,750 --> 01:20:47,950 >> Se konsa, A-- sa a se nimewo 97 rapèl la. 1617 01:20:47,950 --> 01:20:51,770 Se konsa, kèk modèl nan 8 Bits reprezante kantite desimal 97. 1618 01:20:51,770 --> 01:20:58,070 Sa a antislach 0 se literalman nimewo a 0, a.k.a. nul, N-U-L, kontrèman ak pi bonè, 1619 01:20:58,070 --> 01:20:59,630 N-U-L-L, nou te pale osijè de. 1620 01:20:59,630 --> 01:21:05,700 Men, pou kounye a, jis konnen ke sa a antislach 0 se jis 80 Bits nan yon ranje. 1621 01:21:05,700 --> 01:21:09,810 >> Apre sa, li nan jis liy sa a nan la sab ki di nou kichòy sou bò goch la 1622 01:21:09,810 --> 01:21:12,610 ki dwe nan youn fisèl, oswa yon sèl kalite done. 1623 01:21:12,610 --> 01:21:15,480 Apre sa, anyen a dwat a ki dwe nan yon lòt bagay. 1624 01:21:15,480 --> 01:21:17,440 nan Non Andi, pandan se tan, ki jis vizyèlman 1625 01:21:17,440 --> 01:21:21,310 k ap pase nan vlope sou nan liy lan lòt, men sa a jis yon detay ayestetik, 1626 01:21:21,310 --> 01:21:23,990 Menm jan an tou se nul sispann. 1627 01:21:23,990 --> 01:21:29,290 >> Li se yon afè de yon karaktè A-N-D-Se mwen menm, plis yon karaktè sekrè senkyèm, 1628 01:21:29,290 --> 01:21:33,560 tout 0 Bits, ki jis demarcates nan fen Non Andi la kòm byen. 1629 01:21:33,560 --> 01:21:37,120 Men, si nou rele jwenn fisèl yon twazyèm fwa nan òdinatè a yo ka resevwa yon fisèl tankou 1630 01:21:37,120 --> 01:21:44,210 Maria, M-A-R-I-A, Menm jan an tou se Maria a Non nul sispann ak antislach 0. 1631 01:21:44,210 --> 01:21:47,170 >> Sa a se fondamantalman diferan soti nan ki jan yon òdinatè ta tipikman 1632 01:21:47,170 --> 01:21:51,850 magazen yon nonb antye relatif, oswa yon flote, oswa lòt done kalite toujou, paske sonje, 1633 01:21:51,850 --> 01:21:57,420 yon nonb antye relatif se nòmalman 32 Bits, oswa 4 bytes, oswa petèt menm 64 Bits, 1634 01:21:57,420 --> 01:21:59,100 oswa uit bytes. 1635 01:21:59,100 --> 01:22:02,620 Men, anpil primitif nan yon òdinatè nan yon lang programmation 1636 01:22:02,620 --> 01:22:05,550 gen yon nimewo fiks de bytes anba hood-- la 1637 01:22:05,550 --> 01:22:08,100 petèt 1, petèt 2, petèt 4, petèt 8. 1638 01:22:08,100 --> 01:22:13,250 >> Men, strings, pa konsepsyon, gen yon Nimewo dinamik nan karaktè. 1639 01:22:13,250 --> 01:22:16,980 Ou pa konnen an avanse, jouk kalite mouvman yo moun nan Z-A-M-Y-L-A, 1640 01:22:16,980 --> 01:22:21,400 oswa M-A-R-I-A, oswa A-N-D-mwen. Ou pa konnen konbyen fwa itilizatè a ki pral frape 1641 01:22:21,400 --> 01:22:22,070 klavye a. 1642 01:22:22,070 --> 01:22:26,490 Se poutèt sa, ou pa konnen ki jan karaktè anpil moun nan davans 1643 01:22:26,490 --> 01:22:27,540 w ap ale nan bezwen. 1644 01:22:27,540 --> 01:22:31,840 >> Se konsa, C jis kalite kite tankou yon sekrè myèt anba kapo a 1645 01:22:31,840 --> 01:22:32,960 nan fen fisèl la. 1646 01:22:32,960 --> 01:22:39,280 Apre estoke Z-A-M-Y-L-A nan memwa, li tou jis mete ekivalan a 1647 01:22:39,280 --> 01:22:40,210 nan yon peryòd. 1648 01:22:40,210 --> 01:22:45,060 Nan fen yon fraz, li mete 80 Bits, se konsa yo 1649 01:22:45,060 --> 01:22:49,120 sonje ki kote Zamyla kòmanse ak fini. 1650 01:22:49,120 --> 01:22:51,490 >> Se konsa, sa ki nan koneksyon an, lè sa a, nan pwogram sa a? 1651 01:22:51,490 --> 01:22:55,190 Pwogram sa a isit la, Stirling, se tou senpleman yon mekanis 1652 01:22:55,190 --> 01:22:57,970 pou jwenn yon afè soti nan itilizatè a, liy 6. 1653 01:22:57,970 --> 01:23:01,160 Liy 7, mwen deklare yon varyab rele n ak mete l 'egal a 0. 1654 01:23:01,160 --> 01:23:08,680 >> Lè sa a, nan liy 8, Mwen tou senpleman mande a kesyon, pandan y ap pèsonaj la n-th fè 1655 01:23:08,680 --> 01:23:12,120 pa egal tout 0 bits-- nan lòt mo, pa fè sa 1656 01:23:12,120 --> 01:23:14,500 egal sa a espesyal karaktè, antislach 0, ki 1657 01:23:14,500 --> 01:23:18,470 te jis ki espesyal character-- nul ale pi devan epi jis kantite n. 1658 01:23:18,470 --> 01:23:21,460 >> Epi kenbe fè li, epi kenbe fè li, epi kenbe fè li. 1659 01:23:21,460 --> 01:23:23,430 Se konsa, menm si nan tan lontan an nou te itilize mwen, 1660 01:23:23,430 --> 01:23:25,181 li nan parfe amann Semantics yo sèvi ak n, 1661 01:23:25,181 --> 01:23:27,430 si w ap jis ap eseye konte tan sa a fè espre, 1662 01:23:27,430 --> 01:23:28,720 ak jis vle rele l 'n. 1663 01:23:28,720 --> 01:23:34,720 Se konsa, sa a jis kenbe mande kesyon an, se karaktè n-th nan nan tout 0s? 1664 01:23:34,720 --> 01:23:38,470 Si ou pa, gade nan gade kap vini an, gade nan pwochen an, gade nan pwochen an, 1665 01:23:38,470 --> 01:23:39,460 gade nan pwochen an. 1666 01:23:39,460 --> 01:23:45,540 >> Men, le pli vit ke ou wè antislach 0, liy sa a loop-- 9yèm ane jouk rive 11-- sispann. 1667 01:23:45,540 --> 01:23:49,640 Ou kraze soti nan riban an ti tan, kite andedan nan ki n varyab 1668 01:23:49,640 --> 01:23:54,530 yon konte manm nan tout nan la karaktè nan fisèl la ou te wè, 1669 01:23:54,530 --> 01:23:55,660 kidonk enprime li soti. 1670 01:23:55,660 --> 01:23:56,760 Se konsa, kite a eseye sa a. 1671 01:23:56,760 --> 01:23:59,500 >> Kite m 'ale pi devan epi, san yo pa lè l sèvi avèk fonksyon an Stirling, 1672 01:23:59,500 --> 01:24:04,240 men jis lè l sèvi avèk pwòp mwen homegrown vèsyon isit la yo rele Stirling, kite m 'ale pi devan 1673 01:24:04,240 --> 01:24:07,700 ak kouri Stirling, kalite nan yon bagay tankou Zamyla, ki mwen konnen davans 1674 01:24:07,700 --> 01:24:08,670 se sis karaktè. 1675 01:24:08,670 --> 01:24:10,080 Ann wè si li fonksyone. 1676 01:24:10,080 --> 01:24:10,920 Vreman vre, li nan sis. 1677 01:24:10,920 --> 01:24:15,257 Ann eseye ak Rob, twa karaktè, twa karaktè kòm byen, ak pou fè. 1678 01:24:15,257 --> 01:24:17,340 Se poutèt sa se tout sa ki k ap pase sou anba kapo a. 1679 01:24:17,340 --> 01:24:19,548 Apre sa, remake koneksyon yo, lè sa a, ak premye semèn nan 1680 01:24:19,548 --> 01:24:22,370 nan klas, kote nou te pale osijè de yon bagay tankou distraksyon, 1681 01:24:22,370 --> 01:24:26,960 ki se jis stratifikasyon sa a nan lide, oswa konpleksite, sou tèt prensip de baz yo. 1682 01:24:26,960 --> 01:24:30,710 Isit la, nou ap sòt de kap anba kapo a nan Stirling, 1683 01:24:30,710 --> 01:24:33,510 se konsa pale, eseye figi konnen, ki jan ta li kapab aplike? 1684 01:24:33,510 --> 01:24:35,232 >> Apre sa, nou te kapab re-aplike li tèt nou. 1685 01:24:35,232 --> 01:24:37,440 Men, nou ap pa janm ankò pral re-aplike Stirling. 1686 01:24:37,440 --> 01:24:39,780 Nou ap jis ale nan sèvi ak Stirling yo nan lòd 1687 01:24:39,780 --> 01:24:42,100 ki aktyèlman jwenn kèk longè strings. 1688 01:24:42,100 --> 01:24:44,200 >> Men, gen nan pa gen majik anba kapo a. 1689 01:24:44,200 --> 01:24:46,716 Si ou konnen ke anba kapo machin lan, yon afè 1690 01:24:46,716 --> 01:24:48,090 se jis yon sekans nan karaktè. 1691 01:24:48,090 --> 01:24:51,090 Epi sa sekans nan karaktè tout ka numériquement adrese 1692 01:24:51,090 --> 01:24:53,330 ak bracket 0, bracket 1, bracket 2, epi ou 1693 01:24:53,330 --> 01:24:57,420 konnen ke nan fen a nan yon fisèl se yon karaktè espesyal, ou kapab konnen ki 1694 01:24:57,420 --> 01:25:01,710 ki jan fè anyen ki pi nan yon pwogram, paske tout li klou desann nan 1695 01:25:01,710 --> 01:25:03,400 ap li ak ekri memwa. 1696 01:25:03,400 --> 01:25:06,130 Sa se, chanje ak kap nan memwa, oswa k ap deplase bagay sa yo 1697 01:25:06,130 --> 01:25:10,940 alantou an memwa, bagay sa yo enprime sou ekran an, ak pou fè. 1698 01:25:10,940 --> 01:25:14,800 >> Se konsa nou kounye a itilize newfound sa a konpreyansyon yo genyen sou sa strings aktyèlman 1699 01:25:14,800 --> 01:25:17,910 yo anba kapo a, ak kale tounen yon lòt kouch 1700 01:25:17,910 --> 01:25:20,080 ki moute jouk koulye a nou te te inyore tout ansanm. 1701 01:25:20,080 --> 01:25:22,650 An patikilye, nenpòt ki lè nou te aplike yon pwogram, 1702 01:25:22,650 --> 01:25:25,930 nou te gen liy sa a nan kòd tou pre anwo a deklare prensipal la. 1703 01:25:25,930 --> 01:25:27,810 E nou te espesifye int anile prensipal la. 1704 01:25:27,810 --> 01:25:31,240 >> Epi sa anile andedan parantèz yo gen te di tout tan sa a ke prensipal 1705 01:25:31,240 --> 01:25:33,440 tèt li pa pran okenn agiman. 1706 01:25:33,440 --> 01:25:36,210 Nenpòt opinyon ki prensipal la se pral jwenn soti nan itilizatè a 1707 01:25:36,210 --> 01:25:39,020 te soti nan kèk lòt mekanis, tankou jwenn int, 1708 01:25:39,020 --> 01:25:42,040 oswa pou w jwenn flote, oswa pou w jwenn fisèl, oswa kèk lòt fonksyon. 1709 01:25:42,040 --> 01:25:44,710 Men, li sanble ke lè ou ekri yon pwogram, 1710 01:25:44,710 --> 01:25:47,690 ou ka aktyèlman presize ke pwogram sa a va 1711 01:25:47,690 --> 01:25:51,730 pran entrain soti nan moun nan nan liy lan lòd tèt li. 1712 01:25:51,730 --> 01:25:56,310 >> Nan lòt mo, menm si nou konsa byen lwen gen te kouri jis ./hello alo 1713 01:25:56,310 --> 01:26:00,312 oswa pwogram ki similè yo, tout nan a lòt pwogram ke nou te te lè l sèvi avèk, 1714 01:26:00,312 --> 01:26:02,770 ke nou tèt nou pa t 'ekri, gen te pran, li sanble, 1715 01:26:02,770 --> 01:26:05,210 liy lòd arguments-- bagay sa yo tankou fè. 1716 01:26:05,210 --> 01:26:07,450 Ou di yon bagay tankou fè, ak Lè sa a yon mo dezyèm fwa. 1717 01:26:07,450 --> 01:26:10,950 Ou sonnen, ou di sonnen, ak Lè sa yon mo dezyèm lan, non an nan yon dosye-a. 1718 01:26:10,950 --> 01:26:14,410 >> Oswa menm RM oswa CP, menm jan ou ta ka te wè oswa itilize deja 1719 01:26:14,410 --> 01:26:15,880 yo retire oswa kopi dosye. 1720 01:26:15,880 --> 01:26:18,920 Tout moun nan sa yo pran sa yo rele liy lòd arguments-- 1721 01:26:18,920 --> 01:26:21,130 Mo adisyonèl nan èd memwa a tèminal. 1722 01:26:21,130 --> 01:26:23,260 Men, moute jouk koulye a, nou tèt nou pa te gen 1723 01:26:23,260 --> 01:26:27,080 sa a liksye nan pran enfòmasyon nan men gwoup la itilizatè lè li aktyèlman kouri 1724 01:26:27,080 --> 01:26:29,120 pwogram nan tèt li nan liy lan lòd. 1725 01:26:29,120 --> 01:26:33,710 >> Men, nou ka fè sa pa re-deklare prensipal k ap deplase pi devan, pa tankou ke li gen 1726 01:26:33,710 --> 01:26:36,750 anile nan parantèz, men de sa yo agiman 1727 01:26:36,750 --> 01:26:40,600 instead-- premye yon nonb antye relatif la, ak dezyèm yon bagay nan 1728 01:26:40,600 --> 01:26:44,170 nouvo, yon bagay ke nou ap ale nan rele yon etalaj, yon bagay ki sanble nan Lespri Bondye 1729 01:26:44,170 --> 01:26:49,220 nan sa nou te wè nan grate kòm yon lis, men yon etalaj de strings, menm jan nou pral byento wè. 1730 01:26:49,220 --> 01:26:51,790 Men, kite a wè sa a pa fason pou egzanp, anvan nou 1731 01:26:51,790 --> 01:26:53,690 fè distenksyon ant ekzakteman ki sa sa vle di. 1732 01:26:53,690 --> 01:26:56,520 >> Se konsa, si m 'antre nan CS50 IDE isit la, mwen te ale devan yo 1733 01:26:56,520 --> 01:27:01,840 epi ki te deklare nan yon dosye rele argv0.c modèl la yo. 1734 01:27:01,840 --> 01:27:04,120 Apre sa, remake bagay la sèlman sa a, se diferan byen lwen tèlman 1735 01:27:04,120 --> 01:27:08,570 se ke mwen te chanje anile int arg fisèl argv louvri bracket, fèmen 1736 01:27:08,570 --> 01:27:09,070 bracket. 1737 01:27:09,070 --> 01:27:11,730 Apre sa, remake pou kounye a, gen nan pa gen anyen andedan nan tout sa yo parantèz. 1738 01:27:11,730 --> 01:27:12,620 >> Gen nan pa gen kantite. 1739 01:27:12,620 --> 01:27:15,070 Apre sa, gen nan pa gen mwen, oswa n, oswa nenpòt ki lòt lèt. 1740 01:27:15,070 --> 01:27:17,010 Mwen jis lè l sèvi avèk la parantèz kare pou kounye a, 1741 01:27:17,010 --> 01:27:19,510 pou rezon nou pral vini tounen nan nan jis yon moman. 1742 01:27:19,510 --> 01:27:21,330 >> Epi, koulye a sa m ap pral fè se sa a. 1743 01:27:21,330 --> 01:27:26,680 Si arg egal egal 2-- ak sonje ke egal egal 1744 01:27:26,680 --> 01:27:30,040 se operatè a egalite konpare kite la ak dwa pou egalite. 1745 01:27:30,040 --> 01:27:31,790 Li pa plasman an operatè, ki se 1746 01:27:31,790 --> 01:27:36,510 sèl siy ki egal, ki vle di kopi de dwat la nan bò gòch la kèk valè. 1747 01:27:36,510 --> 01:27:42,840 >> Si arg egal egal 2, mwen vle di, printf, hello, pousantaj, nouvo liy, 1748 01:27:42,840 --> 01:27:47,340 ak Lè sa a ploge in-- ak isit la a nouvo a trick-- argv bracket 1, pou rezon 1749 01:27:47,340 --> 01:27:48,840 ke nou pral tounen vin jwenn koulye a. 1750 01:27:48,840 --> 01:27:52,110 Lòt Bagay si arg pa fè sa egal 2, ou konnen ki sa? 1751 01:27:52,110 --> 01:27:57,400 Se pou nou jis ale pi devan epi, kòm dabitid, ekri an lèt detache soti alo mond ki pa gen okenn sibstitisyon. 1752 01:27:57,400 --> 01:28:02,710 >> Se konsa, li ta sanble ke si arg, ki kanpe pou konte agiman, egal 2, 1753 01:28:02,710 --> 01:28:04,740 Mwen pral enprime soti alo yon bagay oswa lòt. 1754 01:28:04,740 --> 01:28:07,560 Sinon, pa default, mwen se pral enprime alo nan lemonn. 1755 01:28:07,560 --> 01:28:08,770 Se konsa, sa sa vle di? 1756 01:28:08,770 --> 01:28:15,550 >> Oke, kite m 'ale pi devan epi sove sa a ranpli, ak Lè sa a fè fè argv0, 1757 01:28:15,550 --> 01:28:18,940 ak Lè sa a ./argv0, Antre nan. 1758 01:28:18,940 --> 01:28:20,300 Apre sa, li di alo nan lemonn. 1759 01:28:20,300 --> 01:28:21,260 Koulye a, poukisa se sa? 1760 01:28:21,260 --> 01:28:24,730 >> Oke, li vire soti nenpòt lè ou kouri nan yon pwogram nan liy lan lòd, 1761 01:28:24,730 --> 01:28:29,570 w ap ranpli nan sa nou pral jeneralman rele yon vektè agiman. 1762 01:28:29,570 --> 01:28:33,100 Nan lòt mo, otomatikman nan òdinatè, sistèm nan fonksyone, 1763 01:28:33,100 --> 01:28:38,340 ki pral nan men nan pwogram ou tèt li yon lis tout nan mo sa yo 1764 01:28:38,340 --> 01:28:40,850 ki moun nan tape nan èd memwa a, nan ka ou 1765 01:28:40,850 --> 01:28:43,790 pwogramè a vle fè yon bagay ki gen enfòmasyon sa a. 1766 01:28:43,790 --> 01:28:48,540 Ak nan ka sa a, bay yon lòd ase Mwen te tape nan èd memwa a se ./argv0. 1767 01:28:48,540 --> 01:28:55,420 >> Se konsa, ki kantite agiman se sa ki ke yo te pase nan pwogram mwen an se sèlman yon sèl. 1768 01:28:55,420 --> 01:28:58,880 Nan lòt mo, agiman an konte, ki te rekonèt kòm arg 1769 01:28:58,880 --> 01:29:00,970 isit la tankou yon nonb antye relatif, se sèlman yon sèl. 1770 01:29:00,970 --> 01:29:03,000 Youn, nan kou, pa fè sa egal de. 1771 01:29:03,000 --> 01:29:05,980 Se konsa, sa a se sa simagri, alo nan lemonn. 1772 01:29:05,980 --> 01:29:08,170 >> Men, kite m 'pran yon kote sa a. 1773 01:29:08,170 --> 01:29:09,930 Kite m 'di, argv0. 1774 01:29:09,930 --> 01:29:12,740 Lè sa a, ki jan sou Maria? 1775 01:29:12,740 --> 01:29:14,990 Lè sa a, frape Antre. 1776 01:29:14,990 --> 01:29:18,020 >> Apre sa, remake ki sa maji k ap pase isit la. 1777 01:29:18,020 --> 01:29:22,640 Koulye a, olye nan mond alo, mwen gen chanje konpòtman an nan pwogram sa a 1778 01:29:22,640 --> 01:29:26,310 lè yo pran D 'a pa soti nan jwenn fisèl oswa kèk lòt fonksyon, 1779 01:29:26,310 --> 01:29:30,570 Men, nan, aparamman, lòd mwen tèt li, ki sa mwen orijinal tape nan. 1780 01:29:30,570 --> 01:29:35,720 Apre sa, mwen ka jwe jwèt sa a ankò pa chanje li nan Stellio, pou egzanp. 1781 01:29:35,720 --> 01:29:38,400 >> Epi, koulye a mwen wè yon lòt non toujou. 1782 01:29:38,400 --> 01:29:40,540 Ak isit la, mwen ta ka di Andi. 1783 01:29:40,540 --> 01:29:42,137 Apre sa, mwen ta ka di Zamyla. 1784 01:29:42,137 --> 01:29:45,220 Epi nou ka jwe jwèt sa a tout lajounen, jis rakorde nan valè diferan, 1785 01:29:45,220 --> 01:29:49,550 toutotan mwen bay egzakteman de mo nan èd memwa a, 1786 01:29:49,550 --> 01:29:52,260 sa yo ki arg, agiman mwen konte, se 2. 1787 01:29:52,260 --> 01:29:57,240 >> Mwen wè ke non konekte nan printf, pou chak kondisyon sa a isit la? 1788 01:29:57,240 --> 01:30:00,550 Se konsa, nou sanble yo gen kounye a kapasite a espresif 1789 01:30:00,550 --> 01:30:04,410 nan pran D 'soti nan yon lòt mekanis, soti nan liy la bay lòd sa yo rele, 1790 01:30:04,410 --> 01:30:07,000 olye ke gen yo rete tann jouk itilizatè a kouri pwogram nan, 1791 01:30:07,000 --> 01:30:10,220 ak Lè sa a pouse l 'oswa li lè l sèvi avèk yon bagay tankou jwenn fisèl. 1792 01:30:10,220 --> 01:30:11,230 >> Se konsa, sa sa a ye? 1793 01:30:11,230 --> 01:30:15,010 Arg, ankò, se jis yon nonb antye relatif, ki kantite words-- arguments-- 1794 01:30:15,010 --> 01:30:18,540 ki itilizatè a bay nan la èd memwa, nan fenèt la tèminal, 1795 01:30:18,540 --> 01:30:20,110 ki gen ladan non pwogram nan. 1796 01:30:20,110 --> 01:30:23,340 Se konsa, ./argv0 nou an, se, efektivman, Non pwogram nan, 1797 01:30:23,340 --> 01:30:24,520 oswa ki jan mwen kouri pwogram nan. 1798 01:30:24,520 --> 01:30:25,810 >> Sa konte kòm yon mo. 1799 01:30:25,810 --> 01:30:27,080 Se konsa, arg ta dwe 1. 1800 01:30:27,080 --> 01:30:29,750 Men, lè mwen ekri Stellio, oswa Andi, oswa Zamyla, oswa Maria, 1801 01:30:29,750 --> 01:30:31,660 sa vle di konte a agiman se de. 1802 01:30:31,660 --> 01:30:33,910 Se konsa, kounye a gen nan de mo te pase nan. 1803 01:30:33,910 --> 01:30:36,070 >> Apre sa, avi, nou ka kontinye lojik sa a. 1804 01:30:36,070 --> 01:30:39,050 Si m 'aktyèlman di yon bagay tankou Zamyla Chan, 1805 01:30:39,050 --> 01:30:42,200 yon non plen, kidonk pase twa agiman nan total, 1806 01:30:42,200 --> 01:30:47,410 kounye a li di default la ankò, paske, nan kou, 3 pa fè sa egal 2. 1807 01:30:47,410 --> 01:30:54,080 >> Se konsa, nan fason sa a, mwen gen aksè via argv nouvo agiman sa a 1808 01:30:54,080 --> 01:30:56,080 ke nou te kapab teknikman rele anyen nou vle. 1809 01:30:56,080 --> 01:30:58,940 Men, pa konvansyon, li nan argv ak arg, respektivman. 1810 01:30:58,940 --> 01:31:04,470 Argv, agiman vektè, se kalite nan yon synonym pou yon pwogram 1811 01:31:04,470 --> 01:31:07,140 karakteristik nan C rele yon etalaj. 1812 01:31:07,140 --> 01:31:14,410 >> Yon etalaj se yon lis nan valè menm jan an tounen, nan do, nan do, nan do. 1813 01:31:14,410 --> 01:31:17,810 Nan lòt mo, si se yon sèl isit la nan RAM, youn nan pwochen se dwa akote l, 1814 01:31:17,810 --> 01:31:18,800 e yo gen dwa akote l. 1815 01:31:18,800 --> 01:31:20,101 Yo pa ap tout lòt peyi sou plas la. 1816 01:31:20,101 --> 01:31:23,100 Epi sa senaryo lèt, kote bagay sa yo yo sou tout plas la nan memwa, 1817 01:31:23,100 --> 01:31:25,082 ka aktyèlman ap yon karakteristik pwisan. 1818 01:31:25,082 --> 01:31:28,040 Men, nou pral tounen vin jwenn ke lè nou pale sou amateur estrikti done. 1819 01:31:28,040 --> 01:31:32,260 Pou kounye a, yon etalaj se jis yon ti moso nan memwa vwazen, 1820 01:31:32,260 --> 01:31:36,520 chak nan ki gen eleman yo tounen, nan do, nan do, nan do, 1821 01:31:36,520 --> 01:31:38,050 epi jeneralman kalite la menm. 1822 01:31:38,050 --> 01:31:42,630 >> Se konsa, si ou panse osijè de, ki soti nan yon ti moman de sa, ki sa ki yon afè? 1823 01:31:42,630 --> 01:31:50,460 Oke, yon fisèl, tankou Zamyla, Z-A-M-Y-L-A, se, teknikman, 1824 01:31:50,460 --> 01:31:51,400 jis yon etalaj. 1825 01:31:51,400 --> 01:31:53,700 Li nan yon etalaj de karaktè. 1826 01:31:53,700 --> 01:31:59,250 >> Se konsa, si nou reyèlman trase sa a, jan mwen te fè pi bonè, kòm yon ti moso nan memwa, 1827 01:31:59,250 --> 01:32:04,510 li sanble ke chak nan sa yo karaktè pran moute yon multiple. 1828 01:32:04,510 --> 01:32:07,630 Lè sa a, gen nan sa a espesyal Sentinel karaktè, antislach a 0, 1829 01:32:07,630 --> 01:32:12,360 oswa tout Bits uit 0, ki demarcates nan fen ki fisèl. 1830 01:32:12,360 --> 01:32:15,090 Se konsa, yon fisèl, li vire soti, site unquote fisèl, 1831 01:32:15,090 --> 01:32:20,580 se jis yon etalaj de chara-- Char yo te yon kalite done vrè. 1832 01:32:20,580 --> 01:32:24,560 >> Epi, koulye a argv, meanwhile-- se pou yo ale tounen nan pwogram nan. 1833 01:32:24,560 --> 01:32:29,582 Argv, menm si nou wè pawòl Bondye a fisèl isit la, se pa yon afè tèt li. 1834 01:32:29,582 --> 01:32:33,640 Argv, agiman vektè, se yon etalaj de strings. 1835 01:32:33,640 --> 01:32:37,620 >> Se konsa, menm jan ou ka gen yon etalaj de karaktè, ou ka gen pi wo nivo, 1836 01:32:37,620 --> 01:32:46,279 yon etalaj de strings se konsa, pou egzanp, lè m 'tape yon ti moman de sa ./argv0 1837 01:32:46,279 --> 01:33:00,150 argv0, espas Z-A-M-Y-L-A, mwen te deklare ke argv te gen de strings nan l-- ./argv0, 1838 01:33:00,150 --> 01:33:03,185 ak Z-A-M-Y-L-A. nan lòt mo, arg te 2. 1839 01:33:03,185 --> 01:33:03,980 Poukisa se sa? 1840 01:33:03,980 --> 01:33:08,370 >> Oke, efektivman, sa k ap pase sou se ke chak nan strings sa yo 1841 01:33:08,370 --> 01:33:13,990 se, nan kou, yon etalaj de karaktè tankou anvan, chak nan ki gen karaktè 1842 01:33:13,990 --> 01:33:15,670 pran moute yon sèl multiple. 1843 01:33:15,670 --> 01:33:19,720 Epi yo pa konfonn 0 aktyèl la nan non pwogram nan ak 0 a, 1844 01:33:19,720 --> 01:33:22,040 ki vle di tout Bits 80. 1845 01:33:22,040 --> 01:33:27,140 Apre sa, Zamyla, pandan se tan, se toujou tou yon etalaj de karaktè. 1846 01:33:27,140 --> 01:33:31,450 >> Se konsa, nan fen a nan jounen an, li vrèman sanble tankou sa a anba kapo a. 1847 01:33:31,450 --> 01:33:38,800 Men, argv, pa nati nan ki jan prensipal travay, pèmèt m 'nan vlope tout bagay sa yo 1848 01:33:38,800 --> 01:33:44,810 moute nan, si ou pral, yon etalaj pi gwo ki, si nou yon ti kras sou senplifye 1849 01:33:44,810 --> 01:33:48,180 sa foto a sanble ak pa fè sa byen rale l selon echèl la moute a, 1850 01:33:48,180 --> 01:33:56,720 etalaj sa a se sèlman nan gwosè 2, premye a eleman nan ki gen yon fisèl, 1851 01:33:56,720 --> 01:33:59,230 eleman an dezyèm nan ki gen yon kòd. 1852 01:33:59,230 --> 01:34:01,687 Epi, nan vire, si ou kalite rale nan sou chak 1853 01:34:01,687 --> 01:34:03,770 nan tout sa yo strings, ki sa ou wè anba kapo a 1854 01:34:03,770 --> 01:34:07,190 se ke chak fisèl se jis yon etalaj de karaktè. 1855 01:34:07,190 --> 01:34:11,680 >> Koulye a, menm jan ak strings, nou te kapab jwenn aksè 1856 01:34:11,680 --> 01:34:15,260 nan pèsonaj la m-th nan yon afè lè l sèvi avèk ki bracket kare notasyon. 1857 01:34:15,260 --> 01:34:17,320 Menm jan an tou, ak ranje an jeneral, nou ka 1858 01:34:17,320 --> 01:34:22,700 sèvi ak kare bracket notasyon yo ka resevwa nan nenpòt ki kantite strings nan yon etalaj? 1859 01:34:22,700 --> 01:34:25,100 Pou egzanp, kite m ' ale pi devan epi fè sa. 1860 01:34:25,100 --> 01:34:32,420 >> Kite m 'ale pi devan epi kreye argv1.c, ki se yon ti kras diferan tan sa a. 1861 01:34:32,420 --> 01:34:35,635 Olye pou yo tcheke pou argc2, Mwen pral olye pou fè sa. 1862 01:34:35,635 --> 01:34:41,270 Pou int mwen jwenn 0, mwen ki pi piti a pase arg, mwen plis plis, 1863 01:34:41,270 --> 01:34:47,920 ak Lè sa a enprime soti andedan nan sa a, pousan nan, nouvo liy, ak Lè sa a 1864 01:34:47,920 --> 01:34:50,740 argv bracket mwen. 1865 01:34:50,740 --> 01:34:55,220 >> Se konsa, nan lòt mo, Mwen pa fè fas ak karaktè moun nan moman an. 1866 01:34:55,220 --> 01:35:00,190 Argv, kòm enplisit pa sa yo kare vid aparèy òtopedik a dwat a argv la non, 1867 01:35:00,190 --> 01:35:03,320 vle di argv se yon etalaj de strings. 1868 01:35:03,320 --> 01:35:04,870 Apre sa, arg se jis yon int. 1869 01:35:04,870 --> 01:35:08,800 >> Liy sa a isit la, 6, se di seri mwen egal a 0. 1870 01:35:08,800 --> 01:35:11,980 Konte tout wout la jiska, men se pa ki gen ladan, arg. 1871 01:35:11,980 --> 01:35:14,010 Lè sa a, sou chak iterasyon, enprime soti yon kòd. 1872 01:35:14,010 --> 01:35:14,800 Ki sa ki fisèl? 1873 01:35:14,800 --> 01:35:17,270 >> fisèl la m-th nan argv. 1874 01:35:17,270 --> 01:35:19,530 Se konsa, Lè nou konsidere ke anvan m 'te lè l sèvi avèk bracket a kare 1875 01:35:19,530 --> 01:35:22,180 notasyon yo ka resevwa nan on a karaktè nan yon fisèl, kounye a 1876 01:35:22,180 --> 01:35:27,240 Mwen lè l sèvi avèk notasyon a bracket kare yo ka resevwa nan fisèl la on nan yon etalaj. 1877 01:35:27,240 --> 01:35:30,310 Se konsa, li nan kalite yon kouch pi wo a, concept. 1878 01:35:30,310 --> 01:35:35,390 >> Se konsa, sa ki nan pwòp sou sa a pwogram kounye a, si mwen konpile argv1, 1879 01:35:35,390 --> 01:35:42,067 ak Lè sa a fè ./argv1, ak Lè sa tape nan yon bagay tankou foo ba baz, 1880 01:35:42,067 --> 01:35:45,400 ki se twa mo yo default ke yon syantis òdinatè rive nan pou nenpòt ki lè 1881 01:35:45,400 --> 01:35:51,010 li bezwen kèk mo kontneur, ak frape Antre, yo chak nan pawòl sa yo, 1882 01:35:51,010 --> 01:35:54,980 ki gen ladan non pwogram nan, ki se nan argv nan kote a an premye, 1883 01:35:54,980 --> 01:35:58,320 fini moute ke yo te enprime yon sèl nan yon tan. 1884 01:35:58,320 --> 01:36:05,290 Men, si mwen chanje sa a, epi mwen di yon bagay tankou argv1 Zamyla Chan, 1885 01:36:05,290 --> 01:36:08,800 nou jwenn tout twa nan sa yo mo, ki se argv0, 1886 01:36:08,800 --> 01:36:14,400 argv1, argv2, paske se nan sa a ka arg, konte a, se 3. 1887 01:36:14,400 --> 01:36:20,020 >> Men, sa ki nan pwòp se si ou konprann ki argv se jis yon etalaj de strings, 1888 01:36:20,020 --> 01:36:24,910 epi ou konprann ke yon afè se yon etalaj de karaktè, 1889 01:36:24,910 --> 01:36:29,470 nou ka aktyèlman kalite sèvi ak sa a kare bracket notasyon plizyè fwa 1890 01:36:29,470 --> 01:36:33,320 yo chwazi yon fisèl, ak Lè sa a chwazi yon karaktè nan fisèl la, 1891 01:36:33,320 --> 01:36:35,730 plonje nan pi fon jan sa a. 1892 01:36:35,730 --> 01:36:40,100 Nan egzanp sa a, kite m 'ale pi devan epi rele argv2.c sa a. 1893 01:36:40,100 --> 01:36:43,920 1894 01:36:43,920 --> 01:36:50,180 Ak nan egzanp sa a, kite m 'ale pi devan ak fè annapre a pou int mwen jwenn 0, 1895 01:36:50,180 --> 01:36:53,286 mwen se mwens pase arg, mwen plis plis, jis tankou anvan. 1896 01:36:53,286 --> 01:36:55,910 Se konsa, nan lòt words-- e kounye a, sa a a ap vin konplike ase. 1897 01:36:55,910 --> 01:36:59,940 Lè sa a, mwen pral di repekte sou strings nan argv, 1898 01:36:59,940 --> 01:37:01,294 kòm yon kòmantè vin jwenn mwen. 1899 01:37:01,294 --> 01:37:03,960 Lè sa a, mwen pral gen yon pare solèy pou riban, ki ou pwobableman 1900 01:37:03,960 --> 01:37:06,290 te fè, oswa konsidere kòm fè, nan grafouyen, kote 1901 01:37:06,290 --> 01:37:08,600 Mwen pral di int-- mwen se pa ale nan sèvi ak mwen ankò, 1902 01:37:08,600 --> 01:37:12,590 paske mwen pa vle lonbraj, oswa sòt de recouvrir mwen an ki deja egziste. 1903 01:37:12,590 --> 01:37:15,780 >> Mwen pral, olye de sa, di j, paske sa a, se ale mwen an varyab apre mwen, 1904 01:37:15,780 --> 01:37:18,590 lè m ap jis ap eseye konte nimewo senp. 1905 01:37:18,590 --> 01:37:28,850 Pou j vin 0-- epi tou, n, ki pral jwenn longè a sevè nan argv bracket mwen, 1906 01:37:28,850 --> 01:37:36,030 toutotan j se mwens pase m, j plis plis, fè sa ki annapre yo. 1907 01:37:36,030 --> 01:37:37,500 Ak isit la nan pati a enteresan. 1908 01:37:37,500 --> 01:37:46,330 >> Enprime soti yon karaktè ak yon liy nouvo, rakorde nan argv bracket mwen, bracket j. 1909 01:37:46,330 --> 01:37:47,940 OK, se konsa kite m 'ajoute kèk kòmantè isit la. 1910 01:37:47,940 --> 01:37:54,820 Repekte sou karaktè nan fisèl kounye a, 1911 01:37:54,820 --> 01:38:02,290 ekri an lèt detache j-th karaktè nan m-th fisèl. 1912 01:38:02,290 --> 01:38:04,630 Se konsa, kounye, se pou yo konsidere sa ki sa yo kòmantè vle di. 1913 01:38:04,630 --> 01:38:06,750 >> Repekte sou strings yo nan argv-- konbyen 1914 01:38:06,750 --> 01:38:09,300 strings yo nan argv, ki se yon etalaj? 1915 01:38:09,300 --> 01:38:13,420 Arg anpil, se konsa mwen iteration soti nan mwen egal 0 jiska arg. 1916 01:38:13,420 --> 01:38:20,020 Pandan se tan, ki jan anpil karaktè yo nan fisèl la m-th nan argv? 1917 01:38:20,020 --> 01:38:22,880 >> Oke, yo ka resevwa ki repons, Mwen jis rele longè fisèl 1918 01:38:22,880 --> 01:38:26,810 sou swen an aktyèl fisèl mwen sou, ki se argv bracket mwen. 1919 01:38:26,810 --> 01:38:30,090 Apre sa, mwen ale nan pou yon ti tan magazen ki valè nan n, jis pou rezon caching, 1920 01:38:30,090 --> 01:38:31,590 sonje li pou efikasite. 1921 01:38:31,590 --> 01:38:36,330 Lè sa a, mwen pral inisyalize j nan 0, kenbe prale toutotan j se mwens pase n, 1922 01:38:36,330 --> 01:38:38,430 epi sou chak iterasyon j enkreman. 1923 01:38:38,430 --> 01:38:41,030 >> Lè sa a, nan isit la, pou chak kòmantè m 'sou liy 12, 1924 01:38:41,030 --> 01:38:43,390 enprime soti yon karaktè, ki te swiv pa yon liy nouvo, 1925 01:38:43,390 --> 01:38:48,140 espesyalman argv bracket mwen ki ban m 'fisèl la m-th 1926 01:38:48,140 --> 01:38:51,690 nan argv-- se konsa pawòl Bondye a premye, nan dezyèm mo, twazyèm pawòl Bondye a, kèlkeswa sa. 1927 01:38:51,690 --> 01:38:57,370 Lè sa a, lè plonje j nan pi fon, epi vin m 'pèsonaj la j-th nan mo sa a. 1928 01:38:57,370 --> 01:39:02,200 Se konsa, nan efè, ou ka trete argv kòm yon milti-dimansyon, 1929 01:39:02,200 --> 01:39:06,050 kòm yon ki genyen de dimansyon, etalaj, kijan tout kalite pawòl nan sanble 1930 01:39:06,050 --> 01:39:08,580 tankou sa a nan tèt ou ou a zye, ak chak karaktè 1931 01:39:08,580 --> 01:39:10,930 se kalite konpoze nan yon kolòn, si ki ede. 1932 01:39:10,930 --> 01:39:13,260 >> An reyalite, lè nou toumante sa a apa nan semèn nan lavni, 1933 01:39:13,260 --> 01:39:15,580 li k ap pase yo dwe yon ti kras pi plis sofistike pase sa. 1934 01:39:15,580 --> 01:39:17,800 Men, ou ka vrèman panse a sa, pou kounye a, 1935 01:39:17,800 --> 01:39:22,110 kòm jis ki genyen de dimansyon sa a etalaj, annakò ak sa yon nivo nan li 1936 01:39:22,110 --> 01:39:23,260 se tout nan strings yo. 1937 01:39:23,260 --> 01:39:26,760 Lè sa a, si ou plonje nan pi fon, ou ka jwenn nan karaktè endividyèl yo 1938 01:39:26,760 --> 01:39:29,600 ladan'l lè l sèvi avèk notasyon sa a isit la. 1939 01:39:29,600 --> 01:39:31,620 >> Se konsa, sa se efè a nèt? 1940 01:39:31,620 --> 01:39:34,970 Kite m 'ale pi devan epi fè argv2-- reprize li. 1941 01:39:34,970 --> 01:39:36,210 Mwen te fè yon erè isit la. 1942 01:39:36,210 --> 01:39:40,160 Chal deklare nan bibliyotèk fonksyon Stirling. 1943 01:39:40,160 --> 01:39:42,190 Se konsa, tout tan sa a, li nan petèt ki apwopriye 1944 01:39:42,190 --> 01:39:45,130 ke nou ap sòt de fini egzakteman ki kote nou te kòmanse. 1945 01:39:45,130 --> 01:39:48,160 >> Mwen vise moute, chal deklare bibliyotèk fonksyon Stirling. 1946 01:39:48,160 --> 01:39:48,987 OK, rete tann yon minit. 1947 01:39:48,987 --> 01:39:51,070 Mwen sonje ke, espesyalman depi li nan dwa isit la. 1948 01:39:51,070 --> 01:39:54,490 Mwen bezwen gen ladan string.h nan sa a vèsyon nan pwogram nan. 1949 01:39:54,490 --> 01:40:00,050 >> Kite m 'ale pi devan epi yo genyen ladan string.h, delivre sa, ale pi devan 1950 01:40:00,050 --> 01:40:04,460 ak compile argv2. 1951 01:40:04,460 --> 01:40:08,390 Koulye a, isit la nou ale, fè argv2, Antre nan. 1952 01:40:08,390 --> 01:40:10,590 Epi menm si li nan yon ti kras skre nan premye gade, 1953 01:40:10,590 --> 01:40:15,690 remake ke, tout bon, ki sa se enprime se dot argv2. 1954 01:40:15,690 --> 01:40:19,970 >> Men, si mwen tape kèk mo apre a èd memwa, tankou argv2 Zamyla Chan, 1955 01:40:19,970 --> 01:40:22,560 Antre, tou yon ti kras skre nan premye gade. 1956 01:40:22,560 --> 01:40:30,540 Men, si nou woulo liv tounen moute, ./argv2 Z-A-M-Y-L-A C-H-A-N. 1957 01:40:30,540 --> 01:40:32,190 Se konsa, nou te iteratif sou tout mo. 1958 01:40:32,190 --> 01:40:37,770 Epi, nan vire, nou te iteratif sou chak karaktè ki nan yon mo. 1959 01:40:37,770 --> 01:40:40,040 >> Koulye a, apre tout bagay sa yo, reyalize ke gen nan 1960 01:40:40,040 --> 01:40:43,120 yon lòt detay nou te te kalite nan inyore tan sa a tout antye. 1961 01:40:43,120 --> 01:40:46,180 Nou jis takine apa sa entrain prensipal nan ka ta dwe ye? 1962 01:40:46,180 --> 01:40:47,780 Ki sa ki sou pwodiksyon prensipal la? 1963 01:40:47,780 --> 01:40:50,540 >> Tout moun nan tan sa a, nou te te jis kopye e kole 1964 01:40:50,540 --> 01:40:53,870 int nan mo nan devan prensipal yo, menm si ou ka wè sou entènèt, 1965 01:40:53,870 --> 01:40:58,340 pafwa mal nan vèsyon ki pi ansyen nan C ak konpilateur, ki yo di anile, 1966 01:40:58,340 --> 01:40:59,410 oswa pa gen anyen nan tout. 1967 01:40:59,410 --> 01:41:01,580 Men, tout bon, pou vèsyon an nan C ke nou ap lè l sèvi avèk, 1968 01:41:01,580 --> 01:41:06,180 C 11, oswa 2011, reyalize ke li ta dwe Int. 1969 01:41:06,180 --> 01:41:09,300 E li ta swa gen anile oswa arg ak argv isit la. 1970 01:41:09,300 --> 01:41:10,790 >> Men, poukisa int prensipal yo? 1971 01:41:10,790 --> 01:41:12,480 Ki sa ki li aktyèlman retounen? 1972 01:41:12,480 --> 01:41:16,280 Oke, li vire soti tout nan tan sa a, nenpòt ki lè ou te ekri yon prensipal pwogram 1973 01:41:16,280 --> 01:41:18,440 se toujou retounen yon bagay. 1974 01:41:18,440 --> 01:41:19,960 Men, li a te fè sa an kachèt. 1975 01:41:19,960 --> 01:41:23,350 >> Gen yon bagay ki yon int, kòm liy 5 sijere. 1976 01:41:23,350 --> 01:41:24,225 Men, sa ki int? 1977 01:41:24,225 --> 01:41:26,100 Oke, gen nan sa a konvansyon nan pwogram, 1978 01:41:26,100 --> 01:41:29,790 kijan si pa gen anyen gen ale mal ak tout se byen, 1979 01:41:29,790 --> 01:41:34,250 pwogram ak fonksyon jeneralman return-- yon ti jan counterintuitively-- 1980 01:41:34,250 --> 01:41:35,230 0. 1981 01:41:35,230 --> 01:41:38,070 0 jeneralman vle tout se byen. 1982 01:41:38,070 --> 01:41:40,610 Se konsa, menm si ou panse a li kòm fo nan anpil kontèks, 1983 01:41:40,610 --> 01:41:42,930 li aktyèlman jeneralman vle di yon bon bagay 1984 01:41:42,930 --> 01:41:49,560 >> Pandan se tan, si yon pwogram retounen 1, oswa negatif 1, oswa 5, oswa negatif 42, 1985 01:41:49,560 --> 01:41:52,941 oswa nenpòt ki pa 0 valè, ki jeneralman vle 1986 01:41:52,941 --> 01:41:54,190 te ke yon bagay ale mal. 1987 01:41:54,190 --> 01:41:56,700 An reyalite, sou pwòp ou a Mac oswa PC, ou ta ka gen aktyèlman wè 1988 01:41:56,700 --> 01:42:01,050 yon mesaj erè, annakò ak sa li di yon bagay oswa lòt, erè 1989 01:42:01,050 --> 01:42:04,940 Kòd negatif 42, oswa erè Kòd 23, oswa yon bagay tankou sa. 1990 01:42:04,940 --> 01:42:08,980 Nimewo Sa se jeneralman jis yon allusion pwogramè a, oswa konpayi an 1991 01:42:08,980 --> 01:42:11,174 ki te fè lojisyèl an, sa ki ale mal epi poukisa, 1992 01:42:11,174 --> 01:42:13,590 pou yo ka gade nan dokiman yo oswa kòd, 1993 01:42:13,590 --> 01:42:15,465 ak figi konnen ki sa ki nan erè aktyèlman vle di. 1994 01:42:15,465 --> 01:42:18,400 Li nan jeneralman yo pa itil nan nou fen itilizatè. 1995 01:42:18,400 --> 01:42:20,550 >> Men, lè retounen prensipal 0, tout se byen. 1996 01:42:20,550 --> 01:42:23,770 Men, si ou pa presize sa prensipal ta dwe retounen, 1997 01:42:23,770 --> 01:42:26,950 li pral jis otomatikman retounen 0 pou ou. 1998 01:42:26,950 --> 01:42:30,870 Men, retounen yon bagay lòt bagay se aktyèlman itil. 1999 01:42:30,870 --> 01:42:34,660 >> Nan pwogram final sa a, kite m ' ale pi devan epi rele exit.c sa a, 2000 01:42:34,660 --> 01:42:38,630 ak prezante dènye a nan jodi a sijè, yo konnen kòm yon kòd erè. 2001 01:42:38,630 --> 01:42:42,930 Kite m 'ale pi devan epi yo genyen ladan nou an dosye abitye moute tèt, fè int prensipal la. 2002 01:42:42,930 --> 01:42:49,500 Ak tan sa a, se pou yo fè int arg, fisèl argv, ak parantèz mwen 2003 01:42:49,500 --> 01:42:50,836 yo vle di ke li nan nan etalaj la. 2004 01:42:50,836 --> 01:42:52,460 Lè sa a, kite m 'jis fè yon chèk saniti. 2005 01:42:52,460 --> 01:42:56,640 Tan sa a, si arg pa fè sa egal 2, lè sa a ou konnen ki sa? 2006 01:42:56,640 --> 01:42:57,520 Bliye li. 2007 01:42:57,520 --> 01:43:03,170 Mwen pral yo di ke, hey, itilizatè, ou yo ki disparèt lòd liy agiman 2008 01:43:03,170 --> 01:43:04,210 antislach n. 2009 01:43:04,210 --> 01:43:05,230 >> Lè sa a, sa a, se li. 2010 01:43:05,230 --> 01:43:06,130 Mwen vle sòti. 2011 01:43:06,130 --> 01:43:11,030 Mwen pral jwenn preemptively, ak prematireman reyèlman, retounen 2012 01:43:11,030 --> 01:43:12,810 yon lòt bagay pase nimewo a 1. 2013 01:43:12,810 --> 01:43:15,360 ale nan valè pou premye a erè ki ka rive se 1. 2014 01:43:15,360 --> 01:43:17,860 Si ou gen kèk lòt inègza sitiyasyon ki ta ka yo fè fèt, 2015 01:43:17,860 --> 01:43:21,390 ou ta ka di retounen 2 oswa retounen 3, oswa petèt menm negatif 1 oswa negatif 2. 2016 01:43:21,390 --> 01:43:23,750 >> Sa yo se sèlman kòd sòti ki, jeneralman, 2017 01:43:23,750 --> 01:43:27,770 sèlman itil nan pwogramè a, oswa nan konpayi ki nan anbake lojisyèl an. 2018 01:43:27,770 --> 01:43:30,500 Men reyalite a ke li nan pa 0 se sa ki enpòtan. 2019 01:43:30,500 --> 01:43:34,310 Se konsa, si nan pwogram sa a, mwen vle garanti ke pwogram sa a sèlman 2020 01:43:34,310 --> 01:43:38,190 travay si itilizatè a bay m ' ak yon konte agiman nan de, 2021 01:43:38,190 --> 01:43:42,880 non an nan pwogram nan, ak kèk lòt mo, mwen kapab aplike kòm anpil jan sa a, 2022 01:43:42,880 --> 01:43:46,110 rele nan itilizatè a ak printf di, manke lòd liy agiman, 2023 01:43:46,110 --> 01:43:46,970 retounen 1. 2024 01:43:46,970 --> 01:43:49,940 Sa pral jis imedyatman kite pwogram nan. 2025 01:43:49,940 --> 01:43:55,840 >> Se sèlman si arg egal 2 nou pral jwenn desann isit la, nan ki pwen mwen pral di, 2026 01:43:55,840 --> 01:44:00,410 alo pousan an, antislach n, argv1. 2027 01:44:00,410 --> 01:44:03,827 Nan lòt mo, mwen se pa pral apre argv 0, 2028 01:44:03,827 --> 01:44:05,410 ki se jis non an nan pwogram nan. 2029 01:44:05,410 --> 01:44:09,450 Mwen vle enprime soti hello, vigil, pawòl Bondye a dezyèm ki moun nan tape. 2030 01:44:09,450 --> 01:44:12,580 Ak nan ka sa a sou liy 13, tout se byen. 2031 01:44:12,580 --> 01:44:15,920 >> Mwen konnen ke arg se 2 lojikman soti nan pwogram sa a. 2032 01:44:15,920 --> 01:44:17,770 Mwen pral ale pi devan epi retounen 0. 2033 01:44:17,770 --> 01:44:21,230 Kòm yon sou kote, kenbe nan tèt ou ke sa a se vre nan grafouyen kòm byen. 2034 01:44:21,230 --> 01:44:24,760 >> Lojikman, mwen te kapab fè sa a ak ankapsulasyon liy sa yo 2035 01:44:24,760 --> 01:44:27,020 nan kòd nan sa a kloz lòt isit la. 2036 01:44:27,020 --> 01:44:29,420 Men, sa a sòt de san nesesite indenting Kòd m 'yo. 2037 01:44:29,420 --> 01:44:31,800 Apre sa, mwen vle fè super klè ke pa gen pwoblèm sa, 2038 01:44:31,800 --> 01:44:34,670 pa default, alo yon bagay pral jwenn enprime, 2039 01:44:34,670 --> 01:44:36,050 toutotan itilizatè a kolabor. 2040 01:44:36,050 --> 01:44:39,360 >> Se konsa, li trè komen yo sèvi ak yon kondisyon, jis yon si, 2041 01:44:39,360 --> 01:44:41,870 trape kèk inègza sitiyasyon, ak Lè sa a sòti. 2042 01:44:41,870 --> 01:44:45,690 Lè sa a,, se konsa lontan tout se byen, pa gen yon lòt bagay, 2043 01:44:45,690 --> 01:44:48,060 men jis gen kòd la deyò ke si, paske li nan 2044 01:44:48,060 --> 01:44:51,060 ekivalan nan sa a ka an patikilye, ak lojik. 2045 01:44:51,060 --> 01:44:54,480 Se konsa, mwen retounen 0, jis klèman siyifi tout se byen. 2046 01:44:54,480 --> 01:44:58,480 >> Si m 'omisyon retounen nan 0, li ta ap otomatikman sipoze pou mwen. 2047 01:44:58,480 --> 01:45:00,890 Men koulye a, ke mwen retounen youn nan omwen ka sa a, 2048 01:45:00,890 --> 01:45:04,940 Mwen pral, pou bon mezi ak klè, retounen 0 nan ka sa a. 2049 01:45:04,940 --> 01:45:09,690 Se konsa, kounye kite m 'ale pi devan epi fè sòti, ki se yon seg pafè a jis kite kay la. 2050 01:45:09,690 --> 01:45:14,401 >> Men, asire sòti, ak kite m 'ale pi devan epi fè ./exit, Antre nan. 2051 01:45:14,401 --> 01:45:16,900 Ak pwogram nan rele nan m ', manke liy lòd agiman. 2052 01:45:16,900 --> 01:45:18,120 OK, kite m 'kolabore. 2053 01:45:18,120 --> 01:45:23,810 >> Se pou m 'olye pou fè ./exit, David, Antre nan. 2054 01:45:23,810 --> 01:45:25,190 Epi kounyeya, se di, alo David. 2055 01:45:25,190 --> 01:45:27,300 Epi ou pa ta nòmalman wè sa a. 2056 01:45:27,300 --> 01:45:30,650 >> Men, li sanble ke gen nan yon espesyal fason nan Linux ki aktyèlman wè 2057 01:45:30,650 --> 01:45:34,470 ak sa sòti Kòd yon pwogram quitté. 2058 01:45:34,470 --> 01:45:37,184 Pafwa nan yon grafik mond tankou Mac OS oswa Windows, 2059 01:45:37,184 --> 01:45:40,100 ou sèlman wè nimewo sa yo lè yon mesaj erè Pops leve sou ekran an 2060 01:45:40,100 --> 01:45:41,940 ak pwogramè a montre ou ki kantite. 2061 01:45:41,940 --> 01:45:44,773 Men, si nou vle wè sa ki erè a mesaj se, nou ka fè l 'isit lan-- 2062 01:45:44,773 --> 01:45:48,100 se konsa ./exit, Antre, ekri an lèt detache manke liy lòd agiman. 2063 01:45:48,100 --> 01:45:54,590 >> Si m 'fè kounye a eko $ ?, ki se ridikil skre kap. 2064 01:45:54,590 --> 01:45:56,590 Men, $? 2065 01:45:56,590 --> 01:45:59,220 se enkantasyon la majik ki di, hey, òdinatè, 2066 01:45:59,220 --> 01:46:01,900 di m 'sa anvan an Kòd sòti pwogram nan te ye a. 2067 01:46:01,900 --> 01:46:03,410 Apre sa, mwen frape Antre. 2068 01:46:03,410 --> 01:46:07,520 Mwen wè 1, paske se sa ki mwen te di fonksyon prensipal mwen an retounen. 2069 01:46:07,520 --> 01:46:12,310 >> Pandan se tan, si m 'fè ./exit David, ak frape Antre, mwen wè, alo David. 2070 01:46:12,310 --> 01:46:16,800 Men, si mwen kounye a fè $ eko ?, mwen wè alo 0. 2071 01:46:16,800 --> 01:46:19,080 Se konsa, sa a pral aktyèlman gen enfòmasyon enpòtan 2072 01:46:19,080 --> 01:46:23,420 nan yon kontèks debugjeur a, pa konsa pou sa bagay ke ou, moun nan, ta pran swen. 2073 01:46:23,420 --> 01:46:26,060 Men, debugjeur a ak lòt pwogram nou pral sèvi ak sa a semès 2074 01:46:26,060 --> 01:46:29,420 pral souvan gade nan nimewo sa a, menm si li nan sòt de kache lwen 2075 01:46:29,420 --> 01:46:32,780 sof si ou gade pou li, yo detèmine si wi ou pa yon nan pwogram 2076 01:46:32,780 --> 01:46:37,050 ekzekisyon te kòrèk oswa kòrèk. 2077 01:46:37,050 --> 01:46:40,450 >> Se konsa, ki pote nou nan sa a, nan fen jounen an. 2078 01:46:40,450 --> 01:46:43,917 Nou te kòmanse jodi a pa gade nan debogaj, ak nan vire nan kou a 2079 01:46:43,917 --> 01:46:46,750 tèt li, ak Lè sa a plis enteresan, teknikman anba kapo a 2080 01:46:46,750 --> 01:46:49,490 nan sa ki strings yo, ki dire semèn nou jis te pran pou yo akòde, 2081 01:46:49,490 --> 01:46:51,900 ak sètènman pran yo, yo pou yo akòde nan grafonyen moun. 2082 01:46:51,900 --> 01:46:56,040 >> Nou Lè sa a, gade nan ki jan nou kapab jwenn aksè karaktè moun nan yon fisèl, 2083 01:46:56,040 --> 01:47:00,310 ak Lè sa a ankò te pran yon pi wo nivo gade nan bagay sa yo, gade nan ki jan well-- 2084 01:47:00,310 --> 01:47:04,226 si nou vle jwenn nan moun eleman nan yon lis tankou estrikti, 2085 01:47:04,226 --> 01:47:05,850 pa ka nou fè sa ak strings miltip? 2086 01:47:05,850 --> 01:47:08,050 Apre sa, nou kapab ak liy lòd agiman. 2087 01:47:08,050 --> 01:47:12,800 Men, foto sa a isit la nan jis bwat se démonstration nan lide jeneral sa a 2088 01:47:12,800 --> 01:47:14,451 nan yon etalaj, oswa yon lis, oswa yon vektè. 2089 01:47:14,451 --> 01:47:16,450 E li depan de nan kontèks, tout nan mo sa yo 2090 01:47:16,450 --> 01:47:17,880 vle di bagay sa yo ti kras diferan. 2091 01:47:17,880 --> 01:47:20,060 Se konsa, nan C, nou ap sèlman pral pale sou yon etalaj. 2092 01:47:20,060 --> 01:47:23,840 Ak yon etalaj se yon moso nan memwa, chak nan moun nan 2093 01:47:23,840 --> 01:47:27,720 eleman yo vwazen, tounen, nan do, nan do, nan do. 2094 01:47:27,720 --> 01:47:31,970 >> Ak moun ki eleman yo, jeneralman, nan kalite la done menm, karaktè, 2095 01:47:31,970 --> 01:47:35,966 karaktè, karaktè, karaktè, oswa fisèl, fisèl, fisèl, fisèl, oswa int, 2096 01:47:35,966 --> 01:47:38,600 int, int, tou sa li se nou ap eseye magazen. 2097 01:47:38,600 --> 01:47:42,540 Men, nan fen jounen an, sa a se sa li sanble concept. 2098 01:47:42,540 --> 01:47:44,530 Ou ap pran ou memwa òdinatè a oswa RAM. 2099 01:47:44,530 --> 01:47:48,590 Epi ou ap Sur li soti nan idantik gwosè bwat, nan tout ki 2100 01:47:48,590 --> 01:47:50,920 yo tounen, nan do, nan tounen, nan do nan fason sa. 2101 01:47:50,920 --> 01:47:53,200 >> Ak sa ki nan bèl sou ide sa a, ak lefèt 2102 01:47:53,200 --> 01:47:58,580 ke nou ka eksprime valè nan fason sa a ak premye a nan estrikti done nou an 2103 01:47:58,580 --> 01:48:02,520 nan klas la, vle di nou kapab kòmanse yo rezoud pwoblèm ak kòd 2104 01:48:02,520 --> 01:48:04,079 ki te vin se konsa entwitif nan semèn 0. 2105 01:48:04,079 --> 01:48:05,870 Ou ap sonje telefòn nan liv egzanp, kote 2106 01:48:05,870 --> 01:48:09,110 nou itilize yon separe ak konkeri, oswa yon algorithm rechèch binè, 2107 01:48:09,110 --> 01:48:13,220 pase atravè yon antye pakèt moun sou non ak chif yo. 2108 01:48:13,220 --> 01:48:18,220 Men, nou sipoze, sonje, ki ki liv telefòn te deja klase, 2109 01:48:18,220 --> 01:48:21,630 ke yon lòt moun te deja kalkile ki out-- bay yon lis non 2110 01:48:21,630 --> 01:48:24,430 ak numéros Ki jan yo alphabetize yo. 2111 01:48:24,430 --> 01:48:26,950 Epi, koulye a ke nan C nou, tou, gen kapasite nan 2112 01:48:26,950 --> 01:48:30,290 mete bagay sa yo soti, pa fizikman nan yon liv telefòn 2113 01:48:30,290 --> 01:48:34,220 men nòmalman nan yon òdinatè a memwa, nou yo pral kapab semèn pwochèn 2114 01:48:34,220 --> 01:48:38,470 prezante ankò sa a men premye a nan estrikti done nou an nan yon array-- 2115 01:48:38,470 --> 01:48:43,530 men plis enpòtan, aktyèl òdinatè algoritm syans aplike 2116 01:48:43,530 --> 01:48:47,720 nan kòd, ak ki nou ka magazen done nan estrikti tankou sa a, 2117 01:48:47,720 --> 01:48:50,730 ak Lè sa a kòmanse manipile li, epi ki aktyèlman rezoud pwoblèm ak li, 2118 01:48:50,730 --> 01:48:53,570 ak yo bati sou tèt de sa, finalman, pwogram nan C, 2119 01:48:53,570 --> 01:48:56,730 nan Piton, nan JavaScript, rekèt baz done ak SQL? 2120 01:48:56,730 --> 01:48:59,980 >> Epitou, n ap wè ke tout moun sa yo lide diferan stat. 2121 01:48:59,980 --> 01:49:04,100 Men, pou kounye a, sonje ke nan domèn ke nou prezante jodi a 2122 01:49:04,100 --> 01:49:06,920 te bagay sa a isit la, ak mond lan nan chifreman. 2123 01:49:06,920 --> 01:49:11,200 , Ak nan mitan pwoblèm kap vini ou tèt ou ap rezoud se atizay la nan chifreman, 2124 01:49:11,200 --> 01:49:13,630 eskalade ak de-eskalade enfòmasyon, ak chifreman 2125 01:49:13,630 --> 01:49:15,930 ak dechifre tèks, ak an konsideran finalman 2126 01:49:15,930 --> 01:49:18,970 ke ou kounye a konnen ki sa se anba kapo a 2127 01:49:18,970 --> 01:49:21,860 se konsa ke lè ou wè oswa resevwa yon mesaj tankou sa a, ou 2128 01:49:21,860 --> 01:49:24,060 tèt ou ka Decoder li. 2129 01:49:24,060 --> 01:49:26,740 Tout bagay sa a, ak plis ankò pwochen fwa. 2130 01:49:26,740 --> 01:49:29,890 2131 01:49:29,890 --> 01:49:30,790 >> [VIDEO lèktur] 2132 01:49:30,790 --> 01:49:32,970 >> -Mover Fèk rive. 2133 01:49:32,970 --> 01:49:35,146 Mwen pral ale vizit pwofesè kolèj l 'yo. 2134 01:49:35,146 --> 01:49:37,611 Oui. 2135 01:49:37,611 --> 01:49:40,080 Hi. 2136 01:49:40,080 --> 01:49:40,660 Li nan ou. 2137 01:49:40,660 --> 01:49:44,125 2138 01:49:44,125 --> 01:49:45,110 Rete tann! 2139 01:49:45,110 --> 01:49:45,610 David. 2140 01:49:45,610 --> 01:49:53,936 2141 01:49:53,936 --> 01:49:56,060 Mwen jis ap eseye figi konnen ki sa ki rive ou. 2142 01:49:56,060 --> 01:49:58,130 Tanpri, anyen ta kapab ede. 2143 01:49:58,130 --> 01:50:05,020 2144 01:50:05,020 --> 01:50:08,354 Ou te kolèj li kolokasyon, yo pa t 'ou? 2145 01:50:08,354 --> 01:50:10,770 Ou te gen avè l 'lè li te fini pwojè a CS50? 2146 01:50:10,770 --> 01:50:13,770 2147 01:50:13,770 --> 01:50:15,765 >> [MIZIK jwe] 2148 01:50:15,765 --> 01:50:32,110 2149 01:50:32,110 --> 01:50:33,150 >> -Sa Te CS50. 2150 01:50:33,150 --> 01:50:42,690 2151 01:50:42,690 --> 01:50:44,770 >> Mwen renmen kote sa a. 2152 01:50:44,770 --> 01:50:45,854 >> -Eat Yo. 2153 01:50:45,854 --> 01:50:47,020 Nou pwal soti nan biznis. 2154 01:50:47,020 --> 01:50:52,120 2155 01:50:52,120 --> 01:50:53,970 >> [FEN lèktur]