1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] David J. Malan: Gerai. 2 00:00:08,160 --> 00:00:11,170 Tai CS50, ir tai yra savaitę du pabaiga. 3 00:00:11,170 --> 00:00:14,650 Jei tikitės, kad būtų alkanas maždaug šiuo metu rytoj, žinau, kad mes ketiname 4 00:00:14,650 --> 00:00:18,920 sušaukti kaip mažoje grupelėje rytoj, ketvirtadienį, 01:15. 5 00:00:18,920 --> 00:00:21,460 Yra toks URL čia, jei norite RSVP. 6 00:00:21,460 --> 00:00:25,270 Erdvė yra ribota, todėl prašome atleisti, jei forma yra užpildyta iki to laiko jūs 7 00:00:25,270 --> 00:00:26,680 užpildyti. 8 00:00:26,680 --> 00:00:29,400 Eilinė URL nors, kad gali būti įdomūs. 9 00:00:29,400 --> 00:00:32,409 >> Taigi, tik apie mėnesį laiko, žinoma, bus prieinama 10 00:00:32,409 --> 00:00:36,090 plačiau per EDX, internete, per kurią žmonės bus 11 00:00:36,090 --> 00:00:39,580 galėtų laikytis kartu, gana aktyviai dalyvauti kurso, iš tikrųjų. 12 00:00:39,580 --> 00:00:43,070 Jie bus naudojant CS50 Appliance ir CS50 aptarti ir dauguma 13 00:00:43,070 --> 00:00:45,840 įvairios programinės įrangos įrankius, mes jau naudojant šį semestrą. 14 00:00:45,840 --> 00:00:49,030 Ir viena iš iniciatyvų, mes norėtume priimti kaip eksperimentą šiemet 15 00:00:49,030 --> 00:00:53,120 yra pamatyti, tik kaip daug turinio, mes galime išversti į kitas kalbėjo ir 16 00:00:53,120 --> 00:00:54,110 rašytines kalbas. 17 00:00:54,110 --> 00:00:58,000 Taigi, jei galite turėti susidomėjimą dalyvauti šiame projekte, pagal kurį 18 00:00:58,000 --> 00:01:02,090 mes suteiksime anglišką išrašai ir subtitrus kursas 19 00:01:02,090 --> 00:01:05,190 paskaitos ir šortai, ir seminarus ir specialieji profiliai ir panašūs - 20 00:01:05,190 --> 00:01:08,700 jei kalbėti laisvai arba laisvai rašyti nors kitą kalbą, mes 21 00:01:08,700 --> 00:01:12,240 patinka užsiimti jums šio projekto, kuriuo iš vienos arba daugiau 22 00:01:12,240 --> 00:01:15,340 video, versti juos į kalbą, žinote, gana gerai. 23 00:01:15,340 --> 00:01:19,050 Norėdami suteikti jums sąsajos jausmą, yra tai interneto vartotojo sąsaja 24 00:01:19,050 --> 00:01:22,330 kad mes naudoti, kad bus sukurti iš esmės kaip tai UI. 25 00:01:22,330 --> 00:01:24,520 Tai buvo man mokyti kai Helovinas prieš. 26 00:01:24,520 --> 00:01:27,710 Ir ten dešinėje pusėje, juoda, šalia šių laiko, 27 00:01:27,710 --> 00:01:31,300 pamatysite įvairių dalykų, kad atėjo iš mano burnos, kad dieną. 28 00:01:31,300 --> 00:01:34,660 Ir tada po juo, jums būtų galima išversti į kurią nors kitą kalbą. 29 00:01:34,660 --> 00:01:37,840 Būtent tai, ko kartografavimo yra tarp jų, šiuo atveju, anglų 30 00:01:37,840 --> 00:01:38,660 ir, pavyzdžiui, ispanų. 31 00:01:38,660 --> 00:01:40,480 Taigi, tai tikrai labai patogus įrankis. 32 00:01:40,480 --> 00:01:43,690 Galite atsukti atgal ir pirmyn labai lengvai naudodami sparčiuosius klaviatūros klavišus. 33 00:01:43,690 --> 00:01:46,710 Taigi, jei norėtumėte dalyvauti šiame eksperimente ir turėti savo žodžius 34 00:01:46,710 --> 00:01:50,730 potencialiai tūkstančiai žmonių ten matyti ir skaityti, prašome jaučiasi 35 00:01:50,730 --> 00:01:51,960 Dalyvavimas nemokamas. 36 00:01:51,960 --> 00:01:56,940 >> Dabar vieną žodį apie nuo pirmadienio kačiukas, kad ne mes išsiuntėme pernelyg 37 00:01:56,940 --> 00:01:58,120 baisu pranešimą. 38 00:01:58,120 --> 00:02:02,130 Suprantate, kad biuro darbo valandomis pasiūlyti ir fasoniniai rodo 39 00:02:02,130 --> 00:02:05,110 dizainas žinoma yra labai daug studentų bendradarbiauja ir 40 00:02:05,110 --> 00:02:09,250 kalbėti kartu dirbti per probleminių rinkinių ir problemas. 41 00:02:09,250 --> 00:02:13,630 Ir tikrai linija tik ateina, dar kartą, jūs galų gale darbo 42 00:02:13,630 --> 00:02:16,420 turėtų pateikti, turėtų būti jūsų pačių. 43 00:02:16,420 --> 00:02:19,080 Ir todėl, gana garbingai - darbo valandų, tai visiškai normalu - 44 00:02:19,080 --> 00:02:21,560 tai visiškai galima tikėtis, net kalbasi su kai 45 00:02:21,560 --> 00:02:22,370 draugą šalia savęs. 46 00:02:22,370 --> 00:02:25,240 Jei jis arba ji kovoja su tam tikru klausimu, ir jūs, pavyzdžiui, oh, na tegul 47 00:02:25,240 --> 00:02:27,750 man duoti jums kai kurių kodo eilutę, kad aš parašiau žvilgsnis. 48 00:02:27,750 --> 00:02:28,290 Tai gerai. 49 00:02:28,290 --> 00:02:28,700 Tai atsitiks. 50 00:02:28,700 --> 00:02:31,580 Ir kad yra labai palanki, manau, su mokymosi procesą. 51 00:02:31,580 --> 00:02:35,270 Jei linija, vėlgi, gauna kirto, kai galva yra tarsi pakreipus per 52 00:02:35,270 --> 00:02:38,800 čia pernelyg daug sekundžių ar minučių, kad tikrai ką tik 53 00:02:38,800 --> 00:02:41,250 atblokavimo galimybė savo draugui. 54 00:02:41,250 --> 00:02:43,870 Ir, žinoma, kai viskas susitvarko keičiamasi elektroniniu paštu ir Dropbox 55 00:02:43,870 --> 00:02:45,350 pavyzdžiui, ten taip pat yra linija. 56 00:02:45,350 --> 00:02:48,940 Taigi visais būdais, jaustis patogiai ir jaučiasi skatinami bendrauti su draugais 57 00:02:48,940 --> 00:02:51,270 ir klasiokų apie psets ir daugiau. 58 00:02:51,270 --> 00:02:54,680 Ir tiesiog suprasti, kad tai, ką jūs galiausiai pateikti tikrai turėtų būti 59 00:02:54,680 --> 00:02:57,780 produktas savo vietas, o ne kažkas kitas. 60 00:02:57,780 --> 00:03:01,010 >> Taigi, ta pačia dvasia Džiugu būtybių, galbūt 61 00:03:01,010 --> 00:03:02,820 žinau, kad šis vyrukas čia. 62 00:03:02,820 --> 00:03:06,180 Taigi tai yra horrifically sūrio filmą iš prieš keletą metų. 63 00:03:06,180 --> 00:03:08,680 Kiekvienas čia matyti Spaceballs? 64 00:03:08,680 --> 00:03:09,120 Gerai. 65 00:03:09,120 --> 00:03:10,220 Taigi nemažai čia. 66 00:03:10,220 --> 00:03:13,840 Taigi tai yra mūsų nuostabiai akademinis būdas įvedant šiandien galiausiai 67 00:03:13,840 --> 00:03:15,130 kriptografijos sąvoka. 68 00:03:15,130 --> 00:03:19,010 Ir taip vienas iš domenų konkrečių problemų, susijusių su 2 pset, kuri bus 69 00:03:19,010 --> 00:03:22,770 pavėluotai rytoj vakare, yra pasinerti į Kriptografija pasaulyje, kuris 70 00:03:22,770 --> 00:03:26,380 yra šifravimo arba kodavimo informaciją menas. 71 00:03:26,380 --> 00:03:30,160 Ir tai galiausiai susijęs su saugumo pasaulyje. 72 00:03:30,160 --> 00:03:34,440 >> Dabar saugumas labiausiai mums yra gana žemiškas mechanizmų. 73 00:03:34,440 --> 00:03:36,920 Visi turime vardus ir slaptažodžius. 74 00:03:36,920 --> 00:03:41,350 Ir visi mes turime labai blogų vardus ir slaptažodžius, greičiausiai. 75 00:03:41,350 --> 00:03:45,250 Jei jūsų slaptažodis yra keletą svetainių, kad tikriausiai ne 76 00:03:45,250 --> 00:03:47,920 pati geriausia idėja, nes mes aptarsime į semestrą pabaigos. 77 00:03:47,920 --> 00:03:51,680 Jei jūsų slaptažodis yra parašyta lipni dėmesį - ne juokai - savo 78 00:03:51,680 --> 00:03:55,130 monitorius, tai irgi nebūtinai yra geriausias dizainas, bet gana dažna 79 00:03:55,130 --> 00:03:56,140 reiškinys. 80 00:03:56,140 --> 00:04:00,420 Ir jei nesate naudojant kriptografiją užšifruoti savo slaptažodžius, jie 81 00:04:00,420 --> 00:04:01,610 ypač pažeidžiami. 82 00:04:01,610 --> 00:04:04,670 Taigi, jei jūs manote, kad esate super protingas turėti paslėptą žodį 83 00:04:04,670 --> 00:04:07,740 dokumentais kažkur kietajame diske, kad turi visus savo slaptažodžius, bet 84 00:04:07,740 --> 00:04:10,550 aplanke, kad niekas ketina ieškoti, tai irgi nėra labai 85 00:04:10,550 --> 00:04:11,540 saugus mechanizmas. 86 00:04:11,540 --> 00:04:15,100 Ir kas pset 2 pristatys tai kriptografija menas 87 00:04:15,100 --> 00:04:18,300 kodavimo informaciją, kad yra dalykų, pavyzdžiui, slaptažodžius 88 00:04:18,300 --> 00:04:19,500 saugesnis. 89 00:04:19,500 --> 00:04:24,500 Taigi, kaip motyvuoti šį labai realaus pasaulio problemas, susijusias su labai ne realaus pasaulio 90 00:04:24,500 --> 00:04:28,740 scenarijus, leiskite man pristatyti jums vieną iš mūsų mėgstamų klipus čia iš to 91 00:04:28,740 --> 00:04:29,895 filmas, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [VIDEO PLAYBACK] 93 00:04:30,565 --> 00:04:32,995 -Šalmas, piktoji dvasia, kas vyksta? 94 00:04:32,995 --> 00:04:34,730 Ką tu darai su mano dukra? 95 00:04:34,730 --> 00:04:38,960 Leiskite man pristatyti jauną talentingą plastikos chirurgas Dr Philip 96 00:04:38,960 --> 00:04:43,290 Schlotkin, didžiausias nosies darbą žmogus visą 97 00:04:43,290 --> 00:04:45,526 Visata ir Beverly Hills. 98 00:04:45,526 --> 00:04:46,450 Jūsų Didenybe. 99 00:04:46,450 --> 00:04:47,380 -Nosis darbas? 100 00:04:47,380 --> 00:04:48,035 Nesuprantu. 101 00:04:48,035 --> 00:04:49,480 Ji jau turėjo nosies darbą. 102 00:04:49,480 --> 00:04:51,490 Ji buvo saldus 16 metu. 103 00:04:51,490 --> 00:04:53,090 -Ne, ne tai, ką jūs manote. 104 00:04:53,090 --> 00:04:55,150 Tai daug, daug blogiau. 105 00:04:55,150 --> 00:04:59,860 Jei jūs neturite duok man kombinaciją oro skydas, Dr Schlotkin 106 00:04:59,860 --> 00:05:04,135 Duok savo dukterį savo seną nosį. 107 00:05:04,135 --> 00:05:05,385 -Ne! 108 00:05:08,202 --> 00:05:10,186 Kur tu jį gavai? 109 00:05:10,186 --> 00:05:11,178 -Viskas gerai. 110 00:05:11,178 --> 00:05:11,674 Pasakysiu. 111 00:05:11,674 --> 00:05:12,666 Pasakysiu. 112 00:05:12,666 --> 00:05:14,154 -Ne, tėtis, Nr. 113 00:05:14,154 --> 00:05:15,150 Neturi. 114 00:05:15,150 --> 00:05:16,460 -Tu teisus, my dear. 115 00:05:16,460 --> 00:05:18,450 Aš praleisti savo naują nosį. 116 00:05:18,450 --> 00:05:21,550 Bet aš ne pasakykite jiems kombinaciją, nesvarbu koks. 117 00:05:21,550 --> 00:05:23,100 -Labai gerai. 118 00:05:23,100 --> 00:05:25,510 Dr Schlotkin, padaryti savo blogiausias. 119 00:05:25,510 --> 00:05:26,760 Mano malonumas. 120 00:05:30,560 --> 00:05:31,180 -Ne! 121 00:05:31,180 --> 00:05:33,450 Palauk, palauk. 122 00:05:33,450 --> 00:05:34,770 Pasakysiu. 123 00:05:34,770 --> 00:05:36,400 Pasakysiu. 124 00:05:36,400 --> 00:05:38,630 Aš žinojau, ji turėtų dirbti. 125 00:05:38,630 --> 00:05:42,040 Viskas gerai, jį man. 126 00:05:42,040 --> 00:05:46,890 Derinys yra vienas. 127 00:05:46,890 --> 00:05:47,290 -One. 128 00:05:47,290 --> 00:05:48,183 -One. 129 00:05:48,183 --> 00:05:48,950 Dviejų. 130 00:05:48,950 --> 00:05:49,370 Dviejų. 131 00:05:49,370 --> 00:05:50,450 Dviejų. 132 00:05:50,450 --> 00:05:50,715 Trijų 133 00:05:50,715 --> 00:05:51,380 Trijų 134 00:05:51,380 --> 00:05:52,390 Trijų 135 00:05:52,390 --> 00:05:53,200 -Keturi. 136 00:05:53,200 --> 00:05:53,720 -Keturi. 137 00:05:53,720 --> 00:05:55,830 -Keturi. 138 00:05:55,830 --> 00:05:56,580 Penkių 139 00:05:56,580 --> 00:05:57,120 Penki. 140 00:05:57,120 --> 00:05:58,560 Penki. 141 00:05:58,560 --> 00:06:03,770 Taigi derinys yra vienas, du, trys, keturi, penki. 142 00:06:03,770 --> 00:06:06,745 Štai stupidest derinys, aš kada nors girdėjau mano gyvenime. 143 00:06:06,745 --> 00:06:09,290 Štai koks dalykas idiotas galėtų turėti savo bagažo. 144 00:06:09,290 --> 00:06:11,540 -Ačiū, Jūsų Didenybe. 145 00:06:11,540 --> 00:06:12,940 -Ką tu padarei? 146 00:06:12,940 --> 00:06:14,230 Pasuku nuo sienos. 147 00:06:14,230 --> 00:06:14,630 -Ne, tu negali. 148 00:06:14,630 --> 00:06:15,430 Išjungiant visą filmą. 149 00:06:15,430 --> 00:06:16,722 Turiu paspaudėte klaidingą mygtuką. 150 00:06:16,722 --> 00:06:18,078 -Na, padėkite jį atgal. 151 00:06:18,078 --> 00:06:18,805 Įdėti filmą atgal. 152 00:06:18,805 --> 00:06:19,080 -Taip, sere. 153 00:06:19,080 --> 00:06:19,270 Taip, pone. 154 00:06:19,270 --> 00:06:19,830 -Eime, Erna. 155 00:06:19,830 --> 00:06:20,270 Ateik, Gretchen. 156 00:06:20,270 --> 00:06:22,850 Žinoma, jūs žinote, aš vis dar turi sąskaitą jums už tai. 157 00:06:27,400 --> 00:06:28,325 -Na, ar tai veikia? 158 00:06:28,325 --> 00:06:29,550 Kur yra vartai? 159 00:06:29,550 --> 00:06:29,910 Jis dirbo, pone. 160 00:06:29,910 --> 00:06:30,770 Mes turime derinys. 161 00:06:30,770 --> 00:06:31,390 -Puiku. 162 00:06:31,390 --> 00:06:35,630 Dabar mes galime imtis gryną orą iš planetos Druidia kiekvieną paskutinįjį iškvėpimą. 163 00:06:35,630 --> 00:06:36,550 Kas yra derinys? 164 00:06:36,550 --> 00:06:38,805 -Vienas, du, trys, keturi, penki. 165 00:06:38,805 --> 00:06:40,610 -Vienas, du, trys, keturi, penki? 166 00:06:40,610 --> 00:06:41,070 -Taip. 167 00:06:41,070 --> 00:06:41,760 -Tai nuostabi. 168 00:06:41,760 --> 00:06:45,200 Aš turiu tą pačią kombinaciją ant mano bagažo. 169 00:06:45,200 --> 00:06:47,800 Parengti SPACEBALL 1 neatidėliotinas išvykimas. 170 00:06:47,800 --> 00:06:48,536 -Taip, sere. 171 00:06:48,536 --> 00:06:52,350 Ir pakeisti kombinaciją mano bagažą. 172 00:06:52,350 --> 00:06:53,250 -OW! 173 00:06:53,250 --> 00:06:55,020 [END VIDEO PLAYBACK] 174 00:06:55,020 --> 00:06:57,470 >> David J. Malan: nuostabus filmas jums reikia dabar visi matome. 175 00:07:00,600 --> 00:07:06,540 Taigi, čia yra kontekstas,, kad nesaugių duomenų ateina galimybę 176 00:07:06,540 --> 00:07:07,790 užšifruoti ją ir peštynės. 177 00:07:07,790 --> 00:07:11,060 Ir todėl tai, pavyzdžiui, yra šifruotą pranešimo pavyzdys. 178 00:07:11,060 --> 00:07:12,980 Tai iš tiesų sako kažką anglų kalba. 179 00:07:12,980 --> 00:07:14,750 Bet tai akivaizdžiai nėra visiškai akivaizdus. 180 00:07:14,750 --> 00:07:17,360 Ir mes ateiti Full Circle šiandien erzinti išskyrus tai, ką šis slaptas 181 00:07:17,360 --> 00:07:18,380 žinutę čia. 182 00:07:18,380 --> 00:07:22,370 Bet realiame pasaulyje kompiuterių dalykų nereikia net pažvelgti, kaip jie gali 183 00:07:22,370 --> 00:07:23,440 Anglų frazės. 184 00:07:23,440 --> 00:07:27,500 Pavyzdžiui, tai, ką galite rasti ant standartinės Linux ar Mac ar 185 00:07:27,500 --> 00:07:32,080 Unix kompiuteryje failą, kuris buvo kažkada vadinamas slaptažodžių failą. 186 00:07:32,080 --> 00:07:34,170 Šiandien, tai buvo perkelti į kitas vietas. 187 00:07:34,170 --> 00:07:38,660 Bet jei pažvelgti sistemos tinkamoje vietoje, pamatysite ne tik savo 188 00:07:38,660 --> 00:07:41,430 vardas arba kitų žmonių apie sistemos, bet jūs pamatysite 189 00:07:41,430 --> 00:07:43,410 saugiame versija slaptažodžio. 190 00:07:43,410 --> 00:07:47,800 Iš tiesų, žodis kripta yra rodo, kad medžiaga yra užšifruotas. 191 00:07:47,800 --> 00:07:52,030 Ir šis iš pažiūros atsitiktinių raidžių ir simbolių ir skaičių serija ir 192 00:07:52,030 --> 00:07:56,370 tt gali būti iššifruojama tik paprastai žinant kažkokią paslaptį 193 00:07:56,370 --> 00:07:58,600 slaptas žodis, paslaptis. 194 00:07:58,600 --> 00:08:02,760 Ir iš tiesų, kriptografija galiausiai suvesta menas pasitikėti kai 195 00:08:02,760 --> 00:08:05,700 rūšiuoti ir žinant, ką nors, kad kažkas nėra. 196 00:08:05,700 --> 00:08:10,010 Tai mes ištirti šiek tiek išsamiau šiandien ir į pset ateiti. 197 00:08:10,010 --> 00:08:11,860 >> Ir dabar atitikimo / neatitikimo žodis. 198 00:08:11,860 --> 00:08:15,250 Taigi, visų pirma, kaip kai kurie iš jūsų jau nėrė į pset 1, prietaisas ir 199 00:08:15,250 --> 00:08:18,390 labai naujas pasaulis save, suprato, kad nepasitenkinimas ir 200 00:08:18,390 --> 00:08:21,340 sumišimas ir tiesiog techninis sunkumų, kurių galima tikėtis. 201 00:08:21,340 --> 00:08:24,410 Ypač su pirmasis pset, kur yra tik tiek daug naujo, tik gauti 202 00:08:24,410 --> 00:08:28,830 susipažinę su ls ir CD ir visų šių paslaptingų komandas naujoje aplinkoje. 203 00:08:28,830 --> 00:08:32,679 Ir tai atskirtas nuo faktinės medžiagos ir programavimo pati. 204 00:08:32,679 --> 00:08:35,960 Taigi suvokti, taip pat, kad yra žinoma, biuro darbo valandomis, kurios egzistuoja kaip 205 00:08:35,960 --> 00:08:36,770 atraminė struktūra. 206 00:08:36,770 --> 00:08:38,620 Sekcijos pradėti šį ateinantį sekmadienį. 207 00:08:38,620 --> 00:08:41,990 Bet svarbiausia, jei esate jausmas tik, kad tai yra ne 208 00:08:41,990 --> 00:08:44,420 pasaulis jums, suprasite, kad tai tikrai tik reikia laiko. 209 00:08:44,420 --> 00:08:47,520 Ir jeigu ne tai už šią galimybę, prieš keletą metų man imtis klasės 210 00:08:47,520 --> 00:08:50,840 atitikimo / neatitikimo, sąžiningai, aš niekada net nustatyti snukio klasėje. 211 00:08:50,840 --> 00:08:53,520 Ir jūs galite pakeisti iki, tarkim, penktas nuo pirmadienio kurso. 212 00:08:53,520 --> 00:08:57,110 Taigi, jei esate ant krašto, suprantame, kad, o ne galva į kai kurių kitų 213 00:08:57,110 --> 00:09:01,000 vandenys apskritai, be jokios abejonės, kad tiesiog pakeisti verčių atitikimo / neatitikimo. 214 00:09:01,000 --> 00:09:03,750 Vėlgi, tikrai ši kultūra čia Harvardo atsižvelgiant dalykų 215 00:09:03,750 --> 00:09:08,080 atitikimo / neatitikimo, nes visi tikrai nori pasiekti ar overachieve. 216 00:09:08,080 --> 00:09:11,470 Bet atvirai, tai yra puikus būdas bando kažką iš,, kad galėtų ne 217 00:09:11,470 --> 00:09:13,110 būti susipažinę su jumis. 218 00:09:13,110 --> 00:09:17,090 Ir jūs galų gale padaryti daugeliu atvejų yra gana gerai, galbūt 219 00:09:17,090 --> 00:09:18,040 daug savo nuostabą. 220 00:09:18,040 --> 00:09:20,850 Ir daugiau konkrečiai, ką aš galvoju atitikimo / neatitikimo paprastai veikia, 221 00:09:20,850 --> 00:09:23,350 ypač kiek tai galite patyrė pset 0, jei jūs įdėti 222 00:09:23,350 --> 00:09:27,200 , 10 valandų, 15 valandų, 25 valandų į kai pset - ir jūs tiesiog beldžiasi 223 00:09:27,200 --> 00:09:28,180 savo galvą į sieną, 224 00:09:28,180 --> 00:09:29,850 ir tai vis super vėlai naktį, 225 00:09:29,850 --> 00:09:31,880 , bet jūs atlikote pset kaip 90%, kaip, 226 00:09:31,880 --> 00:09:33,780 jūs žinote, jūs tiesiog negali išsiaiškinti vieną dalyką - 227 00:09:33,780 --> 00:09:36,830 atitikimo / neatitikimo tikrai mano kraštą nuo A klasės, kaip tai, kur galite rūšiuoti 228 00:09:36,830 --> 00:09:39,150 laimingai pasakyti gerai, aš žinau, ji nėra tobula. 229 00:09:39,150 --> 00:09:40,470 Bet aš dirbau savo ass off apie tai. 230 00:09:40,470 --> 00:09:42,410 Aš esu labai laimingas su kur jis galų gale. 231 00:09:42,410 --> 00:09:44,780 Ir kad bus patenkinti lūkesčius pravažiuojančio / nepavyks. 232 00:09:44,780 --> 00:09:46,850 Taigi, keep that in mind. 233 00:09:46,850 --> 00:09:47,140 >> Gerai. 234 00:09:47,140 --> 00:09:50,980 Taigi tiems, kurie stengėsi naudoti Harvardo universiteto Wi-Fi žinoti 235 00:09:50,980 --> 00:09:54,780 kad yra CS50 SSID, "Wi-Fi" ryšys plūduriuojančius aplink, kad jūs 236 00:09:54,780 --> 00:09:56,520 gali tekti geriau sekasi. 237 00:09:56,520 --> 00:09:59,430 Tai šiek tiek ironiška, kad šis slaptažodis - jei jūs norėtumėte pabandyti 238 00:09:59,430 --> 00:10:03,080 prijungti prie geresnių greičiu ir leiskite mums žinoti, jei ji ne geriau - 239 00:10:03,080 --> 00:10:09,240 yra vienas, du, trys, keturi, penki, visą kelią iki 8, nes 8 yra 240 00:10:09,240 --> 00:10:10,270 saugesnis nei penki. 241 00:10:10,270 --> 00:10:15,520 Taigi, jei jums reikia, prisijungti prie "Wi-Fi slaptažodį CS50 belaidžiu būdu čia. 242 00:10:15,520 --> 00:10:16,950 Vienas, du, trys, keturi, penki, šeši, septyni, aštuoni. 243 00:10:16,950 --> 00:10:20,440 Ir paskelbkite CS50 Aptarti, jei jūs vis dar turite pertrūkiais ryšio problemas, 244 00:10:20,440 --> 00:10:24,880 ir mes pranešime, įgaliojimus, žino šioje vietoje. 245 00:10:24,880 --> 00:10:25,180 >> Gerai. 246 00:10:25,180 --> 00:10:30,350 Taip greitai kibinimas, ypač tiems iš jūsų, kurie ventiliatoriaus berniukai ar mergaitės 247 00:10:30,350 --> 00:10:31,900 viskas "Apple". 248 00:10:31,900 --> 00:10:37,566 Ką aš iškasti prieš kelis metus atgal buvo šį failą čia, ilock.c, tik 249 00:10:37,566 --> 00:10:40,930 rūšies padaryti betono ir sudėtingesnis, kai daugiau pagrindinių C 250 00:10:40,930 --> 00:10:42,350 programas mes jau rašymo. 251 00:10:42,350 --> 00:10:44,360 Taigi, aš atvėrė šį failą, ilock.c. 252 00:10:44,360 --> 00:10:46,830 Tai paskaitų šiandien. 253 00:10:46,830 --> 00:10:49,470 Kairėje pusėje, pamatysite ilgą sąrašą funkcijų. 254 00:10:49,470 --> 00:10:51,860 Taigi kolegos, Kas parašė šią surašė daug funkcijų, 255 00:10:51,860 --> 00:10:53,290 daugiau nei tik pagrindinis. 256 00:10:53,290 --> 00:10:55,490 Jis naudojamas visa krūva bibliotekų čia. 257 00:10:55,490 --> 00:11:00,450 Ir jei mes pradėti slinkti per, ką tai iš tikrųjų yra labai 258 00:11:00,450 --> 00:11:04,670 pirma, manau, nulaužti originalus iPhone. 259 00:11:04,670 --> 00:11:08,000 Kai tu nori originalaus iPhone Jailbreak, o tai reiškia untether 260 00:11:08,000 --> 00:11:11,800 nuo AT & T ir iš tikrųjų įdiegti specialią programinę įrangą ir daryti dalykus, 261 00:11:11,800 --> 00:11:13,510 kad "Apple" nenorėjo, kad žmonės darytų - 262 00:11:13,510 --> 00:11:17,020 Na, kažkas paėmė laiko išsiaiškinti tiksliai, kaip jie galėtų pasinaudoti 263 00:11:17,020 --> 00:11:20,880 programinės įrangos trūkumų, klaidų, klaidų, "Apple" programinės įrangos. 264 00:11:20,880 --> 00:11:22,650 Ir tokiu būdu gimė ilock.c. 265 00:11:22,650 --> 00:11:26,670 , Kad jei surinkti jį į kompiuterį ir įdiegti ją į "iPhone", kad 266 00:11:26,670 --> 00:11:29,810 buvo prijungtas prie kompiuterio, tarkim, per USB kabelį, tai jums 267 00:11:29,810 --> 00:11:33,360 administracinės arba iš šaknų ir privilegijos jūsų "iPhone" ir leiskite jums padaryti gana daug 268 00:11:33,360 --> 00:11:34,170 ką tik norite. 269 00:11:34,170 --> 00:11:36,740 >> Ir taip ten buvo šioje įdomioje katės ir pelės žaidimas tarp "Apple" ir 270 00:11:36,740 --> 00:11:39,920 likusio pasaulio, ypač kai jie, kaip ir daugelis įmonių, pabandykite užrakinti 271 00:11:39,920 --> 00:11:43,220 savo stuff žemyn taip, kad jūs galite tik su juo daryti ką jie ketina. 272 00:11:43,220 --> 00:11:46,620 Tačiau dėka žmonių kaip ir jų supratimą apie žemo lygio 273 00:11:46,620 --> 00:11:50,580 informacija ir, šiuo atveju, C programavimo ir gerai pažįstamų konstruktai aikštelė 274 00:11:50,580 --> 00:11:54,630 kad mes pradėjome žaisti su, galite tikrai sverto 275 00:11:54,630 --> 00:11:59,050 techninės įrangos kaip jums atrodo tinkama, ir nebūtinai tam tikrą juridinį asmenį. 276 00:11:59,050 --> 00:12:01,360 Taigi, pavyzdžiui, aš neįsivaizduoju, ką visa tai veikia. 277 00:12:01,360 --> 00:12:03,220 Bet GetVersion skamba gana paprasta. 278 00:12:03,220 --> 00:12:05,480 Ir atrodo, kad tai yra funkcija, kad šis asmuo rašė. 279 00:12:05,480 --> 00:12:09,240 Paimkite šiek tiek natūra sveikojo skaičiaus kaip argumentu, neturi grįžti nieko, bet 280 00:12:09,240 --> 00:12:13,080 kilpa su už linijos čia ir jei sąlyga, jei sąlyga, 281 00:12:13,080 --> 00:12:15,620 pertrauka, ir kažkaip susijęs su versijos numerius. 282 00:12:15,620 --> 00:12:16,700 Jei mes slinkti žemyn - 283 00:12:16,700 --> 00:12:19,570 nors daug šių raktažodžių bus nauja, ir ten 284 00:12:19,570 --> 00:12:22,590 visai daug funkcijų, čia niekada nesame matę ir galbūt kada nors pamatyti per 285 00:12:22,590 --> 00:12:23,830 semestro kursas - 286 00:12:23,830 --> 00:12:27,150 dienos pabaigoje, tokios pačios taisyklės ir logika, kad mes buvo 287 00:12:27,150 --> 00:12:28,760 žaisti su iki šiol. 288 00:12:28,760 --> 00:12:34,220 Taigi tai yra pernelyg senas, kad nulaužti jūsų iPhone 3s arba 4s arba greičiau 5s, šių dienų, 289 00:12:34,220 --> 00:12:37,320 bet žinau, kad visa tai labai kilęs iš šio pasaulio, kad mes 290 00:12:37,320 --> 00:12:38,430 nėrė į. 291 00:12:38,430 --> 00:12:41,900 >> Todėl galime imtis už šiek tiek daugiau paprastą pavyzdį išvaizdą. 292 00:12:41,900 --> 00:12:46,100 Tai vienas, tik gauti pašildytas su kai kuriais sintaksę, o taip pat kai kurie kiti duomenys 293 00:12:46,100 --> 00:12:49,240 tipo, kad mes kalbėjome apie, bet ne iš tikrųjų matyti C. Taigi, tai yra, 294 00:12:49,240 --> 00:12:51,680 failą pavadinimu positive1.c. 295 00:12:51,680 --> 00:12:55,120 Ir už viršuje komentarus, tai tiesiog reikalauja, kad vartotojas pateiktų 296 00:12:55,120 --> 00:12:55,960 teigiamas skaičius. 297 00:12:55,960 --> 00:12:59,530 Todėl do-while cikle, kuris yra gražus vartotojo interaktyvus pavyzdys 298 00:12:59,530 --> 00:13:01,980 programos, kur jums reikia, pranešti vartotojui, kažką daryti. 299 00:13:01,980 --> 00:13:05,190 Ir jei jie nebendradarbiauja, jūs klykauti į juos arba atmesti savo indėlį. 300 00:13:05,190 --> 00:13:11,610 Byla punktas, aš einu daryti linijas 19 per 24 taip ilgai, kaip vartotojas turi 301 00:13:11,610 --> 00:13:14,310 davė man teigiamą skaičių. 302 00:13:14,310 --> 00:13:20,400 Dabar tai išsamiai čia on line 18 kodėl aš pareiškiu, n virš visa ši 303 00:13:20,400 --> 00:13:24,490 kilpų konstruktas, o ne šalia eilutės 22, kur aš 304 00:13:24,490 --> 00:13:26,880 iš tikrųjų rūpi gauti n? 305 00:13:26,880 --> 00:13:27,330 Taip? 306 00:13:27,330 --> 00:13:27,780 [Nesigirdi] 307 00:13:27,780 --> 00:13:29,040 >> David J. Malan: Taip, todėl šis taikymo srities klausimas. 308 00:13:29,040 --> 00:13:30,850 Ir profanas kadencijai, ką apimtis kreiptis? 309 00:13:34,690 --> 00:13:36,610 Taip? 310 00:13:36,610 --> 00:13:37,860 [Nesigirdi] 311 00:13:40,040 --> 00:13:41,105 David J. Malan: Ar galite kalbėti šiek tiek garsiau? 312 00:13:41,105 --> 00:13:43,450 GARSIAKALBIS 1: Kur galima pasiekti tam tikrą kintamąjį. 313 00:13:43,450 --> 00:13:45,170 David J. Malan: Perfect. 314 00:13:45,170 --> 00:13:47,360 Kur galite gauti tam tikrą kintamąjį. 315 00:13:47,360 --> 00:13:50,400 Ir apskritai, nykščio taisykle iki šiol buvo, kad kai 316 00:13:50,400 --> 00:13:55,860 kintamasis rodiklis apibrėžiamas naujausiais Garbanotasis petnešos, kad jūs mačiau. 317 00:13:55,860 --> 00:14:02,010 Ir todėl šiuo atveju, jei aš padariau klaidą paskelbti n on line 22 318 00:14:02,010 --> 00:14:03,010 kad linija veiktų. 319 00:14:03,010 --> 00:14:10,990 Norėčiau gauti int, ir aš įdėti jį į tą kintamąjį n 22 eilutė. 320 00:14:10,990 --> 00:14:16,900 Bet kuri linija kodo dabar neįsivaizduoju, ką aš kalbu apie? 321 00:14:16,900 --> 00:14:22,650 Taigi, 25, ir paaiškėja, 24, taip pat, nes šiuo atveju, tai nepatenka 322 00:14:22,650 --> 00:14:23,610 Garbanotasis petnešos. 323 00:14:23,610 --> 00:14:27,280 Taigi, tiesiog šiek tiek nepatogumų, tačiau labai lengvai išsprendžiama tiesiog deklaruojant 324 00:14:27,280 --> 00:14:30,140 kintamasis ne pačios funkcijos. 325 00:14:30,140 --> 00:14:32,600 >> Dabar mes pamatysime vėliau šiandien, galite žengti dar vieną žingsnį. 326 00:14:32,600 --> 00:14:34,860 Ir jūs galite net gauti šiek tiek tingus - 327 00:14:34,860 --> 00:14:37,320 ir tai ne būti rekomenduojama, kad apskritai 328 00:14:37,320 --> 00:14:42,260 bet jūs galite net gauti tingus ir įdėti kintamąjį visame pasaulyje, taip sakant, ne 329 00:14:42,260 --> 00:14:46,670 funkcijos viduje, o ne viduje kilpa, bet patį failą, ne 330 00:14:46,670 --> 00:14:49,600 visas funkcijas, jums parašiau, kaip aš čia on line 15. 331 00:14:49,600 --> 00:14:51,160 Bet tai paprastai frowned. 332 00:14:51,160 --> 00:14:55,680 Bet suprantame, kad tai kartais kitų problemų sprendimas, nes mes 333 00:14:55,680 --> 00:14:56,620 galų gale pamatyti. 334 00:14:56,620 --> 00:14:58,130 Taigi dabar, mes palikti jį, kaip šis. 335 00:14:58,130 --> 00:15:01,030 Bet tegul pamatyti, jei mes galime perrašyti tik pradėti išreikšti save 336 00:15:01,030 --> 00:15:01,990 šiek tiek kitaip. 337 00:15:01,990 --> 00:15:05,330 >> Todėl ši programa, tiesiog turi būti aišku, yra positive1. 338 00:15:05,330 --> 00:15:11,810 Leiskite man eiti į priekį ir savo terminalo lange positive1, įveskite. 339 00:15:11,810 --> 00:15:12,740 Kaupia, gerai. 340 00:15:12,740 --> 00:15:14,910 Aš ruošiuosi paleisti positive1, paspauskite Enter. 341 00:15:14,910 --> 00:15:16,820 Reikalauju, kad galite man duoti teigiamą sveikąjį skaičių. 342 00:15:16,820 --> 00:15:18,260 Pasakysiu -1. 343 00:15:18,260 --> 00:15:18,910 Tai nepadėjo. 344 00:15:18,910 --> 00:15:22,150 0, 99, kad atrodo į darbą. 345 00:15:22,150 --> 00:15:23,570 Gal ne griežčiausių testas. 346 00:15:23,570 --> 00:15:26,480 Bet bent jau gražus normalumas patikrinti, kad esame teisingame kelyje. 347 00:15:26,480 --> 00:15:29,240 Taigi dabar leiskite man eiti į priekį ir atidaryti šio dviejų versiją. 348 00:15:29,240 --> 00:15:32,500 Ir tai, kas jau skiriasi? 349 00:15:32,500 --> 00:15:35,140 Ji įgyvendina tą patį. 350 00:15:35,140 --> 00:15:40,660 Bet kas šokinėja kaip aiškiai skiriasi šiuo metu? 351 00:15:40,660 --> 00:15:42,560 Taip, kad tai bool žaliai. 352 00:15:42,560 --> 00:15:45,980 Gedit paryškinamas žalia šį raktinį žodį, žinomas kaip Bool, 353 00:15:45,980 --> 00:15:47,000 kuri yra duomenų tipas. 354 00:15:47,000 --> 00:15:51,080 Jis nėra ateis pastatytas visiems C versijų Turite įjungti 355 00:15:51,080 --> 00:15:52,010 šioje bibliotekoje. 356 00:15:52,010 --> 00:15:54,770 Mūsų atveju, aš įtraukti CS50 biblioteką, kad mes 357 00:15:54,770 --> 00:15:56,460 turi prieigą prie Bool. 358 00:15:56,460 --> 00:15:59,810 , Bet atitinka 18, mes, atrodo, čia vadinama Būlio vertė dėkinga. 359 00:15:59,810 --> 00:16:01,040 , Kad galėčiau nieko. 360 00:16:01,040 --> 00:16:04,500 Bet aš jį pavadino dėkinga tik rūšies perteikti tam tikrą semantinę prasmę. 361 00:16:04,500 --> 00:16:07,930 Taigi, iš pradžių on line 18, aš, matyt, ne dėkinga, nes 362 00:16:07,930 --> 00:16:12,150 Būlio vertė dėkingi yra inicializuoti false atitinka 18. 363 00:16:12,150 --> 00:16:16,890 Ir tada ji atrodo, ką aš padariau čia eilutėse 21 iki 23, aš tiesiog 364 00:16:16,890 --> 00:16:18,610 rūšies perrašyti savo logiką. 365 00:16:18,610 --> 00:16:21,020 Taip ne funkciškai skiriasi. 366 00:16:21,020 --> 00:16:26,940 Bet 22 eilutė, dabar, aš patikrinti, jei int vartotojas yra didesnis nei 367 00:16:26,940 --> 00:16:31,120 0, tada aš tiesiog pakeisti dėkingi tiesa. 368 00:16:31,120 --> 00:16:32,290 Ir kodėl man tai padaryti? 369 00:16:32,290 --> 00:16:35,600 , Nes 25 eilutėje, matyt, aš ruošiuosi patikrinti sąlygą. 370 00:16:35,600 --> 00:16:39,380 Tai padaryti kilpą, nes esu dėkingas, yra klaidinga. 371 00:16:39,380 --> 00:16:43,610 >> Taigi siūlau tai, kaip alternatyvą 1 versija, nes tai bent 372 00:16:43,610 --> 00:16:45,130 šiek tiek daugiau intuityvus, galbūt. 373 00:16:45,130 --> 00:16:46,900 Tai šiek tiek daugiau pagrįstas anglų kalba. 374 00:16:46,900 --> 00:16:51,710 Taigi, atlikite šiuos veiksmus, o jūs nesate dėkinga, nes esu dėkingas, yra klaidinga. 375 00:16:51,710 --> 00:16:55,890 Ir šį kartą, taip pat, aš, matyt, neturi rūpintis prisiminti tai, ką vartotojas turi įvesti 376 00:16:55,890 --> 00:16:57,730 nes įspėjimo nėra kintamasis n. 377 00:16:57,730 --> 00:16:58,650 Taigi, iš tikrųjų, aš - 378 00:16:58,650 --> 00:17:00,080 šiek tiek balta melas. 379 00:17:00,080 --> 00:17:02,770 Funkciškai, programa yra šiek tiek kitokia, kai mes gauname apačioje 380 00:17:02,770 --> 00:17:04,819 nes aš ne prisiminti, kas n. 381 00:17:04,819 --> 00:17:09,579 Bet aš norėjau parodyti, čia per daug, kad net jei mes matėme GetInt ir 382 00:17:09,579 --> 00:17:13,920 GetString naudojamas ant dešinėje pusėje lygybės ženklu iki šiol, kad 383 00:17:13,920 --> 00:17:17,160 mes prisimename vertę, techniškai, tai nėra tikrai būtina. 384 00:17:17,160 --> 00:17:20,950 Jei dėl kokios nors priežasties jūs tiesiog nerūpi, kad įrašytumėte reikšmę, jūs tiesiog norite 385 00:17:20,950 --> 00:17:25,710 patikrinti vertę, pastebėsite, kad mes galime tiesiog parašyti tai, kaip GetInt atvira 386 00:17:25,710 --> 00:17:27,000 skliaustas, netoli paren. 387 00:17:27,000 --> 00:17:30,460 Kad funkcija grąžina reikšmę, kaip mes buvo suprantama. 388 00:17:30,460 --> 00:17:32,010 Ji ketina suteikti jums atgal į int. 389 00:17:32,010 --> 00:17:36,450 Ir todėl, jei jus psichiškai galvoja tai vyksta, kai aš tipo 99, GetInt 390 00:17:36,450 --> 00:17:38,160 grąžina skaičių 99. 391 00:17:38,160 --> 00:17:41,330 Ir taip konceptualiai, tai kaip nors mano kodas buvo iš tikrųjų tai. 392 00:17:41,330 --> 00:17:45,880 99 Taigi, jei iš tiesų yra didesnis už 0, tada dėkingi tampa realybe. 393 00:17:45,880 --> 00:17:50,420 Tada linija 25 supranta, ooh, mes padarėme, nes aš dabar dėkinga. 394 00:17:50,420 --> 00:17:54,590 Ir 26 eilutėje, mes tiesiog pasakyti, ačiū už teigiamas sveikasis skaičius, kokia ji 395 00:17:54,590 --> 00:17:55,710 atsitiko. 396 00:17:55,710 --> 00:17:58,900 >> Dabar galime padaryti šiek tiek cukraus sintaksinę čia, taip sakant. 397 00:17:58,900 --> 00:18:02,990 Leiskite pamatyti, jei mes galime išvalyti šią eilutę su šio trečiojo ir paskutiniojo dispersija 25 398 00:18:02,990 --> 00:18:04,640 positive3. 399 00:18:04,640 --> 00:18:08,250 Taigi, pastebėjote, vienintelis skirtumas yra tai, ką eilutę kodo? 400 00:18:11,930 --> 00:18:13,260 Taip, kad 25. 401 00:18:13,260 --> 00:18:15,520 Ir mes tikrai matė šį triuką, tik dar. 402 00:18:15,520 --> 00:18:19,510 Tačiau mes tai padarėme šauktukas pirmadienį, kuris reiškia ką? 403 00:18:19,510 --> 00:18:20,970 Taigi ne, ar neigimas. 404 00:18:20,970 --> 00:18:23,460 Taigi imtis Būlio vertė ir apversti savo vertę. 405 00:18:23,460 --> 00:18:24,390 Tiesa tampa klaidinga. 406 00:18:24,390 --> 00:18:25,500 False tampa realybe. 407 00:18:25,500 --> 00:18:28,910 Taigi, aš norėčiau pasiūlyti, yra net šiek tiek daugiau intuityvi būdu, 408 00:18:28,910 --> 00:18:32,200 rašyti kodą, nes aš vis dar inicijuoti dėkingi false. 409 00:18:32,200 --> 00:18:33,530 Aš vis dar atlikite šiuos veiksmus. 410 00:18:33,530 --> 00:18:35,700 Aš nustačiau dėkinga, tiesa, kai ateis laikas. 411 00:18:35,700 --> 00:18:40,690 Tačiau dabar jūs galite tiesiog išversti šį kodą žodžiu iš kairės į dešinę, 412 00:18:40,690 --> 00:18:42,550 o nėra dėkinga. 413 00:18:42,550 --> 00:18:46,170 Nes sprogimo, arba šauktukas, reiškia ne sąvoka, todėl nors 414 00:18:46,170 --> 00:18:47,010 nėra dėkinga. 415 00:18:47,010 --> 00:18:49,740 >> Taigi dar kartą, mes jokių naujų sąvokas per se. 416 00:18:49,740 --> 00:18:53,230 Mes kalbėjome apie loginę atgal, kai mes grojo su nulio. 417 00:18:53,230 --> 00:18:55,690 Bet suprantame, dabar mes galime tiesiog pradėti rašyti savo kodą 418 00:18:55,690 --> 00:18:56,550 įvairiais būdais. 419 00:18:56,550 --> 00:19:00,010 Taigi ypač pset1, jei esate tarsi stengiasi išsiaiškinti, kelią 420 00:19:00,010 --> 00:19:03,400 parašyti šiek tiek programą, šansai yra jums pasisekė, nes ten bus bet koks 421 00:19:03,400 --> 00:19:05,780 sprendimų, kurie jums gali atsitikti dėl skaičių. 422 00:19:05,780 --> 00:19:09,850 Pavyzdžiui, tai yra tik trys net paprasčiausių programų. 423 00:19:09,850 --> 00:19:10,180 Gerai. 424 00:19:10,180 --> 00:19:13,860 , O dabar atšaukti pirmadienį, mes palikome su grįžtamaisiais vertybių šio pranešimo. 425 00:19:13,860 --> 00:19:18,280 Taigi, labai pirmą kartą, mes parašėme programą, kuri ne tik turi pagrindinis 426 00:19:18,280 --> 00:19:22,240 ji taip pat turi savo funkcija individualizuotos, kad aš parašiau čia. 427 00:19:22,240 --> 00:19:26,640 Taigi, per 34 31 eilutėje, aš įgyvendino kubo funkciją. 428 00:19:26,640 --> 00:19:27,800 Tai nėra sudėtinga. 429 00:19:27,800 --> 00:19:29,830 Tai tik kartus per kartus per šiuo atveju. 430 00:19:29,830 --> 00:19:34,920 Tačiau tai, ką svarbu apie tai yra tai, kad aš visai forma ir 431 00:19:34,920 --> 00:19:38,910 Aš sugrįžus produkcijos kartų kartų a. 432 00:19:38,910 --> 00:19:43,940 >> Taigi dabar turiu galimybę, panašiai kaip aš naudojamas su printf vien, skambinti 433 00:19:43,940 --> 00:19:47,120 tai paskambinus funkciją kubo funkcija. 434 00:19:47,120 --> 00:19:49,470 Ir kubas funkcija užtrunka tam tikrą įvesties. 435 00:19:49,470 --> 00:19:52,030 Ir kubas funkcija grąžina kažkokią išvestį. 436 00:19:52,030 --> 00:19:56,660 Ir priešingai, printf tiesiog padarė kažką. 437 00:19:56,660 --> 00:19:59,490 Ji neturėjo grįžti nieko, kad mes rūpinosi apie - nors, kaip 438 00:19:59,490 --> 00:20:00,820 žemę, jis grąžina reikšmę. 439 00:20:00,820 --> 00:20:02,650 Jūs tiesiog paprastai jį ignoruoti. 440 00:20:02,650 --> 00:20:04,000 Printf tiesiog padarė kažką. 441 00:20:04,000 --> 00:20:06,220 Jis turėjo šalutinį poveikį spausdinti į ekraną. 442 00:20:06,220 --> 00:20:09,480 Priešingai čia, turime kubo funkciją, kuri 443 00:20:09,480 --> 00:20:11,400 faktiškai grąžina kažką. 444 00:20:11,400 --> 00:20:12,960 >> Taigi tai iš esmės - 445 00:20:12,960 --> 00:20:15,260 tiems, kurie susipažinę su šiuo, tai gana paprasta idėja. 446 00:20:15,260 --> 00:20:18,460 Tačiau tiems, kurie mažiau susipažinę su šia artimųjų sąnaudų ir gauti idėja 447 00:20:18,460 --> 00:20:21,700 atgal išėjimai, pabandykime tiesiog kažkas super paprasta. 448 00:20:21,700 --> 00:20:25,180 Ar kas nors patogiai artėja scenoje trumpai? 449 00:20:25,180 --> 00:20:27,460 Jūs turite būti patogu su kamera apie jus, taip pat. 450 00:20:27,460 --> 00:20:27,640 Taip. 451 00:20:27,640 --> 00:20:28,610 Gerai, kas yra jūsų vardas? 452 00:20:28,610 --> 00:20:29,020 Ken: Ken. 453 00:20:29,020 --> 00:20:29,420 David J. Malan: Ken. 454 00:20:29,420 --> 00:20:29,810 Visos teisės Kenas. 455 00:20:29,810 --> 00:20:31,060 Ateiti iki. 456 00:20:31,060 --> 00:20:34,660 Taigi Ken rūšių funkcija bus čia. 457 00:20:34,660 --> 00:20:35,760 Ir eikime į priekį ir tai padaryti. 458 00:20:35,760 --> 00:20:38,790 Galime gauti šiek tiek fantazijos. 459 00:20:38,790 --> 00:20:39,770 Malonu jus matyti. 460 00:20:39,770 --> 00:20:41,010 Sveiki atvykę į centre. 461 00:20:41,010 --> 00:20:41,980 Gerai. 462 00:20:41,980 --> 00:20:45,590 Leiskite paspausti šį mygtuką. 463 00:20:45,590 --> 00:20:46,420 Gerai. 464 00:20:46,420 --> 00:20:49,490 Taigi čia jūs turite modernią Lenta. 465 00:20:49,490 --> 00:20:53,050 Ir kas aš esu, yra pagrindinė funkcija, pvz. 466 00:20:53,050 --> 00:20:55,990 Ir aš neturiu į mano rankas iPad. 467 00:20:55,990 --> 00:20:59,000 Aš tikrai ne prisiminti, kaip - gerai, iš tikrųjų, negali pasakyti, kad. 468 00:20:59,000 --> 00:21:02,200 Aš ne tikrai gera ranka. 469 00:21:02,200 --> 00:21:05,260 Ir todėl, aš noriu jums ką nors atspausdinti už mane ant ekrano. 470 00:21:05,260 --> 00:21:07,470 >> Taigi, aš yra pagrindinė programa. 471 00:21:07,470 --> 00:21:15,060 Ir aš einu, kad jūs pasakyti tai raštu jį mano vištienos nulio ir 472 00:21:15,060 --> 00:21:16,600 tada jums perduoti įvestį. 473 00:21:16,600 --> 00:21:20,000 Taigi, kaip kvailas, nors ši veikla, funkcijų samprata ir raginama 474 00:21:20,000 --> 00:21:22,260 funkcija ir grįžti funkciją tikrai suvesta į tai. 475 00:21:22,260 --> 00:21:23,120 Esu pagrindinis. 476 00:21:23,120 --> 00:21:26,270 Aš ką tik parašyta printf ("kažkas") ekrane. 477 00:21:26,270 --> 00:21:27,470 Bėgu šią programą. 478 00:21:27,470 --> 00:21:30,900 Ir kuo greičiau printf iškviečiamas, ji užima vieną argumentą - arba vienas parametras, 479 00:21:30,900 --> 00:21:31,660 kartais - 480 00:21:31,660 --> 00:21:32,780 tarp dvigubų kabučių. 481 00:21:32,780 --> 00:21:33,960 Čia yra, kad argumentas. 482 00:21:33,960 --> 00:21:35,740 Aš perduoti ją Ken. 483 00:21:35,740 --> 00:21:39,390 Dabar jis yra "black box", parašyta maždaug prieš daugelį metų, kad, matyt 484 00:21:39,390 --> 00:21:41,070 tik žino, kaip spausdinti dalykus ekrane. 485 00:21:41,070 --> 00:21:42,320 >> Taigi, vykdyti. 486 00:21:48,842 --> 00:21:49,900 Tai nėra blogai. 487 00:21:49,900 --> 00:21:50,890 Taigi, labai gerai. 488 00:21:50,890 --> 00:21:52,900 Taigi dabar Ken daroma vykdyti. 489 00:21:52,900 --> 00:21:55,810 Ar jis turi perduoti man nieko atgal? 490 00:21:55,810 --> 00:21:57,240 Taigi, ne tai, kad mes matėme iki šiol. 491 00:21:57,240 --> 00:21:59,230 Vėlgi, printf tikrųjų grįžti numerį. 492 00:21:59,230 --> 00:22:01,640 Bet mes ketiname ignoruoti, kad dabar, nes mes niekada naudojo jį. 493 00:22:01,640 --> 00:22:03,400 Taigi, kad tai Ken. 494 00:22:03,400 --> 00:22:06,650 Ir todėl dabar pagrindinis grįžta vykdyti 495 00:22:06,650 --> 00:22:09,630 pagrindinis vėl perima kontrolės programos, nes šio kodo eilutę, 496 00:22:09,630 --> 00:22:11,010 printf, daroma vykdyti. 497 00:22:11,010 --> 00:22:13,890 Ir mes einame apie mūsų vykdančiosios kokios kitos eilutės yra ten. 498 00:22:13,890 --> 00:22:14,130 >> Gerai. 499 00:22:14,130 --> 00:22:17,080 Taigi, dabar pabandykime šiek tiek kitokį pavyzdį. 500 00:22:17,080 --> 00:22:22,430 Ir šį kartą čia, tegul pirmas išvalyti ekraną. 501 00:22:22,430 --> 00:22:24,670 Ir šį kartą, mes padarysime Kubas funkciją. 502 00:22:24,670 --> 00:22:27,350 Bet šį kartą, tikiuosi, išvesties vertę. 503 00:22:27,350 --> 00:22:28,630 Taigi eikime į priekį ir tai padaryti. 504 00:22:28,630 --> 00:22:35,680 Taigi dabar turiu kodo eilutę, kad sako, x = kubas (x). 505 00:22:35,680 --> 00:22:36,930 Taigi faktiškai let's - 506 00:22:41,450 --> 00:22:43,940 kodo linija, prisiminti, atrodo taip. 507 00:22:43,940 --> 00:22:45,960 x = kubas (x). 508 00:22:45,960 --> 00:22:48,100 Taigi, kaip tai vyksta į darbą? 509 00:22:48,100 --> 00:22:50,820 Taigi eikime į priekį ir suteikti jums baltas ekranas vėl. 510 00:22:50,820 --> 00:22:55,000 Ir aš dabar einu rašyti žemyn x vertę, kuri šiuo metu 511 00:22:55,000 --> 00:23:01,080 laikas atsitinka būti, tarkim, 2, keep it simple. 512 00:23:01,080 --> 00:23:04,890 Taigi, aš užrašyti ant popieriaus lapo vertės 2 513 00:23:04,890 --> 00:23:06,100 kuris yra mano x vertė. 514 00:23:06,100 --> 00:23:08,250 Aš nuneškite jį Ken. 515 00:23:08,250 --> 00:23:09,200 KEN: Ir aš tiesiog parašyti atsakymą? 516 00:23:09,200 --> 00:23:12,660 David J. Malan: Taip, tegul tiesiog rašyti atsakymą. 517 00:23:12,660 --> 00:23:13,030 Gerai. 518 00:23:13,030 --> 00:23:16,280 Ir dabar jis turi grąžinti man kažką. 519 00:23:16,280 --> 00:23:17,560 Taigi - 520 00:23:17,560 --> 00:23:18,170 tobula. 521 00:23:18,170 --> 00:23:18,840 Nice Segue. 522 00:23:18,840 --> 00:23:21,970 >> Taigi dabar jis paduoda man atgal 8 vertę, šiuo atveju. 523 00:23:21,970 --> 00:23:23,220 Ir ką man su juo daryti? 524 00:23:23,220 --> 00:23:26,130 Na, iš tikrųjų, galime pamatyti. 525 00:23:26,130 --> 00:23:26,640 Gauti šią teisę. 526 00:23:26,640 --> 00:23:27,880 Ką man su juo daryti? 527 00:23:27,880 --> 00:23:31,900 Dabar aš ruošiuosi į šią vertę ir iš tikrųjų laikyti jį tiems, 528 00:23:31,900 --> 00:23:33,400 vienodais bitais atmintyje. 529 00:23:33,400 --> 00:23:35,030 Tačiau pastebėkite, aš tipo kovoja čia. 530 00:23:35,030 --> 00:23:38,280 Aš esu šiek tiek supainioti, nes kai aš iš tikrųjų rašyti x vertę? 531 00:23:38,280 --> 00:23:41,840 Nes tai, ką aš ką tik padarė, yra fiziškai ranka Ken popieriaus gabalas 532 00:23:41,840 --> 00:23:44,400 , kuris turėjo vertę, 2, kuris buvo x. 533 00:23:44,400 --> 00:23:46,300 Ir iš tiesų, tai būtent tai, kas vyksta. 534 00:23:46,300 --> 00:23:50,100 Taigi paaiškėja, kad, kai skambinate funkciją ir pereisite į argumentą, 535 00:23:50,100 --> 00:23:54,130 patinka "Hello World" arba pereisite argumento kaip 2, paprastai, jūs 536 00:23:54,130 --> 00:23:56,720 einančios į šį argumentą kopiją. 537 00:23:56,720 --> 00:24:01,020 Ir taip kaip aš užrašė skaičių 2 čia ir perdavė jį į Ken, kad turi 538 00:24:01,020 --> 00:24:04,760 reiškia, kad vis dar turiu vertės 2 kopiją kažkur. 539 00:24:04,760 --> 00:24:08,140 Nes iš tiesų, dabar, kad aš Dotarłeś atgal dydis 8, man reikia grįžti į 540 00:24:08,140 --> 00:24:12,010 RAM ir užsirašyti 8 kur Aš vieną kartą turėjo skaitmeniu "2". 541 00:24:12,010 --> 00:24:15,720 >> Taigi vizualiai prisiminti šią einančios pažodžiui sąvoka 542 00:24:15,720 --> 00:24:16,730 vertės kopija. 543 00:24:16,730 --> 00:24:19,570 Ken daro savo dalyką, paduoda man ką nors - šiuo atveju, 544 00:24:19,570 --> 00:24:20,820 vertė kaip 8. 545 00:24:20,820 --> 00:24:22,660 Ir tada aš turiu kažką daryti su tos vertės, jei aš 546 00:24:22,660 --> 00:24:24,880 norite laikyti jį aplink. 547 00:24:24,880 --> 00:24:29,470 Taigi, visa tai bus pernelyg pažįstami prieš ilgas. 548 00:24:29,470 --> 00:24:33,082 Thank you so much už šio demo čia, Ken. 549 00:24:33,082 --> 00:24:34,820 Gerai. 550 00:24:34,820 --> 00:24:36,720 Labai gerai padaryta. 551 00:24:36,720 --> 00:24:40,610 Taigi pažiūrėkime, kaip kad galiausiai kai funkcijos 552 00:24:40,610 --> 00:24:42,270 skambinama, kad mes čia darai. 553 00:24:42,270 --> 00:24:47,610 Taigi leiskite man eiti į priekį ir gražina mus į Kubas pavyzdžiui čia. 554 00:24:47,610 --> 00:24:53,080 Ir pastebėjo, kad, jei norime, kad iš tikrųjų pradėdami vartoti šį toliau, mes ketiname 555 00:24:53,080 --> 00:24:57,050 turi būti atkreipia dėmesį į tai, kad skaičius x, praėję 556 00:24:57,050 --> 00:25:01,390 čia yra skirtingas, kas iš tikrųjų yra perduodama į funkciją. 557 00:25:01,390 --> 00:25:03,940 Taigi dar kartą, tai praėjo kopiją ketina tapti gana 558 00:25:03,940 --> 00:25:05,620 Priklauso tik akimirką. 559 00:25:05,620 --> 00:25:09,320 >> Todėl galime imtis ne kažką, kad nėra gana dirbti dar atrodo. 560 00:25:09,320 --> 00:25:11,790 Aš ruošiuosi eiti į priekį ir atidaryti trečią Buggy pavyzdį, kuris 561 00:25:11,790 --> 00:25:13,560 yra ydinga iš prigimties. 562 00:25:13,560 --> 00:25:18,070 Ir ji vadinama buggy3 ir jis vykdo apsikeitimo funkcija. 563 00:25:18,070 --> 00:25:23,500 Taigi čia mes turime pagrindinę funkciją, kad x ir y savavališkai inicijuotas 564 00:25:23,500 --> 00:25:24,720 1 ir 2, atitinkamai. 565 00:25:24,720 --> 00:25:27,590 Mes galime naudoti GetInt, bet mes tiesiog reikia paprastas pratimas. 566 00:25:27,590 --> 00:25:29,680 Todėl sunku koduojamos kaip 1 ir 2. 567 00:25:29,680 --> 00:25:35,330 21 ir 22 eilutėse, mes, matyt, atspausdinti X ir Y, po vieną eilutėje. 568 00:25:35,330 --> 00:25:39,620 Tada, 23 on-line, aš patvirtinu, aš Swapping šias vertybes, tašką, taškas, taškas. 569 00:25:39,620 --> 00:25:43,030 Aš, matyt, skambinti 24 eilutėje funkcija vadinama apsikeitimo 570 00:25:43,030 --> 00:25:44,000 , kad mano du argumentus. 571 00:25:44,000 --> 00:25:46,430 Tai visiškai teisėtas funkcijas imtis du argumentus. 572 00:25:46,430 --> 00:25:48,220 Mes matėme, printf padaryti jį jau. 573 00:25:48,220 --> 00:25:50,370 Taigi, apsikeitimo, matyt, mano X ir Y. 574 00:25:50,370 --> 00:25:53,010 Ir, kaip rodo jo pavadinimas, aš tikiuosi, kad ji ketina 575 00:25:53,010 --> 00:25:54,320 apsikeitimo šias dvi reikšmes. 576 00:25:54,320 --> 00:25:57,560 Taigi, aš reikalauti on line 25, pavertė. 577 00:25:57,560 --> 00:26:01,570 Ir aš perspausdinti darant prielaidą, kad X ir Y 578 00:26:01,570 --> 00:26:02,830 jie iš tikrųjų buvo sukeistas. 579 00:26:02,830 --> 00:26:04,370 Bet jei aš iš tikrųjų paleisti šią programą - 580 00:26:04,370 --> 00:26:06,060 leiskite man atverti terminalo langą. 581 00:26:06,060 --> 00:26:07,750 Leiskite man padaryti buggy3. 582 00:26:07,750 --> 00:26:09,970 Kaip rodo pavadinimas, tai ne baigsis gerai. 583 00:26:09,970 --> 00:26:14,690 Nes kai aš paspauskite "Enter", atkreipkite dėmesį, kad x yra 1. 584 00:26:14,690 --> 00:26:15,720 y 2. 585 00:26:15,720 --> 00:26:19,160 Ir dar programos pabaigoje, jie vis dar, iš tiesų, ta pati. 586 00:26:19,160 --> 00:26:22,760 >> Taigi remiantis demonstravimo tik dabar su Ken, kas iš tikrųjų vyksta? 587 00:26:22,760 --> 00:26:24,660 Na, galime pasinerti į šią apsikeitimo funkcija. 588 00:26:24,660 --> 00:26:25,800 Tai itin trumpas. 589 00:26:25,800 --> 00:26:28,020 Tai tik keletą eilučių kodo ilgą. 590 00:26:28,020 --> 00:26:32,810 Bet kas pagrindinė problema, remiantis paprasta istorija papasakojo 591 00:26:32,810 --> 00:26:34,270 čia su Ken? 592 00:26:34,270 --> 00:26:36,115 Kodėl apsikeitimo neveikia? 593 00:26:36,115 --> 00:26:37,365 [Nesigirdi] 594 00:26:39,840 --> 00:26:40,460 Tiksliai. 595 00:26:40,460 --> 00:26:43,610 Taigi mes saugoti kopiją, o ne kintamasis. 596 00:26:43,610 --> 00:26:46,810 Kitaip tariant, apsikeitimo matyt du argumentus, int. 597 00:26:46,810 --> 00:26:49,370 Ir tai sąlygiškai pavadinta a ir b. 598 00:26:49,370 --> 00:26:54,430 Ir čia, aš vyko X ir Y, kurie yra atitinkamai 1 ir 2. 599 00:26:54,430 --> 00:26:56,580 Bet aš ne pažodžiui perduoti x. 600 00:26:56,580 --> 00:26:58,410 Aš ne pažodžiui eina y. 601 00:26:58,410 --> 00:27:01,230 Aš artimųjų x kopiją ir y kopiją. 602 00:27:01,230 --> 00:27:05,180 Tai kaip ir beveik taip, lyg jums nukopijuoti ir įklijuoti apsikeitimo tas vertybes, kurios 603 00:27:05,180 --> 00:27:07,440 norite, kad ji iš tikrųjų manipuliuoti. 604 00:27:07,440 --> 00:27:11,970 Taigi, jei tai toks atvejis, kai aš, programa, pradėti vykdyti 605 00:27:11,970 --> 00:27:14,140 linija 35, tada 36 - 606 00:27:14,140 --> 00:27:17,740 kai gaunu 37 eilutėje, Šiuo istorija, kas yra vertė? 607 00:27:20,740 --> 00:27:24,850 Šiuo istorija, linija 37, kas yra vertė šiuo metu? 608 00:27:24,850 --> 00:27:25,980 Todėl ji turėtų būti tik 1. 609 00:27:25,980 --> 00:27:26,170 Tiesa? 610 00:27:26,170 --> 00:27:29,100 Nes buvo priimtas kaip pirmąjį argumentą x. 611 00:27:29,100 --> 00:27:33,150 Ir ši funkcija tiesiog savavališkai skambina savo pirmąjį argumentą,. 612 00:27:33,150 --> 00:27:35,130 Taip pat yra y, kad antrasis argumentas. 613 00:27:35,130 --> 00:27:37,930 Ir tai tik savavališkai paskambinę antrasis argumentas b. 614 00:27:37,930 --> 00:27:40,510 >> Dabar ši dichotomija yra iš tikrųjų gana tiesiog paaiškino. 615 00:27:40,510 --> 00:27:40,880 Pagalvokite apie tai. 616 00:27:40,880 --> 00:27:42,980 Nė vienas iš mūsų susitiko asmuo, kuris parašė printf. 617 00:27:42,980 --> 00:27:49,880 Todėl tikrai, jis ar ji neturi jokios idėjos, ką mūsų kintamieji 30 metų ketinate 618 00:27:49,880 --> 00:27:50,710 būti vadinamas. 619 00:27:50,710 --> 00:27:55,110 Taigi, turi būti skirtumas tarp to, ką vadiname kintamųjų 620 00:27:55,110 --> 00:27:59,960 funkcijos rašote ir ką vadiname kintamųjų funkcijų esate 621 00:27:59,960 --> 00:28:01,770 skambinti arba naudojant. 622 00:28:01,770 --> 00:28:05,120 Taigi, kitaip tariant, aš parašiau savo kintamuosius x ir y. 623 00:28:05,120 --> 00:28:08,060 Bet, jei kažkas buvo parašyta apsikeitimo funkcija, jis ar ji tikrai 624 00:28:08,060 --> 00:28:10,480 negalėjo žinoti, ką mano kintamieji bus vadinamas. 625 00:28:10,480 --> 00:28:13,850 Taigi suprasti, kad tai, kodėl jūs turite šią vardų dvilypumą. 626 00:28:13,850 --> 00:28:16,800 Techniškai, galėčiau tai padaryti sutapimo. 627 00:28:16,800 --> 00:28:19,750 Bet jis vis tiek būtų priimtas, kopijas. 628 00:28:19,750 --> 00:28:22,940 Tai tiesiog grynas atsitiktinumas, estetiškai, jei tas asmuo, kuris parašė 629 00:28:22,940 --> 00:28:25,590 apsikeitimo sandoris buvo naudojamas tais pačiais pavadinimais. 630 00:28:25,590 --> 00:28:25,930 >> Gerai. 631 00:28:25,930 --> 00:28:29,010 Taigi Šiuo istorija, linija 37, yra 1. 632 00:28:29,010 --> 00:28:30,410 b 2. 633 00:28:30,410 --> 00:28:32,040 Ir dabar aš pereiti prie apsikeitimo juos. 634 00:28:32,040 --> 00:28:34,730 Na, visų pirma, leiskite man iš tikrųjų tai padaryti daug paprasčiau. 635 00:28:34,730 --> 00:28:36,500 Aš nežinau, ką darė šie tris eilutes kodo. 636 00:28:36,500 --> 00:28:37,370 Leiskite man tiesiog tai padaryti. 637 00:28:37,370 --> 00:28:38,850 b gauna. 638 00:28:38,850 --> 00:28:40,170 gauna b. 639 00:28:40,170 --> 00:28:41,450 Atlikta. 640 00:28:41,450 --> 00:28:43,540 Kodėl tai yra skaldytų, logiškai? 641 00:28:46,980 --> 00:28:48,590 Tai tipo intuityvi dalykas, tiesa? 642 00:28:48,590 --> 00:28:50,640 Taigi tampa b. 643 00:28:50,640 --> 00:28:52,450 Ir b tampa. 644 00:28:52,450 --> 00:28:55,410 Tačiau problema yra ta, kad kuo greičiau linija 37 vykdo, kas 645 00:28:55,410 --> 00:28:58,170 vertė a ir b? 646 00:28:58,170 --> 00:28:59,070 Tas pats, 1. 647 00:28:59,070 --> 00:29:03,460 , Nes jūs sugadinta, taip sakant, jūs pakeitėte B lygi. 648 00:29:03,460 --> 00:29:06,000 Taigi, kai linija yra vykdoma 37, tai puiku. 649 00:29:06,000 --> 00:29:09,940 Dabar jūs turite dvi kopijas skaičių 1 šios funkcijos viduje. 650 00:29:09,940 --> 00:29:14,720 Taip, tada, kai jūs sakote, 38 eilutėje, gauna b, gerai, tu tipo prisukamas. 651 00:29:14,720 --> 00:29:17,370 Kadangi jūs tik priskiriant 1 iki 1. 652 00:29:17,370 --> 00:29:20,400 Jūs rūšies prarado vertę, kurią rūpinosi apie. 653 00:29:20,400 --> 00:29:22,910 >> Taigi iš pradinės versijos, atkreipkite dėmesį, ką aš padariau. 654 00:29:22,910 --> 00:29:26,620 Aš vietoj trečiosios eilutės kodą, kuris atrodė taip. 655 00:29:26,620 --> 00:29:29,910 Paskelbti laikiną kintamąjį - TVP yra labai dažnas vardas 656 00:29:29,910 --> 00:29:31,240 laikinas kintamasis. 657 00:29:31,240 --> 00:29:34,280 Tai int, nes ji atitiktų tai, ką aš noriu padaryti kopiją. 658 00:29:34,280 --> 00:29:39,720 Galiu laikyti tmp viduje kopiją. Taigi, kai linija įvykdė 37 659 00:29:39,720 --> 00:29:41,390 vertė - 660 00:29:41,390 --> 00:29:42,970 greitai normalumas patikrinti - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 B vertė yra 2. 663 00:29:45,780 --> 00:29:48,470 Ir tmp vertė taip pat yra 1. 664 00:29:48,470 --> 00:29:51,470 Taigi, dabar aš atlikti linija 38. 665 00:29:51,470 --> 00:29:57,180 Taigi, kai vykdo linija 38, įgauna b vertei. 666 00:29:57,180 --> 00:29:58,510 Ir b 2. 667 00:29:58,510 --> 00:30:00,500 Taigi dabar yra 2. 668 00:30:00,500 --> 00:30:03,110 Šiuo istorija, yra 2, b - 2, 669 00:30:03,110 --> 00:30:05,130 ir tmp yra 1. 670 00:30:05,130 --> 00:30:09,330 Taigi dabar logiškai, mes galime tiesiog Plop tmp vertė į b. 671 00:30:09,330 --> 00:30:10,690 Ir baigsime. 672 00:30:10,690 --> 00:30:12,170 >> Taigi, mes išspręsti šią problemą. 673 00:30:12,170 --> 00:30:16,040 Deja, kai aš paleisti šią programą šią formą, jis nėra iš tikrųjų apsikeitimo 674 00:30:16,040 --> 00:30:17,700 bet kokias reikšmes. 675 00:30:17,700 --> 00:30:18,950 , Tačiau turi būti aišku, kodėl? 676 00:30:23,420 --> 00:30:26,310 I fixed loginių problemų, nuo vos prieš akimirką. 677 00:30:26,310 --> 00:30:31,150 Bet vėl, jei aš paleisti šią programą, x ir y lieka nepakitę pabaigoje 678 00:30:31,150 --> 00:30:33,834 programos vykdymas. 679 00:30:33,834 --> 00:30:34,760 [Nesigirdi] 680 00:30:34,760 --> 00:30:36,030 David J. Malan: Taigi mes negrąžinami nieko. 681 00:30:36,030 --> 00:30:36,960 Taip, tai tiesa. 682 00:30:36,960 --> 00:30:39,880 Tačiau paaiškėja, yra šiek tiek problemų, nes čia iki šiol, 683 00:30:39,880 --> 00:30:42,460 Vienintelis dalykas, mes negalėjo grįžti yra vienas dalykas. 684 00:30:42,460 --> 00:30:46,540 Ir tai yra C. apribojimas Galite grįžti tik tikrai vieną reikšmę, 685 00:30:46,540 --> 00:30:48,970 tokiu atveju, aš natūra įstrigo čia 686 00:30:48,970 --> 00:30:51,805 nes aš negalėjau grįžti naują vertę x, ar aš galėtų grįžti 687 00:30:51,805 --> 00:30:53,160 y nauja reikšmė. 688 00:30:53,160 --> 00:30:54,330 Bet aš noriu, tiek atgal. 689 00:30:54,330 --> 00:30:58,010 Taigi, grįžtant nėra paprastas sprendimas. 690 00:30:58,010 --> 00:30:59,770 Tačiau problema iš esmės yra, kodėl? 691 00:30:59,770 --> 00:31:03,270 Ką mes iš tikrųjų pavertė? 692 00:31:03,270 --> 00:31:04,010 a ir b. 693 00:31:04,010 --> 00:31:07,670 Tačiau a ir b yra kopijos X ir Y, o tai reiškia, mes tiesiog padarė visa tai 694 00:31:07,670 --> 00:31:10,080 dirbti - mes tiesiog praleido kaip tris minutes kalbėti apie apsikeitimo sandorio 695 00:31:10,080 --> 00:31:11,680 funkcija ir visi trys iš šių kintamųjų. 696 00:31:11,680 --> 00:31:15,090 Ir tai puiku, visiškai teisinga atskirai. 697 00:31:15,090 --> 00:31:20,230 Tačiau a ir b taikymo sritis tik čia Šiose eilutėse. 698 00:31:20,230 --> 00:31:24,130 Taigi, kaip ir už linijos, jei pareiškiate, sveikasis skaičius i viduje už 699 00:31:24,130 --> 00:31:27,400 kilpa - Be to, jei jūs skelbiantis a ir b viduje funkcijos, kad 700 00:31:27,400 --> 00:31:30,550 parašiau, jie galioja tik šios funkcijos viduje. 701 00:31:30,550 --> 00:31:35,020 , O tai reiškia, kuo greičiau apsikeitimo daroma vykdant ir mes pereiti nuo iki 24 eilutėje 702 00:31:35,020 --> 00:31:38,380 linija 25, x ir y nebuvo pasikeitė. 703 00:31:38,380 --> 00:31:42,580 Jūs tiesiog švaistomi visai daug metu apsikeičiama kintamųjų kopijas. 704 00:31:42,580 --> 00:31:46,490 >> Taigi paaiškėja, kad sprendimas yra tai tikrai ne akivaizdus. 705 00:31:46,490 --> 00:31:49,210 Tai ne visai pakanka grąžinti reikšmes, nes mes galime 706 00:31:49,210 --> 00:31:50,320 grįžti tik vieną reikšmę. 707 00:31:50,320 --> 00:31:53,370 Ir aš tikrai norite apsikeitimo x ir y tuo pačiu metu. 708 00:31:53,370 --> 00:31:55,020 Taigi, mes ketiname grįžti į šį. 709 00:31:55,020 --> 00:31:58,770 Bet dabar, suprasti, kad klausimas iš esmės kyla iš to, 710 00:31:58,770 --> 00:32:00,660 , kad a ir b yra kopijos. 711 00:32:00,660 --> 00:32:03,450 Ir jie yra savo taikymo sritį. 712 00:32:03,450 --> 00:32:04,980 Na, pabandykime išspręsti šią problemą tam tikru būdu. 713 00:32:04,980 --> 00:32:09,200 Leiskite man iš tikrųjų slinkti atgal čia ir atverti, tarkim, ketvirtasis variantas 714 00:32:09,200 --> 00:32:11,170 tai, buggy4. 715 00:32:11,170 --> 00:32:13,230 O ką apie tai? 716 00:32:13,230 --> 00:32:16,690 Tai yra panašus, bet paprastesnis problema, pažvelgti į tai, kol mes imtis Pabandyti 717 00:32:16,690 --> 00:32:17,530 ją sprendžiant. 718 00:32:17,530 --> 00:32:19,440 Ši programa yra vadinamas prieaugis. 719 00:32:19,440 --> 00:32:24,320 Ir tai, matyt, inicijuoja sveikasis skaičius x 1, 18 eilutėje. 720 00:32:24,320 --> 00:32:25,950 Aš tada prašyti x 1. 721 00:32:25,950 --> 00:32:28,020 Aš tada prašyti incrementing, taškas, taškas, taškas. 722 00:32:28,020 --> 00:32:29,460 Aš tada skambinti prieaugio. 723 00:32:29,460 --> 00:32:33,480 Bet tada 22 ir 23 eilutėse, galiu reikalauti tai buvo padidinamas. 724 00:32:33,480 --> 00:32:37,780 Galiu reikalauti, x yra dabar, kokia ji yra, 2 matyt. 725 00:32:37,780 --> 00:32:39,770 >> Tačiau ši programa yra klaidų. 726 00:32:39,770 --> 00:32:41,020 Kokia tai problema? 727 00:32:43,450 --> 00:32:44,418 Taip? 728 00:32:44,418 --> 00:32:45,668 [Nesigirdi] 729 00:32:49,260 --> 00:32:49,850 David J. Malan: Būtent. 730 00:32:49,850 --> 00:32:52,430 Taigi buvo paskelbtas akivaizdžiai x 18 on-line. 731 00:32:52,430 --> 00:32:54,410 Tai yra viduje pagrindinis klamrami. 732 00:32:54,410 --> 00:32:58,470 Taigi, čia yra paprastas atsakymas, kad gerai, x yra čia. 733 00:32:58,470 --> 00:33:01,510 Jis neegzistuoja, atitinka 32. 734 00:33:01,510 --> 00:33:03,710 Todėl ši programa iš tikrųjų net nebus surinkti. 735 00:33:03,710 --> 00:33:07,910 Sudarytojas,, kai bandau sudarant šį kodą, ketina klykauti ne man 736 00:33:07,910 --> 00:33:13,190 apie kai nedeklaruoto identifikatorius arba kažką šiuo klausimu. 737 00:33:13,190 --> 00:33:13,870 Tiesą sakant, pabandykime. 738 00:33:13,870 --> 00:33:15,235 Tai padaryti buggy4. 739 00:33:17,780 --> 00:33:18,190 Ji yra. 740 00:33:18,190 --> 00:33:22,030 Nedeklaruoto identifikatorius x 32 eilutėje. 741 00:33:22,030 --> 00:33:25,700 Ir iš tikrųjų, būkime daugiau aiškiai čia šiandien taip, kad tai yra naudinga 742 00:33:25,700 --> 00:33:27,140 darbo valandomis, ir namuose. 743 00:33:27,140 --> 00:33:29,000 Atkreipkite dėmesį, kad tai šiek tiek cryptically parašyta. 744 00:33:29,000 --> 00:33:31,560 Bet faktas, kad Apsukite metalinis garsas turi rėkė į mus, sakydamas: 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, yra iš tikrųjų naudinga. 746 00:33:36,970 --> 00:33:41,970 Tai reiškia, kad klaida yra ne simbolių poziciją 5 32 eilutėje. 747 00:33:41,970 --> 00:33:44,670 Taigi, vienas, du, trys, keturi, penki. 748 00:33:44,670 --> 00:33:46,640 Štai, iš tiesų, kai problema yra. 749 00:33:46,640 --> 00:33:49,710 Ir taip pat reikia nepamiršti, darbo valandomis, ir namuose, aš esu laimingas čia. 750 00:33:49,710 --> 00:33:50,740 Turiu vieną klaidą. 751 00:33:50,740 --> 00:33:52,660 Tai bus gana lengva nustatyti. 752 00:33:52,660 --> 00:33:56,220 Bet jei jūs gaunate visą ekraną, pilną didžioji klaidų pranešimų, dar kartą, 753 00:33:56,220 --> 00:33:59,240 suprasti, kad gali būti tik simptominis apatinis 754 00:33:59,240 --> 00:34:00,320 Viršutinis. 755 00:34:00,320 --> 00:34:03,560 Todėl visada Chase žemyn klaidas iš viršaus į apačią. 756 00:34:03,560 --> 00:34:06,720 Nes ten gali būti tiesiog Nuosekliai-poveikis, kuris siūlo jums 757 00:34:06,720 --> 00:34:09,030 būdas daugiau problemų, negu jūs iš tikrųjų. 758 00:34:09,030 --> 00:34:14,989 >> Taigi, kaip mes galime išspręsti šią problemą, jei mano tikslas yra prieaugio x? 759 00:34:14,989 --> 00:34:15,370 Kas tai? 760 00:34:15,370 --> 00:34:15,620 Gerai. 761 00:34:15,620 --> 00:34:16,679 Taigi, mes galime padaryti x pasaulio. 762 00:34:16,679 --> 00:34:18,860 Paimkime nuorodą, kad aš perspėjo apie anksčiau. 763 00:34:18,860 --> 00:34:20,550 Bet gi, mums tik reikia greitai išspręsti. 764 00:34:20,550 --> 00:34:23,949 Taigi tegul tiesiog pasakyti, int x, čia. 765 00:34:23,949 --> 00:34:25,600 Tai daro x Global. 766 00:34:25,600 --> 00:34:28,460 Taigi dabar pagrindinis turi prieigą prie jo. 767 00:34:28,460 --> 00:34:31,780 Ir prieaugis turi prieigą prie jo. 768 00:34:31,780 --> 00:34:33,860 Ir todėl leiskite man eiti į priekį ir kaupti tai dabar. 769 00:34:33,860 --> 00:34:36,330 Padaryti buggy4, "Enter". 770 00:34:36,330 --> 00:34:37,440 Atrodo sudaryti dabar. 771 00:34:37,440 --> 00:34:40,949 Apsvarstykite, buggy4 ir atrodo, kad dirbtų. 772 00:34:40,949 --> 00:34:42,780 Dabar tai vienas iš šių dalykų - 773 00:34:42,780 --> 00:34:45,870 daryti, kaip aš sakau, o ne kaip aš, kaip aš tiesiog padaryti čia. 774 00:34:45,870 --> 00:34:49,239 Nes apskritai, mūsų programos ketinate gauti daug įdomesnis ir 775 00:34:49,239 --> 00:34:50,440 daug ilgiau, nei šis. 776 00:34:50,440 --> 00:34:53,199 Ir jei jūsų gyvenimo problemų sprendimas yra tiesiog ah, įdėti visus 777 00:34:53,199 --> 00:34:57,550 kintamieji failo viršuje, labai greitai padaryti, programos gauti 778 00:34:57,550 --> 00:34:59,700 horrifically sunku valdyti. 779 00:34:59,700 --> 00:35:02,050 Ji pasireiškia sunkiau sugalvoti naujų kintamųjų vardai. 780 00:35:02,050 --> 00:35:05,240 Ji pasireiškia sunkiau suprasti, kas yra kintamasis yra tai, ką. 781 00:35:05,240 --> 00:35:08,250 >> Ir apskritai, tai nėra geras sprendimas. 782 00:35:08,250 --> 00:35:09,780 Todėl galime tai padaryti geriau. 783 00:35:09,780 --> 00:35:11,920 Mes nenorime naudoti pasaulinį kintamąjį. 784 00:35:11,920 --> 00:35:14,050 Aš noriu prieaugio x. 785 00:35:14,050 --> 00:35:16,050 , Kad galėčiau akivaizdžiai 786 00:35:16,050 --> 00:35:18,450 dienos pabaigoje, tai tipo kvailos istorijos, nes mes tiesiog tai padaryti. 787 00:35:18,450 --> 00:35:22,050 Bet jei aš ne žinoti apie tokio subjekto, ar aš nebuvo leista 788 00:35:22,050 --> 00:35:27,700 jį pakeisti pagrindinis pati, kaip kitaip galėčiau įgyvendinti Ken čia, tai 789 00:35:27,700 --> 00:35:31,450 laikas ne kubo, bet prieaugio? 790 00:35:31,450 --> 00:35:32,700 Kaip aš galiu pasikeisti tai, ką čia? 791 00:35:32,700 --> 00:35:33,025 Taip. 792 00:35:33,025 --> 00:35:34,275 [Nesigirdi] 793 00:35:37,430 --> 00:35:38,000 David J. Malan: Gerai, gerai. 794 00:35:38,000 --> 00:35:40,490 Tad kodėl gi ne galiu perduoti x? 795 00:35:40,490 --> 00:35:44,390 Ir tada, o ne grąžinti, kodėl gi ne Aš tiesiog grįžti x + 1? 796 00:35:44,390 --> 00:35:46,370 Dabar pora daugiau ką keisti čia. 797 00:35:46,370 --> 00:35:47,530 Aš esu teisingame kelyje. 798 00:35:47,530 --> 00:35:48,910 Ką dar man reikia įgnybti? 799 00:35:48,910 --> 00:35:49,470 Kas nors kitas. 800 00:35:49,470 --> 00:35:49,882 Taip? 801 00:35:49,882 --> 00:35:51,530 [Nesigirdi] 802 00:35:51,530 --> 00:35:53,520 David J. Malan: Man reikia pakeisti grįžimo tipo prieaugio 803 00:35:53,520 --> 00:35:54,590 , nes jis negaliojančiomis. 804 00:35:54,590 --> 00:35:56,650 Void tai nieko grąžinamas. 805 00:35:56,650 --> 00:35:57,600 Tačiau aišku, kad dabar ji yra. 806 00:35:57,600 --> 00:36:01,280 , Todėl tai turi pakeisti int turi būti suderinti su kokia 807 00:36:01,280 --> 00:36:02,580 Aš iš tikrųjų grįžta. 808 00:36:02,580 --> 00:36:04,580 >> Dabar kažkas vis dar Buggy čia. 809 00:36:04,580 --> 00:36:04,982 Taip? 810 00:36:04,982 --> 00:36:06,590 [Nesigirdi] 811 00:36:06,590 --> 00:36:07,630 David J. Malan: Taigi man reikia prieaugio x? 812 00:36:07,630 --> 00:36:10,336 [Nesigirdi] 813 00:36:10,336 --> 00:36:11,880 David J. Malan: Ak, kad man reikia perduoti x. 814 00:36:11,880 --> 00:36:13,300 Taigi man reikia tai padaryti čia. 815 00:36:17,590 --> 00:36:19,690 Todėl prototipą, turiu pakeisti čia. 816 00:36:19,690 --> 00:36:21,290 Taigi tai turi tapti int. 817 00:36:21,290 --> 00:36:22,820 Tai turi tapti - 818 00:36:22,820 --> 00:36:23,670 hmm. 819 00:36:23,670 --> 00:36:24,710 Aš iš tikrųjų turi apie klaidą čia. 820 00:36:24,710 --> 00:36:25,780 Leiskite išspręsti šią iš pradžių. 821 00:36:25,780 --> 00:36:27,990 Ką tai turėtų būti iš tiesų? 822 00:36:27,990 --> 00:36:29,330 Taigi tai turite būti int kažkas. 823 00:36:29,330 --> 00:36:30,340 Tai gali būti x. 824 00:36:30,340 --> 00:36:33,120 Bet atvirai, jei pradėsite Kreipiamės į visus savo kintamieji x, tai ketina gauti 825 00:36:33,120 --> 00:36:35,250 mažiau aišku, kas yra kas. 826 00:36:35,250 --> 00:36:38,210 Todėl galime tik savavališkai pasirinkti kitą pavadinimų konvencijos Mano 827 00:36:38,210 --> 00:36:40,220 padėjėjo funkcijas, funkcijas, aš rašau. 828 00:36:40,220 --> 00:36:41,100 Mes paskambinsime. 829 00:36:41,100 --> 00:36:44,500 Arba galėtume vadinti jį - tegul jį vadiname even_number būti dar aiškesnis. 830 00:36:44,500 --> 00:36:47,610 Taigi, tada aš turiu grįžti, bet skaičius plius 1. 831 00:36:47,610 --> 00:36:49,720 Ir dabar turiu pakeisti vienas kitas dalykas, čia ir vienas 832 00:36:49,720 --> 00:36:50,700 kitas dalykas čia. 833 00:36:50,700 --> 00:36:54,150 Ką turiu pakeisti eilutę 21? 834 00:36:54,150 --> 00:36:55,390 Turiu priskirti jį x. 835 00:36:55,390 --> 00:36:57,480 Taigi aš negaliu tiesiog paskambinti prieaugio x. 836 00:36:57,480 --> 00:37:01,000 Man reikia prisiminti atsakymą keičiant x vertę 837 00:37:01,000 --> 00:37:02,020 kairėje pusėje. 838 00:37:02,020 --> 00:37:04,930 Ir nors čia x yra dabar į kairę ir į dešinę, kad visiškai gerai, nes 839 00:37:04,930 --> 00:37:08,370 dešinėje pusėje pirmiausia paleidžiama vykdyti gauna plopped į kairę 840 00:37:08,370 --> 00:37:10,240 rankų dalykas, šiuo atveju x. 841 00:37:10,240 --> 00:37:11,900 Ir tada galiausiai, tai lengva nustatyti. 842 00:37:11,900 --> 00:37:15,080 Tai tiesiog reikia suderinti, kas žemiau. 843 00:37:15,080 --> 00:37:17,120 Int numeris. 844 00:37:17,120 --> 00:37:17,320 >> Gerai. 845 00:37:17,320 --> 00:37:20,290 Taigi visa krūva pokyčių tikrai kvailas funkcija. 846 00:37:20,290 --> 00:37:24,250 Tačiau atstovas dalykų, kad mes vis labiau nori daryti. 847 00:37:24,250 --> 00:37:25,490 Todėl įsitikinkite, buggy4. 848 00:37:25,490 --> 00:37:26,485 Aš įsukus kažkur. 849 00:37:26,485 --> 00:37:27,520 O, Dieve. 850 00:37:27,520 --> 00:37:29,660 Penkios klaidos, kaip, šešių eilutės programa. 851 00:37:29,660 --> 00:37:36,500 Taigi, kas yra negerai on line 18 5, charakteris? 852 00:37:36,500 --> 00:37:36,970 Gerai. 853 00:37:36,970 --> 00:37:39,330 Taigi, aš turiu pripažinti šią int. 854 00:37:39,330 --> 00:37:39,630 Gerai. 855 00:37:39,630 --> 00:37:41,790 Taigi, pažiūrėkime, visa krūva kitų klaidų. 856 00:37:41,790 --> 00:37:42,230 Oh my god. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 Bet vėl, tegul tiesiog išvalyti ekraną - 859 00:37:46,020 --> 00:37:48,660 Kontrolė L čia ir iš naujo paleiskite Apsukite metalinis garsas. 860 00:37:48,660 --> 00:37:51,340 Taigi penkių uždavinių iš tikrųjų yra tik tai, kad vienas. 861 00:37:51,340 --> 00:37:53,500 Taigi dabar galime paleisti buggy4, "Enter". 862 00:37:53,500 --> 00:37:54,150 FIU. 863 00:37:54,150 --> 00:37:57,434 x buvo padidinamas teisingai. 864 00:37:57,434 --> 00:37:58,420 >> Gerai. 865 00:37:58,420 --> 00:38:01,700 Kokių nors klausimų apie tai, kaip prieaugio skaičius? 866 00:38:01,700 --> 00:38:02,896 Taip? 867 00:38:02,896 --> 00:38:06,864 KOLONĖLĖS 2: Kodėl tai, kad jūs galite tik pakeisti x kintamasis skaičius 868 00:38:06,864 --> 00:38:08,860 įvardyti ir žinosite, ką turite galvoje? 869 00:38:08,860 --> 00:38:09,600 David J. Malan: Geras klausimas. 870 00:38:09,600 --> 00:38:13,130 Kaip tai, kad aš galiu tiesiog pakeisti x skaičių ir programa bus žinoti 871 00:38:13,130 --> 00:38:13,990 iš karto? 872 00:38:13,990 --> 00:38:16,120 Taigi dar kartą, manau, apie tai, kaip šios abstrakcijos. 873 00:38:16,120 --> 00:38:20,110 Taigi, jei aš esu pagrindinis ir Kenas yra pažangus, tiesą sakant, aš ne rūpintis, 874 00:38:20,110 --> 00:38:21,540 ką Ken vadina savo "iPad". 875 00:38:21,540 --> 00:38:25,350 Man nerūpi, ką jis vadina nieko, kad turi daryti su jo įgyvendinimo 876 00:38:25,350 --> 00:38:26,550 šios funkcijos. 877 00:38:26,550 --> 00:38:32,130 Taigi tai yra įgyvendinimas išsamiai, kad aš, pagrindinė, ar ne 878 00:38:32,130 --> 00:38:33,010 turi rūpintis. 879 00:38:33,010 --> 00:38:37,440 Ir taip tiesiog pakeisti jį nuolat viduje funkcijos, numeris čia 880 00:38:37,440 --> 00:38:41,340 ir numeris čia, visa tai trunka taip ilgai, kaip aš perkompiliuoti. 881 00:38:41,340 --> 00:38:43,820 Tai rūšiuoti, pavyzdžiui, jei jūs manote apie - daugelis iš mūsų, tiems iš jūsų, su vairuotojo 882 00:38:43,820 --> 00:38:46,590 licencijos, kurie jau važiuoti, arba, jei jūs net važiuoti automobilyje - 883 00:38:46,590 --> 00:38:50,710 dauguma iš mūsų neįsivaizduoju, kaip automobilis veikia po kapotu. 884 00:38:50,710 --> 00:38:54,710 Ir tiesiogine prasme, jeigu Jūs atidarote gaubtą, dauguma iš mūsų - tarp jų ir aš - 885 00:38:54,710 --> 00:38:56,580 nesiruošia tikrai žinote, ką mes ieškome. 886 00:38:56,580 --> 00:38:58,850 Rūšies, kaip jūs galite jausti dalykų, kaip šios teisės dabar. 887 00:38:58,850 --> 00:39:01,380 Bet mes tikrai turime rūpintis, kaip automobilis veikia. 888 00:39:01,380 --> 00:39:05,000 Mes neturime rūpintis, ką visi strypai ir stūmoklius ir kabelių viduje 889 00:39:05,000 --> 00:39:07,700 automobilis iš tikrųjų daro. 890 00:39:07,700 --> 00:39:11,360 >> Taigi, kažkas panašaus į tai, ką vadiname stūmoklio nesvarbu 891 00:39:11,360 --> 00:39:11,920 čia šiuo atveju. 892 00:39:11,920 --> 00:39:12,490 Pati idėja. 893 00:39:12,490 --> 00:39:12,670 Taip? 894 00:39:12,670 --> 00:39:13,920 [Nesigirdi] 895 00:39:25,250 --> 00:39:29,530 David J. Malan: Jei ten buvo daugiau naudoja kintamojo xa metu prieš 896 00:39:29,530 --> 00:39:32,220 jūs, programuotojas, turėtų pakeisti juos visur. 897 00:39:32,220 --> 00:39:35,230 Arba jūs tiesiog gali padaryti failą, meniu, ir tada Rasti / pakeisti, 898 00:39:35,230 --> 00:39:36,270 kažkas panašaus. 899 00:39:36,270 --> 00:39:40,110 , Bet jūs ketinate turi atlikti šiuos pakeitimus sau. 900 00:39:40,110 --> 00:39:41,200 Jūs turite būti nuoseklūs. 901 00:39:41,200 --> 00:39:42,450 [Nesigirdi] 902 00:39:47,200 --> 00:39:48,960 David J. Malan: tikra tvarka kaip čia? 903 00:39:48,960 --> 00:39:52,660 Jei tai buvo int kitą numerį? 904 00:39:52,660 --> 00:39:52,940 Taip. 905 00:39:52,940 --> 00:39:56,430 Taigi, kad svarbu, kai skambinate funkciją. 906 00:39:56,430 --> 00:40:00,350 Taigi, jei aš vadino prieaugis čia su kažkuo kableliais kažką, 907 00:40:00,350 --> 00:40:01,400 yra tiesioginis žemėlapių. 908 00:40:01,400 --> 00:40:04,490 Pirmasis kintamasis, kokia ji vadinama, yra pagamintas iš pirmųjų kopiją 909 00:40:04,490 --> 00:40:05,480 argumentas čia. 910 00:40:05,480 --> 00:40:07,280 Atsiprašome, tai neturėtų būti skliausto. 911 00:40:07,280 --> 00:40:09,300 Antrasis argumentas linijos iki su antrąją. 912 00:40:09,300 --> 00:40:11,220 >> Taigi, kad taip, klausimai. 913 00:40:11,220 --> 00:40:11,490 Gerai. 914 00:40:11,490 --> 00:40:13,360 Atsiprašome aš paėmė ilgą kelią, kad ten patekti. 915 00:40:13,360 --> 00:40:14,610 Kiti klausimai? 916 00:40:16,460 --> 00:40:16,850 Gerai. 917 00:40:16,850 --> 00:40:20,300 Taigi pažiūrėkime, jei mes negalime dažų vaizdą apie tai, kas iš tikrųjų vyksta 918 00:40:20,300 --> 00:40:22,160 čia po kapotu, taip sakant. 919 00:40:22,160 --> 00:40:26,310 Taigi tai yra stačiakampis, gali atstovauti jūsų kompiuterio atminties. 920 00:40:26,310 --> 00:40:31,240 Taigi, net jei jūs neturite idėjos, kaip atmintis veikia arba kaip RAM darbai, bent jau 921 00:40:31,240 --> 00:40:33,590 manyti, kad turite kekių šių dienų. 922 00:40:33,590 --> 00:40:34,740 Jūs turite megabaitų. 923 00:40:34,740 --> 00:40:35,760 Jūs turite gigabaitų. 924 00:40:35,760 --> 00:40:40,690 Ir mes žinome, iš savaitę nulio, kad baitų yra tai, ką? 925 00:40:40,690 --> 00:40:41,280 8 bitai. 926 00:40:41,280 --> 00:40:42,730 Teisus, todėl 8 nuliai ir tie. 927 00:40:42,730 --> 00:40:46,300 Taigi, jei jūsų kompiuteryje yra RAM koncertą, du koncertai RAM šių dienų, jūs turite 928 00:40:46,300 --> 00:40:54,450 milijardas ar 2 milijardas baitų atminties, arba maždaug 8 mlrd arba 16 mlrd. 929 00:40:54,450 --> 00:40:56,560 bitai, viduje jūsų kompiuteryje. 930 00:40:56,560 --> 00:40:59,710 Dabar, skirtingai nei mažai vilnonę Willy Pavyzdžiui, tai nėra magnetinės dalelės 931 00:40:59,710 --> 00:41:00,560 paprastai daugiau. 932 00:41:00,560 --> 00:41:04,470 Vis daugiau, nešiojamieji kompiuteriai bent jau tai kietojo kūno diskai, SSD, 933 00:41:04,470 --> 00:41:05,560 tiesiog ne judančių dalių. 934 00:41:05,560 --> 00:41:06,710 Visa tai yra elektroninis. 935 00:41:06,710 --> 00:41:08,070 Tai visi elektros pagrindu. 936 00:41:08,070 --> 00:41:12,360 Todėl manau, kad, nors, kaip tik vieną ar du šio stačiakampio 937 00:41:12,360 --> 00:41:13,930 GB atminties, kad jūs turite. 938 00:41:13,930 --> 00:41:15,500 >> Todėl atminties riekė. 939 00:41:15,500 --> 00:41:20,460 Dabar kompiuterių mokslo pasaulyje yra tarsi atitverta gabaliukus 940 00:41:20,460 --> 00:41:22,570 atminties tai skirtingi dalykai. 941 00:41:22,570 --> 00:41:25,930 Taigi, pavyzdžiui, jei tai yra jūsų kompiuterio RAM - kaip siūloma 942 00:41:25,930 --> 00:41:30,400 stačiakampis ten - paaiškėja, kad pagal susitarimą, jūsų RAM viršuje, todėl 943 00:41:30,400 --> 00:41:33,170 kalbėti, paprastai yra tai, kas vadinama teksto segmentas. 944 00:41:33,170 --> 00:41:35,910 Jie yra nuliai ir tie, kurie turite surinkti. 945 00:41:35,910 --> 00:41:39,040 Taigi, kai mes pažvelgė, ką a.out yra po gaubtu, visi 946 00:41:39,040 --> 00:41:40,360 nuliai ir tie - 947 00:41:40,360 --> 00:41:44,000 , kai paleidžiate programą, tie nuliai ir tie pakraunami iš jūsų standžiajame 948 00:41:44,000 --> 00:41:46,290 diską į kažką vadinama RAM. 949 00:41:46,290 --> 00:41:48,950 Ir RAM, jie įdėti viršuje. 950 00:41:48,950 --> 00:41:50,330 Dabar tuo tarpu, jūs turite kitų dalykų. 951 00:41:50,330 --> 00:41:53,060 Inicializuoti duomenis, niezainicjowanymi duomenų. 952 00:41:53,060 --> 00:41:56,440 Šios dvi atminties swaths kreiptis globalių kintamųjų, kurie 953 00:41:56,440 --> 00:41:57,530 jums nereikia dažnai naudotis. 954 00:41:57,530 --> 00:42:00,630 Bet kartais, jei jūs darote, jie galų gale ten taip pat. 955 00:42:00,630 --> 00:42:01,620 Tada ten kai kurių kitų dalykų. 956 00:42:01,620 --> 00:42:04,130 Aplinkos kintamieji, kuriuos mes ne išleisti daug laiko. 957 00:42:04,130 --> 00:42:06,120 Bet tada du svarbūs dalykai, kad ateis atgal per 958 00:42:06,120 --> 00:42:08,130 semestrą, kamino ir krūva. 959 00:42:08,130 --> 00:42:12,280 >> Taigi, dauguma iš jūsų kompiuterio atmintyje saugomos paleidžiant programą 960 00:42:12,280 --> 00:42:14,880 kažkas vadinamas kamino ir kažką vadinama krūvą 961 00:42:14,880 --> 00:42:16,940 Ir mes ketiname kalbėti apie krūvą šiandien, tačiau mes 962 00:42:16,940 --> 00:42:18,180 kalbėti apie kamino. 963 00:42:18,180 --> 00:42:22,910 Ir kamino skirtas įsivaizduoti vizualiai kaip ir valgomajame 964 00:42:22,910 --> 00:42:26,120 miltai padėklai Mather House ar kur būtumėte, kur 965 00:42:26,120 --> 00:42:27,810 valgykla darbuotojai juos valyti kiekvieną dieną. 966 00:42:27,810 --> 00:42:30,180 Jie sukrauti juos nuo grindų On Up. 967 00:42:30,180 --> 00:42:33,800 Ir panašiai atmintyje, yra ši idėja pradėti kažką 968 00:42:33,800 --> 00:42:36,740 kaminą, kamino, pradėti kažką pradėti kažką ant kamino. 969 00:42:36,740 --> 00:42:38,000 Ir ką reiškia šis? 970 00:42:38,000 --> 00:42:41,430 Na, galime padidinti tik apatinėje šioje nuotraukoje, jūsų kompiuterio 971 00:42:41,430 --> 00:42:43,990 RAM, pasiūlyti šias. 972 00:42:43,990 --> 00:42:48,300 Pasirodo, kad paleidus kaip a.out programą arba Hello, nepriklausomai nuo 973 00:42:48,300 --> 00:42:49,920 programa, kad rašėte, 974 00:42:49,920 --> 00:42:53,030 vėl, tie nuliai ir tie yra pakraunami iš jūsų kietojo disko, kuris yra 975 00:42:53,030 --> 00:42:56,190 ilgalaikis sandėliavimas, lieka ten, net jei jūs traukite už kištuko, 976 00:42:56,190 --> 00:42:57,220 pakraunamos į RAM. 977 00:42:57,220 --> 00:42:59,020 RAM greičiau nei kietieji diskai. 978 00:42:59,020 --> 00:43:00,700 Mažesnis nei kietieji diskai. 979 00:43:00,700 --> 00:43:03,490 Bet tai, kur programos gyventi, o jūs naudojate juos. 980 00:43:03,490 --> 00:43:06,380 >> Taigi dukart spustelėkite ant Mac ar PC programa - tai pakraunami iš 981 00:43:06,380 --> 00:43:07,750 kietąjį diską į RAM. 982 00:43:07,750 --> 00:43:11,760 Iš karto, kai jis pakrautas į RAM, nuliai ir tie, eiti į tai, kaip viršuje, 983 00:43:11,760 --> 00:43:13,130 taip vadinamas teksto segmentas. 984 00:43:13,130 --> 00:43:17,040 Bet tada kuo greičiau jūsų programa iš tikrųjų prasideda, pagrindinis 985 00:43:17,040 --> 00:43:18,140 funkcija vadinama. 986 00:43:18,140 --> 00:43:21,070 Ir pagrindinis, kaip mes matėme, dažnai yra vietos kintamieji. 987 00:43:21,070 --> 00:43:24,560 Ir ji turi Ints ir styginiams ir simbolių ir pan. 988 00:43:24,560 --> 00:43:28,300 Taigi, jei jūsų programa, kad jūs turite raštu arba programa, kad jūs turite 989 00:43:28,300 --> 00:43:33,680 du kartus paspausti naudoti keletą kintamųjų, viduje pagrindinis, jie galų gale ne 990 00:43:33,680 --> 00:43:37,020 apačios, Jūsų žetonų atminties, taip sakant. 991 00:43:37,020 --> 00:43:39,160 Dabar konkrečiau, ką tai iš tikrųjų reiškia? 992 00:43:39,160 --> 00:43:44,080 Tai tiesiog reiškia, kad, jei mes ketiname NUMERIS dalykus - 993 00:43:44,080 --> 00:43:49,380 jei mes ketiname skaičius baitų RAM savo kompiuteryje, pastebėti, kad 994 00:43:49,380 --> 00:43:51,650 tai gali būti baitų skaičius nulis. 995 00:43:51,650 --> 00:43:56,130 Tai gali būti baitų numeris vienas, du, trys, keturi, penki, šeši, visi 996 00:43:56,130 --> 00:43:57,290 kelią iki patinka - 997 00:43:57,290 --> 00:44:01,520 2 mlrd. Būtų visą kelią iki ten viršuje. 998 00:44:01,520 --> 00:44:05,960 Taigi, kitaip tariant, kai mes kalbame apie RAM arba atminties baitų, tai 999 00:44:05,960 --> 00:44:09,680 tiesiog reiškia, kad kažkas nusprendė, ką skaičių kiekvienai 1000 00:44:09,680 --> 00:44:11,110 tie atminties gabaliukus. 1001 00:44:11,110 --> 00:44:16,950 >> Taigi, kai jūs turite 32 bitų int, ar jums reikia 8 bitai char, jei 1002 00:44:16,950 --> 00:44:18,320 jie galų gale atmintį? 1003 00:44:18,320 --> 00:44:20,650 Na konceptualiai, jie tiesiog galų gale į šį dugną 1004 00:44:20,650 --> 00:44:21,780 dalykas, vadinamas kamino. 1005 00:44:21,780 --> 00:44:25,670 Bet kas įdomu, dabar, kai pagrindinis ragina funkcija. 1006 00:44:25,670 --> 00:44:28,830 Tarkime, kad funkcija vadinama foo tiesiog savavališkai vardas. 1007 00:44:28,830 --> 00:44:32,480 Kas atsitinka, yra pagrindinis šios atminties kamino apačioje. 1008 00:44:32,480 --> 00:44:35,630 Foo dabar yra ant Maino atmintyje. 1009 00:44:35,630 --> 00:44:40,020 Taigi, vietinius kintamuosius, kad foo baigti rūšiuoti konceptualiai aukščiau 1010 00:44:40,020 --> 00:44:40,770 , pagrindinis. 1011 00:44:40,770 --> 00:44:46,920 Jei foo ragina kitą funkciją, vadinamą baras, šie kintamieji galų gale čia. 1012 00:44:46,920 --> 00:44:49,790 Jei juosta ragina ką nors kita, čia, čia, čia. 1013 00:44:49,790 --> 00:44:53,900 Taigi, kas įdomu paleista programa yra ta, kad, kaip jūs vadinate funkcijas, 1014 00:44:53,900 --> 00:44:57,720 ir kaip šios funkcijos Skambinimo funkcijos, ir kaip šios funkcijos Skambinimo funkcijos, 1015 00:44:57,720 --> 00:45:00,980 jums sukurti šią atminties funkcijų krūvą. 1016 00:45:00,980 --> 00:45:06,740 Ir tik kartą per funkcija grąžina jums pradėti gauti, kad atminties atgal. 1017 00:45:06,740 --> 00:45:11,190 Taigi, vienas iš paprasčiausių būdų, kaip paleisti iš atminties į kompiuterinę programą 1018 00:45:11,190 --> 00:45:14,170 rašyti funkcijas, kad niekada grįžti. 1019 00:45:14,170 --> 00:45:16,650 >> Taigi, pavyzdžiui, galime parodyti, kiek su 1020 00:45:16,650 --> 00:45:18,460 tyčia Buggy programa. 1021 00:45:18,460 --> 00:45:24,690 Leiskite man eiti į priekį ir padaryti # include , int main (void). 1022 00:45:24,690 --> 00:45:31,270 Ir aš ruošiuosi daryti, o (2> 1), kuris tikriausiai nebus kada 1023 00:45:31,270 --> 00:45:33,370 pakeisti į mus. 1024 00:45:33,370 --> 00:45:37,720 Ir leiskite man eiti į priekį, dabar ir daryti printf. 1025 00:45:37,720 --> 00:45:39,950 Tiesą sakant, tai bus mažiau vizualiai įdomus. 1026 00:45:39,950 --> 00:45:40,460 Darykime tai. 1027 00:45:40,460 --> 00:45:44,840 Už int (i = 0; i> 0). 1028 00:45:44,840 --> 00:45:49,740 Padarykime šią klaidą, i + +. 1029 00:45:49,740 --> 00:45:51,150 Ir tegul ne printf čia. 1030 00:45:51,150 --> 00:45:52,550 Tegul praktiškai tai, ką aš pamokslavo. 1031 00:45:52,550 --> 00:45:54,090 Tegul turi metodą. 1032 00:45:54,090 --> 00:46:00,860 Void choras, mes pasakyti, int i. 1033 00:46:00,860 --> 00:46:02,295 Ir tada aš ruošiuosi pasakyti, printf - 1034 00:46:04,871 --> 00:46:06,790 oh, padarykime tai įdomiau. 1035 00:46:06,790 --> 00:46:08,350 Leiskite tikrai ne spausdinti ką nors ne visi. 1036 00:46:08,350 --> 00:46:10,530 Tegul tik tai padaryti. 1037 00:46:10,530 --> 00:46:11,780 Choras (i). 1038 00:46:16,630 --> 00:46:17,000 >> Gerai. 1039 00:46:17,000 --> 00:46:20,040 Taigi tai yra Buggy nes kodėl? 1040 00:46:20,040 --> 00:46:22,850 Aš tai kaip aš eiti, nes programa nėra iš tikrųjų nieko daryti 1041 00:46:22,850 --> 00:46:23,420 interesų. 1042 00:46:23,420 --> 00:46:24,670 Bet tai nėra tikslas. 1043 00:46:24,670 --> 00:46:30,440 Tikslas yra rašyti programą, kurios pagrindinė funkcija ką daro, matyt? 1044 00:46:30,440 --> 00:46:31,370 Pati. 1045 00:46:31,370 --> 00:46:32,600 Ir iš tikrųjų, mes nereikia kilpą. 1046 00:46:32,600 --> 00:46:36,070 Leiskite netgi supaprastinti, tai tik taip, kad nebūtų pamiršti tikrai 1047 00:46:36,070 --> 00:46:37,310 pagrindinė klaida. 1048 00:46:37,310 --> 00:46:39,200 Pagrindiniai ragina choras dainuoti kai choras. 1049 00:46:39,200 --> 00:46:41,760 Tada aš ką nors kvailas, ir aš turėjo chorus skambučių choras, nes aš manyti, 1050 00:46:41,760 --> 00:46:43,550 kažkas buvo gal ją įgyvendinti. 1051 00:46:43,550 --> 00:46:45,960 Ir dabar tai nesiruošia sudaryti dar. 1052 00:46:45,960 --> 00:46:48,340 Man reikia daryti tai, ką? 1053 00:46:48,340 --> 00:46:49,700 Man reikia prototipą, prisiminti. 1054 00:46:49,700 --> 00:46:55,520 Taigi man reikia, kad čia void choras (int i); 1055 00:46:55,520 --> 00:46:57,470 >> Taigi dabar, jei aš einu žemyn čia 1056 00:46:57,470 --> 00:46:59,030 iš tikrųjų, galime naudoti didesnį lange. 1057 00:46:59,030 --> 00:47:01,670 Eikime į priekį ir padaryti choras. 1058 00:47:01,670 --> 00:47:06,000 Eikime į priekį ir padaryti choras. 1059 00:47:06,000 --> 00:47:08,302 Iš nenustatyto deklarantam i. 1060 00:47:08,302 --> 00:47:09,860 O, kad buvo kvaila. 1061 00:47:09,860 --> 00:47:11,020 Mums nereikia argumento. 1062 00:47:11,020 --> 00:47:13,680 Tegul tik tai padaryti. 1063 00:47:13,680 --> 00:47:14,550 Pageidavimų mes pradėjo šį kelią. 1064 00:47:14,550 --> 00:47:16,160 Būtų buvę daug lengviau programa rašyti. 1065 00:47:16,160 --> 00:47:20,100 Taigi. 1066 00:47:20,100 --> 00:47:23,870 Dabar galime pereiti prie mano terminalo lange, iš naujo paleiskite Apsukite metalinis garsas. 1067 00:47:23,870 --> 00:47:26,900 Ir čia mes einame. 1068 00:47:26,900 --> 00:47:28,020 Tai buvo iš tiesų greitai. 1069 00:47:28,020 --> 00:47:30,690 Kas iš tikrųjų tiesiog atsitiko, nors? 1070 00:47:30,690 --> 00:47:33,430 Na, dabar aš įdėti spausdinimo liniją, todėl mes galime pamatyti. 1071 00:47:33,430 --> 00:47:41,330 Taigi, leiskite man pasakyti, printf, tarkim, aš čia. 1072 00:47:41,330 --> 00:47:43,470 Gerai, jokių kintamųjų, mes palikti jį panašaus. 1073 00:47:43,470 --> 00:47:44,860 Leiskite man iš naujo paleisti. 1074 00:47:44,860 --> 00:47:47,940 Leiskite man iš naujo paleisti choras. 1075 00:47:47,940 --> 00:47:51,235 Ir ateiti. 1076 00:47:53,880 --> 00:47:55,130 Nesustoti. 1077 00:47:57,630 --> 00:47:59,750 Kaip panaikinti, kodėl tai nėra sudužo dar? 1078 00:47:59,750 --> 00:48:02,050 Segmentavimo kaltės įvyko prieš super greitai. 1079 00:48:02,050 --> 00:48:04,250 [Nesigirdi] 1080 00:48:04,250 --> 00:48:04,830 David J. Malan: Būtent. 1081 00:48:04,830 --> 00:48:06,350 Todėl užtrunka laiko spausdinti. 1082 00:48:06,350 --> 00:48:08,370 Jis tiesiog reikia daugiau kompiuterio darbą. 1083 00:48:08,370 --> 00:48:09,550 Ir ten yra. 1084 00:48:09,550 --> 00:48:10,620 Segmentavimas kaltė. 1085 00:48:10,620 --> 00:48:12,140 >> Taigi pastebėsite, kaip greitai programas paleisti. 1086 00:48:12,140 --> 00:48:14,110 Jei jūs nieko nespausdina, super greitai. 1087 00:48:14,110 --> 00:48:18,100 Bet mes vis dar turime šį segmentavimo kaltės, nes tai, kas vyksta? 1088 00:48:18,100 --> 00:48:21,310 Na, jei jūs manote apie, kaip jūsų kompiuterio atminties yra išdėstyti, 1089 00:48:21,310 --> 00:48:22,890 atsitinka būti pagrindinis. 1090 00:48:22,890 --> 00:48:23,800 Bet čia - 1091 00:48:23,800 --> 00:48:28,670 tegul tik skambinti šiuo choras, ir tegul vadiname šį priedainį. 1092 00:48:28,670 --> 00:48:33,420 Ir dabar, jei aš tai padaryti savo estetiką, teisę, tai tiesiog vyksta pasakyti, choras, 1093 00:48:33,420 --> 00:48:38,060 choras, choras, choras, choras, choras, choras, skelbimą nauseum. 1094 00:48:38,060 --> 00:48:39,920 Ir galiausiai, tai, kas nutiks? 1095 00:48:39,920 --> 00:48:46,690 Jei vaizdą tiesiog yra tai, kas atsitinka konceptualiai? 1096 00:48:46,690 --> 00:48:48,320 Kamino viršijimus krūvos. 1097 00:48:48,320 --> 00:48:52,400 Arba dar blogiau, jūs tiesiog viršijo viską, įskaitant teksto segmente, kuris yra 1098 00:48:52,400 --> 00:48:54,530 nuliai ir tie, kurie atstovauja savo programą. 1099 00:48:54,530 --> 00:48:56,690 Trumpai tariant, tai yra tiesiog super, super blogai. 1100 00:48:56,690 --> 00:48:56,860 Tiesa? 1101 00:48:56,860 --> 00:48:58,620 Jūsų programa spiralled iš kontrolės. 1102 00:48:58,620 --> 00:49:02,840 Jūs naudojate būdas daugiau atminties nei manėte visi, nes kvailas 1103 00:49:02,840 --> 00:49:03,920 klaida, šiuo atveju. 1104 00:49:03,920 --> 00:49:08,160 Ar šiuo atveju, labai sąmoningai padaryta funkcija pasivadino. 1105 00:49:08,160 --> 00:49:09,210 Dabar tai yra ne visi blogi. 1106 00:49:09,210 --> 00:49:12,540 Funkcijos, vadinančios save iš tikrųjų turi didelę galią 1107 00:49:12,540 --> 00:49:13,700 kai jūs jį naudoti teisingai. 1108 00:49:13,700 --> 00:49:15,650 Aš ne naudoti jį teisingai čia. 1109 00:49:15,650 --> 00:49:16,940 >> Taigi tai yra ne visi blogi. 1110 00:49:16,940 --> 00:49:20,620 Bet tai, kad aš niekada iš tikrųjų sustabdyti skambinate save yra vienas iš pagrindinių 1111 00:49:20,620 --> 00:49:23,050 silpnumas, čia šios programos. 1112 00:49:23,050 --> 00:49:25,090 Taigi, kur mes einame su visa tai? 1113 00:49:25,090 --> 00:49:26,230 Na, kas iš tikrųjų vyksta? 1114 00:49:26,230 --> 00:49:30,010 Kai aš vadinu prieaugio funkciją, kaip mes darome šių pavyzdžių, 1115 00:49:30,010 --> 00:49:33,290 Turiu kaip 1 i kirsti. 1116 00:49:33,290 --> 00:49:35,820 Galiu perduoti numeris vienas kopiją. 1117 00:49:35,820 --> 00:49:37,080 Taigi taip atsitinka. 1118 00:49:37,080 --> 00:49:40,390 Taigi eikime į prieaugio pavyzdys. 1119 00:49:40,390 --> 00:49:44,230 Ir ši teisė čia vaikinas. 1120 00:49:44,230 --> 00:49:46,800 Taigi čia yra kas iš tikrųjų vyksta. 1121 00:49:46,800 --> 00:49:50,770 Kai aš vadinamas prieaugį, ir galiu perduoti x, pictorially kas 1122 00:49:50,770 --> 00:49:53,660 vyksta čia tai - 1123 00:49:53,660 --> 00:50:00,240 jei aš turiu čia saugomi vertė yra lygi 1, ir aš iš tikrųjų skambinti prieaugį, kuris 1124 00:50:00,240 --> 00:50:02,680 dabar vadinama choras - 1125 00:50:02,680 --> 00:50:04,010 Taip, tai mesti mane čia. 1126 00:50:04,010 --> 00:50:06,750 Taigi, tegul vadina Šis padidėjimas. 1127 00:50:06,750 --> 00:50:09,420 Ir mes nežinome, kas tai kitą funkciją bus. 1128 00:50:09,420 --> 00:50:14,270 Taigi, kas iš tikrųjų vyksta kažkur čia pagrindinis, turiu riekė 1129 00:50:14,270 --> 00:50:16,670 atmintis, kuri saugojimo skaitmeniu "1". 1130 00:50:16,670 --> 00:50:19,730 Kai aš vadinu prieaugį, aš naudoti kitą atminties riekė, bet dabar aš 1131 00:50:19,730 --> 00:50:20,840 Sausio 1 kopiją. 1132 00:50:20,840 --> 00:50:25,480 Kai aš prieaugio tą vertę, tai tampa 2 - siaubingai parašytas ant 1133 00:50:25,480 --> 00:50:26,420 ekranas čia. 1134 00:50:26,420 --> 00:50:30,550 Bet tada, kas atsitinka, kuo greičiau prieaugio grįžta? 1135 00:50:30,550 --> 00:50:34,610 Ši atmintis tik bus grąžintas į operacinę sistemą, o tai reiškia, 1136 00:50:34,610 --> 00:50:37,470 baigsite, yra ne kas kita naudinga. 1137 00:50:37,470 --> 00:50:43,460 Tas, kuris iš pradžių buvo pateikta pagrindinio vis dar iš tikrųjų egzistuoja. 1138 00:50:43,460 --> 00:50:44,650 >> Taigi, kur mes einame su tuo? 1139 00:50:44,650 --> 00:50:49,400 Na, tai paaiškėja, kad atminties jūs turite tai atgal atgal seką 1140 00:50:49,400 --> 00:50:50,940 baitų, kad jūs galite įdėti stuff. 1141 00:50:50,940 --> 00:50:53,760 Ir paaiškėja, kad mes jau matėme kažką, kuris apima išleidimą 1142 00:50:53,760 --> 00:50:55,100 dalykų, atgal atgal atgal atgal. 1143 00:50:55,100 --> 00:51:00,170 Kas yra eilutę, savaitę, o dabar savaitę du? 1144 00:51:00,170 --> 00:51:01,840 Taigi, tai tik ženklų kolekcija. 1145 00:51:01,840 --> 00:51:05,290 Taigi, it turns out, tiesiog, kaip jūs galite pateikti skaičiai atmintyje, panašiai kaip jūs galite 1146 00:51:05,290 --> 00:51:06,900 įdėti atminties simbolių. 1147 00:51:06,900 --> 00:51:09,810 Ir kai mes pradėti naudoti simbolių atmintyje atgal atgal atgal 1148 00:51:09,810 --> 00:51:12,800 atgal, paaiškėja, kad, naudojant paprasčiausių dalykų, pavyzdžiui, už linijos arba 1149 00:51:12,800 --> 00:51:14,510 while cikle, mes galime pakartoti - 1150 00:51:14,510 --> 00:51:17,130 iš kairės į dešinę per eilutę simbolių 1151 00:51:17,130 --> 00:51:20,720 ir pradėkite masažuoti juos į skirtingų charakterių, iš viso. 1152 00:51:20,720 --> 00:51:25,550 Gali tapti B. B galėtų tapti C. Taigi, galiausiai, mes galime imtis 1153 00:51:25,550 --> 00:51:28,830 Anglų sakinys, kad iš tikrųjų turi prasmę ir konvertuoti kiekvienas iš jų 1154 00:51:28,830 --> 00:51:32,440 raidės vienu metu vaikščioti per mūsų kompiuterio atmintyje paliko 1155 00:51:32,440 --> 00:51:34,300 teisę faktiškai užšifruoti. 1156 00:51:34,300 --> 00:51:36,590 >> Todėl galime imtis mūsų penkių minučių pertrauką, ir kai mes einame atgal, mes 1157 00:51:36,590 --> 00:51:39,060 pradėti šį procesą kodavimo informaciją. 1158 00:51:41,640 --> 00:51:43,180 >> Gerai. 1159 00:51:43,180 --> 00:51:48,440 Taigi, kol mes pasinerti į tam tikru kriptografijos ir šie dalykai vadinami matricos, leiskite man 1160 00:51:48,440 --> 00:51:51,610 pristabdyti visus klausimus, nes aš jaučiuosi kaip aš tikrai rūšies painiojamos kai kurie 1161 00:51:51,610 --> 00:51:52,230 šiomis temomis. 1162 00:51:52,230 --> 00:51:53,940 Todėl galime išspręsti dabar, jei mes galime. 1163 00:51:53,940 --> 00:51:56,480 Taigi mes tiesiog kalbėjomės apie grąžinti reikšmes. 1164 00:51:56,480 --> 00:51:58,630 Mes kalbėjome apie argumentų. 1165 00:51:58,630 --> 00:52:02,330 Ir mes kalbėjome apie šią sąvoką, kuriuos mes grįžti į Per savaitę 1166 00:52:02,330 --> 00:52:07,140 ateiti, peržiūrėti atminties, visa krūva šių krūveles 1167 00:52:07,140 --> 00:52:08,540 padėklai, taip sakant. 1168 00:52:08,540 --> 00:52:13,460 Iš apačios On Up, pavyzdžiui, kad kiekvienas, kad gauna įdėti kamino dėklas atstovauja 1169 00:52:13,460 --> 00:52:15,160 funkcija, kuri šiuo metu vadinama. 1170 00:52:17,970 --> 00:52:20,300 Turite klausimų? 1171 00:52:20,300 --> 00:52:22,890 Taigi, kaip apie - leiskite man pabandyti užduoti klausimą. 1172 00:52:22,890 --> 00:52:25,520 Aš nuolat gadinti, bet dabar it's - you've visi matė berniuko veidą. 1173 00:52:25,520 --> 00:52:27,020 Taigi, mes grįžti prie to. 1174 00:52:27,020 --> 00:52:29,700 >> Taigi, leiskite man užduoti klausimą čia. 1175 00:52:29,700 --> 00:52:34,810 Leiskite man supaprastinti šį atgal, kas buvo prieš kai kurie iš mūsų anksčiau Q & A 1176 00:52:34,810 --> 00:52:41,730 Ir faktas, kad prieaugis turi atvirą skliaustų, int numeris, uždarytas 1177 00:52:41,730 --> 00:52:42,260 skliausteliuose. 1178 00:52:42,260 --> 00:52:46,370 Ką int numeris? 1179 00:52:46,370 --> 00:52:47,250 [Nesigirdi] 1180 00:52:47,250 --> 00:52:47,870 David J. Malan: argumentas. 1181 00:52:47,870 --> 00:52:50,732 Gerai, bet koks argumentas? 1182 00:52:50,732 --> 00:52:51,620 [Nesigirdi] 1183 00:52:51,620 --> 00:52:52,500 David J. Malan: Atsiprašau, kas tai? 1184 00:52:52,500 --> 00:52:53,150 SPEAKER 3: Kažkas jums perduoti. 1185 00:52:53,150 --> 00:52:53,570 David J. Malan: Gerai. 1186 00:52:53,570 --> 00:52:54,780 Kad kažkas, kad jums perduoti. 1187 00:52:54,780 --> 00:52:56,560 Ir apskritai, tai tik įėjimo. 1188 00:52:56,560 --> 00:52:59,860 Jei rašote funkciją ir šią funkciją tikslą gyvenime yra padaryti 1189 00:52:59,860 --> 00:53:03,290 kažką šiek tiek skiriasi kiekvieną kartą, kai jį naudoti, tada vienintelis būdas 1190 00:53:03,290 --> 00:53:07,710 , kad taip atsitiktų iš tikrųjų atrodytų, kad suteikti jai įvesties taip, kad ji 1191 00:53:07,710 --> 00:53:10,180 gali daryti kažką kitą, kad įvesties kiekvieną kartą. 1192 00:53:10,180 --> 00:53:13,590 >> Taigi, jums reikia nurodyti du dalykus, kai funkcija trunka įėjimai. 1193 00:53:13,590 --> 00:53:17,240 Jums reikia nurodyti vardą, kurį norite suteikti šiam pirkimo, vien tik 1194 00:53:17,240 --> 00:53:20,790 savo patogumui, kad jūs galite kreiptis į jį į funkciją, kad jūs 1195 00:53:20,790 --> 00:53:23,610 patys rašote, kaip aš čia 32 eilutėje. 1196 00:53:23,610 --> 00:53:27,840 Bet jūs taip pat reikia nurodyti jo tipą, nes C yra programavimo kalba 1197 00:53:27,840 --> 00:53:28,840 , kad tiesiog reikia 1198 00:53:28,840 --> 00:53:31,810 kad jei norite kintamąjį, turite pasakyti kompiuterio 1199 00:53:31,810 --> 00:53:32,790 duomenų tipas, tai yra, 1200 00:53:32,790 --> 00:53:35,540 didele dalimi taip, kad jis žino, kiek bitų 1201 00:53:35,540 --> 00:53:37,230 skirti tą kintamąjį. 1202 00:53:37,230 --> 00:53:38,600 Nes tai galėtų būti šešių 1203 00:53:38,600 --> 00:53:39,990 Atsiprašome, jis nebus šešių. 1204 00:53:39,990 --> 00:53:41,050 Tai gali būti 16. 1205 00:53:41,050 --> 00:53:41,630 Jis gali būti 8. 1206 00:53:41,630 --> 00:53:44,410 Tai gali būti 32, net 64. 1207 00:53:44,410 --> 00:53:45,820 Bet kompiuteris turi žinoti. 1208 00:53:45,820 --> 00:53:49,110 Dabar kairėje pusėje int yra kas, priešingai? 1209 00:53:52,825 --> 00:53:53,780 [Nesigirdi] 1210 00:53:53,780 --> 00:53:54,570 David J. Malan: Kas tai? 1211 00:53:54,570 --> 00:53:55,390 [Nesigirdi] 1212 00:53:55,390 --> 00:53:57,920 David J. Malan: funkcijos ir, konkrečiau, 1213 00:53:57,920 --> 00:53:59,755 savo produkcijos rūšis. 1214 00:53:59,755 --> 00:54:00,220 Į dešinę. 1215 00:54:00,220 --> 00:54:04,220 Taigi, o skliausteliuose dalykas atstovauja jo indėlis, jei tokių yra, 1216 00:54:04,220 --> 00:54:06,640 dalykas, į kairę savo produkciją. 1217 00:54:06,640 --> 00:54:10,560 Ir šiuo atveju, prieaugio, matyt, grąžina int. 1218 00:54:10,560 --> 00:54:14,590 Ir taip Žiniasklaida yra grįžimo tipo šios funkcijos. 1219 00:54:14,590 --> 00:54:16,090 >> Ką tai reiškia grįžti? 1220 00:54:16,090 --> 00:54:19,810 Pažodžiui, galite naudoti raktažodžių grąžą. 1221 00:54:19,810 --> 00:54:24,640 Ir tada, jei tai, ką esate grįžta į raktažodį dešinėje 1222 00:54:24,640 --> 00:54:28,340 sveikasis skaičius, tai yra iš tikrųjų atitinka su tuo, kas buvo žadėta. 1223 00:54:28,340 --> 00:54:31,110 Tu negali padaryti kažką panašaus į tai - 1224 00:54:31,110 --> 00:54:32,280 Sveikas, pasauli - 1225 00:54:32,280 --> 00:54:33,500 , nes tai yra eilutė. 1226 00:54:33,500 --> 00:54:35,440 Akivaizdu, kad tai yra ne sveikasis skaičius. 1227 00:54:35,440 --> 00:54:40,450 Taigi trumpai tariant, ši našta yra tikrai mums, programuotojas, tiksliau kaip 1228 00:54:40,450 --> 00:54:44,730 ką mes grįžti ir tada iš tikrųjų eiti apie grįžimą. 1229 00:54:44,730 --> 00:54:49,030 Ir paskui tad aišku, kontekstas - 1230 00:54:49,030 --> 00:54:50,080 štai jis vėl. 1231 00:54:50,080 --> 00:54:51,060 Kontekstas - 1232 00:54:51,060 --> 00:54:52,830 didelis siurprizas ateina vos akimirką. 1233 00:54:52,830 --> 00:54:57,720 Kontekstas čia dabar, dar kartą, kad jūsų kompiuterio atminties 1234 00:54:57,720 --> 00:54:59,070 Gigabyte du gigabaitai, nesvarbu. 1235 00:54:59,070 --> 00:54:59,630 Gal tai daugiau. 1236 00:54:59,630 --> 00:55:00,540 Gal tai mažiau. 1237 00:55:00,540 --> 00:55:03,750 Bet kompiuteris tai mato kaip skirtingus skirsnius. 1238 00:55:03,750 --> 00:55:04,860 Kažkas ten. 1239 00:55:04,860 --> 00:55:06,020 Kažkas, eina ten. 1240 00:55:06,020 --> 00:55:07,540 Įvairūs stuff eina per vidurį. 1241 00:55:07,540 --> 00:55:09,300 Ir šiandien mes tiesiog pradėti pasakoti šią istoriją. 1242 00:55:09,300 --> 00:55:11,130 >> Bet mes grįžti į šios laikui bėgant. 1243 00:55:11,130 --> 00:55:15,000 Nes dabar, mes tikrai rūpi tik atminties gabalas teksto segmentas 1244 00:55:15,000 --> 00:55:17,160 nes, kad tik nuliais ir tuos, 1245 00:55:17,160 --> 00:55:18,460 kad Apsukite metalinis garsas išvedamas. 1246 00:55:18,460 --> 00:55:21,570 Taigi, kai jūs paleisti komandą kaip a.out klaviatūra, ar jums dvigubai 1247 00:55:21,570 --> 00:55:25,350 spustelėkite piktogramą, Mac OS ar Windows, jūsų programa pakrautas nuo jūsų kietajame 1248 00:55:25,350 --> 00:55:26,930 vairuoti į RAM. 1249 00:55:26,930 --> 00:55:30,850 Ir tai plopped kompiuterio RAM viršuje, taip sakant. 1250 00:55:30,850 --> 00:55:35,470 Dabar Tuo tarpu, kaip jūsų programa pradeda veikti ir pagrindinis iškviečiamas 1251 00:55:35,470 --> 00:55:39,240 programa, kurią parašė arba programa Microsoft ar Apple rašė, bet kuri jos 1252 00:55:39,240 --> 00:55:42,930 vietos kintamieji galų gale ten jūsų kompiuterio atmintyje apačioje. 1253 00:55:42,930 --> 00:55:46,490 Tačiau, jei pagrindinis ragina kitą funkciją, kad pati kintamuosius arba 1254 00:55:46,490 --> 00:55:48,340 argumentai, jie galų gale virš jo. 1255 00:55:48,340 --> 00:55:50,670 Ir jei, kad funkcija ragina kažką, jie galų gale virš jo, 1256 00:55:50,670 --> 00:55:51,840 virš jo, virš jo. 1257 00:55:51,840 --> 00:55:56,100 Ir tik vieną kartą funkcija atliekama vykdant veikia padėklai krūvą, todėl 1258 00:55:56,100 --> 00:55:58,320 kalbėti, pradeda gauti mažesnes. 1259 00:55:58,320 --> 00:56:03,370 Ir tai, ką tada trumpai tariant, paaiškina, kodėl, kai skambinate kubas - 1260 00:56:03,370 --> 00:56:04,660 ar jūs vadinate prieaugis - 1261 00:56:04,660 --> 00:56:06,490 jūs einančios vertės kopiją. 1262 00:56:06,490 --> 00:56:09,840 Ir ką tai reiškia pictorially yra, kad jūs tiesiog raštu 1263 00:56:09,840 --> 00:56:14,540 kitą atminties dalis numeris 1, keičiant, kad 1 iki 2, tuo atveju, 1264 00:56:14,540 --> 00:56:15,360 prieaugis - 1265 00:56:15,360 --> 00:56:17,450 arba iki 8 Kubo atveju - 1266 00:56:17,450 --> 00:56:21,450 ir tada mesti, kad atmintis ne kuo greičiau prieaugio ar kubelių 1267 00:56:21,450 --> 00:56:23,410 funkcija grąžina. 1268 00:56:23,410 --> 00:56:24,267 >> Klausimas. 1269 00:56:24,267 --> 00:56:25,517 [Nesigirdi] 1270 00:56:28,090 --> 00:56:29,970 David J. Malan: Kur - visuotiniai kintamieji yra saugomi, kas 1271 00:56:29,970 --> 00:56:32,960 dabar vadinamas inicializuoti duomenų ar niezainicjowanymi duomenų. 1272 00:56:32,960 --> 00:56:35,900 Skirtumas yra, jei turite pasaulinį kintamąjį ir priskirti ją 1273 00:56:35,900 --> 00:56:39,530 nedelsiant lygybės simboliu vertė, baigiasi viršuje. 1274 00:56:39,530 --> 00:56:43,390 Ir jei jūs tiesiog pasakyti int x kabliataškį be vertės, ji galų gale šiek tiek 1275 00:56:43,390 --> 00:56:46,670 mažesnis RAM tiesiog pagal susitarimą. 1276 00:56:46,670 --> 00:56:49,308 Kiti klausimai. 1277 00:56:49,308 --> 00:56:49,750 Gerai. 1278 00:56:49,750 --> 00:56:53,040 >> Taigi šį paveiksliuką grįš, kaip mes gauti daugiau galingas, su tuo, ką mes galime padaryti 1279 00:56:53,040 --> 00:56:53,830 su kompiuteriu. 1280 00:56:53,830 --> 00:56:58,790 Bet dabar, galime turėti trumpą intro kriptografija, tam tikros rūšies 1281 00:56:58,790 --> 00:57:01,910 kriptografija, tai nepadeda išspręsti visų pasaulio problemų, tačiau spręsti 1282 00:57:01,910 --> 00:57:02,480 kai kurie iš jų. 1283 00:57:02,480 --> 00:57:06,090 Šiuo atveju čia, mes turime kažką vadinama paslaptis rakto kriptografija. 1284 00:57:06,090 --> 00:57:10,430 Ir slapto rakto kriptografija, kaip rodo pavadinimas, kilęs jos saugumą 1285 00:57:10,430 --> 00:57:11,330 nuo paslaptis. 1286 00:57:11,330 --> 00:57:14,720 Taigi, pavyzdžiui, jei esate pradinėje mokykloje ir jūs artimųjų 1287 00:57:14,720 --> 00:57:18,040 maža paslaptis meilės laišką esate smulkinimo berniukas ar mergaitė - jei 1288 00:57:18,040 --> 00:57:20,820 norėjo praeiti, kad per auditoriją, jūs tikriausiai ne rašyti 1289 00:57:20,820 --> 00:57:24,120 tokia pastaba anglų kalba, arba kokia jūsų gimtoji kalba, o, jūs 1290 00:57:24,120 --> 00:57:25,800 gali užšifruoti ją. 1291 00:57:25,800 --> 00:57:27,820 Arba galite tiesiog nusiųsti jiems tekstinį pranešimą šių dienų. 1292 00:57:27,820 --> 00:57:30,310 , Bet jūs iš tiesų gali perduoti jiems pastabą visoje klasėje. 1293 00:57:30,310 --> 00:57:33,820 Ir tai padaryti saugiai, taip, kad jūsų draugai ir mokytojų 1294 00:57:33,820 --> 00:57:36,820 nežinau, ką rašote, jums gali sugalvoti gana paprasta 1295 00:57:36,820 --> 00:57:37,800 Algoritmas - 1296 00:57:37,800 --> 00:57:39,290 jauna, nors jums gali būti 1297 00:57:39,290 --> 00:57:40,780 tiesiog peštynės žodžius. 1298 00:57:40,780 --> 00:57:44,390 Taigi vietoj raštu, jums gali rašyti B. Vietoj to, B, jums gali rašyti 1299 00:57:44,390 --> 00:57:46,670 C. Vietoj C, jums gali rašyti D, ir tt. 1300 00:57:46,670 --> 00:57:50,020 Ar galima sugalvoti sudėtingesnį raidžių vertimo 1301 00:57:50,020 --> 00:57:51,300 skirtingomis raidėmis. 1302 00:57:51,300 --> 00:57:55,440 Bet laimikis berniukas ar mergaitė, kam jūs siunčiate šią pastabą reikia 1303 00:57:55,440 --> 00:57:56,850 kažką sužinoti. 1304 00:57:56,850 --> 00:57:59,620 O tai, ką, be abejo? 1305 00:57:59,620 --> 00:58:01,400 Pavyzdžiui, kas jūsų slaptas. 1306 00:58:01,400 --> 00:58:04,620 , Pavyzdžiui, kas yra tai, kad tarp AS ir pusryčių ir Cs ir DS žemėlapių? 1307 00:58:04,620 --> 00:58:08,780 Tai tiesiog pridedant vieną, taip sakant, kiekvienas iš raidžių pereiti nuo 1308 00:58:08,780 --> 00:58:09,730 A į B, B C? 1309 00:58:09,730 --> 00:58:11,350 Tai yra sudėtingesnis nei tas? 1310 00:58:11,350 --> 00:58:16,450 Kad jūs ir jūsų traiškyti reikia turėti šį slaptą informaciją. 1311 00:58:16,450 --> 00:58:18,170 Bet ten rūšies Catch-22 čia. 1312 00:58:18,170 --> 00:58:20,760 Jei tai yra pirmą kartą, jūs siunčiate šią meilės laišką per 1313 00:58:20,760 --> 00:58:25,590 klasė, kaip tai, kad berniukas ar mergaitė žinoti, kas paslaptis net? 1314 00:58:25,590 --> 00:58:28,450 Taigi paslaptis rakto kriptografija neišsprendžia visų pasaulio problemas. 1315 00:58:28,450 --> 00:58:30,490 Ir yra iš tikrųjų santykiai, kad mes grįžti į link 1316 00:58:30,490 --> 00:58:31,370 semestro pabaiga. 1317 00:58:31,370 --> 00:58:35,970 >> Be to, nė vienas iš mūsų tikriausiai kada nors išsiuntė - 1318 00:58:35,970 --> 00:58:39,453 panašiai, daugelis iš mūsų nežino, ką nors, kad dirba, pavyzdžiui, 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 Ir dar, daugelis iš mūsų tikriausiai nusipirko stuff Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 Ir mes buvo mokomi daryti prielaidą, kad šių e-komercija 1322 00:58:45,670 --> 00:58:47,060 sandoriai yra saugūs. 1323 00:58:47,060 --> 00:58:47,210 Tiesa? 1324 00:58:47,210 --> 00:58:49,310 URL tikriausiai sako https. 1325 00:58:49,310 --> 00:58:51,590 Yra gal kvailas mažai spynos piktograma kažkur. 1326 00:58:51,590 --> 00:58:54,680 Kriptografijos rūšis yra keletas apsaugoti savo kredito kortelės informaciją 1327 00:58:54,680 --> 00:58:56,980 tarp jūsų ir "Amazon.com". 1328 00:58:56,980 --> 00:59:00,410 Ir dar, jei kriptografija apima žinant kažkokią paslaptį, ir dar aš ne 1329 00:59:00,410 --> 00:59:03,330 žinote kas nors, "Amazon", ir aš tikrai nesudėti bet kokio pobūdžio 1330 00:59:03,330 --> 00:59:07,350 paslaptis su kuo nors "Amazon", kaip mano kompiuteryje ar mano naršyklė tai darote? 1331 00:59:07,350 --> 00:59:10,100 Na, paaiškėja, kad kitų rūšių kriptografija iš viso, kad išspręsti 1332 00:59:10,100 --> 00:59:10,740 kita problema. 1333 00:59:10,740 --> 00:59:13,610 Tačiau šiandien, mes sutelkti dėmesį į paprasta, kur jūs galite pasirūpinti, 1334 00:59:13,610 --> 00:59:18,480 iš anksto žino kažkokią paslaptį, kaip plius 1 ar kai tarp AS ir pusryčių žemėlapių. 1335 00:59:18,480 --> 00:59:20,710 >> Ir kriptografijos procesas paprastai apima. 1336 00:59:20,710 --> 00:59:23,550 Turite kokių nors paprasto teksto, pavaizduotas čia ne į kairę. 1337 00:59:23,550 --> 00:59:26,260 Jį paleisti per kažkokį algoritmą ar procedūros 1338 00:59:26,260 --> 00:59:27,670 šifravimo. 1339 00:59:27,670 --> 00:59:31,390 Gal tai tiesiog tampa B, B tampa C. Ir tada jūs galų gale su 1340 00:59:31,390 --> 00:59:32,260 Šifro tekstą. 1341 00:59:32,260 --> 00:59:36,450 Tuo tarpu, kai Jūsų sutraiškyti gauna slaptą dėmesį, jis ar ji turi tada 1342 00:59:36,450 --> 00:59:39,950 iššifruoti ją visuotinai atbulinės eigos kad algoritmas, siekiant gauti 1343 00:59:39,950 --> 00:59:41,640 grąžina paprastą tekstą. 1344 00:59:41,640 --> 00:59:43,860 Dabar yra fiziniai įsikūnijimai. 1345 00:59:43,860 --> 00:59:46,720 Pavyzdžiui, tai yra šiek tiek paslaptis dekoderis žiedas. 1346 00:59:46,720 --> 00:59:50,060 Ir tai yra ta prasme, kad dviejų surenka čia žiedas. 1347 00:59:50,060 --> 00:59:53,630 Į lauko periferijoje šis dalykas, ten raidės nuo a iki z, 1348 00:59:53,630 --> 00:59:55,110 nors jie atsitiktine tvarka. 1349 00:59:55,110 --> 00:59:58,410 Ir į vidų, yra iš tikrųjų kai kuriuos skaičius, pavyzdžiui, kad su šiuo 1350 00:59:58,410 --> 01:00:02,940 žiedas, galite natūra ruožtu ne, bet ne viduje, kad į liniją iki 1351 01:00:02,940 --> 01:00:04,110 numeriai su raidėmis. 1352 01:00:04,110 --> 01:00:08,290 Ir klipo esate apie norėdami pamatyti - kai kurie iš jų, tu gali matyti 24/7 1353 01:00:08,290 --> 01:00:11,120 aplink Kalėdų sezoną iš filmo vadinamas Kalėdų istorija. 1354 01:00:11,120 --> 01:00:16,050 Jūs pamatysite, kad mažai Ralphie buvo taip nori išsiaiškinti, kas šiek tiek nenustatytų autorių teisių 1355 01:00:16,050 --> 01:00:19,810 Annie slaptą žinutę, kuri buvo perduota, manau, jam buvo 1356 01:00:19,810 --> 01:00:22,810 skaitinių pranešimų formos serijos lauką. 1357 01:00:22,810 --> 01:00:26,760 Ir jums teko sukaupti visus mažai korteles, kad atėjo 1358 01:00:26,760 --> 01:00:27,480 grūdų lauke. 1359 01:00:27,480 --> 01:00:28,320 Jūs turėjote paštu. 1360 01:00:28,320 --> 01:00:31,060 Jūs turėjo grįžti slaptą dekoderis žiedą, kad jūs galite pagaliau išsiaiškinti 1361 01:00:31,060 --> 01:00:34,190 , kas kartografavimo tarp raidžių ir skaičių, 1362 01:00:34,190 --> 01:00:35,420 arba raidėmis ir raidžių. 1363 01:00:35,420 --> 01:00:39,790 Taigi aš jums šį trumpą įrašą iš Kalėdų istorija motyvuoti pset 2 ir 1364 01:00:39,790 --> 01:00:42,340 mūsų diskusija, vienu metu, masyvų. 1365 01:00:42,340 --> 01:00:43,773 Taigi čia mes turime Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [VIDEO PLAYBACK] 1367 01:00:44,126 --> 01:00:47,470 Būk žinoma, kad visi kartu ir kiekvienas,, kad Robertas Parkeris skiriamas 1368 01:00:47,470 --> 01:00:50,690 Little Orphan Annie Secret Circle narys ir turi teisę į visas 1369 01:00:50,690 --> 01:00:53,500 juo pagyrimu ir nauda, ​​atsiradę. 1370 01:00:53,500 --> 01:00:56,040 Pasirašyta Mažasis Retųjų Annie. 1371 01:00:56,040 --> 01:00:58,730 Parašu, Pierre Andre! 1372 01:00:58,730 --> 01:01:00,150 Rašalu! 1373 01:01:00,150 --> 01:01:02,910 Pagyrimu ir nauda, ​​jau po devynių metų. 1374 01:01:09,970 --> 01:01:10,730 Nagi, patekti į ją. 1375 01:01:10,730 --> 01:01:15,000 Man nereikia, kad informacija apie kontrabandininkus ir piratai džiazą. 1376 01:01:15,000 --> 01:01:17,624 Klausyti rytoj vakare baigiamajame nuotykius Juodosios 1377 01:01:17,624 --> 01:01:19,710 Pirate Ship. 1378 01:01:19,710 --> 01:01:23,380 Dabar atėjo laikas Annie slaptą žinutę, jums prisijungę 1379 01:01:23,380 --> 01:01:25,670 Slaptojo rato. 1380 01:01:25,670 --> 01:01:30,260 Atminkite, kad vaikai, tik nariai Annie Secret Circle gali dekoduoti 1381 01:01:30,260 --> 01:01:31,660 Annie paslaptis pranešimą. 1382 01:01:31,660 --> 01:01:36,230 Atminkite, Annie priklausomai nuo jūsų. 1383 01:01:36,230 --> 01:01:38,720 Nustatykite savo smeigtukai B2. 1384 01:01:38,720 --> 01:01:41,040 Čia yra pranešimas. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -Aš esu mano pirmasis slapto susitikimo metu. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 -Pierre buvo puikia garso vakarą. 1389 01:01:51,700 --> 01:01:54,890 Galėčiau pasakyti, kad vakaro žinia buvo tikrai svarbu. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 Štai žinutė iš Annie pati. 1392 01:01:58,590 --> 01:01:59,840 Atminkite, kad nereikia niekam. 1393 01:02:04,570 --> 01:02:08,750 -90 Sekundės vėliau, aš tik kambario namas, kur berniukas iš devynių 1394 01:02:08,750 --> 01:02:12,980 gali sėdėti privatumo ir iššifruoti. 1395 01:02:12,980 --> 01:02:17,130 Aha, B. nuėjau į kitą. 1396 01:02:17,130 --> 01:02:20,330 E. Pirmasis žodis yra. 1397 01:02:20,330 --> 01:02:22,670 S. Tai buvo dar lengviau. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Oh, come on, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 Aš turiu eiti. 1401 01:02:28,430 --> 01:02:30,350 -I'll būti, nustatančio teisę, ma. 1402 01:02:30,350 --> 01:02:33,720 -Gee nusišvilpti. 1403 01:02:33,720 --> 01:02:38,270 -T, O. Būtinai. 1404 01:02:38,270 --> 01:02:40,000 Būtinai į tai, ką? 1405 01:02:40,000 --> 01:02:42,105 Koks buvo Mažasis Retųjų Annie bando pasakyti? 1406 01:02:42,105 --> 01:02:43,095 Būtinai į tai, ką? 1407 01:02:43,095 --> 01:02:43,590 Ralphie! 1408 01:02:43,590 --> 01:02:44,580 Randy gavo eiti. 1409 01:02:44,580 --> 01:02:45,570 Ar jūs, prašome išeiti? 1410 01:02:45,570 --> 01:02:46,560 -Viskas gerai, ma. 1411 01:02:46,560 --> 01:02:48,540 Aš būsiu tiesiai iš. 1412 01:02:48,540 --> 01:02:50,580 -Man buvo vis arčiau. 1413 01:02:50,580 --> 01:02:52,550 Įtampa buvo baisi. 1414 01:02:52,550 --> 01:02:53,355 Kokia ji buvo? 1415 01:02:53,355 --> 01:02:56,315 Planetos likimas gali pakabinti ant plauko. 1416 01:02:56,315 --> 01:02:56,790 Ralphie! 1417 01:02:56,790 --> 01:02:59,165 Randy turiu eiti. 1418 01:02:59,165 --> 01:03:02,310 -I'll būti tiesiai iš verkti garsiai. 1419 01:03:02,310 --> 01:03:04,000 Gee, beveik nėra. 1420 01:03:04,000 --> 01:03:05,180 Mano pirštai skraidyti. 1421 01:03:05,180 --> 01:03:07,150 Mano protas buvo plieno spąstai. 1422 01:03:07,150 --> 01:03:08,790 Kiekvienas porų vibravo. 1423 01:03:08,790 --> 01:03:10,040 Tai buvo beveik skaidrus. 1424 01:03:10,040 --> 01:03:13,400 Taip, taip, taip, taip. 1425 01:03:13,400 --> 01:03:18,960 Būtinai gerti Ovaltine. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 Prastas komercinis? 1428 01:03:28,200 --> 01:03:29,640 Kalės vaike. 1429 01:03:29,640 --> 01:03:33,340 [END VIDEO PLAYBACK] 1430 01:03:33,340 --> 01:03:36,040 >> David J. Malan: Taigi mes turime kriptografija. 1431 01:03:36,040 --> 01:03:39,670 Taigi, kaip į kompiuterį, mes galime eiti apie įgyvendinimo ar 1432 01:03:39,670 --> 01:03:40,950 atstovaujanti dalykų kaip šis? 1433 01:03:40,950 --> 01:03:44,430 Na, mes turime būdas išreikšti save šiek tiek lanksčiau nei 1434 01:03:44,430 --> 01:03:46,420 mūsų kintamieji, iki šiol leido. 1435 01:03:46,420 --> 01:03:47,370 Mes turėjome int. 1436 01:03:47,370 --> 01:03:48,380 Mes turėjome simbolių. 1437 01:03:48,380 --> 01:03:50,790 Mes turėjome float ir double, ir keletas kitų. 1438 01:03:50,790 --> 01:03:55,050 Bet tie, kurie individualūs atminties vienetų, kurie nėra tikrai leidžia mums 1439 01:03:55,050 --> 01:03:58,010 išreikšti dalykų, pavyzdžiui, žodžių ir sakinių ir frazių. 1440 01:03:58,010 --> 01:04:00,200 Iš tiesų, mes tokių dalykų eilutes. 1441 01:04:00,200 --> 01:04:03,650 Bet mes pažadėjome, kad tai tikrai tik į CS50 supaprastinimas 1442 01:04:03,650 --> 01:04:07,020 biblioteka, kad mes, ketinantys žievelės atgal. 1443 01:04:07,020 --> 01:04:08,970 >> Ir todėl pradėkime tai padaryti čia. 1444 01:04:08,970 --> 01:04:11,130 Leiskite man eiti į priekį ir atverti failą - 1445 01:04:11,130 --> 01:04:13,770 visi iš šių failų yra kaip įprasta internete 1446 01:04:13,770 --> 01:04:19,120 vadinamas array.c išspręsti problemą, nesusijusių su stygos, bet kad dažai 1447 01:04:19,120 --> 01:04:23,040 vaizdas čia, kaip mes galime naudoti kažką vadinama masyvą. 1448 01:04:23,040 --> 01:04:25,530 Masyvas yra duomenų tipas. 1449 01:04:25,530 --> 01:04:31,320 Tai tipo kintama, rūšių, kad turi daug mažesnių duomenų tipai 1450 01:04:31,320 --> 01:04:34,150 viduje ji atgal atgal atgal atgal. 1451 01:04:34,150 --> 01:04:37,700 Taigi, pavyzdžiui, jei norime rašyti maža programa, kuri suteikia jums jūsų 1452 01:04:37,700 --> 01:04:42,110 viktorina vidutiniškai kaip 50 metu, tai turi dvi viktorinos, galima labai lengvai 1453 01:04:42,110 --> 01:04:45,170 rašyti šią programą - net kai praėjusią savaitę medžiagos 1454 01:04:45,170 --> 01:04:47,770 , naudojant GetInt ir kintamųjų pora. 1455 01:04:47,770 --> 01:04:51,920 Žiniasklaida quiz1, int quiz2, ir tai gana paprasta. 1456 01:04:51,920 --> 01:04:55,930 Tai galbūt 10, 20 eilučių kodo, max, siekiant įgyvendinti programą, kuri prašo 1457 01:04:55,930 --> 01:05:01,170 vartotojo dvi viktorinų balai, ir tada apskaičiuoja vidurkį įtraukdami juos 1458 01:05:01,170 --> 01:05:03,850 , dalijant iš dviejų, ir tada spausdinti rezultatus. 1459 01:05:03,850 --> 01:05:06,380 Mes turbūt galėtų padaryti, kad gana lengvai, dabar, po 1460 01:05:06,380 --> 01:05:07,510 keletas minučių skaičius. 1461 01:05:07,510 --> 01:05:11,005 >> Tačiau problema yra ta, kad tarkime, kad 50 turėjo tris viktorinos ar keturių. 1462 01:05:11,005 --> 01:05:13,510 Tarkime, kad jūs norite naudoti tą pačią programą klasėje, kuris turėjo 1463 01:05:13,510 --> 01:05:14,850 per savaitę viktorinos. 1464 01:05:14,850 --> 01:05:16,610 Galvoti apie tai grupei, kuri buvo per savaitę viktorinos. 1465 01:05:16,610 --> 01:05:20,610 Jei yra, pavyzdžiui, 16 ar savaites per semestrą, dabar jūs turite 16 kintamųjų - 1466 01:05:20,610 --> 01:05:24,270 int quiz1, int quiz2, int quiz3, int quiz4. 1467 01:05:24,270 --> 01:05:27,560 Kaip tik jūs pradėsite matyti šį atleidimo iš darbo, tai kopijuoti ir įklijuoti 1468 01:05:27,560 --> 01:05:31,390 kodo, ji turėtų pradėti, kad norite, kad buvo geresnis būdas. 1469 01:05:31,390 --> 01:05:33,930 Ir laimei, nes masyvų, yra. 1470 01:05:33,930 --> 01:05:34,980 Todėl galime tai padaryti. 1471 01:05:34,980 --> 01:05:38,430 Pirma, leiskite man pristatyti labai paprastas dalykas, kad mes iki šiol nėra naudojamas, 1472 01:05:38,430 --> 01:05:40,140 bet pamatysite jį retkarčiais kodą. 1473 01:05:40,140 --> 01:05:42,360 Tai yra tai, kas paprastai vadinama konstanta. 1474 01:05:42,360 --> 01:05:45,790 Taigi, tai ta prasme, kad ši vertė niekada keičia konstanta. 1475 01:05:45,790 --> 01:05:49,210 Žmogaus konvencija kuriant konstanta yra naudoti visą sumą 1476 01:05:49,210 --> 01:05:51,940 raidės, tik todėl, kad ji tikrai išsiskiria iš savo kodą. 1477 01:05:51,940 --> 01:05:55,960 Ir konkrečių raktinių žodžių, kad jūs naudojate, C # define. 1478 01:05:55,960 --> 01:06:00,250 Taigi, jei tu sakai # define, tada tarpą, tada žodį, kurį norite naudoti 1479 01:06:00,250 --> 01:06:03,260 The Constant pavadinimą, o tada konstantos reikšmę. 1480 01:06:03,260 --> 01:06:06,180 Taigi pranešimo, tai skiriasi nuo priskiriant kažką kintamojo. 1481 01:06:06,180 --> 01:06:07,020 Nėra jokios lygybės ženklo. 1482 01:06:07,020 --> 01:06:08,240 Nėra jokios kabliataškis. 1483 01:06:08,240 --> 01:06:11,410 Tai yra tai, kas paprastai žinomas kaip Preprocessor direktyvos, tačiau daugiau apie 1484 01:06:11,410 --> 01:06:12,210 kad kitą kartą. 1485 01:06:12,210 --> 01:06:18,540 >> Nes dabar, tai sukuria nekintanti vertė vadinama viktorinos kurios faktinės 1486 01:06:18,540 --> 01:06:19,940 skaitinė vertė yra 2. 1487 01:06:19,940 --> 01:06:24,020 Visur, kur matyti viktorinomis, viktorinos, viktorinos per šį failą, kad 1488 01:06:24,020 --> 01:06:25,410 tik numeris 2. 1489 01:06:25,410 --> 01:06:28,100 Dabar, jeigu aš pažvelgti pagrindinis dabar pažiūrėkime, kaip tai veikia. 1490 01:06:28,100 --> 01:06:29,500 Iš pradžių, atrodo, šiek tiek paslaptingas. 1491 01:06:29,500 --> 01:06:31,340 Bet visa tai pirmąją savaitę stuff. 1492 01:06:31,340 --> 01:06:32,710 Užduoti vartotojo klasėms. 1493 01:06:32,710 --> 01:06:33,630 Kaip mes tai darome? 1494 01:06:33,630 --> 01:06:35,470 Na, 22 eilutė - 1495 01:06:35,470 --> 01:06:37,210 tai tikrai sultingas dalis - 1496 01:06:37,210 --> 01:06:40,960 Aš pareiškiu, apyvartinės lėšos, bet ne tik vienas float. 1497 01:06:40,960 --> 01:06:44,620 Aš skelbiantis, veikiau slankaus kablelio reikšmių masyvą. 1498 01:06:44,620 --> 01:06:49,100 Šis kintamasis bus vadinamas klasių, kaip teigiama čia. 1499 01:06:49,100 --> 01:06:53,080 Bet tik naujos sintaksės gabalas, tada šie laužtiniuose skliaustuose, tai 1500 01:06:53,080 --> 01:06:59,350 , kad aš sakė, plūdės, rangai ir skliaustai atidaromi ir tada numeris. 1501 01:06:59,350 --> 01:07:02,460 Pranešimas, jei tai yra pastovus, tai kaip mes tai padarė. 1502 01:07:02,460 --> 01:07:06,890 Tai reiškia, hey kompiuteris, duok man dvi plūdės, ir tegul kartu skambinti 1503 01:07:06,890 --> 01:07:08,220 jų rūšys. 1504 01:07:08,220 --> 01:07:11,920 Tai priešingai yra daug labiau varginantis procesas kaip. 1505 01:07:11,920 --> 01:07:15,850 Plūdės Grade1, plūduriuoti Grade2 ir kt. 1506 01:07:15,850 --> 01:07:20,010 Taigi pasirinkimas leidžia mums įgyvendinti šią idėją, bet daug mažiau messily, 1507 01:07:20,010 --> 01:07:24,630 toks būdas, kad mes galime parašyti vieną eilutę kodo, o ne, tarkim, už 16 16 1508 01:07:24,630 --> 01:07:25,740 savaičių semestras. 1509 01:07:25,740 --> 01:07:29,950 Taigi, aš nenorėjau sunkiai kodas 2, nes jei jūs manote apie tai dabar 1510 01:07:29,950 --> 01:07:34,160 logiškai - tarkime, kitais metais vietoj CS50 pokyčiai 3 viktorinos. 1511 01:07:34,160 --> 01:07:35,510 Ir aš turėjo skaitmeniu "2". 1512 01:07:35,510 --> 01:07:36,600 Aš turėjau skaitmeniu "2". 1513 01:07:36,600 --> 01:07:37,580 Aš turėjau skaitmeniu "2". 1514 01:07:37,580 --> 01:07:38,560 Aš turėjau skaitmeniu "2". 1515 01:07:38,560 --> 01:07:43,180 Jis tampa labai nuobodus ir labai lengvai susukti ir netyčia pakeisti 1516 01:07:43,180 --> 01:07:47,690 viena vertė 3 ir praleisti šiek tiek kitą vertę 2. 1517 01:07:47,690 --> 01:07:52,460 Todėl aš, o ne abstraktus šį toli ir naudoti ši konstanta, kad, kaip savo 1518 01:07:52,460 --> 01:07:54,120 pavadinimas rodo, kad niekada nekeičia. 1519 01:07:54,120 --> 01:07:57,710 Ir dabar, nesvarbu, ar mes turime skirtingas viktorinos šių metų pabaigoje arba kitą, 1520 01:07:57,710 --> 01:08:01,210 tereikia jį pakeisti vienoje vietoje, čia viršuje. 1521 01:08:01,210 --> 01:08:02,720 >> Taigi, kad visi konstanta. 1522 01:08:02,720 --> 01:08:08,680 Tuo tarpu naujas konceptualus bruožas yra tai, kad masyvo. 1523 01:08:08,680 --> 01:08:14,660 Taigi laužtiniuose skliaustuose duoti man tai daug plūdės ir leidžia man kartu 1524 01:08:14,660 --> 01:08:16,630 skambinti jiems pažymiai čia. 1525 01:08:16,630 --> 01:08:17,990 Taigi, dabar galime pamatyti, ką aš ruošiuosi daryti. 1526 01:08:17,990 --> 01:08:20,359 Čia 24 eilutėje yra už linijos pradžia. 1527 01:08:20,359 --> 01:08:22,260 Tai tikrai nieko išgalvotas. 1528 01:08:22,260 --> 01:08:25,060 Tai tiesiog naudojant viktorinos vietoj sunkiai užkoduotų skaičių. 1529 01:08:25,060 --> 01:08:27,790 Bet ten nieko intelektualiai skiriasi iš praeitą savaitę. 1530 01:08:27,790 --> 01:08:29,040 Tai tik printf. 1531 01:08:29,040 --> 01:08:35,490 Taigi printf ("viktorina skaičius% d iš% d"), nes aš tiesiog norite spausdinti, duok man viktorina 1532 01:08:35,490 --> 01:08:38,050 vienas iš dviejų ir tada du dviejų. 1533 01:08:38,050 --> 01:08:39,850 Taigi tai yra tik estetinis dalykas. 1534 01:08:39,850 --> 01:08:42,500 Bet įdomiausia dalis dabar yra 27 eilutėje. 1535 01:08:42,500 --> 01:08:48,310 Siekiant užpildyti vieną iš dviejų vietos rezervavimo ženklai su slankaus kablelio 1536 01:08:48,310 --> 01:08:51,029 vertė, galite vėl naudoti skliaustus. 1537 01:08:51,029 --> 01:08:55,620 Šiuo atveju, aš naudoju, nes tai už linijos pradėjo su i lygus 1538 01:08:55,620 --> 01:08:57,560 kas vertė, matyt? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> Pirmajam iteracijos procesui šio ciklo, tai kaip nors, aš 1541 01:09:01,350 --> 01:09:02,689 tai parašiau kodą. 1542 01:09:02,689 --> 01:09:05,580 , Bet antrajame iteracijos šio ciklo, tai yra taip, tarsi aš 1543 01:09:05,580 --> 01:09:07,750 tai parašiau, mano kodas. 1544 01:09:07,750 --> 01:09:10,750 Bet faktas, kad aš naudoju kintamąjį yra puikus, nes, kaip ir pavadinimas 1545 01:09:10,750 --> 01:09:14,300 rodo, kad keičiant savo vertę ant kiekvieno iteracijos. 1546 01:09:14,300 --> 01:09:17,370 Taigi, aš užpildyti šio masyvo vienoje vietoje vienu metu. 1547 01:09:17,370 --> 01:09:18,910 Ką šis masyvas atrodo? 1548 01:09:18,910 --> 01:09:21,430 Na, priežastis, kodėl aš čia patraukė šį super paprastą stačiakampį ekrane 1549 01:09:21,430 --> 01:09:23,350 anksčiau buvo dėl šios priežasties. 1550 01:09:23,350 --> 01:09:27,279 Masyvas tik atminties riekė po kitos atminties riekė, 1551 01:09:27,279 --> 01:09:30,109 kitos atminties riekė, ir kt. 1552 01:09:30,109 --> 01:09:35,260 Taigi, jei mano masyvas yra 2 dydžio, šiuo atveju čia viskas, ką aš būtų padaryti 1553 01:09:35,260 --> 01:09:37,590 rašyti mano viktorinų balai, kaip čia. 1554 01:09:37,590 --> 01:09:39,430 Aš turiu 100 dėl šio vieno. 1555 01:09:39,430 --> 01:09:42,020 Ir tada aš gavau 99 dėl šio vieno. 1556 01:09:42,020 --> 01:09:46,040 Tada ši atmintis gali net būti naudojamas, nes aš tik paprašė 1557 01:09:46,040 --> 01:09:48,689 kompiuteris masyvo dydis 2. 1558 01:09:48,689 --> 01:09:50,180 Šios kvadratų yra vis dar ten. 1559 01:09:50,180 --> 01:09:50,340 Tiesa? 1560 01:09:50,340 --> 01:09:52,500 Jūs vis dar turite 2 GB RAM, net jei jūs tik 1561 01:09:52,500 --> 01:09:53,979 dvi plūdės yra pakibusios prašo. 1562 01:09:53,979 --> 01:09:58,710 Taigi už masyvų idėja, kad kompiuteris tik mano atminties riekė 1563 01:09:58,710 --> 01:10:03,230 ir tada paskirsto mažesnius gabalus atgal atgal atgal atgal. 1564 01:10:03,230 --> 01:10:04,740 Ir taip, kad visas masyvas. 1565 01:10:04,740 --> 01:10:09,080 Tai przyległa atminties riekė, kurio viduje galima įdėti daiktus. 1566 01:10:09,080 --> 01:10:12,400 >> Dabar tai atsitinka tada padaryti tik šiek tiek nuobodu aritmetiką. 1567 01:10:12,400 --> 01:10:16,170 Jei aš slinkti žemyn čia, tai kur aš tada pakartoti per masyvo. 1568 01:10:16,170 --> 01:10:19,410 Aš sugalvoti visų masyvo reikšmių apibendrinimo. 1569 01:10:19,410 --> 01:10:22,390 Ir tada aš naudoti apvalios funkciją Čia iš tikrųjų 1570 01:10:22,390 --> 01:10:23,940 Apibendrinant galima suskirstyti pagal viktorinos. 1571 01:10:23,940 --> 01:10:27,450 Bet leiskite man pamojuoti savo jėgas, kad pakankamai aritmetinis nes dabar kaip rūšiuoti. 1572 01:10:27,450 --> 01:10:30,010 Bet visa tai daro už mane galiausiai apskaičiuojant vidurkį. 1573 01:10:30,010 --> 01:10:33,640 Taigi, pirmiausia viktorina plius antros viktorina padalinti iš 2, ir tada spausdinimas 1574 01:10:33,640 --> 01:10:34,700 ji iš int. 1575 01:10:34,700 --> 01:10:39,030 >> Bet tegul dabar perėjimas į kitą, pavyzdžiui, vadinamas String1 1576 01:10:39,030 --> 01:10:42,370 dažai panašų vaizdą, bet naudojant styginiams. 1577 01:10:42,370 --> 01:10:45,550 Leiskite man eiti į priekį ir supaprastinti tai vos akimirką. 1578 01:10:45,550 --> 01:10:48,340 Ir atleisk dabar įdubimas. 1579 01:10:48,340 --> 01:10:52,280 Šiame pavyzdyje 19 eilutėje skelbimą, man nuo vartotojo eilutę. 1580 01:10:52,280 --> 01:10:55,780 , Bet pastebėsite, ką aš kitą daro linijų 22 pirmyn. 1581 01:10:55,780 --> 01:11:00,260 Aš tikrai iteravimu nuo i iki ir tai yra naujas triukas - 1582 01:11:00,260 --> 01:11:02,730 strlen, eilutės ilgis. 1583 01:11:02,730 --> 01:11:07,010 Tai funkcija, kuri ateina su C, kad, jei pereisite eilutę, jis pasakoja 1584 01:11:07,010 --> 01:11:08,950 , kiek simbolių yra toje eilutėje. 1585 01:11:08,950 --> 01:11:09,440 Štai ir viskas. 1586 01:11:09,440 --> 01:11:12,520 Tai, kad ji strlen vietoj eilutės ilgis yra tik todėl, kad 1587 01:11:12,520 --> 01:11:13,040 daugiau glausta. 1588 01:11:13,040 --> 01:11:17,100 Prieš 30 metų, žmonės mėgo rašyti dalykus trumpai, kaip įmanoma. 1589 01:11:17,100 --> 01:11:19,080 Taigi, mes čia laikyti šią konvenciją. 1590 01:11:19,080 --> 01:11:21,730 i + + tiesiog reiškia prieaugio i kiekvienos iteracijos. 1591 01:11:21,730 --> 01:11:24,310 Ir dabar pastebėti, kuris yra tikrai įdomus. 1592 01:11:24,310 --> 01:11:28,730 Taigi, 24 eilutėje, sakau kompiuterį, duok man ženklą, 8 1593 01:11:28,730 --> 01:11:30,770 bitai, ir vadina jį c. 1594 01:11:30,770 --> 01:11:35,370 Bet kas tai yra dešinėje pusėje, sakydamas? 1595 01:11:35,370 --> 01:11:38,150 Anglų kalba, ką tai? 1596 01:11:38,150 --> 01:11:40,070 [Nesigirdi] 1597 01:11:40,070 --> 01:11:40,490 David J. Malan: Būtent. 1598 01:11:40,490 --> 01:11:42,390 Duok man pirmąją raidę masyvo. 1599 01:11:42,390 --> 01:11:45,400 Arba apskritai, duok man i-ojo požymio masyvo. 1600 01:11:45,400 --> 01:11:48,230 Ir suvokti, labai svarbu, kad dabar, kaip kompiuterių specialistų, mes iš tikrųjų 1601 01:11:48,230 --> 01:11:49,330 skaičiuoti nuo 0. 1602 01:11:49,330 --> 01:11:51,290 Jūs neturite savo nuožiūra dabar pradėti tai daryti. 1603 01:11:51,290 --> 01:11:54,580 Dabar jūs turite elgtis pagal kompiuterio lūkesčius ir 1604 01:11:54,580 --> 01:11:58,010 skaičiuojami nuo nulio, nes [0] bus pirmas 1605 01:11:58,010 --> 01:11:59,670 veikėjas eilutę. 1606 01:11:59,670 --> 01:12:01,320 [1] bus antras. 1607 01:12:01,320 --> 01:12:03,610 [2] bus trečią ir tt. 1608 01:12:03,610 --> 01:12:08,840 Taigi šios programos, jei aš kompiliuoti - tai yra, dar kartą, String1. 1609 01:12:08,840 --> 01:12:11,040 >> Todėl įsitikinkite, String1. 1610 01:12:11,040 --> 01:12:16,730 Ir dabar aš paleisti String1 mano terminalo lange. 1611 01:12:16,730 --> 01:12:19,180 Jis laukia įvedimo, todėl aš ruošiuosi rašyti, tarkim, Dovydo. 1612 01:12:19,180 --> 01:12:20,080 Įveskite. 1613 01:12:20,080 --> 01:12:23,350 Ir dabar jis spausdina Dovydui visa skirtingomis linijomis, nes 1614 01:12:23,350 --> 01:12:24,430 pastebėti, ką aš darau. 1615 01:12:24,430 --> 01:12:27,510 Aš spausdinti vieną simbolį vienu metu. 1616 01:12:27,510 --> 01:12:29,100 Dabar mes ne eiti į smulkmenas šiandien apie tai. 1617 01:12:29,100 --> 01:12:31,610 Bet aš ištrinti akimirką prieš šio patikrinimo čia. 1618 01:12:31,610 --> 01:12:36,310 It turns out, kad jei vartotojas yra netinkamas elgesys, rungimosi, arba tiesiog 1619 01:12:36,310 --> 01:12:41,780 supainioti, jūs iš tikrųjų galite nepateikia kai kurių ilgio eilutę. 1620 01:12:41,780 --> 01:12:43,640 Jei paspausite neteisingą mygtuką ant klaviatūros, jūs galite suteikti 1621 01:12:43,640 --> 01:12:44,390 ne eilutė ne visi. 1622 01:12:44,390 --> 01:12:47,790 Arba jei esate kenksminga, galite bandyti įterpti Gigabyte vertės 1623 01:12:47,790 --> 01:12:49,380 esė užpildyti šią eilutę. 1624 01:12:49,380 --> 01:12:52,060 Ir jei kompiuteris veikia iš atminties, paaiškėja, kad mes ketiname 1625 01:12:52,060 --> 01:12:54,310 grįžti šią ypatingą vertę, vadinama null. 1626 01:12:54,310 --> 01:12:57,550 Taigi dabar, tiesiog žinau, kad ten tai ypatingą vertę, vadinama null, kad 1627 01:12:57,550 --> 01:13:01,000 leis mums patikrinti, kai mes iš atminties, be kitų dalykų. 1628 01:13:01,000 --> 01:13:07,330 >> Bet jei aš atverti dabar String2, pastebėti vienas skirtumas čia. 1629 01:13:07,330 --> 01:13:09,760 Pranešimas vienas skirtumas čia String2 1630 01:13:09,760 --> 01:13:13,260 Su String2, for ciklas yra šiek tiek kitoks. 1631 01:13:13,260 --> 01:13:16,350 Leiskite man ištrinti nulls, kad galėtume kalbėti apie tuos, kitą kartą. 1632 01:13:16,350 --> 01:13:18,460 Bet kas skiriasi apie už linijos šį kartą? 1633 01:13:21,580 --> 01:13:23,160 Ir aš galiu grįžti į ankstesniame pavyzdyje. 1634 01:13:23,160 --> 01:13:24,800 Taigi, kad 2 versija. 1635 01:13:24,800 --> 01:13:27,020 Tai yra versija 1. 1636 01:13:27,020 --> 01:13:31,935 Vienas, du, vienas du. 1637 01:13:35,030 --> 01:13:38,240 Taigi strlen skambutis yra kur? 1638 01:13:38,240 --> 01:13:40,420 Tai pirmosios dalies už linijos. 1639 01:13:40,420 --> 01:13:43,060 Bet mintis, kodėl aš darau tai? 1640 01:13:43,060 --> 01:13:43,690 Taip. 1641 01:13:43,690 --> 01:13:46,010 [Nesigirdi] 1642 01:13:46,010 --> 01:13:47,630 David J. Malan: Taigi mes neturime skambinti funkcija kiekvieną kartą. 1643 01:13:47,630 --> 01:13:48,040 Tiksliai. 1644 01:13:48,040 --> 01:13:50,350 Atšaukti iš kilpos, kad jie super paprasta, kai jūs tarsi 1645 01:13:50,350 --> 01:13:52,180 suprasti, kad tai yra iniciacijos 1646 01:13:52,180 --> 01:13:53,330 sąlyga, ir atnaujintame variante. 1647 01:13:53,330 --> 01:13:55,430 Problema yra tai, kad sąlyga vyksta kas 1648 01:13:55,430 --> 01:13:56,600 pasikartojančių kilpą. 1649 01:13:56,600 --> 01:13:59,930 Ir taip, šiame pavyzdyje čia, kas yra blogai, apie tai, 1650 01:13:59,930 --> 01:14:03,500 , kad tai yra mano būklė? 1651 01:14:03,500 --> 01:14:05,920 Jūs skambinate strlen vėl ir vėl ir vėl. 1652 01:14:05,920 --> 01:14:08,990 Bet kai aš įvedėte Dovydu, tos eilutės ilgis yra penki. 1653 01:14:08,990 --> 01:14:11,560 Ir jis nesiruošia keisti iteracijos kiekvieną kilpą, nes 1654 01:14:11,560 --> 01:14:15,560 eilutė yra dar D-V I-D. Taigi tai, kas taps užuomina 1655 01:14:15,560 --> 01:14:19,650 vis svarbesnė idėja žinomas kaip dizaino sprendimą, kur - tik ne 1656 01:14:19,650 --> 01:14:21,640 kad kompiuteris nereikalingą darbą. 1657 01:14:21,640 --> 01:14:25,630 >> Dabar tik, kaip nukniaukti Peržiūrėti pset 2, pset 2 standartinis leidimas 1658 01:14:25,630 --> 01:14:28,850 iššūkis jums, kad iš tikrųjų įgyvendinti kai šifrai skaičių, kai kurie 1659 01:14:28,850 --> 01:14:32,650 šifravimo algoritmų, todėl, kad jūs galite ir užšifruoti ir iššifruoti 1660 01:14:32,650 --> 01:14:35,530 slaptas žinutes, panašiai kaip viena Ralphie iššifruoti. 1661 01:14:35,530 --> 01:14:38,720 Hacker leidimas pset 2, mes ketiname eiti šiek tiek toliau. 1662 01:14:38,720 --> 01:14:42,010 Mes ketiname perduoti failą iš faktinė kompiuterių sistema, kuri yra 1663 01:14:42,010 --> 01:14:45,690 visa krūva vardus ir faktiškai saugiame slaptažodžius, ir mūsų uždavinys 1664 01:14:45,690 --> 01:14:49,110 hacker leidimas bus nulaužti tuos slaptažodžius ir skaičius 1665 01:14:49,110 --> 01:14:53,060 , kas kriptografijos arba kas paslaptis buvo naudojamas iš tikrųjų 1666 01:14:53,060 --> 01:14:55,080 sukurti šiuos slaptažodžius. 1667 01:14:55,080 --> 01:14:58,360 Ir mes ketiname tai padaryti naudojant naują funkciją, C, kad aš duosiu 1668 01:14:58,360 --> 01:15:02,200 jūs tiesiog demo, žinomas kaip komandinės eilutės argumentai. 1669 01:15:02,200 --> 01:15:05,930 >> Taigi, it turns out, kaip kai kurie iš jūsų gali matyti skirsnyje ar vadovėlių, 1670 01:15:05,930 --> 01:15:09,850 pagrindinis ne visada turi negaliojančiu skliausteliuose. 1671 01:15:09,850 --> 01:15:14,060 Pasirodo, kad pagrindinis taip pat gali būti parašyta, kaip tai, su dviem argumentais, 1672 01:15:14,060 --> 01:15:19,690 argc ir argv, kur argc žodžių skaičius, kad įvedate po 1673 01:15:19,690 --> 01:15:21,940 programos pavadinimas komandinę eilutę. 1674 01:15:21,940 --> 01:15:24,550 Ir argv yra tikrasis žodžiai. 1675 01:15:24,550 --> 01:15:29,470 Ir kaip laužtiniuose skliaustuose ten rodo, argv, matyt, masyvas. 1676 01:15:29,470 --> 01:15:33,720 Tai bus po po atminties eilutę eilutę eilutę. 1677 01:15:33,720 --> 01:15:36,170 Taigi, ką mes ketiname, kad būtų galima tai padaryti, pradedant pset 2, 1678 01:15:36,170 --> 01:15:37,310 kažką panašaus į tai. 1679 01:15:37,310 --> 01:15:42,450 Jei aš darau argv1, kuri yra pavyzdys, mes grįžti į pirmadienį, ir paleisti 1680 01:15:42,450 --> 01:15:45,180 tai, pastebėsite, kad ji neatrodo, kad daryti ką nors dar. 1681 01:15:45,180 --> 01:15:47,050 Jis tiesiog spausdina savo pavadinimą. 1682 01:15:47,050 --> 01:15:53,220 Bet jei aš pasakysiu sudie klasė, pastaboje (įspėjime), kad ši programa akivaizdžiai kartojasi 1683 01:15:53,220 --> 01:15:57,030 per kiekvieną iš žodžių, kurie buvo įvesti komandinėje eilutėje. 1684 01:15:57,030 --> 01:16:02,050 Ir būdas, kuriuo mes prieiti prie tariant, kad vartotojas turi 1685 01:16:02,050 --> 01:16:06,780 įvedėte komandinėje eilutėje keičiant pagrindinė, prasideda šį savaitgalį, nuo int 1686 01:16:06,780 --> 01:16:10,710 main (void) int main (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 Ir tokiu būdu gims komandinės eilutės argumentai. 1688 01:16:13,700 --> 01:16:17,210 Ir kai jūs gaunate tikrai sudėtingas, jums bus suteikta galimybė rašyti 1689 01:16:17,210 --> 01:16:21,370 tikrai trippy programas, pavyzdžiui, šį vieną čia, kuris eina virš ir už 1690 01:16:21,370 --> 01:16:25,520 kai funkcionalumo mes padarėme iki šiol, bet gana galingas. 1691 01:16:25,520 --> 01:16:27,330 >> Taigi, mes palikti tai ekrane. 1692 01:16:27,330 --> 01:16:29,160 Ir mes matome, pirmadienį.