1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [4 skirsnis] [mažiau patogūs] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvardo universiteto] 3 00:00:04,000 --> 00:00:07,000 [Tai CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:10,000 >> Viskas gerai, pasveikinti atgal į skyrių. 5 00:00:10,000 --> 00:00:13,000 Skyriuje šią savaitę mes ketiname padaryti keletą dalykų. 6 00:00:13,000 --> 00:00:17,000 Mes ketiname pirmą Priminti problemą, 2, 7 00:00:17,000 --> 00:00:20,000 kuris yra Cezaris ir Vigenere problema rinkinys. 8 00:00:20,000 --> 00:00:23,000 Ir tada mes ketiname pasinerti į Viktorina 0 peržiūros 9 00:00:23,000 --> 00:00:26,000 ir praleisti šiek tiek laiko Reziumuojam, ką mes kalbėjome apie 10 00:00:26,000 --> 00:00:30,000 kiekviename iš paskaitų iki šiol, ir mes taip pat padaryti keletą problemų 11 00:00:30,000 --> 00:00:32,000 nuo praeitų metų viktorinos. 12 00:00:32,000 --> 00:00:36,000 Tokiu būdu jūs vaikinai turite geras būdas pasirengti. 13 00:00:36,000 --> 00:00:40,000 >> Norėdami pradėti, aš įkelti kelis gerus sprendimus 14 00:00:40,000 --> 00:00:45,000 už praėjusius problemą, problemą, 2, į šią erdvę. 15 00:00:45,000 --> 00:00:48,000 Jei jus vaikinai paspauskite šią nuorodą, 16 00:00:48,000 --> 00:00:53,000 ir jei jūs spustelėkite savo vardą ir spustelėkite savo pirmąjį peržiūros 17 00:00:53,000 --> 00:00:56,000 pamatysite caesar.c, o tai, ką aš žiūriu. 18 00:00:56,000 --> 00:01:00,000 Pakalbėkime apie tai tikrai greitai. 19 00:01:00,000 --> 00:01:02,000 Tai tik mėginio tirpalas. 20 00:01:02,000 --> 00:01:05,000 Tai nebūtinai yra puikus sprendimas. 21 00:01:05,000 --> 00:01:08,000 Yra daug įvairių būdų, kaip rašyti tai, 22 00:01:08,000 --> 00:01:10,000 tačiau yra keletas dalykų, kad aš norėjau atkreipti dėmesį į 23 00:01:10,000 --> 00:01:13,000 kad aš mačiau, kaip man buvo klasifikavimo, paplitusių klaidų, kad aš manau, 24 00:01:13,000 --> 00:01:18,000 šis sprendimas daro labai gerą darbą, tvarkymo. 25 00:01:18,000 --> 00:01:22,000 >> Pirmoji yra kažkoks antraštės komentarą viršuje. 26 00:01:22,000 --> 00:01:25,000 Geležinkelių linijose, 1 per 7 pamatysite detales, 27 00:01:25,000 --> 00:01:28,000 Kas ši programa daro. 28 00:01:28,000 --> 00:01:32,000 Geras įprasta praktika, kai rašote kodą C 29 00:01:32,000 --> 00:01:35,000 neatsižvelgiant į tai, jeigu jūsų programa yra per vieną rinkmeną ar 30 00:01:35,000 --> 00:01:38,000 nesvarbu ar tai būtų padalinta į kelis failus yra turėti tam tikrą rūšies 31 00:01:38,000 --> 00:01:40,000 orientuojantis komentarą viršuje. 32 00:01:40,000 --> 00:01:43,000 Tai taip pat yra žmonių, kurie eina ir rašyti kodą realiame pasaulyje. 33 00:01:43,000 --> 00:01:47,000 Tai, kur jie bus įdėti informaciją apie autorines teises. 34 00:01:47,000 --> 00:01:50,000 Žemiau yra # apima. 35 00:01:50,000 --> 00:01:55,000 16 on-line ten tai # define, kurį mes grįš į tik šiek tiek. 36 00:01:55,000 --> 00:01:59,000 Ir tada, kai funkcija prasideda, kartą pagrindinius prasideda, 37 00:01:59,000 --> 00:02:03,000 , nes ši programa buvo pateikta tik vieną funkciją 38 00:02:03,000 --> 00:02:09,000 Pats pirmas dalykas, tai atsitiks, ir tai yra labai turintis daug idiomų ir būdinga C programos 39 00:02:09,000 --> 00:02:14,000 kad mano komandinės eilutės argumentai yra tai, kad ji iš karto patikrina 40 00:02:14,000 --> 00:02:18,000 >> argumentų skaičius, argc. 41 00:02:18,000 --> 00:02:24,000 Čia mes matome, kad ši programa tikisi 2 argumentus tiksliai. 42 00:02:24,000 --> 00:02:27,000 Atminkite, kad pirmasis argumentas, kad ypatinga 43 00:02:27,000 --> 00:02:29,000 kad visada programą, kuri buvo paleisti vardas 44 00:02:29,000 --> 00:02:31,000 vykdomąjį failą pavadinimas. 45 00:02:31,000 --> 00:02:36,000 Ir taip Kas tai yra, jis neleidžia vartotojui paleisti programą 46 00:02:36,000 --> 00:02:42,000 daugiau ar mažiau argumentų. 47 00:02:42,000 --> 00:02:44,000 Todėl norime, siekiant patikrinti, ar šios teisės toliau yra todėl, kad 48 00:02:44,000 --> 00:02:52,000 mes faktiškai negali naudotis šia argv masyvas čia patikimai 49 00:02:52,000 --> 00:02:55,000 kol mes patikrintos, siekiant įsitikinti, kaip didelis jis yra. 50 00:02:55,000 --> 00:02:58,000 >> Vienas iš pasitaikančių klaidų, aš mačiau žmonės būtų iš karto eiti 51 00:02:58,000 --> 00:03:01,000 ir patraukti argv [1]. 52 00:03:01,000 --> 00:03:06,000 Jie nori patraukti Pagrindinis argumentas iš masyvo, o aš patikrinti jį, 53 00:03:06,000 --> 00:03:11,000 ir tada jie nori padaryti testus už argc, taip pat į kitą bandymo, 54 00:03:11,000 --> 00:03:16,000 ar ne pirmas argumentas iš tiesų buvo sveikasis skaičius, tuo pačiu metu 55 00:03:16,000 --> 00:03:20,000 ir kad nėra dirbti, nes tuo atveju, jei yra tiekiamos jokių argumentų 56 00:03:20,000 --> 00:03:26,000 jums bus greiferiniai argumento, kad nėra ten arba bando patraukti vieną, kad yra ne ten. 57 00:03:26,000 --> 00:03:29,000 >> Kitas svarbus dalykas, kad jūs turėtumėte pastebėti, kad 58 00:03:29,000 --> 00:03:32,000 jūs visada norite spausdinti kažkokią naudingos klaidos pranešimą 59 00:03:32,000 --> 00:03:34,000 vartotojo susivokti juos. 60 00:03:34,000 --> 00:03:37,000 Aš tikiu, kad jūs visi paleisti programas, kur visi staiga ji sugenda, 61 00:03:37,000 --> 00:03:41,000 ir gausite šį juokinga mažai dialogo langą, kuris pasirodo ir sako 62 00:03:41,000 --> 00:03:44,000 suteikia jums kažkas baisiai paslaptingas ir gal klaidos kodą ar kažką panašaus, kad 63 00:03:44,000 --> 00:03:47,000 kad neturi prasmės. 64 00:03:47,000 --> 00:03:50,000 Tai vieta, kur jums tikrai norime suteikti ką nors naudinga 65 00:03:50,000 --> 00:03:54,000 ir orientuota į vartotoją, kad, kai jie paleisti, jeigu jis eiti "O", veido palmių. 66 00:03:54,000 --> 00:03:58,000 "Aš žinau, ką daryti. Aš žinau, kaip išspręsti šią problemą." 67 00:03:58,000 --> 00:04:01,000 >> Jei jūs neturite spausdinti pranešimą, tada jūs galų gale iš tikrųjų 68 00:04:01,000 --> 00:04:04,000 paliekant vartotojo eiti patikrinti savo kodą 69 00:04:04,000 --> 00:04:07,000 išsiaiškinti, kas nutiko. 70 00:04:07,000 --> 00:04:11,000 Taip pat yra keletas kartų, kad jums naudoti įvairių klaidų kodus. 71 00:04:11,000 --> 00:04:14,000 Čia mes tiesiog pasakyti, kad įvyko klaida, 72 00:04:14,000 --> 00:04:16,000 įvyko klaida, įvyko klaida. 73 00:04:16,000 --> 00:04:20,000 Didesni programas, dažnai kitų programų, kurios yra vadinamos programos, 74 00:04:20,000 --> 00:04:25,000 sugrįš tam tikrą specialių klaidų kodus, pagal įvairius scenarijus 75 00:04:25,000 --> 00:04:28,000 programiškai, ko priešingu 76 00:04:28,000 --> 00:04:32,000 tiesiog naudoti gražus pranešimą anglų kalba. 77 00:04:32,000 --> 00:04:35,000 Cool. 78 00:04:35,000 --> 00:04:37,000 Kaip mes dirbame žemyn, galite pamatyti, mes traukti KEY OUT. 79 00:04:37,000 --> 00:04:40,000 Mes patikrinti, kad, jei raktas tinka. 80 00:04:40,000 --> 00:04:42,000 Mes gauname pranešimą nuo vartotojo. 81 00:04:42,000 --> 00:04:46,000 Priežastis, kodėl mes tai darome šiame do while cikle, ir tai yra kažkas, kad mes apims 82 00:04:46,000 --> 00:04:50,000 šiek tiek, tačiau paaiškėja, kad jei įvesite kontrolės D 83 00:04:50,000 --> 00:04:54,000 kai jūs gaunate kad GetString greitai terminalo 84 00:04:54,000 --> 00:04:59,000 , ką tai iš tiesų yra, ji siunčia specialų simbolį 85 00:04:59,000 --> 00:05:01,000 į programą. 86 00:05:01,000 --> 00:05:05,000 Tai vadinama failo pobūdžio ELF arba pabaiga. 87 00:05:05,000 --> 00:05:08,000 Ir tuo atveju, mūsų žinia eilutė bus niekinis, 88 00:05:08,000 --> 00:05:14,000 taigi tai buvo ne tai, ko mes patikrinome, problemos užsibrėžė. 89 00:05:14,000 --> 00:05:17,000 >> Bet, kaip mes einame, dabar, kad mes pradėjo kalbėti apie rodykles 90 00:05:17,000 --> 00:05:21,000 ir dinaminės atminties paskirstymo krūvos, 91 00:05:21,000 --> 00:05:25,000 patikrinti for null, kai jūs turite funkcija, kuri gali 92 00:05:25,000 --> 00:05:30,000 grįžti null vertė yra kažkas, kad jūs norite gauti rengiasi tai įpročio. 93 00:05:30,000 --> 00:05:33,000 Tai čia pirma iliustracija. 94 00:05:33,000 --> 00:05:36,000 Bet, kai matote GetString ateityje, 95 00:05:36,000 --> 00:05:41,000 problema dėl 4 Nustatykite, jūs norite turėti tai omenyje. 96 00:05:41,000 --> 00:05:44,000 Vėlgi, tai nėra problemą, 3, nes nebūtume, kuriems jis dar klausimas. 97 00:05:44,000 --> 00:05:53,000 Galiausiai, mes turime šioje dalyje, kai mes gauname į pagrindinį šifravimo kilpa, 98 00:05:53,000 --> 00:05:57,000 ir yra pora dalykų vyksta čia. 99 00:05:57,000 --> 00:06:02,000 Pirma, mes pakartoti per visą pranešimų seka pats stringas. 100 00:06:02,000 --> 00:06:07,000 Čia mes nuolat strlen skambutį su sąlyga, 101 00:06:07,000 --> 00:06:12,000 iš jūsų atkreipė dėmesį į ne puikus būdas eiti. 102 00:06:12,000 --> 00:06:15,000 Pasirodo, šiuo atveju, jis taip pat nėra didelis, 103 00:06:15,000 --> 00:06:20,000 iš dalies dėl to, kad mes pakeisti paties pranešimo turinį 104 00:06:20,000 --> 00:06:27,000 viduje linijos, todėl, jei mes turime pranešimą, kuris yra 10 simbolių, 105 00:06:27,000 --> 00:06:32,000 pirmas kartas, mes pradedame, kad už linijos strlen sugrįš ką? 106 00:06:32,000 --> 00:06:35,000 10. 107 00:06:35,000 --> 00:06:40,000 >> Bet jei mes tada pakeisti pranešimą, sako, kad mes pakeisime savo 5 charakterį, 108 00:06:40,000 --> 00:06:46,000 ir mes mesti \ 0 pobūdžio 5-oje padėtyje, 109 00:06:46,000 --> 00:06:49,000 strlen (pranešimas) apie tolesnį iteracijos nebus grąžinti, ką ji padarė, 110 00:06:49,000 --> 00:06:52,000 labai pirmą kartą pakartota, 111 00:06:52,000 --> 00:06:56,000 tačiau ji turės grąžinti 5, nes mes išmetė toje null terminatorius, 112 00:06:56,000 --> 00:06:59,000 ir string ilgis yra apibrėžtas 113 00:06:59,000 --> 00:07:03,000 tos \ 0 pozicijos. 114 00:07:03,000 --> 00:07:09,000 Šiuo atveju, tai yra puikus būdas eiti, nes mes ją keisti vietoje. 115 00:07:09,000 --> 00:07:13,000 Tačiau jūs pastebėsite, kad iš tikrųjų tai yra stebėtinai paprasta užšifruoti 116 00:07:13,000 --> 00:07:16,000 jei jūs galite gauti matematika teisinga. 117 00:07:16,000 --> 00:07:19,000 Viskas, reikia patikrinti, ar laišką, kad jūs ieškote 118 00:07:19,000 --> 00:07:21,000 didžiąsias arba mažąsias raides. 119 00:07:21,000 --> 00:07:24,000 >> Priežastis, turime tik patikrinti, kad ir mes neturime, siekiant patikrinti, ar 120 00:07:24,000 --> 00:07:27,000 yra alfa byla yra dėl to, kad 121 00:07:27,000 --> 00:07:30,000 jei simbolis yra didžiąsias arba jei tai mažosiomis raidėmis 122 00:07:30,000 --> 00:07:33,000 tada tai tikrai abėcėlės raide, 123 00:07:33,000 --> 00:07:38,000 nes mes neturime didžiąsias ir mažąsias skaitmenų. 124 00:07:38,000 --> 00:07:41,000 Kitas dalykas, mes darome, o tai yra šiek tiek sudėtinga 125 00:07:41,000 --> 00:07:45,000 yra mes pakeisti standartinį Cezario šifro formulę 126 00:07:45,000 --> 00:07:49,000 kad mes davė problemą, specifikaciją. 127 00:07:49,000 --> 00:07:52,000 Kuo skiriasi čia yra, kad mes atimti 128 00:07:52,000 --> 00:07:58,000 didžiąsias atveju kapitalo, o tada mes pridėjome sostinę 129 00:07:58,000 --> 00:08:02,000 Atgal į pabaigoje. 130 00:08:02,000 --> 00:08:05,000 >> Aš žinau, keli iš jūsų tai padarė, savo kodą. 131 00:08:05,000 --> 00:08:09,000 Ar kas nors iš jūsų tai padaryti savo darbus? 132 00:08:09,000 --> 00:08:13,000 Tu tai padarei. Ar galite paaiškinti, kas tai daro, Sahb? 133 00:08:13,000 --> 00:08:18,000 Atimant jį, nes tu mod jam pasibaigus, 134 00:08:18,000 --> 00:08:21,000 turite imtis jį iš, kad jūs gaunate [kosulys] pozicija. 135 00:08:21,000 --> 00:08:25,000 Ir tada pridedant jį atgal vėliau perėjo per vienas, kad jūs norėjo. 136 00:08:25,000 --> 00:08:27,000 Taip, tiksliai. 137 00:08:27,000 --> 00:08:32,000 Kas Sahb sakė buvo ta, kad, kai mes norime pridėti 138 00:08:32,000 --> 00:08:36,000 mūsų žinia ir mūsų raktas kartu 139 00:08:36,000 --> 00:08:42,000 ir tada mod, kad mod kad pagal NUM_LETTERS, 140 00:08:42,000 --> 00:08:50,000 jei mes neturime mūsų pranešimą mastelį į atitinkamą 0 25 yra, pirma, 141 00:08:50,000 --> 00:08:54,000 tada mes galime galų gale gauti tikrai keista skaičių 142 00:08:54,000 --> 00:08:59,000 nes vertybės, kurios mes ieškome, kai mes žiūrime į pranešimą [i], 143 00:08:59,000 --> 00:09:03,000 kai mes pažvelgti į mūsų paprasto tekstinio pranešimo forma-ajai pobūdžio, 144 00:09:03,000 --> 00:09:08,000 vertė kažkur šio 65-122 145 00:09:08,000 --> 00:09:13,000 remiantis didžiosiomis raidėmis nuo a iki z mažosiomis ASCII vertes. 146 00:09:13,000 --> 00:09:18,000 Ir todėl, kai mes mod 26 arba NUM_LETTERS 147 00:09:18,000 --> 00:09:23,000 nes tai buvo mūsų # define čia, viršuje, dešinėje pusėje 148 00:09:23,000 --> 00:09:28,000 kad ketina duoti mums vertė turi būti nuo 0 iki 25 yra, 149 00:09:28,000 --> 00:09:30,000 ir mes turime tada masto kad atgal į viršų 150 00:09:30,000 --> 00:09:32,000 ir gauti atitinkamą ASCII diapazone. 151 00:09:32,000 --> 00:09:36,000 Pats paprasčiausias būdas tai padaryti yra tiesiog masto viskas žemyn 152 00:09:36,000 --> 00:09:39,000 į 0 25 yra pradėti, 153 00:09:39,000 --> 00:09:43,000 ir tada perkelti viską atgal pabaigoje. 154 00:09:43,000 --> 00:09:46,000 >> Kita dažnai pasitaikanti klaida, kad aš mačiau žmonių paleisti į tai, kad 155 00:09:46,000 --> 00:09:50,000 jei jūs neturite iš tikrųjų šį mastelį iš karto 156 00:09:50,000 --> 00:09:53,000 ir jūs įtrauksite pranešimą ir raktas kartu ir pridėsite juos, tarkim, 157 00:09:53,000 --> 00:09:58,000 į char kintamasis, su problema 158 00:09:58,000 --> 00:10:01,000 nuo žinute [i] yra gana didelis skaičius, pradėti 159 00:10:01,000 --> 00:10:05,000 prisiminti, tai bent 65, jei jis didžiąsias pobūdis 160 00:10:05,000 --> 00:10:09,000 jei turite didelį raktą, tarkime, kažką panašaus į 100, 161 00:10:09,000 --> 00:10:13,000 ir jūs įtraukėte šių 2 kartu į pasirašė char, kad jūs ketinate gauti perpildymo. 162 00:10:13,000 --> 00:10:17,000 Jūs ketinate gauti vertę, kad didesnis nei 127, 163 00:10:17,000 --> 00:10:22,000 kuri yra didžiausia vertė, kad char kintamasis gali turėti. 164 00:10:22,000 --> 00:10:26,000 Vėlgi, tai kodėl jūs norite padaryti, kad dalykas rūšiuoti prasideda. 165 00:10:26,000 --> 00:10:29,000 Kai kurie žmonės gavo apie Tokiu atveju daro jei dar ir testavimo 166 00:10:29,000 --> 00:10:33,000 pamatyti, jei ji būtų perkrautas, kad prieš darydama 167 00:10:33,000 --> 00:10:36,000 tačiau šis būdas tampa aplink, kad. 168 00:10:36,000 --> 00:10:40,000 Ir tada šio tirpalo atspausdinti visą eilutę pačioje pabaigoje. 169 00:10:40,000 --> 00:10:45,000 Kiti žmonės atspausdinti simbolį vienu metu. Abu yra nuostabus. 170 00:10:45,000 --> 00:10:51,000 Šiuo metu, jūs vaikinai turite kokių nors klausimų, pastabų apie šį? 171 00:10:51,000 --> 00:10:56,000 Jums patinkančių dalykų, ką jums nepatinka? 172 00:10:56,000 --> 00:10:58,000 >> Aš turėjau klausimą. 173 00:10:58,000 --> 00:11:01,000 Gal aš praleidau per savo paaiškinimą, bet kaip veikia ši programa 174 00:11:01,000 --> 00:11:07,000 praleisti tarpus prijungti raktą į teksto ilgio? 175 00:11:07,000 --> 00:11:10,000 Tai tiesiog Cezario šifras. >> Oi, atsiprašau, taip. 176 00:11:10,000 --> 00:11:13,000 Taip, mes matome, kad. 177 00:11:13,000 --> 00:11:16,000 Cezario šifras aplink, kad, nes mes turime 178 00:11:16,000 --> 00:11:18,000 mes tik apversta simbolių. 179 00:11:18,000 --> 00:11:27,000 Mes tik pasukti, jei jie buvo didžiąsias arba mažąsias. 180 00:11:27,000 --> 00:11:32,000 Jus vaikinai jaučiasi gana gerai apie tai? 181 00:11:32,000 --> 00:11:34,000 Jauskitės laisvai kopijuoti šį namą, išgerkite ją, 182 00:11:34,000 --> 00:11:37,000 palyginkite jį su ką vaikinai rašė. 183 00:11:37,000 --> 00:11:42,000 Tikrai jaučiasi siųsti klausimus apie tai. 184 00:11:42,000 --> 00:11:46,000 Ir vėl, suvokti, kad tikslas čia su savo problema nustato 185 00:11:46,000 --> 00:11:50,000 yra ne gauti jus vaikinai parašyti puikus kodą jūsų problema rinkinių. 186 00:11:50,000 --> 00:11:57,000 Tai mokymosi patirtis. Taip. 187 00:11:57,000 --> 00:12:01,000 >> Atgal į do while cikle, jeigu ji yra lygi null, 188 00:12:01,000 --> 00:12:06,000 taip null tiesiog tai nieko, jie tiesiog paspauskite "Enter"? 189 00:12:06,000 --> 00:12:12,000 Null yra speciali rodyklė vertė, 190 00:12:12,000 --> 00:12:17,000 ir mes naudojame null, jei mes norime pasakyti 191 00:12:17,000 --> 00:12:23,000 žymeklis kintamąjį, kuri būtų nukreipta į nieką. 192 00:12:23,000 --> 00:12:28,000 Ir todėl paprastai tai reiškia, kad šis kintamasis, šis pranešimas kintamasis 193 00:12:28,000 --> 00:12:35,000 yra tuščias, ir čia, nes mes naudojame CS50 specialų string tipas, 194 00:12:35,000 --> 00:12:37,000 kas yra CS50 string tipas? 195 00:12:37,000 --> 00:12:42,000 Matėte, kas tai yra, kai Davidas iškedentas atgal gaubtą paskaitos? 196 00:12:42,000 --> 00:12:44,000 Tai funky rodyklė, tiesa? 197 00:12:44,000 --> 00:12:48,000 Gerai, yeah. >> Tai char *. 198 00:12:48,000 --> 00:12:52,000 Ir taip tikrai galėtume pakeisti šį 199 00:12:52,000 --> 00:12:56,000 čia su char * Žinutė 200 00:12:56,000 --> 00:13:04,000 ir taip GetString funkcija, jei ji nėra sėkmingai gauti eilutę iš vartotojo, 201 00:13:04,000 --> 00:13:08,000 jis negali apdoroti eilutę, ir vienas atvejis, kai ji negali apdoroti eilutę 202 00:13:08,000 --> 00:13:11,000 yra, jei vartotojas įveda failo pobūdžio, kontrolės D deleguotieji nacionaliniai ekspertai, 203 00:13:11,000 --> 00:13:17,000 kuri yra ne tai, ką jūs paprastai padaryti, bet, jei tai atsitiks 204 00:13:17,000 --> 00:13:20,000 funkcija bus grąžinti šį null vertę kaip pasakyti būdu 205 00:13:20,000 --> 00:13:23,000 "Ei, aš ne gauti eilutę." 206 00:13:23,000 --> 00:13:27,000 Kas nutiktų, jei mes nedėkite žinutę = null, 207 00:13:27,000 --> 00:13:30,000 , kuri yra kažkas, kad mes nebuvo daryti dar? 208 00:13:30,000 --> 00:13:32,000 Kodėl tai galėtų būti problema čia? 209 00:13:32,000 --> 00:13:38,000 Nes aš žinau, kad mes kalbėjome šiek tiek Paskaita apie atminties nutekėjimas. 210 00:13:38,000 --> 00:13:42,000 Taip, galime tai padaryti, ir pažiūrėkime, kas atsitinka. 211 00:13:42,000 --> 00:13:44,000 >> Bazilijaus klausimas buvo, kas atsitiks, jei mes ne iš tikrųjų turėti 212 00:13:44,000 --> 00:13:48,000 šis pranešimas = null testas? 213 00:13:48,000 --> 00:13:51,000 Leiskite slinkite aukštyn į viršų. 214 00:13:51,000 --> 00:13:53,000 Jus vaikinai galite komentuoti šią formą. 215 00:13:53,000 --> 00:13:55,000 Tiesą sakant, aš išsaugokite jį persvarstymo. 216 00:13:55,000 --> 00:13:58,000 Tai bus 3 redakcija. 217 00:13:58,000 --> 00:14:02,000 Tai, ką jūs turite padaryti, norint paleisti šią programą, jūs turite spauskite šią krumpliaračio piktogramą čia, 218 00:14:02,000 --> 00:14:04,000 , ir jūs turite pridėti argumentą. 219 00:14:04,000 --> 00:14:10,000 Jūs turite suteikti jai pagrindinį argumentą, nes mes norime perduoti komandinės eilutės argumentu. 220 00:14:10,000 --> 00:14:13,000 Čia aš ruošiuosi suteikia jai numerį 3. Man patinka 3. 221 00:14:13,000 --> 00:14:19,000 Dabar priartinimo atgal, veikia programa. 222 00:14:19,000 --> 00:14:24,000 Ji veikia, rinkti, statybos. 223 00:14:24,000 --> 00:14:27,000 Čia mes einame. Laukia, kad būtų raginama. 224 00:14:27,000 --> 00:14:33,000 Jei aš tipo kažką panašaus hello-kur tai eiti? 225 00:14:33,000 --> 00:14:38,000 O, mano programa, truko per ilgai paleisti. Aš buvau finansų įstaigos Mokėjimo per ilgai. 226 00:14:38,000 --> 00:14:40,000 Here it goes. 227 00:14:40,000 --> 00:14:43,000 Dabar aš tipo Hello. 228 00:14:43,000 --> 00:14:46,000 Mes matome, kad ji užkoduota tinkamai. 229 00:14:46,000 --> 00:14:52,000 Dabar, kas atsitiks, jei mes padaryti greitą GetString grąžina NULL? 230 00:14:52,000 --> 00:14:57,000 Prisiminkite, aš sakiau, kad mes padarėme, kad tuo pačiu metu spausdami valdymas D. 231 00:14:57,000 --> 00:14:59,000 Aš slinkti čia. Mes jį vėl. 232 00:14:59,000 --> 00:15:01,000 Pastatas. Štai jis eina. 233 00:15:01,000 --> 00:15:04,000 Dabar, kai aš paspauskite kontrolės D 234 00:15:04,000 --> 00:15:12,000 Aš turiu šią eilutę, kad sako opt/sandbox50/bin/run.sh, segmentavimas kaltės. 235 00:15:12,000 --> 00:15:15,000 Ar jums, vaikinai, matyti, kad prieš? 236 00:15:15,000 --> 00:15:17,000 >> [Studentų] Kodėl yra ne->> Atsiprašome? 237 00:15:17,000 --> 00:15:20,000 [Studentų] Kodėl yra ne core dump šiuo atveju? 238 00:15:20,000 --> 00:15:26,000 Core dump klausimas yra kodėl yra ne core dump? 239 00:15:26,000 --> 00:15:29,000 Klausimas yra tai, kad gali būti, bet core dump failą 240 00:15:29,000 --> 00:15:31,000 , kad bus saugomi kietajame diske. 241 00:15:31,000 --> 00:15:34,000 Šiuo atveju mes išjungtas pagrindinių sąvartynų 242 00:15:34,000 --> 00:15:37,000 paleisti serveryje, kad mes negali būti žmonės seg klaida 243 00:15:37,000 --> 00:15:40,000 ir kurti tonų pagrindinių sąvartynų. 244 00:15:40,000 --> 00:15:46,000 , Bet jūs galite gauti vieną. 245 00:15:46,000 --> 00:15:48,000 Core sąvartynų yra dalykai, kad jūs galite dažnai išjungti, 246 00:15:48,000 --> 00:15:52,000 , o kartais ir jūs darote. 247 00:15:52,000 --> 00:15:55,000 Segmentavimo kaltės, atsakyti į jūsų klausimą, Bazilikas, 248 00:15:55,000 --> 00:16:00,000 sako, kad mes bandėme kreiptis į rodyklę 249 00:16:00,000 --> 00:16:05,000 kad nebuvo nustatyta, kad rodytų į ką nors. 250 00:16:05,000 --> 00:16:09,000 Prisiminti Binky vaizdo Binky bando 251 00:16:09,000 --> 00:16:12,000 pasieksite žymeklį, kuris nėra nukreipta į ką nors? 252 00:16:12,000 --> 00:16:16,000 Šiuo atveju aš manau, techniškai yra rodyklė, nukreipta į kažką. 253 00:16:16,000 --> 00:16:20,000 Ji nukreipta null, kuri yra techniškai 0, 254 00:16:20,000 --> 00:16:25,000 bet tai apibrėžta būti segmentui, kuri nėra prieinama 255 00:16:25,000 --> 00:16:28,000 savo programą, taigi, galėsite gauti segmentavimo kaltės 256 00:16:28,000 --> 00:16:31,000 nes nesate prieigą prie atminties, kad galiojančiame segmente 257 00:16:31,000 --> 00:16:38,000 kaip krūvos segmentą ar kamino segmento ar duomenų segmento. 258 00:16:38,000 --> 00:16:40,000 Cool. 259 00:16:40,000 --> 00:16:48,000 Turite klausimų apie Cezario? 260 00:16:48,000 --> 00:16:51,000 >> Pereikime. Pažvelkime 2 red tikrai greitai. 261 00:16:51,000 --> 00:17:00,000 Štai Vigenere. 262 00:17:00,000 --> 00:17:04,000 Čia Vigenere 263 00:17:04,000 --> 00:17:06,000 mes vaikščioti per šią gana greitai, nes, dar kartą, 264 00:17:06,000 --> 00:17:10,000 Vigenere ir Cezaris yra gana panašūs. 265 00:17:10,000 --> 00:17:12,000 Header komentaras prieš, 266 00:17:12,000 --> 00:17:17,000 # Define prieš, kad būtų išvengta naudojant šiuos magija numerius. 267 00:17:17,000 --> 00:17:21,000 Malonus dalykas, sako, kad mes norėjome pereiti prie 268 00:17:21,000 --> 00:17:23,000 kitoks raidynas ar kažkas panašaus. 269 00:17:23,000 --> 00:17:26,000 Užuot eiti rankiniu būdu pakeisti visas 26 kodą 270 00:17:26,000 --> 00:17:30,000 mes galime tai pakeisti iki 27 arba paleisti jį žemyn 271 00:17:30,000 --> 00:17:34,000 jei mes buvome naudojant įvairių abėcėlių rašmenis, skirtingų kalbų. 272 00:17:34,000 --> 00:17:38,000 Vėlgi, mes turime šio argumento skaičiaus patikrinimą, 273 00:17:38,000 --> 00:17:42,000 ir tikrai jūs galite beveik į tai kaip šabloną. 274 00:17:42,000 --> 00:17:46,000 Beveik kiekvienas programa rašote turėtų būti 275 00:17:46,000 --> 00:17:50,000 jei jis trunka, kai kurie iš komandinės eilutės argumentai linijų seką 276 00:17:50,000 --> 00:17:55,000 , kad tai skamba kaip pačioje pradžioje. 277 00:17:55,000 --> 00:17:59,000 Kad vienas iš pirmųjų normalumas bandymų, jūs norite daryti. 278 00:17:59,000 --> 00:18:03,000 >> Štai ką mes padarėme buvo mes pasistengėme, kad 279 00:18:03,000 --> 00:18:06,000 raktažodis galioja, ir tai buvo antro patikrinimo, kad mes tai padarėme. 280 00:18:06,000 --> 00:18:11,000 Atkreipkite dėmesį, vėl, kad mes tai atskirti nuo argc ir 2. 281 00:18:11,000 --> 00:18:14,000 Atkreipkite dėmesį, kad šiuo atveju Vietoj to, vienas dalykas, kad mes turėjome daryti 282 00:18:14,000 --> 00:18:18,000 naudojant i norėjome patvirtinti visą eilutę, 283 00:18:18,000 --> 00:18:21,000 ir siekiant padaryti, kad jūs iš tikrųjų turi eiti charakterio charakterį 284 00:18:21,000 --> 00:18:23,000 per eilutę. 285 00:18:23,000 --> 00:18:29,000 Yra geras būdas skambinti kažką 286 00:18:29,000 --> 00:18:31,000 nes net, pavyzdžiui, i sugrįš 0 287 00:18:31,000 --> 00:18:37,000 , jei jis negali apdoroti sveikasis skaičius, kad nėra net dirbti. 288 00:18:37,000 --> 00:18:42,000 Vėlgi, gražus pranešimą vartotojui tiksliai, kas nutiko. 289 00:18:42,000 --> 00:18:45,000 Tada čia ir vėl, mes taip pat elgtis tuo atveju, jeigu 290 00:18:45,000 --> 00:18:50,000 vartotojas įveda į kontrolinės D Alfa. 291 00:18:50,000 --> 00:18:54,000 >> Ir tada Charlotte klausimas turėjo anksčiau apie tai, kaip mes sugebėsime praleisti tarpus 292 00:18:54,000 --> 00:18:57,000 mūsų eilutę čia. 293 00:18:57,000 --> 00:19:00,000 Tai buvo tipo panašus į tai, ką mes padarėme su "MySpace" programa 294 00:19:00,000 --> 00:19:04,000 kad mes padarėme skyriuje, o kaip ši dirbo 295 00:19:04,000 --> 00:19:08,000 tai, kad mes sekė raidžių skaičių, kad mes norime matyti. 296 00:19:08,000 --> 00:19:13,000 Kaip mes vaikščioti per pranešimo eilutės, kaip mes vaikščioti per charakterio pobūdžio, 297 00:19:13,000 --> 00:19:16,000 sekė indekso dalis mūsų kilpa, ir tada mes taip pat atidžiai stebimi 298 00:19:16,000 --> 00:19:21,000 raidžių skaičius, taigi ne specialių simbolių, non-skaitmenys, White Space 299 00:19:21,000 --> 00:19:27,000 kad mes norime matyti atskirame kintamojo. 300 00:19:27,000 --> 00:19:33,000 Ir tada šis sprendimas pakeičia raktą 301 00:19:33,000 --> 00:19:41,000 gauti realią pagrindinis sveikasis skaičius, ir ji, kad skristi, 302 00:19:41,000 --> 00:19:47,000 į dešinę, kol ji tada eina į užšifruoti faktinį pranešimų pobūdį. 303 00:19:47,000 --> 00:19:50,000 Yra kai kurie sprendimai, kurie buvo visiškai per didelis 304 00:19:50,000 --> 00:19:58,000 , kad būtų pakeisti raktą bandant raktas galiojimo. 305 00:19:58,000 --> 00:20:01,000 Be to, įsitikinkite, kad simbolių ir raktinis žodis 306 00:20:01,000 --> 00:20:05,000 buvo abėcėlės raide ji taip pat pasirodė, kad į sveikojo skaičiaus 307 00:20:05,000 --> 00:20:13,000 nuo 0 iki 25 yra tada pereikite atsižvelgdamas į tai, kad vėliau tai už linijos. 308 00:20:13,000 --> 00:20:18,000 Vėlgi, jūs čia matote, tai tikrai lygiai toks pats kodas 309 00:20:18,000 --> 00:20:22,000 , kad mes šiuo metu naudojamas Cezaris. 310 00:20:22,000 --> 00:20:25,000 Darote tą patį dalyką, todėl realus triukas yra suprasti, 311 00:20:25,000 --> 00:20:30,000 kaip paversti žodį į sveikasis skaičius. 312 00:20:30,000 --> 00:20:35,000 >> Vienas dalykas, kad mes padarėme, kad čia yra šiek tiek tankus 313 00:20:35,000 --> 00:20:39,000 tai mes pakartojo šią frazę, aš manau, galima pavadinti tai, 314 00:20:39,000 --> 00:20:45,000 3 atskiri kartus ant 58, 59 ir 61 linijų. 315 00:20:45,000 --> 00:20:52,000 Ar kas nors paaiškinti, ką tiksliai ši frazė nėra? 316 00:20:52,000 --> 00:20:55,000 Jungiamasi prie simbolį, kaip sakei. 317 00:20:55,000 --> 00:20:59,000 Taip, tai [nesigirdi] raktinį žodį pobūdis, 318 00:20:59,000 --> 00:21:04,000 ir todėl iš laiškų matyti, nes jūs tik judančią išilgai 319 00:21:04,000 --> 00:21:06,000 raktinis žodis, kai jūs mačiau laišką, 320 00:21:06,000 --> 00:21:10,000 todėl, kad manimi vyksta efektyviai praleisti tarpus ir stuff like that. 321 00:21:10,000 --> 00:21:12,000 Taip, tiksliai. 322 00:21:12,000 --> 00:21:16,000 Ir tada, kai jūs mačiau raktažodžių tuščią jūs tiesiog mod, kad galite perkelti atgal aplink. 323 00:21:16,000 --> 00:21:18,000 Tiksliai. Štai puikus paaiškinimas. 324 00:21:18,000 --> 00:21:23,000 Kevin sakė, kad mes norime į raktažodį indeksas. 325 00:21:23,000 --> 00:21:28,000 Mes norime gauti num_letters_seen pobūdį, jei norite, 326 00:21:28,000 --> 00:21:32,000 bet jei num_letters_seen viršija raktinio žodžio ilgį, 327 00:21:32,000 --> 00:21:37,000 kaip mes grįžti į atitinkamą intervalą mes naudojame mod operatorių 328 00:21:37,000 --> 00:21:40,000 veiksmingai vyniojami aplink. 329 00:21:40,000 --> 00:21:43,000 Pavyzdžiui, kaip per trumpą laiką, mūsų raktinis žodis yra šoninė, 330 00:21:43,000 --> 00:21:46,000 ir 5 raidžių ilgio. 331 00:21:46,000 --> 00:21:50,000 , Tačiau šiuo metu mes matėme 6 raides mūsų paprasto teksto 332 00:21:50,000 --> 00:21:52,000 ir saugiame 6. 333 00:21:52,000 --> 00:21:57,000 Mes galų gale patekti į num_letters_seen 334 00:21:57,000 --> 00:22:00,000 kuri yra 6, mod raktinio žodžio ilgis, 5, 335 00:22:00,000 --> 00:22:04,000 ir todėl mes gausite 1, ir tt, ką mes padarysime mes atsiųsime 336 00:22:04,000 --> 00:22:14,000 atidarykite pirmasis simbolis viduje mūsų raktinį žodį tame taške. 337 00:22:14,000 --> 00:22:21,000 >> Viskas gerai, bet kokie klausimai dėl Vigenere 338 00:22:21,000 --> 00:22:26,000 Prieš mes pereiti? 339 00:22:26,000 --> 00:22:31,000 Jus vaikinai jaučiasi gana gerai apie tai? 340 00:22:31,000 --> 00:22:35,000 Cool, puikus. 341 00:22:35,000 --> 00:22:38,000 Noriu įsitikinti, kad jus vaikinai gauti galimybę pamatyti kodą 342 00:22:38,000 --> 00:22:48,000 kad mes manome, gerai atrodo ir turite galimybę pasimokyti iš to. 343 00:22:48,000 --> 00:22:53,000 Tai bus paskutinis naudosite skyrių, šiuo metu, 344 00:22:53,000 --> 00:22:59,000 ir mes ketiname pereiti dabar, ir aš ruošiuosi eiti į cs50.net/lectures 345 00:22:59,000 --> 00:23:06,000 todėl mes galime padaryti šiek tiek viktorina peržiūros. 346 00:23:06,000 --> 00:23:10,000 Geriausias būdas aš manau, kad pradėti daryti viktorina peržiūrą 347 00:23:10,000 --> 00:23:15,000 turi ateiti į šį puslapį paskaitas, cs50.net/lectures, 348 00:23:15,000 --> 00:23:20,000 ir po šios savaitės pozicijose, todėl, jei aš žiūriu čia 0 savaitės, 349 00:23:20,000 --> 00:23:27,000 Matau, kad mes turime, kad mes, kuriems savaitė 0 temų sąrašą. 350 00:23:27,000 --> 00:23:31,000 >> Jei kuri nors iš šių temų, atrodo nepažįstamas jums 351 00:23:31,000 --> 00:23:34,000 jūs tikrai norite grįžti ir apibėgti paskaita ir galbūt 352 00:23:34,000 --> 00:23:39,000 net nugriebti per paskaitas, žiūrėti juos dar kartą, jei norite 353 00:23:39,000 --> 00:23:44,000 gauti už tai, kas vyksta su kiekviena iš šių temų jaustis. 354 00:23:44,000 --> 00:23:49,000 Aš pasakysiu papildomai Šiais metais viena cool išteklių mes turime 355 00:23:49,000 --> 00:23:55,000 yra tie, kad mes sukūrėme šortai, ir jei peržvelgsite savaitės 0, 356 00:23:55,000 --> 00:24:00,000 mes neturime iš temų, bet mes turime gana keletą iš jų, 357 00:24:00,000 --> 00:24:03,000 sudėtingiau, todėl žiūrėti šiuos šortai vėl 358 00:24:03,000 --> 00:24:08,000 yra geras būdas jums pagreitinti. 359 00:24:08,000 --> 00:24:15,000 Visų pirma, aš įdėti į kištuko už 3 ant dugno, nes aš tų. 360 00:24:15,000 --> 00:24:20,000 Bet jei jūs kovoja su dvejetainiu, bitai, HEX, kad daiktų rūšis, 361 00:24:20,000 --> 00:24:22,000 dvejetainis yra puiki vieta pradėti. 362 00:24:22,000 --> 00:24:25,000 ASCII yra dar vienas, kad gerai, kad galėtumėte peržiūrėti per. 363 00:24:25,000 --> 00:24:31,000 Jūs netgi galite žiūrėti man ne 1,5 x greičiu, jei aš per lėtai jums. 364 00:24:31,000 --> 00:24:35,000 Kadangi tai peržiūros, nedvejodami padaryti, kad. 365 00:24:35,000 --> 00:24:40,000 >> Tik pradėti labai greitai, mes ketiname eiti per porą šių viktorinų problemų 366 00:24:40,000 --> 00:24:44,000 tik greitai bidonas per šiuos. 367 00:24:44,000 --> 00:24:50,000 Pavyzdžiui, pažvelkime 16 problema, kad aš turiu teisę čia ant lentos. 368 00:24:50,000 --> 00:24:54,000 Mes turime šį tokia skaičiavimo dvejetainiu, 369 00:24:54,000 --> 00:24:56,000 ir mes norime parodyti bet kokį darbą. 370 00:24:56,000 --> 00:24:59,000 Gerai, aš ruošiuosi duoti tai kulka. 371 00:24:59,000 --> 00:25:01,000 Jūs vaikinai turėtų sekti kartu su popieriaus, 372 00:25:01,000 --> 00:25:04,000 ir mes tai padaryti tikrai greitai. 373 00:25:04,000 --> 00:25:06,000 Mes norime atlikti šiuos dvejetainis išskaičiavimą. 374 00:25:06,000 --> 00:25:16,000 Turiu 00.110.010. 375 00:25:16,000 --> 00:25:27,000 Ir aš ruošiuosi pridėti jai 00.110.010. 376 00:25:27,000 --> 00:25:30,000 Dėl matematikos genijai kartu namuose, 377 00:25:30,000 --> 00:25:35,000 Tai veiksmingai padauginus iš 2. 378 00:25:35,000 --> 00:25:37,000 Pradėkime. 379 00:25:37,000 --> 00:25:39,000 Mes ketiname laikytis tos pačios papildymas algoritmą, kad mes darome 380 00:25:39,000 --> 00:25:43,000 kai mes kartu pridėti dešimtainių skaičių. 381 00:25:43,000 --> 00:25:46,000 Tikrai vienintelis skirtumas yra tas, kad mes kilpa atgal aplink 382 00:25:46,000 --> 00:25:51,000 kai mes turime 1 + 1, o ne, kai mes gauti iki 10. 383 00:25:51,000 --> 00:25:53,000 >> Jei pradėsime iš dešinės, labai greitai, kas pirmasis skaitmuo? 384 00:25:53,000 --> 00:25:55,000 [Studentų] 0. >> [Nate H.] 0. 385 00:25:55,000 --> 00:25:58,000 Didelis, antrasis skaitmuo? 386 00:25:58,000 --> 00:26:00,000 [Studentų] 1. 387 00:26:00,000 --> 00:26:02,000 [Nate H.] Ar tai 1? 1 + 1? 388 00:26:02,000 --> 00:26:04,000 [Studentų] 10. 389 00:26:04,000 --> 00:26:08,000 [Nate H.] Būtent, tai kas yra skaitmenų, kad aš rašau iškart už 2, sudedami? 390 00:26:08,000 --> 00:26:11,000 [Studentų] 1, 0, arba 0 ir tada atlikti 1. 391 00:26:11,000 --> 00:26:15,000 [Nate H.] 0 ir vykdyti 1, tiksliai. 392 00:26:15,000 --> 00:26:18,000 Šalia vienas į viršų, Bezili, jūs ne. 393 00:26:18,000 --> 00:26:20,000 Kas yra trečia? >> [Bazilikas] 1. 394 00:26:20,000 --> 00:26:23,000 [Nate H.] 1, tobula. Kevin? 395 00:26:23,000 --> 00:26:27,000 [Kevin] 0. >> [Nate H.] 0, Charlotte? 396 00:26:27,000 --> 00:26:30,000 [Charlotte] 0. >> [Nate H.] Taip, ir ką man daryti? 397 00:26:30,000 --> 00:26:32,000 [Studentų] 1. 398 00:26:32,000 --> 00:26:34,000 [Nate H.] O ką man daryti? Ir tada aš atlikti 1. 399 00:26:34,000 --> 00:26:36,000 Tobula, Sahb? >> [Sahb] Dabar jūs turite 1. 400 00:26:36,000 --> 00:26:40,000 [Nate H.] Ir man daryti nieko čia? 401 00:26:40,000 --> 00:26:43,000 [Sahb] Tada kito, Jūs turite 1, nes jums perkelti 1. 402 00:26:43,000 --> 00:26:49,000 [Nate H.] Didysis, todėl čia galime baigti jį. 403 00:26:49,000 --> 00:26:51,000 Cool. 404 00:26:51,000 --> 00:26:54,000 [Studentų] Ar 0 + 0 = 0? 405 00:26:54,000 --> 00:26:56,000 0 + 0 = 0. 406 00:26:56,000 --> 00:27:01,000 1 + 1, kaip sakei, 10, 1, 0, o. 407 00:27:01,000 --> 00:27:07,000 10 yra neteisingas, nes man 10 - skaičių 10, 408 00:27:07,000 --> 00:27:12,000 ir tai, kaip mes ją atstovaujanti kai mes raštu jį užsukimas. 409 00:27:12,000 --> 00:27:20,000 Mes atstovaujame skaitmeniu "2", 1, 0, skaičius 10 yra šiek tiek kitoks. 410 00:27:20,000 --> 00:27:23,000 >> , Kas yra malonu apie dvejetainis natūra yra tai, kad ten tikrai nėra, kad daugelis 411 00:27:23,000 --> 00:27:25,000 atvejais reikia išmokti. 412 00:27:25,000 --> 00:27:30,000 Yra 0 + 0 = 0, 0 + 1 = 1, 413 00:27:30,000 --> 00:27:34,000 1 + 1 0, o po to atlikti 1, 414 00:27:34,000 --> 00:27:37,000 ir tada jūs galite pamatyti čia trečioje skiltyje iš dešinės 415 00:27:37,000 --> 00:27:40,000 mes tai 1, 1, 1. 416 00:27:40,000 --> 00:27:43,000 Ir 1 + 1 + 1 yra 1, 417 00:27:43,000 --> 00:27:45,000 ir galite atlikti dar 1. 418 00:27:45,000 --> 00:27:48,000 , Kai jūs darote dvejetainis Be to, gana paprasta. 419 00:27:48,000 --> 00:27:51,000 Norėčiau padaryti pora daugiau iš šių normalumas patikrinti save 420 00:27:51,000 --> 00:27:54,000 prieš išvykdami, nes tai yra 421 00:27:54,000 --> 00:28:00,000 turbūt kažkas, kad mes pamatyti viktorinoje. 422 00:28:00,000 --> 00:28:03,000 Dabar galime tai padaryti kitą taip pat. 423 00:28:03,000 --> 00:28:06,000 Darykime problema 17. 424 00:28:06,000 --> 00:28:12,000 Mes ketiname paversti šią dvejetainį skaičių į dešimtainį. 425 00:28:12,000 --> 00:28:28,000 Turiu 10100111001. 426 00:28:28,000 --> 00:28:33,000 Prisiminti mane dvejetainis vaizdo, kad aš padariau 427 00:28:33,000 --> 00:28:36,000 Perėjau per porą pavyzdžių, ir man parodė, kaip 428 00:28:36,000 --> 00:28:41,000 viskas veikia, kai jūs darote tai, dešimtainės trupmenos. 429 00:28:41,000 --> 00:28:45,000 Kai dirbate dešimtųjų atstovavimo manau, kad mes 430 00:28:45,000 --> 00:28:48,000 Šiuo mūsų gyvenime taip laisvai, kad 431 00:28:48,000 --> 00:28:53,000 tai gana lengva, kaip ji iš tiesų veikia mechanika Koloryzować. 432 00:28:53,000 --> 00:28:59,000 >> Bet padaryti greitai Priminti, jei aš šį numerį 137 433 00:28:59,000 --> 00:29:06,000 tai iš tikrųjų reiškia, ir vėl, tai yra dešimtųjų atstovavimo 434 00:29:06,000 --> 00:29:19,000 , dešimtainis skaičius 137 reiškia, kad aš turiu 1 x 100 + 3 x 10 + 7 x 1. 435 00:29:19,000 --> 00:29:22,000 Tai viskas, esančių ekrane. 436 00:29:22,000 --> 00:29:29,000 Ir tada jei jums pažvelgti į šių numerių čia, 437 00:29:29,000 --> 00:29:34,000 100, 10 ir 1, pamatysite, kad jie iš tikrųjų visi 10 įgaliojimai. 438 00:29:34,000 --> 00:29:43,000 Turiu 10 ², 10 ¹, ir nuo 10 iki nulio. 439 00:29:43,000 --> 00:29:48,000 Mes turime panašią dalykas rūšiuoti, dvejetainiu, 440 00:29:48,000 --> 00:29:55,000 išskyrus tai, kad mūsų bazė, kaip mes jį vadiname, yra 2 vietoje iš 10. 441 00:29:55,000 --> 00:29:58,000 Šie 10s, kad aš parašiau čia apačioje, 442 00:29:58,000 --> 00:30:02,000 šis 10 ², 10 ¹, 10 į nulinę, 10 yra mūsų bazė, 443 00:30:02,000 --> 00:30:08,000 eksponentė, 0, 1 arba 2, 444 00:30:08,000 --> 00:30:14,000 yra numanomas skaitmenų skaičių, kad mes rašome pozicijos. 445 00:30:14,000 --> 00:30:21,000 1, jei mes žiūrime į jį, tai 1 2 poziciją. 446 00:30:21,000 --> 00:30:27,000 3 yra 1-a vieta, ir 7 yra į 0. padėtį. 447 00:30:27,000 --> 00:30:35,000 Štai kaip mes gauti įvairių eksponatų mūsų bazių žemiau. 448 00:30:35,000 --> 00:30:40,000 >> Po tai we'll iš tiesų tai, žinote, ką? 449 00:30:40,000 --> 00:30:43,000 Mes padarysime kur mano atšaukti mygtuką eiti? 450 00:30:43,000 --> 00:30:45,000 Štai jis eina. 451 00:30:45,000 --> 00:30:47,000 Aš myliu šį atšaukti dalykas. 452 00:30:47,000 --> 00:30:51,000 Po to, manau, kad bent jau man 453 00:30:51,000 --> 00:30:54,000 Lengviausias būdas pradėti pertvarkyti dvejetainis skaičius 454 00:30:54,000 --> 00:30:57,000 arba šešioliktainis skaičius, kai bazė yra 16 455 00:30:57,000 --> 00:31:02,000 , o ne 10 arba 2, eiti į priekį ir surašyti 456 00:31:02,000 --> 00:31:09,000 pagrindai visi mano dvejetainis skaičius viršuje skaičių ir eksponentų. 457 00:31:09,000 --> 00:31:14,000 Jei pradėsime iš kairės į dešinę vėl, 458 00:31:14,000 --> 00:31:17,000 kuris yra rūšies counterintuitive, 459 00:31:17,000 --> 00:31:23,000 Aš "Back to Black čia, mes turime 2 į 0. padėtį, 460 00:31:23,000 --> 00:31:27,000 ir tada mes turime 2 ¹, 2 ² 461 00:31:27,000 --> 00:31:33,000 3, nuo 2 iki 4, 2 5 6 2 tada, 462 00:31:33,000 --> 00:31:39,000 7, 8, 9 ir 10. 463 00:31:39,000 --> 00:31:41,000 Aš parašiau iš Šie skaičiai yra visų eksponentų. 464 00:31:41,000 --> 00:31:48,000 Aš tik rašė čia pirmoje 3 tik dėl erdvės pagrindus. 465 00:31:48,000 --> 00:31:50,000 >> Šiuo metu aš ruošiuosi eiti į priekį, ir aš iš tikrųjų ketiname ištrinti 466 00:31:50,000 --> 00:31:53,000 stuff, kad mes padarėme kablelio, jei, kad viskas gerai. 467 00:31:53,000 --> 00:31:57,000 Jūs visi turime, kad. 468 00:31:57,000 --> 00:32:05,000 Tiems iš jūsų, žiūrėti internete, aš tikiu, kad bus galima atsukti man, jei norite. 469 00:32:05,000 --> 00:32:07,000 Pereiti atgal į švirkštimo priemonę. 470 00:32:07,000 --> 00:32:12,000 Dabar, ką mes galime padaryti, jei jus vaikinai nėra visiškai pagreitinti savo įgaliojimus 2, 471 00:32:12,000 --> 00:32:15,000 tai visiškai atvėsti. 472 00:32:15,000 --> 00:32:18,000 Tai atsitinka. Aš suprantu. 473 00:32:18,000 --> 00:32:23,000 Aš vieną kartą turėjo į pokalbį dėl darbo, kur man buvo pasakyta, turėčiau žinoti visus įgaliojimus 2 474 00:32:23,000 --> 00:32:26,000 ne per nuo 2 iki 30-osios. 475 00:32:26,000 --> 00:32:29,000 Tai buvo ne darbas, aš turiu. 476 00:32:29,000 --> 00:32:32,000 Bet kokiu atveju, jus vaikinai gali eiti į priekį ir padaryti matematiką, 477 00:32:32,000 --> 00:32:35,000 tačiau dvejetainiu ji tikrai ne prasmės, 478 00:32:35,000 --> 00:32:38,000 ir remiantis ja negalima prasmės dešimtosios ar Šešioliktainis, 479 00:32:38,000 --> 00:32:43,000 daryti matematikos, kur jūs turite nuliai. 480 00:32:43,000 --> 00:32:49,000 Jūs galite pamatyti, turiu 0, 0 čia, 0, 0, 0, 0 čia. 481 00:32:49,000 --> 00:32:52,000 Kodėl nėra prasmės daryti faktinį matematikos 482 00:32:52,000 --> 00:32:56,000 apskaičiuoti atitinkamą galią 2 tos pozicijos? 483 00:32:56,000 --> 00:32:59,000 Tiksliai, kaip Charlotte sakė, tai bus 0. 484 00:32:59,000 --> 00:33:05,000 Gali taip pat sutaupyti laiko, jei apskaičiuojant įgaliojimus 2 nėra jūsų stiprioji pusė. 485 00:33:05,000 --> 00:33:10,000 Šiuo atveju mes tik reikia apskaičiuoti už 2 0, kuris yra-? 486 00:33:10,000 --> 00:33:12,000 [Studentų] 1. 487 00:33:12,000 --> 00:33:14,000 [Nate H.] 1, 2 į 3? 488 00:33:14,000 --> 00:33:16,000 [Studentų] 8. >> [Nate H.] 8. 489 00:33:16,000 --> 00:33:18,000 2 4? 490 00:33:18,000 --> 00:33:21,000 [Studentų] 2. Atsiprašau, 1. 491 00:33:21,000 --> 00:33:26,000 [Nate H.] 2 į 4 - 16, tiksliai. 492 00:33:26,000 --> 00:33:28,000 Nuo 2 iki 5 Kevinas? >> 32. 493 00:33:28,000 --> 00:33:32,000 [Nate H.] 32, 2 su 8? 494 00:33:32,000 --> 00:33:38,000 [Studentų] 32 x 8 256. 495 00:33:38,000 --> 00:33:41,000 [Nate H.] Perfect. 496 00:33:41,000 --> 00:33:43,000 Ir 2 su 10? 497 00:33:43,000 --> 00:33:45,000 [Studentų] 1024. 498 00:33:45,000 --> 00:33:49,000 [Nate H.] Taip, 1024. 499 00:33:49,000 --> 00:33:57,000 >> Kai mes turime šiuos skaičius, mes galime suma juos visus. 500 00:33:57,000 --> 00:34:01,000 Ir tai, kai tai tikrai svarbu padaryti keletą dalykų. 501 00:34:01,000 --> 00:34:07,000 Vienas iš jų yra eiti lėtai ir patikrinti savo darbą. 502 00:34:07,000 --> 00:34:10,000 Jūs galite pasakyti, kad 1 šio skaičiaus pabaigoje, 503 00:34:10,000 --> 00:34:15,000 todėl aš tikrai turėtų gauti kaip mano rezultatas, nelyginis skaičius 504 00:34:15,000 --> 00:34:18,000 nes visi kiti tie bus dar numeriai 505 00:34:18,000 --> 00:34:21,000 atsižvelgiant į tai, kad tai yra dvejetainis skaičius. 506 00:34:21,000 --> 00:34:24,000 Kitas dalykas, kurį reikia padaryti, tai, jei jums šiuo klausimu apie bandymą 507 00:34:24,000 --> 00:34:27,000 ir parašiau jį taip toli 508 00:34:27,000 --> 00:34:30,000 ir jūs bėga laikas 509 00:34:30,000 --> 00:34:33,000 pažvelgti į taškų skaičių, kad ši problema yra verta. 510 00:34:33,000 --> 00:34:40,000 Ši problema, kaip jūs galite pamatyti, jei aš apversti atgal į mano nešiojamas tikrai greitai 511 00:34:40,000 --> 00:34:44,000 ši problema yra verta 2 taškų, todėl tai yra ne to rūšiuoti 512 00:34:44,000 --> 00:34:47,000 jums turėtų būti išgyvena, jei jūs tikrai nedaug laiko. 513 00:34:47,000 --> 00:34:52,000 Bet mes pereiti atgal į iPad, ir mes eiti per jį labai greitai. 514 00:34:52,000 --> 00:34:54,000 >> Man patinka daryti nurodytas nedidelis skaičius pirmą kartą 515 00:34:54,000 --> 00:34:56,000 , nes manau, kad būtų lengviau. 516 00:34:56,000 --> 00:35:00,000 Man patinka 32 ir 8, nes jie eiti kartu gana lengvai, ir mes gauname 50. 517 00:35:00,000 --> 00:35:03,000 16 ir 1 gauna 17. 518 00:35:03,000 --> 00:35:05,000 Čia mes gauname 57, 519 00:35:05,000 --> 00:35:14,000 ir tada mes galime padaryti tai poilsio, todėl mes galime padaryti 57, 156. 520 00:35:14,000 --> 00:35:16,000 Come on. 521 00:35:16,000 --> 00:35:19,000 Vyras, gerai, pažiūrėkime. 522 00:35:19,000 --> 00:35:27,000 Mes turėjome 57, 256, ir 1024. 523 00:35:27,000 --> 00:35:31,000 Šiuo metu, aš, o tiesiog eiti per. 524 00:35:31,000 --> 00:35:35,000 Aš neturiu clue. Aš aiškiai reikia perskaityti apie tai. 525 00:35:35,000 --> 00:35:40,000 7, 6, 4, gausite 17. 526 00:35:40,000 --> 00:35:42,000 1, 5, 5, 2, 13. 527 00:35:42,000 --> 00:35:45,000 Tada mes gauname 3, ir tada mes gauti 1. 528 00:35:45,000 --> 00:35:52,000 1337 m. 529 00:35:52,000 --> 00:35:55,000 Margutis, kas? 530 00:35:55,000 --> 00:35:59,000 Kas nors pripažinti šį skaičių? 531 00:35:59,000 --> 00:36:02,000 Chris atpažįsta šį numerį. Ką tai reiškia, Chris? 532 00:36:02,000 --> 00:36:04,000 [Chris] Leet. 533 00:36:04,000 --> 00:36:11,000 Leet, todėl, jei jums pažvelgti į tai, jis atrodo Leet. 534 00:36:11,000 --> 00:36:15,000 Hacker dalykų. Saugokitės tokio laikotarpio vidurio arba viktorina, o stuff. 535 00:36:15,000 --> 00:36:19,000 , Jei matote, kad daiktų rūšis ir jums įdomu, "Huh" 536 00:36:19,000 --> 00:36:22,000 kad iš tiesų gali reikšti kažką. 537 00:36:22,000 --> 00:36:24,000 Nežinau. Davidas mėgsta išleisti. 538 00:36:24,000 --> 00:36:26,000 Tai geras būdas normalumas patikrinti jį. 539 00:36:26,000 --> 00:36:30,000 Kaip ir gerai, aš galiu pamatyti, kas vyksta. 540 00:36:30,000 --> 00:36:34,000 >> Štai savaitė 0/Week 1 stuff. 541 00:36:34,000 --> 00:36:39,000 Jei mes pereiti atgal į mūsų kompiuterį dabar 542 00:36:39,000 --> 00:36:46,000 nutolinti, ir pora kitų dalykų. 543 00:36:46,000 --> 00:36:50,000 Yra ASCII, o mes jau daro daug su problema rinkinių. 544 00:36:50,000 --> 00:36:55,000 Šis kapitalo A. sąvoka, tai tikrai? 545 00:36:55,000 --> 00:36:57,000 Žinant, kad dešimtainis sveikasis skaičius. 546 00:36:57,000 --> 00:37:00,000 65 yra tai, ką jis susietas su ASCII lentelėje, 547 00:37:00,000 --> 00:37:03,000 ir tai, kaip kompiuteris jį rašo, 548 00:37:03,000 --> 00:37:06,000 ir tai, kaip mes jau Getting Away With faktiškai raštu 549 00:37:06,000 --> 00:37:09,000 simbolių kapitalas ir simbolių mažosiomis 550 00:37:09,000 --> 00:37:14,000 kai kurie iš šių sprendimų ir probleminių įrangų, kad jūs jau daro. 551 00:37:14,000 --> 00:37:16,000 Pora kitų dalykų. 552 00:37:16,000 --> 00:37:25,000 Mes turime pareiškimus, Būlio išraiškos, sąlygas, kilpų, kintamieji ir siūlus. 553 00:37:25,000 --> 00:37:29,000 >> Tie visi atrodo prasminga, kad didžioji dalis? 554 00:37:29,000 --> 00:37:35,000 Kai kurie terminai yra šiek tiek funky kartais. 555 00:37:35,000 --> 00:37:46,000 Man patinka galvoti, pareiškimas, kaip ir didžioji dalis kažką, kad baigiasi kabliataškiu. 556 00:37:46,000 --> 00:37:51,000 Pareiškimai, pavyzdžiui, x = 7, kuri nustato kintamąjį, 557 00:37:51,000 --> 00:37:54,000 matyt, vadinama x = 7. 558 00:37:54,000 --> 00:38:01,000 Matyt, čia x yra taip pat, kad galima laikyti su skaičiumi 7, 559 00:38:01,000 --> 00:38:05,000 todėl int arba galbūt lėšos arba trumpas arba char, 560 00:38:05,000 --> 00:38:07,000 kažkas panašaus. 561 00:38:07,000 --> 00:38:12,000 Būlio išraiška Šiuose dviviečiuose lygus 562 00:38:12,000 --> 00:38:17,000 ir sprogimo lygi arba nelygu, mažiau nei didesnis nei 563 00:38:17,000 --> 00:38:22,000 mažesnė arba lygi, kad daiktų rūšis. 564 00:38:22,000 --> 00:38:28,000 Sąlygos tada IF ELSE ataskaitos. 565 00:38:28,000 --> 00:38:32,000 Norėčiau prisiminti, kad jūs negalite turėti atitinkamą jei dar be. 566 00:38:32,000 --> 00:38:37,000 Taip pat galite turėti Else jei be atitinkamo jei. 567 00:38:37,000 --> 00:38:40,000 Kilpos, priminti, 3 rūšių kilpų buvome įspaudimo į tave 568 00:38:40,000 --> 00:38:43,000 per pastaruosius keletą skyrių ir probleminių įrangų. 569 00:38:43,000 --> 00:38:46,000 Naudojant nevalgyti, o kai jūs gaunate vartotojo įvestį, 570 00:38:46,000 --> 00:38:51,000 , o kilpos iki tam tikros būklės, yra tiesa, 571 00:38:51,000 --> 00:38:56,000 ir tada naudojant kilpas jei jums reikia 572 00:38:56,000 --> 00:39:01,000 iteracija kilpos jūs esate, kaip aš apie tai galvoti. 573 00:39:01,000 --> 00:39:07,000 Arba, jei jūs darote kiekvieną simbolį į eilutę, aš noriu kažką daryti, 574 00:39:07,000 --> 00:39:15,000 kiekvieno noriu kažką padaryti, kad šio elemento masyvo elemento. 575 00:39:15,000 --> 00:39:18,000 >> Verpalai ir renginiai. 576 00:39:18,000 --> 00:39:21,000 Tai mes taip aiškiai netaikoma C, 577 00:39:21,000 --> 00:39:23,000 bet nepamiršk, kad nuo nulio. 578 00:39:23,000 --> 00:39:26,000 Tai įvairius raštus sąvoka. 579 00:39:26,000 --> 00:39:32,000 Tai taip pat tai transliuoti įvykį sąvoka. 580 00:39:32,000 --> 00:39:37,000 Kai kurie žmonės nesinaudojo pradžių transliuoti savo projektus, 581 00:39:37,000 --> 00:39:40,000 kuris yra visiškai kietas, 582 00:39:40,000 --> 00:39:46,000 tačiau tai yra 2 skirtingi būdai, kaip tvarkyti šią didesnė problema, vadinama lygiagrečiai, 583 00:39:46,000 --> 00:39:49,000 kuri, kaip jūs gaunate programas vykdyti 584 00:39:49,000 --> 00:39:54,000 arba atrodo įvykdyti tuo pačiu metu? 585 00:39:54,000 --> 00:39:59,000 Įvairias užduotis veikia, o kitos užduotys taip pat veikia. 586 00:39:59,000 --> 00:40:01,000 Tai, kaip jūsų operacinė sistema, atrodo, veikia. 587 00:40:01,000 --> 00:40:04,000 Štai kodėl, nors, pavyzdžiui, 588 00:40:04,000 --> 00:40:10,000 Aš gavau mano naršyklė veikia, taip pat galiu įjungti Spotify ir groti dainą. 589 00:40:10,000 --> 00:40:14,000 Tai daugiau konceptualaus dalykas, kurį reikia suprasti. 590 00:40:14,000 --> 00:40:17,000 Aš norėčiau pažvelgti į temas trumpų 591 00:40:17,000 --> 00:40:21,000 , jei norite sužinoti daugiau apie tai. 592 00:40:21,000 --> 00:40:26,000 >> Pažiūrėkime, manau, galėjo būti 593 00:40:26,000 --> 00:40:31,000 viena iš jų, dėl šios problemos. 594 00:40:31,000 --> 00:40:35,000 Vėlgi, manau, temas ir įvykiai yra ne kažkas, kad mes apims C 595 00:40:35,000 --> 00:40:41,000 tik todėl, kad žymiai sunkiau nei nulio. 596 00:40:41,000 --> 00:40:44,000 Jums nereikėtų jaudintis apie tai, tačiau tikrai suprasti sąvokas, 597 00:40:44,000 --> 00:40:47,000 suprasti, kas vyksta. 598 00:40:47,000 --> 00:40:52,000 Prieš mes pereiti, bet savaitgaliais 0 medžiaga klausimai? 599 00:40:52,000 --> 00:40:55,000 Visi jausmas gana gera? 600 00:40:55,000 --> 00:41:03,000 Supratimas kintamieji ir kintamasis yra? 601 00:41:03,000 --> 00:41:08,000 >> Juda. Per savaitę 1. 602 00:41:08,000 --> 00:41:12,000 Pora dalykų, kurie buvo ne itin 603 00:41:12,000 --> 00:41:21,000 viktorina apžvalgoje būtinai ir taip pat yra daugiau konceptualūs dalykų, galvoti apie. 604 00:41:21,000 --> 00:41:30,000 Pirmasis tai kodo, kompiliatorius ir objektinio kodo sąvoka. 605 00:41:30,000 --> 00:41:32,000 Kas nors? Bazilikas. 606 00:41:32,000 --> 00:41:37,000 Yra objekto kodas Aš turiu galvoje išeitinis kodas, yra, ką jūs įtraukėte į Apsukite metalinis garsas, 607 00:41:37,000 --> 00:41:42,000 ir objekto kodo Apsukite metalinis garsas kelia, kad jūsų kompiuteris gali perskaityti programą. 608 00:41:42,000 --> 00:41:44,000 Tiksliai. 609 00:41:44,000 --> 00:41:47,000 Išeitinis kodas yra C kodas, kad jūs iš tikrųjų tipo iki. 610 00:41:47,000 --> 00:41:50,000 Objekto kodas yra tai, ką jūs gaunate iš Apsukite metalinis garsas. 611 00:41:50,000 --> 00:41:54,000 Tai 0s ir 1s toje dvejetainiu formatu. 612 00:41:54,000 --> 00:41:59,000 Tada kas atsitinka, kai jūs turite objektų failų krūva, 613 00:41:59,000 --> 00:42:04,000 tarkime, kad sudarant su projektu ar programa, kuri naudoja keletą kodą failus, 614 00:42:04,000 --> 00:42:09,000 pagal susitarimą, atsižvelgiant į C failo plėtinį. 615 00:42:09,000 --> 00:42:13,000 Štai, kodėl mes turime caesar.c vigenère.c. 616 00:42:13,000 --> 00:42:18,000 Jei rašote Java programas jūs suteikiate jiems pratęsimą. Java. 617 00:42:18,000 --> 00:42:24,000 Python programos turi plėtinį. Py dažnai. 618 00:42:24,000 --> 00:42:26,000 >> Kai jūs turite daug C failus, renka juos. 619 00:42:26,000 --> 00:42:29,000 Apsukite metalinis garsas išspjauna visą šį dvejetainis šiukšlių. 620 00:42:29,000 --> 00:42:33,000 Tada, nes norite tik 1 programa 621 00:42:33,000 --> 00:42:37,000 turite Linker nuorodą šių objekto failus kartu 622 00:42:37,000 --> 00:42:40,000 į 1 vykdomąjį failą. 623 00:42:40,000 --> 00:42:45,000 Tai, kas atsitinka, kai jūs naudojate CS50 biblioteką, pvz. 624 00:42:45,000 --> 00:42:50,000 CS50 biblioteka yra tiek, kad h failo antraštės 625 00:42:50,000 --> 00:42:53,000 , kad jūs perskaitėte, kad # includecs50.h. 626 00:42:53,000 --> 00:42:58,000 Ir tada jis taip pat dvejetainis bibliotekos failą 627 00:42:58,000 --> 00:43:02,000 kad buvo parengta, kad 0s ir 1s, 628 00:43:02,000 --> 00:43:08,000 ir kad-l vėliava, todėl, jei mes grįžti į mūsų erdvėse ir mes žiūrime labai greitai 629 00:43:08,000 --> 00:43:11,000 į tai, kas vyksta čia, kai mes žiūrime į mūsų Apsukite metalinis garsas komandą, 630 00:43:11,000 --> 00:43:15,000 ką mes turime, tai mūsų šaltinio kodas failą čia. 631 00:43:15,000 --> 00:43:18,000 Tai yra kompiliatoriaus vėliavėles krūva. 632 00:43:18,000 --> 00:43:22,000 Ir tada pačiame gale, tai-l vėliavos nuorodą 633 00:43:22,000 --> 00:43:30,000 faktiniai dvejetainiai failai 2 bibliotekos, CS50 bibliotekos ir matematikos biblioteka. 634 00:43:30,000 --> 00:43:35,000 >> Suprasti kiekvieno tipo failus "Tikslas 635 00:43:35,000 --> 00:43:38,000 rengimo procese yra tai, ką jūs norite, kad būtų galima 636 00:43:38,000 --> 00:43:43,000 pateikiama bent jau aukšto lygio apžvalga. 637 00:43:43,000 --> 00:43:46,000 Išeitinis kodas Įgijusi Objekto kodas išeina. 638 00:43:46,000 --> 00:43:53,000 Objekto kodas failai susieti kartu, ir jums gražus, vykdomąjį failą. 639 00:43:53,000 --> 00:43:55,000 Cool. 640 00:43:55,000 --> 00:43:58,000 Čia taip pat galite gauti klaidos kelių taškų 641 00:43:58,000 --> 00:44:00,000 rengimo procese. 642 00:44:00,000 --> 00:44:04,000 Tai vieta, kur, pavyzdžiui, jei imti šio vienijančio vėliava 643 00:44:04,000 --> 00:44:10,000 CS50 vėliava, ir jūs praleisti jį erdvėse arba kai jūs naudojate savo kodą, 644 00:44:10,000 --> 00:44:13,000 tai yra, kai gausite klaidą susiejimo etape, 645 00:44:13,000 --> 00:44:18,000 ir Linker sako: "Ei, tu vadinamas funkcija GetString 646 00:44:18,000 --> 00:44:20,000 tai CS50 bibliotekoje ". 647 00:44:20,000 --> 00:44:25,000 "Jūs man pasakė jis buvo CS50 bibliotekoje, ir aš negaliu rasti kodą". 648 00:44:25,000 --> 00:44:28,000 Štai kur jūs turite sujungti jį, ir tai yra atskiras 649 00:44:28,000 --> 00:44:33,000 iš kompiliatorius klaida, nes kompiliatorius žiūri sintaksė ir kad daiktų rūšis. 650 00:44:33,000 --> 00:44:38,000 Tai gerai, kad žinoti, kas vyksta, kai. 651 00:44:38,000 --> 00:44:42,000 >> Kiti dalykai, kuriuos reikia žinoti apie. 652 00:44:42,000 --> 00:44:49,000 Sakyčiau, jūs tikrai norite pažvelgti Jordano, padaryti trumpas typecasting 653 00:44:49,000 --> 00:44:55,000 suprasti, kas int yra po gaubtu, 654 00:44:55,000 --> 00:44:58,000 ką simbolių yra po gaubtu. 655 00:44:58,000 --> 00:45:02,000 Kai kalbame apie ASCII ir mes iš tikrųjų pažvelgti ASCII lentelę, 656 00:45:02,000 --> 00:45:07,000 tai, ką daro, suteikia mums po gaubtu atrodo 657 00:45:07,000 --> 00:45:13,000 kaip kompiuteris iš tiesų atstovauja kapitalą ir skaitmuo 7 658 00:45:13,000 --> 00:45:17,000 ir kableliai ir klaustukas. 659 00:45:17,000 --> 00:45:20,000 Kompiuteris taip pat turi ypatingų būdų atstovauti 660 00:45:20,000 --> 00:45:23,000 numeris 7 kaip sveikasis skaičius. 661 00:45:23,000 --> 00:45:27,000 Jis turi ypatingą būdą atstovauti 7 kaip slankiojo kablelio skaičius, 662 00:45:27,000 --> 00:45:29,000 ir jie yra labai skirtingi. 663 00:45:29,000 --> 00:45:32,000 Typecasting, kaip jūs pasakyti, kad kompiuteris "Ei, aš noriu jums konvertuoti 664 00:45:32,000 --> 00:45:37,000 kitą atstovavimo iš vienos atstovavimo ". 665 00:45:37,000 --> 00:45:40,000 Kodėl mes tuo išvaizdą. 666 00:45:40,000 --> 00:45:44,000 >> Aš taip pat imtis ne dėl bibliotekų trumpas ir trumpas kompiliatorius išvaizdą. 667 00:45:44,000 --> 00:45:47,000 Tiems, apie rengimo proceso aptarimas, 668 00:45:47,000 --> 00:45:53,000 biblioteka yra, ir eiti per kai kuriuos iš šių klausimų, kad jūs galite gauti paprašė. 669 00:45:53,000 --> 00:45:55,000 Turite klausimų apie savaitę 1 medžiagas? 670 00:45:55,000 --> 00:46:03,000 Ar yra kokių nors čia temų, kad, atrodo nelengvas norite padengti? 671 00:46:03,000 --> 00:46:07,000 Aš bandau smūgis per labiausiai iš šių ankstesnių temų, kad mes galime gauti 672 00:46:07,000 --> 00:46:13,000 nurodymus ir padaryti šiek tiek rekursijos. 673 00:46:13,000 --> 00:46:15,000 Mintys? 674 00:46:15,000 --> 00:46:19,000 Viskas, ką padengti? 675 00:46:19,000 --> 00:46:21,000 Kai šokolado gal laikas? 676 00:46:21,000 --> 00:46:23,000 Jus vaikinai dirba per ją. 677 00:46:23,000 --> 00:46:26,000 Aš ruošiuosi išlaikyti gurkšnojant mano kavos. 678 00:46:26,000 --> 00:46:31,000 Per savaitę 2. 679 00:46:31,000 --> 00:46:34,000 Teisingai, geras skambutis. 680 00:46:34,000 --> 00:46:38,000 Savaitė 2 kalbėjome šiek tiek daugiau apie funkcijas. 681 00:46:38,000 --> 00:46:43,000 >> Per pirmąsias kelias problemines rinkinių mes ne tikrai rašyti kokias nors savo funkcijas 682 00:46:43,000 --> 00:46:45,000 nei kuri funkcija? 683 00:46:45,000 --> 00:46:47,000 [Studentų] Pagrindinis >> Main, tiksliai. 684 00:46:47,000 --> 00:46:51,000 Ir taip mes matėme skirtingus kostiumus, kad pagrindinis nešioja. 685 00:46:51,000 --> 00:46:54,000 Yra vienas, per kuriuos jis jokių argumentų, 686 00:46:54,000 --> 00:46:58,000 ir mes tiesiog pasakyti negaliojančiu tarp skliausteliuose, 687 00:46:58,000 --> 00:47:01,000 ir ten kitas, kur mes norime imtis komandinės eilutės argumentai, 688 00:47:01,000 --> 00:47:08,000 kaip matėme, tai kur jūs turite int argc ir styginių argv masyvas 689 00:47:08,000 --> 00:47:13,000 ar dabar, kad mes iš tikrųjų patyrė sąlytį eilutę char *, kad ji yra 690 00:47:13,000 --> 00:47:20,000 mes ketiname pradėti rašyti jį kaip char * argv ir tada skliausteliuose. 691 00:47:20,000 --> 00:47:22,000 Problemą, 3, jus vaikinai pamatė funkcijų krūva, 692 00:47:22,000 --> 00:47:27,000 ir įgyvendino funkcijų krūva, parengti, ieškoti, peštynės. 693 00:47:27,000 --> 00:47:31,000 Prototipai buvo ten parašyta, už jus. 694 00:47:31,000 --> 00:47:33,000 >> Ką aš norėjau kalbėti apie čia veikia tikrai greitai 695 00:47:33,000 --> 00:47:38,000 , kad yra 3 dalys jiems, kai jums reikia parašyti funkciją. 696 00:47:38,000 --> 00:47:43,000 Turite nurodyti grąžinimo tipo funkcija. 697 00:47:43,000 --> 00:47:46,000 Turite nurodyti funkcijos pavadinimą, ir tada jūs turite nurodyti 698 00:47:46,000 --> 00:47:51,000 argumentu sąrašas arba parametrų sąrašas. 699 00:47:51,000 --> 00:47:57,000 Pavyzdžiui, jei aš buvo parašyti funkciją, apibendrinti sveikųjų skaičių krūva 700 00:47:57,000 --> 00:48:03,000 ir tada grįžti į mane sumą, kas būtų mano grįžimo tipo 701 00:48:03,000 --> 00:48:06,000 jei aš norėjau apibendrinti sveikieji skaičiai ir tada grąžinti sumą? 702 00:48:06,000 --> 00:48:12,000 Tada funkcijos pavadinimas. 703 00:48:12,000 --> 00:48:27,000 Jei aš einu į priekį ir rašyti žalia spalva, ši dalis yra grįžimo tipo. 704 00:48:27,000 --> 00:48:34,000 Ši dalis yra pavadinimas. 705 00:48:34,000 --> 00:48:40,000 Ir tada tarp skliausteliuose 706 00:48:40,000 --> 00:48:46,000 kur aš pateikti argumentus, 707 00:48:46,000 --> 00:48:56,000 args, kartais vadinama params parametrams dažnai trumpinamas kaip. 708 00:48:56,000 --> 00:49:00,000 Ir, jei turite vieną, jums tiesiog nurodyti vieną. 709 00:49:00,000 --> 00:49:06,000 Jei turite kelis atskirkite juos kableliais. 710 00:49:06,000 --> 00:49:13,000 Ir kiekvieną argumentą, jūs suteikiate jai 2 dalykus, kurie yra-Kevin? 711 00:49:13,000 --> 00:49:18,000 [Kevin] Jūs turite duoti tipą ir tada pavadinimą. 712 00:49:18,000 --> 00:49:21,000 Ir tada vardas, vardas, pavardė, vardas, kad jūs ketinate naudoti 713 00:49:21,000 --> 00:49:25,000 perduoti į šį argumentą per SUM funkcija 714 00:49:25,000 --> 00:49:27,000 per funkcija, kad jūs šiuo metu rašote. 715 00:49:27,000 --> 00:49:32,000 >> Jūs neturite pavyzdžiui, jei aš Apibendrinant, 716 00:49:32,000 --> 00:49:41,000 pasakyti, sveikieji skaičiai-Mes masyvas padaryti int masyvas, 717 00:49:41,000 --> 00:49:46,000 ir aš duosiu sau keletą garbanotas petnešos yra 718 00:49:46,000 --> 00:49:51,000 tada, kai aš pereiti masyvą su SUM funkcija 719 00:49:51,000 --> 00:49:55,000 Aš perduoti jį argumentų sąrašo pirmoje pozicijoje. 720 00:49:55,000 --> 00:49:59,000 Bet matrica, kad galiu perduoti neturi turėti pavadinimą Atv. 721 00:49:59,000 --> 00:50:07,000 Atv bus, kaip aš į šį argumentą per kūno funkcijos. 722 00:50:07,000 --> 00:50:10,000 Kitas dalykas, kad mes turime atsižvelgti į tai, 723 00:50:10,000 --> 00:50:14,000 , o tai yra šiek tiek skiriasi nuo funkcijų, bet aš manau, kad tai svarbus klausimas, 724 00:50:14,000 --> 00:50:20,000 yra tai, kad C, kai aš rašau kaip šis funkciją 725 00:50:20,000 --> 00:50:29,000 kaip man žinoti, kiek šio masyvo elementai yra? 726 00:50:29,000 --> 00:50:31,000 Tai yra šiek tiek apgauti klausimą. 727 00:50:31,000 --> 00:50:35,000 Mes kalbėjome apie tai šiek tiek praeitą savaitę skyriuje. 728 00:50:35,000 --> 00:50:40,000 Kaip man žinoti, viduje C masyvo elementais? 729 00:50:40,000 --> 00:50:44,000 Ar yra būdas? 730 00:50:44,000 --> 00:50:49,000 >> Paaiškėja, kad nėra jokio būdo sužinoti. 731 00:50:49,000 --> 00:50:52,000 Turite išlaikyti jį atskirai. 732 00:50:52,000 --> 00:50:55,000 Yra apgauti, kad jūs galite padaryti 733 00:50:55,000 --> 00:51:00,000 jei jūs į tą pačią funkciją, kurioje buvo paskelbtas masyvas, 734 00:51:00,000 --> 00:51:04,000 ir dirbate su kamino masyvo. 735 00:51:04,000 --> 00:51:06,000 Bet tai veikia tik tada, jei esate į tą pačią funkciją. 736 00:51:06,000 --> 00:51:09,000 Vieną kartą praeiti masyvą kitos funkcijos arba jei jūs paskelbė masyvą 737 00:51:09,000 --> 00:51:12,000 ir jūs galėsite įdėti, kad masyvas krūvą, jūs naudojote malloc 738 00:51:12,000 --> 00:51:15,000  ir panašūs dalykai, tada visi statymai yra išjungti. 739 00:51:15,000 --> 00:51:18,000 Tada jūs iš tikrųjų turi aplenkti 740 00:51:18,000 --> 00:51:21,000 specialus argumentas ar kitas parametras 741 00:51:21,000 --> 00:51:23,000 sakau jums, kaip didelis masyvas. 742 00:51:23,000 --> 00:51:28,000 Šiuo atveju, aš noriu naudoti kableliais ı'm Atsiprašome, jis vyksta nuo ekrano čia 743 00:51:28,000 --> 00:51:32,000 ir aš važiuoti, dar vienas argumentas, 744 00:51:32,000 --> 00:51:40,000  ir vadina jį int ilg ilgio. 745 00:51:40,000 --> 00:51:44,000 >> Vienas dalykas, kad gali sugalvoti viktorinoje 746 00:51:44,000 --> 00:51:49,000 klausia jums rašyti ar įgyvendinti tam tikrą funkciją, vadinamą kažkas. 747 00:51:49,000 --> 00:51:54,000 , Jei mes negalime suteikti jums prototipą, todėl visas šis dalykas čia, 748 00:51:54,000 --> 00:51:58,000 visa ši netvarka yra vadinama funkcija deklaraciją arba funkcijos prototipas, 749 00:51:58,000 --> 00:52:01,000 tai yra vienas iš pirmųjų dalykų, kad jūs norite priremti prie sienos, jei ji nėra suteikta 750 00:52:01,000 --> 00:52:03,000 jums iš karto viktorinoje. 751 00:52:03,000 --> 00:52:06,000 Kitas triukas, aš sužinojau, kad 752 00:52:06,000 --> 00:52:11,000 sako, kad mes duoti jums funkcijos prototipas, ir mes galime pasakyti: "Ei, jūs turite jį įrašyti." 753 00:52:11,000 --> 00:52:16,000 Viduje garbanotas petnešos, kad jūs turite viktorinoje 754 00:52:16,000 --> 00:52:20,000 jei jūs pastebėsite, kad yra grįžimo tipo ir pastebite, kad grįžimo tipas 755 00:52:20,000 --> 00:52:25,000 yra kažkas kita, nei tuštumos, o tai reiškia, kad funkcija negrąžina nieko, 756 00:52:25,000 --> 00:52:28,000 tada vienas dalykas, jūs tikrai norite padaryti, tai parašyti 757 00:52:28,000 --> 00:52:33,000 kai Grizimas rūšiuoti funkcija pačioje pabaigoje. 758 00:52:33,000 --> 00:52:40,000 Grąža, ir šiuo atveju, mes įdėti tuščią, nes mes norime užpildyti tuščią. 759 00:52:40,000 --> 00:52:44,000 Bet tai pasireiškia jūs galvojate tinkamu būdu apie tai, kaip aš ketina kreiptis į šią problemą? 760 00:52:44,000 --> 00:52:49,000 Ir ji primena jums, jūs ketinate turi grąžinti reikšmę 761 00:52:49,000 --> 00:52:51,000 skambinančiajam funkcijos. 762 00:52:51,000 --> 00:52:54,000 >> Taip. >> [Studentų] Ar stilius, kai mes rašome kodą viktorina? 763 00:52:54,000 --> 00:52:58,000 Tokie kaip atitraukimą, kad daiktų rūšis? >> [Studentų] Yeah. 764 00:52:58,000 --> 00:53:00,000 Ne, ne tiek daug. 765 00:53:00,000 --> 00:53:09,000 Manau, kad daug-tai yra tai, ką mes paaiškinti viktorinoje dieną, 766 00:53:09,000 --> 00:53:15,000 bet paprastai nerimauti # apima ir panašūs dalykai, tai tipo iš išorės. 767 00:53:15,000 --> 00:53:17,000 [Studentų] Ar norite komentuoti ranka kodą? 768 00:53:17,000 --> 00:53:19,000 Ar norite komentuoti savo ranka kodą? 769 00:53:19,000 --> 00:53:24,000 Komentuodamas visada yra gera, jei esate susirūpinę dalinė kredito 770 00:53:24,000 --> 00:53:29,000 arba norite pranešti apie savo ketinimą į rūšiuotojas. 771 00:53:29,000 --> 00:53:33,000 Bet aš, dar kartą, bus aiškiau viktorina viktorina dieną, 772 00:53:33,000 --> 00:53:39,000 bet aš nemanau, kad jūs būsite Norėdami rašyti komentarus, ne. 773 00:53:39,000 --> 00:53:42,000 Paprastai nėra, bet tai tikrai dalykas rūšiuoti, kai 774 00:53:42,000 --> 00:53:45,000 galite bendrauti savo ketinimus, pavyzdžiui, "Ei, tai kur aš einu su juo." 775 00:53:45,000 --> 00:53:49,000 O kartais, kad gali padėti su daline kredito. 776 00:53:49,000 --> 00:53:51,000 Cool. 777 00:53:51,000 --> 00:53:53,000 >> Bazilikas. 778 00:53:53,000 --> 00:53:56,000 [Bazilikas] Koks skirtumas tarp deklaravimo, tarkim, int lang lang lang 779 00:53:56,000 --> 00:54:03,000 kintamąjį per funkcija skelbiantis argumentus ar parametrų palyginti su? 780 00:54:03,000 --> 00:54:05,000 Oho, kavos sumažėjo trachėjos. 781 00:54:05,000 --> 00:54:07,000 [Bazilikas] Kaip ir ką mes norime įdėti į argumentus. 782 00:54:07,000 --> 00:54:09,000 Taip, tai puikus klausimas. 783 00:54:09,000 --> 00:54:11,000 Kaip jums pasirinkti, ką jūs norite įdėti į pateiktus argumentus 784 00:54:11,000 --> 00:54:17,000 , palyginti su tai, ką, ką jums reikia padaryti viduje funkcijos? 785 00:54:17,000 --> 00:54:24,000 Šiuo atveju mes abu jie kaip argumentus 786 00:54:24,000 --> 00:54:29,000 nes jie yra kažkas, kad kiekvienas, kuris ketina pasinaudoti SUM funkcija 787 00:54:29,000 --> 00:54:32,000 turi nurodyti šiuos dalykus. 788 00:54:32,000 --> 00:54:35,000 >> Suma funkcija, kaip mes kalbėjome apie tai neturi žinoti kelią 789 00:54:35,000 --> 00:54:40,000 kaip didelis masyvas gauna iš savo skambinančiojo ar kas naudoja SUM funkcija. 790 00:54:40,000 --> 00:54:44,000 Jis neturi žinoti, kaip didelis, kad masyvas yra būdas. 791 00:54:44,000 --> 00:54:48,000 Priežastis, kodėl mes išlaikyti šio ilgio, čia kaip argumentas 792 00:54:48,000 --> 00:54:51,000 yra todėl, kad kažkas, kad mes iš esmės pasakoja funkcijos skambinantįjį, 793 00:54:51,000 --> 00:54:55,000 kas ketina pasinaudoti funkcija SUM, "Ei, ne tik jūs turite duoti mums masyvą 794 00:54:55,000 --> 00:54:59,000 int, jūs taip pat turite pasakyti mums, kaip didelis masyvas, kad jūs mums davė. " 795 00:54:59,000 --> 00:55:03,000 [Bazilikas] Tie, bus ir komandinės eilutės argumentai? 796 00:55:03,000 --> 00:55:06,000 Ne, tai yra faktiniai argumentai, kad galėtumėte pereiti į funkciją. 797 00:55:06,000 --> 00:55:10,000 >> Leiskite man daryti naują puslapį. 798 00:55:10,000 --> 00:55:13,000 [Bazilikas] Kaip pavadinimas būtų perduoti 799 00:55:13,000 --> 00:55:24,000 [Nate H.] Jeigu aš turiu int main (void) 800 00:55:24,000 --> 00:55:27,000 ir aš ruošiuosi įdėti į mano return 0 čia apačioje, 801 00:55:27,000 --> 00:55:31,000 ir pasakyti, kad norite skambinti SUM funkcija. 802 00:55:31,000 --> 00:55:42,000 Noriu pasakyti, int x = SUM (); 803 00:55:42,000 --> 00:55:46,000 Norėdami naudoti SUM funkcija, turiu išlaikyti tiek masyvo, kad aš noriu Apibendrinant 804 00:55:46,000 --> 00:55:51,000 ir masyvo ilgis, todėl tai yra ten, kur 805 00:55:51,000 --> 00:55:54,000 darant prielaidą, kad aš turėjau int masyvas, 806 00:55:54,000 --> 00:56:12,000 pasakyti, kad aš turėjo int numbaz [] = 1, 2, 3, 807 00:56:12,000 --> 00:56:16,000 rūšies naudoti, kad nulaužė iki sintaksę teisę ten, 808 00:56:16,000 --> 00:56:21,000 tada, ką noriu daryti, yra suma, aš noriu perduoti 809 00:56:21,000 --> 00:56:27,000 tiek numbaz ir numeris 3 810 00:56:27,000 --> 00:56:30,000 pasakyti SUM funkcija "Gerai, štai masyvas, aš noriu jums apibendrinti". 811 00:56:30,000 --> 00:56:34,000 "Štai jo dydį." 812 00:56:34,000 --> 00:56:39,000 Ar tai prasminga? Ar, kad atsakyti į jūsų klausimą? 813 00:56:39,000 --> 00:56:42,000 >> Daugeliu atžvilgių jis veikia lygiagrečiai, ką mes darome su pagrindinis 814 00:56:42,000 --> 00:56:44,000 kai mes turime perduoti komandinės eilutės argumentai. 815 00:56:44,000 --> 00:56:47,000 , Kaip Cezario šifravimo programa, kad, pavyzdžiui, reikia 816 00:56:47,000 --> 00:56:53,000 negalėtų nieko daryti, komandinės eilutės argumentai. 817 00:56:53,000 --> 00:56:57,000 Ji negalėjo žinoti, kaip užšifruoti, jei tu negali pasakyti, kokį klavišą, kad naudoti 818 00:56:57,000 --> 00:57:03,000 arba, jei tu negali pasakyti, kokia eilutė jums norėjo užšifruoti. 819 00:57:03,000 --> 00:57:08,000 Paskatino indėlio, tai yra, kai mes turime 2 skirtingus mechanizmus 820 00:57:08,000 --> 00:57:14,000 indėlį į nuo vartotojo, informaciją iš vartotojo. 821 00:57:14,000 --> 00:57:19,000 Problemų, nes Set 1 mes matėme šį GetInt, GetString, GetFloat būdas 822 00:57:19,000 --> 00:57:26,000 paskatino įvesties, ir tai vadinama naudojant standartinę įvesties srautą. 823 00:57:26,000 --> 00:57:28,000 Tai šiek tiek skiriasi. 824 00:57:28,000 --> 00:57:31,000 Tai kažkas, kad jūs galite padaryti vienu metu, o ne 825 00:57:31,000 --> 00:57:35,000 kai jūs remtis programą, kai paleidžiate programa veikia. 826 00:57:35,000 --> 00:57:41,000 Perduoti komandinės eilutės argumentai yra nurodyti, kai paleidžiate programa veikia. 827 00:57:41,000 --> 00:57:47,000 Mes buvo sumaišant iš šių dviejų. 828 00:57:47,000 --> 00:57:52,000 Kai mes naudojame argumentus prie funkcijos, tai panašiai kaip komandinės eilutės argumentai pagrindinis. 829 00:57:52,000 --> 00:57:56,000 Tai kai jūs remtis funkciją, kurią reikia pasakyti, 830 00:57:56,000 --> 00:58:05,000 kas tiksliai tai reikia, kad galėtų vykdyti savo užduotis. 831 00:58:05,000 --> 00:58:08,000 Kitas geras dalykas, pažvelgti ir aš jums pažvelgti į savo laisvalaikį, 832 00:58:08,000 --> 00:58:11,000 ir ji buvo taikoma viktorinoje buvo tą taikymo sąvoka 833 00:58:11,000 --> 00:58:15,000 ir vietos kintamieji, palyginti su globalių kintamųjų. 834 00:58:15,000 --> 00:58:18,000 Ar atkreipti dėmesį į tai, kad. 835 00:58:18,000 --> 00:58:23,000 >> Dabar, kai mes gauti šios kitų dalykų, 836 00:58:23,000 --> 00:58:27,000 3 savaitė pradėjome kalbėti apie paieškos ir rūšiavimo. 837 00:58:27,000 --> 00:58:32,000 Paieškos ir rūšiavimo, bent jau CS50, 838 00:58:32,000 --> 00:58:39,000 yra labai daug įvadas į kai kurių daugiau teorinių dalių kompiuterių mokslo. 839 00:58:39,000 --> 00:58:42,000 Paieškai problema, rūšiavimo problema 840 00:58:42,000 --> 00:58:46,000 yra didelis, kanoninės problemos. 841 00:58:46,000 --> 00:58:52,000 Kaip jums rasti tam tikrą skaičių milijardų sveikieji skaičiai masyvo? 842 00:58:52,000 --> 00:58:55,000 Kaip jums rasti konkretų pavadinimą viduje telefonų knygos 843 00:58:55,000 --> 00:58:59,000 kad saugoma kompiuteryje? 844 00:58:59,000 --> 00:59:04,000 Ir taip mes pristatyti šią sąvoką asimptotinio veikimo laikais 845 00:59:04,000 --> 00:59:11,000 tikrai apskaičiuoti, kaip ilgai, kaip sunku tai problema, 846 00:59:11,000 --> 00:59:14,000 kaip ilgai jie imasi spręsti. 847 00:59:14,000 --> 00:59:20,000 , Manau,, 2011 "viktorina yra problema, kad aš manau, nusipelno 848 00:59:20,000 --> 00:59:27,000 labai greitai, kuris yra tai viena, 12 problema. 849 00:59:27,000 --> 00:59:32,000 O ne, tai Omega. 850 00:59:32,000 --> 00:59:41,000 >> Čia mes kalbame apie greičiausią vykdymo metu 851 00:59:41,000 --> 00:59:46,000 tam tikrą algoritmą, ir tada minimaliai įmanomą veikimo laikas. 852 00:59:46,000 --> 00:59:52,000 Tai Omega ir O tikrai tik nuorodos. 853 00:59:52,000 --> 00:59:55,000 Jie notacijos klavišai už sakydamas 854 00:59:55,000 --> 00:59:59,000 kaip greitai geriausiu įmanomu atveju bus mūsų algoritmas paleisti, 855 00:59:59,000 --> 01:00:06,000 ir kaip lėtai blogiausiu įmanomu atveju mūsų algoritmas paleisti? 856 01:00:06,000 --> 01:00:10,000 Darykime porą iš jų, ir jie taip pat apima 857 01:00:10,000 --> 01:00:13,000 trumpas asimptotinio notacijos, kurį aš labai rekomenduoju. 858 01:00:13,000 --> 01:00:17,000 Jackson padarė tikrai gerą darbą. 859 01:00:17,000 --> 01:00:23,000 Dvejetainis paieškos, mes kalbame apie dvejetainis paieškos algoritmas yra, 860 01:00:23,000 --> 01:00:28,000 ir mes paprastai kalbėti apie tai savo didžiojo O. 861 01:00:28,000 --> 01:00:30,000 Kas yra big O? 862 01:00:30,000 --> 01:00:34,000 Kas yra lėčiausias priklausantis dvejetainis paieškos laiką? 863 01:00:34,000 --> 01:00:36,000 [Studentų] N ²? 864 01:00:36,000 --> 01:00:41,000 Uždaryti, aš manau, panašus į. 865 01:00:41,000 --> 01:00:43,000 Tai daug greičiau nei, kad. 866 01:00:43,000 --> 01:00:45,000 [Studentų] Dvejetainis? >> Aha, dvejetainis paieškos. 867 01:00:45,000 --> 01:00:47,000 [Studentų] Tai log n. 868 01:00:47,000 --> 01:00:49,000 Log n, todėl ką log n reiškia? 869 01:00:49,000 --> 01:00:51,000 Tai dvigubai kiekvienos iteracijos. 870 01:00:51,000 --> 01:00:56,000 Tiksliai, todėl minimaliai įmanomą atveju, 871 01:00:56,000 --> 01:01:00,000 pasakyti, jei turite surūšiuoti masyvas 872 01:01:00,000 --> 01:01:08,000 milijono sveikieji skaičiai ir skaičių jūs ieškote 873 01:01:08,000 --> 01:01:14,000 yra arba labai pirmasis elementas masyve arba paskutinės elementas masyve. 874 01:01:14,000 --> 01:01:18,000 Atminkite, kad dvejetainis paieškos algoritmas veikia žiūri viduryje elementas, 875 01:01:18,000 --> 01:01:21,000 pamatyti, jei tai rungtynės, kad jūs ieškote. 876 01:01:21,000 --> 01:01:23,000 Jei taip, tai tada puiku, jūs ją radau. 877 01:01:23,000 --> 01:01:27,000 >> Geriausiu įmanomu atveju, kaip greitai veikia dvejetainis paieškos paleisti? 878 01:01:27,000 --> 01:01:29,000 [Studentai] 1. 879 01:01:29,000 --> 01:01:32,000 1, nuolatinio laiko, didelis O 1. Taip. 880 01:01:32,000 --> 01:01:36,000 [Studentų] Turiu klausimą. Kai jūs sakote, prisijunkite n, turite galvoje pagrindo 2, tiesa? 881 01:01:36,000 --> 01:01:40,000 Taip, todėl, kad kitas dalykas. 882 01:01:40,000 --> 01:01:44,000 Mes sakome, log n, ir aš manau, kai man buvo vidurinėje mokykloje 883 01:01:44,000 --> 01:01:48,000 Aš visada manė, kad žurnalas buvo pagrindas 10. 884 01:01:48,000 --> 01:01:57,000 Taip, taip taip, prisijungti, pagrindo 2 paprastai yra tai, ką mes naudojame. 885 01:01:57,000 --> 01:02:02,000 Dar kartą, grįžta į dvejetainis paieškos, jei jūs ieškote arba 886 01:02:02,000 --> 01:02:05,000 elementas pačioje pabaigoje arba elementas pačioje pradžioje, 887 01:02:05,000 --> 01:02:08,000 nes paleidus viduryje ir tada išmesdami 888 01:02:08,000 --> 01:02:13,000 priklausomai nuo to, 1/2 neatitinka kriterijų, kad jūs ieškote, 889 01:02:13,000 --> 01:02:15,000 ir jūs einate į kitą pusę ir į kitą pusę, o kitą pusę. 890 01:02:15,000 --> 01:02:19,000 Jei aš ieškoti didžiausių elementas mln integer masyvas 891 01:02:19,000 --> 01:02:25,000 Aš ruošiuosi perpus sumažinti ne daugiau kaip 1 milijoną kartų žurnale 892 01:02:25,000 --> 01:02:28,000 kol aš pagaliau išbandyti ir pamatyti, kad elementas Aš ieškau 893 01:02:28,000 --> 01:02:33,000 yra didžiausia arba į aukščiausią masyvo indekso, 894 01:02:33,000 --> 01:02:38,000 ir kad imsis n žurnalą, prisijunkite 1 milijoną kartų. 895 01:02:38,000 --> 01:02:40,000 >> Burbulas rūšiuoti. 896 01:02:40,000 --> 01:02:43,000 Ar jus vaikinai prisiminti burbulo rikiavimo algoritmas? 897 01:02:43,000 --> 01:02:47,000 Kevin, jūs galite duoti man greitai Priminti, kas atsitiko burbulas rūšiavimo algoritmas? 898 01:02:47,000 --> 01:02:50,000 [Kevin] Iš esmės jis eina per visus sąraše. 899 01:02:50,000 --> 01:02:52,000 Jis žiūri į pirmųjų dviejų. 900 01:02:52,000 --> 01:02:55,000 Jei pirmasis yra didesnis nei antrąjį jis apsikeitimo sandorių juos. 901 01:02:55,000 --> 01:02:58,000 Tada ji lygina Antra ir trečia, tą patį, apsikeitimo sandoriai, 902 01:02:58,000 --> 01:03:00,000 trečia ir ketvirta, visą kelią žemyn. 903 01:03:00,000 --> 01:03:03,000 Didesni numeriai sekti iki pabaigos. 904 01:03:03,000 --> 01:03:07,000 Ir po Tačiau daugelis kilpų baigsite. 905 01:03:07,000 --> 01:03:11,000 Tiksliai, todėl tai, ką Kevinas sakė, kad mes žiūrėti didesnius numerius 906 01:03:11,000 --> 01:03:15,000 burbulas iki masyvo pabaigos. 907 01:03:15,000 --> 01:03:19,000 Pavyzdžiui, tu nieko vaikščioti mus per Šiame pavyzdyje, jei tai yra mūsų masyvas? 908 01:03:19,000 --> 01:03:21,000 [Kevin] Jūs Take 2 ir 3. 909 01:03:21,000 --> 01:03:23,000 3 yra didesnis kaip 2, todėl jūs apsikeitimo juos. 910 01:03:23,000 --> 01:03:29,000 [Nate H.] Teisė, todėl mes apsikeitimo jų ir taip mes 2, 3, 6, 4, ir 9. 911 01:03:29,000 --> 01:03:31,000 [Kevin] Tada jūs palyginkite 3 ir 6. 912 01:03:31,000 --> 01:03:33,000 3 yra mažesnis nei 6, todėl jūs juos palikti, 913 01:03:33,000 --> 01:03:37,000 6 ir 4, norite apsikeitimo juos, nes 4 dalis, yra mažesnis nei 6. 914 01:03:37,000 --> 01:03:42,000 [Nate H.] Teisė, todėl man 2, 3, 4, 6, 9. 915 01:03:42,000 --> 01:03:46,000 [Kevin] ir 9 pakeitimų yra didesnis nei 6, todėl jūs palikti jį. 916 01:03:46,000 --> 01:03:48,000 Ir norite grįžti per jį dar kartą. 917 01:03:48,000 --> 01:03:50,000 >> [Nate H.] Ar aš šiuo metu? >> [Kevin] L. 918 01:03:50,000 --> 01:03:52,000 Ir kodėl aš ne šiuo metu? 919 01:03:52,000 --> 01:03:54,000 , Nes jis atrodo kaip mano masyvas yra rūšiuojama. Aš žiūri į jį. 920 01:03:54,000 --> 01:03:57,000 [Kevin] Eiti per jį dar kartą ir įsitikinkite, kad yra ne daugiau apsikeitimo sandoriai 921 01:03:57,000 --> 01:04:00,000 prieš jūs galite visiškai sustoti. 922 01:04:00,000 --> 01:04:04,000 Tiksliai, todėl jums reikia nesustoti ir įsitikinkite, kad nėra apsikeitimo sandoriai 923 01:04:04,000 --> 01:04:06,000 kad jūs galite padaryti šiuo metu. 924 01:04:06,000 --> 01:04:08,000 Tai buvo tikrai tiesiog pasisekė, kaip sakei, kad mes galų gale 925 01:04:08,000 --> 01:04:12,000 tik, kad 1 pro ir mes surūšiuoti. 926 01:04:12,000 --> 01:04:16,000 Bet tai padaryti bendruoju atveju mes iš tikrųjų turime tai daryti vėl ir vėl. 927 01:04:16,000 --> 01:04:20,000 Ir iš tiesų, tai buvo geriausiu įmanomu atveju pavyzdys, 928 01:04:20,000 --> 01:04:24,000 kaip matėme problemos. 929 01:04:24,000 --> 01:04:28,000 Mes matėme, kad geriausias įmanomas atvejis buvo n. 930 01:04:28,000 --> 01:04:32,000 Mes perėjome masyvo 1 kartą. 931 01:04:32,000 --> 01:04:35,000 Kas yra blogiausias atvejis šio algoritmo? 932 01:04:35,000 --> 01:04:37,000 [Kevin] N ². 933 01:04:37,000 --> 01:04:41,000 Ir ką tai atrodyti? Kas būtų masyvas atrodo kaip kad būtų atsižvelgiama n ² laiką? 934 01:04:41,000 --> 01:04:43,000 [Kevin] [nesigirdi] surūšiuoti. 935 01:04:43,000 --> 01:04:51,000 Tiksliai, todėl, jei aš turėjo masyvo 9, 7, 6, 5, 2, 936 01:04:51,000 --> 01:04:54,000 pirma 9 burbulas visą kelią iki. 937 01:04:54,000 --> 01:04:59,000 Po 1 iteracijos mes norime turėti 7, 6, 5, 2, 9. 938 01:04:59,000 --> 01:05:07,000 Po 7 burbulas iki, 6, 5, 2, 7, 9, ir taip toliau ir taip toliau. 939 01:05:07,000 --> 01:05:13,000 >> Mes turėtume eiti per visą masyvą n kartų, 940 01:05:13,000 --> 01:05:16,000 ir jūs iš tikrųjų galite gauti šiek tiek tiksliau, nei tai 941 01:05:16,000 --> 01:05:23,000 , nes kai mes persikėlė 9 visą kelią į savo paskutinę įmanomą padėtį, 942 01:05:23,000 --> 01:05:26,000 mes žinome, kad mes niekada, kad palyginti su šio elemento vėl. 943 01:05:26,000 --> 01:05:29,000 Kai mes pradedame burbuliuoja 7- 944 01:05:29,000 --> 01:05:35,000 mes žinome, kad galime sustabdyti, kai 7 yra tiesiai prieš 9 945 01:05:35,000 --> 01:05:37,000 nes mes jau palygino 9 į jį. 946 01:05:37,000 --> 01:05:46,000 Jei jums tai padaryti protingas būdas tai nėra tikrai, manau, kad daug laiko. 947 01:05:46,000 --> 01:05:49,000 Jūs esate nesiruošia palyginti visus galimus [nesigirdi] kombinacijas 948 01:05:49,000 --> 01:05:55,000 kiekvieną kartą, kai jūs einate per kiekvienos iteracijos. 949 01:05:55,000 --> 01:05:59,000 Bet vis tiek, kai mes kalbame apie tai viršutinė riba mes sakome, kad 950 01:05:59,000 --> 01:06:04,000 jūs žiūrite n ² palyginimai visą kelią. 951 01:06:04,000 --> 01:06:12,000 >> Eikime vėl, ir kadangi mes pradedame gauti šiek tiek trūksta laiko 952 01:06:12,000 --> 01:06:15,000 Sakyčiau, jums tikrai turėtų eiti per likusį šios lentelės, 953 01:06:15,000 --> 01:06:17,000 užpildyti it all out. 954 01:06:17,000 --> 01:06:20,000 Pagalvokite pavyzdžių. Galvoti apie konkrečius pavyzdžius. 955 01:06:20,000 --> 01:06:22,000 Tai tikrai patogu ir naudinga daryti. 956 01:06:22,000 --> 01:06:25,000 Lygiosios jį. 957 01:06:25,000 --> 01:06:28,000 Tai rūšiuoti lentelės, kad, kaip jūs einate per informatikos 958 01:06:28,000 --> 01:06:32,000 jums tikrai turėtų pradėti šias mintinai žinoti. 959 01:06:32,000 --> 01:06:34,000 Tai yra jums gauti interviu, klausimų rūšys. 960 01:06:34,000 --> 01:06:36,000 Tai yra rūšių dalykų, kad yra gera žinoti, 961 01:06:36,000 --> 01:06:41,000 ir galvoti apie tuos krašto atvejų, iš tikrųjų suprasti, kaip galvoti apie 962 01:06:41,000 --> 01:06:45,000 žinant, kad burbulas rūšiuoti blogiausiu įmanomu masyvas 963 01:06:45,000 --> 01:06:52,000 rūšiuoti su yra vienas, kad atvirkštine tvarka. 964 01:06:52,000 --> 01:06:58,000 >> Patarimų. Pakalbėkime šiek tiek apie rodykles. 965 01:06:58,000 --> 01:07:03,000 Per pastaruosius keletą minučių mes turime čia 966 01:07:03,000 --> 01:07:11,000 Aš žinau, tai yra kažkas, kartu failą I / O, kad yra gana nauja. 967 01:07:11,000 --> 01:07:19,000 Kai kalbame apie rodykles todėl norime kalbėti apie rodykles 968 01:07:19,000 --> 01:07:24,000 yra todėl, kad, kai mes dirbame, C 969 01:07:24,000 --> 01:07:33,000 mes tikrai gana žemo lygio, palyginti su dauguma šiuolaikinių programavimo kalbų. 970 01:07:33,000 --> 01:07:38,000 Mes iš tikrųjų galėtų manipuliuoti kintamuosius į atmintį, 971 01:07:38,000 --> 01:07:43,000 išsiaiškinti, kur jie iš tikrųjų esančių mūsų atminties. 972 01:07:43,000 --> 01:07:46,000 Kai jūs nuėjo į operacinių sistemų klases Jūs pamatysite 973 01:07:46,000 --> 01:07:48,000 kad tai, vėlgi, rūšies abstrakcija. 974 01:07:48,000 --> 01:07:50,000 , Kad ne iš tikrųjų. 975 01:07:50,000 --> 01:07:52,000 Mes turime virtualiosios atminties slepiasi šiuos duomenis iš mūsų. 976 01:07:52,000 --> 01:07:58,000 >> Bet dabar galite manyti, kad, kai jūs turite programą, 977 01:07:58,000 --> 01:08:02,000 pavyzdžiui, kai jums pradėti savo Cezario šifro programą 978 01:08:02,000 --> 01:08:06,000 Aš perjungti atgal į mano iPad tikrai greitai 979 01:08:06,000 --> 01:08:12,000 kad pačioje pradžioje savo programą, jei turite, tarkim, 980 01:08:12,000 --> 01:08:15,000 4 GB RAM į savo kompiuterį, 981 01:08:15,000 --> 01:08:21,000 jums atidėti šį gabalą, ir mes tai vadiname RAM. 982 01:08:21,000 --> 01:08:25,000 Ir jis pradeda į vietą, mes ketiname skambinti 0, 983 01:08:25,000 --> 01:08:30,000 ir baigiasi toje pačioje vietoje, kad mes jį vadiname 4 GB. 984 01:08:30,000 --> 01:08:37,000 Aš tikrai negaliu rašyti. Žmogus, kad nulaužė. 985 01:08:37,000 --> 01:08:40,000 , Kai jūsų programa atlieka 986 01:08:40,000 --> 01:08:44,000 operacinė sistema carves RAM, 987 01:08:44,000 --> 01:08:51,000 ir nurodo skirtingus segmentus skirtingų dalių jūsų programos gyvename 988 01:08:51,000 --> 01:08:58,000 Žemyn čia šioje srityje yra rūšies niekieno žemėje. 989 01:08:58,000 --> 01:09:02,000 Kai jums eiti šiek tiek toliau čia 990 01:09:02,000 --> 01:09:05,000 jūs turite iš tikrųjų ta vieta, kur 991 01:09:05,000 --> 01:09:09,000 jūsų programos kodas gyvenime. 992 01:09:09,000 --> 01:09:13,000 Kad faktinis dvejetainis kodas, kad vykdomąjį failą iš tikrųjų bus pakrautas į atmintį 993 01:09:13,000 --> 01:09:17,000 , kai paleidžiate programą, ir jis gyvena kodo segmente. 994 01:09:17,000 --> 01:09:22,000 Ir kaip jūsų programa atlieka procesorius žiūri Šio kodo segmente 995 01:09:22,000 --> 01:09:24,000 išsiaiškinti, kas yra šalia instrukcija? 996 01:09:24,000 --> 01:09:27,000 , Kas yra šalia kodo eilutė man reikia atlikti? 997 01:09:27,000 --> 01:09:31,000 >> Taip pat yra duomenų segmentas, ir tai yra, kai tie styginių konstantos 998 01:09:31,000 --> 01:09:34,000 gauti saugomi, kad jūs naudojate. 999 01:09:34,000 --> 01:09:42,000 Ir tada toliau ten ši vieta vadinama krūvos. 1000 01:09:42,000 --> 01:09:46,000 Access Memory ten naudojant malloc 1001 01:09:46,000 --> 01:09:49,000 ir tada link pačiame viršuje savo programą 1002 01:09:49,000 --> 01:09:52,000 nėra kamino, 1003 01:09:52,000 --> 01:09:57,000 ir tai, kur mes buvo žaisti pradžioje. 1004 01:09:57,000 --> 01:09:59,000 Tai nereiškia, masto arba nieko. 1005 01:09:59,000 --> 01:10:03,000 Daug tai yra labai mašina priklauso nuo 1006 01:10:03,000 --> 01:10:10,000 operacinė sistema priklauso nuo to, bet tai, palyginti, kaip viskas susitvarko chunked iki. 1007 01:10:10,000 --> 01:10:17,000 Paleidus programą, ir jūs deklaruoti kintamasis vadinamas X- 1008 01:10:17,000 --> 01:10:27,000 Aš ruošiuosi padaryti kitą langelį žemiau, ir tai bus RAM, taip pat. 1009 01:10:27,000 --> 01:10:29,000 Ir aš einu ieškoti. 1010 01:10:29,000 --> 01:10:34,000 Mes atkreipti nelygius linijas nurodyti tai tik nedidelė dalis RAM 1011 01:10:34,000 --> 01:10:38,000 ir ne visi apie tai, kaip mes atkreipiame viršuje. 1012 01:10:38,000 --> 01:10:43,000 >> Jei aš paskelbti kintamąjį, vadinama X, 1013 01:10:43,000 --> 01:10:49,000 tada, ką aš iš tikrųjų gauti žemėlapių 1014 01:10:49,000 --> 01:10:54,000 , kuris yra saugomas simbolio mano programa lentelę 1015 01:10:54,000 --> 01:11:00,000 , kuri jungia pavadinimas x šiame atminties regione, kad aš sudarytas 1016 01:11:00,000 --> 01:11:03,000 čia tarp vertikalių strypų. 1017 01:11:03,000 --> 01:11:08,000 Jei turiu kodo eilutę mano programa, kad sako: x = 7 1018 01:11:08,000 --> 01:11:15,000 procesorius žino "O, gerai, aš žinau, kad X gyvena šiame atminties vietos." 1019 01:11:15,000 --> 01:11:25,000 "Aš ruošiuosi eiti į priekį ir ten rašyti 7". 1020 01:11:25,000 --> 01:11:28,000 Kaip ji žino, kokia vieta yra atmintyje? 1021 01:11:28,000 --> 01:11:30,000 Gerai, kad visa tai daroma kompiliavimo metu. 1022 01:11:30,000 --> 01:11:34,000 Kompiliatorius rūpinasi paskirstymo, kur kiekvienas iš kintamųjų ketinate eiti 1023 01:11:34,000 --> 01:11:40,000 ir įsteigti specialų žemėlapių, ar veikiau jungiantis taškus 1024 01:11:40,000 --> 01:11:43,000 tarp simbolio ir kur jis vyksta, kintamojo pavadinimas 1025 01:11:43,000 --> 01:11:46,000 ir kur jis eina gyventi atmintyje. 1026 01:11:46,000 --> 01:11:50,000 Tačiau paaiškėja, kad iš tiesų galime pasiekti mūsų programų taip pat. 1027 01:11:50,000 --> 01:11:55,000 Tai tampa svarbu, kai mes pradedame kalbėti apie kai duomenų struktūrų, 1028 01:11:55,000 --> 01:11:58,000 kuris yra koncepcija, kad mes ketiname pristatyti vėliau. 1029 01:11:58,000 --> 01:12:09,000 >> Bet dabar, ką jūs galite žinoti, kad galiu sukurti rodyklę į šią vietą, x. 1030 01:12:09,000 --> 01:12:12,000 Pavyzdžiui, aš galiu sukurti rodyklę kintamąjį. 1031 01:12:12,000 --> 01:12:16,000 Kai mes sukurti rodyklę kintamąjį mes naudojame žvaigždučių žymėjimą. 1032 01:12:16,000 --> 01:12:21,000 Šiuo atveju, tai sako, kad aš ruošiuosi sukurti žymiklį į int. 1033 01:12:21,000 --> 01:12:24,000 Tai kaip ir bet kokio kito tipo. 1034 01:12:24,000 --> 01:12:27,000 Mes suteikti jai kaip y kintamasis, 1035 01:12:27,000 --> 01:12:32,000 ir tada mes nustatyti, kad jis lygus adreso, adreso. 1036 01:12:32,000 --> 01:12:38,000 Šiuo atveju, mes galime nustatyti Y x 1037 01:12:38,000 --> 01:12:43,000 x adresą, kurį mes darome su šiuo ampersend 1038 01:12:43,000 --> 01:12:55,000 ir tada mes y atkreipti į jį. 1039 01:12:55,000 --> 01:12:59,000 Ką tai iš esmės nėra, jei pažvelgsime į mūsų RAM 1040 01:12:59,000 --> 01:13:02,000 tai sukuria atskirą kintamąjį. 1041 01:13:02,000 --> 01:13:04,000 Ji ketina jį vadinti y, 1042 01:13:04,000 --> 01:13:06,000 ir kai šią kodo eilutę vykdo 1043 01:13:06,000 --> 01:13:13,000 tai iš tikrųjų ketiname sukurti šiek tiek žymiklį, kurią mes paprastai pritraukti kaip strėlė, 1044 01:13:13,000 --> 01:13:15,000 ir jame Y-X. 1045 01:13:15,000 --> 01:13:17,000 Taip. 1046 01:13:17,000 --> 01:13:19,000 [Studentų] Jei x nėra jau rodyklė, jūs tiesiog padaryti 1047 01:13:19,000 --> 01:13:22,000 int * y = x, o ne turintys ampersendo? 1048 01:13:22,000 --> 01:13:24,000 Taip. 1049 01:13:24,000 --> 01:13:27,000 Jei x nėra jau rodyklė, tada jūs galite nustatyti 2 patarimų lygios viena kitai, 1050 01:13:27,000 --> 01:13:30,000 tokiu atveju y nėra susiję su x, 1051 01:13:30,000 --> 01:13:34,000 , bet jis norėtų atkreipti dėmesį į bet x yra nukreipta į. 1052 01:13:34,000 --> 01:13:37,000 Deja, pavėluotai. 1053 01:13:37,000 --> 01:13:44,000 >> Ką aš norėčiau pasakyti šiuo metu, mes galime kalbėti apie šį neprisijungę 1054 01:13:44,000 --> 01:13:49,000 bet aš norėčiau pasakyti, pradėti dirbti per šią problemą, # 14. 1055 01:13:49,000 --> 01:13:53,000 Jūs galite pamatyti, ten jau šiek tiek užpildyti jums čia. 1056 01:13:53,000 --> 01:13:57,000 Galite matyti, kad, kai mes pareiškiame 2 patarimų, int * x * y, 1057 01:13:57,000 --> 01:14:01,000 ir atkreipkite dėmesį, kad nukreipta * šalia kintamojo buvo kažkas, kad buvo padaryta pernai. 1058 01:14:01,000 --> 01:14:05,000 Pasirodo, kad tai yra panašus į ką mes darome šiemet. 1059 01:14:05,000 --> 01:14:11,000 Nesvarbu, kur rašote *, kai jūs skelbiantis žymiklį. 1060 01:14:11,000 --> 01:14:17,000 Bet mes parašėme * šalia tipo 1061 01:14:17,000 --> 01:14:24,000 nes tai labai aiškiai, kad jūs skelbiantis rodyklė kintamąjį. 1062 01:14:24,000 --> 01:14:27,000 Galite matyti, kad deklaruojant 2 patarimų suteikia mums 2 langelius. 1063 01:14:27,000 --> 01:14:31,000 Čia, kai mes nustatome x lygią malloc 1064 01:14:31,000 --> 01:14:34,000 , ką tai sako atidedant krūvos atminties. 1065 01:14:34,000 --> 01:14:41,000 Šis mažas langelis čia, tai apskritimas, įsikūręs ant krūvos. 1066 01:14:41,000 --> 01:14:43,000 X yra nukreipta į jį. 1067 01:14:43,000 --> 01:14:46,000 Atkreipkite dėmesį, kad y yra vis dar nukreipta į ką nors. 1068 01:14:46,000 --> 01:14:50,000 Gauti atmintį įrašykite šį numerį iš 42 į x 1069 01:14:50,000 --> 01:14:55,000 mes naudoti kas žymėjimą? 1070 01:14:55,000 --> 01:14:59,000 [Studentų] * x = 42. 1071 01:14:59,000 --> 01:15:01,000 Tiksliai, * x = 42. 1072 01:15:01,000 --> 01:15:06,000 Tai reiškia, kad rodyklę ir 42 mesti ten. 1073 01:15:06,000 --> 01:15:09,000 Čia, kur mes nustatome y ir x y nukreipta x. 1074 01:15:09,000 --> 01:15:13,000 Vėlgi, tai tik tai, ką Kevinas sakė, kur mes y lygus x. 1075 01:15:13,000 --> 01:15:15,000 Y yra ne nurodydama x. 1076 01:15:15,000 --> 01:15:19,000 Atvirkščiai, ji nukreipta į KAS YRA X nukreipta taip pat. 1077 01:15:19,000 --> 01:15:24,000 >> Ir galiausiai pastaruoju lange galimos 2 dalykų, kad mes galime padaryti. 1078 01:15:24,000 --> 01:15:28,000 Vienas iš jų yra, mes galime pasakyti, * x = 13. 1079 01:15:28,000 --> 01:15:33,000 Kitas dalykas yra, mes galime pasakyti, Aleksas, jūs žinote, ką mes galime padaryti čia? 1080 01:15:33,000 --> 01:15:37,000 Galima sakyti, * x = 13 arba 1081 01:15:37,000 --> 01:15:41,000 [Studentų] Galima sakyti, int whatever. 1082 01:15:41,000 --> 01:15:45,000 [Nate H.] Jei tai buvo perduoti kaip int kintamasis, mes galime tai padaryti. 1083 01:15:45,000 --> 01:15:49,000 Mes taip pat galėtų pasakyti, * y = 13, nes jie abu nukreipta į tą pačią vietą, 1084 01:15:49,000 --> 01:15:51,000 , todėl mes galime naudoti arba kintamasis ten patekti. 1085 01:15:51,000 --> 01:15:56,000 Taip. >> [Studentų] Kas tai atrodys, jei mes tiesiog pasakyti, int x yra 13? 1086 01:15:56,000 --> 01:16:00,000 , Kad būtų skelbiantis naują kintamasis vadinamas X, kuris gali neturėti. 1087 01:16:00,000 --> 01:16:04,000 Mes norime turėti susidūrimo, nes mes, nuo x iki rodyklė čia. 1088 01:16:04,000 --> 01:16:10,000 [Studentų] Jei mes tiesiog turėjo tokį pareiškimą pati kas tai atrodo kaip apskritimo? 1089 01:16:10,000 --> 01:16:14,000 Jei mes turėjome x = 13 tada mes norime turėti langelį, o ne rodyklę 1090 01:16:14,000 --> 01:16:16,000 out of the box, mes norime padaryti tai kaip tik 13. 1091 01:16:16,000 --> 01:16:19,000 [Studentų] Lauke. Gerai. 1092 01:16:19,000 --> 01:16:24,000 >> Dėkojame, kad žiūri, ir geros kloties Viktorina 0. 1093 01:16:24,000 --> 01:16:28,000 [CS50.TV]