1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] DAVID J. Malan: Në rregull. 2 00:00:08,160 --> 00:00:11,170 Kjo është CS50, dhe ky është fundi i javës së dytë. 3 00:00:11,170 --> 00:00:14,650 Nëse ju presin që të jenë të uritur rreth kësaj kohe nesër, e di se ne jemi duke shkuar 4 00:00:14,650 --> 00:00:18,920 të mblidhet nesër si një grup i vogël, e enjte, 01:15. 5 00:00:18,920 --> 00:00:21,460 Nuk është kjo URL këtu nëse ju dëshironi të RSVP. 6 00:00:21,460 --> 00:00:25,270 Hapësira është e kufizuar, kështu që ju lutemi falë nëse formulari është plotësuar nga koha që ju të 7 00:00:25,270 --> 00:00:26,680 plotësoni këtë. 8 00:00:26,680 --> 00:00:29,400 Një tjetër URL edhe pse kjo mund të jetë me interes është kjo. 9 00:00:29,400 --> 00:00:32,409 >> Pra, në vetëm rreth një muaj, kursi do të vihen në dispozicion 10 00:00:32,409 --> 00:00:36,090 gjithë më gjerësisht nëpërmjet EDX, nëpërmjet të cilës folks në internet do të jetë 11 00:00:36,090 --> 00:00:39,580 në gjendje të ndjekin së bashku, të angazhohen në kursin mjaft aktive, në fakt. 12 00:00:39,580 --> 00:00:43,070 Ata do të jenë duke përdorur aplikim CS50 dhe CS50 diskutuar dhe më i 13 00:00:43,070 --> 00:00:45,840 mjete të ndryshme software që ne tashmë kanë qenë duke përdorur këtë semestër. 14 00:00:45,840 --> 00:00:49,030 Dhe një nga nismat që ne do të donim për të marrë si një eksperiment këtë vit 15 00:00:49,030 --> 00:00:53,120 është për të parë se sa i kënaqur që ne mund të përkthehet në të folur dhe të tjera 16 00:00:53,120 --> 00:00:54,110 gjuhë të shkruara. 17 00:00:54,110 --> 00:00:58,000 Pra, nëse ju mund të ketë një interes në pjesëmarrjen në këtë projekt, ku 18 00:00:58,000 --> 00:01:02,090 ne do të sigurojë transkriptin anglisht dhe titra per kurs të 19 00:01:02,090 --> 00:01:05,190 ligjërata dhe pantallona të shkurtra dhe seminaret dhe seksionet dhe si - 20 00:01:05,190 --> 00:01:08,700 në qoftë se ju flisni rrjedhshëm ose shkruani rrjedhshëm gjuhën ndonjë tjetër, ne do të 21 00:01:08,700 --> 00:01:12,240 dashuri te angazhohen ju në këtë projekt, ku ju të marrë në një ose më shumë të 22 00:01:12,240 --> 00:01:15,340 video, përkthimin e tyre në gjuhën që ju e dini mjaft mirë. 23 00:01:15,340 --> 00:01:19,050 Për të ju jap një ndjenjë të ndërfaqes, nuk është kjo web-based user interface 24 00:01:19,050 --> 00:01:22,330 se ne do të jetë duke përdorur që do të krijojë një thelb UI si kjo. 25 00:01:22,330 --> 00:01:24,520 Kjo është më mësim disa Halloween më parë. 26 00:01:24,520 --> 00:01:27,710 Dhe në anën e djathtë atje në të zezë e ardhshëm të këtyre vulave kohore, 27 00:01:27,710 --> 00:01:31,300 ju do të shihni gjëra të ndryshme që erdhi nga goja ime atë ditë. 28 00:01:31,300 --> 00:01:34,660 Dhe pastaj poshtë atë, ju do të jetë në gjendje për të përkthyer në disa gjuhë tjetër. 29 00:01:34,660 --> 00:01:37,840 Pikërisht ajo që është në mes të hartës, në këtë rast, Shqip 30 00:01:37,840 --> 00:01:38,660 dhe, të themi, spanjisht. 31 00:01:38,660 --> 00:01:40,480 Pra, kjo është në fakt një shumë përdorues-miqësor mjet. 32 00:01:40,480 --> 00:01:43,690 Ju mund të Rewind dhe të shpejtë përpara shumë lehtë me shkurtesat e tastierës. 33 00:01:43,690 --> 00:01:46,710 Pra, nëse ju do të donte për të marrë pjesë në këtë eksperiment dhe kanë fjalët tuaja 34 00:01:46,710 --> 00:01:50,730 shihet dhe lexohet nga potencialisht mijëra njerëz atje, ju lutem mos ndjehen të 35 00:01:50,730 --> 00:01:51,960 lirë për të marrë pjesë. 36 00:01:51,960 --> 00:01:56,940 >> Tani një fjalë në lidhje me kotele nga e hëna, mos kemi dërguar një tepër 37 00:01:56,940 --> 00:01:58,120 Mesazhi frikshme. 38 00:01:58,120 --> 00:02:02,130 A e kupton se sa orë zyra sugjerojnë dhe si seksionet e sugjerojnë, të 39 00:02:02,130 --> 00:02:05,110 Dizajni i kursit është shumë që kanë bashkëpunuar dhe studentët 40 00:02:05,110 --> 00:02:09,250 duke folur për të punuar me grupe probleme dhe problemet së bashku. 41 00:02:09,250 --> 00:02:13,630 Dhe me të vërtetë të vijë vetëm vjen poshtë për të, përsëri, puna që në fund të fundit 42 00:02:13,630 --> 00:02:16,420 duhet të dorëzojnë duhet të jetë tuaj. 43 00:02:16,420 --> 00:02:19,080 Dhe kështu kjo është, krejt sinqerisht - në orarit të punës, kjo është krejtësisht normale - 44 00:02:19,080 --> 00:02:21,560 kjo është krejtësisht për të pritur, madje - për të biseduar me disa 45 00:02:21,560 --> 00:02:22,370 miqtë tjetër për ju. 46 00:02:22,370 --> 00:02:25,240 Nëse ai ose ajo është duke luftuar me disa çështje, dhe ju jeni si, oh, edhe le 47 00:02:25,240 --> 00:02:27,750 mua ju jap një paraqitje e shkurtër e disa linjë të kodit që kam shkruar. 48 00:02:27,750 --> 00:02:28,290 Kjo është në rregull. 49 00:02:28,290 --> 00:02:28,700 Kjo ndodh. 50 00:02:28,700 --> 00:02:31,580 Dhe kjo është shumë e favorshme, unë mendoj se, me procesin e të mësuarit. 51 00:02:31,580 --> 00:02:35,270 Kur linjë, përsëri, merr kaloi është kur koka është lloj i tilted mbi 52 00:02:35,270 --> 00:02:38,800 sekonda këtu për më shumë ose minuta për të vërtetë që të ketë vetëm 53 00:02:38,800 --> 00:02:41,250 qenë një mundësi zhbllokimin për mikun tuaj. 54 00:02:41,250 --> 00:02:43,870 Dhe sigurisht, kur gjërat merrni shkëmbehet nëpërmjet postës elektronike dhe Dropbox dhe 55 00:02:43,870 --> 00:02:45,350 si, atje është vija. 56 00:02:45,350 --> 00:02:48,940 Pra, me të gjitha mjetet, të ndjehen rehat dhe të ndjehen të inkurajuar për të biseduar me miqtë 57 00:02:48,940 --> 00:02:51,270 dhe shokët e klasës për psets dhe më shumë. 58 00:02:51,270 --> 00:02:54,680 Dhe vetëm të kuptojë se çfarë ju duhet të vërtetë në fund të fundit të paraqesë jetë 59 00:02:54,680 --> 00:02:57,780 produkt i krijimit tuaj dhe jo dikush tjetër. 60 00:02:57,780 --> 00:03:01,010 >> Pra, në të njëjtën mënyrë e krijesave Shtazët e buta, ju mund të 61 00:03:01,010 --> 00:03:02,820 e di këtë djalë këtu. 62 00:03:02,820 --> 00:03:06,180 Pra, kjo është një film tmerrësisht dobët nga vite më parë. 63 00:03:06,180 --> 00:03:08,680 Çdokush parë këtu Spaceballs? 64 00:03:08,680 --> 00:03:09,120 Dakord. 65 00:03:09,120 --> 00:03:10,220 Kështu që një numër i mirë këtu. 66 00:03:10,220 --> 00:03:13,840 Pra, kjo është mënyra jonë mrekullisht akademik i prezantuar sot përfundimisht 67 00:03:13,840 --> 00:03:15,130 nocioni i cryptography. 68 00:03:15,130 --> 00:03:19,010 Dhe kështu një nga problemet domain specifike për pset 2, i cili do të vijë 69 00:03:19,010 --> 00:03:22,770 nga natën vonë nesër, është që të zhyten në botën e kriptografisë, që 70 00:03:22,770 --> 00:03:26,380 është arti i encrypting ose përpiqen informacion. 71 00:03:26,380 --> 00:03:30,160 Dhe kjo në fund të fundit ka të bëjë me botën e sigurisë. 72 00:03:30,160 --> 00:03:34,440 >> Tani sigurie për më na vjen në formën e mekanizmave mjaft mondane. 73 00:03:34,440 --> 00:03:36,920 Të gjithë ne kemi përdoruesve dhe fjalëkalimet. 74 00:03:36,920 --> 00:03:41,350 Dhe të gjithë prej nesh kanë shumë të këqija përdoruesve dhe fjalëkalimet, ka shumë të ngjarë. 75 00:03:41,350 --> 00:03:45,250 Nëse fjalëkalimi juaj është i njëjtë në faqet e internetit të shumta, që ndoshta nuk 76 00:03:45,250 --> 00:03:47,920 ide e mirë, si ne do të diskutuar drejt përfundimit Semestri-së. 77 00:03:47,920 --> 00:03:51,680 Nëse fjalëkalimi juaj është i shkruar në një shënim ngjitet - nuk është shaka - në tuaj 78 00:03:51,680 --> 00:03:55,130 monitor, se shumë nuk është domosdoshmërisht dizajn të mirë, por mjaft të zakonshme 79 00:03:55,130 --> 00:03:56,140 fenomen. 80 00:03:56,140 --> 00:04:00,420 Dhe në qoftë se ju nuk jeni duke përdorur kriptografinë të encrypt passwords tuaj, ata janë 81 00:04:00,420 --> 00:04:01,610 veçanërisht të ndjeshme. 82 00:04:01,610 --> 00:04:04,670 Pra, nëse ju mendoni se ju jeni duke u super zgjuar duke pasur një Word fshehur 83 00:04:04,670 --> 00:04:07,740 dokumentuar diku në hard drive tuaj që ka të gjitha fjalëkalimet tuaja, por 84 00:04:07,740 --> 00:04:10,550 kjo është në një dosje që askush nuk do të shikoni në, se edhe nuk është një shumë e 85 00:04:10,550 --> 00:04:11,540 Mekanizmi i sigurt. 86 00:04:11,540 --> 00:04:15,100 Dhe kështu ajo do të prezantoj 2 pset kjo është arti i kriptografisë dhe 87 00:04:15,100 --> 00:04:18,300 përpiqen informacion në mënyrë që gjëra të tilla si fjalëkalimet janë 88 00:04:18,300 --> 00:04:19,500 të gjitha më i sigurt. 89 00:04:19,500 --> 00:04:24,500 Pra, si për të motivuar këtë problem shumë i vërtetë botërore me një shumë jo-real-botëror 90 00:04:24,500 --> 00:04:28,740 Skenari, më lejoni të prezantoj me një nga clips favorite tona këtu nga kjo 91 00:04:28,740 --> 00:04:29,895 film, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [Rishikim video] 93 00:04:30,565 --> 00:04:32,995 -Helmetë, ju dreq, çfarë po ndodh? 94 00:04:32,995 --> 00:04:34,730 Çfarë jeni duke bërë për vajzën time? 95 00:04:34,730 --> 00:04:38,960 -Më lejoni të prezantoj kirurg plastike shkëlqyer të ri, Dr Philip 96 00:04:38,960 --> 00:04:43,290 Schlotkin, më i madhi punë hundë njeri në tërë 97 00:04:43,290 --> 00:04:45,526 universi dhe Beverly Hills. 98 00:04:45,526 --> 00:04:46,450 Lartësia Juaj-. 99 00:04:46,450 --> 00:04:47,380 -Nose punë? 100 00:04:47,380 --> 00:04:48,035 Nuk të kuptoj. 101 00:04:48,035 --> 00:04:49,480 Ajo është tashmë kishte një punë hundë. 102 00:04:49,480 --> 00:04:51,490 Kjo ishte një ëmbël 16 pranishëm. 103 00:04:51,490 --> 00:04:53,090 -Jo, kjo nuk është ajo që ju mendoni. 104 00:04:53,090 --> 00:04:55,150 Është shumë, shumë keq. 105 00:04:55,150 --> 00:04:59,860 Nëse ju nuk jepni kombinim me mburojën e ajrit, Dr Schlotkin do 106 00:04:59,860 --> 00:05:04,135 jepni vajzën tuaj mbrapa hundën e saj të vjetër. 107 00:05:04,135 --> 00:05:05,385 -Jo! 108 00:05:08,202 --> 00:05:10,186 Ku e keni marrë këtë? 109 00:05:10,186 --> 00:05:11,178 -Në rregull. 110 00:05:11,178 --> 00:05:11,674 Do ta tregoj. 111 00:05:11,674 --> 00:05:12,666 Do ta tregoj. 112 00:05:12,666 --> 00:05:14,154 -Jo, babi, nr. 113 00:05:14,154 --> 00:05:15,150 Ju nuk duhet. 114 00:05:15,150 --> 00:05:16,460 -You're drejtë, my dear. 115 00:05:16,460 --> 00:05:18,450 Unë do të humbasë hundën tuaj të re. 116 00:05:18,450 --> 00:05:21,550 Por unë nuk do të tregoj atyre kombinimin pa marrë parasysh çfarë. 117 00:05:21,550 --> 00:05:23,100 -Shumë mirë. 118 00:05:23,100 --> 00:05:25,510 Dr Schlotkin, të bëjë keq juaj. 119 00:05:25,510 --> 00:05:26,760 -Im kënaqësi. 120 00:05:30,560 --> 00:05:31,180 -Jo! 121 00:05:31,180 --> 00:05:33,450 Prisni, prisni. 122 00:05:33,450 --> 00:05:34,770 Do ta tregoj. 123 00:05:34,770 --> 00:05:36,400 Do ta tregoj. 124 00:05:36,400 --> 00:05:38,630 -E dija se do të punojë. 125 00:05:38,630 --> 00:05:42,040 Të gjithë të drejtë, t'i jepte për mua. 126 00:05:42,040 --> 00:05:46,890 -Kombinim është një. 127 00:05:46,890 --> 00:05:47,290 -Një. 128 00:05:47,290 --> 00:05:48,183 -Një. 129 00:05:48,183 --> 00:05:48,950 -Dy. 130 00:05:48,950 --> 00:05:49,370 -Dy. 131 00:05:49,370 --> 00:05:50,450 -Dy. 132 00:05:50,450 --> 00:05:50,715 -Tre 133 00:05:50,715 --> 00:05:51,380 -Tre. 134 00:05:51,380 --> 00:05:52,390 -Tre. 135 00:05:52,390 --> 00:05:53,200 -Katër. 136 00:05:53,200 --> 00:05:53,720 -Katër. 137 00:05:53,720 --> 00:05:55,830 -Katër. 138 00:05:55,830 --> 00:05:56,580 -Five 139 00:05:56,580 --> 00:05:57,120 -Pesë. 140 00:05:57,120 --> 00:05:58,560 -Pesë. 141 00:05:58,560 --> 00:06:03,770 -Kështu kombinim është një, dy, tre, kater, pese. 142 00:06:03,770 --> 00:06:06,745 Kjo është kombinimi stupidest kam dëgjuar ndonjëherë në jetën time. 143 00:06:06,745 --> 00:06:09,290 Kjo është lloj i gjë një idiot do të ketë në bagazhin e tij. 144 00:06:09,290 --> 00:06:11,540 -Faleminderit, lartmadhëria juaj. 145 00:06:11,540 --> 00:06:12,940 -Çfarë keni bërë? 146 00:06:12,940 --> 00:06:14,230 -I fikur mur. 147 00:06:14,230 --> 00:06:14,630 -Jo, ju nuk e keni. 148 00:06:14,630 --> 00:06:15,430 Ju fikur filmin e tërë. 149 00:06:15,430 --> 00:06:16,722 -Unë duhet të ketë presion butonin e gabuar. 150 00:06:16,722 --> 00:06:18,078 -E pra, e vënë atë përsëri në. 151 00:06:18,078 --> 00:06:18,805 Vendos filmin prapa. 152 00:06:18,805 --> 00:06:19,080 -Po, zotëri. 153 00:06:19,080 --> 00:06:19,270 Po, zotëri. 154 00:06:19,270 --> 00:06:19,830 -Le të shkojë, Erna. 155 00:06:19,830 --> 00:06:20,270 Eja, Gretchen. 156 00:06:20,270 --> 00:06:22,850 Sigurisht që ju e dini se unë ende do të duhet të faturojë ju për këtë. 157 00:06:27,400 --> 00:06:28,325 -E pra, e bëri atë punë? 158 00:06:28,325 --> 00:06:29,550 Ku është dera? 159 00:06:29,550 --> 00:06:29,910 -Ajo ka punuar, zotëri. 160 00:06:29,910 --> 00:06:30,770 Ne kemi kombinimin. 161 00:06:30,770 --> 00:06:31,390 -Madhe. 162 00:06:31,390 --> 00:06:35,630 Tani ne mund të marrë çdo frymë e ajrit të freskët fundit nga Druidia planetit. 163 00:06:35,630 --> 00:06:36,550 Çfarë është kombinimi? 164 00:06:36,550 --> 00:06:38,805 -Një, dy, tre, katër, pesë. 165 00:06:38,805 --> 00:06:40,610 -Një, dy, tre, katër, pesë? 166 00:06:40,610 --> 00:06:41,070 -Po. 167 00:06:41,070 --> 00:06:41,760 -Kjo është e mahnitshme. 168 00:06:41,760 --> 00:06:45,200 Unë kam marrë kombinimin e njëjtë në bagazhin tim. 169 00:06:45,200 --> 00:06:47,800 Përgatitja Spaceball 1 për largimin e menjëhershëm. 170 00:06:47,800 --> 00:06:48,536 -Po, zotëri. 171 00:06:48,536 --> 00:06:52,350 -Dhe ndryshojë kombinim në bagazhin tim. 172 00:06:52,350 --> 00:06:53,250 -Ow! 173 00:06:53,250 --> 00:06:55,020 [VIDEO END rishikim] 174 00:06:55,020 --> 00:06:57,470 >> DAVID J. Malan: Një film mahnitshme që ju duhet tani të gjithë e shohin. 175 00:07:00,600 --> 00:07:06,540 Pra, konteksti këtu është se me të dhëna të pasigurta vjen një mundësi për të 176 00:07:06,540 --> 00:07:07,790 encrypt atë dhe të përpiqen atë. 177 00:07:07,790 --> 00:07:11,060 Dhe kështu kjo, për shembull, është një shembull i një mesazhi të koduar. 178 00:07:11,060 --> 00:07:12,980 Ky fakt thotë diçka në gjuhën angleze. 179 00:07:12,980 --> 00:07:14,750 Por kjo nuk është e qartë tërësisht e qartë. 180 00:07:14,750 --> 00:07:17,360 Dhe ne do të vijnë rreth të plotë sot për të ngas përveç asaj këtë sekret 181 00:07:17,360 --> 00:07:18,380 Mesazhi këtu është. 182 00:07:18,380 --> 00:07:22,370 Por në botën e vërtetë të kompjuterëve, gjërat nuk duken edhe si ata mund të 183 00:07:22,370 --> 00:07:23,440 të jetë fraza anglisht. 184 00:07:23,440 --> 00:07:27,500 Për shembull, kjo është ajo që ju mund të gjeni në një Linux apo Mac, ose standarde 185 00:07:27,500 --> 00:07:32,080 Kompjuter Unix në një skedar që ishte një herë e një kohë të quajtur file password. 186 00:07:32,080 --> 00:07:34,170 Në ditët e sotme, ajo është lëvizur në vende të tjera. 187 00:07:34,170 --> 00:07:38,660 Por në qoftë se ju shikoni në vendin e duhur në një sistem, ju do të shihni jo vetëm tuaj 188 00:07:38,660 --> 00:07:41,430 Username ose e njerëzve të tjerë në sistem, por ju do të shihni një 189 00:07:41,430 --> 00:07:43,410 Versioni i koduar fjalëkalim të tyre. 190 00:07:43,410 --> 00:07:47,800 Në të vërtetë, fjala Crypt nuk sugjeron se stuff vijim është shifruar. 191 00:07:47,800 --> 00:07:52,030 Dhe kjo seri e në dukje të rastit shkronja dhe karaktere dhe numrat dhe 192 00:07:52,030 --> 00:07:56,370 kështu me radhë mund të decrypted vetëm nga zakonisht ditur disa sekrete - 193 00:07:56,370 --> 00:07:58,600 një fjalë të fshehtë, një numër i fshehtë. 194 00:07:58,600 --> 00:08:02,760 Dhe kështu me të vërtetë, arti i kriptografisë përfundimisht boils poshtë për të besimit të disa 195 00:08:02,760 --> 00:08:05,700 lloj dhe duke ditur diçka që dikush tjetër nuk e bën. 196 00:08:05,700 --> 00:08:10,010 Ne do të shqyrtojë këtë në hollësi pak më sot dhe në pset që do të vijnë. 197 00:08:10,010 --> 00:08:11,860 >> Dhe tani një fjalë të kalojë / dështojnë. 198 00:08:11,860 --> 00:08:15,250 Pra sidomos, si disa prej jush kanë fetar në pset 1, aplikim, dhe 199 00:08:15,250 --> 00:08:18,390 një botë shumë i ri për veten tuaj, e kuptoi se frustrimet dhe 200 00:08:18,390 --> 00:08:21,340 konfuzion dhe vetëm teknike vështirësitë janë për të pritur. 201 00:08:21,340 --> 00:08:24,410 Sidomos me pset parë, ku ka vetëm aq shumë i ri, vetëm duke u 202 00:08:24,410 --> 00:08:28,830 njohur me ls dhe CD dhe të gjitha këto komanda misterioze në një mjedis të ri. 203 00:08:28,830 --> 00:08:32,679 Dhe kjo është e ndarë nga materiali faktik dhe programimin e vetë. 204 00:08:32,679 --> 00:08:35,960 Pra e kuptojnë, gjithashtu, se ka sigurisht orarit të punës që ekzistojnë në 205 00:08:35,960 --> 00:08:36,770 Struktura mbështetje. 206 00:08:36,770 --> 00:08:38,620 Seksione të fillojnë këtë të dielë vjen. 207 00:08:38,620 --> 00:08:41,990 Por më e rëndësishmja, në qoftë se ju jeni ndjeheni vetëm se kjo nuk është e 208 00:08:41,990 --> 00:08:44,420 bota për ty, e kupton se ai me të vërtetë ka vetëm të marrë kohë. 209 00:08:44,420 --> 00:08:47,520 Dhe po të mos ishte për këtë mundësi vjet më parë për mua që të marrë një klasë 210 00:08:47,520 --> 00:08:50,840 kalojë / dështojnë, sinqerisht, unë kurrë nuk do të kishte vendosur edhe këmbë në klasë. 211 00:08:50,840 --> 00:08:53,520 Dhe ju mund ta ndryshoni këtë deri në, të themi, të hënën e pestë e kursit. 212 00:08:53,520 --> 00:08:57,110 Pra, nëse ju jeni në buzë tani, të kuptojë se në vend se kreu në disa të tjera 213 00:08:57,110 --> 00:09:01,000 Ujërat krejt, e sigurisht që e konsiderojnë vetëm ndryshimin për të kaluar / dështojnë. 214 00:09:01,000 --> 00:09:03,750 Përsëri, nuk është e vërtetë kjo kulturë këtu në Harvard që të marrë gjëra 215 00:09:03,750 --> 00:09:08,080 kalojë / dështojnë që të gjithë me të vërtetë dëshiron të arrijë apo të overachieve. 216 00:09:08,080 --> 00:09:11,470 Por sinqerisht, kjo është një mënyrë e mrekullueshme e duke u përpjekur diçka jashtë që mund të mos 217 00:09:11,470 --> 00:09:13,110 jenë të njohura për ju. 218 00:09:13,110 --> 00:09:17,090 Dhe ju do të përfundojë duke bërë në shumicën e rasteve mjaft të bukura, ndoshta 219 00:09:17,090 --> 00:09:18,040 shumë për habinë tuaj. 220 00:09:18,040 --> 00:09:20,850 Dhe në terma më konkrete, atë që unë mendoj se të kalojë / dështojnë në përgjithësi e bën, 221 00:09:20,850 --> 00:09:23,350 sidomos si ju mund të keni përjetuar me pset 0, në qoftë se ju keni vënë 222 00:09:23,350 --> 00:09:27,200 në 10 orë, 15 orë, 25 orë në disa pset - dhe ju jeni vetëm banging 223 00:09:27,200 --> 00:09:28,180 kokën tuaj kundër murit, 224 00:09:28,180 --> 00:09:29,850 dhe kjo është duke u super natën vonë, 225 00:09:29,850 --> 00:09:31,880 por ju keni marrë pset si 90% të rrugës, 226 00:09:31,880 --> 00:09:33,780 ju e dini që ju thjesht nuk mund ta kuptoj një gjë - 227 00:09:33,780 --> 00:09:36,830 kalojë / dështojnë me të vërtetë merr off buzë e një klase si kjo, ku ju mund të lloj 228 00:09:36,830 --> 00:09:39,150 për fat të mirë i thonë në rregull, unë e di se nuk është e përsosur. 229 00:09:39,150 --> 00:09:40,470 Por kam punuar ass tim jashtë për këtë. 230 00:09:40,470 --> 00:09:42,410 Unë jam goxha i kënaqur me të, ku ai përfundoi. 231 00:09:42,410 --> 00:09:44,780 Dhe se do të përmbushë pritjet për kalojë / dështojnë. 232 00:09:44,780 --> 00:09:46,850 Pra, do të mbani në mend. 233 00:09:46,850 --> 00:09:47,140 >> Dakord. 234 00:09:47,140 --> 00:09:50,980 Pra, ata prej jush që kanë luftuar për të përdorur në Universitetin e Harvardit Wi-Fi e di 235 00:09:50,980 --> 00:09:54,780 se ka një SSID CS50, një Wi-Fi lidhje lundrues rreth që ju të 236 00:09:54,780 --> 00:09:56,520 mund të ketë fat më të mirë për të. 237 00:09:56,520 --> 00:09:59,430 Kjo është një ironi pak se fjalëkalimi për këtë - në qoftë se ju do të donte të provoni 238 00:09:59,430 --> 00:10:03,080 lidh me këtë për shpejtësi më të mirë dhe le të na tregoni, nëse nuk është më mirë - 239 00:10:03,080 --> 00:10:09,240 është një, dy, tre, katër, pesë, të gjithë rrugën deri në tetë, sepse tetë është 240 00:10:09,240 --> 00:10:10,270 më e sigurt se pesë. 241 00:10:10,270 --> 00:10:15,520 Pra, nëse keni nevojë për fjalëkalimin e Wi-Fi, të lidheni me valë CS50 këtu. 242 00:10:15,520 --> 00:10:16,950 Një, dy, tre, katër, pesë, gjashtë, shtatë, tetë. 243 00:10:16,950 --> 00:10:20,440 Dhe pas më CS50 Diskutoni në qoftë se ju ende keni çështje të përhershme të lidhjes, 244 00:10:20,440 --> 00:10:24,880 dhe ne do të le pushtetin që të dinë për këtë hapësirë. 245 00:10:24,880 --> 00:10:25,180 >> Dakord. 246 00:10:25,180 --> 00:10:30,350 Pra, një ngacmues të shpejtë, sidomos për ato prej jush që janë djem ose vajza tifoz 247 00:10:30,350 --> 00:10:31,900 të gjitha gjërat Apple. 248 00:10:31,900 --> 00:10:37,566 Ajo që unë nxorën nga disa vite mbrapa ishte kjo fotografi ketu, ilock.c, vetëm për 249 00:10:37,566 --> 00:10:40,930 lloj bëjë më konkret dhe më komplekse disa nga C më themelore 250 00:10:40,930 --> 00:10:42,350 Programet ne kemi qenë të shkruar. 251 00:10:42,350 --> 00:10:44,360 Kështu që unë u hap këtë skedar, ilock.c. 252 00:10:44,360 --> 00:10:46,830 Është në dispozicion në faqen e leksioneve për sot. 253 00:10:46,830 --> 00:10:49,470 Në anën e majtë, ju shihni një listë të gjatë të funksioneve. 254 00:10:49,470 --> 00:10:51,860 Pra, shoku i cili ka shkruar këtë shkroi një shumë të funksioneve, 255 00:10:51,860 --> 00:10:53,290 më shumë se vetëm kryesor. 256 00:10:53,290 --> 00:10:55,490 Ai përdori një bandë e tërë e bibliotekave këtu. 257 00:10:55,490 --> 00:11:00,450 Dhe në qoftë se ne fillojmë Scroll anë, atë që kjo është në të vërtetë është shumë e 258 00:11:00,450 --> 00:11:04,670 Së pari, unë besoj, plas për iPhone origjinal. 259 00:11:04,670 --> 00:11:08,000 Kur ju të kërkuar për të jailbreak iPhone origjinal, që do të thotë untether 260 00:11:08,000 --> 00:11:11,800 atë nga AT & T dhe në fakt të instaluar softuer të veçantë mbi të dhe të bëjë gjëra 261 00:11:11,800 --> 00:11:13,510 se Apple nuk dua që njerëzit të bëjnë - 262 00:11:13,510 --> 00:11:17,020 edhe, dikush mori kohë të kuptoj se saktësisht se si ata mund të shfrytëzojnë 263 00:11:17,020 --> 00:11:20,880 software metat, gabimet, bugs, në softuer Apple. 264 00:11:20,880 --> 00:11:22,650 Dhe kështu lindi ilock.c. 265 00:11:22,650 --> 00:11:26,670 Se në qoftë se ju përpiluar atë në një kompjuter dhe instaluar atë mbi një iPhone që 266 00:11:26,670 --> 00:11:29,810 ishte i lidhur me kompjuterin tuaj nëpërmjet, të themi, një kabëll USB, kjo do t'ju japë 267 00:11:29,810 --> 00:11:33,360 privilegje administrative ose rrënjë në iPhone tuaj dhe të ju lejojnë të bëjë shumë e shumë 268 00:11:33,360 --> 00:11:34,170 çdo gjë që ju dëshironi. 269 00:11:34,170 --> 00:11:36,740 >> Dhe kështu ka qenë kjo mace interesante dhe lojë miun mes Apple dhe 270 00:11:36,740 --> 00:11:39,920 pjesa tjetër e botës, në veçanti, si ata, si shumë kompani, do të përpiqen për të kyçur 271 00:11:39,920 --> 00:11:43,220 stuff e tyre poshtë në mënyrë që ju mund ta bëni vetëm me atë që ata duan. 272 00:11:43,220 --> 00:11:46,620 Por në sajë të njerëzve si kjo dhe të kuptuarit e tyre të nivelit të ulët 273 00:11:46,620 --> 00:11:50,580 detaje dhe, në këtë rast, programimit C dhe një shumë të njohura konstruktet 274 00:11:50,580 --> 00:11:54,630 që ne kemi filluar të luajë me të, ju jeni në gjendje me të vërtetë të levave 275 00:11:54,630 --> 00:11:59,050 hardware në një mënyrë që ju të shihni të arsyeshme dhe jo domosdoshmërisht një entitet të korporatave. 276 00:11:59,050 --> 00:12:01,360 Kështu për shembull, unë nuk kam asnjë ide se çfarë e gjithë kjo është bërë. 277 00:12:01,360 --> 00:12:03,220 Por GetVersion tingëllon mjaft i thjeshtë. 278 00:12:03,220 --> 00:12:05,480 Dhe kjo duket si kjo është një funksion që ky person ka shkruajtur. 279 00:12:05,480 --> 00:12:09,240 Të marrë disa lloj numër i plotë si një argument, nuk ka kthim asgjë, por 280 00:12:09,240 --> 00:12:13,080 duket lak me një për lak këtu dhe nëse një kusht, nëse gjendja, 281 00:12:13,080 --> 00:12:15,620 thyer, dhe disi të bëjë me numra version. 282 00:12:15,620 --> 00:12:16,700 Nëse ne lëvizni poshtë - 283 00:12:16,700 --> 00:12:19,570 edhe pse shumë nga këto fjalë kyçe do të jetë e re, dhe ka një 284 00:12:19,570 --> 00:12:22,590 tërësi shumë të funksioneve në këtu ne kurrë nuk kam parë dhe nuk mund të shihni ndonjëherë mbi 285 00:12:22,590 --> 00:12:23,830 kurs i semestrit - 286 00:12:23,830 --> 00:12:27,150 në fund të ditës, ajo ndjek të njëjtat rregulla dhe logjikën që ne kemi qenë 287 00:12:27,150 --> 00:12:28,760 duke luajtur me deri tani. 288 00:12:28,760 --> 00:12:34,220 Pra, kjo është shumë e vjetër për të goditur 3s tuaj iPhone 4S ose ose së shpejti 5s, këto ditë, 289 00:12:34,220 --> 00:12:37,320 por e di se kjo është e gjitha shumë që rrjedhin nga kjo botë që ne kemi 290 00:12:37,320 --> 00:12:38,430 fetar në. 291 00:12:38,430 --> 00:12:41,900 >> Pra, le të marrin një vështrim në një shembull pak më të thjeshtë. 292 00:12:41,900 --> 00:12:46,100 Ky i fundit, vetëm për të marrë ngrohur me disa sintaksë dhe gjithashtu disa të dhëna të tjera 293 00:12:46,100 --> 00:12:49,240 lloji që ne kemi biseduar rreth, por nuk e kam parë të vërtetë në C. Pra, kjo është një 294 00:12:49,240 --> 00:12:51,680 file i quajtur positive1.c. 295 00:12:51,680 --> 00:12:55,120 Dhe sipas komenteve në krye, kjo vetëm kërkon që një përdorues të sigurojë një 296 00:12:55,120 --> 00:12:55,960 numër pozitiv. 297 00:12:55,960 --> 00:12:59,530 Pra, kjo është një shembull i një lak për ta bërë, ndërsa, e cila është e bukur për user-interaktive 298 00:12:59,530 --> 00:13:01,980 Programet ku ju duhet të tregoni përdorues për të bërë diçka. 299 00:13:01,980 --> 00:13:05,190 Dhe në qoftë se ata nuk bashkëpunojnë, ju bërtas me ta ose refuzojë kontributin e tyre. 300 00:13:05,190 --> 00:13:11,610 Rasti në pikën, unë jam duke shkuar për të bërë linjat e 19 me anë të 24 aq kohë sa përdoruesi ka 301 00:13:11,610 --> 00:13:14,310 nuk është dhënë mua një numër pozitiv. 302 00:13:14,310 --> 00:13:20,400 Tani ky detaj këtu on line 18, pse nuk kam deklaruar n mbi këtë tërësi 303 00:13:20,400 --> 00:13:24,490 konstrukt looping në krahasim me të drejtë tjetër të linjës 22, ku unë 304 00:13:24,490 --> 00:13:26,880 të vërtetë kujdeset për të marrë n? 305 00:13:26,880 --> 00:13:27,330 Po? 306 00:13:27,330 --> 00:13:27,780 [E padëgjueshme] 307 00:13:27,780 --> 00:13:29,040 >> DAVID J. Malan: Yeah, kështu që kjo çështje të fushës. 308 00:13:29,040 --> 00:13:30,850 Dhe në afat laik, çfarë do qëllimi i referohen? 309 00:13:34,690 --> 00:13:36,610 Po? 310 00:13:36,610 --> 00:13:37,860 [E padëgjueshme] 311 00:13:40,040 --> 00:13:41,105 DAVID J. Malan: A mund të flisni pak louder? 312 00:13:41,105 --> 00:13:43,450 Kryetari 1: Ku ju mund të hyni në një variabël të veçantë. 313 00:13:43,450 --> 00:13:45,170 DAVID J. Malan: Perfect. 314 00:13:45,170 --> 00:13:47,360 Ku ju mund të hyni në një variabël të veçantë. 315 00:13:47,360 --> 00:13:50,400 Dhe në përgjithësi, sundimi i gishtit deri tani ka qenë se qëllimi i disa 316 00:13:50,400 --> 00:13:55,860 variabël është përcaktuar nga formatimin e teksteve kaçurrel më të fundit që e keni parë. 317 00:13:55,860 --> 00:14:02,010 Dhe kështu në këtë rast, në qoftë se kam bërë gabim të deklarimit n on line 22, 318 00:14:02,010 --> 00:14:03,010 se linja do të punojë. 319 00:14:03,010 --> 00:14:10,990 Unë do të merrni një int, dhe unë do të vënë atë në atë n ndryshueshme në linjë 22. 320 00:14:10,990 --> 00:14:16,900 Por cila linjë e kodit tani do të ketë asnjë ide se çfarë unë jam duke folur për? 321 00:14:16,900 --> 00:14:22,650 Pra 25, dhe kjo rezulton 24, si edhe, për shkak se në këtë rast, ai bie jashtë 322 00:14:22,650 --> 00:14:23,610 e braces kaçurrel. 323 00:14:23,610 --> 00:14:27,280 Pra, vetëm pak një njeri i bezdisur, por zgjidhen shumë lehtë nga thjesht deklaruar 324 00:14:27,280 --> 00:14:30,140 jashtë ndryshueshme e funksionit vetë. 325 00:14:30,140 --> 00:14:32,600 >> Tani ne do të shohim më vonë sot, ju mund të shkoni një hap më tej. 326 00:14:32,600 --> 00:14:34,860 Dhe ju mund të merrni edhe pak dembel - 327 00:14:34,860 --> 00:14:37,320 dhe kjo nuk është për të rekomanduar, në të përgjithshme - 328 00:14:37,320 --> 00:14:42,260 por ju mund të merrni edhe dembel dhe të vënë një ndryshore globale, kështu që të flasin, jo 329 00:14:42,260 --> 00:14:46,670 brenda një funksion, jo brenda një lak, por në dosjen e vetë, jashtë 330 00:14:46,670 --> 00:14:49,600 nga të gjitha funksionet që ju keni shkruar, siç kam bërë këtu në linjë 15. 331 00:14:49,600 --> 00:14:51,160 Por kjo është në përgjithësi frowned. 332 00:14:51,160 --> 00:14:55,680 Por të realizuar këtë është një zgjidhje ndonjëherë për probleme të tjera, si ne do të 333 00:14:55,680 --> 00:14:56,620 përfundimisht të parë. 334 00:14:56,620 --> 00:14:58,130 Kështu që tani për tani, ne do të lënë atë si kjo. 335 00:14:58,130 --> 00:15:01,030 Por le të shohim nëse ne mund të ndryshonin këtë vetëm për të filluar shprehur veten a 336 00:15:01,030 --> 00:15:01,990 pak ndryshe. 337 00:15:01,990 --> 00:15:05,330 >> Pra ky program, vetëm të jetë i qartë, është positive1. 338 00:15:05,330 --> 00:15:11,810 Më lejoni të shkojnë përpara këtu dhe në dritaren time terminalit të bëjë positive1, Enter. 339 00:15:11,810 --> 00:15:12,740 Harton, në rregull. 340 00:15:12,740 --> 00:15:14,910 Unë jam duke shkuar për të drejtuar positive1, hit Enter. 341 00:15:14,910 --> 00:15:16,820 Unë të kërkojë që ju të jepni një numër i plotë pozitiv. 342 00:15:16,820 --> 00:15:18,260 Unë do të them -1. 343 00:15:18,260 --> 00:15:18,910 Që nuk punojnë. 344 00:15:18,910 --> 00:15:22,150 0, 99, që duket për të punuar. 345 00:15:22,150 --> 00:15:23,570 Ndoshta jo më testi rigoroz. 346 00:15:23,570 --> 00:15:26,480 Por të paktën kjo është një kontroll mendje e shëndoshë e bukur se ne jemi në rrugën e duhur. 347 00:15:26,480 --> 00:15:29,240 Kështu që tani më lejoni të shkoj përpara dhe të hapur versionin e dytë të kësaj. 348 00:15:29,240 --> 00:15:32,500 Dhe çfarë është e ndryshme tashmë? 349 00:15:32,500 --> 00:15:35,140 Ajo zbaton të njëjtën gjë. 350 00:15:35,140 --> 00:15:40,660 Por çfarë është hedhur jashtë si kohë të ndryshme në mënyrë të qartë këtë? 351 00:15:40,660 --> 00:15:42,560 Yeah, kështu që kjo bool në të gjelbër. 352 00:15:42,560 --> 00:15:45,980 Gedit ka theksuar në këtë keyword gjelbër njohur si bool, 353 00:15:45,980 --> 00:15:47,000 cila është një lloj dhënave. 354 00:15:47,000 --> 00:15:51,080 Ajo nuk vijnë të ndërtuar në të gjitha versionet e C. Ju duhet të përfshijë një 355 00:15:51,080 --> 00:15:52,010 Biblioteka specifike. 356 00:15:52,010 --> 00:15:54,770 Në rastin tonë, unë përfshirë bibliotekën CS50 në mënyrë që ne 357 00:15:54,770 --> 00:15:56,460 të kenë qasje në bool. 358 00:15:56,460 --> 00:15:59,810 Por në linjë 18, ne duket të ketë një vlerë Boolean këtu quhet mirënjohës. 359 00:15:59,810 --> 00:16:01,040 Kështu që unë mund të ketë e quajti këtë gjë. 360 00:16:01,040 --> 00:16:04,500 Por unë e quajti atë mirënjohës vetëm për të përcjellë disa lloj kuptim semantik. 361 00:16:04,500 --> 00:16:07,930 Pra, fillimisht on line 18, unë nuk jam mirënjohës, sepse me sa duket 362 00:16:07,930 --> 00:16:12,150 Vlera Boolean mirënjohës është initialized të rreme në linjë 18. 363 00:16:12,150 --> 00:16:16,890 Dhe pastaj ajo duket ajo që unë kam bërë këtu në linjat e 21 me anë të 23 është Unë kam vetëm 364 00:16:16,890 --> 00:16:18,610 lloj i rishkruar logjikën time. 365 00:16:18,610 --> 00:16:21,020 Kështu që nuk ka funksionalisht të ndryshme. 366 00:16:21,020 --> 00:16:26,940 Por në linjë 22 tani, unë kontrolloni nëse int përdoruesi ka dhënë është më i madh se 367 00:16:26,940 --> 00:16:31,120 0, atëherë unë thjesht të ndryshojë vlerën e mirënjohës për të vërteta. 368 00:16:31,120 --> 00:16:32,290 Dhe pse ta bëj këtë? 369 00:16:32,290 --> 00:16:35,600 Sepse në linjë 25, me sa duket, unë jam duke shkuar për të kontrolluar një kusht. 370 00:16:35,600 --> 00:16:39,380 Bëni këtë lak, ndërsa mirënjohës është e rreme. 371 00:16:39,380 --> 00:16:43,610 >> Kështu kam propozojë kjo si një alternativë ndaj version njëra sepse ajo është të paktën një 372 00:16:43,610 --> 00:16:45,130 pak më shumë intuitive, ndoshta. 373 00:16:45,130 --> 00:16:46,900 Kjo është pak më shumë bazuar në gjuhën angleze. 374 00:16:46,900 --> 00:16:51,710 Pra, nuk e mëposhtme, ndërsa ju nuk jeni mirënjohës ose mirënjohës, ndërsa është e rreme. 375 00:16:51,710 --> 00:16:55,890 Dhe këtë herë, gjithashtu, unë me sa duket nuk e kujdesit për të kujtuar se çfarë përdoruesit shtypur 376 00:16:55,890 --> 00:16:57,730 sepse në njoftim nuk ka n ndryshueshme. 377 00:16:57,730 --> 00:16:58,650 Pra në fakt, unë - 378 00:16:58,650 --> 00:17:00,080 një gënjeshtër e vogël të bardhë atje. 379 00:17:00,080 --> 00:17:02,770 Funksionalisht, programi është pak më ndryshe sapo të marrë në fund të 380 00:17:02,770 --> 00:17:04,819 kjo sepse unë nuk jam duke kujtuar se çfarë është n. 381 00:17:04,819 --> 00:17:09,579 Por unë të kërkuar për të demonstruar edhe këtu se edhe pse ne kemi parë GetInt dhe 382 00:17:09,579 --> 00:17:13,920 GetString duke u përdorur në anën e djathtë të një shenjë të barabartë deri tani në mënyrë që 383 00:17:13,920 --> 00:17:17,160 kujtojmë vlerën, teknikisht, që nuk është e domosdoshme. 384 00:17:17,160 --> 00:17:20,950 Nëse për çfarëdo arsye ju thjesht nuk bëni kujdes për të ruajtur vlerën, ju vetëm doni 385 00:17:20,950 --> 00:17:25,710 të kontrolloni vlerën, njoftim se ne thjesht mund të shkruaj këtë si GetInt hapur 386 00:17:25,710 --> 00:17:27,000 prindërve, prindërve afër. 387 00:17:27,000 --> 00:17:30,460 Se funksioni do të kthehen një vlerë, si ne kemi qenë të thënë. 388 00:17:30,460 --> 00:17:32,010 Kjo do të ju jap përsëri një int. 389 00:17:32,010 --> 00:17:36,450 Dhe kështu që nëse ju mendoni se mendërisht për të ndodhur kjo, kur unë lloji në 99, GetInt 390 00:17:36,450 --> 00:17:38,160 kthen numrin 99. 391 00:17:38,160 --> 00:17:41,330 Dhe kështu konceptualisht, është sikur kodi im ishte në fakt këtë. 392 00:17:41,330 --> 00:17:45,880 99 Pra, nëse është me të vërtetë e madhe se 0, atëhere mirënjohës bëhet e vërtetë. 393 00:17:45,880 --> 00:17:50,420 Pastaj Shkarko 25 realizon ooh, ne jemi duke bërë, sepse unë jam tani mirënjohës. 394 00:17:50,420 --> 00:17:54,590 Dhe në linjë 26, ne thjesht themi, falenderon për numër i plotë pozitiv, çfarëdo qoftë ajo 395 00:17:54,590 --> 00:17:55,710 ndodhur në jetë. 396 00:17:55,710 --> 00:17:58,900 >> Tani le të bëjmë sheqer lehtë sintaktik këtu, në mënyrë që të flasin. 397 00:17:58,900 --> 00:18:02,990 Le të shohim nëse ne mund të pastër deri këtë linjë 25 me këtë grindje të tretë dhe përfundimtare 398 00:18:02,990 --> 00:18:04,640 në positive3. 399 00:18:04,640 --> 00:18:08,250 Pra njoftim i vetmi ndryshim tani është ajo linjë e kodit? 400 00:18:11,930 --> 00:18:13,260 Yeah, kështu që 25. 401 00:18:13,260 --> 00:18:15,520 Dhe ne nuk e kemi parë këtë mashtrim të vërtetë vetëm ende. 402 00:18:15,520 --> 00:18:19,510 Por ne nuk shoh pikë thirrje të hënën, i cili përcakton çfarë? 403 00:18:19,510 --> 00:18:20,970 Kështu jo, ose mohim. 404 00:18:20,970 --> 00:18:23,460 Pra, të marrë një vlerë Boolean dhe rrokullisje vlerën e saj. 405 00:18:23,460 --> 00:18:24,390 Vërtetë bëhet rreme. 406 00:18:24,390 --> 00:18:25,500 False bëhet e vërtetë. 407 00:18:25,500 --> 00:18:28,910 Pra, kjo, unë do të propozojë, është edhe një pak më shumë intuitiv për një mënyrë për të 408 00:18:28,910 --> 00:18:32,200 shkruar kodin sepse unë ende nisja mirënjohës për të rreme. 409 00:18:32,200 --> 00:18:33,530 Unë ende nuk e mëposhtme. 410 00:18:33,530 --> 00:18:35,700 I vendosur për të vërtetë mirënjohës kur të vjen koha. 411 00:18:35,700 --> 00:18:40,690 Por tani ju mund të vërtetë vetëm përkthejnë këtë kod lënë me gojë në të djathtë, 412 00:18:40,690 --> 00:18:42,550 ndërsa nuk mirënjohës. 413 00:18:42,550 --> 00:18:46,170 Sepse zhurmë, ose pikë thirrje, tregon nocionin e jo kështu ndërsa 414 00:18:46,170 --> 00:18:47,010 jo mirënjohës. 415 00:18:47,010 --> 00:18:49,740 >> Pra, përsëri, ne nuk kemi futur ndonjë koncepteve të reja në vetvete. 416 00:18:49,740 --> 00:18:53,230 Ne kemi biseduar për Booleans mbrapa, kur ne kemi luajtur me Scratch. 417 00:18:53,230 --> 00:18:55,690 Por tani ne mund të kuptojnë vetëm të filloni të shkruani kodin tonë në 418 00:18:55,690 --> 00:18:56,550 mënyra të ndryshme. 419 00:18:56,550 --> 00:19:00,010 Pra, veçanërisht në pset1, nëse ju jeni lloj i luftuar për të kuptoj rrugën 420 00:19:00,010 --> 00:19:03,400 shkruani disa program, shanset janë që ju jeni me fat sepse nuk do të ketë ndonjë 421 00:19:03,400 --> 00:19:05,780 Numri i zgjidhjeve që ju mund të ndodhin mbi të. 422 00:19:05,780 --> 00:19:09,850 Për shembull, kjo është vetëm tre për edhe më të thjeshtë të programeve. 423 00:19:09,850 --> 00:19:10,180 Dakord. 424 00:19:10,180 --> 00:19:13,860 Dhe tani kujtojnë të hënën, ne e kemi lënë në këtë shënim me vlerat e kthimit. 425 00:19:13,860 --> 00:19:18,280 Pra, për herë të parë, ne shkroi një program që nuk ka vetëm kryesor, 426 00:19:18,280 --> 00:19:22,240 ajo gjithashtu ka vet funksionin e saj porosi që kam shkruar këtu. 427 00:19:22,240 --> 00:19:26,640 Pra, në përputhje përmes 31 34, unë kam zbatuar një funksion kubike. 428 00:19:26,640 --> 00:19:27,800 Kjo nuk është komplekse. 429 00:19:27,800 --> 00:19:29,830 Është vetëm një herë një herë, në këtë rast. 430 00:19:29,830 --> 00:19:34,920 Por ajo është rëndësishme rreth saj është se jam marrë input në formën e një dhe 431 00:19:34,920 --> 00:19:38,910 Po kthyer dalje në formën e një herë një herë a. 432 00:19:38,910 --> 00:19:43,940 >> Kështu që tani unë kam mundësinë, ashtu si kam përdorur për të me printf vetëm, për të thirrur 433 00:19:43,940 --> 00:19:47,120 ky funksion duke e quajtur funksion kubike. 434 00:19:47,120 --> 00:19:49,470 Dhe funksioni kubike merr disa të dhëna. 435 00:19:49,470 --> 00:19:52,030 Dhe funksioni kubike kthen disa dalje. 436 00:19:52,030 --> 00:19:56,660 Dhe kështu nga ana tjetër, printf vetëm e bëri diçka. 437 00:19:56,660 --> 00:19:59,490 Ajo nuk u kthye asgjë që kujdesej për ne - edhe pse, si një 438 00:19:59,490 --> 00:20:00,820 mënjanë, ajo nuk kthehet një vlerë. 439 00:20:00,820 --> 00:20:02,650 Ju vetëm në përgjithësi të injorojë atë. 440 00:20:02,650 --> 00:20:04,000 Printf vetëm e bëri diçka. 441 00:20:04,000 --> 00:20:06,220 Ajo kishte një efekt anësor i shtypjes në ekran. 442 00:20:06,220 --> 00:20:09,480 Nga ana tjetër këtu, ne kemi funksionin kubike, të cilat 443 00:20:09,480 --> 00:20:11,400 në fakt kthehet diçka. 444 00:20:11,400 --> 00:20:12,960 >> Pra, kjo është në përgjithësi - 445 00:20:12,960 --> 00:20:15,260 për ata të njohur me këtë, kjo është një ide mjaft të thjeshtë. 446 00:20:15,260 --> 00:20:18,460 Por për ata më pak të njohur me këtë idenë e kalimit në inpute dhe për të gjetur 447 00:20:18,460 --> 00:20:21,700 Rezultatet prapa, le të përpiqemi vetëm e thjeshtë diçka super. 448 00:20:21,700 --> 00:20:25,180 Është dikush të rehatshme vijnë në skenë shkurtimisht? 449 00:20:25,180 --> 00:20:27,460 Ju duhet të jenë të kënaqur me një aparat fotografik mbi ju, po ashtu. 450 00:20:27,460 --> 00:20:27,640 Po. 451 00:20:27,640 --> 00:20:28,610 Mirë, çfarë është emri juaj? 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 Të gjithë të drejtë, Ken. 455 00:20:29,810 --> 00:20:31,060 Come on up. 456 00:20:31,060 --> 00:20:34,660 Pra, Ken do të jetë një funksion i terezi këtu. 457 00:20:34,660 --> 00:20:35,760 Dhe le të shkojnë përpara dhe të bëjë këtë. 458 00:20:35,760 --> 00:20:38,790 Le të marrë një dashuroj pak. 459 00:20:38,790 --> 00:20:39,770 Gëzohem që u njohëm. 460 00:20:39,770 --> 00:20:41,010 Mirë se vini në fazën e qendrës. 461 00:20:41,010 --> 00:20:41,980 Dakord. 462 00:20:41,980 --> 00:20:45,590 Le goditi këtë buton këtu. 463 00:20:45,590 --> 00:20:46,420 Dakord. 464 00:20:46,420 --> 00:20:49,490 Kështu që këtu ju keni një dërrasë e zezë moderne. 465 00:20:49,490 --> 00:20:53,050 Dhe atë që unë jam, është funksioni kryesor, për shembull. 466 00:20:53,050 --> 00:20:55,990 Dhe unë nuk kanë një iPad në dorë. 467 00:20:55,990 --> 00:20:59,000 Unë vërtetë nuk e mbani mend se si për të - mirë, në fakt, nuk mund të them se. 468 00:20:59,000 --> 00:21:02,200 Unë vërtetë nuk kanë dorëshkrimit të mirë. 469 00:21:02,200 --> 00:21:05,260 Dhe kështu pra, unë dua që ju të shtypura në ekran diçka për mua. 470 00:21:05,260 --> 00:21:07,470 >> Kështu që unë jam duke Programi kryesor. 471 00:21:07,470 --> 00:21:15,060 Dhe unë jam i do të ketë të ju them këtë duke e shkruar atë në zeroja tim pule dhe 472 00:21:15,060 --> 00:21:16,600 pastaj kalon ju një kontribut. 473 00:21:16,600 --> 00:21:20,000 Pra, si pa kuptim pse ky ushtrim është nocioni i funksioneve dhe e quan një 474 00:21:20,000 --> 00:21:22,260 funksion dhe duke kthyer një funksion të vërtetë boils poshtë për këtë. 475 00:21:22,260 --> 00:21:23,120 Unë jam kryesore. 476 00:21:23,120 --> 00:21:26,270 Unë kam shkruar vetëm printf ("diçka") në ekran. 477 00:21:26,270 --> 00:21:27,470 Unë jam running këtë program. 478 00:21:27,470 --> 00:21:30,900 Dhe sa më shpejt printf merr quajtur, ajo merr një argument - ose një parametër, 479 00:21:30,900 --> 00:21:31,660 ndonjëherë - 480 00:21:31,660 --> 00:21:32,780 mes kuotat e dyfishtë. 481 00:21:32,780 --> 00:21:33,960 Këtu është se argumenti. 482 00:21:33,960 --> 00:21:35,740 Unë jam duke kaluar atë për Ken. 483 00:21:35,740 --> 00:21:39,390 Tani ai është një kuti e zezë me shkrim disa numrin e viteve më parë se sa duket 484 00:21:39,390 --> 00:21:41,070 vetëm e di se si për të shtypur gjëra në ekran. 485 00:21:41,070 --> 00:21:42,320 >> Pra, ekzekutuar. 486 00:21:48,842 --> 00:21:49,900 Kjo nuk është e keqe. 487 00:21:49,900 --> 00:21:50,890 Pra, shumë i mirë. 488 00:21:50,890 --> 00:21:52,900 Deri tani Ken është bërë ekzekutimin. 489 00:21:52,900 --> 00:21:55,810 A ai duhet të japë asgjë prapa? 490 00:21:55,810 --> 00:21:57,240 Pra, jo se ne kemi parë deri tani. 491 00:21:57,240 --> 00:21:59,230 Përsëri, printf ka të vërtetë të kthejë një numër. 492 00:21:59,230 --> 00:22:01,640 Por ne jemi duke shkuar për të injorojë se për tani, sepse ne kurrë nuk e kam përdorur atë. 493 00:22:01,640 --> 00:22:03,400 Pra, kjo është ajo për Ken. 494 00:22:03,400 --> 00:22:06,650 Dhe kështu që tani kryesore kthehet për të ekzekutuar - 495 00:22:06,650 --> 00:22:09,630 kryesor merr kontrollin e programit përsëri, sepse këtë linjë të kodit, 496 00:22:09,630 --> 00:22:11,010 printf, është bërë ekzekutimin. 497 00:22:11,010 --> 00:22:13,890 Dhe ne do të shkojmë në lidhje me rrugën tonë ekzekuton çfarëdo linjat e tjera janë atje. 498 00:22:13,890 --> 00:22:14,130 >> Dakord. 499 00:22:14,130 --> 00:22:17,080 Pra, tani le të provojmë një shembull paksa të ndryshme. 500 00:22:17,080 --> 00:22:22,430 Dhe kjo kohë këtu, le të parë të qartë në ekran këtu. 501 00:22:22,430 --> 00:22:24,670 Dhe këtë herë, ne do të bëjmë funksionin cubing. 502 00:22:24,670 --> 00:22:27,350 Por këtë herë, unë pres një vlerë të prodhimit. 503 00:22:27,350 --> 00:22:28,630 Pra, le të shkojnë përpara dhe të bëjë këtë. 504 00:22:28,630 --> 00:22:35,680 Deri tani unë kam një linjë të kodit që thotë se x = kubike (x). 505 00:22:35,680 --> 00:22:36,930 Pra në fakt let's - 506 00:22:41,450 --> 00:22:43,940 linjë e kodit, risjell, duket si ky. 507 00:22:43,940 --> 00:22:45,960 x = kubike (x). 508 00:22:45,960 --> 00:22:48,100 Pra, si është kjo do të punojë? 509 00:22:48,100 --> 00:22:50,820 Pra, le të shkojnë përpara dhe do t'ju japë një ekran të bardhë përsëri. 510 00:22:50,820 --> 00:22:55,000 Dhe unë jam duke shkuar për të shkruar tani poshtë vlerën e x, e cila në këtë moment në 511 00:22:55,000 --> 00:23:01,080 Ora ndodh të jetë, le të themi, 2, për ta mbajtur atë të thjeshtë. 512 00:23:01,080 --> 00:23:04,890 Kështu që unë kam shkruar në një copë letër vlera e 2, 513 00:23:04,890 --> 00:23:06,100 cila është vlera e x im. 514 00:23:06,100 --> 00:23:08,250 Unë dore atë për Ken. 515 00:23:08,250 --> 00:23:09,200 KEN: Dhe unë vetëm shkruaj përgjigje? 516 00:23:09,200 --> 00:23:12,660 DAVID J. Malan: Po, le të vetëm të shkruar përgjigjen. 517 00:23:12,660 --> 00:23:13,030 Rregull. 518 00:23:13,030 --> 00:23:16,280 Dhe tani ai ka për të kthyer mua diçka. 519 00:23:16,280 --> 00:23:17,560 Pra - 520 00:23:17,560 --> 00:23:18,170 përsosur. 521 00:23:18,170 --> 00:23:18,840 Bukur Segue. 522 00:23:18,840 --> 00:23:21,970 >> Kështu që tani ai dorëzon mua mbrapa vlerën e 8, në këtë rast. 523 00:23:21,970 --> 00:23:23,220 Dhe çfarë të bëj me të? 524 00:23:23,220 --> 00:23:26,130 E pra, në fakt, le të shohim. 525 00:23:26,130 --> 00:23:26,640 Merrni këtë të drejtë. 526 00:23:26,640 --> 00:23:27,880 Çfarë jam unë do të bëj me të? 527 00:23:27,880 --> 00:23:31,900 Tani unë jam duke shkuar për të marrë këtë vlerë dhe në fakt ruajtur atë në ato 528 00:23:31,900 --> 00:23:33,400 bit njëjta në kujtesë. 529 00:23:33,400 --> 00:23:35,030 Por njoftim, unë jam natyrë e luftuar këtu. 530 00:23:35,030 --> 00:23:38,280 Unë jam pak i hutuar, sepse ku unë në fakt shkruani vlerën e x? 531 00:23:38,280 --> 00:23:41,840 Sepse ajo që unë kam bërë vetëm fizikisht është dora Ken një copë letër 532 00:23:41,840 --> 00:23:44,400 që kishte vlerën e 2, e cila ishte x. 533 00:23:44,400 --> 00:23:46,300 Dhe vërtet, kjo është pikërisht ajo që ndodh. 534 00:23:46,300 --> 00:23:50,100 Kështu del se kur ju telefononi një funksion, dhe ju të kalojë në një argument 535 00:23:50,100 --> 00:23:54,130 si "Hello World" ose ju të kalojë në një argument si 2, në përgjithësi, ju jeni 536 00:23:54,130 --> 00:23:56,720 kalon në një kopje të atij argumentit. 537 00:23:56,720 --> 00:24:01,020 Dhe kështu ashtu siç kam shkruar numrin 2 këtu dhe dorëzuar atë në Ken, që duhet të 538 00:24:01,020 --> 00:24:04,760 do të thotë se unë ende kanë një kopje të 2 vlerës diku. 539 00:24:04,760 --> 00:24:08,140 Sepse në të vërtetë, tani që unë kam marrë përsëri vlerën 8, kam nevojë për të shkuar mbrapa në 540 00:24:08,140 --> 00:24:12,010 RAM dhe në fakt shkruani 8 ku unë dikur kishte numrin 2. 541 00:24:12,010 --> 00:24:15,720 >> Kështu shikimi i mbani mend këtë nocion të kalimit në fjalë 542 00:24:15,720 --> 00:24:16,730 një kopje të vlerës. 543 00:24:16,730 --> 00:24:19,570 Ken bën gjë tij, duart më mbrapa diçka - në këtë rast, 544 00:24:19,570 --> 00:24:20,820 si një vlerë 8. 545 00:24:20,820 --> 00:24:22,660 Dhe atëherë unë duhet të bëjë diçka me këtë vlerë në qoftë se unë 546 00:24:22,660 --> 00:24:24,880 doni të mbani atë rreth. 547 00:24:24,880 --> 00:24:29,470 Pra, e gjithë kjo do të jetë mbi të gjitha shumë i njohur para se të gjatë. 548 00:24:29,470 --> 00:24:33,082 Thank you so much për këtë demo këtu, Ken. 549 00:24:33,082 --> 00:24:34,820 Dakord. 550 00:24:34,820 --> 00:24:36,720 Bërë shumë mirë. 551 00:24:36,720 --> 00:24:40,610 Pra, le të shohim se si në fund të fundit ka të bëjë me disa prej funksionit 552 00:24:40,610 --> 00:24:42,270 bërë thirrje që ne kemi qenë duke bërë këtu. 553 00:24:42,270 --> 00:24:47,610 Pra më lejoni të shkoj përpara dhe të na sjellë përsëri në shembullin cubing këtu. 554 00:24:47,610 --> 00:24:53,080 Dhe vini re se në qoftë se ne duam që në fakt të fillojë të marrë këtë më tej, ne jemi duke shkuar 555 00:24:53,080 --> 00:24:57,050 të duhet të jenë të ndërgjegjshëm për faktin se x numri që është duke u kaluar në 556 00:24:57,050 --> 00:25:01,390 këtu është ndryshe nga ajo që është në fakt duke u kaluar në funksion. 557 00:25:01,390 --> 00:25:03,940 Pra, përsëri, kjo kaloi nga një kopje do të bëhet mjaft 558 00:25:03,940 --> 00:25:05,620 i përshtatshëm në vetëm një moment. 559 00:25:05,620 --> 00:25:09,320 >> Pra, le të marrin një vështrim në diçka që nuk ka fare të drejtë të punojnë ende. 560 00:25:09,320 --> 00:25:11,790 Unë jam duke shkuar për të shkuar përpara dhe për të hapur një shembull të tretë buggy, e cila 561 00:25:11,790 --> 00:25:13,560 është me të meta nga natyra. 562 00:25:13,560 --> 00:25:18,070 Dhe ajo që quhet buggy3, dhe zbaton një funksion shkëmbejnë. 563 00:25:18,070 --> 00:25:23,500 Pra, këtu kemi një funksion kryesor që ka x dhe y initialized arbitrare të 564 00:25:23,500 --> 00:25:24,720 1 dhe 2, përkatësisht. 565 00:25:24,720 --> 00:25:27,590 Ne mund të përdorim GetInt, por ne vetëm duhet një ushtrim të thjeshtë. 566 00:25:27,590 --> 00:25:29,680 Pra, është e vështirë-koduar si 1 dhe 2. 567 00:25:29,680 --> 00:25:35,330 Në linjat 21 dhe 22, ne duket të shtypura nga X dhe Y, një për çdo rresht. 568 00:25:35,330 --> 00:25:39,620 Pastaj, on line 23, unë jam pretendojnë shkëmbejnë këto vlera, dot, dot, dot. 569 00:25:39,620 --> 00:25:43,030 I duket të thërrasë një funksion në përputhje quajtur 24 swap 570 00:25:43,030 --> 00:25:44,000 që merr dy argumente. 571 00:25:44,000 --> 00:25:46,430 Është krejtësisht legit për funksionet për të marrë dy argumente. 572 00:25:46,430 --> 00:25:48,220 Ne kemi parë printf bëjmë atë tashmë. 573 00:25:48,220 --> 00:25:50,370 Pra, me sa duket swap merr x dhe y. 574 00:25:50,370 --> 00:25:53,010 Dhe si emrin e saj sugjeron se, unë do të shpresoj se kjo do të 575 00:25:53,010 --> 00:25:54,320 shkëmbim këto dy vlera. 576 00:25:54,320 --> 00:25:57,560 Pra, atëherë unë pretendojnë on line 25, swapped. 577 00:25:57,560 --> 00:26:01,570 Dhe unë ribotim x dhe y nën supozimin se 578 00:26:01,570 --> 00:26:02,830 ata kanë qenë me të vërtetë swapped. 579 00:26:02,830 --> 00:26:04,370 Por në qoftë se unë në fakt të drejtuar këtë program - 580 00:26:04,370 --> 00:26:06,060 më lejoni të hapur një dritare terminali. 581 00:26:06,060 --> 00:26:07,750 Më lejoni të bëjë buggy3. 582 00:26:07,750 --> 00:26:09,970 Si emri sugjeron, kjo nuk do të përfundojë mirë. 583 00:26:09,970 --> 00:26:14,690 Sepse kur kam hit Enter, vini re se x është 1. 584 00:26:14,690 --> 00:26:15,720 y është 2. 585 00:26:15,720 --> 00:26:19,160 Dhe ende në fund të programit, ata janë ende, në fakt, të njëjtën gjë. 586 00:26:19,160 --> 00:26:22,760 >> Pra, bazuar në demonstratën vetëm tani me Ken, çfarë po ndodh në të vërtetë? 587 00:26:22,760 --> 00:26:24,660 E pra, le të zhytem në këtë funksion swap. 588 00:26:24,660 --> 00:26:25,800 Kjo është super të shkurtër. 589 00:26:25,800 --> 00:26:28,020 Është vetëm disa rreshta të kodit të gjatë. 590 00:26:28,020 --> 00:26:32,810 Por çfarë është problemi themelor i bazuar në histori të thjeshtë i tha 591 00:26:32,810 --> 00:26:34,270 deri këtu me Ken? 592 00:26:34,270 --> 00:26:36,115 Pse është swap thyer? 593 00:26:36,115 --> 00:26:37,365 [E padëgjueshme] 594 00:26:39,840 --> 00:26:40,460 Saktësisht. 595 00:26:40,460 --> 00:26:43,610 Pra, ne jemi ruajtjen në një kopje, jo variable vetë. 596 00:26:43,610 --> 00:26:46,810 Me fjalë të tjera, duket swap merr dy argumente, një Int. 597 00:26:46,810 --> 00:26:49,370 Dhe ajo që quhet në mënyrë arbitrare a dhe b. 598 00:26:49,370 --> 00:26:54,430 Dhe deri këtu, unë kam kaluar në x dhe y, të cilat janë respektivisht 1 dhe 2. 599 00:26:54,430 --> 00:26:56,580 Por unë nuk jam vërtetë kalon në x. 600 00:26:56,580 --> 00:26:58,410 Unë nuk jam vërtetë kalon në y. 601 00:26:58,410 --> 00:27:01,230 Unë jam duke kaluar një kopje e X dhe një kopje të y. 602 00:27:01,230 --> 00:27:05,180 Është si pothuajse sikur ju kopjohet dhe të ngjit në shkëmbim të vlerave që 603 00:27:05,180 --> 00:27:07,440 ju dëshironi që ajo të vërtetë të manipuluar. 604 00:27:07,440 --> 00:27:11,970 Pra, në qoftë se është rasti, kur unë, programi, të fillojë ekzekutimin e 605 00:27:11,970 --> 00:27:14,140 Shkarko 35, pastaj 36 - 606 00:27:14,140 --> 00:27:17,740 kur të shkoj në linjë 37, në këtë pikë, në histori, ajo që është vlera e një? 607 00:27:20,740 --> 00:27:24,850 Në këtë moment në histori, line 37, çfarë është vlera e një në këtë pikë? 608 00:27:24,850 --> 00:27:25,980 Kështu që ajo duhet të jetë vetëm 1. 609 00:27:25,980 --> 00:27:26,170 Drejtë? 610 00:27:26,170 --> 00:27:29,100 Sepse x u miratua në si argument i parë. 611 00:27:29,100 --> 00:27:33,150 Dhe kjo funksion vetëm në mënyrë arbitrare është duke bërë thirrje argumentin e tij të parë, një. 612 00:27:33,150 --> 00:27:35,130 Ngjashëm është y, argumenti i dytë. 613 00:27:35,130 --> 00:27:37,930 Dhe kjo është vetëm në mënyrë arbitrare duke e quajtur b dytë argument. 614 00:27:37,930 --> 00:27:40,510 >> Tani kjo dikotomi është në të vërtetë mjaft të shpjegohet thjesht. 615 00:27:40,510 --> 00:27:40,880 Mendoni se ajo. 616 00:27:40,880 --> 00:27:42,980 Asnjë prej nesh kanë takuar personin i cili shkroi printf. 617 00:27:42,980 --> 00:27:49,880 Pra, me siguri, ai ose ajo nuk ka asnjë ide se çfarë variablat tona 30 vjet më vonë po shkojnë 618 00:27:49,880 --> 00:27:50,710 për të quajtur. 619 00:27:50,710 --> 00:27:55,110 Pra, nuk duhet të jetë një dallim në mes të asaj që ju e quani variablave në 620 00:27:55,110 --> 00:27:59,960 Funksionet jeni të shkruar dhe atë që ju e quani variablave në funksionet e ju jeni 621 00:27:59,960 --> 00:28:01,770 telefonuar ose duke përdorur. 622 00:28:01,770 --> 00:28:05,120 Pra, me fjalë të tjera, unë kam shkruar variablave mia si x dhe y. 623 00:28:05,120 --> 00:28:08,060 Por në qoftë se dikush tjetër kishte shkruar funksionin swap, ai ose ajo sigurisht 624 00:28:08,060 --> 00:28:10,480 nuk do të dinë se çfarë variablat e mi do të quhet. 625 00:28:10,480 --> 00:28:13,850 Pra, të kuptojnë se kjo është arsyeja pse ju keni këtë dualitet e emrave. 626 00:28:13,850 --> 00:28:16,800 Teknikisht, unë mund ta bëjë këtë nga koincidenca. 627 00:28:16,800 --> 00:28:19,750 Por ata ende do të kalojë në aq kopje. 628 00:28:19,750 --> 00:28:22,940 Ajo do të jetë vetëm një rastësi e pastër estetikisht nëse atij personi i cili shkroi 629 00:28:22,940 --> 00:28:25,590 swap kishte përdorur emrat e njëjta. 630 00:28:25,590 --> 00:28:25,930 >> Dakord. 631 00:28:25,930 --> 00:28:29,010 Pra, në këtë pikë në histori, line 37, një është 1. 632 00:28:29,010 --> 00:28:30,410 b është 2. 633 00:28:30,410 --> 00:28:32,040 Dhe tani unë të vazhdojë të bie në ujdi tyre. 634 00:28:32,040 --> 00:28:34,730 Pra, para së gjithash, më lejoni të vërtetë e bëjnë këtë shumë më thjesht. 635 00:28:34,730 --> 00:28:36,500 Unë nuk e di se çfarë ato tre rreshta të kodit janë bërë. 636 00:28:36,500 --> 00:28:37,370 Më lejoni vetëm të bëjë këtë. 637 00:28:37,370 --> 00:28:38,850 b merr. 638 00:28:38,850 --> 00:28:40,170 a merr b. 639 00:28:40,170 --> 00:28:41,450 Bërë. 640 00:28:41,450 --> 00:28:43,540 Pse është kjo thyera, logjikisht? 641 00:28:46,980 --> 00:28:48,590 Kjo është lloj i gjë e intuitive, e drejtë? 642 00:28:48,590 --> 00:28:50,640 Pra, a bëhet b. 643 00:28:50,640 --> 00:28:52,450 Dhe b të bëhet një. 644 00:28:52,450 --> 00:28:55,410 Por problemi është se sa më shpejt të linjës 37 ekzekuton, çfarë është 645 00:28:55,410 --> 00:28:58,170 vlera e një dhe b? 646 00:28:58,170 --> 00:28:59,070 Njëjtë, 1. 647 00:28:59,070 --> 00:29:03,460 Sepse ju keni clobbered, në mënyrë që të flasin, ju keni ndryshuar b të barabartë a. 648 00:29:03,460 --> 00:29:06,000 Pra, një herë Shkarko 37 është ekzekutuar, që është e madhe. 649 00:29:06,000 --> 00:29:09,940 Ju tani keni dy kopje të numrit brenda 1 të këtij funksioni. 650 00:29:09,940 --> 00:29:14,720 Pra, atëherë kur ju thoni në linjë 38, një merr b, mirë, ju jeni lloj i dehur. 651 00:29:14,720 --> 00:29:17,370 Sepse ju jeni vetëm caktimin 1-1. 652 00:29:17,370 --> 00:29:20,400 Ju keni lloj i humbur vlerën që kujdesej për. 653 00:29:20,400 --> 00:29:22,910 >> Pra në versionin origjinal të kësaj, njoftim se çfarë kam bërë. 654 00:29:22,910 --> 00:29:26,620 Unë në vend që kishte një linjë të tretë të kodit që dukej si kjo. 655 00:29:26,620 --> 00:29:29,910 Unë deklaroj një ndryshore të përkohshme - tmp është një emër shumë i zakonshëm 656 00:29:29,910 --> 00:29:31,240 për një ndryshore të përkohshme. 657 00:29:31,240 --> 00:29:34,280 Kjo është një int, sepse ai ka për të përputhen me atë që unë dua të bëjë një kopje të. 658 00:29:34,280 --> 00:29:39,720 Kam ruajtur një kopje të një brendësi të tmp. Pra, një herë Shkarko 37 ka ekzekutuar, 659 00:29:39,720 --> 00:29:41,390 vlera e një është - 660 00:29:41,390 --> 00:29:42,970 mendje e shëndoshë të shpejtë shikoni - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 Vlera e B është 2. 663 00:29:45,780 --> 00:29:48,470 Dhe vlera e tmp është gjithashtu 1. 664 00:29:48,470 --> 00:29:51,470 Deri tani unë kryej linjë 38. 665 00:29:51,470 --> 00:29:57,180 Pra, një herë Shkarko 38 ekzekuton, një merr mbi vlerën e b. 666 00:29:57,180 --> 00:29:58,510 Dhe b ishte 2. 667 00:29:58,510 --> 00:30:00,500 Kështu një është tani 2. 668 00:30:00,500 --> 00:30:03,110 Kështu në këtë pikë në tregimit, një është 2, b është 2, 669 00:30:03,110 --> 00:30:05,130 dhe tmp është 1. 670 00:30:05,130 --> 00:30:09,330 Kështu që tani logjikisht, ne mund vetëm vlera tmp pllum-së në b. 671 00:30:09,330 --> 00:30:10,690 Dhe ne jemi duke bërë. 672 00:30:10,690 --> 00:30:12,170 >> Pra, ne kemi zgjidhur atë problem. 673 00:30:12,170 --> 00:30:16,040 Për fat të keq, kur kam drejtuar këtë program në këtë formë, ai nuk ka të vërtetë të bie në ujdi 674 00:30:16,040 --> 00:30:17,700 ndonjë vlerave. 675 00:30:17,700 --> 00:30:18,950 Por të jetë i qartë, pse? 676 00:30:23,420 --> 00:30:26,310 I fiksuar problemin logjik nga vetëm një moment më parë. 677 00:30:26,310 --> 00:30:31,150 Por përsëri, në qoftë se unë të drejtuar këtë program, x dhe y të mbeten të pandryshuara deri në fund të 678 00:30:31,150 --> 00:30:33,834 Ekzekutimi i programit. 679 00:30:33,834 --> 00:30:34,760 [E padëgjueshme] 680 00:30:34,760 --> 00:30:36,030 DAVID J. Malan: Pra, ne nuk kemi kthyer asgjë. 681 00:30:36,030 --> 00:30:36,960 Pra, kjo është e vërtetë. 682 00:30:36,960 --> 00:30:39,880 , Por ajo rezulton se ka pak e një problemi këtu, sepse deri më tani 683 00:30:39,880 --> 00:30:42,460 vetmja gjë që ne kemi qenë në gjendje për t'u kthyer është një gjë. 684 00:30:42,460 --> 00:30:46,540 Dhe ky është një kufizim i C. Ju vetëm mund të kthehen një vlerë të vërtetë, 685 00:30:46,540 --> 00:30:48,970 në të cilin rast, unë jam natyrë e mbërthyer këtu 686 00:30:48,970 --> 00:30:51,805 sepse unë mund të kthehen vlerën e re e X ose unë mund të kthehen 687 00:30:51,805 --> 00:30:53,160 Vlera e re e y. 688 00:30:53,160 --> 00:30:54,330 Por unë dua të dy mbrapa. 689 00:30:54,330 --> 00:30:58,010 Pra, nuk është kthyer zgjidhje e thjeshtë këtu. 690 00:30:58,010 --> 00:30:59,770 Por problemi në thelb është arsyeja pse? 691 00:30:59,770 --> 00:31:03,270 Çfarë kemi swapped të vërtetë? 692 00:31:03,270 --> 00:31:04,010 a dhe b. 693 00:31:04,010 --> 00:31:07,670 Por a dhe b janë kopje e X dhe Y, që do të thotë që ne vetëm e bëri të gjithë këtë 694 00:31:07,670 --> 00:31:10,080 punojnë - kemi shpenzuar ashtu si tre minuta duke folur për të swap-it 695 00:31:10,080 --> 00:31:11,680 funksioni dhe të gjitha tre prej këtyre variablave. 696 00:31:11,680 --> 00:31:15,090 Dhe kjo është e madhe, të përkryer i saktë në izolim. 697 00:31:15,090 --> 00:31:20,230 Por a dhe fushëveprimi B është vetëm në këto rreshta këtu. 698 00:31:20,230 --> 00:31:24,130 Pra, vetëm si një për lak, në qoftë se ju të deklarojë një numër të plotë i brenda për 699 00:31:24,130 --> 00:31:27,400 loop - Në mënyrë të ngjashme, në qoftë se ju jeni brenda shpalljen a dhe b të një funksion që 700 00:31:27,400 --> 00:31:30,550 ju keni shkruar, ata janë vetëm brenda vlefshme të atij funksioni. 701 00:31:30,550 --> 00:31:35,020 Që do të thotë sa më shpejt që swap është bërë ekzekutimin dhe ne të shkojnë nga 24 deri linjë 702 00:31:35,020 --> 00:31:38,380 Shkarko 25, x dhe y nuk kanë ndryshuar fare. 703 00:31:38,380 --> 00:31:42,580 Ju vetëm humbur një të tërë shumë kohë shkëmbejnë kopje të variablave. 704 00:31:42,580 --> 00:31:46,490 >> Pra, del se zgjidhja për këtë është në fakt jo të dukshme. 705 00:31:46,490 --> 00:31:49,210 Kjo nuk është mjaft e mjaftueshme për të kthyer vlerat sepse ne mund të 706 00:31:49,210 --> 00:31:50,320 kthehen vetëm një vlerë. 707 00:31:50,320 --> 00:31:53,370 Dhe unë me të vërtetë dua të bie në ujdi dy x dhe y në të njëjtën kohë. 708 00:31:53,370 --> 00:31:55,020 Pra, ne jemi duke shkuar për të ardhur përsëri në këtë. 709 00:31:55,020 --> 00:31:58,770 Por tani për tani, e kuptojnë se çështja krejtësisht derivon nga fakti 710 00:31:58,770 --> 00:32:00,660 se a dhe b janë kopje. 711 00:32:00,660 --> 00:32:03,450 Dhe ata janë në fushëveprimin e tyre. 712 00:32:03,450 --> 00:32:04,980 E pra, le të përpiqemi për të zgjidhur këtë në një farë mënyre. 713 00:32:04,980 --> 00:32:09,200 Më lejoni të vërtetë lëviz prapa dhe e hapur deri këtu, le të themi, një variant i katërt 714 00:32:09,200 --> 00:32:11,170 të kësaj, buggy4. 715 00:32:11,170 --> 00:32:13,230 Dhe çfarë lidhje me këtë? 716 00:32:13,230 --> 00:32:16,690 Ky është një problem i ngjashëm, por më e thjeshtë për të parë para se të marrë një goditje me thikë në 717 00:32:16,690 --> 00:32:17,530 zgjidhjen e saj. 718 00:32:17,530 --> 00:32:19,440 Ky program quhet rritje. 719 00:32:19,440 --> 00:32:24,320 Dhe kjo duket initializes një numër të plotë x me 1 në linjë 18. 720 00:32:24,320 --> 00:32:25,950 Unë pastaj pretendojnë x është 1. 721 00:32:25,950 --> 00:32:28,020 Unë pastaj pretendojnë bën rritjen, dot, dot, dot. 722 00:32:28,020 --> 00:32:29,460 Unë pastaj e quajnë rritje të. 723 00:32:29,460 --> 00:32:33,480 Por pastaj në linjat 22 dhe 23, unë pretendojnë kjo është incremented. 724 00:32:33,480 --> 00:32:37,780 Unë pretendojnë x tani është çfarëdo qoftë ajo është, me sa duket 2. 725 00:32:37,780 --> 00:32:39,770 >> Por ky program është buggy. 726 00:32:39,770 --> 00:32:41,020 Çfarë është problemi? 727 00:32:43,450 --> 00:32:44,418 Po? 728 00:32:44,418 --> 00:32:45,668 [E padëgjueshme] 729 00:32:49,260 --> 00:32:49,850 DAVID J. Malan: Pikërisht. 730 00:32:49,850 --> 00:32:52,430 Pra, x është deklaruar qartë on line 18. 731 00:32:52,430 --> 00:32:54,410 Kjo është brenda formatimin e teksteve kaçurrel KRYESORE së. 732 00:32:54,410 --> 00:32:58,470 Pra, përgjigja e thjeshtë këtu është se, mirë, x ekziston këtu. 733 00:32:58,470 --> 00:33:01,510 Ajo nuk ekziston në linjë 32. 734 00:33:01,510 --> 00:33:03,710 Pra, ky program të vërtetë nuk do të përpilojnë. 735 00:33:03,710 --> 00:33:07,910 Përpilues, kur unë të përpiqet hartimin këtë kod, do të bërtas në mua 736 00:33:07,910 --> 00:33:13,190 për disa identifikues padeklaruar ose diçka për këtë qëllim. 737 00:33:13,190 --> 00:33:13,870 Në fakt, le të përpiqemi. 738 00:33:13,870 --> 00:33:15,235 Kjo është bërë buggy4. 739 00:33:17,780 --> 00:33:18,190 Nuk është. 740 00:33:18,190 --> 00:33:22,030 Përdorimi i x identifikues padeklaruar në linjë 32. 741 00:33:22,030 --> 00:33:25,700 Dhe në fakt, le të jenë më të qartë këtu sot në mënyrë që kjo është e dobishme në 742 00:33:25,700 --> 00:33:27,140 orarit të punës dhe në shtëpi. 743 00:33:27,140 --> 00:33:29,000 Vini re se kjo është pak shkruar cryptically. 744 00:33:29,000 --> 00:33:31,560 Por fakti se ka tingëllimë yelled në ne, duke thënë: 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, është në të vërtetë të dobishme. 746 00:33:36,970 --> 00:33:41,970 Kjo do të thotë se gabimi është në linjë 32 në pozicionin e karakterit pesë. 747 00:33:41,970 --> 00:33:44,670 Pra, një, dy, tre, katër, pesë. 748 00:33:44,670 --> 00:33:46,640 Kjo është, në fakt, ku është problemi. 749 00:33:46,640 --> 00:33:49,710 Dhe gjithashtu për të mbajtur në mend në orarit të punës dhe në shtëpi, unë jam me fat këtu. 750 00:33:49,710 --> 00:33:50,740 Unë kam një gabim. 751 00:33:50,740 --> 00:33:52,660 Ajo do të jetë relativisht e lehtë për të rregulluar. 752 00:33:52,660 --> 00:33:56,220 Por në qoftë se ju merrni një ekran të plotë të tërë mesazhet e gabimit e madhe, përsëri, 753 00:33:56,220 --> 00:33:59,240 të kuptojë se ai më i fundit mund të jetë vetëm tregues i 754 00:33:59,240 --> 00:34:00,320 ato larti. 755 00:34:00,320 --> 00:34:03,560 Pra, gjithmonë ndjekje poshtë mete tuaj nga poshtë lartë. 756 00:34:03,560 --> 00:34:06,720 Sepse nuk mund të jetë vetëm një daisy-zinxhir efekt që është sugjeruar që ju 757 00:34:06,720 --> 00:34:09,030 kanë probleme mënyrë më shumë se ju në të vërtetë të bëjë. 758 00:34:09,030 --> 00:34:14,989 >> Pra, si mund ta rregullojmë këtë, ne në qoftë se qëllimi im është që rritja x? 759 00:34:14,989 --> 00:34:15,370 Çfarë është ajo? 760 00:34:15,370 --> 00:34:15,620 Rregull. 761 00:34:15,620 --> 00:34:16,679 Pra, ne mund të bëjë x globale. 762 00:34:16,679 --> 00:34:18,860 Le të marrin shkurtore që kam paralajmëruar për më herët. 763 00:34:18,860 --> 00:34:20,550 Por dreq, ne vetëm duhet një doze. 764 00:34:20,550 --> 00:34:23,949 Pra, le të them vetëm int x deri këtu. 765 00:34:23,949 --> 00:34:25,600 Kjo e bën x globale. 766 00:34:25,600 --> 00:34:28,460 Deri tani kryesor ka qasje në të. 767 00:34:28,460 --> 00:34:31,780 Rritja dhe ka qasje në të. 768 00:34:31,780 --> 00:34:33,860 Dhe kështu më lejoni të shkoj përpara dhe të përpilojnë këtë tani. 769 00:34:33,860 --> 00:34:36,330 Bëni buggy4, Enter. 770 00:34:36,330 --> 00:34:37,440 Duket për të hartuar tani. 771 00:34:37,440 --> 00:34:40,949 Le të drejtuar buggy4, dhe kjo duket të vërtetë punojnë. 772 00:34:40,949 --> 00:34:42,780 Tani kjo është një nga këto gjëra - 773 00:34:42,780 --> 00:34:45,870 bëj si them unë, jo si bëj unë, siç e kam bërë vetëm këtu. 774 00:34:45,870 --> 00:34:49,239 Sepse në përgjithësi, programet tona janë duke shkuar për të marrë shumë më interesante dhe 775 00:34:49,239 --> 00:34:50,440 shumë më tepër se kjo. 776 00:34:50,440 --> 00:34:53,199 Dhe nëse zgjidhja juaj për problemet e jetës është vetëm ah, të vënë të gjitha 777 00:34:53,199 --> 00:34:57,550 Variablat në krye të dosjes suaj, shumë shpejt të bëjë Programet marrë 778 00:34:57,550 --> 00:34:59,700 horrifically e vështirë për të menaxhuar. 779 00:34:59,700 --> 00:35:02,050 Ajo merr vështirë për të menduar deri emra të rinj ndryshueshme. 780 00:35:02,050 --> 00:35:05,240 Ajo merr vështirë për të kuptuar se çfarë është duke bërë çfarë ndryshueshme. 781 00:35:05,240 --> 00:35:08,250 >> Dhe kështu në përgjithësi, kjo nuk është një zgjidhje e mirë. 782 00:35:08,250 --> 00:35:09,780 Pra, le ta bëjmë këtë më mirë. 783 00:35:09,780 --> 00:35:11,920 Ne nuk duam që të përdorni një ndryshore globale këtu. 784 00:35:11,920 --> 00:35:14,050 Unë dua të ardhura x. 785 00:35:14,050 --> 00:35:16,050 Kështu që unë mund të duket - 786 00:35:16,050 --> 00:35:18,450 në fund të ditës, kjo është lloj i një histori pa kuptim, sepse ne vetëm të bëjë këtë. 787 00:35:18,450 --> 00:35:22,050 Por në qoftë se unë nuk e di për atë operatori, ose unë nuk u lejohet të 788 00:35:22,050 --> 00:35:27,700 ndryshojë atë në vetvete kryesore, si tjetër mund ta zbatojë Ken gjatë këtu, kjo 789 00:35:27,700 --> 00:35:31,450 koha nuk të kubike, por të ardhura? 790 00:35:31,450 --> 00:35:32,700 Si mund ta ndryshoj këtë gjë këtu? 791 00:35:32,700 --> 00:35:33,025 Po. 792 00:35:33,025 --> 00:35:34,275 [E padëgjueshme] 793 00:35:37,430 --> 00:35:38,000 DAVID J. Malan: Mirë, mirë. 794 00:35:38,000 --> 00:35:40,490 Kështu që pse nuk e kam të kalojë në X? 795 00:35:40,490 --> 00:35:44,390 Dhe pastaj në vend se ta kthejë atë, pse nuk kam vetëm të bëjë kthimin x + 1? 796 00:35:44,390 --> 00:35:46,370 Tani, gjërat një çift shumë duhet të ndryshojë këtu. 797 00:35:46,370 --> 00:35:47,530 Unë jam në rrugën e duhur. 798 00:35:47,530 --> 00:35:48,910 Çfarë tjetër nuk kam nevojë të shkulje? 799 00:35:48,910 --> 00:35:49,470 Dikush tjetër. 800 00:35:49,470 --> 00:35:49,882 Po? 801 00:35:49,882 --> 00:35:51,530 [E padëgjueshme] 802 00:35:51,530 --> 00:35:53,520 DAVID J. Malan: Unë kam nevojë për të ndryshuar llojin e kthimit të ardhura 803 00:35:53,520 --> 00:35:54,590 për shkak se ajo nuk është e pavlefshme. 804 00:35:54,590 --> 00:35:56,650 Void do të thotë asgjë duke u kthyer. 805 00:35:56,650 --> 00:35:57,600 Por në mënyrë të qartë, tani ajo është. 806 00:35:57,600 --> 00:36:01,280 Pra, kjo duhet të ndryshojë për të int të jenë në përputhje me çfarëdo 807 00:36:01,280 --> 00:36:02,580 Unë në fakt jam kthyer. 808 00:36:02,580 --> 00:36:04,580 >> Tani diçka tjetër është ende buggy këtu. 809 00:36:04,580 --> 00:36:04,982 Po? 810 00:36:04,982 --> 00:36:06,590 [E padëgjueshme] 811 00:36:06,590 --> 00:36:07,630 DAVID J. Malan: Kështu që unë duhet të ardhura x? 812 00:36:07,630 --> 00:36:10,336 [E padëgjueshme] 813 00:36:10,336 --> 00:36:11,880 DAVID J. Malan: Ah, kështu që kam nevojë për të kaluar x. 814 00:36:11,880 --> 00:36:13,300 Kështu që kam nevojë për të bërë këtë këtu. 815 00:36:17,590 --> 00:36:19,690 Pra, prototip, unë kam për të ndryshuar këtë deri këtu. 816 00:36:19,690 --> 00:36:21,290 Pra, kjo duhet të bëhet një int. 817 00:36:21,290 --> 00:36:22,820 Kjo ka për të bërë - 818 00:36:22,820 --> 00:36:23,670 hmm. 819 00:36:23,670 --> 00:36:24,710 Unë në fakt kam një bug këtu poshtë. 820 00:36:24,710 --> 00:36:25,780 Le të zgjidhur këtë një të parë. 821 00:36:25,780 --> 00:36:27,990 Çfarë duhet të vërtetë të jetë kjo? 822 00:36:27,990 --> 00:36:29,330 Pra, ai e mori të jetë një diçka int. 823 00:36:29,330 --> 00:36:30,340 Kjo mund të jetë x. 824 00:36:30,340 --> 00:36:33,120 Por sinqerisht, në qoftë se ju filloni duke bërë thirrje të gjitha variablave x tuaj, ajo do të marrë 825 00:36:33,120 --> 00:36:35,250 më pak dhe më pak qartë cila është cila. 826 00:36:35,250 --> 00:36:38,210 Pra, le të vetëm në mënyrë arbitrare të zgjidhni një konventë të ndryshme emërtimin për tim 827 00:36:38,210 --> 00:36:40,220 funksionet ndihmëse, funksionet unë jam shkrim. 828 00:36:40,220 --> 00:36:41,100 Ne do të thërrasë atë një. 829 00:36:41,100 --> 00:36:44,500 Ose ne mund ta quajmë atë - le të thërrasë atë even_number të jetë edhe më i qartë. 830 00:36:44,500 --> 00:36:47,610 Pra, atëherë unë duhet të kthehen çfarëdo numri është plus 1. 831 00:36:47,610 --> 00:36:49,720 Dhe tani unë kam për të ndryshuar një gjë tjetër deri këtu dhe një 832 00:36:49,720 --> 00:36:50,700 Gjë tjetër deri këtu. 833 00:36:50,700 --> 00:36:54,150 Çfarë duhet të ndryshojë në përputhje parë 21? 834 00:36:54,150 --> 00:36:55,390 Unë duhet të caktojë atë në x. 835 00:36:55,390 --> 00:36:57,480 Kështu që unë nuk mund të telefononi x ardhura. 836 00:36:57,480 --> 00:37:01,000 Unë kam nevojë për të kujtuar përgjigjen duke ndryshuar vlerën e x më 837 00:37:01,000 --> 00:37:02,020 anën e majtë. 838 00:37:02,020 --> 00:37:04,930 Dhe, edhe pse x është tani në të majtë dhe të djathtë, që është krejtësisht gjobë për shkak të 839 00:37:04,930 --> 00:37:08,370 anën e djathtë merr ekzekutuar parë pastaj merr plopped në të majtë 840 00:37:08,370 --> 00:37:10,240 Gjëja dorë, x në këtë rast. 841 00:37:10,240 --> 00:37:11,900 Dhe pastaj në fund, kjo është një fix lehtë tani. 842 00:37:11,900 --> 00:37:15,080 Kjo duhet vetëm të përputhen me atë që është më poshtë. 843 00:37:15,080 --> 00:37:17,120 Numri i int. 844 00:37:17,120 --> 00:37:17,320 >> Dakord. 845 00:37:17,320 --> 00:37:20,290 Kështu që një bandë e tërë e ndryshimeve për një funksion të vërtetë budallaqe. 846 00:37:20,290 --> 00:37:24,250 Por përfaqësuesi i gjërave që ne do të duan të bëjnë gjithnjë. 847 00:37:24,250 --> 00:37:25,490 Pra, ti buggy4. 848 00:37:25,490 --> 00:37:26,485 Unë kam dehur diku. 849 00:37:26,485 --> 00:37:27,520 Oh Perëndia im. 850 00:37:27,520 --> 00:37:29,660 Pesë gabime në, si, një gjashtë-line program. 851 00:37:29,660 --> 00:37:36,500 Pra, çfarë është e gabuar on line 18, karakteri 5? 852 00:37:36,500 --> 00:37:36,970 Dakord. 853 00:37:36,970 --> 00:37:39,330 Kështu që unë duhet të deklaroj këtë int. 854 00:37:39,330 --> 00:37:39,630 Dakord. 855 00:37:39,630 --> 00:37:41,790 Pra, le të shohim, një bandë e tërë e gabimeve të tjera. 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 Por përsëri, le të vetëm të pastruar në ekran - 859 00:37:46,020 --> 00:37:48,660 L kontrolli këtu - dhe ri-drejtuar tingëllimë. 860 00:37:48,660 --> 00:37:51,340 Pra, pesë probleme në fakt është vetëm se një. 861 00:37:51,340 --> 00:37:53,500 Pra, tani le të kandidojë buggy4, Enter. 862 00:37:53,500 --> 00:37:54,150 Uf. 863 00:37:54,150 --> 00:37:57,434 x është incremented saktë. 864 00:37:57,434 --> 00:37:58,420 >> Dakord. 865 00:37:58,420 --> 00:38:01,700 Ndonjë pyetje si të ardhura numrat? 866 00:38:01,700 --> 00:38:02,896 Po? 867 00:38:02,896 --> 00:38:06,864 Gjuha 2: Pse është ajo që ju mund vetëm të ndryshojë x me numrin në ndryshore 868 00:38:06,864 --> 00:38:08,860 emrin dhe ajo do të dini se çfarë ju thotë? 869 00:38:08,860 --> 00:38:09,600 DAVID J. Malan: Pyetje e mirë. 870 00:38:09,600 --> 00:38:13,130 Si është e mundur që unë mund vetëm të ndryshojë x me numrin dhe programi do të dinë 871 00:38:13,130 --> 00:38:13,990 menjëherë? 872 00:38:13,990 --> 00:38:16,120 Pra, përsëri, të mendojnë për atë si ky abstraksion. 873 00:38:16,120 --> 00:38:20,110 Pra, nëse unë jam kryesor dhe Ken është në rritje, sinqerisht, unë nuk e kujdesit 874 00:38:20,110 --> 00:38:21,540 çfarë Ken quan iPad e tij. 875 00:38:21,540 --> 00:38:25,350 Unë nuk bëj kujdes atë që ai e quan çdo gjë që ka të bëjë me zbatimin e tij 876 00:38:25,350 --> 00:38:26,550 të këtij funksionalitetit. 877 00:38:26,550 --> 00:38:32,130 Pra, ky është një detaj zbatimi që unë, kryesore, nuk 878 00:38:32,130 --> 00:38:33,010 duhet të kujdeset për. 879 00:38:33,010 --> 00:38:37,440 Dhe kështu thjesht duke ndryshuar atë vazhdimisht brenda funksionit, numri këtu 880 00:38:37,440 --> 00:38:41,340 dhe numri këtu, është e gjitha ajo merr kaq kohë që unë recompile. 881 00:38:41,340 --> 00:38:43,820 Kjo është lloj i si në qoftë se ju mendoni rreth - shumë prej nesh, ata prej jush me shofer e 882 00:38:43,820 --> 00:38:46,590 Licencat që kam drejtuar, ose në qoftë se ju keni shtyrë edhe në një makinë - 883 00:38:46,590 --> 00:38:50,710 shumica prej nesh kanë asnjë ide se si punon një makinë nën kapuç. 884 00:38:50,710 --> 00:38:54,710 Dhe me të vërtetë, në qoftë se keni hapur deri individualitet, shumica prej nesh - përfshirë veten time - 885 00:38:54,710 --> 00:38:56,580 nuk do të me të vërtetë e di se çfarë ne jemi duke kërkuar në. 886 00:38:56,580 --> 00:38:58,850 Lloj si ju mund të ndjeheni me sende si këtë të drejtë tani. 887 00:38:58,850 --> 00:39:01,380 Por ne nuk mund të vërtetë duhet të kujdesen se si punon makina. 888 00:39:01,380 --> 00:39:05,000 Ne nuk duhet të kujdeset se çfarë të gjitha shufra dhe Pistons dhe kabllot brenda të 889 00:39:05,000 --> 00:39:07,700 makinë në të vërtetë janë duke bërë. 890 00:39:07,700 --> 00:39:11,360 >> Pra, diçka si ajo që ju e quani pistoni nuk ka rëndësi 891 00:39:11,360 --> 00:39:11,920 këtu në këtë rast. 892 00:39:11,920 --> 00:39:12,490 Njëjtën ide. 893 00:39:12,490 --> 00:39:12,670 Po? 894 00:39:12,670 --> 00:39:13,920 [E padëgjueshme] 895 00:39:25,250 --> 00:39:29,530 DAVID J. Malan: Nëse do të kishte më shumë përdorime të momentit ndryshueshme xa më parë, 896 00:39:29,530 --> 00:39:32,220 ju, programues, do të duhet të ndryshojë ato kudo. 897 00:39:32,220 --> 00:39:35,230 Ose ju mund të vërtetë të bëjë, File menu, dhe pastaj a / Replace, 898 00:39:35,230 --> 00:39:36,270 diçka të tillë. 899 00:39:36,270 --> 00:39:40,110 Por ju do të keni për të bërë këto ndryshime veten. 900 00:39:40,110 --> 00:39:41,200 Ju duhet të jenë në përputhje. 901 00:39:41,200 --> 00:39:42,450 [E padëgjueshme] 902 00:39:47,200 --> 00:39:48,960 DAVID J. Malan: Një mënyrë të veçantë si këtu? 903 00:39:48,960 --> 00:39:52,660 Nëse kjo ishte një tjetër int numrin? 904 00:39:52,660 --> 00:39:52,940 Po. 905 00:39:52,940 --> 00:39:56,430 Pra, për çështje, kur ju jeni duke e quajtur funksion. 906 00:39:56,430 --> 00:40:00,350 Pra, nëse unë u quajtur rritje të këtu me presje diçka diçka, 907 00:40:00,350 --> 00:40:01,400 ka një hartë të drejtpërdrejtë. 908 00:40:01,400 --> 00:40:04,490 Ndryshueshme parë, çfarëdo qoftë ajo është quajtur, është bërë një kopje të parë 909 00:40:04,490 --> 00:40:05,480 Argumenti mbi këtu. 910 00:40:05,480 --> 00:40:07,280 Na vjen keq, kjo nuk duhet të jetë një parantezë. 911 00:40:07,280 --> 00:40:09,300 Linjat e dytë argumenti deri me një të dytë. 912 00:40:09,300 --> 00:40:11,220 >> Kështu që, po, ka rëndësi. 913 00:40:11,220 --> 00:40:11,490 Dakord. 914 00:40:11,490 --> 00:40:13,360 Na vjen keq unë mora një rrugë të gjatë për të arritur atje. 915 00:40:13,360 --> 00:40:14,610 Pyetje të tjera? 916 00:40:16,460 --> 00:40:16,850 Dakord. 917 00:40:16,850 --> 00:40:20,300 Pra, le të shohim nëse ne nuk mund të pikturoj një tablo të asaj që po ndodh në të vërtetë 918 00:40:20,300 --> 00:40:22,160 këtu nën kapuç, në mënyrë që të flasin. 919 00:40:22,160 --> 00:40:26,310 Pra, kjo është një drejtkëndësh që mund përfaqësojë kujtesën e kompjuterit tuaj. 920 00:40:26,310 --> 00:40:31,240 Pra, edhe në qoftë se ju nuk keni ide se sa memorie punon apo si punon RAM, të paktën 921 00:40:31,240 --> 00:40:33,590 supozojmë se ju keni bunches e saj këto ditë. 922 00:40:33,590 --> 00:40:34,740 Ju keni marrë megabajt të saj. 923 00:40:34,740 --> 00:40:35,760 Ju keni marrë gigabajt të saj. 924 00:40:35,760 --> 00:40:40,690 Dhe ne e dimë nga zero jave se një bajt është vetëm ajo? 925 00:40:40,690 --> 00:40:41,280 8 bit. 926 00:40:41,280 --> 00:40:42,730 Drejtë, kështu që 8 zero dhe ato. 927 00:40:42,730 --> 00:40:46,300 Pra, në qoftë se kompjuteri juaj ka një koncert të RAM, dy koncerte të RAM këto ditë, ju keni një 928 00:40:46,300 --> 00:40:54,450 miliardë lekë ose 2 miliard byte memorje, ose afërsisht 8 miliardë, ose 16 miliardë 929 00:40:54,450 --> 00:40:56,560 bit, brenda e kompjuterit tuaj. 930 00:40:56,560 --> 00:40:59,710 Tani ndryshe nga shembull pak leshtë Willy, kjo nuk është grimca magnetike 931 00:40:59,710 --> 00:41:00,560 zakonisht më. 932 00:41:00,560 --> 00:41:04,470 Gjithnjë e më shumë, në laptopë të paktën, kjo është disqet të forta shtetërore, SSD, që 933 00:41:04,470 --> 00:41:05,560 thjesht nuk kanë lëvizur pjesë. 934 00:41:05,560 --> 00:41:06,710 Kjo është e gjitha elektronike. 935 00:41:06,710 --> 00:41:08,070 Kjo është e gjitha elektrike bazuar. 936 00:41:08,070 --> 00:41:12,360 Pra, mendoj se, edhe pse, për këtë drejtkëndësh si vetëm përfaqëson një ose dy 937 00:41:12,360 --> 00:41:13,930 gigabajt të memories që ju keni. 938 00:41:13,930 --> 00:41:15,500 >> Pra, kjo është një copë e kujtesës. 939 00:41:15,500 --> 00:41:20,460 Tani bota e shkencave kompjuterike ka lloj të chunks të ndarë jashtë 940 00:41:20,460 --> 00:41:22,570 kujtesës për të bërë gjëra të ndryshme. 941 00:41:22,570 --> 00:41:25,930 Kështu për shembull, nëse kjo është e RAM kompjuterit tuaj - siç sugjerohet nga 942 00:41:25,930 --> 00:41:30,400 drejtkëndësh ka - rezulton se nga Konventa, në krye të RAM tuaj, kështu që 943 00:41:30,400 --> 00:41:33,170 për të folur, në përgjithësi është ajo që quhet një segment tekst. 944 00:41:33,170 --> 00:41:35,910 Ata janë zero dhe ato që ju keni hartuar. 945 00:41:35,910 --> 00:41:39,040 Pra, kur ne kemi shikuar nën kapuç në atë a.out është, të gjitha 946 00:41:39,040 --> 00:41:40,360 nga zero dhe ato - 947 00:41:40,360 --> 00:41:44,000 kur ju drejtuar një program, ato zero dhe ato janë të ngarkuar nga hard juaj 948 00:41:44,000 --> 00:41:46,290 makinë në diçka që quhet RAM. 949 00:41:46,290 --> 00:41:48,950 Dhe në RAM, ata janë vënë në krye. 950 00:41:48,950 --> 00:41:50,330 Tani ndërkohë, ju keni gjëra të tjera. 951 00:41:50,330 --> 00:41:53,060 Të dhënat initialized, të dhënat uninitialized. 952 00:41:53,060 --> 00:41:56,440 Zona të tëra këto dy të memories referohen variablave globale, e cila 953 00:41:56,440 --> 00:41:57,530 ju nuk e përdorin shpesh. 954 00:41:57,530 --> 00:42:00,630 Por ndonjëherë, nëse ju bëni, ata përfundojnë deri atje si. 955 00:42:00,630 --> 00:42:01,620 Pastaj ka disa sende të tjera. 956 00:42:01,620 --> 00:42:04,130 Mjedis të ndryshueshëm, të cilat ne nuk do të kalojnë shumë kohë me radhë. 957 00:42:04,130 --> 00:42:06,120 Por pastaj dy gjëra të rëndësishme që do të kthehet në të gjithë këtë 958 00:42:06,120 --> 00:42:08,130 , semestri rafte dhe tog. 959 00:42:08,130 --> 00:42:12,280 >> Pra, shumica e kujtesë të kompjuterit tuaj është e rezervuar kur drejtimin e një program për 960 00:42:12,280 --> 00:42:14,880 diçka që quhet rafte dhe diçka të quajtur tog. 961 00:42:14,880 --> 00:42:16,940 Dhe ne nuk do të flasim rreth një grumbulli gurësh sot, por ne do të 962 00:42:16,940 --> 00:42:18,180 flasim për rafte. 963 00:42:18,180 --> 00:42:22,910 Dhe rafte është menduar të sjell në mendje deri vizual si sallën e ngrënies 964 00:42:22,910 --> 00:42:26,120 tabaka vakt në Shtëpinë Mather, ose kudo që ju ndodh që të jetë, ku 965 00:42:26,120 --> 00:42:27,810 ngrënie sallë Stafi pastrimin e tyre çdo ditë. 966 00:42:27,810 --> 00:42:30,180 Ata rafte e tyre deri nga dyshemeja në UP. 967 00:42:30,180 --> 00:42:33,800 Dhe në mënyrë të ngjashme në kujtesë, nuk është kjo ide të vënë diçka në një 968 00:42:33,800 --> 00:42:36,740 rafte, vënë diçka në një pirg, duke vënë diçka në një pirg. 969 00:42:36,740 --> 00:42:38,000 Dhe çfarë ne do të thotë me këtë? 970 00:42:38,000 --> 00:42:41,430 E pra, le të zoom në në gjysmën e vetëm më të ulët të këtij foto, e kompjuteri juaj 971 00:42:41,430 --> 00:42:43,990 RAM, të propozojë në vijim. 972 00:42:43,990 --> 00:42:48,300 Ajo rezulton se kur ju drejtuar një program si a.out apo hello, çfarëdo 973 00:42:48,300 --> 00:42:49,920 programi është që ju keni shkruar, 974 00:42:49,920 --> 00:42:53,030 përsëri, ato zero dhe ato janë të ngarkuar nga hard drive tuaj - e cila është 975 00:42:53,030 --> 00:42:56,190 ruajtjen afat të gjatë, qëndron atje edhe kur ju tërheq plug - 976 00:42:56,190 --> 00:42:57,220 ngarkuar në RAM. 977 00:42:57,220 --> 00:42:59,020 RAM është më e shpejtë se hard drives. 978 00:42:59,020 --> 00:43:00,700 Kjo është më e vogël se hard drives. 979 00:43:00,700 --> 00:43:03,490 Por kjo është ajo ku programet jetojnë ndërsa ju jeni drejtimin e tyre. 980 00:43:03,490 --> 00:43:06,380 >> Pra, ju klikoni dy herë një program në një Mac apo PC - është ngarkuar nga 981 00:43:06,380 --> 00:43:07,750 hard drive në RAM. 982 00:43:07,750 --> 00:43:11,760 Sa më shpejt që është e ngarkuar në RAM, zero dhe ato të shkojnë në krye mënyrë, 983 00:43:11,760 --> 00:43:13,130 ashtu-quajtur segmenti tekst. 984 00:43:13,130 --> 00:43:17,040 Por pastaj sa më shpejt që programi juaj në fakt fillon running, kryesore 985 00:43:17,040 --> 00:43:18,140 Funksioni quhet. 986 00:43:18,140 --> 00:43:21,070 Dhe kryesore, siç kemi parë, shpesh ka variablat lokale. 987 00:43:21,070 --> 00:43:24,560 Dhe kjo ka ints dhe vargjet dhe karaktere dhe si. 988 00:43:24,560 --> 00:43:28,300 Pra, nëse programi juaj që keni shkruar ose program që ju keni 989 00:43:28,300 --> 00:43:33,680 dyfishtë klikuar përdorur disa variabla brenda kryesor, ata të përfundojnë deri në 990 00:43:33,680 --> 00:43:37,020 fund e rafte tuaj të kujtesës, kështu që të flasin. 991 00:43:37,020 --> 00:43:39,160 Tani më konkretisht, çfarë e bën këtë të vërtetë do të thotë? 992 00:43:39,160 --> 00:43:44,080 Kjo thjesht do të thotë se në qoftë se ne do të numërojmë gjërat - 993 00:43:44,080 --> 00:43:49,380 në qoftë se ne ishim duke shkuar për numrin e bytes e RAM në kompjuterin tuaj, vëreni se 994 00:43:49,380 --> 00:43:51,650 kjo mund të jetë zero byte numër. 995 00:43:51,650 --> 00:43:56,130 Kjo mund të jetë numri i bajt një, dy, tre, katër, pesë, gjashtë, të gjitha 996 00:43:56,130 --> 00:43:57,290 rrugën deri në si - 997 00:43:57,290 --> 00:44:01,520 2 miliardë do të jetë mbi të gjitha rrugën deri atje në krye. 998 00:44:01,520 --> 00:44:05,960 Pra, me fjalë të tjera, kur ne flasim për memorie RAM ose në drejtim të bytes, ajo 999 00:44:05,960 --> 00:44:09,680 thjesht do të thotë se dikush ka vendosur se çfarë duhet të numërojmë çdo 1000 00:44:09,680 --> 00:44:11,110 ato chunks e kujtesës. 1001 00:44:11,110 --> 00:44:16,950 >> Pra, kur ju keni nevojë për 32 bit për një int, apo keni nevojë për 8 bit për një char, aty ku 1002 00:44:16,950 --> 00:44:18,320 ata përfundojnë në kujtesë? 1003 00:44:18,320 --> 00:44:20,650 Edhe konceptuale, ata vetëm të përfundojë deri në fund të këtij 1004 00:44:20,650 --> 00:44:21,780 Gjëja e quajtur rafte. 1005 00:44:21,780 --> 00:44:25,670 Por ajo që është interesante tani është, kur e quan një funksion kryesor. 1006 00:44:25,670 --> 00:44:28,830 Supozoni një funksion të quajtur foo, vetëm një emër arbitrare. 1007 00:44:28,830 --> 00:44:32,480 Çfarë ndodh është kryesor është në fund të këtij rafte e kujtesës. 1008 00:44:32,480 --> 00:44:35,630 Foo tani është vënë në krye të kryesore në kujtesë. 1009 00:44:35,630 --> 00:44:40,020 Kështu që çdo ndryshore lokale që foo ka përfundojë lloj konceptualisht më sipër 1010 00:44:40,020 --> 00:44:40,770 ato kryesore. 1011 00:44:40,770 --> 00:44:46,920 Nëse foo quan një funksion të quajtur bar, ato variabla të përfundojnë këtu. 1012 00:44:46,920 --> 00:44:49,790 Nëse bar e quan diçka tjetër, këtu, këtu, këtu. 1013 00:44:49,790 --> 00:44:53,900 Pra, çfarë është interesante në lidhje me drejtimin e një programi është se si ju e quani funksionet, 1014 00:44:53,900 --> 00:44:57,720 dhe si ato funksione telefononi funksionet, dhe si ato funksione telefononi funksionet, 1015 00:44:57,720 --> 00:45:00,980 keni ndërtuar këtë turrë e funksioneve në memorje. 1016 00:45:00,980 --> 00:45:06,740 Dhe vetëm një herë në kthimin e funksionit ju filloni të keni atë kujtesës prapa. 1017 00:45:06,740 --> 00:45:11,190 Pra, një nga mënyrat më të lehta për të dalë jashtë kujtesës në një program kompjuterik është që të 1018 00:45:11,190 --> 00:45:14,170 shkruani funksione që nuk kthehen. 1019 00:45:14,170 --> 00:45:16,650 >> Kështu për shembull, le të tregojë sa më shumë me një 1020 00:45:16,650 --> 00:45:18,460 Programi qëllimisht buggy. 1021 00:45:18,460 --> 00:45:24,690 Më lejoni të shkojnë përpara dhe nuk përfshijnë # , kryesore int (i pavlefshëm). 1022 00:45:24,690 --> 00:45:31,270 Dhe unë jam duke shkuar për të bërë, ndërsa (2> 1), i cili ndoshta kurrë nuk do të 1023 00:45:31,270 --> 00:45:33,370 të ndryshojë në ne. 1024 00:45:33,370 --> 00:45:37,720 Dhe më lejoni të shkoj përpara dhe të bëjë tani printf. 1025 00:45:37,720 --> 00:45:39,950 Në fakt, kjo do të jetë më pak vizualisht interesante. 1026 00:45:39,950 --> 00:45:40,460 Le ta bëjmë këtë. 1027 00:45:40,460 --> 00:45:44,840 Për int (I = 0; I> 0). 1028 00:45:44,840 --> 00:45:49,740 Le të bëjnë këtë gabim, unë + +. 1029 00:45:49,740 --> 00:45:51,150 Dhe le të mos printf këtu. 1030 00:45:51,150 --> 00:45:52,550 Le të praktikuar atë që unë u predikonte. 1031 00:45:52,550 --> 00:45:54,090 Le të ketë një metodë këtu. 1032 00:45:54,090 --> 00:46:00,860 Kor pavlefshme, dhe ne do të themi int. 1033 00:46:00,860 --> 00:46:02,295 Dhe atëherë unë jam duke shkuar për të thënë, printf - 1034 00:46:04,871 --> 00:46:06,790 oh, le ta bëjë këtë më interesante. 1035 00:46:06,790 --> 00:46:08,350 Le të mos të vërtetë të shtypura asgjë në të gjitha. 1036 00:46:08,350 --> 00:46:10,530 Le të vetëm të bëjë këtë. 1037 00:46:10,530 --> 00:46:11,780 Chorus (i). 1038 00:46:16,630 --> 00:46:17,000 >> Dakord. 1039 00:46:17,000 --> 00:46:20,040 Pra, kjo është buggy, sepse pse? 1040 00:46:20,040 --> 00:46:22,850 Unë jam duke e bërë këtë deri sa të shkoj, sepse programi nuk ka të vërtetë të bëjë asgjë 1041 00:46:22,850 --> 00:46:23,420 e interes. 1042 00:46:23,420 --> 00:46:24,670 Por kjo nuk është qëllimi. 1043 00:46:24,670 --> 00:46:30,440 Qëllimi është për të shkruar një program funksioni kryesor i të cilit e bën atë, me sa duket? 1044 00:46:30,440 --> 00:46:31,370 Telefononi veten. 1045 00:46:31,370 --> 00:46:32,600 Dhe në fakt, ne nuk kemi nevojë lak. 1046 00:46:32,600 --> 00:46:36,070 Le të lehtësuar edhe kjo vetëm jo aq sa për të humbur shikim të vërtetë 1047 00:46:36,070 --> 00:46:37,310 bug themelore. 1048 00:46:37,310 --> 00:46:39,200 Thirrjet kryesore kor për të kënduar disa kor. 1049 00:46:39,200 --> 00:46:41,760 Pastaj kam bërë diçka stupid, dhe kam pasur thirrje kor kor sepse unë supozuar 1050 00:46:41,760 --> 00:46:43,550 dikush tjetër ishte duke shkuar për të zbatuar atë ndoshta. 1051 00:46:43,550 --> 00:46:45,960 Dhe tani kjo nuk do të përpilojë ende. 1052 00:46:45,960 --> 00:46:48,340 Unë kam nevojë për të bërë çfarë? 1053 00:46:48,340 --> 00:46:49,700 Unë kam nevojë për prototip, mos harroni. 1054 00:46:49,700 --> 00:46:55,520 Kështu që unë duhet të ketë deri këtu kor void (int i);. 1055 00:46:55,520 --> 00:46:57,470 >> Deri tani, nëse unë shkoj poshtë këtu - 1056 00:46:57,470 --> 00:46:59,030 në fakt, le të përdorim dritaren e madhe. 1057 00:46:59,030 --> 00:47:01,670 Le të shkojnë përpara dhe të bëjë kor. 1058 00:47:01,670 --> 00:47:06,000 Le të shkojnë përpara dhe të bëjë kor. 1059 00:47:06,000 --> 00:47:08,302 Përdorimi i deklaruesi i paidentifikuar. 1060 00:47:08,302 --> 00:47:09,860 Oh, se ishte budalla. 1061 00:47:09,860 --> 00:47:11,020 Ne nuk kemi nevojë për argument. 1062 00:47:11,020 --> 00:47:13,680 Le të vetëm të bëjë këtë. 1063 00:47:13,680 --> 00:47:14,550 Wish ne kishim filluar këtë mënyrë. 1064 00:47:14,550 --> 00:47:16,160 Ajo do të kishte qenë një program shumë më të lehtë për të shkruar. 1065 00:47:16,160 --> 00:47:20,100 Kështu që nuk ka. 1066 00:47:20,100 --> 00:47:23,870 Tani le të shkojë mbi në dritaren time terminal, ri-drejtuar tingëllimë. 1067 00:47:23,870 --> 00:47:26,900 Dhe këtu ne do të shkojmë. 1068 00:47:26,900 --> 00:47:28,020 Kjo ishte me të vërtetë të shpejtë. 1069 00:47:28,020 --> 00:47:30,690 Çfarë në të vërtetë ndodhi ashtu, pse? 1070 00:47:30,690 --> 00:47:33,430 E pra, tani unë do të shtoni linjë të shtypura, kështu që ne mund të shohim. 1071 00:47:33,430 --> 00:47:41,330 Pra më lejoni të them printf, le të themi, unë jam këtu. 1072 00:47:41,330 --> 00:47:43,470 Mirë, nuk ka variabla, ne do të lënë atë si kjo. 1073 00:47:43,470 --> 00:47:44,860 Më lejoni të ri-drejtuar bërë. 1074 00:47:44,860 --> 00:47:47,940 Më lejoni të ri-drejtuar kor. 1075 00:47:47,940 --> 00:47:51,235 Dhe të vijë në. 1076 00:47:53,880 --> 00:47:55,130 Do të mbajë. 1077 00:47:57,630 --> 00:47:59,750 Si një mënjanë, pse nuk e ka ai u rrëzua ende? 1078 00:47:59,750 --> 00:48:02,050 Faji segmentimit ndodhi super të shpejtë përpara. 1079 00:48:02,050 --> 00:48:04,250 [E padëgjueshme] 1080 00:48:04,250 --> 00:48:04,830 DAVID J. Malan: Pikërisht. 1081 00:48:04,830 --> 00:48:06,350 Pra, kjo merr kohë për të shkruar. 1082 00:48:06,350 --> 00:48:08,370 Ajo merr vetëm më shumë punë nga ana e kompjuterit. 1083 00:48:08,370 --> 00:48:09,550 Dhe nuk është. 1084 00:48:09,550 --> 00:48:10,620 Faji segmentimit. 1085 00:48:10,620 --> 00:48:12,140 >> Pra, vini re se sa programet e shpejtë të kandidojë. 1086 00:48:12,140 --> 00:48:14,110 Nëse ju nuk jeni shtypjen asgjë, e super të shpejtë. 1087 00:48:14,110 --> 00:48:18,100 Por ne ende mori këtë faji segmentimit sepse ajo që po ndodhte? 1088 00:48:18,100 --> 00:48:21,310 E pra, në qoftë se ju mendoni se si memorie kompjuteri juaj është hedhur jashtë, kjo 1089 00:48:21,310 --> 00:48:22,890 ndodh të jetë kryesor. 1090 00:48:22,890 --> 00:48:23,800 Por këtu - 1091 00:48:23,800 --> 00:48:28,670 le të vetëm quajmë këtë kor, dhe le të quajmë këtë kor. 1092 00:48:28,670 --> 00:48:33,420 Dhe tani, nëse unë bëj estetikë e mia të drejtë, kjo është vetëm do të them kor, 1093 00:48:33,420 --> 00:48:38,060 kor, kor, kor, kor, kor, kor, nauseum ad. 1094 00:48:38,060 --> 00:48:39,920 Dhe përfundimisht, çfarë do të ndodhë? 1095 00:48:39,920 --> 00:48:46,690 Nëse foto e madhe fjalë për fjalë është kjo, ajo që ndodh vetëm konceptualisht? 1096 00:48:46,690 --> 00:48:48,320 The overruns rafte këtij togu. 1097 00:48:48,320 --> 00:48:52,400 Apo më keq, ju muar vetëm çdo gjë, duke përfshirë edhe segmentin e tekstit, e cila është 1098 00:48:52,400 --> 00:48:54,530 nga zero dhe ato që përfaqësojnë programin tuaj. 1099 00:48:54,530 --> 00:48:56,690 Me pak fjalë, kjo është vetëm super, super e keqe. 1100 00:48:56,690 --> 00:48:56,860 Drejtë? 1101 00:48:56,860 --> 00:48:58,620 Programi juaj ka dalë jashtë kontrollit. 1102 00:48:58,620 --> 00:49:02,840 Ju jeni duke përdorur memorie mënyrë më shumë se ju për qëllim të gjithë për shkak të një trashë 1103 00:49:02,840 --> 00:49:03,920 gabim, në këtë rast. 1104 00:49:03,920 --> 00:49:08,160 Ose në këtë rast, një funksion shumë qëllimisht bërë thirrje vetë. 1105 00:49:08,160 --> 00:49:09,210 Tani kjo nuk është e gjitha e keqe. 1106 00:49:09,210 --> 00:49:12,540 Funksionet e quajtur veten e tyre të vërtetë ka fuqi të madhe 1107 00:49:12,540 --> 00:49:13,700 kur ju përdorni atë saktë. 1108 00:49:13,700 --> 00:49:15,650 Unë nuk e kanë përdorur atë saktë këtu. 1109 00:49:15,650 --> 00:49:16,940 >> Pra, kjo nuk është e gjitha e keqe. 1110 00:49:16,940 --> 00:49:20,620 Por fakti që unë kurrë nuk të vërtetë të ndaluar duke e quajtur veten është thelbësore 1111 00:49:20,620 --> 00:49:23,050 Dobësia këtu e këtij programi. 1112 00:49:23,050 --> 00:49:25,090 Pra, ku jemi duke shkuar me të gjithë këtë? 1113 00:49:25,090 --> 00:49:26,230 E pra, çfarë po ndodh realisht? 1114 00:49:26,230 --> 00:49:30,010 Kur kam thirrur funksionin rritje, si ne ishim duke bërë në këto shembuj, 1115 00:49:30,010 --> 00:49:33,290 Unë kam një vlerë si 1 që unë të kalojë in 1116 00:49:33,290 --> 00:49:35,820 Unë të kalojë në një kopje të numrit një të tillë. 1117 00:49:35,820 --> 00:49:37,080 Kështu ndodh poshtë. 1118 00:49:37,080 --> 00:49:40,390 Pra, le të shkojnë në shembull rritjeje. 1119 00:49:40,390 --> 00:49:44,230 Dhe ky djalë të drejtë mbi këtu. 1120 00:49:44,230 --> 00:49:46,800 Kështu që këtu është ajo që po ndodh në të vërtetë. 1121 00:49:46,800 --> 00:49:50,770 Kur kam quajtur rritje të, dhe unë të kalojë në x, pictorially çfarë është 1122 00:49:50,770 --> 00:49:53,660 ndodh këtu është kjo - 1123 00:49:53,660 --> 00:50:00,240 nëse kam vlerën e 1 ruajtur këtu, dhe unë në fakt e quajnë rritje të, e cila 1124 00:50:00,240 --> 00:50:02,680 tani quhet kor - 1125 00:50:02,680 --> 00:50:04,010 yeah, që është hedhur me off këtu. 1126 00:50:04,010 --> 00:50:06,750 Pra, le të quajmë këtë rritje të. 1127 00:50:06,750 --> 00:50:09,420 Dhe ne nuk e dimë se çfarë ky funksion tjetër do të jetë. 1128 00:50:09,420 --> 00:50:14,270 Pra, çfarë po ndodh në të vërtetë është këtu diku në kryesore, unë kam një copë të 1129 00:50:14,270 --> 00:50:16,670 kujtesës që është ruajtja e numrit 1. 1130 00:50:16,670 --> 00:50:19,730 Kur unë të kërkoj rritje të, unë jam duke përdorur një copë e kujtesës, por tani unë 1131 00:50:19,730 --> 00:50:20,840 kanë kopje të 1. 1132 00:50:20,840 --> 00:50:25,480 Kur unë rritje atë vlerë, kjo bëhet 2 - shkruar tmerrshëm në 1133 00:50:25,480 --> 00:50:26,420 Ekran këtu. 1134 00:50:26,420 --> 00:50:30,550 Por atëherë, çfarë ndodh sa më shpejt të kthimit të ardhura? 1135 00:50:30,550 --> 00:50:34,610 Kjo memorie vetëm merr dorëzuar përsëri në sistemin operativ, që do të thotë të gjitha 1136 00:50:34,610 --> 00:50:37,470 ju keni bërë asgjë të dobishme. 1137 00:50:37,470 --> 00:50:43,460 Ai që u përmbahet fillimisht në kryesor është ende në të vërtetë atje. 1138 00:50:43,460 --> 00:50:44,650 >> Pra, ku jemi duke shkuar me këtë? 1139 00:50:44,650 --> 00:50:49,400 E pra, ajo rezulton se në kujtesën ju e keni këtë të kthyer prapa rend të 1140 00:50:49,400 --> 00:50:50,940 bytes që ju mund të vënë sende in 1141 00:50:50,940 --> 00:50:53,760 Dhe kjo rezulton se ne kemi parë tashmë diçka që përfshin vënien 1142 00:50:53,760 --> 00:50:55,100 gjëra për të kthyer prapa për të kthyer prapa. 1143 00:50:55,100 --> 00:51:00,170 Çfarë është një varg, bazuar në një javë dhe tani dy javë? 1144 00:51:00,170 --> 00:51:01,840 Pra, kjo është vetëm një koleksion i karaktereve. 1145 00:51:01,840 --> 00:51:05,290 Pra, ajo rezulton, ashtu si ju mund të vënë numrat në kujtesë, në mënyrë të ngjashme ju mund të 1146 00:51:05,290 --> 00:51:06,900 vënë personazhet në kujtesë. 1147 00:51:06,900 --> 00:51:09,810 Dhe sapo kemi filluar karaktere vënë në kujtim të kthehet prapa për të mbështetur të 1148 00:51:09,810 --> 00:51:12,800 mbrapa, rezulton se duke përdorur të thjeshtë të gjërave si një për lak ose 1149 00:51:12,800 --> 00:51:14,510 një lak, ndërsa, ne mund iterate - 1150 00:51:14,510 --> 00:51:17,130 nga e majta në të djathtë mbi personazhet në një varg - 1151 00:51:17,130 --> 00:51:20,720 dhe të fillojnë të fërkoni ato në karaktere të ndryshme krejt. 1152 00:51:20,720 --> 00:51:25,550 A mund të bëhet B. B mund të bëhet C. Kështu që në fund të fundit, ne mund të marrë një 1153 00:51:25,550 --> 00:51:28,830 Dënimi Shqip që në fakt e bën kuptim dhe konvertohet secili prej atyre 1154 00:51:28,830 --> 00:51:32,440 letra në një kohë duke ecur nëpër kujtesë të kompjuterit tonë lihet 1155 00:51:32,440 --> 00:51:34,300 e drejta që në fakt encrypt. 1156 00:51:34,300 --> 00:51:36,590 >> Pra, le të marrin pesë-minutësh pushim tonë këtu, dhe kur kemi ardhur përsëri, ne do 1157 00:51:36,590 --> 00:51:39,060 të fillojnë këtë proces të përpiqen informacion. 1158 00:51:41,640 --> 00:51:43,180 >> Dakord. 1159 00:51:43,180 --> 00:51:48,440 Pra, para se të zhyten në të disa kripto dhe këto gjëra quhet vargjeve, le më 1160 00:51:48,440 --> 00:51:51,610 pauzë për çdo pyetje, sepse unë të ndjehen si unë me të vërtetë lloji i muddled disa prej 1161 00:51:51,610 --> 00:51:52,230 ato tema. 1162 00:51:52,230 --> 00:51:53,940 Pra, le të rregulluar tani në qoftë se ne mund. 1163 00:51:53,940 --> 00:51:56,480 Pra, ne vetëm të biseduar në lidhje me vlerat e kthimit. 1164 00:51:56,480 --> 00:51:58,630 Ne biseduam në lidhje me argumente. 1165 00:51:58,630 --> 00:52:02,330 Dhe kemi biseduar në lidhje me këtë nocion, të cilat ne do të kthehen në javët që 1166 00:52:02,330 --> 00:52:07,140 vijnë, të shikojnë kujtesës si një bandë e tërë e këtyre bërë pirg 1167 00:52:07,140 --> 00:52:08,540 tabaka, në mënyrë që të flasin. 1168 00:52:08,540 --> 00:52:13,460 Nga thellësia më lart, e tillë që çdo tabaka që merr vënë në rafte paraqet 1169 00:52:13,460 --> 00:52:15,160 një funksion që është aktualisht duke u quajtur. 1170 00:52:17,970 --> 00:52:20,300 Çdo pyetje? 1171 00:52:20,300 --> 00:52:22,890 Pra, si në lidhje - më lejoni të provoni duke i kërkuar një pyetje. 1172 00:52:22,890 --> 00:52:25,520 Unë mbaj cënuese se, por tani it's - you've parë të gjithë fytyrën e djalit. 1173 00:52:25,520 --> 00:52:27,020 Pra, ne do të kthehen në atë. 1174 00:52:27,020 --> 00:52:29,700 >> Pra më lejoni të bëj një pyetje këtu. 1175 00:52:29,700 --> 00:52:34,810 Më lejoni të lehtësuar këtë përsëri në atë që ishte para disa Q & A. tonë të parë 1176 00:52:34,810 --> 00:52:41,730 Dhe fakti që rritja ka hapur parantezë, numri int, e mbyllur 1177 00:52:41,730 --> 00:52:42,260 kllapa. 1178 00:52:42,260 --> 00:52:46,370 Çfarë do të përfaqësojnë numrin int? 1179 00:52:46,370 --> 00:52:47,250 [E padëgjueshme] 1180 00:52:47,250 --> 00:52:47,870 DAVID J. Malan: Një argument. 1181 00:52:47,870 --> 00:52:50,732 Mirë, por ajo është një argument? 1182 00:52:50,732 --> 00:52:51,620 [E padëgjueshme] 1183 00:52:51,620 --> 00:52:52,500 DAVID J. Malan: Na vjen keq, çfarë është ajo? 1184 00:52:52,500 --> 00:52:53,150 Kryetari 3: Diçka ju kaloni in 1185 00:52:53,150 --> 00:52:53,570 DAVID J. Malan: Mirë. 1186 00:52:53,570 --> 00:52:54,780 Pra, diçka që ju të kalojë in 1187 00:52:54,780 --> 00:52:56,560 Dhe më në përgjithësi, kjo është vetëm input. 1188 00:52:56,560 --> 00:52:59,860 Nëse jeni të shkruar një funksion dhe qëllimin që funksionojnë në jetën është të bëj 1189 00:52:59,860 --> 00:53:03,290 diçka pak të ndryshme çdo herë që e përdorin atë, atëherë mënyra e vetme për 1190 00:53:03,290 --> 00:53:07,710 që kjo të ndodhë me të vërtetë do të duket të jetë për të siguruar atë me të dhëna në mënyrë që ajo 1191 00:53:07,710 --> 00:53:10,180 mund të bëjë diçka të ndryshme me atë input çdo kohë. 1192 00:53:10,180 --> 00:53:13,590 >> Kështu që ju duhet të specifikoni dy gjëra kur një funksion merr inputet. 1193 00:53:13,590 --> 00:53:17,240 Ju duhet të specifikoni emrin që ju dëshironi të jepni kontributin për këtë, thjesht për 1194 00:53:17,240 --> 00:53:20,790 komoditet tuaj në mënyrë që ju mund t'i referohet asaj në funksion që ju 1195 00:53:20,790 --> 00:53:23,610 vetë janë shkruar, siç kam bërë këtu në linjë 32. 1196 00:53:23,610 --> 00:53:27,840 Por ju gjithashtu duhet të specifikojë llojin e vet, sepse C është një gjuhë programimi 1197 00:53:27,840 --> 00:53:28,840 që vetëm kërkon 1198 00:53:28,840 --> 00:53:31,810 se në qoftë se ju doni një ndryshore, ju duhet të tregoni se çfarë kompjuterin 1199 00:53:31,810 --> 00:53:32,790 Të dhënat shkruani ajo është, 1200 00:53:32,790 --> 00:53:35,540 në pjesën më të madhe në mënyrë që ajo e di se sa copa të 1201 00:53:35,540 --> 00:53:37,230 akordojë për këtë variabël. 1202 00:53:37,230 --> 00:53:38,600 Për shkak se ajo mund të jetë gjashtë - 1203 00:53:38,600 --> 00:53:39,990 keq, kjo nuk do të jetë gjashtë. 1204 00:53:39,990 --> 00:53:41,050 Ajo mund të jetë 16. 1205 00:53:41,050 --> 00:53:41,630 Kjo mund të jetë 8. 1206 00:53:41,630 --> 00:53:44,410 Ajo mund të jetë 32, edhe 64. 1207 00:53:44,410 --> 00:53:45,820 Por kompjuteri duhet të dini. 1208 00:53:45,820 --> 00:53:49,110 Tani int në anën e majtë përfaqëson çfarë, nga ana tjetër? 1209 00:53:52,825 --> 00:53:53,780 [E padëgjueshme] 1210 00:53:53,780 --> 00:53:54,570 DAVID J. Malan: Çfarë është ajo? 1211 00:53:54,570 --> 00:53:55,390 [E padëgjueshme] 1212 00:53:55,390 --> 00:53:57,920 DAVID J. Malan: Lloji i funksionit dhe, më konkretisht, 1213 00:53:57,920 --> 00:53:59,755 Lloji i prodhimit të saj. 1214 00:53:59,755 --> 00:54:00,220 Drejtë. 1215 00:54:00,220 --> 00:54:04,220 Pra, ndërsa gjë në kllapa përfaqëson input e saj, nëse ka ndonjë, të 1216 00:54:04,220 --> 00:54:06,640 Gjëja në të majtë paraqet prodhimin e saj. 1217 00:54:06,640 --> 00:54:10,560 Dhe në këtë rast, duket Rritja kthen një int. 1218 00:54:10,560 --> 00:54:14,590 Dhe kështu është lloji int kthimi i këtij funksioni. 1219 00:54:14,590 --> 00:54:16,090 >> Çfarë do të thotë të kthehen? 1220 00:54:16,090 --> 00:54:19,810 Fjalë për fjalë, ju përdorni kthimin fjalen. 1221 00:54:19,810 --> 00:54:24,640 Dhe pastaj, nëse ajo që ju janë duke u kthyer në të djathtë të fjalen është një 1222 00:54:24,640 --> 00:54:28,340 integer, atëherë kjo është me të vërtetë në përputhje me atë që kemi premtuar. 1223 00:54:28,340 --> 00:54:31,110 Ju nuk mund të bëni diçka si kjo - 1224 00:54:31,110 --> 00:54:32,280 Hello, World - 1225 00:54:32,280 --> 00:54:33,500 sepse kjo është një varg. 1226 00:54:33,500 --> 00:54:35,440 Natyrisht ajo nuk është një numër i plotë. 1227 00:54:35,440 --> 00:54:40,450 Pra me pak fjalë, barra është me të vërtetë për ne, programues, të jetë specifike si 1228 00:54:40,450 --> 00:54:44,730 për çfarë ne jemi kthyer dhe për të pastaj të shkoni në fakt në lidhje me kthimin e tij. 1229 00:54:44,730 --> 00:54:49,030 Dhe pastaj të bëjë një fëmijë më i qartë konteksti - 1230 00:54:49,030 --> 00:54:50,080 atje ai është përsëri. 1231 00:54:50,080 --> 00:54:51,060 Konteksti - 1232 00:54:51,060 --> 00:54:52,830 surprizë e madhe vjen në një moment të vetëm. 1233 00:54:52,830 --> 00:54:57,720 Konteksti këtu tani është se kujtesa e kompjuterit tuaj është, përsëri, një 1234 00:54:57,720 --> 00:54:59,070 Gigabyte, dy gigabajt, çfarëdo. 1235 00:54:59,070 --> 00:54:59,630 Ndoshta kjo është më shumë. 1236 00:54:59,630 --> 00:55:00,540 Ndoshta kjo është pak. 1237 00:55:00,540 --> 00:55:03,750 Por kompjuteri sheh atë si ka seksione të ndryshme. 1238 00:55:03,750 --> 00:55:04,860 Diçka shkon poshtë atje. 1239 00:55:04,860 --> 00:55:06,020 Diçka tjetër shkon deri atje. 1240 00:55:06,020 --> 00:55:07,540 Sende të ndryshme shkon në mes. 1241 00:55:07,540 --> 00:55:09,300 Dhe sot, ne vetëm fillojmë thënë këtë histori. 1242 00:55:09,300 --> 00:55:11,130 >> Por ne do të vijnë përsëri në këtë kohë mbi. 1243 00:55:11,130 --> 00:55:15,000 Tani për tani, pjesa e vetme e kujtesës me të vërtetë intereson është segmenti teksti 1244 00:55:15,000 --> 00:55:17,160 për shkak se vetëm përfaqëson zero dhe ato 1245 00:55:17,160 --> 00:55:18,460 tingëllimë që ka outputted. 1246 00:55:18,460 --> 00:55:21,570 Kështu që kur ju drejtuar një komandë në tastierë si a.out, ose ju të dyfishtë 1247 00:55:21,570 --> 00:55:25,350 klikoni një ikonë në Mac ose Windows OS, programi juaj është ngarkuar nga hard juaj 1248 00:55:25,350 --> 00:55:26,930 përzënë në RAM. 1249 00:55:26,930 --> 00:55:30,850 Dhe kjo është plopped në krye të RAM kompjuterit tuaj, në mënyrë që të flasin. 1250 00:55:30,850 --> 00:55:35,470 Tani ndërkohë, si programi juaj fillon drejtimin dhe kryesor merr quajtur në 1251 00:55:35,470 --> 00:55:39,240 program që ju ka shkruajtur ose Microsoft programi ose Apple shkroi, ndonjë prej saj 1252 00:55:39,240 --> 00:55:42,930 Variablat lokale të përfundojë deri atje poshtë në pjesën e poshtme kujtesën e kompjuterit tuaj. 1253 00:55:42,930 --> 00:55:46,490 Por në qoftë se bën thirrje edhe një funksion tjetër kryesor që vetë ka variabla ose 1254 00:55:46,490 --> 00:55:48,340 argumente, ata përfundojnë mbi të. 1255 00:55:48,340 --> 00:55:50,670 Dhe në qoftë se funksioni i quan diçka, ata përfundojnë mbi të, 1256 00:55:50,670 --> 00:55:51,840 mbi të, mbi atë. 1257 00:55:51,840 --> 00:55:56,100 Dhe vetëm një herë një funksion është bërë ekzekutimin e bën pirg të tabaka, kështu 1258 00:55:56,100 --> 00:55:58,320 për të folur, të fillojë të marrë më të ulët dhe më të ulët. 1259 00:55:58,320 --> 00:56:03,370 Dhe kjo është ajo që pastaj, në një fjalë, shpjegon se pse, kur ju telefononi kubike - 1260 00:56:03,370 --> 00:56:04,660 ose ju telefononi rritje të - 1261 00:56:04,660 --> 00:56:06,490 ju jeni duke kaluar në një kopje të vlerës. 1262 00:56:06,490 --> 00:56:09,840 Dhe se çfarë do të thotë pictorially është se ju jeni fjalë për fjalë me shkrim 1263 00:56:09,840 --> 00:56:14,540 numër 1 në një pjesë tjetër të memories, ndryshimin se 1 deri në 2, në rastin e 1264 00:56:14,540 --> 00:56:15,360 Rritja - 1265 00:56:15,360 --> 00:56:17,450 ose tek një 8, në rastin e kubike - 1266 00:56:17,450 --> 00:56:21,450 dhe pastaj duke hedhur atë larg kujtesë sa më shpejt të ardhura ose kubike 1267 00:56:21,450 --> 00:56:23,410 kthimit të funksionojë. 1268 00:56:23,410 --> 00:56:24,267 >> Pyetje. 1269 00:56:24,267 --> 00:56:25,517 [E padëgjueshme] 1270 00:56:28,090 --> 00:56:29,970 DAVID J. Malan: Ku - variablave globale janë ruajtur në atë që është 1271 00:56:29,970 --> 00:56:32,960 quhet aktualisht dhënat initialized ose të dhëna uninitialized. 1272 00:56:32,960 --> 00:56:35,900 Dallimi që, në qoftë se ju keni një ndryshore globale, dhe ju të caktojë atë 1273 00:56:35,900 --> 00:56:39,530 menjëherë një vlerë me të barabartë të nënshkruar, ai përfundon deri në krye atje. 1274 00:56:39,530 --> 00:56:43,390 Dhe në qoftë se ju vetëm thoni int x pikëpresje me asnjë vlerë, ajo përfundon deri pak 1275 00:56:43,390 --> 00:56:46,670 ulët në RAM thjesht nga Konventa. 1276 00:56:46,670 --> 00:56:49,308 Pyetje të tjera. 1277 00:56:49,308 --> 00:56:49,750 Dakord. 1278 00:56:49,750 --> 00:56:53,040 >> Pra, kjo foto do të kthehet si ne të merrni më të fuqishëm me atë që ne mund të bëjmë 1279 00:56:53,040 --> 00:56:53,830 me kompjuter. 1280 00:56:53,830 --> 00:56:58,790 Por tani për tani, le të kemi një intro të shkurtër për cryptography, një lloj specifik i 1281 00:56:58,790 --> 00:57:01,910 Kriptografia që nuk zgjidhë të gjitha problemet e botës, por e zgjidh 1282 00:57:01,910 --> 00:57:02,480 disa prej tyre. 1283 00:57:02,480 --> 00:57:06,090 Në këtë rast këtu, ne kemi diçka që quhet Kriptografia sekret kyç. 1284 00:57:06,090 --> 00:57:10,430 Dhe cryptography sekret kyç, siç sugjeron emri, rrjedh sigurinë e saj 1285 00:57:10,430 --> 00:57:11,330 nga një sekretit. 1286 00:57:11,330 --> 00:57:14,720 Kështu për shembull, nëse ju jeni kthyer në klasën e shkollës dhe ju jeni duke kaluar një 1287 00:57:14,720 --> 00:57:18,040 pak letra sekrete dashuri me djalë apo vajzë që ju jeni në dërrmuese të - në qoftë se ju 1288 00:57:18,040 --> 00:57:20,820 donte të ndodhë që përmes audiencë, ju ndoshta nuk do të shkruaj 1289 00:57:20,820 --> 00:57:24,120 tillë një shënim në gjuhën angleze ose çfarëdo gjuha juaj amtare është, përkundrazi, ju 1290 00:57:24,120 --> 00:57:25,800 mund të encrypt atë. 1291 00:57:25,800 --> 00:57:27,820 Ose ju mund të thjesht dërgoni atyre një mesazh shkrimor këto ditë. 1292 00:57:27,820 --> 00:57:30,310 Por ju mund të vërtetë të kalojë atyre një shënim të gjithë klasës. 1293 00:57:30,310 --> 00:57:33,820 Dhe për të bërë këtë të sigurt, në mënyrë të tillë që miqtë tuaj dhe mësimdhënësit 1294 00:57:33,820 --> 00:57:36,820 nuk e di se çfarë jeni duke shkruar, ju mund të dalë me një mjaft të thjeshtë 1295 00:57:36,820 --> 00:57:37,800 algorithm - 1296 00:57:37,800 --> 00:57:39,290 ri pse ju mund të jetë - 1297 00:57:39,290 --> 00:57:40,780 të vetëm të ngjitem fjalë. 1298 00:57:40,780 --> 00:57:44,390 Pra, në vend e të shkruarit A, ju mund të shkruani B. Në vend të B, ju mund të shkruani 1299 00:57:44,390 --> 00:57:46,670 C. Në vend të C, ju mund të shkruani D, dhe kështu me radhë. 1300 00:57:46,670 --> 00:57:50,020 Ose ju mund të dalë me një përkthim më të sofistikuar të letrave 1301 00:57:50,020 --> 00:57:51,300 shkronja të ndryshme. 1302 00:57:51,300 --> 00:57:55,440 Por kapur është djalë apo vajzë për të cilin ju jeni dërguar këtë shënim ka nevojë për 1303 00:57:55,440 --> 00:57:56,850 dini diçka. 1304 00:57:56,850 --> 00:57:59,620 Cila është ajo që, natyrisht? 1305 00:57:59,620 --> 00:58:01,400 Ashtu si, çfarë sekreti juaj. 1306 00:58:01,400 --> 00:58:04,620 Si, çfarë është kjo hartë në mes si dhe BS dhe CS dhe DS? 1307 00:58:04,620 --> 00:58:08,780 Është vetëm duke shtuar një të tillë, kështu që të flasin, për secilën prej letrave të shkuar nga 1308 00:58:08,780 --> 00:58:09,730 A në B, B në C? 1309 00:58:09,730 --> 00:58:11,350 A është më komplekse se kaq? 1310 00:58:11,350 --> 00:58:16,450 Pra, ju dhe shtrydhje tuaj duhet të ketë këtë informacion sekret. 1311 00:58:16,450 --> 00:58:18,170 Por ka një lloj Catch-22 këtu. 1312 00:58:18,170 --> 00:58:20,760 Nëse kjo është hera e parë që ju jeni dërguar këtë letër nëpërmjet dashurie 1313 00:58:20,760 --> 00:58:25,590 klasë, si është se djalë apo vajzë do të dini se çfarë sekret edhe është? 1314 00:58:25,590 --> 00:58:28,450 Pra, sekreti kryesor kripto nuk i zgjidh të gjitha problemet e botës. 1315 00:58:28,450 --> 00:58:30,490 Dhe ka në fakt një marrëdhënie që ne do të kthehen në drejtim të 1316 00:58:30,490 --> 00:58:31,370 Fundi Semestri-së. 1317 00:58:31,370 --> 00:58:35,970 >> Në mënyrë të ngjashme, kanë askush prej nesh ndoshta dërguar ndonjëherë një - 1318 00:58:35,970 --> 00:58:39,453 në mënyrë të ngjashme, mos shumica prej nesh e dinë dikush që punon, për shembull, në 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 Dhe akoma, shumë prej nesh kanë blerë sende ndoshta në Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 Dhe ne kemi qenë të mësuar të supozojmë se këto e-commerce 1322 00:58:45,670 --> 00:58:47,060 Transaksionet janë të sigurta. 1323 00:58:47,060 --> 00:58:47,210 Drejtë? 1324 00:58:47,210 --> 00:58:49,310 URL ndoshta thotë https. 1325 00:58:49,310 --> 00:58:51,590 Ka ndoshta një budalla pak ikonë dry diku. 1326 00:58:51,590 --> 00:58:54,680 Ka disa lloj cryptography siguruar informacion kartën tuaj të kreditit 1327 00:58:54,680 --> 00:58:56,980 mes jush dhe Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 Dhe akoma, në qoftë se cryptography përfshin ditur disa sekrete, por unë nuk 1329 00:59:00,410 --> 00:59:03,330 e di dikush në Amazon, dhe nuk e kam rregulluar me siguri ndonjë lloj të 1330 00:59:03,330 --> 00:59:07,350 Sekreti me dikë në Amazon, si është kompjuterin tim ose shfletuesi im bërë këtë? 1331 00:59:07,350 --> 00:59:10,100 E pra, rezulton se ka lloje të tjera të kriptografisë krejt se zgjidhin 1332 00:59:10,100 --> 00:59:10,740 se problemi. 1333 00:59:10,740 --> 00:59:13,610 Por për sot, ne do të përqëndrohet në një të thjeshtë, ku ju mund të organizoni në 1334 00:59:13,610 --> 00:59:18,480 përparuar të dini disa sekrete, si plus 1 ose disa hartës mes si dhe BS. 1335 00:59:18,480 --> 00:59:20,710 >> Dhe procesi i cryptography në përgjithësi përfshin këtë. 1336 00:59:20,710 --> 00:59:23,550 Ju keni disa plain text, përshkruar këtu në të majtë. 1337 00:59:23,550 --> 00:59:26,260 Ju drejtuar atë nëpërmjet disa lloj algoritmi ose procedurë 1338 00:59:26,260 --> 00:59:27,670 për encrypting atë. 1339 00:59:27,670 --> 00:59:31,390 Ndoshta kjo është vetëm një behet B, B bëhet C. Dhe pastaj ju të përfundojë me 1340 00:59:31,390 --> 00:59:32,260 shifrojë tekst. 1341 00:59:32,260 --> 00:59:36,450 Ndërkohë, pasi shtrydhje juaj merr shënim të fshehtë, ai ose ajo ka për të, atëherë 1342 00:59:36,450 --> 00:59:39,950 decrypt atë duke përmbysur përgjithësi se algoritmi në mënyrë që të merrni 1343 00:59:39,950 --> 00:59:41,640 mbështesë plain text. 1344 00:59:41,640 --> 00:59:43,860 Tani ka incarnations fizike të kësaj. 1345 00:59:43,860 --> 00:59:46,720 Për shembull, kjo është pak unazë sekret decoder. 1346 00:59:46,720 --> 00:59:50,060 Dhe kjo është një unazë në kuptimin se ka dy dials këtu. 1347 00:59:50,060 --> 00:59:53,630 Në periferi të jashtë këtë gjë, nuk ka shkronja A deri Z, 1348 00:59:53,630 --> 00:59:55,110 edhe pse ata janë në mënyrë të rastit. 1349 00:59:55,110 --> 00:59:58,410 Dhe në brendësi, nuk ka në fakt disa numra të tilla, se me këtë 1350 00:59:58,410 --> 01:00:02,940 Unaza, ju mund të lloj të kthehet jashtë, por jo brenda në mënyrë që të vijë deri 1351 01:00:02,940 --> 01:00:04,110 numra me letra. 1352 01:00:04,110 --> 01:00:08,290 Dhe në clip ju jeni gati për të parë - disa prej të cilave ju mund të keni parë 24/7 1353 01:00:08,290 --> 01:00:11,120 rreth sezonit të Krishtlindjeve nga një film të quajtur A Christmas Story. 1354 01:00:11,120 --> 01:00:16,050 Ju do të shihni se Ralphie vogël ishte aq i etur për të kuptoj se çfarë jetim pak 1355 01:00:16,050 --> 01:00:19,810 Mesazhi sekret Annie ishte për atë që kishte qenë komunikuar, unë mendoj se, në 1356 01:00:19,810 --> 01:00:22,810 formën e mesazheve numerike në një kuti serial. 1357 01:00:22,810 --> 01:00:26,760 Dhe keni pasur për të grumbulluar të gjitha kartat që erdhi pak 1358 01:00:26,760 --> 01:00:27,480 në kuti dritherash. 1359 01:00:27,480 --> 01:00:28,320 Ju kishte të postës ato in 1360 01:00:28,320 --> 01:00:31,060 Ju kishte për të marrë mbrapa unazën sekret decoder, kështu që ju mund të më në fund të kuptoj 1361 01:00:31,060 --> 01:00:34,190 se çfarë është në mes të hartës shkronja dhe numra, 1362 01:00:34,190 --> 01:00:35,420 ose letra dhe letra. 1363 01:00:35,420 --> 01:00:39,790 Kështu që unë ju jap këtë clip shkurtër nga një histori e Krishtlindjeve për të motivuar pset 2 dhe 1364 01:00:39,790 --> 01:00:42,340 diskutimi ynë, në një moment, të vargjeve. 1365 01:00:42,340 --> 01:00:43,773 Pra, këtu kemi Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [Rishikim video] 1367 01:00:44,126 --> 01:00:47,470 -Jini të njohur për të gjithë dhe i ndryshëm se Ralph Parker emërohet një 1368 01:00:47,470 --> 01:00:50,690 anëtar i Vogël Rrethi Orphan Annie Sekrete dhe ka të drejtë për të gjithë 1369 01:00:50,690 --> 01:00:53,500 nderon dhe përfitimet ndodh me to. 1370 01:00:53,500 --> 01:00:56,040 -Nënshkruar, Annie pak jetimë. 1371 01:00:56,040 --> 01:00:58,730 Bashkënënshkruara, Pierre Andre! 1372 01:00:58,730 --> 01:01:00,150 Në bojë! 1373 01:01:00,150 --> 01:01:02,910 Nderon dhe përfitimet, tashmë në moshën nëntë. 1374 01:01:09,970 --> 01:01:10,730 Come on, le të merrni më me të. 1375 01:01:10,730 --> 01:01:15,000 Unë nuk kam nevojë të gjithë jazz se rreth kontrabandistëve dhe piratët. 1376 01:01:15,000 --> 01:01:17,624 -Dëgjoni natën nesër për aventurë përmbyllëse të Zi 1377 01:01:17,624 --> 01:01:19,710 Pirate Ship. 1378 01:01:19,710 --> 01:01:23,380 Tani është koha për mesazhin sekret Annie për ju anëtarë 1379 01:01:23,380 --> 01:01:25,670 i rrethit Sekret. 1380 01:01:25,670 --> 01:01:30,260 Mbani mend, fëmijët, vetëm anëtarët e rrethit Sekret Annie mund të deshifroj 1381 01:01:30,260 --> 01:01:31,660 Mesazhi sekret Annie. 1382 01:01:31,660 --> 01:01:36,230 Mos harroni, Annie është në varësi të ju. 1383 01:01:36,230 --> 01:01:38,720 Vendosur këmbët tuaja në B2. 1384 01:01:38,720 --> 01:01:41,040 Këtu është mesazhi. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -Unë jam në takimin e parë time të fshehtë. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 Pierre-sonte ishte në zë të madh. 1389 01:01:51,700 --> 01:01:54,890 Unë mund të them se mesazhi sonte ishte me të vërtetë e rëndësishme. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 Kjo është një mesazh nga Annie veten. 1392 01:01:58,590 --> 01:01:59,840 Mos harroni, mos tregoni askujt. 1393 01:02:04,570 --> 01:02:08,750 -90 Sekonda më vonë, unë jam në dhomën e vetme në shtëpi, ku një djalë i nëntë 1394 01:02:08,750 --> 01:02:12,980 mund të ulem në jetën private dhe deshifroj. 1395 01:02:12,980 --> 01:02:17,130 Aha, B. unë shkova për të ardhshëm. 1396 01:02:17,130 --> 01:02:20,330 E. Fjala e parë është jetë. 1397 01:02:20,330 --> 01:02:22,670 S. Ajo u vjen më lehtë tani. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Oh, eja, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 Unë kam për të shkuar. 1401 01:02:28,430 --> 01:02:30,350 -Do të jetë e drejtë poshtë, ma. 1402 01:02:30,350 --> 01:02:33,720 -Gee kampion. 1403 01:02:33,720 --> 01:02:38,270 -T, O. Jetë i sigurt për të. 1404 01:02:38,270 --> 01:02:40,000 Jetë i sigurt për çfarë? 1405 01:02:40,000 --> 01:02:42,105 Cili ishte Annie Pak jetim duke u përpjekur për të thënë? 1406 01:02:42,105 --> 01:02:43,095 Jetë i sigurt për çfarë? 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 Randy ka marrë për të shkuar. 1409 01:02:44,580 --> 01:02:45,570 Do ju lutem të dalë? 1410 01:02:45,570 --> 01:02:46,560 -Në rregull, ma. 1411 01:02:46,560 --> 01:02:48,540 Unë do të jetë e drejtë jashtë. 1412 01:02:48,540 --> 01:02:50,580 -Unë kam qenë duke iu afruar tani. 1413 01:02:50,580 --> 01:02:52,550 Tensioni ishte e tmerrshme. 1414 01:02:52,550 --> 01:02:53,355 Çfarë ishte kjo? 1415 01:02:53,355 --> 01:02:56,315 Fati i planetit mund të ul receptorin e telefonit në ekuilibër. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 Randy e mori për të shkuar. 1418 01:02:59,165 --> 01:03:02,310 -Do të jetë e drejtë jashtë, për të qarë me zë të lartë. 1419 01:03:02,310 --> 01:03:04,000 -Gee, pothuajse atje. 1420 01:03:04,000 --> 01:03:05,180 Gishtat e mi fluturoi. 1421 01:03:05,180 --> 01:03:07,150 Mendja ime ishte një kurth çeliku. 1422 01:03:07,150 --> 01:03:08,790 Çdo pore vibrated. 1423 01:03:08,790 --> 01:03:10,040 Ajo ishte pothuajse e qartë. 1424 01:03:10,040 --> 01:03:13,400 Po, po, po, po. 1425 01:03:13,400 --> 01:03:18,960 -Të jetë i sigurt për të pirë Ovaltine tuaj. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 Një tregtar i pavlerë? 1428 01:03:28,200 --> 01:03:29,640 Bir i një kurvë. 1429 01:03:29,640 --> 01:03:33,340 [VIDEO END rishikim] 1430 01:03:33,340 --> 01:03:36,040 >> DAVID J. Malan: Pra, nuk kemi cryptography. 1431 01:03:36,040 --> 01:03:39,670 Pra, si në një kompjuter mund të shkoni në lidhje me zbatimin ose 1432 01:03:39,670 --> 01:03:40,950 përfaqësojnë gjëra të tilla si kjo? 1433 01:03:40,950 --> 01:03:44,430 E pra, ne kemi nevojë për një mënyrë për të shprehur veten pak më shumë se sa 1434 01:03:44,430 --> 01:03:46,420 Variablat tona deri tani kanë lejuar. 1435 01:03:46,420 --> 01:03:47,370 Ne kemi pasur ints. 1436 01:03:47,370 --> 01:03:48,380 Ne kemi pasur chars. 1437 01:03:48,380 --> 01:03:50,790 Ne kemi pasur gjithandej dhe dyshe dhe disa të tjerë. 1438 01:03:50,790 --> 01:03:55,050 Por ato janë pjesë individuale të kujtesës që vërtetë nuk na lejojnë të 1439 01:03:55,050 --> 01:03:58,010 shprehin gjëra të tilla si fjalë dhe fjali dhe fraza. 1440 01:03:58,010 --> 01:04:00,200 Në të vërtetë, ne kemi quajtur gjëra të tilla vargje. 1441 01:04:00,200 --> 01:04:03,650 Por ne premtuar se kjo është me të vërtetë vetëm një thjeshtësim në CS50 1442 01:04:03,650 --> 01:04:07,020 Biblioteka që ne jemi duke synuar për të zhvishem përsëri. 1443 01:04:07,020 --> 01:04:08,970 >> Dhe kështu le të fillojë për të bërë këtë këtu. 1444 01:04:08,970 --> 01:04:11,130 Më lejoni të shkoj përpara dhe të hapur një skedë - 1445 01:04:11,130 --> 01:04:13,770 të gjitha këto fotografi janë në dispozicion si online të zakonshme - 1446 01:04:13,770 --> 01:04:19,120 array.c quajtur për të zgjidhur një problem të palidhur me vargjet por që pikturon një 1447 01:04:19,120 --> 01:04:23,040 foto ketu se si ne mund të përdorim diçka të quajtur një rrjet. 1448 01:04:23,040 --> 01:04:25,530 Një grup është një lloj i të dhënave. 1449 01:04:25,530 --> 01:04:31,320 Kjo është një lloj i variable, në terezi, se ka lloje të shumta të vogla të dhënave 1450 01:04:31,320 --> 01:04:34,150 në brendësi të saj për të kthyer prapa për të kthyer prapa. 1451 01:04:34,150 --> 01:04:37,700 Kështu për shembull, në qoftë se ne duam të shkruani një program që ju jep pak tuaj 1452 01:04:37,700 --> 01:04:42,110 quiz mesatare për një kurs si 50 qe ka dy kuize, ju mund shumë lehtë 1453 01:04:42,110 --> 01:04:45,170 shkruaj këtë program - bazuar edhe në disa nga materiali i javës së kaluar - 1454 01:04:45,170 --> 01:04:47,770 duke përdorur GetInt dhe nja dy variablave. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, int quiz2, dhe kjo është goxha e thjeshtë. 1456 01:04:51,920 --> 01:04:55,930 Kjo është ndoshta 10, 20 rreshta të kodit, max, për të zbatuar një program që kërkon 1457 01:04:55,930 --> 01:05:01,170 përdoruesit për dy rezultatet quiz dhe pastaj llogarit mesataren e tyre duke shtuar ato 1458 01:05:01,170 --> 01:05:03,850 së bashku, ndarë nga dy, dhe pastaj shtypjen rezultatet. 1459 01:05:03,850 --> 01:05:06,380 Ne ndoshta mund të bëjë që shumë lehtësisht tani pas 1460 01:05:06,380 --> 01:05:07,510 disa Numri i minutave. 1461 01:05:07,510 --> 01:05:11,005 >> Por problemi është se mendoj që 50 kishte tre apo katër kuize. 1462 01:05:11,005 --> 01:05:13,510 Supozoni se ju të kërkuar për të përdorur të njëjtin program për një klasë që kishte 1463 01:05:13,510 --> 01:05:14,850 kuize javore. 1464 01:05:14,850 --> 01:05:16,610 Mendoni për një klasë që ka kuize javore. 1465 01:05:16,610 --> 01:05:20,610 Nëse ka si 16 apo më shumë javë në një semestër, tani ju keni 16 variabla - 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 Sa më shpejt që ju të filloni duke parë këtë tepricë, kjo kopjimi dhe pasting 1468 01:05:27,560 --> 01:05:31,390 e kodit, ajo duhet të fillojë të bëjë që ju dëshironi ka qenë një mënyrë më të mirë. 1469 01:05:31,390 --> 01:05:33,930 Dhe fatmirësisht, për shkak të vargjeve, nuk është. 1470 01:05:33,930 --> 01:05:34,980 Pra, le ta bëjmë këtë. 1471 01:05:34,980 --> 01:05:38,430 Së pari, më lejoni të prezantoj një gjë shumë të thjeshtë që ne nuk kemi përdorur deri më tani, 1472 01:05:38,430 --> 01:05:40,140 por ju do të shihni atë herë pas here në kodin. 1473 01:05:40,140 --> 01:05:42,360 Kjo është ajo që është quajtur përgjithësisht një konstante. 1474 01:05:42,360 --> 01:05:45,790 Pra, kjo është një konstante në kuptimin që kjo vlerë nuk ndryshon. 1475 01:05:45,790 --> 01:05:49,210 Konventa e njeriut kur të krijuar një konstante është që të përdorin të gjitha kapitalin 1476 01:05:49,210 --> 01:05:51,940 letra, vetëm në mënyrë që me të vërtetë qëndron në kodin tuaj. 1477 01:05:51,940 --> 01:05:55,960 Dhe fjalen e veçantë që keni përdorur është në C # define. 1478 01:05:55,960 --> 01:06:00,250 Pra, nëse ju thoni # define, atëherë një hapësirë, pastaj fjalën që ju dëshironi të përdorni për 1479 01:06:00,250 --> 01:06:03,260 Emri konstante, dhe pastaj vlera e vazhdueshme. 1480 01:06:03,260 --> 01:06:06,180 Pra njoftim, kjo është e ndryshme nga diçka për caktimin e një ndryshore. 1481 01:06:06,180 --> 01:06:07,020 Nuk ka asnjë të barabartë shenjë. 1482 01:06:07,020 --> 01:06:08,240 Nuk ka pikëpresje. 1483 01:06:08,240 --> 01:06:11,410 Kjo është ajo që është e njohur përgjithësisht si një direktivë Preprocessor, por më shumë në 1484 01:06:11,410 --> 01:06:12,210 se një tjetër kohë. 1485 01:06:12,210 --> 01:06:18,540 >> Tani për tani, kjo krijon një vlerë pandryshueshme quajtur KUIZE aktuale e të cilit 1486 01:06:18,540 --> 01:06:19,940 vlera numerike është 2. 1487 01:06:19,940 --> 01:06:24,020 Pra, kudo që ju shihni kuize, kuize, kuize gjatë këtij file, kjo është 1488 01:06:24,020 --> 01:06:25,410 vetëm numri 2. 1489 01:06:25,410 --> 01:06:28,100 Tani, në qoftë se unë shoh në kryesore tani, le të shohim se si punon kjo. 1490 01:06:28,100 --> 01:06:29,500 Në fillim, ai duket pak i fshehtë. 1491 01:06:29,500 --> 01:06:31,340 Por kjo është e gjitha gjëra që nga java e parë. 1492 01:06:31,340 --> 01:06:32,710 Të kërkojë nga shfrytëzuesi për klasat. 1493 01:06:32,710 --> 01:06:33,630 Si e bëjmë këtë? 1494 01:06:33,630 --> 01:06:35,470 E pra, në përputhje 22 - 1495 01:06:35,470 --> 01:06:37,210 kjo është me të vërtetë pjesë e lëng - 1496 01:06:37,210 --> 01:06:40,960 Unë deklaroj një noton, por jo vetëm një noton të vetme. 1497 01:06:40,960 --> 01:06:44,620 Unë jam deklaruar, në vend, një grup i vlerave pikë lundrues. 1498 01:06:44,620 --> 01:06:49,100 Kjo variabël do të quhet klasat, siç nënkuptohet këtu. 1499 01:06:49,100 --> 01:06:53,080 Por pjesa e vetme e sintaksës së re, atëherë janë këto kllapa katrore, fakti 1500 01:06:53,080 --> 01:06:59,350 që unë kam thënë nota noton dhe pastaj parantezë të hapur dhe pastaj një numër. 1501 01:06:59,350 --> 01:07:02,460 Njoftim, nëse kjo është një konstante, kjo është vetëm si ne e bëmë këtë. 1502 01:07:02,460 --> 01:07:06,890 Kjo do të thotë kompjuteri hej, jepni dy gjithandej, dhe le të thërrasë kolektive 1503 01:07:06,890 --> 01:07:08,220 ato notat. 1504 01:07:08,220 --> 01:07:11,920 Kjo është në kontrast me një proces shumë më të lodhshme si kjo. 1505 01:07:11,920 --> 01:07:15,850 Noton Grade1, noton Grade2, dhe kështu me radhë. 1506 01:07:15,850 --> 01:07:20,010 Kështu një grup na lejon për të zbatuar këtë ide, por shumë më pak messily, në 1507 01:07:20,010 --> 01:07:24,630 një mënyrë të tillë që ne mund të shkruani një linjë të kodit në vend të, të themi, 16 për një 16 1508 01:07:24,630 --> 01:07:25,740 Semestri javë. 1509 01:07:25,740 --> 01:07:29,950 Kështu që unë nuk dua të vështirë-kodin 2 sepse në qoftë se ju mendoni rreth kësaj tani 1510 01:07:29,950 --> 01:07:34,160 logjikisht - mendoj vitin e ardhshëm CS50 ndryshime në 3 kuize vend. 1511 01:07:34,160 --> 01:07:35,510 Dhe kam pasur numrin 2 here. 1512 01:07:35,510 --> 01:07:36,600 I kishte numrin 2 here. 1513 01:07:36,600 --> 01:07:37,580 I kishte numrin 2 here. 1514 01:07:37,580 --> 01:07:38,560 I kishte numrin 2 here. 1515 01:07:38,560 --> 01:07:43,180 Kjo bëhet shumë e lodhshme dhe shumë e lehtë për të vidhos deri dhe për të ndryshuar aksidentalisht 1516 01:07:43,180 --> 01:07:47,690 një vlerë të 3 dhe të humbasë disa vlera të tjera të 2. 1517 01:07:47,690 --> 01:07:52,460 Kështu që unë jam duke shkuar për këtë vend abstrakt dhe larg përdorni këtë konstante që, siç saj 1518 01:07:52,460 --> 01:07:54,120 emri sugjeron, nuk ndryshon kurrë. 1519 01:07:54,120 --> 01:07:57,710 Dhe tani, pa marrë parasysh se a kemi të ndryshme kuize këtë vit ose tjetër, unë 1520 01:07:57,710 --> 01:08:01,210 vetëm duhet për të ndryshuar atë në një vend, deri këtu në krye. 1521 01:08:01,210 --> 01:08:02,720 >> Pra, kjo është e gjitha është konstante. 1522 01:08:02,720 --> 01:08:08,680 Ndërkohë, tipar i ri konceptual është ai i një grup. 1523 01:08:08,680 --> 01:08:14,660 Pra kllapa katrore jepni këtë gjithandej shumë dhe lejon mua kolektive 1524 01:08:14,660 --> 01:08:16,630 quajmë ato notat këtu. 1525 01:08:16,630 --> 01:08:17,990 Pra, tani le të shohim se çfarë unë jam duke shkuar për të bërë. 1526 01:08:17,990 --> 01:08:20,359 Këtu në linjë 24 është fillimi i një për lak. 1527 01:08:20,359 --> 01:08:22,260 Kjo është me të vërtetë i zbukuruar asgjë. 1528 01:08:22,260 --> 01:08:25,060 Është vetëm duke përdorur kuize vend të një numri të vështirë-koduar. 1529 01:08:25,060 --> 01:08:27,790 Por nuk ka asgjë intelektualisht të ndryshme ka nga java e fundit. 1530 01:08:27,790 --> 01:08:29,040 Kjo është vetëm printf. 1531 01:08:29,040 --> 01:08:35,490 Pra printf ("% d quiz Numri i% d"), sepse unë vetëm dua të shtypura nga më jepni quiz 1532 01:08:35,490 --> 01:08:38,050 Numri një nga dy dhe pastaj dy nga dy. 1533 01:08:38,050 --> 01:08:39,850 Pra, kjo është thjesht një gjë e estetike. 1534 01:08:39,850 --> 01:08:42,500 Por pjesa interesante tani është në linjë 27. 1535 01:08:42,500 --> 01:08:48,310 Në mënyrë që të plotësojë një nga dy placeholders me një lundrues-pikë 1536 01:08:48,310 --> 01:08:51,029 vlera, ju përsëri përdorni kllapa katrore. 1537 01:08:51,029 --> 01:08:55,620 Në këtë rast, unë jam i përdorur për lak, sepse kjo ka filluar me i barabartë 1538 01:08:55,620 --> 01:08:57,560 çfarë vlera, me sa duket? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> Kështu në përsëritje e parë të këtij loop, kjo është sikur unë 1541 01:09:01,350 --> 01:09:02,689 shkroi këtë në kodin. 1542 01:09:02,689 --> 01:09:05,580 Por në përsëritje e dytë të këtij loop, kjo është sikur unë 1543 01:09:05,580 --> 01:09:07,750 shkroi këtë në kodin tim. 1544 01:09:07,750 --> 01:09:10,750 Por fakti që unë jam duke përdorur një ndryshore është e përsosur, sepse, si emër 1545 01:09:10,750 --> 01:09:14,300 sugjeron, është që ndryshojnë vlerën e saj në çdo përsëritje. 1546 01:09:14,300 --> 01:09:17,370 Kështu që unë jam duke plotësuar këtë grup një vend në një kohë. 1547 01:09:17,370 --> 01:09:18,910 Çfarë e bën këtë rrjet të duken si? 1548 01:09:18,910 --> 01:09:21,430 E pra, arsyeja që unë tërhoqi këtë drejtkëndësh super të thjeshtë në ekran këtu 1549 01:09:21,430 --> 01:09:23,350 para se të ishte për këtë arsye. 1550 01:09:23,350 --> 01:09:27,279 Një grup është vetëm një copë e kujtesës pasuar nga një tjetër copë e kujtesës, 1551 01:09:27,279 --> 01:09:30,109 pasuar nga një tjetër copë e kujtesës, dhe kështu me radhë. 1552 01:09:30,109 --> 01:09:35,260 Pra, nëse array ime është e madhësisë 2, në këtë rast këtu, të gjitha unë do të jetë bërë nga 1553 01:09:35,260 --> 01:09:37,590 shtypni në rezultatet e mia quiz, si këtu. 1554 01:09:37,590 --> 01:09:39,430 I kam 100 për këtë një të tillë. 1555 01:09:39,430 --> 01:09:42,020 Dhe pastaj kam marrë një 99 në këtë një. 1556 01:09:42,020 --> 01:09:46,040 Atëherë kjo memorie nuk mund edhe të përdoret, sepse unë kam kërkuar vetëm 1557 01:09:46,040 --> 01:09:48,689 kompjuter për një grup të madhësisë 2. 1558 01:09:48,689 --> 01:09:50,180 Këto sheshet janë ende atje. 1559 01:09:50,180 --> 01:09:50,340 Drejtë? 1560 01:09:50,340 --> 01:09:52,500 Ju ende keni dy gigabajt të RAM, edhe në qoftë se ju jeni vetëm 1561 01:09:52,500 --> 01:09:53,979 kërkuar dy gjithandej. 1562 01:09:53,979 --> 01:09:58,710 Pra, ideja prapa vargjeve është se kompjuteri merr vetëm një copë e kujtesës 1563 01:09:58,710 --> 01:10:03,230 dhe pastaj apportions copa të vogla për të kthyer prapa për të kthyer prapa. 1564 01:10:03,230 --> 01:10:04,740 Dhe kështu kjo është e gjitha një grup është. 1565 01:10:04,740 --> 01:10:09,080 Kjo është një copë e puqur e kujtesës, brenda të cilat ju mund të vënë gjërat. 1566 01:10:09,080 --> 01:10:12,400 >> Tani kjo ndodh vetëm atëherë bëni aritmetikë disa mërzitshëm. 1567 01:10:12,400 --> 01:10:16,170 Nëse unë lëvizni poshtë këtu, ky është vendi ku unë pastaj iterate mbi array. 1568 01:10:16,170 --> 01:10:19,410 Kam ardhur deri me përmbledhjen e të gjitha vlerave në grup. 1569 01:10:19,410 --> 01:10:22,390 Dhe atëherë unë të përdorni funksionin e rrumbullakët këtu për të vërtetë të bëjnë të 1570 01:10:22,390 --> 01:10:23,940 përmbledhur ndarë nga kuize. 1571 01:10:23,940 --> 01:10:27,450 Por më lejoni të tundë dorën time në atë, si lloj aritmetike të mjaftueshme për tani. 1572 01:10:27,450 --> 01:10:30,010 Por të gjitha që është bërë për mua në fund të fundit është një mesatare informatikë. 1573 01:10:30,010 --> 01:10:33,640 Quiz Pra, së pari plus quiz dytë, ndarë nga 2, dhe pastaj shtypje 1574 01:10:33,640 --> 01:10:34,700 ajo jashtë si një int. 1575 01:10:34,700 --> 01:10:39,030 >> Por le tani tranzicioni në një shembull tjetër të quajtur string1, 1576 01:10:39,030 --> 01:10:42,370 e cila paraqet një tablo të ngjashme, por vargjet duke përdorur. 1577 01:10:42,370 --> 01:10:45,550 Më lejoni të shkojnë përpara dhe do të thjeshtojë këtë për vetëm një moment. 1578 01:10:45,550 --> 01:10:48,340 Dhe fale vulë për tani. 1579 01:10:48,340 --> 01:10:52,280 Njoftimi në linjë 19 të këtij shembull, unë të marrë një varg nga përdoruesit. 1580 01:10:52,280 --> 01:10:55,780 Por vëreni se çfarë jam duke bërë më tej në linjat 22 tutje. 1581 01:10:55,780 --> 01:11:00,260 Unë jam në të vërtetë nga i iterating deri - dhe kjo është një mashtrim i ri - 1582 01:11:00,260 --> 01:11:02,730 strlen, gjatësia string. 1583 01:11:02,730 --> 01:11:07,010 Ky është një funksion që vjen me C se në qoftë se ju të kalojë atë një varg, kjo tregon 1584 01:11:07,010 --> 01:11:08,950 ju sa karaktere janë në atë varg. 1585 01:11:08,950 --> 01:11:09,440 Kjo është e gjitha. 1586 01:11:09,440 --> 01:11:12,520 Fakti që kjo është strlen vend të gjatësisë string është vetëm për shkak se ajo është 1587 01:11:12,520 --> 01:11:13,040 ngjeshur shumë. 1588 01:11:13,040 --> 01:11:17,100 30 vjet më parë, njerëzit i pëlqente të shkruajë gjëra si shkurtimisht të jetë e mundur. 1589 01:11:17,100 --> 01:11:19,080 Pra, ne kemi mbajtur atë konventë këtu. 1590 01:11:19,080 --> 01:11:21,730 i + + thjesht do të thotë shtim i në çdo përsëritje. 1591 01:11:21,730 --> 01:11:24,310 Dhe tani vini re kjo, e cila është me të vërtetë interesante. 1592 01:11:24,310 --> 01:11:28,730 Pra, në linjë 24, unë them kompjuter, jepni një karakter, tetë 1593 01:11:28,730 --> 01:11:30,770 bit, dhe e quajti atë c. 1594 01:11:30,770 --> 01:11:35,370 Por çfarë është kjo në anën e djathtë duke thënë? 1595 01:11:35,370 --> 01:11:38,150 Në anglisht, çfarë bën që përfaqëson? 1596 01:11:38,150 --> 01:11:40,070 [E padëgjueshme] 1597 01:11:40,070 --> 01:11:40,490 DAVID J. Malan: Pikërisht. 1598 01:11:40,490 --> 01:11:42,390 Jepni karakterin e parë në grup. 1599 01:11:42,390 --> 01:11:45,400 Ose më në përgjithësi, më jep karakter i-th në rrjet. 1600 01:11:45,400 --> 01:11:48,230 Dhe të kuptojë se është e rëndësishme tani se si shkencëtarët kompjuter, ne jemi të vërtetë 1601 01:11:48,230 --> 01:11:49,330 numëruar nga 0. 1602 01:11:49,330 --> 01:11:51,290 Ju nuk keni liri tani për të fillojnë të bëjnë këtë. 1603 01:11:51,290 --> 01:11:54,580 Tani ju duhet të sillen në përputhje me pritjet e kompjuterit dhe 1604 01:11:54,580 --> 01:11:58,010 numërimin nga zero sepse [0] do të jetë i pari 1605 01:11:58,010 --> 01:11:59,670 karakter në një varg. 1606 01:11:59,670 --> 01:12:01,320 [1] do të jetë i dytë. 1607 01:12:01,320 --> 01:12:03,610 [2] do të jetë i treti, dhe kështu me radhë. 1608 01:12:03,610 --> 01:12:08,840 Pra këtë program, në qoftë se unë përpilojnë atë - kjo është, përsëri, string1. 1609 01:12:08,840 --> 01:12:11,040 >> Pra, ti string1. 1610 01:12:11,040 --> 01:12:16,730 Dhe tani kam drejtuar string1 në dritaren time terminal. 1611 01:12:16,730 --> 01:12:19,180 Është duke pritur për të dhëna, kështu që unë jam duke shkuar për të shkruani në, të themi, Davidit. 1612 01:12:19,180 --> 01:12:20,080 Enter. 1613 01:12:20,080 --> 01:12:23,350 Dhe tani ajo printon David të gjitha në linja të ndryshme, sepse 1614 01:12:23,350 --> 01:12:24,430 njoftim se çfarë unë jam duke bërë. 1615 01:12:24,430 --> 01:12:27,510 Unë jam shtypjen një karakter në një kohë. 1616 01:12:27,510 --> 01:12:29,100 Tani ne nuk do të shkojmë në detaje sot për këtë. 1617 01:12:29,100 --> 01:12:31,610 Por unë fshihet një moment më parë këtë kontroll këtu. 1618 01:12:31,610 --> 01:12:36,310 Ajo rezulton se në qoftë se përdoruesi është misbehaving, kundërshtuese, ose vetëm 1619 01:12:36,310 --> 01:12:41,780 hutuar, ju në fakt mund të dështojë për të dhënë një varg të disa gjatësi. 1620 01:12:41,780 --> 01:12:43,640 Nëse ju goditi kyç të gabuar në tastierë, ju mund të jepni 1621 01:12:43,640 --> 01:12:44,390 asnjë string në të gjitha. 1622 01:12:44,390 --> 01:12:47,790 Ose në qoftë se ju jeni me qëllim të keq, ju mund të provoni për të ngjitur në vlerë një Gigabyte së një 1623 01:12:47,790 --> 01:12:49,380 ese për të mbushur këtë varg. 1624 01:12:49,380 --> 01:12:52,060 Dhe në qoftë se kompjuteri shkon jashtë kujtesës, del se ne jemi duke shkuar 1625 01:12:52,060 --> 01:12:54,310 për të marrë përsëri këtë vlerë të veçantë të quajtur null. 1626 01:12:54,310 --> 01:12:57,550 Kështu që tani për tani, vetëm e di se nuk është kjo vlerë të veçantë të quajtur null që 1627 01:12:57,550 --> 01:13:01,000 do të na lejojë që të kontrolloni, kur ne jemi jashtë kujtesës, ndër të tjera. 1628 01:13:01,000 --> 01:13:07,330 >> Por në qoftë se unë i hapur deri tani string2, vëreni një ndryshim këtu. 1629 01:13:07,330 --> 01:13:09,760 Vini re një ndryshim këtu me string2. 1630 01:13:09,760 --> 01:13:13,260 Me string2, kjo për lak është pak më ndryshe. 1631 01:13:13,260 --> 01:13:16,350 Më lejoni të fshini nulls kështu që ne mund të flasim për ato të një tjetër kohë. 1632 01:13:16,350 --> 01:13:18,460 Por ajo që është ndryshe rreth lak për këtë herë? 1633 01:13:21,580 --> 01:13:23,160 Dhe unë mund të shkoni përsëri në shembullin e mëparshëm. 1634 01:13:23,160 --> 01:13:24,800 Pra, kjo është versioni dy. 1635 01:13:24,800 --> 01:13:27,020 Ky është versioni njëri. 1636 01:13:27,020 --> 01:13:31,935 Një, dy, një dy. 1637 01:13:35,030 --> 01:13:38,240 Pra, thirrja është strlen ku? 1638 01:13:38,240 --> 01:13:40,420 Kjo është në pjesën e parë të për lak. 1639 01:13:40,420 --> 01:13:43,060 Çdo mendime se pse unë jam duke bërë këtë? 1640 01:13:43,060 --> 01:13:43,690 Po. 1641 01:13:43,690 --> 01:13:46,010 [E padëgjueshme] 1642 01:13:46,010 --> 01:13:47,630 DAVID J. Malan: Pra ne nuk e quajmë funksion çdo herë të vetme. 1643 01:13:47,630 --> 01:13:48,040 Saktësisht. 1644 01:13:48,040 --> 01:13:50,350 Kujtojnë nga për sythe se ata janë super të thjeshtë një herë ju lloj i 1645 01:13:50,350 --> 01:13:52,180 kuptojnë se kjo është initialization, të 1646 01:13:52,180 --> 01:13:53,330 kusht, dhe freskimin. 1647 01:13:53,330 --> 01:13:55,430 Problemi është se gjendja ndodh në çdo 1648 01:13:55,430 --> 01:13:56,600 përsëritje e lakut. 1649 01:13:56,600 --> 01:13:59,930 Dhe kështu në këtë shembull këtu, çfarë është e keqe për faktin 1650 01:13:59,930 --> 01:14:03,500 se kjo është gjendja ime? 1651 01:14:03,500 --> 01:14:05,920 Ju jeni duke bërë thirrje strlen përsëri dhe përsëri dhe përsëri. 1652 01:14:05,920 --> 01:14:08,990 Por një herë unë kam shtypur në David, gjatësia e vargut që është pesë. 1653 01:14:08,990 --> 01:14:11,560 Dhe kjo nuk do të ndryshojë në çdo ripërsëritje e lak, sepse 1654 01:14:11,560 --> 01:14:15,560 string është ende D-A-V-I-D. Pra, kjo është një aluzion në atë që do të bëhet një 1655 01:14:15,560 --> 01:14:19,650 Ideja gjithnjë e më e rëndësishme e njohur si një vendim të projektimit, ku - thjesht nuk 1656 01:14:19,650 --> 01:14:21,640 të bëjë kompjuteri të bëjë punën e panevojshme. 1657 01:14:21,640 --> 01:14:25,630 >> Tani vetëm si një vrojtim vjedhës i pset 2, pset 2 në edicionin standarde është 1658 01:14:25,630 --> 01:14:28,850 shkuar për të sfiduar ju për të zbatuar në fakt disa numrin e shifra, disa 1659 01:14:28,850 --> 01:14:32,650 Numri i algoritme encryption, kështu që ju mund të dyja encrypt dhe decrypt 1660 01:14:32,650 --> 01:14:35,530 Mesazhet sekrete, më shumë si një Ralphie nuk deshifrohet. 1661 01:14:35,530 --> 01:14:38,720 Në edicionin e pset hacker 2, ne jemi duke shkuar për të shkuar pak më tej. 1662 01:14:38,720 --> 01:14:42,010 Ne jemi duke shkuar për të dorëzuar një skedar ju nga një sistem kompjuterik aktual që përmban një 1663 01:14:42,010 --> 01:14:45,690 bandë tërësi e përdoruesve dhe fjalëkalimet aktuale koduara, dhe sfidë 1664 01:14:45,690 --> 01:14:49,110 për botim hacker do të jetë për të goditur ato fjalëkalime dhe Figura 1665 01:14:49,110 --> 01:14:53,060 se çfarë Kriptografia ose ajo fshehtë është përdorur që në fakt 1666 01:14:53,060 --> 01:14:55,080 gjenerojë fjalëkalime ato. 1667 01:14:55,080 --> 01:14:58,360 Dhe ne jemi duke shkuar për të bërë këtë duke përdorur një funksion të ri këtu e C që unë do të jap 1668 01:14:58,360 --> 01:15:02,200 ju vetëm një demo, i njohur si command-line argumente. 1669 01:15:02,200 --> 01:15:05,930 >> Pra, ajo rezulton, si disa prej jush mund të keni parë në seksionin ose në tekstet shkollore, 1670 01:15:05,930 --> 01:15:09,850 kryesor nuk ka gjithmonë duhet të jetë i pavlefshëm në kllapa. 1671 01:15:09,850 --> 01:15:14,060 Ajo rezulton se kryesore mund të shkruhet edhe si ky, me dy argumente, 1672 01:15:14,060 --> 01:15:19,690 argc dhe argv, ku argc është numri i fjalëve që ju shkruani pas 1673 01:15:19,690 --> 01:15:21,940 emri i programit në linjë tuaj komandës. 1674 01:15:21,940 --> 01:15:24,550 Dhe argv është fjalë aktuale. 1675 01:15:24,550 --> 01:15:29,470 Dhe si kllapa katrore atje sugjerojnë, argv është me sa duket një grup. 1676 01:15:29,470 --> 01:15:33,720 Ajo do të jetë një varg pas një varg pas një varg në kujtesë. 1677 01:15:33,720 --> 01:15:36,170 Kështu që ajo që ne jemi duke shkuar të jetë në gjendje për të bërë, duke filluar me pset 2, 1678 01:15:36,170 --> 01:15:37,310 diçka si kjo. 1679 01:15:37,310 --> 01:15:42,450 Nëse unë bëjë argv1, e cila është një shembull ne do të kthehen në të hënën, dhe drejtuar 1680 01:15:42,450 --> 01:15:45,180 ajo, vini re se kjo nuk duket për të bërë ende asgjë. 1681 01:15:45,180 --> 01:15:47,050 Ajo vetëm printon emrin e vet. 1682 01:15:47,050 --> 01:15:53,220 Por në qoftë se unë them lamtumirë klasa, njoftim se ky program duket iterates 1683 01:15:53,220 --> 01:15:57,030 mbi çdo fjalë që u typed në ftim. 1684 01:15:57,030 --> 01:16:02,050 Dhe mjetet me të cilat ne do të fitojnë qasje në fjalët që përdoruesi ka 1685 01:16:02,050 --> 01:16:06,780 shtypur në të shpejtë është duke ndryshuar kryesor, duke filluar nga kjo fundjavë, nga int 1686 01:16:06,780 --> 01:16:10,710 kryesor (i pavlefshëm) për int main (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 Dhe kështu do të jetë i lindur argumente command line. 1688 01:16:13,700 --> 01:16:17,210 Dhe një herë ju merrni të vërtetë të sofistikuar në këtë, ju do të jetë në gjendje për të shkruar 1689 01:16:17,210 --> 01:16:21,370 Programet me të vërtetë trippy, të tilla si ky këtu, që shkon më lart dhe përtej 1690 01:16:21,370 --> 01:16:25,520 disa nga funksionet që kemi bërë deri tani, por të gjitha mjaft të fuqishme. 1691 01:16:25,520 --> 01:16:27,330 >> Pra, ne do të largohen këtë me këtë në ekran. 1692 01:16:27,330 --> 01:16:29,160 Dhe ne do të shohim ju në hënën.