1 00:00:00,000 --> 00:00:02,350 >> [MIZIK jwe] 2 00:00:02,350 --> 00:00:05,444 3 00:00:05,444 --> 00:00:06,360 Doug Lloyd: Tout dwat. 4 00:00:06,360 --> 00:00:07,770 Kalite yon sijè etranj, dwa? 5 00:00:07,770 --> 00:00:09,050 Nimewo majik. 6 00:00:09,050 --> 00:00:12,012 Ki sa ki DOE li vle di lè li se ap pale de nimewo majik? 7 00:00:12,012 --> 00:00:14,220 Oke, kèk nan pwogram yo ke nou te ekri nan CS50 8 00:00:14,220 --> 00:00:16,660 byen lwen tèlman te gen kèk etranj nimewo kalite jete nan yo. 9 00:00:16,660 --> 00:00:19,680 Petèt pou rezon nou pa fè sa antyèman konprann kounye a. 10 00:00:19,680 --> 00:00:23,950 Pou egzanp, nan pwoblèm nan Mario, nou capped wotè nan piramid la nan 23. 11 00:00:23,950 --> 00:00:26,880 Nou te di ou klèman pa ka ale pi wo pase 23. 12 00:00:26,880 --> 00:00:28,702 >> Men, sa ki 23 vle di? 13 00:00:28,702 --> 00:00:30,410 Bon, si w ap li a espèk ak anpil atansyon, ou 14 00:00:30,410 --> 00:00:32,493 ta ka gen pou wè ki nan rezon ki fè nou capped li nan 23 15 00:00:32,493 --> 00:00:36,160 se paske wotè nan estanda nan yon fenèt tèminal se 24. 16 00:00:36,160 --> 00:00:38,860 Se konsa, si nou gen nan piramid gen pi wo pase sa, 17 00:00:38,860 --> 00:00:41,290 li ta ka fè sa sa a etranj kote li kouri sou ekran an. 18 00:00:41,290 --> 00:00:45,140 E ou konnen, ki sa fè sa vle di nan yon kontèks, dwa? 19 00:00:45,140 --> 00:00:48,880 >> Se siyifikasyon an nan 23 imedyatman evidan ak yon moun ki moun ki parèt nan pwogram ou an 20 00:00:48,880 --> 00:00:51,550 e petèt gen yon diferan fenèt tèminal gwosè? 21 00:00:51,550 --> 00:00:52,330 Pwobableman pa. 22 00:00:52,330 --> 00:00:53,080 Li sanble tankou, OK. 23 00:00:53,080 --> 00:00:55,005 Oke, poukisa se li jis mwens pase 23? 24 00:00:55,005 --> 00:00:56,880 An jeneral, li nan kalite nan yon abitid move aktyèlman 25 00:00:56,880 --> 00:00:58,940 yo ekri konstan nan kòd ou a. 26 00:00:58,940 --> 00:01:02,190 Nan fè sa, lè ou aktyèlman fè ekri yon konstan nan kòd ou a, 27 00:01:02,190 --> 00:01:05,630 li nan pafwa refere yo kòm lè l sèvi avèk nimewo majik, ki se yon bagay 28 00:01:05,630 --> 00:01:08,030 nou jeneralman vle eseye, epi evite. 29 00:01:08,030 --> 00:01:12,830 >> Pou egzanp, kite a pran yon gade a fonksyon sa a ki senp isit la. 30 00:01:12,830 --> 00:01:15,726 Li evidan gen nan pa gen done kalite nan C rele kat oswa pil. 31 00:01:15,726 --> 00:01:16,600 Se konsa, jis pote avè m '. 32 00:01:16,600 --> 00:01:18,910 Li se yon ti kras nan pseudocode melanje nan isit la. 33 00:01:18,910 --> 00:01:21,050 Sa a se yon fonksyon rele fas kat ki aparamman 34 00:01:21,050 --> 00:01:26,570 pran yon pil kòm paramèt li yo, ak volonte pwodiksyon m 'yon kat sèl. 35 00:01:26,570 --> 00:01:30,990 >> Apre sa, mwen ap fè yon bagay isit la kote mwen gen yon riban ki kouri ki ant 0 a 52, 36 00:01:30,990 --> 00:01:33,394 ak mwen fè fas yon kat. 37 00:01:33,394 --> 00:01:35,310 Oke, nou te gen yon majik Nimewo nan isit la, dwat. 38 00:01:35,310 --> 00:01:38,790 Ou wè sa ki nimewo a majik se? 39 00:01:38,790 --> 00:01:42,280 Ou pi enpòtan, ou wè sa ki pwoblèm nan se isit la? 40 00:01:42,280 --> 00:01:44,310 Patikilyèman si sa a se jis yon fonksyon 41 00:01:44,310 --> 00:01:48,030 nan dosye pwòp li yo nan yon katab ki gen 42 00:01:48,030 --> 00:01:49,970 yon pakèt moun sou diferan dosye, chak nan yo ki 43 00:01:49,970 --> 00:01:51,670 fè yon lòt bagay nan yon pil kat la kat. 44 00:01:51,670 --> 00:01:57,310 Petèt li melanz yo, oswa kontra yon men nan senk kat olye pou yo yon kat sèl. 45 00:01:57,310 --> 00:01:59,420 >> Ou wè sa ki la pwoblèm ta ka isit la? 46 00:01:59,420 --> 00:02:03,220 Ou wè nimewo a majik Mwen te sou fòm piki nan kòd la? 47 00:02:03,220 --> 00:02:04,390 Li nan 52, dwat. 48 00:02:04,390 --> 00:02:06,440 >> Tankou, entwitif pwobableman ou konnen, OK. 49 00:02:06,440 --> 00:02:09,740 Fè tankou yon pil kat estanda nan kat gen 52 kat. 50 00:02:09,740 --> 00:02:12,570 Men, nan pwogram nou an, li nan jis kalite waf alantou nan la. 51 00:02:12,570 --> 00:02:15,280 Se tankou tout nan yon toudenkou gen nan yon 52. 52 00:02:15,280 --> 00:02:18,290 >> Youn nan fason yo rezoud sa a pwoblèm se fè sa. 53 00:02:18,290 --> 00:02:22,724 Nou ap trè klèman kounye a rele pil gwosè a kòm 52. 54 00:02:22,724 --> 00:02:25,390 Li bay li yon ti kras pi plis entwisyon sa vle di lè nan nan pou riban 55 00:02:25,390 --> 00:02:28,650 pita sou nou Lè sa a di, m se mwens pase gwosè pil. 56 00:02:28,650 --> 00:02:32,666 Li jis sanble pi bon pase li di 52. 57 00:02:32,666 --> 00:02:34,290 Koulye a, sa a aktyèlman ranje pwoblèm nan. 58 00:02:34,290 --> 00:02:38,460 Li bay kèk senbolik sa vle di konstan nan. 59 00:02:38,460 --> 00:02:40,820 Men, li fè sa kalite aktyèlman prezante yon lòt pwoblèm 60 00:02:40,820 --> 00:02:43,770 ki pa ta kapab imedyatman aparan. 61 00:02:43,770 --> 00:02:45,859 Menm si sa a varyab se te deklare globally-- 62 00:02:45,859 --> 00:02:47,650 ou sonje ki sa li vle di lè nou deklare 63 00:02:47,650 --> 00:02:50,500 yon varyab globalman kont lokalman? 64 00:02:50,500 --> 00:02:53,340 Menm si nou deklare yon varyab globalman, ki sa si gen nan 65 00:02:53,340 --> 00:02:55,500 yon lòt fonksyon nan suite nou an nan fonksyon 66 00:02:55,500 --> 00:02:59,750 ki kontra avèk kat manipilasyon ki inadvèrtans chanje gwosè pil, 67 00:02:59,750 --> 00:03:02,727 oswa li ogmante li pa 1 oswa diminye li pa 1. 68 00:03:02,727 --> 00:03:04,060 Ki ta ka eple pwoblèm, dwa? 69 00:03:04,060 --> 00:03:08,261 Espesyalman si nou ap fè fas ak yon seri nan kat kote mélanger pil la plen 70 00:03:08,261 --> 00:03:08,760 obligatwa. 71 00:03:08,760 --> 00:03:12,804 Si yo gwosè pil diminye pa 1, pou egzanp, pou 51, 72 00:03:12,804 --> 00:03:14,970 nou ap pa aktyèlman mélanger tout kat yo pètèt. 73 00:03:14,970 --> 00:03:16,500 Nou ap kite youn nan yo deyò. 74 00:03:16,500 --> 00:03:21,680 Epi sa te kapab petèt gen valè prevwa oswa eksplwate pa yon aktè move. 75 00:03:21,680 --> 00:03:24,920 >> C bay sa k ap rele yon preproseseur direktiv, ki 76 00:03:24,920 --> 00:03:27,764 tou yo rele yon macro pou kreye konstan senbolik. 77 00:03:27,764 --> 00:03:30,180 Ak an reyalite, ou te deja wè yon direktiv preproseseur, 78 00:03:30,180 --> 00:03:32,916 menm si ou pa t 'tande li rele ke ak # enkli. 79 00:03:32,916 --> 00:03:37,150 Li nan yon lòt egzanp nan yon macro oswa preproseseur direktiv. 80 00:03:37,150 --> 00:03:41,290 >> Fason ki yo kreye konstan senbolik, oswa bay yon non nan yon konstan 81 00:03:41,290 --> 00:03:43,740 konsa ke li gen plis sa vle di, se jan sa a. 82 00:03:43,740 --> 00:03:47,030 # defini, non, ranplasman. 83 00:03:47,030 --> 00:03:49,140 Vrèman enpòtan sou kote isit la reyèlman rapid. 84 00:03:49,140 --> 00:03:54,180 Pa mete yon virgules a nan fen # defini ou yo. 85 00:03:54,180 --> 00:03:57,310 Se konsa, li # defini, non, ranplasman. 86 00:03:57,310 --> 00:03:59,540 >> Lè yo fin fè pwogram ou an, sa ki aktyèlman k ap pase 87 00:03:59,540 --> 00:04:01,740 se du a si pral yo ale nan kòd ou a 88 00:04:01,740 --> 00:04:06,770 epi ranplase chak egzanp nan pawòl Bondye a "Non" ak tou sa ou 89 00:04:06,770 --> 00:04:08,860 mete kòm ranplasman. 90 00:04:08,860 --> 00:04:13,060 Analoji, si # enkli se sòt a menm jan ak kopye ak kole, 91 00:04:13,060 --> 00:04:15,700 Lè sa a, # defini se sòt de menm jan ak jwenn ak ranplase, 92 00:04:15,700 --> 00:04:19,180 si ou te janm itilize ki karakteristik nan yon pwogram pwosesis mo, pou egzanp. 93 00:04:19,180 --> 00:04:26,345 >> Se konsa, pou egzanp, si mwen # defini pi kòm 3.14159265, 94 00:04:26,345 --> 00:04:28,720 si w ap pi bon matematik enkline epi ou toudenkou 95 00:04:28,720 --> 00:04:31,640 wè 3.14159265 vole alantou an kòd ou a, 96 00:04:31,640 --> 00:04:33,517 pwobableman ou konnen li la ap pale de pi. 97 00:04:33,517 --> 00:04:35,850 Men, petèt nou ka bay li yon ti kras siyifikasyon plis senbolik. 98 00:04:35,850 --> 00:04:39,850 Apre sa, nou ka olye di # defini pi tankou sa gren nan nimewo 99 00:04:39,850 --> 00:04:42,110 ke mwen pa ale nan kenbe lekti sou yo ak sou. 100 00:04:42,110 --> 00:04:45,560 >> Ak sa ki k ap pase yo rive Lè sa a, konpile tan se lè pwogram lan se 101 00:04:45,560 --> 00:04:48,530 konpile, premye bagay la ki pral rive se li pral ale nan 102 00:04:48,530 --> 00:04:51,520 epi li pral ranplase chak fwa li wè kapital P, kapital mwen menm, 103 00:04:51,520 --> 00:04:55,610 li pral literalman ranplase li ak 3.14 ak sou sa, se konsa ke ou 104 00:04:55,610 --> 00:04:58,090 pa bezwen tape li chak tan pandan y ap pwogram ou an toujou 105 00:04:58,090 --> 00:05:00,631 gen fonksyonalite a ke ou espere, paske w ap travay 106 00:05:00,631 --> 00:05:05,090 ak manipile, miltipliye, divize, tou sa li se pa pi. 107 00:05:05,090 --> 00:05:08,230 >> Ou pa limite a sa a sibstitisyon pou chif sèlman. 108 00:05:08,230 --> 00:05:12,279 Pou egzanp, mwen te kapab # defini kou kòm CS50 nan fisèl. 109 00:05:12,279 --> 00:05:14,070 Nan ka sa a, lè a Pwogram konpile, 110 00:05:14,070 --> 00:05:16,236 # defini pral ale nan nan Kòd, ranplase chak fwa 111 00:05:16,236 --> 00:05:19,900 li wè "Kou" ak CS50 nan fisèl. 112 00:05:19,900 --> 00:05:21,720 >> Ou pral avi isit la tou ke mwen souvan 113 00:05:21,720 --> 00:05:26,090 # defini tout defini m 'senbolik konstan, se konsa pale, 114 00:05:26,090 --> 00:05:28,130 yo toujou nan tout kapsil. 115 00:05:28,130 --> 00:05:28,960 Li se yon konvansyon. 116 00:05:28,960 --> 00:05:30,170 Li pa nan yo mande yo. 117 00:05:30,170 --> 00:05:33,900 Rezon ki fè la jeneralman moun ki pral sèvi ak tout kapital lè yo ap #defining 118 00:05:33,900 --> 00:05:37,590 se jis fè li vrèman klè ke sa a eleman patikilye nan kòd m ' 119 00:05:37,590 --> 00:05:38,820 se yon konstan defini. 120 00:05:38,820 --> 00:05:43,730 Si li te miniskil, li nan posib ke li ta ka dwe bay konfizyon avèk yon varyab. 121 00:05:43,730 --> 00:05:46,120 Epi sa a, pwobableman pa yon bon bagay yo dwe fè. 122 00:05:46,120 --> 00:05:48,910 >> Se konsa, patikilye sa a solisyon se pi bon 123 00:05:48,910 --> 00:05:50,550 pase swa nan yo menm ki anvan yo. 124 00:05:50,550 --> 00:05:59,950 Si m 'premye # defini pil gwosè 52, Lè sa a, kounye a itilize m 'lan nan 52, oswa gwosè pil isit la, 125 00:05:59,950 --> 00:06:01,850 se yon anpil plis entwisyon ak yon anpil pi an sekirite. 126 00:06:01,850 --> 00:06:03,280 Ou pa ka manipile yon konstan. 127 00:06:03,280 --> 00:06:05,259 Ou pa ka di 52 plis plis. 128 00:06:05,259 --> 00:06:06,800 Sa pa k ap pase yo konvèti li nan 53. 129 00:06:06,800 --> 00:06:09,390 Ou pa ka chanje 52 nan yon bagay. 130 00:06:09,390 --> 00:06:12,470 >> Ou ka chanje yon varyab ki gen valè 52, 131 00:06:12,470 --> 00:06:14,870 ki te ranje nan premye nou te gen anvan. 132 00:06:14,870 --> 00:06:17,000 Epi ou ta ka ogmante varyab sa a 53. 133 00:06:17,000 --> 00:06:21,100 Men, ou pa ka di 52 plis plis ak gen ki toudenkou vire 52 nan 53. 134 00:06:21,100 --> 00:06:23,350 52 se toujou 52. 135 00:06:23,350 --> 00:06:28,860 Se konsa, ou pa ka inadvèrtans chanje pil gwosè isit la pa manipile li, 136 00:06:28,860 --> 00:06:29,940 137 00:06:29,940 --> 00:06:32,390 >> Yon lòt bò bon efè nan menm si sa a se 138 00:06:32,390 --> 00:06:38,310 ki moun ou ye konnen ke pa tout peyi atravè mond lan 139 00:06:38,310 --> 00:06:40,690 sèvi ak yon pil kat la kat nan gwosè 52? 140 00:06:40,690 --> 00:06:45,630 Pou egzanp, li vrèman komen nan Almay yo sèvi ak yon gwosè pil kat la 32, 141 00:06:45,630 --> 00:06:48,020 kote yo dezabiye soti kèk nan kat yo valè pi ba yo. 142 00:06:48,020 --> 00:06:50,960 Ak nan ka sa a, mwen te vle pò chanm mwen 143 00:06:50,960 --> 00:06:55,390 nan fonksyon ki fè fas ak manipilasyon kat nan peyi Almay. 144 00:06:55,390 --> 00:06:59,440 Mwen te kapab nan egzanp nan premye nou te montre yo, yo gen yo ale epi ranplase 145 00:06:59,440 --> 00:07:03,570 tout sikonstans nan 52 nan kòd mwen an avèk 32. 146 00:07:03,570 --> 00:07:07,940 >> Men, isit la, si mwen # defini gwosè pil kòm 32 nan tèt la anpil nan kòd m 'yo, 147 00:07:07,940 --> 00:07:11,730 si mwen bezwen chanje li, mwen kapab jis ale ak chanje sa yon sèl bagay. 148 00:07:11,730 --> 00:07:15,010 Compile Kòd m 'yo, ak tout nan yon toudenkou li Propagation nan. 149 00:07:15,010 --> 00:07:18,850 An reyalite, nou ka chanje pil gwosè nan nenpòt valè nou vle. 150 00:07:18,850 --> 00:07:22,500 >> Èske mwen ka enterese w nan yon jwèt la gwosè pil vin chèche? 151 00:07:22,500 --> 00:07:23,430 >> Mwen se Doug Lloyd. 152 00:07:23,430 --> 00:07:25,840 Lè sa a se CS50. 153 00:07:25,840 --> 00:07:27,772