1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] DAVID J. Malan: pob hawl. 2 00:00:08,160 --> 00:00:11,170 Mae hyn yn CS50, ac mae hyn yn y diwedd yr wythnos dau. 3 00:00:11,170 --> 00:00:14,650 Os ydych yn disgwyl i fod yn newynog o gwmpas yr amser hwn yfory, yn gwybod ein bod ni'n mynd 4 00:00:14,650 --> 00:00:18,920 i gynnull fel grŵp bach yfory, dydd Iau, 1:15 PM. 5 00:00:18,920 --> 00:00:21,460 Mae hyn yn URL yma os hoffech i ateb. 6 00:00:21,460 --> 00:00:25,270 Gofod yn gyfyngedig, felly os gwelwch yn dda maddau os yw'r ffurflen wedi llenwi erbyn yr adeg y byddwch 7 00:00:25,270 --> 00:00:26,680 lenwi'r allan. 8 00:00:26,680 --> 00:00:29,400 Arall URL er y gallai fod o ddiddordeb yw hwn. 9 00:00:29,400 --> 00:00:32,409 >> Felly, mewn dim ond ymhen rhyw fis, mae'r cwrs yn mynd i fod ar gael 10 00:00:32,409 --> 00:00:36,090 yn fwy cyffredinol drwy EDX, trwy y bydd Folks ar y Rhyngrwyd fod yn 11 00:00:36,090 --> 00:00:39,580 gallu i ddilyn ar hyd, cymryd rhan yn y cwrs yn eithaf yn weithredol, mewn gwirionedd. 12 00:00:39,580 --> 00:00:43,070 Byddant yn defnyddio'r Offer CS50 a CS50 Trafod a'r rhan fwyaf o'r 13 00:00:43,070 --> 00:00:45,840 offer meddalwedd amrywiol ein bod eisoes wedi bod yn defnyddio y semester hwn. 14 00:00:45,840 --> 00:00:49,030 Ac un o'r mentrau a byddem yn hoffi i gymryd ymlaen fel arbrawf eleni 15 00:00:49,030 --> 00:00:53,120 yw gweld yn union faint o gynnwys y gallwn ei gyfieithu i ieithoedd eraill a siaredir a 16 00:00:53,120 --> 00:00:54,110 ieithoedd ysgrifenedig. 17 00:00:54,110 --> 00:00:58,000 Felly, os allai fod gennych ddiddordeb mewn cymryd rhan yn y prosiect hwn, lle 18 00:00:58,000 --> 00:01:02,090 byddwn yn darparu trawsgrifiadau Isdeitlau Saesneg a gyfer y cwrs 19 00:01:02,090 --> 00:01:05,190 darlithoedd a siorts a seminarau ac adrannau ac ati - 20 00:01:05,190 --> 00:01:08,700 os ydych yn siarad yn rhugl neu ysgrifennu yn rhugl mewn iaith arall, byddem yn 21 00:01:08,700 --> 00:01:12,240 wrth eu bodd yn cymryd rhan chi yn y prosiect hwn, lle byddwch yn derbyn un neu fwy o'r 22 00:01:12,240 --> 00:01:15,340 fideos, eu cyfieithu i iaith eich bod yn gwybod yn eithaf da. 23 00:01:15,340 --> 00:01:19,050 I roi syniad i chi o'r rhyngwyneb, mae hwn yn rhyngwyneb defnyddiwr ar y we 24 00:01:19,050 --> 00:01:22,330 y byddwn yn defnyddio a fydd yn creu hanfod UI fel hyn. 25 00:01:22,330 --> 00:01:24,520 Roedd hyn yn i mi addysgu rhai Calan Gaeaf yn ôl. 26 00:01:24,520 --> 00:01:27,710 Ac ar yr ochr llaw dde yno mewn du nesaf wrth y rhain stampiau amser, 27 00:01:27,710 --> 00:01:31,300 byddwch yn gweld y pethau amrywiol ddaeth allan o fy ngheg y diwrnod hwnnw. 28 00:01:31,300 --> 00:01:34,660 Ac yna islaw iddo, byddwch yn gallu cyfieithu i mewn i rai iaith arall. 29 00:01:34,660 --> 00:01:37,840 Yn union beth y mapio hwn yw rhwng, yn yr achos hwn, Saesneg 30 00:01:37,840 --> 00:01:38,660 ac, yn dweud, Sbaeneg. 31 00:01:38,660 --> 00:01:40,480 Felly, mewn gwirionedd mae'n iawn hawdd i'w ddefnyddio offeryn. 32 00:01:40,480 --> 00:01:43,690 Gallwch ail-ddirwyn ac yn gyflym ymlaen yn rhwydd ag llwybrau byr bysellfwrdd. 33 00:01:43,690 --> 00:01:46,710 Felly os hoffech chi gymryd rhan yn yr arbrawf hwn a dweud eich geiriau 34 00:01:46,710 --> 00:01:50,730 weld a'i ddarllen gan o bosibl miloedd o Folks i maes 'na, os gwelwch yn dda yn teimlo 35 00:01:50,730 --> 00:01:51,960 rhad ac am ddim i gymryd rhan. 36 00:01:51,960 --> 00:01:56,940 >> Bellach yn un gair am y gath fach o ddydd Llun, rhag i ni wedi anfon rhy 37 00:01:56,940 --> 00:01:58,120 neges brawychus. 38 00:01:58,120 --> 00:02:02,130 Ydych yn sylweddoli bod fel oriau swyddfa yn awgrymu ac fel adrannau yn awgrymu, y 39 00:02:02,130 --> 00:02:05,110 dyluniad y cwrs yn fawr iawn i fod wedi cydweithio a myfyrwyr 40 00:02:05,110 --> 00:02:09,250 siarad â gweithio drwy setiau problem a phroblemau gyda'i gilydd. 41 00:02:09,250 --> 00:02:13,630 Ac yn wir y llinell yn unig yn dod i lawr, unwaith eto, y gwaith yr ydych yn y pen draw 42 00:02:13,630 --> 00:02:16,420 Dylid ei gyflwyno eich hun. 43 00:02:16,420 --> 00:02:19,080 Ac felly mae'n, yn eithaf onest - yn ystod oriau swyddfa, mae'n hollol normal - 44 00:02:19,080 --> 00:02:21,560 mae'n gwbl i'w ddisgwyl, hyd yn oed - i fod yn sgwrsio gyda rhai 45 00:02:21,560 --> 00:02:22,370 ffrindiau nesaf i chi. 46 00:02:22,370 --> 00:02:25,240 Os yw ef neu hi yn cael trafferth gyda rhai pwnc, ac rydych yn hoffi, oh, wel gadewch i 47 00:02:25,240 --> 00:02:27,750 i mi roi cipolwg o rai llinell o god a ysgrifennais. 48 00:02:27,750 --> 00:02:28,290 Mae hynny'n iawn. 49 00:02:28,290 --> 00:02:28,700 Mae hyn yn digwydd. 50 00:02:28,700 --> 00:02:31,580 A dyna yn fawr iawn ffafriol, yr wyf yn meddwl, gyda'r broses o ddysgu. 51 00:02:31,580 --> 00:02:35,270 Lle mae'r llinell, unwaith eto, yn cael ei chroesi yw pan fydd y pennaeth yn fath o ogwydd dros 52 00:02:35,270 --> 00:02:38,800 yma am ychydig eiliadau llawer gormod o neu gofnodion ar gyfer y gwirionedd i gael yr un 53 00:02:38,800 --> 00:02:41,250 bod yn gyfle dadflocio ar gyfer eich ffrind. 54 00:02:41,250 --> 00:02:43,870 Ac yn sicr, pan fydd pethau'n cael eu cyfnewid drwy e-bost a Dropbox a 55 00:02:43,870 --> 00:02:45,350 yn y blaen, yno hefyd yn y llinell. 56 00:02:45,350 --> 00:02:48,940 Felly ar bob cyfrif, yn teimlo'n gyfforddus ac yn teimlo eu hannog i sgwrsio gyda ffrindiau 57 00:02:48,940 --> 00:02:51,270 a chyd-ddisgyblion am psets a mwy. 58 00:02:51,270 --> 00:02:54,680 A dim ond yn sylweddoli y dylai hyn yr ydych yn y pen draw cyflwyno mewn gwirionedd y 59 00:02:54,680 --> 00:02:57,780 gynnyrch dy greadigaeth ac nid rhywun arall. 60 00:02:57,780 --> 00:03:01,010 >> Felly, yn yr un modd o greaduriaid meddal, gallech 61 00:03:01,010 --> 00:03:02,820 yn gwybod am y boi yma. 62 00:03:02,820 --> 00:03:06,180 Felly, mae hyn yn ffilm dychrynllyd, cheesy o flynyddoedd yn ôl. 63 00:03:06,180 --> 00:03:08,680 Gall unrhyw un weld yma Spaceballs? 64 00:03:08,680 --> 00:03:09,120 Mae pob hawl. 65 00:03:09,120 --> 00:03:10,220 Felly, mae nifer dda yma. 66 00:03:10,220 --> 00:03:13,840 Felly mae hyn yn ein ffordd wych academaidd o gyflwyno heddiw yn y pen draw 67 00:03:13,840 --> 00:03:15,130 y syniad o cryptograffeg. 68 00:03:15,130 --> 00:03:19,010 Ac felly un o'r problemau parth penodol ar gyfer pset 2, a fydd yn dod 69 00:03:19,010 --> 00:03:22,770 allan yn hwyr nos yfory, yw i neidio i fyd cryptograffeg, sy'n 70 00:03:22,770 --> 00:03:26,380 yw'r grefft o amgryptio neu sgramblo gwybodaeth. 71 00:03:26,380 --> 00:03:30,160 Ac mae hyn yn y pen draw yn berthnasol i'r byd o ddiogelwch. 72 00:03:30,160 --> 00:03:34,440 >> Nawr diogelwch ar gyfer y rhan fwyaf ohonom yn dod ar ffurf eithaf cyffredin fecanweithiau. 73 00:03:34,440 --> 00:03:36,920 Mae pob un ohonom enwau defnyddwyr a chyfrineiriau. 74 00:03:36,920 --> 00:03:41,350 Ac mae pob un ohonom yn cael enwau gwael iawn a chyfrineiriau, yn fwyaf tebygol. 75 00:03:41,350 --> 00:03:45,250 Os yw eich cyfrinair yn yr un fath ar wefannau lluosog, nad yw yn debyg 76 00:03:45,250 --> 00:03:47,920 y syniad gorau, gan y byddwn yn trafod tuag at ddiwedd semester. 77 00:03:47,920 --> 00:03:51,680 Os yw eich cyfrinair yn cael ei ysgrifennu ar nodyn gludiog - dim jôc - ar eich 78 00:03:51,680 --> 00:03:55,130 monitro, nad yw o reidrwydd yn rhy y dyluniad gorau ond yn eithaf cyffredin 79 00:03:55,130 --> 00:03:56,140 ffenomen. 80 00:03:56,140 --> 00:04:00,420 Ac os nad ydych yn defnyddio cryptograffeg i amgryptio eich cyfrineiriau, maent yn 81 00:04:00,420 --> 00:04:01,610 arbennig o agored i niwed. 82 00:04:01,610 --> 00:04:04,670 Felly, os ydych yn meddwl eich bod yn cael eu super glyfar drwy gael Word cudd 83 00:04:04,670 --> 00:04:07,740 dogfennu yn rhywle ar eich disg caled sydd wedi eich holl passwords, ond 84 00:04:07,740 --> 00:04:10,550 ei fod mewn ffolder nad oes unrhyw un yn mynd i edrych i mewn, nad yw gormod yn iawn 85 00:04:10,550 --> 00:04:11,540 fecanwaith diogel. 86 00:04:11,540 --> 00:04:15,100 Ac felly yr hyn y bydd pset 2 yn cyflwyno'r yn y gelfyddyd o cryptograffeg a 87 00:04:15,100 --> 00:04:18,300 sgramblo gwybodaeth fel bod pethau fel cyfrineiriau yn 88 00:04:18,300 --> 00:04:19,500 yn oed yn fwy diogel. 89 00:04:19,500 --> 00:04:24,500 Er mwyn cymell y broblem hon yn y byd go iawn gyda iawn nad ydynt yn y byd go iawn 90 00:04:24,500 --> 00:04:28,740 senario, gadewch i mi eich cyflwyno i un o'n hoff glipiau yma o hyn 91 00:04:28,740 --> 00:04:29,895 ffilm, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [Chwarae fideo] 93 00:04:30,565 --> 00:04:32,995 -Helmed, rydych fiend, beth sy'n mynd ymlaen? 94 00:04:32,995 --> 00:04:34,730 Beth ydych chi'n ei wneud i fy merch? 95 00:04:34,730 --> 00:04:38,960 Caniatáu i mi-i gyflwyno'r llawfeddyg plastig ifanc disglair, Dr Philip 96 00:04:38,960 --> 00:04:43,290 Schlotkin, y dyn trwyn mwyaf swydd yn y cyfan 97 00:04:43,290 --> 00:04:45,526 bydysawd ac yn Beverly Hills. 98 00:04:45,526 --> 00:04:46,450 -Eich nyrchafiad. 99 00:04:46,450 --> 00:04:47,380 Trwyn-swydd? 100 00:04:47,380 --> 00:04:48,035 Nid wyf yn deall. 101 00:04:48,035 --> 00:04:49,480 Mae hi eisoes wedi cael swydd trwyn. 102 00:04:49,480 --> 00:04:51,490 Roedd yn felys 16 yn bresennol. 103 00:04:51,490 --> 00:04:53,090 -Na, nid yw'n beth yw eich barn. 104 00:04:53,090 --> 00:04:55,150 Mae'n llawer, llawer gwaeth. 105 00:04:55,150 --> 00:04:59,860 Os nad ydych yn rhoi i mi y cyfuniad at y darian aer, Dr Schlotkin bydd 106 00:04:59,860 --> 00:05:04,135 rhoi eich merch yn ôl ei thrwyn oed. 107 00:05:04,135 --> 00:05:05,385 -Na! 108 00:05:08,202 --> 00:05:10,186 Ble wnaethoch chi gael hynny? 109 00:05:10,186 --> 00:05:11,178 -Mae pob hawl. 110 00:05:11,178 --> 00:05:11,674 'N annhymerus' ddweud. 111 00:05:11,674 --> 00:05:12,666 'N annhymerus' ddweud. 112 00:05:12,666 --> 00:05:14,154 -Na, Dad, dim. 113 00:05:14,154 --> 00:05:15,150 Rhaid i chi beidio. 114 00:05:15,150 --> 00:05:16,460 You're-dde, fy annwyl. 115 00:05:16,460 --> 00:05:18,450 Byddaf yn colli eich trwyn newydd. 116 00:05:18,450 --> 00:05:21,550 Ond ni fydd yn dweud wrthynt y cyfuniad waeth beth. 117 00:05:21,550 --> 00:05:23,100 -Yn dda iawn. 118 00:05:23,100 --> 00:05:25,510 Dr Schlotkin, gwneud eich gwaethaf. 119 00:05:25,510 --> 00:05:26,760 -Mae fy pleser. 120 00:05:30,560 --> 00:05:31,180 -Na! 121 00:05:31,180 --> 00:05:33,450 Arhoswch, aros. 122 00:05:33,450 --> 00:05:34,770 'N annhymerus' ddweud. 123 00:05:34,770 --> 00:05:36,400 'N annhymerus' ddweud. 124 00:05:36,400 --> 00:05:38,630 -I yn gwybod y byddai'n gweithio. 125 00:05:38,630 --> 00:05:42,040 Mae pob hawl, yn ei roi i mi. 126 00:05:42,040 --> 00:05:46,890 -Mae'r cyfuniad yn un. 127 00:05:46,890 --> 00:05:47,290 -One. 128 00:05:47,290 --> 00:05:48,183 -One. 129 00:05:48,183 --> 00:05:48,950 -Dau. 130 00:05:48,950 --> 00:05:49,370 -Dau. 131 00:05:49,370 --> 00:05:50,450 -Dau. 132 00:05:50,450 --> 00:05:50,715 Tri- 133 00:05:50,715 --> 00:05:51,380 -Three. 134 00:05:51,380 --> 00:05:52,390 -Three. 135 00:05:52,390 --> 00:05:53,200 -Four. 136 00:05:53,200 --> 00:05:53,720 -Four. 137 00:05:53,720 --> 00:05:55,830 -Four. 138 00:05:55,830 --> 00:05:56,580 -Five 139 00:05:56,580 --> 00:05:57,120 -Five. 140 00:05:57,120 --> 00:05:58,560 -Five. 141 00:05:58,560 --> 00:06:03,770 -So y cyfuniad yn un, dau, tri, pedwar, pump. 142 00:06:03,770 --> 00:06:06,745 Dyna y cyfuniad stupidest wyf erioed wedi clywed yn fy mywyd. 143 00:06:06,745 --> 00:06:09,290 Dyna'r math o beth byddai idiot yn ei chael ar ei bagiau. 144 00:06:09,290 --> 00:06:11,540 -Diolch i chi, eich nyrchafiad. 145 00:06:11,540 --> 00:06:12,940 -Beth wnaethoch chi ei wneud? 146 00:06:12,940 --> 00:06:14,230 -I droi oddi ar y wal. 147 00:06:14,230 --> 00:06:14,630 -Na, nid felly yr oedd. 148 00:06:14,630 --> 00:06:15,430 Byddwch yn troi oddi ar y ffilm gyfan. 149 00:06:15,430 --> 00:06:16,722 -I fod wedi pwyso'r botwm anghywir. 150 00:06:16,722 --> 00:06:18,078 -Wel, ei roi yn ôl ar. 151 00:06:18,078 --> 00:06:18,805 Rhowch y ffilm yn ôl ar. 152 00:06:18,805 --> 00:06:19,080 -Oes, syr. 153 00:06:19,080 --> 00:06:19,270 Ie, syr. 154 00:06:19,270 --> 00:06:19,830 -Gadewch i ni fynd, Erna. 155 00:06:19,830 --> 00:06:20,270 Dewch, Gretchen. 156 00:06:20,270 --> 00:06:22,850 Wrth gwrs yr ydych yn gwybod y byddwch yn rhaid i mi bil i chi am hyn. 157 00:06:27,400 --> 00:06:28,325 -Wel, wnaeth hyn weithio? 158 00:06:28,325 --> 00:06:29,550 Ble mae'r giât? 159 00:06:29,550 --> 00:06:29,910 -Mae'n gweithio, syr. 160 00:06:29,910 --> 00:06:30,770 Mae gennym y cyfuniad. 161 00:06:30,770 --> 00:06:31,390 -Great. 162 00:06:31,390 --> 00:06:35,630 Nawr gallwn gymryd pob anadl olaf o awyr iach o blaned Druidia. 163 00:06:35,630 --> 00:06:36,550 Beth yw'r cyfuniad? 164 00:06:36,550 --> 00:06:38,805 -Un, dau, tri, pedwar, pump. 165 00:06:38,805 --> 00:06:40,610 -Un, dau, tri, pedwar, pump? 166 00:06:40,610 --> 00:06:41,070 -Ydy. 167 00:06:41,070 --> 00:06:41,760 -Mae hynny'n anhygoel. 168 00:06:41,760 --> 00:06:45,200 Rwyf wedi cael y cyfuniad un ar fy bagiau. 169 00:06:45,200 --> 00:06:47,800 Paratoi Spaceball 1 am adael ar unwaith. 170 00:06:47,800 --> 00:06:48,536 -Oes, syr. 171 00:06:48,536 --> 00:06:52,350 -Ac newid y cyfuniad ar fy bagiau. 172 00:06:52,350 --> 00:06:53,250 -Ow! 173 00:06:53,250 --> 00:06:55,020 [DIWEDD chwarae fideo] 174 00:06:55,020 --> 00:06:57,470 >> DAVID J. Malan: Mae ffilm anhygoel dylech i gyd weld. 175 00:07:00,600 --> 00:07:06,540 Felly, y cyd-destun yma yw bod â data ansicr, daw cyfle i 176 00:07:06,540 --> 00:07:07,790 amgryptio ac i scramble hynny. 177 00:07:07,790 --> 00:07:11,060 Ac felly mae hyn, er enghraifft, yn enghraifft o neges wedi ei amgryptio. 178 00:07:11,060 --> 00:07:12,980 Mae hyn mewn gwirionedd yn dweud rhywbeth yn Saesneg. 179 00:07:12,980 --> 00:07:14,750 Ond nid yw'n amlwg yn gwbl amlwg. 180 00:07:14,750 --> 00:07:17,360 A byddwn yn dod y cylch llawn heddiw i dynnu ar wahân beth mae hyn yn gyfrinach 181 00:07:17,360 --> 00:07:18,380 neges yma. 182 00:07:18,380 --> 00:07:22,370 Ond yn y byd go iawn o gyfrifiaduron, nid yw pethau'n hyd yn oed edrych fel y gallent 183 00:07:22,370 --> 00:07:23,440 fod yn ymadroddion Saesneg. 184 00:07:23,440 --> 00:07:27,500 Er enghraifft, mae hyn yn hyn y gallech ei gael ar Linux neu Mac safonol neu 185 00:07:27,500 --> 00:07:32,080 Unix cyfrifiadur mewn ffeil a oedd unwaith ar y tro a elwir yn y ffeil gyfrinair. 186 00:07:32,080 --> 00:07:34,170 Erbyn hyn, mae wedi bod yn symud i fannau eraill. 187 00:07:34,170 --> 00:07:38,660 Ond os ydych yn edrych yn y lle iawn ar system, byddwch yn gweld nid yn unig eich 188 00:07:38,660 --> 00:07:41,430 enw defnyddiwr chi neu bobl eraill ar y system, ond byddwch yn gweld 189 00:07:41,430 --> 00:07:43,410 fersiwn wedi'i amgryptio eu cyfrinair. 190 00:07:43,410 --> 00:07:47,800 Yn wir, y crypt gair yno yn awgrymu bod y pethau canlynol yn hamgryptio. 191 00:07:47,800 --> 00:07:52,030 Ac mae hyn yn gyfres o lythyrau sy'n ymddangos ar hap a chymeriadau a rhifau a 192 00:07:52,030 --> 00:07:56,370 Gall y blaen ei dadgriptio yn unig yn gyffredinol yn gwybod rhywfaint o gyfrinach - 193 00:07:56,370 --> 00:07:58,600 gair cudd, mae nifer gyfrinach. 194 00:07:58,600 --> 00:08:02,760 Ac felly yn wir, y grefft o cryptograffeg yn y pen draw boils i lawr i ymddiried o rai 195 00:08:02,760 --> 00:08:05,700 yn didoli ac yn gwybod rhywbeth nad yw rhywun arall yn ei wneud. 196 00:08:05,700 --> 00:08:10,010 Byddwn yn archwilio hyn yn fanwl ychydig mwy o heddiw ac yn y pset i ddod. 197 00:08:10,010 --> 00:08:11,860 >> Ac yn awr gair ar basio / methu. 198 00:08:11,860 --> 00:08:15,250 Felly, yn enwedig, gan fod rhai ohonoch wedi syrthio i mewn i pset 1, yr offer, a 199 00:08:15,250 --> 00:08:18,390 byd newydd iawn i chi eich hun, sylweddoli bod rhwystredigaethau a 200 00:08:18,390 --> 00:08:21,340 anawsterau dryswch a dim ond technegol i'w disgwyl. 201 00:08:21,340 --> 00:08:24,410 Yn enwedig gyda'r pset cyntaf, lle mae dim ond cymaint newydd, dim ond cael 202 00:08:24,410 --> 00:08:28,830 gyfarwydd â ls a cd a hyn i gyd gorchmynion dirgel mewn amgylchedd newydd. 203 00:08:28,830 --> 00:08:32,679 A dyna wahân i'r deunydd gwirioneddol a rhaglennu ei hun. 204 00:08:32,679 --> 00:08:35,960 Felly sylweddoli, hefyd, fod yn sicr mae yna oriau swyddfa sy'n bodoli wrth 205 00:08:35,960 --> 00:08:36,770 y strwythur cefnogi. 206 00:08:36,770 --> 00:08:38,620 Adrannau yn dechrau dydd Sul hwn i ddod. 207 00:08:38,620 --> 00:08:41,990 Ond yn bwysicaf oll, os ydych yn teimlo'n unig nad yw hyn yn 208 00:08:41,990 --> 00:08:44,420 byd i chi, yn sylweddoli ei bod yn wir yn unig yn cymryd amser. 209 00:08:44,420 --> 00:08:47,520 Ac oni bai am y cyfle hwn flynyddoedd yn ôl i mi o gymryd dosbarth 210 00:08:47,520 --> 00:08:50,840 pasio / methu, yn onest, nid wyf erioed y byddai wedi gosod hyd yn oed droed yn yr ystafell ddosbarth. 211 00:08:50,840 --> 00:08:53,520 A allwch chi newid hyn nes ar, dyweder, dydd Llun rhan o bump o'r cwrs. 212 00:08:53,520 --> 00:08:57,110 Felly, os ydych chi ar yr ymyl yn awr, yn sylweddoli, yn hytrach na pen i rai eraill 213 00:08:57,110 --> 00:09:01,000 dyfroedd yn gyfan gwbl, yn sicr yn ystyried dim ond newid i basio / methu. 214 00:09:01,000 --> 00:09:03,750 Unwaith eto, nid oes gymaint â hyn diwylliant yma yn Harvard o gymryd pethau 215 00:09:03,750 --> 00:09:08,080 pasio / methu gan fod pawb yn awyddus iawn i gyflawni neu overachieve. 216 00:09:08,080 --> 00:09:11,470 Ond a dweud y gwir, mae hyn yn ffordd wych o roi cynnig rhywbeth a allai na 217 00:09:11,470 --> 00:09:13,110 yn gyfarwydd i chi. 218 00:09:13,110 --> 00:09:17,090 A byddwch yn y pen draw yn gwneud yn y rhan fwyaf o achosion yn eithaf iawn, efallai 219 00:09:17,090 --> 00:09:18,040 fawr at eich syndod. 220 00:09:18,040 --> 00:09:20,850 Ac mewn termau diriaethol mwy, yr hyn yr wyf yn meddwl pasio / methu yn gyffredinol yn ei wneud, 221 00:09:20,850 --> 00:09:23,350 yn enwedig fel y byddech wedi eu profi gyda pset 0, os ydych chi wedi rhoi 222 00:09:23,350 --> 00:09:27,200 mewn 10 awr, 15 awr, 25 awr i rai pset - a ydych ond yn taro 223 00:09:27,200 --> 00:09:28,180 eich pen yn erbyn y wal, 224 00:09:28,180 --> 00:09:29,850 ac mae'n mynd yn super yn hwyr yn y nos, 225 00:09:29,850 --> 00:09:31,880 ond eich bod wedi cymryd y pset fel 90% o'r ffordd, 226 00:09:31,880 --> 00:09:33,780 eich bod yn gwybod na allwch ffigwr allan un peth - 227 00:09:33,780 --> 00:09:36,830 pasio / methu mewn gwirionedd yn cymryd y ymyl oddi ar y dosbarth fel hyn, lle gallwch ddatrys 228 00:09:36,830 --> 00:09:39,150 o yn dweud yn hapus iawn, yr wyf yn gwybod nad yw'n berffaith. 229 00:09:39,150 --> 00:09:40,470 Ond yr wyf yn gweithio fy ass i ffwrdd ar hyn. 230 00:09:40,470 --> 00:09:42,410 Rwy'n eithaf hapus gyda lle yn y diwedd. 231 00:09:42,410 --> 00:09:44,780 A fydd yn bodloni disgwyliadau ar gyfer pasio / methu. 232 00:09:44,780 --> 00:09:46,850 Felly, yn cadw hynny mewn cof. 233 00:09:46,850 --> 00:09:47,140 >> Mae pob hawl. 234 00:09:47,140 --> 00:09:50,980 Felly, y rhai ohonoch sydd wedi cael trafferth i ddefnyddio Brifysgol Harvard Wi-Fi yn gwybod 235 00:09:50,980 --> 00:09:54,780 bod yna SSID CS50, cysylltiad Wi-Fi fel y bo'r angen o gwmpas eich bod yn 236 00:09:54,780 --> 00:09:56,520 allai fod lwc gwell. 237 00:09:56,520 --> 00:09:59,430 Mae'n eironig fawr fod y cyfrinair ar gyfer hyn - os hoffech i roi cynnig ar 238 00:09:59,430 --> 00:10:03,080 cysylltu hyn ar gyfer cyflymder gwell a gadewch i ni wybod os does dim yn well - 239 00:10:03,080 --> 00:10:09,240 yn un, dau, tri, pedwar, pump, yr holl ffordd i fyny at wyth oherwydd wyth y 240 00:10:09,240 --> 00:10:10,270 yn fwy diogel na phump. 241 00:10:10,270 --> 00:10:15,520 Felly, os ydych angen y cyfrinair Wi-Fi, cysylltu â CS50 wirelessly yma. 242 00:10:15,520 --> 00:10:16,950 Un, dau, tri, pedwar, pump, chwech, saith, wyth. 243 00:10:16,950 --> 00:10:20,440 Ac swydd ar CS50 Trafod os oes gennych materion cysylltedd ysbeidiol, 244 00:10:20,440 --> 00:10:24,880 a byddwn yn gadael i'r pwerau sydd eu gwybod am y gofod. 245 00:10:24,880 --> 00:10:25,180 >> Mae pob hawl. 246 00:10:25,180 --> 00:10:30,350 Felly teaser cyflym, yn enwedig i'r rhai ohonoch sydd yn fechgyn neu ferched fan 247 00:10:30,350 --> 00:10:31,900 o'r holl bethau Apple. 248 00:10:31,900 --> 00:10:37,566 Beth ddylwn i ei gloddio i fyny o ychydig flynyddoedd yn ôl roedd y ffeil yma, ilock.c, dim ond i 249 00:10:37,566 --> 00:10:40,930 fath o wneud yn fwy cadarn ac yn fwy cymhleth rhai o'r C yn fwy sylfaenol 250 00:10:40,930 --> 00:10:42,350 rhaglenni rydym wedi bod yn ysgrifennu. 251 00:10:42,350 --> 00:10:44,360 Felly, yr wyf yn agor y ffeil, ilock.c. 252 00:10:44,360 --> 00:10:46,830 Mae ar gael ar y dudalen darlithoedd ar gyfer heddiw. 253 00:10:46,830 --> 00:10:49,470 Ar yr ochr chwith, byddwch yn gweld rhestr hir o swyddogaethau. 254 00:10:49,470 --> 00:10:51,860 Felly, y cyd-a ysgrifennodd y ysgrifennodd llawer o swyddogaethau, 255 00:10:51,860 --> 00:10:53,290 mwy na dim ond y prif. 256 00:10:53,290 --> 00:10:55,490 Defnyddiodd criw cyfan o lyfrgelloedd yma. 257 00:10:55,490 --> 00:11:00,450 Ac os ydym yn dechrau sgrolio drwy, beth mae hyn mewn gwirionedd yw yn iawn 258 00:11:00,450 --> 00:11:04,670 gyntaf, yr wyf yn credu, cracio ar gyfer y iPhone gwreiddiol. 259 00:11:04,670 --> 00:11:08,000 Pan fyddwch yn eisiau i jailbreak y iPhone gwreiddiol, sy'n golygu untether 260 00:11:08,000 --> 00:11:11,800 rhag AT & T ac mewn gwirionedd yn gosod meddalwedd arbennig arno a gwneud pethau 261 00:11:11,800 --> 00:11:13,510 Nid yw bod Apple oedd am i bobl ei wneud - 262 00:11:13,510 --> 00:11:17,020 yn dda, rhywun yn cymryd yr amser i ffigur yn union sut y gallent fanteisio 263 00:11:17,020 --> 00:11:20,880 diffygion meddalwedd, camgymeriadau, bygiau, yn Apple meddalwedd. 264 00:11:20,880 --> 00:11:22,650 Ac felly ganwyd ilock.c. 265 00:11:22,650 --> 00:11:26,670 Os ydych yn llunio ar gyfrifiadur a'u gosod ei roi ar y iPhone 266 00:11:26,670 --> 00:11:29,810 yn gysylltiedig â'ch cyfrifiadur drwy, er enghraifft, mae cebl USB, byddai hyn yn rhoi i chi 267 00:11:29,810 --> 00:11:33,360 breintiau gweinyddol neu wraidd ar eich iPhone ac yn gadael i chi wneud 'n bert lawer 268 00:11:33,360 --> 00:11:34,170 beth bynnag y dymunwch. 269 00:11:34,170 --> 00:11:36,740 >> Ac felly mae wedi bod y gath ryfeddol a gêm llygoden rhwng Afal a 270 00:11:36,740 --> 00:11:39,920 gweddill y byd yn enwedig gan eu bod, fel llawer o gwmnïau, ceisiwch i gloi 271 00:11:39,920 --> 00:11:43,220 eu stwff i lawr fel y gallwch ond ei wneud ag ef yr hyn y maent yn bwriadu. 272 00:11:43,220 --> 00:11:46,620 Ond diolch i bobl fel hyn ac mae eu dealltwriaeth o lefel isel 273 00:11:46,620 --> 00:11:50,580 manylion ac, yn yr achos hwn, rhaglennu C ac mae llawer o'r lluniadau cyfarwydd 274 00:11:50,580 --> 00:11:54,630 ein bod ni wedi dechrau chwarae gyda, byddwch yn gallu mewn gwirionedd trosoledd y 275 00:11:54,630 --> 00:11:59,050 caledwedd mewn modd gwelwch yn dda ac nid o reidrwydd rhyw endid corfforaethol. 276 00:11:59,050 --> 00:12:01,360 Felly, er enghraifft, nid oes gennyf unrhyw syniad beth hyn i gyd yn ei wneud. 277 00:12:01,360 --> 00:12:03,220 Ond GetVersion swnio'n eithaf syml. 278 00:12:03,220 --> 00:12:05,480 Ac mae'n edrych fel hyn yn swyddogaeth fod y person ysgrifennodd. 279 00:12:05,480 --> 00:12:09,240 Cymerwch rhyw fath o cyfanrif fel dadl, nid yw'n dychwelyd unrhyw beth, ond 280 00:12:09,240 --> 00:12:13,080 ymddangos dolen gyda dolen i yma ac yn os yw cyflwr, os yw cyflwr, 281 00:12:13,080 --> 00:12:15,620 torri, a rhywsut yn cyfeirio at niferoedd fersiwn. 282 00:12:15,620 --> 00:12:16,700 Os byddwn yn sgrolio i lawr - 283 00:12:16,700 --> 00:12:19,570 er bod llawer o'r rhain keywords yn mynd i fod yn newydd, ac mae 'na 284 00:12:19,570 --> 00:12:22,590 llawer gyfan o swyddogaethau yma nid ydym erioed wedi gweld ac efallai byth yn gweld dros 285 00:12:22,590 --> 00:12:23,830 ystod y semester - 286 00:12:23,830 --> 00:12:27,150 ar ddiwedd y dydd, mae'n dilyn yr un rheolau a rhesymeg ein bod wedi 287 00:12:27,150 --> 00:12:28,760 chwarae gyda hyd yn hyn. 288 00:12:28,760 --> 00:12:34,220 Felly, mae hyn yn llawer rhy hen i fynd i'r afael eich iPhone neu 3s 4s neu'n fuan 5 oed, y dyddiau hyn, 289 00:12:34,220 --> 00:12:37,320 ond yn gwybod ei fod yn gyd yn fawr iawn yn deillio o'r byd hwn y mae gennym 290 00:12:37,320 --> 00:12:38,430 syrthio i mewn i. 291 00:12:38,430 --> 00:12:41,900 >> Felly, gadewch i ni edrych ar enghraifft ychydig yn fwy syml. 292 00:12:41,900 --> 00:12:46,100 Mae hyn yn un, dim ond er mwyn cael cynhesu i fyny gyda rhywfaint o gystrawen a rhywfaint o ddata eraill 293 00:12:46,100 --> 00:12:49,240 math yr ydym wedi siarad amdano, ond nid ydynt wedi gweld mewn gwirionedd yn y C. Felly mae hwn yn 294 00:12:49,240 --> 00:12:51,680 ffeil o'r enw positive1.c. 295 00:12:51,680 --> 00:12:55,120 Ac unol â'r sylwadau ar y brig, mae hyn yn mynnu bod defnyddiwr yn darparu 296 00:12:55,120 --> 00:12:55,960 rhif positif. 297 00:12:55,960 --> 00:12:59,530 Felly mae'n enghraifft o ddolen do-tra, sydd yn braf ar gyfer defnyddwyr-rhyngweithiol 298 00:12:59,530 --> 00:13:01,980 raglenni lle mae angen i chi ddweud wrth y defnyddiwr i wneud rhywbeth. 299 00:13:01,980 --> 00:13:05,190 Ac os nad ydynt yn cydweithredu, byddwch yn gweiddi arnynt neu wrthod eu mewnbwn. 300 00:13:05,190 --> 00:13:11,610 Achos ym mhwynt, yr wyf yn mynd i wneud llinellau 19 trwy 24 cyn belled ag y defnyddiwr 301 00:13:11,610 --> 00:13:14,310 Ni roddwyd i mi rhif positif. 302 00:13:14,310 --> 00:13:20,400 Nawr manylion hyn yma ar llinell 18, pam wnes i ddatgan n uwch na hyn gyfan 303 00:13:20,400 --> 00:13:24,490 lluniad dolennu yn hytrach na dde nesaf i llinell 22 lle rwy'n 304 00:13:24,490 --> 00:13:26,880 mewn gwirionedd gofal i gael n? 305 00:13:26,880 --> 00:13:27,330 Yeah? 306 00:13:27,330 --> 00:13:27,780 [Anghlywadwy] 307 00:13:27,780 --> 00:13:29,040 >> DAVID J. Malan: Yeah, felly mae'r mater o gwmpas. 308 00:13:29,040 --> 00:13:30,850 Ac yn y tymor lleygwr, beth yw cwmpas cyfeirio at? 309 00:13:34,690 --> 00:13:36,610 Yeah? 310 00:13:36,610 --> 00:13:37,860 [Anghlywadwy] 311 00:13:40,040 --> 00:13:41,105 DAVID J. Malan: A allwch chi siarad ychydig yn uwch? 312 00:13:41,105 --> 00:13:43,450 SIARADWR 1: Ble y gallwch gael mynediad newidyn penodol. 313 00:13:43,450 --> 00:13:45,170 DAVID J. Malan: Perfect. 314 00:13:45,170 --> 00:13:47,360 Ble y gallwch gael mynediad i newidyn penodol. 315 00:13:47,360 --> 00:13:50,400 Ac yn gyffredinol, y rheol y fawd hyd yn hyn yw bod y cwmpas rhai 316 00:13:50,400 --> 00:13:55,860 amrywiol yn cael ei ddiffinio gan y bresys mwyaf diweddar cyrliog eich bod wedi gweld. 317 00:13:55,860 --> 00:14:02,010 Ac felly yn yr achos hwn, os wyf yn gwneud y camgymeriad o ddatgan n ar-lein 22, 318 00:14:02,010 --> 00:14:03,010 byddai llinell gweithio. 319 00:14:03,010 --> 00:14:10,990 Byddwn yn cael int, a byddwn yn ei roi i mewn i'r n amrywiol yn llinell 22. 320 00:14:10,990 --> 00:14:16,900 Ond a fyddai llinell o god yn awr yn cael unrhyw syniad beth rwy'n siarad amdano? 321 00:14:16,900 --> 00:14:22,650 Felly 25, ac mae'n troi allan 24, hefyd, oherwydd yn yr achos hwn, mae'n disgyn y tu allan i 322 00:14:22,650 --> 00:14:23,610 o'r braces cyrliog. 323 00:14:23,610 --> 00:14:27,280 Felly, dim ond ychydig bach o niwsans, ond yn hawdd iawn eu datrys gan syml ddatgan 324 00:14:27,280 --> 00:14:30,140 y tu allan amrywiol y swyddogaeth ei hun. 325 00:14:30,140 --> 00:14:32,600 >> Nawr byddwn yn gweld yn nes ymlaen heddiw, gallwch fynd un cam ymhellach. 326 00:14:32,600 --> 00:14:34,860 A allech chi hyd yn oed gael ychydig yn ddiog - 327 00:14:34,860 --> 00:14:37,320 ac nid yw hyn yn cael ei argymell, yn gyffredinol - 328 00:14:37,320 --> 00:14:42,260 ond gallech hyd yn oed gael ddiog ac yn rhoi amrywiol yn fyd-eang, felly i beidio siarad, 329 00:14:42,260 --> 00:14:46,670 tu mewn swyddogaeth, nid tu mewn dolen, ond yn y ffeil ei hun, y tu allan 330 00:14:46,670 --> 00:14:49,600 o'r holl swyddogaethau rydych wedi ysgrifennu, fel y gwneuthum yma ar llinell 15. 331 00:14:49,600 --> 00:14:51,160 Ond mae hyn yn gyffredinol gwgu arno. 332 00:14:51,160 --> 00:14:55,680 Ond yn sylweddoli hyn yn ateb weithiau i broblemau eraill, fel y gallwn eich 333 00:14:55,680 --> 00:14:56,620 yn y pen draw gweld. 334 00:14:56,620 --> 00:14:58,130 Felly, am nawr, byddwn yn ei adael fel hyn. 335 00:14:58,130 --> 00:15:01,030 Ond gadewch i ni weld os allwn ni ailysgrifennu hyn yn unig i ddechrau mynegi ein hunain yn 336 00:15:01,030 --> 00:15:01,990 ychydig yn wahanol. 337 00:15:01,990 --> 00:15:05,330 >> Felly y rhaglen hon, dim ond i fod yn glir, yn positive1. 338 00:15:05,330 --> 00:15:11,810 Gadewch i mi fynd yn ei flaen yma ac yn fy ffenestr terfynell yn gwneud positive1, Enter. 339 00:15:11,810 --> 00:15:12,740 Llunio, iawn. 340 00:15:12,740 --> 00:15:14,910 Rydw i'n mynd i redeg positive1, daro Chofnoda. 341 00:15:14,910 --> 00:15:16,820 I fynnu eich bod yn rhoi i mi gyfanrif positif. 342 00:15:16,820 --> 00:15:18,260 Byddaf yn dweud -1. 343 00:15:18,260 --> 00:15:18,910 Nad oedd yn gweithio. 344 00:15:18,910 --> 00:15:22,150 0, 99, sy'n ymddangos i weithio. 345 00:15:22,150 --> 00:15:23,570 Efallai nad yw'r prawf mwyaf llym. 346 00:15:23,570 --> 00:15:26,480 Ond o leiaf mae'n gwiriad pwyll braf ein bod ar y trywydd iawn. 347 00:15:26,480 --> 00:15:29,240 Felly nawr gadewch i mi fynd yn ei flaen ac agor fersiwn dau o hyn. 348 00:15:29,240 --> 00:15:32,500 A beth sy'n wahanol yn barod? 349 00:15:32,500 --> 00:15:35,140 Mae'n gweithredu yr un peth. 350 00:15:35,140 --> 00:15:40,660 Ond beth sy'n neidio allan fel yn amlwg yn wahanol y tro hwn? 351 00:15:40,660 --> 00:15:42,560 Yeah, felly mae hyn yn bool mewn gwyrdd. 352 00:15:42,560 --> 00:15:45,980 Gedit wedi amlygu â lliw gwyrdd y gair allweddol a elwir yn bool, 353 00:15:45,980 --> 00:15:47,000 sy'n fath data. 354 00:15:47,000 --> 00:15:51,080 Nid yw'n dod a adeiladwyd i mewn i holl fersiynau o C. Mae angen i chi gynnwys 355 00:15:51,080 --> 00:15:52,010 llyfrgell penodol. 356 00:15:52,010 --> 00:15:54,770 Yn ein hachos ni, yr wyf yn cynnwys y llyfrgell CS50 fel ein bod yn 357 00:15:54,770 --> 00:15:56,460 yn cael mynediad i bool. 358 00:15:56,460 --> 00:15:59,810 Ond yn llinell 18, rydym yn ymddangos i fod â gwerth Boole yma a elwir yn ddiolchgar. 359 00:15:59,810 --> 00:16:01,040 Felly, gallwn fod wedi galw hyn unrhyw beth. 360 00:16:01,040 --> 00:16:04,500 Ond yr wyf yn ei alw ddiolchgar yn unig i fath o gyfleu rhywfaint o ystyr semantig. 361 00:16:04,500 --> 00:16:07,930 Felly, i ddechrau ar llinell 18, Dwi ddim yn ôl pob golwg ddiolchgar oherwydd bod y 362 00:16:07,930 --> 00:16:12,150 Gwerth ddiolchgar Boolean yn cael ei ymgychwyn i ffug mewn llinell 18. 363 00:16:12,150 --> 00:16:16,890 Ac yna mae'n ymddangos hyn yr wyf wedi ei wneud yma yn y llinellau 21 drwy 23 yn Rwyf newydd 364 00:16:16,890 --> 00:16:18,610 math o ailysgrifennu fy rhesymeg. 365 00:16:18,610 --> 00:16:21,020 Felly ddim yn swyddogaethol gwahanol. 366 00:16:21,020 --> 00:16:26,940 Ond yn llinell 22 awr, yr wyf gwirio a yw'r int y defnyddiwr wedi darparu yn fwy na 367 00:16:26,940 --> 00:16:31,120 0, yna yr wyf yn newid y gwerth ddiolchgar i gwir. 368 00:16:31,120 --> 00:16:32,290 A pham ydw i'n gwneud hynny? 369 00:16:32,290 --> 00:16:35,600 Oherwydd, yn unol 25, mae'n debyg, yr wyf i'n mynd i wirio cyflwr. 370 00:16:35,600 --> 00:16:39,380 Gwnewch hyn dolen tra ddiolchgar yn ffug. 371 00:16:39,380 --> 00:16:43,610 >> Felly, yr wyf yn cynnig hyn fel dewis amgen i fersiwn un am ei fod yn o leiaf 372 00:16:43,610 --> 00:16:45,130 ychydig yn fwy 'n athrylithgar, efallai. 373 00:16:45,130 --> 00:16:46,900 Mae'n ychydig yn fwy cadarn yn y Saesneg. 374 00:16:46,900 --> 00:16:51,710 Felly, yn gwneud y canlynol tra nad ydych yn ddiolchgar neu tra ddiolchgar yn ffug. 375 00:16:51,710 --> 00:16:55,890 A'r tro hwn, hefyd, yr wyf debyg nad oes gofal i gofio beth y defnyddiwr deipio 376 00:16:55,890 --> 00:16:57,730 mewn oherwydd rhybudd does dim n amrywiol. 377 00:16:57,730 --> 00:16:58,650 Felly, mewn gwirionedd, I - 378 00:16:58,650 --> 00:17:00,080 celwydd bach gwyn yno. 379 00:17:00,080 --> 00:17:02,770 Swyddogaethol, mae'r rhaglen yn ychydig yn wahanol ar ôl i ni gyrraedd y gwaelod 380 00:17:02,770 --> 00:17:04,819 am nad wyf ddim yn cofio beth yw n. 381 00:17:04,819 --> 00:17:09,579 Ond yr wyf yn awyddus i ddangos yma hefyd bod hyd yn oed er ein bod wedi gweld GetInt a 382 00:17:09,579 --> 00:17:13,920 GetString cael ei ddefnyddio ar yr ochr dde-law o arwydd cyfartal hyd yn hyn er mwyn 383 00:17:13,920 --> 00:17:17,160 rydym yn cofio y gwerth, yn dechnegol, nid yw hynny'n hollol angenrheidiol. 384 00:17:17,160 --> 00:17:20,950 Os am ​​ba bynnag reswm nad ydych yn unig yn poeni i achub y gwerth, 'ch jyst eisiau 385 00:17:20,950 --> 00:17:25,710 i wirio gwerth, sylwch y gallwn yn syml ysgrifennu hyn fel GetInt agored 386 00:17:25,710 --> 00:17:27,000 paren, paren agos. 387 00:17:27,000 --> 00:17:30,460 Swyddogaeth honno yn mynd i ddychwelyd gwerth, fel yr ydym wedi bod yn ei ddweud. 388 00:17:30,460 --> 00:17:32,010 Mae'n mynd i roi i chi yn ôl yn int. 389 00:17:32,010 --> 00:17:36,450 Ac felly os ydych yn feddyliol yn meddwl am hyn yn digwydd, pan fyddaf yn teipio yn 99, GetInt 390 00:17:36,450 --> 00:17:38,160 yn dychwelyd y nifer 99. 391 00:17:38,160 --> 00:17:41,330 Ac felly yn gysyniadol, mae'n fel pe fy cod mewn gwirionedd yn hyn. 392 00:17:41,330 --> 00:17:45,880 Felly, os 99 yn wir yn fwy na 0, yna ddiolchgar dod yn wir. 393 00:17:45,880 --> 00:17:50,420 Yna llinell 25 sylweddoli www, rydym yn ei wneud am fy mod i'n awr yn ddiolchgar. 394 00:17:50,420 --> 00:17:54,590 Ac yn llinell 26, rydym yn syml yn dweud, diolch am y cyfanrif positif, beth bynnag 395 00:17:54,590 --> 00:17:55,710 digwydd bod. 396 00:17:55,710 --> 00:17:58,900 >> Nawr gadewch i ni wneud ychydig o siwgr cystrawennol yma, felly, i siarad. 397 00:17:58,900 --> 00:18:02,990 Gadewch i ni weld os allwn lanhau y llinell hon 25 gyda yr amrywiant hwn trydydd a'r olaf 398 00:18:02,990 --> 00:18:04,640 yn positive3. 399 00:18:04,640 --> 00:18:08,250 Felly, yn sylwi ar y gwahaniaeth yn unig yn awr yw pa linell o god? 400 00:18:11,930 --> 00:18:13,260 Yeah, felly 25. 401 00:18:13,260 --> 00:18:15,520 Ac nid ydym wedi gweld mewn gwirionedd hon castia eto. 402 00:18:15,520 --> 00:18:19,510 Ond fe welsom y pwynt ebychnod ar ddydd Llun, sy'n dynodi beth? 403 00:18:19,510 --> 00:18:20,970 Felly na, neu negyddu. 404 00:18:20,970 --> 00:18:23,460 Felly, yn cymryd gwerth Boole ac yn troi ei werth. 405 00:18:23,460 --> 00:18:24,390 Gwir yn dod yn ffug. 406 00:18:24,390 --> 00:18:25,500 Ffug yn dod yn wir. 407 00:18:25,500 --> 00:18:28,910 Felly, mae hyn, byddwn yn cynnig, hyd yn oed ychydig yn fwy 'n athrylithgar o ffordd o 408 00:18:28,910 --> 00:18:32,200 ysgrifennu'r cod oherwydd yr wyf yn dal ymgychwyn ddiolchgar i ffug. 409 00:18:32,200 --> 00:18:33,530 Rwy'n dal i wneud y canlynol. 410 00:18:33,530 --> 00:18:35,700 Wyf yn gosod ddiolchgar yn wir pan ddaw'r amser. 411 00:18:35,700 --> 00:18:40,690 Ond yn awr y gallwch chi mewn gwirionedd dim ond cyfieithu cod hwn ar ôl ar lafar i'r dde, 412 00:18:40,690 --> 00:18:42,550 er nad ddiolchgar. 413 00:18:42,550 --> 00:18:46,170 Oherwydd bang, neu bwynt ebychnod, yn dynodi y syniad o beidio, felly er 414 00:18:46,170 --> 00:18:47,010 Nid ddiolchgar. 415 00:18:47,010 --> 00:18:49,740 >> Felly, unwaith eto, nid ydym wedi cyflwyno unrhyw gysyniadau newydd fel y cyfryw. 416 00:18:49,740 --> 00:18:53,230 Rydym wedi siarad am Booleans ôl pan fyddwn yn chwarae gyda Scratch. 417 00:18:53,230 --> 00:18:55,690 Ond yn sylweddoli nawr gallwn dim ond dechrau ysgrifennu ein cod yn 418 00:18:55,690 --> 00:18:56,550 nifer o wahanol ffyrdd. 419 00:18:56,550 --> 00:19:00,010 Felly, yn enwedig yn pset1, os ydych yn fath o ymdrechu i chyfrif i maes y ffordd i 420 00:19:00,010 --> 00:19:03,400 ysgrifennu rhai rhaglen, odds yn cael eu rydych mewn lwc oherwydd mae mynd i fod yn unrhyw 421 00:19:03,400 --> 00:19:05,780 nifer o atebion y gallwch ddigwydd arnynt. 422 00:19:05,780 --> 00:19:09,850 Er enghraifft, mae hyn yn unig yw tair blynedd ar gyfer hyd yn oed y symlaf o raglenni. 423 00:19:09,850 --> 00:19:10,180 Mae pob hawl. 424 00:19:10,180 --> 00:19:13,860 Ac yn awr yn cofio ar Ddydd Llun, rydym yn gadael ar y nodyn gyda gwerthoedd dychwelyd. 425 00:19:13,860 --> 00:19:18,280 Felly, am y tro cyntaf, fe wnaethom ysgrifennu rhaglen nad yw'n unig yn brif, 426 00:19:18,280 --> 00:19:22,240 mae ganddo hefyd ei swyddogaeth ei hun arferiad i mi ysgrifennu yma. 427 00:19:22,240 --> 00:19:26,640 Felly, mewn llinell 31 trwy 34, rwyf wedi gweithredu swyddogaeth ciwb. 428 00:19:26,640 --> 00:19:27,800 Dyw hi ddim yn gymhleth. 429 00:19:27,800 --> 00:19:29,830 Mae'n dim ond gwaith y gwaith, yn yr achos hwn. 430 00:19:29,830 --> 00:19:34,920 Ond yr hyn sy'n bwysig am y peth yw fy mod i'n cymryd mewnbwn yn y ffurf a 431 00:19:34,920 --> 00:19:38,910 Rwy'n dychwelyd cynnyrch ar ffurf o weithiau o weithiau a. 432 00:19:38,910 --> 00:19:43,940 >> Felly, yn awr yr wyf yn cael y gallu, yn debyg iawn Roeddwn i'n arfer gyda printf ei ben ei hun, i alw 433 00:19:43,940 --> 00:19:47,120 swyddogaeth hon drwy ffonio'r swyddogaeth ciwb. 434 00:19:47,120 --> 00:19:49,470 Ac mae'r swyddogaeth ciwb yn cymryd peth mewnbwn. 435 00:19:49,470 --> 00:19:52,030 Ac mae'r swyddogaeth ciwb yn dychwelyd rhywfaint o allbwn. 436 00:19:52,030 --> 00:19:56,660 Ac felly ar y llaw arall, dim ond printf gwneud rhywbeth. 437 00:19:56,660 --> 00:19:59,490 Nid oedd yn dychwelyd unrhyw beth yr ydym yn gofalu amdanynt - er, fel 438 00:19:59,490 --> 00:20:00,820 neilltu, mae'n dychwelyd gwerth. 439 00:20:00,820 --> 00:20:02,650 Chi dim ond yn gyffredinol anwybyddu. 440 00:20:02,650 --> 00:20:04,000 Printf dim ond gwneud rhywbeth. 441 00:20:04,000 --> 00:20:06,220 Roedd yn sgîl-effaith o argraffu ar y sgrin. 442 00:20:06,220 --> 00:20:09,480 Mewn cyferbyniad yma, mae gennym y swyddogaeth ciwb, sy'n 443 00:20:09,480 --> 00:20:11,400 mewn gwirionedd yn dychwelyd rhywbeth. 444 00:20:11,400 --> 00:20:12,960 >> Felly, mae hyn yn gyffredinol - 445 00:20:12,960 --> 00:20:15,260 ar gyfer y rhai sy'n gyfarwydd â hyn, mae'n syniad gweddol syml. 446 00:20:15,260 --> 00:20:18,460 Ond ar gyfer rhai sy'n llai cyfarwydd â'r syniad o basio mewn mewnbynnau a chael 447 00:20:18,460 --> 00:20:21,700 allbynnau yn ôl, gadewch i ni geisio syml rywbeth yn unig super. 448 00:20:21,700 --> 00:20:25,180 A oes unrhyw un yn gyfforddus yn dod i fyny ar y llwyfan yn fyr? 449 00:20:25,180 --> 00:20:27,460 Mae'n rhaid i chi fod yn gyfforddus gyda chamera ar chi, yn ogystal. 450 00:20:27,460 --> 00:20:27,640 Yeah. 451 00:20:27,640 --> 00:20:28,610 Iawn, beth yw eich enw? 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 Mae pob hawl, Ken. 455 00:20:29,810 --> 00:20:31,060 Dewch ar i fyny. 456 00:20:31,060 --> 00:20:34,660 Felly, Ken yn mynd i fod yn swyddogaeth o fath yma. 457 00:20:34,660 --> 00:20:35,760 A gadewch i ni fynd ymlaen a gwneud hyn. 458 00:20:35,760 --> 00:20:38,790 Gadewch i ni gael ychydig o ffansi. 459 00:20:38,790 --> 00:20:39,770 Braf i gwrdd â chi. 460 00:20:39,770 --> 00:20:41,010 Croeso i ganol y llwyfan. 461 00:20:41,010 --> 00:20:41,980 Mae pob hawl. 462 00:20:41,980 --> 00:20:45,590 Gadewch i ni daro y botwm yma. 463 00:20:45,590 --> 00:20:46,420 Mae pob hawl. 464 00:20:46,420 --> 00:20:49,490 Felly dyma oes gennych bwrdd sialc modern. 465 00:20:49,490 --> 00:20:53,050 A hyn yr wyf yw prif swyddogaeth, er enghraifft. 466 00:20:53,050 --> 00:20:55,990 Ac nid oes gennyf iPad yn fy llaw. 467 00:20:55,990 --> 00:20:59,000 Dwi ddim yn cofio sut i - wel, mewn gwirionedd, ni ellir dweud hynny. 468 00:20:59,000 --> 00:21:02,200 Dwi ddim yn cael llawysgrifen da. 469 00:21:02,200 --> 00:21:05,260 Ac felly, felly, rwyf am i chi argraffu rhywbeth ar y sgrin i mi. 470 00:21:05,260 --> 00:21:07,470 >> Felly, yr wyf yn cael y brif raglen. 471 00:21:07,470 --> 00:21:15,060 Ac yr wyf yn mynd i gael i chi ddweud hyn drwy ysgrifennu yn fy crafu cyw iâr a 472 00:21:15,060 --> 00:21:16,600 yna basio eich mewnbwn. 473 00:21:16,600 --> 00:21:20,000 Felly, fel y gwirion er bod yr ymarfer hwn yw, y syniad o swyddogaethau a galw 474 00:21:20,000 --> 00:21:22,260 swyddogaeth a dychwelyd swyddogaeth wir boils i lawr i hyn. 475 00:21:22,260 --> 00:21:23,120 Yr wyf yn brif. 476 00:21:23,120 --> 00:21:26,270 Yr wyf wedi ysgrifennu newydd printf ("rhywbeth") ar y sgrin. 477 00:21:26,270 --> 00:21:27,470 Rwy'n rhedeg y rhaglen. 478 00:21:27,470 --> 00:21:30,900 A chyn gynted ag printf yn cael ei alw, mae'n cymryd un ddadl - neu un paramedr, 479 00:21:30,900 --> 00:21:31,660 weithiau - 480 00:21:31,660 --> 00:21:32,780 rhwng dyfynodau dwbl. 481 00:21:32,780 --> 00:21:33,960 Dyma yw y ddadl. 482 00:21:33,960 --> 00:21:35,740 Rwy'n ei throsglwyddo i Ken. 483 00:21:35,740 --> 00:21:39,390 Nawr mae'n blwch du ysgrifennu rhai nifer o flynyddoedd yn ôl sy'n ymddangos 484 00:21:39,390 --> 00:21:41,070 yn unig yn gwybod sut i argraffu pethau ar y sgrin. 485 00:21:41,070 --> 00:21:42,320 >> Felly, gweithredu. 486 00:21:48,842 --> 00:21:49,900 Dyw hynny ddim yn ddrwg. 487 00:21:49,900 --> 00:21:50,890 Felly, da iawn. 488 00:21:50,890 --> 00:21:52,900 Felly nawr Ken yn cael ei wneud gweithredu. 489 00:21:52,900 --> 00:21:55,810 A oes angen iddo roi unrhyw beth i mi yn ôl? 490 00:21:55,810 --> 00:21:57,240 Felly, nid ydym wedi gweld hyd yn hyn. 491 00:21:57,240 --> 00:21:59,230 Unwaith eto, printf mewn gwirionedd yn dychwelyd rhif. 492 00:21:59,230 --> 00:22:01,640 Ond rydym ni'n mynd i anwybyddu hynny am awr oherwydd nid ydym erioed wedi ei ddefnyddio. 493 00:22:01,640 --> 00:22:03,400 Felly dyna ni am Ken. 494 00:22:03,400 --> 00:22:06,650 Ac felly, yn awr prif dod yn ôl i weithredu - 495 00:22:06,650 --> 00:22:09,630 brif cymryd drosodd rheolaeth y rhaglen eto oherwydd y llinell o god, 496 00:22:09,630 --> 00:22:11,010 printf, yn cael ei wneud gweithredu. 497 00:22:11,010 --> 00:22:13,890 Ac rydym yn mynd ati i weithredu ein ffordd beth bynnag llinellau eraill yno. 498 00:22:13,890 --> 00:22:14,130 >> Mae pob hawl. 499 00:22:14,130 --> 00:22:17,080 Felly nawr gadewch i ni geisio enghraifft ychydig yn wahanol. 500 00:22:17,080 --> 00:22:22,430 A'r tro hwn yma, heb yn gyntaf glir y sgrin yma. 501 00:22:22,430 --> 00:22:24,670 A'r tro hwn, byddwn yn gwneud y swyddogaeth cubing. 502 00:22:24,670 --> 00:22:27,350 Ond y tro hwn, yr wyf yn disgwyl gwerth allbwn. 503 00:22:27,350 --> 00:22:28,630 Felly, gadewch i ni fynd ymlaen a gwneud hyn. 504 00:22:28,630 --> 00:22:35,680 Felly nawr mae gen i linell o god sy'n dweud x = ciwb (x). 505 00:22:35,680 --> 00:22:36,930 Felly, mewn gwirionedd let's - 506 00:22:41,450 --> 00:22:43,940 y llinell o god, galw i gof, yn edrych fel hyn. 507 00:22:43,940 --> 00:22:45,960 x = ciwb (x). 508 00:22:45,960 --> 00:22:48,100 Felly, sut mae hyn yn mynd i weithio? 509 00:22:48,100 --> 00:22:50,820 Felly, gadewch i ni fynd yn ei flaen ac yn rhoi sgrin gwyn eto. 510 00:22:50,820 --> 00:22:55,000 Ac yr wyf yn mynd i ysgrifennu nawr i lawr y gwerth x, sydd ar hyn o bryd yn 511 00:22:55,000 --> 00:23:01,080 amser yn digwydd bod, gadewch i ni ddweud, 2, i'w gadw'n syml. 512 00:23:01,080 --> 00:23:04,890 Felly, yr wyf wedi ysgrifennu i lawr ar ddarn o bapur gwerth o 2, 513 00:23:04,890 --> 00:23:06,100 sef fy x gwerth. 514 00:23:06,100 --> 00:23:08,250 Rwy'n ei roi i Ken. 515 00:23:08,250 --> 00:23:09,200 KEN: Ac yr wyf yn jyst ysgrifennu'r ateb? 516 00:23:09,200 --> 00:23:12,660 DAVID J. Malan: Yeah, gadewch i ni dim ond ysgrifennwch yr ateb. 517 00:23:12,660 --> 00:23:13,030 Iawn. 518 00:23:13,030 --> 00:23:16,280 Ac yn awr mae'n rhaid iddo ddychwelyd i mi rhywbeth. 519 00:23:16,280 --> 00:23:17,560 Felly - 520 00:23:17,560 --> 00:23:18,170 berffaith. 521 00:23:18,170 --> 00:23:18,840 Nice segue. 522 00:23:18,840 --> 00:23:21,970 >> Felly nawr ei fod dwylo fi yn ôl y gwerth o 8, yn yr achos hwn. 523 00:23:21,970 --> 00:23:23,220 A beth ddylwn i ei wneud ag ef? 524 00:23:23,220 --> 00:23:26,130 Wel, mewn gwirionedd, gadewch i ni weld. 525 00:23:26,130 --> 00:23:26,640 Cael yr hawl hon. 526 00:23:26,640 --> 00:23:27,880 Beth ydw i'n mynd i wneud â hi? 527 00:23:27,880 --> 00:23:31,900 Nawr rwy'n mynd i gymryd y gwerth hwn ac mewn gwirionedd yn ei storio yn y 528 00:23:31,900 --> 00:23:33,400 darnau yr un yn y cof. 529 00:23:33,400 --> 00:23:35,030 Ond rhybudd, rwy'n fath o trafferthion yma. 530 00:23:35,030 --> 00:23:38,280 Rwy'n ychydig yn ddryslyd oherwydd lle ydw i'n ysgrifennu mewn gwirionedd gwerth x? 531 00:23:38,280 --> 00:23:41,840 Oherwydd hyn yr wyf wedi ei wneud yn unig yn gorfforol law Ken ddarn o bapur 532 00:23:41,840 --> 00:23:44,400 nad oedd gan y gwerth 2, a oedd yn x. 533 00:23:44,400 --> 00:23:46,300 Ac yn wir, dyna yn union beth sy'n digwydd. 534 00:23:46,300 --> 00:23:50,100 Felly, mae'n troi allan bod pan fyddwch yn ffonio swyddogaeth, ac rydych yn pasio mewn dadl 535 00:23:50,100 --> 00:23:54,130 fel "helo byd" neu os ydych yn pasio mewn dadl fel 2, yn gyffredinol, ydych chi'n 536 00:23:54,130 --> 00:23:56,720 pasio mewn copi o'r ddadl. 537 00:23:56,720 --> 00:24:01,020 Ac felly yn union fel ysgrifennais i lawr y rhif 2 yma a'i roi i Ken; y mae'n rhaid 538 00:24:01,020 --> 00:24:04,760 golygu fy mod yn dal i gael copi o'r 2 werth yn rhywle. 539 00:24:04,760 --> 00:24:08,140 Oherwydd yn wir, yn awr fy mod i wedi gotten yn ôl y gwerth 8, mae angen i mi fynd yn ôl yn 540 00:24:08,140 --> 00:24:12,010 RAM ac mewn gwirionedd yn ysgrifennu i lawr 8 lle cefais unwaith roedd y rhif 2. 541 00:24:12,010 --> 00:24:15,720 >> Felly, cofiwch weledol y syniad o fynd yn llythrennol 542 00:24:15,720 --> 00:24:16,730 copi o'r gwerth. 543 00:24:16,730 --> 00:24:19,570 Ken yn gwneud ei beth, dwylo i mi rhywbeth yn ôl - yn yr achos hwn, 544 00:24:19,570 --> 00:24:20,820 gwerth fel 8. 545 00:24:20,820 --> 00:24:22,660 Ac yna mae'n rhaid i mi wneud rhywbeth gyda'r gwerth os byddaf yn 546 00:24:22,660 --> 00:24:24,880 am gadw o gwmpas. 547 00:24:24,880 --> 00:24:29,470 Felly bydd hyn i gyd yn rhy gyfarwydd cyn bo hir. 548 00:24:29,470 --> 00:24:33,082 Diolch yn fawr am y demo yma, Ken. 549 00:24:33,082 --> 00:24:34,820 Mae pob hawl. 550 00:24:34,820 --> 00:24:36,720 Da iawn chi. 551 00:24:36,720 --> 00:24:40,610 Felly, gadewch i ni weld sut yn y pen draw yn berthnasol i rai o'r swyddogaeth 552 00:24:40,610 --> 00:24:42,270 galw ein bod ni wedi bod yn ei wneud yma. 553 00:24:42,270 --> 00:24:47,610 Felly, gadewch i mi fynd yn ei flaen ac yn dod â ni yn ôl at yr enghraifft cubing yma. 554 00:24:47,610 --> 00:24:53,080 Ac yn sylwi bod os ydym am i mewn gwirionedd yn dechrau mynd â hyn ymhellach, rydym yn mynd 555 00:24:53,080 --> 00:24:57,050 i gael i fod yn ymwybodol o'r ffaith bod y x rhif sy'n cael ei basio yn y 556 00:24:57,050 --> 00:25:01,390 yma yn wahanol i'r hyn mewn gwirionedd yn cael ei basio i mewn i'r swyddogaeth. 557 00:25:01,390 --> 00:25:03,940 Felly, unwaith eto, mae hyn yn pasio drwy copi yn mynd i fod yn eithaf 558 00:25:03,940 --> 00:25:05,620 bwys yn mewn dim ond hyn o bryd. 559 00:25:05,620 --> 00:25:09,320 >> Felly, gadewch i ni edrych ar rywbeth nad yw'n llwyr gweithio'n iawn eto. 560 00:25:09,320 --> 00:25:11,790 Rydw i'n mynd i fynd yn ei flaen ac agor enghraifft bygi parti, sy'n 561 00:25:11,790 --> 00:25:13,560 yn ddiffygiol gan natur. 562 00:25:13,560 --> 00:25:18,070 Ac fe'i gelwir buggy3, a fydd yn gweithredu swyddogaeth cyfnewid. 563 00:25:18,070 --> 00:25:23,500 Felly yma mae gennym swyddogaeth prif sydd wedi x ac y ymgychwyn fympwyol i 564 00:25:23,500 --> 00:25:24,720 1 a 2, yn y drefn honno. 565 00:25:24,720 --> 00:25:27,590 Gallem ddefnyddio GetInt, ond rydym yn unig angen ymarfer syml. 566 00:25:27,590 --> 00:25:29,680 Felly mae'n hard-coded fel 1 a 2. 567 00:25:29,680 --> 00:25:35,330 Mewn llinellau 21 a 22, gennym, mae'n debyg argraffu x ac y, un i bob llinell. 568 00:25:35,330 --> 00:25:39,620 Yna, ar llinell 23, gallaf wneud cais am yr wyf yn cyfnewid gwerthoedd hyn, dot, dot, dot. 569 00:25:39,620 --> 00:25:43,030 I bob golwg alw swyddogaeth yn llinell 24 a elwir yn cyfnewid 570 00:25:43,030 --> 00:25:44,000 sy'n cymryd dwy ddadl. 571 00:25:44,000 --> 00:25:46,430 Mae'n gwbl legit ar gyfer swyddogaethau i gymryd dwy ddadl. 572 00:25:46,430 --> 00:25:48,220 Rydym wedi gweld printf wneud yn barod. 573 00:25:48,220 --> 00:25:50,370 Felly gyfnewid pob golwg yn cymryd x ac y. 574 00:25:50,370 --> 00:25:53,010 Ac fel yr awgryma'r enw, byddwn yn gobeithio ei fod yn mynd i 575 00:25:53,010 --> 00:25:54,320 gyfnewid y ddau gwerthoedd. 576 00:25:54,320 --> 00:25:57,560 Felly, yna gallaf hawlio ar-lein 25, cyfnewid. 577 00:25:57,560 --> 00:26:01,570 Ac yr wyf yn ailargraffiad x ac y dan y dybiaeth bod 578 00:26:01,570 --> 00:26:02,830 maent wedi cael eu cyfnewid yn wir. 579 00:26:02,830 --> 00:26:04,370 Ond os wyf mewn gwirionedd yn rhedeg y rhaglen - 580 00:26:04,370 --> 00:26:06,060 gadewch i mi agor ffenestr terfynell. 581 00:26:06,060 --> 00:26:07,750 Gadewch i mi wneud buggy3. 582 00:26:07,750 --> 00:26:09,970 Fel y mae'r enw'n awgrymu, nid yw hyn yn mynd i orffen yn dda. 583 00:26:09,970 --> 00:26:14,690 Oherwydd pan wyf yn taro Mewnbynnu, yn sylwi bod x yn 1. 584 00:26:14,690 --> 00:26:15,720 y yw 2. 585 00:26:15,720 --> 00:26:19,160 Ac eto ar ddiwedd y rhaglen, maent yn dal i fod, mewn gwirionedd, yr un fath. 586 00:26:19,160 --> 00:26:22,760 >> Hynny ar sail yr arddangosiad yn unig yn awr gyda Ken, beth sy'n digwydd mewn gwirionedd? 587 00:26:22,760 --> 00:26:24,660 Wel, gadewch i ni neidio i mewn i'r swyddogaeth cyfnewid. 588 00:26:24,660 --> 00:26:25,800 Mae'n super byr. 589 00:26:25,800 --> 00:26:28,020 Dim ond ychydig linellau o god hir. 590 00:26:28,020 --> 00:26:32,810 Ond beth yw'r broblem sylfaenol yn seiliedig ar y stori syml dywedwyd wrtho 591 00:26:32,810 --> 00:26:34,270 i fyny yma gyda Ken? 592 00:26:34,270 --> 00:26:36,115 Pam mae cyfnewid torri? 593 00:26:36,115 --> 00:26:37,365 [Anghlywadwy] 594 00:26:39,840 --> 00:26:40,460 Yn union. 595 00:26:40,460 --> 00:26:43,610 Felly, rydym yn storio peidio i gael copi, y newidyn ei hun. 596 00:26:43,610 --> 00:26:46,810 Mewn geiriau eraill, ffeirio ymddangos yn cymryd dwy ddadl, yn int. 597 00:26:46,810 --> 00:26:49,370 Ac mae'n cael ei alw yn fympwyol a b a. 598 00:26:49,370 --> 00:26:54,430 Ac yma, rwyf wedi pasio yn x ac y, sydd yn y drefn honno 1 a 2. 599 00:26:54,430 --> 00:26:56,580 Ond dydw i ddim yn llythrennol basio yn x. 600 00:26:56,580 --> 00:26:58,410 Dydw i ddim yn llythrennol basio yn y. 601 00:26:58,410 --> 00:27:01,230 Rwy'n pasio copi o x a chopi o y. 602 00:27:01,230 --> 00:27:05,180 Mae fel bron fel petaech copïo a gludo i mewn i gyfnewid y gwerthoedd sy'n 603 00:27:05,180 --> 00:27:07,440 ydych am iddo mewn gwirionedd trin. 604 00:27:07,440 --> 00:27:11,970 Felly, os yw hynny'n wir, pan oeddwn i, y rhaglen, yn dechrau gweithredu 605 00:27:11,970 --> 00:27:14,140 llinell 35, yna 36 - 606 00:27:14,140 --> 00:27:17,740 pan fyddaf yn mynd i linell 37, yn y fan hon yn y stori, beth yw gwerth? 607 00:27:20,740 --> 00:27:24,850 Ar y pwynt hwn yn y stori, llinell 37, beth yw gwerth ar y pwynt hwn? 608 00:27:24,850 --> 00:27:25,980 Felly, dylai fod dim ond yn 1. 609 00:27:25,980 --> 00:27:26,170 Hawl? 610 00:27:26,170 --> 00:27:29,100 Oherwydd x ei basio i mewn fel y ddadl gyntaf. 611 00:27:29,100 --> 00:27:33,150 Ac mae hyn yn swyddogaeth yn unig fympwyol yn galw ei ddadl gyntaf, a. 612 00:27:33,150 --> 00:27:35,130 Yn yr un modd yn y, yr ail ddadl. 613 00:27:35,130 --> 00:27:37,930 Ac 'i' jyst fympwyol ffonio'r b ail ddadl. 614 00:27:37,930 --> 00:27:40,510 >> Nawr mae hyn ddeuoliaeth mewn gwirionedd yn eithaf hegluro'n syml. 615 00:27:40,510 --> 00:27:40,880 Meddyliwch am y peth. 616 00:27:40,880 --> 00:27:42,980 Nid oes yr un ohonom wedi cwrdd â'r person a ysgrifennodd printf. 617 00:27:42,980 --> 00:27:49,880 Felly yn sicr, bydd ef neu ganddi ddim syniad beth yw ein newidynnau 30 mlynedd yn ddiweddarach yn mynd 618 00:27:49,880 --> 00:27:50,710 i gael ei alw. 619 00:27:50,710 --> 00:27:55,110 Felly, mae'n rhaid cael gwahaniaethu rhwng yr hyn a alwch newidynnau mewn 620 00:27:55,110 --> 00:27:59,960 swyddogaethau rydych chi'n ysgrifennu a beth fyddwch yn ffonio newidynnau mewn swyddogaethau rydych chi'n 621 00:27:59,960 --> 00:28:01,770 ffonio neu ddefnyddio. 622 00:28:01,770 --> 00:28:05,120 Felly, mewn geiriau eraill, yr wyf wedi ysgrifennu fy newidynnau fel x ac y. 623 00:28:05,120 --> 00:28:08,060 Ond os yw rhywun arall wedi ysgrifennu y swyddogaeth cyfnewid, bydd ef neu hi yn sicr 624 00:28:08,060 --> 00:28:10,480 na fyddent yn gwybod beth yw fy newidynnau yn mynd i gael eu galw. 625 00:28:10,480 --> 00:28:13,850 Felly, yn sylweddoli bod hyn yn pam yr ydych yn cael y ddeuoliaeth o enwau. 626 00:28:13,850 --> 00:28:16,800 Yn dechnegol, gallwn wneud hyn drwy gyd-ddigwyddiad. 627 00:28:16,800 --> 00:28:19,750 Ond byddent yn dal i gael eu trosglwyddo i mewn fel copïau. 628 00:28:19,750 --> 00:28:22,940 Byddai yn unig fod yn gyd-ddigwyddiad pur esthetaidd os yw'r person a ysgrifennodd 629 00:28:22,940 --> 00:28:25,590 cyfnewid wedi defnyddio yr un enwau. 630 00:28:25,590 --> 00:28:25,930 >> Mae pob hawl. 631 00:28:25,930 --> 00:28:29,010 Felly, ar y pwynt hwn yn y stori, llinell 37, a yw 1. 632 00:28:29,010 --> 00:28:30,410 b yw 2. 633 00:28:30,410 --> 00:28:32,040 Ac yn awr yr wyf yn symud ymlaen i gyfnewid eu cyfer. 634 00:28:32,040 --> 00:28:34,730 Wel yn gyntaf oll, gadewch i mi mewn gwirionedd yn gwneud hyn yn llawer mwy syml. 635 00:28:34,730 --> 00:28:36,500 Nid wyf yn gwybod beth yw'r tair llinell o god yn ei wneud. 636 00:28:36,500 --> 00:28:37,370 Gadewch i mi wneud hyn. 637 00:28:37,370 --> 00:28:38,850 b yn cael. 638 00:28:38,850 --> 00:28:40,170 a yn cael b. 639 00:28:40,170 --> 00:28:41,450 Done. 640 00:28:41,450 --> 00:28:43,540 Pam mae hyn yn torri, yn rhesymegol? 641 00:28:46,980 --> 00:28:48,590 Mae'n fath o beth sythweledol, dde? 642 00:28:48,590 --> 00:28:50,640 Felly yn dod b. 643 00:28:50,640 --> 00:28:52,450 Ac b yn dod yn. 644 00:28:52,450 --> 00:28:55,410 Ond y broblem yw bod cyn gynted ag y bo llinell 37 executes, beth yw'r 645 00:28:55,410 --> 00:28:58,170 gwerth a b? 646 00:28:58,170 --> 00:28:59,070 Mae'r un peth, 1. 647 00:28:59,070 --> 00:29:03,460 Am eich bod wedi taro, fel petai, rydych chi wedi newid b yn hafal i a. 648 00:29:03,460 --> 00:29:06,000 Felly, unwaith y bydd llinell 37 wedi'i gyflawni, mae hynny'n wych. 649 00:29:06,000 --> 00:29:09,940 Nawr mae gennych chi dau gopi o 1 rhif y tu mewn swyddogaeth hon. 650 00:29:09,940 --> 00:29:14,720 Felly, yna pan fyddwch yn dweud yn llinell 38, yn cael b, wel, rydych yn fath o sgriwio. 651 00:29:14,720 --> 00:29:17,370 Oherwydd eich bod yn unig yn neilltuo 1-1. 652 00:29:17,370 --> 00:29:20,400 Rydych chi wedi fath o golli y gwerth yr ydych yn gofalu amdano. 653 00:29:20,400 --> 00:29:22,910 >> Felly, yn y fersiwn wreiddiol o hyn, sylwi ar beth wnes i. 654 00:29:22,910 --> 00:29:26,620 Yn hytrach, roedd nhrydedd linell o god sy'n edrych fel hyn. 655 00:29:26,620 --> 00:29:29,910 Yr wyf yn datgan newidyn dros dro - tmp yn enw cyffredin iawn 656 00:29:29,910 --> 00:29:31,240 ar gyfer newidyn dros dro. 657 00:29:31,240 --> 00:29:34,280 Mae'n int oherwydd mae'n rhaid iddo cyfateb i'r hyn yr wyf am wneud copi o. 658 00:29:34,280 --> 00:29:39,720 Rwy'n cadw copi o tu mewn tmp. Felly, unwaith y bydd llinell 37 wedi cyflawni, 659 00:29:39,720 --> 00:29:41,390 y gwerth yw - 660 00:29:41,390 --> 00:29:42,970 bwyll cyflym gwirio - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 Mae gwerth b yw 2. 663 00:29:45,780 --> 00:29:48,470 A gwerth tmp hefyd yn 1. 664 00:29:48,470 --> 00:29:51,470 Felly, yn awr yr wyf gweithredu llinell 38. 665 00:29:51,470 --> 00:29:57,180 Felly, unwaith y bydd llinell 38 executes, a mynd ar werth b. 666 00:29:57,180 --> 00:29:58,510 A oedd 2 b. 667 00:29:58,510 --> 00:30:00,500 Felly yn awr 2. 668 00:30:00,500 --> 00:30:03,110 Felly, ar y pwynt hwn yn y stori, a yw 2, b yw 2, 669 00:30:03,110 --> 00:30:05,130 ac tmp yw 1. 670 00:30:05,130 --> 00:30:09,330 Felly, yn awr yn rhesymegol, gallwn werthfawrogi dim ond sw n plopian tmp yn i mewn i b. 671 00:30:09,330 --> 00:30:10,690 Ac rydym ni'n ei wneud. 672 00:30:10,690 --> 00:30:12,170 >> Felly, rydym wedi datrys y broblem honno. 673 00:30:12,170 --> 00:30:16,040 Yn anffodus, pan fyddaf yn rhedeg y rhaglen ar y ffurflen hon, nid yw'n mewn gwirionedd yn gyfnewid 674 00:30:16,040 --> 00:30:17,700 unrhyw werthoedd. 675 00:30:17,700 --> 00:30:18,950 Ond i fod yn glir, pam? 676 00:30:23,420 --> 00:30:26,310 Wyf yn sefydlog y broblem rhesymegol o ychydig funud yn ôl. 677 00:30:26,310 --> 00:30:31,150 Ond unwaith eto, os wyf yn rhedeg y rhaglen, x ac y yn aros yn ddigyfnewid erbyn diwedd 678 00:30:31,150 --> 00:30:33,834 gweithredu y rhaglen. 679 00:30:33,834 --> 00:30:34,760 [Anghlywadwy] 680 00:30:34,760 --> 00:30:36,030 DAVID J. Malan: Felly nid ydym wedi dychwelyd unrhyw beth. 681 00:30:36,030 --> 00:30:36,960 Felly, mae hynny'n wir. 682 00:30:36,960 --> 00:30:39,880 Ond mae'n troi allan mae ychydig o broblem yma oherwydd hyd yn hyn, mae'r 683 00:30:39,880 --> 00:30:42,460 unig beth rydym wedi bod yn gallu dychwelyd yn un peth. 684 00:30:42,460 --> 00:30:46,540 Ac mae hyn yn gyfyngiad o C. Gallwch ddychwelyd yn wir un gwerth, 685 00:30:46,540 --> 00:30:48,970 yn yr achos hwn, rwy'n math o sownd yma 686 00:30:48,970 --> 00:30:51,805 gan y byddwn yn dychwelyd y gwerth newydd x neu gallwn ddychwelyd y 687 00:30:51,805 --> 00:30:53,160 gwerth newydd y. 688 00:30:53,160 --> 00:30:54,330 Ond yr wyf am i yn ôl. 689 00:30:54,330 --> 00:30:58,010 Felly nid ddychwelyd yw'r ateb syml yma. 690 00:30:58,010 --> 00:30:59,770 Ond y broblem sylfaenol yw pam? 691 00:30:59,770 --> 00:31:03,270 Beth ydym ni wedi cyfnewid mewn gwirionedd? 692 00:31:03,270 --> 00:31:04,010 a a b. 693 00:31:04,010 --> 00:31:07,670 Ond mae a a b yn copďau o x ac y, sy'n golygu ein bod yn unig oedd hyn i gyd 694 00:31:07,670 --> 00:31:10,080 gweithio - rydym yn ei wario yn union fel tair munud yn siarad am y cyfnewid 695 00:31:10,080 --> 00:31:11,680 swyddogaeth a pob un o'r tri o'r newidynnau hyn. 696 00:31:11,680 --> 00:31:15,090 Ac mae hynny'n wych, yn hollol gywir yn ei ben ei hun. 697 00:31:15,090 --> 00:31:20,230 Ond a a b yn chwmpas yn unig yn y llinellau hyn yma. 698 00:31:20,230 --> 00:31:24,130 Felly, yn union fel ar gyfer ddolen, os ydych yn datgan yn gyfanrif i tu mewn i'r am 699 00:31:24,130 --> 00:31:27,400 dolen - yn yr un modd, y tu mewn os ydych yn datgan a b swyddogaeth y 700 00:31:27,400 --> 00:31:30,550 rydych wedi ysgrifennu, maent yn unig y tu mewn dilys y swyddogaeth honno. 701 00:31:30,550 --> 00:31:35,020 Sy'n golygu cyn gynted ag y cyfnewid yn cael ei wneud cyflawni ac rydym yn mynd o linell 24 i 702 00:31:35,020 --> 00:31:38,380 Nid yw llinell 25, x ac y wedi cael eu newid o gwbl. 703 00:31:38,380 --> 00:31:42,580 Rydych yn unig gwastraffu llawer gyfan o amser yn gyfnewid copïau o newidynnau. 704 00:31:42,580 --> 00:31:46,490 >> Felly, mae'n troi allan fod yr ateb i hyn mewn gwirionedd heb fod yn amlwg. 705 00:31:46,490 --> 00:31:49,210 Dyw hi ddim yn hen ddigon i ddychwelyd gwerthoedd oherwydd ein bod yn gallu 706 00:31:49,210 --> 00:31:50,320 dim ond yn dychwelyd un gwerth. 707 00:31:50,320 --> 00:31:53,370 Ac yr wyf wir yn awyddus i gyfnewid ddau x ac y ar yr un pryd. 708 00:31:53,370 --> 00:31:55,020 Felly, rydym yn mynd i ddod yn ôl i hyn. 709 00:31:55,020 --> 00:31:58,770 Ond am nawr, yn sylweddoli bod y mater sylfaenol yn deillio o'r ffaith 710 00:31:58,770 --> 00:32:00,660 bod a a b yn gopïau. 711 00:32:00,660 --> 00:32:03,450 Ac maent yn eu cwmpas eu hunain. 712 00:32:03,450 --> 00:32:04,980 Wel, gadewch i ni geisio datrys hyn mewn rhyw ffordd. 713 00:32:04,980 --> 00:32:09,200 Gadewch i mi mewn gwirionedd yn sgrolio yn ôl yma ac yn agor i fyny, gadewch i ni ddweud, amrywiad 4 714 00:32:09,200 --> 00:32:11,170 o hyn, buggy4. 715 00:32:11,170 --> 00:32:13,230 A beth am hyn? 716 00:32:13,230 --> 00:32:16,690 Mae hon yn broblem debyg ond symlach i edrych ar cyn inni gymryd drywanu yn 717 00:32:16,690 --> 00:32:17,530 datrys. 718 00:32:17,530 --> 00:32:19,440 Mae'r rhaglen hon yn cael ei alw'n cynyddiad. 719 00:32:19,440 --> 00:32:24,320 Ac mae'n debyg initializes cyfanrif x i 1 yn llinell 18. 720 00:32:24,320 --> 00:32:25,950 Yna hawlio x yw 1. 721 00:32:25,950 --> 00:32:28,020 Yna hawliad incrementing, dot, dot, dot. 722 00:32:28,020 --> 00:32:29,460 Yna, galwaf ar hicyn. 723 00:32:29,460 --> 00:32:33,480 Ond wedyn mewn llinellau 22 a 23, yr wyf yn ei hawlio wedi bod yn mynd i fyny. 724 00:32:33,480 --> 00:32:37,780 Gallaf wneud cais am x yn awr beth bynnag ydyw, 2 yn ôl pob tebyg. 725 00:32:37,780 --> 00:32:39,770 >> Ond mae'r rhaglen hon yn bygi. 726 00:32:39,770 --> 00:32:41,020 Beth yw'r broblem? 727 00:32:43,450 --> 00:32:44,418 Yeah? 728 00:32:44,418 --> 00:32:45,668 [Anghlywadwy] 729 00:32:49,260 --> 00:32:49,850 DAVID J. Malan: Yn union. 730 00:32:49,850 --> 00:32:52,430 Felly x wedi cael ei ddatgan yn amlwg ar linell 18. 731 00:32:52,430 --> 00:32:54,410 Dyna y tu mewn i brif braces cyrliog. 732 00:32:54,410 --> 00:32:58,470 Felly, yr ateb syml yma yw, wel, x yn bodoli yma. 733 00:32:58,470 --> 00:33:01,510 Nid yw'n bodoli mewn llinell 32. 734 00:33:01,510 --> 00:33:03,710 Felly y rhaglen hon, ni fydd mewn gwirionedd hyd yn oed yn llunio. 735 00:33:03,710 --> 00:33:07,910 Mae'r compiler, pan fyddaf yn ceisio llunio'r cod hwn, yn mynd i gweiddi arna i 736 00:33:07,910 --> 00:33:13,190 am rai dynodwr heb ei ddatgan neu rywbeth i'r perwyl hwnnw. 737 00:33:13,190 --> 00:33:13,870 Yn wir, gadewch i ni geisio. 738 00:33:13,870 --> 00:33:15,235 Mae hyn yn gwneud buggy4. 739 00:33:17,780 --> 00:33:18,190 Mae ydyw. 740 00:33:18,190 --> 00:33:22,030 Defnyddio x dynodwr heb eu datgan yn llinell 32. 741 00:33:22,030 --> 00:33:25,700 Ac mewn gwirionedd, gadewch i ni fod yn fwy eglur yma heddiw fel bod hyn yn ddefnyddiol wrth 742 00:33:25,700 --> 00:33:27,140 oriau swyddfa ac yn y cartref. 743 00:33:27,140 --> 00:33:29,000 Hysbysiad ei fod yn ychydig yn gryptig ysgrifenedig. 744 00:33:29,000 --> 00:33:31,560 Ond mae'r ffaith bod Clang wedi yelled ni, gan ddywedyd 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, mewn gwirionedd yn ddefnyddiol. 746 00:33:36,970 --> 00:33:41,970 Mae'n golygu bod y gwall ar llinell 32 ar bum safle cymeriad. 747 00:33:41,970 --> 00:33:44,670 Felly un, dau, tri, pedwar, pump. 748 00:33:44,670 --> 00:33:46,640 Dyna, mewn gwirionedd, lle mae'r broblem. 749 00:33:46,640 --> 00:33:49,710 A hefyd i gadw mewn cof yn ystod oriau swyddfa ac yn y cartref, rwy'n lwcus yma. 750 00:33:49,710 --> 00:33:50,740 Mae gen i un camgymeriad. 751 00:33:50,740 --> 00:33:52,660 Mae'n mynd i fod yn gymharol hawdd i'w datrys. 752 00:33:52,660 --> 00:33:56,220 Ond os ydych yn cael sgrîn gyfan lawn o negeseuon gwall llethol, unwaith eto, 753 00:33:56,220 --> 00:33:59,240 sylweddoli y gallai yr un bottommost yn unig fod yn arwydd o 754 00:33:59,240 --> 00:34:00,320 y rhai topmost. 755 00:34:00,320 --> 00:34:03,560 Felly, bob amser yn mynd ar drywydd i lawr eich bugs o lawr uchaf. 756 00:34:03,560 --> 00:34:06,720 Oherwydd gallai dim ond fod yn effaith llygad y dydd-gadwyn sy'n cael ei awgrymu i chi 757 00:34:06,720 --> 00:34:09,030 yn cael problemau ffordd fwy na chi ei wneud mewn gwirionedd. 758 00:34:09,030 --> 00:34:14,989 >> Felly, sut y gallem atgyweiria hon os yw fy nod yw i gynnydd x? 759 00:34:14,989 --> 00:34:15,370 Beth sy'n bod? 760 00:34:15,370 --> 00:34:15,620 Iawn. 761 00:34:15,620 --> 00:34:16,679 Felly, gallwn wneud x byd-eang. 762 00:34:16,679 --> 00:34:18,860 Gadewch i ni gymryd y shortcut fy mod yn rhybuddio amdanynt yn gynharach. 763 00:34:18,860 --> 00:34:20,550 Ond Heck, ni jyst angen ateb cyflym. 764 00:34:20,550 --> 00:34:23,949 Felly, gadewch i 'jyst dweud x int i fyny yma. 765 00:34:23,949 --> 00:34:25,600 Mae hynny'n gwneud x byd-eang. 766 00:34:25,600 --> 00:34:28,460 Felly nawr brif fynediad iddo. 767 00:34:28,460 --> 00:34:31,780 Ac mae cynyddiad yn cael mynediad iddo. 768 00:34:31,780 --> 00:34:33,860 Ac felly gadewch i mi fynd yn ei flaen ac yn llunio hyn yn awr. 769 00:34:33,860 --> 00:34:36,330 Gwnewch buggy4, Enter. 770 00:34:36,330 --> 00:34:37,440 Ymddangos i lunio awr. 771 00:34:37,440 --> 00:34:40,949 Gadewch i ni redeg buggy4, ac mae'n ymddangos i weithio mewn gwirionedd. 772 00:34:40,949 --> 00:34:42,780 Nawr mae hyn yn un o'r pethau hyn - 773 00:34:42,780 --> 00:34:45,870 wneud fel y dywedais, nid fel fi, gan fy mod wedi gwneud yn unig yma. 774 00:34:45,870 --> 00:34:49,239 Oherwydd yn gyffredinol, mae ein rhaglenni yn mynd i gael llawer mwy diddorol a 775 00:34:49,239 --> 00:34:50,440 llawer hirach na hyn. 776 00:34:50,440 --> 00:34:53,199 Ac os yw eich ateb i broblemau bywyd yn unig AH, rhowch yr holl 777 00:34:53,199 --> 00:34:57,550 newidynnau ar frig eich ffeil, yn gyflym iawn yn gwneud rhaglenni yn cael 778 00:34:57,550 --> 00:34:59,700 dychrynllyd, yn anodd i'w reoli. 779 00:34:59,700 --> 00:35:02,050 Mae'n mynd yn anoddach i feddwl am enwau amrywiol newydd. 780 00:35:02,050 --> 00:35:05,240 Mae'n mynd yn anoddach i ddeall beth newidyn sy'n gwneud beth. 781 00:35:05,240 --> 00:35:08,250 >> Ac felly yn gyffredinol, nid yw hyn yn ateb da. 782 00:35:08,250 --> 00:35:09,780 Felly, gadewch i ni wneud hyn yn well. 783 00:35:09,780 --> 00:35:11,920 Nid ydym am i ddefnyddio newidyn byd-eang yma. 784 00:35:11,920 --> 00:35:14,050 Dwi ddim eisiau i gynnydd x. 785 00:35:14,050 --> 00:35:16,050 Felly, allwn yn amlwg - 786 00:35:16,050 --> 00:35:18,450 ar ddiwedd y dydd, mae'n fath o stori wirion oherwydd rydym yn unig yn gwneud hyn. 787 00:35:18,450 --> 00:35:22,050 Ond os nad oeddwn yn gwybod am y gweithredydd, neu os nad wyf yn caniatáu i 788 00:35:22,050 --> 00:35:27,700 newid yn y brif hun, gallai sut arall y gallaf weithredu Ken dros yma, mae hyn yn 789 00:35:27,700 --> 00:35:31,450 amser i beidio â ciwb, ond i gynnydd? 790 00:35:31,450 --> 00:35:32,700 Sut ydw i'n newid y peth yma? 791 00:35:32,700 --> 00:35:33,025 Yeah. 792 00:35:33,025 --> 00:35:34,275 [Anghlywadwy] 793 00:35:37,430 --> 00:35:38,000 DAVID J. Malan: Iawn, da. 794 00:35:38,000 --> 00:35:40,490 Felly pam nad ydw i'n pasio yn x? 795 00:35:40,490 --> 00:35:44,390 Ac yna yn hytrach na dychwelyd, pam nad wyf ond yn gwneud dychwelyd x + 1? 796 00:35:44,390 --> 00:35:46,370 Yn awr, mae pethau ychydig yn fwy yn gorfod newid yma. 797 00:35:46,370 --> 00:35:47,530 Dwi ar y trywydd iawn. 798 00:35:47,530 --> 00:35:48,910 Beth arall sydd angen i mi tweak? 799 00:35:48,910 --> 00:35:49,470 Rhywun arall. 800 00:35:49,470 --> 00:35:49,882 Yeah? 801 00:35:49,882 --> 00:35:51,530 [Anghlywadwy] 802 00:35:51,530 --> 00:35:53,520 DAVID J. Malan: mae angen i mi newid y math dychwelyd i fyny un gynyddran 803 00:35:53,520 --> 00:35:54,590 oherwydd nad yw'n ddi-rym. 804 00:35:54,590 --> 00:35:56,650 Void yn golygu dim byd sy'n cael ei ddychwelyd. 805 00:35:56,650 --> 00:35:57,600 Ond yn amlwg, yn awr y mae. 806 00:35:57,600 --> 00:36:01,280 Felly, mae angen i hyn newid er mwyn int i fod yn gyson â beth bynnag 807 00:36:01,280 --> 00:36:02,580 Im 'mewn gwirionedd yn dychwelyd. 808 00:36:02,580 --> 00:36:04,580 >> Nawr rhywbeth arall yn dal i fod buggy yma. 809 00:36:04,580 --> 00:36:04,982 Yeah? 810 00:36:04,982 --> 00:36:06,590 [Anghlywadwy] 811 00:36:06,590 --> 00:36:07,630 DAVID J. Malan: Felly, yr wyf angen i gynnydd x? 812 00:36:07,630 --> 00:36:10,336 [Anghlywadwy] 813 00:36:10,336 --> 00:36:11,880 DAVID J. Malan: Ah, felly mae angen i basio x. 814 00:36:11,880 --> 00:36:13,300 Felly, mae angen i mi wneud hyn yma. 815 00:36:17,590 --> 00:36:19,690 Felly y prototeip, rhaid i mi newid hyn i fyny yma. 816 00:36:19,690 --> 00:36:21,290 Felly, mae'n rhaid i hyn ddod yn int. 817 00:36:21,290 --> 00:36:22,820 Mae'n rhaid i hyn fod yn - 818 00:36:22,820 --> 00:36:23,670 hmm. 819 00:36:23,670 --> 00:36:24,710 Fi 'n weithredol yn cael bug i lawr yma. 820 00:36:24,710 --> 00:36:25,780 Gadewch i ni atgyweiria hon un cyntaf. 821 00:36:25,780 --> 00:36:27,990 Beth ddylai hyn mewn gwirionedd fod? 822 00:36:27,990 --> 00:36:29,330 Felly mae'n rhaid i fod yn rhywbeth int. 823 00:36:29,330 --> 00:36:30,340 Gallai fod yn x. 824 00:36:30,340 --> 00:36:33,120 Ond dweud y gwir, os byddwch yn dechrau ffonio eich holl newidynnau x, mae'n mynd i gael 825 00:36:33,120 --> 00:36:35,250 llai ac yn llai eglur p'un yw p'un. 826 00:36:35,250 --> 00:36:38,210 Felly, gadewch i 'jyst fympwyol ddewis confensiwn enwi gwahanol ar gyfer fy 827 00:36:38,210 --> 00:36:40,220 swyddogaethau cynorthwy-ydd, y swyddogaethau rwy'n ysgrifennu. 828 00:36:40,220 --> 00:36:41,100 Byddwn yn galw ei fod yn. 829 00:36:41,100 --> 00:36:44,500 Neu gellid ei alw - gadewch i ni ei alw even_number i fod hyd yn oed yn fwy eglur. 830 00:36:44,500 --> 00:36:47,610 Felly, yna rhaid i mi ddychwelyd beth bynnag y nifer yn plws 1. 831 00:36:47,610 --> 00:36:49,720 Ac yn awr mae'n rhaid i mi newid un peth arall i fyny yma ac un 832 00:36:49,720 --> 00:36:50,700 beth arall i fyny yma. 833 00:36:50,700 --> 00:36:54,150 Beth sydd rhaid i mi newid ar-lein 21 yn gyntaf? 834 00:36:54,150 --> 00:36:55,390 Rhaid i mi neilltuo i x. 835 00:36:55,390 --> 00:36:57,480 Felly ni all Fi jyst alw x cynyddiad. 836 00:36:57,480 --> 00:37:01,000 Angen i mi gofio yr ateb drwy newid y gwerth x ar 837 00:37:01,000 --> 00:37:02,020 yr ochr chwith. 838 00:37:02,020 --> 00:37:04,930 A hyd yn oed er bod x yn awr ar y chwith a'r dde, mae hynny'n hollol iawn oherwydd 839 00:37:04,930 --> 00:37:08,370 yr ochr llaw dde yn cael ei gweithredu yn gyntaf ac yna yn cael ei plopped i'r chwith 840 00:37:08,370 --> 00:37:10,240 , beth llaw x yn yr achos hwn. 841 00:37:10,240 --> 00:37:11,900 Ac yna yn olaf, mae hwn yn ateb hawdd nawr. 842 00:37:11,900 --> 00:37:15,080 Dylai hyn dim ond cyfateb i'r hyn sydd i lawr isod. 843 00:37:15,080 --> 00:37:17,120 Nifer Int. 844 00:37:17,120 --> 00:37:17,320 >> Mae pob hawl. 845 00:37:17,320 --> 00:37:20,290 Felly, mae criw cyfan o newidiadau i swyddogaeth iawn dwp. 846 00:37:20,290 --> 00:37:24,250 Ond mae cynrychiolydd o bethau y byddwn yn fwyfwy awyddus i wneud. 847 00:37:24,250 --> 00:37:25,490 Felly gwnewch yn buggy4. 848 00:37:25,490 --> 00:37:26,485 Rydw i wedi sgriwio i fyny yn rhywle. 849 00:37:26,485 --> 00:37:27,520 O fy Nuw. 850 00:37:27,520 --> 00:37:29,660 Pum camgymeriadau yn, fel, rhaglen chwe-lein. 851 00:37:29,660 --> 00:37:36,500 Felly beth sydd o'i le ar llinell 18, cymeriad 5? 852 00:37:36,500 --> 00:37:36,970 Mae pob hawl. 853 00:37:36,970 --> 00:37:39,330 Felly, rhaid i mi ddatgan hynny int. 854 00:37:39,330 --> 00:37:39,630 Mae pob hawl. 855 00:37:39,630 --> 00:37:41,790 Felly, gadewch i ni weld, criw cyfan o wallau eraill. 856 00:37:41,790 --> 00:37:42,230 O fy dduw. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 Ond unwaith eto, gadewch i ni dim ond yn glir y sgrîn - 859 00:37:46,020 --> 00:37:48,660 L Rheoli yma - ac ail-redeg Clang. 860 00:37:48,660 --> 00:37:51,340 Felly pum problem mewn gwirionedd dim ond bod un. 861 00:37:51,340 --> 00:37:53,500 Felly nawr gadewch i ni redeg buggy4, Enter. 862 00:37:53,500 --> 00:37:54,150 Whew. 863 00:37:54,150 --> 00:37:57,434 x wedi cael ei cynyddran yn gywir. 864 00:37:57,434 --> 00:37:58,420 >> Mae pob hawl. 865 00:37:58,420 --> 00:38:01,700 Unrhyw gwestiynau am sut i gynnydd rhifau? 866 00:38:01,700 --> 00:38:02,896 Yeah? 867 00:38:02,896 --> 00:38:06,864 SIARADWR 2: Pam bod gallwch newid i rif x yn y newidyn 868 00:38:06,864 --> 00:38:08,860 enwi a bydd yn gwybod beth ydych yn ei olygu? 869 00:38:08,860 --> 00:38:09,600 DAVID J. Malan: Cwestiwn da. 870 00:38:09,600 --> 00:38:13,130 Sut mae'n bod y gallaf newid i nifer x a bydd y rhaglen yn gwybod 871 00:38:13,130 --> 00:38:13,990 ar unwaith? 872 00:38:13,990 --> 00:38:16,120 Felly, unwaith eto, yn meddwl am y peth fel hyn yn tynnu dŵr. 873 00:38:16,120 --> 00:38:20,110 Felly, os wyf yn prif Ken yn gynyddol, a dweud y gwir, nid wyf yn poeni 874 00:38:20,110 --> 00:38:21,540 beth Ken galw ei iPad. 875 00:38:21,540 --> 00:38:25,350 Nid wyf yn poeni beth y mae'n galw unrhyw beth sydd wedi ei wneud gyda ei weithredu 876 00:38:25,350 --> 00:38:26,550 o'r swyddogaeth hon. 877 00:38:26,550 --> 00:38:32,130 Felly, mae hyn yn gweithredu manylion nad wyf fi, prif, yn gwneud 878 00:38:32,130 --> 00:38:33,010 rhaid i chi ofalu amdanynt. 879 00:38:33,010 --> 00:38:37,440 Ac felly dim ond ei newid yn gyson tu mewn i'r swyddogaeth, rhif yma 880 00:38:37,440 --> 00:38:41,340 a rhif yma, yw'r cyfan mae'n ei gymryd gymaint o amser gan fy mod yn ail-grynhoi. 881 00:38:41,340 --> 00:38:43,820 Mae'n fath o fel os ydych yn meddwl am - llawer ohonom, y rhai ohonoch sydd â gyrrwr 882 00:38:43,820 --> 00:38:46,590 trwyddedau sydd wedi gyrru, neu os ydych chi wedi gyrru hyd yn oed mewn car - 883 00:38:46,590 --> 00:38:50,710 y rhan fwyaf ohonom ddim syniad sut mae car yn gweithio o dan y cwfl. 884 00:38:50,710 --> 00:38:54,710 Ac yn llythrennol, os byddwch yn agor y cwfl, mae'r rhan fwyaf ohonom - gan gynnwys fi - 885 00:38:54,710 --> 00:38:56,580 nad ydynt yn mynd i wir yn gwybod beth rydym yn edrych ar. 886 00:38:56,580 --> 00:38:58,850 Fath o fel efallai y byddwch yn teimlo gyda pethau fel hyn ar hyn o bryd. 887 00:38:58,850 --> 00:39:01,380 Ond nid ydym yn wir yn gorfod gofalu sut y mae'r car yn gweithio. 888 00:39:01,380 --> 00:39:05,000 Nid oes rhaid i ni ofalu beth y mae'r holl y wialen a pistons a cheblau tu mewn 889 00:39:05,000 --> 00:39:07,700 y car yn cael ei wneud mewn gwirionedd. 890 00:39:07,700 --> 00:39:11,360 >> Felly nid rhywbeth fel hyn a alwch yn piston yw o bwys 891 00:39:11,360 --> 00:39:11,920 yma yn yr achos hwn. 892 00:39:11,920 --> 00:39:12,490 Un syniad. 893 00:39:12,490 --> 00:39:12,670 Yeah? 894 00:39:12,670 --> 00:39:13,920 [Anghlywadwy] 895 00:39:25,250 --> 00:39:29,530 DAVID J. Malan: Pe bai mwy o ddefnydd o bryd xa amrywiol yn ôl, 896 00:39:29,530 --> 00:39:32,220 chi, y rhaglennydd, yn cael eu newid ym mhob man. 897 00:39:32,220 --> 00:39:35,230 Neu fe allech chi wneud llythrennol File, Dewislen, ac yna Canfod / Amnewid, 898 00:39:35,230 --> 00:39:36,270 rhywbeth fel 'na. 899 00:39:36,270 --> 00:39:40,110 Ond yr ydych yn mynd i gael i wneud y newidiadau hynny eich hun. 900 00:39:40,110 --> 00:39:41,200 Mae'n rhaid i chi fod yn gyson. 901 00:39:41,200 --> 00:39:42,450 [Anghlywadwy] 902 00:39:47,200 --> 00:39:48,960 DAVID J. Malan: A drefn arbennig yma? 903 00:39:48,960 --> 00:39:52,660 Os yw hyn yn int rhif arall? 904 00:39:52,660 --> 00:39:52,940 Yeah. 905 00:39:52,940 --> 00:39:56,430 Felly, er bwysig pan fyddwch yn galw y swyddogaeth. 906 00:39:56,430 --> 00:40:00,350 Felly, os wyf yn galw cynyddiad yma gyda rhywbeth coma rhywbeth, 907 00:40:00,350 --> 00:40:01,400 mae 'na mapio uniongyrchol. 908 00:40:01,400 --> 00:40:04,490 Y newidyn cyntaf, beth bynnag fe'i gelwir, yn cael ei gwneud copi o'r cyntaf 909 00:40:04,490 --> 00:40:05,480 dadl dros yma. 910 00:40:05,480 --> 00:40:07,280 Mae'n ddrwg gennym, ni ddylai hyn fod yn parenthesis. 911 00:40:07,280 --> 00:40:09,300 Mae'r llinellau ail ddadl i fyny gyda'r ail un. 912 00:40:09,300 --> 00:40:11,220 >> Felly gorchymyn, ie, materion. 913 00:40:11,220 --> 00:40:11,490 Mae pob hawl. 914 00:40:11,490 --> 00:40:13,360 Mae'n ddrwg gennym wyf yn cymryd ffordd bell i gyrraedd yno. 915 00:40:13,360 --> 00:40:14,610 Cwestiynau eraill? 916 00:40:16,460 --> 00:40:16,850 Mae pob hawl. 917 00:40:16,850 --> 00:40:20,300 Felly, gadewch i ni weld os na allwn beintio darlun o'r hyn sy'n digwydd mewn gwirionedd ar 918 00:40:20,300 --> 00:40:22,160 yma o dan y cwfl, fel petai. 919 00:40:22,160 --> 00:40:26,310 Felly mae hwn yn petryal a allai gynrychioli cof eich cyfrifiadur. 920 00:40:26,310 --> 00:40:31,240 Felly, hyd yn oed os nad oes gennych syniad sut y cof yn gweithio neu sut mae RAM, o leiaf 921 00:40:31,240 --> 00:40:33,590 cymryd yn ganiataol bod gennych sypiau ohono y dyddiau hyn. 922 00:40:33,590 --> 00:40:34,740 Rydych chi wedi got megabeit ohono. 923 00:40:34,740 --> 00:40:35,760 Rydych chi wedi got gigabeit ohono. 924 00:40:35,760 --> 00:40:40,690 Ac rydym yn gwybod o sero wythnos fod beit yn unig yw hyn? 925 00:40:40,690 --> 00:40:41,280 8 did. 926 00:40:41,280 --> 00:40:42,730 Iawn, hynny 8 sero a rhai. 927 00:40:42,730 --> 00:40:46,300 Felly, os yw eich cyfrifiadur yn gig o RAM, dau gigs o RAM y dyddiau hyn, mae gennych 928 00:40:46,300 --> 00:40:54,450 biliwn neu 2000000000 bytes o gof, neu tua 8 biliwn neu 16000000000 929 00:40:54,450 --> 00:40:56,560 darnau, tu mewn i'ch cyfrifiadur. 930 00:40:56,560 --> 00:40:59,710 Nawr yn wahanol i'r enghraifft Willy bach gwlanog, nid yw'n gronynnau magnetig 931 00:40:59,710 --> 00:41:00,560 fel arfer anymore. 932 00:41:00,560 --> 00:41:04,470 Yn gynyddol, mewn gliniaduron o leiaf, mae'n gyrru cyflwr solet, AGCau, sy'n 933 00:41:04,470 --> 00:41:05,560 yn unig wedi dim rhannau symudol. 934 00:41:05,560 --> 00:41:06,710 Mae hyn i gyd electronig. 935 00:41:06,710 --> 00:41:08,070 Mae hyn i gyd trydan. 936 00:41:08,070 --> 00:41:12,360 Felly, yn credu, fodd bynnag, y petryal fel dim ond cynrychioli'r un neu ddau 937 00:41:12,360 --> 00:41:13,930 gigabeit o gof sydd gennych. 938 00:41:13,930 --> 00:41:15,500 >> Felly mae'n ddarn o gof. 939 00:41:15,500 --> 00:41:20,460 Nawr bod y byd gwyddoniaeth gyfrifiadurol yn fath o ddarnau rhannu oddi 940 00:41:20,460 --> 00:41:22,570 cof i wneud pethau gwahanol. 941 00:41:22,570 --> 00:41:25,930 Felly, er enghraifft, os yw hyn yn RAM eich cyfrifiadur - fel yr awgrymwyd gan y 942 00:41:25,930 --> 00:41:30,400 petryal yno - troi allan bod gan gonfensiwn, ar ben eich RAM, felly 943 00:41:30,400 --> 00:41:33,170 i siarad, yn gyffredinol hyn a elwir yn segment testun. 944 00:41:33,170 --> 00:41:35,910 Dyna'r sero a rhai yr ydych wedi ei lunio. 945 00:41:35,910 --> 00:41:39,040 Felly, pan fyddwn wedi edrych o dan y cwfl ar yr hyn a.out yw, mae pawb 946 00:41:39,040 --> 00:41:40,360 y sero a rhai - 947 00:41:40,360 --> 00:41:44,000 pan fyddwch yn rhedeg rhaglen, y rhai sero a rhai yn cael eu llwytho oddi wrth eich caled 948 00:41:44,000 --> 00:41:46,290 gyrru i mewn i rywbeth o'r enw RAM. 949 00:41:46,290 --> 00:41:48,950 Ac yn y RAM, maen nhw'n rhoi ar y brig. 950 00:41:48,950 --> 00:41:50,330 Nawr yn y cyfamser, mae gennych bethau eraill. 951 00:41:50,330 --> 00:41:53,060 Data hymgychwyn, data uninitialized. 952 00:41:53,060 --> 00:41:56,440 Mae'r ddau ystodau o gof yn cyfeirio at newidynnau byd-eang, sy'n 953 00:41:56,440 --> 00:41:57,530 nad ydych yn aml yn defnyddio. 954 00:41:57,530 --> 00:42:00,630 Ond weithiau os ydych yn ei wneud, maent yn y pen draw i fyny yno yn ogystal. 955 00:42:00,630 --> 00:42:01,620 Yna mae rhai pethau eraill. 956 00:42:01,620 --> 00:42:04,130 Newidynnau amgylchedd, a ni fyddwn yn treulio llawer o amser ar. 957 00:42:04,130 --> 00:42:06,120 Ond yna ddau beth pwysig a fydd yn dod yn ôl drwy gydol y 958 00:42:06,120 --> 00:42:08,130 semester, stac a domen. 959 00:42:08,130 --> 00:42:12,280 >> Felly, y rhan fwyaf o gof eich cyfrifiadur yn cael ei gadw wrth redeg rhaglen ar gyfer 960 00:42:12,280 --> 00:42:14,880 rywbeth a elwir yn y pentwr ac yn rhywbeth a elwir yn y domen. 961 00:42:14,880 --> 00:42:16,940 Ac nid ydym yn mynd i siarad am y domen heddiw, ond byddwn yn 962 00:42:16,940 --> 00:42:18,180 siarad am y pentwr. 963 00:42:18,180 --> 00:42:22,910 Ac y pentwr i fod i greu'r yr gweledol fel y neuadd fwyta 964 00:42:22,910 --> 00:42:26,120 hambyrddau bwyd yn Mather House, neu ble bynnag yr ydych yn digwydd bod, lle mae'r 965 00:42:26,120 --> 00:42:27,810 neuadd fwyta staff glanhau bob dydd. 966 00:42:27,810 --> 00:42:30,180 Maent yn pentyrru nhw i fyny o'r llawr ar i fyny. 967 00:42:30,180 --> 00:42:33,800 Ac yn yr un modd mewn cof, mae hyn yn syniad o roi rhywbeth ar 968 00:42:33,800 --> 00:42:36,740 stac, gan roi rhywbeth ar pentwr, gan roi rhywbeth ar pentwr. 969 00:42:36,740 --> 00:42:38,000 A beth ydyn ni'n ei olygu wrth hyn? 970 00:42:38,000 --> 00:42:41,430 Wel, gadewch i ni chwyddo i mewn ar ddim ond hanner isaf y llun, eich cyfrifiadur 971 00:42:41,430 --> 00:42:43,990 RAM, i gynnig y canlynol. 972 00:42:43,990 --> 00:42:48,300 Mae'n troi allan bod pan fyddwch yn rhedeg rhaglen fel a.out neu helo, beth bynnag 973 00:42:48,300 --> 00:42:49,920 y rhaglen yw eich bod wedi ysgrifennu, 974 00:42:49,920 --> 00:42:53,030 unwaith eto, y rhai sero a rhai yn cael eu llwytho oddi wrth eich gyriant caled - sy'n 975 00:42:53,030 --> 00:42:56,190 storio tymor hir, yn aros yno hyd yn oed pan fyddwch yn tynnu'r plwg - 976 00:42:56,190 --> 00:42:57,220 lwytho i mewn RAM. 977 00:42:57,220 --> 00:42:59,020 RAM yn gyflymach na 'n anawdd drives. 978 00:42:59,020 --> 00:43:00,700 Mae'n llai na 'n anawdd drives. 979 00:43:00,700 --> 00:43:03,490 Ond mae'n lle mae rhaglenni byw tra rydych yn eu rhedeg. 980 00:43:03,490 --> 00:43:06,380 >> Felly rydych dwbl cliciwch ar un o'r rhaglen ar Mac neu PC - mae'n lwytho o'r 981 00:43:06,380 --> 00:43:07,750 'n anawdd cathrena i mewn RAM. 982 00:43:07,750 --> 00:43:11,760 Cyn gynted ag y mae'n cael ei llwytho i mewn i RAM, y sero a rhai yn mynd ar y brig ffordd, mae'r 983 00:43:11,760 --> 00:43:13,130 hyn a elwir yn segment testun. 984 00:43:13,130 --> 00:43:17,040 Ond wedyn cyn gynted ag y bydd eich rhaglen yn cychwyn mewn gwirionedd yn rhedeg, y prif 985 00:43:17,040 --> 00:43:18,140 swyddogaeth ei alw. 986 00:43:18,140 --> 00:43:21,070 Ac yn bennaf, fel yr ydym wedi gweld, yn aml mae newidynnau lleol. 987 00:43:21,070 --> 00:43:24,560 Ac mae wedi ints a llinynnau a chars ac yn y blaen. 988 00:43:24,560 --> 00:43:28,300 Felly, os yw eich rhaglen eich bod wedi ysgrifennu neu'r rhaglen sydd gennych 989 00:43:28,300 --> 00:43:33,680 ddwbl glicio defnyddio rhai newidynnau y tu mewn o brif, maent yn y pen draw ar 990 00:43:33,680 --> 00:43:37,020 waelod eich pentwr o gof, fel petai. 991 00:43:37,020 --> 00:43:39,160 Nawr yn fwy concretely, beth mae hyn yn ei olygu mewn gwirionedd? 992 00:43:39,160 --> 00:43:44,080 Mae hyn yn unig yn golygu os ydym yn mynd i rifo pethau - 993 00:43:44,080 --> 00:43:49,380 os ydym yn mynd i nifer y bytes o RAM yn eich cyfrifiadur, yn sylwi bod 994 00:43:49,380 --> 00:43:51,650 gallai hyn fod yn sero rhif beit. 995 00:43:51,650 --> 00:43:56,130 Gallai hyn fod yn rhif beit un, dau, tri, pedwar, pump, chwech, i gyd 996 00:43:56,130 --> 00:43:57,290 y ffordd i fyny i hoffi - 997 00:43:57,290 --> 00:44:01,520 Byddai 2 biliwn ar gael yr holl ffordd i fyny yno ar y brig. 998 00:44:01,520 --> 00:44:05,960 Felly, mewn geiriau eraill, pan fyddwn yn siarad am RAM neu gof o ran bytes, mae'n 999 00:44:05,960 --> 00:44:09,680 jyst yn golygu bod rhywun wedi penderfynu beth i'w rifedi ar bob un o'r 1000 00:44:09,680 --> 00:44:11,110 rhai darnau o gof. 1001 00:44:11,110 --> 00:44:16,950 >> Felly, pan fydd angen 32 catiau ar gyfer int, neu os oes angen 8 did ar gyfer golosg, lle 1002 00:44:16,950 --> 00:44:18,320 maent yn y pen draw yn y cof? 1003 00:44:18,320 --> 00:44:20,650 Wel gysyniadol, maent ond yn y pen draw ar waelod y 1004 00:44:20,650 --> 00:44:21,780 beth a elwir yn y pentwr. 1005 00:44:21,780 --> 00:44:25,670 Ond beth sy'n ddiddorol yn awr yw pan fydd yn galw brif swyddogaeth. 1006 00:44:25,670 --> 00:44:28,830 Tybiwch swyddogaeth o'r enw foo, dim ond enw mympwyol. 1007 00:44:28,830 --> 00:44:32,480 Beth sy'n digwydd yw prif ar waelod y pentwr o gof. 1008 00:44:32,480 --> 00:44:35,630 Foo bellach yn cael ei roi ar ben y brif cof. 1009 00:44:35,630 --> 00:44:40,020 Felly unrhyw newidynnau lleol sy'n foo wedi dod i ben i fyny math o gysyniadol uchod 1010 00:44:40,020 --> 00:44:40,770 y rhai yn y prif. 1011 00:44:40,770 --> 00:44:46,920 Os foo yn galw swyddogaeth arall a elwir yn bar, y rhai newidynnau yn y pen draw fan hyn. 1012 00:44:46,920 --> 00:44:49,790 Os bar yn galw rhywbeth arall, yma, yma, yma. 1013 00:44:49,790 --> 00:44:53,900 Felly, yr hyn sy'n ddiddorol am redeg rhaglen yw bod wrth i chi alw swyddogaethau, 1014 00:44:53,900 --> 00:44:57,720 ac fel y swyddogaethau hynny galw swyddogaethau, ac fel y swyddogaethau hynny galw swyddogaethau, 1015 00:44:57,720 --> 00:45:00,980 rydych yn adeiladu i fyny y pentwr o swyddogaethau yn y cof. 1016 00:45:00,980 --> 00:45:06,740 A dim ond unwaith y ffurflenni swyddogaeth yn byddwch yn dechrau cael bod y cof yn ôl. 1017 00:45:06,740 --> 00:45:11,190 Felly, un o'r ffyrdd hawsaf i redeg allan o gof mewn rhaglen gyfrifiadurol i 1018 00:45:11,190 --> 00:45:14,170 ysgrifennu swyddogaethau sydd byth yn dychwelyd. 1019 00:45:14,170 --> 00:45:16,650 >> Felly, er enghraifft, gadewch i ni ddangos gymaint â 1020 00:45:16,650 --> 00:45:18,460 rhaglen fwriadol bygi. 1021 00:45:18,460 --> 00:45:24,690 Gadewch i mi fynd yn ei flaen ac nid # cynnwys , prif int (gwag). 1022 00:45:24,690 --> 00:45:31,270 Ac yr wyf i'n mynd i wneud ychydig (2> 1), a oedd yn debyg na fydd byth 1023 00:45:31,270 --> 00:45:33,370 newid arnom. 1024 00:45:33,370 --> 00:45:37,720 A gadewch i mi fynd yn ei flaen yn awr a gwneud printf. 1025 00:45:37,720 --> 00:45:39,950 A dweud y gwir, mae hynny'n mynd i fod yn llai diddorol yn weledol. 1026 00:45:39,950 --> 00:45:40,460 Gadewch i ni wneud hyn. 1027 00:45:40,460 --> 00:45:44,840 Am int (i = 0; i> 0). 1028 00:45:44,840 --> 00:45:49,740 Gadewch i ni wneud y camgymeriad hwn, i + +. 1029 00:45:49,740 --> 00:45:51,150 A gadewch i ni beidio printf yma. 1030 00:45:51,150 --> 00:45:52,550 Gadewch i ymarfer beth roeddwn yn ei bregethu. 1031 00:45:52,550 --> 00:45:54,090 Gadewch i ni gael dull yma. 1032 00:45:54,090 --> 00:46:00,860 , Corws Gwag a byddwn yn dweud int i. 1033 00:46:00,860 --> 00:46:02,295 Ac yna dwi'n mynd i ddweud, printf - 1034 00:46:04,871 --> 00:46:06,790 oh, gadewch i ni wneud hyn yn fwy diddorol. 1035 00:46:06,790 --> 00:46:08,350 Gadewch i ni mewn gwirionedd yn argraffu unrhyw beth o gwbl. 1036 00:46:08,350 --> 00:46:10,530 Gadewch i ni dim ond yn gwneud hyn. 1037 00:46:10,530 --> 00:46:11,780 Chorus (i). 1038 00:46:16,630 --> 00:46:17,000 >> Mae pob hawl. 1039 00:46:17,000 --> 00:46:20,040 Felly, mae hyn yn buggy oherwydd pam? 1040 00:46:20,040 --> 00:46:22,850 Rwy'n gwneud hyn i fyny gan fy mod yn mynd am nad yw'r rhaglen yn ei wneud mewn gwirionedd unrhyw beth 1041 00:46:22,850 --> 00:46:23,420 o ddiddordeb. 1042 00:46:23,420 --> 00:46:24,670 Ond nid dyna'r nod. 1043 00:46:24,670 --> 00:46:30,440 Y nod yw i ysgrifennu rhaglen sydd â'r brif swyddogaeth gwneud beth, mae'n debyg? 1044 00:46:30,440 --> 00:46:31,370 Ffoniwch ei hun. 1045 00:46:31,370 --> 00:46:32,600 Ac mewn gwirionedd, nid oes angen y ddolen. 1046 00:46:32,600 --> 00:46:36,070 Gadewch i ni hyd yn oed yn symleiddio'r hyn yn unig er mwyn peidio â cholli golwg ar wir y 1047 00:46:36,070 --> 00:46:37,310 bug sylfaenol. 1048 00:46:37,310 --> 00:46:39,200 Galwadau Prif corws i ganu rhai corws. 1049 00:46:39,200 --> 00:46:41,760 Yna mi wneud rhywbeth twp, ac roedd gen i corws alwad corws oherwydd fy mod yn cymryd yn ganiataol 1050 00:46:41,760 --> 00:46:43,550 rhywun arall yn mynd i weithredu efallai. 1051 00:46:43,550 --> 00:46:45,960 Ac yn awr nid yw hyn yn mynd i lunio eto. 1052 00:46:45,960 --> 00:46:48,340 Angen i mi wneud beth? 1053 00:46:48,340 --> 00:46:49,700 Fi angen 'r prototeip, cofiwch. 1054 00:46:49,700 --> 00:46:55,520 Felly, mae angen i mi gael hyd yma corws ddi-rym (int i);. 1055 00:46:55,520 --> 00:46:57,470 >> Felly nawr, os byddaf yn mynd i lawr yma - 1056 00:46:57,470 --> 00:46:59,030 mewn gwirionedd, gadewch i ni ddefnyddio y ffenestr mwy. 1057 00:46:59,030 --> 00:47:01,670 Gadewch i ni fynd ymlaen a gwneud corws. 1058 00:47:01,670 --> 00:47:06,000 Gadewch i ni fynd ymlaen a gwneud corws. 1059 00:47:06,000 --> 00:47:08,302 Defnyddio datganydd anhysbys i. 1060 00:47:08,302 --> 00:47:09,860 O, a oedd yn dwp. 1061 00:47:09,860 --> 00:47:11,020 Nid oes arnom angen y ddadl. 1062 00:47:11,020 --> 00:47:13,680 Gadewch i ni dim ond yn gwneud hyn. 1063 00:47:13,680 --> 00:47:14,550 Wish rydym wedi dechrau fel hyn. 1064 00:47:14,550 --> 00:47:16,160 Byddai wedi bod yn rhaglen lawer yn haws i ysgrifennu. 1065 00:47:16,160 --> 00:47:20,100 Felly yno. 1066 00:47:20,100 --> 00:47:23,870 Nawr gadewch i ni fynd draw i fy, ffenestr terfynell ail-redeg Clang. 1067 00:47:23,870 --> 00:47:26,900 A dyma ni yn mynd. 1068 00:47:26,900 --> 00:47:28,020 Dyna oedd yn gyflym iawn. 1069 00:47:28,020 --> 00:47:30,690 Beth a ddigwyddodd mewn gwirionedd yn unig, er bod? 1070 00:47:30,690 --> 00:47:33,430 Wel, yn awr byddaf yn ychwanegu'r llinell print, fel y gallwn weld. 1071 00:47:33,430 --> 00:47:41,330 Felly, gadewch i mi ddweud printf, gadewch i ni ddweud, Im 'i mewn yma. 1072 00:47:41,330 --> 00:47:43,470 Iawn, dim newidynnau, byddwn yn gadael fel hynny. 1073 00:47:43,470 --> 00:47:44,860 Gadewch i mi ail-redeg wneud. 1074 00:47:44,860 --> 00:47:47,940 Gadewch i mi ail-redeg corws. 1075 00:47:47,940 --> 00:47:51,235 Ac yn dod ymlaen. 1076 00:47:53,880 --> 00:47:55,130 Cadwch yn mynd. 1077 00:47:57,630 --> 00:47:59,750 Fel o'r neilltu, pam nad yw wedi chwalu eto? 1078 00:47:59,750 --> 00:48:02,050 Mae'r wall yn digwydd yn gyflym super o'r blaen. 1079 00:48:02,050 --> 00:48:04,250 [Anghlywadwy] 1080 00:48:04,250 --> 00:48:04,830 DAVID J. Malan: Yn union. 1081 00:48:04,830 --> 00:48:06,350 Felly, mae'n cymryd amser i argraffu. 1082 00:48:06,350 --> 00:48:08,370 Mae'n cymryd dim ond mwy o waith ar ran y cyfrifiadur. 1083 00:48:08,370 --> 00:48:09,550 Ac yno y mae. 1084 00:48:09,550 --> 00:48:10,620 Wall. 1085 00:48:10,620 --> 00:48:12,140 >> Felly sylwi pa mor gyflym rhaglenni rhedeg. 1086 00:48:12,140 --> 00:48:14,110 Os nad ydych yn argraffu unrhyw beth, yn gyflym super. 1087 00:48:14,110 --> 00:48:18,100 Ond rydym yn dal i gael y wall oherwydd yr hyn oedd yn digwydd? 1088 00:48:18,100 --> 00:48:21,310 Wel, os ydych yn meddwl am sut y cof eich cyfrifiadur wedi ei osod allan, mae hyn yn 1089 00:48:21,310 --> 00:48:22,890 digwydd i fod yn brif. 1090 00:48:22,890 --> 00:48:23,800 Ond yma - 1091 00:48:23,800 --> 00:48:28,670 gadewch i 'jyst yn galw hyn yn corws, a gadewch i ni yn galw hyn corws. 1092 00:48:28,670 --> 00:48:33,420 Ac yn awr os wyf yn gwneud fy estheteg iawn, mae hyn yn unig yn mynd i ddweud corws, 1093 00:48:33,420 --> 00:48:38,060 corws, corws, corws, corws, corws, corws, nauseum ad. 1094 00:48:38,060 --> 00:48:39,920 Ac yn y pen draw, yr hyn sy'n mynd i ddigwydd? 1095 00:48:39,920 --> 00:48:46,690 Os yw'r darlun mawr llythrennol yw hyn, beth yn union sy'n digwydd gysyniadol? 1096 00:48:46,690 --> 00:48:48,320 Mae'r gor-redeg stac y domen. 1097 00:48:48,320 --> 00:48:52,400 Neu waeth, rydych gor-redeg yn bopeth, gan gynnwys y segment testun, sydd yn 1098 00:48:52,400 --> 00:48:54,530 y sero a rhai sy'n cynrychioli eich rhaglen. 1099 00:48:54,530 --> 00:48:56,690 Yn fyr, mae hyn yn unig super, super drwg. 1100 00:48:56,690 --> 00:48:56,860 Hawl? 1101 00:48:56,860 --> 00:48:58,620 Mae eich rhaglen wedi sbinio allan o reolaeth. 1102 00:48:58,620 --> 00:49:02,840 Rydych yn defnyddio cof ffordd fwy na'r bwriad i gyd oherwydd dwp 1103 00:49:02,840 --> 00:49:03,920 camgymeriad, yn yr achos hwn. 1104 00:49:03,920 --> 00:49:08,160 Neu yn yr achos hwn, mae swyddogaeth gwneud iawn fwriadol galw ei hun. 1105 00:49:08,160 --> 00:49:09,210 Nawr nid yw hyn yn ddrwg i gyd. 1106 00:49:09,210 --> 00:49:12,540 Swyddogaethau galw eu hunain mewn gwirionedd wedi bŵer mawr 1107 00:49:12,540 --> 00:49:13,700 pan fyddwch yn ei ddefnyddio yn gywir. 1108 00:49:13,700 --> 00:49:15,650 Nid wyf wedi ei ddefnyddio yn gywir yma. 1109 00:49:15,650 --> 00:49:16,940 >> Felly, nid yw hyn yn ddrwg i gyd. 1110 00:49:16,940 --> 00:49:20,620 Ond y ffaith nad wyf byth yn rhoi'r gorau i mewn gwirionedd yn galw fy hun yn sylfaenol 1111 00:49:20,620 --> 00:49:23,050 gwendid yma o'r rhaglen hon. 1112 00:49:23,050 --> 00:49:25,090 Felly, lle rydym yn mynd gyda hyn i gyd? 1113 00:49:25,090 --> 00:49:26,230 Wel, beth sy'n digwydd mewn gwirionedd? 1114 00:49:26,230 --> 00:49:30,010 Pan alwaf y swyddogaeth cynyddiad, fel yr ydym yn ei wneud yn enghreifftiau hynny, 1115 00:49:30,010 --> 00:49:33,290 Mae gen i werth fel 1 fy mod yn mynd i mewn 1116 00:49:33,290 --> 00:49:35,820 Rwy'n pasio mewn copi o'r rhif un. 1117 00:49:35,820 --> 00:49:37,080 Felly, mae'r canlynol yn digwydd. 1118 00:49:37,080 --> 00:49:40,390 Felly, gadewch i ni fynd i mewn i'r cynyddiad enghraifft. 1119 00:49:40,390 --> 00:49:44,230 Ac mae hyn yn guy dde dros yma. 1120 00:49:44,230 --> 00:49:46,800 Felly, dyma beth sy'n digwydd mewn gwirionedd. 1121 00:49:46,800 --> 00:49:50,770 Pan fyddaf yn galw cynyddiad, ac yr wyf yn pasio x, ar ffurf lluniau beth sydd 1122 00:49:50,770 --> 00:49:53,660 yn mynd ymlaen yma yw hyn - 1123 00:49:53,660 --> 00:50:00,240 os byddaf yn cael y gwerth o 1 storio yma, ac yr wyf yn ei galw cynyddiad, a 1124 00:50:00,240 --> 00:50:02,680 elwir bellach corws - 1125 00:50:02,680 --> 00:50:04,010 yeah, mae hynny'n taflu fi oddi yma. 1126 00:50:04,010 --> 00:50:06,750 Felly, gadewch i ni galw hyn gynyddiad. 1127 00:50:06,750 --> 00:50:09,420 Ac nid ydym yn gwybod beth y mae hyn swyddogaeth nesaf yn mynd i fod. 1128 00:50:09,420 --> 00:50:14,270 Felly, beth sy'n digwydd mewn gwirionedd yma yn rhywle yn y brif, mae gen i ddarn o 1129 00:50:14,270 --> 00:50:16,670 cof sy'n cael ei storio y rhif 1. 1130 00:50:16,670 --> 00:50:19,730 Pan fyddaf yn galw cynyddiad, rwy'n defnyddio darn arall o cof, ond yn awr yr wyf 1131 00:50:19,730 --> 00:50:20,840 cael copi o 1. 1132 00:50:20,840 --> 00:50:25,480 Pan fyddaf yn gynyddran y gwerth, mae hyn yn 2 - a ysgrifennwyd ofnadwy ar y 1133 00:50:25,480 --> 00:50:26,420 sgrin yma. 1134 00:50:26,420 --> 00:50:30,550 Ond wedyn, beth sy'n digwydd cyn gynted ag y ffurflenni cynnydd? 1135 00:50:30,550 --> 00:50:34,610 Mae'r cof yn unig yn cael eu rhoi yn ôl i'r system weithredu, sy'n golygu bod yr holl 1136 00:50:34,610 --> 00:50:37,470 eich bod wedi gwneud dim byd defnyddiol. 1137 00:50:37,470 --> 00:50:43,460 Yr un a gafodd ei gynnwys yn wreiddiol yn brif yn dal i fod mewn gwirionedd yno. 1138 00:50:43,460 --> 00:50:44,650 >> Felly, lle rydym yn mynd â hyn? 1139 00:50:44,650 --> 00:50:49,400 Wel, mae'n troi allan bod mewn cof gennych y cefn wrth gefn dilyniant o 1140 00:50:49,400 --> 00:50:50,940 bytes y gallwch roi pethau mewn 1141 00:50:50,940 --> 00:50:53,760 Ac mae'n troi allan bod rydym eisoes wedi gweld rhywbeth sy'n golygu rhoi 1142 00:50:53,760 --> 00:50:55,100 pethau yn ôl i gefn wrth gefn wrth gefn. 1143 00:50:55,100 --> 00:51:00,170 Beth yw llinyn, yn seiliedig ar wythnos un ac yn awr yr wythnos ddau? 1144 00:51:00,170 --> 00:51:01,840 Felly, mae'n dim ond casgliad o gymeriadau. 1145 00:51:01,840 --> 00:51:05,290 Felly, mae'n troi allan, yn union fel y gallwch roi rhifau mewn cof, yn yr un modd y gallwch 1146 00:51:05,290 --> 00:51:06,900 rhoi cymeriadau mewn cof. 1147 00:51:06,900 --> 00:51:09,810 Ac ar ôl i ni ddechrau cymeriadau rhoi er cof cefn wrth gefn wrth gefn i 1148 00:51:09,810 --> 00:51:12,800 yn ôl, mae'n troi allan bod defnyddio y pethau symlaf fel dolen i neu 1149 00:51:12,800 --> 00:51:14,510 dolen tra, gallwn ailadrodd - 1150 00:51:14,510 --> 00:51:17,130 o'r chwith i'r dde dros y cymeriadau mewn llinyn - 1151 00:51:17,130 --> 00:51:20,720 ac yn dechrau massaging i mewn i gymeriadau gwahanol yn gyfan gwbl. 1152 00:51:20,720 --> 00:51:25,550 Gallai ddod gallai B. B ddod C. Felly yn y pen draw, gallwn gymryd 1153 00:51:25,550 --> 00:51:28,830 Frawddeg Saesneg sydd mewn gwirionedd yn gwneud synnwyr ac yn trosi pob un o'r 1154 00:51:28,830 --> 00:51:32,440 llythyrau un ar y tro gan gerdded trwy ein cof cyfrifiadur ar ôl i 1155 00:51:32,440 --> 00:51:34,300 hawl i amgryptio mewn gwirionedd. 1156 00:51:34,300 --> 00:51:36,590 >> Felly, gadewch i ni gymryd ein pum munud egwyl yma, a phan fyddwn yn dod yn ôl, gallwn eich 1157 00:51:36,590 --> 00:51:39,060 gychwyn y broses hon o sgrialu gwybodaeth. 1158 00:51:41,640 --> 00:51:43,180 >> Mae pob hawl. 1159 00:51:43,180 --> 00:51:48,440 Felly, cyn i ni plymio i mewn i rai crypto ac mae'r rhain yn bethau o'r enw arrays, gadewch i mi 1160 00:51:48,440 --> 00:51:51,610 oedi ar gyfer unrhyw gwestiynau am fy mod yn teimlo fel Fi 'n sylweddol fath o ddryslyd rhai o'r 1161 00:51:51,610 --> 00:51:52,230 y pynciau hynny. 1162 00:51:52,230 --> 00:51:53,940 Felly, gadewch i ni atgyweiria awr os gallwn. 1163 00:51:53,940 --> 00:51:56,480 Felly, rydym yn unig yn siarad am werthoedd dychwelyd. 1164 00:51:56,480 --> 00:51:58,630 Rydym yn siarad am ddadleuon. 1165 00:51:58,630 --> 00:52:02,330 Ac rydym yn siarad am y syniad hwn, y byddwn yn dod yn ôl atynt yn yr wythnosau i 1166 00:52:02,330 --> 00:52:07,140 ddod, o edrych ar cof fel criw cyfan o'r rhain ei stacio 1167 00:52:07,140 --> 00:52:08,540 hambyrddau, fel petai. 1168 00:52:08,540 --> 00:52:13,460 O gwaelod ar i fyny, fel bod gan bob hambwrdd sy'n cael ei roi ar y pentwr yn cynrychioli 1169 00:52:13,460 --> 00:52:15,160 swyddogaeth sydd wedi cael eu galw ar hyn o bryd. 1170 00:52:17,970 --> 00:52:20,300 Unrhyw gwestiynau? 1171 00:52:20,300 --> 00:52:22,890 Felly, beth am - gadewch i mi geisio gofyn cwestiwn. 1172 00:52:22,890 --> 00:52:25,520 Rwy'n cadw ddifetha hynny, ond erbyn hyn it's - you've gweld yr holl wyneb y bachgen. 1173 00:52:25,520 --> 00:52:27,020 Felly, byddwn yn dod yn ôl at hynny. 1174 00:52:27,020 --> 00:52:29,700 >> Felly, gadewch i mi ofyn cwestiwn yma. 1175 00:52:29,700 --> 00:52:34,810 Gadewch i mi symleiddio'r hyn yn ôl i'r hyn yr oedd cyn i rai o Q ynghynt yr oedd ein & A. 1176 00:52:34,810 --> 00:52:41,730 Ac mae'r ffaith bod cynyddiad wedi parenthesis agored, rhif int, ar gau 1177 00:52:41,730 --> 00:52:42,260 parenthesis. 1178 00:52:42,260 --> 00:52:46,370 Beth mae nifer int ei gynrychioli? 1179 00:52:46,370 --> 00:52:47,250 [Anghlywadwy] 1180 00:52:47,250 --> 00:52:47,870 DAVID J. Malan: Mae dadl. 1181 00:52:47,870 --> 00:52:50,732 Iawn, ond beth dadl? 1182 00:52:50,732 --> 00:52:51,620 [Anghlywadwy] 1183 00:52:51,620 --> 00:52:52,500 DAVID J. Malan: Mae'n ddrwg gennyf, beth sy'n bod? 1184 00:52:52,500 --> 00:52:53,150 SIARADWR 3: Rhywbeth byddwch yn pasio i mewn 1185 00:52:53,150 --> 00:52:53,570 DAVID J. Malan: Iawn. 1186 00:52:53,570 --> 00:52:54,780 Felly, rhywbeth y byddwch yn pasio i mewn 1187 00:52:54,780 --> 00:52:56,560 Ac yn fwy cyffredinol, dim ond y mewnbwn. 1188 00:52:56,560 --> 00:52:59,860 Os ydych chi'n ysgrifennu swyddogaeth a diben y swyddogaeth honno mewn bywyd yw gwneud 1189 00:52:59,860 --> 00:53:03,290 rhywbeth ychydig yn wahanol bob tro y byddwch yn ei ddefnyddio, yna yr unig ffordd i 1190 00:53:03,290 --> 00:53:07,710 y byddai i ddigwydd mewn gwirionedd yn ymddangos i fod i roi iddo yr mewnbwn fel ei fod yn 1191 00:53:07,710 --> 00:53:10,180 Gall gwneud rhywbeth gwahanol gyda mewnbwn hwnnw bob tro. 1192 00:53:10,180 --> 00:53:13,590 >> Felly, mae angen i chi nodi dau beth pan fydd swyddogaeth yn cymryd mewnbwn. 1193 00:53:13,590 --> 00:53:17,240 Rhaid i chi benodi enw yr hoffech ei roi i hynny o mewnbwn, dim ond am 1194 00:53:17,240 --> 00:53:20,790 gyfleus i chi fel y gallwch gyfeirio ato yn y swyddogaeth yr ydych yn 1195 00:53:20,790 --> 00:53:23,610 eich hun yn ysgrifenedig, fel y gwneuthum yma yn llinell 32. 1196 00:53:23,610 --> 00:53:27,840 Ond mae angen i chi hefyd nodi ei fath oherwydd bod C yn iaith raglennu 1197 00:53:27,840 --> 00:53:28,840 mai dim ond ei gwneud yn ofynnol 1198 00:53:28,840 --> 00:53:31,810 , os ydych am newidyn, rhaid i chi ddweud wrth y cyfrifiadur pa 1199 00:53:31,810 --> 00:53:32,790 data deipio yw, 1200 00:53:32,790 --> 00:53:35,540 i raddau helaeth er mwyn iddo wybod faint o ddarnau i 1201 00:53:35,540 --> 00:53:37,230 ddyrannu ar gyfer y newidyn. 1202 00:53:37,230 --> 00:53:38,600 Oherwydd gallai fod yn chwech - 1203 00:53:38,600 --> 00:53:39,990 ddrwg gennym, ni fydd chwech. 1204 00:53:39,990 --> 00:53:41,050 Gall fod yn 16. 1205 00:53:41,050 --> 00:53:41,630 Gall fod yn 8. 1206 00:53:41,630 --> 00:53:44,410 Gall fod yn 32, hyd yn oed 64. 1207 00:53:44,410 --> 00:53:45,820 Ond mae'r cyfrifiadur angen gwybod. 1208 00:53:45,820 --> 00:53:49,110 Nawr bod y int ar yr ochr chwith yn cynrychioli beth, ar y llaw arall? 1209 00:53:52,825 --> 00:53:53,780 [Anghlywadwy] 1210 00:53:53,780 --> 00:53:54,570 DAVID J. Malan: Beth sy'n bod? 1211 00:53:54,570 --> 00:53:55,390 [Anghlywadwy] 1212 00:53:55,390 --> 00:53:57,920 DAVID J. Malan: Y math o swyddogaeth ac, yn fwy penodol, y 1213 00:53:57,920 --> 00:53:59,755 math o allbwn. 1214 00:53:59,755 --> 00:54:00,220 Hawl. 1215 00:54:00,220 --> 00:54:04,220 Felly, tra bod y peth yn cromfachau yn cynrychioli ei fewnbwn, os o gwbl, y 1216 00:54:04,220 --> 00:54:06,640 beth ar y chwith yn cynrychioli ei allbwn. 1217 00:54:06,640 --> 00:54:10,560 Ac yn yr achos hwn, cynyddiad ymddangos yn dychwelyd yn int. 1218 00:54:10,560 --> 00:54:14,590 Ac felly int yw'r math dychwelyd y swyddogaeth hon. 1219 00:54:14,590 --> 00:54:16,090 >> Beth mae'n ei olygu i ddychwelyd? 1220 00:54:16,090 --> 00:54:19,810 Yn llythrennol, eich bod yn defnyddio'r ffurflen keyword. 1221 00:54:19,810 --> 00:54:24,640 Ac yna os yw'r hyn rydych yn dychwelyd i'r dde y gair allweddol yn 1222 00:54:24,640 --> 00:54:28,340 cyfanrif, yna mae hynny'n wir yn gyson â'r hyn yr ydym wedi ei addo. 1223 00:54:28,340 --> 00:54:31,110 Ni allech wneud rhywbeth fel hyn - 1224 00:54:31,110 --> 00:54:32,280 helo, byd - 1225 00:54:32,280 --> 00:54:33,500 oherwydd bod yn llinyn. 1226 00:54:33,500 --> 00:54:35,440 Yn amlwg nid yw'n gyfanrif. 1227 00:54:35,440 --> 00:54:40,450 Felly, yn fyr, mae'r baich yn wirioneddol arnom ni, y rhaglennydd, i fod yn benodol fel 1228 00:54:40,450 --> 00:54:44,730 i'r hyn rydym yn dychwelyd ac yna mewn gwirionedd yn mynd am ei ddychwelyd. 1229 00:54:44,730 --> 00:54:49,030 Ac yna i wneud braidd yn fwy clir y cyd-destun - 1230 00:54:49,030 --> 00:54:50,080 yno y mae eto. 1231 00:54:50,080 --> 00:54:51,060 Y cyd-destun - 1232 00:54:51,060 --> 00:54:52,830 syndod mawr yn dod mewn dim ond hyn o bryd. 1233 00:54:52,830 --> 00:54:57,720 Y cyd-destun yma yn awr yn y cof eich cyfrifiadur, unwaith eto, a 1234 00:54:57,720 --> 00:54:59,070 gigabyte, dau gigabeit, beth bynnag. 1235 00:54:59,070 --> 00:54:59,630 Efallai ei fod yn fwy. 1236 00:54:59,630 --> 00:55:00,540 Efallai ei fod yn llai. 1237 00:55:00,540 --> 00:55:03,750 Ond mae'r cyfrifiadur yn ystyried ei fod yn cael adrannau gwahanol. 1238 00:55:03,750 --> 00:55:04,860 Rhywbeth yn mynd i lawr yno. 1239 00:55:04,860 --> 00:55:06,020 Rhywbeth arall yn mynd i fyny yno. 1240 00:55:06,020 --> 00:55:07,540 Pethau gwahanol yn mynd yn y canol. 1241 00:55:07,540 --> 00:55:09,300 A heddiw, rydym yn unig yn dechrau dweud y stori hon. 1242 00:55:09,300 --> 00:55:11,130 >> Ond byddwn yn dod yn ôl at hyn dros gyfnod. 1243 00:55:11,130 --> 00:55:15,000 Am y tro, yr unig ddarn o cof ydym yn wir yn poeni am yn y segment testun 1244 00:55:15,000 --> 00:55:17,160 oherwydd mai dim ond yn cynrychioli sero a rhai 1245 00:55:17,160 --> 00:55:18,460 bod Clang wedi outputted. 1246 00:55:18,460 --> 00:55:21,570 Felly, pan fyddwch yn rhedeg gorchymyn ar y bysellfwrdd fel a.out, neu os ydych yn ddwbl 1247 00:55:21,570 --> 00:55:25,350 cliciwch eicon ar Mac OS neu Windows, eich rhaglen ei llwytho o'ch caled 1248 00:55:25,350 --> 00:55:26,930 gyrru i mewn i RAM. 1249 00:55:26,930 --> 00:55:30,850 Ac mae'n plopped ar frig y RAM eich cyfrifiadur, felly, i siarad. 1250 00:55:30,850 --> 00:55:35,470 Nawr yn y cyfamser, fel eich rhaglen yn dechrau rhedeg a phrif cael galw i mewn y 1251 00:55:35,470 --> 00:55:39,240 rhaglen i chi ysgrifennu neu ysgrifennodd y Microsoft rhaglen neu Apple, unrhyw un o'i 1252 00:55:39,240 --> 00:55:42,930 newidynnau lleol yn y pen draw i lawr yno ar waelod y cof eich cyfrifiadur. 1253 00:55:42,930 --> 00:55:46,490 Ond os brif galw swyddogaeth arall sydd ei hun wedi newidynnau neu 1254 00:55:46,490 --> 00:55:48,340 dadleuon, maent yn y pen draw uwch ei ben. 1255 00:55:48,340 --> 00:55:50,670 Ac os yw'r swyddogaeth honno yn galw rhywbeth, maent yn y pen draw uwch ei ben, 1256 00:55:50,670 --> 00:55:51,840 uwch ei ben, uwch ei ben. 1257 00:55:51,840 --> 00:55:56,100 A dim ond unwaith y swyddogaeth yn cael ei wneud weithredu yn y pentwr o hambyrddau, felly 1258 00:55:56,100 --> 00:55:58,320 i siarad, yn dechrau cael is ac yn is. 1259 00:55:58,320 --> 00:56:03,370 Ac mae hyn yn beth wedyn, yn gryno, yn esbonio pam, pan fyddwch yn ffonio ciwb - 1260 00:56:03,370 --> 00:56:04,660 neu os ydych yn ffonio cynyddiad - 1261 00:56:04,660 --> 00:56:06,490 ydych yn pasio mewn copi o'r gwerth. 1262 00:56:06,490 --> 00:56:09,840 A beth mae hynny'n ei olygu ddarluniadol yw eich bod yn llythrennol yn ysgrifennu'r 1263 00:56:09,840 --> 00:56:14,540 rhif 1 mewn rhan arall o'r cof, newid bod 1 i 2, yn achos 1264 00:56:14,540 --> 00:56:15,360 cynyddiad - 1265 00:56:15,360 --> 00:56:17,450 neu i 8, yn achos ciwb - 1266 00:56:17,450 --> 00:56:21,450 ac yna thaflu bod y cof i ffwrdd cyn gynted ag y cynyddiad neu'r ciwb 1267 00:56:21,450 --> 00:56:23,410 dychwelyd swyddogaeth. 1268 00:56:23,410 --> 00:56:24,267 >> Cwestiwn. 1269 00:56:24,267 --> 00:56:25,517 [Anghlywadwy] 1270 00:56:28,090 --> 00:56:29,970 DAVID J. Malan: Lle - newidynnau byd-eang yn cael eu storio yn yr hyn sydd 1271 00:56:29,970 --> 00:56:32,960 a elwir ar hyn o bryd y data ymgychwyn neu ddata uninitialized. 1272 00:56:32,960 --> 00:56:35,900 Y gwahaniaeth yw, os oes gennych newidyn byd-eang, ac yr ydych wedi aseinio ei 1273 00:56:35,900 --> 00:56:39,530 unwaith gwerth gyda'r hafalnod, mae'n dod i ben i fyny ar y brig yno. 1274 00:56:39,530 --> 00:56:43,390 Ac os ydych yn unig yn dweud int x hanner colon heb unrhyw werth, mae'n dod i ben i fyny ychydig 1275 00:56:43,390 --> 00:56:46,670 is yn RAM yn syml trwy confensiwn. 1276 00:56:46,670 --> 00:56:49,308 Cwestiynau eraill. 1277 00:56:49,308 --> 00:56:49,750 Mae pob hawl. 1278 00:56:49,750 --> 00:56:53,040 >> Felly, bydd y darlun yn dod yn ôl wrth i ni gael mwy pwerus â'r hyn y gallwn ei wneud 1279 00:56:53,040 --> 00:56:53,830 gyda'r cyfrifiadur. 1280 00:56:53,830 --> 00:56:58,790 Ond am nawr, gadewch i ni gael intro byr i cryptograffeg, math penodol o 1281 00:56:58,790 --> 00:57:01,910 cryptograffeg nad yw'n datrys yr holl broblemau y byd, ond yn datrys 1282 00:57:01,910 --> 00:57:02,480 rhai ohonynt. 1283 00:57:02,480 --> 00:57:06,090 Yn yr achos yma, mae gennym rywbeth o'r enw cryptograffeg gyfrinach allweddol. 1284 00:57:06,090 --> 00:57:10,430 Ac cryptograffeg allweddol gyfrinach, fel yr awgryma'r enw, yn deillio ei diogelwch 1285 00:57:10,430 --> 00:57:11,330 o gyfrinach. 1286 00:57:11,330 --> 00:57:14,720 Felly, er enghraifft, os ydych chi'n ôl yn yr ysgol gradd a ydych yn pasio 1287 00:57:14,720 --> 00:57:18,040 llythyr caru gyfrinach fawr ddim at y bachgen neu ferch rydych yn mathru ar - os ydych yn 1288 00:57:18,040 --> 00:57:20,820 yn awyddus i basio'r drwy'r gynulleidfa, mae'n debyg na fyddech ysgrifennu 1289 00:57:20,820 --> 00:57:24,120 nodyn o'r fath yn Saesneg neu beth bynnag yw eich iaith frodorol yw, yn hytrach, i chi 1290 00:57:24,120 --> 00:57:25,800 gallai ei amgryptio. 1291 00:57:25,800 --> 00:57:27,820 Neu efallai y byddwch yn anfon neges atynt destun y dyddiau hyn. 1292 00:57:27,820 --> 00:57:30,310 Ond efallai y byddwch mewn gwirionedd yn eu trosglwyddo nodyn trwy gydol yr ystafell ddosbarth. 1293 00:57:30,310 --> 00:57:33,820 Ac i wneud hyn yn ddiogel, yn y fath fodd fel bod eich ffrindiau a'r athro 1294 00:57:33,820 --> 00:57:36,820 ddim yn gwybod beth rydych chi'n ysgrifennu, efallai y byddwch yn dod o hyd i gweddol syml 1295 00:57:36,820 --> 00:57:37,800 algorithm - 1296 00:57:37,800 --> 00:57:39,290 ifanc er y gallech fod - 1297 00:57:39,290 --> 00:57:40,780 i ychydig sgrialu y geiriau. 1298 00:57:40,780 --> 00:57:44,390 Felly, yn hytrach nag ysgrifennu A, efallai y byddwch yn ysgrifennu B. Yn hytrach na B, efallai y byddwch yn ysgrifennu 1299 00:57:44,390 --> 00:57:46,670 C. Yn hytrach na C, efallai y byddwch yn ysgrifennu D, ac yn y blaen. 1300 00:57:46,670 --> 00:57:50,020 Neu fe allech chi ddod o hyd i gyfieithiad mwy soffistigedig o lythyrau 1301 00:57:50,020 --> 00:57:51,300 i lythyrau gwahanol. 1302 00:57:51,300 --> 00:57:55,440 Ond mae'r dal yn y bachgen neu ferch i bwy rydych chi'n anfon y nodyn hwn mae angen i 1303 00:57:55,440 --> 00:57:56,850 gwybod rhywbeth. 1304 00:57:56,850 --> 00:57:59,620 Sef yr hyn, yn amlwg? 1305 00:57:59,620 --> 00:58:01,400 Fel, beth yw eich gyfrinach. 1306 00:58:01,400 --> 00:58:04,620 Fel, beth yw bod mapio rhwng A a B a C a D? 1307 00:58:04,620 --> 00:58:08,780 A yw'n dim ond ychwanegu un, fel petai, i bob un o'r llythyrau i fynd o 1308 00:58:08,780 --> 00:58:09,730 A i B, B i C? 1309 00:58:09,730 --> 00:58:11,350 A yw'n fwy cymhleth na hynny? 1310 00:58:11,350 --> 00:58:16,450 Felly, i chi a'ch malwch angen i gael y wybodaeth gyfrinachol. 1311 00:58:16,450 --> 00:58:18,170 Ond mae fath o dal-22 yma. 1312 00:58:18,170 --> 00:58:20,760 Os mai dyma'r tro cyntaf rydych chi'n anfon y llythyr caru drwy'r 1313 00:58:20,760 --> 00:58:25,590 dosbarth, sut mae hynny'n cael bachgen neu ferch yn mynd i wybod beth yw'r gyfrinach hyd yn oed yn? 1314 00:58:25,590 --> 00:58:28,450 Felly gyfrinach allweddol crypto yn datrys yr holl broblemau y byd. 1315 00:58:28,450 --> 00:58:30,490 Ac mae mewn gwirionedd perthynas y byddwn yn dod yn ôl i tuag at 1316 00:58:30,490 --> 00:58:31,370 diwedd semester. 1317 00:58:31,370 --> 00:58:35,970 >> Yn yr un modd, yn cael yr un ohonom yn ôl pob tebyg a anfonwyd erioed - 1318 00:58:35,970 --> 00:58:39,453 yn yr un modd, nid ydynt yn y rhan fwyaf ohonom yn adnabod rhywun sy'n gweithio, er enghraifft, ar 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 Ac eto, mae llawer ohonom wedi prynu yn ôl pob tebyg pethau at Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 Ac rydym wedi bod yn dysgu i gymryd yn ganiataol bod y rhain yn e-fasnach 1322 00:58:45,670 --> 00:58:47,060 drafodion yn ddiogel. 1323 00:58:47,060 --> 00:58:47,210 Hawl? 1324 00:58:47,210 --> 00:58:49,310 Mae'r URL yn ôl pob tebyg yn dweud https. 1325 00:58:49,310 --> 00:58:51,590 Mae efallai eicon clo bach gwirion yn rhywle. 1326 00:58:51,590 --> 00:58:54,680 Mae rhyw fath o cryptograffeg sicrhau eich gwybodaeth cerdyn credyd 1327 00:58:54,680 --> 00:58:56,980 rhyngoch chi a Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 Ac eto, os cryptograffeg yn golygu gwybod rhywfaint o gyfrinach, ac eto nid wyf yn ei wneud 1329 00:59:00,410 --> 00:59:03,330 adnabod unrhyw un yn Amazon, ac nid wyf wedi trefnu sicr unrhyw fath o 1330 00:59:03,330 --> 00:59:07,350 gyfrinachol gyda rhywun yn Amazon, sut mae fy nghyfrifiadur neu fy porwr yn gwneud hyn? 1331 00:59:07,350 --> 00:59:10,100 Wel, yn troi allan yna fathau eraill o cryptograffeg yn gyfan gwbl sy'n datrys 1332 00:59:10,100 --> 00:59:10,740 y broblem honno. 1333 00:59:10,740 --> 00:59:13,610 Ond ar gyfer heddiw, byddwn yn canolbwyntio ar yr un syml, lle gallwch drefnu yn 1334 00:59:13,610 --> 00:59:18,480 ymlaen llaw i adnabod rhai gyfrinach, fel ynghyd ag 1 neu ryw mapio rhwng A a B. Mae. 1335 00:59:18,480 --> 00:59:20,710 >> Ac mae'r broses o cryptograffeg yn gyffredinol yn cynnwys hyn. 1336 00:59:20,710 --> 00:59:23,550 Mae gennych rhywfaint o destun plaen, a ddangosir yma ar y chwith. 1337 00:59:23,550 --> 00:59:26,260 Rydych yn rhedeg ei trwy ryw fath o algorithm neu weithdrefn 1338 00:59:26,260 --> 00:59:27,670 ar gyfer amgryptio amdano. 1339 00:59:27,670 --> 00:59:31,390 Efallai mai dim ond yn dod B A, B yn dod yn C. Ac yna ydych yn darfod i fyny gyda 1340 00:59:31,390 --> 00:59:32,260 Cipher testun. 1341 00:59:32,260 --> 00:59:36,450 Yn y cyfamser, unwaith y bydd eich mathru yn derbyn y nodyn cudd, ganddo ef neu hi wedyn 1342 00:59:36,450 --> 00:59:39,950 dadgriptio yn gyffredinol yn gwrthdroi'r algorithm er mwyn cael 1343 00:59:39,950 --> 00:59:41,640 cefnogi'r testun plaen. 1344 00:59:41,640 --> 00:59:43,860 Erbyn hyn mae ymgnawdoliadau corfforol o hyn. 1345 00:59:43,860 --> 00:59:46,720 Er enghraifft, mae hwn yn gylch datgodiwr gyfrinach fach. 1346 00:59:46,720 --> 00:59:50,060 Ac mae hyn yn gylch yn yr ystyr bod yna ddau deialau yma. 1347 00:59:50,060 --> 00:59:53,630 Ar gyrion y tu allan i'r peth, mae llythrennau A drwy Z, 1348 00:59:53,630 --> 00:59:55,110 er eu bod mewn trefn ar hap. 1349 00:59:55,110 --> 00:59:58,410 Ac ar y tu mewn, mae mewn gwirionedd rhai rhifau, fel bod â hyn 1350 00:59:58,410 --> 01:00:02,940 ffoniwch, gallwch fath o droi'r tu allan ond nid y tu mewn er mwyn i linell i fyny 1351 01:00:02,940 --> 01:00:04,110 rhifau gyda llythrennau. 1352 01:00:04,110 --> 01:00:08,290 Ac yn y clip ydych chi ar fin i weld - rhai ohonynt efallai eich bod wedi gweld 24/7 1353 01:00:08,290 --> 01:00:11,120 o amgylch y tymor y Nadolig o ffilm o'r enw Stori Nadolig. 1354 01:00:11,120 --> 01:00:16,050 Byddwch yn gweld bod Ralphie bach oedd mor awyddus i chyfrif i maes beth amddifad bach 1355 01:00:16,050 --> 01:00:19,810 Annie neges gyfrinach oedd iddo ef fod wedi cael eu cyfleu, yr wyf yn meddwl, yn y 1356 01:00:19,810 --> 01:00:22,810 ffurfio o negeseuon rhifol ar flwch cyfresol. 1357 01:00:22,810 --> 01:00:26,760 A bu'n rhaid i chi gronni holl gardiau bach a ddaeth 1358 01:00:26,760 --> 01:00:27,480 yn y blwch grawnfwyd. 1359 01:00:27,480 --> 01:00:28,320 Roedd yn rhaid i bost nhw i mewn 1360 01:00:28,320 --> 01:00:31,060 Roedd yn rhaid i fynd yn ôl y cylch datgodiwr gyfrinach, fel y gallwch yn olaf ffigur 1361 01:00:31,060 --> 01:00:34,190 beth yw'r mapio rhwng llythrennau a rhifau, 1362 01:00:34,190 --> 01:00:35,420 neu lythyrau a llythyrau. 1363 01:00:35,420 --> 01:00:39,790 Felly, yr wyf yn rhoi i chi y clip byr o A Christmas Story i ysgogi pset 2 a 1364 01:00:39,790 --> 01:00:42,340 ein trafodaeth, mewn munud, o araeau. 1365 01:00:42,340 --> 01:00:43,773 Felly yma mae gennym Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [Chwarae fideo] 1367 01:00:44,126 --> 01:00:47,470 -Bod yn hysbys i'r byd a'r betws bod Ralph Parker yn cael ei benodi drwy hyn 1368 01:00:47,470 --> 01:00:50,690 aelod o'r Cylch Plant Amddifad Little Secret Annie ac yn cael ei hawl i'r holl 1369 01:00:50,690 --> 01:00:53,500 y anrhydedd a budd-daliadau digwydd hynny. 1370 01:00:53,500 --> 01:00:56,040 -Llofnodwyd, Orphan Little Annie. 1371 01:00:56,040 --> 01:00:58,730 Chydlofnodi, Pierre Andre! 1372 01:00:58,730 --> 01:01:00,150 Mewn inc! 1373 01:01:00,150 --> 01:01:02,910 Anrhydedd a budd-daliadau, sydd eisoes yn naw oed. 1374 01:01:09,970 --> 01:01:10,730 Dewch ymlaen, gadewch i ni fynd ymlaen â'r gwaith. 1375 01:01:10,730 --> 01:01:15,000 Nid wyf yn angen yr holl jazz am smyglwyr a môr-ladron. 1376 01:01:15,000 --> 01:01:17,624 Gwrando-nos yfory ar gyfer y antur olaf y The Black 1377 01:01:17,624 --> 01:01:19,710 Môr-ladron Ship. 1378 01:01:19,710 --> 01:01:23,380 Nawr mae'n amser i Annie neges gyfrinach i chi aelodau 1379 01:01:23,380 --> 01:01:25,670 y Cylch Secret. 1380 01:01:25,670 --> 01:01:30,260 Cofiwch, plant, gall dim ond aelodau o Annie Cylch Secret dadgodio 1381 01:01:30,260 --> 01:01:31,660 Annie neges gyfrinachol. 1382 01:01:31,660 --> 01:01:36,230 Cofiwch, Annie yn dibynnu ar chi. 1383 01:01:36,230 --> 01:01:38,720 Gosodwch eich pinnau i B2. 1384 01:01:38,720 --> 01:01:41,040 Dyma yw'r neges. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -Rwyf yn fy nghyfarfod cyfrinachol cyntaf. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 Oedd-Pierre yn heno llais mawr. 1389 01:01:51,700 --> 01:01:54,890 Allwn ddweud bod neges heno oedd yn bwysig iawn. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 Dyna neges gan Annie ei hun. 1392 01:01:58,590 --> 01:01:59,840 Cofiwch, peidiwch â dweud wrth unrhyw un. 1393 01:02:04,570 --> 01:02:08,750 -90 Eiliadau yn ddiweddarach, rwy'n yn yr ystafell yn y tŷ lle mae bachgen o naw 1394 01:02:08,750 --> 01:02:12,980 Gallai eistedd mewn preifatrwydd a dadgodio. 1395 01:02:12,980 --> 01:02:17,130 Ha, aeth B. I i'r nesaf. 1396 01:02:17,130 --> 01:02:20,330 E. Y gair cyntaf yw fod. 1397 01:02:20,330 --> 01:02:22,670 S. Yr oedd yn dod yn haws yn awr. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Oh, yn dod ar, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 Ges i fynd. 1401 01:02:28,430 --> 01:02:30,350 -I'll fod yn iawn i lawr, ma. 1402 01:02:30,350 --> 01:02:33,720 Gee-law arni. 1403 01:02:33,720 --> 01:02:38,270 -T, O. Byddwch yn siwr i. 1404 01:02:38,270 --> 01:02:40,000 Byddwch yn siwr i beth? 1405 01:02:40,000 --> 01:02:42,105 Beth oedd Orphan Annie Little ceisio ei ddweud? 1406 01:02:42,105 --> 01:02:43,095 Byddwch yn siwr i beth? 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 Randy wedi mynd i fynd. 1409 01:02:44,580 --> 01:02:45,570 A wnewch chi ddod allan? 1410 01:02:45,570 --> 01:02:46,560 -Mae pob hawl, ma. 1411 01:02:46,560 --> 01:02:48,540 'N annhymerus' fod yn iawn allan. 1412 01:02:48,540 --> 01:02:50,580 -I yn dod yn nes yn awr. 1413 01:02:50,580 --> 01:02:52,550 Roedd y tensiwn yn ofnadwy. 1414 01:02:52,550 --> 01:02:53,355 Beth oedd hi? 1415 01:02:53,355 --> 01:02:56,315 Efallai y bydd tynged y blaned yn y fantol. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 Randy rhaid iddo fynd. 1418 01:02:59,165 --> 01:03:02,310 -I'll fod yn iawn, ar gyfer crio yn uchel. 1419 01:03:02,310 --> 01:03:04,000 -Gee, bron yno. 1420 01:03:04,000 --> 01:03:05,180 Fy bysedd hedfan. 1421 01:03:05,180 --> 01:03:07,150 Fy meddwl oedd trap dur. 1422 01:03:07,150 --> 01:03:08,790 Mae pob mandwll vibrated. 1423 01:03:08,790 --> 01:03:10,040 Roedd bron yn glir. 1424 01:03:10,040 --> 01:03:13,400 Ie, ie, ie, ie. 1425 01:03:13,400 --> 01:03:18,960 -Byddwch yn siwr i yfed eich Ovaltine. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 Mae masnachol crummy? 1428 01:03:28,200 --> 01:03:29,640 Mab i ast. 1429 01:03:29,640 --> 01:03:33,340 [DIWEDD chwarae fideo] 1430 01:03:33,340 --> 01:03:36,040 >> DAVID J. Malan: Felly mae gennym cryptography. 1431 01:03:36,040 --> 01:03:39,670 Felly sut y gall mewn cyfrifiadur rydym yn mynd ati i weithredu neu 1432 01:03:39,670 --> 01:03:40,950 cynrychioli pethau fel hyn? 1433 01:03:40,950 --> 01:03:44,430 Wel, mae arnom angen ffordd o fynegi ein hunain ychydig yn fwy hyblyg na 1434 01:03:44,430 --> 01:03:46,420 ein newidynnau hyd yn hyn wedi caniatáu. 1435 01:03:46,420 --> 01:03:47,370 Rydym wedi cael ints. 1436 01:03:47,370 --> 01:03:48,380 Rydym wedi cael chars. 1437 01:03:48,380 --> 01:03:50,790 Rydym wedi cael fflotiau a dyblau a rhai eraill. 1438 01:03:50,790 --> 01:03:55,050 Ond y rhai yn ddarnau unigol o gof nad ydynt yn wir yn caniatáu i ni 1439 01:03:55,050 --> 01:03:58,010 mynegi pethau fel geiriau a brawddegau ac ymadroddion. 1440 01:03:58,010 --> 01:04:00,200 Yn wir, rydym wedi galw llinynnau pethau o'r fath. 1441 01:04:00,200 --> 01:04:03,650 Ond rydym yn addo bod hyn yn wir yn unig yw symleiddio yn y CS50 1442 01:04:03,650 --> 01:04:07,020 llyfrgell ein bod yn bwriadu bilio yn ôl. 1443 01:04:07,020 --> 01:04:08,970 >> Ac felly gadewch i ni ddechrau gwneud hynny yma. 1444 01:04:08,970 --> 01:04:11,130 Gadewch i mi fynd yn ei flaen ac yn agor i fyny ffeil - 1445 01:04:11,130 --> 01:04:13,770 pob un o'r ffeiliau hyn ar gael fel arfer ar-lein - 1446 01:04:13,770 --> 01:04:19,120 a elwir yn array.c i ddatrys problem nad yw'n gysylltiedig llinynnau ond bod yn creu 1447 01:04:19,120 --> 01:04:23,040 darlun yma o sut y gallem ddefnyddio rhywbeth o'r enw arae. 1448 01:04:23,040 --> 01:04:25,530 Mae amrywiaeth yn fath data. 1449 01:04:25,530 --> 01:04:31,320 Mae'n fath o amrywiol, o ryw fath, sydd â mathau o ddata lluosog llai 1450 01:04:31,320 --> 01:04:34,150 tu mewn yn gefn wrth gefn wrth gefn wrth gefn. 1451 01:04:34,150 --> 01:04:37,700 Felly, er enghraifft, os ydym am ysgrifennu rhaglen fach sy'n rhoi i chi eich 1452 01:04:37,700 --> 01:04:42,110 cwis cyfartaledd ar gyfer cwrs fel 50 sy'n ddwy cwisiau, gallech yn hawdd iawn 1453 01:04:42,110 --> 01:04:45,170 ysgrifennwch y rhaglen hon - yn seiliedig, hyd yn oed ar rai o ddeunydd yr wythnos diwethaf - 1454 01:04:45,170 --> 01:04:47,770 drwy ddefnyddio GetInt a chwpl o newidynnau. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, int quiz2, ac mae'n eithaf syml. 1456 01:04:51,920 --> 01:04:55,930 Mae'n efallai 10, 20 linellau o god, max, er mwyn gweithredu rhaglen sy'n gofyn y 1457 01:04:55,930 --> 01:05:01,170 ddefnyddwyr ar gyfer dau sgôr cwis ac yna computes eu cyfartaledd drwy eu hychwanegu 1458 01:05:01,170 --> 01:05:03,850 gyda'i gilydd, rhannu â dau, ac yna argraffu'r canlyniadau. 1459 01:05:03,850 --> 01:05:06,380 Gallem yn ôl pob tebyg yn gwneud hynny 'n bert yn barod yn awr ar ôl 1460 01:05:06,380 --> 01:05:07,510 ryw nifer o funudau. 1461 01:05:07,510 --> 01:05:11,005 >> Ond y broblem yw bod debyg bod 50 wedi cael tri neu bedwar cwisiau. 1462 01:05:11,005 --> 01:05:13,510 Tybiwch eich bod am ddefnyddio'r un rhaglen ar gyfer dosbarth a oedd wedi 1463 01:05:13,510 --> 01:05:14,850 wythnosol cwisiau. 1464 01:05:14,850 --> 01:05:16,610 Meddyliwch am ddosbarth sydd wedi wythnosol cwisiau. 1465 01:05:16,610 --> 01:05:20,610 Os oes fel 16 neu felly wythnos mewn semester, nawr eich bod gennym 16 newidynnau - 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 Cyn gynted ag y byddwch yn dechrau gweld y diswyddo, mae hyn yn copïo a gludo 1468 01:05:27,560 --> 01:05:31,390 cod, dylai ddechrau i wneud i chi yn dymuno bod yn ffordd well. 1469 01:05:31,390 --> 01:05:33,930 Ac diolch byth, oherwydd araeau, mae. 1470 01:05:33,930 --> 01:05:34,980 Felly, gadewch i ni wneud hyn. 1471 01:05:34,980 --> 01:05:38,430 Yn gyntaf, gadewch i mi gyflwyno yn beth syml iawn nad ydym wedi defnyddio hyd yn hyn, 1472 01:05:38,430 --> 01:05:40,140 ond byddwch yn gweld ei fod o bryd i'w gilydd mewn cod. 1473 01:05:40,140 --> 01:05:42,360 Mae hyn yn beth a elwir yn gyffredinol yn gyson. 1474 01:05:42,360 --> 01:05:45,790 Felly mae'n gyson yn yr ystyr na fydd hyn fyth yn newid gwerth. 1475 01:05:45,790 --> 01:05:49,210 Mae'r confensiwn dynol wrth greu cyson yw i ddefnyddio'r holl gyfalaf 1476 01:05:49,210 --> 01:05:51,940 llythyrau, dim ond fel ei fod yn wir yn sefyll allan yn eich cod. 1477 01:05:51,940 --> 01:05:55,960 A'r gair allweddol arbennig yr ydych yn eu defnyddio yn C # yn cael ei ddiffinio. 1478 01:05:55,960 --> 01:06:00,250 Felly, os ydych yn dweud # diffinio, yna ofod, yna bydd y gair yr ydych eisiau ei ddefnyddio ar gyfer 1479 01:06:00,250 --> 01:06:03,260 enw'r cyson, ac yna caiff gwerth y cysonyn. 1480 01:06:03,260 --> 01:06:06,180 Felly, rhybudd, mae hyn yn wahanol i neilltuo rhywbeth i newidyn. 1481 01:06:06,180 --> 01:06:07,020 Does dim arwydd hafal. 1482 01:06:07,020 --> 01:06:08,240 Does dim hanner colon. 1483 01:06:08,240 --> 01:06:11,410 Mae hyn yn beth a elwir yn gyffredinol fel gyfarwyddeb Preprocessor, ond yn fwy ar 1484 01:06:11,410 --> 01:06:12,210 bod un arall amser. 1485 01:06:12,210 --> 01:06:18,540 >> Am y tro, mae hyn yn creu gwerth digyfnewid a elwir yn Cwisiau y mae eu gwir 1486 01:06:18,540 --> 01:06:19,940 gwerth rhifol yw 2. 1487 01:06:19,940 --> 01:06:24,020 Felly, yn unrhyw le byddwch yn gweld Cwisiau, posau, cwisiau drwy gydol y ffeil, dyna 1488 01:06:24,020 --> 01:06:25,410 dim ond y rhif 2. 1489 01:06:25,410 --> 01:06:28,100 Yn awr, os wyf yn edrych ar y prif awr, gadewch i ni weld sut mae hyn yn gweithio. 1490 01:06:28,100 --> 01:06:29,500 Ar y dechrau, mae'n edrych ychydig yn cryptig. 1491 01:06:29,500 --> 01:06:31,340 Ond mae'n holl bethau o un wythnos. 1492 01:06:31,340 --> 01:06:32,710 Gofynnwch i'r defnyddiwr ar gyfer graddau. 1493 01:06:32,710 --> 01:06:33,630 Sut rydym yn gwneud hyn? 1494 01:06:33,630 --> 01:06:35,470 Wel, yn unol 22 - 1495 01:06:35,470 --> 01:06:37,210 hyn yn wir yn y rhan juicy - 1496 01:06:37,210 --> 01:06:40,960 Yr wyf yn datgan fflôt, ond nid dim ond float sengl. 1497 01:06:40,960 --> 01:06:44,620 Rwy'n datgan, yn hytrach, amrywiaeth o werthoedd pwynt arnawf. 1498 01:06:44,620 --> 01:06:49,100 Y newidyn yn mynd i gael ei alw graddau, fel a awgrymir yma. 1499 01:06:49,100 --> 01:06:53,080 Ond yr unig ddarn o gystrawen newydd, yna mae hyn cromfachau sgwâr, y ffaith 1500 01:06:53,080 --> 01:06:59,350 fy mod wedi dweud graddau arnofio ac yna braced agored ac yna rhif. 1501 01:06:59,350 --> 01:07:02,460 Rhybudd, os yw hyn yn gyson, mae hyn yn union fel y gwnaethom hyn. 1502 01:07:02,460 --> 01:07:06,890 Mae hyn yn golygu hey cyfrifiadur, yn rhoi i mi ddwy arnofio, a gadewch i ni ar y cyd yn galw 1503 01:07:06,890 --> 01:07:08,220 eu graddau. 1504 01:07:08,220 --> 01:07:11,920 Mae hyn yn cyferbynnu yn broses llawer mwy diflas fel hyn. 1505 01:07:11,920 --> 01:07:15,850 Float gradd 1, arnofio Gradd 2, ac yn y blaen. 1506 01:07:15,850 --> 01:07:20,010 Felly mae amrywiaeth yn ein galluogi i weithredu'r syniad hwn ond yn llawer llai messily, yn 1507 01:07:20,010 --> 01:07:24,630 fath fodd fel y gallwn ysgrifennu un llinell o god yn hytrach na, dyweder, 16 i 16 1508 01:07:24,630 --> 01:07:25,740 semester yr wythnos. 1509 01:07:25,740 --> 01:07:29,950 Felly doeddwn i ddim eisiau galed-god 2 oherwydd os ydych yn meddwl am hyn nawr 1510 01:07:29,950 --> 01:07:34,160 rhesymegol - mae'n debyg y flwyddyn nesaf CS50 newidiadau i 3 cwisiau yn lle hynny. 1511 01:07:34,160 --> 01:07:35,510 Ac yr wyf yn cael y rhif 2 yma. 1512 01:07:35,510 --> 01:07:36,600 Cefais y rhif 2 yma. 1513 01:07:36,600 --> 01:07:37,580 Cefais y rhif 2 yma. 1514 01:07:37,580 --> 01:07:38,560 Cefais y rhif 2 yma. 1515 01:07:38,560 --> 01:07:43,180 Mae'n dod yn iawn 'n faith ac yn hawdd iawn i sgriw i fyny ac i newid yn ddamweiniol 1516 01:07:43,180 --> 01:07:47,690 un gwerth i 3 ac yn colli rhywfaint o werth arall o 2. 1517 01:07:47,690 --> 01:07:52,460 Felly, yr wyf i'n mynd i lle haniaethol hyn i ffwrdd ac yn defnyddio hyn yn gyson, fel ei 1518 01:07:52,460 --> 01:07:54,120 awgryma'r enw, byth yn newid. 1519 01:07:54,120 --> 01:07:57,710 Ac yn awr, ni waeth a oes gennym wahanol cwisiau eleni na'r flwyddyn nesaf, yr wyf 1520 01:07:57,710 --> 01:08:01,210 yn unig wedi ei newid mewn un lle, i fyny yma ar y brig. 1521 01:08:01,210 --> 01:08:02,720 >> Felly dyna i gyd yn gyson. 1522 01:08:02,720 --> 01:08:08,680 Yn y cyfamser, y nodwedd cysyniadol newydd yw y bydd o arae. 1523 01:08:08,680 --> 01:08:14,660 Felly y cromfachau sgwâr yn rhoi fy hyn yn arnofion llawer ac yn gadael i mi ar y cyd 1524 01:08:14,660 --> 01:08:16,630 eu galw graddau yma. 1525 01:08:16,630 --> 01:08:17,990 Felly nawr gadewch i ni weld yr hyn yr wyf i'n mynd i wneud. 1526 01:08:17,990 --> 01:08:20,359 Yma yn llinell 24 yw'r ddechrau gyfer dolen. 1527 01:08:20,359 --> 01:08:22,260 Mae hyn yn wir ffansi ddim. 1528 01:08:22,260 --> 01:08:25,060 Mae'n dim ond gan ddefnyddio cwisiau yn hytrach na nifer hard-coded. 1529 01:08:25,060 --> 01:08:27,790 Ond does dim byd deallusol gwahanol yno ers yr wythnos ddiwethaf. 1530 01:08:27,790 --> 01:08:29,040 Mae hyn yn unig printf. 1531 01:08:29,040 --> 01:08:35,490 Felly printf ("d nifer cwis% o% d") oherwydd Fi jyst eisiau i argraffu roi i mi cwis 1532 01:08:35,490 --> 01:08:38,050 rhif un o ddau ac yna dau o ddau. 1533 01:08:38,050 --> 01:08:39,850 Felly, mae hyn yn unig yn beth esthetig. 1534 01:08:39,850 --> 01:08:42,500 Ond mae'r rhan ddiddorol yn awr yw yn llinell 27. 1535 01:08:42,500 --> 01:08:48,310 Er mwyn i chi lenwi un o'r ddau bachau gyda fel y bo'r angen-pwynt 1536 01:08:48,310 --> 01:08:51,029 gwerth, chi eto yn defnyddio cromfachau sgwâr. 1537 01:08:51,029 --> 01:08:55,620 Yn yr achos hwn, rwy'n ei ddefnyddio i oherwydd hyn ar gyfer dolen wedi dechrau gyda gyfartal i 1538 01:08:55,620 --> 01:08:57,560 Beth yw gwerth, mae'n debyg? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> Felly, ar y fersiwn gyntaf y ddolen, mae fel pe bawn 1541 01:09:01,350 --> 01:09:02,689 Ysgrifennais hyn mewn cod. 1542 01:09:02,689 --> 01:09:05,580 Ond ar yr ail ailadroddiad y ddolen, mae fel pe bawn 1543 01:09:05,580 --> 01:09:07,750 Ysgrifennodd hyn yn fy cod. 1544 01:09:07,750 --> 01:09:10,750 Ond mae'r ffaith fy mod i'n defnyddio newidyn yn berffaith oherwydd, fel y mae'r enw'n 1545 01:09:10,750 --> 01:09:14,300 awgrymu, mae'n amrywio ei werth ar bob iteriad. 1546 01:09:14,300 --> 01:09:17,370 Felly rwy'n llenwi'r amrywiaeth un man ar y tro. 1547 01:09:17,370 --> 01:09:18,910 Beth mae hyn yn amrywiaeth yn edrych? 1548 01:09:18,910 --> 01:09:21,430 Wel, y rheswm tynnais y petryal yma syml super ar y sgrin yma 1549 01:09:21,430 --> 01:09:23,350 cyn Am y rheswm hwn. 1550 01:09:23,350 --> 01:09:27,279 Mae amrywiaeth yn unig yw darn o gof ac yna darn arall o gof, 1551 01:09:27,279 --> 01:09:30,109 ddilyn gan darn arall o gof, ac yn y blaen. 1552 01:09:30,109 --> 01:09:35,260 Felly, os bydd fy amrywiaeth o faint 2, yn yr achos yma, y ​​cyfan y byddwn yn ei wneud trwy 1553 01:09:35,260 --> 01:09:37,590 teipio yn fy sgoriau cwis, fel yma. 1554 01:09:37,590 --> 01:09:39,430 Ges i 100 ar yr un yma. 1555 01:09:39,430 --> 01:09:42,020 Ac yna fe ges i 99 ar yr un yma. 1556 01:09:42,020 --> 01:09:46,040 Yna, efallai na fydd y cof hyd yn oed yn cael ei ddefnyddio oherwydd fy mod wedi gofyn dim ond y 1557 01:09:46,040 --> 01:09:48,689 cyfrifiadur ar gyfer amrywiaeth o faint 2. 1558 01:09:48,689 --> 01:09:50,180 Mae'r rhai sgwariau yn dal i fod yno. 1559 01:09:50,180 --> 01:09:50,340 Hawl? 1560 01:09:50,340 --> 01:09:52,500 Byddwch yn dal i gael dau gigabeit o RAM, hyd yn oed os ydych ond yn 1561 01:09:52,500 --> 01:09:53,979 yn gofyn am ddau fflotiau. 1562 01:09:53,979 --> 01:09:58,710 Felly, y syniad y tu ôl i arae yw bod y cyfrifiadur yn unig yn cymryd darn o gof 1563 01:09:58,710 --> 01:10:03,230 ac yna dosrannu ddarnau llai gefn wrth gefn wrth gefn wrth gefn. 1564 01:10:03,230 --> 01:10:04,740 Ac felly dyna i gyd arae yn. 1565 01:10:04,740 --> 01:10:09,080 Mae'n darn cyffiniol o gof, y tu mewn y gallwch roi pethau. 1566 01:10:09,080 --> 01:10:12,400 >> Nawr mae hyn yn digwydd wedyn gwneud dim ond rhai rhifyddeg ddiflas. 1567 01:10:12,400 --> 01:10:16,170 Os byddaf yn sgrolio i lawr yma, dyma lle byddaf wedyn yn ailadrodd dros y rhesi. 1568 01:10:16,170 --> 01:10:19,410 Rwy'n dod o hyd y Crynodeb o'r holl werthoedd yn y casgliad. 1569 01:10:19,410 --> 01:10:22,390 Ac yna yr wyf yn defnyddio'r swyddogaeth rownd yma i mewn gwirionedd wneud y 1570 01:10:22,390 --> 01:10:23,940 swm wedi'i rannu gan cwisiau. 1571 01:10:23,940 --> 01:10:27,450 Ond gadewch i mi chwifio fy llaw ar hynny fel math o rifyddeg ddigon am y tro. 1572 01:10:27,450 --> 01:10:30,010 Ond y cyfan a yn ei wneud i mi yn y pen draw yn cyfrifiadurol ar gyfartaledd. 1573 01:10:30,010 --> 01:10:33,640 Felly, cwis cyntaf yn ogystal â cwis ail wedi'i rannu â 2, ac yna argraffu 1574 01:10:33,640 --> 01:10:34,700 ddweud ei fod yn int. 1575 01:10:34,700 --> 01:10:39,030 >> Ond gadewch i ni bellach yn newid i enghraifft wahanol o'r enw string1, 1576 01:10:39,030 --> 01:10:42,370 sy'n rhoi darlun tebyg ond llinynnau defnyddio. 1577 01:10:42,370 --> 01:10:45,550 Gadewch i mi fynd yn ei flaen a symleiddio hyn am ychydig funud. 1578 01:10:45,550 --> 01:10:48,340 A maddau bant am y tro. 1579 01:10:48,340 --> 01:10:52,280 Hysbysiad llinell 19 o'r enghraifft hon, byddaf yn cael llinyn gan y defnyddiwr. 1580 01:10:52,280 --> 01:10:55,780 Ond sylwi ar yr hyn yr wyf i'n ei wneud nesaf mewn llinellau 22 ymlaen. 1581 01:10:55,780 --> 01:11:00,260 Im 'mewn gwirionedd ailadrodd o hyd i i - ac mae hyn yn gamp newydd - 1582 01:11:00,260 --> 01:11:02,730 strlen, hyd llinyn. 1583 01:11:02,730 --> 01:11:07,010 Mae hon yn swyddogaeth a ddaw gyda C, os byddwch yn mynd heibio ei fod yn llinyn, mae'n dweud 1584 01:11:07,010 --> 01:11:08,950 i chi faint o gymeriadau yn y llinyn. 1585 01:11:08,950 --> 01:11:09,440 Dyna i gyd. 1586 01:11:09,440 --> 01:11:12,520 Mae'r ffaith ei fod yn strlen yn hytrach na hyd llinyn yn unig oherwydd ei fod yn 1587 01:11:12,520 --> 01:11:13,040 yn fwy cryno. 1588 01:11:13,040 --> 01:11:17,100 30 mlynedd yn ôl, mae pobl yn hoffi ysgrifennu pethau mor gryno ag y bo modd. 1589 01:11:17,100 --> 01:11:19,080 Felly, rydym wedi cadw y confensiwn yma. 1590 01:11:19,080 --> 01:11:21,730 i + + yn unig yn golygu cynnydd i ym mhob fersiwn. 1591 01:11:21,730 --> 01:11:24,310 Ac yn awr sylwi ar hyn, sydd yn ddiddorol iawn. 1592 01:11:24,310 --> 01:11:28,730 Felly, yn unol 24, yr wyf yn dweud cyfrifiadur, yn rhoi i mi cymeriad, wyth 1593 01:11:28,730 --> 01:11:30,770 darnau, a galw yn c. 1594 01:11:30,770 --> 01:11:35,370 Ond beth yw hyn ar yr ochr llaw dde yn ei ddweud? 1595 01:11:35,370 --> 01:11:38,150 Yn Saesneg, beth mae hynny'n ei gynrychioli? 1596 01:11:38,150 --> 01:11:40,070 [Anghlywadwy] 1597 01:11:40,070 --> 01:11:40,490 DAVID J. Malan: Yn union. 1598 01:11:40,490 --> 01:11:42,390 Rhowch i mi y cymeriad cyntaf yn y rhesi. 1599 01:11:42,390 --> 01:11:45,400 Neu yn fwy cyffredinol, yn rhoi i mi y cymeriad i-fed yn y rhesi. 1600 01:11:45,400 --> 01:11:48,230 Ac yn sylweddoli ei bod yn bwysig nawr bod fel gwyddonwyr cyfrifiadurol, rydym mewn gwirionedd 1601 01:11:48,230 --> 01:11:49,330 cyfrif o 0. 1602 01:11:49,330 --> 01:11:51,290 Nid oes gennych hawl yn awr i ddechrau gwneud hyn. 1603 01:11:51,290 --> 01:11:54,580 Nawr mae'n rhaid i chi ymddwyn yn unol â'r disgwyliadau y cyfrifiadur a 1604 01:11:54,580 --> 01:11:58,010 cyfrif o sero oherwydd [0] yn mynd i fod y cyntaf 1605 01:11:58,010 --> 01:11:59,670 cymeriad mewn llinyn. 1606 01:11:59,670 --> 01:12:01,320 [1] yn mynd i fod yr ail. 1607 01:12:01,320 --> 01:12:03,610 [2] yn mynd i fod y trydydd, ac yn y blaen. 1608 01:12:03,610 --> 01:12:08,840 Felly y rhaglen hon, os byddaf yn llunio arno - mae hyn, unwaith eto, string1. 1609 01:12:08,840 --> 01:12:11,040 >> Felly gwnewch yn string1. 1610 01:12:11,040 --> 01:12:16,730 Ac yn awr yr wyf yn rhedeg string1 yn fy ffenestr terfynell. 1611 01:12:16,730 --> 01:12:19,180 Mae'n aros am fewnbwn, felly dwi'n mynd i deipio i mewn, dyweder, David. 1612 01:12:19,180 --> 01:12:20,080 Enter. 1613 01:12:20,080 --> 01:12:23,350 Ac yn awr y bydd yn argraffu DAVID i gyd ar linellau gwahanol oherwydd 1614 01:12:23,350 --> 01:12:24,430 sylwi ar yr hyn rwy'n ei wneud. 1615 01:12:24,430 --> 01:12:27,510 Rwy'n argraffu un cymeriad ar y tro. 1616 01:12:27,510 --> 01:12:29,100 Nawr ni fyddwn yn manylu heddiw ar hyn. 1617 01:12:29,100 --> 01:12:31,610 Ond yr wyf yn dileu eiliad yn ôl y gwiriad hwn yma. 1618 01:12:31,610 --> 01:12:36,310 Mae'n troi allan os yw'r defnyddiwr yn camymddwyn, gwrthwynebus, neu dim ond 1619 01:12:36,310 --> 01:12:41,780 ddryslyd, alli 'n weithredol yn methu â rhoi cyfres o gryn hyd. 1620 01:12:41,780 --> 01:12:43,640 Os ydych yn taro'r allweddol anghywir ar y bysellfwrdd, efallai y byddwch yn rhoi 1621 01:12:43,640 --> 01:12:44,390 dim llinyn o gwbl. 1622 01:12:44,390 --> 01:12:47,790 Neu os ydych yn faleisus, efallai y byddwch yn ceisio bastio mewn gwerth gigabyte o un 1623 01:12:47,790 --> 01:12:49,380 traethawd i lenwi'r llinyn. 1624 01:12:49,380 --> 01:12:52,060 Ac os bydd y cyfrifiadur yn rhedeg allan o gof, mae'n troi allan ein bod ni'n mynd 1625 01:12:52,060 --> 01:12:54,310 i fynd yn ôl y gwerth arbennig o'r enw null. 1626 01:12:54,310 --> 01:12:57,550 Felly, ar hyn o bryd, dim ond yn gwybod bod yna y gwerth arbennig a elwir yn null y 1627 01:12:57,550 --> 01:13:01,000 yn ein galluogi i wirio pan fyddwn ni'n allan o gof, ymysg pethau eraill. 1628 01:13:01,000 --> 01:13:07,330 >> Ond os wyf yn agor yn awr string2, sylwi ar un gwahaniaeth yma. 1629 01:13:07,330 --> 01:13:09,760 Sylwi ar un gwahaniaeth yma gyda string2. 1630 01:13:09,760 --> 01:13:13,260 Gyda string2, hyn ar gyfer dolen yn ychydig yn wahanol. 1631 01:13:13,260 --> 01:13:16,350 Gadewch i mi ddileu'r nulls fel y gallwn siarad am y tro arall. 1632 01:13:16,350 --> 01:13:18,460 Ond beth sy'n wahanol am y ddolen ar gyfer y tro hwn? 1633 01:13:21,580 --> 01:13:23,160 A allaf fynd yn ôl at yr enghraifft flaenorol. 1634 01:13:23,160 --> 01:13:24,800 Felly dyna fersiwn dau. 1635 01:13:24,800 --> 01:13:27,020 Mae hwn yn fersiwn un. 1636 01:13:27,020 --> 01:13:31,935 Un, dau, un dau. 1637 01:13:35,030 --> 01:13:38,240 Felly, yr alwad strlen yw lle? 1638 01:13:38,240 --> 01:13:40,420 Mae yn y rhan gyntaf y ddolen i. 1639 01:13:40,420 --> 01:13:43,060 Unrhyw syniadau ynghylch pam yr wyf i'n gwneud hyn? 1640 01:13:43,060 --> 01:13:43,690 Yeah. 1641 01:13:43,690 --> 01:13:46,010 [Anghlywadwy] 1642 01:13:46,010 --> 01:13:47,630 DAVID J. Malan: Felly nid ydym yn galw swyddogaeth bob tro. 1643 01:13:47,630 --> 01:13:48,040 Yn union. 1644 01:13:48,040 --> 01:13:50,350 Dwyn i gof o ddolenni am eu bod yn super syml ar ôl i chi fath o 1645 01:13:50,350 --> 01:13:52,180 deall bod hyn yn y initialization, y 1646 01:13:52,180 --> 01:13:53,330 cyflwr, a'r diweddariad. 1647 01:13:53,330 --> 01:13:55,430 Y broblem yw bod y cyflwr yn digwydd ar bob 1648 01:13:55,430 --> 01:13:56,600 ailadrodd y ddolen. 1649 01:13:56,600 --> 01:13:59,930 Ac felly yn yr enghraifft yma, beth sy'n ddrwg am y ffaith 1650 01:13:59,930 --> 01:14:03,500 bod hyn yn fy nghyflwr? 1651 01:14:03,500 --> 01:14:05,920 Ydych yn ffonio strlen eto ac eto ac eto. 1652 01:14:05,920 --> 01:14:08,990 Ond unwaith y byddaf wedi teipio yn DAVID, hyd y llinyn yw pump. 1653 01:14:08,990 --> 01:14:11,560 Ac nid yw'n mynd i newid ar bob fersiwn o'r ddolen oherwydd bod y 1654 01:14:11,560 --> 01:14:15,560 llinyn yn dal i fod D-A-V-I-D. Felly, mae hwn yn awgrym ar yr hyn sy'n mynd i ddod yn 1655 01:14:15,560 --> 01:14:19,650 syniad gynyddol bwysig a elwir yn penderfyniad dylunio, lle - dim ond nid 1656 01:14:19,650 --> 01:14:21,640 wneud i'r cyfrifiadur wneud gwaith diangen. 1657 01:14:21,640 --> 01:14:25,630 >> Nawr yn unig fel rhagflas o pset 2, pset 2 yn y rhifyn safonol yw 1658 01:14:25,630 --> 01:14:28,850 mynd i herio chi i mewn gwirionedd yn gweithredu rhai nifer o seifferau, mae rhai 1659 01:14:28,850 --> 01:14:32,650 nifer o algorithmau encryption, fel y gallwch yn amgryptio a dadgryptio 1660 01:14:32,650 --> 01:14:35,530 negeseuon cudd, yn debyg iawn i'r Ralphie neb yno ddatgodio. 1661 01:14:35,530 --> 01:14:38,720 Yn y rhifyn haciwr o pset 2, rydym yn mynd i fynd ychydig ymhellach. 1662 01:14:38,720 --> 01:14:42,010 Rydym yn mynd i law i chi ffeil o system gyfrifiadurol gwirioneddol sy'n cynnwys 1663 01:14:42,010 --> 01:14:45,690 criw cyfan o enwau defnyddwyr a chyfrineiriau amgryptio gwirioneddol, a'r her 1664 01:14:45,690 --> 01:14:49,110 ar gyfer y rhifyn haciwr yn mynd i fod i fynd i'r afael hynny cyfrineiriau a ffigur 1665 01:14:49,110 --> 01:14:53,060 pa cryptograffeg neu beth gyfrinach ei ddefnyddio i mewn gwirionedd 1666 01:14:53,060 --> 01:14:55,080 cynhyrchu cyfrineiriau hynny. 1667 01:14:55,080 --> 01:14:58,360 Ac rydym yn mynd i wneud hyn drwy ddefnyddio nodwedd newydd yma o C y byddaf yn rhoi 1668 01:14:58,360 --> 01:15:02,200 chi dim ond demo o, a elwir yn orchymyn-lein dadleuon. 1669 01:15:02,200 --> 01:15:05,930 >> Felly, mae'n troi allan, gan y gall rhai ohonoch wedi gweld yn adran honno neu mewn gwerslyfrau, 1670 01:15:05,930 --> 01:15:09,850 Nid yw bob amser yn brif rhaid i fod yn ddi-rym mewn cromfachau. 1671 01:15:09,850 --> 01:15:14,060 Mae'n troi allan y gall prif hefyd yn cael ei ysgrifennu fel hyn, gyda dau dadleuon, 1672 01:15:14,060 --> 01:15:19,690 argc a argv, lle argc yw nifer y geiriau yr ydych yn teipio ar ôl 1673 01:15:19,690 --> 01:15:21,940 enw'r rhaglen ar eich llinell orchymyn. 1674 01:15:21,940 --> 01:15:24,550 Ac argv yn y geiriau eu hunain. 1675 01:15:24,550 --> 01:15:29,470 Ac fel y cromfachau sgwâr yno yn awgrymu, argv yn ymddangos yn arae. 1676 01:15:29,470 --> 01:15:33,720 Mae'n mynd i fod yn llinyn ar ôl cyfres ar ôl llinyn yn y cof. 1677 01:15:33,720 --> 01:15:36,170 Felly, beth ydym yn mynd i fod yn gallu ei wneud, gan ddechrau gyda pset 2, yn 1678 01:15:36,170 --> 01:15:37,310 rhywbeth fel hyn. 1679 01:15:37,310 --> 01:15:42,450 Os byddaf yn gwneud argv1, sy'n enghraifft byddwn yn dod yn ôl i ddydd Llun, ac yn rhedeg 1680 01:15:42,450 --> 01:15:45,180 hynny, yn sylwi nad yw'n ymddangos i wneud unrhyw beth eto. 1681 01:15:45,180 --> 01:15:47,050 'I jyst yn argraffu ei enw ei hun. 1682 01:15:47,050 --> 01:15:53,220 Ond os ydw i'n dweud ffarwel dosbarth, rhybudd bod y rhaglen hon ymddangos yn ailadrodd 1683 01:15:53,220 --> 01:15:57,030 dros bob un o'r geiriau a deipiwyd wrth yr anogwr. 1684 01:15:57,030 --> 01:16:02,050 A'r modd y byddwn yn cael mynediad i eiriau bod y defnyddiwr wedi 1685 01:16:02,050 --> 01:16:06,780 teipio wrth yr anogwr yw drwy newid prif, gan ddechrau y penwythnos hwn, o int 1686 01:16:06,780 --> 01:16:10,710 prif (gwag) i int brif (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 A fydd felly yn cael ei eni dadleuon llinell orchymyn. 1688 01:16:13,700 --> 01:16:17,210 Ac ar ôl i chi ca 'n sylweddol soffistigedig ar hyn, byddwch yn gallu ysgrifennu 1689 01:16:17,210 --> 01:16:21,370 rhaglenni gwirioneddol trippy, fel yr un yma, sy'n mynd y tu hwnt 1690 01:16:21,370 --> 01:16:25,520 rhai o'r swyddogaethau ydym wedi ei wneud hyd yn hyn, ond i gyd yn eithaf pwerus. 1691 01:16:25,520 --> 01:16:27,330 >> Felly, byddwn yn gadael hyn gyda'r hyn ar y sgrin. 1692 01:16:27,330 --> 01:16:29,160 A byddwn yn eich gweld ar ddydd Llun.