1 00:00:00,000 --> 00:00:06,180 2 00:00:06,180 --> 00:00:07,820 >> JASON Hirschhorn: Croeso i A5, bawb. 3 00:00:07,820 --> 00:00:11,270 Mae gennym wythnos cyffrous o'n blaenau, yn bennaf oherwydd bod cymaint o newydd 4 00:00:11,270 --> 00:00:12,350 wynebu yn yr ystafell hon. 5 00:00:12,350 --> 00:00:12,920 Mae'n wych. 6 00:00:12,920 --> 00:00:15,740 Mae llawer ohonoch yma drwy ddamwain, sydd hyd yn oed yn well. 7 00:00:15,740 --> 00:00:18,220 Felly, gobeithio y byddwch yn cadw ymuno â ni. 8 00:00:18,220 --> 00:00:20,220 >> Yr wythnos hon rydym yn mynd i wario y rhan fwyaf o'r adran 9 00:00:20,220 --> 00:00:21,870 paratoi ar gyfer y cwis. 10 00:00:21,870 --> 00:00:26,580 Felly unol â'n hagenda, rydym yn mynd i siarad ychydig am adnoddau ar gyfer y dosbarth, 11 00:00:26,580 --> 00:00:30,350 ond hefyd ar gyfer y cwis, ac yna, unwaith eto, treulio y rhan fwyaf o'r siarad dosbarth 12 00:00:30,350 --> 00:00:31,390 am gwestiynau. 13 00:00:31,390 --> 00:00:33,900 Unwaith y byddwn yn ei wneud yn ateb eich gwestiynau, neu os yw eich cwestiynau 14 00:00:33,900 --> 00:00:39,010 yn naturiol yn ein harwain at rai codio, yr wyf yn cael problemau sampl o midterms 15 00:00:39,010 --> 00:00:43,180 gorffennol y byddwn cod yn byw mewn adran at ei gilydd sydd hefyd yn dod â rhai eraill 16 00:00:43,180 --> 00:00:45,420 pynciau da i dalu. 17 00:00:45,420 --> 00:00:48,280 >> Felly yn gyntaf, fel yr ydym wedi mynd drwy'r gyfer y ychydig wythnosau diwethaf i'ch atgoffa 18 00:00:48,280 --> 00:00:51,700 guys, mae tunnell o adnoddau gael ar gyfer y cwrs. 19 00:00:51,700 --> 00:00:55,020 Bydd llawer ohonynt yn hynod o ddefnyddiol i chi wrth i chi barhau i 20 00:00:55,020 --> 00:00:57,280 astudio ar gyfer cwis 0, oherwydd mae'n brynhawn dydd Mawrth. 21 00:00:57,280 --> 00:00:59,630 Felly yr holl ohonoch wedi bod yn astudio ar gyfer ychydig. 22 00:00:59,630 --> 00:01:02,640 >> Mae nodiadau darlithoedd a ffynhonnell cod y dylech 23 00:01:02,640 --> 00:01:04,050 bendant atalfa i maes. 24 00:01:04,050 --> 00:01:05,019 Gwyliwch y siorts. 25 00:01:05,019 --> 00:01:07,470 Edrychwch ar study.cs50.net. 26 00:01:07,470 --> 00:01:11,770 Ac yna, a restrir isod, mae nifer o adnoddau eraill. 27 00:01:11,770 --> 00:01:14,020 >> Unwaith eto, cwis 0 yfory am 1 o'r gloch. 28 00:01:14,020 --> 00:01:18,230 Os nad ydych wedi gwneud hynny eisoes, gwiriwch nodi'r Amdanom Cwis 0 dogfen ar y 29 00:01:18,230 --> 00:01:21,370 hafan cwrs at chyfrif i maes lle rydych yn cymryd y cwis. 30 00:01:21,370 --> 00:01:25,770 Mae'r cwis yn dechrau am 01:10 ac yn dod i ben 70 munud yn ddiweddarach. 31 00:01:25,770 --> 00:01:29,610 Felly, os ydych yn dangos i fyny ar ôl 01:10, rydych yn mynd i gael bod llawer llai o cofnodion 32 00:01:29,610 --> 00:01:30,940 na 70 i gymryd y cwis. 33 00:01:30,940 --> 00:01:33,570 Felly, gwnewch yn siŵr eich bod yno mewn pryd. 34 00:01:33,570 --> 00:01:38,690 Os ydych yn fyfyriwr estyniad neu wedi rhai ystyriaethau profi eraill, mae'n 35 00:01:38,690 --> 00:01:40,400 Efallai na fydd yn 01:00 yfory. 36 00:01:40,400 --> 00:01:43,540 Ond unwaith eto, edrychwch ar y Cwis Amdanom ni 0 dogfennu i wneud yn siŵr eich bod yn gwybod pryd 37 00:01:43,540 --> 00:01:44,760 eich bod yn cymryd y cwis. 38 00:01:44,760 --> 00:01:46,440 Ysgrifennais 75 munud hyd yma. 39 00:01:46,440 --> 00:01:48,580 Yr wyf yn credu bod hynny'n iawn, nid 70. 40 00:01:48,580 --> 00:01:53,420 >> Mae'n cynnwys yr holl ddeunydd o wythnos 0 i ddarlith yr wythnos diwethaf ar ddydd Mercher. 41 00:01:53,420 --> 00:01:59,350 Ac eto, am y cwis hwn, fesul y ddogfen, byddwch yn cael un dwy-ochrog ac 8 42 00:01:59,350 --> 00:02:03,770 1/2 yn ôl 11 ddalen o bapur eich bod yn cael i'w defnyddio fel nodiadau yn ystod y cwis. 43 00:02:03,770 --> 00:02:08,570 Mae llawer o bobl, os nad y rhan fwyaf o bobl, mae gan fod y ffordd fwyaf defnyddiol sengl 44 00:02:08,570 --> 00:02:11,970 i astudio ar gyfer y cwis yw gwneud taflen astudio, 45 00:02:11,970 --> 00:02:13,730 un-sider, eu hunain. 46 00:02:13,730 --> 00:02:17,710 Felly, yn edrych ar rai yn y gorffennol os ydych chi wedi gweld rhai yn y gorffennol. 47 00:02:17,710 --> 00:02:19,960 Estyn allan at ffrindiau i weld beth eu bod yn rhoi ar eu rhai hwy. 48 00:02:19,960 --> 00:02:23,610 >> Ond ymarferol i lawr, y ffordd orau y gallwch astudiaeth yw mynd drwy bopeth a 49 00:02:23,610 --> 00:02:26,530 didoli i lawr i beth ddylai neu a ddylai Nid yw yn perthyn ar y ddalen o 50 00:02:26,530 --> 00:02:30,570 papur, oherwydd bod yn unig iawn ffordd ddefnyddiol i chi i wneud yn siŵr 51 00:02:30,570 --> 00:02:33,620 ydych yn mynd drwy bopeth a gael rhywfaint o gyfarwydd ag ef. 52 00:02:33,620 --> 00:02:36,690 Rhan fwyaf o bobl, rydym yn dod o hyd, er eu bod yn wedi y ddalen o bapur eistedd i'r dde 53 00:02:36,690 --> 00:02:39,840 nesaf iddynt ar y cwis, peidiwch â throi iddo, oherwydd, unwaith eto, mae hynny'n iawn 54 00:02:39,840 --> 00:02:43,290 broses o fynd drwy'r wybodaeth wedi eu helpu i ddysgu. 55 00:02:43,290 --> 00:02:45,370 >> A oes unrhyw un gennych unrhyw gwestiynau am cwis 0? 56 00:02:45,370 --> 00:02:50,120 57 00:02:50,120 --> 00:02:51,450 Mae gan bawb - 58 00:02:51,450 --> 00:02:53,230 Dydw i ddim yn mynd i wneud godi dwylo. 59 00:02:53,230 --> 00:02:53,550 Peidiwch byth â meddwl. 60 00:02:53,550 --> 00:02:54,790 Yr oeddwn yn mynd i ofyn pwy dechrau astudio. 61 00:02:54,790 --> 00:02:58,360 Ond nid oes arnaf eisiau i wneud i chi pob Nid yw codi eich dwylo. 62 00:02:58,360 --> 00:03:01,290 Felly, fel y dywedais - ie, Avi, mynd yn ei flaen. 63 00:03:01,290 --> 00:03:04,205 >> AVI: Beth fyddai yn beth defnyddiol i'w roi ar y un-beiriant galw? 64 00:03:04,205 --> 00:03:05,875 >> MYFYRIWR: Dyna i fyny i chi. 65 00:03:05,875 --> 00:03:08,210 >> JASON Hirschhorn: Byddwch yn cael i ddefnyddio eich barn. 66 00:03:08,210 --> 00:03:13,220 Pethau defnyddiol i'w roi ar y un-peiriant galw, os ydych yn drysu am y O mawr 67 00:03:13,220 --> 00:03:17,510 Rhedeg o wahanol fathau o chwiliadau a math, rhoi hynny ar yno mewn 68 00:03:17,510 --> 00:03:18,760 siart dandi 'n hylaw. 69 00:03:18,760 --> 00:03:22,250 Drwy hynny, os ydych yn gofyn hynny ar y cwis, nid oes angen i chi geisio ffigur 70 00:03:22,250 --> 00:03:23,560 allan neu reswm drwy'r Rhedeg. 71 00:03:23,560 --> 00:03:24,730 Alli jyst gopïo i lawr. 72 00:03:24,730 --> 00:03:28,320 Os ydych yn edrych ar cwisiau yn y gorffennol, mae llawer o adegau, mae wedi rhedeg cwestiynau amser. 73 00:03:28,320 --> 00:03:34,150 Felly byddai hynny'n enghraifft o dda beth i'w rhoi ar eich un-alwr. 74 00:03:34,150 --> 00:03:37,450 >> Bethau da eraill i roi ar, os ydych yn drysu ynghylch sut i ddatgan 75 00:03:37,450 --> 00:03:40,570 swyddogaeth neu beth yw'r gwahanol rannau o y datganiad swyddogaeth yn, ysgrifennwch 76 00:03:40,570 --> 00:03:43,400 hynny ar yno, fersiwn generig ac yna efallai enghraifft. 77 00:03:43,400 --> 00:03:47,290 Os ydych yn ddryslyd am awgrymiadau, diagram o sut mae awgrymiadau gwaith yn 78 00:03:47,290 --> 00:03:48,660 yn ôl pob tebyg yn ddefnyddiol iawn. 79 00:03:48,660 --> 00:03:52,440 Os ydych yn ddryslyd am recursion, a samplu swyddogaeth ailadroddus ar yno 80 00:03:52,440 --> 00:03:54,980 gallai hefyd yn profi i fod yn ddefnyddiol iawn. 81 00:03:54,980 --> 00:03:57,290 A yw hynny'n rhoi rhai syniadau i chi? 82 00:03:57,290 --> 00:04:01,820 >> AVI: Mae angen i chi ddeall y proses lunio'r gyfan, fel 83 00:04:01,820 --> 00:04:03,220 sut bod yr holl waith? 84 00:04:03,220 --> 00:04:06,620 >> JASON Hirschhorn: Popeth sydd wedi cael ei gorchuddio gallai 85 00:04:06,620 --> 00:04:08,060 arddangos i fyny ar y cwis. 86 00:04:08,060 --> 00:04:08,930 Cwestiynau - 87 00:04:08,930 --> 00:04:11,300 ond unwaith eto, bydd rhai pethau'n pwyso'n drwm nag eraill. 88 00:04:11,300 --> 00:04:14,330 Mae rhai pethau wedi dod i fyny eto ac eto yn y dosbarth, yn 89 00:04:14,330 --> 00:04:15,590 ddarlith, ac adran. 90 00:04:15,590 --> 00:04:17,220 Nid yw pethau eraill wedi yn dod i fyny yn aml. 91 00:04:17,220 --> 00:04:22,900 >> Rydym wedi siarad llawer am # cynnwys ac yn -L rhywbeth a beth hynny'n ei olygu yn 92 00:04:22,900 --> 00:04:24,390 y broses llunio. 93 00:04:24,390 --> 00:04:29,120 Rydym wedi siarad llawer am GDB, haenen, y rhai baneri gwahanol a ddefnyddiwn pan 94 00:04:29,120 --> 00:04:33,100 yn llunio rhywbeth, a pha make15, er enghraifft, mewn gwirionedd 95 00:04:33,100 --> 00:04:34,510 yn golygu ac yn wir yn ei wneud. 96 00:04:34,510 --> 00:04:38,110 Nid ydym wedi siarad cymaint am pob un cam yn 97 00:04:38,110 --> 00:04:39,240 y broses llunio. 98 00:04:39,240 --> 00:04:40,410 Rydym wedi dal i siarad am y peth. 99 00:04:40,410 --> 00:04:42,550 Felly, mae'n dal i fod yn rhywbeth yr ydych Dylai fod yn gyfarwydd â hwy. 100 00:04:42,550 --> 00:04:44,610 Ond unwaith eto, nid ydym yn mynd i fod - 101 00:04:44,610 --> 00:04:49,140 pethau sy'n dod i fyny yn fwy aml yn y dosbarth yn fwy tebygol o ddod i fyny yn fwy 102 00:04:49,140 --> 00:04:52,495 aml a bod yn fwy trwm pwysoli ar y cwis. 103 00:04:52,495 --> 00:04:53,280 >> Cool. 104 00:04:53,280 --> 00:04:54,580 Unrhyw gwestiynau eraill am cwis 0? 105 00:04:54,580 --> 00:04:57,660 106 00:04:57,660 --> 00:05:00,050 >> Iawn, felly yr wyf yn rhoi rhestr o pynciau ar y bwrdd. 107 00:05:00,050 --> 00:05:01,550 Es i drwy y maes llafur. 108 00:05:01,550 --> 00:05:07,340 Es trwy'r adran adolygu o neithiwr a sleidiau hynny i ddod o hyd 109 00:05:07,340 --> 00:05:13,710 gyda rhestr anghyflawn o bynciau ein bod wedi cynnwys hyd yn hyn yn CS50 110 00:05:13,710 --> 00:05:16,800 a phethau a allai ymddangos ar y cwis. 111 00:05:16,800 --> 00:05:19,900 Felly, nid wyf ddim yn mynd i fynd drwy bob un o'r rhain. 112 00:05:19,900 --> 00:05:22,370 Byddai hynny'n cymryd llawer mwy o amser nag sydd gennym yn awr. 113 00:05:22,370 --> 00:05:26,880 Ond yr wyf yn rhoi hyn i fyny yma i gobeithio loncian eich cof fel at bethau a all 114 00:05:26,880 --> 00:05:28,420 neu efallai na fydd mor gyfarwydd gyda chi. 115 00:05:28,420 --> 00:05:32,850 >> Ac Byddwn wrth fy modd i dreulio y rhan fwyaf o'r adran ateb eich cwestiynau am 116 00:05:32,850 --> 00:05:35,130 pynciau hyn, pynciau sy'n yn cael eu cynnwys yma. 117 00:05:35,130 --> 00:05:36,130 Gallwn ysgrifennu cod ffug. 118 00:05:36,130 --> 00:05:40,010 Gallwn ysgrifennu cod go iawn er mwyn sicrhau eich bod chi - 119 00:05:40,010 --> 00:05:44,280 Yr wyf yn gallu ateb eich cwestiwn ac yn helpu pawb yn deall hanfod 120 00:05:44,280 --> 00:05:48,330 llawer o'r pynciau hyn, felly byddwch yn teimlo'n barod ac yn gyfforddus yn mynd i mewn i 121 00:05:48,330 --> 00:05:50,150 y yfory cwis. 122 00:05:50,150 --> 00:05:52,300 Felly darllenwch dros y rhestr. 123 00:05:52,300 --> 00:05:54,780 Yr ydych, gobeithio, wedi dod i'r adran gyda rhai cwestiynau hefyd. 124 00:05:54,780 --> 00:05:58,480 Pan fyddwch yn barod, codwch eich llaw a byddwn yn ddechrau arni. 125 00:05:58,480 --> 00:06:01,590 126 00:06:01,590 --> 00:06:05,200 >> Cadwch mewn cof, mae'r gwestiynau sydd gennych, nid oes unrhyw gwestiynau dwp. 127 00:06:05,200 --> 00:06:06,250 Rydym wedi clywed bod llawer. 128 00:06:06,250 --> 00:06:09,490 Ac mae'r gwestiynau sydd gennych, yr wyf yn fodlon i bet, mae llawer o bobl eraill yn 129 00:06:09,490 --> 00:06:11,740 eistedd yma a gwylio ar-lein yn ogystal. 130 00:06:11,740 --> 00:06:13,770 Felly, gallwch chi yn unig yn helpu pobl drwy ofyn cwestiynau. 131 00:06:13,770 --> 00:06:15,070 Marcus. 132 00:06:15,070 --> 00:06:18,040 >> MARCUS: Rhwng y pentwr a'r domen, a oes cyn-ddyrannu 133 00:06:18,040 --> 00:06:22,880 canran o gof sy'n cael ei ddiffinio fel hyn ar gyfer y stac neu ar gyfer y domen? 134 00:06:22,880 --> 00:06:25,010 Neu sut mae gwaith hwnnw, yn union? 135 00:06:25,010 --> 00:06:26,230 >> JASON Hirschhorn: Cwestiwn Fawr. 136 00:06:26,230 --> 00:06:28,640 Rydw i'n mynd i gefnogi olrhain ychydig. 137 00:06:28,640 --> 00:06:30,910 A yw pawb - 138 00:06:30,910 --> 00:06:31,660 os gwelwch yn dda fod yn onest yma. 139 00:06:31,660 --> 00:06:34,130 Yr wyf yn gwybod fy mod yn gofyn i chi godi eich llaw o flaen eich cyfoedion. 140 00:06:34,130 --> 00:06:38,510 Ond a oes pobl sy'n teimlo anghyfforddus gyda'r pentwr a domen 141 00:06:38,510 --> 00:06:42,980 a hoffwn i fynd dros y a beth hynny'n ei olygu? 142 00:06:42,980 --> 00:06:43,880 Codwch eich llaw os - 143 00:06:43,880 --> 00:06:44,420 OK. 144 00:06:44,420 --> 00:06:45,120 Diolch yn fawr. 145 00:06:45,120 --> 00:06:48,420 Felly, rydym yn mynd i fynd dros y pentwr a y domen yn gyflym iawn ac yna 146 00:06:48,420 --> 00:06:50,370 symud i ateb eich cwestiwn. 147 00:06:50,370 --> 00:06:58,250 >> Felly, os byddwn yn tynnu allan blwch i gynrychioli cof ar eich cyfrifiadur, beth yw rhai 148 00:06:58,250 --> 00:07:02,160 pethau sy'n mynd yn y blwch hwn? 149 00:07:02,160 --> 00:07:03,630 Main. 150 00:07:03,630 --> 00:07:04,020 Mae prif swyddogaeth. 151 00:07:04,020 --> 00:07:05,890 Ble mae prif mynd? 152 00:07:05,890 --> 00:07:08,090 >> MYFYRIWR: [Anghlywadwy]. 153 00:07:08,090 --> 00:07:09,390 >> JASON Hirschhorn: Felly ni chi helpu rhoi prif lawr yma. 154 00:07:09,390 --> 00:07:12,180 155 00:07:12,180 --> 00:07:13,430 Beth arall yn mynd yn y blwch hwn? 156 00:07:13,430 --> 00:07:16,000 157 00:07:16,000 --> 00:07:18,140 >> MYFYRIWR: Mae swyddogaethau eich bod yn galw. 158 00:07:18,140 --> 00:07:19,020 >> JASON Hirschhorn: Y swyddogaethau ein bod yn galw. 159 00:07:19,020 --> 00:07:20,440 A ble maen nhw'n mynd? 160 00:07:20,440 --> 00:07:21,300 >> MYFYRIWR: Yn y pentwr. 161 00:07:21,300 --> 00:07:22,380 >> JASON Hirschhorn: Maent yn yn mynd yn y pentwr. 162 00:07:22,380 --> 00:07:27,350 Felly, rydym yn mynd i alw hyn beth i lawr yma y pentwr. 163 00:07:27,350 --> 00:07:31,880 Ac i fyny top, mae gennym y domen. 164 00:07:31,880 --> 00:07:35,450 Felly, nid cof yn blwch yn union fel hyn. 165 00:07:35,450 --> 00:07:37,330 Ond mae'n mewn gwirionedd yn eithaf tebyg. 166 00:07:37,330 --> 00:07:40,840 Mae'n mynd i fod yn llawer o flychau dros a throsodd, yn dibynnu ar ba mor fawr eich 167 00:07:40,840 --> 00:07:43,730 cyfrifiadur yn cael neu pa mor fawr eich cof. 168 00:07:43,730 --> 00:07:46,950 >> Yn y dyfyniad-unquote "gwaelod" yn y pentwr. 169 00:07:46,950 --> 00:07:50,880 Ac mae yna bethau lluosog sy'n mynd ar y pentwr. 170 00:07:50,880 --> 00:07:53,840 A'r rhai yn dibynnu ar y swyddogaethau sydd gennych yn eich cod. 171 00:07:53,840 --> 00:07:57,780 Rydych chi bob amser gael un swyddogaeth yn eich cod a elwir yn brif, felly mae bob amser yn 172 00:07:57,780 --> 00:08:00,480 adran i lawr yma yn y simnai neilltuo i'r brif. 173 00:08:00,480 --> 00:08:03,980 >> Mae'r adrannau hyn yn y pentwr yn cael eu galw'n fframiau pentwr. 174 00:08:03,980 --> 00:08:09,580 Pan fyddwch yn ffonio swyddogaeth arall, yn dweud prif yn galw swyddogaeth chwiliad deuaidd, 175 00:08:09,580 --> 00:08:11,075 rydym yn rhoi ffrâm arall ar y pentwr. 176 00:08:11,075 --> 00:08:13,830 177 00:08:13,830 --> 00:08:17,320 Yn fwy penodol, rydym yn mynd i rhoi darn o gof ar ein 178 00:08:17,320 --> 00:08:22,960 cyfrifiadur i storio chwiliad deuaidd lleol newidynnau ac i redeg y deuaidd 179 00:08:22,960 --> 00:08:24,150 Cod chwilio. 180 00:08:24,150 --> 00:08:26,810 >> Felly, rydym yn galw chwiliad deuaidd. 181 00:08:26,810 --> 00:08:30,440 182 00:08:30,440 --> 00:08:33,340 Yn y darn hwn o cof, rydym yn mynd i storio ei newidynnau lleol. 183 00:08:33,340 --> 00:08:35,270 Rydym yn mynd i storio ei galwadau printf. 184 00:08:35,270 --> 00:08:38,159 Beth bynnag sy'n digwydd, y swyddogaeth honno yn mynd i gael eu storio iawn yno. 185 00:08:38,159 --> 00:08:40,350 Chwiliad deuaidd yn mynd i weithredu. 186 00:08:40,350 --> 00:08:42,210 Mae'n mynd i gwblhau gweithredu. 187 00:08:42,210 --> 00:08:47,450 Beth yw'r gair yn C, sy'n arwydd o y dylai swyddogaeth 188 00:08:47,450 --> 00:08:49,306 cwblhau ei weithredu? 189 00:08:49,306 --> 00:08:50,040 >> MYFYRIWR: Ffurflen Dreth. 190 00:08:50,040 --> 00:08:50,870 >> JASON Hirschhorn: Dychwelyd. 191 00:08:50,870 --> 00:08:53,230 Felly, pryd bynnag y byddwch yn gweld datganiad dychwelyd, y swyddogaeth yn dod i ben 192 00:08:53,230 --> 00:08:54,350 pan fydd yn taro hynny. 193 00:08:54,350 --> 00:08:56,740 Bydd chwilio Felly deuaidd gyrraedd ei dychwelyd. 194 00:08:56,740 --> 00:09:01,360 Mae'r rhan hon o'r cof yn ei hanfod yn cael ei ryddhau. 195 00:09:01,360 --> 00:09:03,510 A bydd brif mynd yn ôl i'r gweithredu. 196 00:09:03,510 --> 00:09:07,240 Felly bydd brif oedi lle bynnag oedd, ffoniwch chwiliad deuaidd, yn cael rhywfaint o werth dychwelyd, 197 00:09:07,240 --> 00:09:08,700 a pharhau gweithredu. 198 00:09:08,700 --> 00:09:10,840 Bydd y ffrâm pentwr yn mynd i ffwrdd. 199 00:09:10,840 --> 00:09:14,810 >> Os byddwn yn galw swyddogaeth ailadroddus, sy'n yn swyddogaeth sy'n galw ei hun dros 200 00:09:14,810 --> 00:09:18,480 a throsodd, efallai y byddwn yn ei gael - dweud ein wnaeth chwiliad deuaidd recursively. 201 00:09:18,480 --> 00:09:21,520 Efallai y byddwn yn cael y fersiwn deuaidd chwilio un, chwiliad deuaidd dau, chwiliad deuaidd 202 00:09:21,520 --> 00:09:24,090 tri, chwilio deuaidd pedwar, chwiliad deuaidd bump. 203 00:09:24,090 --> 00:09:27,950 Ac yna y chwiliad deuaidd terfynol pum Bydd taro yr achos sylfaenol, ac mae'r pentwr 204 00:09:27,950 --> 00:09:31,010 Bydd fframiau fynd yn ôl a chadw cau nes i ni fynd yn ôl i'r brif. 205 00:09:31,010 --> 00:09:32,530 Gallwn fynd dros recursion mewn tipyn. 206 00:09:32,530 --> 00:09:35,530 Ond mae hyn i gyd yw, os ydych yn galw swyddogaethau lluosog ar y tro, 207 00:09:35,530 --> 00:09:39,250 bydd yna pentwr lluosog fframiau ar y pentwr. 208 00:09:39,250 --> 00:09:42,900 >> Mae'r domen, ar y llaw arall, i fyny yma, nid ar gyfer swyddogaethau, 209 00:09:42,900 --> 00:09:44,380 nid ar gyfer newidynnau lleol. 210 00:09:44,380 --> 00:09:48,920 Mae ar gyfer dyrannu ddynamig newidynnau. 211 00:09:48,920 --> 00:09:57,210 Felly mae'r rhain yn newidynnau y gellir eu ymgychwyn naill ai mhrif neu 212 00:09:57,210 --> 00:09:58,640 swyddogaeth y prif galwadau. 213 00:09:58,640 --> 00:10:00,790 Unrhyw le yn eich cod, maent yn gellir ei ymgychwyn. 214 00:10:00,790 --> 00:10:04,360 Ac i ymgychwyn yn ddynamig amrywiol a ddyrannwyd. 215 00:10:04,360 --> 00:10:06,970 Pa swyddogaeth yn C ydym yn defnyddio? 216 00:10:06,970 --> 00:10:07,600 >> MYFYRIWR: Malloc. 217 00:10:07,600 --> 00:10:09,240 >> JASON Hirschhorn: Malloc. 218 00:10:09,240 --> 00:10:10,800 Ffonio malloc. 219 00:10:10,800 --> 00:10:12,260 Byddwch yn cael lle o gof. 220 00:10:12,260 --> 00:10:15,020 A dyna lle o gof ar y domen. 221 00:10:15,020 --> 00:10:18,840 A dyna lle o gof yn aros yno hyd nes y byddwch ffoniwch am ddim. 222 00:10:18,840 --> 00:10:22,670 >> Newidynnau Felly dyrannu ddeinamig yn Bydd domen yn bodoli cyhyd ag y byddwch 223 00:10:22,670 --> 00:10:25,250 am iddynt bodoli, ac nid ydynt yn mynd i ffwrdd hyd nes y byddwch yn benodol 224 00:10:25,250 --> 00:10:26,760 dweud wrthyn nhw am fynd i ffwrdd. 225 00:10:26,760 --> 00:10:29,670 Gallwch eu greu mewn un swyddogaeth. 226 00:10:29,670 --> 00:10:31,930 Pentwr swyddogaeth honno yn Bydd ffrâm yn mynd i ffwrdd. 227 00:10:31,930 --> 00:10:35,490 Ond y bydd newidyn yn dal i fodoli yn y domen nes iddo gael ei rhyddhau, 228 00:10:35,490 --> 00:10:39,650 o bosibl gan y swyddogaeth oedd yn galw chwiliad deuaidd neu beth bynnag. 229 00:10:39,650 --> 00:10:42,580 >> Felly newidynnau domen hynny aros yno am gymaint o amser ag y dymunwch 230 00:10:42,580 --> 00:10:43,490 i aros yno. 231 00:10:43,490 --> 00:10:46,090 Ac maent yn cael eu rhoi yma. 232 00:10:46,090 --> 00:10:47,450 Ac yna yr un nesaf yn cael ei roi yno. 233 00:10:47,450 --> 00:10:50,210 Maent yn cadw cael eu llenwi i mewn, ac maent yn aros yno hyd nes y byddwch ffoniwch am ddim. 234 00:10:50,210 --> 00:10:52,870 >> Ac yn ei hanfod, y domen a'r simnai, cyrraedd gwestiwn Marcus yn, 235 00:10:52,870 --> 00:10:54,500 tyfu tuag at ei gilydd. 236 00:10:54,500 --> 00:10:57,730 Ac os ydynt yn rhedeg i mewn i un arall, eich bod wedi Defnyddir yr holl cof yn eich 237 00:10:57,730 --> 00:11:01,330 Bydd cyfrifiadur, ac yn eich rhaglen rhoi'r gorau iddi oherwydd nad oes gennych unrhyw mwy o gof 238 00:11:01,330 --> 00:11:02,420 ar ôl eu defnyddio. 239 00:11:02,420 --> 00:11:07,290 Yn rhyngddynt, mae phethau eraill o bosibl. 240 00:11:07,290 --> 00:11:10,980 Ond ar gyfer y cwmpas y cwrs hwn, byddwch yn Nid oes angen i chi boeni am hynny. 241 00:11:10,980 --> 00:11:12,020 >> Felly yr oedd yr ateb i'ch cwestiwn. 242 00:11:12,020 --> 00:11:13,520 Peidiwch â phoeni am y peth. 243 00:11:13,520 --> 00:11:15,550 Ond dyna oedd yr ateb hir. 244 00:11:15,550 --> 00:11:17,800 Y cyfan sydd angen i chi ei wybod yw y Bydd tomen a'r pentwr - 245 00:11:17,800 --> 00:11:18,900 un yn dechrau ar y gwaelod. 246 00:11:18,900 --> 00:11:19,570 Y pentwr yn ei wneud. 247 00:11:19,570 --> 00:11:20,790 Mae'r domen i fyny yno. 248 00:11:20,790 --> 00:11:21,990 Byddant yn tyfu nes at ei gilydd. 249 00:11:21,990 --> 00:11:23,110 >> Ac os ydynt yn cyffwrdd, mae hynny'n broblem. 250 00:11:23,110 --> 00:11:24,500 Rydych yn rhedeg allan o gof. 251 00:11:24,500 --> 00:11:28,760 Ond hefyd, yn ogystal â gwybod lle maent yn cael eu, beth yn cael ei storio yn y 252 00:11:28,760 --> 00:11:30,512 stacio a domen. 253 00:11:30,512 --> 00:11:31,410 Curtis. 254 00:11:31,410 --> 00:11:33,570 >> CURTIS: Pan fyddant yn gwrthdaro, yw bod gorlif pentwr? 255 00:11:33,570 --> 00:11:35,670 >> JASON Hirschhorn: Pan fyddant yn gwrthdaro, nid yw hynny'n gorlif pentwr. 256 00:11:35,670 --> 00:11:38,340 Mae gollyngfa stac yn ardal wahanol ein bod yn gallu mynd dros os ydych yn dymuno. 257 00:11:38,340 --> 00:11:40,020 OK, byddwn yn dod yn ôl at hynny mewn ychydig. 258 00:11:40,020 --> 00:11:42,730 >> MYFYRIWR: Beth yw'r gair a elwir yn pan fyddant yn taro ei gilydd, mae'r 259 00:11:42,730 --> 00:11:44,450 stacio a'r domen? 260 00:11:44,450 --> 00:11:46,640 >> JASON Hirschhorn: Am y tro, peidiwch â phoeni am. 261 00:11:46,640 --> 00:11:47,750 Dim ond yn gwybod - 262 00:11:47,750 --> 00:11:50,530 Byddaf yn ateb y cwestiwn ar ôl y dosbarth. 263 00:11:50,530 --> 00:11:52,680 Os ydynt yn rhedeg i mewn i bob eraill, rydych yn rhedeg allan y cof, oherwydd nad oes mwy 264 00:11:52,680 --> 00:11:53,330 lle yno. 265 00:11:53,330 --> 00:11:55,450 >> MYFYRIWR: Mae'n ddrwg gennyf, beth nam SEG? 266 00:11:55,450 --> 00:11:58,710 >> JASON Hirschhorn: A segment Gall gwall galw am - 267 00:11:58,710 --> 00:12:02,240 mae'n dibynnu pam y gelwir y nam GEY yn. 268 00:12:02,240 --> 00:12:06,260 Weithiau, eich gorlif stac, mae'n annhymerus ' dweud seg fai fel y gwall. 269 00:12:06,260 --> 00:12:08,180 >> MYFYRIWR: Beth am dereferencing newidyn nwl? 270 00:12:08,180 --> 00:12:10,040 A yw hynny'n nam SEG? 271 00:12:10,040 --> 00:12:11,480 >> JASON Hirschhorn: Dereferencing pwyntydd null - 272 00:12:11,480 --> 00:12:17,850 Iawn, felly os oes gennych pwyntydd eich bod gosod cyfartal i null, awgrymiadau, galw i gof, 273 00:12:17,850 --> 00:12:20,270 cyfeiriadau storio cof fel eu gwerthoedd. 274 00:12:20,270 --> 00:12:23,660 A pwyntydd null ei hanfod storio 0, 0-fed 275 00:12:23,660 --> 00:12:26,670 afael â hwy yn y newidyn. 276 00:12:26,670 --> 00:12:30,010 Felly 0x, 0, 0, 0, 0, et cetera. 277 00:12:30,010 --> 00:12:35,030 Mae hynny'n 0-fed gyfeiriad er cof nad yw yn yn ein llun, dyna i fyny yno 278 00:12:35,030 --> 00:12:38,800 rhywle, sydd wedi ei gadw ar gyfer y cyfrifiadur. 279 00:12:38,800 --> 00:12:40,130 Nid ydym yn cael ei gyffwrdd. 280 00:12:40,130 --> 00:12:44,680 >> Felly, pan fydd eich rhaglen yn ei gweithredu, os rhywbeth yn ceisio mynd i'r cof 281 00:12:44,680 --> 00:12:48,990 gyfeiriad 0, mae'n gwybod bod mae hynny'n werth wag. 282 00:12:48,990 --> 00:12:50,820 Mae'n gwybod na ddylai unrhyw beth fod yno. 283 00:12:50,820 --> 00:12:53,420 Felly, os ydych yn ceisio ac yn defnyddio rhywbeth yno ac yn trin rhywbeth fel yno neu 284 00:12:53,420 --> 00:12:58,355 ceisio mynd i'r lleoliad hwnnw, rydych yn mynd i gael nam seg neu gamgymeriad. 285 00:12:58,355 --> 00:13:00,520 A yw hynny'n ateb eich cwestiwn? 286 00:13:00,520 --> 00:13:03,170 >> Ac yn awr byddwn yn mynd yn ôl i'r golwg gorlifo. 287 00:13:03,170 --> 00:13:09,560 Pethau yn y pentwr, wrth i chi guys yn cael weld o'r blaen, yn - gadewch i ni dynnu agos 288 00:13:09,560 --> 00:13:11,966 cynnwys ffrâm pentwr. 289 00:13:11,966 --> 00:13:15,050 Gall pawb weld hynny? 290 00:13:15,050 --> 00:13:16,650 Felly, rydym wedi ein ffrâm pentwr. 291 00:13:16,650 --> 00:13:23,260 Rydym yn arbed amrywiaeth mewn fel leol amrywiol yn y swyddogaeth hon. 292 00:13:23,260 --> 00:13:29,510 Felly, yn dweud Mae ein amrywiaeth pum smotiau. 293 00:13:29,510 --> 00:13:33,230 Pob un o'r pum y rhai a fydd yn cael ei storio yn y ffrâm pentwr. 294 00:13:33,230 --> 00:13:37,540 >> Os byddwn yn dechrau ysgrifennu y tu hwnt i'r ffiniau amrywiaeth hwn - 295 00:13:37,540 --> 00:13:43,990 felly os ydym yn dechrau ysgrifennu i mewn i, gadewch i ni yn dweud bod yn 0. 296 00:13:43,990 --> 00:13:46,800 Mae'r rhai yw'r pum mynegeion ein amrywiaeth. 297 00:13:46,800 --> 00:13:50,980 Os byddwn yn dechrau ysgrifennu mewn mynegai 5, sy'n nid oes gennym pan fydd gennym 298 00:13:50,980 --> 00:13:55,900 amrywiaeth o faint 5, rydym yn dechrau ysgrifennu mewn mynegai 6, 7, 8, 9, ni allwn gael Stack 299 00:13:55,900 --> 00:13:57,960 Gwall orlif. 300 00:13:57,960 --> 00:14:00,510 >> Yn gyffredinol, nid yw'n - 301 00:14:00,510 --> 00:14:04,910 mae'n debyg y byddwch yn mynd i drwbl os byddwch yn mynd drosodd gan un. 302 00:14:04,910 --> 00:14:08,640 Ond yn gyffredinol, byddwch yn mynd i mewn i'r y rhan fwyaf o drafferth os ydych yn mynd drosodd gan lawer 303 00:14:08,640 --> 00:14:12,770 ac rydych yn mynd mor bell dros eich bod yn ysgrifennu dros y cyfeiriad dychwelyd y 304 00:14:12,770 --> 00:14:16,080 swyddogaeth, sydd wedi'i leoli yn y waelod y ffrâm pentwr. 305 00:14:16,080 --> 00:14:16,520 >> Oherwydd, dde? 306 00:14:16,520 --> 00:14:17,670 Chi - yn y - mae'n ddrwg gennyf. 307 00:14:17,670 --> 00:14:18,550 Nid yw "oherwydd iawn." 308 00:14:18,550 --> 00:14:20,470 >> Yn y ffrâm pentwr, mae gennych eich newidynnau lleol. 309 00:14:20,470 --> 00:14:27,090 Ar waelod y pentwr ffrâm yw'r cyfeiriad dychwelyd. 310 00:14:27,090 --> 00:14:28,790 Dyna lle mae'r swyddogaeth mynd pan mae'n drosodd. 311 00:14:28,790 --> 00:14:33,750 Ac os ydych yn trosysgrifo y ffurflen gyfeiriad, yna pan fydd y ffrâm stac, 312 00:14:33,750 --> 00:14:36,680 pan fyddwch yn mynd drwy'r pentwr ffrâm a gweithredu bob llinell, rydych yn 313 00:14:36,680 --> 00:14:40,350 mynd i fynd at eich cyfeiriad dychwelyd newydd sy'n cael ei ysgrifennu yno yn hytrach na'r 314 00:14:40,350 --> 00:14:40,910 un gwirioneddol. 315 00:14:40,910 --> 00:14:45,050 A dyna sut yr ydym wedi gweld rhai achosion o dorri diogelwch 316 00:14:45,050 --> 00:14:46,780 a all ddigwydd gyda chyfrifiaduron. 317 00:14:46,780 --> 00:14:52,760 >> Gorlif Felly simnai, yn fyr, yw pan chi ysgrifennu dros y rhan yn y pentwr 318 00:14:52,760 --> 00:14:55,440 rydych yn fod i'w defnyddio, y gymuned leol newidyn rydych yn fod i'w defnyddio, a 319 00:14:55,440 --> 00:14:58,070 yn enwedig pan fyddwch yn dechrau trosysgrifo pethau pwysig fel y 320 00:14:58,070 --> 00:14:59,100 dychwelyd cyfeiriad. 321 00:14:59,100 --> 00:15:00,090 A dyna lle byddwch yn cael gwall. 322 00:15:00,090 --> 00:15:03,980 Neu efallai hyd yn oed gallech ddechrau hyd yn oed yn ysgrifennu mewn - 323 00:15:03,980 --> 00:15:05,370 dweud chwiliad deuaidd yn yn union uwchben prif. 324 00:15:05,370 --> 00:15:07,790 Os ydych yn overwrote llawer, chi Gallai ysgrifennu i mewn i brif. 325 00:15:07,790 --> 00:15:10,230 Ond yn gyffredinol, byddwch yn cael gwall cyn hynny, gan fod y cyfrifiadur yn gwybod 326 00:15:10,230 --> 00:15:12,270 eich bod yn gwneud rhywbeth yr ydych Ni ddylai fod yn ei wneud. 327 00:15:12,270 --> 00:15:12,560 Yeah. 328 00:15:12,560 --> 00:15:13,910 >> MYFYRIWR: Beth yw'r gwahaniaeth rhwng gorlif stac 329 00:15:13,910 --> 00:15:16,940 a gorlif byffer? 330 00:15:16,940 --> 00:15:19,420 >> JASON Hirschhorn: Byffer gorlif yn fath mwy cyffredinol o 331 00:15:19,420 --> 00:15:20,395 hyn yr wyf wedi ei ddisgrifio yn unig. 332 00:15:20,395 --> 00:15:22,610 >> MYFYRIWR: Felly gorlif stac yn enghraifft o gorlif byffer. 333 00:15:22,610 --> 00:15:23,420 >> JASON Hirschhorn: Yn union. 334 00:15:23,420 --> 00:15:28,700 Mae hwn yn amrywiaeth y gallwn feddwl amdano fel byffer, lle i bethau fynd i mewn 335 00:15:28,700 --> 00:15:30,600 Mae hwn yn gorlifo byffer pentwr. 336 00:15:30,600 --> 00:15:33,210 Gallem gael gorlif byffer domen. 337 00:15:33,210 --> 00:15:36,870 Os oedd byffer, y mae yn aml llu y domen, ac rydym yn 338 00:15:36,870 --> 00:15:40,600 overwrote ffiniau hynny, yna byddem yn cael gorlif byffer domen. 339 00:15:40,600 --> 00:15:44,870 >> Ac y tu hwnt i gwmpas y cwrs hwn, maent yn canfod ychydig yn wahanol. 340 00:15:44,870 --> 00:15:48,040 Mae'r compiler wedi arbennig ffyrdd o ganfod pob un. 341 00:15:48,040 --> 00:15:50,660 Ond mae gorlif byffer yn fwy cyffredinol math o hyn yr wyf yn ei ddisgrifio, 342 00:15:50,660 --> 00:15:54,090 a oedd yn gorlif byffer pentwr. 343 00:15:54,090 --> 00:15:56,240 Oedd hynny'n ateb eich cwestiwn? 344 00:15:56,240 --> 00:15:57,910 Melys. 345 00:15:57,910 --> 00:16:01,850 >> A oedd unrhyw gwestiynau eraill cysylltiedig i'r pentwr neu'r domen? 346 00:16:01,850 --> 00:16:04,920 347 00:16:04,920 --> 00:16:05,510 Yeah. 348 00:16:05,510 --> 00:16:08,220 >> MYFYRIWR: Yr wyf yn gwybod eich bod wedi i llinynnau rhad ac am ddim oherwydd eu bod yn y domen 349 00:16:08,220 --> 00:16:09,305 ac nad ydych am i gollwng cof. 350 00:16:09,305 --> 00:16:12,240 Ond mae'n rhaid i chi am ddim newidynnau byd-eang a phethau fel 'na? 351 00:16:12,240 --> 00:16:14,335 Neu a ydynt yn rhyddhau yn awtomatig? 352 00:16:14,335 --> 00:16:15,700 >> JASON Hirschhorn: Cwestiwn da. 353 00:16:15,700 --> 00:16:22,340 Felly, yn CS50.H, rydym yn creu peth hwn i chi a elwir yn llinyn. 354 00:16:22,340 --> 00:16:23,800 Mae llinyn yn wir yn yr hyn? 355 00:16:23,800 --> 00:16:24,810 >> MYFYRIWR: seren Torgoch. 356 00:16:24,810 --> 00:16:29,180 >> JASON Hirschhorn: A seren torgoch, pwyntydd i gymeriad, pwyntydd i 357 00:16:29,180 --> 00:16:30,650 amrywiaeth o gymeriadau. 358 00:16:30,650 --> 00:16:32,210 Dyna beth y llinyn yn. 359 00:16:32,210 --> 00:16:36,050 Felly mae angen i ryddhau, oherwydd getstring, yr ydym yn defnyddio llawer - 360 00:16:36,050 --> 00:16:38,370 enw llinyn yn dychwelyd getstring - 361 00:16:38,370 --> 00:16:43,560 sy'n mallocs i ni rhywfaint o cof ar y domen ac yna yn dychwelyd pwyntydd i'r 362 00:16:43,560 --> 00:16:47,230 cymeriad cyntaf y llinyn, yn seren torgoch. 363 00:16:47,230 --> 00:16:52,760 >> Felly yn ôl pob golwg, os nad ydych wedi bod ysgrifenedig am ddim ar unrhyw un o'ch llinynnau 364 00:16:52,760 --> 00:16:55,600 eich bod wedi galw hyd yn hyn, mae gennych bod yn gollwng rhywfaint o cof. 365 00:16:55,600 --> 00:16:57,430 Wrth gwrs, nid ydym wedi sôn am , felly does neb yn gotten yn 366 00:16:57,430 --> 00:16:58,520 trafferth i wneud hynny. 367 00:16:58,520 --> 00:16:59,980 Ond wrth fynd ymlaen, ie. 368 00:16:59,980 --> 00:17:03,990 Pan fyddwch yn ffonio getstring, rydych yn mallocing ychydig o le ar y domen. 369 00:17:03,990 --> 00:17:07,640 Ac os nad ydych yn ffoniwch am ddim yn nes ymlaen y llinyn, mae gennych gollwng cof. 370 00:17:07,640 --> 00:17:09,440 Mae hynny'n ateb eich cwestiwn? 371 00:17:09,440 --> 00:17:10,606 >> Yeah 372 00:17:10,606 --> 00:17:15,020 >> MYFYRIWR: Felly, i wneud hynny, rydym yn defnyddio hawl rhad ac am ddim cyn dychwelyd? 373 00:17:15,020 --> 00:17:18,510 Fel, o fewn y cwmpas, yr wyf yn dyfalu os yr ydym yn dweud, fel, int brif, o fewn y 374 00:17:18,510 --> 00:17:24,410 cwmpas y cod sy'n o fewn rhai braces cyrliog, i'r dde cyn - 375 00:17:24,410 --> 00:17:26,140 eich bod yn gwybod ble rydych wedi fel arfer yn rhoi dychwelyd. 376 00:17:26,140 --> 00:17:27,950 Ydych yn ei roi am ddim cyn hynny? 377 00:17:27,950 --> 00:17:31,000 >> JASON Hirschhorn: Felly gallwch roi rhad ac am ddim ble bynnag yr ydych eisiau rhoi am ddim. 378 00:17:31,000 --> 00:17:33,810 Gan fod y rhain yn cael eu dyrannu ddeinamig newidynnau, oherwydd eu bod yn gallu 379 00:17:33,810 --> 00:17:39,170 yn byw y tu hwnt i gwmpas penodol swyddogaeth, os byddwch yn ffonio malloc mewn 380 00:17:39,170 --> 00:17:44,140 swyddogaeth ar wahân, er enghraifft, getstring, gallwch ffonio rhad ac am ddim yn y prif. 381 00:17:44,140 --> 00:17:46,050 Nid oes angen i chi ei alw'n yn y swyddogaeth benodol 382 00:17:46,050 --> 00:17:47,570 os oes amheuaeth malloc. 383 00:17:47,570 --> 00:17:50,340 Ond mae angen i chi ei alw yn cyn prif ffurflenni. 384 00:17:50,340 --> 00:17:51,120 >> Ac mae'n dibynnu mewn gwirionedd. 385 00:17:51,120 --> 00:17:54,960 Mae'n dibynnu ar pam yr ydych yn malloced bod lle yn y lle cyntaf. 386 00:17:54,960 --> 00:17:57,320 Bydd rhai pobl yn galw rhad ac am ddim 'n bert gyflym. 387 00:17:57,320 --> 00:17:59,220 Ni fydd rhai pobl yn galw am ddim hyd nes y ddiwedd eu rhaglen. 388 00:17:59,220 --> 00:18:00,660 A byddant yn mynd drwy a phopeth am ddim. 389 00:18:00,660 --> 00:18:03,597 Mae'n dibynnu ar pam eich enw malloc. 390 00:18:03,597 --> 00:18:11,270 >> MYFYRIWR: A beth fyddech chi'n ei ddweud os ydych yn galw defnydd getstring? 391 00:18:11,270 --> 00:18:13,320 Byddech yn dweud am ddim beth? 392 00:18:13,320 --> 00:18:20,040 >> JASON Hirschhorn: Felly y gystrawen am ddim yn syml am ddim, paren agored, yn agos 393 00:18:20,040 --> 00:18:22,130 paren, ac enw y pwyntydd. 394 00:18:22,130 --> 00:18:26,410 Felly, os byddwch yn ysgrifennu enw llinyn hafal getstring, i chi roi enw yma. 395 00:18:26,410 --> 00:18:27,760 Dyna enw'r pwyntydd. 396 00:18:27,760 --> 00:18:30,570 Ac mae'n gwybod i ryddhau y cof. 397 00:18:30,570 --> 00:18:33,920 >> MYFYRIWR: Felly, pan fydd yn rhyddhau y cof, y pwyntydd yn dal yn tynnu sylw at y lle hwnnw 398 00:18:33,920 --> 00:18:34,970 yn y cof? 399 00:18:34,970 --> 00:18:39,020 Neu a yw y pwyntydd hefyd gwagio o y cyfeiriad y mae'n cyfeirio at. 400 00:18:39,020 --> 00:18:40,290 >> JASON Hirschhorn: Dylem geisio hynny. 401 00:18:40,290 --> 00:18:41,430 Dylem cod hynny. 402 00:18:41,430 --> 00:18:43,880 Gadewch i ni ddod yn ôl pan fyddwn yn mynd i codio, a gadewch i ni cod hynny. 403 00:18:43,880 --> 00:18:46,000 Ac os ydych am i chyfrif i maes yr ateb i hynny, gallwch hefyd cod sy'n 404 00:18:46,000 --> 00:18:46,690 yn y cyfamser. 405 00:18:46,690 --> 00:18:49,100 Ond mae hynny'n gwestiwn mawr. 406 00:18:49,100 --> 00:18:53,480 >> MYFYRIWR: A yw'n bosibl i rhywbeth ddim yn rhy fuan? 407 00:18:53,480 --> 00:18:58,530 Felly rydych yn dal ei angen ar gyfer eich rhaglen, ac rydych yn rhyddhau y gofod cof? 408 00:18:58,530 --> 00:18:59,200 >> JASON Hirschhorn: Ydw. 409 00:18:59,200 --> 00:19:03,020 Mae'n bosibl, os ydych yn rhad ac am ddim rhywbeth ac yna ei ddefnyddio eto, byddwch yn 410 00:19:03,020 --> 00:19:06,890 rhedeg i mewn camgymeriad. 411 00:19:06,890 --> 00:19:10,810 Ond mae hynny'n arnoch chi, oherwydd eich rhyddhau rhywbeth ac yna galw yn ddiweddarach. 412 00:19:10,810 --> 00:19:13,940 Felly, yr oedd camgymeriad yn rhaglennydd. 413 00:19:13,940 --> 00:19:14,780 Ond ie. 414 00:19:14,780 --> 00:19:17,760 Gallech ysgrifennu hynny. 415 00:19:17,760 --> 00:19:19,240 >> Unrhyw mwy o gwestiynau am - 416 00:19:19,240 --> 00:19:19,760 ie. 417 00:19:19,760 --> 00:19:22,820 >> MYFYRIWR: Felly, os ydych i fod i ychydig rhad ac am ddim yn gyffredinol cyn y 418 00:19:22,820 --> 00:19:25,490 rhaglen yn dod i ben, a yw hynny'n golygu os bydd y rhaglen yn dod i ben ac nad ydych yn rhad ac am ddim iddo, 419 00:19:25,490 --> 00:19:27,580 y cof yn cael ei ddyrannu o hyd? 420 00:19:27,580 --> 00:19:31,330 >> JASON Hirschhorn: Os yw eich rhaglen yn dod i ben a byddwch yn anghofio i ryddhau rhywbeth, yna 421 00:19:31,330 --> 00:19:34,390 y cof ei ddyrannu drwy gydol oes eich rhaglen. 422 00:19:34,390 --> 00:19:37,670 Pan fydd eich rhaglen yn cau yn gyfan gwbl, nad yw cof yn mynd 423 00:19:37,670 --> 00:19:39,490 i aros yno am byth. 424 00:19:39,490 --> 00:19:42,080 Mae'r cyfrifiadur yn ddigon craff i wybod pan fydd y rhaglen yn cau, mae'n 425 00:19:42,080 --> 00:19:46,440 Dylai gael gwared ar yr holl o'r cof sy'n yn gysylltiedig â'r rhaglen honno. 426 00:19:46,440 --> 00:19:51,240 >> Fodd bynnag, mae dulliau allwch chi redeg ar raglen i ganfod os, pan fydd y 427 00:19:51,240 --> 00:19:54,720 gorffen rhaglen, ydych wedi anghofio i ryddhau rhywfaint o cof. 428 00:19:54,720 --> 00:19:57,960 Ac ar gyfer eich problem nesaf yn lle byddwch yn defnyddio malloc a defnyddio 429 00:19:57,960 --> 00:20:02,610 awgrymiadau, byddwch yn cynnal y rhaglen ar eich rhaglen i weld os, 430 00:20:02,610 --> 00:20:06,530 pan brif ffurflenni, fod gennych ryw pethau a adawyd unfreed. 431 00:20:06,530 --> 00:20:09,130 >> Felly, nid ydynt yn mynd i aros malloced am byth yn eich cyfrifiadur. 432 00:20:09,130 --> 00:20:11,720 Byddai hynny'n wastraffus, oherwydd yn gyflym iawn, cyfrifiaduron 433 00:20:11,720 --> 00:20:12,960 yn rhedeg allan o gof. 434 00:20:12,960 --> 00:20:16,450 Ond os ydynt yn rhedeg tan ddiwedd eich rhaglen ac nid ydynt yn rhyddhau ac yn eich 435 00:20:16,450 --> 00:20:20,260 rhaglen allanfeydd, mae hynny'n dal i fod yn broblem y bydd yr offeryn hwn yn eich helpu i fynd i'r afael. 436 00:20:20,260 --> 00:20:21,520 >> MYFYRIWR: A yw hynny'n Valgrind? 437 00:20:21,520 --> 00:20:22,910 >> JASON Hirschhorn: Mae'n LandLine enw Valgrind. 438 00:20:22,910 --> 00:20:23,520 A byddwch yn - 439 00:20:23,520 --> 00:20:25,780 >> MYFYRIWR: Ond nid oes rhaid i ni wybod hynny ar gyfer y cwis, er bod? 440 00:20:25,780 --> 00:20:27,600 Yr wyf yn golygu, yr oedd yn siarad am ychydig yn y ddarlith. 441 00:20:27,600 --> 00:20:33,600 >> JASON Hirschhorn: Felly Valgrind yw enw'r yr offeryn hwnnw. 442 00:20:33,600 --> 00:20:37,180 Mae gwybod beth mae'n ei wneud yw ddigon ar gyfer y cwis. 443 00:20:37,180 --> 00:20:40,200 Ond nid ydych wedi ei ddefnyddio eto ar eich broblem a osodwyd gan nad ydym wedi cael 444 00:20:40,200 --> 00:20:43,520 problem set sydd wedi delio yn benodol gyda malloc neu eich bod yn defnyddio malloc. 445 00:20:43,520 --> 00:20:45,330 Felly, nad ydych wedi defnyddio Valgrind eto. 446 00:20:45,330 --> 00:20:47,760 Ond byddwch yn ei ddefnyddio yn gynt yn hytrach nag yn hwyrach. 447 00:20:47,760 --> 00:20:48,710 >> MYFYRIWR: Allwch chi ailadrodd beth Valgrind yw? 448 00:20:48,710 --> 00:20:49,190 >> JASON Hirschhorn: Mae'n ddrwg gennyf? 449 00:20:49,190 --> 00:20:51,240 >> MYFYRIWR: Allwch chi ailadrodd yr hyn a pwrpas Valgring yw? 450 00:20:51,240 --> 00:20:53,100 >> JASON Hirschhorn: Valgrind yw'r enw - 451 00:20:53,100 --> 00:20:59,890 fel GDB yn eich helpu i debug eich rhaglen, Valgrind yn eich helpu i chyfrif i maes os 452 00:20:59,890 --> 00:21:03,210 Nid yw pethau wedi cael eu rhyddhau pan fydd eich rhaglen yn cau. 453 00:21:03,210 --> 00:21:05,110 Felly byddwch yn ei redeg ar eich rhaglen. 454 00:21:05,110 --> 00:21:09,230 Ac yn eich rhaglen allanfeydd, a bydd yn dweud eich rhaglen o'r enw malloc hon lawer 455 00:21:09,230 --> 00:21:13,670 amser ar gyfer hyn lawer bytes, a ydych yn rhad ac am ddim yn unig gelwir hyn droeon. 456 00:21:13,670 --> 00:21:16,520 Ac felly i chi adael y rhain nifer o bytes heb gael ei ryddhau. 457 00:21:16,520 --> 00:21:18,050 Neu bydd yn dweud eich bod wedi rhyddhau popeth. 458 00:21:18,050 --> 00:21:19,070 Gwaith da. 459 00:21:19,070 --> 00:21:19,480 >> MYFYRIWR: OK. 460 00:21:19,480 --> 00:21:21,060 Ac fe'i gelwir Valgring? 461 00:21:21,060 --> 00:21:24,940 >> JASON Hirschhorn: V-A-L-G-R-I-N-D. 462 00:21:24,940 --> 00:21:25,970 >> MYFYRIWR: Mae cwestiwn am awgrymiadau. 463 00:21:25,970 --> 00:21:30,080 Felly, yn dweud n ydych wedi seren x yn hafal rhywbeth. 464 00:21:30,080 --> 00:21:33,330 Sy'n hafal, beth bynnag yr ydych yn ei roi yno, yw bod yr hyn sy'n cael ei roi y tu mewn 465 00:21:33,330 --> 00:21:36,120 pa x yn pwyntio i, neu y pwyntydd x? 466 00:21:36,120 --> 00:21:37,690 >> JASON Hirschhorn: Allwch chi ailadrodd y cwestiwn? 467 00:21:37,690 --> 00:21:39,340 Allwn ni dynnu wrth i chi ddweud? 468 00:21:39,340 --> 00:21:42,710 >> MYFYRIWR: Yn y cwis, mewn gwirionedd, y un yr ydych yn ei anfon atom, roedd fel, cols 469 00:21:42,710 --> 00:21:46,520 gwir seren hafal creigiau CS50, dde? 470 00:21:46,520 --> 00:21:52,190 Felly, mae hynny'n golygu bod y creigiau CS50 yw'r hyn y gwir yn pwyntio i? 471 00:21:52,190 --> 00:21:55,810 >> JASON Hirschhorn: Felly, rydych chi'n siarad am seren torgoch mewn llinyn, sut y 472 00:21:55,810 --> 00:21:56,460 sy'n gweithio? 473 00:21:56,460 --> 00:21:56,890 Yeah. 474 00:21:56,890 --> 00:21:57,700 OK. 475 00:21:57,700 --> 00:21:59,140 Gadewch i ni tynnu hyn dros yma. 476 00:21:59,140 --> 00:22:07,100 >> [SGWRS OCHR] 477 00:22:07,100 --> 00:22:11,130 >> JASON Hirschhorn: Felly newidyn hwn yn mynd i fod o seren torgoch fath. 478 00:22:11,130 --> 00:22:14,580 Pa mor fawr yw newidyn seren math torgoch? 479 00:22:14,580 --> 00:22:15,510 Faint o bytes? 480 00:22:15,510 --> 00:22:16,450 >> MYFYRWYR: Four. 481 00:22:16,450 --> 00:22:18,210 >> JASON Hirschhorn: Mae'n LandLine pedwar bytes. 482 00:22:18,210 --> 00:22:21,420 Faint o hawliau yn newidyn seren math int? 483 00:22:21,420 --> 00:22:22,210 >> MYFYRWYR: Four. 484 00:22:22,210 --> 00:22:24,910 >> JASON Hirschhorn: Pedwar bytes. 485 00:22:24,910 --> 00:22:28,280 Os yw'n pwyntydd, yna mae'n bob amser yn pedwar bytes, oherwydd awgrymiadau, eu 486 00:22:28,280 --> 00:22:30,070 gwerth yn gyfeiriad cof. 487 00:22:30,070 --> 00:22:35,160 A chyfeiriadau cof ar yr CS50 offer pedwar bytes o hyd. 488 00:22:35,160 --> 00:22:42,900 Felly, pan fyddwn yn galw getstring, neu pan fyddwn yn dyweder, stringname hafal, ac yna yn 489 00:22:42,900 --> 00:22:46,140 dyfynodau dwbl rhoi llinyn, rydym yn rhoi - 490 00:22:46,140 --> 00:22:46,920 wel, dyna ychydig yn wahanol. 491 00:22:46,920 --> 00:22:48,630 Byddwn yn getstring fel yr enghraifft. 492 00:22:48,630 --> 00:22:52,150 Neu seren torgoch rhywbeth hafal i llinyn. 493 00:22:52,150 --> 00:22:54,360 Mae'n ddrwg gennym, rhowch enghraifft i mi eich bod yn darllen? 494 00:22:54,360 --> 00:22:57,590 >> MYFYRIWR: gwir seren torgoch yn dychwelyd "Creigiau CS50" mewn dyfynodau dwbl. 495 00:22:57,590 --> 00:23:02,260 >> JASON Hirschhorn: Felly seren hwn, mae hyn yn byddwn yn galw newidyn hwn x ar gyfer ein 496 00:23:02,260 --> 00:23:04,060 ddibenion generig. 497 00:23:04,060 --> 00:23:05,970 Rydym wedi creu newidyn a elwir yn x. 498 00:23:05,970 --> 00:23:07,610 Mae'n seren torgoch math. 499 00:23:07,610 --> 00:23:10,950 Mae'n pwyntydd i gyfres o gymeriadau. 500 00:23:10,950 --> 00:23:12,200 Felly, i lawr yma - 501 00:23:12,200 --> 00:23:23,710 502 00:23:23,710 --> 00:23:25,890 >> Felly, mae hyn yw sut y byddai hyn yn yn gweithio yn y cof. 503 00:23:25,890 --> 00:23:27,410 Byddai hyn yn storio cyfeiriad cof. 504 00:23:27,410 --> 00:23:31,770 Byddai'n storio cyfeiriad cof am cymeriad cyntaf yn y rhesi. 505 00:23:31,770 --> 00:23:33,830 Ac yna pan fyddwch yn dilyn y pwyntydd, a fyddech yn 506 00:23:33,830 --> 00:23:35,200 cael y cymeriad cyntaf. 507 00:23:35,200 --> 00:23:38,780 >> Ac os ydych yn darllen y peth hyn fel llinyn, eich cyfrifiadur yn smart 508 00:23:38,780 --> 00:23:42,930 ddigon da i wybod, darllen y peth i gyd hyd nes y mae'n mynd i adwaith 0. 509 00:23:42,930 --> 00:23:45,530 Ond os ydych yn darllen ei fod yn gymeriad yn y tro, felly rydych chi'n bwysleisio'r drwy 510 00:23:45,530 --> 00:23:49,910 llinyn hwn, yna byddwch yn unig yn darllen cymeriad ar y tro nes i chi gyrraedd 511 00:23:49,910 --> 00:23:50,850 slaes 0. 512 00:23:50,850 --> 00:23:52,335 Efallai na fydd hynny'n ateb eich cwestiwn, er. 513 00:23:52,335 --> 00:23:55,610 >> MYFYRIWR: Yeah, ond nad ydych wedi malloced y gofod 514 00:23:55,610 --> 00:23:58,400 eto ar gyfer y pwyntydd. 515 00:23:58,400 --> 00:24:02,510 >> JASON Hirschhorn: Felly, nid wyf ddim yn hollol siŵr yn union yr hyn yr ydych yn edrych ar, 516 00:24:02,510 --> 00:24:03,640 gan nad oeddwn wedi gwneud hynny'n cwis. 517 00:24:03,640 --> 00:24:06,370 A oedd i fod i fod yn ddefnyddiol adnoddau o TF arall. 518 00:24:06,370 --> 00:24:11,380 Os ydych yn creu llinyn ar y simnai neu fel newidyn lleol, mae'n annhymerus ' 519 00:24:11,380 --> 00:24:16,920 unig fod amrywiaeth o daliadau yn hytrach na Yn gyffredinol, yn seren torgoch bwyntio at 520 00:24:16,920 --> 00:24:18,600 llinyn arall. 521 00:24:18,600 --> 00:24:20,550 Ond nid wyf yn gwybod. 522 00:24:20,550 --> 00:24:25,065 Gallai hynny fod yn pwyntydd i un arall llinyn ar y corn yn ogystal. 523 00:24:25,065 --> 00:24:27,240 Yeah. 524 00:24:27,240 --> 00:24:31,116 >> MYFYRIWR: Yr wyf yn gwybod bod angen i chi dyrannu cof pan mae pwyntydd yn 525 00:24:31,116 --> 00:24:33,360 cael datgan y tu mewn swyddogaeth arall. 526 00:24:33,360 --> 00:24:36,740 A oes angen i chi wneud yr un peth os yw'n sy'n cael ei ddatgan tu mewn prif, 527 00:24:36,740 --> 00:24:39,570 fyddwch yn ei ddefnyddio y tu mewn o brif? 528 00:24:39,570 --> 00:24:43,590 >> JASON Hirschhorn: Felly ie. 529 00:24:43,590 --> 00:24:46,670 Gallwch ddatgan pwyntydd i unrhyw cyfeiriad cof yn y cof. 530 00:24:46,670 --> 00:24:51,440 Gall fod yn y cyfeiriad cof am lleol amrywiol, er oftentimes, 531 00:24:51,440 --> 00:24:55,760 nad yw pobl yn datgan cyfeiriadau cof i newidynnau lleol oherwydd eu bod yn mynd 532 00:24:55,760 --> 00:24:59,890 i ffwrdd unwaith y bydd y swyddogaeth yn dychwelyd, a oedd yn Dyna pam rydym yn gyffredinol malloc pethau. 533 00:24:59,890 --> 00:25:04,630 Ond ie, gallech ddatgan pwyntydd i newidyn lleol arall. 534 00:25:04,630 --> 00:25:06,360 Mae'n dim ond yn gyffredinol heb ei wneud. 535 00:25:06,360 --> 00:25:09,480 Ond gallaf fwrw golwg ar y beth penodol ar ôl y dosbarth. 536 00:25:09,480 --> 00:25:10,650 Yeah. 537 00:25:10,650 --> 00:25:12,350 >> MYFYRIWR: Yr wyf yn credu bod hyn yn fath o'r hyn sy'n cael ei ofyn. 538 00:25:12,350 --> 00:25:16,930 Mae'n ymddangos yn rhyfedd i gael ei ymgychwyn pwyntydd nid fel 539 00:25:16,930 --> 00:25:20,760 gyfeiriad, ond fel yr hyn a ymddangos fel gwerth. 540 00:25:20,760 --> 00:25:25,970 Mae'n ymddangos fel y CS50 yw'r hyn sydd y tu mewn y peth yn cael ei tynnu sylw at a 541 00:25:25,970 --> 00:25:28,820 nid yw'r gyfeiriad gwirioneddol, dde? 542 00:25:28,820 --> 00:25:30,520 >> JASON Hirschhorn: Felly dyna nid yw'r achos, er. 543 00:25:30,520 --> 00:25:32,470 Dyw hynny ddim yn beth sy'n digwydd. 544 00:25:32,470 --> 00:25:35,910 Pan fyddwch yn datgan seren torgoch, mae'n gyfeiriad cof. 545 00:25:35,910 --> 00:25:38,860 Awgrymiadau i gyd yn gyfeiriadau cof pwyntio at rywbeth arall. 546 00:25:38,860 --> 00:25:41,480 Gallai hynny rhywbeth arall ar y corn, ond mae bron bob amser ar y 547 00:25:41,480 --> 00:25:43,440 domen yn y ffordd y byddwn yn gweld ei ddefnyddio. 548 00:25:43,440 --> 00:25:46,860 549 00:25:46,860 --> 00:25:53,500 Ond stringname hafal i dwbl-dyfynbris "Getstring," gallwn weld bod ac rydym yn 550 00:25:53,500 --> 00:25:55,010 gallu edrych trwy hynny a cod hynny. 551 00:25:55,010 --> 00:26:01,190 Nid getstring llinyn yn cael ei gadw mewn newidyn hwnnw, neu beth bynnag y llinyn 552 00:26:01,190 --> 00:26:04,580 enw nad yw yn cael ei gadw yn y amrywiol, nid oherwydd dyna sut 553 00:26:04,580 --> 00:26:06,070 awgrymiadau yn gweithio. 554 00:26:06,070 --> 00:26:06,770 A yw hynny'n gwneud synnwyr? 555 00:26:06,770 --> 00:26:07,170 >> MYFYRIWR: Yeah. 556 00:26:07,170 --> 00:26:08,570 >> JASON Hirschhorn: OK. 557 00:26:08,570 --> 00:26:11,690 Gobeithio, nid oedd y ddryslyd i unrhyw un. 558 00:26:11,690 --> 00:26:15,732 Ond os oedd, gallwn edrych arno eto mewn ychydig, oherwydd ein bod yn mynd mewn gwirionedd 559 00:26:15,732 --> 00:26:19,240 i cod rhywbeth a fydd, gobeithio, yn gweithio gyda llinynnau a helpu i deimlo'n 560 00:26:19,240 --> 00:26:22,170 yn fwy cyfforddus gyda nhw. 561 00:26:22,170 --> 00:26:24,869 >> Unrhyw gwestiynau eraill sy'n gysylltiedig â'r rhain pynciau neu bynciau eraill sy'n 562 00:26:24,869 --> 00:26:26,119 'N annhymerus' rhoi yn ôl i fyny? 563 00:26:26,119 --> 00:26:32,280 564 00:26:32,280 --> 00:26:34,840 A - 565 00:26:34,840 --> 00:26:36,310 ar hyn o bryd. 566 00:26:36,310 --> 00:26:37,630 Ie, Alden. 567 00:26:37,630 --> 00:26:39,860 >> ALDEN: Felly, mae hyn yn gwbl amherthnasol, ond gallwn yn unig yn mynd dros 568 00:26:39,860 --> 00:26:42,760 yn gyflym iawn yr hyn y mae angen i ni wybod am y gwahaniaeth rhwng 32 a 569 00:26:42,760 --> 00:26:46,345 64-bit peiriant? 570 00:26:46,345 --> 00:26:47,740 >> JASON Hirschhorn: Ydw. 571 00:26:47,740 --> 00:26:52,111 Felly, 32 darnau yw faint o bytes? 572 00:26:52,111 --> 00:26:53,060 >> ALDEN: Mae'n LandLine pedwar bytes. 573 00:26:53,060 --> 00:26:54,360 >> JASON Hirschhorn: Mae'n LandLine pedwar bytes. 574 00:26:54,360 --> 00:26:58,420 A 64 darnau yw faint o bytes? 575 00:26:58,420 --> 00:26:59,112 >> MYFYRIWR: Wyth. 576 00:26:59,112 --> 00:27:00,610 >> JASON Hirschhorn: Wyth bytes. 577 00:27:00,610 --> 00:27:03,980 Felly eto, wyth darnau yn un beit. 578 00:27:03,980 --> 00:27:08,340 Eich offer CS50 yn 32-bit peiriant. 579 00:27:08,340 --> 00:27:13,650 Felly, cyfeiriadau cof yn pedwar bytes o hyd. 580 00:27:13,650 --> 00:27:17,460 Mae yna 2 i 32 cyfeiriadau cof. 581 00:27:17,460 --> 00:27:21,310 0-2 i 32 minws 1. 582 00:27:21,310 --> 00:27:27,630 Ac nid wyf yn gadarnhaol, ond mae hynny'n yn ôl pob tebyg cwmpas yr hyn mae angen i chi 583 00:27:27,630 --> 00:27:35,230 gwybod am 32-bit peiriant, y cof cyfeiriadau, unwaith eto, pedwar bytes o hyd, 584 00:27:35,230 --> 00:27:39,620 a dyna'r uchafswm o gyfeiriadau cof. 585 00:27:39,620 --> 00:27:41,680 >> Hefyd, mathau data - 586 00:27:41,680 --> 00:27:45,020 gallai hyn fod yn rhywbeth mor wel dyna werth eu nodi. 587 00:27:45,020 --> 00:27:49,610 Mae maint y math data yn dibynnu ar y peiriant ydych yn gweithio gyda nhw. 588 00:27:49,610 --> 00:27:56,760 Felly golosg, cymeriad unigol, yw sut llawer o bytes ar ein offer CS50? 589 00:27:56,760 --> 00:27:57,980 Un beit. 590 00:27:57,980 --> 00:28:02,310 Ac mae'n mewn gwirionedd yn un beit fel yn dda ar 64-bit peiriant. 591 00:28:02,310 --> 00:28:05,920 >> Ac yn y rhan fwyaf o fathau o ddata yw'r un rhif o bytes ar y ddau peiriannau. 592 00:28:05,920 --> 00:28:11,620 Ond bydd rhai mathau o ddata fod yn wahanol ar y ddau peiriannau. 593 00:28:11,620 --> 00:28:14,590 Felly byddai hynny'n bosibl yw'r unig beth sydd angen i chi ei wybod. 594 00:28:14,590 --> 00:28:16,710 >> Ond hyd yn oed hynny, yr wyf yn meddwl, y tu hwnt i'r ffiniau - 595 00:28:16,710 --> 00:28:20,990 Rwy'n bron yn gadarnhaol, os ydych yn edrych yn ôl ar hen cwisiau, y mae'n ei ddweud, cymryd yn ganiataol am 596 00:28:20,990 --> 00:28:24,090 codio broblemau ydych chi'n defnyddio 32-bit peiriant. 597 00:28:24,090 --> 00:28:26,620 598 00:28:26,620 --> 00:28:30,620 Ond mae yna, i fynd ynghyd â'r hyn sydd yn Achos oes gennych ddiddordeb, mae 599 00:28:30,620 --> 00:28:35,920 fathau o ddata sydd yr un fath maint ar yr holl beiriannau. 600 00:28:35,920 --> 00:28:42,670 >> Os ydych chi wedi gweld rhywbeth fel uint32_t, efallai chi neu efallai 601 00:28:42,670 --> 00:28:43,260 Nid yw wedi gweld hynny. 602 00:28:43,260 --> 00:28:44,290 Dyna math data. 603 00:28:44,290 --> 00:28:47,570 Mae hynny'n ei ddweud, yn 32 darnau waeth pa peiriant hwn ar. 604 00:28:47,570 --> 00:28:50,350 Felly, pan fydd pobl yn ysgrifennu cludadwy cod, maent yn debyg na fydd yn defnyddio ints. 605 00:28:50,350 --> 00:28:53,260 Byddant yn lle hynny defnyddio'r rhain data eraill Bydd y mathau o eu bod yn gwybod fod yr un fath 606 00:28:53,260 --> 00:28:54,780 maint ar bob un peiriant. 607 00:28:54,780 --> 00:28:58,080 608 00:28:58,080 --> 00:28:58,250 Madhu. 609 00:28:58,250 --> 00:29:00,150 >> Madhu: Roedd gen i gwestiwn am y broses llunio. 610 00:29:00,150 --> 00:29:04,110 Felly os ydych chi'n ysgrifennu rhaglen sy'n defnyddio llyfrgell fel CS50 neu rywbeth 611 00:29:04,110 --> 00:29:06,840 fel hynny, yr wyf yn gwybod bod y llyfrgell rhaid iddo, ar ryw adeg, yn 612 00:29:06,840 --> 00:29:08,590 llunio a'u cysylltu i mewn 613 00:29:08,590 --> 00:29:13,380 Ond faint o hynny'n digwydd yn ystod lunio'r eich rhaglen? 614 00:29:13,380 --> 00:29:15,880 Pa ran o'r broses llyfrgell yn digwydd pan fyddwch yn 615 00:29:15,880 --> 00:29:18,560 llunio eich rhaglen eich hun? 616 00:29:18,560 --> 00:29:24,020 >> JASON Hirschhorn: Felly, gadewch i ni fynd dros Yn gyffredinol, y camau y broses hon. 617 00:29:24,020 --> 00:29:26,280 Rydych yn ysgrifennu eich ffeil. C. 618 00:29:26,280 --> 00:29:33,530 Yn eich ffeil. C, i chi # cynnwys eich llyfrgelloedd pennawd, er enghraifft, cs50.h. 619 00:29:33,530 --> 00:29:39,480 Beth mae hynny'n sydyn yn cynnwys llinell ei wneud i eich rhaglen? 620 00:29:39,480 --> 00:29:40,525 Akchar. 621 00:29:40,525 --> 00:29:43,350 >> AKCHAR: Mae'n ychwanegu y prototeipiau o y swyddogaethau o'r pennawd 622 00:29:43,350 --> 00:29:45,120 ffeiliau yn y llyfrgelloedd. 623 00:29:45,120 --> 00:29:45,600 >> JASON Hirschhorn: Yn union. 624 00:29:45,600 --> 00:29:49,870 Mae'n ychwanegu prototeipiau swyddogaeth hynny eich cod. 625 00:29:49,870 --> 00:29:55,230 Felly, pan fydd eich cod yn cael ei llunio mewn y camau cynnar, y casglwr yn gwybod 626 00:29:55,230 --> 00:29:59,250 bod y swyddogaethau hyn yn bodoli mewn gwirionedd, ac bod rhywle maent wedi eu diffinio. 627 00:29:59,250 --> 00:30:02,460 Nid yw'r ffeiliau. H yn cynnwys y diffiniadau ar gyfer swyddogaethau hyn neu sut 628 00:30:02,460 --> 00:30:03,950 maent yn gweithio mewn gwirionedd. 629 00:30:03,950 --> 00:30:07,960 Cs50.h dim ond yn cynnwys rhywbeth sy'n dweud getstring yn beth gwirioneddol y 630 00:30:07,960 --> 00:30:09,270 Gall ddigwydd. 631 00:30:09,270 --> 00:30:14,240 Ac standardio.h yn dweud printf yn yn beth go iawn a all ddigwydd. 632 00:30:14,240 --> 00:30:23,190 >> Felly eich iaith c gyda hyn. Header ffeil yn cael ei droi i mewn i rai 633 00:30:23,190 --> 00:30:27,750 cod peiriant ei ddarllen, yn y pen draw yn cael ei droi i mewn i deuaidd 634 00:30:27,750 --> 00:30:30,030 cod, 0 a 1 yn. 635 00:30:30,030 --> 00:30:33,590 A dyna y cod yn y pen draw yn cael ei weithredu. 636 00:30:33,590 --> 00:30:38,550 Mae'r-l llinell CS50 - er enghraifft, pan fyddwch yn ysgrifennu chlang - 637 00:30:38,550 --> 00:30:41,830 ac yna eich bod yn cynnwys-l CS50, i chi deipio bod mewn 638 00:30:41,830 --> 00:30:42,180 A ydych yn gweld hynny. 639 00:30:42,180 --> 00:30:43,890 Pan fyddwch yn ysgrifennu yn gwneud, byddwch yn gweld bod llinell i fyny yma. 640 00:30:43,890 --> 00:30:47,740 A byddwn yn gweld hynny mewn eiliad wrth rydym cod neu nes ymlaen pan fyddwn cod. 641 00:30:47,740 --> 00:30:50,390 >> Ond y-l llinell CS50 yn gwneud rhywbeth ychydig yn wahanol nag 642 00:30:50,390 --> 00:30:52,440 y # cynnwys cs50.h. 643 00:30:52,440 --> 00:30:56,300 Beth mae llinell y-l CS50 ei wneud? 644 00:30:56,300 --> 00:30:56,820 Avi? 645 00:30:56,820 --> 00:31:00,310 >> AVI: Yr wyf am ei ddweud ei fod yn cysylltu y llyfrgell i'r swyddogaeth 646 00:31:00,310 --> 00:31:02,710 galw, fel y. o ffeiliau. 647 00:31:02,710 --> 00:31:08,200 >> JASON Hirschhorn: Felly iawn agos, os nad y fan a'r lle ar. 648 00:31:08,200 --> 00:31:16,220 Mae'r-l CS50 yn cymryd y ffeil ddeuaidd ac uno gyda'ch ffeil deuaidd. 649 00:31:16,220 --> 00:31:21,410 Felly cs50.h, does dim pwynt troi cs50.h o iaith C i binary pob 650 00:31:21,410 --> 00:31:23,130 un tro mae'n cael ei ddefnyddio. 651 00:31:23,130 --> 00:31:26,650 Byddai hynny'n wirion, gan fod Byddai wastraffu llawer o amser. 652 00:31:26,650 --> 00:31:30,420 Felly, mae eisoes wedi cael ei lunio ac yn troi i mewn i gweithredadwy. 653 00:31:30,420 --> 00:31:35,430 Ac yn awr ei fod yn mynd i gael eu huno gyda eich ffeil ar y diwedd. 654 00:31:35,430 --> 00:31:38,370 Felly, 1 yn hynny a 0 yn cael eu mynd i uno â eich rhai 655 00:31:38,370 --> 00:31:39,150 a 0 ar y diwedd. 656 00:31:39,150 --> 00:31:43,670 Felly nawr byddwch mewn gwirionedd yn cael y gwir 1 a 0 yn sy'n diffinio sut y getstring, 657 00:31:43,670 --> 00:31:47,890 er enghraifft, gweithio, neu pa mor printf, er enghraifft, yn gweithio. 658 00:31:47,890 --> 00:31:52,750 >> Ac am fwy o wybodaeth, mae 'na crynoadyddion byr sy'n Nate yn rhoi i'r 659 00:31:52,750 --> 00:31:55,410 dylech edrych ar sy'n mynd drwy'r camau hyn. 660 00:31:55,410 --> 00:31:56,050 Ond - 661 00:31:56,050 --> 00:31:56,560 ie. 662 00:31:56,560 --> 00:32:01,700 >> MYFYRIWR: A ydynt bob amser yn o ffeiliau. pan maen nhw yn y ffurflen llyfrgell, 663 00:32:01,700 --> 00:32:06,764 barod i gael ei huno, yn gysylltiedig - fel eu bod yn y cod deuaidd? 664 00:32:06,764 --> 00:32:07,600 >> JASON Hirschhorn: OK. 665 00:32:07,600 --> 00:32:08,420 Beth - 666 00:32:08,420 --> 00:32:11,780 >> MYFYRIWR: A yw hynny'n wir bob tro ar gyfer y llyfrgelloedd pan fyddwch yn cysylltu nhw? 667 00:32:11,780 --> 00:32:12,500 >> JASON Hirschhorn: Ydw. 668 00:32:12,500 --> 00:32:17,300 . S felly mae ffeiliau, a fydd yn cod beiriant, a fydd hefyd yn 669 00:32:17,300 --> 00:32:17,975 cryptig i chi. 670 00:32:17,975 --> 00:32:19,410 Nid oes angen i chi boeni am hynny. 671 00:32:19,410 --> 00:32:24,930 Ond yn gyffredinol, ie, maent yn annhymerus ' yn. o ffeiliau yn barod i fynd. 672 00:32:24,930 --> 00:32:27,170 >> MYFYRIWR: Felly pan fyddwch yn llong i llyfrgell, a ydych yn unig llong 673 00:32:27,170 --> 00:32:28,880 y. f a'r. o? 674 00:32:28,880 --> 00:32:32,210 Nid ydych yn llong y. C neu'r. S. 675 00:32:32,210 --> 00:32:33,070 >> JASON Hirschhorn: Felly - 676 00:32:33,070 --> 00:32:36,260 ac mae hyn mewn byr hwn yn ogystal, os wybodaeth hyn yn ymddangos i fod yn dod o 677 00:32:36,260 --> 00:32:36,700 Ychydig yn gyflym. 678 00:32:36,700 --> 00:32:39,870 Ond byr ar crynoadyddion yn siarad am hyn hefyd. 679 00:32:39,870 --> 00:32:43,290 Pan fyddwch yn llong llyfrgell, os ydych yn llong yr. h, y ffeil pennawd, y rhai 680 00:32:43,290 --> 00:32:46,290 prototeipiau swyddogaeth, ac 1, ac 0 yn, dyna i gyd sydd angen i chi ei roi. 681 00:32:46,290 --> 00:32:50,640 Nid oes angen i chi roi sut mae'r swyddogaeth yn gweithio, y ffeil. c. 682 00:32:50,640 --> 00:32:56,360 Oherwydd bod y pwynt tynnu, neu bwynt APIs, y pwynt yn y SPL hwn, 683 00:32:56,360 --> 00:32:59,650 y llyfrgell symudol Stanford, mae'n am beidio â chi boeni am pa mor newydd 684 00:32:59,650 --> 00:33:04,220 GRect yn gweithio, na sut y symud yn gweithio, na sut ychwanegu gweithio. 685 00:33:04,220 --> 00:33:06,520 Y cyfan sydd angen i chi ei wybod yw bod ychwanegu yn swyddogaeth eich bod yn gallu 686 00:33:06,520 --> 00:33:08,880 defnyddio, ac mae'n gwneud hyn. 687 00:33:08,880 --> 00:33:12,760 Felly, ddim wir oes angen i chi wybod sut mae'n ysgrifennu yn C. Ch jyst angen i 688 00:33:12,760 --> 00:33:15,460 gwybod, dyma swyddogaethau, yr hyn y maent wneud, a dyma yw'r ar 1 a 0 689 00:33:15,460 --> 00:33:18,870 pan ydych wir eisiau eu defnyddio. 690 00:33:18,870 --> 00:33:19,530 >> Cool. 691 00:33:19,530 --> 00:33:26,980 Unrhyw mwy o gwestiynau ar crynoadyddion neu bynciau eraill ar y bwrdd? 692 00:33:26,980 --> 00:33:30,300 >> MYFYRIWR: Mae gennyf gwestiwn o gweithredu swyddogaethau ailadroddus. 693 00:33:30,300 --> 00:33:31,170 Mae cwestiwn am recursion. 694 00:33:31,170 --> 00:33:33,030 Roedd gen i deimlad a fyddai'n dod i fyny. 695 00:33:33,030 --> 00:33:38,310 Felly, gadewch i ni fynd yn gyflym drwy recursion gyda penodol 696 00:33:38,310 --> 00:33:40,690 enghraifft, swyddogaeth ffactoraidd. 697 00:33:40,690 --> 00:33:44,920 Oherwydd bod hyn yn enghraifft bod aml yn dod i fyny neu yn cael ei ddefnyddio 698 00:33:44,920 --> 00:33:46,170 i ddangos recursion. 699 00:33:46,170 --> 00:33:52,390 700 00:33:52,390 --> 00:33:56,410 >> Felly "4!" ei ddarllen fel 4 ffactoraidd. 701 00:33:56,410 --> 00:33:59,120 A beth yw ystyr 4 ffactoraidd? 702 00:33:59,120 --> 00:34:00,696 Beth mae hynny'n ei wneud? 703 00:34:00,696 --> 00:34:02,235 Sut ydych chi'n cyfrifo 4 ffactoraidd? 704 00:34:02,235 --> 00:34:05,250 705 00:34:05,250 --> 00:34:07,960 4 gwaith 3 gwaith 2 waith 1. 706 00:34:07,960 --> 00:34:11,889 >> Felly ffordd arall i ysgrifennu 4 ffactoraidd yw ysgrifennu hyn. 707 00:34:11,889 --> 00:34:16,780 708 00:34:16,780 --> 00:34:19,022 4 gwaith 3 ffactoraidd. 709 00:34:19,022 --> 00:34:22,080 Oherwydd 3 ffactoraidd yn 3 gwaith 2 waith 1. 710 00:34:22,080 --> 00:34:27,580 Felly, 4 gwaith 3 ffactoraidd yw 4 gwaith 3 gwaith 2 waith 1. 711 00:34:27,580 --> 00:34:32,679 Dyma pam ffactoraidd yn wych ymgeisydd ar gyfer recursion, am ei fod yn 712 00:34:32,679 --> 00:34:36,630 glir bod rhywbeth sy'n digwydd drosodd a throsodd a throsodd ar 713 00:34:36,630 --> 00:34:39,820 nifer llai o bethau nes i chi gyrraedd y diwedd. 714 00:34:39,820 --> 00:34:42,570 Pan fyddwch yn cyrraedd 1, 1 ffactoraidd yw 1. 715 00:34:42,570 --> 00:34:43,719 Ni allwch fynd yn llawer pellach. 716 00:34:43,719 --> 00:34:47,219 0 ffactoraidd hefyd yn cael ei ddiffinio fel 1. 717 00:34:47,219 --> 00:34:50,679 Felly, pan fyddwch yn cyrraedd 1 neu 0, rydych yn ar y diwedd, a gallwch 718 00:34:50,679 --> 00:34:53,219 dechrau mynd yn ôl i fyny. 719 00:34:53,219 --> 00:34:59,540 Felly, os oeddem am i ysgrifennu dychweliadol swyddogaeth i gyfrifo ffactoraidd, 720 00:34:59,540 --> 00:35:02,170 rydym yn mynd i ysgrifennu rhai pseudocode gyfer hynny yn awr. 721 00:35:02,170 --> 00:35:03,300 Cyn i ni ysgrifennu y pseudocode - 722 00:35:03,300 --> 00:35:05,660 Byddaf yn rhoi ychydig funudau i chi guys i ysgrifennu'r cod ffug neu dim ond yn meddwl 723 00:35:05,660 --> 00:35:09,600 am y peth - mae dau beth mhob Mae angen swyddogaeth ailadroddus. 724 00:35:09,600 --> 00:35:12,530 Beth yw'r rhai ddau beth? 725 00:35:12,530 --> 00:35:13,220 >> JACK: Mae'n rhaid iddo alw ei hun. 726 00:35:13,220 --> 00:35:13,680 >> JASON Hirschhorn: Noa? 727 00:35:13,680 --> 00:35:14,460 O, Jack. 728 00:35:14,460 --> 00:35:15,100 Fynd yn ei flaen. 729 00:35:15,100 --> 00:35:16,640 >> JACK: Mae'n rhaid iddo alw ei hun. 730 00:35:16,640 --> 00:35:19,220 >> JASON Hirschhorn: Felly recursive Mae angen swyddogaeth alwad ailadroddus, a 731 00:35:19,220 --> 00:35:20,220 ffonio i ei hun. 732 00:35:20,220 --> 00:35:20,770 Dyna un. 733 00:35:20,770 --> 00:35:21,510 A beth yw'r peth arall? 734 00:35:21,510 --> 00:35:22,250 >> JACK: Mae achos sylfaenol. 735 00:35:22,250 --> 00:35:23,780 >> JASON Hirschhorn: Mae achos sylfaenol. 736 00:35:23,780 --> 00:35:26,940 Mae achos sylfaenol yw, dyma pan fyddwn yn dod i ben. 737 00:35:26,940 --> 00:35:29,510 Felly eich swyddogaeth yn cael ei alw. 738 00:35:29,510 --> 00:35:31,410 Mae'r achos sylfaenol yn dod yn gyntaf. 739 00:35:31,410 --> 00:35:33,710 Rydych chi eisiau gwybod os ydych chi ar y diwedd. 740 00:35:33,710 --> 00:35:37,110 Ac os nad ydych yn ar y diwedd, byddwch yn gwneud eich galwad ailadroddus. 741 00:35:37,110 --> 00:35:39,880 A ydych yn mynd trwy swyddogaeth hon eto, gwirio eich achos sylfaenol eto. 742 00:35:39,880 --> 00:35:42,575 Os nad ydych yn y diwedd, byddwch yn gwneud alwad ailadroddus arall, 743 00:35:42,575 --> 00:35:44,130 et cetera, et cetera. 744 00:35:44,130 --> 00:35:47,110 >> Dyna pam y swyddogaethau recursive bob amser yn Mae angen i achosion sylfaenol hynny a'r rhai 745 00:35:47,110 --> 00:35:48,210 galwadau ailadroddus. 746 00:35:48,210 --> 00:35:51,280 Os nad oes gennych galwad ailadroddus, mae'n Ni fyddai swyddogaeth ailadroddus. 747 00:35:51,280 --> 00:35:53,210 Os nad oedd gennych achos sylfaenol, fyddech yn mynd am byth a 748 00:35:53,210 --> 00:35:54,780 ni fyddai unrhyw dod i ben. 749 00:35:54,780 --> 00:35:57,870 Ac mae'r achos sylfaenol bob amser yn dod yn gyntaf, oherwydd byddwch bob amser yn awyddus i wirio 750 00:35:57,870 --> 00:36:00,420 os ydych chi yn y pen gyntaf. 751 00:36:00,420 --> 00:36:04,770 Felly, cyn i ni wneud ychydig o pseudocode, pam peidiwch â chi gymryd munud i feddwl am 752 00:36:04,770 --> 00:36:09,360 sut mae swyddogaeth ffactoraidd recursive Byddai cael ei ysgrifennu? 753 00:36:09,360 --> 00:36:23,340 754 00:36:23,340 --> 00:36:26,010 >> Hefyd, gan fod llawer ag y byddwch yn ei wneud, ysgrifennu allan ar ddalen o bapur yn 755 00:36:26,010 --> 00:36:27,960 yr hyn yr ydych yn mynd i gael i ei wneud ar y cwis yfory. 756 00:36:27,960 --> 00:36:32,160 Arfer felly mae'n debyg da i wneud yn siŵr bod y cod ydych yn ysgrifennu 757 00:36:32,160 --> 00:36:34,420 i lawr ar ddalen o bapur - 758 00:36:34,420 --> 00:36:35,160 neu gallwch wneud hynny. 759 00:36:35,160 --> 00:36:36,710 Rydych yn gwybod ble mae'r hanner colon yn cael eu. 760 00:36:36,710 --> 00:36:37,660 Byddwch yn cofio y gystrawen. 761 00:36:37,660 --> 00:36:40,400 Oherwydd nad ydych yn gallu cael compiler dweud wrthych gwneud camgymeriad. 762 00:36:40,400 --> 00:37:02,356 763 00:37:02,356 --> 00:37:07,240 >> Hefyd, ar hyd y llinellau hynny, yfory, pan yr ydych wedi codio problemau, os ydych yn 764 00:37:07,240 --> 00:37:11,490 yn cael eu rhuthro am amser, neu os ydych yn iawn drysu ynghylch sut yr ydych yn fod i 765 00:37:11,490 --> 00:37:16,030 ysgrifennwch y peth arbennig mewn c, mae'n Byddai behoove i chi ysgrifennu ffug-god 766 00:37:16,030 --> 00:37:18,160 neu ysgrifennu sylwadau hefyd. 767 00:37:18,160 --> 00:37:21,940 Oherwydd mae credyd rhannol ar gyfer llawer o'r cwestiynau ar y cwis. 768 00:37:21,940 --> 00:37:24,840 Felly efallai y byddwch yn rhuthro, neu os ydych bosibl y bydd yn eu cymysgu. 769 00:37:24,840 --> 00:37:28,030 Ysgrifennu mewn sylwadau neu ffug-god yn aml yn ffyrdd sy'n eich 770 00:37:28,030 --> 00:37:29,360 Gall gael credyd rhannol. 771 00:37:29,360 --> 00:37:31,440 >> Felly peidiwch â gadael rhywbeth gwag ar y cwis. 772 00:37:31,440 --> 00:37:33,490 Does dim gosbau am rhoi pethau i mewn 773 00:37:33,490 --> 00:37:37,650 Yn wir, rhoi ffug-god neu sylwadau yn mynd i helpu'r graddiwr 774 00:37:37,650 --> 00:37:40,410 chyfrif i maes os ydych yn gwybod mewn gwirionedd beth ydych yn sôn amdano, ac efallai dyfarnu 775 00:37:40,410 --> 00:37:42,030 chi rai credyd rhannol am hynny. 776 00:37:42,030 --> 00:37:44,510 >> Hefyd ar y llinellau hynny, ysgrifennwch yn glir. 777 00:37:44,510 --> 00:37:47,650 Os gallwn ni wir yn yr hyn yr ydych yn ysgrifennu, nid ydym yn mynd i alw i chi 778 00:37:47,650 --> 00:37:49,900 am hanner nos yfory i ffigur allan yr hyn yr ydych yn ysgrifennu. 779 00:37:49,900 --> 00:37:51,520 Rydym yn jyst yn mynd i gymryd i ffwrdd pwyntiau. 780 00:37:51,520 --> 00:37:56,570 Ysgrifennwch yn glir fel y gallwn glywed, neu yn hytrach, gallwn ddarllen yr hyn yr ydych yn ysgrifennu. 781 00:37:56,570 --> 00:38:00,230 >> Ac os yw'n dweud dwy frawddeg, peidiwch ag ysgrifennu paragraff. 782 00:38:00,230 --> 00:38:02,280 Dilynwch y cyfarwyddiadau. 783 00:38:02,280 --> 00:38:03,500 Ysgrifennwch yn glir. 784 00:38:03,500 --> 00:38:07,720 Ac ysgrifennu yn y sylwadau hynny, neu pseudocode ar gyfer cwestiynau a allai 785 00:38:07,720 --> 00:38:10,270 dyfarniad credyd rhannol. 786 00:38:10,270 --> 00:38:12,520 >> OK, gadewch i ni fynd i ffactoraidd. 787 00:38:12,520 --> 00:38:15,000 Felly mae gennym ffactoraidd swyddogaeth. 788 00:38:15,000 --> 00:38:18,400 789 00:38:18,400 --> 00:38:21,550 Os wyf yn ysgrifennu hyn mewn gwirionedd yn C, beth sydd angen i mi ei roi gerbron y enw 790 00:38:21,550 --> 00:38:22,800 y swyddogaeth? 791 00:38:22,800 --> 00:38:24,880 792 00:38:24,880 --> 00:38:30,060 Y math dychwelyd, sydd, yn yr achos, byddwn yn rhoi int. 793 00:38:30,060 --> 00:38:35,450 Ac yna y tu mewn i'r braces cyrliog, yn beth sy'n mynd y tu mewn i'r braces cyrliog ar gyfer 794 00:38:35,450 --> 00:38:36,850 swyddogaeth? 795 00:38:36,850 --> 00:38:37,950 >> MYFYRWYR: Math o Dadl. 796 00:38:37,950 --> 00:38:39,150 >> JASON Hirschhorn: Ei dadleuon. 797 00:38:39,150 --> 00:38:42,680 Felly ffactoraidd yn ôl pob tebyg cymryd dadl. 798 00:38:42,680 --> 00:38:44,500 Bydd yn fwy na thebyg ond yn cymryd un ddadl. 799 00:38:44,500 --> 00:38:49,450 A byddwn yn dweud bydd yn cymryd cyfanrif enw x. 800 00:38:49,450 --> 00:38:52,770 Ac eto, wrth ysgrifennu prototeip o swyddogaeth neu ysgrifennu y swyddogaeth 801 00:38:52,770 --> 00:38:57,110 yn eich cod cyn ei ddiffinio, rydych yn ysgrifennwch y math data ac enw'r 802 00:38:57,110 --> 00:39:01,370 bod amrywiol ar gyfer swyddogaeth sy'n yn unig. 803 00:39:01,370 --> 00:39:06,350 Felly, gallwch basio ryw nifer i mewn i hyn swyddogaeth, bydd yn cael ei gyfeirio ato fel x 804 00:39:06,350 --> 00:39:07,340 yn fewnol. 805 00:39:07,340 --> 00:39:08,755 >> Rydym wedi ein swyddogaeth ffactoraidd. 806 00:39:08,755 --> 00:39:12,030 807 00:39:12,030 --> 00:39:15,850 Mae angen dau beth, sef achos sylfaenol a galwad ailadroddus. 808 00:39:15,850 --> 00:39:20,900 Beth yw'r achos sylfaenol ar gyfer ffactoraidd? 809 00:39:20,900 --> 00:39:24,850 Rhywun a ysgrifennodd allan ac nad ydynt wedi siarad eto, beth yw'r sylfaen 810 00:39:24,850 --> 00:39:26,100 achos dros ffactoraidd? 811 00:39:26,100 --> 00:39:28,400 812 00:39:28,400 --> 00:39:30,930 >> MYFYRIWR: Os n yn llai na 2, yn dychwelyd 1. 813 00:39:30,930 --> 00:39:33,520 >> JASON Hirschhorn: Os yw n yn llai na 2, yn dychwelyd 1. 814 00:39:33,520 --> 00:39:37,216 Yr wyf yn hoffi hynny, gan fod yn cymryd gofal o 0 ac 1. 815 00:39:37,216 --> 00:39:45,290 Felly, byddwn yn gwneud x <2, yn dychwelyd 1. 816 00:39:45,290 --> 00:39:47,870 Os byddwn yn cael eu pasio 0, os byddwn yn cael pasio 1, swyddogaeth hon yn 817 00:39:47,870 --> 00:39:49,790 dychwelyd ar unwaith 1. 818 00:39:49,790 --> 00:39:54,020 Os byddwn yn cael eu pasio rhywfaint o nifer uwch na neu'n hafal i 2, rydym yn mynd i 819 00:39:54,020 --> 00:39:55,370 wedi ein galw ailadroddus. 820 00:39:55,370 --> 00:39:57,855 >> Ac felly sut mae bod yn mynd i weithio? 821 00:39:57,855 --> 00:40:01,070 A all rhywun arall a oedd yn gweithio ar y nad yw wedi siarad eto roi i mi y 822 00:40:01,070 --> 00:40:07,380 galw ailadroddus am y swyddogaeth hon yn pseudocode? 823 00:40:07,380 --> 00:40:10,770 Os byddwn yn cael eu pasio yn rhif x ac mae'n fwy na 2, beth 824 00:40:10,770 --> 00:40:13,370 ydym ni eisiau ei wneud? 825 00:40:13,370 --> 00:40:17,930 Rydym hefyd wedi enghraifft ysgrifenedig ar y ochr a allai rhoi awgrym i chi. 826 00:40:17,930 --> 00:40:20,770 >> MYFYRIWR: Ffoniwch x gwaith y ffactorial x minws 1? 827 00:40:20,770 --> 00:40:22,020 >> JASON Hirschhorn: Yn union gywir. 828 00:40:22,020 --> 00:40:24,610 829 00:40:24,610 --> 00:40:37,750 Rydym yn mynd i ddychwelyd x amseroedd y ffactor x minws 1. 830 00:40:37,750 --> 00:40:41,810 Ac, hyd yn oed er fy mod yn ysgrifennu i fyny, yn y bôn, yr hyn a ddywedasoch yn Saesneg, 831 00:40:41,810 --> 00:40:44,580 y swyddogaeth ffactoraidd Bydd yn cael eu galw eto. 832 00:40:44,580 --> 00:40:46,320 Bydd yn gweithredu ar x minws 1. 833 00:40:46,320 --> 00:40:49,320 Bydd yn dychwelyd gyda rhai cyfanrif, a yna bydd yn lluosi ddau yma 834 00:40:49,320 --> 00:40:52,050 gyda'i gilydd, a bydd y gwerth hwnnw yn Dychwelodd i ba bynnag gelwir hyn 835 00:40:52,050 --> 00:40:55,010 swyddogaeth ffactoraidd, a gallai fod yn achos arall o 836 00:40:55,010 --> 00:40:58,420 swyddogaeth ffactoraidd hwn. 837 00:40:58,420 --> 00:41:01,360 >> Felly, mae hynny'n enghraifft o dychweliadol swyddogaeth, a iawn 838 00:41:01,360 --> 00:41:02,530 swyddogaeth ailadroddus syml. 839 00:41:02,530 --> 00:41:04,530 Ond bydd y rhan fwyaf ohonynt fod fel hyn. 840 00:41:04,530 --> 00:41:11,170 Os hoffech gael dychweliadol da herio ar gyfer y cwis, ceisiwch codio 841 00:41:11,170 --> 00:41:13,230 chwiliad deuaidd recursively. 842 00:41:13,230 --> 00:41:18,950 Oherwydd pe baech yn gwneud chwiliad deuaidd ar gyfer problem gosod tri, mae'n debyg y byddwch yn gwneud hynny 843 00:41:18,950 --> 00:41:21,730 iteraidd mewn cylch tra. 844 00:41:21,730 --> 00:41:23,700 >> Ond gall hefyd gael ei ysgrifennu recursively. 845 00:41:23,700 --> 00:41:26,310 Rydych yn mynd i angen i ysgrifennu eich pen eich hun swyddogaeth ar wahân sy'n cymryd rhai 846 00:41:26,310 --> 00:41:29,020 gwahanol ddadleuon gorchymyn-lein - neu Nid yw dadleuon gorchymyn-lein, mae rhai 847 00:41:29,020 --> 00:41:30,910 gwahanol ddadleuon yn unig rheolaidd. 848 00:41:30,910 --> 00:41:33,870 Ond gallech ysgrifennu chwiliad deuaidd recursively hefyd. 849 00:41:33,870 --> 00:41:36,190 >> MYFYRIWR: Felly yr ydych gallai hefyd wedi ysgrifennu, yn hytrach na x minws 1, yr ydych yn 850 00:41:36,190 --> 00:41:39,502 gallai hefyd wedi ysgrifennu x minws minws, neu gallech gael 851 00:41:39,502 --> 00:41:40,830 llai minws ysgrifenedig x. 852 00:41:40,830 --> 00:41:44,740 Allwch chi jyst egluro yn gyflym iawn pam Byddai hynny yn bethau gwahanol, 853 00:41:44,740 --> 00:41:49,510 fel beth yw'r gwahaniaeth rhwng x llai llai a llai minws x? 854 00:41:49,510 --> 00:41:51,320 >> JASON Hirschhorn: Na, dydw i ddim mynd i fynd i mewn i hynny. 855 00:41:51,320 --> 00:41:55,500 Ond byddaf yn siarad â chi am y peth ar ôl dosbarth. x llai llai, llai llai x 856 00:41:55,500 --> 00:41:57,780 lleihau a x gan 1. 857 00:41:57,780 --> 00:41:59,090 Ond maent yn ei wneud yn ychydig yn wahanol. 858 00:41:59,090 --> 00:42:00,340 Ond dydw i ddim eisiau mynd i mewn i hynny. 859 00:42:00,340 --> 00:42:04,330 860 00:42:04,330 --> 00:42:09,090 Cwestiynau eraill am recursion neu swyddogaeth hon? 861 00:42:09,090 --> 00:42:10,140 Nid yw hynny'n wir hyd yn oed yn pseudocode. 862 00:42:10,140 --> 00:42:15,060 Dyna y bôn y cod yn C byddech yn ysgrifennu ar gyfer hyn. 863 00:42:15,060 --> 00:42:19,393 >> OK, unrhyw gwestiynau eraill am bynciau i fyny yma? 864 00:42:19,393 --> 00:42:19,864 Yeah. 865 00:42:19,864 --> 00:42:23,130 >> MYFYRIWR: Mae gen i dirywio cyflym o pwynt arnawf ac yn fanwl. 866 00:42:23,130 --> 00:42:24,260 >> JASON Hirschhorn: fel y bo'r angen pwynt a manylder. 867 00:42:24,260 --> 00:42:26,920 A all rhywun yn gyflym iawn rhoi dirywio o fi 868 00:42:26,920 --> 00:42:28,210 pwynt arnawf a manylder? 869 00:42:28,210 --> 00:42:30,420 Roedd chi i gyd i wneud hyn ar gyfer eich broblem a osodwyd, er mwyn i chi i gyd 870 00:42:30,420 --> 00:42:31,700 yn gyfarwydd ag ef. 871 00:42:31,700 --> 00:42:35,090 Neu efallai nid pawb ohonoch. 872 00:42:35,090 --> 00:42:36,602 Dylai unrhyw un? 873 00:42:36,602 --> 00:42:39,530 Rhowch fan cychwyn i mi. 874 00:42:39,530 --> 00:42:40,750 Pwynt arnawf ac yn fanwl. 875 00:42:40,750 --> 00:42:42,380 Beth yw'r broblem? 876 00:42:42,380 --> 00:42:42,960 Ie. 877 00:42:42,960 --> 00:42:43,680 Victoria? 878 00:42:43,680 --> 00:42:44,480 >> Vanessa: Vanessa. 879 00:42:44,480 --> 00:42:45,285 >> JASON Hirschhorn: Vanessa. 880 00:42:45,285 --> 00:42:45,680 Mae'n ddrwg gennym. 881 00:42:45,680 --> 00:42:51,550 >> Vanessa: Dim ond nifer cyfyngedig rhifau y gellir eu cynrychioli 882 00:42:51,550 --> 00:42:57,930 oherwydd eich bod ar, yn ein achos, system 32-bit. 883 00:42:57,930 --> 00:43:03,080 Felly, rydych fath o rhaid i gwneud i fyny rhai rhifau. 884 00:43:03,080 --> 00:43:03,910 >> JASON Hirschhorn: Felly dyna yn union gywir. 885 00:43:03,910 --> 00:43:08,110 Dim ond swm penodol o rhifau y gellir eu cynrychioli. 886 00:43:08,110 --> 00:43:11,770 Os ydych yn lluosi dau niferoedd mawr iawn, gallai fod gorlifo y swm 887 00:43:11,770 --> 00:43:13,950 o leoedd yn rhaid i chi gynrychioli yn gyfanrif. 888 00:43:13,950 --> 00:43:17,930 Dyna pam weithiau rydym yn defnyddio hir hir yn lle int. 889 00:43:17,930 --> 00:43:19,210 Mae hynny wedi mwy o lefydd. 890 00:43:19,210 --> 00:43:21,210 Gall hynny yn dal nifer mwy. 891 00:43:21,210 --> 00:43:24,310 >> Pwynt arnawf trachywiredd wedi ei wneud gyda hynny, ond hefyd wedi ei wneud gyda'r 892 00:43:24,310 --> 00:43:29,300 ffaith bod nifer degol yn heb eu cynrychioli bob amser. 893 00:43:29,300 --> 00:43:29,540 Mae'n ddrwg gennym. 894 00:43:29,540 --> 00:43:31,280 Gadewch i mi roi hyn yn ôl i fyny. 895 00:43:31,280 --> 00:43:36,610 Nid yw nifer degol 1.0 bob amser cynrychioli fel chi yn disgwyl, 896 00:43:36,610 --> 00:43:40,770 1.000000000. 897 00:43:40,770 --> 00:43:50,360 Weithiau mae'n ei gynrychioli fel 1.000000001 neu 0.999999999. 898 00:43:50,360 --> 00:43:52,780 Gallai fod yn cael ei hyd yn oed yn taflu 89 yno yn rhywle. 899 00:43:52,780 --> 00:43:56,560 Felly nid rhifau degol hynny cynrychioli yn union fel y byddech 900 00:43:56,560 --> 00:43:58,430 disgwyl iddynt gael eu cynrychioli. 901 00:43:58,430 --> 00:44:00,010 >> Felly, yn broblem a osodwyd - 902 00:44:00,010 --> 00:44:00,860 oedd dau? - 903 00:44:00,860 --> 00:44:05,290 problem yn gosod dau, lle rydym yn delio â rhifau pwynt arnawf, pan yr oeddem am 904 00:44:05,290 --> 00:44:08,690 eu bod yn cynrychioli'r union beth yr ydym eisiau eu bod yn cynrychioli, y nifer 905 00:44:08,690 --> 00:44:12,860 o geiniogau, neu nifer y cents, ydym yn eu lluosi â 100. 906 00:44:12,860 --> 00:44:14,750 Rydym yn talgrynnu iddynt. 907 00:44:14,750 --> 00:44:18,660 Ac yna rydym yn torri i ffwrdd popeth y tu ôl y pwynt degol. 908 00:44:18,660 --> 00:44:22,020 Dyna oedd sicrhau y byddent yn mewn gwirionedd yn gyfartal yn union yr hyn yr ydym eisiau 909 00:44:22,020 --> 00:44:22,410 iddynt cyfartal. 910 00:44:22,410 --> 00:44:26,870 >> Oherwydd pan fyddwch yn cymryd rhywbeth sy'n a arnofio a throi i mewn i int, rydych 911 00:44:26,870 --> 00:44:29,860 torri i ffwrdd popeth i'r dde y pwynt degol. 912 00:44:29,860 --> 00:44:33,900 Oherwydd mae rhywfaint pwynt arnawf anfanyldeb, efallai 100.000 fod 913 00:44:33,900 --> 00:44:37,440 cynrychioli Lledred fel 99.999999999. 914 00:44:37,440 --> 00:44:40,350 Ac os ydych yn unig yn torri i ffwrdd popeth i yr hawl ar unwaith, byddwch yn mynd i 915 00:44:40,350 --> 00:44:41,600 gael y rhif anghywir. 916 00:44:41,600 --> 00:44:44,050 917 00:44:44,050 --> 00:44:44,180 Yeah. 918 00:44:44,180 --> 00:44:45,290 >> MYFYRIWR: Yr wyf wedi cael cwestiwn am castio. 919 00:44:45,290 --> 00:44:47,500 Mha drefn mae'n digwydd mewn? 920 00:44:47,500 --> 00:44:54,480 Os hoffech wneud arnofio, cromfachau, 1 rhannu 10, a yw'n yn 1 wedi'i rannu â 10, 921 00:44:54,480 --> 00:44:58,910 wedyn yn cael 0.1, yna trowch i mewn i arnofio? 922 00:44:58,910 --> 00:45:01,470 >> JASON Hirschhorn: Os ydych yn arnofio 1 wedi'i rannu gan 10 - 923 00:45:01,470 --> 00:45:02,550 >> MYFYRIWR: Yeah, ac yna yn dychwelyd - 924 00:45:02,550 --> 00:45:04,240 yn dda, a fyddai fel arfer gael yn gyfartal i mewn - 925 00:45:04,240 --> 00:45:04,690 Yeah. 926 00:45:04,690 --> 00:45:06,760 Byddwch am wneud yn arnofio, dde? 927 00:45:06,760 --> 00:45:12,790 >> JASON Hirschhorn: OK, felly rydym yn mynd i defnyddio hynny i segue i mewn i figuring 928 00:45:12,790 --> 00:45:15,390 yr atebion i'r cwestiynau hyn drwy godio. 929 00:45:15,390 --> 00:45:18,180 Oherwydd mae'n debyg y byddwch yn cael llawer o cwestiynau munud hyn, ac yn ffordd dda 930 00:45:18,180 --> 00:45:19,100 i'w datrys yw drwy godio. 931 00:45:19,100 --> 00:45:21,320 Felly, rydym yn mynd i roi cod hwn ar hyn o bryd, ac yna rydym yn mynd i fynd yn ôl a 932 00:45:21,320 --> 00:45:24,020 cod y cwestiwn oedd gennych. 933 00:45:24,020 --> 00:45:24,950 >> Felly, y llinell gyntaf - 934 00:45:24,950 --> 00:45:29,390 Ni ddylai wyf wedi ysgrifennu hyn - beth yw y peth cyntaf yr ydym am ei wneud pan fyddwn yn 935 00:45:29,390 --> 00:45:32,250 agor ffeil newydd yn gedit? 936 00:45:32,250 --> 00:45:34,190 >> MYFYRIWR: Cynnwys. 937 00:45:34,190 --> 00:45:35,920 >> JASON Hirschhorn: Cynnwys beth? 938 00:45:35,920 --> 00:45:37,952 >> MYFYRIWR: llyfrgell CS50. 939 00:45:37,952 --> 00:45:39,920 >> JASON Hirschhorn: OK. 940 00:45:39,920 --> 00:45:42,590 Beth arall y dylem gynnwys? 941 00:45:42,590 --> 00:45:46,820 Rydym yn jyst yn mynd i weld beth sy'n digwydd pan fyddwch yn bwrw rhywbeth i arnofio. 942 00:45:46,820 --> 00:45:48,605 Ond beth mae angen i ni gynnwys os ydym yn mynd i ysgrifennu rhaglen C? 943 00:45:48,605 --> 00:45:49,300 >> MYFYRIWR: Safon I / O. 944 00:45:49,300 --> 00:45:50,625 >> JASON Hirschhorn: stdio.h. 945 00:45:50,625 --> 00:45:54,880 Nid ydym yn angen mewn gwirionedd, ar gyfer hyn rhaglen, cs50.h, hyd yn oed er 'i' 946 00:45:54,880 --> 00:45:55,920 bob amser yn ddefnyddiol ei gynnwys. 947 00:45:55,920 --> 00:45:58,260 Ond bob amser yn angen stdio.h arnom. 948 00:45:58,260 --> 00:45:59,660 >> MYFYRIWR: Wrth codio yn C? 949 00:45:59,660 --> 00:46:15,770 >> JASON Hirschhorn: Wrth codio yn C. 950 00:46:15,770 --> 00:46:17,090 >> Felly yr wyf yn ei gadw fel hyn. Ffeil c. 951 00:46:17,090 --> 00:46:18,590 Yr wyf yn cael rhywfaint o tynnu sylw at cystrawen 'n glws. 952 00:46:18,590 --> 00:46:22,890 Ysgrifennais yn ddi-rym y tu mewn prif. 953 00:46:22,890 --> 00:46:24,792 Beth yw ystyr ddi-rym? 954 00:46:24,792 --> 00:46:26,740 >> MYFYRIWR: Nid yw'n cymryd unrhyw dadleuon gorchymyn-lein. 955 00:46:26,740 --> 00:46:28,900 >> JASON Hirschhorn: dulliau Void, yn yr achos, nid yw prif yn cymryd unrhyw 956 00:46:28,900 --> 00:46:29,700 dadleuon gorchymyn-lein. 957 00:46:29,700 --> 00:46:32,720 Mewn achosion eraill, mae'n golygu bod y swyddogaeth nid yw'n cymryd dadleuon gorchymyn-lein. 958 00:46:32,720 --> 00:46:36,560 Neu y swyddogaeth, pe bawn yn ysgrifennu yn ddi-rym prif (di-rym), a fyddai'n dweud prif yn 959 00:46:36,560 --> 00:46:38,460 Nid yw dychwelyd unrhyw beth. 960 00:46:38,460 --> 00:46:39,960 Felly, yn ddi-rym yn unig yn golygu dim byd. 961 00:46:39,960 --> 00:46:42,510 Beth fyddwn i'n ysgrifennu pe bawn yn cymryd dadleuon gorchymyn-lein? 962 00:46:42,510 --> 00:46:45,250 963 00:46:45,250 --> 00:46:47,150 >> MYFYRIWR: int arc c v arc llinyn 964 00:46:47,150 --> 00:46:49,055 >> JASON Hirschhorn: int argv llinyn argc. 965 00:46:49,055 --> 00:46:54,050 966 00:46:54,050 --> 00:46:55,572 A yw hynny'n gywir? 967 00:46:55,572 --> 00:46:58,720 >> MYFYRIWR: Mae'n LandLine cromfachau argv seren torgoch. 968 00:46:58,720 --> 00:47:01,730 >> JASON Hirschhorn: Felly gallech ysgrifennu cromfachau argv llinyn neu argv seren torgoch 969 00:47:01,730 --> 00:47:03,710 cromfachau, ond mae angen y cromfachau. 970 00:47:03,710 --> 00:47:06,290 Gan fod argv llu o linynnau, cofiwch. 971 00:47:06,290 --> 00:47:07,360 Nid dim ond un llinyn. 972 00:47:07,360 --> 00:47:10,350 Felly argv llinyn yw, yma wedi un llinyn o'r enw argv. 973 00:47:10,350 --> 00:47:13,630 Cromfachau argv llinyn yw, dyma amrywiaeth o linynnau. 974 00:47:13,630 --> 00:47:17,865 Cromfachau argv llinyn argc Felly int yn rhywbeth yr wyf yn 975 00:47:17,865 --> 00:47:18,810 mae'n debyg y byddai ysgrifennu. 976 00:47:18,810 --> 00:47:23,050 >> Felly, rydych yn awyddus i achub mewn cyfanrif? 977 00:47:23,050 --> 00:47:24,285 >> MYFYRIWR: Yeah, cyfanrif. 978 00:47:24,285 --> 00:47:25,840 Neu mewn arnofio. 979 00:47:25,840 --> 00:47:26,710 >> JASON Hirschhorn: Mewn arnofio? 980 00:47:26,710 --> 00:47:30,790 Fel, arnofio x yn hafal i 1 wedi'i rannu â 10. 981 00:47:30,790 --> 00:47:32,040 >> JASON Hirschhorn: OK. 982 00:47:32,040 --> 00:47:40,160 983 00:47:40,160 --> 00:47:42,240 Sut ydw i'n argraffu fflôt yn printf? 984 00:47:42,240 --> 00:47:45,100 985 00:47:45,100 --> 00:47:46,714 Beth? 986 00:47:46,714 --> 00:47:47,560 >> MYFYRIWR:% f. 987 00:47:47,560 --> 00:47:48,300 >> JASON Hirschhorn:% f. 988 00:47:48,300 --> 00:47:50,810 Beth sy'n cyfanrif? 989 00:47:50,810 --> 00:47:52,110 d neu i. 990 00:47:52,110 --> 00:47:53,000 Beth yw llinyn? 991 00:47:53,000 --> 00:47:54,240 >> MYFYRIWR: s. 992 00:47:54,240 --> 00:47:56,140 >> JASON Hirschhorn: s. 993 00:47:56,140 --> 00:47:57,550 Sut ydw i'n cael llinell newydd? 994 00:47:57,550 --> 00:47:58,800 >> MYFYRIWR: slaes n. 995 00:47:58,800 --> 00:48:04,610 996 00:48:04,610 --> 00:48:07,100 >> JASON Hirschhorn: Beth ydw i'n dychwelyd os prif rhedeg yn gywir? 997 00:48:07,100 --> 00:48:08,360 >> MYFYRIWR: 0. 998 00:48:08,360 --> 00:48:09,430 A oes angen i mi ysgrifennu y llinell honno, er bod? 999 00:48:09,430 --> 00:48:10,170 >> MYFYRIWR: Na 1000 00:48:10,170 --> 00:48:11,513 OK, ni fyddwn yn ysgrifennu, yna. 1001 00:48:11,513 --> 00:48:16,450 1002 00:48:16,450 --> 00:48:17,190 A all pawb ddarllen hynny? 1003 00:48:17,190 --> 00:48:18,485 Mae'n edrych ychydig bach. 1004 00:48:18,485 --> 00:48:20,160 Gall pawb weld, neu y dylai Yr wyf yn ei gwneud yn fwy? 1005 00:48:20,160 --> 00:48:23,480 1006 00:48:23,480 --> 00:48:25,100 Yr wyf yn meddwl ar gyfer y camera, byddwn yn gwneud ei fod yn ychydig yn fwy, er. 1007 00:48:25,100 --> 00:48:35,750 1008 00:48:35,750 --> 00:48:38,410 >> JASON Hirschhorn: Os wyf i am droi hyn . C ffeil i mewn i cyflawnadwy, beth 1009 00:48:38,410 --> 00:48:39,260 ydw i'n ysgrifennu? 1010 00:48:39,260 --> 00:48:41,610 >> MYFYRIWR: Gwneud prawf. 1011 00:48:41,610 --> 00:48:42,080 >> JASON Hirschhorn: Mae'n ddrwg gennyf? 1012 00:48:42,080 --> 00:48:42,790 >> MYFYRIWR: Gwneud prawf. 1013 00:48:42,790 --> 00:48:44,040 >> JASON Hirschhorn: Gwneud prawf. 1014 00:48:44,040 --> 00:48:46,700 1015 00:48:46,700 --> 00:48:48,410 Yr oeddem yn sôn am y llinell hon yn gynharach. 1016 00:48:48,410 --> 00:48:49,140 Chlang. 1017 00:48:49,140 --> 00:48:51,270 Beth sydd chlang? 1018 00:48:51,270 --> 00:48:52,200 Enw'r compiler. 1019 00:48:52,200 --> 00:48:53,920 Beth sydd y llinell hon? 1020 00:48:53,920 --> 00:48:55,580 >> MYFYRIWR: Setiau i fyny ar gyfer defnyddio GDB. 1021 00:48:55,580 --> 00:48:59,230 >> JASON Hirschhorn: Setiau i fyny ar gyfer defnyddio GDB. 1022 00:48:59,230 --> 00:49:02,338 Mae'r llinell hon, beth sy'n bod? 1023 00:49:02,338 --> 00:49:03,290 >> MYFYRIWR: Cod Ffynhonnell. 1024 00:49:03,290 --> 00:49:06,010 >> JASON Hirschhorn: Dyna'r ffeil ffynhonnell, y ffeil. c. 1025 00:49:06,010 --> 00:49:08,150 Beth mae'r rhain yn ddwy linell yn ei wneud? 1026 00:49:08,150 --> 00:49:10,245 Neu nid yw'r rhain ddwy linell. 1027 00:49:10,245 --> 00:49:12,300 >> MYFYRIWR: Enwau Mae'n ei brofi. 1028 00:49:12,300 --> 00:49:15,410 >> JASON Hirschhorn: Felly mae'r llinell doriad o yn dweud, enwi rhywbeth yn wahanol. 1029 00:49:15,410 --> 00:49:16,790 A dyma ydych yn ffonio ei brawf. 1030 00:49:16,790 --> 00:49:18,900 Os nad oedd gen i hynny mewn, hyn y byddai'n ei enwi hyn? 1031 00:49:18,900 --> 00:49:20,260 >> MYFYRIWR: A.out. 1032 00:49:20,260 --> 00:49:22,340 >> JASON Hirschhorn: A.out. 1033 00:49:22,340 --> 00:49:25,366 Beth mae hyn yn ei wneud? 1034 00:49:25,366 --> 00:49:27,670 >> MYFYRIWR: Cysylltiadau llyfrgell mathemateg. 1035 00:49:27,670 --> 00:49:29,550 >> JASON Hirschhorn: Mae'n cysylltu yn y llyfrgell mathemateg. 1036 00:49:29,550 --> 00:49:32,880 Nid ydym yn cynnwys y llyfrgell mathemateg, ond ers hynny mor gyffredin, maent wedi 1037 00:49:32,880 --> 00:49:35,780 gwneud ysgrifenedig bob amser yn cynnwys y llyfrgell mathemateg. 1038 00:49:35,780 --> 00:49:39,050 Ac yn yr un modd, mae hyn yn cynnwys llyfrgell CS50. 1039 00:49:39,050 --> 00:49:43,010 >> Iawn, felly os ydym yn rhestru, mae gennym bellach weithredadwy a elwir yn brawf. 1040 00:49:43,010 --> 00:49:45,150 I weithredu, yr wyf yn ysgrifennu prawf. 1041 00:49:45,150 --> 00:49:48,330 Gwelaf fod fy mhwynt fel y bo'r angen, yn ôl y disgwyl, yn hafal i 0. 1042 00:49:48,330 --> 00:49:50,890 1043 00:49:50,890 --> 00:49:51,590 Gwneud hynny - 1044 00:49:51,590 --> 00:49:52,060 hynny - 1045 00:49:52,060 --> 00:49:55,210 >> MYFYRIWR: Yna, os byddwch yn rhoi arnofio yn awr, fel chi bwrw fel arnofio - 1046 00:49:55,210 --> 00:49:56,870 >> JASON Hirschhorn: Cast 1 i arnofio? 1047 00:49:56,870 --> 00:49:59,180 >> MYFYRIWR: Na, bwrw y peth llawn - 1048 00:49:59,180 --> 00:49:59,500 yeah. 1049 00:49:59,500 --> 00:50:02,460 Os ydych yn unig yn gwneud hynny, byddai sy'n ei gwneud yn 0.1? 1050 00:50:02,460 --> 00:50:07,170 >> JASON Hirschhorn: OK, felly mewn gwirionedd yn gyflym, 1 wedi'i rannu gan 10, y rhai yn 1051 00:50:07,170 --> 00:50:08,690 cyfanrifau sy'n cael eu rhannu. 1052 00:50:08,690 --> 00:50:13,580 Felly, pan fyddwch yn rhannu cyfanrifau, eu bod yn 0, ac rydych yn arbed bod 0 mewn 1053 00:50:13,580 --> 00:50:17,170 arnofio, gan fod y slaes yn adran cyfanrif yn unig. 1054 00:50:17,170 --> 00:50:19,180 Felly nawr rydym yn troi rhywbeth i mewn i arnofio. 1055 00:50:19,180 --> 00:50:21,650 >> Gadewch i ni weld beth sy'n digwydd. 1056 00:50:21,650 --> 00:50:22,900 Byddwn yn gwneud prawf. 1057 00:50:22,900 --> 00:50:25,870 1058 00:50:25,870 --> 00:50:31,090 Felly nawr rydym yn gweld nad yw'r slaes oedd adran cyfanrif, yr oedd yn fel y bo'r angen 1059 00:50:31,090 --> 00:50:32,640 adran pwynt. 1060 00:50:32,640 --> 00:50:35,700 Oherwydd bod un o'i ddadleuon wedi cael ei bwrw i arnofio. 1061 00:50:35,700 --> 00:50:38,380 Felly, erbyn hyn mae'n ei ddweud, yn trin hyn is-adran fel rydym yn delio â 1062 00:50:38,380 --> 00:50:40,140 pwyntiau fel y bo'r angen, nid gyda gyfanrifau. 1063 00:50:40,140 --> 00:50:42,760 Ac felly rydym yn cael yr ateb yr ydym yn ei ddisgwyl. 1064 00:50:42,760 --> 00:50:44,620 >> Gadewch i ni weld beth sy'n digwydd - 1065 00:50:44,620 --> 00:50:47,103 wps. 1066 00:50:47,103 --> 00:50:51,646 Os oeddwn i eisiau argraffu mwy degol smotiau, sut y gallwn i wneud hynny? 1067 00:50:51,646 --> 00:50:55,550 >> MYFYRIWR: Pwynt dot f, neu gan fod llawer lle degol ag y dymunwch. 1068 00:50:55,550 --> 00:51:02,280 1069 00:51:02,280 --> 00:51:04,440 >> JASON Hirschhorn: Felly, yr wyf argraffu 10 smotiau degol. 1070 00:51:04,440 --> 00:51:06,610 Ac rydym yn awr yn gweld ein bod yn cael rhai pethau 'n annaearol. 1071 00:51:06,610 --> 00:51:09,650 Ac mae hynny'n mynd yn ôl at eich cwestiwn am arnofio pwynt anfanyldeb. 1072 00:51:09,650 --> 00:51:10,950 Mae stwff od storio mewn yma. 1073 00:51:10,950 --> 00:51:13,650 1074 00:51:13,650 --> 00:51:15,275 >> OK, a yw hynny'n ateb eich cwestiwn? 1075 00:51:15,275 --> 00:51:18,550 1076 00:51:18,550 --> 00:51:20,200 Beth arall oeddech am i cod yn gyflym? 1077 00:51:20,200 --> 00:51:25,470 >> MYFYRIWR: Fi jyst eisiau i weld a Nid yw, os ydych yn rhyddhau rhywfaint o pwyntydd, 1078 00:51:25,470 --> 00:51:30,410 a oedd y pwyntydd yn dal wedi ei storio mewn dyma'r cyfeiriad yr hyn oedd wedi bod 1079 00:51:30,410 --> 00:51:32,170 bwyntio at y gorffennol. 1080 00:51:32,170 --> 00:51:34,100 >> JASON Hirschhorn: OK, felly gadewch i ni wneud hynny. 1081 00:51:34,100 --> 00:51:38,030 Ptr torgoch seren, mae hyn yn creu newidyn Gelwir ptr o seren torgoch fath. 1082 00:51:38,030 --> 00:51:39,280 Sut ydw i'n ysgrifennu malloc? 1083 00:51:39,280 --> 00:51:40,550 Alden? 1084 00:51:40,550 --> 00:51:41,800 >> ALDEN: Dim ond malloc. 1085 00:51:41,800 --> 00:51:44,820 1086 00:51:44,820 --> 00:51:51,040 Ond yna mae'n rhaid iddo fod o faint, a yn yr achos hwn, mae'n debyg eich wedi 1087 00:51:51,040 --> 00:51:52,465 fod yn pwyntio i torgoch. 1088 00:51:52,465 --> 00:51:54,450 Felly, byddai'n cael ei torgoch. 1089 00:51:54,450 --> 00:51:57,520 >> JASON Hirschhorn: OK, fel bod mwy o generig, tu mewn - 1090 00:51:57,520 --> 00:51:58,770 gadewch i ni olygu. 1091 00:51:58,770 --> 00:52:05,100 1092 00:52:05,100 --> 00:52:09,260 Y tu mewn malloc, ydych am i'r nifer o bytes ar y domen. 1093 00:52:09,260 --> 00:52:12,320 Yn gyffredinol, yr hyn yr ydym wedi gweld ein bod ni'n wneud yw ein bod yn mynd i malloc 1094 00:52:12,320 --> 00:52:14,940 llinynnau, er enghraifft, neu araeau o gyfanrifau. 1095 00:52:14,940 --> 00:52:21,600 Felly, os ydym am 10 cyfanrifau, neu 10 chars, bydd 10 yn rhoi i ni 10. 1096 00:52:21,600 --> 00:52:24,370 Ac yna y byddai maint y chars rhoi wrthym fod maint y chars, sydd yn ei 1097 00:52:24,370 --> 00:52:25,120 yr achos hwn yw 1 beit. 1098 00:52:25,120 --> 00:52:26,250 Rydym yn cael 10 bytes. 1099 00:52:26,250 --> 00:52:28,540 Pe baem yn ysgrifennu maint y int, a fyddai'n rhoi 40 bytes ni. 1100 00:52:28,540 --> 00:52:31,520 >> Felly fwy cyffredinol, y tu mewn o malloc yw nifer y bytes ydych ei eisiau. 1101 00:52:31,520 --> 00:52:34,620 Yn yr achos hwn, rydym yn cael 1 beit. 1102 00:52:34,620 --> 00:52:36,900 Sy'n ymddangos fel defnydd rhyfedd o malloc, ond ar gyfer ein 1103 00:52:36,900 --> 00:52:38,470 ddibenion gwneud synnwyr. 1104 00:52:38,470 --> 00:52:40,420 Felly, mae hynny. 1105 00:52:40,420 --> 00:52:43,420 >> Rydym yn mynd i alw am ddim. 1106 00:52:43,420 --> 00:52:47,040 Rydym yn cael gwared ohono ac rydym yn defnyddio ptr eto. 1107 00:52:47,040 --> 00:52:48,750 A beth wnaethoch chi am wirio? 1108 00:52:48,750 --> 00:52:50,550 >> MYFYRIWR: Fi jyst eisiau i wirio a neu nad oedd unrhyw beth 1109 00:52:50,550 --> 00:52:51,900 tu mewn iddo. 1110 00:52:51,900 --> 00:52:53,050 >> JASON Hirschhorn: Felly, p'un a ei fod yn tynnu sylw at unrhyw beth? 1111 00:52:53,050 --> 00:52:57,740 >> MYFYRIWR: Yeah, yn union, boed mae'n dal oedd â chyfeiriad cof. 1112 00:52:57,740 --> 00:53:02,220 >> JASON Hirschhorn: Felly rydych chi am i weld beth yw gwerth PTR? 1113 00:53:02,220 --> 00:53:03,470 >> MYFYRIWR: Yeah, yn union. 1114 00:53:03,470 --> 00:53:07,940 1115 00:53:07,940 --> 00:53:10,160 >> JASON Hirschhorn: Beth ydw i'n ei ysgrifennu yma os ydw i am wirio gwerth y 1116 00:53:10,160 --> 00:53:11,880 pwynt - beth yw, Jordan Dywedodd, mae'r gwerth? 1117 00:53:11,880 --> 00:53:13,720 Neu beth yn cael ei storio tu mewn PTR? 1118 00:53:13,720 --> 00:53:14,620 >> MYFYRIWR: A gyfeiriad cof. 1119 00:53:14,620 --> 00:53:16,330 >> JASON Hirschhorn: A gyfeiriad cof. 1120 00:53:16,330 --> 00:53:20,520 Felly os wyf yn ysgrifennu yn unig hyn, mae'n annhymerus ' rhoi gwerth PTR mi. 1121 00:53:20,520 --> 00:53:22,800 A sut ydw i'n argraffu yn gyfeiriad cof? 1122 00:53:22,800 --> 00:53:26,470 Beth yw'r fformat llinyn am gyfeiriad cof? 1123 00:53:26,470 --> 00:53:27,430 >> MYFYRIWR:% t. 1124 00:53:27,430 --> 00:53:28,050 >> JASON Hirschhorn:% t. 1125 00:53:28,050 --> 00:53:29,500 % S yn llinyn. 1126 00:53:29,500 --> 00:53:30,750 % P ar gyfer pwyntydd. 1127 00:53:30,750 --> 00:53:40,820 1128 00:53:40,820 --> 00:53:43,540 A yw hynny'n gywir? 1129 00:53:43,540 --> 00:53:44,790 Mae hynny'n gywir. 1130 00:53:44,790 --> 00:53:49,450 1131 00:53:49,450 --> 00:53:51,040 Felly ptr yn gyfartal - 1132 00:53:51,040 --> 00:53:53,350 mae ganddo rywbeth ynddo. 1133 00:53:53,350 --> 00:53:56,110 1134 00:53:56,110 --> 00:53:57,645 Mae hyn yn fwy na thebyg yn fwy cwestiwn diddorol. 1135 00:53:57,645 --> 00:53:59,198 Beth mae hynny'n ei llinell yn ei wneud? 1136 00:53:59,198 --> 00:54:00,830 >> MYFYRIWR: diffygion Seg. 1137 00:54:00,830 --> 00:54:01,310 >> JASON Hirschhorn: Beth? 1138 00:54:01,310 --> 00:54:02,678 >> MYFYRIWR: Rwy'n credu ei fod SEG namau. 1139 00:54:02,678 --> 00:54:03,574 >> JASON Hirschhorn: EM? 1140 00:54:03,574 --> 00:54:04,920 >> MYFYRIWR: Yr wyf yn meddwl bydd yn SEG fai. 1141 00:54:04,920 --> 00:54:08,265 >> JASON Hirschhorn: Felly y llinell hon o PTR cod, seren, beth 1142 00:54:08,265 --> 00:54:10,152 yn golygu y seren? 1143 00:54:10,152 --> 00:54:11,240 >> MYFYRIWR: Cynnwys y. 1144 00:54:11,240 --> 00:54:11,560 >> JASON Hirschhorn: Yeah. 1145 00:54:11,560 --> 00:54:13,910 Ewch i gael y cynnwys. 1146 00:54:13,910 --> 00:54:16,830 Felly, mae hyn yn mynd i fynd i'r cof mynd i'r afael yno ac yn rhoi i mi hynny. 1147 00:54:16,830 --> 00:54:21,030 Roeddwn i'n arfer% c yma oherwydd bod yn cael eu cymeriadau eu storio yno. 1148 00:54:21,030 --> 00:54:23,390 Felly, rydym yn mynd i fynd i'r cyfeiriad hwnnw yr ydym yn jyst yn gweld - neu yn ôl pob tebyg fe fydd yn 1149 00:54:23,390 --> 00:54:25,190 ychydig bach hyn yn wahanol tro y byddwn yn rhedeg y rhaglen. 1150 00:54:25,190 --> 00:54:28,010 Ond byddwn yn mynd i'r cyfeiriad hwnnw yr ydym yn gwybod yn dal i fodoli 1151 00:54:28,010 --> 00:54:29,260 a gweld beth sydd yno. 1152 00:54:29,260 --> 00:54:35,640 1153 00:54:35,640 --> 00:54:37,110 >> Felly, nid oedd yn SEG fai. 1154 00:54:37,110 --> 00:54:38,970 Mae'n nid yn unig oedd yn rhoi unrhyw beth i ni. 1155 00:54:38,970 --> 00:54:43,350 Gallai fod wedi mewn gwirionedd yn rhoi i ni rhywbeth, ni allwn yn unig yn ei weld. 1156 00:54:43,350 --> 00:54:45,110 Ac mae hynny'n mynd yn ôl at y syniad hwn - 1157 00:54:45,110 --> 00:54:47,270 ac nid ydym yn mynd i gael gormod i mewn hwn, oherwydd dyna y tu hwnt i'r 1158 00:54:47,270 --> 00:54:48,460 cwmpas y cwrs. 1159 00:54:48,460 --> 00:54:51,260 Ond buom yn siarad am dde yma, os ydym mynd y tu hwnt i ffiniau'r y rhesi gan 1160 00:54:51,260 --> 00:54:54,890 1, efallai na fyddwn yn mynd i mewn trafferth. 1161 00:54:54,890 --> 00:54:58,550 >> Weithiau, pan fyddwch yn jyst yn mynd i ffwrdd gan 1, eich bod yn gwneud rhywbeth o'i le, ac rydych 1162 00:54:58,550 --> 00:54:59,220 Gallai fynd i mewn trafferth. 1163 00:54:59,220 --> 00:55:00,820 Ond nid ydych yn bob amser yn cael mewn trafferth. 1164 00:55:00,820 --> 00:55:05,170 Mae'n dibynnu faint o beth drwg i chi yn gwneud hynny, rydych chi'n mynd i fynd i mewn trafferth. 1165 00:55:05,170 --> 00:55:07,790 Pa un yw i beidio â dweud, fod yn flêr gyda eich cod. 1166 00:55:07,790 --> 00:55:12,080 Ond mae'n dweud, nid yw'r rhaglen yn bob amser roi'r gorau iddi, hyd yn oed os ydych yn mynd i rywle 1167 00:55:12,080 --> 00:55:14,130 nad ydych yn fod i fynd. 1168 00:55:14,130 --> 00:55:18,170 >> Mae enghraifft dda o hynny yw, mae llawer o pobl yn eu problem yn gosod 3, sy'n 1169 00:55:18,170 --> 00:55:22,350 oedd 15, nid oedd yn edrych ar y ffiniau y bwrdd. 1170 00:55:22,350 --> 00:55:25,860 Felly, rydych yn edrych ar y chwith, yn edrych ar y hawl, yn edrych i'r brig, yn edrych 1171 00:55:25,860 --> 00:55:27,000 i'r gwaelod. 1172 00:55:27,000 --> 00:55:31,540 Ond nid ydych yn gwirio i weld os yw'r top oedd mewn gwirionedd yn mynd i fod ar y bwrdd. 1173 00:55:31,540 --> 00:55:35,220 Ac mae llawer o bobl a wnaeth hynny a troi hynny i mewn, eu rhaglen yn gweithio 1174 00:55:35,220 --> 00:55:38,960 berffaith, oherwydd os yw'r bwrdd yn storio yn y cof, os ydych yn mynd un 1175 00:55:38,960 --> 00:55:42,300 uchod, neu eu gwirio y cof gyfeiriad, nid oedd unrhyw beth 1176 00:55:42,300 --> 00:55:44,870 arbennig o erchyll am hynny, fel na fydd eich rhaglen yn 1177 00:55:44,870 --> 00:55:45,970 mynd i gweiddi ar chi. 1178 00:55:45,970 --> 00:55:48,870 >> Ond byddem yn dal i gymryd i ffwrdd pwynt os na wnaethoch chi wirio bod, oherwydd eich bod 1179 00:55:48,870 --> 00:55:50,850 yn gwneud rhywbeth nad oeddech yn fod i'w wneud, a gallech gael 1180 00:55:50,850 --> 00:55:51,860 gotten mewn trafferth. 1181 00:55:51,860 --> 00:55:54,040 Groes yn, fodd bynnag, mae'n debyg na wnaeth. 1182 00:55:54,040 --> 00:55:57,790 Felly, mae hyn yw dangos bod, ie, gallwn yn dal i fynd iddo. 1183 00:55:57,790 --> 00:55:59,010 Ac nid ydym yn ei gael yn trafferth yn yr achos hwn. 1184 00:55:59,010 --> 00:56:04,000 Os ydym yn ceisio gwneud darllen y 100 cymeriadau nesaf, rydym wedi 1185 00:56:04,000 --> 00:56:06,000 yn ôl pob tebyg yn cael mewn trafferth. 1186 00:56:06,000 --> 00:56:09,400 A allwch chi ddarllen y cod 100 nesaf cymeriadau os ydych am drwy wneud rhai 1187 00:56:09,400 --> 00:56:10,110 fath o ar gyfer dolen. 1188 00:56:10,110 --> 00:56:10,850 Yeah. 1189 00:56:10,850 --> 00:56:16,250 >> MYFYRIWR: Gan ein bod yn neilltuo y gofod werth go iawn, ni fyddem 1190 00:56:16,250 --> 00:56:17,050 mewn gwirionedd yn gallu gweld unrhyw beth. 1191 00:56:17,050 --> 00:56:21,740 A ddylem roi cynnig arni â gosod y cyfartal i yn hoffi c neu rywbeth? 1192 00:56:21,740 --> 00:56:22,640 >> JASON Hirschhorn: Cwestiwn Fawr. 1193 00:56:22,640 --> 00:56:25,340 Sut ydw i'n gosod y gwerth hwnnw - 1194 00:56:25,340 --> 00:56:28,980 pa linell o god ydw i'n ysgrifennu ar-lein saith i wneud yr hyn yr ydych wedi'i ddweud? 1195 00:56:28,980 --> 00:56:34,040 >> MYFYRIWR: Star ptr hafal sengl quote c ben dyfynbris sengl. 1196 00:56:34,040 --> 00:56:36,970 >> JASON Hirschhorn: Felly mae hynny wedi rhoi cymeriad, c, yn y lleoliad hwnnw, 1197 00:56:36,970 --> 00:56:40,200 oherwydd eto, seren sydd yn golygu mynd i yno. 1198 00:56:40,200 --> 00:56:43,320 A pan gaiff ei ddefnyddio ar yr ochr chwith gweithredwr aseiniad, sy'n hafal 1199 00:56:43,320 --> 00:56:47,270 llofnodi, nid ydym yn mynd i gael y gwerth gymaint fel y gwerth hwnnw. 1200 00:56:47,270 --> 00:56:48,520 Nawr, gadewch i ni weld beth fydd yn digwydd. 1201 00:56:48,520 --> 00:56:54,700 1202 00:56:54,700 --> 00:56:56,770 >> Rydym yn rhoi rhywbeth yno ac yno. 1203 00:56:56,770 --> 00:56:58,000 Rydym yn galw am ddim. 1204 00:56:58,000 --> 00:57:00,100 Mae rhai pethau wedi digwydd yn ôl pob tebyg ar y domen. 1205 00:57:00,100 --> 00:57:01,890 Felly nid yw'n yno anymore. 1206 00:57:01,890 --> 00:57:07,440 Ond unwaith eto, nid ydym yn ei gael mewn trafferth ar gyfer mynd yno. 1207 00:57:07,440 --> 00:57:10,260 >> Rwy'n gwneud hyn mewn cod i ddangos bod llawer o'r rhain 1208 00:57:10,260 --> 00:57:12,410 gwestiynau sydd gennych, eu bod yn yn ddiddorol iawn 1209 00:57:12,410 --> 00:57:13,650 yn ateb llawer o amser. 1210 00:57:13,650 --> 00:57:15,260 Ac maent yn gwestiynau da iawn. 1211 00:57:15,260 --> 00:57:19,010 A allwch chi chyfrif nhw allan ar eich pen eich hun os, er enghraifft, 1212 00:57:19,010 --> 00:57:19,990 nid ydym yn yn adran hon. 1213 00:57:19,990 --> 00:57:20,940 Yeah. 1214 00:57:20,940 --> 00:57:24,430 >> MYFYRIWR: Oherwydd nad ydych yn anfon y Pointer unrhyw le, mae angen i chi 1215 00:57:24,430 --> 00:57:26,530 defnyddio malloc? 1216 00:57:26,530 --> 00:57:28,400 >> JASON Hirschhorn: Felly, mae hyn yn mynd yn ôl at eich cwestiwn cychwynnol. 1217 00:57:28,400 --> 00:57:28,620 [? ?] 1218 00:57:28,620 --> 00:57:29,980 Ai dim ond newidyn lleol? 1219 00:57:29,980 --> 00:57:32,280 Nid Malloc yma yw bod gymhellol. 1220 00:57:32,280 --> 00:57:35,260 Nid yw'r defnydd o malloc yma yw bod rymus am ei fod yn 1221 00:57:35,260 --> 00:57:36,500 dim ond newidyn lleol. 1222 00:57:36,500 --> 00:57:40,970 >> MYFYRIWR: Felly y gallech ei wneud golosg ptr seren yn dychwelyd hello? 1223 00:57:40,970 --> 00:57:41,400 >> JASON Hirschhorn: Oh. 1224 00:57:41,400 --> 00:57:43,300 Felly, rydym yn mynd yn hyn fynd yn ôl at eich cwestiwn cychwynnol. 1225 00:57:43,300 --> 00:57:46,885 Yr wyf yn meddwl nad ydych yn fodlon gyda fy ateb. 1226 00:57:46,885 --> 00:57:48,220 OK? 1227 00:57:48,220 --> 00:57:49,226 Fel hynny? 1228 00:57:49,226 --> 00:57:49,682 >> MYFYRIWR: Yeah. 1229 00:57:49,682 --> 00:57:50,932 Aros. 1230 00:57:50,932 --> 00:57:54,090 1231 00:57:54,090 --> 00:57:57,850 >> JASON Hirschhorn: A lle ydych chi eisiau argraffu? 1232 00:57:57,850 --> 00:58:00,026 Felly, byddwn yn argraffu llinyn fel 'na? 1233 00:58:00,026 --> 00:58:06,380 1234 00:58:06,380 --> 00:58:07,630 >> MYFYRIWR: Diddorol. 1235 00:58:07,630 --> 00:58:09,900 1236 00:58:09,900 --> 00:58:14,285 >> JASON Hirschhorn: Felly, mae hyn yn dweud hyn Mae dadl y math o gymeriad. 1237 00:58:14,285 --> 00:58:17,200 1238 00:58:17,200 --> 00:58:18,620 Felly, dylai hwn fod yn gymeriad. 1239 00:58:18,620 --> 00:58:25,170 1240 00:58:25,170 --> 00:58:26,280 >> MYFYRIWR: Dim ond yn cymryd yr un cyntaf. 1241 00:58:26,280 --> 00:58:28,610 >> JASON Hirschhorn: Felly, mae hyn yw hyn a ddywedais o'r blaen. 1242 00:58:28,610 --> 00:58:34,240 Fel y dywedais, nid yw'n storio'r llinyn y tu mewn pwyntydd amrywiol. 1243 00:58:34,240 --> 00:58:35,120 Mae'n storio - 1244 00:58:35,120 --> 00:58:36,350 >> MYFYRIWR: Gwerth cyntaf y llinyn. 1245 00:58:36,350 --> 00:58:40,810 >> JASON Hirschhorn: Cyfeiriad gwerth cyntaf y llinyn. 1246 00:58:40,810 --> 00:58:46,940 Pe baem yn argraffu'r hyn, rydym yn cael y gwerth y tu mewn pwyntydd. 1247 00:58:46,940 --> 00:58:51,005 A byddwn yn ei weld, yn wir, cyfeiriad cof. 1248 00:58:51,005 --> 00:58:53,595 1249 00:58:53,595 --> 00:58:56,440 >> A yw hynny'n gwneud synnwyr? 1250 00:58:56,440 --> 00:58:56,940 Mae'n ddrwg gennym. 1251 00:58:56,940 --> 00:58:58,996 Arhoswch, a yw hynny'n ateb eich cwestiwn, er bod? 1252 00:58:58,996 --> 00:58:59,790 >> MYFYRIWR: Yeah. 1253 00:58:59,790 --> 00:59:05,830 >> JASON Hirschhorn: Mae'r llinell o god yn creu llinyn ac yna un arall 1254 00:59:05,830 --> 00:59:09,115 pwyntydd amrywiol sydd wedi pwyntio i'r llinyn, y rhesi. 1255 00:59:09,115 --> 00:59:14,320 1256 00:59:14,320 --> 00:59:14,980 Yeah. 1257 00:59:14,980 --> 00:59:19,200 >> MYFYRIWR: Felly, os ydym yn mynd un cof mynd i'r afael ymhellach, byddem yn cael y h? 1258 00:59:19,200 --> 00:59:21,990 1259 00:59:21,990 --> 00:59:23,150 A yw wedi ei storio fel llinyn? 1260 00:59:23,150 --> 00:59:24,400 >> JASON Hirschhorn: Fel, fe wnaethom - 1261 00:59:24,400 --> 00:59:28,540 1262 00:59:28,540 --> 00:59:30,790 felly mae hyn yn werthfawr i'w wneud. 1263 00:59:30,790 --> 00:59:33,780 Mae hyn yn rhifyddeg pwynt, yr ydych yn guys wedi gweld o'r blaen a dylai fod 1264 00:59:33,780 --> 00:59:35,550 gymharol gyfforddus ag ef. 1265 00:59:35,550 --> 00:59:36,905 Mae hyn yn debyg i ysgrifennu - 1266 00:59:36,905 --> 00:59:41,980 1267 00:59:41,980 --> 00:59:46,350 pe baem yn ysgrifennu llinell hon o god, rydym wedi gweld nodiant amrywiaeth o'r blaen. 1268 00:59:46,350 --> 00:59:55,900 Dylai hyn roi ail i ni gwerth amrywiaeth hwn, h. 1269 00:59:55,900 --> 01:00:05,010 >> Os byddwn yn gwneud hyn, dylai hyn hefyd roi ni yr ail gwerth yn y casgliad. 1270 01:00:05,010 --> 01:00:08,320 Oherwydd ei fod yn mynd i beidio â cof cyfeiriad y peth cyntaf, ond mae'r 1271 01:00:08,320 --> 01:00:10,530 gyfeiriad cof am y peth un drosodd. 1272 01:00:10,530 --> 01:00:14,360 Ac yna y dereferences gweithredwr seren y pwyntydd. 1273 01:00:14,360 --> 01:00:16,940 Ac eto, gadewch i ni weld. 1274 01:00:16,940 --> 01:00:18,664 Rydym yn cael f eto. 1275 01:00:18,664 --> 01:00:20,980 >> MYFYRIWR: Beth yn union mae dereference yn ei olygu? 1276 01:00:20,980 --> 01:00:23,650 >> JASON Hirschhorn: Dadgyfeirio yn air ffansi i fynd iddi. 1277 01:00:23,650 --> 01:00:26,390 Ewch i hynny a chael yr hyn sydd yno yw dereference pwyntydd. 1278 01:00:26,390 --> 01:00:28,240 Dim ond gair ffansi ar gyfer hynny. 1279 01:00:28,240 --> 01:00:29,986 >> MYFYRIWR: Os ydym eisiau print y llinyn cyfan, gallem 1280 01:00:29,986 --> 01:00:31,930 wneud pwyntydd ampersand? 1281 01:00:31,930 --> 01:00:33,490 >> JASON Hirschhorn: OK, yr ydym yn mynd i oedi yma. 1282 01:00:33,490 --> 01:00:35,480 Rydym yn mynd i ben yma. 1283 01:00:35,480 --> 01:00:41,760 Ampersand yn rhoi cyfeiriad i chi lleoliad, felly pan fyddwch yn gwneud ampersand o 1284 01:00:41,760 --> 01:00:44,080 newidyn, mae'n rhoi'r cyfeiriad i chi lle y newidyn yn cael ei storio. 1285 01:00:44,080 --> 01:00:48,580 Bydd pwyntydd ampersand yn rhoi i chi y cyfeiriad y PTR lle ptr mewn cof. 1286 01:00:48,580 --> 01:00:50,140 >> Nid ydym yn mynd i fynd ar gyda'r enghraifft hon. 1287 01:00:50,140 --> 01:00:52,640 Gallwch chyfrif i maes hyn pethau ar eich pen eich hun. 1288 01:00:52,640 --> 01:00:55,740 Ond unwaith eto, gallai hyn hyd yn oed yn ymylu a ychydig tu hwnt i'r hyn sydd angen i chi ei wybod am 1289 01:00:55,740 --> 01:00:58,000 cwmpas y canol tymor-- 1290 01:00:58,000 --> 01:00:59,070 neu y cwis hwn, yn hytrach. 1291 01:00:59,070 --> 01:01:00,270 Mae'n ddrwg gennym. 1292 01:01:00,270 --> 01:01:03,770 >> Rydym yn mynd i symud ymlaen, gan fy mod byddai yn hoffi i wneud un broblem codio 1293 01:01:03,770 --> 01:01:05,100 cyn amser ar ben. 1294 01:01:05,100 --> 01:01:09,340 Ac rydym yn mynd i cod yr hyn yr wyf yn meddwl yw'r mwyaf cymhellol o'r rhain 1295 01:01:09,340 --> 01:01:11,020 enghreifftiau, atoi. 1296 01:01:11,020 --> 01:01:14,520 Felly, roedd hwn yn gwestiwn ar cwis ddwy flynedd yn ôl. 1297 01:01:14,520 --> 01:01:17,810 Ac yr wyf wedi ei ar y bwrdd yma. 1298 01:01:17,810 --> 01:01:20,680 >> Gofynnwyd i bobl ar y cwis - 1299 01:01:20,680 --> 01:01:23,640 eu bod yn cael ychydig yn fwy tesxt yn y cwestiwn, ond yr wyf yn dileu y 1300 01:01:23,640 --> 01:01:26,640 testun oherwydd ei fod yn ddiangen at ein dibenion yn awr. 1301 01:01:26,640 --> 01:01:29,180 Yr oedd yn union ychydig o gefndir ar yr hyn y atoi wnaeth. 1302 01:01:29,180 --> 01:01:31,425 Ond i chi i gyd yn gwybod ac yn dda iawn gyfarwydd â atoi. 1303 01:01:31,425 --> 01:01:35,620 >> Rwy'n awgrymu i chi cod hwn ar ddalen o bapur. 1304 01:01:35,620 --> 01:01:39,310 Rwyf hefyd yn awgrymu eich bod yn defnyddio'r strategaeth ein bod wedi mynd dros 1305 01:01:39,310 --> 01:01:41,040 llawer yn ein hadran. 1306 01:01:41,040 --> 01:01:44,130 Yn gyntaf, gwnewch yn siŵr eich bod yn deall pa atoi yn ei wneud. 1307 01:01:44,130 --> 01:01:47,580 Tynnwch lun neu yn dod i fyny gyda rhai delwedd meddwl ohono yn eich pen. 1308 01:01:47,580 --> 01:01:51,120 Nesaf, ysgrifennwch pseudocode ar gyfer hyn. 1309 01:01:51,120 --> 01:01:53,120 Ar y cwis, os bydd yr holl ydych yn ei gael yw pseudocode, o leiaf yr ydych 1310 01:01:53,120 --> 01:01:54,550 roi rhywbeth i lawr. 1311 01:01:54,550 --> 01:02:00,070 Ac yna map y pseudocode ar C. Os oes gennych siec yn eich 1312 01:02:00,070 --> 01:02:03,760 pseudocode, fel gadarnhau a oes rhywbeth yw 1, sy'n mapio ar un os 1313 01:02:03,760 --> 01:02:05,750 cyflwr ac yn y blaen. 1314 01:02:05,750 --> 01:02:07,850 Ac yn olaf, codio'r rhaglen yn C. 1315 01:02:07,850 --> 01:02:15,000 >> Felly, mynd yn ôl i atoi a chymryd pum munud i roi cod hwn ar ddalen o 1316 01:02:15,000 --> 01:02:19,480 papur, sydd yn ôl pob tebyg am y faint o amser y byddech yn ymgymryd â 1317 01:02:19,480 --> 01:02:21,260 cwis i atoi cod. 1318 01:02:21,260 --> 01:02:27,060 Pump i 15 munud, bum i 12, pump i 10 munud, yn ymwneud â faint o 1319 01:02:27,060 --> 01:02:30,150 amser y byddech yn ei dreulio ar y cwestiwn yn y cwis. 1320 01:02:30,150 --> 01:02:31,670 Felly, yn cymryd pum munud yn awr, os gwelwch yn dda. 1321 01:02:31,670 --> 01:02:35,957 Ac os oes gennych unrhyw gwestiynau, codi eich llaw a byddaf yn dod o gwmpas. 1322 01:02:35,957 --> 01:06:39,570 1323 01:06:39,570 --> 01:06:41,066 >> [SGYRSIAU OCHR] 1324 01:06:41,066 --> 01:08:35,279 1325 01:08:35,279 --> 01:08:37,580 >> JASON Hirschhorn: OK, felly a oedd yn bum munud. 1326 01:08:37,580 --> 01:08:39,880 Dyna oedd yn ôl pob tebyg am faint o amser y byddech yn ei wario ar hynny ar gwis, 1327 01:08:39,880 --> 01:08:42,120 efallai ben isaf y cyfnod hwnnw. 1328 01:08:42,120 --> 01:08:44,010 Byddwn yn ailadrodd mewn tipyn. 1329 01:08:44,010 --> 01:08:45,740 Gadewch inni ddechrau codio hyn. 1330 01:08:45,740 --> 01:08:49,479 Ac os nad ydym yn cael yr holl ffordd drwyddo, yr atebion i hyn ac mae hyn yn 1331 01:08:49,479 --> 01:08:54,189 Cwestiwn cwis ar gael, unwaith eto, Fall 2011 yw pan ofynnir y cwestiwn hwn 1332 01:08:54,189 --> 01:08:54,913 ymddangos ar y cwis. 1333 01:08:54,913 --> 01:08:57,830 >> Ac roedd yn werth wyth pwynt ar y cwis hynny. 1334 01:08:57,830 --> 01:09:01,140 Wyth pwynt ar y pen uchaf y faint o bwyntiau rhywbeth yn werth. 1335 01:09:01,140 --> 01:09:04,790 Rhan fwyaf o gwestiynau yn yr ystod o 1-6 o bwyntiau. 1336 01:09:04,790 --> 01:09:08,500 Felly, mae hyn yn fwy o her cwestiwn, yn sicr. 1337 01:09:08,500 --> 01:09:09,750 A all unrhyw un mynd i mi ddechrau? 1338 01:09:09,750 --> 01:09:13,260 1339 01:09:13,260 --> 01:09:15,380 >> Yn gyffredinol, yr hyn rydym yn mynd i am ei wneud â'r hyn 1340 01:09:15,380 --> 01:09:17,550 gweithredu atoi, yn rhesymegol? 1341 01:09:17,550 --> 01:09:19,569 Beth ydym ni eisiau ei wneud? 1342 01:09:19,569 --> 01:09:22,279 Felly, rydym yn mynd i ysgrifennu rhai pseudocode. 1343 01:09:22,279 --> 01:09:24,090 >> MYFYRIWR: Trosi cymeriadau i gyfanrifau. 1344 01:09:24,090 --> 01:09:26,700 >> JASON Hirschhorn: Trosi cymeriadau i gyfanrifau. 1345 01:09:26,700 --> 01:09:27,479 OK. 1346 01:09:27,479 --> 01:09:30,870 Felly, faint o gymeriadau ydym ni mynd i angen i fynd drwy? 1347 01:09:30,870 --> 01:09:32,295 >> MYFYRIWR: Mae pob un ohonynt. 1348 01:09:32,295 --> 01:09:34,100 >> MYFYRIWR: Mae'r holl cymeriadau yn y llinyn. 1349 01:09:34,100 --> 01:09:35,540 >> JASON Hirschhorn: Mae pob un o'r gymeriadau yn y llinyn. 1350 01:09:35,540 --> 01:09:42,180 Felly, os ydym am fynd drwy bob cymeriad mewn llinyn, beth yw beth 1351 01:09:42,180 --> 01:09:44,560 yn C rydym wedi gweld sydd wedi caniatáu i ni fynd drwy bob 1352 01:09:44,560 --> 01:09:45,939 cymeriad mewn llinyn? 1353 01:09:45,939 --> 01:09:46,819 >> MYFYRWYR: A am ddolen. 1354 01:09:46,819 --> 01:09:48,069 >> JASON Hirschhorn: A am ddolen. 1355 01:09:48,069 --> 01:09:52,020 1356 01:09:52,020 --> 01:09:55,330 Felly, rydym yn mynd i ddolen trwy pob cymeriad yn s. 1357 01:09:55,330 --> 01:10:00,940 >> Yna, beth ydym yn mynd i eisiau i wneud pan fyddwn yn cael cymeriad penodol? 1358 01:10:00,940 --> 01:10:02,480 Dweud ein bod yn cael pasio 90. 1359 01:10:02,480 --> 01:10:03,460 Rydym yn cael y 9. 1360 01:10:03,460 --> 01:10:04,240 Mae'n gymeriad. 1361 01:10:04,240 --> 01:10:07,440 Beth ydym ni eisiau ei wneud gyda y cymeriad 9? 1362 01:10:07,440 --> 01:10:10,082 >> MYFYRIWR: Tynnwch oddi gymeriad 0? 1363 01:10:10,082 --> 01:10:11,860 >> MYFYRIWR: Add 0? 1364 01:10:11,860 --> 01:10:13,350 >> JASON Hirschhorn: Tynnwch rhag gymeriad 0? 1365 01:10:13,350 --> 01:10:13,800 >> MYFYRIWR: Yeah. 1366 01:10:13,800 --> 01:10:15,573 >> JASON Hirschhorn: Pam ydych am wneud hynny? 1367 01:10:15,573 --> 01:10:16,560 >> MYFYRIWR: [Anghlywadwy] 1368 01:10:16,560 --> 01:10:17,010 gwerth. 1369 01:10:17,010 --> 01:10:18,380 Mae ei gwerth int. 1370 01:10:18,380 --> 01:10:21,580 >> JASON Hirschhorn: Iawn, felly rydym yn cymryd y cymeriad 9, tynnu oddi 1371 01:10:21,580 --> 01:10:25,820 cymeriad 0 i gael gwirioneddol cyfanrif 9. 1372 01:10:25,820 --> 01:10:27,070 Melys. 1373 01:10:27,070 --> 01:10:31,255 1374 01:10:31,255 --> 01:10:37,000 A sut ydych chi'n gwybod bod cymeriad 9 minws 0 cymeriad yw 9? 1375 01:10:37,000 --> 01:10:39,222 Pa siart wnaethoch chi edrych ar? 1376 01:10:39,222 --> 01:10:43,130 >> MYFYRIWR: Mae rhesymegol naw lleoedd rhwng 9 a 0. 1377 01:10:43,130 --> 01:10:44,620 Neu gallech edrych ar y tabl ASCII. 1378 01:10:44,620 --> 01:10:45,120 >> JASON Hirschhorn: Tabl ASCII. 1379 01:10:45,120 --> 01:10:46,490 Ond ie, rydych yn gywir hefyd. 1380 01:10:46,490 --> 01:10:47,780 Felly, rydym yn tynnu 0. 1381 01:10:47,780 --> 01:10:49,010 Felly, yn awr mae gennym y cyfanrif 9. 1382 01:10:49,010 --> 01:10:49,970 A beth ydym ni eisiau ei wneud â hynny? 1383 01:10:49,970 --> 01:10:54,970 Os oes gennym 90, 'i' y cyfanrif cyntaf yr ydym wedi, yr hyn yr ydym am ei wneud? 1384 01:10:54,970 --> 01:10:58,180 >> MYFYRIWR: Byddwn yn rhoi mewn cyfanrif dros dro amrywiaeth, yna gwneud mathemateg iddo 1385 01:10:58,180 --> 01:11:02,088 ddiweddarach i wneud yn i mewn i ben. 1386 01:11:02,088 --> 01:11:03,020 >> JASON Hirschhorn: OK. 1387 01:11:03,020 --> 01:11:06,990 >> MYFYRIWR: Gallwch ddechrau ar ddiwedd y yr amrywiaeth ac yna symud ymlaen fel 1388 01:11:06,990 --> 01:11:10,350 bod pob tro y byddwch yn symud ymlaen, chi luosi gyda 10. 1389 01:11:10,350 --> 01:11:10,830 >> JASON Hirschhorn: OK. 1390 01:11:10,830 --> 01:11:12,250 Mae hynny'n swnio fel 'n bert syniad cymhellol. 1391 01:11:12,250 --> 01:11:16,040 Gallwn ddechrau ar ddiwedd ein amrywiaeth, a gallwn ddefnyddio strleng. 1392 01:11:16,040 --> 01:11:17,030 Gallwn ddefnyddio strleng yma. 1393 01:11:17,030 --> 01:11:18,870 Byddwn yn cael hyd ein llinyn. 1394 01:11:18,870 --> 01:11:20,100 Rydym yn dechrau ar y diwedd. 1395 01:11:20,100 --> 01:11:29,170 Ac + yr un cyntaf, rydym yn unig gymryd y cyfanrif, ac efallai rydym yn creu fel 1396 01:11:29,170 --> 01:11:32,270 top amrywiol gyfanrif newydd hyd lle rydym yn storio popeth. 1397 01:11:32,270 --> 01:11:37,340 Felly rydym yn ddolen trwy bob torgoch mewn oddi wrth yn ôl i'r blaen, rydym yn tynnu 0, ac 1398 01:11:37,340 --> 01:11:42,790 yna rydym yn mynd ag ef, ac yn dibynnu ar lle mae, yr ydym luosi 1399 01:11:42,790 --> 01:11:45,860 gan bŵer o 10. 1400 01:11:45,860 --> 01:11:50,644 Oherwydd bod yr un cyntaf, beth ydyn ni lluoswch y cymeriad rightmost gan? 1401 01:11:50,644 --> 01:11:51,440 >> MYFYRIWR: 10 i 0. 1402 01:11:51,440 --> 01:11:53,170 >> JASON Hirschhorn: 10 i 0. 1403 01:11:53,170 --> 01:11:56,010 Beth ydym yn lluosi yr ail cymeriad rightmost gan? 1404 01:11:56,010 --> 01:11:57,450 >> MYFYRIWR: [Anghlywadwy]. 1405 01:11:57,450 --> 01:11:57,960 >> JASON Hirschhorn: Beth? 1406 01:11:57,960 --> 01:11:59,150 >> MYFYRIWR: 10 i 1. 1407 01:11:59,150 --> 01:12:00,420 >> JASON Hirschhorn: 10 i 1. 1408 01:12:00,420 --> 01:12:03,754 Mae cymeriad trydydd-rightmost? 1409 01:12:03,754 --> 01:12:04,580 >> MYFYRIWR: 10 i 2. 1410 01:12:04,580 --> 01:12:05,350 >> JASON Hirschhorn: 10 i 2. 1411 01:12:05,350 --> 01:12:07,200 >> MYFYRIWR: Mae'n ddrwg gennyf, nid wyf yn deall yr hyn yr ydym yn ei wneud yma. 1412 01:12:07,200 --> 01:12:08,640 >> JASON Hirschhorn: OK, gadewch i ni fynd yn ôl, felly. 1413 01:12:08,640 --> 01:12:12,500 Felly, rydym yn mynd i gael pasio mewn llinyn. 1414 01:12:12,500 --> 01:12:14,470 Oherwydd ein bod yn ysgrifennu atoi. 1415 01:12:14,470 --> 01:12:15,260 Felly, rydym yn cael eu pasio yn y llinyn. 1416 01:12:15,260 --> 01:12:17,640 Dweud ein bod yn cael pasio yn y llinyn 90. 1417 01:12:17,640 --> 01:12:19,930 >> Y peth cyntaf i ni yn mynd i wneud yn cael ei osod newidyn cyfanrif newydd yr ydym yn 1418 01:12:19,930 --> 01:12:22,150 jyst yn mynd i greu fel ein cyfanrif newydd. 1419 01:12:22,150 --> 01:12:24,630 Dyna beth rydym yn mynd i ddychwelyd ar y diwedd. 1420 01:12:24,630 --> 01:12:30,110 Mae angen i ni fynd drwy bob cymeriad yn y llinyn oherwydd ein bod wedi pennu 1421 01:12:30,110 --> 01:12:34,430 bod angen i ni gyffwrdd pob un a yna ychwanegu at ein cyfanrif newydd. 1422 01:12:34,430 --> 01:12:36,330 >> Ond ni allwn ychwanegu fel rhif. 1423 01:12:36,330 --> 01:12:38,270 Ni allwn yn unig yn cymryd 9 a ychwanegu 9 at ein cyfanrif. 1424 01:12:38,270 --> 01:12:40,560 Mae'n dibynnu ar yr hyn y lle y mae yn y llinyn. 1425 01:12:40,560 --> 01:12:42,960 Rydym yn mynd i angen i luosi iddo gan pŵer o 10. 1426 01:12:42,960 --> 01:12:45,580 Oherwydd dyna sut roedd 10 yn gweithio sylfaenol. 1427 01:12:45,580 --> 01:12:49,050 >> Felly, rydym yn mynd i gael y gwir cymeriad, neu'r cyfanrif gwirioneddol 1428 01:12:49,050 --> 01:12:53,860 rif, drwy dynnu cymeriad 0 o gymeriad 9 fel y gwnaethom gyda 1429 01:12:53,860 --> 01:12:57,560 tynnu cyfalaf cymeriad A o beth bynnag cymeriad a oedd gennym yn un o 1430 01:12:57,560 --> 01:12:58,120 problemau hynny. 1431 01:12:58,120 --> 01:13:04,190 Felly, byddwn yn mewn gwirionedd yn cael nifer o 0 i 9 arbed fel nifer go iawn, ac rydym yn annhymerus ' 1432 01:13:04,190 --> 01:13:07,590 ei luosi pŵer o 10 yn dibynnu ar ble rydym yn y llinyn. 1433 01:13:07,590 --> 01:13:19,430 1434 01:13:19,430 --> 01:13:22,575 Ac yna rydym yn mynd i ychwanegu yn ôl i mewn i'n amrywiol cyfanrif newydd. 1435 01:13:22,575 --> 01:13:32,840 1436 01:13:32,840 --> 01:13:37,890 >> Felly, beth fyddai hyn yn edrych fel y byddai yn cael eu - byddwn yn tynnu dros yma. 1437 01:13:37,890 --> 01:13:40,086 Os byddwn yn cael eu pasio yn y llinyn 90 - 1438 01:13:40,086 --> 01:13:41,336 >> MYFYRIWR: [Anghlywadwy]. 1439 01:13:41,336 --> 01:13:43,190 1440 01:13:43,190 --> 01:13:45,540 >> JASON Hirschhorn: Ond atoi cymryd llinyn. 1441 01:13:45,540 --> 01:13:46,350 Felly, rydym yn mynd i fynd drwy y daliad. 1442 01:13:46,350 --> 01:13:49,900 Byddwn yn cael ei drosglwyddo yn 90. 1443 01:13:49,900 --> 01:13:51,540 Rydym yn mynd o gefn i'r blaen. 1444 01:13:51,540 --> 01:13:53,920 Rydym yn cymryd y 0. 1445 01:13:53,920 --> 01:13:55,080 >> MYFYRIWR: Mae'n ddrwg gen i. 1446 01:13:55,080 --> 01:13:55,880 Efallai mae hyn yn dwp. 1447 01:13:55,880 --> 01:13:59,440 Os ydym yn cael eu pasio yn llinyn, pam yn 90 yr hyn yr ydym yn 1448 01:13:59,440 --> 01:14:00,260 cael ei basio i mewn? 1449 01:14:00,260 --> 01:14:03,160 Gan fod 90 yn gyfanrif. 1450 01:14:03,160 --> 01:14:06,820 >> JASON Hirschhorn: Gan fod atoi yn cymryd llinyn ac yn troi i mewn i'r cyfanrif 1451 01:14:06,820 --> 01:14:08,320 cynrychiolaeth o'r llinyn. 1452 01:14:08,320 --> 01:14:13,650 Ond nid y llinyn 90 yw'r gyfanrif 90 neu nifer 90. 1453 01:14:13,650 --> 01:14:17,920 Mae'r llinyn 90 yn amrywiaeth o ddau, neu tri chymeriad, yn hytrach, y 9 1454 01:14:17,920 --> 01:14:22,740 cymeriad, y 0 cymeriad, a y slaes 0 cymeriad. 1455 01:14:22,740 --> 01:14:26,260 >> Ac rydym yn ysgrifennu atoi oherwydd, er enghraifft, pan fyddwch yn cymryd y gorchymyn 1456 01:14:26,260 --> 01:14:30,230 ymresymiad llinell, ac mae'n cadw mewn argv, mae'n arbed fel llinyn. 1457 01:14:30,230 --> 01:14:32,940 Ond os ydych am drin fel nifer, angen i chi ei drosi i 1458 01:14:32,940 --> 01:14:34,700 cyfanrif gwirioneddol. 1459 01:14:34,700 --> 01:14:37,210 Pa gwnaethom un o'n setiau problem. 1460 01:14:37,210 --> 01:14:38,800 Pa gwnaethom yn nifer ein setiau problem. 1461 01:14:38,800 --> 01:14:41,690 Mae pawb a gymerodd yn gyfanrif fel ymresymiad llinell orchymyn. 1462 01:14:41,690 --> 01:14:46,490 Felly dyna pam mae ein swyddogaeth atoi cymryd llinyn. 1463 01:14:46,490 --> 01:14:51,910 >> Felly eto, yn ein enghraifft yma, rydym yn yn mynd i gymryd y cafodd yr un olaf. 1464 01:14:51,910 --> 01:14:55,050 Rydym yn mynd i dynnu cymeriad 0 ohono, gan fod y cymeriadau 0 1465 01:14:55,050 --> 01:14:58,810 dynnu gan y cymeriad 0 rhoi i chi y nifer gwirioneddol 0, yn ôl 1466 01:14:58,810 --> 01:15:00,950 y math ASCII a wnawn. 1467 01:15:00,950 --> 01:15:04,870 >> Gan fod cymeriadau yn cael eu cynrychioli fel wahanol na'u gwir - y 1468 01:15:04,870 --> 01:15:08,830 cymeriad yn, er enghraifft, llythrennau bach a yw 97. 1469 01:15:08,830 --> 01:15:10,260 Dyw hi ddim - wps! 1470 01:15:10,260 --> 01:15:13,290 Dyw hi ddim yn beth bynnag byddech yn ei ddisgwyl iddo fod, 0, er enghraifft. 1471 01:15:13,290 --> 01:15:16,200 Felly, rhaid i chi dynnu y gymeriad i gael 0. 1472 01:15:16,200 --> 01:15:18,950 >> Felly, rydym yn mynd i wneud hynny yma i gael y nifer gwirioneddol. 1473 01:15:18,950 --> 01:15:22,560 Ac yna rydym yn mynd i luosi iddo gan pŵer o 10 yn dibynnu ar ble y mae'n 1474 01:15:22,560 --> 01:15:27,030 yn y llinyn, ac yna cymryd y ac yn ychwanegu at ein gwerth lle 1475 01:15:27,030 --> 01:15:32,520 amrywiol er mwyn i ni ddod o hyd i ein cyfanrif newydd terfynol. 1476 01:15:32,520 --> 01:15:35,080 A yw hynny'n gwneud synnwyr i bawb? 1477 01:15:35,080 --> 01:15:37,730 >> Felly, nid ydym yn mynd i roi cod hwn ar hyn o bryd, oherwydd ein bod yn 1478 01:15:37,730 --> 01:15:38,830 mynd yn brin o amser. 1479 01:15:38,830 --> 01:15:40,860 Rwy'n ymddiheuro am yr amseriad hynny. 1480 01:15:40,860 --> 01:15:44,620 Ond mae hyn yn beth, gobeithio, a fyddech yn yn gallu ei wneud ar y cwis - ar 1481 01:15:44,620 --> 01:15:47,710 iawn o leiaf, yn cael pseudocode hwn ysgrifennu allan. 1482 01:15:47,710 --> 01:15:50,840 >> Ac yna, pe baem yn ysgrifennu pseudocode, mewn gwirionedd, gallem wneud hyn 1483 01:15:50,840 --> 01:15:51,490 yn weddol gyflym. 1484 01:15:51,490 --> 01:15:55,230 Mae pob llinell o sylwadau a rydym yn ysgrifennu yma yn cyfateb i tua 1485 01:15:55,230 --> 01:15:56,970 un llinell o god C. 1486 01:15:56,970 --> 01:16:01,780 Datgan newidyn, ysgrifennu newydd dolen, mae rhai tynnu, mae rhai 1487 01:16:01,780 --> 01:16:07,070 lluosi, ac mae rhai aseiniad. 1488 01:16:07,070 --> 01:16:09,020 Byddem yn ôl pob tebyg hefyd yn awyddus i ysgrifennu llinell dychwelyd. 1489 01:16:09,020 --> 01:16:12,040 Efallai y byddwn hefyd eisiau rhoi rhai gwiriadau i mewn yma. 1490 01:16:12,040 --> 01:16:12,655 Yeah. 1491 01:16:12,655 --> 01:16:15,720 >> MYFYRIWR: Felly, gallwn drin s fel y llinyn go iawn? 1492 01:16:15,720 --> 01:16:18,730 Gan fy mod yn gwybod ei fod yn dim ond cyfeiriad. 1493 01:16:18,730 --> 01:16:22,090 Fel, sut y byddech yn cael hyd y llinyn yn cael ei basio drwy? 1494 01:16:22,090 --> 01:16:25,310 >> JASON Hirschhorn: Felly sut y gwnaeth hyd y llinyn? 1495 01:16:25,310 --> 01:16:25,830 Strlen. 1496 01:16:25,830 --> 01:16:26,660 >> MYFYRIWR: strlen, yeah. 1497 01:16:26,660 --> 01:16:30,550 Ond gallwch chi roi s fel y ddadl o blaid hynny? 1498 01:16:30,550 --> 01:16:34,620 >> JASON Hirschhorn: Felly strlen cymryd seren torgoch. 1499 01:16:34,620 --> 01:16:38,090 Ac mae'n dilyn y seren torgoch, ac mae'n yn cadw cyfrif hyd nes ei fod yn cael i 1500 01:16:38,090 --> 01:16:41,865 slaes 0. Roedd strlen mewn gwirionedd yn un o'r rhaglenni eraill yr ydym yn 1501 01:16:41,865 --> 01:16:42,850 yn mynd i cod. 1502 01:16:42,850 --> 01:16:44,560 Dyna un da arall i cod. 1503 01:16:44,560 --> 01:16:47,270 Dyna un yn ychydig yn haws, oherwydd os ydych yn mynd i feddwl am hynny 1504 01:16:47,270 --> 01:16:47,830 gysyniadol - 1505 01:16:47,830 --> 01:16:51,620 Wyf newydd ei ddweud yn uchel - strlen yn dilyn pwyntydd ac yn cadw mynd a 1506 01:16:51,620 --> 01:16:54,210 cyfrif a chadw trac nes byddwch yn cyrraedd slaes 0. 1507 01:16:54,210 --> 01:16:56,530 >> MYFYRIWR: Iawn, got it. 1508 01:16:56,530 --> 01:17:00,200 >> JASON Hirschhorn: Felly gorau o lwc ar cwis 0 yfory. 1509 01:17:00,200 --> 01:17:03,170 Os oes gennych unrhyw gwestiynau, 'n annhymerus' fod y tu allan ar ôl hyn. 1510 01:17:03,170 --> 01:17:05,610 Teimlwch yn rhydd i e-bost ataf. 1511 01:17:05,610 --> 01:17:08,480 Estyn allan at eich TF hun os ydych yn Nid yn fy adran, neu gael fy 1512 01:17:08,480 --> 01:17:10,005 e-bost os ydych am iddo. 1513 01:17:10,005 --> 01:17:13,140 >> Os ydych am i freak allan a dim ond yn anfon m e-bost, e-bost freakout, 'n annhymerus' 1514 01:17:13,140 --> 01:17:16,710 anfon yn ôl, fel, wyneb hapus, neu, fel, yn jôc neu rywbeth. 1515 01:17:16,710 --> 01:17:18,190 Felly, mae croeso i chi wneud hynny hefyd. 1516 01:17:18,190 --> 01:17:20,750 Pob lwc eto, ac 'n annhymerus' gweld chi i gyd yr wythnos nesaf. 1517 01:17:20,750 --> 01:17:23,435