1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Revizyon] [kwiz 0] 2 00:00:03,000 --> 00:00:05,000 >> [Lexi Ross, Tommy MacWilliam, Lucas Freitas, Jozèf Ong] [Inivèsite Harvard] 3 00:00:05,000 --> 00:00:08,000 >> [Sa a se CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:10,000 >> Hey, tout moun. 5 00:00:10,000 --> 00:00:15,000 Byenveni nan sesyon an revizyon pou, 0 kwiz ki ap pran plas sa a nan Mèkredi. 6 00:00:15,000 --> 00:00:19,000 Ki sa nou ap pral fè aswè a, mwen ak 3 TFs lòt, 7 00:00:19,000 --> 00:00:24,000 ak ansanm nou ap ale nan ale nan yon revi de sa nou te fè nan kou a byen lwen tèlman. 8 00:00:24,000 --> 00:00:27,000 Li pa nan pral fè 100% konplè, men li ta dwe ba ou yon pi bon ide 9 00:00:27,000 --> 00:00:31,000 nan sa ki ou deja genyen desann ak ki sa ou toujou bezwen etidye anvan Mèkredi. 10 00:00:31,000 --> 00:00:34,000 Epi w santi w lib yo leve men ou avèk kesyon kòm nou pral ansanm, 11 00:00:34,000 --> 00:00:38,000 men kenbe nan tèt ou ke nou pral gen tou yon ti kras nan tan nan fen a- 12 00:00:38,000 --> 00:00:41,000 si nou jwenn nan ak yon kèk minit rezèv-a fè kesyon jeneral, 13 00:00:41,000 --> 00:00:47,000 pou kenbe sa nan tèt ou, epi pou nou ap ale nan kòmanse nan kòmansman an ak Semèn 0. 14 00:00:47,000 --> 00:00:50,000 >> [Kwiz 0 Revizyon!] [Pati 0] [Lexi Ross] Men, anvan nou fè sa a kite l 'pale sou 15 00:00:50,000 --> 00:00:53,000 lojistik yo nan egzamen an. 16 00:00:53,000 --> 00:00:55,000 >> [Logistics] [kwiz pran plas nan Mèkredi 10/10 nan plas konferans] 17 00:00:55,000 --> 00:00:57,000 >> [(Gade nan http://cdn.cs50.net/2012/fall/quizzes/0/about0.pdf pou plis detay)] Li se nan Mèkredi, Oktòb 10yèm. 18 00:00:57,000 --> 00:01:00,000 >> Sa a se sa a Mèkredi, epi si ou ale nan URL sa isit la, 19 00:01:00,000 --> 00:01:03,000 ki se tou aksesib soti nan CS50.net-gen 's yon ap mennen nan li- 20 00:01:03,000 --> 00:01:06,000 ou ka wè enfòmasyon sou ki kote yo ale ki baze sou 21 00:01:06,000 --> 00:01:10,000 non dènye ou a oswa afilyasyon lekòl kòm byen ke 22 00:01:10,000 --> 00:01:14,000 li di sou ekzakteman ki sa egzamen an ap kouvri epi ki kalite kesyon ke w ap pral jwenn. 23 00:01:14,000 --> 00:01:19,000 Kenbe nan tèt ou ke ou pral gen tou yon chans revize pou egzamen an nan seksyon, 24 00:01:19,000 --> 00:01:21,000 Se konsa TFs ou ta dwe ale sou kèk pwoblèm pratik, 25 00:01:21,000 --> 00:01:29,000 ak sa a, se yon lòt bon chans yo wè ki kote ou toujou bezwen etidye moute pou egzamen an. 26 00:01:29,000 --> 00:01:32,000 Ann kòmanse nan kòmansman an ak okte 'n' miyèt moso. 27 00:01:32,000 --> 00:01:35,000 Sonje yon ti jan se jis yon 0 oswa yon 1, 28 00:01:35,000 --> 00:01:38,000 ak yon multiple se yon koleksyon 8 nan sa yo Bits. 29 00:01:38,000 --> 00:01:42,000 Se pou yo gade nan koleksyon sa a nan Bits dwa isit la. 30 00:01:42,000 --> 00:01:44,000 Nou ta dwe kapab konnen ki jan anpil Bits gen. 31 00:01:44,000 --> 00:01:48,000 Ki kote nou konte gen nan jis 8 nan yo, uit 0 oswa 1 inite. 32 00:01:48,000 --> 00:01:51,000 E depi gen nan 8 Bits, sa se 1 multiple, 33 00:01:51,000 --> 00:01:53,000 e kite yo konvèti li nan ekzadesimal. 34 00:01:53,000 --> 00:01:58,000 Ekzadesimal se baz 16, epi li trè fasil a konvèti 35 00:01:58,000 --> 00:02:01,000 yon nimewo nan binè, ki se ki sa se sa ki, nan yon nimewo nan ekzadesimal. 36 00:02:01,000 --> 00:02:04,000 Tout sa nou fè se nou gade nan gwoup 4, 37 00:02:04,000 --> 00:02:07,000 epi nou konvèti yo nan chif la ekzadesimal ki apwopriye yo. 38 00:02:07,000 --> 00:02:11,000 Nou kòmanse ak gwoup la dwa-pi fò nan 4, se konsa 0011. 39 00:02:11,000 --> 00:02:16,000 Sa k ap pase yo dwe youn 1 ak yon sèl 2, ki fè ansanm ki fè 3. 40 00:02:16,000 --> 00:02:19,000 Lè sa a, kite pou yo gade nan blòk la lòt moun ki te 4. 41 00:02:19,000 --> 00:02:24,000 1101. Sa k ap pase yo dwe youn 1, yon sèl 4, ak yon 8. 42 00:02:24,000 --> 00:02:28,000 Ansanm ki nan pral fè 13, ki fè D. 43 00:02:28,000 --> 00:02:32,000 Epitou, n ap sonje ke nan ekzadesimal nou pa jis ale 0 a 9. 44 00:02:32,000 --> 00:02:36,000 Nou ale 0 jiska F, se konsa apre 9, 10 koresponn ak A, 45 00:02:36,000 --> 00:02:40,000 11 rive nan B, et setra kote F se 15. 46 00:02:40,000 --> 00:02:44,000 Isit la se yon 13 D, 47 00:02:44,000 --> 00:02:49,000 Se konsa konvèti li nan tout sa nou desimal fè se nou aktyèlman 48 00:02:49,000 --> 00:02:52,000 trete chak pozisyon kòm yon pouvwa nan 2. 49 00:02:52,000 --> 00:02:58,000 Se youn 1, yon sèl 2, zewo 4s, zewo 8s, youn 16, et setra, 50 00:02:58,000 --> 00:03:03,000 ak li a yon ti kras difisil yo kalkile nan tèt ou, men si nou ale nan glise nan pwochen 51 00:03:03,000 --> 00:03:05,000 nou ka wè repons la ki. 52 00:03:05,000 --> 00:03:09,000 >> Esansyèlman nou pwal atravè de dwat tounen nan bò gòch, 53 00:03:09,000 --> 00:03:14,000 epitou n ap miltipliye chak chif pa pouvwa a korespondan nan 2. 54 00:03:14,000 --> 00:03:19,000 Epi sonje, pou ekzadesimal nou don nimewo sa yo avèk 0x nan kòmansman an 55 00:03:19,000 --> 00:03:23,000 pou nou pa konfonn li ak yon kantite desimal. 56 00:03:23,000 --> 00:03:29,000 Kontinye sou, sa a se yon Table ASCII, 57 00:03:29,000 --> 00:03:35,000 ak ki sa nou itilize ASCII pou se yo kat soti nan karaktè nan valè nimerik. 58 00:03:35,000 --> 00:03:39,000 Sonje nan pset a chifreman nou te fè anpil pou sèvi ak tab la ASCII 59 00:03:39,000 --> 00:03:43,000 yo nan lòd yo sèvi ak plizyè metòd pou chifreman, 60 00:03:43,000 --> 00:03:47,000 Seza tande kòz la ak kalkile nan Vigenère, konvèti lèt diferan 61 00:03:47,000 --> 00:03:52,000 nan yon fisèl dapre kle yo te bay nan itilizatè a. 62 00:03:52,000 --> 00:03:56,000 Se pou yo gade nan yon ti kras nan matematik ASCII. 63 00:03:56,000 --> 00:04:02,000 Gade nan 'P' + 1, nan fòm karaktè ki ta ka Q, 64 00:04:02,000 --> 00:04:07,000 ak sonje ke ''5 ≠ 5. 65 00:04:07,000 --> 00:04:10,000 Ak ki jan egzakteman nou ta konvèti ant 2 fòm sa yo? 66 00:04:10,000 --> 00:04:13,000 Li pa aktyèlman twò difisil. 67 00:04:13,000 --> 00:04:16,000 Yo nan lòd jwenn 5 n ap retire '0 ' 68 00:04:16,000 --> 00:04:20,000 paske gen 5 kote ant '0 'la ak '5 a. 69 00:04:20,000 --> 00:04:23,000 Yo nan lòd yo ale nan lòt fason nou jis ajoute 0 a, 70 00:04:23,000 --> 00:04:25,000 Se konsa li sòt de tankou aritmetik regilye. 71 00:04:25,000 --> 00:04:29,000 Jis sonje ke nan lè yon bagay ki gen quotes bò kote l 'li nan yon karaktè 72 00:04:29,000 --> 00:04:37,000 e konsa koresponn ak yon valè nan tablo a ASCII. 73 00:04:37,000 --> 00:04:40,000 Paralize nan plis sijè jeneral syans òdinatè. 74 00:04:40,000 --> 00:04:43,000 Nou te aprann ki sa yon algorithm ye epi ki jan nou itilize pwogramasyon 75 00:04:43,000 --> 00:04:45,000 aplike algoritm. 76 00:04:45,000 --> 00:04:48,000 Men kèk egzanp sou algoritm yo se yon bagay ki reyèlman senp tankou 77 00:04:48,000 --> 00:04:51,000 tcheke si yon nonb se menm oswa enpè. 78 00:04:51,000 --> 00:04:54,000 Pou ki sonje nou Mod nimewo a pa 2 epi tcheke si rezilta a se 0. 79 00:04:54,000 --> 00:04:57,000 Si se konsa, li nan menm. Si ou pa, li la enpè. 80 00:04:57,000 --> 00:04:59,000 Epi sa a, yon egzanp yon algorithm vrèman de baz yo. 81 00:04:59,000 --> 00:05:02,000 >> Yon ti kras nan yon yon sèl patisipe plis se rechèch binè, 82 00:05:02,000 --> 00:05:05,000 ki nou pral ale sou pita nan sesyon an revizyon. 83 00:05:05,000 --> 00:05:09,000 Ak pwogramasyon se yon tèm ke nou itilize pou pran yon algorithm 84 00:05:09,000 --> 00:05:15,000 ak konvèti li nan kòd òdinatè a kapab li byen. 85 00:05:15,000 --> 00:05:20,000 2 egzanp sou pwogram se grafouyen, 86 00:05:20,000 --> 00:05:22,000 ki se ki sa nou te fè nan Semèn 0. 87 00:05:22,000 --> 00:05:25,000 Menm si nou pa aktyèlman tape soti kòd la li nan yon fason pou mete ann aplikasyon 88 00:05:25,000 --> 00:05:29,000 sa a algorithm, ki se enprime nimewo yo 1-10, 89 00:05:29,000 --> 00:05:32,000 ak isit la nou fè menm bagay la nan lang pwogramasyon C. 90 00:05:32,000 --> 00:05:41,000 Sa yo se fonksyonèl ekivalan, jis ekri nan lang ki diferan oswa sentaks. 91 00:05:41,000 --> 00:05:44,000 Nou Lè sa a, te aprann enfòmasyon sou ekspresyon Boolean, 92 00:05:44,000 --> 00:05:48,000 ak yon Boolean se yon valè ki nan swa vre oubyen fo, 93 00:05:48,000 --> 00:05:51,000 ak isit la souvan Boolean ekspresyon 94 00:05:51,000 --> 00:05:55,000 ale andedan nan kondisyon, kidonk si (x ≤ 5), 95 00:05:55,000 --> 00:06:00,000 byen, nou deja mete x = 5, se konsa ke kondisyon ki pral evalye vre. 96 00:06:00,000 --> 00:06:03,000 Men, si se vre, kèlkeswa sa kòd se anba kondisyon an 97 00:06:03,000 --> 00:06:08,000 ki pral dwe evalye pa òdinatè a, se konsa ke fisèl yo pral enprime 98 00:06:08,000 --> 00:06:12,000 estanda pwodiksyon, ak kondisyon nan tèm 99 00:06:12,000 --> 00:06:16,000 refere a nenpòt bagay ki andedan parantèz ki nan deklarasyon an si. 100 00:06:16,000 --> 00:06:20,000 Sonje tout operatè yo. 101 00:06:20,000 --> 00:06:26,000 Sonje && li a ak | | lè nou ap eseye konbine 2 oubyen plis kondisyon yo, 102 00:06:26,000 --> 00:06:30,000 == Pa = a tcheke si 2 bagay sa yo egal-ego. 103 00:06:30,000 --> 00:06:36,000 Sonje ke = se pou devwa Lè nou konsidere ke == se yon operatè Boolean. 104 00:06:36,000 --> 00:06:41,000 ≤, ≥ ak Lè sa a, 2 final la se oto-eksplikasyon. 105 00:06:41,000 --> 00:06:45,000 Yon revi jeneral nan lojik Boolean isit la. 106 00:06:45,000 --> 00:06:48,000 Ak ekspresyon Boolean yo enpòtan tou nan pasan, 107 00:06:48,000 --> 00:06:50,000 ki nou pral ale sou kounye a. 108 00:06:50,000 --> 00:06:56,000 Nou te aprann enfòmasyon sou 3 kalite pasan byen lwen tèlman nan CS50, pou, pandan y ap, epi fè ti tan. 109 00:06:56,000 --> 00:06:59,000 Ak li enpòtan yo konnen ke pandan ke pou pifò rezon 110 00:06:59,000 --> 00:07:02,000 nou ka sèvi ak aktyèlman nenpòt ki kalite riban jeneralman 111 00:07:02,000 --> 00:07:06,000 gen sèten kalite rezon oswa modèl komen 112 00:07:06,000 --> 00:07:09,000 nan pwogram ki espesifikman rele pou youn nan sa yo pasan 113 00:07:09,000 --> 00:07:13,000 ki fè li pi efikas oswa elegant nan Kòd l 'nan fason sa a. a 114 00:07:13,000 --> 00:07:18,000 Ann al sou sa ki chak nan sa yo pasan gen tandans pou l itilize pou pi souvan. 115 00:07:18,000 --> 00:07:21,000 >> Nan yon pou riban nou jeneralman deja konnen konbyen fwa nou vle repekte. 116 00:07:21,000 --> 00:07:24,000 Sa a ki sa nou mete nan kondisyon an. 117 00:07:24,000 --> 00:07:28,000 Pou, mwen = 0, mwen <10, pou egzanp. 118 00:07:28,000 --> 00:07:31,000 Nou deja konnen ke nou vle fè yon bagay 10 fwa. 119 00:07:31,000 --> 00:07:34,000 Koulye a, pou yon riban ti tan, jeneralman nou pa nesesèman 120 00:07:34,000 --> 00:07:36,000 konnen konbyen fwa nou vle riban an nan kouri. 121 00:07:36,000 --> 00:07:39,000 Men, nou fè konnen kèk sòt de kondisyon ke nou vle li nan 122 00:07:39,000 --> 00:07:41,000 toujou laverite oswa toujou gen fo. 123 00:07:41,000 --> 00:07:44,000 Pou egzanp, pandan ke se mete. 124 00:07:44,000 --> 00:07:46,000 Se pou nou di sa a, se yon varyab Boolean. 125 00:07:46,000 --> 00:07:48,000 Pandan ke la vre nou vle kòd la evalye, 126 00:07:48,000 --> 00:07:52,000 Se konsa yon ti jan ti kras pi plis rnouvlabl, yon ti jan ti kras pi plis jeneral pase yon pou riban, 127 00:07:52,000 --> 00:07:55,000 men nenpòt pou riban kapab tou gen pou konvèti nan yon riban ti tan. 128 00:07:55,000 --> 00:08:00,000 Anfen, fè pandan y ap pasan, ki ka trickiest nan konprann touswit, 129 00:08:00,000 --> 00:08:04,000 Byen souvan yo itilize lè nou vle evalye kòd la premye 130 00:08:04,000 --> 00:08:06,000 anvan lè a premye nou tcheke kondisyon an. 131 00:08:06,000 --> 00:08:09,000 Yon ka itilize komen pou yon fè pandan riban 132 00:08:09,000 --> 00:08:12,000 se lè ou vle jwenn opinyon itilizatè, epi ou konnen ou vle mande itilizatè a 133 00:08:12,000 --> 00:08:15,000 pou D 'a omwen yon fwa, men si yo pa ba ou bon konsèy touswit 134 00:08:15,000 --> 00:08:18,000 ou vle kontinye mande sa yo jiskaske yo ba ou konsèy ki bon. 135 00:08:18,000 --> 00:08:21,000 Sa a se itilize ki pi komen pou yon ti tan riban, 136 00:08:21,000 --> 00:08:23,000 epi kite pou yo gade nan estrikti aktyèl la nan sa yo pasan. 137 00:08:23,000 --> 00:08:27,000 Yo tipikman toujou gen tandans swiv sa yo modèl. 138 00:08:27,000 --> 00:08:30,000 >> Sou riban an pou andedan ou gen 3 eleman: 139 00:08:30,000 --> 00:08:35,000 inisyalizasyon, tipikman yon bagay tankou int mwen = 0 kote mwen se kontwa an, 140 00:08:35,000 --> 00:08:40,000 kondisyon, kote nou vle di kouri sa a pou riban osi lontan kòm kondisyon sa a toujou kenbe, 141 00:08:40,000 --> 00:08:44,000 tankou m update <10, ak Lè sa a, finalman,, ki se ki jan nou kantite 142 00:08:44,000 --> 00:08:47,000 varyab la vann san preskripsyon nan chak pwen nan riban an. 143 00:08:47,000 --> 00:08:50,000 Yon bagay komen nan wè gen se jis mwen + +, 144 00:08:50,000 --> 00:08:52,000 ki vle di kantite mwen pa 1 chak fwa. 145 00:08:52,000 --> 00:08:55,000 Ou kapab tou fè yon bagay tankou m + 2 =, 146 00:08:55,000 --> 00:08:58,000 ki vle di ajoute 2 a mwen chak fwa ou ale nan riban an. 147 00:08:58,000 --> 00:09:03,000 Lè sa a, fè an sa a jis vle di nenpòt kòd ki aktyèlman kouri kòm yon pati nan riban an. 148 00:09:03,000 --> 00:09:09,000 Se pou yon riban pandan y ap, tan sa a nou gen aktyèlman inisyalizasyon la deyò nan riban an, 149 00:09:09,000 --> 00:09:12,000 se konsa pou egzanp, kite a di ke yo ap eseye fè menm kalite riban kòm mwen jis ki dekri yo. 150 00:09:12,000 --> 00:09:16,000 Nou ta di Int mwen = 0 anvan riban a kòmanse. 151 00:09:16,000 --> 00:09:20,000 Lè sa a, nou te ka di lè m '<10 fè sa, 152 00:09:20,000 --> 00:09:22,000 Se konsa blòk la menm nan kòd tankou anvan, 153 00:09:22,000 --> 00:09:26,000 ak tan sa a pati nan update nan kòd la, pou egzanp, mwen + +, 154 00:09:26,000 --> 00:09:29,000 aktyèlman ale andedan nan riban an. 155 00:09:29,000 --> 00:09:33,000 Epi finalman, pou yon fè pandan, li nan menm jan ak riban a pandan y ap, 156 00:09:33,000 --> 00:09:36,000 men nou dwe sonje ke kòd la ap evalye yon fwa 157 00:09:36,000 --> 00:09:40,000 anvan yo kondisyon an tcheke, se konsa li fè sans yon anpil plis 158 00:09:40,000 --> 00:09:44,000 si ou gade nan li yo nan lòd anwo jouk anba. 159 00:09:44,000 --> 00:09:49,000 Nan yon fè pandan riban kòd la evalye anvan ou menm gade nan kondisyon la pandan y ap, 160 00:09:49,000 --> 00:09:55,000 Lè nou konsidere ke yon riban ti tan, li tcheke premye. 161 00:09:55,000 --> 00:09:59,000 Deklarasyon yo ak varyab. 162 00:09:59,000 --> 00:10:04,000 Lè nou vle kreye yon varyab nouvo nou premye vle inisyalize li. 163 00:10:04,000 --> 00:10:07,000 >> Pou egzanp, bar int initializes ba a varyab, 164 00:10:07,000 --> 00:10:10,000 men li pa bay li yon valè, se konsa sa ki valè bar la kounye a? 165 00:10:10,000 --> 00:10:12,000 Nou pa konnen. 166 00:10:12,000 --> 00:10:14,000 Li ta ka gen kèk valè fatra ki te deja ki estoke nan memwa a, 167 00:10:14,000 --> 00:10:16,000 epi nou pa vle sèvi ak varyab sa a 168 00:10:16,000 --> 00:10:19,000 jiskaske nou aktyèlman bay li yon valè, 169 00:10:19,000 --> 00:10:21,000 pou nou deklare li isit la. 170 00:10:21,000 --> 00:10:24,000 Lè sa a, nou inisyalize li nan dwe 42 anba a. 171 00:10:24,000 --> 00:10:28,000 Koulye a, nan kou, nou konnen sa a ka fè sou yon sèl liy, int bar = 42. 172 00:10:28,000 --> 00:10:30,000 Men, jis yo dwe klè etap sa yo miltip ke yo ale sou, 173 00:10:30,000 --> 00:10:34,000 deklarasyon an ak inisyalizasyon a ap pase separeman isit la. 174 00:10:34,000 --> 00:10:38,000 Sa rive sou yon sèl etap, ak youn nan pwochen, int Baz = bar + 1, 175 00:10:38,000 --> 00:10:44,000 deklarasyon sa a anba a, ki Baz ogmantasyon, se konsa nan fen sa a blòk kòd 176 00:10:44,000 --> 00:10:48,000 si nou te nan enprime valè a Baz li ta 44 177 00:10:48,000 --> 00:10:52,000 paske nou deklare ak inisyalize li nan dwe 1 bar>, 178 00:10:52,000 --> 00:10:58,000 ak Lè sa a, nou kantite li yon fwa plis ak + +. nan 179 00:10:58,000 --> 00:11:02,000 Nou te ale sou sa a yon ti tan trè, men li la bon gen yon jeneral 180 00:11:02,000 --> 00:11:04,000 konprann nan sa ki fil ak evènman yo. 181 00:11:04,000 --> 00:11:06,000 Nou sitou te fè sa nan grafouyen, 182 00:11:06,000 --> 00:11:09,000 pou ou kapab panse a fil kòm sekans miltip nan kòd 183 00:11:09,000 --> 00:11:11,000 kouri nan an menm tan. 184 00:11:11,000 --> 00:11:14,000 Nan reyalite, li pwobableman pa ap kouri nan menm tan an, 185 00:11:14,000 --> 00:11:17,000 men sòt de abstrè nou ka panse a li nan fason sa a. 186 00:11:17,000 --> 00:11:20,000 >> Nan grafouyen, pou egzanp, nou te gen sprit yo miltip. 187 00:11:20,000 --> 00:11:22,000 Li te kapab egzekite diferan kòd nan menm tan an. 188 00:11:22,000 --> 00:11:26,000 Youn nan yo ta ka mache pandan y ap lòt la ap li di yon bagay 189 00:11:26,000 --> 00:11:29,000 nan yon pati diferan nan ekran an. 190 00:11:29,000 --> 00:11:34,000 Evènman yo se yon lòt fason pou separe soti lojik a 191 00:11:34,000 --> 00:11:37,000 ant eleman diferan nan kòd ou a, 192 00:11:37,000 --> 00:11:40,000 ak nan grate nou yo te kapab simulation evènman lè l sèvi avèk Difizyon an, 193 00:11:40,000 --> 00:11:43,000 ak sa a, se aktyèlman Lè m 'Resevwa, pa lè m tande, 194 00:11:43,000 --> 00:11:47,000 men esansyèlman li nan yon fason yo transmèt enfòmasyon 195 00:11:47,000 --> 00:11:49,000 soti nan yon luten nan yon lòt. 196 00:11:49,000 --> 00:11:52,000 Pou egzanp, ou ka vle transmèt jwèt sou, 197 00:11:52,000 --> 00:11:56,000 ak lè yon lòt luten resevwa jwèt sou, 198 00:11:56,000 --> 00:11:58,000 li reponn nan yon sèten fason. 199 00:11:58,000 --> 00:12:03,000 Se yon modèl enpòtan ke ou konprann pou pwogramasyon. 200 00:12:03,000 --> 00:12:07,000 Jis ale sou Semèn nan debaz 0, ki sa nou te ale sou twò lwen, 201 00:12:07,000 --> 00:12:10,000 kite pou yo gade nan pwogram sa a C senp. 202 00:12:10,000 --> 00:12:14,000 Tèks la ka yon ti jan ti kras piti isit la, men mwen pral ale sou li vrèman rapid. 203 00:12:14,000 --> 00:12:20,000 Nou ap tankou 2 dosye header nan tèt cs50.h la, ak stdio.h. 204 00:12:20,000 --> 00:12:23,000 Nou ap Lè sa a, defini yon konstan rele limit yo dwe 100. 205 00:12:23,000 --> 00:12:26,000 Nou ap mete ann aplikasyon Lè sa a, fonksyon prensipal nou an. 206 00:12:26,000 --> 00:12:29,000 Depi nou pa itilize agiman liy lòd isit la nou bezwen mete anile 207 00:12:29,000 --> 00:12:32,000 kòm agiman yo pou prensipal la. 208 00:12:32,000 --> 00:12:38,000 Nou wè int pi wo a prensipal la. Sa a ki kalite retou a, pakonsekan retounen 0 nan pati anba nan. 209 00:12:38,000 --> 00:12:41,000 E nou lè l sèvi avèk fonksyon CS50 bibliyotèk jwenn int 210 00:12:41,000 --> 00:12:45,000 mande itilizatè a pou D ', epi nou mete yo nan sa a x varyab, 211 00:12:45,000 --> 00:12:51,000 pou nou deklare x pi wo a, epi nou inisyalize l 'ak x GetInt =. 212 00:12:51,000 --> 00:12:53,000 >> Nou Lè sa a, tcheke yo wè si itilizatè a te ban nou bon konsèy. 213 00:12:53,000 --> 00:12:59,000 Si li nan LIMIT ≥ nou vle retounen yon kòd erè nan 1 epi enprime yon mesaj erè. 214 00:12:59,000 --> 00:13:02,000 Epi finalman, si itilizatè a ban nou bon D ' 215 00:13:02,000 --> 00:13:08,000 nou pral kòn kantite ak enprime soti ke rezilta. 216 00:13:08,000 --> 00:13:11,000 Jis asire w ke sa yo ki lakay ou frape tout 217 00:13:11,000 --> 00:13:17,000 ou ka wè etikèt yo nan diferan pati nan kòd la isit la. 218 00:13:17,000 --> 00:13:19,000 Mwen mansyone konstan, dosye header. 219 00:13:19,000 --> 00:13:21,000 Oh, int x. Asire w ke ou sonje ke nan yon varyab lokal yo. 220 00:13:21,000 --> 00:13:24,000 Sa diferansye li nan men yon varyab mondyal, ki nou pral pale sou 221 00:13:24,000 --> 00:13:27,000 yon ti jan pita nan sesyon an revizyon, 222 00:13:27,000 --> 00:13:30,000 epi nou ap rele fonksyon bibliyotèk la printf, 223 00:13:30,000 --> 00:13:34,000 Se konsa, si nou pa t 'enkli dosye a header stdio.h 224 00:13:34,000 --> 00:13:37,000 nou pa ta kapab rele printf. 225 00:13:37,000 --> 00:13:42,000 Apre sa, mwen kwè flèch la ke yo kouri koupe isit la se lonje dwèt la d%, 226 00:13:42,000 --> 00:13:45,000 ki se yon fisèl fòma nan printf. 227 00:13:45,000 --> 00:13:52,000 Li di enprime soti sa a varyab kòm yon nimewo, d%. 228 00:13:52,000 --> 00:13:58,000 E ke se li pou Semèn 0. 229 00:13:58,000 --> 00:14:06,000 Koulye a, Lucas ki pral kontinye. 230 00:14:06,000 --> 00:14:08,000 Hey, guys. Non mwen se Lucas. 231 00:14:08,000 --> 00:14:10,000 Mwen se yon sophomore nan kay la pi bon sou lakou lekòl la, Mather, 232 00:14:10,000 --> 00:14:14,000 ak mwen pral pale yon ti kras sou Semèn 1 ak 2.1. 233 00:14:14,000 --> 00:14:16,000 [Semèn 1 ak 2.1!] [Lucas Freitas] 234 00:14:16,000 --> 00:14:19,000 Kòm Lexi 't'ap di yo, lè nou te kòmanse tradui kòd ou nan grafouyen C 235 00:14:19,000 --> 00:14:23,000 youn nan bagay sa yo ke nou remake se ke ou pa kapab jis 236 00:14:23,000 --> 00:14:26,000 ekri kòd ou yo ak kouri li lè l sèvi avèk yon drapo vèt ankò. 237 00:14:26,000 --> 00:14:30,000 Aktyèlman, ou gen yo sèvi ak kèk etap sa yo fè pwogram C ou 238 00:14:30,000 --> 00:14:33,000 vin tounen yon dosye ègzèkutabl. 239 00:14:33,000 --> 00:14:36,000 Fondamantalman sa w ap fè lè w ap ekri yon pwogram se ke 240 00:14:36,000 --> 00:14:40,000 ou tradui lide ou a nan yon lang ke yon du ka konprann, 241 00:14:40,000 --> 00:14:44,000 Se konsa lè w ap ekri yon pwogram nan C 242 00:14:44,000 --> 00:14:47,000 ki sa w ap fè se aktyèlman ekri yon bagay ki du ou a pral nan konprann, 243 00:14:47,000 --> 00:14:50,000 ak Lè sa a, du a pral tradui ki kòd 244 00:14:50,000 --> 00:14:53,000 nan yon bagay ki òdinatè w lan pral konprann. 245 00:14:53,000 --> 00:14:55,000 >> Epi bagay la se, òdinatè w lan se aktyèlman trè bèbè. 246 00:14:55,000 --> 00:14:57,000 Òdinatè w lan kapab sèlman konprann 0s ak 1, 247 00:14:57,000 --> 00:15:01,000 Se konsa aktyèlman nan òdinatè yo an premye moun ki konn pwograme 248 00:15:01,000 --> 00:15:04,000 lè l sèvi avèk 0s ak 1S, men se pa ankò, di Bondye mèsi. 249 00:15:04,000 --> 00:15:07,000 Nou pa bezwen memorize sekans yo pou 0s ak 1S 250 00:15:07,000 --> 00:15:10,000 pou yon riban pou oswa pou yon riban pandan y ap ak sou sa. 251 00:15:10,000 --> 00:15:13,000 Se poutèt sa nou gen yon du. 252 00:15:13,000 --> 00:15:17,000 Ki sa ki yon du fè se li fondamantalman tradui kòd la C, 253 00:15:17,000 --> 00:15:21,000 nan ka nou an, nan yon lang ki sou òdinatè ou a pral konprann, 254 00:15:21,000 --> 00:15:25,000 ki se kòd la objè, ak du a ke nou ap sèvi ak 255 00:15:25,000 --> 00:15:30,000 Yo rele rezone, kidonk sa a se aktyèlman senbòl la pou rezone. 256 00:15:30,000 --> 00:15:33,000 Lè ou gen pwogram ou an, ou dwe fè 2 bagay sa yo. 257 00:15:33,000 --> 00:15:37,000 Premyèman, ou gen konpile pwogram ou an, ak Lè sa a, w ap ale nan kouri pwogram ou an. 258 00:15:37,000 --> 00:15:41,000 Te rekeyi pwogram ou an ou gen yon anpil nan opsyon yo fè sa. 259 00:15:41,000 --> 00:15:44,000 Premye a se fè program.c rezone 260 00:15:44,000 --> 00:15:47,000 nan ki pwogram ki non an nan pwogram ou an. 261 00:15:47,000 --> 00:15:51,000 Nan ka sa a ou ka wè yo ap jis li di: "Hey, konpile pwogram mwen an." 262 00:15:51,000 --> 00:15:56,000 Ou pa ap li di: "Mwen vle sa a non pou pwogram m '" oswa anyen. 263 00:15:56,000 --> 00:15:58,000 >> Dezyèm posiblite a an, ap ban yon non nan pwogram ou an. 264 00:15:58,000 --> 00:16:02,000 Ou ka di rezone-o ak Lè sa a, non an ke ou vle 265 00:16:02,000 --> 00:16:06,000 nan dosye a ègzèkutabl yo nonmen non li kòm ak Lè sa a, program.c. 266 00:16:06,000 --> 00:16:11,000 Epi ou ka tou fè fè pwogram, epi wè ki jan nan 2 ka yo an premye 267 00:16:11,000 --> 00:16:15,000 Mwen mete. C, ak nan yon sèl nan twazyèm mwen sèlman gen pwogram? 268 00:16:15,000 --> 00:16:18,000 Yeah, ou aktyèlman pa ta dwe mete. C lè w itilize fè. 269 00:16:18,000 --> 00:16:22,000 Sinon du a se aktyèlman ale nan rele nan ou. 270 00:16:22,000 --> 00:16:24,000 Epi tou, mwen pa konnen si ou nèg sonje, 271 00:16:24,000 --> 00:16:29,000 men yon anpil fwa nou menm tou nou itilize-lcs50 oswa-LM. 272 00:16:29,000 --> 00:16:31,000 Yo rele ki lye ak. 273 00:16:31,000 --> 00:16:35,000 Li jis di du a di ou pral sèvi sa yo bibliyotèk dwa la, 274 00:16:35,000 --> 00:16:39,000 Se konsa, si ou vle itilize cs50.h ou gen aktyèlman kalite 275 00:16:39,000 --> 00:16:43,000 rezone program.c-lcs50. 276 00:16:43,000 --> 00:16:45,000 Si ou pa fè sa, du a pa pral konnen 277 00:16:45,000 --> 00:16:50,000 ke w ap lè l sèvi avèk sa yo fonksyon nan cs50.h. 278 00:16:50,000 --> 00:16:52,000 Ak ki lè ou vle kouri pwogram ou, ou gen 2 opsyon. 279 00:16:52,000 --> 00:16:57,000 Si ou te fè program.c rezone nou pa t 'bay yon non nan pwogram ou an. 280 00:16:57,000 --> 00:17:01,000 Ou gen nan kouri li lè l sèvi avèk. / A.out. 281 00:17:01,000 --> 00:17:06,000 A.out se yon non estanda ki sonnen bay pwogram ou an si ou pa bay li yon non. 282 00:17:06,000 --> 00:17:11,000 Sinon w ap ale nan fè. / Pwogram si ou te bay yon non nan pwogram ou an, 283 00:17:11,000 --> 00:17:15,000 epi tou li si ou te fè fè pwogram non an ke yon pwogram sa pral jwenn 284 00:17:15,000 --> 00:17:23,000 deja yo pral pwograme non an menm jan dosye a c. 285 00:17:23,000 --> 00:17:26,000 Lè sa a, nou te pale de kalite done ak done. 286 00:17:26,000 --> 00:17:31,000 >> Fondamantalman kalite done yo menm bagay la kòm bwat ti kras yo itilize 287 00:17:31,000 --> 00:17:35,000 nan magazen valè, se konsa done kalite yo aktyèlman jis tankou Pokémons. 288 00:17:35,000 --> 00:17:39,000 Yo vini nan tout gwosè ak kalite. 289 00:17:39,000 --> 00:17:43,000 Mwen pa konnen si ke analoji fè sans. 290 00:17:43,000 --> 00:17:46,000 Gwosè nan done aktyèlman depann sou achitekti machin lan. 291 00:17:46,000 --> 00:17:49,000 Tout done gwosè yo ki mwen pral montre isit la 292 00:17:49,000 --> 00:17:53,000 yo aktyèlman pou yon machin 32-bit, ki se ka a nan aparèy nou an, 293 00:17:53,000 --> 00:17:56,000 men si w ap aktyèlman kodaj Mac ou a oswa nan yon Windows tou 294 00:17:56,000 --> 00:17:59,000 pwobableman w ap ale nan gen yon machin 64-ti jan, 295 00:17:59,000 --> 00:18:03,000 se konsa sonje ke gwosè yo done ki mwen pral montre isit la 296 00:18:03,000 --> 00:18:06,000 yo se pou machin nan 32-bit. 297 00:18:06,000 --> 00:18:08,000 Premye a ke nou te wè se te yon int, 298 00:18:08,000 --> 00:18:10,000 ki se trè dwat. 299 00:18:10,000 --> 00:18:13,000 Ou sèvi ak int nan magazen yon nonb antye relatif. 300 00:18:13,000 --> 00:18:16,000 Nou menm tou nou te wè karaktè a, Char la. 301 00:18:16,000 --> 00:18:20,000 Si ou vle sèvi ak yon lèt oswa yon yon senbòl ti kras w ap pwobableman ale nan sèvi ak yon Char. 302 00:18:20,000 --> 00:18:26,000 Yon Char gen 1 multiple, ki vle di 8 Bits, tankou Lexi te di. 303 00:18:26,000 --> 00:18:31,000 Fondamantalman nou gen yon Table ASCII ki gen 256 304 00:18:31,000 --> 00:18:34,000 konbinezon ki posib nan 0s ak 1, 305 00:18:34,000 --> 00:18:37,000 ak Lè sa a, lè ou tape yon Char li a pral tradui 306 00:18:37,000 --> 00:18:44,000 karaktè a ki entrain ou yon nimewo ki di ou gen nan tablo a ASCII, tankou Lexi te di. 307 00:18:44,000 --> 00:18:48,000 Nou genyen tou flote la, ki nou itilize nan magazen nimewo desimal. 308 00:18:48,000 --> 00:18:53,000 Si ou vle chwazi 3.14, pou egzanp, w ap ale nan sèvi ak yon flote 309 00:18:53,000 --> 00:18:55,000 oswa yon doub ki gen presizyon plis. 310 00:18:55,000 --> 00:18:57,000 Yon flote gen 4 bytes. 311 00:18:57,000 --> 00:19:01,000 Yon doub gen 8 bytes, se konsa diferans la sèlman se presizyon la. 312 00:19:01,000 --> 00:19:04,000 Nou genyen tou yon long ki itilize pou nonm antye yo, 313 00:19:04,000 --> 00:19:09,000 epi ou ka wè pou yon machin 32-bit yon int ak yon long gen gwosè a menm, 314 00:19:09,000 --> 00:19:13,000 se konsa li pa vrèman fè sans yo sèvi ak yon long nan yon machin 32-bit. 315 00:19:13,000 --> 00:19:17,000 >> Men, si w ap itilize yon machin Mac ak 64-ti jan, aktyèlman yon long la gen gwosè 8, 316 00:19:17,000 --> 00:19:19,000 se konsa li reyèlman depann sou achitekti a. 317 00:19:19,000 --> 00:19:22,000 Pou machin nan 32-bit li pa fè sans yo sèvi ak yon long vrèman. 318 00:19:22,000 --> 00:19:25,000 Lè sa a, yon long lontan, sou lòt men an, gen 8 bytes, 319 00:19:25,000 --> 00:19:30,000 kidonk li se trè bon si ou vle gen yon nonb antye relatif pi long lan. 320 00:19:30,000 --> 00:19:34,000 Epi finalman, nou gen fisèl, ki se aktyèlman yon * Char, 321 00:19:34,000 --> 00:19:37,000 ki se yon konsèy nan yon Char. 322 00:19:37,000 --> 00:19:40,000 Li trè fasil a panse ke gwosè a nan fisèl la a pwal tankou 323 00:19:40,000 --> 00:19:42,000 nimewo a nan karaktè ki di ou gen la, 324 00:19:42,000 --> 00:19:45,000 men aktyèlman a * Char tèt li 325 00:19:45,000 --> 00:19:49,000 gen gwosè a nan yon konsèy nan yon Char, ki se 4 bytes. 326 00:19:49,000 --> 00:19:52,000 Gwosè a nan yon * Char se 4 bytes. 327 00:19:52,000 --> 00:19:56,000 Li pa enpòtan si ou gen yon mo ti piti oubyen yon lèt oswa yon anyen. 328 00:19:56,000 --> 00:19:58,000 Li nan ale nan gen 4 bytes. 329 00:19:58,000 --> 00:20:01,000 Nou menm tou nou te aprann yon ti kras sou Distribisyon, 330 00:20:01,000 --> 00:20:04,000 konsa kòm ou kapab wè, si ou gen, pou egzanp, yon pwogram ki di 331 00:20:04,000 --> 00:20:08,000 int x = 3 ak Lè sa a, printf ("d%", x / 2) 332 00:20:08,000 --> 00:20:12,000 èske ou konnen ki sa nèg li a pral enprime sou ekran? 333 00:20:12,000 --> 00:20:14,000 >> Yon moun? >> [Elèv yo] 2. 334 00:20:14,000 --> 00:20:16,000 1. >> 1, yeah. 335 00:20:16,000 --> 00:20:20,000 Lè w ap fè 3/2 li nan pral jwenn 1.5, 336 00:20:20,000 --> 00:20:24,000 men depi nou ap sèvi ak yon nonb antye relatif li a pral inyore pati nan desimal, 337 00:20:24,000 --> 00:20:26,000 ak w ap ale nan gen 1. 338 00:20:26,000 --> 00:20:29,000 Si ou pa vle ki rive sa ou kapab fè, pou egzanp, 339 00:20:29,000 --> 00:20:33,000 se deklare yon flote y = x. 340 00:20:33,000 --> 00:20:40,000 Lè sa a, x ki itilize yo dwe 3 se kounye a pral fè 3,000 nan y. 341 00:20:40,000 --> 00:20:44,000 Lè sa a, ou kapab enprime y la / 2. 342 00:20:44,000 --> 00:20:50,000 Aktyèlman, mwen ta dwe gen yon 2. sou la. 343 00:20:50,000 --> 00:20:55,000 Li nan pral fè 3.00/2.00, 344 00:20:55,000 --> 00:20:58,000 ak w ap ale nan jwenn 1.5. 345 00:20:58,000 --> 00:21:06,000 E nou gen sa a f .2 jis pou mande pou 2 inite desimal an pati desimal la. 346 00:21:06,000 --> 00:21:12,000 Si ou gen .3 f li a pral gen aktyèlman 1,500. 347 00:21:12,000 --> 00:21:16,000 Si li nan 2 li pral yo dwe 1.50. 348 00:21:16,000 --> 00:21:18,000 Nou genyen tou ka sa a isit la. 349 00:21:18,000 --> 00:21:22,000 Si ou fè sa flote x = 3,14 ak Lè sa a, ou x printf 350 00:21:22,000 --> 00:21:24,000 w ap ale nan jwenn 3.14. 351 00:21:24,000 --> 00:21:29,000 Men, si ou fè x = int a nan x, 352 00:21:29,000 --> 00:21:34,000 ki vle di trete x kòm yon int epi ou enprime x kounye a 353 00:21:34,000 --> 00:21:36,000 w ap ale nan gen 3.00. 354 00:21:36,000 --> 00:21:38,000 ki fè sans? 355 00:21:38,000 --> 00:21:41,000 Paske w ap premye trete x kòm yon nonb antye relatif, kidonk, ou ap inyore pati nan desimal, 356 00:21:41,000 --> 00:21:45,000 ak Lè sa a, w ap enprime x. 357 00:21:45,000 --> 00:21:47,000 Epi finalman, ou ka tou fè sa, 358 00:21:47,000 --> 00:21:52,000 int x = 65, ak Lè sa a, ou deklare yon Char c = x, 359 00:21:52,000 --> 00:21:56,000 ak Lè sa a, si ou enprime c la w ap aktyèlman pral jwenn 360 00:21:56,000 --> 00:21:59,000 A, Se konsa, fondamantalman sa w ap fè la a 361 00:21:59,000 --> 00:22:02,000 se tradui nonb antye relatif la nan karaktè a, 362 00:22:02,000 --> 00:22:05,000 jis tankou tab la ASCII fè. 363 00:22:05,000 --> 00:22:08,000 Nou menm tou nou te pale osijè de operatè matematik. 364 00:22:08,000 --> 00:22:14,000 Pifò nan yo se trè dwat, se konsa +, -, *, /, 365 00:22:14,000 --> 00:22:20,000 epi tou li nou te pale de Mod, ki se rès la nan yon divizyon nan 2 chif yo. 366 00:22:20,000 --> 00:22:23,000 Si ou gen 10% 3, pou egzanp, 367 00:22:23,000 --> 00:22:27,000 sa vle di li divize 10 pa 3, ak sa ki rès la? 368 00:22:27,000 --> 00:22:30,000 Li nan pral fè 1, se konsa li la aktyèlman trè itil pou yon anpil nan pwogram yo. 369 00:22:30,000 --> 00:22:38,000 Pou Vigenère ak Seza tande kòz mwen trè asire ke tout ou nèg itilize Mod. 370 00:22:38,000 --> 00:22:43,000 Konsènan operatè matematik, fè anpil atansyon lè konbine * ak /. 371 00:22:43,000 --> 00:22:48,000 >> Pou egzanp, si ou fè (3/2) * 2 ki sa ou pral jwenn? 372 00:22:48,000 --> 00:22:50,000 [Elèv yo] 2. 373 00:22:50,000 --> 00:22:54,000 Yeah, 2, paske 3/2 a pwal 1.5, 374 00:22:54,000 --> 00:22:57,000 men depi ou ap fè operasyon ant 2 nonm antye relatif 375 00:22:57,000 --> 00:22:59,000 w ap aktyèlman jis pral konsidere 1, 376 00:22:59,000 --> 00:23:03,000 ak Lè sa a, 1 * 2 a pwal 2, ki fè gen anpil, anpil atansyon 377 00:23:03,000 --> 00:23:07,000 lè ap fè aritmetik ak nonm antye relatif paske 378 00:23:07,000 --> 00:23:12,000 ou ka jwenn sa 2 = 3, nan ka sa a. 379 00:23:12,000 --> 00:23:14,000 Epi tou li dwe pran anpil prekosyon sou priyorite. 380 00:23:14,000 --> 00:23:21,000 Ou ta dwe anjeneral itilize parantèz yo dwe asire ke ou konnen ki sa ou ap fè. 381 00:23:21,000 --> 00:23:27,000 Gen kèk rakoursi itil, nan kou, se yon sèl mwen + + oswa mwen + = 1 382 00:23:27,000 --> 00:23:30,000 oswa lè l sèvi avèk + =. 383 00:23:30,000 --> 00:23:34,000 Sa a se menm bagay la kòm ap fè mwen = mwen + 1. 384 00:23:34,000 --> 00:23:39,000 Ou kapab tou fè mwen - oswa mwen - = 1, 385 00:23:39,000 --> 00:23:42,000 ki se menm bagay la kòm mwen = mwen -1, 386 00:23:42,000 --> 00:23:46,000 yon bagay ou nèg sèvi ak yon anpil nan pou pasan, nan omwen. 387 00:23:46,000 --> 00:23:52,000 Epitou, pou *, si ou itilize * = epi si w fè, pou egzanp, 388 00:23:52,000 --> 00:23:57,000 mwen * = 2 se menm bagay la kòm li di mwen = mwen * 2, 389 00:23:57,000 --> 00:23:59,000 ak menm bagay la pou divizyon. 390 00:23:59,000 --> 00:24:08,000 Si ou fè sa mwen / = 2 li nan menm bagay la kòm mwen = mwen / 2. 391 00:24:08,000 --> 00:24:10,000 >> Koulye a, sou fonksyon. 392 00:24:10,000 --> 00:24:13,000 Ou nèg te aprann ke fonksyon yo se yon estrateji trè bon pou konsève pou kòd 393 00:24:13,000 --> 00:24:16,000 pandan w ap pwogramasyon, kidonk si w vle fè travay an menm 394 00:24:16,000 --> 00:24:20,000 nan kòd ankò e ankò, pwobableman ou vle itilize yon fonksyon 395 00:24:20,000 --> 00:24:25,000 jis pou ou pa gen a kapab bay kopi ak keratin kòd la sou yo ak sou ankò. 396 00:24:25,000 --> 00:24:28,000 Aktyèlman, prensipal se yon fonksyon, ak lè mwen montre w fòma a nan yon fonksyon 397 00:24:28,000 --> 00:24:32,000 w ap ale nan wè ke se sa ki trè klè. 398 00:24:32,000 --> 00:24:35,000 Nou menm tou nou itilize fonksyon nan kèk bibliyotèk, 399 00:24:35,000 --> 00:24:39,000 pou egzanp, printf, GetIn, ki se nan bibliyotèk la CS50, 400 00:24:39,000 --> 00:24:43,000 ak fonksyon lòt tankou toupper. 401 00:24:43,000 --> 00:24:46,000 Tout moun sa yo fonksyon yo aktyèlman aplike nan bibliyotèk ak lòt, 402 00:24:46,000 --> 00:24:49,000 ak lè ou mete sa yo dosye ancrage nan konmansman an nan pwogram ou an 403 00:24:49,000 --> 00:24:53,000 w di a ou ka tanpri, ban m 'kòd la pou moun ki fonksyon 404 00:24:53,000 --> 00:24:57,000 Se konsa, mwen pa bezwen aplike yo nan tèt mwen? 405 00:24:57,000 --> 00:25:00,000 Epi ou kapab tou ekri fonksyon pwòp ou a, se konsa lè ou kòmanse pwogram 406 00:25:00,000 --> 00:25:04,000 ou reyalize ke bibliyotèk pa gen tout fonksyon yo ke ou bezwen. 407 00:25:04,000 --> 00:25:10,000 Pou pset an dènye, pou egzanp, nou te ekri trase, goumen, ak Passage, 408 00:25:10,000 --> 00:25:13,000 ak li a trè, trè enpòtan pou kapab ekri fonksyon 409 00:25:13,000 --> 00:25:17,000 yo paske yo te itil, epi nou itilize yo tout tan tout tan an nan pwogramasyon, 410 00:25:17,000 --> 00:25:19,000 epi li sove yon anpil nan kòd. 411 00:25:19,000 --> 00:25:21,000 Fòma a nan yon fonksyon se yon sèl sa a. 412 00:25:21,000 --> 00:25:24,000 Nou gen kalite retounen depi nan konmansman an. Ki sa ki kalite nan retounen? 413 00:25:24,000 --> 00:25:27,000 Se jis lè fonksyon ou a pral nan retounen. 414 00:25:27,000 --> 00:25:29,000 Si ou gen yon fonksyon, pou egzanp, faktoryèl, 415 00:25:29,000 --> 00:25:31,000 ki pral kalkile yon faktoryèl nan yon nonb antye relatif, 416 00:25:31,000 --> 00:25:34,000 pwobableman li pral retounen yon nonb antye relatif tou. 417 00:25:34,000 --> 00:25:37,000 Lè sa a, kalite nan retou a pwal int. 418 00:25:37,000 --> 00:25:41,000 Printf aktyèlman gen yon anile kalite retou 419 00:25:41,000 --> 00:25:43,000 paske ou pa ap retounen anyen. 420 00:25:43,000 --> 00:25:45,000 W ap sèlman enprime bagay sa yo nan ekran an 421 00:25:45,000 --> 00:25:48,000 ak yon moun kite fimen fonksyon an apre sa. 422 00:25:48,000 --> 00:25:51,000 Lè sa a, ou gen non an nan fonksyon an ke ou ka chwazi. 423 00:25:51,000 --> 00:25:55,000 Ou ta dwe yon ti kras ki rezonab, tankou pa chwazi yon non tankou XYZ 424 00:25:55,000 --> 00:25:58,000 oswa tankou x2f. 425 00:25:58,000 --> 00:26:02,000 Eseye fè moute yon non ki fè sans. 426 00:26:02,000 --> 00:26:04,000 >> Pou egzanp, si li nan faktoryèl, di faktoryèl. 427 00:26:04,000 --> 00:26:08,000 Si li nan yon fonksyon ki pral fè desen yon bagay, non li trase. 428 00:26:08,000 --> 00:26:11,000 Lè sa a, nou gen paramèt yo, ki rele yo tou agiman, 429 00:26:11,000 --> 00:26:14,000 ki se tankou resous yo ki fonksyon ou a bezwen 430 00:26:14,000 --> 00:26:17,000 soti nan kòd ou a fè travay li yo. 431 00:26:17,000 --> 00:26:20,000 Si ou vle kalkile faktoryèl la nan yon nimewo 432 00:26:20,000 --> 00:26:23,000 pwobableman ou bezwen gen yon nonm a kalkile yon faktoryèl. 433 00:26:23,000 --> 00:26:27,000 Youn nan agiman sa yo ke ou ap ale nan gen se nimewo a li menm. 434 00:26:27,000 --> 00:26:31,000 Lè sa a, li pral fè yon bagay epi retounen valè a nan fen a 435 00:26:31,000 --> 00:26:35,000 sof si li nan yon fonksyon anile. 436 00:26:35,000 --> 00:26:37,000 Ann gade pou wè yon egzanp. 437 00:26:37,000 --> 00:26:40,000 Si m 'vle ekri yon fonksyon ki rezime tout chif yo nan yon etalaj de nonm antye yo, 438 00:26:40,000 --> 00:26:43,000 premye a tout moun, kalite nan retou a pwal int 439 00:26:43,000 --> 00:26:46,000 paske mwen gen yon etalaj de nonm antye relatif. 440 00:26:46,000 --> 00:26:51,000 Lè sa a, mwen pral gen non an fonksyon tankou sumArray, 441 00:26:51,000 --> 00:26:54,000 ak Lè sa a, li la pral pran pozisyon an li menm, nan nom Int, 442 00:26:54,000 --> 00:26:58,000 ak Lè sa a, longè a nan etalaj la Se konsa, mwen konnen ki jan anpil nimewo mwen oblije rapò kantite. 443 00:26:58,000 --> 00:27:02,000 Lè sa a, mwen dwe inisyalize yon varyab sòm rele, pou egzanp, pou 0, 444 00:27:02,000 --> 00:27:08,000 ak chak fwa mwen wè yon eleman nan etalaj la mwen ta dwe ajoute li nan sòm, se konsa mwen te fè yon pou riban. 445 00:27:08,000 --> 00:27:15,000 Jis tankou Lexi te di, ou fè int mwen = 0, mwen 00:27:20,000 Se pou chak eleman nan etalaj la m 'te fè sòm + = nom [mwen], 447 00:27:20,000 --> 00:27:24,000 ak Lè sa a, mwen tounen tounen sòm la, donk li trè senp, epi li sove yon anpil nan kòd 448 00:27:24,000 --> 00:27:28,000 si w ap sèvi ak sa a fonksyon yon anpil nan fwa. 449 00:27:28,000 --> 00:27:32,000 Lè sa a, nou te pran yon gade nan kondisyon yo. 450 00:27:32,000 --> 00:27:38,000 Nou gen si, lòt bagay, ak lòt bagay si. 451 00:27:38,000 --> 00:27:42,000 Ann gade pou wè ki sa ki diferans ki genyen ant sa yo. 452 00:27:42,000 --> 00:27:45,000 Pran yon gade nan 2 kòd sa yo. Ki sa ki diferans ki genyen ant yo? 453 00:27:45,000 --> 00:27:49,000 Premye a te-fondamantalman kòd yo vle ou di 454 00:27:49,000 --> 00:27:51,000 si yon nonb se +, -, oswa 0. 455 00:27:51,000 --> 00:27:55,000 Premye a di si li nan> 0 Lè sa a, li la pozitif. 456 00:27:55,000 --> 00:28:00,000 Si li la = a 0 Lè sa a, li nan 0, epi si li nan <0 Lè sa a, li la negatif. 457 00:28:00,000 --> 00:28:04,000 >> Ak youn nan lòt ap fè si, lòt bagay, si lòt bagay. 458 00:28:04,000 --> 00:28:07,000 Diferans ki genyen ant de a se ke yon sèl sa a se aktyèlman ale nan 459 00:28:07,000 --> 00:28:13,000 tcheke si> 0, <0 = 0 oswa twa fwa, 460 00:28:13,000 --> 00:28:17,000 pou si ou gen nimewo 2 a, pou egzanp, li pral vin isit la epi di 461 00:28:17,000 --> 00:28:21,000 si (x> 0), ak li a pral di wi, se konsa mwen enprime pozitif. 462 00:28:21,000 --> 00:28:25,000 Men, menm si mwen konnen ke li nan> 0 epi li pa pral fè 0 oswa <0 463 00:28:25,000 --> 00:28:29,000 Mwen toujou pral fè se li 0, se li <0, 464 00:28:29,000 --> 00:28:33,000 Se konsa, mwen ap aktyèlman ale andedan nan ifs ke mwen pa t 'gen yo 465 00:28:33,000 --> 00:28:38,000 paske mwen deja konnen ke li pa pral satisfè nenpòt nan kondisyon sa yo. 466 00:28:38,000 --> 00:28:41,000 Mwen kapab itilize si la, lòt bagay, si lòt deklarasyon. 467 00:28:41,000 --> 00:28:45,000 Li fondamantalman di si x = 0 mwen enprime pozitif la. 468 00:28:45,000 --> 00:28:48,000 Si li pa, mwen pral tou teste sa a. 469 00:28:48,000 --> 00:28:51,000 Si li nan 2 pa mwen pral fè sa. 470 00:28:51,000 --> 00:28:54,000 Fondamantalman si mwen te gen x = 2 ou ta di 471 00:28:54,000 --> 00:28:57,000 si (x> 0), repons lan se wi, se konsa enprime sa a. 472 00:28:57,000 --> 00:29:00,000 Kounye a ke mwen konnen ke li nan> 0 e ke li satisfè premye a si 473 00:29:00,000 --> 00:29:02,000 Mwen pa menm ale nan kouri sa a kòd. 474 00:29:02,000 --> 00:29:09,000 Kòd la kouri pi vit, aktyèlman, 3 fwa pi vit si ou itilize sa a. 475 00:29:09,000 --> 00:29:11,000 Nou menm tou nou te aprann enfòmasyon sou ak ak oswa. 476 00:29:11,000 --> 00:29:15,000 Mwen pa pwal ale nan sa a paske Lexi deja te pale sou yo. 477 00:29:15,000 --> 00:29:17,000 Se jis nan && yo ak | operatè |. 478 00:29:17,000 --> 00:29:21,000 >> Bagay la sèlman mwen pral di se dwe fè atansyon lè ou gen 3 kondisyon. 479 00:29:21,000 --> 00:29:24,000 Sèvi ak parantèz paske li trè konfizyon lè ou gen yon kondisyon 480 00:29:24,000 --> 00:29:27,000 ak yon lòt youn oswa yon lòt. 481 00:29:27,000 --> 00:29:30,000 Sèvi ak parantèz jis yo dwe asire ke kondisyon ou fè sans 482 00:29:30,000 --> 00:29:34,000 paske se nan ka sa a, pou egzanp, ou ka imajine ke 483 00:29:34,000 --> 00:29:38,000 li ka kondisyon an premye ak youn oswa lòt la 484 00:29:38,000 --> 00:29:41,000 oswa 2 kondisyon yo konbine nan yon ak 485 00:29:41,000 --> 00:29:45,000 oswa yon sèl nan twazyèm, konsa jis dwe fè atansyon. 486 00:29:45,000 --> 00:29:48,000 Epi finalman, nou te pale de switch. 487 00:29:48,000 --> 00:29:53,000 Yon switch se trè itil lè ou gen yon varyab. 488 00:29:53,000 --> 00:29:55,000 Se pou nou di ke ou gen yon varyab tankou n 489 00:29:55,000 --> 00:29:59,000 ki ka 0, 1, oswa 2, epi pou chak nan ka sa yo 490 00:29:59,000 --> 00:30:01,000 w ap ale nan fè yon travay. 491 00:30:01,000 --> 00:30:04,000 Ou ka di chanje varyab la, epi li endike ke 492 00:30:04,000 --> 00:30:08,000 valè a Lè sa a, se tankou value1 mwen pral fè sa, 493 00:30:08,000 --> 00:30:12,000 ak Lè sa a, mwen kraze, ki vle di mwen pa pwal fè yon gade nan nenpòt nan ka yo lòt 494 00:30:12,000 --> 00:30:15,000 paske nou deja satisfè ka sa a 495 00:30:15,000 --> 00:30:20,000 ak Lè sa a, value2 yo ak sou sa, epi tou mwen te ka gen yon switch default. 496 00:30:20,000 --> 00:30:24,000 Sa vle di si li pa satisfè nenpòt nan ka yo ke mwen te 497 00:30:24,000 --> 00:30:29,000 ki mwen pral fè yon lòt bagay, men sa a si ou vle. 498 00:30:29,000 --> 00:30:36,000 Sa a tout pou mwen. Koulye a, kite a gen Tommy. 499 00:30:36,000 --> 00:30:41,000 Tout dwa, sa a se pral fè Semèn 3-ich. 500 00:30:41,000 --> 00:30:45,000 Sa yo se kèk nan sijè sa yo nou pral kouvri, kriptografik, objektif, ranje, et setra. 501 00:30:45,000 --> 00:30:49,000 Jis yon mo rapid sou kriptografik. Nou pa pwal, yon mato sa a lakay ou. 502 00:30:49,000 --> 00:30:52,000 >> Nou te fè sa a nan pset 2, men pou egzamen an asire w ke ou konnen diferans ki 503 00:30:52,000 --> 00:30:54,000 ant kalkile nan Seza tande kòz ak kalkile nan Vigenère, 504 00:30:54,000 --> 00:30:57,000 ki jan tou de nan sa yo travay Algorithms epi ki sa li la renmen yo ankripte 505 00:30:57,000 --> 00:30:59,000 ak dekriptaj tèks lè l sèvi avèk sa yo Algorithms 2. 506 00:30:59,000 --> 00:31:03,000 Sonje byen, kalkile nan Seza tande kòz tou senpleman wotasyon chak karaktè nan menm kantite lajan an, 507 00:31:03,000 --> 00:31:06,000 pou asire'w ke ou Mod pa kantite lèt nan alfabè an. 508 00:31:06,000 --> 00:31:09,000 Ak kalkile nan Vigenère, sou lòt men an, wotasyon chak karaktè 509 00:31:09,000 --> 00:31:12,000 pa yon kantite lajan diferan, se konsa olye ke li di 510 00:31:12,000 --> 00:31:15,000 chak Thorne karaktè pa 3 Vigenère pral Thorne chak karaktè 511 00:31:15,000 --> 00:31:17,000 pa yon kantite lajan diferan depann sou kèk mo kle 512 00:31:17,000 --> 00:31:20,000 kote chak lèt ​​nan mo kle a reprezante kèk kantite lajan diferan 513 00:31:20,000 --> 00:31:26,000 Thorne tèks la klè pa. 514 00:31:26,000 --> 00:31:28,000 Se pou nou premye pale de dimansyon varyab. 515 00:31:28,000 --> 00:31:30,000 Gen 2 diferan kalite varyab. 516 00:31:30,000 --> 00:31:33,000 Nou gen varyab lokal yo, ak sa yo yo pral defini 517 00:31:33,000 --> 00:31:36,000 deyò nan prensipal oswa andeyò nenpòt fonksyon oswa blòk, 518 00:31:36,000 --> 00:31:39,000 ak sa yo pap kapab genyen aksè nan nenpòt kote nan pwogram ou an. 519 00:31:39,000 --> 00:31:41,000 Si ou gen yon fonksyon ak nan ki fonksyon se yon riban pandan y ap 520 00:31:41,000 --> 00:31:44,000 varyab nan gwo mondyal se aksesib toupatou. 521 00:31:44,000 --> 00:31:48,000 Yon varyab lokal yo, sou la lòt bò, se scoped nan plas la kote li defini. 522 00:31:48,000 --> 00:31:53,000 >> Si ou gen yon fonksyon isit la, pou egzanp, nou gen sa a g fonksyon, 523 00:31:53,000 --> 00:31:56,000 ak andedan nan g gen yon varyab isit la yo rele y, 524 00:31:56,000 --> 00:31:58,000 ak sa vle di ke sa a se yon varyab lokal yo. 525 00:31:58,000 --> 00:32:00,000 Menm si sa a se varyab rele y 526 00:32:00,000 --> 00:32:03,000 ak sa a se varyab rele y sa yo fonksyon 2 527 00:32:03,000 --> 00:32:06,000 pa gen okenn lide ki sa varyab lokal chak lòt la yo ye. 528 00:32:06,000 --> 00:32:10,000 Nan lòt men an, moute isit la nou di Int x = 5, 529 00:32:10,000 --> 00:32:12,000 ak sa a se deyò dimansyon nan de nenpòt fonksyon. 530 00:32:12,000 --> 00:32:16,000 Li nan deyò dimansyon nan de prensipal yo, kidonk sa a se yon varyab mondyal. 531 00:32:16,000 --> 00:32:20,000 Sa vle di ke andedan nan 2 sa yo fonksyon lè m 'di x - oswa x + + 532 00:32:20,000 --> 00:32:26,000 Mwen gen aksè nan x la menm kote sa a y ak y sa a yo se varyab diferan. 533 00:32:26,000 --> 00:32:30,000 Sa a se diferans ki genyen ant yon varyab mondyal ak yon varyab lokal yo. 534 00:32:30,000 --> 00:32:33,000 Osi lwen ke konsepsyon an konsène, pafwa li la pwobableman yon pi bon ide 535 00:32:33,000 --> 00:32:37,000 kenbe varyab lokal nenpòt lè ou kapab posib 536 00:32:37,000 --> 00:32:39,000 depi gen yon pakèt moun sou varyab mondyal ka jwenn vrèman konfizyon. 537 00:32:39,000 --> 00:32:42,000 Si ou gen yon pakèt moun sou fonksyon tout modifye menm bagay la 538 00:32:42,000 --> 00:32:45,000 ou ta ka bliye sa ki si sa a fonksyon aksidantèlman modifye sa a mondyal, 539 00:32:45,000 --> 00:32:47,000 ak sa a fonksyon lòt pa konnen sou li, 540 00:32:47,000 --> 00:32:50,000 epi li jwenn bèl konfizyon jan ou ka jwenn plis kòd. 541 00:32:50,000 --> 00:32:53,000 Kenbe varyab lokal nenpòt lè ou kapab posib 542 00:32:53,000 --> 00:32:56,000 se konsepsyon jis bon. 543 00:32:56,000 --> 00:33:00,000 Matris, sonje, yo se tou senpleman bay lis eleman nan kalite la menm. 544 00:33:00,000 --> 00:33:04,000 Anndan nan CI pa ka gen yon lis tankou 1 2.0,, hello. 545 00:33:04,000 --> 00:33:06,000 Nou jis pa ka fè sa. 546 00:33:06,000 --> 00:33:11,000 >> Lè nou deklare yon etalaj nan C tout nan eleman yo gen yo dwe nan kalite la menm. 547 00:33:11,000 --> 00:33:14,000 Men mwen gen yon etalaj de 3 nonm antye relatif. 548 00:33:14,000 --> 00:33:18,000 Men mwen gen longè nan etalaj la, men si mwen jis deklare l 'nan sa a sentaks 549 00:33:18,000 --> 00:33:21,000 kote mwen presize ki sa tout nan eleman yo ki mwen pa teknikman bezwen sa a 3. 550 00:33:21,000 --> 00:33:25,000 Du a se entelijan ase yo konnen ki jan gwo etalaj la yo ta dwe. 551 00:33:25,000 --> 00:33:28,000 Koulye a, lè m 'vle jwenn oswa fikse valè a nan yon etalaj 552 00:33:28,000 --> 00:33:30,000 sa a se sentaks la fè sa. 553 00:33:30,000 --> 00:33:33,000 Sa a pral aktyèlman modifye eleman an dezyèm nan etalaj la paske, sonje, 554 00:33:33,000 --> 00:33:36,000 numerotasyon kòmanse nan 0, pa nan 1. 555 00:33:36,000 --> 00:33:42,000 Si m 'vle li ki valè mwen kapab di yon bagay tankou int x = etalaj [1]. 556 00:33:42,000 --> 00:33:44,000 Oswa si mwen vle mete ke valè, tankou Mwen fè isit la, 557 00:33:44,000 --> 00:33:47,000 Mwen kapab di etalaj [1] = 4. 558 00:33:47,000 --> 00:33:50,000 Tan sa a gen aksè nan eleman nan endèks yo 559 00:33:50,000 --> 00:33:52,000 oswa pozisyon yo oswa kote yo ye nan etalaj la, 560 00:33:52,000 --> 00:33:57,000 e ke lis kòmanse nan 0. 561 00:33:57,000 --> 00:34:00,000 Nou ka menm tou nou gen ranje nan ranje, 562 00:34:00,000 --> 00:34:03,000 ak sa a yo rele yon etalaj milti-dimansyon. 563 00:34:03,000 --> 00:34:05,000 Lè nou gen yon etalaj milti-dimansyon 564 00:34:05,000 --> 00:34:07,000 sa vle di nou ka gen yon bagay tankou ranje ak kolòn, 565 00:34:07,000 --> 00:34:11,000 ak sa a se jis yon fason nan vizualizan sa a oswa panse sou li. 566 00:34:11,000 --> 00:34:14,000 Lè m 'gen yon etalaj milti-dimansyon sa vle di mwen pral kòmanse ki bezwen 567 00:34:14,000 --> 00:34:17,000 plis pase 1 endèks paske si mwen gen yon chema kadriye ladan 568 00:34:17,000 --> 00:34:19,000 jis li di sa ki ranje w ap nan pa ban nou yon nimewo. 569 00:34:19,000 --> 00:34:22,000 Sa ki nan vrèman jis pral ban nou yon lis nimewo. 570 00:34:22,000 --> 00:34:25,000 Se pou nou di mwen gen sa a etalaj isit la. 571 00:34:25,000 --> 00:34:30,000 Mwen gen yon etalaj rele gri, ak m ap di ranje 2 li a ak 3 kolòn, 572 00:34:30,000 --> 00:34:32,000 epi konsa sa a se youn fason pou vizualizan li. 573 00:34:32,000 --> 00:34:37,000 Lè m 'di mwen vle jwenn eleman an nan [1] [2] 574 00:34:37,000 --> 00:34:41,000 ki vle di ke paske sa yo, se ranje premye ak Lè sa a, kolòn 575 00:34:41,000 --> 00:34:44,000 Mwen pral Ale nan Ranje 1 depi m 'te di 1. 576 00:34:44,000 --> 00:34:49,000 >> Lè sa a, mwen pral vini sou isit la yo kolòn 2, ak mwen pral jwenn valè a 6. 577 00:34:49,000 --> 00:34:51,000 Fè sans? 578 00:34:51,000 --> 00:34:55,000 Multi-dimansyon ranje, sonje, se teknikman jis yon etalaj de ranje. 579 00:34:55,000 --> 00:34:57,000 Nou ka gen ranje nan ranje nan ranje. 580 00:34:57,000 --> 00:35:00,000 Nou kapab kenbe prale a, men vrèman yon fason yo reflechi sou 581 00:35:00,000 --> 00:35:03,000 ki jan sa a se ke yo te mete deyò ak sa k ap pase sou se visualized li 582 00:35:03,000 --> 00:35:09,000 nan yon griy tankou sa a. 583 00:35:09,000 --> 00:35:12,000 Lè nou pase ranje fonksyon, yo pwal santi yo konpòte 584 00:35:12,000 --> 00:35:16,000 yon ti jan diferan pase lè nou pase varyab regilye nan fonksyon 585 00:35:16,000 --> 00:35:18,000 tankou pase yon int oswa flote yon. 586 00:35:18,000 --> 00:35:21,000 Lè nou pase nan yon kalite int oswa Char oswa nenpòt nan sa yo lòt done 587 00:35:21,000 --> 00:35:24,000 nou jis te pran yon gade si fonksyon an modifye 588 00:35:24,000 --> 00:35:28,000 valè varyab sa a ki chanje a pa pral difize moute 589 00:35:28,000 --> 00:35:32,000 fonksyon an rele. 590 00:35:32,000 --> 00:35:35,000 Avèk yon etalaj, sou lòt men an, ki gen pou rive. 591 00:35:35,000 --> 00:35:39,000 Si m 'pase nan yon etalaj nan kèk fonksyon ak ki fonksyon chanje kèk nan eleman yo, 592 00:35:39,000 --> 00:35:43,000 lè m 'tounen vin moute nan fonksyon an ke yo rele li 593 00:35:43,000 --> 00:35:47,000 etalaj mwen se kounye a pral fè diferan, ak vokabilè a pou ke 594 00:35:47,000 --> 00:35:50,000 ranje se yo pase pa referans, kòm nou pral wè pita. 595 00:35:50,000 --> 00:35:53,000 Sa a se ki gen rapò ak aprann kijan travay endikasyon, kote sa yo kalite done debaz, 596 00:35:53,000 --> 00:35:55,000 sou lòt men an, yo pase pa vo anyen. 597 00:35:55,000 --> 00:35:59,000 >> Nou kapab panse a ki jan fè yon kopi kèk varyab ak Lè sa a, pase nan kopi a. 598 00:35:59,000 --> 00:36:01,000 Li pa enpòtan ki sa nou fè ak varyab sa a. 599 00:36:01,000 --> 00:36:06,000 Fonksyon an rele pa pral dwe konnen ke li te chanje. 600 00:36:06,000 --> 00:36:10,000 Matris yo se jis yon ti jan diferan nan ki konsiderasyon. 601 00:36:10,000 --> 00:36:13,000 Pou egzanp, kòm nou jis te wè, prensipal se senpleman yon fonksyon 602 00:36:13,000 --> 00:36:15,000 ki ka pran nan 2 agiman. 603 00:36:15,000 --> 00:36:20,000 Agiman nan premye fonksyon prensipal se arg, oswa nimewo a nan agiman, 604 00:36:20,000 --> 00:36:23,000 epi li se agiman nan dezyèm rele argv, 605 00:36:23,000 --> 00:36:27,000 ak sa yo se valè yo reyèl nan sa yo agiman. 606 00:36:27,000 --> 00:36:30,000 Se pou nou di mwen gen yon pwogram yo rele this.c, 607 00:36:30,000 --> 00:36:34,000 epi mwen di fè sa-a, ak mwen pral kouri sa a nan liy nan lòd. 608 00:36:34,000 --> 00:36:38,000 Koulye a, yo pase nan kèk agiman nan pwogram mwen rele sa a, 609 00:36:38,000 --> 00:36:42,000 Mwen te kapab di yon bagay tankou. / Sa a se CS 50. 610 00:36:42,000 --> 00:36:45,000 Sa a se ki sa nou imajine David fè chak jou nan tèminal la. 611 00:36:45,000 --> 00:36:48,000 Men koulye a, anndan an fonksyon prensipal nan pwogram sa a 612 00:36:48,000 --> 00:36:52,000 gen valè sa yo, se konsa arg se 4. 613 00:36:52,000 --> 00:36:56,000 Li ta ka yon ti kras konfizyon vrèman paske n ap sèlman pase nan se CS 50. 614 00:36:56,000 --> 00:36:58,000 Sa a se sèlman 3. 615 00:36:58,000 --> 00:37:02,000 Men sonje ke eleman an premye nan argv oswa agiman an premye 616 00:37:02,000 --> 00:37:05,000 se non an nan fonksyon nan tèt li. 617 00:37:05,000 --> 00:37:07,190 Se konsa, sa vle di ke nou gen 4 bagay sa yo isit la, 618 00:37:07,190 --> 00:37:10,530 ak eleman nan premye a pwal. / sa a. 619 00:37:10,530 --> 00:37:12,970 Epi sa ap reprezante kòm yon kòd. 620 00:37:12,970 --> 00:37:18,590 Lè sa a, eleman yo ki rete yo se sa ki nou tape nan apre non an nan pwogram nan. 621 00:37:18,590 --> 00:37:22,720 Se konsa, jis kòm yon sou kote, menm jan nou pwobableman te wè nan pset 2, 622 00:37:22,720 --> 00:37:28,780 sonje ke se fisèl la 50 ≠ 50 an antye ki pè. 623 00:37:28,780 --> 00:37:32,520 Se konsa, nou pa ka di yon bagay tankou, 'int argv x = 3.' 624 00:37:32,520 --> 00:37:36,470 >> Sa se jis pa pral fè sans, paske sa a se yon fisèl, e sa se yon nonb antye relatif. 625 00:37:36,470 --> 00:37:38,510 Se konsa, si ou vle konvèti ant 2 a, sonje, nou pral kontinye 626 00:37:38,510 --> 00:37:40,810 gen fonksyon sa a majik rele atwa. 627 00:37:40,810 --> 00:37:46,270 Ki pran yon kòd ak retounen nonb antye relatif la reprezante andedan nan ki fisèl. 628 00:37:46,270 --> 00:37:48,360 Se konsa, sa a, se yon erè fasil fè sou egzamen an, 629 00:37:48,360 --> 00:37:51,590 jis panse ke sa a, li pral otomatikman kalite ki kòrèk la. 630 00:37:51,590 --> 00:37:53,860 Men, jis konnen ke sa yo ap toujou gen strings 631 00:37:53,860 --> 00:38:00,920 menm si fisèl la sèlman gen yon nonb antye relatif oswa yon karaktè oubyen flote yon. 632 00:38:00,920 --> 00:38:03,380 Se konsa, kounye a kite a pale sou kouri tan. 633 00:38:03,380 --> 00:38:06,700 Lè nou gen tout bagay sa yo algoritm ki fè tout bagay sa yo fou, 634 00:38:06,700 --> 00:38:11,580 li vin vrèman itil mande kesyon an, "Konbyen tan yo pran?" 635 00:38:11,580 --> 00:38:15,500 Nou reprezante sa ak yon bagay yo rele asenptotik notasyon. 636 00:38:15,500 --> 00:38:18,430 Se konsa, sa a vle di ke - byen, kite a di nou ba algorithm nou an 637 00:38:18,430 --> 00:38:20,840 kèk D 'reyèlman, reyèlman, reyèlman gwo. 638 00:38:20,840 --> 00:38:23,840 Nou vle mande kesyon an, "Konbyen tan se li pral pran? 639 00:38:23,840 --> 00:38:26,370 Konbyen etap li pral pran algorithm nou yo kouri 640 00:38:26,370 --> 00:38:29,980 kòm yon fonksyon nan gwosè a nan D 'a? " 641 00:38:29,980 --> 00:38:33,080 Se konsa, fason nan premye nou ka dekri kouri tan la avèk gwo O. 642 00:38:33,080 --> 00:38:35,380 Ak sa a se tan pi move-ka kouri nou an. 643 00:38:35,380 --> 00:38:38,590 Se konsa, si nou vle sòt yon etalaj, epi nou bay algorithm nou an yon etalaj 644 00:38:38,590 --> 00:38:41,000 sa a, se nan desann lòd lè li ta dwe nan lòd montangn, 645 00:38:41,000 --> 00:38:43,130 ki k ap pase yo dwe ka ki pi mal la. 646 00:38:43,130 --> 00:38:49,800 Sa a se anwo nou mare l 'nan longè a maksimòm de tan algorithm nou an pral pran. 647 00:38:49,800 --> 00:38:54,740 Nan lòt men an, sa a Ω ki pral dekri pi byen ki ka kouri tan. 648 00:38:54,740 --> 00:38:58,210 Se konsa, si nou bay yon etalaj deja klase nan yon algorithm Fouye, 649 00:38:58,210 --> 00:39:00,940 konbyen tan li pral pran yo sòt li ye? 650 00:39:00,940 --> 00:39:06,610 Lè sa a, lè sa a, dekri yon pi ba mare sou kouri tan. 651 00:39:06,610 --> 00:39:10,980 Se konsa, isit la yo se sèlman kèk mo ki dekri kèk komen kouri fwa. 652 00:39:10,980 --> 00:39:13,120 Sa yo se nan Ascending lòd. 653 00:39:13,120 --> 00:39:16,060 Se tan ki pi rapid kouri nou gen yo rele konstan. 654 00:39:16,060 --> 00:39:19,800 >> Sa vle di pa gen pwoblèm konbyen eleman nou ba algorithm nou an, 655 00:39:19,800 --> 00:39:22,280 pa gen pwoblèm ki jan gwo etalaj nou an se, Fouye li 656 00:39:22,280 --> 00:39:26,510 oswa fè tou sa n ap fè etalaj la ap toujou pran menm kantite lajan an nan tan. 657 00:39:26,510 --> 00:39:30,270 Se konsa, nou ka reprezante ki jis ak yon 1, ki se yon konstan. 658 00:39:30,270 --> 00:39:32,410 Nou menm tou nou gade nan moman kouri logaritmik. 659 00:39:32,410 --> 00:39:34,800 Se konsa, yon bagay tankou rechèch binè se logaritmik, 660 00:39:34,800 --> 00:39:37,140 kote nou koupe pwoblèm lan nan mwatye tan chak 661 00:39:37,140 --> 00:39:40,970 ak Lè sa a, bagay sa yo jis jwenn pi wo soti nan la. 662 00:39:40,970 --> 00:39:43,580 Men, si w ap janm ekri yon O nan nenpòt ki algorithm faktoryèl, 663 00:39:43,580 --> 00:39:47,850 pwobableman ou pa ta dwe konsidere sa a kòm travay jou ou a. 664 00:39:47,850 --> 00:39:53,910 Lè nou konpare kouri fwa li enpòtan kenbe nan tèt ou tout bagay sa yo. 665 00:39:53,910 --> 00:39:57,760 Se konsa, si mwen gen yon algorithm ki nan O (n), ak yon lòt moun 666 00:39:57,760 --> 00:40:03,590 gen yon algorithm nan O (2n) sa yo, se aktyèlman asenptotik ekivalan. 667 00:40:03,590 --> 00:40:06,590 Se konsa, si nou imajine N yo dwe yon nimewo gwo tankou eleventy milya dola: 668 00:40:06,590 --> 00:40:13,090 Se konsa, lè nou ap konpare eleventy milya dola bay yon bagay tankou eleventy milya dola + 3, 669 00:40:13,090 --> 00:40:17,640 toudenkou ki +3 pa reyèlman fè yon gwo diferans ankò. 670 00:40:17,640 --> 00:40:20,980 Se poutèt sa nou ap ale nan kòmanse konsidere tout bagay sa yo yo dwe ekivalan. 671 00:40:20,980 --> 00:40:24,220 Se konsa, bagay sa yo tankou sa yo konstan isit la, gen nan 2 x sa a, oswa ajoute yon 3, 672 00:40:24,220 --> 00:40:27,180 sa yo, se jis konstan, ak sa yo yo ale nan lage yo. 673 00:40:27,180 --> 00:40:32,480 Se konsa, sa a, se poukisa tout 3 nan moman sa yo kouri yo se menm bagay la kòm li di yo ap O (n). 674 00:40:32,480 --> 00:40:37,490 Menm jan an, si nou gen 2 fwa kouri lòt, se pou yo di O (n ³ + 2n ²), nou ka ajoute 675 00:40:37,490 --> 00:40:42,070 + N, + 7, ak Lè sa a, nou gen yon lòt lè kouri sa se sèlman O (n ³). 676 00:40:42,070 --> 00:40:46,290 ankò, sa yo, se menm bagay la paske sa yo - sa yo, se pa menm bagay la. 677 00:40:46,290 --> 00:40:49,840 Sa yo se menm bagay yo, regrèt. Se konsa, sa yo, se menm bagay la tou paske 678 00:40:49,840 --> 00:40:53,090 sa a ³ n ki pral domine sa a ² 2n. 679 00:40:53,090 --> 00:40:59,130 >> Ki sa ki se pa menm bagay la se si nou te kouri fwa tankou O (n ³) ak O (n ²) 680 00:40:59,130 --> 00:41:02,820 paske sa ³ n se pi gwo pase sa a ² n. 681 00:41:02,820 --> 00:41:05,470 Se konsa, si nou gen ekspozan, toudenkou li sa a kòmanse gen pwoblèm, 682 00:41:05,470 --> 00:41:08,280 Men, lè nou ap jis fè fas ak faktè kòm nou yo moute isit la, 683 00:41:08,280 --> 00:41:12,810 Lè sa a, li pa pral gen pwoblèm yo paske yo te jis pral kite. 684 00:41:12,810 --> 00:41:16,760 Se pou nou pran yon gade nan kèk nan algoritm yo nou te wè byen lwen tèlman 685 00:41:16,760 --> 00:41:19,260 epi pale sou tan kouri yo. 686 00:41:19,260 --> 00:41:23,850 Fason an premye nan chèche pou yon nimewo nan yon lis, ke nou te wè, se te lineyè rechèch. 687 00:41:23,850 --> 00:41:26,950 Ak aplikasyon an nan rechèch lineyè se super senp. 688 00:41:26,950 --> 00:41:30,490 Nou jis gen yon lis, e nou pral fè yon gade nan chak eleman sèl nan lis la 689 00:41:30,490 --> 00:41:34,260 jiskaske nou jwenn nimewo a nou ap chèche pou. 690 00:41:34,260 --> 00:41:38,370 Se konsa, ki vle di ke nan ka ki pi mal la, sa a O (n). 691 00:41:38,370 --> 00:41:40,860 Epi ka-a pi move isit la ta ka si eleman an se 692 00:41:40,860 --> 00:41:45,710 eleman ki sot pase yo, Lè sa a, lè l sèvi avèk lineyè rechèch nou gen fè yon gade nan chak eleman yon sèl 693 00:41:45,710 --> 00:41:50,180 jiskaske nou jwenn nan yon sèl nan dènye yo nan lòd yo konnen ke li te aktyèlman nan lis la. 694 00:41:50,180 --> 00:41:52,910 Nou pa ka jis bay moute mwatye ak di, "Li pwobableman pa jwenn yo." 695 00:41:52,910 --> 00:41:55,980 Avèk rechèch lineyè nou gen fè yon gade nan tout bagay la. 696 00:41:55,980 --> 00:41:59,090 Tan an kouri pi bon-ka, sou la lòt bò, se konstan 697 00:41:59,090 --> 00:42:04,200 paske nan ka a pi bon eleman nan nou ap chèche pou se jis yon nan premye nan lis la. 698 00:42:04,200 --> 00:42:08,930 Se konsa li pral pran nou egzakteman 1 etap, pa gen pwoblèm ki jan gwo lis la se 699 00:42:08,930 --> 00:42:12,140 si nou ap chèche pou eleman nan premye chak fwa. 700 00:42:12,140 --> 00:42:15,390 >> Se konsa, lè ou chèche, sonje, li pa egzije pou yo lis nou an Ranje. 701 00:42:15,390 --> 00:42:19,430 Paske n ap senpleman pral gade sou tout eleman sèl, e li pa vrèman gen pwoblèm 702 00:42:19,430 --> 00:42:23,560 ki lòd sa yo eleman yo se pous 703 00:42:23,560 --> 00:42:28,110 Yon algorithm rechèch plis entelijan se yon bagay tankou rechèch binè. 704 00:42:28,110 --> 00:42:31,500 Sonje byen, aplikasyon de rechèch binè se lè w ap ale nan 705 00:42:31,500 --> 00:42:34,320 kenbe gade nan mitan an nan lis la. 706 00:42:34,320 --> 00:42:38,000 Ak paske nou menm nou ap chèche nan mitan an, nou egzije pou se lis la Ranje 707 00:42:38,000 --> 00:42:40,580 oswa lòt moun nou pa konnen kote mitan an se, epi nou gen gade sou 708 00:42:40,580 --> 00:42:44,480 lis la antye rive sou jwenn li, ak Lè sa a, nan pwen sa a nou ap jis gaspiye tan. 709 00:42:44,480 --> 00:42:48,480 Se konsa, si nou gen yon lis klase epi nou jwenn mitan an, nou pwal yo konpare mitan an 710 00:42:48,480 --> 00:42:51,590 eleman nan nou ap chèche pou. 711 00:42:51,590 --> 00:42:54,640 Si li twò wo, Lè sa a, nou ka bliye mwatye nan dwa 712 00:42:54,640 --> 00:42:57,810 paske nou konnen ke si eleman nou an se deja twò wo 713 00:42:57,810 --> 00:43:01,080 ak tout bagay a dwat a sa a eleman se menm ki pi wo, 714 00:43:01,080 --> 00:43:02,760 Lè sa a, nou pa bezwen gade gen ankò. 715 00:43:02,760 --> 00:43:05,430 Ki kote sou men nan lòt, si eleman nou an se twò ba, 716 00:43:05,430 --> 00:43:08,700 nou konnen tout bagay sa yo bò gòch sa a nan eleman tou se twò ba, 717 00:43:08,700 --> 00:43:11,390 se konsa li pa vrèman fè sans yo gade la, swa. 718 00:43:11,390 --> 00:43:15,760 Fason sa a, avèk chak etap ak chak fwa nou gade nan pwen milye a nan lis la, 719 00:43:15,760 --> 00:43:19,060 nou pral koupe pwoblèm nou yo nan mwatye paske toudenkou nou konnen 720 00:43:19,060 --> 00:43:23,040 yon pakèt antye nan nimewo ke yo pa ka fè yon sèl la nou ap chèche pou. 721 00:43:23,040 --> 00:43:26,950 >> Nan pseudocode sa a ta gade yon bagay tankou sa a, 722 00:43:26,950 --> 00:43:30,990 epi paske nou ap koupe lis la nan mwatye tan chak yon sèl, 723 00:43:30,990 --> 00:43:34,920 pi move-ka so kouri tan nou soti nan lineyè logaritmik. 724 00:43:34,920 --> 00:43:39,260 Se konsa, toudenkou nou genyen boutèy demi lit-an etap yo nan lòd jwenn yon eleman ki nan yon lis. 725 00:43:39,260 --> 00:43:42,460 Tan an kouri pi bon-ka, menm si, se toujou konstan 726 00:43:42,460 --> 00:43:45,180 paske kounye a, kite yo jis di ke eleman nan nou ap chèche pou se 727 00:43:45,180 --> 00:43:48,380 toujou mitan an egzak la lis orijinal la. 728 00:43:48,380 --> 00:43:52,080 Se konsa, nou ka grandi lis nou an kòm yo gwo nou vle, men si eleman nan nou ap chèche pou se nan mitan pou mitan, 729 00:43:52,080 --> 00:43:54,910 Lè sa a, li la sèlman pral pran nou 1 etap. 730 00:43:54,910 --> 00:44:00,920 Se konsa, Se poutèt sa nou ap O (boutèy demi lit n) ak Ω (1) oswa konstan. 731 00:44:00,920 --> 00:44:04,510 Se pou nou aktyèlman kouri binè rechèch sou lis sa a. 732 00:44:04,510 --> 00:44:08,020 Se konsa, kite a di ke nou ap chèche pou eleman nan 164. 733 00:44:08,020 --> 00:44:11,650 Premye bagay nou pral fè se jwenn pwen milye a nan lis sa a. 734 00:44:11,650 --> 00:44:15,060 Li jis konsa k ap pase ki pwen milye a pral tonbe nan ant 2 nimewo sa yo, 735 00:44:15,060 --> 00:44:18,960 se konsa kite yo jis di abitrèman, chak fwa pwen milye a tonbe ant 2 chif, 736 00:44:18,960 --> 00:44:21,150 kite yo jis wonn moute. 737 00:44:21,150 --> 00:44:24,330 Nou jis bezwen asire ke nou fè sa chak etap nan chemen an. 738 00:44:24,330 --> 00:44:29,040 Se konsa, nou ap ale nan wonn moute yo, epi nou ap pral di ke 161 se la nan mitan lis nou an. 739 00:44:29,040 --> 00:44:34,640 Se konsa, 161 <164, ak chak eleman nan kite nan 161 740 00:44:34,640 --> 00:44:39,120 tou se <164, konsa nou konnen ke li pa la pral ede nou nan tout 741 00:44:39,120 --> 00:44:42,690 kòmanse ap chèche sou isit la paske eleman nan nou ap chèche pou pa ka la. 742 00:44:42,690 --> 00:44:47,060 Se konsa, sa nou kapab fè se nou ka jis bliye sou ke mwatye antye gòch nan lis la, 743 00:44:47,060 --> 00:44:51,700 e kounye a, sèlman konsidere soti sou bò dwat la nan pati a 161. 744 00:44:51,700 --> 00:44:54,050 >> Se konsa, ankò, sa a se pwen milye a; kite yo jis wonn moute. 745 00:44:54,050 --> 00:44:56,260 Koulye a, 175 se twò gwo. 746 00:44:56,260 --> 00:44:59,180 Se konsa, nou konnen li pa pral ede nou kap isit la oswa isit la, 747 00:44:59,180 --> 00:45:06,610 pou nou ka jis jete ki lwen, ak evantyèlman nou pral frape 164 la. 748 00:45:06,610 --> 00:45:10,560 Nenpòt kesyon sou rechèch binè? 749 00:45:10,560 --> 00:45:14,180 Kite yo deplase sou soti nan chèche pou rive nan yon lis deja-Ranje 750 00:45:14,180 --> 00:45:17,660 aktyèlman ap pran yon lis nimewo nan nenpòt lòd 751 00:45:17,660 --> 00:45:20,960 ak fè ke lis nan moute lòd. 752 00:45:20,960 --> 00:45:24,060 Te algorithm nan premye nou te etidye rele sòt jarèt. 753 00:45:24,060 --> 00:45:27,300 Ak sa a ta ka pi senp nan algoritm yo nou te wè. 754 00:45:27,300 --> 00:45:32,970 Sòt jarèt di ke lè nenpòt eleman 2 andedan lis la ap soti nan kote, 755 00:45:32,970 --> 00:45:36,500 sa vle di gen yon nimewo ki pi wo nan kite nan yon nimewo pi ba yo, 756 00:45:36,500 --> 00:45:40,190 Lè sa a, nou pral boukante yo, paske sa vle di ke lis la pral 757 00:45:40,190 --> 00:45:42,860 "Plis Ranje" pase sa li te la anvan. 758 00:45:42,860 --> 00:45:45,180 E nou jis ap pral kontinye pwosesis sa a ankò, li ankò e ankò 759 00:45:45,180 --> 00:45:52,100 jiskaske evantyèlman kalite a eleman nan jarèt kote kòrèk yo epi yo nou gen yon lis Ranje. 760 00:45:52,100 --> 00:45:57,230 >> Tan an kouri nan sa a a pwal O (n ²). Poukisa? 761 00:45:57,230 --> 00:46:00,370 Oke, paske nan ka ki pi mal la, nou pwal pran chak eleman, ak 762 00:46:00,370 --> 00:46:04,570 nou pral fini konpare l 'bay chak eleman lòt nan lis la. 763 00:46:04,570 --> 00:46:08,030 Men, nan ka a pi bon, nou gen yon lis deja klase, bil sòt nan 764 00:46:08,030 --> 00:46:12,230 jis pral ale nan yon fwa, di "non. Mwen pa t 'fè okenn echanj, se konsa mwen fè." 765 00:46:12,230 --> 00:46:17,410 Se konsa, nou gen yon pi bon-ka kouri lè nan Ω (n). 766 00:46:17,410 --> 00:46:20,680 Se pou nou kouri sòt jarèt sou yon lis. 767 00:46:20,680 --> 00:46:23,560 Oswa premye, kite la jis gade kèk pseudocode vrèman byen vit. 768 00:46:23,560 --> 00:46:28,160 Nou vle di nou vle kenbe tras nan, nan chak iterasyon nan riban an, 769 00:46:28,160 --> 00:46:32,190 Kenbe tras de si wi ou non nou chanje nenpòt eleman. 770 00:46:32,190 --> 00:46:37,610 Se konsa, rezon ki fè yo pou ki se, nou pral sispann lè nou pa t 'échanges nenpòt eleman. 771 00:46:37,610 --> 00:46:41,980 Se konsa, nan kòmansman an nan riban nou an, nou pa t 'échanges anyen, se konsa nou pral di sa a, se fo. 772 00:46:41,980 --> 00:46:47,170 Koulye a, nou pral yo ale nan lis la epi konpare eleman mwen eleman mwen + 1 773 00:46:47,170 --> 00:46:50,310 epi si se ka a ki di ke gen yon nimewo pi gwo nan kite nan yon nimewo ki pi piti, 774 00:46:50,310 --> 00:46:52,310 Lè sa a, nou ap jis pral boukante yo. 775 00:46:52,310 --> 00:46:54,490 >> Lè sa a, nou pral sonje ke nou échanges yon eleman. 776 00:46:54,490 --> 00:46:58,900 Sa vle di ke nou bezwen yo ale nan lis la omwen 1 plis tan 777 00:46:58,900 --> 00:47:02,160 paske kondisyon an nan ki nou sispann se lè se lis la tout antye deja klase, 778 00:47:02,160 --> 00:47:04,890 sa vle di nou pa gen nenpòt ki te fè echanj. 779 00:47:04,890 --> 00:47:09,960 Se konsa, sa a, se poukisa kondisyon nou desann isit la se 'pandan ke kèk eleman yo te échanges. 780 00:47:09,960 --> 00:47:13,720 Se konsa, kounye a kite a jis gade nan sa a ap kouri sou yon lis. 781 00:47:13,720 --> 00:47:16,640 Mwen gen lis la 5,0,1,6,4. 782 00:47:16,640 --> 00:47:19,850 Sòt jarèt ki pral kòmanse tout wout la sou bò gòch la, epi li pral konpare 783 00:47:19,850 --> 00:47:24,700 eleman yo mwen, se konsa 0 a mwen + 1, ki se eleman 1. 784 00:47:24,700 --> 00:47:29,020 Li nan pral di, byen 5> 0, men kounye a 5 se sou bò goch la, 785 00:47:29,020 --> 00:47:32,500 Se konsa, mwen bezwen swap 5 an ak 0 a. 786 00:47:32,500 --> 00:47:35,470 Lè m 'swap yo, toudenkou li mwen jwenn lis sa a diferan. 787 00:47:35,470 --> 00:47:38,260 Koulye a, 5> 1, se konsa nou pral boukante yo. 788 00:47:38,260 --> 00:47:42,160 5 se pa> 6, donk nou pa bezwen fè anyen isit la. 789 00:47:42,160 --> 00:47:46,690 Men, 6> 4, konsa nou bezwen swap. 790 00:47:46,690 --> 00:47:49,740 Yon fwa ankò, nou bezwen kouri nan lis la antye rive sou evantyèlman dekouvri 791 00:47:49,740 --> 00:47:52,330 ke sa yo se soti nan lòd; nou boukante yo, 792 00:47:52,330 --> 00:47:57,120 ak nan pwen sa a nou bezwen kouri nan lis la 1 plis tan 793 00:47:57,120 --> 00:48:05,390 asire w ke tout bagay ap nan lòd li yo, ak nan sa a sòt jarèt pwen li te fini. 794 00:48:05,390 --> 00:48:10,720 Yon algorithm diferan pou pran kèk eleman ak Fouye yo se sòt seleksyon. 795 00:48:10,720 --> 00:48:15,740 Lide a dèyè sòt seleksyon se ke nou ap ale nan bati yon pòsyon Ranje nan lis la 796 00:48:15,740 --> 00:48:18,150 1 eleman nan yon tan. 797 00:48:18,150 --> 00:48:23,170 >> Ak fason an ke nou ap pwal fè sa se pa bati segman nan gòch nan lis la. 798 00:48:23,170 --> 00:48:27,510 Ak fondamantalman, chak - sou chak etap, nou pwal pran eleman ki pi piti a nou kite 799 00:48:27,510 --> 00:48:32,310 ki pa te Ranje ankò, e nou pral pou avanse pou li nan segman sa Ranje. 800 00:48:32,310 --> 00:48:35,850 Sa vle di nou bezwen kontinyèlman jwenn minimòm eleman nan klase 801 00:48:35,850 --> 00:48:40,720 ak Lè sa a, pran ki eleman minimòm ak swap li ak tou sa 802 00:48:40,720 --> 00:48:45,090 kite-ki pi eleman ki pa klase. 803 00:48:45,090 --> 00:48:50,890 Tan an kouri nan sa a a pwal O (n ²) paske nan ka ki pi mal la 804 00:48:50,890 --> 00:48:55,070 nou bezwen konpare chak eleman yon sèl bay yo chak eleman ak lòt. 805 00:48:55,070 --> 00:48:59,250 Paske nou ap di ke si nou kòmanse nan mwatye a gòch nan lis la, nou bezwen 806 00:48:59,250 --> 00:49:02,970 yo ale nan segman nan tout dwa jwenn eleman ki pi piti a. 807 00:49:02,970 --> 00:49:05,430 Lè sa a,, ankò, nou bezwen ale sou tout segman nan dwa ak 808 00:49:05,430 --> 00:49:08,210 kenbe ale sou ki sou yo ak sou yo ak sou ankò. 809 00:49:08,210 --> 00:49:11,350 Sa k ap pase yo dwe n ². Nou pwal bezwen yon pou andedan riban nan yon lòt pou riban 810 00:49:11,350 --> 00:49:13,350 ki sijere n ². 811 00:49:13,350 --> 00:49:16,530 Nan te panse a ka pi bon, se pou yo di nou bay li yon lis deja klase; 812 00:49:16,530 --> 00:49:19,270 nou aktyèlman pa fè nenpòt pi bon pase ² n. 813 00:49:19,270 --> 00:49:21,730 Paske sòt seleksyon pa gen okenn fason pou konnen ke 814 00:49:21,730 --> 00:49:25,540 eleman minimòm-nan se jis yon sèl la mwen rive yo dwe gade nan. 815 00:49:25,540 --> 00:49:28,970 Li toujou bezwen asire w ke sa a se aktyèlman minimòm la. 816 00:49:28,970 --> 00:49:31,670 >> Ak wout la sèlman nan asire w ke li nan minimòm lan, lè l sèvi avèk sa a algorithm, 817 00:49:31,670 --> 00:49:34,640 se fè yon gade nan chak eleman yon sèl ankò. 818 00:49:34,640 --> 00:49:38,420 Se konsa, reyèlman, si ou ba li - si w bay sòt seleksyon yon lis deja klase, 819 00:49:38,420 --> 00:49:42,720 li pa pral fè nenpòt pi bon pase bay li yon lis ki pa klase ankò. 820 00:49:42,720 --> 00:49:46,320 By wout la, si li k ap pase yo ka a gen yon bagay ki O (yon bagay) 821 00:49:46,320 --> 00:49:50,640 ak Omega a nan yon bagay, nou ka jis di plis suksen ke li nan θ nan yon bagay. 822 00:49:50,640 --> 00:49:52,760 Se konsa, si ou wè sa a vini nenpòt kote, se sa ki ki jis vle di. 823 00:49:52,760 --> 00:49:57,580 >> Si gen yon bagay Theta nan n ², se toude ki O gwo (n ²) ak Ω (n ²). 824 00:49:57,580 --> 00:49:59,790 Se konsa, pi bon ka ak ka pi move, li pa fè yon diferans, 825 00:49:59,790 --> 00:50:04,400 algorithm a pral fè menm bagay la chak fwa. 826 00:50:04,400 --> 00:50:06,610 Se konsa, sa a se sa pseudocode pou sòt seleksyon t 'kapab sanble. 827 00:50:06,610 --> 00:50:10,630 Nou ap fondamantalman pral di ke mwen vle repekte sou lis la 828 00:50:10,630 --> 00:50:15,180 de goch a dwat, epi nan chak iterasyon nan riban an, mwen pral pou avanse pou pi 829 00:50:15,180 --> 00:50:19,780 eleman minimòm-nan nan sa a pòsyon Ranje nan lis la. 830 00:50:19,780 --> 00:50:23,260 E yon fwa mwen demenaje yon bagay la, mwen pa janm bezwen gade ki eleman ankò. 831 00:50:23,260 --> 00:50:28,600 Paske kòm pli vit ke mwen swap yon eleman nan segman a gòch nan lis la, li nan Ranje 832 00:50:28,600 --> 00:50:32,600 paske nou ap fè tout bagay nan lòd moute lè l sèvi avèk minimes. 833 00:50:32,600 --> 00:50:38,740 Se konsa, nou te di, oke, nou ap nan pozisyon mwen, epi nou bezwen gade tout nan eleman yo 834 00:50:38,740 --> 00:50:42,260 a dwat a mwen yo nan lòd jwenn minimòm la. 835 00:50:42,260 --> 00:50:46,150 Se konsa, sa vle di nou vle gade soti nan mwen 1 + a nan fen lis la. 836 00:50:46,150 --> 00:50:51,610 Epi, koulye a, si eleman a ke nou ap kounye a gade nan gen mwens pase minimòm nou an twò lwen, 837 00:50:51,610 --> 00:50:54,190 ki, sonje, nou ap kòmanse koupe minimòm-nan jis pou 838 00:50:54,190 --> 00:50:57,020 kèlkeswa sa eleman nou ap kounye a nan; mwen pral asime ke nan minimòm la. 839 00:50:57,020 --> 00:51:00,270 Si mwen jwenn yon eleman ki nan pi piti pase sa, Lè sa a, mwen pral di, oke, 840 00:51:00,270 --> 00:51:02,700 byen, mwen jwenn yon minimòm nouvo. 841 00:51:02,700 --> 00:51:06,080 Mwen pral sonje kote ke minimòm te ye a. 842 00:51:06,080 --> 00:51:09,560 >> Se konsa, koulye a, yon fwa mwen te ale nan segman sa dwa klase, 843 00:51:09,560 --> 00:51:16,690 Mwen kapab di mwen pral swap eleman minimòm-nan ak eleman ki nan pozisyon mwen. 844 00:51:16,690 --> 00:51:21,100 Sa a pral bati lis mwen an, pòsyon Ranje m 'lan nan lis la de gòch a dwat, 845 00:51:21,100 --> 00:51:25,190 epi nou pa janm bezwen gade yon eleman ankò yon fwa li a nan ki pòsyon. 846 00:51:25,190 --> 00:51:27,930 Yon fwa nou te échanges li. 847 00:51:27,930 --> 00:51:30,260 Se konsa, kite a kouri sòt seleksyon sou lis sa a. 848 00:51:30,260 --> 00:51:38,220 Se eleman ki ble isit la a pwal mwen an, ak eleman wouj la a pwal eleman nan minimòm. 849 00:51:38,220 --> 00:51:41,570 Se konsa, mwen kòmanse tout wout la sou bò gòch la nan lis la, se konsa nan 5. 850 00:51:41,570 --> 00:51:44,610 Koulye a, nou bezwen jwenn minimòm eleman nan klase. 851 00:51:44,610 --> 00:51:49,480 Se konsa, nou di 0 <5, kifè 0 se minimòm nouvo mwen an. 852 00:51:49,480 --> 00:51:53,820 >> Men, mwen pa ka sispann gen, paske menm si nou ka rekonèt ke 0 se pi piti a, 853 00:51:53,820 --> 00:51:59,390 nou bezwen kouri nan chak eleman lòt kote nan lis la a asire w. 854 00:51:59,390 --> 00:52:01,760 Se konsa, 1 se pi gwo, 6 se pi gwo, 4 se pi gran. 855 00:52:01,760 --> 00:52:05,850 Sa vle di ke apre kap nan tout nan eleman sa yo, mwen te detèmine 0 se pi piti a. 856 00:52:05,850 --> 00:52:09,800 Se konsa, mwen pral boukante 5 an ak 0 a. 857 00:52:09,800 --> 00:52:15,480 Yon fwa mwen swap sa, mwen pral jwenn yon lis nouvo, epi mwen konnen ke mwen pa janm bezwen gade ki 0 ankò 858 00:52:15,480 --> 00:52:19,380 paske yon fwa mwen te échanges li, mwen te klase li epitou n ap fè a. 859 00:52:19,380 --> 00:52:22,730 Kounye a li jis pou k ap pase ki eleman nan ble se ankò 5 an, 860 00:52:22,730 --> 00:52:26,030 e nou bezwen gade 1 an, 6 an ak 4 an detèmine ke 1 861 00:52:26,030 --> 00:52:31,520 se eleman ki pi piti minimòm, se konsa nou pral boukante 1 an ak 5 an. 862 00:52:31,520 --> 00:52:36,890 Ankò, nou bezwen gade - konpare 5 an a 6 an ak 4 an, 863 00:52:36,890 --> 00:52:39,830 epi nou ap ale nan swap 4 an ak 5 an, epi finalman, konpare 864 00:52:39,830 --> 00:52:45,740 moun ki nimewo 2 ak swap yo jouk nou jwenn lis Ranje nou yo. 865 00:52:45,740 --> 00:52:49,730 Nenpòt kesyon sou kalite seleksyon? 866 00:52:49,730 --> 00:52:56,420 Oke. Se pou nou deplase li nan yon sijè an dènye isit la, e ke se rkursyon. 867 00:52:56,420 --> 00:52:59,810 >> Rkursyon, sonje, se bagay sa a meta reyèlman kote yon fonksyon 868 00:52:59,810 --> 00:53:02,740 repete rele tèt li. 869 00:53:02,740 --> 00:53:05,620 Se konsa, nan kèk pwen, pandan y ap fuction nou an, ap repete rele tèt li, 870 00:53:05,620 --> 00:53:10,100 gen bezwen yo dwe kèk pwen nan ki nou sispann rele tèt nou. 871 00:53:10,100 --> 00:53:13,670 Paske si nou pa fè sa, Lè sa a, nou ap jis pral kontinye fè sa a pou tout tan, 872 00:53:13,670 --> 00:53:16,660 ak pwogram nou an se jis pa pral mete fen nan. 873 00:53:16,660 --> 00:53:19,200 Nou rele kondisyon sa a ka de baz la. 874 00:53:19,200 --> 00:53:22,570 Epi ka-a baz di, olye ke w rele yon fonksyon ankò, 875 00:53:22,570 --> 00:53:25,330 Mwen jis ale nan retounen kèk valè. 876 00:53:25,330 --> 00:53:28,080 Se konsa, yon fwa nou te tounen yon valè, nou te sispann rele tèt nou, 877 00:53:28,080 --> 00:53:32,550 ak rès la nan apèl sa yo nou te fè byen lwen tèlman kapab tou retounen. 878 00:53:32,550 --> 00:53:36,050 Opoze a nan ka a baz se ka a repetitif. 879 00:53:36,050 --> 00:53:39,050 Ak sa a se lè nou vle fè yon lòt apèl fonksyon an ke nou se kounye a pous 880 00:53:39,050 --> 00:53:44,690 E nou pwobableman, byenke pa toujou, vle sèvi ak agiman diferan. 881 00:53:44,690 --> 00:53:48,940 >> Se konsa, si nou gen yon fonksyon ki rele f, ak f jis rele pran 1 agiman, 882 00:53:48,940 --> 00:53:52,010 ak nou jis kenbe w rele f (1), f (1), f (1), epi li jis pou k ap pase ki 883 00:53:52,010 --> 00:53:56,510 agiman a 1 tonbe nan ka repetitif, nou toujou ap pa janm ale nan sispann. 884 00:53:56,510 --> 00:54:01,620 Menm si nou gen yon ka baz, nou bezwen asire w ke evantyèlman nou ap ale nan frape ki ka baz. 885 00:54:01,620 --> 00:54:04,250 Nou pa jis kenbe rete nan ka sa a repetitif. 886 00:54:04,250 --> 00:54:09,870 Anjeneral, lè nou rele tèt nou, nou ap pwobableman pral gen yon agiman diferan chak fwa. 887 00:54:09,870 --> 00:54:12,700 Isit la se yon fonksyon vrèman senp repetitif. 888 00:54:12,700 --> 00:54:15,090 Se konsa, sa a pral kalkile faktoryèl a nan yon kantite. 889 00:54:15,090 --> 00:54:17,790 Up top isit la nou gen ka baz nou an. 890 00:54:17,790 --> 00:54:22,330 Nan ka a ki n ≤ 1, nou pa ap ale nan rele faktoryèl ankò. 891 00:54:22,330 --> 00:54:26,490 Nou pwal sispann; nou ap jis pral retounen kèk valè. 892 00:54:26,490 --> 00:54:30,170 Si sa a se pa vre, lè sa a nou pral frape ka repetitif nou an. 893 00:54:30,170 --> 00:54:33,550 Avi isit la ke nou pa jis ap rele faktoryèl (n), paske men sa pa ta dwe trè itil. 894 00:54:33,550 --> 00:54:36,810 Nou pral rele faktoryèl nan yon lòt bagay. 895 00:54:36,810 --> 00:54:40,850 >> Se konsa, ou ka wè, evantyèlman, si nou pase yon yon bagay faktoryèl (5) oswa, 896 00:54:40,850 --> 00:54:45,900 nou pwal rele faktoryèl (4) yo ak sou sa, epi evantyèlman nou ap ale nan frape sa a ka baz. 897 00:54:45,900 --> 00:54:51,730 Se konsa, sa a sanble bon. Ann wè sa ki pase lè nou aktyèlman kouri sa a. 898 00:54:51,730 --> 00:54:57,840 Sa a se chemine a, epi kite pou yo di ke prensipal ki pral rele sa a fonksyon ki gen yon agiman (4). 899 00:54:57,840 --> 00:55:02,200 Se konsa, yon fwa faktoryèl wè epi li = 4, faktoryèl pral rele tèt li. 900 00:55:02,200 --> 00:55:05,010 Koulye a, toudenkou, nou gen faktoryèl (3). 901 00:55:05,010 --> 00:55:10,780 Se konsa, sa yo fonksyon yo ale nan ap kontinye grandi jouk evantyèlman nou frape ka baz nou an. 902 00:55:10,780 --> 00:55:17,830 Nan pwen sa a, valè a retounen nan sa a se retounen nan (no valè a retounen nan sa a), 903 00:55:17,830 --> 00:55:21,290 valè a retounen nan sa a se no retounen valè sa a. 904 00:55:21,290 --> 00:55:23,290 Evantyèlman nou bezwen frape kèk nimewo. 905 00:55:23,290 --> 00:55:26,560 Nan tèt la isit la, nou di retou 1. 906 00:55:26,560 --> 00:55:30,650 Sa vle di ke yon fwa nou retounen ladan nimewo, nou ka pòp sa a nan chemine a. 907 00:55:30,650 --> 00:55:36,570 Se konsa, sa a faktoryèl (1) a se fè. 908 00:55:36,570 --> 00:55:41,190 Lè 1 retounen, sa a faktoryèl (1) retounen, sa a retounen nan 1. 909 00:55:41,190 --> 00:55:46,910 Valè a retounen nan sa a, sonje, te no valè a retounen nan sa a. 910 00:55:46,910 --> 00:55:50,720 Se konsa, toudenkou, sa a Guy konnen ke mwen vle retounen 2. 911 00:55:50,720 --> 00:55:55,910 >> Se konsa, sonje, retounen valè nan sa a se jis no valè a retounen moute isit la. 912 00:55:55,910 --> 00:56:01,160 Se konsa, kounye a nou ka di 3 x 2, epi finalman, isit la nou kapab di 913 00:56:01,160 --> 00:56:04,010 sa a se jis pral gen 4 x 3 x 2. 914 00:56:04,010 --> 00:56:09,570 E yon fwa sa a tounen, nou jwenn desann nan yon nonb antye relatif andedan sèl nan prensipal la. 915 00:56:09,570 --> 00:56:15,460 Nenpòt kesyon sou rkursyon? 916 00:56:15,460 --> 00:56:17,090 Tout dwa. Se konsa, gen nan plis tan pou kesyon nan fen a, 917 00:56:17,090 --> 00:56:23,360 Men, koulye a Se Jozèf ki va kouvri sijè ki rete yo. 918 00:56:23,360 --> 00:56:25,590 >> [Jozèf Ong] Tout dwa. Se konsa, kounye a ke nou te pale sou recursions, 919 00:56:25,590 --> 00:56:27,840 kite a pale yon ti kras sou sa ki rantre sòt se. 920 00:56:27,840 --> 00:56:31,740 Rantre sòt se fondamantalman yon lòt fason nan klasman yon lis nimewo. 921 00:56:31,740 --> 00:56:36,430 Ak kijan li fonksyone se, ak sòt unifye ou gen yon lis, ak sa nou fè se 922 00:56:36,430 --> 00:56:39,120 nou di, se pou yo separe sa a nan 2 mwatye. 923 00:56:39,120 --> 00:56:42,750 Nou pral premye kouri rantre sòt ankò sou mwatye nan bò gòch, 924 00:56:42,750 --> 00:56:45,040 Lè sa a, nou pral kouri rantre sòt sou mwatye a dwat, 925 00:56:45,040 --> 00:56:50,240 ak ki bay nou kounye a 2 mwatye ki yo Ranje, epi kounye a nou pwal konbine sa yo mwatye yo ansanm. 926 00:56:50,240 --> 00:56:55,010 Li se yon ti jan difisil yo wè san yon egzanp, se konsa nou pral ale nan mosyon yo ak wè sa ki rive. 927 00:56:55,010 --> 00:56:59,590 Se konsa, ou kòmanse ak lis sa a, nou fann l 'nan 2 mwatye. 928 00:56:59,590 --> 00:57:02,300 Nou kouri rantre sòt sou mwatye nan bò gòch premye. 929 00:57:02,300 --> 00:57:06,660 Se konsa, sa a, se mwatye nan bò gòch, epi kounye a nou kouri yo nan lis sa a ankò 930 00:57:06,660 --> 00:57:09,800 ki vin pase nan sòt fizyone, ak Lè sa a, nou gade, ankò, 931 00:57:09,800 --> 00:57:13,270 nan bò gòch la nan lis sa a epi nou kouri rantre sòt sou li. 932 00:57:13,270 --> 00:57:15,880 Koulye a, nou jwenn desann nan yon lis nan 2 chif, 933 00:57:15,880 --> 00:57:19,010 e kounye a, mwatye nan bò gòch se sèlman 1 eleman ki long, epi nou pa kapab 934 00:57:19,010 --> 00:57:23,380 fann yon lis ki nan sèlman 1 eleman nan mwatye, konsa nou jis di, yon fwa nou gen 50, 935 00:57:23,380 --> 00:57:26,400 ki se jis 1 eleman, li te deja klase. 936 00:57:26,400 --> 00:57:29,860 >> Yon fwa nou ap fè ak ki, nou ka wè ke nou kapab 937 00:57:29,860 --> 00:57:32,230 deplase sou mwatye a dwa a lis sa a, 938 00:57:32,230 --> 00:57:36,480 ak 3 se tou Ranje, epi konsa, kounye a ke tou de mwatye nan lis sa a yo Ranje 939 00:57:36,480 --> 00:57:39,080 nou ka antre nan nimewo sa yo tounen ansanm. 940 00:57:39,080 --> 00:57:45,320 Se konsa, nou gade nan 50 ak 3; 3 se pi piti pase 50, se konsa li ale nan premye ak Lè sa a, 50 vini pous 941 00:57:45,320 --> 00:57:49,340 Koulye a, ki nan fè; n 'al jwenn tounen moute ak sa yo ki lis ak sòt li nan mwatye dwat. 942 00:57:49,340 --> 00:57:52,440 42 se nimewo pwòp li an, Se konsa, li deja klase. 943 00:57:52,440 --> 00:57:57,850 Se konsa, kounye a nou konpare sa yo 2 ak 3 se pi piti pase 42, se konsa ke vin mete nan premye, 944 00:57:57,850 --> 00:58:02,340 kounye a 42 vin mete nan, ak 50 vin mete pous 945 00:58:02,340 --> 00:58:07,220 Koulye a, ki nan Ranje, n 'al jwenn tout wout la tounen nan tèt la, 1337 ak 15. 946 00:58:07,220 --> 00:58:14,560 Bon, nou kounye a gade nan mwatye a gòch nan lis sa a; 1337 se pa tèt li pou li a klase epi menm ki gen 15. 947 00:58:14,560 --> 00:58:19,020 Se konsa, kounye a nou konbine nimewo sa yo 2 a sòt ke lis orijinal, 15 <1337, 948 00:58:19,020 --> 00:58:23,060 se konsa li ale nan premye, Lè sa a, 1337 ale pous 949 00:58:23,060 --> 00:58:26,640 Epi, koulye a nou tou de Ranje mwatye nan lis orijinal la moute tèt. 950 00:58:26,640 --> 00:58:30,440 Ak tout sa nou dwe fè se konbine sa yo. 951 00:58:30,440 --> 00:58:36,890 Nou gade 2 chif yo an premye nan lis sa a, 3 <15, se konsa li ale nan etalaj la sòt premye. 952 00:58:36,890 --> 00:58:44,460 15 <42, se konsa li ale pous Koulye a, 42 <1337, ki ale pous 953 00:58:44,460 --> 00:58:51,010 50 <1337, se konsa li ale pous Lè remake ke nou jis te pran 2 chif koupe nan lis sa a. 954 00:58:51,010 --> 00:58:53,640 Se konsa, nou pa jis ap altène ant 2 bay lis yo. 955 00:58:53,640 --> 00:58:56,050 Nou jis ap kap nan kòmansman an, epi nou ap pran eleman nan 956 00:58:56,050 --> 00:59:00,270 ki nan pi piti ak Lè sa a, mete l 'nan etalaj nou an. 957 00:59:00,270 --> 00:59:04,080 Koulye a, nou te fizyone tout mwatye yo ak nou ap fè. 958 00:59:04,080 --> 00:59:07,780 >> Nenpòt kesyon sou rantre sòt? Wi? 959 00:59:07,780 --> 00:59:14,190 [Elèv] Si li la divize an gwoup diferan, poukisa pa yo jis fann li yon fwa 960 00:59:14,190 --> 00:59:19,970 epi ou gen 3 ak 2 nan yon gwoup? [Repoze nan enkonpreansibl kesyon] 961 00:59:19,970 --> 00:59:24,940 Rezon ki fè yo - se konsa kesyon an se, poukisa pa nou ka jis rantre yo nan ke premye etap apre nou fin fè yo? 962 00:59:24,940 --> 00:59:29,530 Rezon ki fè nou ka fè sa, kòmanse nan eleman yo bò gòch-pi fò nan toulède bò, 963 00:59:29,530 --> 00:59:33,040 ak Lè sa a, pran yonn ki pi piti a epi mete l nan, se ke nou konnen ke sa yo 964 00:59:33,040 --> 00:59:35,290 bay lis moun yo nan Ranje lòd. 965 00:59:35,290 --> 00:59:37,290 Se konsa, si m ap gade eleman yo bò gòch-pi fò nan tou de mwatye, 966 00:59:37,290 --> 00:59:40,490 Mwen konnen yo pwal santi yo gen eleman yo pi piti nan tout sa yo lis. 967 00:59:40,490 --> 00:59:43,930 Se konsa, mwen ka mete yo nan tach yo pi piti eleman nan lis sa a gwo. 968 00:59:43,930 --> 00:59:47,810 Nan lòt men an, si mwen gade nan 2 sa yo bay lis nan nivo nan dezyèm lòt bò a, 969 00:59:47,810 --> 00:59:51,640 50, 3, 42, 1337 ak 15, sa yo ki pa yo Ranje. 970 00:59:51,640 --> 00:59:55,770 Se konsa, si mwen gade nan 50 ak 1337, mwen pral mete 50 nan lis mwen an premye. 971 00:59:55,770 --> 01:00:00,130 Men, ki pa vrèman fè sans, paske 3 se eleman ki pi piti a soti nan tout moun sa yo. 972 01:00:00,130 --> 01:00:04,390 Se konsa, rezon ki fè la sèlman nou ka fè etap sa a konbine se paske lis nou yo ap deja klase. 973 01:00:04,390 --> 01:00:07,010 Ki se poukisa nou te jwenn desann tout wout la jouk anba a 974 01:00:07,010 --> 01:00:09,800 paske lè nou gen jis yon kantite sèl, ou konnen ke yon kantite sèl 975 01:00:09,800 --> 01:00:14,120 nan ak tèt li se deja yon lis Ranje. 976 01:00:14,120 --> 01:00:19,360 >> Nenpòt kesyon? Pa gen? 977 01:00:19,360 --> 01:00:24,260 Konpleksite? Oke, ou ka wè ke nan chak etap gen nan nimewo fen, 978 01:00:24,260 --> 01:00:27,590 epi nou kapab divize yon lis nan boutèy demi lit mwatye n fwa, 979 01:00:27,590 --> 01:00:31,700 ki se kote nou jwenn sa a n x boutèy demi lit n konpleksite. 980 01:00:31,700 --> 01:00:34,940 Epi ou pral wè ka a pi bon pou sòt unifye se n boutèy demi lit n, epi li jis pou k ap pase 981 01:00:34,940 --> 01:00:39,340 ka sa a ki pi mal la, oswa Ω a sou a, se tou n ale n. 982 01:00:39,340 --> 01:00:42,480 Yon bagay kenbe nan tèt ou. 983 01:00:42,480 --> 01:00:45,750 Deplase sou, kite la ale nan kèk dosye super debaz Mwen / O. 984 01:00:45,750 --> 01:00:48,830 Si ou te gade Goumen, ou pral avi nou te gen kèk sòt de sistèm 985 01:00:48,830 --> 01:00:51,270 ki kote ou ta ka ekri nan yon dosye log si w li nan kòd la. 986 01:00:51,270 --> 01:00:53,730 Ann gade pou wè ki jan ou ta ka fè sa. 987 01:00:53,730 --> 01:00:57,450 Oke, nou gen fprintf, ki ou ka panse a kòm printf jis, 988 01:00:57,450 --> 01:01:01,720 men jis enprime nan yon dosye olye de sa, yo e pakonsekan f la nan kòmansman an. 989 01:01:01,720 --> 01:01:07,570 Sa a sòt de kòd moute isit la, ki sa li fè se, kòm ou ta ka gen pou wè nan Goumen, 990 01:01:07,570 --> 01:01:12,310 li ale nan 2 dimansyon enprime etalaj nou yo soti kite ranje a ranje ki nimewo yo ye. 991 01:01:12,310 --> 01:01:17,850 Nan ka sa a, printf simagri soti nan tèminal ou a oswa sa nou rele randman estanda a nan seksyon. 992 01:01:17,850 --> 01:01:22,170 >> Epi, koulye a, nan ka sa a, tout sa nou dwe fè se ranplase printf ak fprintf, 993 01:01:22,170 --> 01:01:26,770 di li sa ki dosye ou vle enprime a, ak nan ka sa a li jis simagri li soti ak sa yo ki dosye 994 01:01:26,770 --> 01:01:32,230 olye pou yo enprime li soti nan tèminal ou a. 995 01:01:32,230 --> 01:01:36,500 Oke, Lè sa a, ki amèn kesyon an: Ki kote nou jwenn sa a sòt de dosye soti nan, dwa? 996 01:01:36,500 --> 01:01:39,840 Nou te pase ouvri sesyon an sa a fuction fprintf men nou pa te gen okenn lide kote li te soti nan. 997 01:01:39,840 --> 01:01:43,980 Oke, depi byen bonè nan kòd la, ki sa nou te te sa a moso nan kòd sou isit la, 998 01:01:43,980 --> 01:01:48,340 ki fondamantalman di ke louvri dosye a rele log.txt. 999 01:01:48,340 --> 01:01:53,220 Kisa nou fè aprè sa, se nou dwe asire w ke dosye a aktyèlman louvri avèk siksè. 1000 01:01:53,220 --> 01:01:57,070 Se konsa, li ta ka rate pou rezon miltip; ou pa gen ase espas sou òdinatè ou, pou egzanp. 1001 01:01:57,070 --> 01:01:59,790 Se konsa, li toujou enpòtan ou anvan ou fè nenpòt operasyon ak dosye a 1002 01:01:59,790 --> 01:02:03,300 ke nou tcheke si te ke dosye louvri avèk siksè. 1003 01:02:03,300 --> 01:02:09,330 Se konsa, sa ki yon, sa se yon agiman fopen, byen, nou ka louvri yon dosye nan plizyè fason. 1004 01:02:09,330 --> 01:02:13,510 Ki sa nou ka fè se, nou ka pase l w, ki vle di pase sou desizyon dosye a si li sòti deja, 1005 01:02:13,510 --> 01:02:18,070 Nou ka pase yon yon, kote yo kole nan fen a nan dosye a olye pou yo k prensip li, 1006 01:02:18,070 --> 01:02:22,730 oubyen nou ka presize r, ki vle di, kite la louvri dosye a kòm li-sèlman. 1007 01:02:22,730 --> 01:02:24,890 Se konsa, si pwogram nan ap eseye fè okenn chanjman nan dosye a, 1008 01:02:24,890 --> 01:02:30,140 yell nan yo e yo pa kite yo fè li. 1009 01:02:30,140 --> 01:02:33,320 Finalman, yon fwa nou ap fè ak dosye a, fè fè operasyon sou li, 1010 01:02:33,320 --> 01:02:35,860 nou bezwen asire yo ke nou fèmen dosye a. 1011 01:02:35,860 --> 01:02:38,830 Se konsa, nan fen pwogram ou an, ou yo ale nan pase yo ankò 1012 01:02:38,830 --> 01:02:42,120 sa a ranpli ke ou louvri, epi jis fèmen li. 1013 01:02:42,120 --> 01:02:44,650 Se konsa, sa a se yon bagay ki enpòtan ki di ou gen asire w ke ou fè. 1014 01:02:44,650 --> 01:02:47,180 Se konsa, sonje ou ka louvri yon dosye, lè sa a ou ka ekri nan dosye a, 1015 01:02:47,180 --> 01:02:51,270 fè operasyon nan dosye a, men Lè sa a, ou gen yo fèmen dosye a nan fen an. 1016 01:02:51,270 --> 01:02:53,270 >> Nenpòt kesyon sou dosye baz mwen / O? Wi? 1017 01:02:53,270 --> 01:02:58,050 [Kesyon elèv, enkonpreansibl] 1018 01:02:58,050 --> 01:03:02,480 Dwa isit la. Kesyon an se, ki kote sa a ranpli log.txt parèt? 1019 01:03:02,480 --> 01:03:07,890 Oke, si ou jis bay li log.txt, li kreye l 'nan anyè a menm jan ègzèkutabl la. 1020 01:03:07,890 --> 01:03:10,500 Se konsa, si you're - >> [kesyon elèv, enkonpreansibl] 1021 01:03:10,500 --> 01:03:18,830 Wi. Nan dosye a menm, oswa nan anyè a menm, jan ou rele li. 1022 01:03:18,830 --> 01:03:21,400 Koulye a, memwa, chemine, ak pil wòch. 1023 01:03:21,400 --> 01:03:23,400 Se konsa, kouman se memwa mete soti nan òdinatè a? 1024 01:03:23,400 --> 01:03:26,270 Oke, ou ka imajine memwa kòm sòt de sa a blòk isit la. 1025 01:03:26,270 --> 01:03:30,260 Ak nan memwa nou gen sa ki rele pil wòch la kole sou la, ak chemine a ki la anba isit la. 1026 01:03:30,260 --> 01:03:34,480 Ak pil wòch la ap grandi anba ak chemine a ap grandi anwo. 1027 01:03:34,480 --> 01:03:38,620 Se konsa, kòm mansyone Tommy - oh, byen, e nou gen sa yo lòt 4 segments ki m ap jwenn yo nan yon dezyèm - 1028 01:03:38,620 --> 01:03:42,890 Kòm Tommy te di anvan, ou konnen ki jan fonksyon li rele tèt yo ak rele chak lòt? 1029 01:03:42,890 --> 01:03:44,930 Yo bati sa a sòt de ankadreman chemine. 1030 01:03:44,930 --> 01:03:47,360 Byen, si apèl prensipal foo, foo vin mete sou pil la. 1031 01:03:47,360 --> 01:03:52,430 Man rele ba, ba jwenn nan mete yo sou chemine a, epi ki vin mete yo sou pil la apre. 1032 01:03:52,430 --> 01:03:57,040 Antan yo retounen, yo chak pran wete chemine a. 1033 01:03:57,040 --> 01:04:00,140 Ki sa ki chak nan sa yo kote yo ye ak memwa kenbe? 1034 01:04:00,140 --> 01:04:03,110 Oke, tèt la, ki se segman nan tèks, gen pwogram nan tèt li. 1035 01:04:03,110 --> 01:04:06,390 Se konsa, kòd machin lan, se sa ki gen, yon fwa ou konpile pwogram ou an. 1036 01:04:06,390 --> 01:04:08,520 Next, nenpòt inisyalizèd varyab mondyal. 1037 01:04:08,520 --> 01:04:12,660 >> Se konsa, ou gen varyab mondyal nan pwogram ou an, nou di tankou, yon 5 =, 1038 01:04:12,660 --> 01:04:15,260 ki vin mete nan segman sa, ak dwa anba ke, 1039 01:04:15,260 --> 01:04:18,990 w gen nenpòt uninitialized done mondyal, ki se jis Int yon, 1040 01:04:18,990 --> 01:04:20,990 men ou pa di li la egal a anyen. 1041 01:04:20,990 --> 01:04:23,870 Reyalize sa yo, se varyab mondyal, se konsa yo ap deyò nan prensipal la. 1042 01:04:23,870 --> 01:04:28,560 Se konsa, sa a vle di nenpòt ki varyab mondyal ke yo te deklare men se pa sa inisyalizèd. 1043 01:04:28,560 --> 01:04:32,310 Se konsa, sa ki nan pil wòch la? Memwa afekte lè l sèvi avèk malok, ki nou ap jwenn nan yon ti jan ti kras. 1044 01:04:32,310 --> 01:04:35,990 Epi finalman, ak chemine a ou gen nenpòt varyab lokal 1045 01:04:35,990 --> 01:04:39,950 ak nenpòt fonksyon ou ta ka rele nan nenpòt nan paramèt yo. 1046 01:04:39,950 --> 01:04:43,720 Bagay la pase, ou pa vrèman gen konnen ki sa varyab yo anviwònman fè sa, 1047 01:04:43,720 --> 01:04:46,700 men chak fwa ou kouri pwogram nan, gen yon bagay ki asosye, tankou 1048 01:04:46,700 --> 01:04:49,550 sa a se non itilizatè a nan moun ki te kouri al pwogram nan. 1049 01:04:49,550 --> 01:04:51,550 E se te pral fè sòt de nan pati anba nan. 1050 01:04:51,550 --> 01:04:54,540 An tèm de adrès memwa yo, ki se valè ekzadesimal, 1051 01:04:54,540 --> 01:04:58,170 valè yo nan kòmansman an tèt nan 0, epi yo ale tout wout la desann nan pati anba nan. 1052 01:04:58,170 --> 01:05:00,440 Nan ka sa a, si ou sou sistèm nan 32-ti jan, 1053 01:05:00,440 --> 01:05:05,390 adrès la nan pati anba a a pwal 0x, ki te swiv pa afekte, paske sa a, se 32 Bits, 1054 01:05:05,390 --> 01:05:10,890 ki se 8 bytes, ak nan ka sa a 8 bytes koresponn ak 8 chif ekzadesimal. 1055 01:05:10,890 --> 01:05:20,110 Se konsa, desann isit la w ap ale nan genyen, renmen, 0xffffff, ak 'kanpe w ap ale nan gen 0. 1056 01:05:20,110 --> 01:05:23,660 Se konsa, sa yo se endikasyon? Gen kèk nan ou gen dwa pa yo te kouvri sa a nan seksyon anvan an. 1057 01:05:23,660 --> 01:05:26,660 men nou t 'ale sou li nan konferans, konsa yon konsèy se jis yon kalite done 1058 01:05:26,660 --> 01:05:34,030 ki magazen, olye pou yo kèk sòt de valè tankou 50, li estoke adrès la nan kèk kote nan memwa. 1059 01:05:34,030 --> 01:05:36,020 Tankou sa memwa [enkonpreansibl]. 1060 01:05:36,020 --> 01:05:41,120 Se konsa, nan ka sa a, ki sa nou te ye, se nou gen yon konsèy nan yon nonb antye relatif oswa yon * Int, 1061 01:05:41,120 --> 01:05:46,210 epi li gen adrès sa a ekzadesimal nan 0xDEADBEEF. 1062 01:05:46,210 --> 01:05:50,880 >> Se konsa, sa nou genyen se, kounye a, sa a pwen konsèy nan kèk kote nan memwa, 1063 01:05:50,880 --> 01:05:56,020 ak sa a, se jis yon, valè a 50 se nan sa a kote memwa. 1064 01:05:56,020 --> 01:06:01,810 Sou kèk sistèm 32-bit, sou tout sistèm 32-ti jan, endikasyon Leve kanpe, pran Bits 32 oswa 4 bytes. 1065 01:06:01,810 --> 01:06:06,020 Men,, pou egzanp, sou yon sistèm 64-ti jan, endikasyon yo se 64 miyèt moso. 1066 01:06:06,020 --> 01:06:08,040 Se konsa, sa a, se yon bagay ou pral vle kenbe nan tèt ou. 1067 01:06:08,040 --> 01:06:12,310 Se konsa, sou yon sistèm fen-ti jan, yon konsèy se Bits fen long. 1068 01:06:12,310 --> 01:06:17,320 Endikasyon yo se sòt de difisil yo dijere san bagay sa yo siplemantè, 1069 01:06:17,320 --> 01:06:20,300 kidonk kite a ale nan yon egzanp sou alokasyon memwa dinamik. 1070 01:06:20,300 --> 01:06:25,130 Ki sa ki alokasyon dinamik memwa fè pou ou, oswa sa nou rele malok, 1071 01:06:25,130 --> 01:06:29,280 li pèmèt ou asiyen kèk sòt de done deyò nan seri a. 1072 01:06:29,280 --> 01:06:31,830 Se konsa, sa a done se sòt de plis pèmanan pou dire a nan pwogram nan. 1073 01:06:31,830 --> 01:06:36,430 Paske menm jan ou konnen, si ou deklare x andedan nan yon fonksyon, ak ki retounen fonksyon, 1074 01:06:36,430 --> 01:06:40,910 ou pa gen aksè a done yo ki te ki estoke nan x. 1075 01:06:40,910 --> 01:06:44,420 Ki sa ki endikasyon kite nou fè se moun yo kite nou sere memwa oswa magazen valè 1076 01:06:44,420 --> 01:06:46,840 nan yon segman diferan nan memwa, sètadi pil wòch la. 1077 01:06:46,840 --> 01:06:49,340 Koulye a, yon fwa nou retounen soti nan fonksyon, osi lontan ke nou gen yon konsèy 1078 01:06:49,340 --> 01:06:54,960 ak sa yo ki kote nan memwa, Lè sa a, sa nou kapab fè se nou ka jis gade nan valè yo a. 1079 01:06:54,960 --> 01:06:58,020 Se pou yo gade nan yon egzanp: Sa a se layout memwa nou ankò. 1080 01:06:58,020 --> 01:07:00,050 E nou gen fonksyon sa a, prensipal la. 1081 01:07:00,050 --> 01:07:06,870 Ki sa li fè se - oke, se konsa senp, dwa? - Int x = 5, sa se jis yon varyab sou chemine a nan prensipal la. 1082 01:07:06,870 --> 01:07:12,450 >> Nan lòt men an, kounye a nou deklare yon konsèy ki fè apèl giveMeThreeInts yo fonksyon. 1083 01:07:12,450 --> 01:07:16,800 Se konsa, kounye a nou ale nan sa a fonksyon ak nou kreye yon ankadreman chemine nouvo pou li. 1084 01:07:16,800 --> 01:07:20,440 Sepandan, nan sa a ankadreman chemine, nou deklare int * tanporèr, 1085 01:07:20,440 --> 01:07:23,210 ki nan 3 mallocs nonm antye relatif pou nou. 1086 01:07:23,210 --> 01:07:25,880 Se konsa, gwosè nan int pral ban nou konbyen bytes sa a int se, 1087 01:07:25,880 --> 01:07:29,620 ak malok ba nou ki bytes anpil nan espas sou pil la. 1088 01:07:29,620 --> 01:07:32,890 Se konsa, nan ka sa a, nou kreye ase espas pou 3 nonm antye yo, 1089 01:07:32,890 --> 01:07:36,830 ak pil wòch la se yon fason 'kanpe, ki se poukisa mwen te trase li moute pi wo. 1090 01:07:36,830 --> 01:07:42,900 Yon fwa n ap fè a, nou vini tounen moute isit la, ou bezwen sèlman 3 antye tounen, 1091 01:07:42,900 --> 01:07:47,000 ak li retounen adrès la, nan ka sa a sou ki kote memwa se. 1092 01:07:47,000 --> 01:07:51,250 Epi nou mete konsèy = switch, ak 'kanpe nou gen jis yon lòt konsèy. 1093 01:07:51,250 --> 01:07:54,550 Men, sa ki ki retounen fonksyon se anpile isit la epi disparèt. 1094 01:07:54,550 --> 01:07:59,250 Se konsa, tanporèr disparèt, men nou toujou kenbe adrès la nan kote 1095 01:07:59,250 --> 01:08:01,850 sa yo nonm antye relatif 3 se andedan nan ak elektrisite. 1096 01:08:01,850 --> 01:08:06,180 Se konsa, nan sa a seri, endikasyon yo se scoped lokalman pou ankadreman an anpile, 1097 01:08:06,180 --> 01:08:09,860 men memwa la, kote yo al gade se nan pil wòch la. 1098 01:08:09,860 --> 01:08:12,190 >> ki fè sans? 1099 01:08:12,190 --> 01:08:14,960 [Elèv] Èske ou ta kapab repete sa? >> [Jozèf] Wi. 1100 01:08:14,960 --> 01:08:20,270 Se konsa, si m 'ale tounen jis yon ti jan, ou wè sa a tanporèr afekte 1101 01:08:20,270 --> 01:08:23,500 kèk memwa sou pil wòch la moute a. 1102 01:08:23,500 --> 01:08:28,680 Se konsa, lè sa a fonksyon, giveMeThreeInts retounen, sa a chemine isit la ki pral disparèt. 1103 01:08:28,680 --> 01:08:35,819 Se avèk li nenpòt nan varyab yo, nan ka sa a, sa a konsèy ki te afekte nan anpile ankadreman. 1104 01:08:35,819 --> 01:08:39,649 Sa ki pral disparèt, men depi nou tounen tanporèr 1105 01:08:39,649 --> 01:08:46,330 epi nou mete konsèy = tanporèr, konsèy la kounye a pral nan pwen memwa nan menm nan kote kòm tanporèr te ye a. 1106 01:08:46,330 --> 01:08:50,370 Se konsa, kounye a, menm si nou pèdi tanporèr, ki konsèy lokal yo, 1107 01:08:50,370 --> 01:08:59,109 nou toujou kenbe adrès la memwa de sa ki li te lonje dwèt andedan nan ki konsèy varyab. 1108 01:08:59,109 --> 01:09:03,740 Kesyon? Ki kapab kalite yon sijè konfizyon si ou pa te ale sou li nan seksyon. 1109 01:09:03,740 --> 01:09:09,240 Nou ka, tf ou pral definitivman ale sou li ak nan kou nou ka reponn kesyon 1110 01:09:09,240 --> 01:09:11,500 nan fen sesyon an revizyon yo pou sa. 1111 01:09:11,500 --> 01:09:14,220 Men, sa a se sòt de yon sijè konplèks, ak Mwen gen plis egzanp ke yo pral montre moute 1112 01:09:14,220 --> 01:09:18,790 ki pral ede klarifye sa ki endikasyon aktyèlman yo. 1113 01:09:18,790 --> 01:09:22,500 >> Nan ka sa a, endikasyon yo se ekivalan a ranje, 1114 01:09:22,500 --> 01:09:25,229 Se konsa, mwen ka jis itilize sa a konsèy kòm menm bagay la kòm yon etalaj int. 1115 01:09:25,229 --> 01:09:29,840 Se konsa, mwen Indexing nan 0, ak chanje nonb antye relatif nan premye 1, 1116 01:09:29,840 --> 01:09:39,689 chanje nonb antye relatif nan dezyèm nan 2, ak nonb antye relatif nan 3yèm a 3. 1117 01:09:39,689 --> 01:09:44,210 Se konsa, plis sou pwent. Oke, sonje Binky. 1118 01:09:44,210 --> 01:09:48,319 Nan ka sa a nou te resevwa lajan yon konsèy, oswa nou deklare yon konsèy, 1119 01:09:48,319 --> 01:09:52,760 men okòmansman, lè m 'jis deklare yon konsèy, li pa nan lonje dwèt nan nenpòt kote nan memwa. 1120 01:09:52,760 --> 01:09:54,930 Se jis valè fatra andedan nan li. 1121 01:09:54,930 --> 01:09:56,470 Se konsa, mwen pa gen okenn lide kote sa a konsèy la lonje dwèt yo. 1122 01:09:56,470 --> 01:10:01,630 Li te gen yon adrès ki se jis ki te ranpli avèk a 0 ak nan 1 kote ke okòmansman li te deklare. 1123 01:10:01,630 --> 01:10:04,810 Mwen pa ka fè anyen ak sa-a, jouk tan mwen rele malok sou li 1124 01:10:04,810 --> 01:10:08,390 ak Lè sa a, li ban m 'yon espas ti kras sou pil wòch la kote mwen ka mete valè anndan an. 1125 01:10:08,390 --> 01:10:11,980 Lè sa a, ankò, mwen pa konnen sa ki andedan sa a memwa. 1126 01:10:11,980 --> 01:10:16,780 Se konsa, nan premye bagay mwen dwe fè se tcheke si sistèm nan te gen ase memwa 1127 01:10:16,780 --> 01:10:20,850 bay m 'tounen 1 nonb antye relatif nan plas an premye, ki se poukisa mwen fè sa tcheke. 1128 01:10:20,850 --> 01:10:25,020 Si konsèy se nil, sa vle di ke li pa t 'gen ase espas oswa kèk erè lòt ki te fèt, 1129 01:10:25,020 --> 01:10:26,320 Se konsa, mwen ta dwe sòti deyò nan pwogram mwen an. 1130 01:10:26,320 --> 01:10:29,400  Men, si li te fè reyisi, koulye a, mwen ka itilize ki konsèy 1131 01:10:29,400 --> 01:10:35,020 ak sa ki konsèy * fè, se li swiv ki kote adrès la se 1132 01:10:35,020 --> 01:10:38,480 nan kote ki valè se, epi li kouche li egal a 1. 1133 01:10:38,480 --> 01:10:41,850 Se konsa, sou isit la, nou ap tcheke si sa memwa te egziste. 1134 01:10:41,850 --> 01:10:45,380 >> Yon fwa ou konnen li egziste, ou ka mete nan li 1135 01:10:45,380 --> 01:10:50,460 ki sa valè ou vle mete nan li; nan ka sa a 1. 1136 01:10:50,460 --> 01:10:53,060 Yon fwa nou ap fè avèk li, ou bezwen gratis ki konsèy 1137 01:10:53,060 --> 01:10:57,160 paske nou bezwen jwenn tounen nan sistèm la ki memwa ke ou mande a nan plas an premye. 1138 01:10:57,160 --> 01:10:59,690 Paske òdinatè a pa konnen lè nou ap fè ak li. 1139 01:10:59,690 --> 01:11:02,510 Nan ka sa a nou ap klèman di l ', oke, nou ap fè ak ki memwa. 1140 01:11:02,510 --> 01:11:10,780 Si kèk pwosesis lòt bezwen li, gen kèk lòt pwogram bezwen li, yo santi lib yo ale pi devan epi pran li. 1141 01:11:10,780 --> 01:11:15,110 Ki sa nou kapab tou fè se nou ka jis jwenn adrès la nan varyab lokal yo nan seri a. 1142 01:11:15,110 --> 01:11:19,080 X Se konsa, int se anndan ankadreman an anpile nan prensipal la. 1143 01:11:19,080 --> 01:11:23,060 Men, lè nou itilize sa a Comercial, sa a ak operatè, ki sa li fè se 1144 01:11:23,060 --> 01:11:27,310 li pran x, ak x se sèlman kèk done nan memwa yo, men li gen yon adrès. 1145 01:11:27,310 --> 01:11:33,790 Li nan ki sitiye kèk kote. Se konsa, lè ou rele & x, ki sa sa a fè se li ban nou adrès ki nan x. 1146 01:11:33,790 --> 01:11:38,430 Pa fè sa, n ap fè pwen konsèy kote x se nan memwa. 1147 01:11:38,430 --> 01:11:41,710 Koulye a, nou jis yon bagay tankou * x, nou pwal jwenn 5 tounen. 1148 01:11:41,710 --> 01:11:43,820 Se yon zetwal la te rele dereferencing li. 1149 01:11:43,820 --> 01:11:46,640 Ou menm, swiv adrès la epi ou jwenn valè a nan li ki estoke la. 1150 01:11:51,000 --> 01:11:53,310 >> Nenpòt kesyon? Wi? 1151 01:11:53,310 --> 01:11:56,500 [Elèv] Si w pa fè bagay la 3-pwenti, li toujou konpile? 1152 01:11:56,500 --> 01:11:59,490 Wi. Si w pa fè bagay la 3-konsèy, li te toujou ale nan konpile, 1153 01:11:59,490 --> 01:12:02,720 men mwen pral montre w ki sa ki rive nan yon dezyèm, epi san nou fè sa, 1154 01:12:02,720 --> 01:12:04,860 sa a, se sa nou rele yon fwit memwa. Ou pa ap bay sistèm nan 1155 01:12:04,860 --> 01:12:07,850 fè bak memwa li yo, se konsa apre yon pandan y ap pwogram nan ki pral akimile 1156 01:12:07,850 --> 01:12:10,940 memwa ke li pa la lè l sèvi avèk, ak pa gen anyen lòt ka itilize l. 1157 01:12:10,940 --> 01:12:15,750 Si ou te janm wè Firefox ak 1.5 milyon dola kilookte sou òdinatè ou, 1158 01:12:15,750 --> 01:12:17,840 nan manadjè a travay, sa a, se sa k ap pase sou. 1159 01:12:17,840 --> 01:12:20,760 Ou gen yon fwit memwa nan pwogram nan yo ke yo pa ap manyen. 1160 01:12:23,080 --> 01:12:26,240 Se konsa, kouman fè sa ki konsèy travay aritmetik? 1161 01:12:26,240 --> 01:12:29,480 Oke, aritmetik konsèy se sòt de Indexing tankou nan yon etalaj. 1162 01:12:29,480 --> 01:12:36,370 Nan ka sa a, mwen gen yon konsèy, ak sa m 'fè se mwen fè pwen konsèy eleman nan premye 1163 01:12:36,370 --> 01:12:42,100 sa a etalaj nan 3 nonm antye relatif ki mwen te resevwa lajan. 1164 01:12:42,100 --> 01:12:46,670 Se konsa, kounye a sa m 'fè, zetwal konsèy jis chanje eleman nan premye nan lis la. 1165 01:12:46,670 --> 01:12:49,140 Star konsèy +1 pwen sou isit la. 1166 01:12:49,140 --> 01:12:53,140 Se konsa, konsèy se sou isit la, konsèy +1 se sou isit la, konsèy +2 se sou isit la. 1167 01:12:53,140 --> 01:12:56,610 >> Se konsa, jis ajoute 1 se menm bagay la kòm k ap deplase ansanm sa a etalaj. 1168 01:12:56,610 --> 01:12:59,880 Ki sa nou fè se, lè nou fè konsèy +1 ou jwenn adrès lan sou isit la, 1169 01:12:59,880 --> 01:13:04,180 ak yo nan lòd jwenn valè a nan isit la, ou mete yon etwal nan soti nan ekspresyon nan tout 1170 01:13:04,180 --> 01:13:05,990 dèreferans li. 1171 01:13:05,990 --> 01:13:09,940 Se konsa, nan ka sa a, mwen mete kote nan premye nan sa a etalaj nan 1, 1172 01:13:09,940 --> 01:13:13,970 dezyèm kote a 2, ak twazyèm kote a 3. 1173 01:13:13,970 --> 01:13:18,180 Lè sa a, sa m ap fè sou isit la se mwen enprime konsèy nou an +1, 1174 01:13:18,180 --> 01:13:19,970 ki jis ki ban m '2. 1175 01:13:19,970 --> 01:13:23,650 Koulye a, mwen incrementing konsèy, se konsa konsèy egal konsèy +1, 1176 01:13:23,650 --> 01:13:26,780 ki deplase li pi devan. 1177 01:13:26,780 --> 01:13:30,810 Se konsa, kounye a si mwen enprime soti konsèy +1, konsèy +1 se kounye a 3, 1178 01:13:30,810 --> 01:13:33,990 ki nan ka sa a simagri soti 3. 1179 01:13:33,990 --> 01:13:36,560 Ak yo nan lòd yo gratis yon bagay, konsèy la ke mwen bay li 1180 01:13:36,560 --> 01:13:40,540 yo dwe montre nan kòmansman an nan etalaj la ki m 'te tounen soti nan malok. 1181 01:13:40,540 --> 01:13:43,430 Se konsa, nan ka sa a, si m 'te rele 3 dwa isit la, sa pa ta dwe gen dwa, 1182 01:13:43,430 --> 01:13:45,070 paske li nan nan mitan an nan etalaj la. 1183 01:13:45,070 --> 01:13:48,820 Mwen dwe fè soustraksyon pou li ale nan kote orijinal la 1184 01:13:48,820 --> 01:13:50,420 premye plas nan premye anvan mwen ka libere li. 1185 01:13:56,300 --> 01:13:58,450 Se konsa, isit la nan yon egzanp pi bone. 1186 01:13:58,450 --> 01:14:03,360 Nan ka sa a, nou ap allocation 7 karaktè nan yon etalaj karaktè. 1187 01:14:03,360 --> 01:14:06,480 >> Ak nan ka sa a sa n ap fè se nou ap loupin plis pase 6 an premye nan yo, 1188 01:14:06,480 --> 01:14:09,900 epitou n ap mete yo nan Z. 1189 01:14:09,900 --> 01:14:13,350 Se konsa, pou int mwen = 0, mwen> 6, mwen + +, 1190 01:14:13,350 --> 01:14:16,220 Se konsa, konsèy + mwen pral jis ba nou, nan ka sa a, 1191 01:14:16,220 --> 01:14:20,860 konsèy,, +1 konsèy, +2 konsèy konsèy +3, ak sou sa ak pou fè nan riban an. 1192 01:14:20,860 --> 01:14:24,040 Ki sa ki li pral fè se li vin ke adrès, dereferences li jwenn valè a, 1193 01:14:24,040 --> 01:14:27,440 ak chanjman ki valè nan yon Z. 1194 01:14:27,440 --> 01:14:30,350 Lè sa a, nan fen a sonje sa a se yon fisèl, dwa? 1195 01:14:30,350 --> 01:14:33,560 Tout strings gen fini ak karaktè a nil témine. 1196 01:14:33,560 --> 01:14:38,620 Se konsa, sa m 'fè a se nan konsèy 6 Mwen mete nil Terminator pèsonaj la pous 1197 01:14:38,620 --> 01:14:43,980 Epi, koulye a sa m ap fondamantalman fè sou isit la ap aplike printf pou yon fisèl, dwa? 1198 01:14:43,980 --> 01:14:46,190 >> Se konsa, lè printf kounye a lè li nan te rive jwenn nan fen yon fisèl? 1199 01:14:46,190 --> 01:14:48,230 Lè li frape pèsonaj la nil témine. 1200 01:14:48,230 --> 01:14:52,030 Se konsa, nan ka sa a, pwen orijinal konsèy mwen nan konmansman an nan sa a etalaj. 1201 01:14:52,030 --> 01:14:56,410 Mwen enprime karaktè nan premye deyò. Mwen demenaje li sou yon sèl. 1202 01:14:56,410 --> 01:14:58,420 Mwen enprime ke karaktè deyò. Mwen deplase li sou. 1203 01:14:58,420 --> 01:15:02,180 Apre sa, mwen kontinye ap fè sa, jouk tan mwen rive nan fen an. 1204 01:15:02,180 --> 01:15:07,750 Epi, koulye a konsèy la * fen pral dèreferans sa a epi pou yo jwenn nil pèsonaj la témine tounen. 1205 01:15:07,750 --> 01:15:11,780 Se konsa, pandan y ap riban mwen kouri sèlman lè ke valè se pa pèsonaj la nil témine. 1206 01:15:11,780 --> 01:15:13,770 Se konsa, koulye a, mwen sòti soti nan sa a riban. 1207 01:15:18,780 --> 01:15:21,180 Se konsa, si mwen fè soustraksyon 6 sa a soti nan konsèy, 1208 01:15:21,180 --> 01:15:22,860 M 'ale tounen tout wout la nan konmansman an. 1209 01:15:22,860 --> 01:15:27,880 Sonje byen, m ap fè sa paske mwen gen pou yo ale nan kòmansman an yo nan lòd yo libere li. 1210 01:15:27,880 --> 01:15:30,270 >> Se konsa, mwen konnen sa ki te yon anpil. Èske gen nenpòt kesyon? 1211 01:15:30,270 --> 01:15:31,870 Tanpri, se wi? 1212 01:15:31,870 --> 01:15:36,610 [Enkonpreansibl kesyon Elèv] 1213 01:15:36,610 --> 01:15:38,190 Èske ou ka di ke pi fò? Sorry. 1214 01:15:38,190 --> 01:15:44,140 [Elèv] Sou glise nan dènye dwa ou anvan ou libere konsèy la, 1215 01:15:44,140 --> 01:15:47,300 ki kote yo te ou aktyèlman chanje valè la nan konsèy la? 1216 01:15:47,300 --> 01:15:50,370 [Jozèf] Se konsa, isit la menm. >> [Elèv] Oh, oke. 1217 01:15:50,370 --> 01:15:51,890 [Jozèf] Se konsa, mwen gen yon konsèy mwens mwens, dwat, 1218 01:15:51,890 --> 01:15:54,140 ki deplase bagay la tounen yon sèl, ak Lè sa a, mwen libere l ', 1219 01:15:54,140 --> 01:15:57,000 paske sa a konsèy la gen yo dwe pwente nan konmansman an nan etalaj la. 1220 01:15:57,000 --> 01:16:00,420 [Elèv] Men, ki pa ta dwe bezwen te ou te sispann apre sa liy. 1221 01:16:00,420 --> 01:16:03,130 [Jozèf] Se konsa, si mwen te sispann apre sa a, sa a ta dwe konsidere kòm yon fwit memwa, 1222 01:16:03,130 --> 01:16:04,810 paske mwen pa t 'kouri gratis la. 1223 01:16:04,810 --> 01:16:11,290 [Elèv] Mwen [enkonpreansibl] apre twa liy ki premye ki kote ou te gen konsèy +1 [enkonpreansibl]. 1224 01:16:11,290 --> 01:16:13,140 [Jozèf] uh-huh. Se konsa, sa ki nan kesyon an genyen? 1225 01:16:13,140 --> 01:16:14,780 Sorry. Non, pa gen okenn. Ale non, ale, tanpri. 1226 01:16:14,780 --> 01:16:16,870 [Elèv] Se konsa, ou pa ap chanje valè a endikasyon. 1227 01:16:16,870 --> 01:16:19,130 Ou pa ta yo te oblije fè konsèy mwens mwens. 1228 01:16:19,130 --> 01:16:19,730 [Jozèf] Wi, egzakteman. 1229 01:16:19,730 --> 01:16:21,890 Se konsa, lè m 'fè konsèy +1 ak konsèy +2, 1230 01:16:21,890 --> 01:16:24,410 Mwen pa fè konsèy egal konsèy +1. 1231 01:16:24,410 --> 01:16:27,260 Se konsa, konsèy la jis rete lonje dwèt nan kòmansman an nan etalaj la. 1232 01:16:27,260 --> 01:16:31,460 Li nan sèlman lè m 'fè plis plis ke li kouche valè a tounen andedan konsèy la, 1233 01:16:31,460 --> 01:16:33,550 ke li aktyèlman deplase sa a ansanm. 1234 01:16:36,860 --> 01:16:37,780 Tout dwa. 1235 01:16:40,550 --> 01:16:42,030 Plis kesyon? 1236 01:16:44,680 --> 01:16:47,790 >> Yon fwa ankò, si sa a se sòt de boulvèsan, sa a yo pral kouvri nan sesyon. 1237 01:16:47,790 --> 01:16:50,710 Mande parèy ansèyman ou sou li, epi nou ka reponn kesyon nan fen an. 1238 01:16:53,510 --> 01:16:56,600 Epi anjeneral nou pa renmen fè bagay sa a mwens. 1239 01:16:56,600 --> 01:16:59,760 Sa a gen bezwen m 'kenbe tras de konbyen lajan mwen te konpanse nan etalaj la. 1240 01:16:59,760 --> 01:17:04,520 Se konsa, an jeneral, sa a se jis yo eksplike travay ki jan aritmetik konsèy. 1241 01:17:04,520 --> 01:17:07,970 Men, sa ki anjeneral nou renmen fè se nou renmen yo kreye yon kopi konsèy la, 1242 01:17:07,970 --> 01:17:11,640 ak Lè sa a, nou pral sèvi ak sa kopi lè n ap deplase nan fisèl la. 1243 01:17:11,640 --> 01:17:14,660 Se konsa, nan sa yo ka ou itilize kopi a nan enprime fisèl la an antye, 1244 01:17:14,660 --> 01:17:19,040 men nou pa dwe fè tankou konsèy mwens 6 oswa kenbe tras nan konbyen lajan nou te deplase nan sa a, 1245 01:17:19,040 --> 01:17:22,700 jis paske nou konnen ki pwen orijinal nou toujou pwente nan konmansman an nan lis la 1246 01:17:22,700 --> 01:17:25,340 ak tou sa ki nou chanje sa te kopi. 1247 01:17:25,340 --> 01:17:28,250 Se konsa, an jeneral, chanje kopi konsèy orijinal ou yo. 1248 01:17:28,250 --> 01:17:32,350 pa eseye sòt de tankou - don't chanje kopi orijinal yo. 1249 01:17:32,350 --> 01:17:35,290 Eseye chanje kopi yo sèlman nan orijinal ou yo. 1250 01:17:41,540 --> 01:17:44,870 Se konsa, ou remake lè nou pase fisèl la nan printf 1251 01:17:44,870 --> 01:17:48,990 ou pa bezwen mete yon etwal la devan li tankou nou te fè sa ak tout dereferences yo lòt, dwa? 1252 01:17:48,990 --> 01:17:54,180 Se konsa, si ou enprime soti fisèl la nan tout% espere se yon adrès, 1253 01:17:54,180 --> 01:17:57,610 ak nan ka sa a yon konsèy oswa nan ka sa a tankou yon etalaj de karaktè. 1254 01:17:57,610 --> 01:18:00,330 >> Karaktè, Char * s, ak ranje yo se menm bagay la. 1255 01:18:00,330 --> 01:18:03,690 Pwente se pèsonaj, ak ranje karaktè yo se menm bagay la. 1256 01:18:03,690 --> 01:18:05,720 Se konsa, tout sa nou dwe fè se pase nan konsèy. 1257 01:18:05,720 --> 01:18:08,150 Nou pa bezwen pase nan tankou konsèy * oswa yon bagay tankou sa. 1258 01:18:13,110 --> 01:18:14,930 Se konsa, ranje ak pwent yo se menm bagay la. 1259 01:18:14,930 --> 01:18:19,160 Lè w ap fè yon bagay tankou x [y] sou isit la pou yon etalaj, 1260 01:18:19,160 --> 01:18:21,960 ki sa li la ap fè anba kapo machin lan se li nan di, oke, sa se yon etalaj karaktè, 1261 01:18:21,960 --> 01:18:23,690 Se konsa li yon konsèy. 1262 01:18:23,690 --> 01:18:26,510 Se konsa, x yo se menm bagay la, 1263 01:18:26,510 --> 01:18:28,650 ak sa ki sa li fè se li ajoute y x, 1264 01:18:28,650 --> 01:18:31,820 ki se menm bagay la kòm fè pi devan nan memwa ki anpil. 1265 01:18:31,820 --> 01:18:34,930 Epi, koulye a x + y ap ban nou kèk sòt de adrès, 1266 01:18:34,930 --> 01:18:37,570 epi nou dèreferans adrès la oubyen swiv flèch la 1267 01:18:37,570 --> 01:18:41,640 nan kote ki kote nan memwa se ak nou jwenn valè a soti nan ki kote nan memwa. 1268 01:18:41,640 --> 01:18:43,720 Se konsa,, se konsa sa yo de yo se egzakteman menm bagay la. 1269 01:18:43,720 --> 01:18:45,840 Se jis nan yon sik Massachusetts Institute of Technology. 1270 01:18:45,840 --> 01:18:48,090 Yo fè menm bagay la. Yo ap jis syntactics diferan pou chak lòt. 1271 01:18:51,500 --> 01:18:57,590 >> Se konsa, sa ki kapab ale mal ak endikasyon? Tankou, yon anpil. Oke. Se konsa, move bagay. 1272 01:18:57,590 --> 01:19:02,410 Gen kèk move bagay ou ka fè yo pa tcheke si rele malok ou retounen nil, dwa? 1273 01:19:02,410 --> 01:19:06,560 Nan ka sa a, mwen mande sistèm lan ban m '- ki sa ki ladan nimewo? 1274 01:19:06,560 --> 01:19:11,200 Menm jan ak 4 2 milya fwa, paske gwosè a nan yon nonb antye relatif se 4 bytes. 1275 01:19:11,200 --> 01:19:13,810 Mwen mande l 'pou tankou 8 milya dola bytes. 1276 01:19:13,810 --> 01:19:17,270 Natirèlman òdinatè mwen pa pral pou kapab ban m 'ki tounen memwa anpil. 1277 01:19:17,270 --> 01:19:20,960 E nou pa t 'tcheke si sa a se nil, se konsa lè nou eseye dèreferans li sou la - 1278 01:19:20,960 --> 01:19:24,270 swiv flèch la nan kote li pral - nou pa gen ke memwa. 1279 01:19:24,270 --> 01:19:27,150 Sa a se sa nou rele dereferencing yon konsèy nil. 1280 01:19:27,150 --> 01:19:29,710 Lè sa a esansyèlman lakòz ou segfault. 1281 01:19:29,710 --> 01:19:31,790 Sa a se youn nan fason ki ou ka segfault. 1282 01:19:34,090 --> 01:19:38,090 Lòt move bagay ou ka fè - oh byen. 1283 01:19:38,090 --> 01:19:40,650 Ki te dereferencing yon konsèy nil. Oke. 1284 01:19:40,650 --> 01:19:45,160 Lòt move bagay - byen, ranje ke ou jis mete yon ti tchèk nan gen 1285 01:19:45,160 --> 01:19:46,980 ki cheke si konsèy la se nil 1286 01:19:46,980 --> 01:19:51,000 ak sòti soti nan pwogram nan si li sa fèt ki malok retounen yon konsèy nil. 1287 01:19:55,110 --> 01:19:59,850 Sa a se komik la xkcd. Moun yo konprann li kounye a. Sòt de. 1288 01:20:06,120 --> 01:20:09,350 >> Se konsa, memwa. Apre sa, mwen te ale sou sa a. 1289 01:20:09,350 --> 01:20:12,000 Nou ap rele malok nan yon riban, men chak fwa nou rele malok 1290 01:20:12,000 --> 01:20:14,370 n ap pèdi tras nan kote sa a konsèy la montre a, 1291 01:20:14,370 --> 01:20:15,750 paske nou ap clobbering li. 1292 01:20:15,750 --> 01:20:18,410 Se konsa,, rele inisyal la malok ki ban m 'memwa sou isit la. 1293 01:20:18,410 --> 01:20:19,990 Endikasyon konsèy mwen an sa. 1294 01:20:19,990 --> 01:20:23,020 Koulye a, mwen pa libere li, se konsa koulye a, mwen rele malok ankò. 1295 01:20:23,020 --> 01:20:26,070 Kounye a li lonje dwèt sou isit la. Koulye a, memwa mwen an ap lonje dwèt sou isit la. 1296 01:20:26,070 --> 01:20:27,640 Montre sou isit la. Montre sou isit la. 1297 01:20:27,640 --> 01:20:31,820 Men, mwen te pèdi tras nan adrès ki nan tout memwa a sou isit la ke mwen resevwa lajan. 1298 01:20:31,820 --> 01:20:35,100 Se konsa, koulye a, mwen pa gen okenn referans a yo ankò. 1299 01:20:35,100 --> 01:20:37,230 Se konsa, mwen pa ka libere yo deyò nan sa a riban. 1300 01:20:37,230 --> 01:20:39,390 Se konsa, yo nan lòd yo ranje yon bagay tankou sa a, 1301 01:20:39,390 --> 01:20:42,250 si ou bliye memwa gratis, epi ou jwenn sa a koule memwa, 1302 01:20:42,250 --> 01:20:45,810 Ou gen libere memwa a andedan sa a riban yon fwa ou ap fè ak li. 1303 01:20:45,810 --> 01:20:51,400 Bon, sa a se sa ki pase. Mwen konnen anpil nan ou rayi sa a. 1304 01:20:51,400 --> 01:20:55,270 Men koulye a, - ye! Ou jwenn tankou 44,000 kilookte. 1305 01:20:55,270 --> 01:20:57,110 Se konsa, ou libere li nan fen riban a, 1306 01:20:57,110 --> 01:20:59,770 Epi sa a, pral jis libere memwa a chak fwa. 1307 01:20:59,770 --> 01:21:03,620 Esansyèlman, pwogram ou a pa gen yon fwit memwa ankò. 1308 01:21:03,620 --> 01:21:08,150 >> Epi, koulye a yon lòt bagay ou ka fè se libere kèk memwa ke ou te mande pou de fwa. 1309 01:21:08,150 --> 01:21:11,060 Nan ka sa a, ou yon bagay malok, ou chanje valè li yo. 1310 01:21:11,060 --> 01:21:13,140 Ou libere li yon fwa paske ou di ou t fè ak li. 1311 01:21:13,140 --> 01:21:14,940 Men, lè sa a nou te libere l 'ankò. 1312 01:21:14,940 --> 01:21:16,730 Sa a se yon bagay ki trè move. 1313 01:21:16,730 --> 01:21:18,820 Li pa nan ale nan okòmansman segfault, 1314 01:21:18,820 --> 01:21:23,350 men apre yon pandan y ap sa sa a se doub libere sa a move estrikti pil ou an, 1315 01:21:23,350 --> 01:21:27,200 epi ou pral aprann yon ti jan plis sou sa si w deside pran yon klas tankou CS61. 1316 01:21:27,200 --> 01:21:30,000 Men, esansyèlman apre yon pandan y ap òdinatè ou a pral nan jwenn konfonn 1317 01:21:30,000 --> 01:21:33,010 sou sa ki kote memwa yo ki kote ak ki kote li nan ki estoke - 1318 01:21:33,010 --> 01:21:34,800 kote done ki estoke nan memwa. 1319 01:21:34,800 --> 01:21:38,080 Se konsa, libere yon konsèy de fwa se yon move bagay ke ou pa vle fè. 1320 01:21:38,080 --> 01:21:41,600 >> Lòt bagay ki kapab ale mal se pa sa lè l sèvi avèk sizof. 1321 01:21:41,600 --> 01:21:44,460 Se konsa, nan ka sa a ou malok 8 bytes, 1322 01:21:44,460 --> 01:21:46,700 ak sa a, se menm bagay la kòm de nonb antye, dwa? 1323 01:21:46,700 --> 01:21:49,580 Se konsa, sa a, se parfe ki an sekirite, men sa li ye? 1324 01:21:49,580 --> 01:21:52,160 Bon, kòm Lucas te pale osijè de sou diferan architectures, 1325 01:21:52,160 --> 01:21:54,220 nonm antye relatif yo se ki gen longè diferan. 1326 01:21:54,220 --> 01:21:57,970 Se konsa, sou aparèy la ke w ap itilize, nonm antye relatif yo se apeprè 4 bytes, 1327 01:21:57,970 --> 01:22:02,370 men sou kèk sistèm lòt yo ka 8 bytes oswa yo ka 16 bytes. 1328 01:22:02,370 --> 01:22:05,680 Se konsa, si mwen jis itilize nimewo sa a sou isit la, 1329 01:22:05,680 --> 01:22:07,310 pwogram sa a ta dwe travay sou aparèy la, 1330 01:22:07,310 --> 01:22:10,360 men li pa a pral asiyen ase memwa sou kèk sistèm lòt. 1331 01:22:10,360 --> 01:22:14,020 Nan ka sa a, sa a se ki sa ki operatè a sizof itilize pou. 1332 01:22:14,020 --> 01:22:16,880 Lè nou rele sizof (Int), ki sa sa a fè, se 1333 01:22:16,880 --> 01:22:21,910  li ba nou gwosè a nan yon nonb antye relatif sou sistèm nan ke pwogram nan ap kouri. 1334 01:22:21,910 --> 01:22:25,490 Se konsa, nan ka sa a, sizof (Int) ap retounen 4 sou yon bagay tankou aparèy elektrik la, 1335 01:22:25,490 --> 01:22:29,980 e kounye a, volonte sa-a 4 * 2, ki se 8, 1336 01:22:29,980 --> 01:22:32,330 ki se jis kantite lajan an nan espas ki nesesè pou de nonb antye. 1337 01:22:32,330 --> 01:22:36,710 Sou yon sistèm diferan, si yon int, se tankou 16 bytes oswa 8 bytes, 1338 01:22:36,710 --> 01:22:39,380 li jis ale nan retounen bytes ase nan magazen ki kantite lajan. 1339 01:22:41,830 --> 01:22:45,310 >> Epi finalman, strukt. 1340 01:22:45,310 --> 01:22:48,340 Se konsa, si ou te vle nan magazen yon tablo sudoku nan memwa, ki jan ta ka nou fè sa? 1341 01:22:48,340 --> 01:22:51,570 Ou ta ka panse a tankou yon varyab pou premye bagay la, 1342 01:22:51,570 --> 01:22:53,820 yon varyab pou bagay la dezyèm fwa, yon varyab pou bagay la twazyèm, 1343 01:22:53,820 --> 01:22:56,420 yon varyab pou bagay nan katriyèm - move, dwa? 1344 01:22:56,420 --> 01:23:00,750 Se konsa, yon sèl amelyorasyon ou ka fè sou tèt sa a se fè yon 9 x 9 etalaj. 1345 01:23:00,750 --> 01:23:04,480 Sa a bon, men sa ki si ou te vle asosye lòt bagay avèk tablo a sudoku 1346 01:23:04,480 --> 01:23:06,490 renmen sa difikilte pou an nan tablo a se, 1347 01:23:06,490 --> 01:23:11,740 oswa, pou egzanp, sa ki nòt ou a se, oswa konbyen tan li la pran w rezoud sa a tablo? 1348 01:23:11,740 --> 01:23:14,970 Oke, sa ou ka fè se ou kapab kreye yon struct. 1349 01:23:14,970 --> 01:23:18,910 Sa mwen ap di la a se fondamantalman mwen defini estrikti sa a sou isit la, 1350 01:23:18,910 --> 01:23:23,230 ak mwen defini yon tablo sudoku ki gen ladann yon tablo ki se 9 x 9. 1351 01:23:23,230 --> 01:23:26,650 >> Epi ki sa li gen li gen endikasyon nan non an nan nivo la. 1352 01:23:26,650 --> 01:23:30,730 Li tou te gen x ak y yo, ki se koòdone pou kote m'a ye kounye a. 1353 01:23:30,730 --> 01:23:35,980 Li tou te gen tan pase [enkonpreansibl], epi li gen kantite total mouvman mwen te antre byen lwen tèlman. 1354 01:23:35,980 --> 01:23:40,010 Se konsa, nan ka sa a, mwen ka gwoup yon pakèt antye nan done nan jis estrikti yon sèl 1355 01:23:40,010 --> 01:23:42,790 olye pou yo gen li tankou vole alantou an tankou varyab diferan 1356 01:23:42,790 --> 01:23:44,540 ke mwen pa ka vrèman kenbe tras nan. 1357 01:23:44,540 --> 01:23:49,720 Lè sa a pèmèt nou gen jis bèl sentaks pou sòt de indican bagay diferan andedan sa a struct. 1358 01:23:49,720 --> 01:23:53,430 Mwen te jis ka fè board.board, ak mwen jwenn tablo a sudoku tounen. 1359 01:23:53,430 --> 01:23:56,320 Board.level, mwen jwenn kòman li kapab difisil se. 1360 01:23:56,320 --> 01:24:00,540 Board.x ak board.y ban m 'koòdone pou kote m' te ka nan tablo a. 1361 01:24:00,540 --> 01:24:04,730 Se konsa, mwen gen aksè nan sa nou rele jaden an struct la. 1362 01:24:04,730 --> 01:24:08,840 Sa a defini sudokuBoard, ki se yon kalite ke mwen gen. 1363 01:24:08,840 --> 01:24:14,800 Epi, koulye a nou isit la. Mwen gen yon varyab ki rele "tablo" nan sudokuBoard kalite. 1364 01:24:14,800 --> 01:24:18,820 Se konsa, koulye a, mwen kapab jwenn aksè nan tout jaden yo ki fè moute estrikti sa a sou isit la. 1365 01:24:20,830 --> 01:24:22,450 >> Nenpòt kesyon sou strukt? Wi? 1366 01:24:22,450 --> 01:24:25,890 [Elèv] Pou int x, y, ou te deklare tou de sou yon sèl liy? >> [Jozèf] uh-huh. 1367 01:24:25,890 --> 01:24:27,400 [Elèv] Se konsa, ou ta ka jis fè sa ak tout nan yo? 1368 01:24:27,400 --> 01:24:31,200 Renmen nan x, fwa vigil y ke total? 1369 01:24:31,200 --> 01:24:34,460 [Jozèf] Wi, ou ta ka definitivman fè sa, men rezon ki fè mwen mete x ak y sou liy lan menm - 1370 01:24:34,460 --> 01:24:36,330 ansanm ak kesyon an se poukisa nou ka jis fè sa a sou liy lan menm? 1371 01:24:36,330 --> 01:24:38,600 Poukisa nou pa nou jis mete tout moun sa yo sou liy lan menm se 1372 01:24:38,600 --> 01:24:42,090 x ak y yo ki gen rapò ak chak lòt, 1373 01:24:42,090 --> 01:24:44,780 ak sa a se jis estilitikman plis kòrèk, nan yon sans, 1374 01:24:44,780 --> 01:24:46,600 paske li nan gwoupman de bagay sou liy lan menm 1375 01:24:46,600 --> 01:24:49,340 ki sòt tankou nan gen rapò ak menm bagay la. 1376 01:24:49,340 --> 01:24:51,440 Apre sa, mwen jis fann sa yo apa. Se jis nan yon style bagay sa yo. 1377 01:24:51,440 --> 01:24:53,720 Li woulant pa fè okenn diferans tou. 1378 01:24:58,150 --> 01:24:59,270 Nenpòt lòt kesyon sou strukt? 1379 01:25:03,030 --> 01:25:06,620 Ou ka defini yon Pokédex ak yon struct. 1380 01:25:06,620 --> 01:25:11,720 Yon Pokemon gen yon nimewo ak yon li gen yon lèt, yon mèt kay, yon kalite. 1381 01:25:11,720 --> 01:25:16,990 Lè sa a, si ou gen yon etalaj de Pokemon, ou ka fè moute yon Pokédex, dwa? 1382 01:25:16,990 --> 01:25:20,810 Okay, fre. Se konsa, kesyon sou strukt. Moun sa yo se ki gen rapò ak strukt. 1383 01:25:20,810 --> 01:25:25,270 >> Finalman, gdb. Ki sa ki gdb kite ou fè? Li pèmèt ou dbug pwogram ou an. 1384 01:25:25,270 --> 01:25:27,650 Men, si ou pa te itilize gdb, mwen ta rekòmande l ap gade kout la 1385 01:25:27,650 --> 01:25:31,250 ak jis pral sou sa ki gdb se, ki jan w ap travay avèk li, ki jan ou ta ka sèvi ak li, 1386 01:25:31,250 --> 01:25:32,900 ak tès l 'sou yon pwogram nan. 1387 01:25:32,900 --> 01:25:37,400 Se konsa, sa ki gdb pèmèt ou fè se li pèmèt pran yon poz [enkonpreansibl] moute pwogram nan ou 1388 01:25:37,400 --> 01:25:38,920 ak yon liy pratik. 1389 01:25:38,920 --> 01:25:42,600 Pou egzanp, mwen vle ekzekisyon poz nan tankou liy 3 nan pwogram m 'yo, 1390 01:25:42,600 --> 01:25:46,010 ak pandan y ap Mwen nan liy 3 Mwen ka enprime soti tout valè yo ki la. 1391 01:25:46,010 --> 01:25:49,710 Se konsa, sa nou rele tankou s'arrête nan yon liy 1392 01:25:49,710 --> 01:25:52,350 se nou rele sa a mete yon breakpoint nan ki liy 1393 01:25:52,350 --> 01:25:55,920 ak Lè sa a, nou ka enprime soti varyab yo nan eta a nan pwogram nan nan moman sa. 1394 01:25:55,920 --> 01:25:58,990 >> Nou ka Lè sa a, apati de la etap nan pwogram nan liy-pa-liy. 1395 01:25:58,990 --> 01:26:03,200 Lè sa a, nou kapab gade eta a nan chemine a nan moman an. 1396 01:26:03,200 --> 01:26:08,600 Se konsa, yo nan lòd yo itilize gdb, ki sa nou fè se nou rele rezone sou dosye a C, 1397 01:26:08,600 --> 01:26:11,290 men nou dwe pase l ggdb a-drapo. 1398 01:26:11,290 --> 01:26:15,850 E yon fwa nou ap fè ak ki nou jis kouri gdb nan dosye a pwodiksyon rezilta. 1399 01:26:15,850 --> 01:26:18,810 Se konsa, nou jwenn kèk mas tankou nan tèks tankou sa a, 1400 01:26:18,810 --> 01:26:21,990 men vrèman tout sa ou dwe fè se tape nan kòmandman nan kòmansman an. 1401 01:26:21,990 --> 01:26:24,250 Kraze prensipal mete yon breakpoint nan prensipal la. 1402 01:26:24,250 --> 01:26:28,470 Lis 400 bay lis liy ki nan kòd alantou liy 400. 1403 01:26:28,470 --> 01:26:31,410 Se konsa, nan ka sa a ou ka jis gade toutotou epi di, o, 1404 01:26:31,410 --> 01:26:34,360 Mwen vle mete yon breakpoint nan liy 397, ki se liy sa a, 1405 01:26:34,360 --> 01:26:37,170 ak Lè sa a, pwogram ou an kouri nan ki etap ak li a pral kase. 1406 01:26:37,170 --> 01:26:41,120 Li nan ale nan pran yon poz la, epi ou ka enprime soti, pou egzanp, valè de wo oswa ki ba. 1407 01:26:41,120 --> 01:26:46,410 Se konsa, gen yon pakèt moun sou kòmandman ou bezwen konnen, 1408 01:26:46,410 --> 01:26:48,660 ak sa a Slideshow pral moute sou sou sit entènèt la, 1409 01:26:48,660 --> 01:26:54,000 Se konsa, si ou jis vle referans sa yo oswa renmen mete yo sou ti papye akòdeyon ou a, santi yo lib. 1410 01:26:54,000 --> 01:27:00,650 >> Fre. Sa yo ki te kwiz Revizyon 0, epi nou pral bwa ozalantou si ou gen nenpòt kesyon. 1411 01:27:00,650 --> 01:27:03,850 Tout dwa. 1412 01:27:03,850 --> 01:27:09,030 >>  [Aplodisman] 1413 01:27:09,030 --> 01:27:13,000 >> [CS50.TV]