1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON Hirschhorn: Croeso, bawb, i Wythnos 6. 3 00:00:09,840 --> 00:00:14,790 Rwy'n hapus i weld chi i gyd yn fyw ac yn iach ar ôl Cwis 0, gan fy mod yn gwybod bod 4 00:00:14,790 --> 00:00:15,810 oedd ychydig yn arw. 5 00:00:15,810 --> 00:00:18,370 Ond diolch byth, i chi i gyd gwnaeth yn eithriadol o dda. 6 00:00:18,370 --> 00:00:21,680 Ac felly mae hynny'n wych. 7 00:00:21,680 --> 00:00:25,840 Os ydych yn fy adran, yr wyf wedi rhoi y rhan fwyaf o ohonoch gefnogi eich cwisiau eisoes. 8 00:00:25,840 --> 00:00:28,050 >> Mae cwpl o chi, yr wyf i'n cwrdd ar ôl y dosbarth. 9 00:00:28,050 --> 00:00:32,360 Ac os ydych yn fyfyriwr estyniad a nad ydych wedi derbyn eich cwis yn ôl 10 00:00:32,360 --> 00:00:35,490 eto, mae eich TF yn ôl pob tebyg yn gweithio arno a bydd graddio iddo, a chael yn ôl 11 00:00:35,490 --> 00:00:36,490 i chi cyn bo hir. 12 00:00:36,490 --> 00:00:39,650 Felly, fy myfyrwyr estyniad sydd yn gwylio ar hyn o bryd - gobeithio yn byw - 13 00:00:39,650 --> 00:00:42,880 Byddaf yn cael eich cwisiau yn fuan hefyd. 14 00:00:42,880 --> 00:00:45,670 >> Mae ein hagenda ar gyfer heddiw yw fel a ganlyn. 15 00:00:45,670 --> 00:00:50,170 Yn gyntaf, rydym yn mynd i fynd dros rai adnoddau sydd CS50 yn eu darparu i chi. 16 00:00:50,170 --> 00:00:54,590 Rydym yn mynd i fynd dros Cwis 0 nesaf, a 'N annhymerus' yn ateb unrhyw gwestiynau unrhyw un 17 00:00:54,590 --> 00:00:57,360 Mae am broblemau penodol. 18 00:00:57,360 --> 00:01:02,050 Ac yna, byddwn yn mynd dros ffeil I / O a datrys set 5. 19 00:01:02,050 --> 00:01:07,360 Bydd y ddau destun olaf yn cymryd i fyny y rhan fwyaf o'r adran heddiw. 20 00:01:07,360 --> 00:01:11,680 >> Yr wyf yn rhoi rhestr hon i fyny bob wythnos fel atgoffa i chi i gyd, ond craidd 21 00:01:11,680 --> 00:01:14,650 adran hon, rydym dim ond 90 munud - rydym nad ydynt yn gallu cwmpasu popeth fy mod 22 00:01:14,650 --> 00:01:16,280 byddai modd i dalu i chi guys. 23 00:01:16,280 --> 00:01:21,170 Ond mae gennym tunnell o adnoddau ar gyfer i chi fanteisio ar wrth i chi ddod i adnabod 24 00:01:21,170 --> 00:01:24,000 y deunydd a gwaith drwy eich problem yn gosod. 25 00:01:24,000 --> 00:01:30,810 >> Nodyn i'ch atgoffa fod gennyf ar-lein testun blwch, a sefydlwyd i chi ei llenwi os ydych yn 26 00:01:30,810 --> 00:01:33,250 gennych unrhyw adborth i mi, yn gadarnhaol ac yn 27 00:01:33,250 --> 00:01:35,180 adeiladol, am adran. 28 00:01:35,180 --> 00:01:38,600 Bod URL wedi ei leoli i'r dde i lawr yma. 29 00:01:38,600 --> 00:01:43,250 Felly, os gwelwch yn dda, cymryd hyn o bryd os oes gennych unrhyw adborth, boed hynny yn ystod yr adran, 30 00:01:43,250 --> 00:01:48,030 neu ar ôl, neu ar ôl i chi wylio'r fideo ar-lein, i roi eich adborth mi. 31 00:01:48,030 --> 00:01:52,100 Fi 'n sylweddol yn gwerthfawrogi unrhyw a phob ohono. 32 00:01:52,100 --> 00:01:55,730 >> Felly, yr wyf wedi bod yn cael sgyrsiau bach gyda llawer o fy 33 00:01:55,730 --> 00:01:59,350 myfyrwyr trwy gydol yr wythnos - fel yr wyf llaw cwisiau cefn, yn siarad am y 34 00:01:59,350 --> 00:02:01,480 gwrs, gweld sut rydych yn ei wneud. 35 00:02:01,480 --> 00:02:05,120 Ac un thema wedi dod i fyny drosodd a throsodd yn siarad am - yn 36 00:02:05,120 --> 00:02:05,660 penodol - 37 00:02:05,660 --> 00:02:07,710 problem yn gosod. 38 00:02:07,710 --> 00:02:13,090 Ac yr wyf wedi crynhoi y thema honno ar y bwrdd ar hyn o bryd. 39 00:02:13,090 --> 00:02:16,630 >> Yn y bôn, mae gwahaniaeth rhwng troi yn rhywbeth sy'n 40 00:02:16,630 --> 00:02:19,590 wneud yn iawn a rhywbeth sy'n cael ei wneud yn dda. 41 00:02:19,590 --> 00:02:22,920 Rhan fwyaf o bobl wedi bod yn gwneud gwych o ran cywirdeb - 42 00:02:22,920 --> 00:02:25,460 5 neu 4 ar bob psets. 43 00:02:25,460 --> 00:02:27,930 Rhan fwyaf o bobl yn cael hynny bob amser. 44 00:02:27,930 --> 00:02:31,150 >> Fodd bynnag, dim ond oherwydd eich bod wedi gwneud rhywbeth ddim yn iawn yn golygu eich bod wedi 45 00:02:31,150 --> 00:02:34,450 gwneud rhywbeth mor cain, neu effeithlon, neu mor lân ag y byddwch yn 46 00:02:34,450 --> 00:02:35,270 gallai fod wedi gwneud hynny. 47 00:02:35,270 --> 00:02:36,790 A dyna beth mae'r cynllun - 48 00:02:36,790 --> 00:02:39,230 ac i raddau llai, arddull - 49 00:02:39,230 --> 00:02:40,450 echelinau ar gyfer. 50 00:02:40,450 --> 00:02:45,130 Felly, yr wyf yn gwthio chi i gyd, a TFS eraill yn cael eu gwthio i chi guys, nid yn unig i dro 51 00:02:45,130 --> 00:02:48,320 mewn pethau sy'n gywir, ond yn troi yn y pethau sy'n cael eu codio yn dda. 52 00:02:48,320 --> 00:02:53,060 >> Ddim yn gwneud diangen GYFER dolenni, Nid yw ail-gyfrifo newidynnau os 53 00:02:53,060 --> 00:02:53,800 Nid oes rhaid i chi. 54 00:02:53,800 --> 00:02:58,520 Er enghraifft, edrych yn ôl i broblem a osodwyd 4, wrth osod y brics ar y 55 00:02:58,520 --> 00:03:03,070 sgrîn, pob rhes - pob brics mewn rhes o ystyried yr un y-cydlynu - 56 00:03:03,070 --> 00:03:04,390 yr un uchder gydlynu. 57 00:03:04,390 --> 00:03:07,930 >> Fel na y-cydlynu oedd angen i yn cael ei gyfrifo y tu mewn i'r tu mewn 58 00:03:07,930 --> 00:03:11,070 nythu GYFER ddolen a ddefnyddiwyd gennych yn debygol i roi brics hynny ar y sgrin. 59 00:03:11,070 --> 00:03:14,030 Dim ond angen i gael eu cyfrifo bob tro y byddwch yn newid olynol, neu 60 00:03:14,030 --> 00:03:15,200 symud i lawr rhes. 61 00:03:15,200 --> 00:03:19,760 Felly, yn dweud os oes 10 brics mewn rhes, gall pob brics gael yr un 62 00:03:19,760 --> 00:03:22,260 y-cydlynu, a bod y-cydlynu gall dim ond yn cael ei gyfrifo 63 00:03:22,260 --> 00:03:23,550 unwaith ar gyfer pob un o'r rheini. 64 00:03:23,550 --> 00:03:27,810 >> Nid oes angen i gael eu cyfrifo 10 amser, ac nid yw bod yr angen cyfrifo 65 00:03:27,810 --> 00:03:30,220 ddigwydd yn y gwir swyddogaeth galwadau - 66 00:03:30,220 --> 00:03:33,020 y swyddogaeth alwad gracked newydd. 67 00:03:33,020 --> 00:03:37,820 Felly, os dyna oedd ychydig yn ddryslyd ar gyfer chi, fwy cyffredinol, pethau sy'n 68 00:03:37,820 --> 00:03:40,730 Nid oes angen i ddigwydd bob tro i chi fynd drwy'r dolen GYFER ni ddylai fod yn 69 00:03:40,730 --> 00:03:42,900 roi y tu mewn i'r ddolen GYFER, ac ni ddylai yn digwydd bob tro y byddwch yn mynd 70 00:03:42,900 --> 00:03:44,080 drwy'r ddolen I. 71 00:03:44,080 --> 00:03:49,270 >> Enghraifft, dylunio da arall a welsom yn Wythnos 3 am 15, gallai eich bod yn cadw 72 00:03:49,270 --> 00:03:50,500 golwg ar y sero. 73 00:03:50,500 --> 00:03:53,600 Felly, pan fyddwch yn ymgychwyn y bwrdd, byddwch yn arbed - mewn newidyn byd-eang, efallai - 74 00:03:53,600 --> 00:03:56,140 y x ac y-cyfesuryn y sero. 75 00:03:56,140 --> 00:03:57,520 Ac yna pryd bynnag y byddwch - 76 00:03:57,520 --> 00:04:00,310 yn eich swyddogaeth yn symud, pryd bynnag y byddwch yn gwneud symud yn llwyddiannus, byddwch yn diweddaru'r 77 00:04:00,310 --> 00:04:02,040 lleoliad y sero. 78 00:04:02,040 --> 00:04:06,240 >> Byddai hynny'n eich arbed rhag gorfod gwneud nythu GYFER dolenni i edrych drwy'r 79 00:04:06,240 --> 00:04:10,700 bwrdd bob amser yn eich swyddogaeth symud a dod o hyd y sero, neu ddod o hyd i'r teils, 80 00:04:10,700 --> 00:04:12,460 ac yna gwirio beth sydd nesaf iddo. 81 00:04:12,460 --> 00:04:16,329 Yn lle hynny, mae gennych y lleoliad y sero, gallwch dim ond yn edrych uchod, isod, 82 00:04:16,329 --> 00:04:21,160 ac i'r chwith ac i'r dde ohono, i ddod o hyd i y teils roeddech yn chwilio amdano. 83 00:04:21,160 --> 00:04:24,970 >> Felly, o ran y rhaglenni rydym yn ysgrifennu, ni fyddant byth yn ddigon mawr 84 00:04:24,970 --> 00:04:28,580 bod rhai o'r penderfyniadau cynllunio hyn yn wir yn mynd i amharu ar eich 85 00:04:28,580 --> 00:04:31,670 rhaglen, neu ei gwneud yn rhedeg yn fwy araf, neu efallai hyd yn oed yn rhedeg allan o gof. 86 00:04:31,670 --> 00:04:35,030 Ond rydym yn dal i gwthio i chi guys i ysgrifennu mor gain a 87 00:04:35,030 --> 00:04:36,450 Cod effeithlon ag y bo modd. 88 00:04:36,450 --> 00:04:39,910 >> Felly, os ydych yn ei wneud yn y pen draw ysgrifennu pethau sydd â llawer mwy o faint 89 00:04:39,910 --> 00:04:44,660 cwmpas, byddant yn cael eu hysgrifennu gyda da dylunio yn ogystal â bod yn gywir. 90 00:04:44,660 --> 00:04:46,300 Felly, mae nifer ohonoch wedi dwyn hynny. 91 00:04:46,300 --> 00:04:48,560 Mae hynny'n rhywbeth yr ydym yn chwilio amdano - rhywbeth yr ydym yn mynd i barhau i 92 00:04:48,560 --> 00:04:49,840 gwthio i chi guys ar. 93 00:04:49,840 --> 00:04:52,460 >> Os ydych chi erioed gennych unrhyw gwestiynau am y cynllunio eich rhaglen, mae croeso 94 00:04:52,460 --> 00:04:56,870 i estyn allan i mi, ac rwy'n hapus i cerdded drwy eich rhaglen gyda chi, 95 00:04:56,870 --> 00:05:01,320 ac yn tynnu sylw at rai o'r cynllun penderfyniadau a wnaed i chi, ac yn rhoi i chi rai 96 00:05:01,320 --> 00:05:06,240 awgrymiadau ar sut i wneud hyd yn oed yn penderfyniadau dylunio gwell. 97 00:05:06,240 --> 00:05:08,870 >> Felly, rydym yn mynd i symud ymlaen i siarad am Cwis 0. 98 00:05:08,870 --> 00:05:11,300 Cyn i ni wneud hynny, a yw unrhyw un os oes gennych unrhyw gwestiynau am yr hyn 99 00:05:11,300 --> 00:05:14,252 Rwyf wedi cynnwys hyd yn hyn? 100 00:05:14,252 --> 00:05:21,500 >> [Siffrwd SŴN] 101 00:05:21,500 --> 00:05:22,750 >> JASON Hirschhorn: Saith eiliad. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Gadewch i ni siarad am Cwis 0 am ychydig. 104 00:05:24,970 --> 00:05:26,700 Y rhan fwyaf ohonoch wedi eich Cwis cefn 0 yn. 105 00:05:26,700 --> 00:05:29,820 Os nad ydych, gobeithio chi gofio ei fod yn ychydig. 106 00:05:29,820 --> 00:05:34,770 Ond os ydych wedi cymryd Cwis 0, yna rydych hefyd yn cael mynediad at y PDF ar-lein yn 107 00:05:34,770 --> 00:05:35,890 atebion sampl. 108 00:05:35,890 --> 00:05:39,480 >> A oes unrhyw un gennych unrhyw gwestiynau cyn rydym yn neidio i mewn i ddeunydd yr wythnos am 109 00:05:39,480 --> 00:05:41,520 broblem benodol ar Cwis 0 - 110 00:05:41,520 --> 00:05:44,630 pam mae'r ateb yn yr hyn ydyw? 111 00:05:44,630 --> 00:05:47,255 A yw unrhyw un ddryslyd am unrhyw beth? 112 00:05:47,255 --> 00:05:50,230 Hyd yn oed os ydych yn cael y broblem yn iawn, ond dim ond os hoffech i mi egluro ychydig 113 00:05:50,230 --> 00:05:52,640 mwy, dwi'n hapus i wneud hynny nawr. 114 00:05:52,640 --> 00:05:57,800 >> Felly, yr wyf wedi gofyn i chi guys i dewch yn barod gyda rhai 115 00:05:57,800 --> 00:05:59,440 meddyliau am Cwis 0. 116 00:05:59,440 --> 00:06:02,660 Felly, a fyddai'n hoffi i fynd â ni dechrau gyda cwestiwn neu 117 00:06:02,660 --> 00:06:04,655 sylwadau am Cwis 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [PAPUR siffrwd] 120 00:06:10,410 --> 00:06:11,470 >> JASON Hirschhorn: Nid yw pawb oedd yn berffaith. 121 00:06:11,470 --> 00:06:12,720 Felly, yr wyf yn gwybod [Chwerthin] 122 00:06:12,720 --> 00:06:15,950 rhaid cael rhai cwestiynau am Cwis 0. 123 00:06:15,950 --> 00:06:27,940 124 00:06:27,940 --> 00:06:28,590 OK. 125 00:06:28,590 --> 00:06:29,210 Ie. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: Rhif 10. 128 00:06:30,520 --> 00:06:33,560 >> JASON Hirschhorn: Rhif 10. 129 00:06:33,560 --> 00:06:35,400 Pa un oedd rhif 10? 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: The - 131 00:06:35,840 --> 00:06:36,420 >> JASON Hirschhorn: Yr wyf yn haven't - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: Y cynnwys - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON Hirschhorn: Rhif 10 yn wyth i i - ysgrifennu wyth i i? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Yeah. 136 00:06:42,980 --> 00:06:43,630 >> JASON Hirschhorn: OK. 137 00:06:43,630 --> 00:06:47,390 Felly, y cwestiwn arall a allai fod gennych Gofynnwyd Roedd ydw i'n prescient? 138 00:06:47,390 --> 00:06:48,630 Mae'r ateb yn gadarnhaol. 139 00:06:48,630 --> 00:06:52,060 Yn adran cyn y cwis, gofynnais i chi guys i cod yn Sterling a 140 00:06:52,060 --> 00:06:52,980 wyth i i. 141 00:06:52,980 --> 00:06:54,770 Mae'r ddau ohonynt yn digwydd i ymddangos ar y cwis. 142 00:06:54,770 --> 00:06:57,510 Felly, gobeithio, a delir i chi sylw i hynny. 143 00:06:57,510 --> 00:07:02,520 >> Ac os oedd gennych, yna byddai gennych wneud yn ôl pob tebyg yn dda ar ddau hynny. 144 00:07:02,520 --> 00:07:06,030 Ond wyth i i, ni wnaethom mewn gwirionedd cod yn y dosbarth, ond yr oedd, unwaith eto, 145 00:07:06,030 --> 00:07:07,500 a ofynnwyd ar y cwis. 146 00:07:07,500 --> 00:07:13,270 Felly, un neu ddau o bethau i'w cymryd nodi wrth codio wyth i i. 147 00:07:13,270 --> 00:07:17,320 Y peth cyntaf, fesul y cwestiwn, roedd bod angen i chi i wirio a yw'r llinyn 148 00:07:17,320 --> 00:07:20,300 yn cyfateb i null. 149 00:07:20,300 --> 00:07:28,060 >> Mae cwpl o bobl yn ceisio i wirio yn nes ymlaen yn y rhaglen os yw braced fi oedd - 150 00:07:28,060 --> 00:07:30,940 felly mae cymeriad penodol yn y linyn - yn cyfateb i null. 151 00:07:30,940 --> 00:07:35,600 Ond cofiwch, hynny null yn ei hanfod - mae'n dda i feddwl am 152 00:07:35,600 --> 00:07:39,100 null fel pwyntydd sero - pwyntydd i sero - 153 00:07:39,100 --> 00:07:40,920 Thrafod er cof lle byth gallwch gael mynediad. 154 00:07:40,920 --> 00:07:44,730 >> Felly os oes rhywbeth yn hafal i null, rydych yn gwybod nad yw wedi cael ei hymgychwyn, gan 155 00:07:44,730 --> 00:07:46,430 neu does dim byd yno. 156 00:07:46,430 --> 00:07:50,950 Felly s yn seren torgoch, s i braced yn torgoch. 157 00:07:50,950 --> 00:07:57,410 Felly mae'n gwneud synnwyr i gymharu i null, ond s braced fi null. 158 00:07:57,410 --> 00:07:59,390 Ond unwaith eto - felly dyna oedd y peth cyntaf eich bod yn fod i'w wneud - 159 00:07:59,390 --> 00:08:03,510 gwirio i wneud yn siŵr eich bod mewn gwirionedd yn cael llinyn go iawn. 160 00:08:03,510 --> 00:08:08,020 >> Nesaf, yr oeddech am fynd drwy pob cymeriad yn y llinyn. 161 00:08:08,020 --> 00:08:12,500 Ac felly byddai hynny'n fel s braced i, er enghraifft, os fi yw eich iterator. 162 00:08:12,500 --> 00:08:17,250 Ac i gymryd y cymeriad, a yn cael ei werth gwirioneddol. 163 00:08:17,250 --> 00:08:21,800 Rydych wedi ei storio fel golosg, ond gwerth ASCII ar gyfer sero - 164 00:08:21,800 --> 00:08:23,010 sero fel cymeriad - 165 00:08:23,010 --> 00:08:25,450 Nid mewn gwirionedd yn y cyfanrif sero. 166 00:08:25,450 --> 00:08:28,700 Mae'n ryw nifer arall eich bod yn gallu edrych i fyny yn y tabl ASCII. 167 00:08:28,700 --> 00:08:30,790 >> Felly, un ffordd i gywiro am hynny - debyg mai dyma'r ffordd orau i gywiro ar gyfer 168 00:08:30,790 --> 00:08:33,760 hynny - yn tynnu oddi wrtho gwerth cymeriad - 169 00:08:33,760 --> 00:08:35,140 sero fel cymeriad. 170 00:08:35,140 --> 00:08:38,490 Dyfyniad sengl Felly minws, sero, un dyfyniad arall. 171 00:08:38,490 --> 00:08:44,620 Bydd hynny'n cymryd pa bynnag nifer sydd gennych fel torgoch, ac yn ei gael yn hafal i 172 00:08:44,620 --> 00:08:46,720 y nifer fel cyfanrif go iawn. 173 00:08:46,720 --> 00:08:50,300 >> A bod yn debyg iawn i'r dull llawer o bobl yn cymryd yn y 174 00:08:50,300 --> 00:08:52,800 problem set 2, gyda Cesar a Viginere - 175 00:08:52,800 --> 00:08:55,160 dulliau cêl-ysgrifennu hynny, pan fyddwch yn oedd yn eu cylchdroi. 176 00:08:55,160 --> 00:08:59,210 Felly, ar ôl i chi ei gael gan fod nifer o sero i naw, yna - yn dibynnu ar 177 00:08:59,210 --> 00:09:02,750 lle mae'n mynd yn y nifer yn y pen draw - angen i chi luosi ei 178 00:09:02,750 --> 00:09:04,120 gan bŵer o 10. 179 00:09:04,120 --> 00:09:07,340 >> Symudodd rhai pobl o gefn i'r flaen, a'i luosi yr unigolyn 180 00:09:07,340 --> 00:09:08,940 nifer gan bŵer o 10. 181 00:09:08,940 --> 00:09:11,160 Symudodd rhai pobl rhag y blaen i'r cefn - 182 00:09:11,160 --> 00:09:14,430 ac felly cymerodd yr uchaf trefnu rhifau yn gyntaf - 183 00:09:14,430 --> 00:09:18,190 ac yn arbed y rhai mewn amrywiol cownter byd-eang. 184 00:09:18,190 --> 00:09:20,880 Ac yna bob amser drwy GYFER dolen, lluoswch y cawr byd-eang 185 00:09:20,880 --> 00:09:25,640 wrthweithio newidiol drwy 10, i wneud lle ar gyfer y torgoch nesaf. 186 00:09:25,640 --> 00:09:28,750 >> Felly yr oedd yn ychydig yn ddryslyd heb i mi ei ysgrifennu ar y bwrdd. 187 00:09:28,750 --> 00:09:31,550 Ond mae'r ateb sampl ar gael i chi. 188 00:09:31,550 --> 00:09:32,870 Ond y rhai oedd y pethau mawr rydym yn chwilio amdano. 189 00:09:32,870 --> 00:09:36,400 Hefyd siec i wneud yn siŵr bod pob cymeriad unigol oedd yn wir yn 190 00:09:36,400 --> 00:09:39,780 cymeriad rhwng sero a naw, ac nid ryw gymeriad arall, fel A, 191 00:09:39,780 --> 00:09:41,160 er enghraifft. 192 00:09:41,160 --> 00:09:43,150 >> Dyna oedd y pethau yr ydym yn edrych ar ei gyfer yn y cwestiwn hwnnw. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 A yw hynny'n ateb eich cwestiwn? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Yeah. 196 00:09:49,320 --> 00:09:50,240 >> JASON Hirschhorn: OK. 197 00:09:50,240 --> 00:09:53,940 A oes unrhyw gwestiynau eraill am Cwis 0? 198 00:09:53,940 --> 00:09:55,440 Beth am lunio? 199 00:09:55,440 --> 00:09:56,740 Bawb llunio iawn? 200 00:09:56,740 --> 00:09:58,370 Rhif 201 00:09:58,370 --> 00:09:58,840 Roedd - 202 00:09:58,840 --> 00:10:01,010 [Chwerthin] 203 00:10:01,010 --> 00:10:03,265 Unrhyw gwestiynau am y proses llunio? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 Wow. 206 00:10:06,966 --> 00:10:11,090 >> [PAPUR siffrwd] 207 00:10:11,090 --> 00:10:11,520 >> JASON Hirschhorn: Ydw. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL: A yw'r rhif 7 - ar hap? 210 00:10:14,140 --> 00:10:16,500 >> JASON Hirschhorn: Rhif 7. 211 00:10:16,500 --> 00:10:20,670 Rhif 7 yn cael cyfanrif ar hap. 212 00:10:20,670 --> 00:10:21,110 Ardderchog. 213 00:10:21,110 --> 00:10:25,630 Felly, rydych yn cael cyfanrif yn a cyfanrif b, a ydych am gael ar hap 214 00:10:25,630 --> 00:10:28,710 cyfanrifol rhwng a b. 215 00:10:28,710 --> 00:10:31,740 Gallwn mewn gwirionedd yn ysgrifennu hyn un ar y bwrdd, gan fod hyn yn un 216 00:10:31,740 --> 00:10:33,320 yn un llinell o god - 217 00:10:33,320 --> 00:10:34,390 un ffordd i wneud hynny. 218 00:10:34,390 --> 00:10:37,810 >> Felly, rydym yn rhoi drand fel swyddogaeth y gallem eu defnyddio. 219 00:10:37,810 --> 00:10:38,820 A beth mae drand - 220 00:10:38,820 --> 00:10:40,290 gan dybio ei fod wedi cael ei hadu - 221 00:10:40,290 --> 00:10:42,316 beth mae drand dychwelyd? 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: A arnofio rhwng 0.0 a 1.0. 223 00:10:44,840 --> 00:10:45,530 >> JASON Hirschhorn: Mae nifer - yeah. 224 00:10:45,530 --> 00:10:47,910 Mae nifer rhwng 0 ac 1. 225 00:10:47,910 --> 00:10:51,760 Ac felly rydym wedi b ac a. 226 00:10:51,760 --> 00:10:55,480 Ac yna rydym wedi ein rhif ar hap rhwng 0 ac 1 a roddwyd i ni gan drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Mae rhai pobl yn ceisio rhoi b, neu b minws yn, neu rywbeth y tu mewn rhai 229 00:11:06,630 --> 00:11:07,960 cromfachau. 230 00:11:07,960 --> 00:11:11,210 Byddai hynny'n golygu eu bod yn dadleuon i'r swyddogaeth hon. 231 00:11:11,210 --> 00:11:13,450 >> drand nid yw'n cymryd unrhyw ddadleuon - fel getString yn 232 00:11:13,450 --> 00:11:14,330 ydynt yn cymryd unrhyw ddadleuon. 233 00:11:14,330 --> 00:11:16,600 Felly mae'n paren ar agor dim ond, yn agos paren - ac mae hynny, ynddo'i hun, yn 234 00:11:16,600 --> 00:11:17,330 yr alwad swyddogaeth. 235 00:11:17,330 --> 00:11:19,770 A bod yn rhoi i chi nifer rhwng 0 ac 1. 236 00:11:19,770 --> 00:11:22,820 Wrth gwrs, mae gennym ystod eang y gall y niferoedd fod ynddi 237 00:11:22,820 --> 00:11:28,470 >> Dweud, os b yn 10 ac mae a yn 5, mae gwir am nifer gydag ystod o 5. 238 00:11:28,470 --> 00:11:36,940 Felly, y peth nesaf y mae angen ei wneud yw lluoswch hyn gan yr ystod b minws a. 239 00:11:36,940 --> 00:11:40,380 Felly, gan dybio bod wedi lluosi. 240 00:11:40,380 --> 00:11:42,590 A bydd yn rhoi nifer ni o fewn ystod a roddir. 241 00:11:42,590 --> 00:11:46,610 A bod ystod benodol sef y gwahaniaeth rhwng b minws a. 242 00:11:46,610 --> 00:11:50,030 >> Ac yn olaf, bydd mai dim ond rhoi o - dweud yr ystod rhwng b minws yn 243 00:11:50,030 --> 00:11:52,520 yn 5, bydd hynny'n rhoi i ni nifer 0-5. 244 00:11:52,520 --> 00:11:56,000 Ond os yw, mewn gwirionedd 5, mae angen i ni roi hwb ystod hyn i fyny i'r man lle mae'n 245 00:11:56,000 --> 00:12:01,380 mewn gwirionedd i fod i fod, drwy ychwanegu. 246 00:12:01,380 --> 00:12:02,580 Felly, sy'n cael y rhesymeg cywir. 247 00:12:02,580 --> 00:12:03,745 Ac yna, byddai gennych cwestiwn arall? 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: Na 249 00:12:04,547 --> 00:12:06,010 Fi jyst teimlo'n fud ar hyn o bryd. 250 00:12:06,010 --> 00:12:06,405 [Chwerthin] 251 00:12:06,405 --> 00:12:06,730 >> JASON Hirschhorn: Na 252 00:12:06,730 --> 00:12:08,640 Peidiwch â theimlo'n wir fud. 253 00:12:08,640 --> 00:12:10,560 Mae nifer o bobl yn ei chael yn anodd gyda'r cwestiwn hwn. 254 00:12:10,560 --> 00:12:13,920 Ac yna, y cwestiwn arall yw, drand, dywedasoch, yn rhoi arnofio chi - 255 00:12:13,920 --> 00:12:14,940 dychwelyd arnofio. 256 00:12:14,940 --> 00:12:18,020 Ond mae swyddogaeth hon, gofynnwyd mewn gwirionedd ar gyfer cyfanrif gael ei ddychwelyd. 257 00:12:18,020 --> 00:12:23,700 >> Nid oes angen i chi i fwrw hyn yn benodol i cyfanrif, gan fod y rhain 258 00:12:23,700 --> 00:12:29,090 Bydd gweithrediadau trin fel pob yn arnofio - fel rhif pwynt arnawf. 259 00:12:29,090 --> 00:12:31,570 Fel y bydd hyn - hyd yn oed os yw hyn yn yn gyfanrif, bydd hyn yn 260 00:12:31,570 --> 00:12:32,890 yn cael ei luosi yn gywir. 261 00:12:32,890 --> 00:12:34,000 Bydd yr holl lluosi yn gweithio. 262 00:12:34,000 --> 00:12:35,060 Nid oes angen i chi i fwrw yma. 263 00:12:35,060 --> 00:12:36,480 Yn wir, ni ddylech fwrw. 264 00:12:36,480 --> 00:12:37,310 >> Byddai hynny - 265 00:12:37,310 --> 00:12:40,750 os hoffech chi fwrw nifer dyna rhwng 0 ac 1 - 266 00:12:40,750 --> 00:12:42,680 rhif ar hap, pwynt fel y bo'r angen - 267 00:12:42,680 --> 00:12:47,850 yna bydd yn naill ai yn unig 0 neu 1, felly byddwch yn colli i gyd gywirdeb. 268 00:12:47,850 --> 00:12:50,120 Ond ar y diwedd, pan fyddwch yn dychwelyd, mae'n mynd yn awtomatig 269 00:12:50,120 --> 00:12:51,620 hanfon yn ôl fel cyfanrif. 270 00:12:51,620 --> 00:12:56,870 Felly nid oes angen i chi ei wneud y castio eich hun. 271 00:12:56,870 --> 00:13:00,810 >> Felly, mae hyn yn yr ateb i y cwestiwn hwnnw, rhif 7. 272 00:13:00,810 --> 00:13:02,190 Unrhyw gwestiynau eraill ar Cwis 0? 273 00:13:02,190 --> 00:13:03,300 Yeah, Annie. 274 00:13:03,300 --> 00:13:05,050 >> ANNIE: Pryd ydym ni'n defnyddio recursive - 275 00:13:05,050 --> 00:13:07,850 pan ydym yn defnyddio dolenni iteraidd? 276 00:13:07,850 --> 00:13:10,210 >> JASON Hirschhorn: Pryd ydych chi'n defnyddio recursive - felly yn fwy cyffredinol, y 277 00:13:10,210 --> 00:13:14,110 manteision ac anfanteision recursion yn erbyn dull ailadroddol. 278 00:13:14,110 --> 00:13:17,110 A all unrhyw un gynnig pro neu con? 279 00:13:17,110 --> 00:13:19,460 Os gwelwch yn dda? 280 00:13:19,460 --> 00:13:20,140 Ni all unrhyw un. 281 00:13:20,140 --> 00:13:22,526 Pwy all gynnig pro neu con? 282 00:13:22,526 --> 00:13:26,963 >> [PAPUR siffrwd] 283 00:13:26,963 --> 00:13:29,730 >> MYFYRIWR 1: Ymgylchol yn llai codio - llai o deipio? 284 00:13:29,730 --> 00:13:33,170 >> JASON Hirschhorn: Felly ar y cyfan, recursion yn arbennig, swyddogaeth - 285 00:13:33,170 --> 00:13:35,750 neu algorithm fel uno fath - sy'n cynnig ei hun 286 00:13:35,750 --> 00:13:37,300 i ddull ailadroddus - 287 00:13:37,300 --> 00:13:40,710 fod yn fwy syml i cod recursively. 288 00:13:40,710 --> 00:13:43,940 A dim ond yn gwneud mwy o synnwyr i wneud hynny recursively. 289 00:13:43,940 --> 00:13:46,230 Felly byddai hynny'n pro i recursion. 290 00:13:46,230 --> 00:13:46,610 Eraill? 291 00:13:46,610 --> 00:13:47,467 Yeah? 292 00:13:47,467 --> 00:13:49,240 >> MYFYRIWR 2: Con i recursion - 293 00:13:49,240 --> 00:13:50,940 Mae'n defnyddio mwy o gof. 294 00:13:50,940 --> 00:13:52,200 >> JASON Hirschhorn: Felly yn union gywir. 295 00:13:52,200 --> 00:13:55,720 Bydd swyddogaeth ailadroddus yn cadw ychwanegu pentwr fframiau i'r pentwr. 296 00:13:55,720 --> 00:13:59,690 Felly, os ydych yn gweithredu ar lawer o rhifau, ac mae'n rhaid iddynt yn galw hyn yn 297 00:13:59,690 --> 00:14:02,560 gweithredu llawer, yna byddwch yn sicr yn cymryd mwy cof, tra 298 00:14:02,560 --> 00:14:05,810 Bydd dull iteraidd dim ond rhoi un stac ffrâm ar y simnai, oherwydd 299 00:14:05,810 --> 00:14:08,420 y cyfan yn digwydd o fewn un swyddogaeth. 300 00:14:08,420 --> 00:14:11,010 >> Unrhyw manteision a'r anfanteision eraill? 301 00:14:11,010 --> 00:14:11,500 Yeah. 302 00:14:11,500 --> 00:14:12,550 >> MYFYRIWR 3: Manteision i recursion. 303 00:14:12,550 --> 00:14:15,950 Nid oes rhaid i chi benderfynu yn ymlaen llaw faint o weithiau y 304 00:14:15,950 --> 00:14:17,660 Roedd cod i gael ei ailadrodd. 305 00:14:17,660 --> 00:14:22,810 Gallwch gael nifer a bennwyd ymlaen llaw o adegau sy'n rhaid i chi ei ailadrodd, yna 306 00:14:22,810 --> 00:14:26,420 recursion yn well, oherwydd mae'n cymryd y canlyniad. 307 00:14:26,420 --> 00:14:27,780 >> JASON Hirschhorn: Yr wyf yn credu bod hynny'n wir. 308 00:14:27,780 --> 00:14:30,770 Ond rwy'n credu yn y ddau achos byth byddech - 309 00:14:30,770 --> 00:14:33,290 mae'n debyg y byddech yn cael rhywfaint o mewnbwn gan y defnyddiwr. 310 00:14:33,290 --> 00:14:35,990 Neu y byddai swyddogaeth hon yn cael rhywfaint o fewnbwn a fyddai'n penderfynu faint o weithiau y mae'n 311 00:14:35,990 --> 00:14:36,730 Dylai redeg. 312 00:14:36,730 --> 00:14:39,520 Felly yn gyffredinol, oni fyddech cod caled - hyd yn oed mewn dull ailadroddol - sut 313 00:14:39,520 --> 00:14:40,940 Dylai nifer o weithiau y ddolen yn cael ei rhedeg. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> Wnaethoch chi gael un arall eich bod yn meddwl am, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Felly, y rhai yn ôl pob tebyg y ddau - 318 00:14:51,650 --> 00:14:54,370 pro mwyaf a'r mwyaf con i recursive yn erbyn 319 00:14:54,370 --> 00:14:57,080 dull ailadroddol. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Unrhyw beth arall ar Cwis 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Gadewch i ni symud ymlaen. 324 00:15:09,920 --> 00:15:15,260 Ffeil gallaf / O. Mae byr gwych yr wythnos hon ar ffeil I / O, gobeithio, 325 00:15:15,260 --> 00:15:19,270 eich bod wedi gwylio lluosog adegau, ac edmygu. 326 00:15:19,270 --> 00:15:22,910 Mae llawer o waith yn mynd i mewn i hynny, ac rwyf wedi glywed ei fod yn insanely ddefnyddiol. 327 00:15:22,910 --> 00:15:25,740 Yr wyf hefyd yn cynnwys y ddolen ar sleid hon, rhag ofn nad ydych wedi cael 328 00:15:25,740 --> 00:15:29,160 cyfle i wylio 10 gwaith. 329 00:15:29,160 --> 00:15:35,280 >> Felly, yr ydym yn mynd i fynd yn fyr yn ystod y camau sylweddol i agor a gweithio 330 00:15:35,280 --> 00:15:38,400 gyda ffeiliau, ac yna rydym yn mynd i plymio i mewn i broblem codio cyn 331 00:15:38,400 --> 00:15:40,400 archwilio'r broblem a osodwyd. 332 00:15:40,400 --> 00:15:44,330 Felly eto, yr wyf i'n mynd i roi hyn i fyny ar y sgrin, ond rwy'n mynd i siarad am 333 00:15:44,330 --> 00:15:47,630 dim ond munud am yr hyn rydym yn ei wneud yma gyda ffeil I/O-- 334 00:15:47,630 --> 00:15:49,090 beth mae hynny'n ei olygu? 335 00:15:49,090 --> 00:15:55,280 >> Mae hynny'n golygu y gallwn greu ein rhaglenni, ac yna wedi ein rhaglenni 336 00:15:55,280 --> 00:16:00,370 allanfa, ac nid ydym wedi gwneud unrhyw effaith ar y byd y tu allan i'n rhaglen. 337 00:16:00,370 --> 00:16:04,630 Ond pan fyddwn yn dechrau gweithio gyda ffeiliau - y ddau yn eu darllen i mewn a chreu 338 00:16:04,630 --> 00:16:10,460 nhw - gallwn gael rhywfaint o effaith ar y byd y tu allan ein rhaglen. 339 00:16:10,460 --> 00:16:15,440 >> Yn union fel pe na bai Microsoft Word yn gallu i wneud unrhyw ddogfennau Word, yna 340 00:16:15,440 --> 00:16:18,710 unwaith Microsoft Word roi'r gorau iddi, pob un o'ch byddai gwaith yn cael mynd, a byddai'n 341 00:16:18,710 --> 00:16:19,740 mewn gwirionedd yn ddiwerth. 342 00:16:19,740 --> 00:16:23,620 Yn y pen draw ydym am i fod yn gallu ysgrifennu rhaglenni sy'n gallu effeithio ar 343 00:16:23,620 --> 00:16:31,350 byd o'u cwmpas, y ddau drwy gymryd yn mewnbynnau cymhleth - o ran ffeiliau a 344 00:16:31,350 --> 00:16:37,080 drwy ffeiliau, ac mae hefyd yn creu diddorol ac allbynnau cymhellol - 345 00:16:37,080 --> 00:16:39,520 o ran gwahanol fathau o ffeiliau. 346 00:16:39,520 --> 00:16:43,730 >> Felly dyna pam yr ydym yn dechrau dysgu sut i weithio gyda ffeiliau. 347 00:16:43,730 --> 00:16:47,080 Yn fwy penodol, yr hyn rydym yn ei wneud fel a ganlyn. 348 00:16:47,080 --> 00:16:47,680 Mae'n syml iawn. 349 00:16:47,680 --> 00:16:51,530 Dim ond cwpl o gamau, a maent yn cael eu rhestru yma ar y cod hwn. 350 00:16:51,530 --> 00:16:55,130 Felly, rydym yn mynd i fynd drwy y llinell hon cod wrth linell. 351 00:16:55,130 --> 00:16:57,630 >> Yn gyntaf, byddwch yn gweld tynnu sylw at - 352 00:16:57,630 --> 00:17:01,330 pan fyddwch yn gweithio gyda ffeil, ni waeth pa fath o ffeil ydyw, 353 00:17:01,330 --> 00:17:02,670 angen i chi ei agor. 354 00:17:02,670 --> 00:17:05,130 A dyna gyda galwad i fopen - 355 00:17:05,130 --> 00:17:05,950 yma. 356 00:17:05,950 --> 00:17:07,980 Eich bod yn cynnwys enw'r ffeil. 357 00:17:07,980 --> 00:17:11,930 Os nad yw'r ffeil yn eich cyfeiriadur, neu 'r folder ble rhaglen hon 358 00:17:11,930 --> 00:17:15,910 bywydau, yna mae angen i chi hefyd gynnwys llwybr i'r man lle y ffeil yn. 359 00:17:15,910 --> 00:17:19,099 >> Rydym yn mynd i gymryd yn ganiataol bod hyn yn ffeil o'r enw "text.txt" - 360 00:17:19,099 --> 00:17:24,220 dogfen destun syml - yn y un ffolder rhaglen hon yw. 361 00:17:24,220 --> 00:17:26,859 Felly dyna beth arall i gadw mewn meddwl - os ydych am i agor ffeil 362 00:17:26,859 --> 00:17:30,050 rhywle arall, chi mewn gwirionedd mae angen i gynnwys ei leoliad. 363 00:17:30,050 --> 00:17:33,520 >> Yn ail, gallwch basio dadl i fopen, a dyna beth ydych am ei wneud 364 00:17:33,520 --> 00:17:34,620 gyda'r ffeil. 365 00:17:34,620 --> 00:17:38,450 Mae tri phrif dadleuon a ydych yn mynd i basio i fopen. 366 00:17:38,450 --> 00:17:40,060 Pwy all roi i mi dri hynny? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Pwy all roi i mi un ohonynt? 369 00:17:47,130 --> 00:17:48,130 Ie. 370 00:17:48,130 --> 00:17:50,010 >> MYFYRIWR 4: Enw'r ffeil? 371 00:17:50,010 --> 00:17:50,440 >> JASON Hirschhorn: Mae'n ddrwg gennyf. 372 00:17:50,440 --> 00:17:55,490 Mae tri phrif ddadleuon y gellir byddwch yn pasio fel yr ail ddadl i fopen. 373 00:17:55,490 --> 00:17:57,060 Rydych chi'n iawn - yr enw ffeil yw'r ddadl gyntaf. 374 00:17:57,060 --> 00:18:01,620 Ond mae'r ail ddadl i fopen yn Yn gyffredinol, tri llinynnau, ac - ie. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> ALEJA: A ar gyfer atodi. 377 00:18:03,490 --> 00:18:06,840 >> JASON Hirschhorn: A, os ydych chi am atodi at ffeil sy'n bodoli eisoes. 378 00:18:06,840 --> 00:18:07,810 >> MYFYRIWR 5: R ar gyfer darllen. 379 00:18:07,810 --> 00:18:09,930 >> JASON Hirschhorn: R, os ydych yn eisiau darllen o ffeil. 380 00:18:09,930 --> 00:18:10,670 >> MYFYRIWR 6: W ar gyfer ysgrifennu. 381 00:18:10,670 --> 00:18:12,840 >> JASON Hirschhorn: Ac w, os ydych yn eisiau ysgrifennu at ffeil. 382 00:18:12,840 --> 00:18:17,570 Felly, yn yr achos hwn, rydym yn ysgrifennu at y ffeil, felly mae gennym w. 383 00:18:17,570 --> 00:18:22,360 Chi ei agor, rhaid i chi hefyd i achub y ffeilio yn rhywle, a dyna y 384 00:18:22,360 --> 00:18:26,000 cod i ochr chwith y y gweithredwr aseiniad - 385 00:18:26,000 --> 00:18:31,220 Im 'yn creu pwyntydd i ffeil gelwir, yn yr achos hwn, ffeil. 386 00:18:31,220 --> 00:18:36,070 >> Nid ydym yn mynd i boeni pa hyn i gyd capiau beth FFEIL yw. 387 00:18:36,070 --> 00:18:40,600 Digon yw dweud, ei fod yn hir ffrwd o sero a rhai. 388 00:18:40,600 --> 00:18:44,970 A dyna sut yr ydym yn mynd i ei weithredu ac yn ei ddeall. 389 00:18:44,970 --> 00:18:47,300 >> Y peth nesaf mae angen i ni ei wneud - ac mae hyn yn hynod o bwysig - 390 00:18:47,300 --> 00:18:49,070 pryd bynnag y byddwch yn agor ffeil - 391 00:18:49,070 --> 00:18:54,250 yn wir, pryd bynnag y byddwch yn galw malloc, ar gyfer enghraifft, ac yn cael rhywfaint o cof a cheisio 392 00:18:54,250 --> 00:18:57,980 a'i gadw mewn pwyntydd, byddwch bob amser yn eisiau gwirio i wneud yn siŵr bod 393 00:18:57,980 --> 00:19:00,230 Nid yw swyddogaeth ddychwelodd null. 394 00:19:00,230 --> 00:19:05,230 >> Felly, yn yr achos hwn, rydym yn edrych i wneud sicrhau ein bod mewn gwirionedd yn agor y 395 00:19:05,230 --> 00:19:10,230 ffeilio yn gywir, ac roedd oes gwall yn ein rhaglen. 396 00:19:10,230 --> 00:19:15,160 Nesaf, unwaith y byddwn wedi gwirio i wneud yn siŵr bod gennym ffeil gwaith, gallwn 397 00:19:15,160 --> 00:19:18,520 ysgrifennu at, neu ddarllen o, neu atodi at y ffeil. 398 00:19:18,520 --> 00:19:24,270 Yn yr achos hwn, yr wyf yn syml argraffu un llinell at y ffeil hon. 399 00:19:24,270 --> 00:19:25,450 >> Sut ydw i'n gwybod hynny? 400 00:19:25,450 --> 00:19:27,990 Wel, rwy'n ei ddefnyddio swyddogaeth hon a elwir yn fprintf. 401 00:19:27,990 --> 00:19:30,970 Mae pob un o'r swyddogaethau y byddwch yn eu defnyddio wrth ysgrifennu at, neu ddarllen o, neu 402 00:19:30,970 --> 00:19:34,950 Bydd trin ffeiliau yn debyg i'r swyddogaethau ydych chi wedi ei weld o'r blaen, ond 403 00:19:34,950 --> 00:19:38,420 yn dechrau â'r llythyren F, sefyll i ffeil. 404 00:19:38,420 --> 00:19:43,440 Ac fprintf, yn wahanol ein print arferol app, yn cymryd un ddadl ychwanegol, 405 00:19:43,440 --> 00:19:47,800 a dyna y ffeil lle rydych yn eisiau argraffu y llinell hon i. 406 00:19:47,800 --> 00:19:50,640 >> Nid oes gennyf unrhyw beth i'w yr hawl i ohai. 407 00:19:50,640 --> 00:19:52,860 Nid oes gennyf y trydydd ddadl i printf - 408 00:19:52,860 --> 00:19:57,030 neu'r ail ddadl i printf, y trydydd ddadl i fprintf, gan fy mod 409 00:19:57,030 --> 00:19:59,480 nid oes ganddynt unrhyw bachau yma. 410 00:19:59,480 --> 00:20:01,070 Dydw i ddim yn cynnwys unrhyw newidynnau. 411 00:20:01,070 --> 00:20:06,070 Ond unwaith eto, fprintf a pob un o'r rhain ffeil swyddogaethau sy'n gweithredu gyda ffeiliau 412 00:20:06,070 --> 00:20:09,820 yn gyffredinol yn mynd i angen y ffeil y maent yn gweithredu. 413 00:20:09,820 --> 00:20:15,960 >> Yn olaf, y peth pwysig olaf i wneud yw cau'r ffeil, yn union fel 414 00:20:15,960 --> 00:20:19,530 gyda - pryd bynnag y byddwn malloc rhywbeth, rydym am i ryddhau rhywbeth, rhag i ni 415 00:20:19,530 --> 00:20:22,730 cael yn gollwng cof - yr ydym am i gau ein ffeil. 416 00:20:22,730 --> 00:20:28,180 Os yw'r rhaglen hon wedi gadael heb gau y ffeil, groes yn fyddai dim yn mynd 417 00:20:28,180 --> 00:20:30,050 anghywir, yn enwedig os Roedd ffeil fach. 418 00:20:30,050 --> 00:20:35,020 >> Ond mae'n sicr yn arddull codio da ac ymarfer bob amser yn cau eich ffeil 419 00:20:35,020 --> 00:20:38,050 pan fyddwch yn gorffen ei ddefnyddio. 420 00:20:38,050 --> 00:20:43,630 Felly dyna'r hanfodion ffeil gallaf / O. Mae'n debyg eich bod wedi gweld hynny o'r blaen, neu 421 00:20:43,630 --> 00:20:45,710 wylio yn y byr gwych. 422 00:20:45,710 --> 00:20:48,410 A oes unrhyw un gennych unrhyw gwestiynau, cyn rydym yn mynd i mewn i rai codio ymarfer 423 00:20:48,410 --> 00:20:51,800 problemau, am ffeil I / O neu camau Fi jyst yn mynd drosodd? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [THEIPIO SWNIO'N] 426 00:21:03,162 --> 00:21:04,150 >> JASON Hirschhorn: A ydych yn gennych gwestiwn, Avi? 427 00:21:04,150 --> 00:21:04,660 >> AVI: Na 428 00:21:04,660 --> 00:21:04,740 >> JASON Hirschhorn: OK. 429 00:21:04,740 --> 00:21:06,746 Rydw i'n mynd i aros arall saith eiliad. 430 00:21:06,746 --> 00:21:07,590 [Chwerthin] 431 00:21:07,590 --> 00:21:08,620 Dyna tip da iawn. 432 00:21:08,620 --> 00:21:10,750 Rydych guys nid yn unig yn ei hoffi gofyn cwestiynau. 433 00:21:10,750 --> 00:21:11,660 Mae hynny'n iawn. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Felly mae ein problem ymarfer cyntaf yw, yr ydym yn mynd i ddyblygu swyddogaeth 436 00:21:17,620 --> 00:21:22,330 offeryn llinell orchymyn eich bod yn ôl pob tebyg ddefnyddio cyn - copi - 437 00:21:22,330 --> 00:21:23,500 yr offeryn copi. 438 00:21:23,500 --> 00:21:28,050 Os byddwch yn teipio cp ac yna basio dau dadleuon yn eich terfynell, gallwch 439 00:21:28,050 --> 00:21:28,980 copïo ffeil. 440 00:21:28,980 --> 00:21:31,220 A dyna beth yr ydym yn mynd i ysgrifennu ar hyn o bryd. 441 00:21:31,220 --> 00:21:35,830 >> Felly eto, darllen oddi ar sleid hon, byddwn i'n i chi ysgrifennu rhaglen sy'n cymryd 442 00:21:35,830 --> 00:21:38,130 dau a dim ond dau gorchymyn-lein dadleuon - 443 00:21:38,130 --> 00:21:40,750 ffeil ffynhonnell a ffeil cyrchfan - 444 00:21:40,750 --> 00:21:44,590 a chopïau cynnwys y ffynhonnell ffeil i'r ffeil cyrchfan 445 00:21:44,590 --> 00:21:46,960 un beit ar y tro. 446 00:21:46,960 --> 00:21:48,510 Felly dyna lawer i ofyn am. 447 00:21:48,510 --> 00:21:52,200 >> Unwaith eto, ddull da o hyn yw Nid yw mynd yn syth at y cod C, ond 448 00:21:52,200 --> 00:21:54,280 dorri i lawr i mewn i un neu ddau o gamau. 449 00:21:54,280 --> 00:21:58,400 Yn gyntaf, meddyliwch am y rhesymeg - yn union yr hyn rwy'n gofyn i chi ei wneud - 450 00:21:58,400 --> 00:22:00,620 ac yn deall pob un o'r camau i'r broblem hon. 451 00:22:00,620 --> 00:22:04,410 Heb fod mewn C, dim ond mewn rhai pseudocode, neu hyd yn oed model meddwl 452 00:22:04,410 --> 00:22:06,030 beth sy'n mynd ymlaen. 453 00:22:06,030 --> 00:22:10,050 >> Nesaf, unwaith y byddwch yn cael y pseudocode i lawr, chyfrif i maes sut mae'r pseudocode 454 00:22:10,050 --> 00:22:14,600 mapiau ar offer a phethau rydym wedi dysgu i'w defnyddio yn C. 455 00:22:14,600 --> 00:22:19,070 >> Ac yn olaf, unwaith y byddwch i gyd wedi bod gyda'ch gilydd, gallwch cod y broblem. 456 00:22:19,070 --> 00:22:23,370 Cymerwch 5 i 10 munud i weithio ar y broblem hon. 457 00:22:23,370 --> 00:22:25,800 'N annhymerus' yn rhoi'r cyfarwyddiadau yn ôl i fyny mewn eiliad. 458 00:22:25,800 --> 00:22:27,990 Ac yna rydym yn mynd i fynd dros y pseudocode, a chod 459 00:22:27,990 --> 00:22:29,230 mae'n byw fel grŵp. 460 00:22:29,230 --> 00:22:31,640 >> Os oes gennych unrhyw gwestiynau tra byddwch yn gweithio ar hyn, mae croeso i godi 461 00:22:31,640 --> 00:22:34,260 eich llaw, a byddaf yn dod o gwmpas ac yn eu hateb. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> MYFYRIWR 7: Alla i swipe darn o bapur? 464 00:22:39,330 --> 00:22:41,537 >> JASON Hirschhorn: Beth sydd i fyny? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [THEIPIO SWNIO'N] 467 00:26:48,043 --> 00:26:48,730 >> JASON Hirschhorn: OK. 468 00:26:48,730 --> 00:26:51,710 Gadewch i ni fynd dros y pseudocode gyntaf, a Yna, byddaf yn rhoi cwpl fwyaf y byddwch yn 469 00:26:51,710 --> 00:26:52,960 munud i orffen codio. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Pwy fyddai'n hoffi dechrau m off gyda'r llinell gyntaf 472 00:26:58,650 --> 00:27:00,030 pseudocode gyfer y swyddogaeth hon? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> MYFYRIWR 8: Gwiriwch i wneud yn siŵr bod a roddwyd i chi ddwy ffeil. 475 00:27:05,740 --> 00:27:06,990 >> JASON Hirschhorn: OK. 476 00:27:06,990 --> 00:27:21,270 477 00:27:21,270 --> 00:27:22,990 Ac os nad ydym yn? 478 00:27:22,990 --> 00:27:25,974 >> MYFYRIWR 8: Byddwn yn dychwelyd 0. 479 00:27:25,974 --> 00:27:27,872 >> JASON Hirschhorn: A ddylem ni yn dychwelyd 0? 480 00:27:27,872 --> 00:27:30,182 >> MYFYRIWR 8: Dychwelyd a - 481 00:27:30,182 --> 00:27:30,650 blanking. 482 00:27:30,650 --> 00:27:30,850 Mae'n ddrwg gennym. 483 00:27:30,850 --> 00:27:31,210 >> JASON Hirschhorn: Yeah. 484 00:27:31,210 --> 00:27:32,710 Mae'n debyg nad 0. 485 00:27:32,710 --> 00:27:34,680 Oherwydd 0 yn golygu popeth yn dda. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Felly dyna llinell gyntaf o pseudocode. 488 00:27:36,730 --> 00:27:38,715 Pwy sydd â'r ail linell pseudocode? 489 00:27:38,715 --> 00:27:40,630 >> MYFYRIWR 9: Ar agor y ffeiliau? 490 00:27:40,630 --> 00:27:41,880 >> JASON Hirschhorn: Agor y ddau ffeiliau. 491 00:27:41,880 --> 00:27:49,970 492 00:27:49,970 --> 00:27:50,920 OK? 493 00:27:50,920 --> 00:27:52,850 >> MYFYRIWR 10: Edrychwch i weld os yw'r ffeil yn NULL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON Hirschhorn: Gwiriwch i wneud yn sicr nid yn NULL. 496 00:28:12,580 --> 00:28:15,800 Fel o'r neilltu - 497 00:28:15,800 --> 00:28:17,540 slaes 0 - 498 00:28:17,540 --> 00:28:18,887 yw bod NULL? 499 00:28:18,887 --> 00:28:20,080 >> MYFYRIWR 11: Rhif 500 00:28:20,080 --> 00:28:21,190 >> JASON Hirschhorn: Dyw hynny ddim yn NULL. 501 00:28:21,190 --> 00:28:23,400 Alw'n hynny yw'r terminator null. 502 00:28:23,400 --> 00:28:25,580 Mae'n sillafu'n mewn gwirionedd gyda dim ond un l. 503 00:28:25,580 --> 00:28:28,580 Felly, gwirio rhywbeth yn erbyn hynny - dyna mewn gwirionedd yn gymeriad - 504 00:28:28,580 --> 00:28:31,710 felly gwirio rhywbeth yn erbyn sy'n cael ei Nid yw yr un fath ag edrych i weld a yw'n 505 00:28:31,710 --> 00:28:32,690 yn dychwelyd NULL. 506 00:28:32,690 --> 00:28:34,100 >> Ac mae rhai pobl - 507 00:28:34,100 --> 00:28:36,040 ar eu cwisiau a eu problem setiau - wedi cael y 508 00:28:36,040 --> 00:28:36,890 dau o'r rheiny yn ddryslyd. 509 00:28:36,890 --> 00:28:38,830 Ond y ddau o'r rhain yn mewn gwirionedd gwahanol. 510 00:28:38,830 --> 00:28:40,220 Mae un yn dod i ben llinyn - 511 00:28:40,220 --> 00:28:43,210 mae un yn pwyntydd i 0. 512 00:28:43,210 --> 00:28:46,490 >> MYFYRIWR 12: Pam y byddai nad ydych yn gwirio i gwneud yn siŵr nad yw'r ffeiliau yn NULL 513 00:28:46,490 --> 00:28:48,670 cyn i chi eu hagor? 514 00:28:48,670 --> 00:28:54,772 >> JASON Hirschhorn: Felly agored yn arbed rhywbeth yn y ffeil. 515 00:28:54,772 --> 00:28:57,780 Ac os byddwch yn mynd yn ôl yma - 516 00:28:57,780 --> 00:28:59,520 felly y llinell hon - fopen - 517 00:28:59,520 --> 00:29:05,300 Bydd rhoi cyfeiriad a storfa i chi y cyfeiriad hwnnw yn y ffeil a yw'n gweithio. 518 00:29:05,300 --> 00:29:07,650 Os na fydd yn gweithio, mae'n Bydd storio NULL - 519 00:29:07,650 --> 00:29:08,020 >> MYFYRIWR 12: O. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 Rhaid i chi. 522 00:29:08,500 --> 00:29:09,050 >> JASON Hirschhorn: Yn ffeil. 523 00:29:09,050 --> 00:29:11,990 Felly, nad ydych yn gallu gwirio am NULL cyn i chi eu hagor. 524 00:29:11,990 --> 00:29:13,520 NULL golygu nad oedd rhywbeth gweithio'n gywir. 525 00:29:13,520 --> 00:29:18,030 526 00:29:18,030 --> 00:29:18,740 OK. 527 00:29:18,740 --> 00:29:22,590 Felly, gwirio i wneud yn siŵr nid yw? 528 00:29:22,590 --> 00:29:23,200 Neu a? 529 00:29:23,200 --> 00:29:23,770 Beth ydym yn ei feddwl? 530 00:29:23,770 --> 00:29:24,310 Byddwn yn mynd â hynny. 531 00:29:24,310 --> 00:29:24,520 >> MYFYRIWR 13: Ydy. 532 00:29:24,520 --> 00:29:25,020 >> JASON Hirschhorn: Ydy? 533 00:29:25,020 --> 00:29:25,930 Nid yw? 534 00:29:25,930 --> 00:29:26,350 >> MYFYRIWR 13: Ydy. 535 00:29:26,350 --> 00:29:26,390 >> JASON Hirschhorn: OK. 536 00:29:26,390 --> 00:29:28,510 Rydym yn ymddangos i gael rhywfaint o consensws ar hynny. 537 00:29:28,510 --> 00:29:30,520 Nid yw NULL. 538 00:29:30,520 --> 00:29:32,250 OK, llinell nesaf o pseudocode. 539 00:29:32,250 --> 00:29:33,600 Pwy sydd wedi rhoi i mi llinell eto? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Byddwn yn aros i chi. 542 00:29:38,295 --> 00:29:39,020 Yeah. 543 00:29:39,020 --> 00:29:40,895 >> MYFYRIWR 14: Mae'n rhaid i chi ddarllen o'r ffeil cyntaf? 544 00:29:40,895 --> 00:29:42,290 >> JASON Hirschhorn: OK. 545 00:29:42,290 --> 00:29:46,240 >> MYFYRIWR 14: Neu rydym yn defnyddio fscanf neu rhywbeth fel 'na y ffeil gyntaf? 546 00:29:46,240 --> 00:29:50,650 >> JASON Hirschhorn: Felly rydym am darllen o'r ffeil gyntaf a - 547 00:29:50,650 --> 00:29:51,900 gadewch i ni gywiro hynny yma. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Darllen o'r ffeil ffynhonnell. 550 00:30:01,880 --> 00:30:05,370 Ac yna, beth ydym yn ei wneud ar ôl i ni darllen o'r ffeil ffynhonnell? 551 00:30:05,370 --> 00:30:06,620 Rhywun arall? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> MYFYRIWR 15: Ysgrifennu i y ffeil cyrchfan? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON Hirschhorn: Rydym yn ysgrifennu at y ffeil cyrchfan, ac - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Beth arall rydym yn ar goll? 558 00:30:30,030 --> 00:30:32,460 Rhywun arall nad yw wedi rhoi i mi yn llinell o god eto - o pseudocode. 559 00:30:32,460 --> 00:30:33,510 Yeah. 560 00:30:33,510 --> 00:30:36,540 >> MYFYRIWR 16: Efallai y gallwch chi bob amser wirio a oes rhywbeth i ddarllen er mwyn, 561 00:30:36,540 --> 00:30:37,970 fel y llinell nesaf? 562 00:30:37,970 --> 00:30:39,550 Bod yn debyg y llinell nesaf, weld os yw'n bodoli. 563 00:30:39,550 --> 00:30:40,660 >> [ELECTRONIG BEEP] 564 00:30:40,660 --> 00:30:41,095 >> JASON Hirschhorn: Wps. 565 00:30:41,095 --> 00:30:43,120 Dyna fy meddalwedd ddyddlyfru. 566 00:30:43,120 --> 00:30:43,580 Yeah? 567 00:30:43,580 --> 00:30:44,960 >> MYFYRIWR 16: Yeah. 568 00:30:44,960 --> 00:30:48,940 >> JASON Hirschhorn: Felly rhowch i mi, un mwy o amser. 569 00:30:48,940 --> 00:30:51,640 >> MYFYRIWR 16: Gwiriwch a oes dal i fod yn llinell nesaf o'r 570 00:30:51,640 --> 00:30:52,920 ffeil ffynhonnell i ddarllen. 571 00:30:52,920 --> 00:30:53,500 >> JASON Hirschhorn: OK. 572 00:30:53,500 --> 00:30:56,060 Felly, nid ydym yn darllen llinellau - yn darllen bytes yma - 573 00:30:56,060 --> 00:30:57,590 ond eich bod yn gywir. 574 00:30:57,590 --> 00:31:00,040 Rydym am i ddarllen ac ysgrifennu nes nad oes mwy bytes. 575 00:31:00,040 --> 00:31:11,430 576 00:31:11,430 --> 00:31:11,735 OK. 577 00:31:11,735 --> 00:31:16,940 Ac felly dylai'r rhain gwirionedd fod hindentio ychydig, oherwydd eu bod o dan yno. 578 00:31:16,940 --> 00:31:17,470 Iawn? 579 00:31:17,470 --> 00:31:20,620 Hyd nes y byddwn yn ddi-bytes, rydym yn mynd i darllen o'r ffeil ffynhonnell ac ysgrifennu 580 00:31:20,620 --> 00:31:22,160 at y ffeil cyrchfan. 581 00:31:22,160 --> 00:31:24,510 >> Ac yna, beth yw'r olaf llinell o pseudocode? 582 00:31:24,510 --> 00:31:26,380 Rhywun nad wedi rhoi rhywbeth i mi eto. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> MYFYRIWR 17: Cau'r ffeiliau? 585 00:31:30,260 --> 00:31:31,510 >> JASON Hirschhorn: Yn union. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Caewch y ffeiliau. 588 00:31:37,450 --> 00:31:38,400 Felly, mae ein pseudocode. 589 00:31:38,400 --> 00:31:41,870 Rydw i'n mynd i roi'r pseudocode i gedit, ac mewn ychydig funudau yr ydym yn 590 00:31:41,870 --> 00:31:44,626 Bydd cod hwn ar y cyd. 591 00:31:44,626 --> 00:33:55,280 592 00:33:55,280 --> 00:33:56,000 >> OK. 593 00:33:56,000 --> 00:33:58,290 Gadewch i ni ddechrau arni fel grŵp. 594 00:33:58,290 --> 00:33:59,940 Nishant, yr wyf wedi fy ffeil newydd. 595 00:33:59,940 --> 00:34:01,130 Rydw i wedi newydd agor hyn i fyny. 596 00:34:01,130 --> 00:34:01,880 Untitled Document 1. 597 00:34:01,880 --> 00:34:05,490 Beth yw'r peth cyntaf y dylwn ei wneud? 598 00:34:05,490 --> 00:34:07,040 >> NISHANT: Cynnwys llyfrgelloedd? 599 00:34:07,040 --> 00:34:08,219 >> JASON Hirschhorn: OK. 600 00:34:08,219 --> 00:34:11,070 Pa llyfrgelloedd? 601 00:34:11,070 --> 00:34:17,570 >> NISHANT: Stdio.h, stdlib.h, yr wyf yn credu? 602 00:34:17,570 --> 00:34:18,000 >> JASON Hirschhorn: OK. 603 00:34:18,000 --> 00:34:21,592 Beth yw stdlib amdano? 604 00:34:21,592 --> 00:34:23,010 >> NISHANT: Wedi anghofio. 605 00:34:23,010 --> 00:34:23,219 >> JASON Hirschhorn: OK. 606 00:34:23,219 --> 00:34:24,179 Felly cynnwys stdio. 607 00:34:24,179 --> 00:34:28,630 Beth ddylwn i ei wneud hyd yn oed cyn Byddaf yn dechrau codio? 608 00:34:28,630 --> 00:34:29,710 >> NISHANT: Ysgrifennwch pennawd? 609 00:34:29,710 --> 00:34:31,830 >> JASON Hirschhorn: Sut ydw i'n cael ei lliw? 610 00:34:31,830 --> 00:34:34,060 >> [LLEISIAU ymyrryd yn] 611 00:34:34,060 --> 00:34:35,040 >> NISHANT: Sut ydych chi'n ei gael lliw? 612 00:34:35,040 --> 00:34:38,060 >> JASON Hirschhorn: Sut ydw i'n lliw codio? 613 00:34:38,060 --> 00:34:38,570 >> NISHANT: Nid wyf yn gwybod. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Arbed. 616 00:34:39,389 --> 00:34:39,929 >> JASON Hirschhorn: Achub. 617 00:34:39,929 --> 00:34:40,270 Ie. 618 00:34:40,270 --> 00:34:41,760 Dylwn gadw fel. C. 619 00:34:41,760 --> 00:34:46,239 Felly, ei gadw ar y bwrdd gwaith fel cp.c. 620 00:34:46,239 --> 00:34:47,280 Melys. 621 00:34:47,280 --> 00:34:51,199 Ac os ydw i am gael arddull llawn pwyntiau, beth ddylwn i 622 00:34:51,199 --> 00:34:53,085 gynnwys ar y brig? 623 00:34:53,085 --> 00:34:58,390 >> NISHANT: Gallwch ysgrifennu eich enw, enw y rhaglen, a phwrpas 624 00:34:58,390 --> 00:34:59,640 y rhaglen hefyd? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON Hirschhorn: Edrych yn dda. 627 00:35:10,040 --> 00:35:10,470 Ardderchog. 628 00:35:10,470 --> 00:35:12,940 Felly, rydych wedi dechrau i ffwrdd â ni berffaith. 629 00:35:12,940 --> 00:35:13,720 # Yn cynnwys - 630 00:35:13,720 --> 00:35:15,365 byddwn hefyd yn ysgrifennu - 631 00:35:15,365 --> 00:35:30,050 632 00:35:30,050 --> 00:35:30,870 OK. 633 00:35:30,870 --> 00:35:33,520 Felly, yr wyf yn meddwl fy mod yn barod i fynd. 634 00:35:33,520 --> 00:35:38,003 Pwy sydd â'r llinell gyntaf o god i mi - neu y llinellau cyntaf y cod sy'n 635 00:35:38,003 --> 00:35:41,280 bydd yn ei gymryd i fodloni ein cyntaf sylwadau pseudocode? 636 00:35:41,280 --> 00:35:41,985 Chi. 637 00:35:41,985 --> 00:35:48,780 >> MYFYRIWR 18: Os na fydd yn int argc, ac yna llosg * argv? 638 00:35:48,780 --> 00:35:49,490 >> JASON Hirschhorn: Yr wyf yn meddwl eich bod yn gywir. 639 00:35:49,490 --> 00:35:56,270 Gadewch i ni ei newid i int prif paren, agored, argc int, coma, cols * argv? 640 00:35:56,270 --> 00:35:57,150 Fel hynny? 641 00:35:57,150 --> 00:35:57,410 >> MYFYRIWR 18: Bracedi. 642 00:35:57,410 --> 00:35:58,260 >> JASON Hirschhorn: Bracedi. 643 00:35:58,260 --> 00:35:59,860 Braced Agored, braced agos, rhiant agos. 644 00:35:59,860 --> 00:36:00,240 Perffaith. 645 00:36:00,240 --> 00:36:02,160 Nawr gallaf gymryd dadleuon gorchymyn-lein. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Sicrhau ein bod yn rhoi dwy ffeil. 648 00:36:04,250 --> 00:36:07,905 Gallwch ei roi imi hynny hefyd. 649 00:36:07,905 --> 00:36:09,180 >> MYFYRIWR 18: Os argc - 650 00:36:09,180 --> 00:36:11,060 nid yw hyn yn un yn gyfartal 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON Hirschhorn: Os paren agored Nid yw argc yn gyfartal 3? 652 00:36:14,360 --> 00:36:16,970 >> MYFYRIWR 18: Yeah, byddwch yn dychwelyd 1 neu unrhyw beth. 653 00:36:16,970 --> 00:36:17,460 >> JASON Hirschhorn: Mae'n ddrwg gennyf. 654 00:36:17,460 --> 00:36:19,120 >> MYFYRIWR 18: Ffurflen 1 neu unrhyw beth. 655 00:36:19,120 --> 00:36:20,270 >> JASON Hirschhorn: Dychwelyd 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Great. 658 00:36:22,970 --> 00:36:24,290 Agorwch y ddau ffeiliau. 659 00:36:24,290 --> 00:36:26,160 Pwy all fy helpu i agor y ddau ffeiliau? 660 00:36:26,160 --> 00:36:28,125 Pwy sydd wedi rhoi i mi cod eto? 661 00:36:28,125 --> 00:36:31,510 662 00:36:31,510 --> 00:36:32,320 Kurt? 663 00:36:32,320 --> 00:36:36,145 >> KURT: Felly yr holl gapiau ffynhonnell F-I-L-E seren. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON Hirschhorn: Dw i'n mynd i gymryd y llafariaid. 666 00:36:40,920 --> 00:36:41,570 Mae'r rhai yn oer. 667 00:36:41,570 --> 00:36:42,716 Mae fel Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> MYFYRIWR 18: Equals fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON Hirschhorn: Equals fopen? 670 00:36:46,612 --> 00:36:49,870 >> MYFYRIWR 18: paren Agored, argv, braced agored. 671 00:36:49,870 --> 00:36:50,055 >> JASON Hirschhorn: Aros. 672 00:36:50,055 --> 00:36:50,240 Mae'n ddrwg gennym. 673 00:36:50,240 --> 00:36:51,050 Paren agored. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> MYFYRIWR 18: Yeah. 676 00:36:53,080 --> 00:36:55,110 Argv is 1. 677 00:36:55,110 --> 00:36:55,860 >> JASON Hirschhorn: Is-1? 678 00:36:55,860 --> 00:36:56,140 >> MYFYRIWR 18: Yeah. 679 00:36:56,140 --> 00:36:58,540 Argv braced agored 1 - 680 00:36:58,540 --> 00:36:59,730 ie. 681 00:36:59,730 --> 00:37:06,470 Ac yna coma, ac yna agor dwbl dyfynnwch, r, dyfynnwch dwbl, 682 00:37:06,470 --> 00:37:08,250 paren agos, hanner colon. 683 00:37:08,250 --> 00:37:09,450 >> JASON Hirschhorn: Sweet. 684 00:37:09,450 --> 00:37:10,950 A beth am y llall? 685 00:37:10,950 --> 00:37:16,030 >> MYFYRIWR 18: Yn debyg iawn, ond yn hytrach o S-R-C, byddech yn ei alw'n D-S-T. 686 00:37:16,030 --> 00:37:17,060 >> JASON Hirschhorn: OO! 687 00:37:17,060 --> 00:37:17,772 Rwy'n hoffi hynny. 688 00:37:17,772 --> 00:37:20,010 >> MYFYRIWR 18: Dim ond D-S-T. Yeah. 689 00:37:20,010 --> 00:37:23,057 Ac yna argv, braced agored, 2. 690 00:37:23,057 --> 00:37:23,200 Yeah. 691 00:37:23,200 --> 00:37:26,720 Ac yna w yn hytrach na r. 692 00:37:26,720 --> 00:37:27,620 Yeah. 693 00:37:27,620 --> 00:37:29,630 >> JASON Hirschhorn: Great. 694 00:37:29,630 --> 00:37:31,360 Neu ddwy nesaf o linellau. 695 00:37:31,360 --> 00:37:34,040 Hefyd, os oes gan unrhyw un pethau i ychwanegu at llinellau yr ydym wedi ei wneud, mae croeso i 696 00:37:34,040 --> 00:37:35,690 ychwanegu hynny hefyd. 697 00:37:35,690 --> 00:37:37,520 Gwiriwch i wneud yn siŵr nid yw NULL. 698 00:37:37,520 --> 00:37:41,450 Pwy all roi y cod ei angen arnaf i bodloni bod llinell o pseudocode? 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 Archer. 701 00:37:45,870 --> 00:37:58,645 >> ARCHER: Os src hafal hafal NULL neu DST hafal hafal 702 00:37:58,645 --> 00:38:04,590 NULL, yna byddwch yn dychwelyd - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON Hirschhorn: Beth? 705 00:38:07,976 --> 00:38:08,890 >> ARCHER: Ôl 2? 706 00:38:08,890 --> 00:38:09,760 >> JASON Hirschhorn: Dychwelyd 2. 707 00:38:09,760 --> 00:38:14,400 Felly, os src paren agored yn dychwelyd yn hafal i NULL, neu - 708 00:38:14,400 --> 00:38:15,590 beth bynnag yw thing's - bibell? 709 00:38:15,590 --> 00:38:16,346 Pipe? 710 00:38:16,346 --> 00:38:17,140 Byddwn yn ei alw'n bibell. 711 00:38:17,140 --> 00:38:22,340 Pipe, pibell, DST hafal hafal NULL, yn dychwelyd 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Hyd nes y byddwn yn allan o bytes - 714 00:38:26,060 --> 00:38:29,820 rydym yn fath o hepgor dros y cam o y pseudocode ran mynd i'r YMA. 715 00:38:29,820 --> 00:38:31,970 >> Ond nes ein bod allan o bytes - beth mae hynny'n swnio fel? 716 00:38:31,970 --> 00:38:34,680 Pa fath o strwythur C - 717 00:38:34,680 --> 00:38:36,160 ond nid wyf yn defnyddio strwythur y gair, oherwydd ein bod ni'n mynd i ddechrau defnyddio 718 00:38:36,160 --> 00:38:37,350 mewn achosion eraill - 719 00:38:37,350 --> 00:38:39,495 ond offeryn C yn gwneud hynny swnio fel? 720 00:38:39,495 --> 00:38:39,970 >> MYFYRIWR 19: Mae dolen. 721 00:38:39,970 --> 00:38:40,980 >> JASON Hirschhorn: A dolen. 722 00:38:40,980 --> 00:38:43,060 Mae'n swnio fel dolen. 723 00:38:43,060 --> 00:38:49,670 Felly pwy all roi y llinell gyntaf i mi y cod ddolen yma? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Gallwch hefyd ddewis pa fath o dolen rydych ei eisiau, os byddwch yn rhoi i mi 726 00:39:01,980 --> 00:39:03,215 y llinell hon o god. 727 00:39:03,215 --> 00:39:04,150 Mae yna dri math. 728 00:39:04,150 --> 00:39:06,530 Byddwch yn cael i ddewis. 729 00:39:06,530 --> 00:39:08,080 Byddwn yn awgrymu un o'r rheiny. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Pa un wyt ti eisiau? 732 00:39:09,230 --> 00:39:09,960 >> AVI: AM. 733 00:39:09,960 --> 00:39:11,460 >> JASON Hirschhorn: AM. 734 00:39:11,460 --> 00:39:15,180 >> AVI: int i yn hafal i sero. 735 00:39:15,180 --> 00:39:17,360 >> JASON Hirschhorn: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: Mae'r rhan Dydw i ddim yn siŵr am. 737 00:39:18,570 --> 00:39:29,080 Ond fi yn llai na maint ffynhonnell seren? 738 00:39:29,080 --> 00:39:31,128 Nid wyf yn siŵr o hynny. 739 00:39:31,128 --> 00:39:32,580 >> JASON Hirschhorn: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Oherwydd eich bod am gael y maint o ffeil, dde? 741 00:39:35,870 --> 00:39:41,090 >> JASON Hirschhorn: Felly, mae hyn nid mae'n debyg y bydd rhoi maint y gwir ni 742 00:39:41,090 --> 00:39:43,010 ffeil mewn beitiau. 743 00:39:43,010 --> 00:39:47,680 Felly beth arall y gallem ei wneud? 744 00:39:47,680 --> 00:39:48,810 Beth yn fath arall o ddolen? 745 00:39:48,810 --> 00:39:50,180 Neu a ddylem gadw at y dolen I? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> MYFYRIWR 20: A allech chi wneud dolen TRA? 748 00:39:57,900 --> 00:40:01,350 Ac yna, hyn y byddech yn ei wneud yw you'd - 749 00:40:01,350 --> 00:40:03,930 oherwydd ein bod wedi torgoch yn * ar gyfer y ffeil. 750 00:40:03,930 --> 00:40:07,950 Felly, os ydym yn unig yn cadw incrementing bod hyd nes y byddem yn dod o hyd i'r cymeriad NULL ar 751 00:40:07,950 --> 00:40:08,500 y diwedd? 752 00:40:08,500 --> 00:40:11,130 Neu ddim, yw nad yw sut y ffeiliau yn gweithio? 753 00:40:11,130 --> 00:40:14,300 >> JASON Hirschhorn: Felly gallwn gadw incrementing y torgoch * 754 00:40:14,300 --> 00:40:16,340 nes i ni ddod o hyd i'r NULL - 755 00:40:16,340 --> 00:40:18,580 >> MYFYRIWR 20: Yn y bôn dal i fynd cymeriad drwy gymeriad nes i ni gyrraedd 756 00:40:18,580 --> 00:40:21,250 ddiwedd y ffeil. 757 00:40:21,250 --> 00:40:21,600 >> JASON Hirschhorn: Ydw. 758 00:40:21,600 --> 00:40:22,560 Felly, dyna beth yr ydym am ei wneud. 759 00:40:22,560 --> 00:40:24,545 Rydym yn awyddus i gadw darllen, cymeriad gan gymeriad, nes i ni gyrraedd 760 00:40:24,545 --> 00:40:25,080 ddiwedd y ffeil. 761 00:40:25,080 --> 00:40:25,375 >> MYFYRIWR 20: Yeah. 762 00:40:25,375 --> 00:40:25,860 Dod o hyd i - 763 00:40:25,860 --> 00:40:28,540 beth yw'r diwedd neu arwydd stop ar ddiwedd y ffeil testun. 764 00:40:28,540 --> 00:40:28,620 >> JASON Hirschhorn: OK. 765 00:40:28,620 --> 00:40:30,140 Felly, pan fyddwn yn cyrraedd y diwedd y ffeil - sut rydym yn gwybod ein bod wedi cyrraedd 766 00:40:30,140 --> 00:40:33,200 ddiwedd y ffeil? 767 00:40:33,200 --> 00:40:34,710 Os ydw i'n galw - 768 00:40:34,710 --> 00:40:35,910 felly gadewch i cam yn ôl. 769 00:40:35,910 --> 00:40:37,550 Beth yw swyddogaeth? 770 00:40:37,550 --> 00:40:39,360 Gadewch i ni fynd i'r llinell hon yn iawn yma. 771 00:40:39,360 --> 00:40:40,630 Darllen o'r ffeil ffynhonnell. 772 00:40:40,630 --> 00:40:41,880 Pwy all roi y llinell o god i mi? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> MYFYRIWR 21: Fscanf? 775 00:40:47,590 --> 00:40:49,110 >> JASON Hirschhorn: Fscanf. 776 00:40:49,110 --> 00:40:49,510 OK. 777 00:40:49,510 --> 00:40:52,240 Beth os wyf am i ddarllen, iawn yn benodol, un beit? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> MYFYRWYR 21: Nid wyf yn gwybod. 780 00:40:56,860 --> 00:40:57,110 >> JASON Hirschhorn: OK. 781 00:40:57,110 --> 00:40:59,380 Hyd yn oed yn symlach na fscanf - beth yw - 782 00:40:59,380 --> 00:41:01,890 Yr wyf am i ddarllen o ffeil ffynhonnell? 783 00:41:01,890 --> 00:41:03,720 Darllen o ffeil ffynhonnell. 784 00:41:03,720 --> 00:41:04,850 Beth yw swyddogaeth - yeah. 785 00:41:04,850 --> 00:41:05,380 >> MYFYRWYR 22: Mae'n LandLine fread? 786 00:41:05,380 --> 00:41:06,070 >> JASON Hirschhorn: Fread. 787 00:41:06,070 --> 00:41:07,550 Yr wyf yn meddwl gadewch i ni daro ag mai un am y tro. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Pa fath o ddadleuon mae fread cymryd? 790 00:41:13,650 --> 00:41:17,410 >> MYFYRIWR 22: Mae'n debyg mai'r math o ffeil, ac yna leoliad yn y ffeil? 791 00:41:17,410 --> 00:41:19,550 >> JASON Hirschhorn: Beth allaf ei deipio yma at chyfrif i maes pa fath o ddadleuon 792 00:41:19,550 --> 00:41:20,950 fread yn cymryd? 793 00:41:20,950 --> 00:41:23,710 >> MYFYRWYR LLUOSOG: fread Manaw. 794 00:41:23,710 --> 00:41:24,740 >> JASON Hirschhorn: Dyn fread a fwrite. 795 00:41:24,740 --> 00:41:25,980 Edrych fel maent yn hongian allan gyda'i gilydd. 796 00:41:25,980 --> 00:41:29,589 Felly fread yn cymryd faint o ddadleuon? 797 00:41:29,589 --> 00:41:30,920 >> MYFYRIWR 23: Four. 798 00:41:30,920 --> 00:41:32,690 >> JASON Hirschhorn: Mae'n cymryd pedwar dadleuon. 799 00:41:32,690 --> 00:41:41,100 Mae'n cymryd pwyntydd, maint, a bod peth, sydd yn rhyfedd, ac mae rhai ffeil. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Gadewch i ddarllen am y peth yma. 802 00:41:43,990 --> 00:41:49,370 "Mae'r fread swyddogaeth yn darllen n memb elfennau o ddata, bob maint bytes 803 00:41:49,370 --> 00:41:53,840 hir, o'r nant yn tynnu sylw at y nant, gan eu storio yn y lleoliad 804 00:41:53,840 --> 00:41:56,170 a roddir gan pwyntydd. " 805 00:41:56,170 --> 00:41:57,960 >> Felly pedwar dadleuon. 806 00:41:57,960 --> 00:42:04,510 Pam nad ydw i'n jyst adysgrifia hyn, a bastio yn iawn yma. 807 00:42:04,510 --> 00:42:10,060 808 00:42:10,060 --> 00:42:10,770 OK. 809 00:42:10,770 --> 00:42:13,673 Felly pwy gallu dechrau llenwi dadleuon hyn i mi? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Tynnwch y gwagle. 812 00:42:17,720 --> 00:42:20,530 Rhowch yn unig src. 813 00:42:20,530 --> 00:42:23,142 Cymerwch allan pwyntydd a'r seren. 814 00:42:23,142 --> 00:42:26,102 Rhowch src. 815 00:42:26,102 --> 00:42:27,050 Yna - 816 00:42:27,050 --> 00:42:28,500 >> JASON Hirschhorn: Felly, yr wyf i'n mynd i roi'r gorau i chi yno, oherwydd dyna anghywir. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Rydych chi'n iawn gyda src, ond lle y dylai fynd src? 819 00:42:34,710 --> 00:42:35,960 >> [LLEISIAU ymyrryd yn] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON Hirschhorn: Dylai mynd dros yma. 822 00:42:41,610 --> 00:42:43,790 Dyna'r src - ein src yn fath. 823 00:42:43,790 --> 00:42:44,610 Gadewch i ni edrych yma. 824 00:42:44,610 --> 00:42:49,610 Mae hyn yn gofyn am fath FFEIL *, rydym yn mewn gwirionedd fel arfer yn eu gweld fel 'na. 825 00:42:49,610 --> 00:42:57,630 Felly, mae hyn yn gofyn am ddadl o deipio FFEIL * a elwir yn nant sy'n src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Pa faint o bethau yn ei wneud rydym eisiau eu darllen? 828 00:43:00,410 --> 00:43:03,340 Yr wyf yn rhoi i chi hwn yn y disgrifiad problem. 829 00:43:03,340 --> 00:43:04,370 >> MYFYRIWR 24: Un beit ar y tro. 830 00:43:04,370 --> 00:43:05,340 >> JASON Hirschhorn: Un beit. 831 00:43:05,340 --> 00:43:08,205 Pa mor fawr yw beit? 832 00:43:08,205 --> 00:43:11,642 Mae ei maint mewn bytes, felly beth allaf i ei roi iawn yno? 833 00:43:11,642 --> 00:43:12,910 >> MYFYRIWR 25: Un. 834 00:43:12,910 --> 00:43:14,730 >> JASON Hirschhorn: Un. 835 00:43:14,730 --> 00:43:17,020 Iawn. 836 00:43:17,020 --> 00:43:19,940 Mae ei maint yn uned beit, felly mae 1 yn 1 beit. 837 00:43:19,940 --> 00:43:22,284 Faint o ydw i am ei ddarllen ar y tro. 838 00:43:22,284 --> 00:43:23,520 >> MYFYRIWR 26: Un? 839 00:43:23,520 --> 00:43:24,270 >> JASON Hirschhorn: Un peth. 840 00:43:24,270 --> 00:43:28,540 Rwyf am i ddarllen un peth o faint 1, un brathiad ar y tro. 841 00:43:28,540 --> 00:43:32,110 A ble i roi, ar ôl i mi ei ddarllen? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> MYFYRIWR 27: Cyrchfan? 844 00:43:36,510 --> 00:43:39,270 >> JASON Hirschhorn: Felly, ni allaf roi yn syth i mewn i gyrchfan. 845 00:43:39,270 --> 00:43:40,800 >> MYFYRIWR 28: Rydych yn gonna Rhowch i mewn i un rhan o dair pwyntydd? 846 00:43:40,800 --> 00:43:41,780 >> MYFYRIWR 27: I'r gyrchfan. 847 00:43:41,780 --> 00:43:42,270 >> JASON Hirschhorn: OK. 848 00:43:42,270 --> 00:43:42,630 Yeah. 849 00:43:42,630 --> 00:43:46,820 >> MYFYRWYR 29: Gallwch chi ddatgan rhywbeth i gweithredu fel storio dros dro yn gynharach. 850 00:43:46,820 --> 00:43:47,350 >> JASON Hirschhorn: OK. 851 00:43:47,350 --> 00:43:50,080 Rhowch i mi hynny. 852 00:43:50,080 --> 00:43:53,930 >> MYFYRIWR 29: ffeil arall pwyntydd, efallai? 853 00:43:53,930 --> 00:43:54,220 >> JASON Hirschhorn: OK. 854 00:43:54,220 --> 00:43:55,585 Felly, mae hyn yn seren ddi-rym - 855 00:43:55,585 --> 00:43:57,750 mae'n seren fath yn ddi-rym, felly nid yw'n rhaid cael pwyntydd ffeil. 856 00:43:57,750 --> 00:44:02,520 Ac os ydw i'n darllen un beit, byddai lle yn lle da 857 00:44:02,520 --> 00:44:03,850 i storio un beit? 858 00:44:03,850 --> 00:44:04,660 >> MYFYRIWR 29: Mae casgliad? 859 00:44:04,660 --> 00:44:05,770 >> JASON Hirschhorn: Mae amrywiaeth. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 A beth arall yn rhywbeth sy'n dim ond maint un beit? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> MYFYRIWR 30: A torgoch *? 864 00:44:18,060 --> 00:44:18,530 >> MYFYRIWR 29: Yeah. 865 00:44:18,530 --> 00:44:19,880 >> JASON Hirschhorn: A torgoch * Nid yw un beit. 866 00:44:19,880 --> 00:44:20,440 >> MYFYRIWR 29: A torgoch. 867 00:44:20,440 --> 00:44:21,810 >> JASON Hirschhorn: Mae torgoch yn un beit. 868 00:44:21,810 --> 00:44:22,920 Iawn? 869 00:44:22,920 --> 00:44:26,740 Felly, gadewch i ni yn galw byffer hwn yn generig enw a ddefnyddir ar gyfer y pethau hyn i storio 870 00:44:26,740 --> 00:44:27,910 rhywbeth dros dro. 871 00:44:27,910 --> 00:44:30,880 Felly, yr wyf yn creu byffer. 872 00:44:30,880 --> 00:44:31,150 Iawn? 873 00:44:31,150 --> 00:44:32,990 Ond mae'n cymryd yn ddi-rym *. 874 00:44:32,990 --> 00:44:38,660 Felly, efallai eich bod yn iawn, ei bod yn Dylai fod yn byffer o faint 0. 875 00:44:38,660 --> 00:44:41,070 Felly, mae'n storio un - 876 00:44:41,070 --> 00:44:41,280 iawn. 877 00:44:41,280 --> 00:44:43,560 >> Gan fod yr hawl yma - torgoch byffer yn gymeriad, ond 878 00:44:43,560 --> 00:44:45,110 mae hyn yn cymryd lle gwag * - 879 00:44:45,110 --> 00:44:45,870 pwyntydd. 880 00:44:45,870 --> 00:44:50,640 Er mwyn i mi wneud hyn ac yn awr byffer yn pwyntydd. 881 00:44:50,640 --> 00:44:53,214 Beth arall allwn i ei wneud? 882 00:44:53,214 --> 00:44:55,775 >> MYFYRIWR 31: Rhowch seren nesaf i torgoch. 883 00:44:55,775 --> 00:44:58,380 >> JASON Hirschhorn: gallwn wedi creu ei torgoch *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Beth sy'n beth arall y gallwn ei wneud? 886 00:45:03,131 --> 00:45:04,050 Neu gadewch i ni fynd â hwn. 887 00:45:04,050 --> 00:45:05,740 Golosg * byffer, felly beth Nid wyf yn rhoi i mewn yma? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> MYFYRIWR 31: Ffiniol. 890 00:45:09,310 --> 00:45:10,560 >> JASON Hirschhorn: Ffiniol. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Byffer yn pwyntydd i torgoch. 893 00:45:14,500 --> 00:45:19,480 Ac yn y lleoliad hwnnw, rydym yn rhoi un beit o rhywbeth yr ydym wedi darllen. 894 00:45:19,480 --> 00:45:19,980 Yeah. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Dim ond cwestiwn cyflym. 897 00:45:21,230 --> 00:45:24,440 Ydych chi eisiau i malloc byffer? 898 00:45:24,440 --> 00:45:25,930 >> JASON Hirschhorn: Pwy all ateb y cwestiwn? 899 00:45:25,930 --> 00:45:30,210 >> MYFYRIWR 32: Wel, Nid yw'n wir pwynt i unrhyw beth ar hyn o bryd, felly - 900 00:45:30,210 --> 00:45:32,610 >> JASON Hirschhorn: Ond peidiwch rydym am i malloc iddo? 901 00:45:32,610 --> 00:45:35,600 >> MYFYRIWR 32: Pe baech yn gwneud hynny bod ffordd, yr wyf yn dyfalu, ie, oherwydd byddai angen i chi 902 00:45:35,600 --> 00:45:36,990 ryw le er mwyn iddo gyfeirio at. 903 00:45:36,990 --> 00:45:38,350 >> JASON Hirschhorn: A ydym yn rhaid i malloc ei? 904 00:45:38,350 --> 00:45:40,580 >> MYFYRIWR 33: Os ydych yn mynd i defnyddio y tu allan i'r ddolen. 905 00:45:40,580 --> 00:45:42,524 >> JASON Hirschhorn: A ydym yn mynd i defnyddio y tu allan o'r ddolen? 906 00:45:42,524 --> 00:45:44,392 >> MYFYRIWR 34: Oes. 907 00:45:44,392 --> 00:45:44,860 >> MYFYRIWR 35: Aros. 908 00:45:44,860 --> 00:45:46,980 A ydym eisiau ei ddatgan yn y ddolen i tu hwnt? 909 00:45:46,980 --> 00:45:50,100 >> JASON Hirschhorn: Felly, yr wyf yn dyfalu rydym wedi rhywfaint o dolen TRA ffug yma ein bod ni'n 910 00:45:50,100 --> 00:45:51,950 ceisio at chyfrif i maes, hynny nid ydym wedi gotten i eto. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Nid oes angen i ni malloc iddo. 913 00:45:56,010 --> 00:45:59,310 Rydym yn gweithredu yn y prif, mae'n dim ond yn mynd i gael eu defnyddio y tu mewn dolen hwn. 914 00:45:59,310 --> 00:46:00,540 Nid oes angen i fodoli y tu allan i'r. 915 00:46:00,540 --> 00:46:02,340 >> Felly, gall fod yn newidyn lleol. 916 00:46:02,340 --> 00:46:03,925 Mae gennych pwyntydd i newidyn lleol. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> MYFYRIWR 36: Ond nid yw'n bwyntio at unrhyw beth. 919 00:46:09,590 --> 00:46:11,540 >> JASON Hirschhorn: Na, nid yw'n ymgychwyn i unrhyw beth. 920 00:46:11,540 --> 00:46:12,790 Ond nid ydym yn mynd i'w ddefnyddio hefyd. 921 00:46:12,790 --> 00:46:15,300 Rydym yn mynd i roi rhywbeth yn y tro cyntaf i ni ei ddefnyddio. 922 00:46:15,300 --> 00:46:16,580 Felly, mae hynny'n ymddangos OK. 923 00:46:16,580 --> 00:46:17,780 Felly nid oes angen malloc ni yma. 924 00:46:17,780 --> 00:46:19,360 Ac yr wyf yn meddwl ei fod yn iawn fel y mae. 925 00:46:19,360 --> 00:46:24,350 926 00:46:24,350 --> 00:46:25,790 OK. 927 00:46:25,790 --> 00:46:27,190 Mae gennym y llinell fread. 928 00:46:27,190 --> 00:46:28,490 Gadewch i ni wneud y llinell nesaf. 929 00:46:28,490 --> 00:46:32,984 >> Os ydym am ysgrifennu at ffeil, beth yw swyddogaeth da i'w defnyddio i wneud hynny? 930 00:46:32,984 --> 00:46:33,770 >> MYFYRIWR 37: Fwrite? 931 00:46:33,770 --> 00:46:35,140 >> MYFYRIWR 38: Fprintf? 932 00:46:35,140 --> 00:46:36,010 >> JASON Hirschhorn: Fprintf yn un ohonynt. 933 00:46:36,010 --> 00:46:37,260 Beth sydd un arall? 934 00:46:37,260 --> 00:46:37,680 >> MYFYRIWR 39: Fwrite. 935 00:46:37,680 --> 00:46:38,510 >> JASON Hirschhorn: Fwrite. 936 00:46:38,510 --> 00:46:41,250 Ac ar gyfer ein dibenion, fwrite, a welodd ni yma, yn 937 00:46:41,250 --> 00:46:42,500 yn ôl pob tebyg y dewis yn well. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Mae'n cymryd pedwar dadleuon yn ogystal. 940 00:46:53,950 --> 00:46:57,570 Nishant, a allwch roi 'm' r dadleuon? 941 00:46:57,570 --> 00:47:00,570 >> NISHANT: pharhaus Yr un cyntaf i fod yr un glustog. 942 00:47:00,570 --> 00:47:02,210 >> JASON Hirschhorn: OK. 943 00:47:02,210 --> 00:47:06,752 >> NISHANT: Yr un ail yn jyst yn mynd i fod yn 1. 944 00:47:06,752 --> 00:47:09,510 Trydydd un yn mynd i fod yn 1. 945 00:47:09,510 --> 00:47:11,470 A'r pedwerydd un yn mynd i fod DST. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON Hirschhorn: A oes unrhyw un yn cael unrhyw gwestiynau am y llinell? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 Sy'n edrych yn dda. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Felly nawr mae'n edrych fel yr un peth rydym yn ar goll - mewn gwirionedd, gadewch i ni ysgrifennu 952 00:47:34,250 --> 00:47:35,090 y llinell hon ddiwethaf. 953 00:47:35,090 --> 00:47:36,300 Caewch y ffeiliau. 954 00:47:36,300 --> 00:47:38,880 Pwy all orffen ni i fyny ysgrifennu y ddwy linell olaf? 955 00:47:38,880 --> 00:47:39,120 Ie. 956 00:47:39,120 --> 00:47:39,850 Mae'n ddrwg gennym, beth yw eich enw? 957 00:47:39,850 --> 00:47:40,580 >> LUCY: Lucy. 958 00:47:40,580 --> 00:47:41,580 >> JASON Hirschhorn: Lucy. 959 00:47:41,580 --> 00:47:47,560 >> LUCY: src mmap ac yna cyrchfan mmap. 960 00:47:47,560 --> 00:47:52,430 >> JASON Hirschhorn: mmap, paren agored, src, paren agos, hanner colon. 961 00:47:52,430 --> 00:47:53,680 Ac mmap - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 yeah? 964 00:47:58,090 --> 00:48:01,710 >> LUCY: cromfachau Agored, DST ac yna colon. 965 00:48:01,710 --> 00:48:02,520 >> JASON Hirschhorn: Great. 966 00:48:02,520 --> 00:48:04,338 A beth ddylwn i gynnwys ar y diwedd? 967 00:48:04,338 --> 00:48:05,210 >> LUCY: Dychwelyd 0. 968 00:48:05,210 --> 00:48:05,570 >> JASON Hirschhorn: Dychwelyd 0. 969 00:48:05,570 --> 00:48:06,820 A oes rhaid i mi? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Dim ond cwestiwn. 972 00:48:12,590 --> 00:48:14,957 Oes rhaid i ni gynnwys dychwelyd 0? 973 00:48:14,957 --> 00:48:16,240 >> MYFYRWYR LLUOSOG: Na 974 00:48:16,240 --> 00:48:16,430 >> JASON Hirschhorn: Na 975 00:48:16,430 --> 00:48:18,090 Prif yn awtomatig os ydych yn cael hyd y diwedd. 976 00:48:18,090 --> 00:48:20,580 Ond rwy'n credu ei bod yn braf gynnwys yn benodol. 977 00:48:20,580 --> 00:48:23,860 Yn enwedig pan fyddwn yn dychwelyd eraill pethau drwy gydol y rhaglen. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 Dyma beth rydym yn ei golli - 980 00:48:26,230 --> 00:48:28,520 TRA beth? 981 00:48:28,520 --> 00:48:31,630 Pwy all feddwl am rai - 982 00:48:31,630 --> 00:48:35,240 Mae rhywfaint o synnwyr o'r hyn bethau allai fynd i mewn 'na? 983 00:48:35,240 --> 00:48:37,350 Hyd yn oed os mai dim ond mewn rhai pseudocode fel iaith? 984 00:48:37,350 --> 00:48:41,330 >> Beth ydym ni mewn gwirionedd - beth ydym ni eisiau i fynd tan? 985 00:48:41,330 --> 00:48:41,980 Yeah, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> LUCY: Diwedd ffeil. 987 00:48:43,240 --> 00:48:44,990 >> JASON Hirschhorn: Diwedd ffeil. 988 00:48:44,990 --> 00:48:49,280 Felly, beth ydych chi'n ei olygu wrth ddiwedd y ffeil? 989 00:48:49,280 --> 00:48:50,955 >> LUCY: Ar ôl i chi gyrraedd y diwedd y ffeil, stopio. 990 00:48:50,955 --> 00:48:51,240 >> JASON Hirschhorn: OK. 991 00:48:51,240 --> 00:48:53,460 Felly, ar ôl i ni gyrraedd diwedd y ffeil. 992 00:48:53,460 --> 00:48:56,893 Sut ydym ni'n gwybod pan fyddwn wedi cyrraedd diwedd y ffeil? 993 00:48:56,893 --> 00:48:59,900 >> MYFYRIWR 40: Yr wyf yn meddwl byffer Bydd yn cael ei gosod i NULL. 994 00:48:59,900 --> 00:49:01,885 >> MYFYRWYR 41: Byffer ei ddatgan y tu mewn i'r ddolen. 995 00:49:01,885 --> 00:49:03,670 >> JASON Hirschhorn: Felly yr ydych yn meddwl Bydd clustogi yn cael ei osod i NULL. 996 00:49:03,670 --> 00:49:05,850 Pam y byddai byffer gael eu gosod i NULL? 997 00:49:05,850 --> 00:49:10,420 >> MYFYRIWR 40: Oherwydd pan fyddwch yn fread, rydych yn ceisio rhoi 998 00:49:10,420 --> 00:49:13,528 ddim i'r byffer. 999 00:49:13,528 --> 00:49:13,980 >> JASON Hirschhorn: OK. 1000 00:49:13,980 --> 00:49:15,550 Felly, rydych chi'n meddwl fread - 1001 00:49:15,550 --> 00:49:19,000 pan fyddwn wedi cyrraedd diwedd y ffeil, beth sy'n fread mynd i'w wneud? 1002 00:49:19,000 --> 00:49:21,230 Yr wyf yn credu mai dyna'r cwestiwn mae'n rhaid i chyfrif i maes. 1003 00:49:21,230 --> 00:49:21,960 Beth mae fread ei wneud? 1004 00:49:21,960 --> 00:49:25,640 A yw'n rhoi NULL mewn byffer, neu mae'n ei wneud rhywbeth arall? 1005 00:49:25,640 --> 00:49:27,510 Sut gallwn ni chyfrif i maes yr hyn y mae'n? 1006 00:49:27,510 --> 00:49:28,190 >> MYFYRIWR 42: Dyn. 1007 00:49:28,190 --> 00:49:28,810 >> JASON Hirschhorn: Manaw. 1008 00:49:28,810 --> 00:49:32,280 Felly, gadewch i ni edrych dros yma. 1009 00:49:32,280 --> 00:49:34,000 Dychwelyd gwerth. 1010 00:49:34,000 --> 00:49:39,620 Ar lwyddiant, fread a fwrite dychwelyd y nifer o eitemau darllen neu ysgrifenedig. 1011 00:49:39,620 --> 00:49:43,700 Mae'r rhif hwn yn hafal i nifer y bytes trosglwyddo dim ond pan fydd maint yw 1. 1012 00:49:43,700 --> 00:49:47,780 Os bydd gwall yn digwydd, neu ar ddiwedd y ffeil yn cael ei gyrraedd, mae'r gwerth dychwelyd yn 1013 00:49:47,780 --> 00:49:51,490 eitem cyfrif byr neu 0. 1014 00:49:51,490 --> 00:49:57,860 >> Felly, ar gyfer ein dibenion, os rhannau fread diwedd y ffeil, ac yn darllen o 1015 00:49:57,860 --> 00:50:02,100 diwedd y ffeil, does dim byd ar ôl i ddarllen, beth rwyt ti'n mynd i'w dychwelyd? 1016 00:50:02,100 --> 00:50:03,290 >> MYFYRIWR 43: Zero? 1017 00:50:03,290 --> 00:50:04,540 >> JASON Hirschhorn: Beth? 1018 00:50:04,540 --> 00:50:05,300 >> MYFYRIWR 43: Zero? 1019 00:50:05,300 --> 00:50:05,690 >> JASON Hirschhorn: Zero. 1020 00:50:05,690 --> 00:50:06,940 Mae'n mynd i ddychwelyd sero. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Felly, rydym yn gwybod bod fread, pan rydym wedi cyrraedd diwedd y ffeil, yn mynd 1023 00:50:13,010 --> 00:50:13,690 i ddychwelyd sero. 1024 00:50:13,690 --> 00:50:17,460 Sut y gallwn ddefnyddio hynny i ein mantais? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Gallwch chi ddatgan newidyn y tu allan i y ddolen o'r enw siec. 1026 00:50:21,733 --> 00:50:27,040 Os na fydd siec yn gyfartal - 1027 00:50:27,040 --> 00:50:28,190 ar hyn o bryd - un. 1028 00:50:28,190 --> 00:50:28,920 >> JASON Hirschhorn: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Ac yna gallwch roi OS datganiad i'r dde ar ôl fread yn dweud os 1030 00:50:38,050 --> 00:50:42,600 fread hafal i sero - 1031 00:50:42,600 --> 00:50:43,850 dim. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> JASON Hirschhorn: Pwy gallu helpu Avi allan? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: Beth yw'r gwerth dychwelyd erbyn fread? 1036 00:50:52,410 --> 00:50:54,060 >> JASON Hirschhorn: Rydym yn unig Aeth dros hynny. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Sut ydych chi'n gynrychioli? 1038 00:50:55,450 --> 00:50:57,190 >> JASON Hirschhorn: Felly yn dychwelyd - gadewch i ni edrych i fyny yma - mae'n dychwelyd 1039 00:50:57,190 --> 00:50:59,340 size_t, sydd yn ei hanfod yn gyfanrif. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Felly, mae'n dychwelyd yn gyfanrif. 1042 00:51:03,410 --> 00:51:05,160 Ac yn ein hachos ni, bydd yn dychwelyd 1 neu 0 - 1043 00:51:05,160 --> 00:51:08,760 1 petai'n darllen un peth - un beit, a 0 os ydym wedi cyrraedd y diwedd. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Felly, os fread - 1046 00:51:16,450 --> 00:51:16,855 yeah? 1047 00:51:16,855 --> 00:51:20,330 >> MYFYRIWR 45: Methu ch jyst roi'r lawn fread (byffer, 1, 1, src) i mewn i'r 1048 00:51:20,330 --> 00:51:21,660 tra dolen? 1049 00:51:21,660 --> 00:51:26,510 >> JASON Hirschhorn: Felly yr ydych yn bwriadu gwneud hyn yn y fan honno? 1050 00:51:26,510 --> 00:51:27,600 >> [LLEISIAU ymyrryd yn] 1051 00:51:27,600 --> 00:51:29,520 >> JASON Hirschhorn: Dal ar. 1052 00:51:29,520 --> 00:51:30,885 Felly, rydym yn ridding o hynny. 1053 00:51:30,885 --> 00:51:33,300 Felly, rydych yn cynnig rhoi fread i yno? 1054 00:51:33,300 --> 00:51:35,457 Beth ddylem ni hefyd yn symud os ydych am wneud hynny? 1055 00:51:35,457 --> 00:51:36,740 >> MYFYRIWR 45: Y byffer y tu allan. 1056 00:51:36,740 --> 00:51:38,110 >> JASON Hirschhorn: Rydym yn dylai hefyd yn symud hyn allan yma. 1057 00:51:38,110 --> 00:51:41,700 >> MYFYRIWR 45: Ond a yw hynny'n gyson symud yn ei flaen? 1058 00:51:41,700 --> 00:51:42,950 >> [LLEISIAU ymyrryd yn] 1059 00:51:42,950 --> 00:51:46,540 1060 00:51:46,540 --> 00:51:47,470 >> JASON Hirschhorn: OK. 1061 00:51:47,470 --> 00:51:50,570 Felly, mae hyn yn beth a gynigir Okshar. 1062 00:51:50,570 --> 00:51:51,930 Rydym yn creu ein byffer. 1063 00:51:51,930 --> 00:51:57,020 Rydym fread TRA, yna rydym yn fwrite. 1064 00:51:57,020 --> 00:51:59,760 Syniadau ar hyn? 1065 00:51:59,760 --> 00:52:04,050 >> MYFYRIWR 46: Mae fy unig gwestiwn yw, byddai mewn gwirionedd yn gweithredu'r fread gorchymyn? 1066 00:52:04,050 --> 00:52:06,175 >> JASON Hirschhorn: Cwestiwn Fawr. 1067 00:52:06,175 --> 00:52:11,050 Pan fyddwch yn rhoi swyddogaeth alwad tu mewn i gyflwr, yn gwneud hynny 1068 00:52:11,050 --> 00:52:12,300 swyddogaeth galwad gyflawni? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Rydym wedi gweld enghreifftiau o hyn o'r blaen. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 Iawn? 1073 00:52:25,660 --> 00:52:26,125 >> MYFYRIWR 46: OK. 1074 00:52:26,125 --> 00:52:26,590 Yeah. 1075 00:52:26,590 --> 00:52:30,140 Felly, mae'n gweithredu. 1076 00:52:30,140 --> 00:52:31,790 >> JASON Hirschhorn: Rydym wedi gweld pethau fel 'na o'r blaen, lle mae gennym 1077 00:52:31,790 --> 00:52:33,550 alwad swyddogaeth tu mewn amod. 1078 00:52:33,550 --> 00:52:35,540 A yw'r swyddogaeth honno alwad gweithredu? 1079 00:52:35,540 --> 00:52:36,350 Ie. 1080 00:52:36,350 --> 00:52:37,410 Felly mae'r ateb yn gadarnhaol. 1081 00:52:37,410 --> 00:52:41,010 Bydd hyn yn galw swyddogaeth gweithredu. 1082 00:52:41,010 --> 00:52:42,418 Ond unwaith eto, a yw'n hyn yr ydym am? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Beth yn un ffordd y gallem ffigur allan os yw'n hyn yr ydym am? 1085 00:52:52,204 --> 00:52:53,470 >> MYFYRWYR LLUOSOG: Rhedeg ei? 1086 00:52:53,470 --> 00:52:54,460 >> JASON Hirschhorn: Gallem redeg. 1087 00:52:54,460 --> 00:52:57,500 Ond cyn i ni wneud hynny, gallem hefyd ymresymu drwy hyn. 1088 00:52:57,500 --> 00:52:57,920 Pe bai - 1089 00:52:57,920 --> 00:53:01,920 ddweud ein bod wedi un beit yn ein ffeilio, byddwn yn cyrraedd yma, 1090 00:53:01,920 --> 00:53:02,660 byddwn yn mynd i'r cod hwn. 1091 00:53:02,660 --> 00:53:03,620 Bydd hwn yn rhedeg. 1092 00:53:03,620 --> 00:53:07,780 fread bydd yn dychwelyd un beit a storio yn y byffer. 1093 00:53:07,780 --> 00:53:11,290 A bydd hyn yn gwerthuso i 1, iawn, ar ôl iddo dychwelyd 1. 1094 00:53:11,290 --> 00:53:12,640 >> Felly TRA 1. 1095 00:53:12,640 --> 00:53:15,325 A yw hynny'n golygu y cod y tu mewn Bydd y ddolen TRA gyflawni? 1096 00:53:15,325 --> 00:53:15,453 >> MYFYRIWR 47: Yeah. 1097 00:53:15,453 --> 00:53:16,040 Mae'n wir. 1098 00:53:16,040 --> 00:53:16,290 >> JASON Hirschhorn: Ydw. 1099 00:53:16,290 --> 00:53:17,490 1 yn wir. 1100 00:53:17,490 --> 00:53:18,240 Dyw hi ddim yn 0. 1101 00:53:18,240 --> 00:53:20,360 Felly, bydd y cod yma yn gweithredu y tu mewn. 1102 00:53:20,360 --> 00:53:22,300 Felly, byddwn yn ysgrifennu hynny. 1103 00:53:22,300 --> 00:53:25,340 Byddwn yn symud yn ôl at hyn lein unwaith eto. 1104 00:53:25,340 --> 00:53:26,850 Nawr rydym wedi - 1105 00:53:26,850 --> 00:53:28,550 rydym yn ar ddiwedd ein ffeil. 1106 00:53:28,550 --> 00:53:30,980 Rydym yn darllen o ddiwedd ein ffeil, oherwydd ein bod dim ond un beit ynddo. 1107 00:53:30,980 --> 00:53:34,270 >> Fread yn dychwelyd 0, storfeydd rhywbeth yn clustogi. 1108 00:53:34,270 --> 00:53:35,890 Wyf yn onest ddim yn gwybod beth mae'n storio mewn byffer. 1109 00:53:35,890 --> 00:53:38,380 Gallai Mae'n debyg y byddwn yn edrych i fyny i weld beth mae'n ei wneud. 1110 00:53:38,380 --> 00:53:40,130 Bod yn onest nid wyf yn gwybod. 1111 00:53:40,130 --> 00:53:43,090 Nid ydym yn gwybod, sy'n gofalu beth mae'n storio mewn byffer? 1112 00:53:43,090 --> 00:53:44,010 Ond mae'n dychwelyd 0. 1113 00:53:44,010 --> 00:53:45,440 A bydd TRA 0 gweithredu? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> Ni fydd TRA 0 gweithredu. 1116 00:53:51,180 --> 00:53:54,030 Felly, yna byddwn yn symud i lawr yma. 1117 00:53:54,030 --> 00:53:58,870 Felly, gadewch i ni gael godi dwylo os yw hyn yn yw'r cod dylem redeg, neu os byddwn 1118 00:53:58,870 --> 00:54:00,140 Dylai wneud y newidiadau cyntaf. 1119 00:54:00,140 --> 00:54:02,180 Felly, os ydych yn meddwl - mae'n rhaid i chi bleidleisio. 1120 00:54:02,180 --> 00:54:06,885 Os ydych yn meddwl y dylem redeg y cod hwn fel y mae, os gwelwch yn dda codwch eich llaw. 1121 00:54:06,885 --> 00:54:12,440 1122 00:54:12,440 --> 00:54:13,400 >> OK. 1123 00:54:13,400 --> 00:54:14,315 Mae un - 1124 00:54:14,315 --> 00:54:17,260 a oes gennych gwestiwn, bryder? 1125 00:54:17,260 --> 00:54:18,080 Yeah. 1126 00:54:18,080 --> 00:54:21,240 >> MYFYRIWR 48: Ar ôl i ni symud byffer y tu allan i'r ddolen, yr ydym yn 1127 00:54:21,240 --> 00:54:22,670 rhaid i malloc ei? 1128 00:54:22,670 --> 00:54:23,310 >> JASON Hirschhorn: Cwestiwn Fawr. 1129 00:54:23,310 --> 00:54:26,670 Ar ôl i ni symud byffer y tu allan i'r ddolen, oes rhaid i ni malloc ei? 1130 00:54:26,670 --> 00:54:28,400 Mae hwn yn gwestiwn gwmpas. 1131 00:54:28,400 --> 00:54:32,130 Os byddwn yn ymgychwyn byffer y tu allan i y ddolen hon, bydd yn bodoli 1132 00:54:32,130 --> 00:54:33,534 tu mewn i'r ddolen? 1133 00:54:33,534 --> 00:54:35,230 >> MYFYRWYR LLUOSOG: Oes. 1134 00:54:35,230 --> 00:54:35,580 >> JASON Hirschhorn: Ydw. 1135 00:54:35,580 --> 00:54:40,100 Mae ei gwmpas yn cynnwys tu mewn i'r ddolen, ac, mewn gwirionedd, unrhyw beth o dan y tu mewn 1136 00:54:40,100 --> 00:54:42,460 y cod hwn, gan gynnwys y pethau y tu mewn yma. 1137 00:54:42,460 --> 00:54:43,930 Felly nid oes angen i ni malloc iddo. 1138 00:54:43,930 --> 00:54:47,766 Mae'n newidyn lleol, ac mae ei gwmpas yn dal i gynnwys y ddolen. 1139 00:54:47,766 --> 00:54:49,540 >> MYFYRIWR 49: A oes angen i ryddhau ei? 1140 00:54:49,540 --> 00:54:51,770 >> JASON Hirschhorn: A ydym yn Mae angen byffer rhad ac am ddim? 1141 00:54:51,770 --> 00:54:53,860 >> MYFYRIWR 49: Yeah, os nad ydym yn ei wneud malloc. 1142 00:54:53,860 --> 00:54:55,750 >> JASON Hirschhorn: A ydym yn Mae angen byffer rhad ac am ddim? 1143 00:54:55,750 --> 00:54:57,160 Nid ydym yn ei wneud. 1144 00:54:57,160 --> 00:55:01,280 Unwaith eto, mae'n newidyn lleol, felly nid oes angen i ni ryddhau ei. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Gadewch i ni weld beth sy'n digwydd. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Felly mae'n uninitialized. 1149 00:55:18,220 --> 00:55:20,830 Dyna oedd yr hyn a rhywbeth y Arfaethedig Marcus gynharach. 1150 00:55:20,830 --> 00:55:25,340 Felly, rydym yn cael y gwall, clustog amrywiol yn cael ei uninitialized pan ddefnyddir yma. 1151 00:55:25,340 --> 00:55:26,590 >> Sut y gallwn atgyweiria hon? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> MYFYRIWR 50: Malloc hyn? 1154 00:55:30,960 --> 00:55:31,770 >> MYFYRIWR 51: Equals NULL? 1155 00:55:31,770 --> 00:55:33,000 >> MYFYRIWR 52: Dweud byffer hafal NULL. 1156 00:55:33,000 --> 00:55:34,250 >> JASON Hirschhorn: OK. 1157 00:55:34,250 --> 00:55:40,040 1158 00:55:40,040 --> 00:55:40,770 Yn edrych yn dda. 1159 00:55:40,770 --> 00:55:42,410 Mae gennym yn awr. 1160 00:55:42,410 --> 00:55:45,630 Gadewch i ni greu rhywbeth i geisio copïo. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Felly, rydym wedi ein ffeil testun. 1163 00:56:10,490 --> 00:56:11,740 Sut y gallwn gynnal y rhaglen hon? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Yeah. 1166 00:56:15,472 --> 00:56:22,230 >> MYFYRWYR 53: Gallwch wneud dot slaes cp, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Ac yna gallwch chi enwi ffeil arall a bydd yn storio mewn. 1168 00:56:25,140 --> 00:56:25,510 >> JASON Hirschhorn: OK. 1169 00:56:25,510 --> 00:56:27,380 Byddwn yn ei alw'n out.txt. 1170 00:56:27,380 --> 00:56:28,630 Cool? 1171 00:56:28,630 --> 00:56:31,700 1172 00:56:31,700 --> 00:56:34,320 SEG fai. 1173 00:56:34,320 --> 00:56:35,570 Sylwadau ar y nam GEY? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 Mae hyn yn wych. 1176 00:56:41,390 --> 00:56:45,040 Sut y gallwn ddarganfod ble y nam GEY yn? 1177 00:56:45,040 --> 00:56:45,680 Beth? 1178 00:56:45,680 --> 00:56:45,990 >> MYFYRIWR 54: gdb. 1179 00:56:45,990 --> 00:56:47,240 >> JASON Hirschhorn: gdb. 1180 00:56:47,240 --> 00:56:51,400 1181 00:56:51,400 --> 00:56:55,300 Rydym yn cynnal gdb drwy ysgrifennu gdb dot slaes, enw ein rhaglen. 1182 00:56:55,300 --> 00:56:57,020 Dim dadleuon llinell gorchymyn yno. 1183 00:56:57,020 --> 00:56:59,570 Rydym yn mynd i osod torbwynt yn y prif. 1184 00:56:59,570 --> 00:57:02,190 Os wyf am ddechrau gdb, beth ddylwn i ei wneud? 1185 00:57:02,190 --> 00:57:02,730 >> MYFYRIWR 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON Hirschhorn: R. Ac yna beth? 1187 00:57:08,910 --> 00:57:09,400 >> MYFYRIWR 55: Mae'r dadleuon? 1188 00:57:09,400 --> 00:57:10,650 >> JASON Hirschhorn: Yna y dadleuon gorchymyn-lein. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Gadewch i ni gerdded drwy'r. 1191 00:57:17,120 --> 00:57:19,090 N yn unig yw cymryd linell mi gan linell. 1192 00:57:19,090 --> 00:57:21,450 Rydw i'n mynd i fynd tan Rwy'n cael fy fai seg. 1193 00:57:21,450 --> 00:57:22,700 Mae fy fai seg. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Mae'n edrych fel fread a achosir fi sydd ar fai seg. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Yr wyf yn gwybod ei achosi fread fy fai SEG, oherwydd dyna oedd y 1198 00:57:32,770 --> 00:57:34,950 lein rydym yn unig dienyddio. 1199 00:57:34,950 --> 00:57:36,530 >> A'r unig beth a oedd yn digwydd yn y llinell honno - 1200 00:57:36,530 --> 00:57:37,520 dau beth yn digwydd. 1201 00:57:37,520 --> 00:57:40,610 Roedd Fread yn mynd, ac yna rydym yn gwneud rhywfaint o gwirio TRA. 1202 00:57:40,610 --> 00:57:44,820 Rwy'n barod i bet bod y TRA Nid yw gwirio yn achosi fy fai seg. 1203 00:57:44,820 --> 00:57:46,950 Mae'r rhan fwyaf tebygol, fread oedd achosi fy fai seg. 1204 00:57:46,950 --> 00:57:49,260 Yr wyf hefyd yn gweld rhywbeth yma, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Copi cof. 1206 00:57:50,500 --> 00:57:53,820 Mae'n swnio fel symud cof o un lleoliad i'r llall. 1207 00:57:53,820 --> 00:57:56,890 Mae'n swnio fel rhywbeth fyddai'n digwydd yn fread, efallai fod rhywfaint o cof 1208 00:57:56,890 --> 00:57:58,910 symud oddi yma i yma. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Gadewch i ni fynd drwy hyn eto. 1211 00:58:03,860 --> 00:58:06,900 Sut ydw i'n dechrau drosodd a'i redeg eto? 1212 00:58:06,900 --> 00:58:08,092 Yeah. 1213 00:58:08,092 --> 00:58:15,140 >> MYFYRIWR 56: A oes angen i chi roi yn ampersand cyn byffer? 1214 00:58:15,140 --> 00:58:17,800 >> JASON Hirschhorn: Felly ampersand cyn Byddai byffer roi cyfeiriad i mi 1215 00:58:17,800 --> 00:58:22,330 byffer, sy'n torgoch *. 1216 00:58:22,330 --> 00:58:25,250 Gadewch i ni redeg drwy'r un mwy o amser. 1217 00:58:25,250 --> 00:58:28,248 Sut ydw i'n rhedeg drwyddo un yn fwy o amser? 1218 00:58:28,248 --> 00:58:29,210 >> MYFYRIWR 57: Allwch chi yn unig deipio rhedeg eto? 1219 00:58:29,210 --> 00:58:32,050 >> JASON Hirschhorn: Dim ond teipio rhedeg eto. 1220 00:58:32,050 --> 00:58:33,415 Felly, nid ydym yn mynd i cyflawni y llinell hon. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Felly byffer yn pwyntydd NULL. 1223 00:58:39,240 --> 00:58:40,490 Cywiro? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 Mae'n yn pwyntio i - gadewch i ni weld. 1226 00:58:47,060 --> 00:58:48,500 Os ydym wedi ein - 1227 00:58:48,500 --> 00:58:50,430 dynnu llun cyflym o hyn. 1228 00:58:50,430 --> 00:58:53,500 Gall pawb weld os Rwy'n ysgrifennu dros yma? 1229 00:58:53,500 --> 00:59:02,890 >> Felly, yn y pentwr, mae gennym leol amrywiol ac fe'i gelwir yn clustogi, a 1230 00:59:02,890 --> 00:59:08,230 mae'n pwyntydd i torgoch. 1231 00:59:08,230 --> 00:59:10,325 Pa cyfeiriad yw torgoch hwn ar? 1232 00:59:10,325 --> 00:59:12,550 >> MYFYRIWR 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON Hirschhorn: Iawn. 1234 00:59:13,400 --> 00:59:14,200 Dyna beth mae hyn yn. 1235 00:59:14,200 --> 00:59:17,600 Yn y fan hon, y tu mewn byffer, yn cael ei storio 0x0. 1236 00:59:17,600 --> 00:59:20,480 Dyna beth sydd gennym - y setup sydd gennym ar hyn o bryd. 1237 00:59:20,480 --> 00:59:27,540 Felly y llinell hon, fread, yn rhoi rhywbeth o ffynhonnell ble? 1238 00:59:27,540 --> 00:59:30,560 I mewn i'r bocs neu y bocs? 1239 00:59:30,560 --> 00:59:31,060 Pa bocs? 1240 00:59:31,060 --> 00:59:33,290 Chwith blwch neu flwch iawn? 1241 00:59:33,290 --> 00:59:34,750 Mae hyn yn y blwch cywir. 1242 00:59:34,750 --> 00:59:38,440 >> Mae'n dilyn y pwyntydd, ac yn ei roi i mewn yma. 1243 00:59:38,440 --> 00:59:42,620 Pan fyddwn yn ceisio chof cyffwrdd yn lleoliad 0, beth ydym yn ei gael? 1244 00:59:42,620 --> 00:59:45,050 Mae wall. 1245 00:59:45,050 --> 00:59:46,550 Dyna'r camgymeriad sydd gennym ar hyn o bryd. 1246 00:59:46,550 --> 00:59:46,970 Yeah. 1247 00:59:46,970 --> 00:59:48,410 >> MYFYRIWR 59: Nid oes gennych i roi byffer seren? 1248 00:59:48,410 --> 00:59:49,180 Neu ddim? 1249 00:59:49,180 --> 00:59:50,050 Ar gyfer fread? 1250 00:59:50,050 --> 00:59:51,450 >> JASON Hirschhorn: Felly fread cymryd pwyntydd. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Felly, mae'n mynd yn clustogi. 1253 00:59:55,900 --> 00:59:58,980 Ac yna bydd yn dad-gyfeirio yn rhywle y tu mewn fread. 1254 00:59:58,980 --> 01:00:00,700 Ond unwaith eto, gwelsom, mae'n cymryd pwyntydd. 1255 01:00:00,700 --> 01:00:02,560 Nid oes angen i ni ei anfon byffer seren. 1256 01:00:02,560 --> 01:00:05,350 Byddai hynny'n cael ei pasio mae'n beth bynnag sydd yma. 1257 01:00:05,350 --> 01:00:07,980 Ac y byddai pob tebyg yn rhoi gwall ni oherwydd ein bod yn dad-cyfeirio iddo. 1258 01:00:07,980 --> 01:00:08,150 >> Iawn? 1259 01:00:08,150 --> 01:00:10,690 Pan fyddwn yn dad-gyfeirio pwyntydd hwn, pan rydym yn ceisio cael mynediad yn y lleoliad hwn, 1260 01:00:10,690 --> 01:00:13,140 rydym yn cael gwall - ein wall. 1261 01:00:13,140 --> 01:00:15,800 Felly - 1262 01:00:15,800 --> 01:00:16,690 wps. 1263 01:00:16,690 --> 01:00:19,090 Rydym yn mynd i roi'r gorau iddi allan o gdb. 1264 01:00:19,090 --> 01:00:20,160 Mae ein llinell - 1265 01:00:20,160 --> 01:00:22,990 ein problem - yn iawn yma ar y llinell hon. 1266 01:00:22,990 --> 01:00:26,410 Ac mae'n broblem oherwydd y llinell hon. 1267 01:00:26,410 --> 01:00:31,780 >> Sut y gallwn ni greu blwch sy'n yn hygyrch mewn fread. 1268 01:00:31,780 --> 01:00:31,980 Iawn? 1269 01:00:31,980 --> 01:00:35,190 Mae angen i ni greu blwch sy'n un beit mawr, yr un maint â torgoch. 1270 01:00:35,190 --> 01:00:38,590 Ond mae angen y blwch i fod yn hygyrch pan fydd y swyddogaeth hon yn gweithredu. 1271 01:00:38,590 --> 01:00:39,390 Felly, lle - 1272 01:00:39,390 --> 01:00:39,640 yeah. 1273 01:00:39,640 --> 01:00:40,440 Unrhyw syniadau? 1274 01:00:40,440 --> 01:00:43,615 >> MYFYRIWR 60: Dim ond ei osod fel unrhyw gymeriad ar hap. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Dim ond gwneud hafal byffer torgoch y cymeriad. 1277 01:00:51,640 --> 01:00:53,795 Ac yna, pan fyddwch wedi byffer yno - 1278 01:00:53,795 --> 01:00:54,110 >> JASON Hirschhorn: Aros. 1279 01:00:54,110 --> 01:00:55,110 Char byffer? 1280 01:00:55,110 --> 01:00:55,880 Felly dim seren? 1281 01:00:55,880 --> 01:00:56,390 >> MYFYRIWR 60: Yeah. 1282 01:00:56,390 --> 01:00:58,560 Tynnwch y seren. 1283 01:00:58,560 --> 01:01:00,690 Equals cymeriad hap. 1284 01:01:00,690 --> 01:01:01,460 >> JASON Hirschhorn: OK. 1285 01:01:01,460 --> 01:01:02,420 Felly rhowch un i mi. 1286 01:01:02,420 --> 01:01:03,170 >> MYFYRIWR 60: Fel a neu rywbeth. 1287 01:01:03,170 --> 01:01:06,160 Ac yna pan fyddwch yn cael byffer yno, byddwch yn defnyddio - 1288 01:01:06,160 --> 01:01:06,420 >> MYFYRIWR 61: Star? 1289 01:01:06,420 --> 01:01:07,650 O na, mae'r ampersand. 1290 01:01:07,650 --> 01:01:09,000 >> MYFYRIWR 60: Defnyddiwch y ampersand. 1291 01:01:09,000 --> 01:01:09,470 >> JASON Hirschhorn: OK. 1292 01:01:09,470 --> 01:01:11,320 A beth am yn fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> MYFYRIWR 60: Defnyddiwch y ampersand eto. 1294 01:01:14,150 --> 01:01:14,320 >> JASON Hirschhorn: Pob hawl. 1295 01:01:14,320 --> 01:01:20,970 Fel bod eich syniad yw, rydym yn creu golosg a roi rhywbeth ynddo, ac yna 1296 01:01:20,970 --> 01:01:22,612 ysgrifennu at y torgoch. 1297 01:01:22,612 --> 01:01:23,760 >> MYFYRIWR 60: Yeah. 1298 01:01:23,760 --> 01:01:25,916 >> JASON Hirschhorn: Beth y mae pobl yn ei feddwl? 1299 01:01:25,916 --> 01:01:27,770 >> MYFYRWYR 62: Mae'n convoluted. 1300 01:01:27,770 --> 01:01:28,460 >> JASON Hirschhorn: OK. 1301 01:01:28,460 --> 01:01:29,760 Gadewch i ni tynnu allan. 1302 01:01:29,760 --> 01:01:35,720 Felly, y tro hwn, dw i'n mynd i dynnu hyn yn coch ar y corn yma, ac yna rydym yn 1303 01:01:35,720 --> 01:01:36,410 Bydd yn rhaid i - 1304 01:01:36,410 --> 01:01:36,822 ooh! 1305 01:01:36,822 --> 01:01:38,060 Mae'n ddrwg gennym. 1306 01:01:38,060 --> 01:01:45,930 Felly, y tro hwn mae gennym rywbeth o'r enw byffer, ac mae'n ar y pentwr. 1307 01:01:45,930 --> 01:01:48,430 Cywiro? 1308 01:01:48,430 --> 01:01:51,520 Ac rydym yn arbed ynddo, yn y lle cyntaf. 1309 01:01:51,520 --> 01:01:53,830 >> Yna, rydym wedi ein galw i fread. 1310 01:01:53,830 --> 01:02:01,300 Pa fread yn ei wneud yw ei bod yn cymryd beit o ein ffeil ac yn ei roi yn rhywle. 1311 01:02:01,300 --> 01:02:04,570 Mae'n ei roi mewn beth bynnag fo'r beth sy'n pwyntio i. 1312 01:02:04,570 --> 01:02:09,130 Wel, cyn i ni gael y cyfeiriad hwn - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Nawr beth gyfeiriad sydd gennym? 1315 01:02:13,349 --> 01:02:14,650 >> MYFYRIWR 63: Beth bynnag cyfeiriad byffer yn. 1316 01:02:14,650 --> 01:02:15,970 >> JASON Hirschhorn: Beth bynnag cyfeiriad byffer yn. 1317 01:02:15,970 --> 01:02:22,370 Yn ôl pob tebyg ei fod yn mynd i fod yn rhywbeth fel 'na. 1318 01:02:22,370 --> 01:02:26,950 Na thebyg yn mynd i ddechrau gyda b ac yn f, ac yna wedi chwech arall 1319 01:02:26,950 --> 01:02:27,970 digidau hecsadegol. 1320 01:02:27,970 --> 01:02:28,480 Nid yw o bwys. 1321 01:02:28,480 --> 01:02:29,470 Mae rhai gyfeiriad. 1322 01:02:29,470 --> 01:02:31,410 Ac rydym yn pasio cyfeiriad hwnnw mewn 1323 01:02:31,410 --> 01:02:34,790 >> Ac rydym yn mynd i roi ein un beth beit yn y cyfeiriad hwnnw. 1324 01:02:34,790 --> 01:02:38,470 Felly, rydym yn mynd i roi ein un beth beit tu yma. 1325 01:02:38,470 --> 01:02:40,800 Ac yna rydym yn mynd i ysgrifennu o beth sydd erioed y tu mewn yma. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 A oes unrhyw un gennych unrhyw gwestiynau am hynny? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Pwy sy'n meddwl y bydd y cod hwn yn gweithio? 1330 01:02:54,690 --> 01:02:56,020 >> Codwch eich llaw os ydych yn meddwl Bydd y cod hwn yn gweithio. 1331 01:02:56,020 --> 01:02:57,270 Rhaid i chi gymryd safiad. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Ac sy'n meddwl na fydd y cod hwn yn gweithio? 1334 01:03:02,500 --> 01:03:04,610 Codwch eich llaw. 1335 01:03:04,610 --> 01:03:06,750 Dylai pawb arall fod yn codi eu llaw. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, ble ydych chi'n sefyll? 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: Ni allaf benderfynu. 1339 01:03:10,680 --> 01:03:12,070 Math o yn y canol. 1340 01:03:12,070 --> 01:03:12,736 >> JASON Hirschhorn: Rydych yn yn y canol. 1341 01:03:12,736 --> 01:03:13,092 Dewiswch un. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: 'n annhymerus' cael ffydd a dweud y bydd yn gweithio. 1343 01:03:14,400 --> 01:03:14,660 >> JASON Hirschhorn: OK. 1344 01:03:14,660 --> 01:03:16,047 Bydd gennych ffydd ac yn dweud ei fod yn gweithio? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Beth ddigwyddodd? 1347 01:03:27,020 --> 01:03:28,270 >> [LLEISIAU ymyrryd yn] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON Hirschhorn: Dim bai SEG. 1350 01:03:35,950 --> 01:03:40,320 Sut y gallwn wirio i weld os dau beth yn gyfartal? 1351 01:03:40,320 --> 01:03:42,060 Ddwy ffeil yn gyfartal. 1352 01:03:42,060 --> 01:03:43,300 >> MYFYRIWR 64: Diff. 1353 01:03:43,300 --> 01:03:45,490 >> JASON Hirschhorn: Diff. 1354 01:03:45,490 --> 01:03:51,630 Gwiriadau gwahan ar gyfer y gwahaniaethau rhwng ddwy ffeil, ac os bydd yn dychwelyd 1355 01:03:51,630 --> 01:03:52,890 dim byd, maen nhw'n union yr un fath. 1356 01:03:52,890 --> 01:03:59,030 Ac os ydym yn agor i fyny, rydym yn cael ein ffeil. 1357 01:03:59,030 --> 01:04:00,490 Felly yr oedd yr ateb cywir. 1358 01:04:00,490 --> 01:04:01,780 Gadewch i ni edrych yn ôl ar yn un mwy o amser. 1359 01:04:01,780 --> 01:04:04,080 Rydym mewn gwirionedd nid oedd hyd yn oed yn Mae angen i ymgychwyn iddo. 1360 01:04:04,080 --> 01:04:05,520 >> Mae'n debyg y byddai edrych ychydig glanach os nad oeddech yn rhoi 1361 01:04:05,520 --> 01:04:07,680 rhywbeth ar hap mewn 'na. 1362 01:04:07,680 --> 01:04:13,070 Y pwynt oedd, roedd angen i chi i greu rhywfaint o le i storio rhywbeth o 1363 01:04:13,070 --> 01:04:15,530 fread ac yn cymryd rhywbeth allan o fwrite. 1364 01:04:15,530 --> 01:04:18,400 A bod peth oedd i fod naill ai'n lleol amrywiol ar y pentwr - rydych 1365 01:04:18,400 --> 01:04:19,890 Gallai wedi malloc'd ychydig o le. 1366 01:04:19,890 --> 01:04:23,030 >> Felly, rydym mewn gwirionedd gallai fod malloc ysgrifenedig yma, ac 1367 01:04:23,030 --> 01:04:25,420 a fyddai wedi gweithio. 1368 01:04:25,420 --> 01:04:28,660 Ac yna byddem wedi bod yn storio ein pethau rhywle ar y domen. 1369 01:04:28,660 --> 01:04:31,940 Ond mae hyn yn mewn gwirionedd, yn ôl pob tebyg, yr ateb mwyaf cain. 1370 01:04:31,940 --> 01:04:34,490 Dim ond yn creu ychydig o le ar y pentwr am y pethau hyn i fynd. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Y byddai gennyf ddau sylwadau eraill. 1373 01:04:38,990 --> 01:04:44,650 Pe baech yn cymryd ei dro yn hyn, a yna cael sgôr ar hyn, fy sylwadau 1374 01:04:44,650 --> 01:04:47,400 fyddai fel a ganlyn. 1375 01:04:47,400 --> 01:04:54,300 Mae'r rhain yn 1 sydd yma, i mi, yn edrych fel rhifau hud. 1376 01:04:54,300 --> 01:04:56,860 Mae hyn yn 1, o ran fread, yn gwneud synnwyr. 1377 01:04:56,860 --> 01:04:59,580 Dyna nifer o bethau i ddarllen neu ysgrifennu. 1378 01:04:59,580 --> 01:05:03,740 >> Ond mae hyn yn un cywir yma dylai yn ôl pob tebyg fod yn rhywbeth arall. 1379 01:05:03,740 --> 01:05:05,180 Felly, beth yw un ateb? 1380 01:05:05,180 --> 01:05:06,545 >> MYFYRIWR 65: Maint y beit. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON Hirschhorn: Fel hynny? 1383 01:05:11,080 --> 01:05:13,130 >> MYFYRIWR 65: Maint y torgoch. 1384 01:05:13,130 --> 01:05:13,820 >> JASON Hirschhorn: Maint y torgoch. 1385 01:05:13,820 --> 01:05:15,290 Yeah, nid yw beit yn fath. 1386 01:05:15,290 --> 01:05:16,320 Felly, faint o waith torgoch. 1387 01:05:16,320 --> 01:05:30,270 Gallem gael, ar ben ein cod, # diffiniedig sy'n. 1388 01:05:30,270 --> 01:05:33,410 O'r enw BYTE rhywbeth ac mae'n wir yn torgoch. 1389 01:05:33,410 --> 01:05:37,675 A dweud y gwir, mae dull hyd yn oed yn well allai fod wedi bod yn hyn - 1390 01:05:37,675 --> 01:05:39,391 uint. 1391 01:05:39,391 --> 01:05:40,780 Unrhyw un yn gwybod beth yw hwnnw? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Mae'n ddrwg gennym. 1394 01:05:44,840 --> 01:05:46,090 Yr wyf wedi ei ôl. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Arhoswch, dim. 1397 01:05:52,200 --> 01:05:53,450 Pa ffordd mae'n mynd? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Unrhyw un yn gwybod beth yw hwnnw? 1400 01:05:59,660 --> 01:06:00,950 Yeah. 1401 01:06:00,950 --> 01:06:05,650 >> MYFYRWYR 67: i fod i helpu i safoni ar draws systemau pethau sy'n 1402 01:06:05,650 --> 01:06:08,760 gael - fel cyfanrifau heb eu llofnodi sydd yn meddu ar 8 bytes? 1403 01:06:08,760 --> 01:06:11,785 >> JASON Hirschhorn: Mae hynny'n yn union gywir. 1404 01:06:11,785 --> 01:06:14,310 Ar beiriannau gwahanol, yr un maint â golosg - 1405 01:06:14,310 --> 01:06:15,180 Nid yw fel arfer torgoch. 1406 01:06:15,180 --> 01:06:16,100 Fel arfer, chars yn un beit. 1407 01:06:16,100 --> 01:06:19,590 Ond mae'r maint o fathau data eraill yn wahanol faint ar 32-bit peiriant 1408 01:06:19,590 --> 01:06:21,370 yn erbyn 64-bit peiriant. 1409 01:06:21,370 --> 01:06:25,180 Mae uint8_t yw 8 darnau bob amser - 1410 01:06:25,180 --> 01:06:27,210 bob amser yn un beit. 1411 01:06:27,210 --> 01:06:29,580 >> Ac mae angen i mi gynnwys y ffeil flaen int safonol. 1412 01:06:29,580 --> 01:06:35,040 Felly nawr, mae hyn yn fwy na thebyg y byddai wedi bod yn y ffordd orau i ysgrifennu cod hwn. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Felly, yr wyf yn cael gwared ar y rhifau hud. 1415 01:06:41,450 --> 01:06:44,690 Ac yr wyf hefyd yn fwy rhesymegol teipio ar gyfer byffer. 1416 01:06:44,690 --> 01:06:49,450 Nid yn unig yw golosg, mae'n beit, sef yr hyn yr ydym yn disgwyl iddo fod. 1417 01:06:49,450 --> 01:06:53,400 >> Ac i fyny yma, rydym wedi gwirionedd wedi bod ychydig yn fwy cadarn. 1418 01:06:53,400 --> 01:06:55,190 Nid ydym yn galw ei fod yn torgoch, sydd - 1419 01:06:55,190 --> 01:06:58,630 efallai, pwy a ŵyr - gallai fod yn wahanol maint ar beiriannau gwahanol. 1420 01:06:58,630 --> 01:07:02,025 Rydym yn mewn gwirionedd yn dweud hyn yn union un beit, bob amser, yn waeth beth. 1421 01:07:02,025 --> 01:07:05,810 Ac os ydym yn edrych yma, rydym yn gwneud cp. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Beth ddigwyddodd? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> MYFYRWYR 68: Gallai fod yn cael ei newid. 1426 01:07:16,170 --> 01:07:17,880 >> JASON Hirschhorn: Beth? 1427 01:07:17,880 --> 01:07:19,130 >> MYFYRIWR 69: A yw'n? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> MYFYRIWR 70: Nid ydych yn gwneud ei ddiffinio fel math. 1430 01:07:25,080 --> 01:07:28,684 >> MYFYRIWR 71: Ond dylai ei ddiffinio yn safonol. 1431 01:07:28,684 --> 01:07:29,934 >> MYFYRWYR 72: Beth sy'n mynd ymlaen? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> MYFYRIWR 73: A ddylai fod yn diffinio pob gapiau? 1434 01:07:40,210 --> 01:07:41,370 >> JASON Hirschhorn: Felly nid yw'n # ddiffinio. 1435 01:07:41,370 --> 01:07:45,490 Mewn gwirionedd, yn yr achos hwn, rwy'n mynd i ddefnyddio typedef. 1436 01:07:45,490 --> 01:07:48,590 Oherwydd ein bod yn ei ddefnyddio fel fath mewn un lleoliad. 1437 01:07:48,590 --> 01:07:51,990 Felly, yn yr achos hwn, yr ydym mewn gwirionedd yn awyddus i typedef fel rydym yn argraffu math newydd 1438 01:07:51,990 --> 01:07:54,490 byte, ac y mae, yn y bôn, mae hyn yn. 1439 01:07:54,490 --> 01:07:56,590 Mae'n ychydig yn wahanol na # ddiffinio. 1440 01:07:56,590 --> 01:08:02,740 >> Ac yn awr, ein cod gweithfa 'n anhyfreg. 1441 01:08:02,740 --> 01:08:05,230 Felly, unwaith eto, # diffinio yn rhywbeth, yn cymryd lle ym mhobman 1442 01:08:05,230 --> 01:08:06,780 gyda'r peth arall. 1443 01:08:06,780 --> 01:08:07,920 Mai dim ond macro - 1444 01:08:07,920 --> 01:08:09,420 llaw-fer i gael gwared o rifau hud. 1445 01:08:09,420 --> 01:08:11,360 Ond yn yr achos hwn, oherwydd ein bod yn ei ddefnyddio fel math - 1446 01:08:11,360 --> 01:08:12,180 yma - 1447 01:08:12,180 --> 01:08:19,880 er mwyn i hynny weithio, mae angen i typedef beth bynnag beit yw. 1448 01:08:19,880 --> 01:08:21,840 >> Ac rydym yn diffinio yn iawn yma. 1449 01:08:21,840 --> 01:08:24,750 Nid yw'n strwythur, mae'n mewn gwirionedd yn dim ond yn gyfanrif heb ei arwyddo. 1450 01:08:24,750 --> 01:08:27,680 Mae'n un beit hir. 1451 01:08:27,680 --> 01:08:31,910 Bydd y cod hwn ar gael ar-lein, a Dylai pob un ohonoch ei gael ar hyn o bryd. 1452 01:08:31,910 --> 01:08:33,830 >> Felly, rydym wedi - 1453 01:08:33,830 --> 01:08:34,250 perffaith - 1454 01:08:34,250 --> 01:08:41,359 13 munud i'r chwith i fynd dros broblem set 5. 1455 01:08:41,359 --> 01:08:44,270 Rwyf am i gerdded trwy copy.c gyda'i gilydd, ac yna byddwn yn siarad yn fyr 1456 01:08:44,270 --> 01:08:47,120 am y rhannau eraill o'r broblem a osodwyd. 1457 01:08:47,120 --> 01:08:48,899 Felly, gadewch i mi dynnu i fyny copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 A'r peth oer yw, mewn gwirionedd rydym wedi ysgrifennu llawer o cod hwn yn barod. 1460 01:09:08,810 --> 01:09:11,180 >> Mae'r cod ysgrifennom llythrennol yn unig ddaeth allan o'r yma pan oeddwn yn 1461 01:09:11,180 --> 01:09:13,120 ysgrifennu'r ar fy mhen fy hun. 1462 01:09:13,120 --> 01:09:16,990 Ond mae hyn yn copy.c, yn ffurfio sylfaen ar gyfer y ddwy ran gyntaf o 1463 01:09:16,990 --> 01:09:22,340 y broblem a osodwyd ar gyfer whodunit.c, a oedd yn angen i chi ysgrifennu, a resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, sef y trydydd a'r olaf rhan o'r broblem a osodwyd, yn 1465 01:09:27,050 --> 01:09:29,529 seiliedig oddi ar y ffeil. 1466 01:09:29,529 --> 01:09:32,200 >> Rydych yn mynd i angen i ysgrifennu y ffeil, rydym yn rhoi templed ar gyfer eich bod yn 1467 01:09:32,200 --> 01:09:34,620 ffeilio, ond nid oes ganddi ddim yn ymwneud â copy.c. 1468 01:09:34,620 --> 01:09:38,675 Ond oherwydd bod copy.c yw'r sylfaen ar gyfer y ddwy ran gyntaf, rydym yn mynd 1469 01:09:38,675 --> 01:09:42,000 i gerdded trwyddo yn awr, felly mae gennych ymdeimlad da o'r hyn y mae'n ei wneud. 1470 01:09:42,000 --> 01:09:43,640 >> Ac mae'r sylwadau yn rhoi peth ohono i ffwrdd. 1471 01:09:43,640 --> 01:09:45,120 Rydym eisoes wedi ysgrifennu rhai o hyn. 1472 01:09:45,120 --> 01:09:49,220 Yn gyntaf, rydym yn gwneud yn siŵr rydym yn cael tri dadleuon. 1473 01:09:49,220 --> 01:09:50,560 Nesaf, rydym yn cofio enw'r ffeil. 1474 01:09:50,560 --> 01:09:52,960 Felly, rydym yn hepgor y cam hwn pan rydym yn codio ein peth - 1475 01:09:52,960 --> 01:09:54,700 pan fydd ein cp. 1476 01:09:54,700 --> 01:09:56,750 Ond yma, maent yn gwneud ei fod yn ychydig yn lanach. 1477 01:09:56,750 --> 01:09:59,350 >> Maent yn gwirio i wneud yn siŵr y ddau ffeiliau yn dda, yn 1478 01:09:59,350 --> 01:10:00,450 ychwanegol at eu hagor. 1479 01:10:00,450 --> 01:10:04,760 Rydym yn ysgrifennu i gyd y cod hwn yn unig yn awr, felly rwy'n ddim yn mynd i drigo ar y cod hwn. 1480 01:10:04,760 --> 01:10:09,670 Nesaf yw rhai pethau sy'n benodol i y mathau o ffeiliau yr ydym yn ei ddefnyddio, a oedd yn 1481 01:10:09,670 --> 01:10:12,240 yn ffeiliau didfap. 1482 01:10:12,240 --> 01:10:15,660 Ffeiliau didfap cael rhywfaint o metadata gysylltiedig â hwy. 1483 01:10:15,660 --> 01:10:20,190 >> Felly, y cwpl cyntaf bytes ddweud wrthych am y ffeil. 1484 01:10:20,190 --> 01:10:23,460 Nid ydynt yn lliwiau y picsel yn y ddelwedd. 1485 01:10:23,460 --> 01:10:25,120 Maent yn dweud wrthych am y ffeil. 1486 01:10:25,120 --> 01:10:28,220 Ac os ydych yn darllen drwy'r broblem a osodwyd, bydd gennych lawer mwy o wybodaeth 1487 01:10:28,220 --> 01:10:33,100 ar ba fathau o strwythurau metadata yn cael eu cynnwys gyda bitmaps. 1488 01:10:33,100 --> 01:10:39,350 >> Ond dyna pam yr ydym yn cael y cyntaf set o - cod hwn yma. 1489 01:10:39,350 --> 01:10:42,490 Rydym yn darllen y metadata - 1490 01:10:42,490 --> 01:10:45,800 dau ddarn o metadata - y ffeil header a'r header wybodaeth. 1491 01:10:45,800 --> 01:10:51,030 Ac rydym yn gwirio rhai rhannau ohono i wneud yn siŵr ei fod yn ffeil didfap gwir 1492 01:10:51,030 --> 01:10:52,420 cyn parhau. 1493 01:10:52,420 --> 01:10:55,470 >> Ac eto, mae'r rhain yn y manylion yr ydym yn Nid oes angen i chi fynd i mewn i hyn. 1494 01:10:55,470 --> 01:10:57,720 Os ydych yn darllen drwy'r broblem a osodwyd, y byddwch yn deall hyn. 1495 01:10:57,720 --> 01:11:01,370 Stori hir yn fyr, mae'r rhain yn dim ond dweud, hon yn ffeil didfap, a 1496 01:11:01,370 --> 01:11:02,810 yn cadarnhau hynny. 1497 01:11:02,810 --> 01:11:05,180 >> Nesaf, rydym yn ysgrifennu rhai at y ffeil allan. 1498 01:11:05,180 --> 01:11:05,660 Rydym yn gweld hynny yma. 1499 01:11:05,660 --> 01:11:06,910 Rydym yn ysgrifennu at y pwyntydd y tu allan. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Nesaf, rydym yn penderfynu padin. 1502 01:11:11,320 --> 01:11:15,240 Felly eto, fel y mae arbenigrwydd gyda ffeil didfap, mae rhai llinellau yn cynnwys 1503 01:11:15,240 --> 01:11:16,840 padin ar y diwedd. 1504 01:11:16,840 --> 01:11:19,000 Ac os ydych yn darllen drwy'r broblem a osodwyd, byddwch yn dysgu mwy am padin. 1505 01:11:19,000 --> 01:11:22,330 Mae hyn yn y fformiwla i ddod o hyd i padin. 1506 01:11:22,330 --> 01:11:23,610 >> Pwysig i'w cofio - 1507 01:11:23,610 --> 01:11:29,720 pan fyddwch yn newid maint bitmap ffeil, mae'r newidiadau padin. 1508 01:11:29,720 --> 01:11:31,970 Pan fyddwch yn newid yr un maint â ffeil, mae'r newidiadau padin. 1509 01:11:31,970 --> 01:11:34,310 Nid yw byth yn mynd i fod yn fwy na 3 - 1510 01:11:34,310 --> 01:11:36,510 bydd yn cael ei 0 trwy 3, gynhwysol. 1511 01:11:36,510 --> 01:11:38,930 Ond pan fyddwch yn newid maint y rhywbeth, mae'r newidiadau padin. 1512 01:11:38,930 --> 01:11:47,100 >> Os mai dim ond un picsel yn y rhes, yr wyf yn angen tair bytes o padin, oherwydd 1513 01:11:47,100 --> 01:11:51,190 pob rhes wedi i fod lluosrifau o bedwar bytes hir mewn ffeil didfap. 1514 01:11:51,190 --> 01:11:56,120 Ond os wyf ddyblu, i fynd o un picsel i ddau picsel, pob un ohonynt, 1515 01:11:56,120 --> 01:11:59,510 gadewch i ni ddweud, yw beit, yna mae angen i mi dau bytes o padin i wneud 1516 01:11:59,510 --> 01:12:00,970 sy'n cyfateb i bedair. 1517 01:12:00,970 --> 01:12:04,200 >> Felly, pan fyddaf yn newid maint rhywbeth, Angen i mi newid y swm 1518 01:12:04,200 --> 01:12:06,551 o padin gen i. 1519 01:12:06,551 --> 01:12:08,100 A yw hynny'n gwneud synnwyr i bawb? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Nesaf, rydym yn ailadrodd dros bob rhes, neu drwy'r holl rhesi. 1522 01:12:18,720 --> 01:12:21,400 Ac yna rydym yn ailadrodd trwy pob colofn ym mhob rhes. 1523 01:12:21,400 --> 01:12:25,330 Rydym yn trin didfap hwn fel grid, fel yr ydym wedi cael eu trin 1524 01:12:25,330 --> 01:12:26,490 y bwrdd mewn 15. 1525 01:12:26,490 --> 01:12:29,200 >> Fel yr ydym yn trin y brics pan rydym yn eu hargraffu ar y sgrin. 1526 01:12:29,200 --> 01:12:31,350 Mae grid o rhesi a cholofnau. 1527 01:12:31,350 --> 01:12:32,350 Yna - rydym yn gweld hyn. 1528 01:12:32,350 --> 01:12:33,840 Rydym mewn gwirionedd dim ond codio hyn. 1529 01:12:33,840 --> 01:12:35,780 Rydym yn creu rhywfaint o storfa dros dro. 1530 01:12:35,780 --> 01:12:38,710 Rydym yn darllen i mewn 'na, ac yna byddwn yn ysgrifennu allan. 1531 01:12:38,710 --> 01:12:42,680 Mae hyn yn union yr hyn yr ydym newydd ei wneud. 1532 01:12:42,680 --> 01:12:46,760 >> Nesaf, oherwydd dywedais pob llinell yn dod i ben mewn rhai padin, rydym yn 1533 01:12:46,760 --> 01:12:48,260 sgip dros y padin - 1534 01:12:48,260 --> 01:12:51,000 yr hen padin. 1535 01:12:51,000 --> 01:12:52,630 Ac yna byddwn yn ychwanegu yn ôl. 1536 01:12:52,630 --> 01:12:55,140 Yn yr achos hwn, rydym yn creu yr un peth union ffeil. 1537 01:12:55,140 --> 01:12:56,180 Rydym yn unig yn copïo iddo. 1538 01:12:56,180 --> 01:12:57,700 Felly y llinell hon yn fath o wirion. 1539 01:12:57,700 --> 01:12:59,660 Gallem yn llythrennol yn unig rhowch y padin mewn 1540 01:12:59,660 --> 01:13:04,290 >> Ond os byddwch yn newid maint y ffeil, a ydych yn dal eisiau y llinell hon? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Felly, os byddwn yn newid y maint o ffeil, ydym ni yn dal yn awyddus i sgip 1543 01:13:11,560 --> 01:13:12,810 dros yr hen padin? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> MYFYRIWR 74: Oes. 1546 01:13:15,970 --> 01:13:17,090 >> JASON Hirschhorn: Felly rydym yn ei wneud. 1547 01:13:17,090 --> 01:13:19,290 Oherwydd hyn, unwaith eto, yn delio gyda'r ffeil ffynhonnell. 1548 01:13:19,290 --> 01:13:21,570 Nid ydym yn poeni am y padin o'r ffeil ffynhonnell. 1549 01:13:21,570 --> 01:13:23,410 Rydym yn awyddus i fynd i'r llinell nesaf. 1550 01:13:23,410 --> 01:13:28,850 Ond nid ydym yn rhoi yn ôl yn syml yr hen faint o padin. 1551 01:13:28,850 --> 01:13:31,540 Mae angen i roi yn ôl y swm newydd o padin. 1552 01:13:31,540 --> 01:13:35,810 >> Felly, pan fyddwn yn newid yr un maint â ffeiliau, rydym yn dal yn awyddus i hepgor dros y 1553 01:13:35,810 --> 01:13:38,270 padin yn yr hen ffeil - beth rydym yn darllen yn o. 1554 01:13:38,270 --> 01:13:40,370 Ond yr hyn rydym yn ysgrifennu at, rydym yn mynd angen i roi rhywfaint yn wahanol 1555 01:13:40,370 --> 01:13:41,890 nifer y padin y rydym wedi pennu. 1556 01:13:41,890 --> 01:13:42,780 Yeah. 1557 01:13:42,780 --> 01:13:44,550 >> MYFYRIWR 75: Mae trefn y ddau rhai Nid yw llinellau oes ots, dde? 1558 01:13:44,550 --> 01:13:46,160 Oherwydd eich bod yn trin ffeiliau gwahanol. 1559 01:13:46,160 --> 01:13:46,620 >> JASON Hirschhorn: Yn union. 1560 01:13:46,620 --> 01:13:48,220 Mae trefn y ddwy linell Nid yw o bwys. 1561 01:13:48,220 --> 01:13:49,790 Rydym yn ysgrifennu y llinell hon. 1562 01:13:49,790 --> 01:13:51,430 Mae hyn yn yma ar gyfer y ffeil rydym yn ysgrifennu at. 1563 01:13:51,430 --> 01:13:54,370 Mae hynny'n bwysig, felly rydym yn cael y swm cywir o padin. 1564 01:13:54,370 --> 01:13:57,560 Mae hyn wedi i ddelio â'r ffeil yn. 1565 01:13:57,560 --> 01:13:58,560 Rydym am i hepgor hawl dros y padin. 1566 01:13:58,560 --> 01:13:59,470 >> Nid ydym am i ddarllen - 1567 01:13:59,470 --> 01:14:01,500 os ydym yn darllen beit ar y tro, rydym yn nid ydynt yn poeni am bytes padin hynny. 1568 01:14:01,500 --> 01:14:04,070 Rydym yn awyddus i symud at y llinell nesaf. 1569 01:14:04,070 --> 01:14:11,800 Yn olaf, yn union fel Lucy roddodd i ni, rydym yn cau'r ffeiliau a dychwelyd 0. 1570 01:14:11,800 --> 01:14:13,890 Felly, mae hyn yn copy.c. 1571 01:14:13,890 --> 01:14:17,850 Ac rydym mewn gwirionedd ysgrifennodd - rydym treuliodd y rhan fwyaf o adran yn ysgrifennu'r, yn y bôn. 1572 01:14:17,850 --> 01:14:18,740 >> Rydych yn gwneud hyn yn. 1573 01:14:18,740 --> 01:14:22,440 Felly, gobeithio eich bod yn meddu ar synnwyr da o'r hyn sy'n mynd ymlaen yn fan hyn. 1574 01:14:22,440 --> 01:14:25,890 Y gwahaniaeth mawr, yn onest, yn unig y rhan gyntaf sy'n delio â 1575 01:14:25,890 --> 01:14:29,970 nodweddion hynod o ffeiliau didfap. 1576 01:14:29,970 --> 01:14:33,570 Felly, yr wyf wedi fel fy sleid nesaf, beth sydd angen i ni ei wneud? 1577 01:14:33,570 --> 01:14:35,510 Wel, gadewch i ni feddwl am whodunit. 1578 01:14:35,510 --> 01:14:38,080 >> Ac ar gyfer rhywun sy'n darllen drwy y broblem a osodwyd, beth ydyn ni 1579 01:14:38,080 --> 01:14:41,410 angen iddynt ei wneud mewn whodunit? 1580 01:14:41,410 --> 01:14:42,080 Yn syml. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> ALEJA: Allwch chi gymryd rhan bob picsel sy'n dynodi'r goch. 1583 01:14:48,570 --> 01:14:49,730 Ac yna - 1584 01:14:49,730 --> 01:14:50,730 fath o? 1585 01:14:50,730 --> 01:14:51,860 >> JASON Hirschhorn: OK. 1586 01:14:51,860 --> 01:14:54,460 Felly, yn cymryd y rhan o bob picsel sy'n dynodi'r goch. 1587 01:14:54,460 --> 01:14:57,234 Sy'n agos, ond nid y cyfan ohono. 1588 01:14:57,234 --> 01:14:59,780 >> MYFYRIWR 76: Wel, mae gwahanol ffyrdd o wneud hynny. 1589 01:14:59,780 --> 01:14:59,870 >> JASON Hirschhorn: OK. 1590 01:14:59,870 --> 01:15:03,070 Rhowch un ffordd i mi. 1591 01:15:03,070 --> 01:15:08,240 >> MYFYRIWR 76: Tynnwch yr holl goch, a Yna bwysleisio glas a gwyrdd. 1592 01:15:08,240 --> 01:15:10,010 >> JASON Hirschhorn: OK. 1593 01:15:10,010 --> 01:15:11,830 Felly o ystyried y ddwy ffordd hyn - 1594 01:15:11,830 --> 01:15:15,210 mae'n swnio fel ni roi cynnig picsel, mae'n Mae lefel coch, glas, a gwyrdd. 1595 01:15:15,210 --> 01:15:19,350 Rydym yn awyddus i newid y lefelau cymharol y coch, glas, a gwyrdd, yn dibynnu 1596 01:15:19,350 --> 01:15:20,740 ar y picsel. 1597 01:15:20,740 --> 01:15:28,380 Ble yn y cod hwn y dylem newid y berthynas coch, glas, a gwyrdd 1598 01:15:28,380 --> 01:15:29,720 lefelau o picsel a roddwyd. 1599 01:15:29,720 --> 01:15:30,600 Ar ôl i ni wedi ei ddarllen - 1600 01:15:30,600 --> 01:15:32,520 cyn i ni ysgrifennu? 1601 01:15:32,520 --> 01:15:34,564 Rhowch y rhif llinell mi. 1602 01:15:34,564 --> 01:15:35,950 >> MYFYRWYR LLUOSOG: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON Hirschhorn: 83. 1604 01:15:37,320 --> 01:15:38,570 Felly, i'r dde yma. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Ar gyfer whodunit, y cod mae angen i chi dylai pob ysgrifennu ewch i'r dde yno. 1607 01:15:45,710 --> 01:15:47,640 A dyna'r unig cod angen i chi ysgrifennu. 1608 01:15:47,640 --> 01:15:51,520 Oherwydd, fel y clywsom, pob mae angen i chi wneud yw newid y glas cymharol, 1609 01:15:51,520 --> 01:15:54,420 lefelau coch, a gwyrdd o bob picsel. 1610 01:15:54,420 --> 01:15:58,250 >> Rydych chi wedi ei ddarllen yn, ac yn awr eich bod yn mynd i ysgrifennu allan. 1611 01:15:58,250 --> 01:16:03,100 Sut ydw i'n cael - os oes gennyf y peth hyn a elwir yn driphlyg, dde yma, ac mae'n o 1612 01:16:03,100 --> 01:16:04,570 teipiwch RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 yn dda, os ydym yn edrych yn bmp.h, beth yw RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> MYFYRWYR 77: Mae'n LandLine strwythur. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> JASON Hirschhorn: RGBTRIPLE yn strwythur. 1618 01:16:18,900 --> 01:16:22,330 Rydym yn gweld bod dde i lawr yma. 1619 01:16:22,330 --> 01:16:26,600 Ac felly os oeddwn i eisiau mynediad, dyweder, lefel coch y strwythur, sut ydw i'n 1620 01:16:26,600 --> 01:16:30,005 mynediad at y lefel coch strwythur hwn? 1621 01:16:30,005 --> 01:16:37,280 >> [DOSBARTH si] 1622 01:16:37,280 --> 01:16:38,530 >> MYFYRIWR 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> JASON Hirschhorn: A yw hynny'n gywir? 1625 01:16:48,856 --> 01:16:53,040 >> MYFYRIWR 79: Dylai fod yn triphlyg dot, yn hytrach na RGBTRIPLE dot? 1626 01:16:53,040 --> 01:16:54,120 >> JASON Hirschhorn: Triple. 1627 01:16:54,120 --> 01:16:56,700 Triple yw'r newidyn lleol, felly yma, does dim awgrymiadau yma. 1628 01:16:56,700 --> 01:16:58,400 Felly, rydym yn unig yn defnyddio'r dot nodiant. 1629 01:16:58,400 --> 01:17:00,480 Bydd hyn yn rhoi lefel o goch i mi. 1630 01:17:00,480 --> 01:17:06,180 Os wyf am newid, Fi jyst yn gosod mae'n gyfartal i rywbeth gwahanol. 1631 01:17:06,180 --> 01:17:13,190 Felly eto, llinell hon o god mynedfeydd newidyn hwn y tu mewn strwythur hwn, a 1632 01:17:13,190 --> 01:17:15,070 gallwn ei osod i rywbeth newydd. 1633 01:17:15,070 --> 01:17:20,040 >> Felly, ar gyfer whodunit, unwaith eto, mae hyn yn, yn ei hanfod, yr hyn y mae angen ei wneud. 1634 01:17:20,040 --> 01:17:21,170 Syml iawn. 1635 01:17:21,170 --> 01:17:25,020 Dim ond newid rhai lefelau cymharol, a dyma lle y cod hwnnw yn mynd. 1636 01:17:25,020 --> 01:17:27,720 Newid maint, ar y llaw arall, yn ychydig yn fwy anodd. 1637 01:17:27,720 --> 01:17:30,900 Yn wir, newid maint mae'n debyg, yw'r rhan anoddaf o'r broblem hon a osodwyd. 1638 01:17:30,900 --> 01:17:32,720 Mae gennym dri munud i fynd drosto. 1639 01:17:32,720 --> 01:17:34,910 >> Ond unwaith eto, yr ydym eisoes wedi ysgrifennu y rhan fwyaf o'r cod hwn, felly rydym yn 1640 01:17:34,910 --> 01:17:36,500 Dylai fod yn eithaf cyfarwydd. 1641 01:17:36,500 --> 01:17:40,750 Beth yw rhai pethau yr ydym am ei wneud yn newid maint, os ydych chi wedi darllen dros y 1642 01:17:40,750 --> 01:17:43,470 broblem a osodwyd? 1643 01:17:43,470 --> 01:17:45,290 Os ydych yn eu rhoi i mi, rydym yn Gall siarad amdanynt. 1644 01:17:45,290 --> 01:17:47,340 Beth yw rhai pethau yr ydym am ei wneud? 1645 01:17:47,340 --> 01:17:47,970 >> MYFYRIWR 80: Fertigol - 1646 01:17:47,970 --> 01:17:52,360 felly rhaid i chi llorweddol newid maint iddo, ond yn fertigol newid maint hynny hefyd? 1647 01:17:52,360 --> 01:17:58,475 >> JASON Hirschhorn: Felly os ydym yn rhoi picsel, ac yr ydym yn awyddus i newid maint iddo gan 1648 01:17:58,475 --> 01:18:03,460 ffactor o ddau, yn awr mae angen i fod yn newid maint yn llorweddol ac yn newid maint 1649 01:18:03,460 --> 01:18:05,220 fertigol. 1650 01:18:05,220 --> 01:18:06,640 A yw hynny'n gwneud synnwyr? 1651 01:18:06,640 --> 01:18:07,060 Yeah. 1652 01:18:07,060 --> 01:18:09,300 Felly dyna mae'n debyg y her fwyaf. 1653 01:18:09,300 --> 01:18:10,430 A byddwn yn siarad am hynny mewn eiliad. 1654 01:18:10,430 --> 01:18:11,065 Yeah. 1655 01:18:11,065 --> 01:18:15,270 >> MYFYRIWR 81: Y ffordd yr wyf yn meddwl ohono Roedd chi angen argraffu allan - 1656 01:18:15,270 --> 01:18:15,490 >> JASON Hirschhorn: Aros. 1657 01:18:15,490 --> 01:18:17,580 Peidiwch â dweud wrthym yr hyn a wnaethoch. 1658 01:18:17,580 --> 01:18:20,620 Rydym yn mynd i siarad yn y rhesymeg. 1659 01:18:20,620 --> 01:18:21,870 >> MYFYRIWR 81: OK. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 Beth oedd y cwestiwn? 1662 01:18:27,410 --> 01:18:28,892 >> JASON Hirschhorn: Rydych yn unig codi eich llaw. 1663 01:18:28,892 --> 01:18:31,600 Nid oedd unrhyw gwestiwn. 1664 01:18:31,600 --> 01:18:32,520 Gadewch i mi gyflwyno. 1665 01:18:32,520 --> 01:18:34,560 Gadewch imi drafod hyn yn gryno. 1666 01:18:34,560 --> 01:18:38,400 Felly, rydym wedi un picsel, rydym am ddyblygu, yn llorweddol ac yn 1667 01:18:38,400 --> 01:18:39,360 fertigol. 1668 01:18:39,360 --> 01:18:48,920 Felly, yn ddelfrydol yr hyn yr ydym yn ei wneud yma yw, yr ydym darllen yn ein picsel, byddwn yn ysgrifennu ei 1669 01:18:48,920 --> 01:18:51,690 ond mae llawer o weithiau. 1670 01:18:51,690 --> 01:18:54,720 >> Ond yna rydym wedi ein tric yma, oherwydd yna rydym am hepgor y 1671 01:18:54,720 --> 01:18:57,660 llinell nesaf ac ysgrifennu hynny ar y ddechrau'r llinell nesaf. 1672 01:18:57,660 --> 01:19:02,960 Felly, os ydym am ailadrodd y ddau llorweddol ac yn fertigol, beth yw 1673 01:19:02,960 --> 01:19:05,050 un ffordd dda o wneud hynny - 1674 01:19:05,050 --> 01:19:06,780 un da er i wneud hynny? 1675 01:19:06,780 --> 01:19:11,950 Felly nid oes angen i ni geisio gyson o gwmpas ein ffeil i osod y pethau. 1676 01:19:11,950 --> 01:19:14,360 >> Efallai na fydd y cwestiwn yn cael yn gwneud synnwyr, ond yr wyf yn meddwl bod 1677 01:19:14,360 --> 01:19:15,800 ateb iddo yn helpu. 1678 01:19:15,800 --> 01:19:17,210 >> MYFYRIWR 82: Creu amrywiaeth? 1679 01:19:17,210 --> 01:19:20,090 >> JASON Hirschhorn: Felly, gadewch i ni feddwl pob ffeil fel rhes. 1680 01:19:20,090 --> 01:19:22,550 Gadewch i ni feddwl yn nhermau rhesi. 1681 01:19:22,550 --> 01:19:26,670 Os ydym wedi ein rhes gyntaf gan ein bach llun, gallwn wneud y rhes 1682 01:19:26,670 --> 01:19:30,640 i mewn i rhes fawr o llun mawr, ac yna ailadrodd y rhes, fodd bynnag, 1683 01:19:30,640 --> 01:19:34,250 sawl gwaith y mae angen ei ailadrodd, yn hytrach na mynd yn y picsel picsel, 1684 01:19:34,250 --> 01:19:37,260 sy'n mynd yn ddryslyd pan delio gyda ffeiliau. 1685 01:19:37,260 --> 01:19:38,730 >> Oherwydd os oedd gennym - 1686 01:19:38,730 --> 01:19:41,260 Im 'yn rhedeg allan o le. 1687 01:19:41,260 --> 01:19:46,490 Os yw hyn yn ein ffeiliau, ac yr ydym yn cael y un picsel yno, ac yr ydym am ei roi 1688 01:19:46,490 --> 01:19:49,840 iawn yno, yr ydym yn dal i gael rhai pethau angen, er mwyn mynd dros yno pan rydym yn 1689 01:19:49,840 --> 01:19:51,450 ysgrifennu a chreu ein ffeil newydd - 1690 01:19:51,450 --> 01:19:53,250 ein ffeil sy'n ddwywaith mor fawr. 1691 01:19:53,250 --> 01:19:56,820 >> Ond mae'n anodd iawn â swyddogaethau ffeil i neidio o gwmpas i linellau newydd 1692 01:19:56,820 --> 01:20:00,260 fel 'na, ac yna mynd yn ôl yma a rhoi pethau i mewn 'na. 1693 01:20:00,260 --> 01:20:04,500 Mae bron yn amhosibl i wneud rhywbeth fel 'na, os yw hynny'n gwneud synnwyr. 1694 01:20:04,500 --> 01:20:10,180 Felly, os ydym yn meddwl yn nhermau o resi, gallwn cymryd ein rhes, ac yna ei roi - 1695 01:20:10,180 --> 01:20:11,720 ailadrodd rhesi fertigol. 1696 01:20:11,720 --> 01:20:15,860 >> A dyna sut yr ydym yn delio â newid maint fertigol yn hytrach na llorweddol. 1697 01:20:15,860 --> 01:20:18,810 Roedd y math hwnnw o gyflym, a ychydig yn ddryslyd. 1698 01:20:18,810 --> 01:20:22,375 Yn anffodus, mae ein amser ar ben. 1699 01:20:22,375 --> 01:20:27,340 Byddaf yn sefyll y tu allan ar gyfer y rhai ohonoch yma sydd â chwestiynau am y 1700 01:20:27,340 --> 01:20:30,500 set problem, gan gynnwys adennill. 1701 01:20:30,500 --> 01:20:32,320 >> Felly, gadewch i ni ohirio'r ar hyn o bryd. 1702 01:20:32,320 --> 01:20:34,480 Ac eto, os oes gennych unrhyw gwestiynau, gallwn sgwrsio tu allan. 1703 01:20:34,480 --> 01:20:38,294