>> JASON Hirschhorn: Croeso i A5, bawb.
Mae gennym wythnos cyffrous o'n blaenau, yn bennaf oherwydd bod cymaint o newydd
wynebu yn yr ystafell hon.
Mae'n wych.
Mae llawer ohonoch yma drwy ddamwain, sydd hyd yn oed yn well.
Felly, gobeithio y byddwch yn cadw ymuno â ni.
>> Yr wythnos hon rydym yn mynd i wario y rhan fwyaf o'r adran
paratoi ar gyfer y cwis.
Felly unol â'n hagenda, rydym yn mynd i siarad ychydig am adnoddau ar gyfer y dosbarth,
ond hefyd ar gyfer y cwis, ac yna, unwaith eto, treulio y rhan fwyaf o'r siarad dosbarth
am gwestiynau.
Unwaith y byddwn yn ei wneud yn ateb eich gwestiynau, neu os yw eich cwestiynau
yn naturiol yn ein harwain at rai codio, yr wyf yn cael problemau sampl o midterms
gorffennol y byddwn cod yn byw mewn adran at ei gilydd sydd hefyd yn dod â rhai eraill
pynciau da i dalu.
>> Felly yn gyntaf, fel yr ydym wedi mynd drwy'r gyfer y ychydig wythnosau diwethaf i'ch atgoffa
guys, mae tunnell o adnoddau gael ar gyfer y cwrs.
Bydd llawer ohonynt yn hynod o ddefnyddiol i chi wrth i chi barhau i
astudio ar gyfer cwis 0, oherwydd mae'n brynhawn dydd Mawrth.
Felly yr holl ohonoch wedi bod yn astudio ar gyfer ychydig.
>> Mae nodiadau darlithoedd a ffynhonnell cod y dylech
bendant atalfa i maes.
Gwyliwch y siorts.
Edrychwch ar study.cs50.net.
Ac yna, a restrir isod, mae nifer o adnoddau eraill.
>> Unwaith eto, cwis 0 yfory am 1 o'r gloch.
Os nad ydych wedi gwneud hynny eisoes, gwiriwch nodi'r Amdanom Cwis 0 dogfen ar y
hafan cwrs at chyfrif i maes lle rydych yn cymryd y cwis.
Mae'r cwis yn dechrau am 01:10 ac yn dod i ben 70 munud yn ddiweddarach.
Felly, os ydych yn dangos i fyny ar ôl 01:10, rydych yn mynd i gael bod llawer llai o cofnodion
na 70 i gymryd y cwis.
Felly, gwnewch yn siŵr eich bod yno mewn pryd.
Os ydych yn fyfyriwr estyniad neu wedi rhai ystyriaethau profi eraill, mae'n
Efallai na fydd yn 01:00 yfory.
Ond unwaith eto, edrychwch ar y Cwis Amdanom ni 0 dogfennu i wneud yn siŵr eich bod yn gwybod pryd
eich bod yn cymryd y cwis.
Ysgrifennais 75 munud hyd yma.
Yr wyf yn credu bod hynny'n iawn, nid 70.
>> Mae'n cynnwys yr holl ddeunydd o wythnos 0 i ddarlith yr wythnos diwethaf ar ddydd Mercher.
Ac eto, am y cwis hwn, fesul y ddogfen, byddwch yn cael un dwy-ochrog ac 8
1/2 yn ôl 11 ddalen o bapur eich bod yn cael i'w defnyddio fel nodiadau yn ystod y cwis.
Mae llawer o bobl, os nad y rhan fwyaf o bobl, mae gan fod y ffordd fwyaf defnyddiol sengl
i astudio ar gyfer y cwis yw gwneud taflen astudio,
un-sider, eu hunain.
Felly, yn edrych ar rai yn y gorffennol os ydych chi wedi gweld rhai yn y gorffennol.
Estyn allan at ffrindiau i weld beth eu bod yn rhoi ar eu rhai hwy.
>> Ond ymarferol i lawr, y ffordd orau y gallwch astudiaeth yw mynd drwy bopeth a
didoli i lawr i beth ddylai neu a ddylai Nid yw yn perthyn ar y ddalen o
papur, oherwydd bod yn unig iawn ffordd ddefnyddiol i chi i wneud yn siŵr
ydych yn mynd drwy bopeth a gael rhywfaint o gyfarwydd ag ef.
Rhan fwyaf o bobl, rydym yn dod o hyd, er eu bod yn wedi y ddalen o bapur eistedd i'r dde
nesaf iddynt ar y cwis, peidiwch â throi iddo, oherwydd, unwaith eto, mae hynny'n iawn
broses o fynd drwy'r wybodaeth wedi eu helpu i ddysgu.
>> A oes unrhyw un gennych unrhyw gwestiynau am cwis 0?
Mae gan bawb -
Dydw i ddim yn mynd i wneud godi dwylo.
Peidiwch byth â meddwl.
Yr oeddwn yn mynd i ofyn pwy dechrau astudio.
Ond nid oes arnaf eisiau i wneud i chi pob Nid yw codi eich dwylo.
Felly, fel y dywedais - ie, Avi, mynd yn ei flaen.
>> AVI: Beth fyddai yn beth defnyddiol i'w roi ar y un-beiriant galw?
>> MYFYRIWR: Dyna i fyny i chi.
>> JASON Hirschhorn: Byddwch yn cael i ddefnyddio eich barn.
Pethau defnyddiol i'w roi ar y un-peiriant galw, os ydych yn drysu am y O mawr
Rhedeg o wahanol fathau o chwiliadau a math, rhoi hynny ar yno mewn
siart dandi 'n hylaw.
Drwy hynny, os ydych yn gofyn hynny ar y cwis, nid oes angen i chi geisio ffigur
allan neu reswm drwy'r Rhedeg.
Alli jyst gopïo i lawr.
Os ydych yn edrych ar cwisiau yn y gorffennol, mae llawer o adegau, mae wedi rhedeg cwestiynau amser.
Felly byddai hynny'n enghraifft o dda beth i'w rhoi ar eich un-alwr.
>> Bethau da eraill i roi ar, os ydych yn drysu ynghylch sut i ddatgan
swyddogaeth neu beth yw'r gwahanol rannau o y datganiad swyddogaeth yn, ysgrifennwch
hynny ar yno, fersiwn generig ac yna efallai enghraifft.
Os ydych yn ddryslyd am awgrymiadau, diagram o sut mae awgrymiadau gwaith yn
yn ôl pob tebyg yn ddefnyddiol iawn.
Os ydych yn ddryslyd am recursion, a samplu swyddogaeth ailadroddus ar yno
gallai hefyd yn profi i fod yn ddefnyddiol iawn.
A yw hynny'n rhoi rhai syniadau i chi?
>> AVI: Mae angen i chi ddeall y proses lunio'r gyfan, fel
sut bod yr holl waith?
>> JASON Hirschhorn: Popeth sydd wedi cael ei gorchuddio gallai
arddangos i fyny ar y cwis.
Cwestiynau -
ond unwaith eto, bydd rhai pethau'n pwyso'n drwm nag eraill.
Mae rhai pethau wedi dod i fyny eto ac eto yn y dosbarth, yn
ddarlith, ac adran.
Nid yw pethau eraill wedi yn dod i fyny yn aml.
>> Rydym wedi siarad llawer am # cynnwys ac yn -L rhywbeth a beth hynny'n ei olygu yn
y broses llunio.
Rydym wedi siarad llawer am GDB, haenen, y rhai baneri gwahanol a ddefnyddiwn pan
yn llunio rhywbeth, a pha make15, er enghraifft, mewn gwirionedd
yn golygu ac yn wir yn ei wneud.
Nid ydym wedi siarad cymaint am pob un cam yn
y broses llunio.
Rydym wedi dal i siarad am y peth.
Felly, mae'n dal i fod yn rhywbeth yr ydych Dylai fod yn gyfarwydd â hwy.
Ond unwaith eto, nid ydym yn mynd i fod -
pethau sy'n dod i fyny yn fwy aml yn y dosbarth yn fwy tebygol o ddod i fyny yn fwy
aml a bod yn fwy trwm pwysoli ar y cwis.
>> Cool.
Unrhyw gwestiynau eraill am cwis 0?
>> Iawn, felly yr wyf yn rhoi rhestr o pynciau ar y bwrdd.
Es i drwy y maes llafur.
Es trwy'r adran adolygu o neithiwr a sleidiau hynny i ddod o hyd
gyda rhestr anghyflawn o bynciau ein bod wedi cynnwys hyd yn hyn yn CS50
a phethau a allai ymddangos ar y cwis.
Felly, nid wyf ddim yn mynd i fynd drwy bob un o'r rhain.
Byddai hynny'n cymryd llawer mwy o amser nag sydd gennym yn awr.
Ond yr wyf yn rhoi hyn i fyny yma i gobeithio loncian eich cof fel at bethau a all
neu efallai na fydd mor gyfarwydd gyda chi.
>> Ac Byddwn wrth fy modd i dreulio y rhan fwyaf o'r adran ateb eich cwestiynau am
pynciau hyn, pynciau sy'n yn cael eu cynnwys yma.
Gallwn ysgrifennu cod ffug.
Gallwn ysgrifennu cod go iawn er mwyn sicrhau eich bod chi -
Yr wyf yn gallu ateb eich cwestiwn ac yn helpu pawb yn deall hanfod
llawer o'r pynciau hyn, felly byddwch yn teimlo'n barod ac yn gyfforddus yn mynd i mewn i
y yfory cwis.
Felly darllenwch dros y rhestr.
Yr ydych, gobeithio, wedi dod i'r adran gyda rhai cwestiynau hefyd.
Pan fyddwch yn barod, codwch eich llaw a byddwn yn ddechrau arni.
>> Cadwch mewn cof, mae'r gwestiynau sydd gennych, nid oes unrhyw gwestiynau dwp.
Rydym wedi clywed bod llawer.
Ac mae'r gwestiynau sydd gennych, yr wyf yn fodlon i bet, mae llawer o bobl eraill yn
eistedd yma a gwylio ar-lein yn ogystal.
Felly, gallwch chi yn unig yn helpu pobl drwy ofyn cwestiynau.
Marcus.
>> MARCUS: Rhwng y pentwr a'r domen, a oes cyn-ddyrannu
canran o gof sy'n cael ei ddiffinio fel hyn ar gyfer y stac neu ar gyfer y domen?
Neu sut mae gwaith hwnnw, yn union?
>> JASON Hirschhorn: Cwestiwn Fawr.
Rydw i'n mynd i gefnogi olrhain ychydig.
A yw pawb -
os gwelwch yn dda fod yn onest yma.
Yr wyf yn gwybod fy mod yn gofyn i chi godi eich llaw o flaen eich cyfoedion.
Ond a oes pobl sy'n teimlo anghyfforddus gyda'r pentwr a domen
a hoffwn i fynd dros y a beth hynny'n ei olygu?
Codwch eich llaw os -
OK.
Diolch yn fawr.
Felly, rydym yn mynd i fynd dros y pentwr a y domen yn gyflym iawn ac yna
symud i ateb eich cwestiwn.
>> Felly, os byddwn yn tynnu allan blwch i gynrychioli cof ar eich cyfrifiadur, beth yw rhai
pethau sy'n mynd yn y blwch hwn?
Main.
Mae prif swyddogaeth.
Ble mae prif mynd?
>> MYFYRIWR: [Anghlywadwy].
>> JASON Hirschhorn: Felly ni chi helpu rhoi prif lawr yma.
Beth arall yn mynd yn y blwch hwn?
>> MYFYRIWR: Mae swyddogaethau eich bod yn galw.
>> JASON Hirschhorn: Y swyddogaethau ein bod yn galw.
A ble maen nhw'n mynd?
>> MYFYRIWR: Yn y pentwr.
>> JASON Hirschhorn: Maent yn yn mynd yn y pentwr.
Felly, rydym yn mynd i alw hyn beth i lawr yma y pentwr.
Ac i fyny top, mae gennym y domen.
Felly, nid cof yn blwch yn union fel hyn.
Ond mae'n mewn gwirionedd yn eithaf tebyg.
Mae'n mynd i fod yn llawer o flychau dros a throsodd, yn dibynnu ar ba mor fawr eich
cyfrifiadur yn cael neu pa mor fawr eich cof.
>> Yn y dyfyniad-unquote "gwaelod" yn y pentwr.
Ac mae yna bethau lluosog sy'n mynd ar y pentwr.
A'r rhai yn dibynnu ar y swyddogaethau sydd gennych yn eich cod.
Rydych chi bob amser gael un swyddogaeth yn eich cod a elwir yn brif, felly mae bob amser yn
adran i lawr yma yn y simnai neilltuo i'r brif.
>> Mae'r adrannau hyn yn y pentwr yn cael eu galw'n fframiau pentwr.
Pan fyddwch yn ffonio swyddogaeth arall, yn dweud prif yn galw swyddogaeth chwiliad deuaidd,
rydym yn rhoi ffrâm arall ar y pentwr.
Yn fwy penodol, rydym yn mynd i rhoi darn o gof ar ein
cyfrifiadur i storio chwiliad deuaidd lleol newidynnau ac i redeg y deuaidd
Cod chwilio.
>> Felly, rydym yn galw chwiliad deuaidd.
Yn y darn hwn o cof, rydym yn mynd i storio ei newidynnau lleol.
Rydym yn mynd i storio ei galwadau printf.
Beth bynnag sy'n digwydd, y swyddogaeth honno yn mynd i gael eu storio iawn yno.
Chwiliad deuaidd yn mynd i weithredu.
Mae'n mynd i gwblhau gweithredu.
Beth yw'r gair yn C, sy'n arwydd o y dylai swyddogaeth
cwblhau ei weithredu?
>> MYFYRIWR: Ffurflen Dreth.
>> JASON Hirschhorn: Dychwelyd.
Felly, pryd bynnag y byddwch yn gweld datganiad dychwelyd, y swyddogaeth yn dod i ben
pan fydd yn taro hynny.
Bydd chwilio Felly deuaidd gyrraedd ei dychwelyd.
Mae'r rhan hon o'r cof yn ei hanfod yn cael ei ryddhau.
A bydd brif mynd yn ôl i'r gweithredu.
Felly bydd brif oedi lle bynnag oedd, ffoniwch chwiliad deuaidd, yn cael rhywfaint o werth dychwelyd,
a pharhau gweithredu.
Bydd y ffrâm pentwr yn mynd i ffwrdd.
>> Os byddwn yn galw swyddogaeth ailadroddus, sy'n yn swyddogaeth sy'n galw ei hun dros
a throsodd, efallai y byddwn yn ei gael - dweud ein wnaeth chwiliad deuaidd recursively.
Efallai y byddwn yn cael y fersiwn deuaidd chwilio un, chwiliad deuaidd dau, chwiliad deuaidd
tri, chwilio deuaidd pedwar, chwiliad deuaidd bump.
Ac yna y chwiliad deuaidd terfynol pum Bydd taro yr achos sylfaenol, ac mae'r pentwr
Bydd fframiau fynd yn ôl a chadw cau nes i ni fynd yn ôl i'r brif.
Gallwn fynd dros recursion mewn tipyn.
Ond mae hyn i gyd yw, os ydych yn galw swyddogaethau lluosog ar y tro,
bydd yna pentwr lluosog fframiau ar y pentwr.
>> Mae'r domen, ar y llaw arall, i fyny yma, nid ar gyfer swyddogaethau,
nid ar gyfer newidynnau lleol.
Mae ar gyfer dyrannu ddynamig newidynnau.
Felly mae'r rhain yn newidynnau y gellir eu ymgychwyn naill ai mhrif neu
swyddogaeth y prif galwadau.
Unrhyw le yn eich cod, maent yn gellir ei ymgychwyn.
Ac i ymgychwyn yn ddynamig amrywiol a ddyrannwyd.
Pa swyddogaeth yn C ydym yn defnyddio?
>> MYFYRIWR: Malloc.
>> JASON Hirschhorn: Malloc.
Ffonio malloc.
Byddwch yn cael lle o gof.
A dyna lle o gof ar y domen.
A dyna lle o gof yn aros yno hyd nes y byddwch ffoniwch am ddim.
>> Newidynnau Felly dyrannu ddeinamig yn Bydd domen yn bodoli cyhyd ag y byddwch
am iddynt bodoli, ac nid ydynt yn mynd i ffwrdd hyd nes y byddwch yn benodol
dweud wrthyn nhw am fynd i ffwrdd.
Gallwch eu greu mewn un swyddogaeth.
Pentwr swyddogaeth honno yn Bydd ffrâm yn mynd i ffwrdd.
Ond y bydd newidyn yn dal i fodoli yn y domen nes iddo gael ei rhyddhau,
o bosibl gan y swyddogaeth oedd yn galw chwiliad deuaidd neu beth bynnag.
>> Felly newidynnau domen hynny aros yno am gymaint o amser ag y dymunwch
i aros yno.
Ac maent yn cael eu rhoi yma.
Ac yna yr un nesaf yn cael ei roi yno.
Maent yn cadw cael eu llenwi i mewn, ac maent yn aros yno hyd nes y byddwch ffoniwch am ddim.
>> Ac yn ei hanfod, y domen a'r simnai, cyrraedd gwestiwn Marcus yn,
tyfu tuag at ei gilydd.
Ac os ydynt yn rhedeg i mewn i un arall, eich bod wedi Defnyddir yr holl cof yn eich
Bydd cyfrifiadur, ac yn eich rhaglen rhoi'r gorau iddi oherwydd nad oes gennych unrhyw mwy o gof
ar ôl eu defnyddio.
Yn rhyngddynt, mae phethau eraill o bosibl.
Ond ar gyfer y cwmpas y cwrs hwn, byddwch yn Nid oes angen i chi boeni am hynny.
>> Felly yr oedd yr ateb i'ch cwestiwn.
Peidiwch â phoeni am y peth.
Ond dyna oedd yr ateb hir.
Y cyfan sydd angen i chi ei wybod yw y Bydd tomen a'r pentwr -
un yn dechrau ar y gwaelod.
Y pentwr yn ei wneud.
Mae'r domen i fyny yno.
Byddant yn tyfu nes at ei gilydd.
>> Ac os ydynt yn cyffwrdd, mae hynny'n broblem.
Rydych yn rhedeg allan o gof.
Ond hefyd, yn ogystal â gwybod lle maent yn cael eu, beth yn cael ei storio yn y
stacio a domen.
Curtis.
>> CURTIS: Pan fyddant yn gwrthdaro, yw bod gorlif pentwr?
>> JASON Hirschhorn: Pan fyddant yn gwrthdaro, nid yw hynny'n gorlif pentwr.
Mae gollyngfa stac yn ardal wahanol ein bod yn gallu mynd dros os ydych yn dymuno.
OK, byddwn yn dod yn ôl at hynny mewn ychydig.
>> MYFYRIWR: Beth yw'r gair a elwir yn pan fyddant yn taro ei gilydd, mae'r
stacio a'r domen?
>> JASON Hirschhorn: Am y tro, peidiwch â phoeni am.
Dim ond yn gwybod -
Byddaf yn ateb y cwestiwn ar ôl y dosbarth.
Os ydynt yn rhedeg i mewn i bob eraill, rydych yn rhedeg allan y cof, oherwydd nad oes mwy
lle yno.
>> MYFYRIWR: Mae'n ddrwg gennyf, beth nam SEG?
>> JASON Hirschhorn: A segment Gall gwall galw am -
mae'n dibynnu pam y gelwir y nam GEY yn.
Weithiau, eich gorlif stac, mae'n annhymerus ' dweud seg fai fel y gwall.
>> MYFYRIWR: Beth am dereferencing newidyn nwl?
A yw hynny'n nam SEG?
>> JASON Hirschhorn: Dereferencing pwyntydd null -
Iawn, felly os oes gennych pwyntydd eich bod gosod cyfartal i null, awgrymiadau, galw i gof,
cyfeiriadau storio cof fel eu gwerthoedd.
A pwyntydd null ei hanfod storio 0, 0-fed
afael â hwy yn y newidyn.
Felly 0x, 0, 0, 0, 0, et cetera.
Mae hynny'n 0-fed gyfeiriad er cof nad yw yn yn ein llun, dyna i fyny yno
rhywle, sydd wedi ei gadw ar gyfer y cyfrifiadur.
Nid ydym yn cael ei gyffwrdd.
>> Felly, pan fydd eich rhaglen yn ei gweithredu, os rhywbeth yn ceisio mynd i'r cof
gyfeiriad 0, mae'n gwybod bod mae hynny'n werth wag.
Mae'n gwybod na ddylai unrhyw beth fod yno.
Felly, os ydych yn ceisio ac yn defnyddio rhywbeth yno ac yn trin rhywbeth fel yno neu
ceisio mynd i'r lleoliad hwnnw, rydych yn mynd i gael nam seg neu gamgymeriad.
A yw hynny'n ateb eich cwestiwn?
>> Ac yn awr byddwn yn mynd yn ôl i'r golwg gorlifo.
Pethau yn y pentwr, wrth i chi guys yn cael weld o'r blaen, yn - gadewch i ni dynnu agos
cynnwys ffrâm pentwr.
Gall pawb weld hynny?
Felly, rydym wedi ein ffrâm pentwr.
Rydym yn arbed amrywiaeth mewn fel leol amrywiol yn y swyddogaeth hon.
Felly, yn dweud Mae ein amrywiaeth pum smotiau.
Pob un o'r pum y rhai a fydd yn cael ei storio yn y ffrâm pentwr.
>> Os byddwn yn dechrau ysgrifennu y tu hwnt i'r ffiniau amrywiaeth hwn -
felly os ydym yn dechrau ysgrifennu i mewn i, gadewch i ni yn dweud bod yn 0.
Mae'r rhai yw'r pum mynegeion ein amrywiaeth.
Os byddwn yn dechrau ysgrifennu mewn mynegai 5, sy'n nid oes gennym pan fydd gennym
amrywiaeth o faint 5, rydym yn dechrau ysgrifennu mewn mynegai 6, 7, 8, 9, ni allwn gael Stack
Gwall orlif.
>> Yn gyffredinol, nid yw'n -
mae'n debyg y byddwch yn mynd i drwbl os byddwch yn mynd drosodd gan un.
Ond yn gyffredinol, byddwch yn mynd i mewn i'r y rhan fwyaf o drafferth os ydych yn mynd drosodd gan lawer
ac rydych yn mynd mor bell dros eich bod yn ysgrifennu dros y cyfeiriad dychwelyd y
swyddogaeth, sydd wedi'i leoli yn y waelod y ffrâm pentwr.
>> Oherwydd, dde?
Chi - yn y - mae'n ddrwg gennyf.
Nid yw "oherwydd iawn."
>> Yn y ffrâm pentwr, mae gennych eich newidynnau lleol.
Ar waelod y pentwr ffrâm yw'r cyfeiriad dychwelyd.
Dyna lle mae'r swyddogaeth mynd pan mae'n drosodd.
Ac os ydych yn trosysgrifo y ffurflen gyfeiriad, yna pan fydd y ffrâm stac,
pan fyddwch yn mynd drwy'r pentwr ffrâm a gweithredu bob llinell, rydych yn
mynd i fynd at eich cyfeiriad dychwelyd newydd sy'n cael ei ysgrifennu yno yn hytrach na'r
un gwirioneddol.
A dyna sut yr ydym wedi gweld rhai achosion o dorri diogelwch
a all ddigwydd gyda chyfrifiaduron.
>> Gorlif Felly simnai, yn fyr, yw pan chi ysgrifennu dros y rhan yn y pentwr
rydych yn fod i'w defnyddio, y gymuned leol newidyn rydych yn fod i'w defnyddio, a
yn enwedig pan fyddwch yn dechrau trosysgrifo pethau pwysig fel y
dychwelyd cyfeiriad.
A dyna lle byddwch yn cael gwall.
Neu efallai hyd yn oed gallech ddechrau hyd yn oed yn ysgrifennu mewn -
dweud chwiliad deuaidd yn yn union uwchben prif.
Os ydych yn overwrote llawer, chi Gallai ysgrifennu i mewn i brif.
Ond yn gyffredinol, byddwch yn cael gwall cyn hynny, gan fod y cyfrifiadur yn gwybod
eich bod yn gwneud rhywbeth yr ydych Ni ddylai fod yn ei wneud.
Yeah.
>> MYFYRIWR: Beth yw'r gwahaniaeth rhwng gorlif stac
a gorlif byffer?
>> JASON Hirschhorn: Byffer gorlif yn fath mwy cyffredinol o
hyn yr wyf wedi ei ddisgrifio yn unig.
>> MYFYRIWR: Felly gorlif stac yn enghraifft o gorlif byffer.
>> JASON Hirschhorn: Yn union.
Mae hwn yn amrywiaeth y gallwn feddwl amdano fel byffer, lle i bethau fynd i mewn
Mae hwn yn gorlifo byffer pentwr.
Gallem gael gorlif byffer domen.
Os oedd byffer, y mae yn aml llu y domen, ac rydym yn
overwrote ffiniau hynny, yna byddem yn cael gorlif byffer domen.
>> Ac y tu hwnt i gwmpas y cwrs hwn, maent yn canfod ychydig yn wahanol.
Mae'r compiler wedi arbennig ffyrdd o ganfod pob un.
Ond mae gorlif byffer yn fwy cyffredinol math o hyn yr wyf yn ei ddisgrifio,
a oedd yn gorlif byffer pentwr.
Oedd hynny'n ateb eich cwestiwn?
Melys.
>> A oedd unrhyw gwestiynau eraill cysylltiedig i'r pentwr neu'r domen?
Yeah.
>> MYFYRIWR: Yr wyf yn gwybod eich bod wedi i llinynnau rhad ac am ddim oherwydd eu bod yn y domen
ac nad ydych am i gollwng cof.
Ond mae'n rhaid i chi am ddim newidynnau byd-eang a phethau fel 'na?
Neu a ydynt yn rhyddhau yn awtomatig?
>> JASON Hirschhorn: Cwestiwn da.
Felly, yn CS50.H, rydym yn creu peth hwn i chi a elwir yn llinyn.
Mae llinyn yn wir yn yr hyn?
>> MYFYRIWR: seren Torgoch.
>> JASON Hirschhorn: A seren torgoch, pwyntydd i gymeriad, pwyntydd i
amrywiaeth o gymeriadau.
Dyna beth y llinyn yn.
Felly mae angen i ryddhau, oherwydd getstring, yr ydym yn defnyddio llawer -
enw llinyn yn dychwelyd getstring -
sy'n mallocs i ni rhywfaint o cof ar y domen ac yna yn dychwelyd pwyntydd i'r
cymeriad cyntaf y llinyn, yn seren torgoch.
>> Felly yn ôl pob golwg, os nad ydych wedi bod ysgrifenedig am ddim ar unrhyw un o'ch llinynnau
eich bod wedi galw hyd yn hyn, mae gennych bod yn gollwng rhywfaint o cof.
Wrth gwrs, nid ydym wedi sôn am , felly does neb yn gotten yn
trafferth i wneud hynny.
Ond wrth fynd ymlaen, ie.
Pan fyddwch yn ffonio getstring, rydych yn mallocing ychydig o le ar y domen.
Ac os nad ydych yn ffoniwch am ddim yn nes ymlaen y llinyn, mae gennych gollwng cof.
Mae hynny'n ateb eich cwestiwn?
>> Yeah
>> MYFYRIWR: Felly, i wneud hynny, rydym yn defnyddio hawl rhad ac am ddim cyn dychwelyd?
Fel, o fewn y cwmpas, yr wyf yn dyfalu os yr ydym yn dweud, fel, int brif, o fewn y
cwmpas y cod sy'n o fewn rhai braces cyrliog, i'r dde cyn -
eich bod yn gwybod ble rydych wedi fel arfer yn rhoi dychwelyd.
Ydych yn ei roi am ddim cyn hynny?
>> JASON Hirschhorn: Felly gallwch roi rhad ac am ddim ble bynnag yr ydych eisiau rhoi am ddim.
Gan fod y rhain yn cael eu dyrannu ddeinamig newidynnau, oherwydd eu bod yn gallu
yn byw y tu hwnt i gwmpas penodol swyddogaeth, os byddwch yn ffonio malloc mewn
swyddogaeth ar wahân, er enghraifft, getstring, gallwch ffonio rhad ac am ddim yn y prif.
Nid oes angen i chi ei alw'n yn y swyddogaeth benodol
os oes amheuaeth malloc.
Ond mae angen i chi ei alw yn cyn prif ffurflenni.
>> Ac mae'n dibynnu mewn gwirionedd.
Mae'n dibynnu ar pam yr ydych yn malloced bod lle yn y lle cyntaf.
Bydd rhai pobl yn galw rhad ac am ddim 'n bert gyflym.
Ni fydd rhai pobl yn galw am ddim hyd nes y ddiwedd eu rhaglen.
A byddant yn mynd drwy a phopeth am ddim.
Mae'n dibynnu ar pam eich enw malloc.
>> MYFYRIWR: A beth fyddech chi'n ei ddweud os ydych yn galw defnydd getstring?
Byddech yn dweud am ddim beth?
>> JASON Hirschhorn: Felly y gystrawen am ddim yn syml am ddim, paren agored, yn agos
paren, ac enw y pwyntydd.
Felly, os byddwch yn ysgrifennu enw llinyn hafal getstring, i chi roi enw yma.
Dyna enw'r pwyntydd.
Ac mae'n gwybod i ryddhau y cof.
>> MYFYRIWR: Felly, pan fydd yn rhyddhau y cof, y pwyntydd yn dal yn tynnu sylw at y lle hwnnw
yn y cof?
Neu a yw y pwyntydd hefyd gwagio o y cyfeiriad y mae'n cyfeirio at.
>> JASON Hirschhorn: Dylem geisio hynny.
Dylem cod hynny.
Gadewch i ni ddod yn ôl pan fyddwn yn mynd i codio, a gadewch i ni cod hynny.
Ac os ydych am i chyfrif i maes yr ateb i hynny, gallwch hefyd cod sy'n
yn y cyfamser.
Ond mae hynny'n gwestiwn mawr.
>> MYFYRIWR: A yw'n bosibl i rhywbeth ddim yn rhy fuan?
Felly rydych yn dal ei angen ar gyfer eich rhaglen, ac rydych yn rhyddhau y gofod cof?
>> JASON Hirschhorn: Ydw.
Mae'n bosibl, os ydych yn rhad ac am ddim rhywbeth ac yna ei ddefnyddio eto, byddwch yn
rhedeg i mewn camgymeriad.
Ond mae hynny'n arnoch chi, oherwydd eich rhyddhau rhywbeth ac yna galw yn ddiweddarach.
Felly, yr oedd camgymeriad yn rhaglennydd.
Ond ie.
Gallech ysgrifennu hynny.
>> Unrhyw mwy o gwestiynau am -
ie.
>> MYFYRIWR: Felly, os ydych i fod i ychydig rhad ac am ddim yn gyffredinol cyn y
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,
y cof yn cael ei ddyrannu o hyd?
>> JASON Hirschhorn: Os yw eich rhaglen yn dod i ben a byddwch yn anghofio i ryddhau rhywbeth, yna
y cof ei ddyrannu drwy gydol oes eich rhaglen.
Pan fydd eich rhaglen yn cau yn gyfan gwbl, nad yw cof yn mynd
i aros yno am byth.
Mae'r cyfrifiadur yn ddigon craff i wybod pan fydd y rhaglen yn cau, mae'n
Dylai gael gwared ar yr holl o'r cof sy'n yn gysylltiedig â'r rhaglen honno.
>> Fodd bynnag, mae dulliau allwch chi redeg ar raglen i ganfod os, pan fydd y
gorffen rhaglen, ydych wedi anghofio i ryddhau rhywfaint o cof.
Ac ar gyfer eich problem nesaf yn lle byddwch yn defnyddio malloc a defnyddio
awgrymiadau, byddwch yn cynnal y rhaglen ar eich rhaglen i weld os,
pan brif ffurflenni, fod gennych ryw pethau a adawyd unfreed.
>> Felly, nid ydynt yn mynd i aros malloced am byth yn eich cyfrifiadur.
Byddai hynny'n wastraffus, oherwydd yn gyflym iawn, cyfrifiaduron
yn rhedeg allan o gof.
Ond os ydynt yn rhedeg tan ddiwedd eich rhaglen ac nid ydynt yn rhyddhau ac yn eich
rhaglen allanfeydd, mae hynny'n dal i fod yn broblem y bydd yr offeryn hwn yn eich helpu i fynd i'r afael.
>> MYFYRIWR: A yw hynny'n Valgrind?
>> JASON Hirschhorn: Mae'n LandLine enw Valgrind.
A byddwch yn -
>> MYFYRIWR: Ond nid oes rhaid i ni wybod hynny ar gyfer y cwis, er bod?
Yr wyf yn golygu, yr oedd yn siarad am ychydig yn y ddarlith.
>> JASON Hirschhorn: Felly Valgrind yw enw'r yr offeryn hwnnw.
Mae gwybod beth mae'n ei wneud yw ddigon ar gyfer y cwis.
Ond nid ydych wedi ei ddefnyddio eto ar eich broblem a osodwyd gan nad ydym wedi cael
problem set sydd wedi delio yn benodol gyda malloc neu eich bod yn defnyddio malloc.
Felly, nad ydych wedi defnyddio Valgrind eto.
Ond byddwch yn ei ddefnyddio yn gynt yn hytrach nag yn hwyrach.
>> MYFYRIWR: Allwch chi ailadrodd beth Valgrind yw?
>> JASON Hirschhorn: Mae'n ddrwg gennyf?
>> MYFYRIWR: Allwch chi ailadrodd yr hyn a pwrpas Valgring yw?
>> JASON Hirschhorn: Valgrind yw'r enw -
fel GDB yn eich helpu i debug eich rhaglen, Valgrind yn eich helpu i chyfrif i maes os
Nid yw pethau wedi cael eu rhyddhau pan fydd eich rhaglen yn cau.
Felly byddwch yn ei redeg ar eich rhaglen.
Ac yn eich rhaglen allanfeydd, a bydd yn dweud eich rhaglen o'r enw malloc hon lawer
amser ar gyfer hyn lawer bytes, a ydych yn rhad ac am ddim yn unig gelwir hyn droeon.
Ac felly i chi adael y rhain nifer o bytes heb gael ei ryddhau.
Neu bydd yn dweud eich bod wedi rhyddhau popeth.
Gwaith da.
>> MYFYRIWR: OK.
Ac fe'i gelwir Valgring?
>> JASON Hirschhorn: V-A-L-G-R-I-N-D.
>> MYFYRIWR: Mae cwestiwn am awgrymiadau.
Felly, yn dweud n ydych wedi seren x yn hafal rhywbeth.
Sy'n hafal, beth bynnag yr ydych yn ei roi yno, yw bod yr hyn sy'n cael ei roi y tu mewn
pa x yn pwyntio i, neu y pwyntydd x?
>> JASON Hirschhorn: Allwch chi ailadrodd y cwestiwn?
Allwn ni dynnu wrth i chi ddweud?
>> MYFYRIWR: Yn y cwis, mewn gwirionedd, y un yr ydych yn ei anfon atom, roedd fel, cols
gwir seren hafal creigiau CS50, dde?
Felly, mae hynny'n golygu bod y creigiau CS50 yw'r hyn y gwir yn pwyntio i?
>> JASON Hirschhorn: Felly, rydych chi'n siarad am seren torgoch mewn llinyn, sut y
sy'n gweithio?
Yeah.
OK.
Gadewch i ni tynnu hyn dros yma.
>> [SGWRS OCHR]
>> JASON Hirschhorn: Felly newidyn hwn yn mynd i fod o seren torgoch fath.
Pa mor fawr yw newidyn seren math torgoch?
Faint o bytes?
>> MYFYRWYR: Four.
>> JASON Hirschhorn: Mae'n LandLine pedwar bytes.
Faint o hawliau yn newidyn seren math int?
>> MYFYRWYR: Four.
>> JASON Hirschhorn: Pedwar bytes.
Os yw'n pwyntydd, yna mae'n bob amser yn pedwar bytes, oherwydd awgrymiadau, eu
gwerth yn gyfeiriad cof.
A chyfeiriadau cof ar yr CS50 offer pedwar bytes o hyd.
Felly, pan fyddwn yn galw getstring, neu pan fyddwn yn dyweder, stringname hafal, ac yna yn
dyfynodau dwbl rhoi llinyn, rydym yn rhoi -
wel, dyna ychydig yn wahanol.
Byddwn yn getstring fel yr enghraifft.
Neu seren torgoch rhywbeth hafal i llinyn.
Mae'n ddrwg gennym, rhowch enghraifft i mi eich bod yn darllen?
>> MYFYRIWR: gwir seren torgoch yn dychwelyd "Creigiau CS50" mewn dyfynodau dwbl.
>> JASON Hirschhorn: Felly seren hwn, mae hyn yn byddwn yn galw newidyn hwn x ar gyfer ein
ddibenion generig.
Rydym wedi creu newidyn a elwir yn x.
Mae'n seren torgoch math.
Mae'n pwyntydd i gyfres o gymeriadau.
Felly, i lawr yma -
>> Felly, mae hyn yw sut y byddai hyn yn yn gweithio yn y cof.
Byddai hyn yn storio cyfeiriad cof.
Byddai'n storio cyfeiriad cof am cymeriad cyntaf yn y rhesi.
Ac yna pan fyddwch yn dilyn y pwyntydd, a fyddech yn
cael y cymeriad cyntaf.
>> Ac os ydych yn darllen y peth hyn fel llinyn, eich cyfrifiadur yn smart
ddigon da i wybod, darllen y peth i gyd hyd nes y mae'n mynd i adwaith 0.
Ond os ydych yn darllen ei fod yn gymeriad yn y tro, felly rydych chi'n bwysleisio'r drwy
llinyn hwn, yna byddwch yn unig yn darllen cymeriad ar y tro nes i chi gyrraedd
slaes 0.
Efallai na fydd hynny'n ateb eich cwestiwn, er.
>> MYFYRIWR: Yeah, ond nad ydych wedi malloced y gofod
eto ar gyfer y pwyntydd.
>> JASON Hirschhorn: Felly, nid wyf ddim yn hollol siŵr yn union yr hyn yr ydych yn edrych ar,
gan nad oeddwn wedi gwneud hynny'n cwis.
A oedd i fod i fod yn ddefnyddiol adnoddau o TF arall.
Os ydych yn creu llinyn ar y simnai neu fel newidyn lleol, mae'n annhymerus '
unig fod amrywiaeth o daliadau yn hytrach na Yn gyffredinol, yn seren torgoch bwyntio at
llinyn arall.
Ond nid wyf yn gwybod.
Gallai hynny fod yn pwyntydd i un arall llinyn ar y corn yn ogystal.
Yeah.
>> MYFYRIWR: Yr wyf yn gwybod bod angen i chi dyrannu cof pan mae pwyntydd yn
cael datgan y tu mewn swyddogaeth arall.
A oes angen i chi wneud yr un peth os yw'n sy'n cael ei ddatgan tu mewn prif,
fyddwch yn ei ddefnyddio y tu mewn o brif?
>> JASON Hirschhorn: Felly ie.
Gallwch ddatgan pwyntydd i unrhyw cyfeiriad cof yn y cof.
Gall fod yn y cyfeiriad cof am lleol amrywiol, er oftentimes,
nad yw pobl yn datgan cyfeiriadau cof i newidynnau lleol oherwydd eu bod yn mynd
i ffwrdd unwaith y bydd y swyddogaeth yn dychwelyd, a oedd yn Dyna pam rydym yn gyffredinol malloc pethau.
Ond ie, gallech ddatgan pwyntydd i newidyn lleol arall.
Mae'n dim ond yn gyffredinol heb ei wneud.
Ond gallaf fwrw golwg ar y beth penodol ar ôl y dosbarth.
Yeah.
>> MYFYRIWR: Yr wyf yn credu bod hyn yn fath o'r hyn sy'n cael ei ofyn.
Mae'n ymddangos yn rhyfedd i gael ei ymgychwyn pwyntydd nid fel
gyfeiriad, ond fel yr hyn a ymddangos fel gwerth.
Mae'n ymddangos fel y CS50 yw'r hyn sydd y tu mewn y peth yn cael ei tynnu sylw at a
nid yw'r gyfeiriad gwirioneddol, dde?
>> JASON Hirschhorn: Felly dyna nid yw'r achos, er.
Dyw hynny ddim yn beth sy'n digwydd.
Pan fyddwch yn datgan seren torgoch, mae'n gyfeiriad cof.
Awgrymiadau i gyd yn gyfeiriadau cof pwyntio at rywbeth arall.
Gallai hynny rhywbeth arall ar y corn, ond mae bron bob amser ar y
domen yn y ffordd y byddwn yn gweld ei ddefnyddio.
Ond stringname hafal i dwbl-dyfynbris "Getstring," gallwn weld bod ac rydym yn
gallu edrych trwy hynny a cod hynny.
Nid getstring llinyn yn cael ei gadw mewn newidyn hwnnw, neu beth bynnag y llinyn
enw nad yw yn cael ei gadw yn y amrywiol, nid oherwydd dyna sut
awgrymiadau yn gweithio.
A yw hynny'n gwneud synnwyr?
>> MYFYRIWR: Yeah.
>> JASON Hirschhorn: OK.
Gobeithio, nid oedd y ddryslyd i unrhyw un.
Ond os oedd, gallwn edrych arno eto mewn ychydig, oherwydd ein bod yn mynd mewn gwirionedd
i cod rhywbeth a fydd, gobeithio, yn gweithio gyda llinynnau a helpu i deimlo'n
yn fwy cyfforddus gyda nhw.
>> Unrhyw gwestiynau eraill sy'n gysylltiedig â'r rhain pynciau neu bynciau eraill sy'n
'N annhymerus' rhoi yn ôl i fyny?
A -
ar hyn o bryd.
Ie, Alden.
>> ALDEN: Felly, mae hyn yn gwbl amherthnasol, ond gallwn yn unig yn mynd dros
yn gyflym iawn yr hyn y mae angen i ni wybod am y gwahaniaeth rhwng 32 a
64-bit peiriant?
>> JASON Hirschhorn: Ydw.
Felly, 32 darnau yw faint o bytes?
>> ALDEN: Mae'n LandLine pedwar bytes.
>> JASON Hirschhorn: Mae'n LandLine pedwar bytes.
A 64 darnau yw faint o bytes?
>> MYFYRIWR: Wyth.
>> JASON Hirschhorn: Wyth bytes.
Felly eto, wyth darnau yn un beit.
Eich offer CS50 yn 32-bit peiriant.
Felly, cyfeiriadau cof yn pedwar bytes o hyd.
Mae yna 2 i 32 cyfeiriadau cof.
0-2 i 32 minws 1.
Ac nid wyf yn gadarnhaol, ond mae hynny'n yn ôl pob tebyg cwmpas yr hyn mae angen i chi
gwybod am 32-bit peiriant, y cof cyfeiriadau, unwaith eto, pedwar bytes o hyd,
a dyna'r uchafswm o gyfeiriadau cof.
>> Hefyd, mathau data -
gallai hyn fod yn rhywbeth mor wel dyna werth eu nodi.
Mae maint y math data yn dibynnu ar y peiriant ydych yn gweithio gyda nhw.
Felly golosg, cymeriad unigol, yw sut llawer o bytes ar ein offer CS50?
Un beit.
Ac mae'n mewn gwirionedd yn un beit fel yn dda ar 64-bit peiriant.
>> Ac yn y rhan fwyaf o fathau o ddata yw'r un rhif o bytes ar y ddau peiriannau.
Ond bydd rhai mathau o ddata fod yn wahanol ar y ddau peiriannau.
Felly byddai hynny'n bosibl yw'r unig beth sydd angen i chi ei wybod.
>> Ond hyd yn oed hynny, yr wyf yn meddwl, y tu hwnt i'r ffiniau -
Rwy'n bron yn gadarnhaol, os ydych yn edrych yn ôl ar hen cwisiau, y mae'n ei ddweud, cymryd yn ganiataol am
codio broblemau ydych chi'n defnyddio 32-bit peiriant.
Ond mae yna, i fynd ynghyd â'r hyn sydd yn Achos oes gennych ddiddordeb, mae
fathau o ddata sydd yr un fath maint ar yr holl beiriannau.
>> Os ydych chi wedi gweld rhywbeth fel uint32_t, efallai chi neu efallai
Nid yw wedi gweld hynny.
Dyna math data.
Mae hynny'n ei ddweud, yn 32 darnau waeth pa peiriant hwn ar.
Felly, pan fydd pobl yn ysgrifennu cludadwy cod, maent yn debyg na fydd yn defnyddio ints.
Byddant yn lle hynny defnyddio'r rhain data eraill Bydd y mathau o eu bod yn gwybod fod yr un fath
maint ar bob un peiriant.
Madhu.
>> Madhu: Roedd gen i gwestiwn am y broses llunio.
Felly os ydych chi'n ysgrifennu rhaglen sy'n defnyddio llyfrgell fel CS50 neu rywbeth
fel hynny, yr wyf yn gwybod bod y llyfrgell rhaid iddo, ar ryw adeg, yn
llunio a'u cysylltu i mewn
Ond faint o hynny'n digwydd yn ystod lunio'r eich rhaglen?
Pa ran o'r broses llyfrgell yn digwydd pan fyddwch yn
llunio eich rhaglen eich hun?
>> JASON Hirschhorn: Felly, gadewch i ni fynd dros Yn gyffredinol, y camau y broses hon.
Rydych yn ysgrifennu eich ffeil. C.
Yn eich ffeil. C, i chi # cynnwys eich llyfrgelloedd pennawd, er enghraifft, cs50.h.
Beth mae hynny'n sydyn yn cynnwys llinell ei wneud i eich rhaglen?
Akchar.
>> AKCHAR: Mae'n ychwanegu y prototeipiau o y swyddogaethau o'r pennawd
ffeiliau yn y llyfrgelloedd.
>> JASON Hirschhorn: Yn union.
Mae'n ychwanegu prototeipiau swyddogaeth hynny eich cod.
Felly, pan fydd eich cod yn cael ei llunio mewn y camau cynnar, y casglwr yn gwybod
bod y swyddogaethau hyn yn bodoli mewn gwirionedd, ac bod rhywle maent wedi eu diffinio.
Nid yw'r ffeiliau. H yn cynnwys y diffiniadau ar gyfer swyddogaethau hyn neu sut
maent yn gweithio mewn gwirionedd.
Cs50.h dim ond yn cynnwys rhywbeth sy'n dweud getstring yn beth gwirioneddol y
Gall ddigwydd.
Ac standardio.h yn dweud printf yn yn beth go iawn a all ddigwydd.
>> Felly eich iaith c gyda hyn. Header ffeil yn cael ei droi i mewn i rai
cod peiriant ei ddarllen, yn y pen draw yn cael ei droi i mewn i deuaidd
cod, 0 a 1 yn.
A dyna y cod yn y pen draw yn cael ei weithredu.
Mae'r-l llinell CS50 - er enghraifft, pan fyddwch yn ysgrifennu chlang -
ac yna eich bod yn cynnwys-l CS50, i chi deipio bod mewn
A ydych yn gweld hynny.
Pan fyddwch yn ysgrifennu yn gwneud, byddwch yn gweld bod llinell i fyny yma.
A byddwn yn gweld hynny mewn eiliad wrth rydym cod neu nes ymlaen pan fyddwn cod.
>> Ond y-l llinell CS50 yn gwneud rhywbeth ychydig yn wahanol nag
y # cynnwys cs50.h.
Beth mae llinell y-l CS50 ei wneud?
Avi?
>> AVI: Yr wyf am ei ddweud ei fod yn cysylltu y llyfrgell i'r swyddogaeth
galw, fel y. o ffeiliau.
>> JASON Hirschhorn: Felly iawn agos, os nad y fan a'r lle ar.
Mae'r-l CS50 yn cymryd y ffeil ddeuaidd ac uno gyda'ch ffeil deuaidd.
Felly cs50.h, does dim pwynt troi cs50.h o iaith C i binary pob
un tro mae'n cael ei ddefnyddio.
Byddai hynny'n wirion, gan fod Byddai wastraffu llawer o amser.
Felly, mae eisoes wedi cael ei lunio ac yn troi i mewn i gweithredadwy.
Ac yn awr ei fod yn mynd i gael eu huno gyda eich ffeil ar y diwedd.
Felly, 1 yn hynny a 0 yn cael eu mynd i uno â eich rhai
a 0 ar y diwedd.
Felly nawr byddwch mewn gwirionedd yn cael y gwir 1 a 0 yn sy'n diffinio sut y getstring,
er enghraifft, gweithio, neu pa mor printf, er enghraifft, yn gweithio.
>> Ac am fwy o wybodaeth, mae 'na crynoadyddion byr sy'n Nate yn rhoi i'r
dylech edrych ar sy'n mynd drwy'r camau hyn.
Ond -
ie.
>> MYFYRIWR: A ydynt bob amser yn o ffeiliau. pan maen nhw yn y ffurflen llyfrgell,
barod i gael ei huno, yn gysylltiedig - fel eu bod yn y cod deuaidd?
>> JASON Hirschhorn: OK.
Beth -
>> MYFYRIWR: A yw hynny'n wir bob tro ar gyfer y llyfrgelloedd pan fyddwch yn cysylltu nhw?
>> JASON Hirschhorn: Ydw.
. S felly mae ffeiliau, a fydd yn cod beiriant, a fydd hefyd yn
cryptig i chi.
Nid oes angen i chi boeni am hynny.
Ond yn gyffredinol, ie, maent yn annhymerus ' yn. o ffeiliau yn barod i fynd.
>> MYFYRIWR: Felly pan fyddwch yn llong i llyfrgell, a ydych yn unig llong
y. f a'r. o?
Nid ydych yn llong y. C neu'r. S.
>> JASON Hirschhorn: Felly -
ac mae hyn mewn byr hwn yn ogystal, os wybodaeth hyn yn ymddangos i fod yn dod o
Ychydig yn gyflym.
Ond byr ar crynoadyddion yn siarad am hyn hefyd.
Pan fyddwch yn llong llyfrgell, os ydych yn llong yr. h, y ffeil pennawd, y rhai
prototeipiau swyddogaeth, ac 1, ac 0 yn, dyna i gyd sydd angen i chi ei roi.
Nid oes angen i chi roi sut mae'r swyddogaeth yn gweithio, y ffeil. c.
Oherwydd bod y pwynt tynnu, neu bwynt APIs, y pwynt yn y SPL hwn,
y llyfrgell symudol Stanford, mae'n am beidio â chi boeni am pa mor newydd
GRect yn gweithio, na sut y symud yn gweithio, na sut ychwanegu gweithio.
Y cyfan sydd angen i chi ei wybod yw bod ychwanegu yn swyddogaeth eich bod yn gallu
defnyddio, ac mae'n gwneud hyn.
Felly, ddim wir oes angen i chi wybod sut mae'n ysgrifennu yn C. Ch jyst angen i
gwybod, dyma swyddogaethau, yr hyn y maent wneud, a dyma yw'r ar 1 a 0
pan ydych wir eisiau eu defnyddio.
>> Cool.
Unrhyw mwy o gwestiynau ar crynoadyddion neu bynciau eraill ar y bwrdd?
>> MYFYRIWR: Mae gennyf gwestiwn o gweithredu swyddogaethau ailadroddus.
Mae cwestiwn am recursion.
Roedd gen i deimlad a fyddai'n dod i fyny.
Felly, gadewch i ni fynd yn gyflym drwy recursion gyda penodol
enghraifft, swyddogaeth ffactoraidd.
Oherwydd bod hyn yn enghraifft bod aml yn dod i fyny neu yn cael ei ddefnyddio
i ddangos recursion.
>> Felly "4!" ei ddarllen fel 4 ffactoraidd.
A beth yw ystyr 4 ffactoraidd?
Beth mae hynny'n ei wneud?
Sut ydych chi'n cyfrifo 4 ffactoraidd?
4 gwaith 3 gwaith 2 waith 1.
>> Felly ffordd arall i ysgrifennu 4 ffactoraidd yw ysgrifennu hyn.
4 gwaith 3 ffactoraidd.
Oherwydd 3 ffactoraidd yn 3 gwaith 2 waith 1.
Felly, 4 gwaith 3 ffactoraidd yw 4 gwaith 3 gwaith 2 waith 1.
Dyma pam ffactoraidd yn wych ymgeisydd ar gyfer recursion, am ei fod yn
glir bod rhywbeth sy'n digwydd drosodd a throsodd a throsodd ar
nifer llai o bethau nes i chi gyrraedd y diwedd.
Pan fyddwch yn cyrraedd 1, 1 ffactoraidd yw 1.
Ni allwch fynd yn llawer pellach.
0 ffactoraidd hefyd yn cael ei ddiffinio fel 1.
Felly, pan fyddwch yn cyrraedd 1 neu 0, rydych yn ar y diwedd, a gallwch
dechrau mynd yn ôl i fyny.
Felly, os oeddem am i ysgrifennu dychweliadol swyddogaeth i gyfrifo ffactoraidd,
rydym yn mynd i ysgrifennu rhai pseudocode gyfer hynny yn awr.
Cyn i ni ysgrifennu y pseudocode -
Byddaf yn rhoi ychydig funudau i chi guys i ysgrifennu'r cod ffug neu dim ond yn meddwl
am y peth - mae dau beth mhob Mae angen swyddogaeth ailadroddus.
Beth yw'r rhai ddau beth?
>> JACK: Mae'n rhaid iddo alw ei hun.
>> JASON Hirschhorn: Noa?
O, Jack.
Fynd yn ei flaen.
>> JACK: Mae'n rhaid iddo alw ei hun.
>> JASON Hirschhorn: Felly recursive Mae angen swyddogaeth alwad ailadroddus, a
ffonio i ei hun.
Dyna un.
A beth yw'r peth arall?
>> JACK: Mae achos sylfaenol.
>> JASON Hirschhorn: Mae achos sylfaenol.
Mae achos sylfaenol yw, dyma pan fyddwn yn dod i ben.
Felly eich swyddogaeth yn cael ei alw.
Mae'r achos sylfaenol yn dod yn gyntaf.
Rydych chi eisiau gwybod os ydych chi ar y diwedd.
Ac os nad ydych yn ar y diwedd, byddwch yn gwneud eich galwad ailadroddus.
A ydych yn mynd trwy swyddogaeth hon eto, gwirio eich achos sylfaenol eto.
Os nad ydych yn y diwedd, byddwch yn gwneud alwad ailadroddus arall,
et cetera, et cetera.
>> Dyna pam y swyddogaethau recursive bob amser yn Mae angen i achosion sylfaenol hynny a'r rhai
galwadau ailadroddus.
Os nad oes gennych galwad ailadroddus, mae'n Ni fyddai swyddogaeth ailadroddus.
Os nad oedd gennych achos sylfaenol, fyddech yn mynd am byth a
ni fyddai unrhyw dod i ben.
Ac mae'r achos sylfaenol bob amser yn dod yn gyntaf, oherwydd byddwch bob amser yn awyddus i wirio
os ydych chi yn y pen gyntaf.
Felly, cyn i ni wneud ychydig o pseudocode, pam peidiwch â chi gymryd munud i feddwl am
sut mae swyddogaeth ffactoraidd recursive Byddai cael ei ysgrifennu?
>> Hefyd, gan fod llawer ag y byddwch yn ei wneud, ysgrifennu allan ar ddalen o bapur yn
yr hyn yr ydych yn mynd i gael i ei wneud ar y cwis yfory.
Arfer felly mae'n debyg da i wneud yn siŵr bod y cod ydych yn ysgrifennu
i lawr ar ddalen o bapur -
neu gallwch wneud hynny.
Rydych yn gwybod ble mae'r hanner colon yn cael eu.
Byddwch yn cofio y gystrawen.
Oherwydd nad ydych yn gallu cael compiler dweud wrthych gwneud camgymeriad.
>> Hefyd, ar hyd y llinellau hynny, yfory, pan yr ydych wedi codio problemau, os ydych yn
yn cael eu rhuthro am amser, neu os ydych yn iawn drysu ynghylch sut yr ydych yn fod i
ysgrifennwch y peth arbennig mewn c, mae'n Byddai behoove i chi ysgrifennu ffug-god
neu ysgrifennu sylwadau hefyd.
Oherwydd mae credyd rhannol ar gyfer llawer o'r cwestiynau ar y cwis.
Felly efallai y byddwch yn rhuthro, neu os ydych bosibl y bydd yn eu cymysgu.
Ysgrifennu mewn sylwadau neu ffug-god yn aml yn ffyrdd sy'n eich
Gall gael credyd rhannol.
>> Felly peidiwch â gadael rhywbeth gwag ar y cwis.
Does dim gosbau am rhoi pethau i mewn
Yn wir, rhoi ffug-god neu sylwadau yn mynd i helpu'r graddiwr
chyfrif i maes os ydych yn gwybod mewn gwirionedd beth ydych yn sôn amdano, ac efallai dyfarnu
chi rai credyd rhannol am hynny.
>> Hefyd ar y llinellau hynny, ysgrifennwch yn glir.
Os gallwn ni wir yn yr hyn yr ydych yn ysgrifennu, nid ydym yn mynd i alw i chi
am hanner nos yfory i ffigur allan yr hyn yr ydych yn ysgrifennu.
Rydym yn jyst yn mynd i gymryd i ffwrdd pwyntiau.
Ysgrifennwch yn glir fel y gallwn glywed, neu yn hytrach, gallwn ddarllen yr hyn yr ydych yn ysgrifennu.
>> Ac os yw'n dweud dwy frawddeg, peidiwch ag ysgrifennu paragraff.
Dilynwch y cyfarwyddiadau.
Ysgrifennwch yn glir.
Ac ysgrifennu yn y sylwadau hynny, neu pseudocode ar gyfer cwestiynau a allai
dyfarniad credyd rhannol.
>> OK, gadewch i ni fynd i ffactoraidd.
Felly mae gennym ffactoraidd swyddogaeth.
Os wyf yn ysgrifennu hyn mewn gwirionedd yn C, beth sydd angen i mi ei roi gerbron y enw
y swyddogaeth?
Y math dychwelyd, sydd, yn yr achos, byddwn yn rhoi int.
Ac yna y tu mewn i'r braces cyrliog, yn beth sy'n mynd y tu mewn i'r braces cyrliog ar gyfer
swyddogaeth?
>> MYFYRWYR: Math o Dadl.
>> JASON Hirschhorn: Ei dadleuon.
Felly ffactoraidd yn ôl pob tebyg cymryd dadl.
Bydd yn fwy na thebyg ond yn cymryd un ddadl.
A byddwn yn dweud bydd yn cymryd cyfanrif enw x.
Ac eto, wrth ysgrifennu prototeip o swyddogaeth neu ysgrifennu y swyddogaeth
yn eich cod cyn ei ddiffinio, rydych yn ysgrifennwch y math data ac enw'r
bod amrywiol ar gyfer swyddogaeth sy'n yn unig.
Felly, gallwch basio ryw nifer i mewn i hyn swyddogaeth, bydd yn cael ei gyfeirio ato fel x
yn fewnol.
>> Rydym wedi ein swyddogaeth ffactoraidd.
Mae angen dau beth, sef achos sylfaenol a galwad ailadroddus.
Beth yw'r achos sylfaenol ar gyfer ffactoraidd?
Rhywun a ysgrifennodd allan ac nad ydynt wedi siarad eto, beth yw'r sylfaen
achos dros ffactoraidd?
>> MYFYRIWR: Os n yn llai na 2, yn dychwelyd 1.
>> JASON Hirschhorn: Os yw n yn llai na 2, yn dychwelyd 1.
Yr wyf yn hoffi hynny, gan fod yn cymryd gofal o 0 ac 1.
Felly, byddwn yn gwneud x <2, yn dychwelyd 1.
Os byddwn yn cael eu pasio 0, os byddwn yn cael pasio 1, swyddogaeth hon yn
dychwelyd ar unwaith 1.
Os byddwn yn cael eu pasio rhywfaint o nifer uwch na neu'n hafal i 2, rydym yn mynd i
wedi ein galw ailadroddus.
>> Ac felly sut mae bod yn mynd i weithio?
A all rhywun arall a oedd yn gweithio ar y nad yw wedi siarad eto roi i mi y
galw ailadroddus am y swyddogaeth hon yn pseudocode?
Os byddwn yn cael eu pasio yn rhif x ac mae'n fwy na 2, beth
ydym ni eisiau ei wneud?
Rydym hefyd wedi enghraifft ysgrifenedig ar y ochr a allai rhoi awgrym i chi.
>> MYFYRIWR: Ffoniwch x gwaith y ffactorial x minws 1?
>> JASON Hirschhorn: Yn union gywir.
Rydym yn mynd i ddychwelyd x amseroedd y ffactor x minws 1.
Ac, hyd yn oed er fy mod yn ysgrifennu i fyny, yn y bôn, yr hyn a ddywedasoch yn Saesneg,
y swyddogaeth ffactoraidd Bydd yn cael eu galw eto.
Bydd yn gweithredu ar x minws 1.
Bydd yn dychwelyd gyda rhai cyfanrif, a yna bydd yn lluosi ddau yma
gyda'i gilydd, a bydd y gwerth hwnnw yn Dychwelodd i ba bynnag gelwir hyn
swyddogaeth ffactoraidd, a gallai fod yn achos arall o
swyddogaeth ffactoraidd hwn.
>> Felly, mae hynny'n enghraifft o dychweliadol swyddogaeth, a iawn
swyddogaeth ailadroddus syml.
Ond bydd y rhan fwyaf ohonynt fod fel hyn.
Os hoffech gael dychweliadol da herio ar gyfer y cwis, ceisiwch codio
chwiliad deuaidd recursively.
Oherwydd pe baech yn gwneud chwiliad deuaidd ar gyfer problem gosod tri, mae'n debyg y byddwch yn gwneud hynny
iteraidd mewn cylch tra.
>> Ond gall hefyd gael ei ysgrifennu recursively.
Rydych yn mynd i angen i ysgrifennu eich pen eich hun swyddogaeth ar wahân sy'n cymryd rhai
gwahanol ddadleuon gorchymyn-lein - neu Nid yw dadleuon gorchymyn-lein, mae rhai
gwahanol ddadleuon yn unig rheolaidd.
Ond gallech ysgrifennu chwiliad deuaidd recursively hefyd.
>> MYFYRIWR: Felly yr ydych gallai hefyd wedi ysgrifennu, yn hytrach na x minws 1, yr ydych yn
gallai hefyd wedi ysgrifennu x minws minws, neu gallech gael
llai minws ysgrifenedig x.
Allwch chi jyst egluro yn gyflym iawn pam Byddai hynny yn bethau gwahanol,
fel beth yw'r gwahaniaeth rhwng x llai llai a llai minws x?
>> JASON Hirschhorn: Na, dydw i ddim mynd i fynd i mewn i hynny.
Ond byddaf yn siarad â chi am y peth ar ôl dosbarth. x llai llai, llai llai x
lleihau a x gan 1.
Ond maent yn ei wneud yn ychydig yn wahanol.
Ond dydw i ddim eisiau mynd i mewn i hynny.
Cwestiynau eraill am recursion neu swyddogaeth hon?
Nid yw hynny'n wir hyd yn oed yn pseudocode.
Dyna y bôn y cod yn C byddech yn ysgrifennu ar gyfer hyn.
>> OK, unrhyw gwestiynau eraill am bynciau i fyny yma?
Yeah.
>> MYFYRIWR: Mae gen i dirywio cyflym o pwynt arnawf ac yn fanwl.
>> JASON Hirschhorn: fel y bo'r angen pwynt a manylder.
A all rhywun yn gyflym iawn rhoi dirywio o fi
pwynt arnawf a manylder?
Roedd chi i gyd i wneud hyn ar gyfer eich broblem a osodwyd, er mwyn i chi i gyd
yn gyfarwydd ag ef.
Neu efallai nid pawb ohonoch.
Dylai unrhyw un?
Rhowch fan cychwyn i mi.
Pwynt arnawf ac yn fanwl.
Beth yw'r broblem?
Ie.
Victoria?
>> Vanessa: Vanessa.
>> JASON Hirschhorn: Vanessa.
Mae'n ddrwg gennym.
>> Vanessa: Dim ond nifer cyfyngedig rhifau y gellir eu cynrychioli
oherwydd eich bod ar, yn ein achos, system 32-bit.
Felly, rydych fath o rhaid i gwneud i fyny rhai rhifau.
>> JASON Hirschhorn: Felly dyna yn union gywir.
Dim ond swm penodol o rhifau y gellir eu cynrychioli.
Os ydych yn lluosi dau niferoedd mawr iawn, gallai fod gorlifo y swm
o leoedd yn rhaid i chi gynrychioli yn gyfanrif.
Dyna pam weithiau rydym yn defnyddio hir hir yn lle int.
Mae hynny wedi mwy o lefydd.
Gall hynny yn dal nifer mwy.
>> Pwynt arnawf trachywiredd wedi ei wneud gyda hynny, ond hefyd wedi ei wneud gyda'r
ffaith bod nifer degol yn heb eu cynrychioli bob amser.
Mae'n ddrwg gennym.
Gadewch i mi roi hyn yn ôl i fyny.
Nid yw nifer degol 1.0 bob amser cynrychioli fel chi yn disgwyl,
1.000000000.
Weithiau mae'n ei gynrychioli fel 1.000000001 neu 0.999999999.
Gallai fod yn cael ei hyd yn oed yn taflu 89 yno yn rhywle.
Felly nid rhifau degol hynny cynrychioli yn union fel y byddech
disgwyl iddynt gael eu cynrychioli.
>> Felly, yn broblem a osodwyd -
oedd dau? -
problem yn gosod dau, lle rydym yn delio â rhifau pwynt arnawf, pan yr oeddem am
eu bod yn cynrychioli'r union beth yr ydym eisiau eu bod yn cynrychioli, y nifer
o geiniogau, neu nifer y cents, ydym yn eu lluosi â 100.
Rydym yn talgrynnu iddynt.
Ac yna rydym yn torri i ffwrdd popeth y tu ôl y pwynt degol.
Dyna oedd sicrhau y byddent yn mewn gwirionedd yn gyfartal yn union yr hyn yr ydym eisiau
iddynt cyfartal.
>> Oherwydd pan fyddwch yn cymryd rhywbeth sy'n a arnofio a throi i mewn i int, rydych
torri i ffwrdd popeth i'r dde y pwynt degol.
Oherwydd mae rhywfaint pwynt arnawf anfanyldeb, efallai 100.000 fod
cynrychioli Lledred fel 99.999999999.
Ac os ydych yn unig yn torri i ffwrdd popeth i yr hawl ar unwaith, byddwch yn mynd i
gael y rhif anghywir.
Yeah.
>> MYFYRIWR: Yr wyf wedi cael cwestiwn am castio.
Mha drefn mae'n digwydd mewn?
Os hoffech wneud arnofio, cromfachau, 1 rhannu 10, a yw'n yn 1 wedi'i rannu â 10,
wedyn yn cael 0.1, yna trowch i mewn i arnofio?
>> JASON Hirschhorn: Os ydych yn arnofio 1 wedi'i rannu gan 10 -
>> MYFYRIWR: Yeah, ac yna yn dychwelyd -
yn dda, a fyddai fel arfer gael yn gyfartal i mewn -
Yeah.
Byddwch am wneud yn arnofio, dde?
>> JASON Hirschhorn: OK, felly rydym yn mynd i defnyddio hynny i segue i mewn i figuring
yr atebion i'r cwestiynau hyn drwy godio.
Oherwydd mae'n debyg y byddwch yn cael llawer o cwestiynau munud hyn, ac yn ffordd dda
i'w datrys yw drwy godio.
Felly, rydym yn mynd i roi cod hwn ar hyn o bryd, ac yna rydym yn mynd i fynd yn ôl a
cod y cwestiwn oedd gennych.
>> Felly, y llinell gyntaf -
Ni ddylai wyf wedi ysgrifennu hyn - beth yw y peth cyntaf yr ydym am ei wneud pan fyddwn yn
agor ffeil newydd yn gedit?
>> MYFYRIWR: Cynnwys.
>> JASON Hirschhorn: Cynnwys beth?
>> MYFYRIWR: llyfrgell CS50.
>> JASON Hirschhorn: OK.
Beth arall y dylem gynnwys?
Rydym yn jyst yn mynd i weld beth sy'n digwydd pan fyddwch yn bwrw rhywbeth i arnofio.
Ond beth mae angen i ni gynnwys os ydym yn mynd i ysgrifennu rhaglen C?
>> MYFYRIWR: Safon I / O.
>> JASON Hirschhorn: stdio.h.
Nid ydym yn angen mewn gwirionedd, ar gyfer hyn rhaglen, cs50.h, hyd yn oed er 'i'
bob amser yn ddefnyddiol ei gynnwys.
Ond bob amser yn angen stdio.h arnom.
>> MYFYRIWR: Wrth codio yn C?
>> JASON Hirschhorn: Wrth codio yn C.
>> Felly yr wyf yn ei gadw fel hyn. Ffeil c.
Yr wyf yn cael rhywfaint o tynnu sylw at cystrawen 'n glws.
Ysgrifennais yn ddi-rym y tu mewn prif.
Beth yw ystyr ddi-rym?
>> MYFYRIWR: Nid yw'n cymryd unrhyw dadleuon gorchymyn-lein.
>> JASON Hirschhorn: dulliau Void, yn yr achos, nid yw prif yn cymryd unrhyw
dadleuon gorchymyn-lein.
Mewn achosion eraill, mae'n golygu bod y swyddogaeth nid yw'n cymryd dadleuon gorchymyn-lein.
Neu y swyddogaeth, pe bawn yn ysgrifennu yn ddi-rym prif (di-rym), a fyddai'n dweud prif yn
Nid yw dychwelyd unrhyw beth.
Felly, yn ddi-rym yn unig yn golygu dim byd.
Beth fyddwn i'n ysgrifennu pe bawn yn cymryd dadleuon gorchymyn-lein?
>> MYFYRIWR: int arc c v arc llinyn
>> JASON Hirschhorn: int argv llinyn argc.
A yw hynny'n gywir?
>> MYFYRIWR: Mae'n LandLine cromfachau argv seren torgoch.
>> JASON Hirschhorn: Felly gallech ysgrifennu cromfachau argv llinyn neu argv seren torgoch
cromfachau, ond mae angen y cromfachau.
Gan fod argv llu o linynnau, cofiwch.
Nid dim ond un llinyn.
Felly argv llinyn yw, yma wedi un llinyn o'r enw argv.
Cromfachau argv llinyn yw, dyma amrywiaeth o linynnau.
Cromfachau argv llinyn argc Felly int yn rhywbeth yr wyf yn
mae'n debyg y byddai ysgrifennu.
>> Felly, rydych yn awyddus i achub mewn cyfanrif?
>> MYFYRIWR: Yeah, cyfanrif.
Neu mewn arnofio.
>> JASON Hirschhorn: Mewn arnofio?
Fel, arnofio x yn hafal i 1 wedi'i rannu â 10.
>> JASON Hirschhorn: OK.
Sut ydw i'n argraffu fflôt yn printf?
Beth?
>> MYFYRIWR:% f.
>> JASON Hirschhorn:% f.
Beth sy'n cyfanrif?
d neu i.
Beth yw llinyn?
>> MYFYRIWR: s.
>> JASON Hirschhorn: s.
Sut ydw i'n cael llinell newydd?
>> MYFYRIWR: slaes n.
>> JASON Hirschhorn: Beth ydw i'n dychwelyd os prif rhedeg yn gywir?
>> MYFYRIWR: 0.
A oes angen i mi ysgrifennu y llinell honno, er bod?
>> MYFYRIWR: Na
OK, ni fyddwn yn ysgrifennu, yna.
A all pawb ddarllen hynny?
Mae'n edrych ychydig bach.
Gall pawb weld, neu y dylai Yr wyf yn ei gwneud yn fwy?
Yr wyf yn meddwl ar gyfer y camera, byddwn yn gwneud ei fod yn ychydig yn fwy, er.
>> JASON Hirschhorn: Os wyf i am droi hyn . C ffeil i mewn i cyflawnadwy, beth
ydw i'n ysgrifennu?
>> MYFYRIWR: Gwneud prawf.
>> JASON Hirschhorn: Mae'n ddrwg gennyf?
>> MYFYRIWR: Gwneud prawf.
>> JASON Hirschhorn: Gwneud prawf.
Yr oeddem yn sôn am y llinell hon yn gynharach.
Chlang.
Beth sydd chlang?
Enw'r compiler.
Beth sydd y llinell hon?
>> MYFYRIWR: Setiau i fyny ar gyfer defnyddio GDB.
>> JASON Hirschhorn: Setiau i fyny ar gyfer defnyddio GDB.
Mae'r llinell hon, beth sy'n bod?
>> MYFYRIWR: Cod Ffynhonnell.
>> JASON Hirschhorn: Dyna'r ffeil ffynhonnell, y ffeil. c.
Beth mae'r rhain yn ddwy linell yn ei wneud?
Neu nid yw'r rhain ddwy linell.
>> MYFYRIWR: Enwau Mae'n ei brofi.
>> JASON Hirschhorn: Felly mae'r llinell doriad o yn dweud, enwi rhywbeth yn wahanol.
A dyma ydych yn ffonio ei brawf.
Os nad oedd gen i hynny mewn, hyn y byddai'n ei enwi hyn?
>> MYFYRIWR: A.out.
>> JASON Hirschhorn: A.out.
Beth mae hyn yn ei wneud?
>> MYFYRIWR: Cysylltiadau llyfrgell mathemateg.
>> JASON Hirschhorn: Mae'n cysylltu yn y llyfrgell mathemateg.
Nid ydym yn cynnwys y llyfrgell mathemateg, ond ers hynny mor gyffredin, maent wedi
gwneud ysgrifenedig bob amser yn cynnwys y llyfrgell mathemateg.
Ac yn yr un modd, mae hyn yn cynnwys llyfrgell CS50.
>> Iawn, felly os ydym yn rhestru, mae gennym bellach weithredadwy a elwir yn brawf.
I weithredu, yr wyf yn ysgrifennu prawf.
Gwelaf fod fy mhwynt fel y bo'r angen, yn ôl y disgwyl, yn hafal i 0.
Gwneud hynny -
hynny -
>> MYFYRIWR: Yna, os byddwch yn rhoi arnofio yn awr, fel chi bwrw fel arnofio -
>> JASON Hirschhorn: Cast 1 i arnofio?
>> MYFYRIWR: Na, bwrw y peth llawn -
yeah.
Os ydych yn unig yn gwneud hynny, byddai sy'n ei gwneud yn 0.1?
>> JASON Hirschhorn: OK, felly mewn gwirionedd yn gyflym, 1 wedi'i rannu gan 10, y rhai yn
cyfanrifau sy'n cael eu rhannu.
Felly, pan fyddwch yn rhannu cyfanrifau, eu bod yn 0, ac rydych yn arbed bod 0 mewn
arnofio, gan fod y slaes yn adran cyfanrif yn unig.
Felly nawr rydym yn troi rhywbeth i mewn i arnofio.
>> Gadewch i ni weld beth sy'n digwydd.
Byddwn yn gwneud prawf.
Felly nawr rydym yn gweld nad yw'r slaes oedd adran cyfanrif, yr oedd yn fel y bo'r angen
adran pwynt.
Oherwydd bod un o'i ddadleuon wedi cael ei bwrw i arnofio.
Felly, erbyn hyn mae'n ei ddweud, yn trin hyn is-adran fel rydym yn delio â
pwyntiau fel y bo'r angen, nid gyda gyfanrifau.
Ac felly rydym yn cael yr ateb yr ydym yn ei ddisgwyl.
>> Gadewch i ni weld beth sy'n digwydd -
wps.
Os oeddwn i eisiau argraffu mwy degol smotiau, sut y gallwn i wneud hynny?
>> MYFYRIWR: Pwynt dot f, neu gan fod llawer lle degol ag y dymunwch.
>> JASON Hirschhorn: Felly, yr wyf argraffu 10 smotiau degol.
Ac rydym yn awr yn gweld ein bod yn cael rhai pethau 'n annaearol.
Ac mae hynny'n mynd yn ôl at eich cwestiwn am arnofio pwynt anfanyldeb.
Mae stwff od storio mewn yma.
>> OK, a yw hynny'n ateb eich cwestiwn?
Beth arall oeddech am i cod yn gyflym?
>> MYFYRIWR: Fi jyst eisiau i weld a Nid yw, os ydych yn rhyddhau rhywfaint o pwyntydd,
a oedd y pwyntydd yn dal wedi ei storio mewn dyma'r cyfeiriad yr hyn oedd wedi bod
bwyntio at y gorffennol.
>> JASON Hirschhorn: OK, felly gadewch i ni wneud hynny.
Ptr torgoch seren, mae hyn yn creu newidyn Gelwir ptr o seren torgoch fath.
Sut ydw i'n ysgrifennu malloc?
Alden?
>> ALDEN: Dim ond malloc.
Ond yna mae'n rhaid iddo fod o faint, a yn yr achos hwn, mae'n debyg eich wedi
fod yn pwyntio i torgoch.
Felly, byddai'n cael ei torgoch.
>> JASON Hirschhorn: OK, fel bod mwy o generig, tu mewn -
gadewch i ni olygu.
Y tu mewn malloc, ydych am i'r nifer o bytes ar y domen.
Yn gyffredinol, yr hyn yr ydym wedi gweld ein bod ni'n wneud yw ein bod yn mynd i malloc
llinynnau, er enghraifft, neu araeau o gyfanrifau.
Felly, os ydym am 10 cyfanrifau, neu 10 chars, bydd 10 yn rhoi i ni 10.
Ac yna y byddai maint y chars rhoi wrthym fod maint y chars, sydd yn ei
yr achos hwn yw 1 beit.
Rydym yn cael 10 bytes.
Pe baem yn ysgrifennu maint y int, a fyddai'n rhoi 40 bytes ni.
>> Felly fwy cyffredinol, y tu mewn o malloc yw nifer y bytes ydych ei eisiau.
Yn yr achos hwn, rydym yn cael 1 beit.
Sy'n ymddangos fel defnydd rhyfedd o malloc, ond ar gyfer ein
ddibenion gwneud synnwyr.
Felly, mae hynny.
>> Rydym yn mynd i alw am ddim.
Rydym yn cael gwared ohono ac rydym yn defnyddio ptr eto.
A beth wnaethoch chi am wirio?
>> MYFYRIWR: Fi jyst eisiau i wirio a neu nad oedd unrhyw beth
tu mewn iddo.
>> JASON Hirschhorn: Felly, p'un a ei fod yn tynnu sylw at unrhyw beth?
>> MYFYRIWR: Yeah, yn union, boed mae'n dal oedd â chyfeiriad cof.
>> JASON Hirschhorn: Felly rydych chi am i weld beth yw gwerth PTR?
>> MYFYRIWR: Yeah, yn union.
>> JASON Hirschhorn: Beth ydw i'n ei ysgrifennu yma os ydw i am wirio gwerth y
pwynt - beth yw, Jordan Dywedodd, mae'r gwerth?
Neu beth yn cael ei storio tu mewn PTR?
>> MYFYRIWR: A gyfeiriad cof.
>> JASON Hirschhorn: A gyfeiriad cof.
Felly os wyf yn ysgrifennu yn unig hyn, mae'n annhymerus ' rhoi gwerth PTR mi.
A sut ydw i'n argraffu yn gyfeiriad cof?
Beth yw'r fformat llinyn am gyfeiriad cof?
>> MYFYRIWR:% t.
>> JASON Hirschhorn:% t.
% S yn llinyn.
% P ar gyfer pwyntydd.
A yw hynny'n gywir?
Mae hynny'n gywir.
Felly ptr yn gyfartal -
mae ganddo rywbeth ynddo.
Mae hyn yn fwy na thebyg yn fwy cwestiwn diddorol.
Beth mae hynny'n ei llinell yn ei wneud?
>> MYFYRIWR: diffygion Seg.
>> JASON Hirschhorn: Beth?
>> MYFYRIWR: Rwy'n credu ei fod SEG namau.
>> JASON Hirschhorn: EM?
>> MYFYRIWR: Yr wyf yn meddwl bydd yn SEG fai.
>> JASON Hirschhorn: Felly y llinell hon o PTR cod, seren, beth
yn golygu y seren?
>> MYFYRIWR: Cynnwys y.
>> JASON Hirschhorn: Yeah.
Ewch i gael y cynnwys.
Felly, mae hyn yn mynd i fynd i'r cof mynd i'r afael yno ac yn rhoi i mi hynny.
Roeddwn i'n arfer% c yma oherwydd bod yn cael eu cymeriadau eu storio yno.
Felly, rydym yn mynd i fynd i'r cyfeiriad hwnnw yr ydym yn jyst yn gweld - neu yn ôl pob tebyg fe fydd yn
ychydig bach hyn yn wahanol tro y byddwn yn rhedeg y rhaglen.
Ond byddwn yn mynd i'r cyfeiriad hwnnw yr ydym yn gwybod yn dal i fodoli
a gweld beth sydd yno.
>> Felly, nid oedd yn SEG fai.
Mae'n nid yn unig oedd yn rhoi unrhyw beth i ni.
Gallai fod wedi mewn gwirionedd yn rhoi i ni rhywbeth, ni allwn yn unig yn ei weld.
Ac mae hynny'n mynd yn ôl at y syniad hwn -
ac nid ydym yn mynd i gael gormod i mewn hwn, oherwydd dyna y tu hwnt i'r
cwmpas y cwrs.
Ond buom yn siarad am dde yma, os ydym mynd y tu hwnt i ffiniau'r y rhesi gan
1, efallai na fyddwn yn mynd i mewn trafferth.
>> Weithiau, pan fyddwch yn jyst yn mynd i ffwrdd gan 1, eich bod yn gwneud rhywbeth o'i le, ac rydych
Gallai fynd i mewn trafferth.
Ond nid ydych yn bob amser yn cael mewn trafferth.
Mae'n dibynnu faint o beth drwg i chi yn gwneud hynny, rydych chi'n mynd i fynd i mewn trafferth.
Pa un yw i beidio â dweud, fod yn flêr gyda eich cod.
Ond mae'n dweud, nid yw'r rhaglen yn bob amser roi'r gorau iddi, hyd yn oed os ydych yn mynd i rywle
nad ydych yn fod i fynd.
>> Mae enghraifft dda o hynny yw, mae llawer o pobl yn eu problem yn gosod 3, sy'n
oedd 15, nid oedd yn edrych ar y ffiniau y bwrdd.
Felly, rydych yn edrych ar y chwith, yn edrych ar y hawl, yn edrych i'r brig, yn edrych
i'r gwaelod.
Ond nid ydych yn gwirio i weld os yw'r top oedd mewn gwirionedd yn mynd i fod ar y bwrdd.
Ac mae llawer o bobl a wnaeth hynny a troi hynny i mewn, eu rhaglen yn gweithio
berffaith, oherwydd os yw'r bwrdd yn storio yn y cof, os ydych yn mynd un
uchod, neu eu gwirio y cof gyfeiriad, nid oedd unrhyw beth
arbennig o erchyll am hynny, fel na fydd eich rhaglen yn
mynd i gweiddi ar chi.
>> Ond byddem yn dal i gymryd i ffwrdd pwynt os na wnaethoch chi wirio bod, oherwydd eich bod
yn gwneud rhywbeth nad oeddech yn fod i'w wneud, a gallech gael
gotten mewn trafferth.
Groes yn, fodd bynnag, mae'n debyg na wnaeth.
Felly, mae hyn yw dangos bod, ie, gallwn yn dal i fynd iddo.
Ac nid ydym yn ei gael yn trafferth yn yr achos hwn.
Os ydym yn ceisio gwneud darllen y 100 cymeriadau nesaf, rydym wedi
yn ôl pob tebyg yn cael mewn trafferth.
A allwch chi ddarllen y cod 100 nesaf cymeriadau os ydych am drwy wneud rhai
fath o ar gyfer dolen.
Yeah.
>> MYFYRIWR: Gan ein bod yn neilltuo y gofod werth go iawn, ni fyddem
mewn gwirionedd yn gallu gweld unrhyw beth.
A ddylem roi cynnig arni â gosod y cyfartal i yn hoffi c neu rywbeth?
>> JASON Hirschhorn: Cwestiwn Fawr.
Sut ydw i'n gosod y gwerth hwnnw -
pa linell o god ydw i'n ysgrifennu ar-lein saith i wneud yr hyn yr ydych wedi'i ddweud?
>> MYFYRIWR: Star ptr hafal sengl quote c ben dyfynbris sengl.
>> JASON Hirschhorn: Felly mae hynny wedi rhoi cymeriad, c, yn y lleoliad hwnnw,
oherwydd eto, seren sydd yn golygu mynd i yno.
A pan gaiff ei ddefnyddio ar yr ochr chwith gweithredwr aseiniad, sy'n hafal
llofnodi, nid ydym yn mynd i gael y gwerth gymaint fel y gwerth hwnnw.
Nawr, gadewch i ni weld beth fydd yn digwydd.
>> Rydym yn rhoi rhywbeth yno ac yno.
Rydym yn galw am ddim.
Mae rhai pethau wedi digwydd yn ôl pob tebyg ar y domen.
Felly nid yw'n yno anymore.
Ond unwaith eto, nid ydym yn ei gael mewn trafferth ar gyfer mynd yno.
>> Rwy'n gwneud hyn mewn cod i ddangos bod llawer o'r rhain
gwestiynau sydd gennych, eu bod yn yn ddiddorol iawn
yn ateb llawer o amser.
Ac maent yn gwestiynau da iawn.
A allwch chi chyfrif nhw allan ar eich pen eich hun os, er enghraifft,
nid ydym yn yn adran hon.
Yeah.
>> MYFYRIWR: Oherwydd nad ydych yn anfon y Pointer unrhyw le, mae angen i chi
defnyddio malloc?
>> JASON Hirschhorn: Felly, mae hyn yn mynd yn ôl at eich cwestiwn cychwynnol.
[? ?]
Ai dim ond newidyn lleol?
Nid Malloc yma yw bod gymhellol.
Nid yw'r defnydd o malloc yma yw bod rymus am ei fod yn
dim ond newidyn lleol.
>> MYFYRIWR: Felly y gallech ei wneud golosg ptr seren yn dychwelyd hello?
>> JASON Hirschhorn: Oh.
Felly, rydym yn mynd yn hyn fynd yn ôl at eich cwestiwn cychwynnol.
Yr wyf yn meddwl nad ydych yn fodlon gyda fy ateb.
OK?
Fel hynny?
>> MYFYRIWR: Yeah.
Aros.
>> JASON Hirschhorn: A lle ydych chi eisiau argraffu?
Felly, byddwn yn argraffu llinyn fel 'na?
>> MYFYRIWR: Diddorol.
>> JASON Hirschhorn: Felly, mae hyn yn dweud hyn Mae dadl y math o gymeriad.
Felly, dylai hwn fod yn gymeriad.
>> MYFYRIWR: Dim ond yn cymryd yr un cyntaf.
>> JASON Hirschhorn: Felly, mae hyn yw hyn a ddywedais o'r blaen.
Fel y dywedais, nid yw'n storio'r llinyn y tu mewn pwyntydd amrywiol.
Mae'n storio -
>> MYFYRIWR: Gwerth cyntaf y llinyn.
>> JASON Hirschhorn: Cyfeiriad gwerth cyntaf y llinyn.
Pe baem yn argraffu'r hyn, rydym yn cael y gwerth y tu mewn pwyntydd.
A byddwn yn ei weld, yn wir, cyfeiriad cof.
>> A yw hynny'n gwneud synnwyr?
Mae'n ddrwg gennym.
Arhoswch, a yw hynny'n ateb eich cwestiwn, er bod?
>> MYFYRIWR: Yeah.
>> JASON Hirschhorn: Mae'r llinell o god yn creu llinyn ac yna un arall
pwyntydd amrywiol sydd wedi pwyntio i'r llinyn, y rhesi.
Yeah.
>> MYFYRIWR: Felly, os ydym yn mynd un cof mynd i'r afael ymhellach, byddem yn cael y h?
A yw wedi ei storio fel llinyn?
>> JASON Hirschhorn: Fel, fe wnaethom -
felly mae hyn yn werthfawr i'w wneud.
Mae hyn yn rhifyddeg pwynt, yr ydych yn guys wedi gweld o'r blaen a dylai fod
gymharol gyfforddus ag ef.
Mae hyn yn debyg i ysgrifennu -
pe baem yn ysgrifennu llinell hon o god, rydym wedi gweld nodiant amrywiaeth o'r blaen.
Dylai hyn roi ail i ni gwerth amrywiaeth hwn, h.
>> Os byddwn yn gwneud hyn, dylai hyn hefyd roi ni yr ail gwerth yn y casgliad.
Oherwydd ei fod yn mynd i beidio â cof cyfeiriad y peth cyntaf, ond mae'r
gyfeiriad cof am y peth un drosodd.
Ac yna y dereferences gweithredwr seren y pwyntydd.
Ac eto, gadewch i ni weld.
Rydym yn cael f eto.
>> MYFYRIWR: Beth yn union mae dereference yn ei olygu?
>> JASON Hirschhorn: Dadgyfeirio yn air ffansi i fynd iddi.
Ewch i hynny a chael yr hyn sydd yno yw dereference pwyntydd.
Dim ond gair ffansi ar gyfer hynny.
>> MYFYRIWR: Os ydym eisiau print y llinyn cyfan, gallem
wneud pwyntydd ampersand?
>> JASON Hirschhorn: OK, yr ydym yn mynd i oedi yma.
Rydym yn mynd i ben yma.
Ampersand yn rhoi cyfeiriad i chi lleoliad, felly pan fyddwch yn gwneud ampersand o
newidyn, mae'n rhoi'r cyfeiriad i chi lle y newidyn yn cael ei storio.
Bydd pwyntydd ampersand yn rhoi i chi y cyfeiriad y PTR lle ptr mewn cof.
>> Nid ydym yn mynd i fynd ar gyda'r enghraifft hon.
Gallwch chyfrif i maes hyn pethau ar eich pen eich hun.
Ond unwaith eto, gallai hyn hyd yn oed yn ymylu a ychydig tu hwnt i'r hyn sydd angen i chi ei wybod am
cwmpas y canol tymor--
neu y cwis hwn, yn hytrach.
Mae'n ddrwg gennym.
>> Rydym yn mynd i symud ymlaen, gan fy mod byddai yn hoffi i wneud un broblem codio
cyn amser ar ben.
Ac rydym yn mynd i cod yr hyn yr wyf yn meddwl yw'r mwyaf cymhellol o'r rhain
enghreifftiau, atoi.
Felly, roedd hwn yn gwestiwn ar cwis ddwy flynedd yn ôl.
Ac yr wyf wedi ei ar y bwrdd yma.
>> Gofynnwyd i bobl ar y cwis -
eu bod yn cael ychydig yn fwy tesxt yn y cwestiwn, ond yr wyf yn dileu y
testun oherwydd ei fod yn ddiangen at ein dibenion yn awr.
Yr oedd yn union ychydig o gefndir ar yr hyn y atoi wnaeth.
Ond i chi i gyd yn gwybod ac yn dda iawn gyfarwydd â atoi.
>> Rwy'n awgrymu i chi cod hwn ar ddalen o bapur.
Rwyf hefyd yn awgrymu eich bod yn defnyddio'r strategaeth ein bod wedi mynd dros
llawer yn ein hadran.
Yn gyntaf, gwnewch yn siŵr eich bod yn deall pa atoi yn ei wneud.
Tynnwch lun neu yn dod i fyny gyda rhai delwedd meddwl ohono yn eich pen.
Nesaf, ysgrifennwch pseudocode ar gyfer hyn.
Ar y cwis, os bydd yr holl ydych yn ei gael yw pseudocode, o leiaf yr ydych
roi rhywbeth i lawr.
Ac yna map y pseudocode ar C. Os oes gennych siec yn eich
pseudocode, fel gadarnhau a oes rhywbeth yw 1, sy'n mapio ar un os
cyflwr ac yn y blaen.
Ac yn olaf, codio'r rhaglen yn C.
>> Felly, mynd yn ôl i atoi a chymryd pum munud i roi cod hwn ar ddalen o
papur, sydd yn ôl pob tebyg am y faint o amser y byddech yn ymgymryd â
cwis i atoi cod.
Pump i 15 munud, bum i 12, pump i 10 munud, yn ymwneud â faint o
amser y byddech yn ei dreulio ar y cwestiwn yn y cwis.
Felly, yn cymryd pum munud yn awr, os gwelwch yn dda.
Ac os oes gennych unrhyw gwestiynau, codi eich llaw a byddaf yn dod o gwmpas.
>> [SGYRSIAU OCHR]
>> JASON Hirschhorn: OK, felly a oedd yn bum munud.
Dyna oedd yn ôl pob tebyg am faint o amser y byddech yn ei wario ar hynny ar gwis,
efallai ben isaf y cyfnod hwnnw.
Byddwn yn ailadrodd mewn tipyn.
Gadewch inni ddechrau codio hyn.
Ac os nad ydym yn cael yr holl ffordd drwyddo, yr atebion i hyn ac mae hyn yn
Cwestiwn cwis ar gael, unwaith eto, Fall 2011 yw pan ofynnir y cwestiwn hwn
ymddangos ar y cwis.
>> Ac roedd yn werth wyth pwynt ar y cwis hynny.
Wyth pwynt ar y pen uchaf y faint o bwyntiau rhywbeth yn werth.
Rhan fwyaf o gwestiynau yn yr ystod o 1-6 o bwyntiau.
Felly, mae hyn yn fwy o her cwestiwn, yn sicr.
A all unrhyw un mynd i mi ddechrau?
>> Yn gyffredinol, yr hyn rydym yn mynd i am ei wneud â'r hyn
gweithredu atoi, yn rhesymegol?
Beth ydym ni eisiau ei wneud?
Felly, rydym yn mynd i ysgrifennu rhai pseudocode.
>> MYFYRIWR: Trosi cymeriadau i gyfanrifau.
>> JASON Hirschhorn: Trosi cymeriadau i gyfanrifau.
OK.
Felly, faint o gymeriadau ydym ni mynd i angen i fynd drwy?
>> MYFYRIWR: Mae pob un ohonynt.
>> MYFYRIWR: Mae'r holl cymeriadau yn y llinyn.
>> JASON Hirschhorn: Mae pob un o'r gymeriadau yn y llinyn.
Felly, os ydym am fynd drwy bob cymeriad mewn llinyn, beth yw beth
yn C rydym wedi gweld sydd wedi caniatáu i ni fynd drwy bob
cymeriad mewn llinyn?
>> MYFYRWYR: A am ddolen.
>> JASON Hirschhorn: A am ddolen.
Felly, rydym yn mynd i ddolen trwy pob cymeriad yn s.
>> Yna, beth ydym yn mynd i eisiau i wneud pan fyddwn yn cael cymeriad penodol?
Dweud ein bod yn cael pasio 90.
Rydym yn cael y 9.
Mae'n gymeriad.
Beth ydym ni eisiau ei wneud gyda y cymeriad 9?
>> MYFYRIWR: Tynnwch oddi gymeriad 0?
>> MYFYRIWR: Add 0?
>> JASON Hirschhorn: Tynnwch rhag gymeriad 0?
>> MYFYRIWR: Yeah.
>> JASON Hirschhorn: Pam ydych am wneud hynny?
>> MYFYRIWR: [Anghlywadwy]
gwerth.
Mae ei gwerth int.
>> JASON Hirschhorn: Iawn, felly rydym yn cymryd y cymeriad 9, tynnu oddi
cymeriad 0 i gael gwirioneddol cyfanrif 9.
Melys.
A sut ydych chi'n gwybod bod cymeriad 9 minws 0 cymeriad yw 9?
Pa siart wnaethoch chi edrych ar?
>> MYFYRIWR: Mae rhesymegol naw lleoedd rhwng 9 a 0.
Neu gallech edrych ar y tabl ASCII.
>> JASON Hirschhorn: Tabl ASCII.
Ond ie, rydych yn gywir hefyd.
Felly, rydym yn tynnu 0.
Felly, yn awr mae gennym y cyfanrif 9.
A beth ydym ni eisiau ei wneud â hynny?
Os oes gennym 90, 'i' y cyfanrif cyntaf yr ydym wedi, yr hyn yr ydym am ei wneud?
>> MYFYRIWR: Byddwn yn rhoi mewn cyfanrif dros dro amrywiaeth, yna gwneud mathemateg iddo
ddiweddarach i wneud yn i mewn i ben.
>> JASON Hirschhorn: OK.
>> MYFYRIWR: Gallwch ddechrau ar ddiwedd y yr amrywiaeth ac yna symud ymlaen fel
bod pob tro y byddwch yn symud ymlaen, chi luosi gyda 10.
>> JASON Hirschhorn: OK.
Mae hynny'n swnio fel 'n bert syniad cymhellol.
Gallwn ddechrau ar ddiwedd ein amrywiaeth, a gallwn ddefnyddio strleng.
Gallwn ddefnyddio strleng yma.
Byddwn yn cael hyd ein llinyn.
Rydym yn dechrau ar y diwedd.
Ac + yr un cyntaf, rydym yn unig gymryd y cyfanrif, ac efallai rydym yn creu fel
top amrywiol gyfanrif newydd hyd lle rydym yn storio popeth.
Felly rydym yn ddolen trwy bob torgoch mewn oddi wrth yn ôl i'r blaen, rydym yn tynnu 0, ac
yna rydym yn mynd ag ef, ac yn dibynnu ar lle mae, yr ydym luosi
gan bŵer o 10.
Oherwydd bod yr un cyntaf, beth ydyn ni lluoswch y cymeriad rightmost gan?
>> MYFYRIWR: 10 i 0.
>> JASON Hirschhorn: 10 i 0.
Beth ydym yn lluosi yr ail cymeriad rightmost gan?
>> MYFYRIWR: [Anghlywadwy].
>> JASON Hirschhorn: Beth?
>> MYFYRIWR: 10 i 1.
>> JASON Hirschhorn: 10 i 1.
Mae cymeriad trydydd-rightmost?
>> MYFYRIWR: 10 i 2.
>> JASON Hirschhorn: 10 i 2.
>> MYFYRIWR: Mae'n ddrwg gennyf, nid wyf yn deall yr hyn yr ydym yn ei wneud yma.
>> JASON Hirschhorn: OK, gadewch i ni fynd yn ôl, felly.
Felly, rydym yn mynd i gael pasio mewn llinyn.
Oherwydd ein bod yn ysgrifennu atoi.
Felly, rydym yn cael eu pasio yn y llinyn.
Dweud ein bod yn cael pasio yn y llinyn 90.
>> Y peth cyntaf i ni yn mynd i wneud yn cael ei osod newidyn cyfanrif newydd yr ydym yn
jyst yn mynd i greu fel ein cyfanrif newydd.
Dyna beth rydym yn mynd i ddychwelyd ar y diwedd.
Mae angen i ni fynd drwy bob cymeriad yn y llinyn oherwydd ein bod wedi pennu
bod angen i ni gyffwrdd pob un a yna ychwanegu at ein cyfanrif newydd.
>> Ond ni allwn ychwanegu fel rhif.
Ni allwn yn unig yn cymryd 9 a ychwanegu 9 at ein cyfanrif.
Mae'n dibynnu ar yr hyn y lle y mae yn y llinyn.
Rydym yn mynd i angen i luosi iddo gan pŵer o 10.
Oherwydd dyna sut roedd 10 yn gweithio sylfaenol.
>> Felly, rydym yn mynd i gael y gwir cymeriad, neu'r cyfanrif gwirioneddol
rif, drwy dynnu cymeriad 0 o gymeriad 9 fel y gwnaethom gyda
tynnu cyfalaf cymeriad A o beth bynnag cymeriad a oedd gennym yn un o
problemau hynny.
Felly, byddwn yn mewn gwirionedd yn cael nifer o 0 i 9 arbed fel nifer go iawn, ac rydym yn annhymerus '
ei luosi pŵer o 10 yn dibynnu ar ble rydym yn y llinyn.
Ac yna rydym yn mynd i ychwanegu yn ôl i mewn i'n amrywiol cyfanrif newydd.
>> Felly, beth fyddai hyn yn edrych fel y byddai yn cael eu - byddwn yn tynnu dros yma.
Os byddwn yn cael eu pasio yn y llinyn 90 -
>> MYFYRIWR: [Anghlywadwy].
>> JASON Hirschhorn: Ond atoi cymryd llinyn.
Felly, rydym yn mynd i fynd drwy y daliad.
Byddwn yn cael ei drosglwyddo yn 90.
Rydym yn mynd o gefn i'r blaen.
Rydym yn cymryd y 0.
>> MYFYRIWR: Mae'n ddrwg gen i.
Efallai mae hyn yn dwp.
Os ydym yn cael eu pasio yn llinyn, pam yn 90 yr hyn yr ydym yn
cael ei basio i mewn?
Gan fod 90 yn gyfanrif.
>> JASON Hirschhorn: Gan fod atoi yn cymryd llinyn ac yn troi i mewn i'r cyfanrif
cynrychiolaeth o'r llinyn.
Ond nid y llinyn 90 yw'r gyfanrif 90 neu nifer 90.
Mae'r llinyn 90 yn amrywiaeth o ddau, neu tri chymeriad, yn hytrach, y 9
cymeriad, y 0 cymeriad, a y slaes 0 cymeriad.
>> Ac rydym yn ysgrifennu atoi oherwydd, er enghraifft, pan fyddwch yn cymryd y gorchymyn
ymresymiad llinell, ac mae'n cadw mewn argv, mae'n arbed fel llinyn.
Ond os ydych am drin fel nifer, angen i chi ei drosi i
cyfanrif gwirioneddol.
Pa gwnaethom un o'n setiau problem.
Pa gwnaethom yn nifer ein setiau problem.
Mae pawb a gymerodd yn gyfanrif fel ymresymiad llinell orchymyn.
Felly dyna pam mae ein swyddogaeth atoi cymryd llinyn.
>> Felly eto, yn ein enghraifft yma, rydym yn yn mynd i gymryd y cafodd yr un olaf.
Rydym yn mynd i dynnu cymeriad 0 ohono, gan fod y cymeriadau 0
dynnu gan y cymeriad 0 rhoi i chi y nifer gwirioneddol 0, yn ôl
y math ASCII a wnawn.
>> Gan fod cymeriadau yn cael eu cynrychioli fel wahanol na'u gwir - y
cymeriad yn, er enghraifft, llythrennau bach a yw 97.
Dyw hi ddim - wps!
Dyw hi ddim yn beth bynnag byddech yn ei ddisgwyl iddo fod, 0, er enghraifft.
Felly, rhaid i chi dynnu y gymeriad i gael 0.
>> Felly, rydym yn mynd i wneud hynny yma i gael y nifer gwirioneddol.
Ac yna rydym yn mynd i luosi iddo gan pŵer o 10 yn dibynnu ar ble y mae'n
yn y llinyn, ac yna cymryd y ac yn ychwanegu at ein gwerth lle
amrywiol er mwyn i ni ddod o hyd i ein cyfanrif newydd terfynol.
A yw hynny'n gwneud synnwyr i bawb?
>> Felly, nid ydym yn mynd i roi cod hwn ar hyn o bryd, oherwydd ein bod yn
mynd yn brin o amser.
Rwy'n ymddiheuro am yr amseriad hynny.
Ond mae hyn yn beth, gobeithio, a fyddech yn yn gallu ei wneud ar y cwis - ar
iawn o leiaf, yn cael pseudocode hwn ysgrifennu allan.
>> Ac yna, pe baem yn ysgrifennu pseudocode, mewn gwirionedd, gallem wneud hyn
yn weddol gyflym.
Mae pob llinell o sylwadau a rydym yn ysgrifennu yma yn cyfateb i tua
un llinell o god C.
Datgan newidyn, ysgrifennu newydd dolen, mae rhai tynnu, mae rhai
lluosi, ac mae rhai aseiniad.
Byddem yn ôl pob tebyg hefyd yn awyddus i ysgrifennu llinell dychwelyd.
Efallai y byddwn hefyd eisiau rhoi rhai gwiriadau i mewn yma.
Yeah.
>> MYFYRIWR: Felly, gallwn drin s fel y llinyn go iawn?
Gan fy mod yn gwybod ei fod yn dim ond cyfeiriad.
Fel, sut y byddech yn cael hyd y llinyn yn cael ei basio drwy?
>> JASON Hirschhorn: Felly sut y gwnaeth hyd y llinyn?
Strlen.
>> MYFYRIWR: strlen, yeah.
Ond gallwch chi roi s fel y ddadl o blaid hynny?
>> JASON Hirschhorn: Felly strlen cymryd seren torgoch.
Ac mae'n dilyn y seren torgoch, ac mae'n yn cadw cyfrif hyd nes ei fod yn cael i
slaes 0. Roedd strlen mewn gwirionedd yn un o'r rhaglenni eraill yr ydym yn
yn mynd i cod.
Dyna un da arall i cod.
Dyna un yn ychydig yn haws, oherwydd os ydych yn mynd i feddwl am hynny
gysyniadol -
Wyf newydd ei ddweud yn uchel - strlen yn dilyn pwyntydd ac yn cadw mynd a
cyfrif a chadw trac nes byddwch yn cyrraedd slaes 0.
>> MYFYRIWR: Iawn, got it.
>> JASON Hirschhorn: Felly gorau o lwc ar cwis 0 yfory.
Os oes gennych unrhyw gwestiynau, 'n annhymerus' fod y tu allan ar ôl hyn.
Teimlwch yn rhydd i e-bost ataf.
Estyn allan at eich TF hun os ydych yn Nid yn fy adran, neu gael fy
e-bost os ydych am iddo.
>> Os ydych am i freak allan a dim ond yn anfon m e-bost, e-bost freakout, 'n annhymerus'
anfon yn ôl, fel, wyneb hapus, neu, fel, yn jôc neu rywbeth.
Felly, mae croeso i chi wneud hynny hefyd.
Pob lwc eto, ac 'n annhymerus' gweld chi i gyd yr wythnos nesaf.