1 00:00:00,000 --> 00:00:02,395 >> [MIZIK jwe] 2 00:00:02,395 --> 00:00:05,750 3 00:00:05,750 --> 00:00:06,506 >> Doug Lloyd: OK. 4 00:00:06,506 --> 00:00:08,880 Nou te travay ak nonm antye relatif, nou te te travay ak karaktè, 5 00:00:08,880 --> 00:00:11,930 nou te te travay flote, double, strings, ak bools. 6 00:00:11,930 --> 00:00:14,870 Nou te fin itilize bèl anpil tout a [fèbl] kalite yo ki 7 00:00:14,870 --> 00:00:17,100 yo te disponib nan nou tout ansanm. 8 00:00:17,100 --> 00:00:19,430 Men koulye a, nou vle fè yon bagay ki pi. 9 00:00:19,430 --> 00:00:20,210 Ki jan nou fè sa? 10 00:00:20,210 --> 00:00:22,560 Ki jan nou kreye kalite done diferan? 11 00:00:22,560 --> 00:00:26,130 Nou ka fè sa lè l sèvi avèk estrikti. 12 00:00:26,130 --> 00:00:30,180 Se konsa, estrikti pèmèt nou inifye varyab nan diferan kalite 13 00:00:30,180 --> 00:00:34,810 nan yon sèl, nouvo kalite varyab, nou ka bay pwòp non kalite li yo. 14 00:00:34,810 --> 00:00:37,570 Sa a se yon vrèman fò bagay pou kapab fè sa, 15 00:00:37,570 --> 00:00:40,900 paske nou kapab kounye a gwoup eleman nan kalite done diferan 16 00:00:40,900 --> 00:00:43,910 ansanm sa yo ki te yon koneksyon lojik. 17 00:00:43,910 --> 00:00:46,440 Nou te te kapab fè sa ak ranje sòt de, dwa? 18 00:00:46,440 --> 00:00:49,540 Nou kapab gwoup varyab nan kalite la menm done 19 00:00:49,540 --> 00:00:53,410 ansanm nan yon gwo inite nan memwa, yon etalaj. 20 00:00:53,410 --> 00:00:56,660 >> Men, nou pa te kapab melanje moute diferan kalite done ansanm. 21 00:00:56,660 --> 00:01:02,610 Nou pa ka, di, pè yon nonb antye relatif, ak yon karaktè, ak yon doub tout 22 00:01:02,610 --> 00:01:05,330 nan menm bagay la ak rele ke yon inite sèl. 23 00:01:05,330 --> 00:01:08,830 Men, avèk estrikti, oswa souvan refere yo kòm strukt, 24 00:01:08,830 --> 00:01:09,585 nou aktyèlman kapab. 25 00:01:09,585 --> 00:01:12,370 Se konsa, yon estrikti se sòt de tankou yon varyab super. 26 00:01:12,370 --> 00:01:16,530 Li se yon varyab ki gen lòt varyab andedan nan li. 27 00:01:16,530 --> 00:01:19,650 Se konsa, isit la nan yon egzanp sou yon estrikti trè senp. 28 00:01:19,650 --> 00:01:23,380 Sa a se sa sentaks la ta gade renmen yo kreye yon estrikti pou yon machin. 29 00:01:23,380 --> 00:01:25,250 Koulye a, kite a ale nan sentaks la isit la. 30 00:01:25,250 --> 00:01:27,400 Struct, sa se nan mo kle ki endike 31 00:01:27,400 --> 00:01:30,270 ke mwen kreye yon nouvo kalite done isit la. 32 00:01:30,270 --> 00:01:33,860 An patikilye, non kalite a done a se pral fè struct machin, menm jan nou pral wè. 33 00:01:33,860 --> 00:01:36,640 Men, sa a se sòt nan nan pwent yo ale nan du a ke sa a 34 00:01:36,640 --> 00:01:42,440 kòm yon gwoup nan varyab ki pral yo dwe konsidere kòm yon pati nan kalite la menm 35 00:01:42,440 --> 00:01:44,010 nan yon minit. 36 00:01:44,010 --> 00:01:46,340 >> Machin, jis non an nan estrikti an. 37 00:01:46,340 --> 00:01:50,590 Yon fwa ankò, kalite a done isit la ki pral yo dwe struct machin, pa sèlman machin. 38 00:01:50,590 --> 00:01:53,060 Men, si ou gen different-- si ou kreye miltip strukt 39 00:01:53,060 --> 00:01:56,950 nan pwogram nan menm, ou bezwen distenge ant struct ak struct. 40 00:01:56,950 --> 00:02:00,140 Se konsa, struct machin, mwen ta ka yo te genyen tou struct elèv, pou egzanp, 41 00:02:00,140 --> 00:02:01,790 nan pwogram nan menm. 42 00:02:01,790 --> 00:02:05,980 Anndan nan aparèy òtopedik yo Curly yo tout nan jaden yo sa yo rele, 43 00:02:05,980 --> 00:02:07,954 oswa manm nan estrikti an. 44 00:02:07,954 --> 00:02:10,370 Se konsa, sa yo se kèk nan bagay sa yo ki nannan nan yon machin? 45 00:02:10,370 --> 00:02:15,270 Oke, li anjeneral gen yon ane, li te yon non modèl, ak yon plak machin, 46 00:02:15,270 --> 00:02:18,000 yon sou odomèt ki anjeneral gen kèk kantite mil sou li, 47 00:02:18,000 --> 00:02:19,225 e petèt yon gwosè motè. 48 00:02:19,225 --> 00:02:23,570 Ak jan ou ka wè, mwen melanje moute nonm antye relatif ak karaktè ak double. 49 00:02:23,570 --> 00:02:26,420 Yo ap tout pral fè pati nan sa a nouvo kalite done. 50 00:02:26,420 --> 00:02:29,750 >> Anfen, bagay final la mwen bezwen fè, pa bliye virgules sa a ti kras 51 00:02:29,750 --> 00:02:30,290 alafen. 52 00:02:30,290 --> 00:02:34,380 Apre nou fini defini estrikti a, nou bezwen mete yon virgules nan fen an. 53 00:02:34,380 --> 00:02:37,325 Li se yon sentaks trè komen erè, paske avèk yon fonksyon, 54 00:02:37,325 --> 00:02:40,200 pou egzanp, ou ta jis gen louvri atèl Curly, fèmen atèl Curly. 55 00:02:40,200 --> 00:02:42,950 Ou pa mete yon virgules nan la nan fen yon definisyon fonksyon. 56 00:02:42,950 --> 00:02:46,430 Sa a sanble yon fonksyon definisyon, men li la pa, 57 00:02:46,430 --> 00:02:49,653 ak pou virgules a gen se jis yon rapèl ke ou 58 00:02:49,653 --> 00:02:52,440 bezwen mete l 'la, paske du a pral otreman pa 59 00:02:52,440 --> 00:02:53,510 konnen ki sa fè ak li. 60 00:02:53,510 --> 00:02:56,160 Li se yon erè trè komen aksidantèlman fè 61 00:02:56,160 --> 00:02:58,570 lè w ap premye defini estrikti. 62 00:02:58,570 --> 00:02:59,500 >> OK. 63 00:02:59,500 --> 00:03:02,824 Se konsa, nou anjeneral defini estrikti nou an nan tèt la anpil nan pwogram nou 64 00:03:02,824 --> 00:03:05,490 paske yo ap pwobableman pral yo dwe itilize pa plizyè fonksyon. 65 00:03:05,490 --> 00:03:08,850 Nou pa vle defini yon struct andedan nan yon fonksyon, 66 00:03:08,850 --> 00:03:12,110 paske lè sa a nou ka only-- nan sijè ki abòde nan estrikti a reyèlman 67 00:03:12,110 --> 00:03:13,790 sèlman egziste andedan nan ki fonksyon. 68 00:03:13,790 --> 00:03:17,450 Nou ta pwobableman vle defini yon estrikti pou nou ka sèvi ak li nan plizyè fonksyon, 69 00:03:17,450 --> 00:03:20,670 oswa petèt nan plizyè dosye ki yo se mare ansanm 70 00:03:20,670 --> 00:03:22,920 yo kreye pwogram sèl nou yo. 71 00:03:22,920 --> 00:03:24,920 Pafwa tou olye pou a defini estrikti a 72 00:03:24,920 --> 00:03:27,961 nan tèt la anpil kote ou te mete ou liv an gen ladan ak liv ou defini, 73 00:03:27,961 --> 00:03:32,080 pou egzanp, ou ta ka mete yo nan separe dosye dot h, ki ou Lè sa a 74 00:03:32,080 --> 00:03:35,020 liv gen ladan tèt ou. 75 00:03:35,020 --> 00:03:37,620 >> Se konsa, nou gen estrikti, men kounye a nou bezwen jwenn andedan nan yo. 76 00:03:37,620 --> 00:03:39,800 Ki jan nou jwenn andedan nan yon estrikti jwenn aksè 77 00:03:39,800 --> 00:03:43,530 moun sub-varyab, sa yo ki varyab ki egziste andedan estrikti nan? 78 00:03:43,530 --> 00:03:46,810 Oke, nou gen yon bagay yo rele operatè a dot, ki pèmèt nou 79 00:03:46,810 --> 00:03:50,990 jwenn aksè nan jaden ki te andeyò estrikti an. 80 00:03:50,990 --> 00:03:55,490 Se konsa, pou egzanp, kite a di mwen te deklare done estrikti mwen tape yon kote 81 00:03:55,490 --> 00:03:59,020 nan tèt la nan pwogram m 'yo, oswa petèt nan yon dosye dot h ke mwen te liv enkli ladan li. 82 00:03:59,020 --> 00:04:03,360 Si m 'Lè sa a, vle kreye yon nouvo varyab nan ki kalite done, mwen kapab di, 83 00:04:03,360 --> 00:04:06,260 struct machin, machin mwen an, virgules. 84 00:04:06,260 --> 00:04:11,580 Jis tankou mwen te kapab di Int x, oswa non fisèl virgules. 85 00:04:11,580 --> 00:04:18,100 >> Kalite a done isit la se struct machin, non an nan varyab la se machin mwen an, 86 00:04:18,100 --> 00:04:23,770 ak Lè sa a mwen ka itilize operatè a dot aksè jaden yo divès kalite nan machin mwen an. 87 00:04:23,770 --> 00:04:27,494 Se konsa, mwen ka di machin mwen an dot ane egal 2011. 88 00:04:27,494 --> 00:04:28,410 Sa a parfe amann. 89 00:04:28,410 --> 00:04:34,210 Ane, si ou sonje, yo te defini kòm yon nonb antye relatif jaden andedan nan machin sa a struct 90 00:04:34,210 --> 00:04:35,200 done kalite. 91 00:04:35,200 --> 00:04:39,966 Se konsa, nenpòt ki varyab nan done yo struct machin kalite, tankou machin mwen an, mwen kapab di machin mwen an 92 00:04:39,966 --> 00:04:44,030 ane dot egal ak Lè sa a bay li kèk valè nonb antye relatif, 2011. 93 00:04:44,030 --> 00:04:47,290 Plak machin dot mwen egal CS50. 94 00:04:47,290 --> 00:04:51,180 Mwen sou odomèt kat dot egal 50505 virgules. 95 00:04:51,180 --> 00:04:53,270 Tout moun nan sa yo se parfe amann e ke sa a 96 00:04:53,270 --> 00:04:57,802 ki jan nou jwenn aksè nan jaden an estrikti an. 97 00:04:57,802 --> 00:05:00,260 Estrikti, menm si, pa bezwen yo dwe kreye sou pil la. 98 00:05:00,260 --> 00:05:02,950 Jis tankou nenpòt ki lòt varyab, nou ka dynamique asiyen yo. 99 00:05:02,950 --> 00:05:06,309 Si nou gen yon pwogram ki ta ka dwe génération anpil estrikti, 100 00:05:06,309 --> 00:05:08,100 nou pa konnen ki jan anpil nou ap ale nan bezwen, 101 00:05:08,100 --> 00:05:10,800 Lè sa a, nou bezwen dynamique asiyen moun estrikti 102 00:05:10,800 --> 00:05:12,960 kòm pwogram nou an ap kouri. 103 00:05:12,960 --> 00:05:16,600 Se konsa, si nou ap ale nan jwenn aksè nan jaden an yon estrikti nan ki kontèks, 104 00:05:16,600 --> 00:05:20,660 sonje ke nou premye bezwen dèreferans konsèy la nan estrikti a, 105 00:05:20,660 --> 00:05:24,810 ak Lè sa a yon fwa nou dèreferans a konsèy, lè sa a nou kapab jwenn aksè jaden yo. 106 00:05:24,810 --> 00:05:26,830 Si nou sèlman gen yon konsèy nan estrikti a, 107 00:05:26,830 --> 00:05:32,120 nou pa ka jis di jaden konsèy dot non epi pou yo jwenn sa nou ap chèche pou. 108 00:05:32,120 --> 00:05:34,259 Genyen etap la siplemantè nan dereferencing. 109 00:05:34,259 --> 00:05:36,050 Se konsa, kite pou nou di ke olye pou yo previous-- nan 110 00:05:36,050 --> 00:05:38,770 jis tankou egzanp lan anvan, olye pou yo deklare li 111 00:05:38,770 --> 00:05:43,680 sou chemine a, struct machin, mwen machin, virgules, mwen di struct machin, 112 00:05:43,680 --> 00:05:48,020 etwal, yon konsèy nan yon struct machin rele machin mwen an, 113 00:05:48,020 --> 00:05:51,250 egal gwosè malok a struct machin. 114 00:05:51,250 --> 00:05:54,950 Kantite moun ki nan nou pral konnen ki jan anpil bytes nouvo kalite done ou pran moute. 115 00:05:54,950 --> 00:05:58,570 Ou pa nesesèman bezwen sèvi ak sèlman gwosè nan, lajè, int, oswa Char, oswa nenpòt ki 116 00:05:58,570 --> 00:05:59,715 nan ki kalite done bati-an. 117 00:05:59,715 --> 00:06:02,090 Du a se entelijan ase eseye figi konnen kouman anpil bytes 118 00:06:02,090 --> 00:06:04,170 yo mande w pa estrikti nouvo ou. 119 00:06:04,170 --> 00:06:09,610 Se konsa, mwen malok tèt mwen yon inite nan memwa gwo ase yo kenbe yon machin struct, 120 00:06:09,610 --> 00:06:12,410 ak mwen jwenn yon konsèy tounen ak sa yo ki blòk nan memwa, 121 00:06:12,410 --> 00:06:16,090 epi li se ki konsèy asiyen nan machin mwen an. 122 00:06:16,090 --> 00:06:18,050 >> Koulye a, si mwen vle aksè jaden ki te andeyò machin mwen an, 123 00:06:18,050 --> 00:06:22,615 M 'premye dèreferans machin mwen an lè l sèvi avèk operatè dèreferans, zetwal la 124 00:06:22,615 --> 00:06:26,620 ke nou te wè nan pwent yo videyo, ak Lè sa a apre mwen dèreferans, 125 00:06:26,620 --> 00:06:32,200 Lè sa a, mwen ka itilize operatè a dot aksè jaden yo divès kalite nan machin mwen an. 126 00:06:32,200 --> 00:06:35,490 Star machin mwen an dot ane egal 2011. 127 00:06:35,490 --> 00:06:38,480 Sa ta gen efè lan nou vle nan ka sa a, 128 00:06:38,480 --> 00:06:41,960 paske nou te dynamique resevwa lajan machin mwen an. 129 00:06:41,960 --> 00:06:43,610 >> Sa a kalite anmèdan, menm si, dwa? 130 00:06:43,610 --> 00:06:44,818 Genyen yon pwosesis 2-etap kounye a. 131 00:06:44,818 --> 00:06:47,460 Koulye a, nou gen yo dereference-- nou gen yon operatè etwal, 132 00:06:47,460 --> 00:06:48,910 e nou gen yon operatè dot. 133 00:06:48,910 --> 00:06:51,660 Ak jan ou ta ka atann, paske C pwogramasyon renmen pi kout fason 134 00:06:51,660 --> 00:06:53,740 fè bagay sa yo, gen yon fason ki pi kout fè sa. 135 00:06:53,740 --> 00:06:57,790 Gen yon lòt operatè rele flèch, sa ki fè pwosesis sa a yon anpil pi fasil. 136 00:06:57,790 --> 00:07:00,750 Fason ki flèch ap travay se li premye dereferences 137 00:07:00,750 --> 00:07:03,560 konsèy la sou bò gòch la bò nan operatè a, 138 00:07:03,560 --> 00:07:06,620 ak Lè sa a, apre li fin dereferenced konsèy la sou bò gòch la, 139 00:07:06,620 --> 00:07:09,620 li jwenn aksè jaden an sou bò dwat la. 140 00:07:09,620 --> 00:07:14,170 Se konsa, deja nou te gen sa a sòt nan zetwal machin mwen an dot tout bagay sa a, 141 00:07:14,170 --> 00:07:15,880 tankou te gen yon anpil ale sou la. 142 00:07:15,880 --> 00:07:22,040 Men, sa ki nou ka olye fè se sa a men ane flèch machin mwen an egal 2011. 143 00:07:22,040 --> 00:07:23,580 >> Yon fwa ankò, sa k ap pase isit la? 144 00:07:23,580 --> 00:07:25,720 Premyèman, m ap dereferencing machin mwen an. 145 00:07:25,720 --> 00:07:27,810 Ki ankò, se yon konsèy isit la. 146 00:07:27,810 --> 00:07:31,270 Lè sa a, apre l te gen dereferenced machin mwen an, mwen 147 00:07:31,270 --> 00:07:35,130 ka Lè sa a aksè jaden yo ane, plak, ak sou odomèt 148 00:07:35,130 --> 00:07:40,020 menm jan mwen te kapab gen premye anvan itilize zetwal dèreferans machin mwen an, 149 00:07:40,020 --> 00:07:42,020 ak dot jwenn aksè nan jaden an. 150 00:07:42,020 --> 00:07:45,290 Se konsa, ou ka gen estrikti, ou ka gen endikasyon nan estrikti, 151 00:07:45,290 --> 00:07:48,360 epi ou gen fason yo aksè jaden yo nan tout sa yo estrikti, 152 00:07:48,360 --> 00:07:52,600 si ou gen endikasyon yo oswa varyab yo tèt yo. 153 00:07:52,600 --> 00:07:57,640 Dot oswa flèch, tou depann de ki jan varyab la te deklare. 154 00:07:57,640 --> 00:08:00,510 Mwen se Doug Lloyd, sa a se CS50. 155 00:08:00,510 --> 00:08:01,975