1 00:00:00,000 --> 00:00:03,944 >> [CHWARAE CERDDORIAETH] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 DAVID Malan: pob hawl. 4 00:00:11,690 --> 00:00:14,674 Mae hyn yn CS50, ac mae hyn yn yw diwedd wythnos 2. 5 00:00:14,674 --> 00:00:16,840 Rydw i mor flin na allwn i fod yn yno gyda chi i gyd heddiw, 6 00:00:16,840 --> 00:00:18,300 ond eich bod mewn dwylo da iawn. 7 00:00:18,300 --> 00:00:21,710 Caniatáu i mi gyflwyno Rob Bowden CS50 ei hun. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 ROB BOWDEN: Ac wrth gwrs, ac yna mae'n rhaid i ni wneud hwyl am y ffaith 10 00:00:31,730 --> 00:00:36,820 fod wedi anfon atom yn fertigol fideo a dangos hyn. 11 00:00:36,820 --> 00:00:38,320 >> [VIDEO Playback] 12 00:00:38,320 --> 00:00:39,820 >> [CHWARAE CERDDORIAETH] 13 00:00:39,820 --> 00:00:42,350 >> [Footsteps] 14 00:00:42,350 --> 00:00:44,730 >> Nid oedd -Mae fideo rhaid inni edrych y ffordd hon. 15 00:00:44,730 --> 00:00:46,570 Gallai fod wedi eu hatal. 16 00:00:46,570 --> 00:00:49,070 Dywedwch na wrth fideos fertigol. 17 00:00:49,070 --> 00:00:53,310 >> Fideos -Vertical yn digwydd pan fyddwch dal eich camera y ffordd anghywir. 18 00:00:53,310 --> 00:00:55,880 Bydd eich fideo yn dod i ben i fyny yn edrych fel crap. 19 00:00:55,880 --> 00:00:57,650 >> - [Grunt] 20 00:00:57,650 --> 00:01:02,240 >> -Mae Mwy a mwy o bobl yn gaeth i gwneud fideos fertigol bob dydd. 21 00:01:02,240 --> 00:01:06,240 Dyw hi ddim yn cracio neu ddim byd, ond mae'n dal i fod yn wael iawn. 22 00:01:06,240 --> 00:01:10,410 Mae dau fath gwahanol o pobl sy'n cael eu cystuddio â VVS. 23 00:01:10,410 --> 00:01:14,160 Mae'r grŵp cyntaf yn trin y fideos maent yn saethu fel lluniau. 24 00:01:14,160 --> 00:01:15,850 Nid ydynt yn golygu unrhyw niwed. 25 00:01:15,850 --> 00:01:19,180 Maent nid yn unig yn deall bod tra gallwch droi llun, 26 00:01:19,180 --> 00:01:20,880 ni allwch droi fideo. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [MONKEY SWNIO'N] 29 00:01:23,460 --> 00:01:27,540 >> -Y Grŵp arall yw pobl nad ydynt yn rhoi [blîp]. 30 00:01:27,540 --> 00:01:31,090 >> Syndrom Fideo -Vertical yn beryglus. 31 00:01:31,090 --> 00:01:34,120 Lluniau cynnig yn cael bod yn llorweddol bob amser. 32 00:01:34,120 --> 00:01:35,990 Setiau teledu yn llorweddol. 33 00:01:35,990 --> 00:01:38,380 Sgriniau cyfrifiadurol yn llorweddol. 34 00:01:38,380 --> 00:01:41,580 Lygaid pobl yn llorweddol. 35 00:01:41,580 --> 00:01:45,170 Nid ydym yn cael eu hadeiladu i wylio fideos fertigol. 36 00:01:45,170 --> 00:01:47,600 >> -I Caru fideos fertigol. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody Gofalu amdanoch chi. 38 00:01:50,410 --> 00:01:53,340 >> -Os Broblem hon gadael unchecked, chi hefyd 39 00:01:53,340 --> 00:01:57,650 yn dechrau dangos pedwar o fideos ar yr un pryd yn unig i arbed lled band. 40 00:01:57,650 --> 00:02:02,400 >> Fideos fertigol -Letterboxed byddai fod yr un maint â stamp. 41 00:02:02,400 --> 00:02:04,920 >> -a Bydd yn lledaenu ym mhob man. 42 00:02:04,920 --> 00:02:07,670 Sgriniau Movie cael bod yn llorweddol bob amser. 43 00:02:07,670 --> 00:02:11,200 Os fideos fertigol yn dod yn derbyniol, theatrau ffilm 44 00:02:11,200 --> 00:02:13,930 Bydd yn rhaid i fod yn dal ac yn denau. 45 00:02:13,930 --> 00:02:17,710 >> -ac Pob un o'r theatrau ffilm byddai rhaid i chi gael rhwygo i lawr ac ail-adeiladu. 46 00:02:17,710 --> 00:02:22,090 Ac erbyn iddynt eu hailadeiladu, Byddai Mila Kunis fod yn hen ac yn hyll. 47 00:02:22,090 --> 00:02:24,342 >> Bydd -Birds damwain i mewn iddynt ac yn marw. 48 00:02:24,342 --> 00:02:26,530 >> -We'll I gyd yn cael stiff gyddfau rhag edrych i fyny. 49 00:02:26,530 --> 00:02:29,800 >> -a Fydd unrhyw un yn eistedd mewn y rhes flaen byth eto. 50 00:02:29,800 --> 00:02:37,170 >> Bydd -George Lucas ail-rhyddhau Star Rhyfeloedd again-- yr argraffiad denau. 51 00:02:37,170 --> 00:02:41,860 >> Oedd byth yn -I wir yn gallu dweud y stori fy mod am ddweud. 52 00:02:41,860 --> 00:02:46,030 Roedd hwn yn gyfle gwych i mi arbrofi gyda thechnoleg newydd. 53 00:02:46,030 --> 00:02:48,150 >> -You're Yn jerk. 54 00:02:48,150 --> 00:02:54,430 >> -Every Tro ddyfais symudol yn cael ei ddefnyddio i cofnod fideo, y demtasiwn yno. 55 00:02:54,430 --> 00:02:56,370 Dim ond dweud na. 56 00:02:56,370 --> 00:03:00,116 Dywedwch na wrth George Lucas. 57 00:03:00,116 --> 00:03:04,062 Dywedwch na wrth yr hen Mila Kunis. 58 00:03:04,062 --> 00:03:06,600 Dywedwch na wrth fideos fertigol. 59 00:03:06,600 --> 00:03:12,511 >> -ac Os ydych yn gweld rhywun yn ei wneud, yn dweud, "Nid ydych yn saethu y dymi iawn!" 60 00:03:12,511 --> 00:03:15,433 >> [CHWARAE CERDDORIAETH] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [DIWEDD Playback] 63 00:03:19,830 --> 00:03:23,702 >> [Cymeradwyaeth] 64 00:03:23,702 --> 00:03:27,598 >> [SAIN ALLAN] 65 00:03:27,598 --> 00:03:44,041 66 00:03:44,041 --> 00:03:45,790 ROB BOWDEN: --simple fath o cryptograffeg, 67 00:03:45,790 --> 00:03:49,500 sydd yn y bôn y amgryptio a Gwall Rheolwr o negeseuon cudd. 68 00:03:49,500 --> 00:03:52,590 Felly dyma ni yn cael tegan syml iawn. 69 00:03:52,590 --> 00:03:56,900 A'r syniad yw y cylch allanol cylchdroi o amgylch y cylch mewnol. 70 00:03:56,900 --> 00:04:01,610 A gallwch weld, efallai os byddaf yn chwyddo i mewn, that-- mae'n anodd gweld. 71 00:04:01,610 --> 00:04:05,090 Ond, fel, mae nifer 1-- yn dda, yn symud. 72 00:04:05,090 --> 00:04:09,120 >> Y rhif 1 yn mapio i'r llythyr X, rhif mapiau 2 i'r llythyr 73 00:04:09,120 --> 00:04:11,630 J. Yn anhygoel o anodd i beidio â hepgor ymlaen. 74 00:04:11,630 --> 00:04:16,100 Llythyr 2 fapiau i J. Rhif 3 mapiau i D. Felly 75 00:04:16,100 --> 00:04:20,140 gyda modrwy hwn gallwch roi rhywun neges 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 Am ryw reswm yr ydych eisiau dweud wrth XJD iddynt. 77 00:04:22,624 --> 00:04:24,540 Ond gallwch roi iddynt rhyw neges o rifau, 78 00:04:24,540 --> 00:04:28,460 ac ar yr amod bod ganddynt fodrwy hon, maent yn Gall dadgryptio hyn yr ydych yn ceisio ei ddweud. 79 00:04:28,460 --> 00:04:32,510 >> Felly efallai y byddwch wedi gweld hyn enghraifft benodol o cryptograffeg 80 00:04:32,510 --> 00:04:36,640 o'r blaen os o amgylch y tymor y Nadolig eich bod wedi gwylio Stori Nadolig. 81 00:04:36,640 --> 00:04:38,520 Os nad ydych erioed wedi gweld o'r blaen, yna dim ond 82 00:04:38,520 --> 00:04:41,060 troi ar TBS yn llythrennol unrhyw bryd ar Noswyl Nadolig, 83 00:04:41,060 --> 00:04:44,510 oherwydd eu bod ond yn dangos ei gefn wrth gefn i yn ôl i yn ôl i yn ôl y diwrnod cyfan. 84 00:04:44,510 --> 00:04:46,744 Ac mae'r fideo perthnasol yw hyn. 85 00:04:46,744 --> 00:04:47,410 [VIDEO Playback] 86 00:04:47,410 --> 00:04:50,020 -Bod Yn hysbys i'r byd a'r betws bod Ralph Parker yn drwy hyn 87 00:04:50,020 --> 00:04:52,850 penodwyd yn aelod o'r Little Amddifad Annie Secret Cylch 88 00:04:52,850 --> 00:04:56,490 ac mae ganddo hawl i holl anrhydedd a budd-daliadau sy'n digwydd iddynt. 89 00:04:56,490 --> 00:04:59,010 Llofnodwyd Little Plant Amddifad Annie. 90 00:04:59,010 --> 00:05:03,120 Cydlofnodi Pierre Andre mewn inc! 91 00:05:03,120 --> 00:05:07,460 Anrhydeddau a budd-daliadau eisoes wedi cyrraedd naw oed! 92 00:05:07,460 --> 00:05:12,530 >> [Gweiddi O RADIO] 93 00:05:12,530 --> 00:05:13,030 -Come Ar. 94 00:05:13,030 --> 00:05:14,000 Gadewch i ni fynd ymlaen ag ef. 95 00:05:14,000 --> 00:05:18,274 Nid oes angen i holl jazz fy mod am smyglwyr a môr-ladron. 96 00:05:18,274 --> 00:05:20,440 Nos yfory -Listen gyda yr antur olaf 97 00:05:20,440 --> 00:05:22,540 y Du Môr-ladron Ship. 98 00:05:22,540 --> 00:05:25,460 Nawr, mae'n amser i Neges gyfrinach Annie 99 00:05:25,460 --> 00:05:28,620 ar eich cyfer chi aelodau'r Cylch Secret. 100 00:05:28,620 --> 00:05:32,370 Cofiwch blant, dim ond aelodau o Secret Cylch Annie 101 00:05:32,370 --> 00:05:34,880 Gall dadgodio neges gudd Annie. 102 00:05:34,880 --> 00:05:39,100 Cofiwch, Annie yn dibynnu arnoch chi. 103 00:05:39,100 --> 00:05:41,660 Gosodwch eich pinnau i B2. 104 00:05:41,660 --> 00:05:43,960 Dyma yw'r neges. 105 00:05:43,960 --> 00:05:44,680 12. 106 00:05:44,680 --> 00:05:45,180 11. 107 00:05:45,180 --> 00:05:45,679 2. 108 00:05:45,679 --> 00:05:48,110 -I Wyf yn fy nghyfarfod cyfrinachol cyntaf. 109 00:05:48,110 --> 00:05:49,030 >> -25. 110 00:05:49,030 --> 00:05:49,834 14. 111 00:05:49,834 --> 00:05:51,040 11. 112 00:05:51,040 --> 00:05:51,854 18. 113 00:05:51,854 --> 00:05:52,670 16. 114 00:05:52,670 --> 00:05:54,570 >> -OH, Pierre mewn llais heno mawr. 115 00:05:54,570 --> 00:05:57,490 Gallwn ddweud bod heno neges yn wirioneddol bwysig. 116 00:05:57,490 --> 00:05:57,990 -3. 117 00:05:57,990 --> 00:06:00,080 25. 118 00:06:00,080 --> 00:06:01,580 Dyna neges gan Annie ei hun. 119 00:06:01,580 --> 00:06:02,880 Cofiwch, peidiwch â dweud wrth neb. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> Eiliadau -Five yn ddiweddarach, rwy'n yn yr unig ystafell yn y tŷ lle mae bachgen o naw 122 00:06:11,130 --> 00:06:15,830 Gallai eistedd mewn preifatrwydd a dadgodio. 123 00:06:15,830 --> 00:06:16,620 Aha! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 Es i i'r nesaf. 126 00:06:20,210 --> 00:06:23,300 E. Y gair cyntaf yw "fod." 127 00:06:23,300 --> 00:06:25,880 S. Fe'i yn dod yn haws nawr. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 Dyna R. 130 00:06:30,528 --> 00:06:31,278 -Come Ar, Ralphie! 131 00:06:31,278 --> 00:06:31,861 Rydw i wedi mynd gotta! 132 00:06:31,861 --> 00:06:33,182 -I'll Fod yn iawn i lawr, Ma! 133 00:06:33,182 --> 00:06:36,038 Whizz Gee. 134 00:06:36,038 --> 00:06:42,840 T. O. "Byddwch yn siwr i" - gofalwch eich bod yn yr hyn? 135 00:06:42,840 --> 00:06:44,770 Beth oedd Little Amddifad Annie ceisio ei ddweud? 136 00:06:44,770 --> 00:06:46,381 Byddwch yn siwr i beth? 137 00:06:46,381 --> 00:06:47,825 >> -Randy Wedi mynd i fynd! 138 00:06:47,825 --> 00:06:48,866 A wnewch chi os gwelwch yn dda dod allan? 139 00:06:48,866 --> 00:06:49,783 >> -Mae Pob hawl, mom! 140 00:06:49,783 --> 00:06:51,786 'N annhymerus' fod allan yn iawn! 141 00:06:51,786 --> 00:06:53,606 Yr oeddwn yn dod yn nes yn awr. 142 00:06:53,606 --> 00:06:55,550 Roedd y tensiwn yn ofnadwy. 143 00:06:55,550 --> 00:06:57,050 Beth oedd hi? 144 00:06:57,050 --> 00:06:59,905 Mae tynged y blaned Gall hongian yn y cydbwysedd! 145 00:06:59,905 --> 00:07:01,736 >> Got -Ralphie, Randy i fynd! 146 00:07:01,736 --> 00:07:05,680 >> -I'll Fod yn iawn allan, ar gyfer crio yn uchel! 147 00:07:05,680 --> 00:07:07,170 Mae bron yno! 148 00:07:07,170 --> 00:07:08,150 Mae fy bysedd hedfan. 149 00:07:08,150 --> 00:07:09,980 Fy meddwl oedd trap dur. 150 00:07:09,980 --> 00:07:11,496 Mae pob mandwll vibrated. 151 00:07:11,496 --> 00:07:13,268 Yr oedd bron yn glir! 152 00:07:13,268 --> 00:07:13,767 Ydw. 153 00:07:13,767 --> 00:07:14,609 Ydw. 154 00:07:14,609 --> 00:07:15,108 Ydw. 155 00:07:15,108 --> 00:07:16,449 Ydw. 156 00:07:16,449 --> 00:07:20,240 Byddwch yn siwr i yfed eich Ovaltine. 157 00:07:20,240 --> 00:07:20,740 Ovaltine? 158 00:07:20,740 --> 00:07:26,687 159 00:07:26,687 --> 00:07:27,520 Mae fasnachol crummy? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 Yn fab i ast. 162 00:07:34,920 --> 00:07:35,890 >> [DIWEDD Playback] 163 00:07:35,890 --> 00:07:39,650 >> ROB BOWDEN: Felly dyna sut Ovaltine yn ymwneud â cryptography. 164 00:07:39,650 --> 00:07:42,290 Yn y bôn CS50 yn unig hysbysebu Ovaltine, felly gallem 165 00:07:42,290 --> 00:07:44,400 fod yn llwyddiant masnachol crummy gyfer Ovaltine. 166 00:07:44,400 --> 00:07:44,900 Iawn. 167 00:07:44,900 --> 00:07:47,120 Felly nawr gwyddoniaeth gyfrifiadurol gwirioneddol. 168 00:07:47,120 --> 00:07:50,670 Cofiwch ar ddydd Llun rydym i'r chwith oddi ar plymio ddyfnach i mewn llinynnau. 169 00:07:50,670 --> 00:07:52,820 Felly, rydym yn delio â y llinyn "Zamyla." 170 00:07:52,820 --> 00:07:55,130 Ac rydym yn cydnabod mae'r ffaith ein bod yn gallu trin 171 00:07:55,130 --> 00:07:57,510 "Zamyla" fel dilyniant o gymeriadau. 172 00:07:57,510 --> 00:07:59,740 A chofiwch ein bod yn dysgu y nodiant braced. 173 00:07:59,740 --> 00:08:01,995 Felly, os yw hyn yn cael eu storio mewn llinyn "n," yna 174 00:08:01,995 --> 00:08:05,860 os ydym yn dweud s braced 0, byddai hynny yn dangos y llythyr Z. cyfalaf 175 00:08:05,860 --> 00:08:09,790 Ac os ydym yn dweud s braced 1, bod yn awgrymu y llythrennau bach cyntaf, 176 00:08:09,790 --> 00:08:14,220 ac yn y blaen hyd at s braced 5, a fyddai'n awgrymu y mae diwethaf. 177 00:08:14,220 --> 00:08:17,090 >> Nawr cofiwch fod y hyd y llinyn hwn yw 6, 178 00:08:17,090 --> 00:08:23,220 ond mae'r mynegeion i mewn i'r llinyn yn 0 drwy 5, Z drwy bara a. 179 00:08:23,220 --> 00:08:28,650 Felly, mae hyn yn awr yn cyd-fynd â darlun ehangach o gof eich cyfrifiadur, eich RAM. 180 00:08:28,650 --> 00:08:32,020 Felly, yn rhywle y rhaglen y ydych yn rhedeg eich cyfrifiadur 181 00:08:32,020 --> 00:08:34,780 Mae angen i gofio Zamyla rhywle yn y cof. 182 00:08:34,780 --> 00:08:36,029 Felly gallaf gael yn wirfoddolwr? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 Ie, os gwelwch yn dda. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 A beth yw eich enw? 187 00:08:51,500 --> 00:08:52,410 >> DEAN: Dean. 188 00:08:52,410 --> 00:08:53,550 >> ROB BOWDEN: Dean? 189 00:08:53,550 --> 00:08:54,910 Neis i gwrdd â chi, Dean. 190 00:08:54,910 --> 00:08:58,240 Felly dewch draw yma, ac rydym yn mynd i gael i chi dynnu 191 00:08:58,240 --> 00:09:00,740 ar ein cynllun nifty neis o gof. 192 00:09:00,740 --> 00:09:05,950 Nawr rwy'n hoffi meddwl o gof fel un stribed hir o bytes, 193 00:09:05,950 --> 00:09:11,090 ond dim ond ar gyfer dibenion arddangos yr ydym chi helpu yn unig yn chwith i'r dde, top i'r gwaelod. 194 00:09:11,090 --> 00:09:11,590 IAWN? 195 00:09:11,590 --> 00:09:22,030 >> Felly dw i'n mynd i ddangos program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 Ac felly i gyd rhaglen hon yw wneud yw gofyn am bedwar llinynnau 197 00:09:25,760 --> 00:09:28,830 oddi wrth y defnyddiwr GetString ac yna argraffu 198 00:09:28,830 --> 00:09:30,950 beth bynnag y llinyn cyntaf roesoch yn. 199 00:09:30,950 --> 00:09:32,840 Rydym yn anwybyddu dau drwy bedwar. 200 00:09:32,840 --> 00:09:33,610 IAWN. 201 00:09:33,610 --> 00:09:38,210 Felly, dros yma now-- pan Rwyf cais a1 cyntaf. 202 00:09:38,210 --> 00:09:39,740 Felly yr ydych yn y cyfrifiadur. 203 00:09:39,740 --> 00:09:41,680 A ydych yn gweithredu GetString. 204 00:09:41,680 --> 00:09:46,710 Felly, byddwch yn gofyn am linyn o mi, ac yr wyf yn dweud, OK, Dean. 205 00:09:46,710 --> 00:09:47,900 Rhowch y llinyn "Dean." 206 00:09:47,900 --> 00:09:50,300 >> Felly rhywle yn y cof i chi Mae angen i gofio "Dean." 207 00:09:50,300 --> 00:09:52,160 Felly ysgrifennwch i mewn i gof yn rhywle. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 Perffaith. 210 00:09:59,210 --> 00:09:59,880 IAWN. 211 00:09:59,880 --> 00:10:01,740 Felly, erbyn hyn rydym wedi S2. 212 00:10:01,740 --> 00:10:03,869 A s2 yn mynd i fod cais i GetString. 213 00:10:03,869 --> 00:10:05,160 Felly dw i'n mynd i fynd i mewn i linyn. 214 00:10:05,160 --> 00:10:08,720 Rydw i'n mynd i fynd i mewn "Hannah." 215 00:10:08,720 --> 00:10:10,586 Felly, rhowch "Hannah" rhywle i mewn i gof. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 Yeah. 218 00:10:19,360 --> 00:10:23,000 A-H. 219 00:10:23,000 --> 00:10:25,550 >> Iawn, felly nawr s3. 220 00:10:25,550 --> 00:10:28,380 Ac mae'n mynd i fod yn un arall cais i GetString. 221 00:10:28,380 --> 00:10:37,020 Ac felly yn awr yn mynd i mewn "Maria." 222 00:10:37,020 --> 00:10:37,520 Iawn. 223 00:10:37,520 --> 00:10:40,980 Ac yna mae un olaf cais i GetString, s4. 224 00:10:40,980 --> 00:10:42,580 Felly, nid wyf yn gwybod. 225 00:10:42,580 --> 00:10:45,640 Beth am i ni fynd â antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 Felly rhowch hynny i gof. 227 00:10:49,460 --> 00:10:50,400 Yeah. 228 00:10:50,400 --> 00:10:53,970 Felly, dim ond gwneud "Rob." 229 00:10:53,970 --> 00:10:54,560 >> IAWN. 230 00:10:54,560 --> 00:10:58,410 Felly nawr explain-- pam y gwnaeth byddwch yn gadael lleoedd hyn? 231 00:10:58,410 --> 00:11:01,340 Pam ydych chi'n cael y wag gofod yma, yma, a hyd yma? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 Ydw. 234 00:11:05,670 --> 00:11:09,450 Felly, yn sylwi pan fyddaf yn mynd i argraffu s1-- felly os ydym 235 00:11:09,450 --> 00:11:11,890 Roedd rhedeg "Hannah" i'r dde i fyny nesaf at "Dean," 236 00:11:11,890 --> 00:11:14,360 sut rydym yn gwybod pryd y llinyn "Dean" yn dod i ben? 237 00:11:14,360 --> 00:11:19,470 Felly efallai argraffu'r a1 llinyn gael dim ond ei argraffu "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 os nad oes ganddo unrhyw syniad o bryd "Dean" mewn gwirionedd yn dod i ben. 239 00:11:22,720 --> 00:11:23,240 >> Iawn. 240 00:11:23,240 --> 00:11:27,650 Felly, er cof y ffordd yr ydym mewn gwirionedd yn cynrychioli pen hwn o'r llinyn 241 00:11:27,650 --> 00:11:29,940 yw gyda slaes sero. 242 00:11:29,940 --> 00:11:32,620 Felly y gofod hwn yw'r union beth yr oeddem am. 243 00:11:32,620 --> 00:11:34,040 Dylai fod yn slaes sero. 244 00:11:34,040 --> 00:11:37,690 Bydd hwn yn slaes sero, a bydd hyn yn slaes sero. 245 00:11:37,690 --> 00:11:41,585 A gallwch gael gwobr wych am fod yn wirfoddolwr perffaith. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 Cymerwch pêl straen! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> IAWN. 250 00:11:49,700 --> 00:11:54,420 Felly, mae hyn slaes cymeriad sero yw sut yr ydym yn nodi pen llinyn. 251 00:11:54,420 --> 00:11:57,120 Mae'n sut pan fydd unrhyw raglen roddir eisiau argraffu llinyn, 252 00:11:57,120 --> 00:11:59,760 'i' how-- cofio ein bod wedi dysgu y swyddogaeth strlen wythnos diwethaf? 253 00:11:59,760 --> 00:12:00,940 Hyd Llinynnol? 254 00:12:00,940 --> 00:12:03,770 Mae'n sut mae hyd llinyn yn gallu benderfynu pa mor hir y llinyn yn. 255 00:12:03,770 --> 00:12:05,810 'I jyst yn cadw ailadrodd dros y cymeriadau 256 00:12:05,810 --> 00:12:08,217 nes ei fod yn dod o hyd i'r slaes sero cymeriad. 257 00:12:08,217 --> 00:12:11,050 Felly, y peth pwysig i'w sylweddoli am y cymeriad slaes sero 258 00:12:11,050 --> 00:12:14,950 ei fod yn cael ei gynrychioli gan yr holl sero mewn ddarnau. 259 00:12:14,950 --> 00:12:18,980 Felly sylwi bod hyn yn wahanol oddi wrth gymeriad sero. 260 00:12:18,980 --> 00:12:23,010 Felly cymeriad sero, os ydych yn cofio yn yr enghraifft a roddodd ar y diwedd 261 00:12:23,010 --> 00:12:27,360 o ddarlith ble map cymeriadau canlynol-- fel mapiau cyfalaf A i 65. 262 00:12:27,360 --> 00:12:29,130 Llythrennau bach o fapiau i 97. 263 00:12:29,130 --> 00:12:30,890 Byddai llythrennau bach b yn 98. 264 00:12:30,890 --> 00:12:35,220 Felly mae nifer 0 mapiau canlynol-- Nid wyf yn ei wneud yn gwybod oddi ar ben fy mhen. 265 00:12:35,220 --> 00:12:36,400 44 neu 45. 266 00:12:36,400 --> 00:12:37,890 Rhywle yn y rhanbarth hwnnw. 267 00:12:37,890 --> 00:12:40,850 >> Felly cymeriad 0 yn nifer gwirioneddol. 268 00:12:40,850 --> 00:12:44,350 Ond sero slaes mapiau i gyd sero ddarnau. 269 00:12:44,350 --> 00:12:46,380 Felly mae 'na gwahaniaeth rhwng slaes sero, 270 00:12:46,380 --> 00:12:48,450 y byddwn yn galw'r terminator null. 271 00:12:48,450 --> 00:12:53,210 Mae 'na gwahaniaeth rhwng slaes sero a chymeriad sero. 272 00:12:53,210 --> 00:12:54,350 >> Iawn. 273 00:12:54,350 --> 00:12:57,520 Felly yn siarad ychydig mwy am llinynnau. 274 00:12:57,520 --> 00:13:01,470 Felly, yna rydym yn gweld yma dyma sut byddai'n cael ei osod allan yn y cof. 275 00:13:01,470 --> 00:13:07,940 Felly, y syniad hwn o linynnau fel dilyniant o characters-- felly mae'r cyfrifiadur swyddogol 276 00:13:07,940 --> 00:13:10,750 dymor sciency ar gyfer dilyniant yn arae. 277 00:13:10,750 --> 00:13:13,790 Felly byddem yn galw llinyn amrywiaeth o gymeriadau. 278 00:13:13,790 --> 00:13:17,770 Ac mae mewn gwirionedd data arall mathau y gallwn wneud araeau allan o. 279 00:13:17,770 --> 00:13:19,975 >> Felly, er mwyn ysgogi hyn, edrychwch ar enghraifft. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 Byddwn yn ei alw'n ages0.c byddaf adysgrifia a bastio ein templed. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 IAWN. 284 00:13:33,410 --> 00:13:39,378 Felly, yn y rhaglen hon yr hyn yr ydym am ei wneud yw chrafangia 'r oedran 285 00:13:39,378 --> 00:13:45,160 o dri myfyriwr yn y cwrs. 286 00:13:45,160 --> 00:13:49,240 Felly, rydym yn gwybod y int age-- ac yn awr yr wyf i'n mynd i ddweud 0. 287 00:13:49,240 --> 00:13:53,140 Felly efallai y byddwch am ddweud oed1, ond ar gyfer dibenion byddwn yn gweld yn fuan iawn, 288 00:13:53,140 --> 00:13:57,187 'N annhymerus' dweud age0 int hafal GetInt. 289 00:13:57,187 --> 00:13:59,270 Felly yr un alwad i GetInt ein bod ni wedi bod yn defnyddio fy mod 290 00:13:59,270 --> 00:14:01,561 peidiwch â digwydd bod yn annog gan ddweud, "rhowch yr oed i mi." 291 00:14:01,561 --> 00:14:03,120 Ond dim ond gofyn am hynny. 292 00:14:03,120 --> 00:14:06,510 >> Ac oed1 hafal GetInt. 293 00:14:06,510 --> 00:14:09,600 Ac age2 int hafal GetInt. 294 00:14:09,600 --> 00:14:14,070 Felly, unwaith eto, tri myfyriwr, ond yn y pen draw y mynegeion newidyn 295 00:14:14,070 --> 00:14:16,890 yn age0 drwy age2. 296 00:14:16,890 --> 00:14:17,550 IAWN. 297 00:14:17,550 --> 00:14:23,960 Felly, bydd y rhaglen hon yn gwneud beth bynnag yr ydym am â age0, oed1, a age2, 298 00:14:23,960 --> 00:14:27,670 ond mae'r rhaglen hon yn y pen draw gweithio i dri myfyriwr. 299 00:14:27,670 --> 00:14:28,380 >> IAWN. 300 00:14:28,380 --> 00:14:32,110 Felly nawr beth os ydw i eisiau pedwar myfyriwr? 301 00:14:32,110 --> 00:14:36,000 Wel, dw i'n mynd i gael i fynd yn ôl i mewn i fy cod, yn newid y sylw, 302 00:14:36,000 --> 00:14:39,840 ac yn awr mae gennym int age3 hafal i GetInt. 303 00:14:39,840 --> 00:14:40,610 IAWN. 304 00:14:40,610 --> 00:14:43,660 Felly sy'n gweld y broblem yma? 305 00:14:43,660 --> 00:14:47,310 Beth yw'r broblem gyda'r math hwn o setup? 306 00:14:47,310 --> 00:14:47,810 Yeah. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 Yeah. 309 00:14:53,610 --> 00:14:56,360 Felly rydym yn creu amrywiol ar gyfer pob myfyriwr. 310 00:14:56,360 --> 00:15:00,140 Nawr bod yn gweithio, ond yn y pen draw beth os wyf yn awr 311 00:15:00,140 --> 00:15:06,500 yn dweud, "Rwyf am i chrafangia oed wyth myfyriwr neu fyfyrwyr 16 312 00:15:06,500 --> 00:15:11,340 neu'r fyfyrwyr ond mae llawer o y cannoedd o fyfyrwyr yn CS50 313 00:15:11,340 --> 00:15:16,750 neu y miloedd o fyfyrwyr ar y campws neu y biliynau o bobl yn y byd? 314 00:15:16,750 --> 00:15:19,130 Felly, yn y pen draw nid yw hyn yn gynaliadwy. 315 00:15:19,130 --> 00:15:21,990 Unrhyw bryd y byddwch yn gweld eich hun yn copïo a chod phastio fel hyn, 316 00:15:21,990 --> 00:15:25,050 Dylai gyffredinol i chi deimlo'n fod yna ffordd well. 317 00:15:25,050 --> 00:15:31,290 >> Felly, dyma lle byddwn yn cyflwyno datganiad arae. 318 00:15:31,290 --> 00:15:34,564 Felly, pan fyddwch yn datgan amrywiaeth, mae hyn yn beth y fformat cyffredinol 319 00:15:34,564 --> 00:15:35,480 yn mynd i edrych fel. 320 00:15:35,480 --> 00:15:36,664 Rydym yn mynd i ddweud y math. 321 00:15:36,664 --> 00:15:38,830 ac yna rydym yn mynd i rhowch enw'r y array, 322 00:15:38,830 --> 00:15:41,150 yn union fel yr ydym yn diffinio unrhyw newidyn penodol. 323 00:15:41,150 --> 00:15:43,980 Ac yna yn olaf, rydym yn defnyddio y nodiant braced eto 324 00:15:43,980 --> 00:15:47,480 ond mewn cyd-destun gwahanol i sut yr ydym yn ei ddefnyddio yn gynharach. 325 00:15:47,480 --> 00:15:51,860 >> Felly dyma mae hyn yn edrych fel normal Datganiad amrywiol yr ydym wedi gweld. 326 00:15:51,860 --> 00:15:54,890 Felly, rydym wedi gweld int x hanner colon o'r blaen. 327 00:15:54,890 --> 00:16:00,020 Wel nawr efallai y byddwn yn gweld rhywbeth fel int x cromfachau 5. 328 00:16:00,020 --> 00:16:04,020 A rhoi syniad hwn i mewn i'r Rhaglen GetInt ein bod yn have-- 329 00:16:04,020 --> 00:16:08,850 er mwyn i ni weithredu mae hyn yn yr un modd. 330 00:16:08,850 --> 00:16:13,630 >> Lets 'ddeud yn CS rydym yn tueddu i ddefnyddio n fel y nifer o rywbeth. 331 00:16:13,630 --> 00:16:16,150 Felly dyma ni yn mynd i storio pedwar myfyriwr. 332 00:16:16,150 --> 00:16:25,960 Ac yn awr gallwn ddweud oedran int Ni n-- braced eithaf ei gael yet-- 333 00:16:25,960 --> 00:16:32,210 i ddatgan amrywiaeth o bedwar myfyriwr. 334 00:16:32,210 --> 00:16:38,050 Felly, sut y bydd hyn yn edrych yn Bydd cof yn debyg i hyn. 335 00:16:38,050 --> 00:16:39,570 Cliriwch hyn. 336 00:16:39,570 --> 00:16:46,606 Ac rydym yn mynd i gael rywle yn memory-- byddaf yn rhoi hyn i fyny yno. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> Felly rhywle yn y cof. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 Un, dau, tri, pedwar. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 Mae gennym bedwar gyfanrifau yn olynol ar gyfer amrywiaeth hwn o bedwar gyfanrifau. 343 00:17:09,849 --> 00:17:13,820 Felly, ar hyn o bryd, beth yw'r maint un o'r blychau hyn? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 Yeah. 346 00:17:17,690 --> 00:17:18,390 Mae'n pedwar bytes. 347 00:17:18,390 --> 00:17:19,690 Mae'n 32 darnau. 348 00:17:19,690 --> 00:17:22,310 Felly, yn awr mae hyn yn wahanol o'r amrywiaeth sydd gennym 349 00:17:22,310 --> 00:17:24,020 Gwelodd yn gynharach, yr amrywiaeth o gymeriadau. 350 00:17:24,020 --> 00:17:28,540 Mewn dim ond un llinyn beit pob blwch yn, am fod yn gymeriad ond un beit. 351 00:17:28,540 --> 00:17:32,170 Ond gydag amrywiaeth o gyfanrifau, pob un blwch wedi i fod yn bedwar bytes er mwyn 352 00:17:32,170 --> 00:17:34,060 i gyd-fynd yn gyfanrif cyfan. 353 00:17:34,060 --> 00:17:37,197 Felly, mae hyn yn beth amrywiaeth o Byddai pedwar ints edrych. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> Ac yna yn ôl i cod. 356 00:17:43,870 --> 00:17:47,460 Nawr rydym am i storio mewn gwirionedd gyfanrifau i mewn i'r casgliad. 357 00:17:47,460 --> 00:17:53,470 Felly, yn awr mae hwn yn iawn, iawn, iawn patrwm cyffredin a fydd ar ryw adeg 358 00:17:53,470 --> 00:17:54,680 dod cof cyhyrau. 359 00:17:54,680 --> 00:17:56,710 Felly int ff yn dychwelyd 0. 360 00:17:56,710 --> 00:17:57,940 ff llai na n. 361 00:17:57,940 --> 00:18:01,850 ff yn ogystal a mwy. 362 00:18:01,850 --> 00:18:05,790 Braced oedran i yn hafal i GetInt. 363 00:18:05,790 --> 00:18:15,100 >> Felly, mae hyn ar gyfer dolen, y fformat hwn, dylech ddod i arfer iawn. 364 00:18:15,100 --> 00:18:20,010 Felly mae hyn yn gyffredinol sut y byddwn yn ailadrodd drosodd bron unrhyw arae. 365 00:18:20,010 --> 00:18:23,690 Nawr sylwi ar y math hwn o yn esbonio pam o'r cychwyn 366 00:18:23,690 --> 00:18:29,870 nad oedd gennym am ddolenni mynd am int ff hafal i 1, fi yn llai na neu'n hafal i 10. 367 00:18:29,870 --> 00:18:34,200 Y rheswm yw y dechrau o sero yn gwneud y gwaith hwn yn dda gyda arrays. 368 00:18:34,200 --> 00:18:36,270 Felly araeau yn sero mynegeio. 369 00:18:36,270 --> 00:18:40,360 Os yw amrywiaeth hwn o hyd 4, mae'r mynegeion yn 0 trwy 3. 370 00:18:40,360 --> 00:18:42,880 >> Felly, trwy'r cyntaf ailadroddiad o hyn ar gyfer dolen 371 00:18:42,880 --> 00:18:49,930 rydym yn mynd i fod yn gosod oedran braced 0 hafal i alwad i GetInt. 372 00:18:49,930 --> 00:18:52,440 Felly beth bynnag yr wyf yn digwydd i fynd i mewn ar y bysellfwrdd. 373 00:18:52,440 --> 00:18:56,970 Yn yr ail llwyddo, rydym yn gosod oed1 hafal i GetInt. 374 00:18:56,970 --> 00:18:58,230 Trydydd pasio, age2. 375 00:18:58,230 --> 00:18:59,880 Age3 pasio Terfynol. 376 00:18:59,880 --> 00:19:05,750 Felly, os yn y tocyn cyntaf y ddolen Yr wyf yn mynd i mewn i'r rhif 4 ar y bysellfwrdd, 377 00:19:05,750 --> 00:19:07,740 yna byddwn yn mewnosod 4 yma. 378 00:19:07,740 --> 00:19:11,470 Os ar yr ail pasio yr wyf yn mynd i mewn 50, byddwn yn rhoi 50 yma. 379 00:19:11,470 --> 00:19:15,180 Ar y trydydd tocyn wyf yn gallai fynd i mewn negyddol 1, negyddol 1, 380 00:19:15,180 --> 00:19:21,810 ac yna yn olaf os byddaf yn mynd i mewn 0-- a Erbyn hyn cofiwch fod hyn yn mynegai tri. 381 00:19:21,810 --> 00:19:25,350 >> Ar ôl i ni dolen yn ôl, fi yw mynd i gael ei gynyddrannedig i 4. 382 00:19:25,350 --> 00:19:27,770 mwyach i yn llai na n, sydd 4. 383 00:19:27,770 --> 00:19:29,840 Ac rydym dorri allan o'r cylch. 384 00:19:29,840 --> 00:19:32,578 Felly beth fyddai o'i le ar hyn? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [Anghlywadwy]? 387 00:19:38,729 --> 00:19:39,604 GYNULLEIDFA: [Anghlywadwy] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> Ydw. 390 00:19:46,400 --> 00:19:51,550 Felly yn unig y mae'r amrywiaeth pedwar lle, sy'n golygu fel mynegeion 0 trwy 3. 391 00:19:51,550 --> 00:19:55,630 Felly, pe bai hyn yn wir, fyddwn i cymryd ar werth 4 ar ryw adeg. 392 00:19:55,630 --> 00:20:00,910 Bydd dosbarth oedran 4 yn cael eu gosod beth bynnag sy'n digwydd i fod dros yma 393 00:20:00,910 --> 00:20:02,920 ar yr hyn sydd gennyf i'w ddweud, rhowch 6. 394 00:20:02,920 --> 00:20:05,010 Bydd hynny'n cael ei gosod hwn i 6. 395 00:20:05,010 --> 00:20:06,560 >> Ond nid ydym yn gwybod beth sydd dros yma. 396 00:20:06,560 --> 00:20:08,836 Nid yw hyn yn cof bod gennym fynediad i. 397 00:20:08,836 --> 00:20:10,710 Felly, os ydych yn cofio o y ddarlith blaenorol, 398 00:20:10,710 --> 00:20:14,350 yr oedd yn argraffu gwerthoedd Zamyla a ar ryw adeg fe daro segmentiad hwn 399 00:20:14,350 --> 00:20:17,990 fai. Felly, mae'n debyg y byddwch yn gweld llawer o ddiffygion segmentu wrth i chi 400 00:20:17,990 --> 00:20:20,530 gweithredu rhai o'r broblem setiau. 401 00:20:20,530 --> 00:20:24,950 Ond mae hyn yn un o'r ffyrdd y gallwch yn dod ar draws segmentiad 402 00:20:24,950 --> 00:20:28,540 fai, pan fyddwch yn dechrau cael mynediad cof mewn ffyrdd na ddylech fod. 403 00:20:28,540 --> 00:20:34,117 Felly, nid oedd gennym fynediad at yn y lleoliad hwn ac mae hyn yn bug. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> Felly, mae hyn yn well. 406 00:20:40,190 --> 00:20:45,820 Erbyn hyn mae yna fach mater â'r cod hwn. 407 00:20:45,820 --> 00:20:50,720 A dyna yn y bôn ein bod yn yn dal yn sownd mewn pedwar o fyfyrwyr. 408 00:20:50,720 --> 00:20:52,940 Nawr, os wyf am ei ddefnyddio wyth myfyriwr, OK. 409 00:20:52,940 --> 00:20:54,350 Dyw hi ddim yn bod fawr bargen. 410 00:20:54,350 --> 00:20:58,120 Gallaf fynd i mewn, yn newid y sylwadau, a newid n. 411 00:20:58,120 --> 00:20:59,760 Yn awr, bydd hyn yn gweithio gydag wyth o fyfyrwyr. 412 00:20:59,760 --> 00:21:02,190 Os byddaf yn crynhoi hyn ac yn rhedeg hyn, bydd yn dangos me-- 413 00:21:02,190 --> 00:21:07,870 bydd yn gofyn am cyfanrifau am wyth myfyrwyr a bydd yn jyst yn gweithio. 414 00:21:07,870 --> 00:21:11,850 Ond mae'n llai na delfrydol i angen ail-grynhoi y rhaglen bob tro 415 00:21:11,850 --> 00:21:15,960 Rwyf am newid y nifer y myfyrwyr yr wyf am fynd i mewn i'r oesoedd am. 416 00:21:15,960 --> 00:21:22,990 >> Felly mae'r gwelliant terfynol ar hwn, fel y byddwn yn gweld Yma-- rydym yn 417 00:21:22,990 --> 00:21:26,177 mynd i wneud cais am y nifer o bobl. 418 00:21:26,177 --> 00:21:28,010 Yma, mae gennym nifer o bobl yn yr ystafelloedd 419 00:21:28,010 --> 00:21:29,880 neu unrhyw oedran o bobl yn yr ystafell. 420 00:21:29,880 --> 00:21:33,300 Ond rydym ni'n mynd i ofyn am y rhif o bobl yn yr ystafell gan y defnyddiwr. 421 00:21:33,300 --> 00:21:36,171 Felly, mae hyn yn union yr un do-tra dolen yr ydym wedi ei weld o'r blaen. 422 00:21:36,171 --> 00:21:37,920 Mae'n union yr un do-tra dolen sydd i chi 423 00:21:37,920 --> 00:21:40,050 Efallai y bydd gweithredu ar y broblem a osodwyd. 424 00:21:40,050 --> 00:21:43,102 Felly, ar yr amod eu bod yn mynd i mewn i n llai nag 1, 425 00:21:43,102 --> 00:21:45,310 felly mae rhaid iddo fod yn leiaf un person yn yr ystafell. 426 00:21:45,310 --> 00:21:47,407 Ar yr amod eu bod yn mynd i mewn i n llai nag 1, 427 00:21:47,407 --> 00:21:48,990 Yna, rydym yn mynd i dal i ofyn eto. 428 00:21:48,990 --> 00:21:50,906 Rhowch nifer o bobl yn yr ystafell. 429 00:21:50,906 --> 00:21:53,550 Nawr, ar ôl i ni gael y nifer o bobl yn y room-- 430 00:21:53,550 --> 00:21:58,020 felly efallai y byddwn yn mynd i mewn nad oes 200 o bobl yn yr ystafell hon. 431 00:21:58,020 --> 00:22:05,480 Yna lawr yma rydym yn mynd i ddod a datgan amrywiaeth o faint 200. 432 00:22:05,480 --> 00:22:10,220 Rydym yn datgan arae dyna ddigon mawr i ddal 200 oed. 433 00:22:10,220 --> 00:22:15,370 Dod i lawr, 'i' y ddolen ar gyfer y byddwch yn dod i arfer iawn. 434 00:22:15,370 --> 00:22:19,490 Felly ailadrodd dros amrywiaeth hwn, neilltuo i bob lleoliad 435 00:22:19,490 --> 00:22:23,020 yn y casgliad yn gyfanrif, ac Yna, yn y pen draw fan hyn rydym yn 436 00:22:23,020 --> 00:22:28,340 dim ond cael enghraifft o ailadrodd dros y array, nid i aseinio gwerthoedd, 437 00:22:28,340 --> 00:22:30,150 ond i gael mynediad gwerthoedd. 438 00:22:30,150 --> 00:22:33,810 >> Felly, dros yma gwelwn ein bod yn yn ei ddweud, y flwyddyn o hyn, 439 00:22:33,810 --> 00:22:40,470 person% fi fydd% i mlwydd oed, lle mae'r% cyntaf i yw i plws 1. 440 00:22:40,470 --> 00:22:43,010 Felly, fi yw hwn newidyn mynegai. 441 00:22:43,010 --> 00:22:49,420 A'r ail% i yn mynd i fod y gwerth ei storio yn yr oesoedd amrywiaeth ac 1. 442 00:22:49,420 --> 00:22:54,217 Felly yn ogystal hwn 1 yn unig oherwydd ein bod yn saying-- plws hwn 1, oedrannau i ac 1. 443 00:22:54,217 --> 00:22:57,050 Mae'r plws 1 yn unig oherwydd ein bod yn gan ddywedyd, flwyddyn o hyn y person 444 00:22:57,050 --> 00:22:58,280 Bydd hyn yn hen. 445 00:22:58,280 --> 00:23:01,080 >> Felly pam mae i hwn ac 1? 446 00:23:01,080 --> 00:23:04,064 Pam mae gennym ynghyd ag 1 yno? 447 00:23:04,064 --> 00:23:04,564 Yeah. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 Ydw. 450 00:23:07,930 --> 00:23:10,510 Felly cofiwch araeau yn sero mynegeio. 451 00:23:10,510 --> 00:23:14,840 Felly, os ydym yn argraffu hwn allan am rhywun i newydd ddarllen yr allbwn, 452 00:23:14,840 --> 00:23:19,380 Yna, yn ôl pob tebyg maent am weld rhywbeth fel person un, person rhif un, 453 00:23:19,380 --> 00:23:21,160 yn 20 mlwydd oed. 454 00:23:21,160 --> 00:23:23,570 Bydd rhif Person ddau fod yn 15 mlwydd oed. 455 00:23:23,570 --> 00:23:27,420 Yn hytrach Ni byddent yn gweld person rhif sero yn 15 mlwydd oed. 456 00:23:27,420 --> 00:23:36,460 >> Felly lunio'r hyn a dim ond gweld beth mae'n edrych like-- Creu ychydig o le. 457 00:23:36,460 --> 00:23:43,560 Gwnewch yn llunio oed. 458 00:23:43,560 --> 00:23:45,080 Rhedeg oedran. 459 00:23:45,080 --> 00:23:46,580 Rydym yn gweld nifer y bobl yn yr ystafell. 460 00:23:46,580 --> 00:23:48,850 Felly, byddaf yn dweud bod tri o bobl yn yr ystafell. 461 00:23:48,850 --> 00:23:54,000 Oedran y person rhif un, gadewch i ni ddweud 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 Ac yn awr byddaf yn dweud bob blwyddyn o yn awr y byddant yn 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 Gadewch i ni weld bod hyn yn gweithio gyda mae n sydd ddim yn hafal i 3. 464 00:24:02,900 --> 00:24:07,940 Felly os wyf yn dweud nifer o bobl yw 5, un, dau, tri, dau, un, y flwyddyn o hyn 465 00:24:07,940 --> 00:24:11,170 byddant yn ddau, tri, pedair, tair, dwy oed. 466 00:24:11,170 --> 00:24:16,500 Felly gallwn yn union fel hawdd n wedi bod yn 10,000. 467 00:24:16,500 --> 00:24:21,270 Nawr Byddaf yn eistedd yma am gryn ychydig sy'n mynd i oedran, ond mae hyn yn gweithio. 468 00:24:21,270 --> 00:24:26,000 >> Felly nawr mewn cof yn rhywle yr ydym cael amrywiaeth o faint 10,000, 469 00:24:26,000 --> 00:24:28,830 felly yn y pen draw 40,000 bytes, oherwydd bod 470 00:24:28,830 --> 00:24:31,222 pedwar bytes ar gyfer pob un o gyfanrifau hynny. 471 00:24:31,222 --> 00:24:33,180 Felly mae 'na amrywiaeth o maint 10,000 lle bo modd 472 00:24:33,180 --> 00:24:36,201 storio oed rhai 10,000 o bobl. 473 00:24:36,201 --> 00:24:36,700 Iawn. 474 00:24:36,700 --> 00:24:40,070 Cwestiynau am unrhyw ran o hyn? 475 00:24:40,070 --> 00:24:41,892 Yeah. 476 00:24:41,892 --> 00:24:43,350 Beth os ydych yn rhoi rhif negyddol? 477 00:24:43,350 --> 00:24:44,870 Gadewch i ni weld beth sy'n digwydd. 478 00:24:44,870 --> 00:24:49,320 Felly, yn y rhif achos-- penodol o bobl yn yr ystafell, un negyddol. 479 00:24:49,320 --> 00:24:52,580 Mae'n gwrthod hynny, oherwydd hyd yma rydym yn digwydd 480 00:24:52,580 --> 00:24:57,180 i gael ei drin y ffaith, os n yn llai nag un rydym ni'n mynd i ofyn eto. 481 00:24:57,180 --> 00:25:01,780 Os ydych yn ceisio ddatgan amrywiaeth o maint negyddol, 482 00:25:01,780 --> 00:25:03,950 yn gyffredinol nid yw'n gweithio. 483 00:25:03,950 --> 00:25:05,570 >> Felly gadewch i ni geisio. 484 00:25:05,570 --> 00:25:08,000 Gadewch i ni anwybyddu beth bynnag gwerth y maent mewnbwn ar gyfer n 485 00:25:08,000 --> 00:25:10,571 a dim ond dweud oedrannau int un negyddol. 486 00:25:10,571 --> 00:25:12,410 Gadewch i ni weld os yw'n hyd yn oed yn llunio. 487 00:25:12,410 --> 00:25:14,100 Nid wyf yn siŵr. 488 00:25:14,100 --> 00:25:14,920 Na 489 00:25:14,920 --> 00:25:18,280 Felly oesoedd ei ddatgan fel amrywiaeth gyda maint negyddol. 490 00:25:18,280 --> 00:25:22,540 Felly ymlaen llaw mae'n cydnabod amrywiaeth all beidio fod o faint negyddol ac yn gwrthod ei. 491 00:25:22,540 --> 00:25:26,840 Yn awr, pe na baem yn ymdrin y dolen do-tra yn gywir, 492 00:25:26,840 --> 00:25:28,810 os na fyddwn yn gwirio os n yn llai na 1-- 493 00:25:28,810 --> 00:25:32,690 gadewch i ni ddweud ein bod yn unig Nid oedd gan hyn o gwbl 494 00:25:32,690 --> 00:25:35,940 ac yn lle hynny rydym yn unig chrafangia yn gyfanrif. 495 00:25:35,940 --> 00:25:40,710 Ni waeth beth y cyfanrif yw, rydym yn datgan amrywiaeth o'r maint hwnnw. 496 00:25:40,710 --> 00:25:44,250 >> Felly ni all y compiler o bosibl yn cwyno yn awr. 497 00:25:44,250 --> 00:25:48,780 Os byddaf yn llunio this-- felly ni all gwyno, 498 00:25:48,780 --> 00:25:51,480 oherwydd na ellir ei gwybod fy mod mynd i fynd i mewn i rhif negatif, 499 00:25:51,480 --> 00:25:52,550 a allai fod yn annilys. 500 00:25:52,550 --> 00:25:54,633 Ar gyfer pob mae'n gwybod, yr wyf yn gallai fynd i mewn i rif positif, 501 00:25:54,633 --> 00:25:56,000 sy'n berffaith ddilys. 502 00:25:56,000 --> 00:26:01,090 Felly, yr wyf yn dychmygu os wyf yn mynd i mewn negyddol 1 pobl yn yr ystafell, segmentu fai. 503 00:26:01,090 --> 00:26:06,040 >> Felly, OK. 504 00:26:06,040 --> 00:26:13,160 Felly, gadewch hwn yn ychwanegu yn ôl yn unig gadw yr hyn y mae'n yn wreiddiol oedd. 505 00:26:13,160 --> 00:26:15,640 Felly gwnewch yn oed. 506 00:26:15,640 --> 00:26:18,120 Nawr, os wyf eisiau i roi cynnig ar negyddol age-- felly gadewch i ni 507 00:26:18,120 --> 00:26:19,710 yn dweud bod pump o bobl yn yr ystafell. 508 00:26:19,710 --> 00:26:23,180 Oedran y person rhif un yn negyddol 4, person dri 509 00:26:23,180 --> 00:26:26,500 yn sero, person three-- OK. 510 00:26:26,500 --> 00:26:29,850 Felly dyma, blwyddyn o hyn, rhif person Bydd un yn negyddol 3 oed. 511 00:26:29,850 --> 00:26:32,830 Felly, nid yn ôl pob tebyg yn gwneud synnwyr. 512 00:26:32,830 --> 00:26:37,220 Ond dim ond oherwydd bod yn edrych yn y cod cyfan yr ydym yn ei wneud 513 00:26:37,220 --> 00:26:40,260 yn gofyn GetInt. 514 00:26:40,260 --> 00:26:44,110 >> Yn awr, pe baem wedi cael y Swyddogaeth GetPositiveInt 515 00:26:44,110 --> 00:26:49,690 neu yr ydym wedi gwneud hyn yn syml fath o un dolen tra i lawr yno, 516 00:26:49,690 --> 00:26:52,340 yna byddai hyn yn gweithio'n berffaith iawn. 517 00:26:52,340 --> 00:26:54,200 Ond yn yr arbennig achos, rydym nid yn unig yn ei wneud 518 00:26:54,200 --> 00:26:57,772 digwydd bod yn ymdrin â gwerthoedd negatif. 519 00:26:57,772 --> 00:26:59,147 Unrhyw gwestiynau eraill am araeau? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 IAWN. 522 00:27:03,250 --> 00:27:09,380 >> Felly, rydym yn awr wedi gweld arrays. 523 00:27:09,380 --> 00:27:12,500 Ac rydym yn mynd i angen i ddefnyddio hon ar gyfer dadleuon gorchymyn-lein. 524 00:27:12,500 --> 00:27:14,680 Felly, yn broblem a osodwyd two-- Yr wyf yn gwybod llawer ohonoch 525 00:27:14,680 --> 00:27:18,040 Efallai dal i fod yn gweithio ar y set problem un, ond problem yn gosod dau yn dod i fyny. 526 00:27:18,040 --> 00:27:22,260 Mewn broblem yn gosod dau, rydych chi'n mynd i Mae angen delio â llinynnau, araeau, 527 00:27:22,260 --> 00:27:23,950 a dadleuon gorchymyn-lein. 528 00:27:23,950 --> 00:27:26,270 >> Felly beth yw dadleuon llinell orchymyn? 529 00:27:26,270 --> 00:27:29,570 Yn awr, gallwch weld i lawr yma ychydig iawn o ymlid am yr union beth sydd 530 00:27:29,570 --> 00:27:30,950 mynd i fod yn digwydd. 531 00:27:30,950 --> 00:27:32,950 Rydym yn gweld prif argc int, inc, cromfachau argv llinyn. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 Felly, yn gyntaf gadewch i ni geisio dehongli yr hyn sy'n ceisio ei ddweud. 534 00:27:38,130 --> 00:27:40,800 Yn awr, OK. 535 00:27:40,800 --> 00:27:44,637 >> Felly, ar y llinell orchymyn dylech fod dod i arfer i rai o'r gorchmynion hyn 536 00:27:44,637 --> 00:27:48,580 erbyn hyn, ac mae'n debyg y byddwch wedi rhedeg cd yn y derfynell o'r blaen. 537 00:27:48,580 --> 00:27:52,100 Felly, os ydym yn dweud pset1 cd, eich bod yn gwybod y dylai fod 538 00:27:52,100 --> 00:27:55,050 yn newid i mewn i'r cyfeiriadur pset1. 539 00:27:55,050 --> 00:27:59,120 >> Nawr yn sylwi nad ydych erioed i wedi ysgrifennu rhaglen fel hyn o'r blaen. 540 00:27:59,120 --> 00:28:03,120 Mae pob rhaglen yr ydych wedi ysgrifennu, byddech yn rhedeg, dyweder, dot slaes Mario, 541 00:28:03,120 --> 00:28:06,779 dot slaes barus, ac yna mae'n efallai y byddwch yn brydlon am fewnbwn. 542 00:28:06,779 --> 00:28:08,570 Nawr, dyna yw'r hyn cyfeiriadur newid yn ei wneud. 543 00:28:08,570 --> 00:28:12,770 Pan fyddwch yn rhedeg cd, nid yw'n wedyn yn dweud, pa cyfeiriadur ydych chi eisiau ei cd i mewn? 544 00:28:12,770 --> 00:28:17,200 Yn lle hynny, 'ch jyst yn dweud, pset1 cd, ac 'i jyst yn mynd i mewn i'r cyfeiriadur pset1. 545 00:28:17,200 --> 00:28:20,430 >> Felly, yn yr un modd mae gennym enghreifftiau eraill. 546 00:28:20,430 --> 00:28:21,540 gwneud helo. 547 00:28:21,540 --> 00:28:25,760 Pan fyddwch yn rhedeg ei gwneud, nid yw'n wedyn yn dweud, pa raglen yr hoffech ei wneud? 548 00:28:25,760 --> 00:28:29,620 Rydych yn unig yn dweud, yn y llinell gorchymyn yn gwneud helo. 549 00:28:29,620 --> 00:28:31,060 >> Symud yn enghraifft arall. 550 00:28:31,060 --> 00:28:34,840 Mae hyn yn un rydym yn symud y mario.c ffeil i fyny un cyfeiriadur. 551 00:28:34,840 --> 00:28:38,060 Felly nawr rydym yn gwybod â'r enghraifft hon rydym yn wirioneddol pasio dau dadleuon. 552 00:28:38,060 --> 00:28:42,090 Mae mario.c wrth i'r ddadl gyntaf, a dot dot yw'r ail ddadl. 553 00:28:42,090 --> 00:28:46,140 Ac yna pan fyddwch yn rhedeg wneud, byddwch yn gweld bod gorchymyn hir iawn line-- 554 00:28:46,140 --> 00:28:50,580 y gorchymyn 'n sylweddol hir argraffwyd yn y llinell orchymyn. 555 00:28:50,580 --> 00:28:53,590 Er mwyn i hir command-- hwn yn unig yw rhan fer ohono, 556 00:28:53,590 --> 00:28:56,090 ond erbyn hyn mae gennym dri dadleuon gorchymyn-lein. 557 00:28:56,090 --> 00:28:59,750 Dot llinell doriad sero, helo, a hello.c. 558 00:28:59,750 --> 00:29:03,497 >> Felly mae'r rhain yn gorchymyn-lein dadleuon, dadleuon 559 00:29:03,497 --> 00:29:05,580 eich bod yn pasio yn y llinell orchymyn fel ei fod yn 560 00:29:05,580 --> 00:29:08,680 Nid oes rhaid i gael eu hysgogi pan fyddwch yn rhedeg y rhaglen. 561 00:29:08,680 --> 00:29:13,090 Byddai'n rhwystredig os pryd i chi redeg chlang dywedodd, "OK, 562 00:29:13,090 --> 00:29:15,630 a oedd program-- sy'n file ydych chi'n casglu? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 Beth byddech baneri yn hoffi i fynd i mewn? dash o. 565 00:29:19,440 --> 00:29:21,190 Beth hoffech chi y ffeil i gael ei alw? 566 00:29:21,190 --> 00:29:21,690 helo. 567 00:29:21,690 --> 00:29:25,290 Na, 'ch jyst yn rhedeg chlang dash o helo hello.c. 568 00:29:25,290 --> 00:29:28,820 >> Felly edrych yn ôl ar hyn. 569 00:29:28,820 --> 00:29:32,920 Nawr argc argc-- yw'r cyfrif ddadl. 570 00:29:32,920 --> 00:29:36,620 Mae'n y nifer o gorchymyn-lein dadleuon gofrestrwyd ar y llinell orchymyn. 571 00:29:36,620 --> 00:29:39,720 Wel, argv-- dechnegol yr v yn sefyll am fector, 572 00:29:39,720 --> 00:29:41,460 sydd yn y bôn yn golygu amrywiaeth. 573 00:29:41,460 --> 00:29:42,680 Ond gallwch anwybyddu hynny. 574 00:29:42,680 --> 00:29:47,540 Argv-- gennym argv llinyn, felly cromfachau argv llinyn. 575 00:29:47,540 --> 00:29:50,150 Felly mae hyn yn fath arall o cromfachau nad ydych wedi ei weld o'r blaen. 576 00:29:50,150 --> 00:29:52,300 Braced Felly rydym wedi gweld nodiant pan fyddwn wedi dweud, 577 00:29:52,300 --> 00:29:53,970 fel, llinyn s hafal Zamyla. 578 00:29:53,970 --> 00:29:56,910 s braced 0 mynedfeydd y Z. cymeriad 579 00:29:56,910 --> 00:30:00,720 >> Rydym hefyd wedi gweld cromfachau pan dywedasom oesoedd int braced 5. 580 00:30:00,720 --> 00:30:03,160 Mae hynny'n datgan amrywiaeth o faint 5. 581 00:30:03,160 --> 00:30:06,280 Felly dyma fersiwn o'r cromfachau nad ydym wedi ei weld o'r blaen. 582 00:30:06,280 --> 00:30:09,630 Felly y math hwn o argv llinyn sy'n Byddai fod yn gwbl gyfarwydd 583 00:30:09,630 --> 00:30:12,050 y byddai'n jyst yn llinyn. 584 00:30:12,050 --> 00:30:14,520 Nawr bod y cromfachau yn dangos bod hyn yn arae. 585 00:30:14,520 --> 00:30:19,920 Felly cromfachau argv llinyn modd hynny argv yn amrywiaeth o dannau. 586 00:30:19,920 --> 00:30:22,540 Nawr yn dechnegol llinyn yn amrywiaeth o gymeriadau. 587 00:30:22,540 --> 00:30:26,400 Felly mae hyn yn awr yn arae o amrywiaeth o gymeriadau. 588 00:30:26,400 --> 00:30:31,490 Ond mae'n llawer haws i feddwl am mae hyn fel dim ond amrywiaeth o dannau. 589 00:30:31,490 --> 00:30:34,900 >> Felly pam y gallai'r cromfachau fod yn wag? 590 00:30:34,900 --> 00:30:38,170 Fel, ni all pam yr ydym yn dweud, braced 5, braced n? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 Yeah. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 Yeah. 595 00:30:44,230 --> 00:30:46,396 Nid ydym yn gwybod faint o mewnbynnau mae yn mynd i fod. 596 00:30:46,396 --> 00:30:53,560 Felly, os ydym yn edrych ar yr enghraifft chlang, rydym yn dweud dash chlang o helo hello.c. 597 00:30:53,560 --> 00:30:56,710 Yn yr achos penodol hwn, mae yn digwydd i fod yn dri dadleuon gorchymyn-lein. 598 00:30:56,710 --> 00:31:00,522 Ac felly y brackets-- byddwn yn gweld mewn ail ni fyddai'n tri. 599 00:31:00,522 --> 00:31:01,730 Mae'n Byddai dechnegol yn bedwar. 600 00:31:01,730 --> 00:31:04,030 Ond mae'r cromfachau, byddem dyweder, mae tri. 601 00:31:04,030 --> 00:31:08,220 Ond yn awr os ydym yn edrych ar symud mario.c dot dot, mae'r cromfachau 602 00:31:08,220 --> 00:31:09,760 byddem eisiau rhoi dau ynddynt. 603 00:31:09,760 --> 00:31:12,884 >> Ac mae yna lawer o orchmynion sy'n fod â nifer amrywiol o llinell orchymyn 604 00:31:12,884 --> 00:31:13,620 dadleuon. 605 00:31:13,620 --> 00:31:17,430 Felly, pa fersiwn hwn o'r nodiant braced yn dangos 606 00:31:17,430 --> 00:31:20,820 yw bod argv yn amrywiaeth o dannau. 607 00:31:20,820 --> 00:31:24,360 Ond nid ydym yn gwybod faint o llinynnau yn y rhesi. 608 00:31:24,360 --> 00:31:27,090 A sut rydym wedyn yn gwybod sut mae llawer o linynnau sydd yn y casgliad? 609 00:31:27,090 --> 00:31:28,870 Dyna'r argc holl bwynt. 610 00:31:28,870 --> 00:31:32,300 argc yn dweud wrthym pa mor hir argv yn. 611 00:31:32,300 --> 00:31:36,500 >> Felly, y peth olaf i gadw mewn cof yw y, yn dechnegol, 612 00:31:36,500 --> 00:31:40,820 y gorchymyn ei hun yn cyfrif fel un o'r dadleuon gorchymyn-lein. 613 00:31:40,820 --> 00:31:45,330 Felly pset1 cd, mae dau dadleuon gorchymyn-lein. 614 00:31:45,330 --> 00:31:50,260 Mae'r rhaglen yn ei hun, cd, ac yna yr union ddadl ran ohono, pset1. 615 00:31:50,260 --> 00:31:54,490 Unrhyw raglen yr ydych wedi ysgrifennu hyd yn hyn wedi cael un gorchymyn-lein argument-- dot 616 00:31:54,490 --> 00:31:55,320 slaes Mario. 617 00:31:55,320 --> 00:31:57,350 Dyna'r unig ddadl gorchymyn-lein. 618 00:31:57,350 --> 00:32:00,900 >> Felly nawr yn edrych ar chlang dash o helo hello.c. 619 00:32:00,900 --> 00:32:01,905 Felly beth yw argc? 620 00:32:01,905 --> 00:32:05,260 621 00:32:05,260 --> 00:32:06,080 4. 622 00:32:06,080 --> 00:32:08,140 Felly argc yw 4. 623 00:32:08,140 --> 00:32:12,140 Chlang, braced felly argv 0 yn chlang. 624 00:32:12,140 --> 00:32:15,630 argv Braced 1 yw'r dash 0. 625 00:32:15,630 --> 00:32:21,870 argv Braced 2 yw'r helo, ac argv Braced 3 hello.c. 626 00:32:21,870 --> 00:32:26,813 Iawn, felly gwestiynau ar hyn, ac yna rydym chi helpu edrych ar rai enghreifftiau rhaglennol. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> IAWN. 629 00:32:30,480 --> 00:32:36,260 Felly, byddwn yn cymryd golwg ar hello3.c. 630 00:32:36,260 --> 00:32:41,890 Felly dylai hyn fod yn gyfarwydd o un o'r enghreifftiau cyntaf c 631 00:32:41,890 --> 00:32:45,800 oedd gennym lle y byddem dim ond dweud, helo byd, ond yn awr mae hyn yn fwy cyffredinol. 632 00:32:45,800 --> 00:32:52,300 Felly dyma ni yn ei ddweud helo % S slaes n argv braced 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- felly hyd nes y pwynt hwn, mae hyn yn beth fy ffeil templed wedi edrych fel. 634 00:32:57,440 --> 00:33:01,800 Roedd gen int prif (ddi-rym), ac yna fyddwn i gwneud rhywbeth yn y brif swyddogaeth. 635 00:33:01,800 --> 00:33:05,100 Nawr yn lle hynny, ar ôl i ni ddechrau delio gyda dadleuon gorchymyn-lein, 636 00:33:05,100 --> 00:33:07,890 mae angen i ni ddatgan yn gwahanol fath o brif. 637 00:33:07,890 --> 00:33:11,930 >> Felly edrych ar hello3 eto, y prif yn mynd 638 00:33:11,930 --> 00:33:15,990 i gymryd dwy ddadl now-- argc int, mae'r nifer o ddadleuon gorchymyn-lein, 639 00:33:15,990 --> 00:33:20,970 a llinyn argv cromfachau, y gwir llinynnau gofrestrwyd ar y llinell orchymyn. 640 00:33:20,970 --> 00:33:26,560 Felly dw i'n mynd i newid hynny templed i adlewyrchu'r ffaith honno. 641 00:33:26,560 --> 00:33:29,060 Nawr pryd bynnag y byddwch yn ysgrifennu rhaglen, os nad ydych yn ei wneud 642 00:33:29,060 --> 00:33:33,720 angen cymryd unrhyw gorchymyn-lein dadleuon, yna dim ond defnyddiwch int prif (ddi-rym). 643 00:33:33,720 --> 00:33:37,070 Ond yn awr pan fyddwch yn ysgrifennu rhaglenni ddadl gorchymyn-lein, a oedd yn 644 00:33:37,070 --> 00:33:40,350 rydych yn mynd i fod yn ei wneud am broblem gosod two-- felly nawr eich bod yn rhedeg 645 00:33:40,350 --> 00:33:42,630 rhaglenni y mae angen eu cymryd dadleuon gorchymyn-lein, 646 00:33:42,630 --> 00:33:45,250 angen i chi gael brif y ffurflen hon. 647 00:33:45,250 --> 00:33:51,290 >> Felly Yma-- dyma'r defnydd mawr y ddadl gorchymyn-lein. 648 00:33:51,290 --> 00:33:54,100 Felly argraffu argv 1. 649 00:33:54,100 --> 00:33:59,180 Iawn felly gadewch i ni lunio a rhedeg y rhaglen hon. 650 00:33:59,180 --> 00:34:02,440 Gwneud hello3. 651 00:34:02,440 --> 00:34:03,570 Llunio. 652 00:34:03,570 --> 00:34:06,870 Dot slaes hello3. 653 00:34:06,870 --> 00:34:08,920 A gadewch i ni yn dweud, "Mae Rob." 654 00:34:08,920 --> 00:34:10,760 Helo Rob. 655 00:34:10,760 --> 00:34:14,940 Os wyf yn dweud, "helo Maria," helo Maria. 656 00:34:14,940 --> 00:34:15,719 Helo Maria. 657 00:34:15,719 --> 00:34:18,639 Hannah yn dal i ddweud, "helo Maria, "oherwydd nad wyf yn 658 00:34:18,639 --> 00:34:21,340 gwneud unrhyw beth gyda'n argv 2. 659 00:34:21,340 --> 00:34:22,590 Argv 2 yn awr yn cael ei "Hannah." 660 00:34:22,590 --> 00:34:25,030 Byddai Argc fod yn 3. 661 00:34:25,030 --> 00:34:27,735 Beth os byddaf yn gwneud hyn? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 Felly helo null. 664 00:34:34,679 --> 00:34:38,760 >> Soniodd yn gryno am y ffaith hynny, yn dechnegol, GetString 665 00:34:38,760 --> 00:34:42,429 Gallai dychwelyd null, ond byddwn yn cael llawer mwy i mewn i'r hyn null mewn gwirionedd. 666 00:34:42,429 --> 00:34:47,449 Ond mynd ag ef fel mater o ffaith nad oes unrhyw yn ddrwg ar y cyfan. 667 00:34:47,449 --> 00:34:50,179 Rydym yn gwneud rhywbeth o'i le os mae'n argraffu "helo null." 668 00:34:50,179 --> 00:34:52,179 A'r rheswm y gwnaethom rhywbeth o'i le yw-- dda, 669 00:34:52,179 --> 00:34:56,179 pan fyddaf yn rhedeg hello3 slaes dot, argc oedd 1. 670 00:34:56,179 --> 00:34:59,680 Felly mae hynny'n golygu hyd y argv oedd 1. 671 00:34:59,680 --> 00:35:05,110 Os amrywiaeth o hyd 1, yr unig mynegai dilys yn sero. 672 00:35:05,110 --> 00:35:08,550 Ac felly dyma argv 1 y tu allan yr ystod o amrywiaeth hwn. 673 00:35:08,550 --> 00:35:13,410 Roedd yn debyg i o'r blaen pan geisiais i storio 6 y tu allan i ddiwedd y rhesi. 674 00:35:13,410 --> 00:35:18,100 Felly, Im 'yn ceisio i gael mynediad at rywbeth y tu allan i'r cyfrif argv, 675 00:35:18,100 --> 00:35:21,340 ac rydym yn ei gael null. 676 00:35:21,340 --> 00:35:24,360 >> Felly fersiwn gwell o hwn, gwelliant, 677 00:35:24,360 --> 00:35:27,010 yn gwirio argc benodol. 678 00:35:27,010 --> 00:35:33,580 Felly, os argc hafal 2, sy'n golygu ein bod yn rhedeg rhywbeth fel hello3 dot slaes Rob. 679 00:35:33,580 --> 00:35:36,840 A bydd yn argraffu "helo Rob." 680 00:35:36,840 --> 00:35:39,850 Os argc nid yw'n gyfartal 2, yna 'i' jyst yn mynd 681 00:35:39,850 --> 00:35:42,560 i anwybyddu beth bynnag yr ydych yn rhoi yn y ddadl gorchymyn-lein 682 00:35:42,560 --> 00:35:43,960 fel dadleuon gorchymyn-lein. 683 00:35:43,960 --> 00:35:47,168 Neu os na wnaethoch chi roi unrhyw o gwbl, mae'n jyst yn mynd i anwybyddu hynny a dim ond dweud, 684 00:35:47,168 --> 00:35:47,960 "Helo chi." 685 00:35:47,960 --> 00:35:51,490 >> Felly lunio'r hyn. 686 00:35:51,490 --> 00:35:54,500 Gwneud hello4. 687 00:35:54,500 --> 00:35:56,790 A rhedeg hello4. 688 00:35:56,790 --> 00:36:00,010 Rhedeg fel hyn, yr hyn y dylid ei argraffu? 689 00:36:00,010 --> 00:36:01,330 "Helo i chi." 690 00:36:01,330 --> 00:36:02,810 Helo i chi. 691 00:36:02,810 --> 00:36:05,870 Beth am hello4 Rob? 692 00:36:05,870 --> 00:36:06,950 "Helo Rob." 693 00:36:06,950 --> 00:36:10,580 Ac yn olaf, helo Rob Maria yn unig yw "helo You" eto, 694 00:36:10,580 --> 00:36:13,677 oherwydd nad oeddech yn wir yn mynd i mewn rhywbeth y mae'n disgwyl. 695 00:36:13,677 --> 00:36:15,510 Rydych yn mynd i mewn mwy o enwau nag y gallai drin, 696 00:36:15,510 --> 00:36:19,500 felly mae'n jyst heb eu talu i y helo i chi ymddygiad. 697 00:36:19,500 --> 00:36:23,040 Felly gwestiynau am hyn? 698 00:36:23,040 --> 00:36:26,290 Neu ddadleuon gorchymyn-lein? 699 00:36:26,290 --> 00:36:28,690 >> Iawn, felly yn edrych ar mwy o enghreifftiau cwpl o ddefnyddio 700 00:36:28,690 --> 00:36:34,230 gorchymyn-lein arguments-- gyntaf rydym wedi argv dash 1 dot c. 701 00:36:34,230 --> 00:36:38,510 Felly mae'r sylwadau yn rhoi i ffwrdd yr hyn Dylai rhaglen hon fod yn ei wneud. 702 00:36:38,510 --> 00:36:42,460 Ond yn sylwi now-- hon ar gyfer dolen, mae hyn yn cyfateb i'r union batrwm 703 00:36:42,460 --> 00:36:43,390 Oeddwn yn ei ddweud o'r blaen. 704 00:36:43,390 --> 00:36:46,240 Rydym yn unig yn digwydd bod gan ddefnyddio argc yn hytrach na n. 705 00:36:46,240 --> 00:36:48,880 Nawr argc sydd mewn gwirionedd yn y n. 706 00:36:48,880 --> 00:36:51,260 Mae'n hyd y rhesi argv. 707 00:36:51,260 --> 00:36:59,600 Felly yn ailadrodd dros y argv arae printf-ing pob gwerth argv. 708 00:36:59,600 --> 00:37:04,730 >> Felly os wyf yn gwneud hyn. 709 00:37:04,730 --> 00:37:08,232 Gwneud argv 1. 710 00:37:08,232 --> 00:37:09,940 Mae'n llunio. 711 00:37:09,940 --> 00:37:11,620 Dot slaes argv 1. 712 00:37:11,620 --> 00:37:15,530 Dim ond yn rhedeg hyn, mae'n printiau dot slaes argv 1 713 00:37:15,530 --> 00:37:18,500 ers hynny oedd yr unig gorchymyn-lein argument-- enw'r rhaglen. 714 00:37:18,500 --> 00:37:22,080 Bydd bob amser leiaf-- Ni all argc fod yn llai nag un, 715 00:37:22,080 --> 00:37:25,910 gan fod bydd bob amser o leiaf fod yr enw rhaglen i redeg. 716 00:37:25,910 --> 00:37:32,040 Felly argv 1 Bydd Rob yn argraffu argv 1 ac yna ar y llinell newydd "Rob." 717 00:37:32,040 --> 00:37:36,350 >> Felly, yn y fersiwn cyntaf y ddolen hon, fi yw 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 yw'r enw rhaglen. 719 00:37:39,090 --> 00:37:40,010 Dot slaes argv 1. 720 00:37:40,010 --> 00:37:43,770 Ac yna argv 1 yw fy cyntaf dadl gorchymyn-lein, sef Rob. 721 00:37:43,770 --> 00:37:45,920 Ar y pwynt hwn, rydym yn gyfartal i argc. 722 00:37:45,920 --> 00:37:48,210 Rydym dorri allan o'r ddolen ac rydym yn ei wneud. 723 00:37:48,210 --> 00:37:53,940 Felly, bydd hyn yn gweithio i mympwyol nifer o ddadleuon gorchymyn-lein. 724 00:37:53,940 --> 00:37:58,550 Sylwi arno printiau argv 0, argv 1, argv 2, argv 3, argv 4. 725 00:37:58,550 --> 00:38:00,150 Ac nid oes argv 5. 726 00:38:00,150 --> 00:38:01,460 argc yn hafal i 5. 727 00:38:01,460 --> 00:38:06,960 Felly, ar argc-- yn i hafal 5, rydym dorri allan o'r cylch. 728 00:38:06,960 --> 00:38:07,950 IAWN. 729 00:38:07,950 --> 00:38:11,315 Felly gwestiynau ar hynny cyn i ni edrych ar esiampl fwy cymhleth? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> Felly argv 2. 732 00:38:16,860 --> 00:38:17,830 Iawn. 733 00:38:17,830 --> 00:38:20,610 Felly rydym yn dal i argraffu y dadleuon gorchymyn-lein. 734 00:38:20,610 --> 00:38:23,170 Ond yn sylwi erbyn hyn mae gennym yn nythu ar gyfer dolen. 735 00:38:23,170 --> 00:38:24,670 Felly beth mae hyn yn ei wneud? 736 00:38:24,670 --> 00:38:28,430 Felly mae'r ddolen gyntaf yn ei wneud yn union beth y gwnaeth o'r blaen. 737 00:38:28,430 --> 00:38:30,950 Rydym yn dal dolennu dros pob dadl gorchymyn-lein, 738 00:38:30,950 --> 00:38:34,260 ond erbyn hyn yr ail loop-- rydym wedi Hefyd, gweld rhywbeth fel hyn o'r blaen. 739 00:38:34,260 --> 00:38:38,600 Pan oedd yn ailadrodd drosodd Zamyla argraffu Z-A-M-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 Felly, mae hyn yn ail ddolen ar gyfer int j hafal 0, n hafal strlen o braced argv i. 741 00:38:44,816 --> 00:38:49,170 >> Felly gadewch i ni feddwl gyntaf am the-- gadewch i ni gerdded drwy'r. 742 00:38:49,170 --> 00:38:53,560 Gadewch i ni feddwl beth fyddai y cyfrifiadur ei wneud os wyf yn rhedeg y rhaglen hon fel dim ond dot 743 00:38:53,560 --> 00:38:56,030 slaes argv dash 2. 744 00:38:56,030 --> 00:39:03,590 Felly os wyf yn rhedeg y cod hwn, yna argc yn mynd i fod yn hafal i 1. 745 00:39:03,590 --> 00:39:07,050 A llinyn argv-- does dim ond mynd i fod yn un mynegai yn argv, 746 00:39:07,050 --> 00:39:12,370 ac mae hynny'n mynd i fod yn hafal i dot slaes argv 2-- yr enw rhaglen. 747 00:39:12,370 --> 00:39:19,170 >> Iawn, felly yn awr i yn dychwelyd 0, fi yn llai na 1, fi a mwy a mwy ar gyfer int j yn dychwelyd 0, 748 00:39:19,170 --> 00:39:23,880 n hafal strlen o braced argv 0, felly yn iteriad cyntaf y ddolen hon. argv 749 00:39:23,880 --> 00:39:27,250 braced 0 yn dot slaes argv 2. 750 00:39:27,250 --> 00:39:29,320 Felly beth yw hyd y llinyn? 751 00:39:29,320 --> 00:39:32,480 Wel, dot slaes A-R-G-V dash 2. 752 00:39:32,480 --> 00:39:35,020 Felly, strlen o hynny fydd 8. 753 00:39:35,020 --> 00:39:37,500 Felly j yn dychwelyd 0, n hafal 8. 754 00:39:37,500 --> 00:39:39,530 Cyn belled ag j yn llai na 8, ++ j. 755 00:39:39,530 --> 00:39:44,080 A chyda hynny rydym yn mynd i fod yn argraffu cymeriad unigol, sy'n 756 00:39:44,080 --> 00:39:47,350 yn argv braced i braced j. 757 00:39:47,350 --> 00:39:49,826 >> Felly, yr unig ff yn sero. 758 00:39:49,826 --> 00:39:51,700 Rydym yn dal dim ond un dadl gorchymyn-lein. 759 00:39:51,700 --> 00:39:53,890 Yn y iteriad cyntaf o'r ddolen ar gyfer, rydym yn 760 00:39:53,890 --> 00:39:56,950 mynd i fod yn argraffu argv braced 0 braced 0. 761 00:39:56,950 --> 00:39:58,325 Ac yna j yn mynd i gynyddiad. 762 00:39:58,325 --> 00:40:01,650 Ac rydym yn mynd i argraffu argv braced 0 braced 1. 763 00:40:01,650 --> 00:40:04,150 Ac yna argv braced 0 braced 2. 764 00:40:04,150 --> 00:40:09,030 >> Felly mae hyn yn ein gêm gyntaf o araeau aml-ddimensiwn. 765 00:40:09,030 --> 00:40:12,770 Cofiwch gynharach y dywedais hynny argv yn dechnegol 766 00:40:12,770 --> 00:40:15,950 amrywiaeth o araeau o gymeriadau. 767 00:40:15,950 --> 00:40:24,360 Felly dyma os wyf yn dweud rhywbeth fel llinyn s hafal braced argv i, 768 00:40:24,360 --> 00:40:29,590 ac yna y dywedais, s braced j, mae hyn yn fyddai accomplishing yr un peth. 769 00:40:29,590 --> 00:40:31,960 Yn awr, yr ydych wedi gweld s braced j blaen. 770 00:40:31,960 --> 00:40:36,680 Dim ond Dyna gael mynediad i'r j-fed cymeriad o linyn hwn. 771 00:40:36,680 --> 00:40:48,010 Felly, gyda hyn, rydym yn cael y cymeriad j-fed o'r i-ed argv. 772 00:40:48,010 --> 00:40:51,450 >> Felly, beth ddylai hyn yn y pen draw allbwn? 773 00:40:51,450 --> 00:40:53,210 Gwneud argv 2. 774 00:40:53,210 --> 00:40:54,730 Mae'n llunio. 775 00:40:54,730 --> 00:40:56,340 Dot slaes argv 2. 776 00:40:56,340 --> 00:41:03,790 "Rob Maria Hannah," ac yn rhoi rhywfaint o le i ni. 777 00:41:03,790 --> 00:41:07,050 Felly, rydym yn gweld bod hyn yn outputting dot ar ei linell a slaes eich hun 778 00:41:07,050 --> 00:41:08,920 ar ei linell ei hun ac mae ar ei linell ei hun. 779 00:41:08,920 --> 00:41:11,260 Mae'n argraffu pob un cymeriad unigol 780 00:41:11,260 --> 00:41:12,950 pob dadl gorchymyn-lein. 781 00:41:12,950 --> 00:41:15,960 Ac yna yn rhyngddyn nhw, oherwydd hyn llinell newydd 782 00:41:15,960 --> 00:41:19,380 rydym yn argraffu lawr yma, yn rhyngddynt bydd yn argraffu llinell newydd. 783 00:41:19,380 --> 00:41:24,540 >> Felly, mae hyn yn debyg i y llinell doriad argv cyn 1, 784 00:41:24,540 --> 00:41:26,459 a oedd hargraffu bob dadl gorchymyn-lein, 785 00:41:26,459 --> 00:41:28,500 ond erbyn hyn rydym yn argraffu y dadleuon gorchymyn-lein 786 00:41:28,500 --> 00:41:31,950 ac yna ailadrodd drwy bob cymeriad pob dadl gorchymyn-lein 787 00:41:31,950 --> 00:41:35,400 i gael yr allbwn hwn. 788 00:41:35,400 --> 00:41:36,870 IAWN? 789 00:41:36,870 --> 00:41:40,570 Felly gwestiynau am hyn? 790 00:41:40,570 --> 00:41:45,130 >> Un peth i'w nodi yw bod arguments-- gorchymyn-lein 791 00:41:45,130 --> 00:41:49,990 fel eu bod yn cael eu gwahanu gan fylchau fel byddech yn naturiol yn disgwyl iddynt fod. 792 00:41:49,990 --> 00:41:53,050 Felly gall llinyn gael lleoedd ynddo. 793 00:41:53,050 --> 00:41:57,380 Dyw hi ddim yn super bwysig, ond os byddaf am i'r trydydd ddadl gorchymyn-lein 794 00:41:57,380 --> 00:42:01,226 i gael lle ynddo, yna yr wyf yn Gallai ddweud rhywbeth fel hyn. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 IAWN? 797 00:42:05,550 --> 00:42:12,190 Felly, yn awr yn dal i fod yn unig wedi tri hon gorchymyn-lein yn dda arguments-- 4. 798 00:42:12,190 --> 00:42:17,620 Dot slaes argv llinell doriad 2, Rob, Maria, a Hannah Bloomberg. 799 00:42:17,620 --> 00:42:18,320 IAWN. 800 00:42:18,320 --> 00:42:19,310 Cwestiynau ar hyn? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> Does dim byd arbennig am y cymeriad gofod. 803 00:42:24,894 --> 00:42:27,810 'I jyst yn digwydd bod bod y gorchymyn-lein yn trin y cymeriad gofod 804 00:42:27,810 --> 00:42:29,226 fel sut yr ydych yn gwahanu pob dadl. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 Iawn. 807 00:42:33,000 --> 00:42:39,950 Felly, yna set Problem two-- ydych yn mynd i fod yn 808 00:42:39,950 --> 00:42:43,240 gan edrych ar cryptograffiaeth cudd-allweddol. 809 00:42:43,240 --> 00:42:47,700 Felly, yn debyg i'r hyn esiampl gwelsom o A Story y Nadolig, 810 00:42:47,700 --> 00:42:52,840 ydych yn mynd i fod yn gweithredu rhai algorithmau, o ystyried neges, 811 00:42:52,840 --> 00:42:55,560 ydych yn mynd i fod yn gallu i amgryptio y neges 812 00:42:55,560 --> 00:42:58,730 mai dim ond rhywun sydd â y gyfrinach allweddol, gyda'r cylch decoder, 813 00:42:58,730 --> 00:43:01,090 Dylai fod yn gallu dadgryptio. 814 00:43:01,090 --> 00:43:04,839 >> Felly dyna'r argraffiad safonol. 815 00:43:04,839 --> 00:43:07,130 Rydych yn mynd i fod yn gweithredu dau fersiwn gwahanol. 816 00:43:07,130 --> 00:43:09,620 Os ydych yn digwydd i gymryd golwg yn y haciwr edition-- awr, 817 00:43:09,620 --> 00:43:12,600 rydyn ni'n mynd i roi chi llinyn fel hyn, 818 00:43:12,600 --> 00:43:15,240 sy'n cynrychioli cyfrinair amgryptio. 819 00:43:15,240 --> 00:43:19,990 Felly eich nod yw i chyfrif i maes beth y cyfrinair decrypted yn. 820 00:43:19,990 --> 00:43:26,950 Yn awr mae hyn mewn gwirionedd sut y cyfrineiriau yn cael eu storio mewn llawer o gyfrifiaduron, 821 00:43:26,950 --> 00:43:31,290 ac 'i jyst yn storio'r hyn llinyn ar hap o gymeriadau. 822 00:43:31,290 --> 00:43:34,440 Mae'n rhaid i chi chyfrif i maes sut i gael o hyn llinyn ar hap o gymeriadau 823 00:43:34,440 --> 00:43:36,140 at yr hyn y cyfrinair gwreiddiol. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> Ac yn olaf, ar ôl hyn set problem, dylech 826 00:43:43,290 --> 00:43:46,100 yn gallu deall beth mae hyn yn ei olygu. 827 00:43:46,100 --> 00:43:51,650 Felly, byddwch yn dysgu sut i dadgryptio y math hwn o linyn ar hap. 828 00:43:51,650 --> 00:43:56,390 Yn yr un modd, os ydych yn cofio o wythnos 0, efallai y byddwch wedi gweld URL hwn. 829 00:43:56,390 --> 00:44:00,210 A dylech fod yn gallu dadgryptio hyn yn y pen draw. 830 00:44:00,210 --> 00:44:04,810 Efallai na fyddwch yn hapus pan fyddwch yn dadgryptio a chliciwch ar y ddolen. 831 00:44:04,810 --> 00:44:05,700 Iawn. 832 00:44:05,700 --> 00:44:06,591 Dyna ni am heddiw. 833 00:44:06,591 --> 00:44:12,095 Felly gweld chi wythnos nesaf! 834 00:44:12,095 --> 00:44:18,315 >> [CHWARAE CERDDORIAETH ELECTRONIG] 835 00:44:18,315 --> 00:47:15,619