>> SIARADWR 1: Helo bawb.
Rydym yn mynd i ddechrau arni.
Rwy'n credu bod pobl yn dal i fynd i fod yn hidlo mewn.
Ond er budd o amser, felly gallwn fynd â chi guys allan o fan hyn ar amser,
rydym yn mynd i ddechrau.
Felly croesawu i'r adolygiad Cwis 0 CS50.
I'r rhai ohonoch nad ydynt wedi sylweddoli eto, mae gennych gwestiwn ar ddydd Mercher.
Woo-hw.
>> Os nad ydych wedi dechrau astudio eto neu Nid yw wedi sylweddoli bod hwn yn bodoli eto,
cwisiau yn y gorffennol a'r holl wybodaeth am eich cwis ar cs50.net/quizzes.
Mae rhai pethau 'n bert da ar yno, cwisiau yn y gorffennol gan yr olaf 10
blynyddoedd yn ogystal â gwybodaeth am y cwis hwn a phynciau
fydd yn cael eu cynnwys.
Felly gadewch i ni ddechrau arni.
>> Felly, efallai y byddwch yn guys yn cofio, y cyntaf Roedd gan ddiwrnod o ddosbarth Dafydd lampau y rhai ar.
Felly y bôn, popeth sy'n mynd ar o dan y cwfl y cyfrifiadur yn
wneud mewn deuaidd.
Deuaidd yn golygu yr hyn y mae'n swnio fel, 0 ac 1 yn.
Mae ganddo ddau o werthoedd sy'n Gellir ei gynrychioli.
>> Felly, yn union fel yn y dydd cyntaf o adran pan drodd David ar golau
bwlb i gynrychioli ar, neu 1, ein cyfrifiadur deall deuaidd fel 0 a
1 yn, ar neu i ffwrdd.
Hanfodion Binary.
Mae pob lle yn cael ei gynrychioli yn sylfaen dau.
Felly, byddwch yn ychwanegu 2 i 0 ar y 1 i 2 yr holl ffordd i fyny.
>> I gyfrifo beth yw eich deuaidd yw degol, 'ch jyst yn dilyn hafaliad hwn
fath beth.
Os oes gennych 1 yn unrhyw un o'r lleoedd hynny, chi luosi iddo gan ba bynnag
seilio ei fod i mewn, ei ychwanegu i fyny, ac byddwch yn cael y degol.
Felly, mae hyn yw sut yr ydych yn cyfrif i 5 mewn deuaidd.
Yn union fel yr hyn yr ydym yn ei wneud ar y sleid olaf, dyma sut y byddech
cynrychioli 1 drwy 5.
>> Yn yr un modd, dim ond yn hoffi gallwch ychwanegu a tynnu yn y degol neu fôn 10, neu
'n sylweddol unrhyw sylfaen, ar y gall ychwanegu a thynnu mewn deuaidd.
Union beth y byddech yn ei ddisgwyl pan fyddwch yn ychwanegwch y ddwy i fyny, os bydd yn hafal i fwy
nag 1, yr ydych yn cario 1, gwneud yn 0, a gwneud y ychwanegiad y ffordd honno, dim ond
fel y byddech yn ei ddisgwyl gyda rheolaidd degol neu unrhyw sail arall.
Cool.
>> Felly, fel y dywedais o'r blaen, mae popeth sy'n mynd ymlaen o dan y cwfl ein cyfrifiadur
cael ei wneud yn 0 ac 1 yn, neu deuaidd.
Felly sut rydym yn mynegi, er enghraifft, llythrennau, neu rifau, neu gymeriadau?
A'r ateb i hynny yw ASCII.
>> ASCII yn mapio rhwng cymeriadau y byddem fel arfer yn gweld yn y
Saesneg fel A, B, C, tanlinellu, llinellau toriad, a
unrhyw beth fel 'na.
Ac mae'n mapiau hynny i'r gwerth ASCII.
Mae gwerth ASCII yn unig yw rhif sy'n Gellir deall gan eich cyfrifiadur.
Ac yn union fel chi ei wneud yn gallu adio a tynnu gyda rhifau, gallwch chi ei wneud
nhw gyda gwerthoedd ASCII.
>> Felly, yn yr enghraifft hon, yr hyn Bydd hyn yn argraffu?
Yeah, felly dim ond A gofod gofod gofod B C D. O ble ddaeth fy llygoden yn mynd?
Hysbysiad gallwch ddiffinio yn int yn 65 oed.
A phan fyddwch yn argraffu'r bod allan drwy ddefnyddio cant C, bydd yn dehongli hynny fel
cymeriad a bydd yn argraffu A.
>> Yn yr un modd, gallwch chi ddatgan fel torgoch.
A phan fyddwch yn ei hargraffu gan ddefnyddio y cant C, bydd yn dehongli hynny fel
cant D. Ac yn union fel chi yn gallu ychwanegu rhif, gallwch ychwanegu cymeriadau yn
Gwerthoedd ASCII, yn yr achos hwn.
>> Cyn lleied pwyntydd i bawb.
5, fel llinyn, nid yw'n mewn gwirionedd yn hafal 5.
Felly, sut y gallem newid y llinyn 5 i'r cyfanrif 5?
Unrhyw syniadau?
Yeah.
>> Felly, os ydym wedi 5 fel llinyn, gallwn dynnu 0.
A bydd ei rhoi i ni 5.
Ac yn yr un modd, os oes gennym 5 fel cyfanrif, ychwanegu bod i'r llinyn 0.
Ac mae hynny'n rhoi'r llinyn 5 atom.
Cool.
>> Yn awr, yn cofio yn ôl i ddarlithio un lle buom yn siarad am algorithmau.
Felly sut rydym yn mewn gwirionedd yn eisiau cyfrifiadur i wneud pethau diddorol?
Rydych yn gwybod, dim ond adio a thynnu Nid yw rhifau ac argraffu pethau allan yn
hynny gyffrous.
Fel arfer, rydym am i'n cyfrifiadur i perfformio rhyw fath o algorithm.
Rhywbeth ychydig yn fwy cymhleth na dim ond rhifyddeg syml.
>> Algorithm yn unig yw set gam gam wrth o gyfarwyddiadau ar sut i berfformio
a task-- penodol
yn union fel rysáit.
Efallai y byddwch yn cofio y diwrnod cyntaf dosbarth lle David wedi i ni gyfrif ystafell
o bobl a faint o bobl oedd yn yr ystafell.
Efallai y byddwch yn cael ei ddefnyddio i gyfrif o un i un.
1, 2, 3, 4.
Yn yr achos hwnnw, mae algorithm amser llinol.
>> Ond Cyflwynodd David algorithm ar gyfer i chi gyfrif y bobl yn yr ystafell
lle mae pawb yn sefyll i fyny, yr ydych yn dweud eich rhif i berson arall, ychwanegu bod
rhif i fyny, ac un person yn eistedd i lawr.
A ydych yn dweud hynny.
Dyna un math o algorithm.
Gallwn yn dadansoddi pa mor effeithlon â algorithm yn seiliedig ar ei fod yn rhedeg amser.
Ond byddwn yn siarad ychydig bach mwy am hynny yn nes ymlaen.
>> Felly gall pob algorithmau hefyd cael ei ysgrifennu mewn pseudocode.
Pseudocode yn unig yw Saesneg fel defnyddio cystrawen i gynrychioli
iaith raglennu.
Er enghraifft, os oeddem am ofyn i ddefnyddiwr i ddyfalu fy hoff rif, rydym yn
ei chael pseudocode fel y cyfryw.
>> Cael defnyddwyr dyfalu.
Os yw'r dyfalu yn gywir, dywedwch wrthynt eu bod yn gywir, arall yn dweud wrthynt
dydyn nhw ddim yn gywir.
Ac pseudocode yn ffordd o hawdd yn cynrychioli syniad neu algorithm.
Felly nawr efallai y byddwn am ei ysgrifennu mewn gwirionedd hyn yn yr iaith y mae'r cyfrifiadur
gallai dealltwriaeth.
Felly, gallem ysgrifennu ein pseudocode a dehongli hynny i mewn i cod ffynhonnell.
>> Hyd yn hyn, mae'n rhaid i cod ffynhonnell lynu at cystrawen penodol o
iaith raglennu.
A hyd yn hyn, yn CS50, rydym wedi bod yn defnyddio yn bennaf c.
Felly, gallai hyn fod cod ffynhonnell ar gyfer c.
Yn nes ymlaen yn y cwrs, byddwch yn dod nos i gysylltiad â rhaglenni eraill
ieithoedd fel PHP.
Neu os ydych yn hyd yn oed yn cymryd dosbarthiadau eraill, byddwch yn Gallai wneud Java, Python, neu hyd yn oed OCML.
Ond yn ein hiaith rhaglen c, mae hyn yn sut y byddwn yn ysgrifennu y cod ffynhonnell ar gyfer
mae'r algorithm pseudocode sy'n Fi jyst a ddisgrifiwyd yn gynharach.
>> Felly sut mae eich cyfrifiadur mewn gwirionedd yn deall bod?
Fel y dywedais o'r blaen, dim ond mewn gwirionedd deall seroau a rhai.
Felly, sut mae'n mynd o'r ffynhonnell cod i rywbeth y gellir ei
deall?
Wel, mae gennym rywbeth a elwir yn compiler.
>> Os cofiwch yn ôl yn y rhan fwyaf o'ch psets, oedd gennych ryw fath o raglen
hysgrifennu mewn ffeil dot c.
Ac yna byddai'n gwneud i chi deipio.
Felly beth sy'n gwneud ei wneud?
>> Gallwch deipio gwneud i lunio eich rhaglen oherwydd someone--
pwy bynnag ysgrifennodd eich p set; yn ôl pob tebyg David--
creu ffeil gwneud.
A bod yn dweud ei wneud i wybod i redeg eich compiler, a elwir yn chlang, bydd hynny'n
Yna, llunio eich cod ffynhonnell i wrthwynebu cod, sy'n zeros a rhai
bod eich cyfrifiadur yn deall.
Ond ychydig yn nes ymlaen, byddwn yn mynd mwy manwl am crynoadyddion.
>> Felly, yn galw i gof pset 0, where-- ie, gennych chi gwestiwn?
>> CYNULLEIDFA: [Anghlywadwy]?
>> SIARADWR 1: Oes.
Rwy'n credu eu bod mewn gwirionedd yn Dylai fod ar-lein.
Yeah.
>> CYNULLEIDFA: A yw'n hoffi [Anghlywadwy]?
>> SIARADWR 1: Nid yw'n.
Y mae ar cs50.net/quizzes.
>> CYNULLEIDFA: cwisiau Slash, slaes 2013, slaes 0, a dim ond cliciwch thrwy
cwisiau 2013 ac cwis 0, adolygu'r adran sleidiau.
>> SIARADWR 1: Yeah, felly os ydych guys dymuno dynnu i fyny ac yn edrych arno ar eich
cyfrifiadur eich hun, mae hynny'n iawn hefyd.
Ddweud hynny eto.
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Yeah, [Anghlywadwy] yw'r newidyn ffug.
O, ie?
>> CYNULLEIDFA: [Anghlywadwy]?
>> SIARADWR 1: Na, streiciau nad ydynt ar yr arholiad.
Mae'n ddrwg gennym, ei chwestiwn oedd, roedd taro ar yr arholiad.
Ac nid yw'n.
Felly pset 0, dylech guys gael yr holl rhoi ar waith rhywbeth gan ddefnyddio crafu.
Ac rydym wedi dysgu rhywfaint o raglennu sylfaenol blociau adeiladu gan ddefnyddio crafu.
>> Felly, gadewch i ni edrych ar rai bloc adeiladu
sy'n ffurfio rhaglen.
Cyntaf yw mynegiad Boole.
Mynegiadau Boole yn rhai a 0 neu unrhyw beth sydd wedi
ddau werth posibl.
Yn yr achos hwn, yn wir neu'n anwir, ar neu oddi ar, ac ie neu na.
Enghraifft o syml, yn syml iawn, rhaglen sy'n defnyddio Boole
mynegiant i fyny yma.
>> Felly, er mwyn i mynegiadau Boole i fod yn ddefnyddiol, mae gennym weithredwyr Boole.
Mae'r rhain yn weithredwyr y gellir eu defnyddio i gymharu gwerthoedd penodol.
Felly mae gennym ac neu ddim yn hafal i, llai na neu'n hafal i, fwy na neu'n
cyfartal i, ac yn llai na neu'n fwy na.
Ond nid yw gweithredwyr hyn yn ddefnyddiol iawn oni bai y gallwn ni eu cyfuno i mewn i
amodau.
>> Felly, efallai y byddwch yn guys yn cofio o'r dechrau ac o'ch p yn gosod ein bod yn
Roedd gan amodau.
Maent yn, yn y bôn, fel ffyrc mewn rhesymeg eich rhaglen sy'n
executes gan ddibynnu a amod yn cael ei fodloni.
Felly, un o'r amodau a oedd gennym defnyddio sawl gwaith yn y cwrs hwn yw'r
os, arall, os oes, a arall amodau.
>> Dyma enghraifft o sut y Efallai y byddwch yn defnyddio hynny.
Oes rhywun yn gwybod y gwahaniaeth rhwng dim ond yn defnyddio os yw'r datganiadau i gyd
ffordd i lawr penillion os, arall, os, ac arall yn cyfuno?
Ie?
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Yn union.
Felly, os oedd gen i os yr holl ffordd i lawr y ffordd, hyd yn oed os y cyflwr hwn yn dychwelyd
yn wir, bydd yn dal yn parhau profi'r ddwy nesaf.
Tra, gyda arall-os, bydd arall datganiad, os bydd y naill yn dychwelyd yn wir,
nid y lleill yn cael eu profi.
Unrhyw gwestiynau am hynny?
Cool.
>> Felly rydych yn defnyddio os-arall o arall datganiad os ydych yn gwybod mai dim ond
fod yn un o'r achosion hyn.
Felly rydym yn gwybod os yw x yn llai na 0, 'i' bendant ddim yn mynd i fod yn
fwy na 0.
>> Nesaf, bloc adeiladu arall ein bod yn dysgu yn dolenni.
Mae gennym dri math o dolenni.
Ar gyfer dolenni, tra dolenni, ac yn wneud tra dolenni.
Ac yn gyffredinol, pan fyddwch yn eistedd i lawr i ysgrifennu rhywbeth, rhaid i chi benderfynu
pa un o'r tri yr ydych am ei ddefnyddio.
Felly sut rydym yn penderfynu pa un?
>> Rydym yn gyffredinol yn defnyddio ar gyfer dolen os ydym yn gwybod faint o weithiau yr ydym am ei ailadrodd
drwy rywbeth neu faint o weithiau rydym am i gyflawni tasg.
Rydym yn defnyddio tra dolenni os oes angen rhywfaint o amod i fod yn wir i gadw redeg.
Ac rydym yn defnyddio wneud tra yn debyg iawn i tra, ond rydym am i'n cod i redeg ar
o leiaf un tro.
>> Felly wneud tra, beth bynnag sydd yn y do, bydd bob amser yn rhedeg o leiaf un pryd.
Tra, gyda'r amser, mae'n Efallai na fydd yn rhedeg o gwbl os yw'r
Nid yw cyflwr wedi'i fodloni.
Unrhyw gwestiynau â hynny?
>> Felly strwythur ar gyfer dolen.
Yr ydych guys i gyd wedi gweld hyn.
Rydych yn ei ymgychwyn.
Mae gennych ryw fath o gyflwr.
Felly, er enghraifft, efallai y byddwn yn ymgychwyn fel ar gyfer i dychwelyd 0.
ff yn llai na 10.
A fi ++.
Un syml iawn yr ydym wedi ei wneud.
>> Am ddolen tra, yn yr un modd, mae gennych i gael rhyw fath o initialization,
rhyw fath o gyflwr, a rhyw fath o diweddariad.
Felly, gallwn weithredu ein gyfer dolen hefyd fel dolen wrth ddefnyddio'r hyn.
Ac yn yr un modd â do tra dolen, efallai y byddwn yn cael rhywfaint o initialization,
gweithredu rhywbeth, diweddaru, ac ac yna gwirio'r cyflwr.
>> Felly nawr swyddogaethau.
Rydym yn rhoi popeth at ei gilydd.
Efallai y byddwn yn awyddus i ysgrifennu rhai fath o swyddogaeth.
Swyddogaeth gyffredin eich bod yn allai wedi gweld eisoes yn brif.
Main yn swyddogaeth.
Mae ganddo fath ddychwelyd, int.
Mae ganddo enw swyddogaeth, prif.
Ac mae wedi dadleuon, argc a argv.
Felly prif yn unig yw swyddogaeth.
>> Swyddogaethau eraill y gallech fod wedi eu defnyddio, printf printf-- yn function--
GetInt, toupper.
Ond mae'r rhain yn digwydd i wedi bod yn rhoi ar waith ar ein rhan gan
rhyw fath o lyfrgell.
Os ydych yn guys yn cofio cynnwys llyfrgell hon CS50.h neu'r
Rwyf safonol / llyfrgell O.
Ie, cwestiwn?
>> CYNULLEIDFA: A yw Prif unig sy'n gynhenid ​​yn c?
A yw'n jyst fath o [Anghlywadwy]?
>> SIARADWR 1: Y cwestiwn yw os brif yn rhan annatod o c.
Ac ie, yr holl swyddogaethau fod â phrif swyddogaeth.
Mae'n fath o angenrheidiol ar gyfer y cyfrifiadur gwybod ble i ddechrau
rhedeg y cod.
>> CYNULLEIDFA: Felly ni fyddai chi [Anghlywadwy]?
>> SIARADWR 1: Na
Unrhyw gwestiynau eraill?
Cool.
Felly, yn union fel chi yn gallu defnyddio swyddogaeth sydd wedi ei ysgrifennu ar gyfer chi, gallwch hefyd
ysgrifennu eich swyddogaeth ei hun.
Mae hon yn swyddogaeth y gallai rhywun wedi ysgrifennu i gyfrifo cyfaint
o q, er enghraifft.
Mae 'na fath ddychwelyd yma, yn yr achos hwn int, ein henw swyddogaeth q ac mae ein
rhestr o baramedrau.
>> Ac yn nodi bod yn rhaid i chi ysgrifennu y data math o y paramedr ydych am ei
defnyddio neu arall nad yw'r swyddogaeth yn yn gwybod pa fath o
paramedr ddylwn i ei derbyn.
Felly, yn yr achos hwn, rydym am cyfanrif fel ein mewnbwn.
Felly pam y gallai rydym am ddefnyddio swyddogaethau?
>> Yn gyntaf oll, gwych ar gyfer sefydliad.
Maent yn helpu i dorri i fyny eich cod i mewn darnau mwy drefnus ac yn gwneud
yn haws i'w ddarllen.
Symleiddio.
Mae hyn yn dda ar gyfer dylunio.
Pan ydych yn darllen darn o god ac mae'r prif swyddogaeth yn wirioneddol,
hir iawn, gallai fod yn fwy anodd i rheswm am yr hyn sy'n digwydd.
Felly, os byddwch yn torri i lawr i mewn i swyddogaethau, efallai y byddai'n haws eu darllen.
Ac ailddefnyddio-gallu.
Os oes gennych darn o god sydd wedi cael ei Gelwir neu redeg sawl gwaith,
yn hytrach na ailysgrifennu y cod 10 gwaith yn eich prif swyddogaeth, gallech chi
eisiau ei ailddefnyddio.
Ac yna bob tro y mae angen i chi ddefnyddio'r darn o god, ffoniwch y swyddogaeth.
>> Felly nawr os ydym yn cofio yn ôl i'r dechrau, buom yn siarad hefyd am ychydig o gysyniadau,
un ohonynt yn edafu.
Thread yw'r cysyniad o lluosog dilyniannau o cod
gweithredu ar yr un pryd.
Felly meddyliwch yn ôl i'r diwrnod cyntaf lle mae David oedd chi guys yn cyfrif oddi ar y nifer o
bobl yn yr ystafell.
>> Yn y bôn, yr hyn oedd yn mynd arno yw pob un ohonoch guys yn
rhedeg edafedd ar wahân.
Ac edafedd rhai yn dod at ei gilydd i gael rhyw fath o ateb.
Yn yr un modd, yn Scratch, pan fydd gennych sprites lluosog, gallech chi
gael cath a chi.
A byddent yn yr un pryd rhedeg eu sgriptiau eu hunain.
Mae hynny'n enghraifft o edafu.
>> A'r cysyniad arall a oedd a gyflwynwyd yn crafu yn y digwyddiadau.
A digwyddiadau yn phan lluosog rannau o eich cod yn cyfathrebu â'i gilydd.
Yn Scratch, roedd hyn yn pan fyddwch yn defnyddio'r rheolaeth darlledu a'r Pan fyddaf
Derbyn blociau.
>> A hefyd, yn Problem Set 4, gwelsom ychydig o ddigwyddiadau yn ogystal.
Efallai eich bod guys wedi defnyddio llyfrgell Gevent.
Ac yr oedd swyddogaeth waitForClick yr ydych yn aros
ar gyfer y defnyddiwr i glicio.
Ac yn dy cliciwch, yn yr achos hwn, yn y digwyddiad ac yn aros am cliciwch yw eich
triniwr digwyddiad.
>> A hefyd, drwy gydol redeg eich psets a gweithio ar eich psets, byddwch yn
allai fod wedi dod i gysylltiad â mae rhai o'r gorchmynion hyn.
Mae hyn yn yr hyn yr ydych deipio i mewn i'ch ffenestr derfynnell neu beth bynnag ffenestr
sy'n dangos i fyny ar eich g golygu i, yn y bôn, navigate eich cyfrifiadur.
>> Felly, er enghraifft, LS rhestru'r cynnwys cyfeiriadur.
Gwnewch cyfeiriadur yn creu ffolder newydd.
CD, cyfeiriadur newid.
RM, tynnu, dileu'r ffeil neu ryw cyfeiriadur.
Ac yna tynnwch cyfeiriadur yn dileu cyfeiriadur.
>> CYNULLEIDFA: [Anghlywadwy]?
>> SIARADWR 1: Yeah, yn sicr.
Mae'n ddrwg gennym, y cwestiwn oedd os ydych Byddai hyn yn awgrymu rhoi'r
ar y daflen twyllo.
Gallai helpu.
Os oes gennych le, gallwch roi ar.
Mae hefyd yn dim ond yn gyffredinol yn ddigon da i'w gofio oherwydd pan fyddwch yn ei ddefnyddio
efallai y byddwch am i ddim ond wedi ei cof.
Bydd yn gwneud eich bywyd yn llawer haws.
Oeddwn i'n ateb eich cwestiwn?
>> Felly nawr, buom yn siarad ychydig bach yn fyr am lyfrgelloedd.
Ond mae'r ddau brif rhai yr ydym wedi bod ddefnyddio hyd yn hyn yn y cwrs yw
Rwyf safonol / O a cs50.
Pa fath o bethau yn cael eu cynnwys yn y I / O llyfrgell safonol?
>> Yeah, hyd yn hyn rydym wedi defnyddio printf.
Yn cs50, rydym wedi defnyddio GetInt a GetString.
Ac y llinyn math data hefyd yn digwydd i gael eu datgan yn y llyfrgell cs50 hwn.
Byddwn yn siarad ychydig yn fwy yn fanwl ynghylch sut mae llyfrgelloedd yn gweithio a sut y maent yn
rhyngweithio â gweddill eich cod.
Ond dyna'r ddau brif rhai yr ydym wedi dod i gysylltiad â hyd yn hyn yn
y cwrs.
>> Mathau.
Mae'r rhain yn dda i gofio faint o bob math yn cael ei gynrychioli gan neu sut
llawer beit pob un math requires--
int, 4 bytes; torgoch, 1 beit.
Fflôt yw 4 bytes.
Beth yw dwbl?
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Yeah, felly fflôt ond yn dyblu maint.
Beth am hir?
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: OK.
Beth yw hir?
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Yeah, dwbl yn int.
Ydw.
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Long [Anghlywadwy].
Ac yna hir hir yn ddwbl hynny.
>> CYNULLEIDFA: Na, na.
Mae o hyd yn unig yw int.
Mae'n dibynnu ar y bensaernïaeth cyn i'r [Anghlywadwy]
ac int cael yr un maint.
[Anghlywadwy].
>> SIARADWR 1: Felly hir a yn int yr un fath.
Ac yna yn hir o amser dwbl y int.
Cool.
Ac yna, beth yw'r math olaf?
>> CYNULLEIDFA: Pointer.
>> SIARADWR 1: Yeah, felly rydym yn dysgu ychydig am awgrymiadau.
A heb ystyried yr hyn y pwyntydd yn Gallai bwyntio canlynol-- fod yn seren torgoch
neu int star--
'i' 4 bytes am pwyntydd bob amser.
Cwestiynau am hynny?
Ie?
>> CYNULLEIDFA: [Anghlywadwy]?
>> SIARADWR 1: Felly hir a int yn yr un fath yn y peiriant cs50.
>> CYNULLEIDFA: Mae'r peiriant yn gwbl ymgyfnewidiol.
>> SIARADWR 1: Yeah.
Felly, yna hir hir yn ddwbl yn int.
>> CYNULLEIDFA: Dyma'r 32 bit?
>> SIARADWR 1: 32 bit, yeah.
>> CYNULLEIDFA: Felly [Anghlywadwy]?
>> SIARADWR 1: Oes, os nad yw'n gwneud dweud, byddwch yn benodol
Dylai dybio yn 32 bit.
>> CYNULLEIDFA: Byddai'n dweud rhywbeth hoffi gan dybio
pensaernïaeth fel y peiriant.
Ar gyfer 64 bit, yr unig bethau sy'n newid yn ysu ac awgrymiadau.
Maent yn ddau [Anghlywadwy].
>> SIARADWR 1: Ie?
>> CYNULLEIDFA: Cwestiwn.
Felly, ar un o'r cwisiau arfer, mae'n gofyn am int heb ei arwyddo.
Felly, sut y byddai hynny'n cael ei benderfynu o int [Anghlywadwy]?
>> SIARADWR 1: Mae heb eu llofnodi mewn yw 4 bytes hefyd.
Ond yr hyn sy'n wahanol am lofnodi int a int heb ei arwyddo?
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Hawl.
Gall un cynrychioli gwerthoedd negatif.
Ond sut mae'n gwneud hynny?
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Yeah, mae'n arbed 1 rhan i gynrychioli'r arwydd.
Y lofnodi Mae un darn sy'n cynrychioli'r arwydd.
A heb eu llofnodi yn unig yw pob pethau cadarnhaol.
>> CYNULLEIDFA: OK.
Felly, yr ydych yn dweud bod dwbl yn ddwywaith maint fflôt?
>> SIARADWR 1: Dwbl ddwywaith maint fflôt, ie.
>> CYNULLEIDFA: Sut mae pwyntydd i hir hir [Anghlywadwy]?
>> SIARADWR 1: Felly, y cwestiwn yw sut mae y pwyntydd i long-- hir
sut yw mai dim ond pedwar bytes pan hir hir ei 8 bytes.
Felly cofiwch beth yw pwyntydd, yn y bôn, ar y gwerth sylfaenol iawn.
>> CYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Yeah, felly mae pwyntydd yn unig yw lleoliad cof.
Felly, does dim ots faint o le y pwyntydd yn pwyntio i.
Dim ond mae angen 4 bytes i gadw golwg o'r lleoliad cof.
Unrhyw gwestiynau eraill?
Cool.
>> Felly, y peth diwethaf yr wyf wedi yn allbwn safonol.
Dylech eu defnyddio yn aml ddigon y gallwch ei gofio.
Ond mae hyn yn pan fyddwn yn defnyddio printf, er enghraifft.
Ac rydym wedi bachau hyn sy'n Galwyd codau fformat.
>> Felly cant c torgoch, cant ff gyfer int, a gallwn hefyd ddefnyddio cant d.
Mae yr un peth.
Ond, yn gyffredinol, yn CS50 rydym ceisiwch ddefnyddio ff cant.
Canran dd ar gyfer fflôt.
Ld y cant ar gyfer hir hir ac s y cant ar gyfer llinyn.
>> Yn yr un modd, yr ydym wedi bod yn defnyddio ychydig o ddilyniannau dianc hyn.
Er enghraifft, ar gyfer n slaes llinell newydd.
Mae hyn yn unig ar gyfer pan fyddwch yn fformatio eich cod ar gyfer print f.
Ie?
>> CYNULLEIDFA: Beth yw y cant d amdano?
>> SIARADWR 1: Felly, y cwestiwn yn yr hyn sy'n cant d amdano?
Canran d ar gyfer ints.
Canran d a fi cant yr un fath.
>> CYNULLEIDFA: Beth yw'r gwahaniaeth rhwng slaes n a slaes r?
>> SIARADWR 1: Felly, y cwestiwn yw beth yw'r gwahaniaeth rhwng adlach n a
r adlach?
Rwy'n credu slaes r yw--
>> CYNULLEIDFA: Felly slaes r yn unig yn awgrymu dychwelyd i gychwyn y llinell
heb wir yn mynd i linell newydd.
Felly, os ydych yn argraffu r slaes ac rydych fynd yn ôl at ddechrau'r llinell
yna byddwch yn argraffu mwy o bethau, byddwch yn trosysgrifo y pethau sydd eisoes ar
[Anghlywadwy].
Tra, n mewn gwirionedd yn mynd i newydd llinell ac yn mynd i [Anghlywadwy].
>> SIARADWR 1: Wel, unrhyw gwestiynau eraill?
Mae pob hawl.
Rydw i'n mynd i law i ffwrdd i Dan fydd yn parhau.
>> [Cymeradwyaeth]
>> DAN: All righty.
Felly, byddaf yn sôn am led arall amrywiaeth o syniadau gan y dosbarth sydd yn
fras gynrychioliadol o wythnos dau a dechrau'r wythnos tri gan ddechrau i ffwrdd
gyda castio, sydd ychydig yn ffordd o drin gwerth o fath arbennig fel
gwerth o fath gwahanol.
Felly, gallwn wneud hyn gyda chars i ints, arnofio i ints, a
ysu hir i ddyblu.
>> Gall yr holl bethau hyn yn cael eu defnyddio fel ffyrdd o drin rhywfaint o werth rhifol
torgoch minws â rhai eraill gwerth rhifol.
Felly, mae rhai problemau gyda hyn, o cwrs, sy'n dod pan fyddwch yn bwrw
pethau fel fflôt i ints.
Felly mae hwn yn ychydig yn od.
Mae gennym fflôt sydd yn 1.31.
Rydym luosi iddo gan 10,000.
Ac yna rydym yn ei argraffu fel int.
Beth mae'r allbwn hwn?
10,000 gwaith 1.31.
Felly 13,000, yw bod y dyfalu?
>> CYNULLEIDFA: Yr wyf yn credu ei fod yn 10,000.
>> DAN: Felly rwy'n ei luosi 10,000 cyn i mi i'n castio iddo.
>> CYNULLEIDFA: Oh.
Oni fyddai cael un 9 a rhai 0 rhifau?
>> DAN: Efallai y byddwch yn cael rhywfaint digidau rhyfedd.
Felly gywir, mae'n 1.3 gwaith 10,000.
Felly dyna 13,000.
Ac mae weird-- ychwanegol hwn
>> CYNULLEIDFA: 13,100.
>> DAN: 13,100.
Diolch i chi, Rob.
Ac mae weirdness-- ychwanegol hwn
hyn 9,9--
yn syml oherwydd castio hwn a ddaeth i ben i fyny talgrynnu i lawr lle
ni ddylai fod wedi.
Yeah.
>> CYNULLEIDFA: Y castio yn digwydd ar ôl unrhyw beth arall?
>> DAN: Felly, gan fy mod wedi hyn mewn print, mae'n mae lluosi hwn cyn iddo
castio yn gwneud hyn.
>> CYNULLEIDFA: [Anghlywadwy].
>> DAN: Yr wyf yn meddwl y byddai'n bwrw yn gyntaf, yeah, a fyddai'n 10,000.
Unrhyw beth arall?
Cool.
Felly, mae hyn yn 13,099.
Pam mae hyn yn digwydd?
Imprecision.
>> Nid fflotiau yn berffaith.
Gallant ond yn cynrychioli rhifau i nifer penodol o ffigurau ystyrlon.
Felly, os ydym yn argraffu 8 ffigys sig ar arnofio hwn, rydym yn cael rhyw fath o
rhif edrych yn hyll.
A dyna oherwydd nad 1.31 yn gallu gywir eu cynrychioli gan syml
pwerau o ddau yn y peiriant.
Felly mae'n dod i ben i fyny yn cymryd yr agosaf dyfalu, sy'n dod i ben i fyny
bod yn ychydig yn isel.
Gwneud synnwyr?
OK.
>> Yn awr, troi yn ffordd wahanol o gwneud datganiadau amodol lle mae pob
yr ydym yn gofalu am yn newidyn sengl.
Felly, yn yr enghraifft benodol, rydym yn cael cyfanrif gan y defnyddiwr.
Ac yna rydym yn edrych ar yr hyn y cyfanrif yn.
Yn ôl pob tebyg, mae'n rhif rhwng un a phedwar.
Dyna beth rydym yn gofyn am.
>> Felly, byddwch yn gwneud switsh o yr enw newidyn.
Yna byddwch yn sefydlu achosion o bosibl gwerthfawrogi y gallai fod.
Felly achos un, yn dweud ei fod yn isel.
Ac yna byddwch yn torri i fynd allan o'r cyflwr switsh felly
nad ydych yn cadw i fynd.
>> Yn yr achos-- nesaf
felly achos dau a achos three--
os yw'n achos dau 'i jyst yn disgyn i lawr i y llinell gyntaf o god y gwêl fel gyda
tri achos hyd nes ei fod yn gweld toriad.
Felly, y rheswm ydych yn cael un achos i unig print isel yw oherwydd fy mod
gael egwyl hwn yma.
Os byddaf, dyweder, anwybyddu break-- hwn os byddaf yn taflu breakaway-- hwn
byddai'n argraffu isel, ac yna byddai argraffu canol, ac yna byddai'n torri.
>> Felly seibiannau yn rhan bwysig o newid amodau a
dylent fod yno.
Unrhyw achosion nad ydynt yn nodi'n benodol yn cael eu trin gan y ddiofyn
Dylai achos yn y switsh a chael eu bwrw.
>> CYNULLEIDFA: Felly 1, 2, 3, a byddai 4 fod n?
>> DAN: Gwerthoedd y gall fod yn n.
Ydw.
Yeah?
>> CYNULLEIDFA: Felly pan fydd gennych bod [Anghlywadwy]?
>> DAN: Byddech argraffu isel, ac yna byddai'n argraffu canol, ac
yna byddai'n torri.
>> CYNULLEIDFA: Pam y byddai'n argraffu canol os [Anghlywadwy]?
>> DAN: Felly popeth o dan achos cyn y toriad yn dod o dan.
Felly achos un brint achos dan un fel y mae hwn print canlynol.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Felly rhif hwn yn unig yw neilltuol gwerth y newidyn hwn
Gall gymryd, dde?
A yw hynny'n gwneud synnwyr?
Yeah.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ie, byddai achos dau argraffu canol ac yna torri.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Yr wyf yn meddwl o gwbl?
Pa fathau data arall gallwch newid drosodd?
>> CYNULLEIDFA: Gallwch newid dros unrhyw fathau o ddata.
Ond dim ond yn golygu unrhyw beth dros chars a ints a phethau fel 'na, oherwydd
os ydych yn newid dros pwyntydd nid yw hynny'n wir yn gwneud synnwyr,
newid dros llwythi, os yw'n hyd yn oed yn gadewch i ni ydych yn gwneud hynny, oherwydd y pwynt arnawf
mewn cywirdeb, ni fyddai chi wir am wneud hynny beth bynnag.
Felly 'n bert lawer, dim ond ints a chars a phethau fel 'na.
>> DAN: Yeah, 'i' pan fydd gennych eglur ydych gwerthoedd bod yn gwybod, yr wyf yn meddwl, yn gallu bod yn
bod switsh mewn gwirionedd yn ddefnyddiol.
Da?
OK.
>> Scope yw ystod y mae datgan amrywiol yn ymestyn.
Felly, yn y darn bach hwn o god gen i, byddai'n llawn o wallau.
A'r rheswm yw i mi ddatgan int hwn ff o fewn cwmpas o hyn ar gyfer dolen.
Ac yna Im 'yn ceisio cyfeirio bod ff y tu allan i gwmpas hynny ar gyfer dolen.
>> Felly y bôn, gallwch chi feddwl am gwmpas ag unrhyw beth yr ydych yn datgan
gyda tu mewn i set o braces cyrliog yn unig bodoli o fewn braces cyrliog hynny.
Ac os ydych yn ceisio defnyddio'r newidyn y tu allan i braces cyrliog rheini, wnewch chi helpu
cael gwall gan y compiler.
Yeah?
>> CYNULLEIDFA: Felly, nid yw'r un yn gweithio?
>> DAN: Nid yw hyn yn gweithio, ie.
Strings.
Llinyn torgoch yn *.
Maent yn union yr un fath.
Maent yr un awgrymiadau i gymeriadau.
A dylai unrhyw llinynnau sydd gennych yn dod i ben gyda slaes sero, sydd ychydig
confensiwn c.
>> Fe'i gelwir yn y terminator NULL.
Ac NULL--
cyfalaf N, cyfalaf U, cyfalaf L, cyfalaf L--
Nid yw yr un fath â'r Terminator NULL.
Mae hwn yn pwyntydd.
Mae hon yn gymeriad.
Maent yn wahanol iawn.
Cofiwch ei.
Bydd yn ar y cwis, yn ôl pob tebyg.
Nid wyf wedi gweld y cwis.
Yeah?
>> CYNULLEIDFA: Felly NULL yw, dyweder, mae'r pwyntydd?
>> DAN: Ydw.
>> CYNULLEIDFA: Beth mae [Anghlywadwy]?
>> DAN: Os, yn dweud, yn cael ei alw'n malloc pan fyddwch Nid oes gennych ddigon o gof i gael
beth bynnag faint rydych yn gofyn amdano, Bydd malloc dychwelyd NULL.
Mae'n, yn y bôn, pryd bynnag y swyddogaeth yn i fod i ddychwelyd pwyntydd, rydych
Mae angen i wirio yn erbyn NULL oherwydd NULL yn good-- 'n bert
'i', math o, mae'r gwerth garbage.
Mae'n sero cyn belled ag awgrymiadau fynd.
>> Pryd bynnag y byddwch yn galw swyddogaeth, sy'n dychwelyd pwyntydd.
Rydych yn mynd i am wirio bod siwr nad yw'r pwyntydd yn NULL
oherwydd NULL yn gyffredin iawn.
Mae'n fath o ddychwelyd garbage.
Felly, os nad yw rhywbeth yn mynd yn iawn, dim ond dychwelyd NULL yn lle hynny.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ie, a dyna hyn.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Sillafu fel hyn.
Mae'n y terminator NULL.
Mae'n llythrennau bach N-U-L-L os eich bod yn sillafu ei.
>> CYNULLEIDFA: Ac yr wyf yn jyst yn mynd yn ôl ac yn ei brofi.
Ac os ydych yn ceisio rhoi pwynt arnawf gwerth i mewn switsh, bydd yn gweiddi ar chi
gan ddywedyd, datganiad yn gofyn mynegiant o'r math cyfanrif.
>> DAN: Dyna chi.
Ond ie, beth oedd y cwestiwn eto?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Felly cyfalaf N, cyfalaf U, cyfalaf L, cyfalaf L yn c beth gwirioneddol.
Mae'n pwyntydd NULL a bydd ond yn cael eu trin felly.
Ni fyddwch byth yn ceisio sillafu y NULL cymeriad a gweld unrhyw
ffordd arall na hyn.
Yeah?
>> CYNULLEIDFA: Felly dychwelyd i torgoch max neu rhywbeth yn y nodiadau, byddai ei
ymgorffori'r un swyddogaeth fel [Anghlywadwy]?
>> CYNULLEIDFA: Felly, yr ydych yn cyfeirio at max dychwelyd cols o getchar, neu
beth bynnag ydyw?
>> CYNULLEIDFA: Yeah.
>> CYNULLEIDFA: Yeah, felly mae'r gyffredinol tymor ar gyfer yr holl bethau y rhai
yn werthoedd sentinel.
Felly, yn hoffi dychwelyd max int o GetInt a max cols o getchar, 'i'
i fod i fod yn debyg, yn iawn, os y pethau hyn yn cael eu dychwelyd i ni,
Aeth rhywbeth o'i le.
>> Ar gyfer awgrymiadau, rydym yn unig yn digwydd i gael y gwerth sentinel bod pawb
yn cytuno arnynt.
Ac mae hyn yn y peth rydych yn dychwelyd pan fydd pethau'n mynd o chwith.
Felly max torgoch yw'r hyn yr ydym yn ei ddefnyddio i gynrychioli rhywbeth
fel NULL neu getchar.
>> CYNULLEIDFA: Felly, os ydych yn profi getchar, fe allech chi jyst roi NULL?
A fyddai hynny'n gwneud gwahaniaeth?
>> DAN: Ni allech wirio NULL.
Byddai'n rhaid i chi wirio max torgoch oherwydd bod y gwerth dychwelyd oddi wrth y swyddogaeth yn
Nid yw cymeriad pwyntydd.
Yeah?
>> CYNULLEIDFA: Mae'r cwestiwn hwn yn gofyn gyfer y darn llinyn.
A yw hynny'n cynnwys y cymeriad null?
>> DAN: Na
A dyna mewn gwirionedd sut hyd llinyn gwybod i roi'r gorau oherwydd ei fod yn mynd drwy
eich amrywiaeth o gymeriadau nes mae'n gweld cymeriad NULL.
Ac yna mae fel, pob dde, dwi'n ei wneud.
>> CYNULLEIDFA: [Anghlywadwy] pump?
>> DAN: Byddai Helo yn bump.
Yep.
Felly, araeau yn barhaus blociau o gof.
Mae ganddynt fynediad ar unwaith drwy ddweud y enwi y rhesi, ac yna, yn cyrliog
bresys, beth bynnag mynegai ydych am fynd i, maent yn mynegeio o sero drwy
hyd y rhesi minws 1.
>> Ac maen nhw'n datgan gan y math o yr beth yr ydych yn ei storio yn y
array, enw'r y rhesi, ac yna beth bynnag yw maint yw y rhesi.
Felly mae hwn yn amrywiaeth torgoch o hyd chwech sydd â gwerthoedd hyn.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Yeah.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Os oes gennych chi beth sydd yn mynd i mewn i'r amrywiaeth a wnaed eisoes.
Felly gallech nodi hyn yn lle hynny fel, dyweder, torgoch, beth bynnag enw eich
amrywiaeth yw, cromfachau gwag hafal cyrliog Brace H coma E atalnod atalnod L L coma
O atalnod cymeriad NULL a Brace cyrliog.
Byddai hynny hefyd yn gweithio fel datganiad.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Yna, bydd angen i chi gael maint a wnaed eisoes.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ydw.
Pob righty.
Dadleuon llinell gorchymyn yn ffordd o cael mewnbwn gan y defnyddiwr fel
dadleuon i'r prif.
Prif cymryd dwy dadleuon.
Mae nifer y dadleuon sydd yn cael ei pasio ar hyd y llinell gorchymyn a
fector llinyn neu amrywiaeth llinyn o'r holl ddadleuon.
>> Felly os wyf i, dyweder, a elwir yn swyddogaeth o'r fath fel dot allan 1 lle, 2 gofod, tri,
Byddai argc yn 4.
A byddai'r argv 0 fod yn dot allan.
Byddai Argv1 fod yn 1.
argv2 fyddai fyddai 2. argv3 yn 3, yn yr achos penodol.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Yr elfen olaf yn y arae oherwydd bod yr amrywiaeth yn argc hyd plws
un o argb, mae'r elfen olaf yw'r pwyntydd NULL.
Mae'n argc plws 1.
Felly, yn yr achos yr wyf newydd ei ddweud, mae'n Byddai argv 0 yn dot allan.
argv 1 yw 1. argv2 yw 2. argv 3 yw 3.
argv 4, sydd yn un mwy o faint nag argc fyddai'n NULL.
>> A dyna y pwyntydd NULL.
Ydw.
Ac mae hynny oherwydd bod llinyn yn yn seren torgoch yn pwyntydd.
Felly, mae'n rhaid iddo fod yr un fath.
Yeah?
>> CYNULLEIDFA: Dau gwestiwn.
Felly un, beth yw'r gwahaniaeth rhwng GetString hwn ac eraill nag un math
yn y peiriant defnyddiwr?
A dau, a yw'n cael ei storio o fewn eich cof diweddar?
Felly fel, byddai GetString fod yn [Anghlywadwy]?
>> DAN: Ble y caiff ei storio?
Nid wyf yn gwybod ble mae'n cael ei storio.
>> CYNULLEIDFA: Felly, mewn gwirionedd, eich bod yn gwybod sut y mae unrhyw swyddogaeth byddwch yn ffonio ei fod dadleuon
yn cael eu storio yn y pentwr?
Felly argc a argv dadleuon to main ac maent ar y corn, neu mewn gwirionedd
ychydig yn uwch na'r hyn yr ydych yn meddwl fel cychwyn y pentwr.
Beth oedd y rhan arall o'r cwestiwn?
>> CYNULLEIDFA: Felly beth yw'r [Anghlywadwy]?
>> DAN: Yeah, 'i' jyst ffordd wahanol o gael mewnbwn gan y defnyddiwr.
Mae hyn yn un o ychydig yn fwy effeithlon a mae'n handier i sgriptiau oherwydd eich
gall dim ond pasio dadleuon i'ch prif swyddogaeth yn hytrach na gorfod aros
ar gyfer defnyddwyr os nad oes unrhyw ddefnyddwyr i chi.
>> CYNULLEIDFA: Ac ie, yn cael llinynnau fyddai [Anghlywadwy].
Byddai'n storio'r pethau yr ydych ei angen.
>> DAN: Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ie, argv 0 bob amser yn cynnwys y dot slaes y swyddogaeth alwad.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ie, pob un o'r dadleuon yn i ben o ran cymeriad NULL am eu bod
yn llinynnau.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ie, argv argc yn pwyntydd NULL.
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Oh yeah.
Yeah, mae'n ddrwg gennyf.
>> CYNULLEIDFA: Felly [Anghlywadwy]?
>> DAN: Felly, y cwestiwn yw os ydych yn cael y dot llinell gorchymyn slaes dot allan 1, 2,
byddai nifer y llinell orchymyn dadleuon fod yn ddau neu a fyddai'n tri?
>> CYNULLEIDFA: Yr wyf yn meddwl nad yw'n gwneud hynny wirioneddol bwysig.
Dwi'n tueddu i ddweud, oh, nid oeddech yn pasio unrhyw ddadleuon llinell gorchymyn pryd,
yn amlwg, rydych elwir y swyddogaeth.
Felly, yr wyf yn tueddu i wahardd lleisiol y swyddogaeth o'r llinell orchymyn
dadleuon hyd yn oed er 'i' cynnwys yn argv.
>> DAN: Ond os oedd ar y test--
yeah-- a hefyd os byddwch yn dweud rhywbeth fel argc hafal 3,
eich bod yn sefyll yn ddiogel.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Yr wyf yn meddwl os yn hytrach na galw hyn mewn argc a llinyn cromfachau argv
ond cadw yr un mathau a newydd alw nhw rhywbeth gwahanol fel
a b, byddai'n dal i weithio?
A byddai'n dal i weithio, byddech yn just--
yn hytrach na defnyddio argc-- byddech yn defnyddio ac yn b.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Felly, y cwestiwn yw GetString yw mynd i storio cof yn y domen
oherwydd GetString yn torgoch *.
Mae'n storio cof yn y domen oherwydd ei fod nawr yn galw malloc fewn y gwir
gweithredu'r GetString.
OK, symud ymlaen.
>> Diogelwch.
Felly, i fod yn wirioneddol ddiogel, byddwch yn dibynnu ar ddim un a byddwch yn caniatáu unrhyw un mynediad at unrhyw
eich gwybodaeth, a dyna pam mae pawb yn adeiladu eu peiriannau eu hunain,
eu systemau gweithredu eu hunain, i gyd eu rhaglenni o'r dechrau, ac yn amlwg
peidiwch â gysylltu ag unrhyw beiriannau eraill drwy'r rhyngrwyd.
Felly cyfrifiaduron yn ansicr.
Ydynt mewn gwirionedd.
Mae'n rhaid i ni ymddiried mewn pobl eraill.
>> A'r syniad o ddiogelwch yw eich bod yn ceisio cyfyngu ar faint o
ymddiriedaeth sydd ei angen arnoch.
Ac un o'r ffyrdd yr ydych yn gwneud hynny yw drwy cryptograffeg.
Cryptograffeg yw, yn y bôn, gennym cyfrinachau.
>> Weithiau mae'n rhaid i ni basio ein cyfrinachau hyd drwy, dyweder, y rhyngrwyd neu
pethau eraill.
Ac nid ydym am i bobl gwybod cyfrinachau hyn.
Felly, rydym yn amgryptio ein cyfrinachau i mewn ffordd ein bod yn gobeithio y gall unrhyw un chyfrif i maes.
>> Felly rydym used--
drwy gydol class-- hwn
pethau fel Caesar cipher a [Anghlywadwy], sydd ill dau yn iawn, iawn
ffyrdd anniogel o amgryptio pethau.
Maent yn hawdd i'w chyfrif i maes yr hyn y maent a beth yw eich cyfrinachau yn cael eu.
Y byd go iawn yn defnyddio llawer mwy cynlluniau amgryptio cymhleth.
Ac ni fyddwn yn mynd i mewn i llawer mwy na hynny.
>> Debugging.
GDB ydy 'r enilla.
Rydw i'n mynd i bwysleisio hyn eto.
Defnyddiwch GDB drwy'r amser bob amser gennych broblem.
Gorchmynion sy'n ddefnyddiol yn GDB yn torri, yr ydych yn pasio naill linell
rhif, enw swyddogaeth, yn y bôn ble yn eich cod ydych am roi'r gorau,
ac yn gallu cymryd rheolaeth.
>> Print cymryd amrywiol ac yn argraffu allan beth bynnag y newidyn ar hynny
pwynt yn eich weithredu.
Nesaf yn symud eich gweithredu ar hyd un cam.
A llys grisiau y tu mewn swyddogaeth yn eich gweithredu.
>> Pethau eraill yn cael eu rhedeg, a dyna sut y chi mewn gwirionedd yn rhedeg eich cod.
Parhau yn cymryd yr holl gamau sydd eu hangen i gyrraedd y pwynt torri nesaf.
Ac mae llawer, llawer o rai eraill.
Edrychwch i fyny.
Maen nhw'n wych.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ie, sy'n dadfygiwr.
Felly mae debugger yn rhaglen sy'n yn gadael i chi dadfygio eich rhaglen.
Dyw hi ddim yn rhaglen sy'n canfod bygiau gyfer chi, y byddai er hynny yn wych.
>> Ac yn olaf i mi yw chwilio.
Felly, y mathau o chwilio yr ydym yn siarad am yn y dosbarth hwn yw chwiliad llinol,
sydd ychydig yn eich bod yn edrych drwy bob elfen o'r gofod chwilio, un
elfen ar y tro, nes i chi ddod o hyd yr hyn ydych yn chwilio am, neu nes i chi gyrraedd
diwedd eich gofod chwilio lle pwyntio yr ydych yn dweud na allai ddod o hyd
yr elfen yr ydych yn chwilio amdano.
Ac mae hyn yn cymryd amser ar y gorau yn gyson, sydd yn 0 o 1 ac ar llinellol gwaethaf
amser, sef 0 o n.
>> Chwiliad deuaidd, mae angen elfennau sordid.
Rydych yn mynd i ganol eich elfennau, weld a yw'r elfen rydych yn chwilio amdano
yn fwy neu'n llai na'r elfen eich bod chi yn y canol.
Mae'n ei fod yn mwy o faint, yr ydych yn dweud bod y gwaelod eich chwiliad gofod yw eich
lleoliad presennol, y canol, a'ch bod yn ailgychwyn y broses.
Os yw'n llai, yr ydych yn edrych yn dweud bod the-- yeah, beth sydd i fyny?
>> CYNULLEIDFA: [Anghlywadwy]?
>> DAN: Ydw.
Unrhyw fath o fath sydd wedi bod yn eu dysgu mewn y dosbarth yn gêm teg ar gyfer y prawf.
>> [Chwerthin]
>> DAN: Ac mae'r ffaith nad ydych wedi cael i wneud hynny ar gyfer problem penodol, mae'n deg
gêm ar gyfer y prawf.
>> CYNULLEIDFA: A allwn ni fynd drosto sut canlynol--
>> DAN: Bydd yn cael ei mynd drosodd.
>> SIARADWR 2: Y cod gwirioneddol ar gyfer [Anghlywadwy] ar study.cs50.net.
Felly, os ydych yn edrych ar y broblem practis yn y dudalen math uno o
study.cs50.net, mae cod gyfer gweithredu uno fath.
Felly nid oes rhaid i chi weithredu eich hun heno.
Ond gwnewch yn siŵr eich bod yn deall ei fod yn hytrach na dim ond cofio iddo.
>> CYNULLEIDFA: [Anghlywadwy]?
>> SIARADWR 2: Mae'r dudalen didoli uno ar study.cs50.net, mae arfer
problem hynny, os ydych yn clicio drwy'r broblem, yn y pen iawn mae
ateb, sef y merge gweithredu'r fath.
Ond gwnewch yn siŵr eich bod yn deall ei yn hytrach na dim ond cofio ei
neu gopïo i lawr.
>> CYNULLEIDFA: A berffaith ddilys Byddai problem ar gyfer yr arholiad fod
rhywbeth fel dyma restr.
Beth mae'r rhestr hon yn edrych fel ar ôl un cam o ddetholiadau fath neu
didoli gosod neu beth bynnag.
Mae un ailadroddiad llawn o'r rhestr.
Felly hyd yn oed os nad ydych yn y pen draw angen cod ar gyfer iddo, mae angen i chi ei ddeall
ddigon da i wybod sut y mae'n mynd i gael ei addasu arae yma.
>> DAN: Dyna ni i mi.
>> [Cymeradwyaeth]
>> LUCAS: Hey pawb.
Fy enw i yw Lucas.
Rydw i'n mynd i siarad am recursion, pob y mathau yr ydym wedi dysgu, ac mae
ychydig bach o'r holl awgrymiadau.
OK?
Felly, yn gyntaf oll, recursion.
Beth mae'n ei olygu i ddweud bod swyddogaeth yn ailadroddus?
>> CYNULLEIDFA: Yn galw ei hun.
>> LUCAS: OK, yn galw ei hun, yeah.
Felly, fel y llun yma, er enghraifft.
Mae fel y llun y tu mewn o llun ac yn y blaen.
Felly, er enghraifft, gallwch have-- fel Dan a oedd yn siarad am chwiliad deuaidd.
Un ffordd y mae chwiliad deuaidd yn recursive yw'r ffaith eich bod yn
ceisio dod o hyd i rif.
Felly, byddwch yn mynd i'r canol.
Ac yna i chi weld a yw'r niferoedd yno yn y chwith ac yn y dde.
>> Ac yna os byddwch yn cael gwybod y rhif yw mynd i fod ar y chwith, 'i' yr un fath
beth â gwneud y chwiliad eto ond dim ond ar y chwith o'r rhestr.
Felly dyna sut y mae'n swnio fel ei fod yn ailadroddus.
Felly dyna pam yr ydych yn guys yn cael recursive ateb ar gyfer math uno.
>> Iawn, felly dyma enghraifft.
Felly, gadewch i ni ddweud fy mod am ddewis yr holl rifau o 1 i n.
Gallaf sylweddoli bod swm yr n rhif yw n plws minws n 1 hyd at 1.
Ond wedyn, os wyf yn edrych ar n minws 1 plws n minws 2 plws 1, dyna yr un fath
beth â rhifau grynhoi hyd at n minws 1.
Felly, gallaf ddweud y swm o swm cyfartal hafal n plws swm minws n 1.
A yw hynny'n gwneud synnwyr?
>> Ac yr wyf hefyd byddai'n rhaid i rywbeth arall Gelwir yr achos sylfaenol, sef bod
y swm y rhifau i fyny i sero fyddai sero.
Felly, cyn gynted ag yr wyf yn cyrraedd y nifer sero, yr wyf yn rhoi'r gorau i cyfrif.
A yw hynny'n gwneud synnwyr?
>> Felly dyma enghraifft o sut Gallaf gweithredu hynny.
Felly mae gen i swyddogaeth hon mewn rhai.
Mae hynny'n mynd yn gyfanrif n.
Felly dyma yr wyf yn holi yn gyntaf os n yn yn llai neu yn hafal i sero.
Felly, os yw'n llai neu'n hafal i sero, yr wyf yn dychwelyd sero, sef ein achos sylfaenol.
Fel arall, a gaf fi ddychwelyd n plws swm y rhifau o
un i un n minws.
Gwneud synnwyr?
OK.
>> Felly dyma sut mae'n edrych.
Mae gennych swm o 2 hafal 2 yn ogystal â'r swm o 1.
Ac mae rhai o 1 yw 1 yn ogystal â'r swm o 0, sydd yn 0.
Gwneud synnwyr?
Felly, os edrychwn ar y pentwr o dy rhaglen, dyma sut mae'n edrych.
>> Yn gyntaf, mae gennym y prif swyddogaeth.
Ac yna y prif swyddogaeth Gelwir swm 2.
Ac yna swm 2 yn mynd i ddweud, oh, swm 2 yn dychwelyd 2 yn ogystal â'r swm o un.
Felly, yr wyf yn ychwanegu swm o 1 i'r pentwr.
A'r swm o 1 yn mynd i alw swm o 0, sydd hefyd yn mynd i gael eu hychwanegu
at y pentwr.
Ac yna pob un o'r rhai hyn sydd yn ar ben y llall rhaid i ni ddychwelyd
cyn y gall y rhai eraill yn dal i fynd.
>> Felly, er enghraifft, yma, swm o 0, yn gyntaf, yn mynd i ddychwelyd 0.
A 'na ddethol swm o 1.
Yna swm o 1 yn mynd i dychwelyd 1 i grynhoi o 2.
Ac yn olaf, swm o 2 yn mynd i ddychwelyd i'r brif 3.
A yw hynny'n gwneud synnwyr?
>> Mae'n bwysig iawn i ddeall sut y das yn gweithio ac yn ceisio
weld a yw'n gwneud synnwyr.
Iawn, felly didoli.
Felly pam yn didoli yn bwysig, yn gyntaf oll?
Pam ddylem ni boeni?
Dylai unrhyw un?
Rhowch enghraifft i mi?
Yeah?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Yeah, OK.
Felly, gallwch chwilio yn fwy effeithlon.
Dyna ffordd dda.
Felly, er enghraifft, mae gennym lawer o pethau, mewn gwirionedd, yn ein bywydau sy'n
cael eu datrys.
Er enghraifft, geiriaduron.
>> Mae'n bwysig iawn i gael yr holl geiriau mewn rhyw fath o drefn i ni
yn gallu cael gafael yn rhwydd.
Felly dyna beth oedd yn ei ddweud.
Gallwch chwilio yn fwy effeithlon.
Meddyliwch am pa mor galed y byddai'n cael Geiriadur y mae y geiriau yn
trefn ar hap.
Bydd yn rhaid i chi edrych ar, 'n bert lawer, pob un gair nes i chi ddod o hyd i'r
gair yr ydych yn chwilio am.
>> Os ydych yn defnyddio Facebook hefyd, pan ydych yn edrych ar eich ffrindiau, eich bod yn
mynd i weld bod Facebook yn rhoi eich ffrind agosach sydd ar ben y rhai
nad ydych yn siarad â bod llawer.
Os byddwch yn mynd yr holl ffordd i waelod eich rhestr ffrind, rydych chi'n mynd i weld
bobl nad ydych yn debyg nad yn ei wneud hyd yn oed yn cofiwch eich bod yn ffrindiau gyda.
A dyna oherwydd bod math Facebook eich ffrindiau yn seiliedig ar sut y
cau eich bod iddynt.
>> Felly, trefnu data.
Hefyd Pokemon.
Felly, byddwch yn gweld bod yr holl pokemons niferoedd.
A dyna fel hawdd ffordd o gael gafael ar ddata.
>> CYNULLEIDFA: Cael mynediad Pokemon.
>> LUCAS: Yeah.
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Yep.
Iawn, felly didoli dethol.
Fath dethol yn mynd i ddewis y heb ei ddidoli gwerth lleiaf o restr bob
amser ym mhob fersiwn.
Mae'n fath o fel y math rydych chi'n ei wneud yn eich pen pan fyddwch yn ceisio
didoli rhestr wrth law.
>> Yn y bôn, yr holl chi ei wneud yw i chi edrych gyfer y nifer lleiaf.
Ei roi yn y rhestr ddidoli.
Ac yna byddwch yn chwilio am y nesaf rhif lleiaf.
Ac yna i chi barhau i wneud hynny ac yn y blaen.
>> Felly, didoli dewis yn y bôn i chi dewis bob tro y lleiaf
werth heb eu didoli.
Rhowch ar ddiwedd y didoli rhan o'r rhestr.
Ac yn barhau i wneud hynny.
Felly, gadewch i ni weld yn gyflym yr hyn mae hyn yn edrych fel.
Felly dyma y didoli a rhestr heb eu didoli.
>> Felly, ar gyfer y datrys y rhestr, ei fod yn wag yn y lle cyntaf.
Ac yna yr wyf i'n mynd i ddewis y nifer lleiaf yma, sydd 2.
Felly, yr wyf yn cael y rhif 2 ac yr wyf yn rhoi yn y flaen y rhestr.
Ac yna yr wyf yn edrych am y lleiaf nesaf elfen, sydd 3.
Felly yr wyf yn ei roi ar y diwedd o'r rhestr didoli.
Ac yna mi barhau i wneud hynny.
Rwy'n dod o hyd i 4 ac yn ei roi ar y diwedd.
Dod o hyd i 5 ac yn ei roi ar y diwedd.
>> Ac edrych ar sut yr holl adegau hynny sy'n I ddim yn dweud ei roi ar y diwedd yw,
bôn, cyfnewid ddau werth.
OK?
Ac yna yr un diwethaf, 'ch jyst cael un elfen mwy.
Felly mae eisoes wedi datrys.
>> Iawn, felly didoli gosod.
Didoli Mewnosod ydych yn mynd i gael hefyd y peth o fod wedi cael eu didoli a'u
rhestr heb eu didoli.
Yr unig beth yw bod bob tro y eich bod yn ychwanegu elfen i'r didoli
rhestr, 'ch jyst ddewis yr elfen sy'n yn o flaen y rhestr heb eu didoli.
Ac yna rydych chi'n mynd i ddod o hyd i beth sefyllfa y dylai fod yn y ddidoli
rhan o'r rhestr.
>> Gadewch i ni weld beth mae hyn yn wir mae hyn yn gwneud mwy o synnwyr.
Felly, i ddechrau, er enghraifft, Im 'yn ceisio i mewnosoder y rhif tri yn y
rhan ddidoli o'r rhestr.
Felly, nid oes gan unrhyw beth y rhestr.
Felly gall Fi jyst roi'r rhif 3.
>> Yn awr, yr wyf am ychwanegu rhif 5 i y rhan ddidoli o'r rhestr.
Felly, yr wyf yn edrych ar y rhif 5.
Yr wyf yn sylwi ei fod yn fwy na 3.
Felly yr wyf yn gwybod bod yn rhaid iddo fod yn ôl 3.
Felly, yr wyf yn rhoi 3 a 5.
>> Yna, yr wyf am i fewnosod y rhif 2.
Sylwaf fod y rhif 2 mewn gwirionedd para yna ddau 3 a 5.
Felly, yr wyf mewn gwirionedd yn rhaid i roi i gyd y ffordd yn y ddechrau'r rhestr.
Felly, rhaid i mi, math o, symud yr holl elfennau yn y rhestr didoli felly rwy'n gallu
wneud lle ar gyfer y nifer 2.
>> Yna mi weld y rhif 6.
Gwelaf fod dylai fod yn ôl 5.
Felly yr wyf yn ei roi yno.
Ac yn olaf, yr wyf yn edrych ar y rhif 4.
Ac yr wyf yn sylwi y dylai fod rhwng 3 a 5.
Ac yna yr wyf yn ei roi yno a newid holl elfennau eraill.
Gwneud synnwyr?
>> Trefnu yn Bubble.
Felly fath swigen yn y bôn yr hyn yr ydych chi'n mynd i do-- rydym yn galw ei swigen
fath oherwydd eich bod yn mynd drwy'r list-- 'i' mewn gwirionedd yn well os Fi jyst yn dangos
chi'n hoffi this--
a ydych yn mynd i gymharu rhifau cyfagos.
A ydych yn mynd i gyfnewid eu swyddi os nad ydynt yn
yn y drefn gywir.
>> Felly y bôn, yr hyn sy'n mynd i yn digwydd yn fan hyn, er enghraifft,
gennych chi 8 a 6.
Rydych yn gwybod bod y drefn ddidoli bydd mewn gwirionedd fod yn 6 a 5, dde?
Felly, rydych chi'n mynd i gyfnewid y gorchmynion.
Yna, rwy'n gweld 8 a 4 yma.
Ac yr wyf yn gwneud yr un peth.
Rwy'n cyfnewid eto.
Ac yn olaf, 2 a 8.
Rwyf hefyd yn eu cyfnewid.
>> Mae'n cael ei alw Bubble Sort oherwydd ar ôl pob un o'r iteriadau hyn, mewn gwirionedd,
y nifer fwyaf yn y rhestr yn cael yr holl y ffordd hyd at ddiwedd y rhestr.
A yw hynny'n gwneud synnwyr?
Oherwydd ei fod yn cadw cyfnewid ei a'i symud i'r dde.
>> Iawn, felly mae hwn yn ail ailadroddiad.
Byddai'n yr un peth.
'N annhymerus' wneud un cyfnewid a Yna yr un olaf.
Yr wyf nad oes unrhyw cyfnewidiadau ac mae'r rhestr yn cael ei datrys.
Felly, yn Bubble Didoli, rydym yn y bôn yn cadw mynd trwy'r rhestr a chyfnewid
pethau nes i mi sylwi nad oeddwn yn ei wneud unrhyw cyfnewidiadau wneud hynny iteriad, sy'n
yn golygu bod y rhestr eisoes yn cael ei datrys.
Gwneud synnwyr?
>> Gadewch i ni siarad ychydig bach am redeg amser.
Felly, ydych chi'n guys cofio Mawr O, Omega, a Theta?
Yeah?
OK, yr hyn sy'n Big O, yn gyntaf oll?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Yeah, fe'i gelwir yn achos gwaethaf Rhedeg, a dim ond yn golygu ei fod yn
faint yr ydych yn disgwyl i'r rhaglen eu cymryd i redeg.
Fel, yn nhermau o-
yn achos-- n hwn.
Mae nifer o elfennau yn y rhestr yn yr achos gwaethaf.
Fel, yn yr achos gwaethaf posibl.
>> Felly, ar gyfer Bubble Didoli, er enghraifft, mae gennym O Big o n sgwâr.
Pam mae gennym hynny?
Pam fod Bubble Sort Big sgwâr O n?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Yeah, felly bydd yr achos gwaethaf yn y bydd rhaid i mi wneud iteriadau n.
Felly pob un o'r iteriadau yn mynd i dod â'r elfen fwyaf hyd y diwedd
o'r rhestr.
Felly, yr achos gwaethaf yw bod gennyf i wneud hynny peth n amser.
Ac ar gyfer pob un o'r adegau hynny, rhaid i mi gwneud cyfnewidiadau n am fod rhaid i mi gymharu
pob un ddwy elfen.
Felly dyna pam ei fod yn sgwâr n am ei fod yn amserau n n.
>> Yna, didoli dewis hefyd yn n sgwâr oherwydd, ar gyfer pob iteriad, rhaid i mi
edrych ar bob elfen unigol yn y rhestr.
Ac yna ddod o hyd i'r lleiaf, sy'n golygu bod yn rhaid i mi
edrych trwy elfennau n.
Ac mae rhaid i mi wneud hynny amserau n oherwydd Rhaid i mi ddewis yr holl elfennau n.
>> Mae math gosod hefyd n sgwâr oherwydd bod y sefyllfa waethaf fydd
fod, yn un, rhaid i mi mewnosod rhifau n, dde?
Felly, yr wyf eisoes yn gwybod fy mod i'n mynd i gael iteriadau n.
Ond ar gyfer pob un o'r rhifau hynny, os wyf wedi cael i edrych ar bob un o'r rhifau yn
y rhestr didoli a'i roi yn yr holl ffordd yn y blaen, a fydd yn n sgwâr
oherwydd bydd yn n amseroedd n eto.
Gwneud synnwyr?
Beth am omega?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Mae'n y senario achos gorau.
Felly mae'n debyg, mewn llawer o weithiau ar gyfer didoli, y senario achos gorau yn
pan mae'r rhestr eisoes yn datrys.
Felly, nad ydych yn wir gennych i wneud unrhyw beth.
Bubble Didoli sydd â'r gorau senario achos o n.
Ydych chi'n guys yn gwybod pam?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Yeah, os ydych yn cadw golwg ar a oedd gan Dogn data unrhyw cyfnewidiadau neu
Nid yw, os oes gennych rhywbeth fel osod i wir os bu iteriad, os bydd y
rhestr eisoes yn didoli, yn y bôn, beth sy'n mynd i ddigwydd yw fy mod i'n mynd i
ceisiwch gyfnewid bob dau elfennau cyfagos.
Dw i'n mynd i weld bod nid oes unrhyw cyfnewidiadau.
Ac yr wyf yn jyst yn dychwelyd ar unwaith.
>> Felly, mae'n golygu fy mod i newydd gael i yn mynd drwy'r rhestr un pryd.
Felly mae'n n am fy mod yn edrych yn n elfen.
Pam dewis didoli n sgwâr?
>> Yeah, hyd yn oed os bydd y rhestr yn cael ei datrys, er pob fersiwn o'r math dethol, yr wyf yn
rhaid i ddewis yr elfen lleiaf.
Felly, mae hynny'n golygu bod gennyf allan i edrych ar yr holl elfennau yn y heb eu didoli
restru a dod o hyd i'r lleiafswm ar gyfer pob iteriad.
A yw hynny'n gwneud synnwyr?
>> A chleddyf gosod yn N oherwydd yn y achos fy mod i'n ceisio mewnosoder y
niferoedd a phob un o'r rhifau, pan fyddaf yn ceisio mewnosod nhw, yr wyf yn gweld eu bod yn
yn y safle cywir.
Nid oes rhaid i mi fynd yn gwirio'r holl arall rhifau yn y rhestr heb eu didoli.
Felly dyna pam y bydd yn n.
Gwneud synnwyr?
A beth yw theta?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Beth, sori?
Ddweud eto.
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Yn union.
Fel y gallwch weld mai dim ond detholiad storio mewn Merge didoli cael thetas.
A dyna oherwydd dim ond theta sydd gennych os yw'r ddau Big O ac Omega yr un fath.
OK.
Ac yn olaf, uno fath yw mewn log n.
>> Ac yna, fel Dan yn dweud, Uno didoli yn fath o fel yr un ffordd ag y
ydych yn gwneud chwiliad deuaidd.
Felly, byddwch yn cael y rhestr.
A ydych yn mynd i dorri yn ei hanner.
Ac yna rydych yn eu torri mewn haneri llai.
Ac yna ydych yn eu cyfuno.
Rydych guys yn cofio bod, dde?
OK, fel yr oedd yn ei ddweud.
>> OK, pwyntyddion.
Felly beth yw pwyntydd?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Mae cyfeiriad.
OK.
Gwn fod David yn dangos criw o fideos o binky a phethau pwyntio
ei gilydd.
Ond rwy'n hoffi meddwl am awgrymiadau fel dim ond o gyfeiriad.
Felly mae'n newidyn sydd yn mynd i storio cyfeiriad.
>> Felly, 'i' jyst newidyn arbennig hwn hynny yw pedwar bytes o hyd.
Cofiwch, y pwyntydd i unrhyw beth yn bob amser pedwar bytes hir ar gyfer ein 32-bit
peiriant felly yr achos gyda y peiriant.
A 'i jyst wedi y lleoliad o newidyn tu mewn iddo.
>> Iawn, felly mae cof hwn, yn y bôn.
Felly mae gan bob bloc o gof mewn gwirionedd yn cael label, sef cyfeiriad y
cof slotty.
Felly, mae hynny'n golygu y gallaf gael yn pwyntio pwyntydd i
unrhyw un o'r cyfeiriadau hyn.
Felly, y rheswm pam y byddwn yn defnyddio awgrymiadau yn os oes rhaid i mi gofio y lleoliad
bod newidyn penodol yn cof.
>> A ydych yn guys yn cofio mai un o'r rhai achosion a oedd os oes gen i swyddogaeth
os oes gen i mewn gwirionedd am i chi cyfnewid ar gyfer reals, Fi 'n weithredol
rhaid i anfon pwyntydd.
Nid y newidyn.
Ydych chi guys cofio hynny?
Mae'r between-- gwahaniaeth
beth yw'r enw?
Yn galw o ran gwerth a galw drwy gyfeirio, dde?
>> OK, yeah.
Felly ffoniwch yn ôl gwerth.
Pan fyddwch yn jyst anfon newidyn i swyddogaeth ydych ond yn anfon werth.
Felly, rydych yn anfon mewn gwirionedd copi o'r newidyn.
Ac ni allai eich rhaglen gofal llai am pe bai'r un newidyn mewn gwirionedd
gwneud copi.
>> Ac yn galw drwy gyfeirio yn golygu bod Im 'mewn gwirionedd yn anfon copi o'r
pwyntydd at y newidyn.
Felly, mae'n golygu fy mod yn anfon y lleoliad y newidyn.
Felly, yn synhwyro gen i'r lleoliad y amrywiol, pan fyddaf yn galw y swyddogaeth
gydag awgrymiadau, fy mod yn gallu mewn gwirionedd newid y data a oedd yn brif.
Gwneud synnwyr?
>> Er, mae'r pwyntydd yn gopi, mae'r dal i bwyntydd y cyfeiriad gwirioneddol o
y newidyn yr wyf am ei newid.
Gwneud synnwyr?
>> Felly mae creu awgrymiadau.
Cofiwch, mae'r pwyntydd bob amser yn cael y math ei fod yn pwyntio
i ac yna yn seren.
Ac yna byddwch yn rhoi yr enw.
Felly cofiwch fod pryd bynnag y byddwch yn cael beth bynnag seren, mae fel pwyntydd i
pa bynnag newidyn teipiwch eich bod wedi.
>> Felly, yma yn seren, er enghraifft, 'i' pwyntydd ac yn gyfanrif.
Ac yna seren torgoch yn pwyntydd seren torgoch ac yn y blaen.
Yeah?
>> CYNULLEIDFA: Beth os oes gennym pwyntydd i n i fod yn seren x.
Gwn fod yn creu pwyntydd i'r x.
A yw'n hefyd yn datgan x cyfanrif?
>> LUCAS: Iawn, felly pan fyddwch yn dweud n seren x, nad ydych yn creu pwyntydd i
x amrywiol.
Rydych yn creu pwyntydd x enwir.
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Felly, pan fyddaf yn dweud n seren x, rwy'n gan ddywedyd, hey, er cof, yr wyf i'n mynd i
gael un o'r rhain tri blwch.
Ac yr wyf i'n mynd i ddweud bod hynny yn mynd i fod x, sef
mynd i fod yn pwyntydd.
A rhywbeth diddorol am awgrymiadau yw ein bod yn dweud bod ganddyn nhw
4 bytes ar gyfer 32-bit peiriant.
A'r rheswm am hynny yw bod 4 bytes 32-darnau.
>> A pheiriannau sy'n 64 darnau mewn gwirionedd cael awgrymiadau cyfeiriadau
sydd yn 64 darnau hir.
Felly, 'i jyst yn golygu bod maint y cyfeiriadau yn y peiriant yn wahanol.
>> Felly Cyfeirnodi a Dereferencing.
Mae dau weithredwyr sy'n dylech gofio guys.
Y cyntaf yw ampersand.
Yr ail yn seren.
Peidiwch â drysu gan y seren, ac mae hyn seren oherwydd cofiwch fod, yn
yr achos hwn, mae gennych n seren.
>> Mae'n debyg i holl beth at ei gilydd.
Does dim seren ofod n.
Felly, mae'n golygu ei fod yn y math.
Cofiwch, pan fyddwch yn cael y seren amrywiol, rydych yn
siarad am y math.
>> Pan fyddwch wedi dim ond seren ac yna'r enw'r newidyn, mae'n golygu bod
eich bod yn dereferencing y pwyntydd, a oedd yn yn golygu eich bod yn edrych ar y
bwyntydd, dod o hyd i'r cyfeiriad 'i' pwyntio at, yn mynd i'r cyfeiriad hwnnw,
ac edrych ar pryd bynnag sydd gennych yno.
Felly, yr wyf yn dweud wrth fy myfyrwyr fod pan fydd gennych seren, dylech feddwl ei fod yn
y talfyriad o gyflwr gynnwys.
>> Felly, os oes gennych pwyntydd ac rydych gwneud pwyntydd seren, 'i' y
cynnwys y pwyntydd.
Felly, byddwch yn mynd i beth bynnag mae'n pwyntio at ac edrych ar y cynnwys cyson.
Ac mae'r ampersand yr un fath beth â chyfeiriad y.
>> Felly os oes gen i newidyn a-- fel, gadewch i ni ddweud fy mod yn gwneud int a hafal 3--
os ydw i am ddod o hyd i gyfeiriad y amrywiol cof, a gaf fi wneud
ampersand a.
Felly mae'n gyfeiriad o a.
Gwneud synnwyr?
>> Felly dyma enghraifft.
Mae hyn ar goll int b ac c int.
Felly int yn hafal i 3 yn golygu bod Rydw i'n mynd i fynd i'r cof.
Ac yr wyf i'n mynd i ddod o hyd i slot a rhowch y rhif 3 yma.
>> Ac yna int b yn hafal 4.
Rydw i'n mynd i wneud yr un peth.
Ewch i gof ac yn rhoi nifer 4 mewn un o'r blychau.
Ac int yn dychwelyd 5.
Dod o hyd i flwch arall ac yn rhoi rhif 5.
>> Felly, beth yw y llinell hon yn ei wneud allan? n seren y flwyddyn hafal ampersand a.
Felly, yn gyntaf oll, n seren pa.
Beth sy'n cael ei wneud?
>> CYNULLEIDFA: [Anghlywadwy].
>> LUCAS: Yeah, felly n seren y flwyddyn, yn gyntaf, datgan pwyntydd o'r enw y flwyddyn.
Ac yna mae'n aseinio gwerth y pwyntydd i fod yn y cyfeiriad o a.
Felly ampersand a.
Yna, os wyf yn gwneud pb seren, beth yw pb seren?
>> O, sori.
Mae hyn hefyd ar goll. pb seren n.
Yr wyf yn golygu pc seren.
Rydw i mor flin.
Mae yr un peth.
Ond yn awr yr wyf i'n dda on greu pwyntydd ib ac yna pwyntydd i c.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> LUCAS: Ydw.
Felly, os byddwch yn mynd i gof a byddwch yn mynd i y blwch sy'n dynodwr ar gyfer y flwyddyn,
eich bod yn wir yn mynd i gweld gyfeiriad o a.
OK?
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> LUCAS: Yeah, pwyntydd yn gyfeiriad.
Peidiwch byth ag anghofio hynny.
Mae fel y rhai mwyaf pwysig rhan am awgrymiadau.
Mae storio a chyfeiriad i ryw newidyn.
Unrhyw beth arall?
Unrhyw gwestiynau eraill?
OK.
>> Felly Awgrymiadau a Arrays.
Cofiwch fod pan fyddaf yn int array 3, yn y bôn, yr hyn rwy'n ei wneud yw fy mod, caredig
o, gan ddatgan mewn pwyntydd.
Felly mae amrywiaeth yn fath o fel pwyntydd i lle penodol mewn cof yn yr wyf yn
ddyrannwyd tri slotiau ar gyfer gyfanrifau.
A yw hynny'n gwneud synnwyr?
>> Felly, pan fyddaf yn gwneud int array 3, yr hyn yr wyf i'n yn ei wneud, yn y bôn, yn creu tair
slotiau mewn cof.
Felly, Fi jyst dod o hyd tri slotiau mewn cof.
Felly os wyf yn ei wneud, yna, amrywiaeth seren, mae'n yn y bôn yn golygu cynnwys amrywiaeth,
sy'n golygu fy mod yn dileu y pwyntydd, yr wyf yn mynd i'r lle hwnnw ei fod yn pwyntio at,
ac yr wyf yn rhoi y rhif un.
>> Ac yna, os wyf yn gwneud amrywiaeth seren plws 1, dyna yr un peth â gwneud array
cromfachau un, a dim ond yn golygu fy mod yn mynd i y lle ei fod yn pwyntio at.
Ac yna y plws 1 wneuthuriadau mi symud un sefyllfa.
Felly, yr wyf yn mynd i'r swydd hon, mewn gwirionedd, a rhowch y rhif dau.
>> Ac yna, yn olaf, pan fyddaf yn ei wneud amrywiaeth ynghyd â 2, yr wyf yn mynd i ble
pwyntio array ar.
Ac yna yr wyf yn symud i flociau cof.
Ac yna yr wyf yn rhoi y rhif tri yma.
Yeah?
>> CYNULLEIDFA: arae Felly seren yn syml gan ddweud y pwynt cyntaf un.
A gallwch ychwanegu 1, dim ond oherwydd rydym yn unig mewn gwirionedd
gyfeirio at y cyfeiriad cyntaf.
>> LUCAS: Yeah.
Pam rydym yn, er enghraifft, yn dweud array 0, array 1, ac amrywiaeth 2?
I ddim yn dweud, pam yr ydych chi'n ei wneud 0, 1, 2, 3 yn lle 1, 2, 3?
Un o'r rhesymau yw, un, cyfrifiadur Mae'n well gan rhaglenwyr i ddechrau
cyfrif o 0.
Ddau yw oherwydd pan fyddwch yn gwneud amrywiaeth 0, 'i' yr un peth â gwneud array
ynghyd â 0, sy'n golygu fy mod yn mynd i y sefyllfa honno, ac nid wyf yn ei wneud
skip unrhyw blociau cof.
Felly, nid wyf yn symud unrhyw blociau cof.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> LUCAS: Felly mae hi wedi gofyn beth yw y gwahaniaeth rhwng gwneud
hwn neu wneud malloc.
Un o'r gwahaniaethau yw bod int array 3 yn creu
amrywiaeth ar y pentwr.
A phan wyf yn ei wneud malloc, mae'n creu ar y domen.
A yw hynny'n gwneud synnwyr?
>> Felly sut mae malloc yn gweithio mewn gwirionedd?
Felly pam hyd yn oed oes angen i ni ddefnyddio malloc?
Eich compiler fath o ffigurau allan bob y newidynnau yr ydych yn datgan.
Ac mae'n creu lle ar gyfer yr holl Ohonynt yn y pentwr.
Felly eich holl newidynnau yn mynd i fod yn rhywle yn y pentwr.
Felly dyma yw'r newidynnau amgylchedd.
>> Felly y bôn, lle ar gyfer newidynnau hynny mewn cof ei ddyrannu ar
llunio amser.
Felly, mae'n golygu bod eich cyfrifiadur wedi i adnabod pob un o'r newidynnau hynny
ymlaen llaw.
Nid oes angen i ni wybod pa werth ydych yn mynd i roi ynddynt.
Ond mae angen iddo wybod sut llawer o gof sydd ei angen arnoch.
>> Ond yn awr gadewch i ni ddweud hynny, er enghraifft, eich bod yn creu amrywiaeth neu gymryd
llinyn eich bod yn cymryd oddi wrth y defnyddiwr.
Dydych chi ddim yn gwybod pa mor hir y llinyn yn mynd i fod, er enghraifft.
Felly, nad ydych yn gwybod faint yn union blociau cof yr ydych yn dyrannu, dde?
>> Felly, nid yw'n wir yn gwneud synnwyr i chi ddweud roi 100 o nodau.
Ac yna beth os bydd y defnyddiwr yn ysgrifennu 150?
Rydych yn mynd i gael ei sgriwio.
>> Felly y bôn, ni allwch fod yn sicr o sut llawer o gof angen i chi ei ddyrannu
pan fyddwch yn llunio rhaglen.
'Ch jyst yn gwybod bod ar amser rhedeg.
Felly dyna pam yr ydych yn cael y domen.
Felly mae'r domen yn mynd i gael cof eich bod yn dyrannu yn ystod y
hyd y rhedeg rhaglen.
>> Felly y bôn, pan fyddwch yn gwneud malloc, beth rydych chi'n ei wneud yn dyrannu cof ar
Rhedeg, sy'n golygu eich bod yn penderfynu dde ar y hyn o bryd yr ydych
Dylai gael y cof.
Felly dyna pan fyddwch yn dyrannu iddo.
A yw hynny'n gwneud synnwyr?
>> Felly cofiwch, mae gan y das newidynnau sy'n cael eu creu ar amser Llunio.
Ac yna mae gan y domen newidynnau sy'n cael eu creu wrth i chi fynd
gyda malloc, er enghraifft.
>> CYNULLEIDFA: [Anghlywadwy]?
>> LUCAS: Felly GetString yn mynd i alw malloc.
Gadewch i mi siarad am malloc, ac 'N annhymerus' yn esbonio GetString.
Felly malloc yw yr un peth fel dyraniad cof.
Felly, mae'n mynd i ddyrannu cof ar y domen.
Ac mae'n mynd i ddychwelyd pwyntydd i lle y cof yn cael ei ddyrannu ar.
>> Felly pan fyddwch yn do--
yma am example--
seren pwyntydd n.
Ac yna pwyntydd hafal malloc faint o amser modfedd 10.
Rydw i'n creu pwyntydd.
Ac yna i ddim yn aseinio y pwyntydd i gwerth y pwyntydd y malloc
yn ei rhoi i mi.
>> Felly rwy'n gofyn i malloc gallwch ddyrannu lle ar gyfer 10 o gyfanrifau.
Dyna beth y mae'n ei ddweud.
A malloc yn rhoi i mi yn ôl i pwyntydd i'r lle hwnnw.
Gwneud synnwyr?
OK.
Rwy'n Ac GetString yw, yn y bôn, gwneud ffonio i malloc er mwyn i chi ddyrannu
cof yn ystod Rhedeg.
>> Cofiwch bob amser i wirio am null oherwydd bod malloc yn mynd i ddychwelyd null
os na ellir ei ddyrannu cof.
Dewch i ddweud eich bod yn gofyn am chwerthinllyd faint o gof.
Nid yw eich cyfrifiadur yn mynd i fod gallu dyrannu bod llawer.
>> Felly malloc yn unig yn mynd i ddychwelyd null.
Felly, bob amser yn cofio i wirio a yw'r pwyntydd eich bod chi gan malloc yw
null ai peidio oherwydd, os ydyw, gallech chi ei dereferencing pwyntydd a
gan achosi namau ochr.
Ac yn olaf, peidiwch ag anghofio eich cof rhad ac am ddim.
>> Malloc yn creu cof yn y domen.
Ac mae'n rhaid i chi i ryddhau y cof cyn i'r rhaglen ddod i ben.
OK, dyna i gyd i mi.
Mae'n ddrwg gennym, Rob.
Diolch.
>> [Cymeradwyaeth]
>> LUCAS: Unrhyw gwestiynau ddiwethaf cyn i Rob yn dod?
Na?
Yeah?
>> CYNULLEIDFA: Doeddwn i ddim yn gweld hyn yn un ar-lein.
Ydych chi wedi llwytho i fyny eto?
>> LUCAS: Yr wyf yn meddwl Dave yn llwytho i fyny yn fuan.
>> DAVE: Bydd yn cael eu postio.
>> LUCAS: Bydd yn ar-lein.
>> CYNULLEIDFA: Mae i fyny.
>> LUCAS: Mae i fyny?
OK.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> LUCAS: Ie, dylech rhad ac am ddim yr holl cof sy'n cael ei roi yn y domen.
>> CYNULLEIDFA: [Anghlywadwy]?
>> LUCAS: Ydw.
Unrhyw bryd bod gennych malloc ddiwylliant, dylai fod gennych ddiwylliant rhad ac am ddim
ar ôl i chi roi'r gorau i ddefnyddio y newidyn.
Felly malloc ac am ddim ar bob amser gyda'i gilydd.
Mae eu ffrindiau gorau.
Yeah.
Rob?
>> ROB: 'n annhymerus' yn mynd yn gyflym.
A hefyd bydd y fideo yn cael ei rhoi i fyny.
Mae gennyf y mic ar.
>> Iawn, felly wythnos pum stwff.
Y peth cyntaf sydd gennym yw y pentwr.
Felly cofiwch mai dim ond un pentwr ffrâm fesul swyddogaeth galwadau gweithredol.
Byddwn yn gweld hynny mewn eiliad.
A hefyd yn cofio beth sy'n mynd mewn gwirionedd ym mhob ffrâm pentwr yn mynd i fod
y newidynnau lleol ein swyddogaethau, y dadleuon sy'n cael eu pasio i mewn i'n
swyddogaethau, ynghyd ag un neu ddau bethau eraill nad ydych yn wir yn
Mae angen i chi boeni am.
>> Felly dyma rhaglen enghraifft os, rhybudd, prif yn printfing y ffurflen
gwerth y foo 4.
foo yn unig yn mynd i ddychwelyd y gwerth y bar 4 coma 6.
A bar yn mynd i osod rhai lleol amrywiol n gyfartal i 4 gwaith 6.
Ac yna dychwelyd n.
>> Felly gadewch i ni edrych ar y pentwr drwy gydol iteriad gwirioneddol y rhaglen hon.
Felly mae y waelod ein pentwr.
Cofiwch fod y pentwr yn tyfu i fyny.
Felly, ar waelod ein pentwr, rydym yn fod â ffrâm pentwr ar gyfer y prif.
Pan fydd y rhaglen yn dechrau, prif mae bob amser yn mynd i fod yn y
waelod ein pentwr.
>> A beth sydd y tu mewn i'n stacio ffrâm ar gyfer y prif?
Felly hyd yn oed er nad oes unrhyw leol newidynnau i'r prif, fel y dywedais o'r blaen,
rydym wedi argc a rgv cymryd lle tu mewn prif ffrâm pentwr.
Felly prif yn awr yn mynd i ffoniwch y foo swyddogaeth.
Ac mae hynny'n golygu foo yn mynd i cael ei ffrâm pentwr hun.
>> Felly nawr rydym yn tu mewn y foo swyddogaeth.
A beth sydd angen i fynd i mewn ffrâm stac foo yn?
Wel, foo mae dadl n.
Ac n yn hafal i 4 gan fod dyna beth main yn pasio fel dadl foo yn.
>> Felly nawr foo yn mynd i alw bar.
Beth sy'n cael bar mynd i gael y tu mewn o'i 'ffrâm pentwr?
Mae ganddo x yn hafal i 4 y gyfartal i chwech.
Nid dyna'r cyfan yr ydym yn mynd i gael yn y ffrâm pentwr oherwydd bar
Mae gan newidyn n lleol.
Ac n rydym yn mynd i osod hafal i 24.
>> Bar Felly nawr yn mynd i ddychwelyd n.
Felly bar yn dychwelyd 24 i y foo ffrâm pentwr.
Ac oherwydd bod y bar yn awr yn dychwelyd, y golygu ein bod popping y ffrâm pentwr
ar gyfer bar i ffwrdd o'r pentwr.
Felly yr holl cof bod y bar wedi bod ddefnyddio yn awr oddi ar y pentwr.
>> Yn awr, foo hefyd yn mynd i ddychwelyd 24 i brif.
Felly, yn awr y foo yn dychwelyd, mae'r cof y foo yn defnyddio yn ei '
ffrâm pentwr wedi mynd hefyd.
Ac yn awr, prif yn mynd i alw printf.
Felly printf yn unig yw swyddogaeth arall.
Pan fyddwn yn galw printf, mae'n mynd i fod yn ffrâm pentwr arall ar gyfer y printf
swyddogaeth alwad.
>> Beth ydym yn pasio printf?
Dyna beth sy'n mynd i fynd ar ei ffrâm pentwr.
Ar y lleiaf, rydym yn pasio y cant i slaes n ac
y ddadl 24.
Gallai fod wedi mwy yn ei ffrâm stac os printf digwydd bod yn defnyddio rhai
newidynnau lleol.
Nid ydym yn gwybod.
>> Ond yr holl sy'n mynd mewn printf yn stacio ffrâm.
Mae'n mynd i gyflawni'r printf.
Yna printf ei wneud.
Bydd yn dychwelyd.
Yn olaf, prif yn cael ei wneud.
Bydd prif dychwelyd.
Ac yna mae ein rhaglen yn cael ei wneud.
Yeah?
>> CYNULLEIDFA: A ydych yn gweld [Anghlywadwy]
dadleuon [Anghlywadwy]
paramedrau?
>> ROB: Felly, mae gwahaniaeth cynnil rhwng dadleuon a paramedrau.
Ac yn wir, yn siarad yn gyffredin, mae pobl yn tueddu i ddim ond cymysgu i fyny drwy'r amser.
Ond paramedrau yw'r ffurfiol enwi o'r pethau.
>> Felly argc a argv yw'r paramedrau i'r prif.
Dadleuon yn y byddwch yn ei pasio i mewn fel paramedrau hynny.
Felly yno pan fyddaf yn galw foo o 4, 4 yw'r ddadl dw i'n pasio mewn.
A'r n paramedr, tu mewn foo, yn cymryd ar werth 4
ers 4 oedd y ddadl.
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: n yn newidyn lleol i wahardd.
n yn dal yn lleol i foo, ond mae'n paramedr i foo.
Dyw hi ddim yn newidyn lleol.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: foo yn unig yw galw bar a dychwelyd beth bynnag ffurflenni bar.
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Yeah, dim ond i weld lluosog stac fframiau.
Yeah?
>> CYNULLEIDFA: Pam oedd foo o'r enw cyn printf?
>> ROB: Pam oedd foo alw cyn printf?
Er mwyn i mi gael, yn lle hynny, gwneud rhywbeth yn fel int x hafal foo o 4
ac yna x hargraffu.
Ond yn lle hynny, yr wyf yn cyfuno y swyddogaeth galwch i mewn i'r ddadl printf.
>> Ond sylwi na allwn mewn gwirionedd gweithredu yr alwad i printf hyd nes y byddwn
chyfrif i maes beth foo o 4 yw.
Felly, rydym yn mynd i werthuso hyn.
A dim ond unwaith y bydd hynny wedi ei wneud yn mynd i ddod yn ôl a gwerthuso'r hyn.
Yeah?
>> CYNULLEIDFA: Gan fod y ddau bar [Anghlywadwy]
gwerth, pam nad oes gennym ni [Anghlywadwy]?
>> ROB: Maent yn llwyr y dylai fod yn int.
Nid yw ei ddal dros tocynnau lluosog.
Felly, dylai fod yn bar int a int foo gan fod y ddau o'r rhai
yn dychwelyd cyfanrifau.
Ddi-rym dim ond os nad ydynt yn mynd i ddychwelyd gwerthoedd gwirioneddol.
Yeah?
>> CYNULLEIDFA: Os oedd gennych linell uwchben dychwelyd, [Anghlywadwy]?
>> ROB: Mae llinell uwchben y ffurflen?
>> CYNULLEIDFA: Yeah.
Fel pe baech yn gwneud printf a [Anghlywadwy], byddai'n argraffu ddwywaith?
>> ROB: Felly, tu mewn foo?
Pe bai gennym printf dde yma?
>> CYNULLEIDFA: Yeah.
>> ROB: Felly, os oedd gennym hawl printf yma, byddai'n argraffu unwaith.
Gan ein bod yn galw foo unwaith i'r dde yma, yna byddwn yn cyrraedd y printf.
Yna byddwn yn galw bar.
Ac yna bydd foo dychwelyd.
A dyna ni.
Byddwn ond byth yn dod ar draws y printf unwaith.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]
printf galw foo oherwydd ein bod yn gyntaf galw printf ac yna rydym yn pasio
y dadleuon.
>> ROB: Felly, mewn theori, nid yw printf galw foo?
Felly dim.
Dim ond y drefn y c yn mynd i gyflawni pethau hyn yw, cyn i gallwn
yn galw swyddogaeth, yr holl ddadleuon i'r swyddogaeth rhaid i
cael ei werthuso yn gyfan gwbl.
Felly, mae hyn yn ei werthuso yn gyfan gwbl?
Ie, dim ond llinyn.
Mai dim ond gwerth.
>> Yna, mae'n rhaid i ni yn llwyr gwerthuso'r hyn.
Ar ôl gwneud hyn, erbyn hyn i gyd o ei ddadleuon yn cael eu gwerthuso.
Ac yn awr gallwn wneud y ffonio i printf.
Yeah?
>> CYNULLEIDFA: Un cwestiwn.
Os oes gennych swyddogaeth ddi-rym, rhaid gennych chi hanner colon dychwelyd?
>> ROB: Nid ydych yn gwneud hanner colon dychwelyd os oes gennych swyddogaeth ddi-rym.
OK.
Felly nawr mae rhai pethau domen.
Felly domen yw sut yr ydym yn mynd i ddelio gyda rheolaeth cof deinamig.
Ac mae hyn yn cyferbynnu yn uniongyrchol gyda'r stac y byddem yn galw awtomatig
rheoli cof.
>> Felly, ar y pentwr, byddwch byth yn cael i ymdrin â sut y mae'r newidynnau lleol
yn cael eu gwthio a popped oddi ar bob fframiau hyn stac a'r holl bethau hynny.
Nid oes rhaid i chi boeni am y peth.
Mae'n awtomatig.
Felly mae'r domen yn llaw.
Ac mae'r [Anghlywadwy]
dod o swyddogaethau hyn malloc ac am ddim.
>> Felly dyma rhaglen arall.
Yr unig beth rydym yn ei wneud yn mallocing yn gyfanrif.
Rydym yn storio mewn seren x.
Wrth gwrs, mae'n rhaid i ni wirio i weld os yw x yn null.
Yna, rydym yn mynd i jyst yn gosod yr hyn x yn pwyntio at i 50.
Argraffu pa x yn pwyntio at, print x, ac yna am ddim x.
>> Felly, sut mae hyn mewn gwirionedd yn mynd i edrych os edrychwn ar ein pentwr a domen?
Fe wnawn ni gychwyn eto.
Mae'r waelod ein pentwr fel o'r blaen.
Cofiwch fod ti bentyrru yn uniongyrchol gwrthwynebu'r pentwr?
Felly, rydym yn mynd i gael y ben ein domen i fyny yno.
>> Felly waelod ein pentwr, rydym wedi ein ffrâm pentwr ar gyfer y prif.
Mae wedi y lle ar gyfer argc, argv, ac yr ydym Bellach mae gan newidyn x lleol, sy'n
yn seren int.
Felly, rydym yn mynd i ailadrodd drwy'r rhaglen hon.
Y peth cyntaf sydd gennym yw alwad i malloc.
>> Felly rydym yn gwneud galwad i malloc.
Malloc yn swyddogaeth.
Mae'n mynd i gael ffrâm pentwr.
Beth rydym yn mynd heibio i malloc?
Mae hynny'n mynd i fynd y tu mewn y ffrâm pentwr.
Rydym yn pasio maint y n, sydd 4.
Felly mae hynny'n ei drosglwyddo i malloc.
>> Beth mae malloc yn ei wneud?
Mae'n cydio ni ychydig o le ar y domen.
Felly, rydyn ni'n mynd i fynd i'r domen.
Ac rydym yn mynd i chrafangia 4 bytes o'r domen.
Felly gadewch i ni jyst roi y cyfeiriad mympwyol.
0x123 Dim ond esgus bod yn cyfeiriad sydd ar y domen.
>> Felly beth mewn gwirionedd y tu mewn o hynny ranbarth o gof yn y cyfeiriad Ox123?
Garbage.
Felly, nid ydym wedi ei storio unrhyw beth ynddo.
Hyd cyn belled ag y gwyddom, mae'n Gallai fod yn unrhyw beth.
Ni ddylech gymryd yn ganiataol ei fod yn sero.
Mae'n fwyaf tebygol o beidio sero.
>> Ffurflenni Felly nawr malloc.
A beth ydym yn ei wneud pan fydd malloc dychwelyd?
Rydym yn gosod yr hyn y mae'n dychwelyd.
Rydym yn gosod x hafal i'r hyn ei fod yn dychwelyd.
Felly beth sy'n ei dychwelyd?
Mae'n 0x123 dychwelyd ers hynny yw'r gyfeiriad y bloc o gof ei fod yn
dim ond eu dyrannu yn y domen.
>> Felly dychwelyd 0x123 x yn awr yn mynd i gael eu gosod cyfartal i 0x123 sydd, ar ffurf lluniau,
rydym yn aml yn tynnu fel x cael go iawn saeth yn pwyntio at y bloc.
Ond mae x yn unig yw storio y cyfeiriad hwnnw.
Felly, yn awr mae'n rhaid i ni wirio os yw x yn null.
Dyw hi ddim yn null.
Rydym yn esgus bod y malloc llwyddo.
>> Felly nawr seren x yn hafal i 50.
Felly seren yn cofio mae'n golygu mynd i'r cyfeiriad hwnnw.
Felly 0x123 Rydym yn mynd i mynd i'r cyfeiriad hwnnw.
Felly mae hynny'n dod â ni i fyny yno.
Beth ydym yn ei wneud yn y cyfeiriad hwnnw?
Rydym yn storio 50.
>> Felly, ar ôl y llinell hon, dyna beth mae pethau yn mynd i edrych fel.
Felly, yn awr bellach mae'n garbage i fyny yno.
Nawr rydym yn gwybod bod 50 yn y gyfeiriad penodol oherwydd
rydym osod i hynny.
OK?
Felly nawr rydym yn mynd i argraffu f.
>> Felly, yn gyntaf rydym yn mynd i argraffu seren x.
Felly beth yw seren x?
Unwaith eto, seren x yn golygu mynd i'r peth bod x yn pwyntio i.
Felly mae x yn storio 0x123 Ewch i hynny.
Rydym yn cael 50.
Felly argraffu f hynny.
Ac mae hynny'n golygu ei fod yn mynd i argraffu 50.
Ac yna sy'n dychwelyd.
>> Ac yna mae gennym yr ail printf.
Rydym yn awr yn y cant t.
Os nad ydych wedi ei weld, dyna yn union sut yr ydych yn argraffu pwyntydd.
Felly mae gennym fi cant, cant f, a phawb o'r rhai sydd eisoes.
Felly cant p, argraffu pwyntydd.
>> Felly mae x yn pwyntydd.
Felly, os ydym yn mynd i argraffu x ei hun, rydym yn argraffu hyn sydd mewn gwirionedd y tu mewn
x, sef 0x123 Felly, y cyntaf print f yn mynd i argraffu 50.
Mae'r ail print f yn mynd i argraffu 0x123 Yeah?
>> CYNULLEIDFA: Ydych chi'n defnyddio y cant x i argraffu pwyntydd?
>> ROB: Felly, ydych chi'n defnyddio y cant x i argraffu pwyntydd?
Felly gallwch ond cant x yn unig, yn gyffredinol, at ei debyg os oes gennych rai
cyfanrif ac rydych eisiau argraffu fel hecsadegol.
Dyna dim ond sut yr ydych yn gwneud hynny.
>> Tra, byddai cant d argraffu fel degol.
Dyna yr oeddem yn cael y cant d. fi yn unig gyfanrif.
cant p yn benodol am awgrymiadau.
>> Felly mae x yn pwyntydd.
Rydym eisiau defnyddio cant t.
Ond gallai cant x weithio.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Yeah.
O leiaf ar gyfer hyn call-- felly rwy'n nid oedd yn cynnwys ei fod yn fan hyn.
Ond y ddau dadleuon o reidrwydd tu mewn ffrâm pentwr hwn
ynghyd ag unrhyw newidynnau lleol printf digwydd i gael ei defnyddio.
Ac yna yr alwad nesaf i printf nawr tu mewn printf ffrâm pentwr yn
cant p slaes n a beth bynnag mae'r werth x yw, sef 0x123.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Bydd yn argraffu rhywbeth sy'n edrych fel hyn.
>> CYNULLEIDFA: [Anghlywadwy].
>> ROB: Felly mae'n printiau ar ffurf cyfeiriad.
Mae'n edrych fel cyfeiriad.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Pam yw beth?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Pam mae pwyntydd hon 4 bytes?
Felly, mae criw cyfan o 0 o flaen hyn.
Felly mae'n wirioneddol 0x0000000123.
Ar system 64-bit, byddai criw cyfan o fwy o sero.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy].
>> ROB: Felly, y printf cyntaf yn mynd i print--
>> CYNULLEIDFA: [Anghlywadwy].
>> ROB: Ie, mae'n mynd i argraffu pa x yn pwyntio at.
Seren yn dweud beth yw hyn beth bwyntio at.
Chrafangia '.
Felly beth sy'n ei pwyntio i?
50.
Chrafangia '.
Dyna beth yr ydym yn mynd i argraffu.
Tra, yr un nesaf, rydym yn dim ond argraffu x ei hun.
Beth yw tu mewn f?
0x123.
OK.
>> Ac yna, yn olaf, mae gennym y rhad ac am ddim.
Beth rydym yn pasio am ddim?
Rydym yn pasio x.
Bod tro rwy'n ei arddangos mewn gwirionedd ei fod yn y ffrâm pentwr.
>> Felly, rydym yn mynd heibio i'r gwerth 0x123 am ddim.
Felly nawr ddim yn gwybod, i gyd yn iawn, Rhaid i mi fynd i fyny at y domen
a bod y cof am ddim.
Nid yw bellach yn ei ddefnyddio beth ar gyfeiriad 0x123.
>> Felly, rhad ac am ddim yn mynd i ryddhau hynny gan y domen.
Nawr ein tomen yn wag eto.
Nid oes gennym unrhyw gollwng cof.
Yn awr bydd yn rhad ac am ddim yn dychwelyd.
Hysbysiad bod x yn dal 0x123.
Ond nid yw hynny bellach yn atgof dilys.
Dylem bellach Dadgyfeirio x.
Yeah?
>> CYNULLEIDFA: Ydy dychwelyd 0 yn ddi-waith?
>> ROB: A yw returen 0 yn ddi-waith?
Ydw.
Rydym yn unig yn rhoi hynny yno oherwydd mae gennym dychwelyd un ar gyfer yr awyr.
Felly, mae fel, ie, yn gadael cynnwys y ffurflen 0.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Felly, ar ôl x rhad ac am ddim, beth sy'n digwydd os rydym yn ceisio Dadgyfeirio pwyntydd?
Mae'n bosibl nad oes unrhyw beth yn mynd o'i le.
Mae'n bosibl y byddwn yn dal i gael 50.
>> Mae'n bosib, hefyd, fod y cof yn cael ei ddefnyddio yn awr ar gyfer rhywbeth arall.
Felly mae'n ymddygiad anniffiniedig.
Ac mae undefined golygu unrhyw beth Gall ddigwydd.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Na, felly os ydych yn aseinio x i rywbeth arall.
Felly os dde yma dywedasom x yn hafal i rhywbeth malloc else--
Maint y malloc event--
Yna y bloc gwreiddiol o gof yn cael ei rhyddhau.
Ac rydym wedi ei golli yn swyddogol.
Mae hynny'n gollwng cof.
Rydyn ni wedi colli pob cyfeiriad at y bloc o cof.
Felly does dim ffordd y gallwn ni byth ei ryddhau.
Iawn, felly yna dychwelyd 0 dull wneud.
>> Mae pob gorlif iawn, felly stac.
Beth yw'r syniad yma?
Felly cofiwch, domen yn mynd i lawr.
Stack yn mynd i fyny.
Felly, roedd hyn yn yr enghraifft o ddarlith, Yr wyf yn meddwl, lle y prif yn unig yn mynd i
ffoniwch foo swyddogaeth hon, sy'n mynd i alw ei hun yn recursively drosodd a
ar ôl tro.
>> Felly stacio fframiau yn mynd i yn gweithio yn union yr un fath.
Felly, rydym yn mynd i ddechrau gyda phrif gan fod y ffrâm pentwr gwaelod.
Yna brif yn mynd i alw foo, sy'n yn mynd i gael ffrâm pentwr.
>> Yna foo yn mynd i alw foo unwaith eto, sydd yn mynd i gael
ffrâm pentwr arall.
Ac yna eto, ac unwaith eto, ac unwaith eto, ac eto nes, yn y pen draw, rydym yn rhedeg
i mewn i'r domen.
Felly, mae hyn yw sut yr ydym yn cael gorlif pentwr.
Ac yn y fan hon, byddwch yn SEG fai.
Neu byddech chi wir fai seg cyn y pwynt hwn ond yeah.
>> CYNULLEIDFA: A yw craidd daflu i lawr y un fath â fai seg?
>> ROB: Felly, byddwch yn gweld segmentu ddympio craidd fai.
Byddwch yn cael tomen craidd pan rydych SEG fai.
Ac mae'n debyg i daflu i lawr o bob un o'r cynnwys eich cof presennol fel
y gallwch geisio nodi pam eich SEG ffawtio.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Felly nam segmentu modd mae 'na gorlif pentwr.
Felly, nid o reidrwydd.
Mae nam segmentu yn golygu eich bod chi'n cof cyffwrdd mewn ffordd
Ni ddylech fod.
Felly, un ffordd o hynny'n digwydd yw, pan byddwch dal dŵr gorlif, rydym yn dechrau cyffwrdd
cof mewn ffordd na ddylem fod.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Felly, tu mewn dolen ddiddiwedd.
Fel, mae hyn yn debyg i ddiddiwedd ailadroddus dolen ac felly rydym yn cael un arall
stac ffrâm bob tro.
Ond dim ond tu mewn rheolaidd ddiddiwedd tra one--
yn dda, gadewch i ni beidio hyd yn oed argraffu f--
gwneud rhywbeth.
Beth bynnag.
>> Nid ydym yn mynd i fod yn mynd ffrâm pentwr arall.
Rydym yn jyst yn mynd i gadw dolennu dros y cyfarwyddyd sengl.
Nid yw'r pentwr yn tyfu.
Mae'n ffaith bod pob recursive alwad yn rhoi ffrâm pentwr ni.
Dyna pam yr ydym yn cael gorlif pentwr.
Yeah?
>> CYNULLEIDFA: Felly, os ydych yn dweud i gael y tra dolen ac yna [Anghlywadwy]?
>> ROB: Felly os tu mewn i'r ddolen tra roedd printf, byddwch yn dal y byddai
Nid fai seg.
Rwy'n nid yn unig oedd eisiau drysu pethau.
Byddai'n dolen.
Byddech yn cael stac sengl ffrâm ar gyfer y printf.
>> Yna byddai printf dychwelyd.
Yna byddwch Id dolen eto.
Byddech yn cael stac sengl ffrâm ar gyfer y printf.
Byddai'n dychwelyd.
Ffrâm pentwr Sengl.
Felly, nad ydych yn cael hyn yn ddiddiwedd pentyrru fframiau stac.
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Ydw.
Felly, mae hyn yn digwydd gorlif pentwr gan fod dim un o'r rhain
galwadau i foo yn dychwelyd.
Felly os byddwn yn dychwelyd, yna byddem dechrau colli fframiau stac.
Ac yna ni fyddem yn dal dŵr gorlif.
A dyna pam y bydd angen achos sylfaenol ar gyfer eich swyddogaethau personol.
Yeah?
>> CYNULLEIDFA: A yw'r maint posibl a'r stac gyfer y domen yr un fath ar gyfer
pob rhaglen?
>> ROB: Yn fras.
Yw maint posibl y pentwr a y domen yr un fath ar gyfer pob rhaglen?
Fras.
Mae rhywfaint o randomization i lle y das yn dechrau ac
lle mae'r domen yn dechrau.
Os ydych yn digwydd i gael llawer gyfan o newidynnau byd-eang a phethau, gallech chi
cymryd i ffwrdd oddi wrth rai o le ar gyfer eich tomen.
>> Ar system 64-bit, rydych bron cael cof ddiddiwedd.
Does dim ond cymaint.
Rhwng 32 a 64 darnau darnau, bod gwahaniaeth sylweddol.
>> Rydych yn mynd i gael llawer iawn mwy stacio a gofod domen ar 64-bit
system oherwydd bod dim ond yn fwy yn mynd i'r afael y gallant eu defnyddio.
Ond ar system unigol, bydd yn fod yn fwy neu lai yr un faint o stac
a gofod domen.
Mae pob hawl.
>> Felly peth olaf yw casglu.
Felly, dylech wybod y broses hon.
Mae pedwar cam mawr.
Felly, dylai'r un cyntaf fod yn hawdd i'w gofio.
Cyn-brosesu.
Mae wedi y rhagddodiad cyn ynddo.
Felly, mae'n dod cyn popeth arall.
>> Y peth i'w gofio yw y hash.
Felly hash yn diffinio a hash yn cynnwys ym mhob un o'r rheiny.
Mae'r rheini i gyd cyn-brosesydd cyfarwyddebau.
Mae'r rhain yn y pethau y mae'r cyn-prosesydd yn gofalu am.
>> Felly beth mae cyn-prosesydd yn ei wneud?
Mae'n beth 'n sylweddol' n fud.
Mae pob mae'n gallu mae pob un o'r rhain copi, a thorri, a gludo gweithrediadau.
>> Felly hash yn cynnwys safonol I0 dot h.
Beth yw bod yn ei wneud?
Mae'n grabbing y dot I0 safonol h ffeilio a gludo i mewn i'r top
lle bynnag mae'n dweud hash yn cynnwys dot I0 safonol h.
>> Ac unrhyw hash diffinio ein bod i wedi gweld, beth sy'n bod gwneud?
Mae ei copïo y gwerth y mae'r hash eu diffinio ei ddiffinio fel a gludo sy'n
lle bynnag y byddwch yn defnyddio'r gwerth.
Felly mae'r Preprocessor yn unig yn ei wneud mewn gwirionedd gweithrediadau sy'n seiliedig ar destun syml.
Nid yw'n gwneud dim smart.
Felly mae popeth arall yn yn fwy cymhleth.
>> Felly nawr bod Preprocessor yn gwneud, yr ydym mewn gwirionedd yn llunio.
Felly beth mae llunio yn ei olygu?
Rydym yn awr yn mynd o c cod i cod cynulliad.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Yeah, rydym yn dal hynny.
Felly llunio.
Rydym yn mynd o c i ymgynnull.
Felly mae hwn yn newid iaith go iawn.
Llunio ei hun yn golygu mynd o iaith ar lefel uwch i
iaith lefel is.
>> Ac c yn iaith lefel uchel o'i gymharu â cynulliad.
Beth yw cynulliad?
Mae ei cyfarwyddiadau sydd, 'n bert lawer, a wnaed ar gyfer eich CPU.
Ond mae eich cyfrifiadur yn dal i wneud ydynt yn deall cynulliad.
Dim ond yn deall rhai a sero.
Felly, y cam nesaf yn cydosod, a oedd yn dod â ni oddi wrth y cyfarwyddiadau hyn sy'n
eich CPU yn deall ac mewn gwirionedd yn cyfieithu hwy, i
y rhai a sero.
>> Felly, C i cynulliad i deuaidd.
Ond nid oes gennyf gweithredadwy eto.
Felly meddyliwch am y llyfrgell cs50.
Yr ydym wedi darparu chi gyda deuaidd ar gyfer llyfrgell cs50 hwn, sydd wedi GetString
a GetInt a hynny i gyd.
>> Ond mae'r cs50 library--
mewn ac o itself-- nid yn weithredadwy.
Nid oes ganddo prif swyddogaeth.
Dim ond bagad o deuaidd y gallwch eu defnyddio.
Felly cysylltu yw sut yr ydym yn dod â'r holl o'r rhain gwahanol ffeiliau deuaidd
i mewn i gweithredadwy gwirioneddol.
Un y gallwch deipio dot dot slaes allan.
>> Felly, mae hyn yn debyg y ffeil yr ydych Ysgrifennodd, - beth bynnag yw eich rhaglen yw--
Ceaser dot c.
Ond erbyn hyn mae wedi cael ei lunio i lawr i deuaidd.
Felly Ceaser dot o.
Ac mae hyn yn ein cs50 llyfrgelloedd deuaidd.
Ac maen nhw'n cael eu cyfuno i mewn i cyflawnadwy sengl.
Yeah?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Felly cyntaf yn cynnwys, cofiwch, y hash yn cynnwys mewn gwirionedd yn
cam cyn-brosesydd.
Ond dyna wahân.
Os nad ydych chi'n defnyddio unrhyw swyddogaethau sy'n y tu allan o'ch ffeil sengl, yna,
na, nid oes angen i chi gysylltu unrhyw beth ers i chi wedi popeth.
>> Wedi dweud hynny, printf yn cael ei gysylltu i mewn.
Os ydych chi erioed wedi defnyddio printf, mae hynny'n rhywbeth y mae angen i fod yn gysylltiedig yn
oherwydd nad oeddech yn ysgrifennu hynny.
Ac, yn wir, printf yn awtomatig gysylltiedig mewn.
Rydych yn gwybod sut yn y llinell orchymyn neu pan fydd r math hwn yn gwneud i chi, byddwch yn gweld ei fod yn cael
dash l cs50, sydd â dolen yn y llyfrgell cs50?
Printf, a phethau fel 'na, yn mynd i fod yn gysylltiedig yn awtomatig.
Unrhyw gwestiynau eraill ar unrhyw beth?
>> CYNULLEIDFA: [Anghlywadwy]?
>> ROB: Cysylltu?
Mae gennym criw cyfan o gwahanol ffeiliau deuaidd.
Dyma'r enghraifft canonaidd ein bod yn defnyddio ei llyfrgell cs50.
Rydym wedi casglu ac yn rhoi i chi y deuaidd ar gyfer y llyfrgell cs50 hwn.
>> Byddwch am ddefnyddio GetString yn eich rhaglen.
Felly, byddwch yn mynd ac yn defnyddio GetString.
Ond heb fy cod deuaidd ar gyfer GetString, pan fyddwch yn llunio eich cod
i lawr, ni allwch redeg mewn gwirionedd yn eich rhaglen oherwydd bod GetString Llinynnol yn
heb eu diffinio yn gyfan gwbl eto.
>> Dim ond pan fyddwch yn cysylltu yn fy deuaidd sy'n cynnwys GetString yn awr, i gyd
dde, gallaf mewn gwirionedd gweithredu GetString.
Mae fy ffeil yn gyflawn.
A gallaf redeg hyn.
Yeah?
>> CYNULLEIDFA: A oes gan gysylltu drosi y deuaidd i weithredadwy?
Felly hyd yn oed os nad oes gan eraill yr ydych llyfrgelloedd, fyddai nid yw'n dal i fod
angenrheidiol i gyfieithu y [Anghlywadwy]?
>> ROB: Felly weithredadwy yn dal i fod yn ddeuaidd.
'I' jyst cyfuno yn ei gyfanrwydd criw o binaries.
>> CYNULLEIDFA: Diolch yn fawr i chi.
>> ROB: Dim problem.
Unrhyw gwestiynau eraill?
Fel arall, rydym ni i gyd yn gosod.
Mae pob hawl.
Diolch.
>> [Cymeradwyaeth]
>> CYNULLEIDFA: Diolch yn fawr.
>> ROB: Yeah.