[Powered by Google Translate] DAVID J. Malan: pob hawl, mae hyn yn CS50, a dyma'r
ddechrau'r wythnos dau.
Diolch yn fawr.
Gadewch i ni ddechrau yma gyda galwad ffôn.
Rwy'n ar fin i ffonio 617-BUG-CS50.
CS50: Mae hwn yn CS50.
Er Boy Shuttle, pwyswch 1.
I ddechrau eto, pwyswch 9.
DAVID J. Malan: Felly efe a ddywedodd ar gyfer Boy Shuttle i'r wasg 1.
Felly, rydym yn mynd i'r wasg 1.
CS50: Beth yw eich tarddiad?
Am cwad, y wasg 1.
Mather, y wasg 2.
Boylston, y wasg 3.
Lamont, y wasg 4.
Mem Hall, y wasg 5.
I ddechrau eto, pwyswch 0.
DAVID J. Malan: Byddwn yn pwyso 1 am quad.
CS50: gwennol nesaf yn gadael y funud 1:10 PM, a
yna ar 1:20, 1:30 PM, 13:40.
Mae hyn yn CS50.
>> DAVID J. Malan: Felly mae hyn yn CS50 llais.
Ac mae'n enghraifft o'r mathau o brosiectau terfynol, ar gyfer
enghraifft, gallwch cnoi i ffwrdd tuag at
ddiwedd y semester.
Er enghraifft, bod shuttleboy.cs50.net yn bodoli -
mewn gwirionedd prosiect sy'n tro cyntaf i mi ysgrifennu ar ôl cymryd CS51
yn ôl pan oeddwn yn fyfyriwr israddedig.
Ac mae'r ysbrydoliaeth yma oedd bryd hynny, y cyfan oedd ganddyn nhw ddim
y argraffu amserlenni bws gwennol, ac nid oedd unrhyw
syniad o edrych pethau fyny ar-lein.
Ac felly yr wyf fath o golomen mewn un penwythnos, arllwys drwy
argraffu amserlen, a borthi i raglen gyfrifiadurol.
Ar y pryd, y rhaglen gyfrifiadurol yn digwydd i gael ei ysgrifennu
yn C. A ydych mewn gwirionedd yn rhedeg iddo gan Boy Shuttle deipio mewn
amrantu ysgogi fel yr ydym wedi bod yn ei wneud hyd yn hyn.
Ond dros y blynyddoedd, mae wedi esblygu i mewn amrantiad
negeseuon bot.
Mae'n esblygu yn fwy diweddar yn y wefan hon, i fod yn
SMS-seiliedig ar offeryn, yn ogystal ag i mewn i'r offeryn llais-seiliedig.
Ac mae hyn yn i awgrym ar y mathau o bethau y gallwch
ei wneud i chi eich hun erbyn diwedd semester.
>> Er enghraifft, yno, y fersiwn SMS o Boy Shuttle yn digwydd
i weithredu fel a ganlyn.
Os, ar eich ffôn cell, rydych yn anfon neges destun i 41411 a
wedyn yn anfon y sboy symbol arbennig, ar gyfer Boy Shuttle,
ddilyn gan A a B, lle mae A yn tarddiad a B yn
cyrchfan -
er enghraifft, Boylston Space Quad -
beth ddylech ei gael yn ôl o fewn ychydig eiliadau yn destun
neges gan Boy Shuttle yn dweud wrthych pryd yn union y
gwennol ychydig nesaf, o'r pwynt A o fynd i'r
pwynt B.
Ac mae hyn yn enghraifft fwy cyffredinol o'r hyn a elwir yn
defnyddio API.
>> Felly, er enghraifft, mae hyn yma yn unig shuttleboy.cs50.net, y
gwirioneddol ar y we ymgnawdoliad o hyn.
Ond mae'r data sy'n tanlinellu'r apps hwn ac eraill sy'n CS50
wedi datblygu yn cael eu hamlygu i gyd i bawb yma yn y ffurflen
o APIs, rhyngwynebau rhaglennu cais.
A dim ond ffordd ffansi o ddweud bod pobl yn hoffi ydym ni ar
y Rhyngrwyd ac eraill wedi treulio peth amser yn creu
meddalwedd y gallwch eu defnyddio er mwyn i dynnu data oddi wrthym ni a
yna adeiladu eich ceisiadau eu hunain ar ben
y set data.
Felly, er enghraifft, y dudalen hon Boy Shuttle API yma, sy'n
digwydd bod yn y llawlyfr CS50, yn y bôn dogfennau
sut y gallwch fynd ati i ofyn CS50 gweinyddion ar gyfer data.
Er enghraifft, os ydych chi'n gyfarwydd â CSV ffeil, coma
gwahanu gwerthoedd, mae'r rhain yn unig fath o gyflym ac yn frwnt
Excel tebyg i ffeiliau.
Felly, gallwch ofyn Boy Shuttle ar gyfer yr holl ddata ar bob un o'r
tai a'u cyfesurynnau GPS, a byddwch yn cael
yn ôl, yn ei hanfod, taenlen fel hynny y mae
gallwch wedyn ddarllen i mewn i raglen eich hun ac yna
cynhyrchu canlyniadau, fel Boy Shuttle ei hun
digwydd i fod yn ei wneud.
I'r rhai mwy cyfarwydd, yn fwy modern sylwadau data
cynnwys JSON, Nodiant Gwrthrych JavaScript.
Bydd rhywbeth yn dod yn ôl i chi tuag at
ddiwedd y semester.
>> Ond unwaith eto, mae hyn yn un o nifer o APIs CS50 ei hun.
A'r peth cyffrous yn awr, y dyddiau hyn, Facebook a
Twitter a Google a 'n bert lawer pob gwefan boblogaidd y tu allan
mae wedi rhyw fath o API, sy'n golygu os ydych yn darllen y
dogfennau ar eu gwefan, i chi gofrestru ar gyfer
cyfrif, yna gallwch ddechrau ysgrifennu meddalwedd ar ben
beth bynnag offer neu ddata y cwmni yno yn eu darparu.
Ac felly un o'n cymrodyr addysgu eu hunain cwpl o flynyddoedd yn ôl
Ysgrifennodd fersiwn Mac o hyn.
Felly, ar y ddolen sy'n dwyn y teitl Mac yma ar y chwith uchaf, gallwch mewn gwirionedd
lawrlwytho widget OS Mac sy'n rhedeg ar Mac yn berchen ar eich i wneud y
un math o bethau.
Felly mae'n cyfan yn ymwneud â adeiladu ar ben setiau data fel y rhain.
Ond mwy am hynny tuag at ddiwedd y semester.
>> Felly, gadewch i ddeifio yn gyflym go iawn i nam, dim ond i fath o gael
pethau cynhesu i fyny heddiw, ac yn meddwl yn ôl ar rai o'r
pethau yr ydym yn edrych ar yr wythnos diwethaf.
Yn arbennig, gadewch i mi fynd yn ei flaen a thynnu i fyny, yn dweud,
yr enghraifft hon yma.
Buggy1.c, mae hwn ar gael ar wefan y cwrs os hoffech
yn hoffi lawrlwytho a brocio o gwmpas eich hun.
Ond gadewch i chwyddo i mewn yma yn y rhaglen hon weddol fyr, a dim ond
yn ailadrodd super-cyflym o rai o'r blociau adeiladu sylfaenol sy'n
ydym yn wir yn mynd i dim ond dechrau cymryd yn ganiataol.
>> Felly, y pethau glas, yn llinellau 1 i 9, yn unig
cwestiynau pêl feddal.
Felly, mae'r rhain yn dim ond sylwadau.
Nid oes ganddynt ystyr swyddogaethol.
Ond maen nhw'n sylwadau yn yr ystyr eu bod yn nodi bod
Yr wyf fi, y dynol, a wnaed i mi fy hun fel bod mewn darlithoedd ac ar ôl
ddarlith, gallaf gofio mewn gwirionedd beth mae hyn yn rhaglen
gwneud heb orfod darllen drwyddo fesul llinell a
ail-greu hanes yn fy meddwl.
Ar ben hynny, os wyf yn llaw y rhaglen hon i rywun arall, fel
chi, mae'n llawer cliriach i chi, oherwydd o sylwadau fel hyn,
hyn y mae'r rhaglen mewn gwirionedd yn ei wneud, neu o leiaf yr hyn y
rhaglen i fod i gael ei wneud.
P'un a yw ei fod yn gywir yn fater arall yn gyfan gwbl.
Yn awr, yn C, gydag aml-linell sylwadau, yn cofio bod ar-lein
un yma yn y symbol hud, / *.
Mae'n golygu yma hon y dechrau o sylw.
A dim byd arall sy'n bwysig nes i chi gyrraedd diwedd y terminator,
sydd yn * /, y gwrthwyneb.
Felly, mae'r ffaith fod gennyf 80-rhai o sêr od yma o
o'r chwith i'r dde yn wirioneddol yn unig manylion esthetig.
Nid oes ganddo unrhyw ystyr swyddogaethol.
>> Nawr beth am llinell 11?
Beth mae hyn yn ei wneud yn nhermau lleygwr?
Beth sy'n bod?
GYNULLEIDFA: Yn cynnwys y safon.
DAVID J. Malan: OK, yn dda.
Felly, mae'n cynnwys y llyfrgell stdio.h.
Felly beth mae hynny'n ei olygu?
Wel, y tu mewn i'r ffeil, stdio.h, yn criw cyfan o
datganiadau swyddogaeth -
hynny yw, cod y ysgrifennodd rhywun arall.
Ac yn enghraifft berffaith o swyddogaeth sydd wedi'i ddatgan yn
stdio.h yw -
sy'n hoff erbyn hyn?
Felly printf, un o'r rhai mwyaf cyffredin i'w ddefnyddio, yn sicr
gynnar, o'r llyfrgell yno.
Os byddaf yn cynnwys y llinell o god, Clang yn mynd i weiddi
ar mi rhywbeth am ddefnyddio symbol heb ei ddatgan.
Rhywbeth heb eu datgan yn ôl pob tebyg y gair allweddol, oherwydd
nid ydym wedi rhoi gwybod i'r casglwr beth printf yn edrych
hoffi oni bai ein bod yn cynnwys y llinell.
A mwy i lawr i'r Ddaear, mewn gwirionedd, yr hyn y llinell ei ddweud yw
agor y ffeil, stdio.h, lle bynnag y mae ar y gweinydd
'n anawdd cathrena, neu yrru yr offer caled, a chopi-gludo ei
iawn yno yn fy ffeil, heb fy
orfod gwneud hynny â llaw.
>> Nawr, ar ôl i ni fynd i lawr yma i brif, cyn bo hir byddwn yn dechrau
pryfocio ar wahân pa int a pha ddi-rym yn.
Ond am nawr, gadewch i ni edrych ar y tair llinell
o fewn 15 drwy 17.
Mae hyn yma rwyf hawlio fel bygi.
Llinell 7 yn fy sylwadau yn dweud "Os argraffu 10
sêr ond nid yw'n. "Pam mae hyn yn Nid yw argraffu, mewn gwirionedd,
10 sêr o'r fath?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yn union.
Felly sylwi ein bod yn dechrau cyfrif o 0.
Ac mae hyn mewn gwirionedd yn gonfensiwn mewn rhaglennu a
gwyddoniaeth gyfrifiadurol yn fwy cyffredinol, yn dechrau i gyfrif
o 0 yn hytrach na 1.
Ac mae hyn yn wir yn unig yn deillio o'r ffaith, er
enghraifft, pan oedd gennym wyth o bobl i fyny ar y llwyfan, pan
nid oedd neb yn codi eu llaw, roeddent yn
pob seroau yn effeithiol.
Ac felly 'i' jyst fath o gonfensiwn cyfrifiadur felly,
Felly, i ddechrau cyfrif o 0.
Os dyna'r nifer isaf y gallwch ei gynrychioli mewn deuaidd.
>> Felly dyma ni wedi dechrau i ymgychwyn i 0.
Rydym wedi gosod i gyfartal i 0.
Ond yna wyf yn gwneud y camgymeriad yma, gan ddweud i yn llai na neu'n
gyfartal i 10.
Ond os ydych yn credu mai trwy, os byddaf yn dechrau ar 0, ac yna byddaf yn mynd
hyd at 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, Im 'mewn gwirionedd yn mynd i
argraffu 11 o sêr y sgrin, oherwydd fy mod i wedi mynd i fyny
i ac yn gyfartal i 10.
Felly, mae'r ateb yn hawdd yma wedyn yw beth?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Dim ond newid i lai na.
Os ydych wir eisiau, gallwch wneud hyn.
Ond yn gyffredinol, sydd wedi gwgu arno.
Ac felly dechrau cyfrif o 0 yn unig yw rhywbeth dylech
fel arfer yn cael ei ddefnyddio i.
Nawr, beth am y lluniad gyfan mewn ac o ei hun?
Hyn 15 llinell demarks a ar gyfer dolen.
Felly, nid yw swyddogaeth.
Mae'n dim ond datganiad.
Mae'n lluniad dolennu, fel y gwelsom yn Scratch.
Ac mae wedi tair rhan.
Sylwch fod yna yn y rhan gyntaf i
ar ochr chwith y colon.
Mae y rhan ganol rhwng y ddau hanner colon.
Ac yna mae y rhan dde-law i'r dde
y colon ail.
Yn awr, y cyntaf o'r rhain yn gwneud beth?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yn ôl yno?
Yeah?
GYNULLEIDFA: initialization.
>> DAVID J. Malan: initialization.
Felly beth mae hyn yn ei olygu?
Rydym wedi datgan newidyn enw i.
Mae o int fath, am fy mod wedi nodi int i.
A dwi'n ymgychwyn i at y gwerth o 0.
Felly beth mae hyn ei ddweud mewn gwirionedd?
Mae'n effeithiol yn dweud wrth y cyfrifiadur hey, yn rhoi i mi yn ddigon
cof, ddigon o RAM, i osod rhif, ac yna rhowch y
rhif 0 yn y darn o RAM.
Ac fel o'r neilltu, pa mor fawr yn int fel arfer, o leiaf y tu mewn
y teclyn?
GYNULLEIDFA: 32 bit.
DAVID J. Malan: 32 ddarnau.
Felly mae hynny'n golygu rhoi i mi 32 catiau, a elwir fel arall fel 4 bytes,
a rhowch y 0 werth ynddo, sydd yn eithaf hawdd oherwydd
'i jyst yn golygu gosod yr holl ddarnau i 0.
>> Felly yn awr, yr ail ran yma yw cyflwr.
Ac mae'r cyflwr, fel mae'r enw yn awgrymu, yn yr hyn yn cael ei wirio
eto ac eto ac eto ynghylch a yw'n wir neu ffug.
Felly, mae hyn yn unig yw dweud gwneud y llinellau canlynol o god -
sef llinell 16, oherwydd dyna'r unig un wedi'i fewnoli
o dan -
cyhyd fel fi yn llai na 10.
Ac ar ôl pob iteriad drwy'r ddolen, gwneud y
incrementation, sef yn yr achos hwn yw i + +.
Nawr, nid oes rhaid iddo fod i + +.
Gallai fod i -.
Ond os wyf yn gwneud hyn, beth sy'n ymddygiad sy'n mynd
i fod y rhaglen hon?
GYNULLEIDFA: Mae'n mynd i fod yn dolen ddiddiwedd.
DAVID J. Malan: Mae'n mynd i fod yn rhyw fath o dolen ddiddiwedd,
oni bai ein bod yn cael lwcus ar ôl 2 biliwn neu negyddol hynny.
Efallai y bydd pethau'n lapio o gwmpas, dim ond drwy natur y terfyn
nifer o ddarnau yr ydym wedi dyrannu ar gyfer int.
Ond mae'n sicr yn mynd i ailadrodd llawer mwy na 10 a
sicr yn fwy na 11 gwaith yma.
>> Ac yn awr, yn union fel o'r neilltu, yn sylweddoli bod fi + + a fi -
yn wir dim ond siwgr cystrawennol.
Dim ond nodiant llaw-fer am yr hyn sydd ychydig yn fwy
ysgrifenedig yn benodol fel a ganlyn:
i = i + 1.
Dyna yn union i + +.
'I jyst fath o edrych yn prettier i ddweud i + +.
Mae'n fwy cryno, yn fwy darllenadwy.
Ac felly rhan fwyaf o bobl yn gwneud hynny yn lle hynny.
Ond mae hyn yn union yr un fath swyddogaethol i
hyn yr ydym jyst yn gweld.
Felly, yn fyr, ateb cyflym yma yn unig i ddweud ailadrodd i
o 0 yr holl ffordd i fyny i lai na 10.
Ac yna byddwn yn wir yn cael 10 sêr.
>> Felly, gadewch i ni geisio hyn.
Gadewch i mi agor y derfynell ar y gwaelod.
Gadewch i mi fynd i mewn i'r cyfeiriadur bod hyn yn ynddo
Ac yr wyf i'n mynd i lunio â llaw gyda Clang am y tro.
Ac yr wyf i'n mynd i lunio hyn fel buggy1.c, Enter.
Ac yn awr buggy1, pam nad oes unrhyw ffeil o'r fath neu cyfeiriadur
a elwir yn buggy1?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yeah.
Felly, fe'i gelwir mewn gwirionedd a.out.
Felly cofio os ydych yn unig yn rhedeg Clang, lle Clang yw'r
Nid yw compiler, ac rydych yn nodi yr enw sydd eisiau i
roi eich rhaglen, mae'n mynd i ball i a.out.
Felly, yn wir, os wyf yn gwneud ls -
wps.
Ac yr wyf yn didn't - y mater du-a-gwyn rhai o'r
ydych wedi'u hwynebu wedi bod yn sefydlog.
Ond gadewch i mi wneud hyn.
Mae gennym a.out ar yr ochr chwith yno.
Felly, mae'n rhaid i ni redeg a.out yn hytrach na buggy1.
>> Felly, gadewch i mi fynd ymlaen a gwneud hyn.
. / A.out, Enter.
Ac yr wyf yn debyg nad oedd yn gwneud beth?
GYNULLEIDFA: Achub.
DAVID J. Malan: Achub fy ffeil.
Felly sy'n cael ei datrys yn hawdd drwy daro S Rheoli, neu fynd i
File, Achub, fel yn y rhan fwyaf o raglenni.
Gadewch i mi fynd i lawr yma, clirio'r sgrin, yn rhedeg eto.
Ac mae dal i fod yn bug.
Felly beth sy'n mynd -
GYNULLEIDFA: Nid ydych wedi llunio.
DAVID J. Malan: Ah, yn dda.
Doeddwn i ddim yn llunio ei.
Fel idiot, rwy'n edrych ar y cod i weld beth sydd o'i le.
Buggy1.c clang Felly, nawr a.out.
Ac phew, arbed.
>> Felly mae'n edrych ychydig yn hyll oherwydd nad oes llinell newydd
unrhyw le yn y rhaglen.
Ond unwaith eto, dyna dim ond manylion esthetig.
Ac o leiaf os ydym yn cyfrif rhai y tu allan, dylem
awr yn gweld 10 sêr o'r fath.
Wel, beth am yr ail gynhesu enghraifft?
Felly, yn buggy2, yr wyf yn honni bod y fersiwn hwn, hefyd, yn argraffu
10 sêr, un i bob llinell.
Felly, y tro hwn, mae gen i gymeriad Newline, dim ond er mwyn gwneud
pethau ychydig yn prettier.
Ond yn hytrach yr hyn yr wyf yn ei gael yn hyn.
Felly, gadewch i mi wneud buggy2.c clang, Enter.
Nawr mae'n cael ei alw eto a.out.
Enter.
Ni welaf ddim ond un llinell newydd, dim ond y llinell olaf un newydd sy'n
symud fy brydlon i'r llinell nesaf.
Ac eto yn glir Rwyf wedi bod yn argraffu *, yna llinell newydd,
*, Yna llinell newydd.
Ond beth yw'r nam yma?
Yeah?
GYNULLEIDFA: [Anghlywadwy].
>> DAVID J. Malan: Yn union.
Felly, yn wahanol i rai ieithoedd, fel Python, lle bant
mewn gwirionedd wedi ystyr swyddogaethol, mewn
iaith fel C -
gan y byddwn yn gweld, PHP, JavaScript -
y mewnoliad yn wirioneddol yn unig er budd pobl '.
Felly y ffaith fy mod i wedi mewnoli llinell 16 a 17 yn edrych yn wych,
ond nid oes ganddo ystyr swyddogaethol yma.
Os ydw i eisiau ddau llinellau i weithredu fel rhan o'r am
ddolen, yna mae'n rhaid i mi eu hamgáu mewn braces cyrliog trwy wneud hyn.
Gallwch dorri cornel hwnnw a hepgorer y braces cyrliog os
beth yw'r achos?
GYNULLEIDFA: Dim ond un llinell.
DAVID J. Malan: Dim ond un llinell.
Felly dyna 'i' jyst fath o fath 'n glws o fanylion gystrawen er mwyn
nad ydych yn gwastraffu amser yn ysgrifennu tair llinell, dau ohonynt yn
braces cyrliog, dim ond i ysgrifennu un llinell o god.
Ond os oes gennych ddau neu fwy o linellau, rydym yn
yn wir angen i wneud hyn.
>> Felly nawr gadewch i mi achub y.
Gadewch i mi fynd yn ei flaen ac ail-redeg Clang.
Yna gadewch i mi ailgynnal a.out, ac yn awr yr wyf yn eu cael un i bob llinell.
Yn awr, a.out unwaith eto yn fath o enw fud ar gyfer rhaglen.
Sut alla i ddweud Clang i mewn gwirionedd yn rhoi i mi enw ffeil
hynny'n fwy defnyddiwr-gyfeillgar, fel buggy2 ei hun?
Ychydig yn fwy clir?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: OK, fel y gallaf mewn gwirionedd yn cymryd iawn
defnyddiwr-gyfeillgar shortcut a dim ond ysgrifennu yn buggy2.
Nid wyf yn nodi. C yn yr achos hwn, a daro Chofnoda.
A beth wneud yn ei wneud yn ei llunio buggy2.c i mi gan
gofyn Clang i wneud hynny.
Yn benodol, mae'n galw Clang, mae'n rhedeg Clang gan ddefnyddio ffordd fwy
gorchymyn-lein dadleuon neu switshis nag yr oeddwn ei angen mewn gwirionedd.
Ymhen amser, byddwn yn dod yn ôl at yr hyn y rhain i gyd wahanol
ymadroddion chysylltnod cryptig olygu.
Ond am nawr, dyna dim ond fy arbed y drafferth o
orfod cofio ac yn gorfod teipio allan bawb
ymadroddion chysylltnod amrywiol.
Ac y upside ohono yn y pen draw yw
sydd yn awr yr wyf wedi buggy2.
Os ydw i eisiau gwneud hyn â llaw, fodd bynnag, yr wyf
modd i chi wneud hyn -
clang-o buggy2 ac yna buggy2.c.
A bydd yn yr un modd yn rhoi i mi ffeil o'r enw buggy2.
>> Felly, yn fyr, Clang yw'r compiler.
Gwnewch yn unig yn offeryn defnyddiwr-gyfeillgar y byddwn ni'n defnyddio mwy
a mwy, oherwydd mae'n dechrau
symleiddio pethau i ni.
Ac rydym yn dychwelyd 0, yn olaf.
Am y tro, dim ond oherwydd, ond byddwn yn dechrau tynnu coes y rhan honno
heddiw ac ar ddydd Mercher.
Unrhyw gwestiynau ar unrhyw un o'r hyn?
Yeah?
GYNULLEIDFA: [Anghlywadwy]
ls mewn dyfynodau yno?
DAVID J. Malan: OK.
Pan fyddaf yn ls teipio mewn dyfynodau, a oedd i mi wneud rhai hud
y tu ôl i'r llenni i drwsio a bug.
Anghofiais i, fel yr ydym wedi bod yn dweud llawer ohonoch ar y
byrddau trafod, i'w wneud -
byddwn yn gwneud hyn yn awr - sudo yum-y diweddariad appliance50.
Wps, bod ei sillafu'n gywir.
Felly, yr offer yn debyg i system weithredu.
Mae'n cynnal y system weithredu o'r enw Fedora.
Ac yn awr oherwydd fy cysylltiad rhyngrwyd araf, rydw i wedi
hosed fawr iawn.
Felly, yn rhedeg diweddariad sudo yum, fel yr ydym yn dweud wrthych ei wneud yn y
broblem a osodwyd, yn ei hanfod yn hoffi rhedeg diweddariadau awtomatig
yn Mac OS neu Windows.
A'r rheswm am redeg hyn ar gychwyn cyntaf y
broblem a osodwyd oherwydd pan fyddwn yn creu y peiriant, yr wyf
cyboledig i fyny, ac yr wyf yn ddamweiniol gwneud eich holl raglenni yn edrych
du ar sgrîn du, a dyna pam nad ydych yn gweld eu
yn ddiofyn.
Ond y fersiwn diweddaraf o'r offer chyfyngderau hyn.
A byddaf atgyweiria bod yn ystod yr egwyl ar ôl i mi gael y Rhyngrwyd
cysylltedd.
>> Felly mae'r dyfyniadau yn unig cuddio fy camgymeriad, yn synhwyrol,
mae'n debyg.
Cwestiynau eraill?
Ydw?
GYNULLEIDFA: Ble mae gwneud dod?
[Anghlywadwy]
DAVID J. Malan: Cwestiwn da.
Ble yn gwneud yn dod?
Mae'n rhaglen Linux sydd wedi bodoli ers blynyddoedd lawer, hir
cyn CS50.
Ac mae'n dod gyda system weithredu fel Fedora.
Nid yw'n dod o'r llyfrgell CS50.
Yn wir, yr unig bethau sy'n dod o'r llyfrgell CS50
hyd yn hyn, yr ydym wedi gweld, yn GetString, GetInt, pob un
Cael y rhai swyddogaethau, ac y llinyn gair, ac i rai
raddau, y gair bool.
Ond byddwn yn ymhelaethu ar y mater ar wahân pan fyddwn yn plymio i mewn i'r CS50
offer ei hun.
>> Felly ie, un cwestiwn mwy yma.
GYNULLEIDFA: Pan fyddwch yn dweud gwneud ac yna bygi, sut y mae'r
cyfrifiadur yn gwybod [Anghlywadwy]?
DAVID J. Malan: Cwestiwn da.
Felly, pan fyddwch yn gwneud jyst hidla buggy1 neu wneud buggy2, sut
yn gwneud gwybod?
Felly, yn ddiofyn, os ydych yn teipio yn gwneud buggy1, yn gwneud yn edrych am
ffeil o'r enw buggy1.c.
Ac yna mae'n executes y gorchmynion Clang priodol,
a thrwy hynny tra phwysig 'r ball ffeil allbwn o'r enw a.out.
Yn wir, os edrychwn ar yr hyn y gwneud, beth -
gadewch i ni roi'r gorau i hyn.
Os edrychwn ar yr hyn oedd mewn gwirionedd yn gwneud ei wneud, yn gwneud buggy2,
mae eisoes i fyny hyd yn hyn.
Felly, gadewch i mi gael gwared ar y gorchymyn rm, y
rhaglen Ysgrifennais o'r blaen.
Teipio Y-E-S i gadarnhau fy mod am dynnu.
Os wyf yn awr yn gwneud, yn sylwi bod yn y llinell hon yn hir iawn,
mae hyn yn beth olaf yma,-o buggy2.
Mae pob gwneuthuriad yn ei wneud yn pasio y ddadl honno, fel petai, i
Clang, fel nad oes rhaid i mi deipio fy hun.
>> Mae pob hawl, felly mae ychydig yn gyflym gweinyddol
cyhoeddiadau.
Felly, ar gyfer adrannau, a oedd yn swyddogol dechreuodd hyn yn dod
Dydd Sul, byddwch bob amser yn awyddus i ddod, os
oes gennych chi un, gliniadur.
Os nad oes gennych laptop, yn cyrraedd allan i mi gan
gollwng m e-bost.
A byddwn yn chyfrif i maes llif gwaith.
Beth yn gyffredinol byddwch yn dod o hyd yn adran yw eu bod yn rhan
cysyniadol, rhan ymarferol.
Byddwn yn benodol yn defnyddio'r adran cwestiynau, rhan o
set problem yr wythnos, i gerdded drwy rai o'r
deunydd cysyniadol o ddarlith.
A dyna i gyd yn y set problem ar hyn o bryd.
A byddwn hefyd yn plymio i mewn i rai gweithgareddau ymarferol, weithiau
Bydd ohonynt yn cael eu ofynnol ei gyflwyno, weithiau o
na fydd yn.
Er enghraifft, yr wythnos hon gyntaf, maent yn golygu yn union fel
cynhesu i fyny ymarfer corff.
A byddwch yn gweld bod y rhai problemau yn wir yn hynny.
Maent yn golygu i fod yn gymharol fach, ond nid o reidrwydd
rhaglenni dibwys i ysgrifennu, nad ydynt o reidrwydd
gyfleoedd da cyffrous mewn ac ohonynt eu hunain ond maent i
ymarfer gyda chystrawen, gyda swyddogaethau newydd, yn y cysur o
adran lle mae gennych ychydig o'ch cyd-ddisgyblion yn bresennol fel
ogystal â'ch TF.
>> A beth byddwn yn ei wneud dros gyfnod o amser yn defnyddio dull o'r enw Mannau CS50,
lle hytrach na dim ond defnyddio'r Offer CS50, byddwch yn
yn hytrach na mynd i dudalen gwe mewn porwr, lle byddwch yn gallu
i ysgrifennu cod mewn ffenestr porwr yn ystod adran.
Ac yna os ydych yn dewis i mewn, gall eich cyd-addysgu yna dangos
beth bynnag yr ydych chi'n teipio ar eich sgrîn yn eich porwr
ffenestr i fyny o flaen y dosbarth, boed yn ddienw neu
yn gyhoeddus, fel y gall ef neu hi wedyn yn cerdded drwy gyda
eich cyd-ddisgyblion yr hyn a wnaethoch yn dda, beth nad oeddech yn gwneud yn dda.
Ac eto, fod yn sicr y gall hyn i gyd yn cael ei anonymized 'n glws.
Ond fe fydd yn gyfle braf i lawer mwy
rhyngweithio na rhywbeth tebyg i ddarlith yn galluogi'r.
>> Yn y cyfamser, bydd gennym y pethau hyn a elwir yn super
adrannau, sydd yn ddewisol ond yn agored i bawb yn
y dosbarth, fel y gallwch wneud hyn yn fwy ar y cyd ar gyfer
problem sefydlu un.
Dyma yr amserlen.
Mae hyn yn cael ei bostio hefyd ar y dudalen hafan yn cs50.net.
Sylwch fod mi fydd haciwr-benodol
un prynhawn yfory.
A byddwn yn ffilmio un heddiw ac un yfory ac ar ôl rhai
ar-lein o fewn 24 awr.
Felly, os na allwch chi wneud unrhyw un o'r adegau hyn, i chi boeni.
Ac eto, yr amserlen ar-lein yn awr yn cs50.net.
>> O ran rhannu'r ei hun, dylech fod wedi gotten yn
e-bost sy'n eich cyfarwyddo i fynd i hafan y cwrs i ddod o hyd i
eich adran.
Os yw bywyd wedi newid ac mae angen i chi newid eich adran,
nid problem.
Ewch yn ôl at y URL un, cs50.net/section, unigol,
a byddwch yn llenwi'r ffurflen tebyg fel y gallwch
Yna, rhowch eich dewisiadau.
A byddwn yn dilyn i fyny erbyn diwedd wythnos o ran yr hyn y gallwn
darparu.
Yr wythnos diwethaf, yn cofio ein bod yn cynnig defnyddio CS50 Trafod,
offeryn trafod y cwrs, mewn darlith.
Felly, rydym wedi 40 o gwestiynau a ofynnwyd ac
hateb yn ystod darlith.
Felly, roedd yn ymddangos i weithio'n dda, felly byddwn yn parhau
ceisio gwneud hyn.
Os, yn ystod darlith, nad ydych yn unig yn teimlo'n gyfforddus codi
eich llaw, nid problem.
Ewch i cs50.net/discuss, ar ôl yno, a bydd un o'n haddysgu
Bydd cymrodyr naill ai ateb yn electronig neu godi eu
llaw ar eich rhan ddienw i ofyn, yn dibynnu
ar natur y cwestiwn.
Ac o ran adborth, yn gyffredinol psets yn
ddychwelyd o fewn wythnos.
Oherwydd ei fod yn cymryd ychydig o amser ar gyfer adrannau i gyflawni
cydbwysedd, bydd y pset cyntaf, 0 ac 1, fod ychydig yn
oedi wrth i bethau setlo i lawr.
Ond aros diwnio ar gyfer hynny yn yr wythnosau i ddod.
>> Mae pob hawl, felly gadewch imi roi ar fy difrifol
llais am ddim ond ennyd.
Felly, mae hyn mewn gwirionedd yn yr hinsawdd diddorol i fod yn
cael y drafodaeth hon, beth gyda'r holl bethau eraill
mynd ymlaen ar hynny gampws cysylltiedig.
Ond CS50 yn sicr wedi ei hanes y penodol
pwnc, yn gymaint ag y bob blwyddyn, y cwrs hwn, ar gyfer llawer
mlynedd, Ad-Byrddau tua 3% y dosbarth.
Mae'r flwyddyn fwyaf diweddar, 2011, CS50 Ad-estyll 35 o fyfyrwyr.
Nid yw hyn yn, yr wyf yn meddwl, oherwydd diffyg eglurder.
Sylweddoli bod maes llafur y cwrs, mae tudalen o
datganiad yn egluro lle mae'r llinellau yn cael eu.
Bod un datganiad yn cael ei ailadrodd ar bob un o'r
problem yn gosod ar dudalen un.
>> Felly, yr wyf yn sôn am hyn heddiw mewn gwirionedd yn unig i wneud
Folks yn ymwybodol o hyn.
Ac rydym wedi ceisio bethau gwahanol.
A hyn yr wyf yn meddwl y byddem yn ei wneud heddiw yn unig yn cymryd hyn o bryd i
mewn gwirionedd yn edrych ar rai o'r achosion yn y gorffennol sydd wedi dod i fyny.
Yn hytrach na chadw cyfrinachau hyn fel budr bach, mewn gwirionedd
tynnu sylw at yr hyn y mae myfyrwyr wedi ei wneud a sut rydym wedi canfod
ac yn wir beth yw'r cymhelliant cyffredinol ar gyfer
hyd yn oed cael y sgwrs hon.
Felly, gyda hynny ddywedodd, y llinell yn ei hanfod yw hyn -
unol â'r maes llafur, rydych yn, rydych yn cael eu hannog, i
siarad gyda chyd-ddisgyblion.
Dyna holl bwrpas cael y cyd
oriau swyddfa yn Annenberg ac annog pobl ar gyfer y
prosiect terfynol i weithio gyda'i gilydd.
Ond mae'r llinell yn cael ei lunio pan ddaw amser i ysgrifennu mewn gwirionedd
eich ateb terfynol.
Wrth siarad yn Saesneg, yn hollol iawn, yn siarad mewn cod ffug,
hollol iawn.
E-bostio a classmate eich pset, gan adael iddynt edrych dros
y sgrin fel y dwylo yn parhau i deipio,
dros y lein yn ogystal.
Peidiwch edrych ar y maes llafur ar gyfer y llinellau penodol.
>> Ond dim ond i beintio darlun o sut mae hyn yn anffodus, yn
gwirionedd, yn sylweddoli bod yna wefannau allan yna sy'n
cael atebion gan y dosbarth hwn a dosbarthiadau eraill.
Mae'r ffaith eich bod chi neu ryw 3% ohonoch yn gwybod bod hyn yn bodoli
yn golygu ein bod yn gwybod bod hyn yn bodoli.
Mae'r ffaith bod yna wefannau fel hyn lle rydych yn
Gall talu rhywun i mewn gwirionedd yn gwneud eich setiau problem - roedd hyn yn
achos gwirioneddol a ddaeth i fyny y llynedd.
Mae hon yn wefan o'r enw odesk.com.
Ac Tim oedd enw'r person yma oedd yn postio ar
y wefan hon a gofyn i rywun i wneud ei pset 7 mewn
yr achos arbennig hwn.
Wel, odesk.com iawn Google-abl, ac rydym hefyd yn
dda iawn am Googling.
Yma, hefyd, ceir safleoedd - ac mae hyn yn un 'yn hytrach
erchyll, a dweud y gwir.
[Chwerthin]
DAVID J. Malan: Y peth doniol am y wefan hon yw os
eich bod yn darllen y dudalen Amdanom, maent yn siarad am eu gorfforaethol
gwasanaeth cwsmeriaid diwylliant a sut mae eu rhif-un
blaenoriaeth, i wneud yn siŵr bod eich aseiniadau yn cael
troi i mewn ar amser.
>> Ond o ddifrif, unwaith eto, mae'r ffaith bod y safleoedd hyn
bodoli, yn sylweddoli ein, hefyd, yn ymwybodol o
mathau hyn o safleoedd.
Ac i roi syniad i chi o'r hyn ffurfio hyn, yn gyffredinol
cymryd, nid ydym yn gyffredinol yn cael sgandalau mawr lle mae pobl
yn cydweithio ar unrhyw fath o raddfa enfawr, ond yn hytrach
mae'n eiliadau hyn yn hwyr y nos o wendid, lle mae gennych er mwyn
llawer i'w wneud, mae'n 04:00, rydych yn blino'n lân, ac rydych yn
meddwl i chi eich hun, yn dda, gadewch i mi fwrw golwg ar fy
roommate neu god fy ffrind neu yn y blaen.
Ac mae'r arwyddion o hyn yn anffodus yn golygu Myfyrwyr
Mae rhywbeth yn cyflwyno fel hyn a chyflwyno B Myfyrwyr
rhywbeth fel hyn, sydd yn sicr, mewn cyfrifiadur
gwyddoniaeth dosbarth, yn hynod o hawdd i wyddonwyr cyfrifiadurol
i ganfod gyda meddalwedd.
Mae hwn yn batrwm arall cyffredin, lle rydych chi wedi fath o
bod yn gweithio ochr yn ochr â rhywun, efallai yn siarad yn
Saesneg, jyst ddirwya, pseudocode.
Ond yna mae'n fater o amser i gyflwyno mewn gwirionedd, ac mae'r psets
dim ond yn cael cyfnewid drwy e-bost neu Dropbox neu yn y blaen.
Ond mewn ymgais i'w gwneud yn llai amlwg bod hyn yn
hyn sydd wedi digwydd, yna mae hyn yn beth sy'n cyflwyno.
Mae hyn, hefyd, nid yw'n daith i fyny yn dda-ysgrifenedig darnau o
meddalwedd fel mae'n rhaid i ni mewn gwirionedd yn canfod
mathau hyn o bethau.
Ac yn wir yr hyn rydym yn ei wneud yw meddalwedd rhedeg sy'n cymharu pob un o'r
cyflwyniadau eleni yn erbyn yr holl flwyddyn a aeth heibio
cyflwyniadau, yn erbyn popeth yr ydym yn gweld ar y
Rhyngrwyd, yn erbyn pob gwefan swyddi i maes 'na.
Mae hyn i gyd yn awtomatig.
Ac felly rydym yn gwneud hyn yn wir er tegwch mawr i'r 97% sy'n
yn wir yn gweithio eu asesu i ffwrdd yn hyn ac mewn
dosbarthiadau a rhoi ym mhob un o'r ymdrech honno fel bod y gwaith
yn y pen draw yw cyflwyno eu hunain.
A allaf fynd ymlaen am oesoedd.
>> Mae'r rhain yn dim ond llond llaw o achosion y llynedd.
Mae ychydig o fyfyrwyr a gyflwynir y ffeiliau hyn yn union i pset 2,
pset 3, pset 4, pset 5, pset 6, pset 9.
Yn yr achos hwn, roedd hyn yn cwis 0 a yn y flwyddyn ddiwethaf, lle mae dau
myfyrwyr a gyflwynir yn union frawddeg hon ymhlith llawer o
eraill, "Y cais fath -" dot, dot, dot.
Felly hyd yn oed mewn dosbarth o 600 wnaethon ni ganfod hyn
ar gyflwyno cwisiau.
Felly, yn fyr, mae hyn - a dweud y gwir, Rwy'n casáu cael y math hwn o
sgwrs - ond mae hyn yn wir yn ymdrech fwriadol
eleni i geisio gostwng y nifer hwnnw.
Oherwydd hyd yn oed er ein bod yn dweud y mathau hyn o bethau bob
flwyddyn, rwy'n meddwl bod y realiti o fod wedi drigodd arno am ychydig
mwy eiliad nag arfer ac mewn gwirionedd dim ond tynnu sylw at
y gallai hyn ymddangos fel, eh, nid o'r fath yn beth mawr, o leiaf
meddwl yn ôl i'r adeg benodol, o ran tegwch i
eich hun ac i'ch cyd-ddisgyblion yma.
Felly, os ydych chi erioed gennych unrhyw gwestiynau ynglŷn â lle mae'r llinell
yw, os gwelwch yn dda dim ond ymestyn allan i mi yn bersonol.
Ond yr ateb bob amser, yn gyfan gwbl pwysleisio ar y
funud olaf, arian parod mewn diwrnod yn hwyr.
Neu os yw'n fater o beidio â chael unrhyw ddiwrnod yn hwyr,
yn onest, e-bost ataf yn bersonol.
Byddwn yn ffigwr rhywbeth allan.
Nid os gwelwch yn dda peidiwch â rhoi eich amser yma yn Harvard mewn perygl.
>> Yn awr, yr wyf yn credu y dylem ysgafnhau'r awyrgylch, felly rwy'n
cynnwys hyn fel y sleid nesaf.
[Chwerthin]
DAVID J. Malan: Mae'r wefan hon yn wych.
Fi 'n weithredol got ychydig yn canolbwyntio ar y ffordd.
Mae hyn yn un.
Ac yna roedd hyn yn un anhygoel.
Iawn, felly meddyliwch am y gath fach yn hwyr yn y nos wrth wneud
penderfyniadau hynny.
Mae pob hawl, pethau felly yn ôl i fwy o hwyl ac yn llai difrifol, fel
amodau.
>> Mae pob hawl, felly gwnaethom drafod yn fyr am y rhain.
Mae hyn yn rhywbeth sy'n debyg, yn gwbl gyfarwydd o
y byd Scratch.
Ac yn y byd o Scratch, mae gennym yr angen hwn weithiau
mynd i wneud fforchio yn y ffordd.
Naill ai gwneud hyn neu'r llall, neu y peth arall yma.
A phan fyddwn yn dymuno gwneud hyn, gallwn eu defnyddio, yn C yn awr, hyn os
arall adeiladu.
Ac yna dyma gennym mynegiadau Boole.
Er enghraifft, mynegiadau Boole yma, gallwn NEU
gyda'i gilydd, yn yr ystyr bod gennym y cyflwr hwn NEU
y cyflwr hwnnw.
Gallwn A gyda'i gilydd, yn yr ystyr ein bod eisiau
gwirio cyflwr hwn A bod cyflwr.
Ac yma mae gennym ddatganiad newid yn awr, nad yw mor
debyg syntactically i'r mathau hynny o amodau, ond mae'n
yn caniatáu i ni wneud yr hyn sy'n cyfateb os, arall os, arall os, arall
os, ac yn y blaen gan syml rhestru iddynt fesul achos
gan achos wrth achos.
Felly, rydym yn gweld rhai tro diwethaf.
Ac yna rydym yn dechrau cyffwrdd ar bethau fel dolenni.
Gwelsom un o'r rhain dim ond funud yn ôl.
Ond mae hyn cysyniadau eraill dolennu.
>> Er enghraifft, mae hyn yn un yma.
Felly, er (cyflwr), yn gwneud y peth eto ac eto.
Felly y bôn, yr hyn sy'n ymddangos i fod yn wahanol rhwng y
gyfer dolen ac mae hyn yn ddolen tra yma?
Hyn, er dolen ac mae hyn yn ddolen amser.
Yeah?
Beth sy'n bod?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Da.
Felly, tra yn y ddolen ar gyfer cyflwr, mae yn amlwg
cystrawen mwy.
Mae hyn yn initialization, mae diweddariad hwn.
Mewn dolen sbel, nid dim ond y cyflwr hwn.
Felly, mae'n ymddangos ei fod yn ychydig yn cwtogi i lawr yn erbyn y gyfer
ddolen, sy'n golygu os ydym am gael newidynnau ac rydym am
i gael incrementation, rydym mewn gwirionedd yn rhaid i
gwneud y peth hyn ein hunain.
>> Felly, gadewch i mi fynd yn ei flaen ac agor gedit.
Gadewch i mi droi at y ddyfais.
A gadewch i ni dim ond yn gwneud yn enghraifft fach cyflym
gwahaniaethu un o'r rhain oddi wrth y llall.
Ac yng nghefn fy meddwl yma, dylwn ddweud un peth.
Cyfeiriais yn benodol at y Tim enw.
Tim oedd mewn gwirionedd yn rhywun y mae myfyriwr ceisio dod o hyd i wneud
eu gwaith cartref ar eu cyfer.
Nid oedd gennym Tim yn yr adran benodol.
Felly sylweddoli, rhag i mi datgelu yn fyfyriwr, nid oedd yn fyfyriwr.
Roedd yn berson ar hap ar y Rhyngrwyd yn gwneud pethau
yn ôl blwyddyn ddirprwy ddiwethaf.
Felly rydym yn dod o hyd i hynny, hefyd.
Felly, yn yr achos hwn yma, gadewch i mi fynd yn ei flaen a
agor ffeil newydd.
Ffeil, Newydd.
Mae hyn yn rhoi i mi tab yma.
Gadewch i mi fynd yn ei flaen a'i gadw fel loop.c.
Gadewch i mi fynd a chliciwch Cadw.
Ac yna i lawr yma, gadewch i ni fynd yn ei flaen ac yn dechrau ysgrifennu
# Cynnwys .
Gadewch i mi chwyddo i mewn
Nawr byddwn yn gwneud prif int (gwag).
Nawr, gadewch i mi fynd ymlaen a gwneud ar gyfer (i int = 0; ff <
oh, 10; i + +).
Ac yn awr yr wyf i'n mynd i fynd yn ei flaen ac yn argraffu'r seren fy mod yn
gwnaethom yn gynharach.
Ac yna ar ddiwedd y rhaglen hon, rydym yn jyst yn mynd i
argraffu llinell newydd, dim ond er mwyn fy brydlon
nid yw'n edrych holl anniben.
dychwelyd 0.
Ymddangos syntactically gywir?
Hyd yn hyn.
Felly, gadewch i ni weld.
>> Felly, gadewch i mi chwyddo allan, mynd i mewn i fy ffenestr terfynell.
A gadewch i mi fynd yn ei flaen ac yn rhedeg ddolen, oherwydd fy mod yn galw hyn yn
loop.c. beth
Felly gwnewch ddolen.
Ymddangos i lunio OK.
Gadewch i mi redeg dolen, ac yn awr Enter.
Ac mae'n ymddangos i wedi argraffu 10 sêr.
Felly, gadewch i ni dim ond trosi hyn i ddolen ychydig a gweld beth
mathau o faterion rydym daith drosodd.
Felly yn hytrach na hyn, gadewch i mi fynd i mewn yma a dweud wrth fi yn
llai na 10 -
gadewch i mi gael gwared ar y ddolen i.
Iawn, felly mae gennym ychydig o broblemau eisoes.
Felly, y cyflwr yn yr un fath, ond rwy'n amlwg ar goll y
initialization.
Yr wyf yn goll y incrementation.
Felly, beth ddylai'r compiler debygol dweud wrthyf pan fyddaf yn ceisio
llunio rhaglen hon?
Yeah?
GYNULLEIDFA: [Anghlywadwy].
>> DAVID J. Malan: Da.
Felly, mae'n mynd i ddweud rhywbeth fel heb ei ddatgan - yn yr
achos, amrywiol i.
Ac yn wir, y defnydd o dynodwr heb eu datgelu i.
Ac felly mae hyn mewn cyferbyniad â ieithoedd fel PHP a
Python a Ruby, y mae efallai y bydd rhai ohonoch yn gyfarwydd,
lle gallwch dim ond math o gychwyn gan ddefnyddio newidynnau
rywsut-rywsut, ac nid rhaid i chi boeni am eu datgan
yn benodol bob tro.
Yn C ac mewn ieithoedd fel Java a C + +, rhaid i chi fod
super penodol.
Ac os ydych am newidyn enw i, mae'n rhaid i chi ddweud wrthyf
pa fath o newidyn ydyw.
Felly, rydym yn mynd i gael i atgyweiria hon fel a ganlyn.
Rydw i'n mynd i gael i fynd i fyny yma a theipiwch int i, felly,
Rwyf wedi datgan amrywiol enw i.
Yn awr, rwyf wedi hepgor un cam.
Dydw i ddim wedi ymgychwyn yn amlwg, ond gadewch i ni weld os mai ar
gwneuthuriad Clang lleiaf stop cwyno.
Felly, gadewch i mi ail-wneud y rhaglen hon.
>> Mae pob hawl, awron 'i' jyst cwyno
am reswm gwahanol.
"Amrywiol 'i' yn cael ei uninitialized pan gaiff ei ddefnyddio yma." Mae pob hawl, felly
mae hynny'n eithaf eglur.
Ymgychwyn yn unig yn golygu gosod fod yn gyfartal i werth.
Ac nid ydym wedi gwneud hynny, felly gadewch i mi roi cynnig dychwelyd 0.
Nawr gadewch i ni geisio hyn eto ac ail-redeg Clang.
Lluniwyd y tro hwn.
Ac rwy'n ar fin ei redeg.
Ond dolen ddiddiwedd mawr hen, oherwydd fy mod i wedi gwneud y
initialization, rwyf wedi gwneud y cyflwr, ond dydw i erioed wedi gwneud
unrhyw fath o incrementation.
Felly, sut y gallaf wneud y incrementation?
Wel, mewn cylch tra, mae'n teimlo fel fy mod i'n mynd i gael
i wneud hynny tu mewn i'r ddolen, oherwydd bod llawer fel y cyntaf
enghreifftiau wythnos o wneud lluniadau dolennu, fel gyda
y sanau a gyda'r hunan-cyfrif, roedd rhaid i ni wneud
rhywbeth ar y diwedd un, yn hoffi mynd yn ôl i'r llinell nesaf.
Beth os byddaf yn mynd yn ei flaen ac yn gwneud hyn i + + yma?
Gadewch i ni hyd yn oed yn llunio hyn.
Dal fi yn barod.
Beth sydd o'i le yma?
GYNULLEIDFA: [Anghlywadwy].
>> DAVID J. Malan: Felly nid yw'n bendant int.
Mae'n i.
A'r braces cyrliog, fel o'r blaen,
Nid yw pant yn ddigon.
Felly nawr rwyf wedi hyn yn adeiladu.
Felly, er i yn llai na 10, argraffu seren,
yna gynyddiad i.
Ac mae'r ffordd y mae tra bo'r gwaith yn ddolen yn bod cyn gynted ag y byddwch yn cyrraedd y
waelod y ddolen, sydd yn yr achos hwn yn edrych fel llinell 10,
mae'n mynd i fynd yn ôl i'r llinell 6, ar ba bwynt y
Bydd amod yn cael ei wirio eto.
Ac os fi yn dal yn llai na 10, byddwn yn gwneud llinellau 8 a
yna 9, yna y byddwn wedi cyrraedd 10, ac yn mynd yn ôl i 6, unwaith eto a
eto ac eto ac eto, ar yr amod fel fi yn llai na 10.
Felly gadewch i ni ail-redeg gwneud yma.
>> Iawn, rydym wedi llunio iawn.
Gadewch i mi ail-redeg ddolen.
Ac yn awr fod mewn gwirionedd yn ymddangos i weithio.
Felly pwyntiau cadarnhaol a negyddol yma?
Wel, hyd yma nid mewn gwirionedd yn ei chyfanrwydd o PLO -
fel 'n giwt.
Mae pob hawl, yr oedd hwnnw'n - AH, a oedd yn damwain.
Mae pob hawl, felly gadewch i ni fynd yn ôl at y ddolen i.
Felly, ar gyfer dolenni yn neis am eu bod yn super penodol.
A hyd yn oed er eu bod ychydig yn clunky i ysgrifennu, mae'n
bwerus iawn ac mae'n caniatáu i chi wneud
pethau lluosog ar unwaith.
Er nad dolenni yn ymddangos i gael llawer iawn o werth yn unig
eto, gan ei fod yn teimlo fel rydym yn unig rhaid i ni wneud mwy o waith.
Mae'n rhaid i ni roi y initialization i fyny yma, y
diweddaru i lawr yma, ac mae'n rhaid i ni gofio i wneud hynny i gyd.
Felly, byddwn yn gweld mewn amser y dolenni tra mewn gwirionedd benthyg
eu hunain i ddim ond gwahanol gyd-destunau, data gwahanol
strwythurau, fel rhestrau a thablau hash, pethau y byddwn yn dod i
canol semester.
Ond am nawr, yn gwybod bod yna y trydydd math a elwir yn do-
tra ddolen.
Ac rydym wedi gweld hyn yn gryno.
A gallai hyn fod yn ddefnyddiol super gyda pset 1.
Unrhyw bryd y byddwch am wneud rhywbeth ac yna gwirio os
cydweithio y defnyddiwr, ac os nad oeddent, yn ei wneud eto, a gwneud-
tra bod ddolen yn benthyg ei hun i'r math hwnnw o resymeg.
Oherwydd fel y archebu o'r top i'r gwaelod yma yn awgrymu,
yn llythrennol yn golygu gwneud hyn.
Ac yn gwneud hyn dro ar ôl tro, beth allai hynny fod?
Efallai ei fod yn golygu GetInt ffonio neu GetString ac yna
gwirio gwerth GetInt neu GetString ac yna gweiddi
ar y defnyddiwr os nad ydynt wedi cydweithio drwy ofyn iddynt
eto ac eto ac eto.
Os ydych am wneud rhywbeth unwaith,
Yna, edrychwch rhyw amod.
>> Felly, gadewch i ni geisio hyn.
Gadewch i mi mewn gwirionedd yn newid hyn yn awr at dolen do-gyfnod.
Ac yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud y canlynol.
Felly, yn gwneud y canlynol.
Gadewch i ni wneud int i = GetInt (), ond yn gyntaf gadewch i ddweud wrth y defnyddiwr
beth i'w wneud.
Felly, ychydig yn wahanol y tro hwn.
"Rhowch i mi yn int".
Felly, byddaf yn defnyddio printf am hynny.
Ac yn awr yr wyf i'n mynd i fynd i lawr yma, a dw i'n mynd i wneud hyn
tra i yw, gadewch i ni ddweud, yn fwy na -
gadewch i ni weld, i yw, gadewch i ni ddweud, yn llai na 0, neu fi yn
fwy na 10.
Mewn geiriau eraill, yr wyf am gael rhif o 1 i 9, dim ond
fympwyol.
Felly rwy'n defnyddio mynegiad Boole cyfunol yma i
gwneud yn siŵr bod fi yn llai na 0 neu fwy na 10, lle
achos byddaf yn gwneud hyn dolen yma eto.
Felly, unwaith eto, yn gwneud hyn -
tra i yn llai na 0 neu i yn fwy na 10.
>> Felly nawr gadewch i ni fynd ymlaen a gwneud hyn ar ôl i ni wedi gwneud hynny.
Gadewch i 'jyst gwneud gwiriad pwyll gyflym.
printf ("Diolch, i% d", i).
Felly y rhaglen syml yn gofyn i'r defnyddiwr ar gyfer int,
yn gwneud yn siwr ei fod mewn rhai amrediad, 1-9 yn gynhwysol,
ac yna yn diolch i'r defnyddiwr trwy eu hatgoffa yr hyn y maent yn unig
teipio i mewn, yn union fel gwiriad pwyll bach.
Ond gadewch i ni weld os yw hyn yn gweithio fel y bwriadwyd.
Gadewch i mi yn mynd ben i lawr yma ac ail-redeg yn gwneud ddolen.
Hmm.
"Defnyddio dynodwr heb eu datgan 'i'". Mae hynny'n rhyfedd.
Roeddwn i'n meddwl wnaethon ni ddatrys hynny.
Yr un symptom ond god gwahanol.
Yeah?
GYNULLEIDFA: [Anghlywadwy] y tu mewn i'r ddau, mae'n rhaid i ni
[Anghlywadwy].
>> DAVID J. Malan: Yn union.
Felly, mae hyn mewn gwirionedd yn ein harwain i bwnc a elwir yn gwmpas.
Mae'n troi allan bod C, unwaith eto, mae'n wir yn mynd â chi llythrennol.
Ac os byddwch yn gwneud rhywbeth fel hyn lle rydych yn datgan int
ac yna neilltuo rhywfaint o werth, ond i chi wneud hynny tu mewn
pâr o braces cyrliog, beth C yn ei wneud yw ei fod yn tybio eich bod yn
dim ond am y rhai darnau 32 a elwir fel fi i fodoli o fewn y
nghyd-destun y braces cyrliog, o fewn cyd-destun o linellau
6 drwy 9. Felly, i gael ei ddatgan, ac mae'n cael ei neilltuo a
gwerth yn llinell 8, ond cyn gynted ag y byddwch yn ei gael y tu allan i
llinell 9 isod y brês cyrliog, i yw bellach yn
cwmpas, fel petai.
S-C-O-P-E. Mae'n mwyach yn y cyd-destun cywir.
Felly nawr, nid oes i, felly mae'n fel pe na baem wedi cael hyd yn oed
datgan ei fod o gwbl.
>> Felly beth yn ateb yna ar gyfer rhywbeth fel hyn, os bydd y
rheswm yw bod fi yn cael ei ddatgan yn y braces cyrliog, a oedd yn
yn ymddangos yn ddrwg?
Yma?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yeah.
Felly gallwn ymgychwyn y tu allan.
Felly, gadewch i mi fynd yn ei flaen a dileu'r rhannau datganiad lle
I nodi'r math, ac yn gadael i mi wneud i fyny yma.
Felly, yn unol 5, yn awr yn dweud "Rhowch i mi yn int." Ffoniwch y i.
Hysbysiad yn unol 9, nid wyf am wneud hyn, oherwydd fy mod yn
eisoes yn meddu ar y darnau 32.
Nid wyf am ofyn i'r cyfrifiadur am
ddarnau 32 gwahanol.
Rwyf eisiau defnyddio y 32 o un darnau.
Ac yn awr oherwydd i yn cael ei ddatgan yn llinell 5, mae'n dal i fod legit
i'w defnyddio yn llinell 11 a llinell 12.
>> Felly, gadewch i mi geisio ail-grynhoi hyn a gweld
os Clang stopio gweiddi.
wneud dolen.
Felly nawr ei fod yn "ddatganiad ymhlyg o swyddogaeth
'GetInt' yn annilys yn C99. "Beth yw hynny?
Yeah?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yeah.
Felly nawr fy mod yn ei ddefnyddio mewn gwirionedd GetInt, nid yw hyn yn rhywbeth
mai dim ond yn dod â C. Mae hyn yn dod o CS50.
Felly mae angen hyn yma.
A gadewch i mi fynd yn ôl i lawr i'r brydlon
yma ac ail-redeg wneud.
Iawn, yn olaf.
Nawr rydym wedi datrys hynny a bod y gwall arall.
Gadewch i mi redeg yn awr ddolen a gweld beth sy'n digwydd.
"Rhowch i mi yn int." 'N annhymerus' roi 11.
'N annhymerus' roi -1.
'N annhymerus' yn rhoi ei foo.
'N annhymerus' ei roi 5.
Ac yn awr y mae'n wir yn gweithio.
Ond mae'r brydlon newid am reswm yma.
Pam ei bod yn dweud retry un o'r adegau hyn ond yn rhoi i mi
int y tri arall gwaith?
Pam bod ymddygiad gwahanol?
GYNULLEIDFA: Rhoddodd ei fod yn llinyn.
DAVID J. Malan: Mae'n ddrwg gennyf?
GYNULLEIDFA: Rhoesoch ei fod yn llinyn.
DAVID J. Malan: Yeah.
Felly, rydym yn rhoi ei linyn yn y trydydd cynnig,
pan fyddaf yn teipio foo.
Foo yn llinyn.
Nid yw'n amlwg yn int.
A'r ffordd y mae wedi gweithredu CS50 GetInt yw ein bod yn
nid ydynt yn gwirio os bydd rhywbeth yn llai na 0 neu fwy na 10
i chi, oherwydd sut rydym yn gwybod ymlaen llaw pa fath o
int ydych eisiau?
Ond gallwn wirio cyn lleied â phosibl i chi, oedd y defnyddiwr o leiaf
deipio yn gyfanrif?
Ac os nad oeddent, rydym yn gweiddi ar y defnyddiwr trwy deipio "retry" ar
y sgrîn.
>> Felly, yn awr mae gennym raglen sydd wedi dolennu. Iawn.
Yn awr, pa un o'r rhain yn fath o lluniad yn well?
Felly, dyma lle pethau'n dechrau cael anniben bach, y
ffaith bod yn rhaid i chi gofio i ddatgan amrywiadwy hyd yma
os ydych chi am ei ddefnyddio y tu mewn rhai
braces cyrliog a thu allan.
Ond hyd yn oed os yw hyn yn edrych ychydig yn cryptig yn gyntaf
olwg, dim ond unwaith eto, cofiwch y rhesymeg syml.
Er mwyn defnyddio unrhyw beth yn C, p'un a yw'n swyddogaeth neu
ei fod yn amrywiol, mae'n rhaid i chi gynnwys os yw'n swyddogaeth
mewn rhai llyfrgell, neu mae angen i chi ddatgan hynny.
Ond yn awr mae angen i chi fod yn ymwybodol ychwanegol o'r ffaith bod
eich bod yn datgan yn y cwmpas cywir.
Nid ydych chi'n ei roi yn rhy dynn tu mewn cromfachau.
>> Felly, gadewch i mi mewn gwirionedd yn rholio yn ôl.
Os awn yn ôl at ein er enghraifft o gyfnod cynharach, ac yr wyf yn mynd
yn ôl i am int, int i = 0; i <10; i + +, ac yr wyf
gwneud sêr printf, fel hyn, ac yna paren agos, ac yn awr
printf i yn awr -
yn ôl yr un rhesymeg, beth fydd yn digwydd pan fyddaf yn ceisio
llunio rhaglen hon?
GYNULLEIDFA: dynodwr annilys.
DAVID J. Malan: Felly mae'n arall dynodwr annilys,
dynodwr heb ei ddatgan.
Yn awr, y rheswm yn ychydig yn wahanol.
Does amlwg, nid oes braces cyrliog yma, ond yr un fath
syniad, yr un stori o gwmpas yn berthnasol.
Os ydych wedi datgan amrywiol fel i tu mewn
gyfer dolen, hyd yn oed os nad ydych wedi ysgrifennu yn benodol y cyrliog
braces, feddwl amdanynt yn feddyliol yn dal i fod yno, lle y
achos fi yn unig y tu mewn dilys o'r ddolen gyfer.
Nid yw'n ddilys ar ôl i chi gyrraedd y llinell nesaf, sydd yn
yr achos hwn yn awr yn 10.
Felly, dim ond rhai materion o ran cwmpas ac yn y blaen.
Mae pob hawl, unrhyw gwestiynau?
>> Mae pob hawl, felly mae hyn yn fath o raglen bach dibwys,
argraffu dim ond sêr bach.
Ond gadewch i ni weld os ydych yn cofio y gân yma.
Mae hwn yn gân anhygoel blino byddai'r plant yn canu ar
y bws ysgol ac yn y blaen.
Ond beth braf amdano yw ei fod wedi hyn cyclicity,
lle mae'n "99 boteli o gwrw ar y wal,
99 botel o gwrw.
Cymerwch un i lawr, ei throsglwyddo o gwmpas, 98 potel o gwrw ar y
wal. "Ac yna y gân yn ailadrodd y 97, yna 96, yna
95, yna 94, yr holl ffordd i lawr i 0 os ydych yn cael bod
ymhell ar y bws.
Felly, mae hon yn rhaglen braf i ni geisio'u gweithredu, gan fod fy
Duw, pe gallech dim ond rhoi hyn ar waith gydag ychydig
linellau o god, gallech boeri allan y geiriau cyfan i hyn
gân yn eithaf cyflym.
Ond ar hyd y ffordd, gallwn ddechrau nawr canfod ar wahân rhai
o'r rhain yn adeiladu sylfaenol dolennu ac erbyn hyn hefyd
cyflwyno swyddogaethau yr ydym yn ysgrifennu ein hunain, yn dychwelyd gwerthoedd
ein bod yn pasio o gwmpas.
Ond yn gyntaf, pam nad ydym yn mynd yn ei flaen ac yn cymryd ein pum-munud
torri yma?
A phan fyddwn yn mynd yn ôl, byddwn yn canu y gân.
>> Mae pob hawl, felly dyma ni'n ôl.
A phan yr wyf yn dweud y byddwn yn awr yn canu y gân, yr wyf yn golygu
programmatically, nid ar lafar.
Felly yma mae gennym beer1.c, sy'n un gweithrediad y
cân arbennig.
A dim ond i fod yn glir, ar gyfer rhai sy'n anghyfarwydd â'r hyn
y peth hyn yn edrych fel, gadewch i mi fynd yn ei flaen
ac yn gwneud beer1, Enter.
Nawr, gadewch i mi redeg beer1, a'r hyn y byddwn yn gweld - faint o boteli
Bydd o gwrw fod ar gael?
'N annhymerus' deipio i mewn 99, fel y gân yn ei ddweud.
Enter.
Ac yn awr os ydym sgrolio drwy'r -
Wps - os ydym yn sgrolio drwy'r hyn i gyd, byddwn yn gweld bod
oedd hyn yn wir yn canu y gân gyfan.
Arhoswch funud.
Fy bar sgrolio mae ychydig yn cyboledig i fyny.
Gadewch i ni ddefnyddio'r ffenestr mwy.
Felly beer1, 99, dyna ni.
Felly, yma rydym yn cael y gân gyfan, canu llawer cyflymach gan y
gyfrifiadur nag y gallai fod wedi bod gennym ni.
Felly sylwi, fodd bynnag, mae natur gylchol yma.
Mae'n dweud 99, yna 99, yna "yn cymryd un i lawr, ei throsglwyddo
o gwmpas, "yna 98.
Ac yn awr mae'n ailadrodd dro ar ôl tro.
>> Felly, mae hyn mewn gwirionedd yn gyfle perffaith ar gyfer rhyw fath o
dolennu adeiladu.
Sylwch fod Rwy'n fath o dorri cornel yma.
Sylwch fod i ddim yn dweud "98 boteli o gwrw ar y wal,
97 boteli o gwrw ar y wal, "a bod yn unig oedd hynny
pan fyddwn yn mynd i un botel o gwrw, nid oes gennyf
i chi boeni am y gramadeg Saesneg.
Ond gallwn hefyd atgyweiria hon gydag ychydig o os
cyflwr, efallai.
Os bydd y nifer yn unigol, mynd yn ei flaen ac yn dweud "potel",
fel arall os yw'n lluosog, yn dweud "poteli".
Ond am nawr, rwy'n hollol torri y gornel.
Felly, gadewch i ni weld beth sydd gennym yma.
Felly, rydym wedi cael rhai sylwadau ar y brig.
Rwy'n cynnwys y ddwy lyfrgell, fel y
rydym wedi bod yn gyffredin.
Ac yn awr gadewch i mi sgroliwch i lawr at y cyntaf
llinellau gwirioneddol o god.
Llinell 17 yn cychwyn brif.
Llinell 21 ac 20 mae faint o boteli o gwrw fod ar gael?
Ac yna yr wyf yn galw GetInt.
Ac yn awr mae gen i dipyn o wiriad bwyll.
>> Felly, mae hyn yn gonfensiwn y byddwn yn awr yn dechrau mabwysiadu i
yn fwy trylwyr gwirio fewnbwn y defnyddiwr.
Weithiau, dim ond nad ydych am i ysgogi nhw eto
ac eto ac eto.
Os yw'r defnyddiwr sgriwiau i fyny ac nid yw'n cydweithredu, dirwy.
Roi'r gorau iddi ac nid yn unig yn delio â nhw.
Ac felly dyna beth rwy'n ei wneud yma.
Os n yn llai nag 1, Im 'jyst yn mynd i gweiddi ar y defnyddiwr,
"Mae'n ddrwg gennym, sy'n gwneud dim synnwyr." Ac yna dwi'n mynd i
fympwyol dychwelyd 1.
Felly, unwaith eto, mae hyn yn unig yw confensiwn i ddod i arfer â.
Am y tro, fynd ag ef ar ffydd.
Ond hyd yn hyn, rydym wedi bob amser wedi dychwelyd 0, oherwydd
rydym wedi dweud yn dychwelyd 0 yn dynodi beth?
GYNULLEIDFA: Llwyddiant.
DAVID J. Malan: Llwyddiant, dyna i gyd.
Felly nawr ein bod o'r diwedd yn dechrau meddwl am
nad ydynt yn llwyddiannau -
mewn geiriau eraill, achosion cornel, amodau gwall -
yn awr yr wyf yn cael cyflenwad diddiwedd, neu o leiaf 4000000000
bethau posibl sy'n gallu mynd o'i le yn fy rhaglenni.
A allaf ddechrau eu dosrannu rhifau unigol.
Yn awr, yn gyffredinol Mae'n ddigonol i ychydig dychwelyd
rhywbeth arall na 0.
Felly, rydym yn mynd i wneud dim ond dychwelyd 1 am nawr.
Ond y rheswm dros ddychwelyd 1 yw bod cyn gynted ag y byddwch yn dychwelyd
1, dyfalu beth sy'n digwydd i weddill y rhaglen?
Mae'n atal.
Dyna ni.
Felly y ffaith fy mod i'n dychwelyd 1 yn effeithiol
byr-cylched gweithredu rhaglen hon fel bod
Bydd dim byd yn is llinell 27 barhau i weithredu.
Cyn gynted ag y ffurflenni prif, dyna ni.
>> Mae pob hawl, felly os yw'r defnyddiwr yn cydweithredu ac rydym yn cyrraedd llinell 30
oherwydd eu bod yn teipio mewn nifer dilys, dyma yw fy
gweithrediad y gân.
Felly, tro cyntaf i mi argraffu gymeriad Newline, dim ond ar gyfer
estheteg.
Bellach, mae gen i ddolen.
Ac yn sylwi fy mod yn gwneud pethau mewn ychydig
o gyfeiriad gwahanol.
Nid oes gennyf i wneud llai na, nid oes gennyf i wneud + +.
Gallaf ddweud yn hytrach ymgychwyn newidyn i, ei osod yn gyfartal i
n, y rhif y defnyddiwr deipio i mewn, yna gwnewch y canlynol, felly
hir fel fi yn fwy na 0, yna i -
unwaith y byddwch wedi orffen un fersiwn o'r ddolen.
Felly gallwn cyfrif i lawr gan ddefnyddio gyfer dolen yn ogystal.
Yn awr, mae hyn yn 'n bert lawer yr wythnos 1 pethau yn awr, gyda printf.
Felly, print "poteli% d o gwrw ar y wal." Print "% d
boteli o gwrw. "" Cymerwch un i lawr, ei drosglwyddo o gwmpas. "Print
"% Poteli d o gwrw ar y wal." Felly mae'n dal i fod d%, ond
sylwi bod y ddadl i printf yn newid.
Ar ôl y coma, yr wyf wedi i, oherwydd yr wyf am ddweud 99.
Ar ôl y coma, mae gennyf i - 1, oherwydd yr wyf am ei ddweud 98 yn
y fersiwn gyntaf, ac yn y blaen.
Ac yn awr i lawr yma, Fi jyst cael rhywfaint o sylw bach dwp.
Ac yna llinell 42, yr wyf yn dychwelyd 0 gan gonfensiwn, gan ddynodi bod
popeth yn iawn.
>> Felly beth os wyf goofed?
Beth allai camgymeriad cyffredin yma fod?
Wel, beth os wyf yn ddamweiniol ddweud yn dda, yr wyf yn awyddus i gyfrif
i lawr i 0, rwyf am 0 boteli o gwrw ar y wal?
Felly, yr wyf yn dweud, i yn fwy na neu'n hafal i 0.
Beth sy'n mynd i fod yn symptom fy mod yn awr yn gweld os byddaf yn ail-grynhoi
beer1 a'i redeg?
GYNULLEIDFA: Negyddol.
DAVID J. Malan: Yeah, ei fod yn gonna fynd yn negyddol.
Mae hwn yn wall oddi-wrth-un, yn hynod
gamgymeriad cyffredin i wneud.
Gadewch i ni mewn gwirionedd yn mynd yn ôl at y ffenestr derfynell ac yn ei wneud
yma, fel y gallwn weld mwy ar y tro.
Rhowch, 99 botel o gwrw.
Close, ond aethom erioed mor ychydig yn rhy bell.
Rydym yn canu y gân yn rhy bell i lawr, fel bod gennym yn awr yn cyrraedd y
rhif negatif.
Felly nid yw'n hollol gweithio.
>> Mae pob hawl, fel y gallwn yn hawdd atgyweiria bod trwy fynd yn ôl at y
ffordd y bu.
Ond beth yw rhai cyfleoedd nawr ar gyfer
gwella?
Wel, gadewch i mi agor beer2.c a sgroliwch i lawr yma ac yn cymryd
edrych ar y fersiwn.
Beth yw'r peth cyntaf sy'n neidio allan arnoch chi fel wahanol
yn y fersiwn yma?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yeah, felly dim mwy i, gan ei fod yn digwydd i
mi eich bod yn gwybod beth, rwy'n gofyn i'r defnyddiwr ar gyfer n, ac yna rwy'n
gosod i cyfartal i n, ac yna rwy'n newid i, ond dydw i byth
cyffwrdd n eto.
Felly, yr hyn y mae'r Heck oedd y pwynt ydych yn dyrannu 32 o
darnau o'r enw fi jyst er mwyn i mi gael newidyn gwahanol?
Felly, yn yr achos hwn, yr wyf fath o gydnabod bod diangen
nodwedd dylunio.
Ac yr wyf yn awr rwy'n mynd i ddweud tra n yn fwy na 0, ewch
ymlaen ac argraffu yr un gân, gan fynd heibio i n i printf fel y
ail ddadl, ac n - 1 fel yr ail ddadl i lawr yma.
Ac yna ar bob fersiwn o'r ddolen, mynd yn ei flaen a dim ond
lleihau a n ei hun.
Yn awr, swyddogaethol, mae'r rhaglen hon
yn mynd i fod yn union yr un fath.
Os byddaf yn teipio yn 99, n yn dechrau am 99.
I lleihau a, lleihau a, lleihau a, lleihau a.
Rydw i'n mynd i gael yr holl ffordd i lawr i "Un botel o gwrw ar
y wal, un botel o gwrw.
Cymerwch un i lawr, pasio o gwmpas.
0 boteli o gwrw ar y wal. "Y diwedd, oherwydd yr oedd
cael y cyflwr cywir.
Mae'n fwy na 0.
Doeddwn i ddim yn gwneud y camgymeriad hwn.
>> Felly, sydd yn well, fersiwn un neu fersiwn ddau?
Felly yr wyf yn clywed criw o tuchan i ddau.
Pam ddau?
Beth sy'n bod?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: O, iawn.
Felly, ni fydd yn mynd o dan 0, ond cofiwch, yn fersiwn un, y
na fydd y fersiwn gwreiddiol cywir yn mynd o dan 0 chwaith.
Felly, cofiwch mai hwn yw'r fersiwn gywir.
Felly, gadewch sydd o leiaf yn cymharu'r ddau fersiwn cywir.
Beth dadl o blaid fersiwn
dwy yn, mmm, yn well?
Yeah?
GYNULLEIDFA: Mae'n defnyddio llai o le.
DAVID J. Malan: Iawn, felly mae'n defnyddio llai o le, dde?
Tra bod un fersiwn a ddefnyddiwyd 32 catiau gyfer n, ac yna un arall
32 catiau am i.
Fersiwn ddau yn unig yn defnyddio 32 catiau gyfer n, fel y
ymddangos i fod yn fantais.
Meddyliau eraill?
A oes unrhyw un am ddadlau o blaid un?
Yeah?
GYNULLEIDFA: Mae'n rhaid i chi ddefnyddio llinell ychwanegol o god ar gyfer n -.
>> DAVID J. Malan: Iawn, yn sicr.
Felly, mae hynny'n deg.
Felly, mae hyn yn unig, o leiaf i mi -
Yr wyf yn golygu, mewn gwirionedd mae hyn yn teimlo ychydig yn anniben, y ffaith bod
Ni allaf datrys o grynhoi fy holl rhesymeg mewn un
llinell hardd, y ddolen i, fel y ddolen am wneud hynny.
Yma, yr wyf yn fath o rhaid iddynt dacio ar hyn n -
ar ddiwedd y ddolen, oherwydd
mae'n rhesymegol angenrheidiol.
Ond mae'n fath o rhwbio i mi y ffordd anghywir, dim ond oherwydd ei fod yn
ymddangos ar wahân i'r rhesymeg hyd yma, er,
unwaith eto, ei fod yn angenrheidiol.
Meddyliau eraill?
Yeah?
GYNULLEIDFA: [Anghlywadwy].
>> DAVID J. Malan: Yeah.
Felly beth os ydych yn lle hynny, ar ddiwedd y gân, yn awyddus i
argraffu allan eto enw'r gân?
Fel "Diolch am chwarae 99 botel o gwrw", neu rywbeth
gwirion fel 'na?
Ond y pwynt yw, rydych am gael mynediad at y gwerth gwreiddiol.
Mae'r ffaith eich bod wedi treiglo neu newid n ar bob
iteriad ac felly wedi dinistrio ei werth gwreiddiol
golygu na allwch wneud hynny ar y diwedd.
Yn awr, gellir dadlau, yn amlwg nid oes eisiau ei wneud
hynny yn y rhaglen.
Felly sy'n gofalu?
Ond mae hynny'n bwynt dilys iawn.
Ac i fod yn onest, does neb wir yn
dde ateb yma.
Maent yn ddau yr un mor gywir.
Gallwn fod yn argyhoeddedig naill ffordd neu'r llall.
Byddaf yn dweud bod, yn gyffredinol, mae'n egwyddor dda os ydych yn
gofyn i'r defnyddiwr ar gyfer rhai werth ac rydych yn ei storio mewn newidyn
fel n, yn union fath o ran egwyddor, mae'n debyg da
i gadw hynny o gwmpas.
Ac unrhyw ddata rydych am i addasu eto ac eto, dim ond
rhoi eich hun copi o'r amrywiol, dim ond er mwyn i chi
cael mynediad at y gwreiddiol.
Rydych yn treulio 32 catiau mwy, ond y realiti yw hyn yn
cyfrifiadur wedi, fel, dau gigabeit o RAM y dyddiau hyn,
ac rydym yn hollti blew dros 32 ddarnau?
Really Nid yw mor bwysig â hynny.
A hyd yn oed ar y ddyfais yma, gyda hanner gig neu
gigabyte o RAM, 32 darnau yn erbyn 64 did,
Nid yw mor bwysig â hynny.
Yn sicr heddiw, mae'n mynd i fod yn ffordd llethu gan faint
y rhaglen ei hun, sydd yn mynd i fod yn gannoedd o
kilobytes, os nad ychydig megabeit, y dyddiau hyn.
>> Pryderon Felly rhesymol, nid oes un ateb cywir.
Ond o leiaf y rhai yn y meddyliau dylai hynny ddechrau i
mynd drwy eich meddwl?
Oherwydd yn pset 0, er ein bod ni wir yn disgwyl yn unig
cywirdeb, neu o leiaf ymwrthod namau gwahanol
efallai eich bod wedi dod ar draws, wrth inni symud ymlaen, dyluniad yn
mynd i fod yn agwedd arall allweddol, y ddau o ysgrifennu cod
a hefyd ein gwerthuso cod.
Ac felly o leiaf yn rhoi meddwl i bethau fel hyn.
Ac nid yn unig oherwydd y gwaith rhywbeth yn golygu ei fod yn dda,
nid yw'n golygu ei fod yn chynllunio'n dda.
A dyna un o'r pethau y cymrodyr addysgu a
Bydd setiau problem yn ein helpu canfod rhan dros gyfnod o amser.
>> Wel, beth am, gadewch i ni ddweud, y fersiwn yma?
Gadewch i mi wneud rhywbeth ychydig yn sexy yma mewn munud.
Yn gyntaf gadewch i mi gael gwared o hyn.
Ac yn awr gadewch i ni atgyweiria hon broblem gramadegol.
Felly, yn y fersiwn hwn, rwyf am osod y gramadeg fel bod,
yn hytrach na dim ond dweud s cromfachau, fel "potel"
neu "poteli" -
Nid wyf am i dorri y gornel -
Rwyf hefyd yn awyddus i ddeinamig argraffu'r gair "poteli"
neu "potel", a thrwy hynny ddefnyddio bachau rhain% s heddiw.
Felly, mae angen i mi amodol wirio beth yw gwerth i.
Ac os yw'n 1, yr wyf am ddweud "potel", ac os yw'n unrhyw beth
arall, yr wyf am ei ddweud "poteli". Felly, gadewch i ni geisio gwneud hyn.
Felly, os fi == 1, yna gadewch i mi fynd yn ei flaen ac yn datgan -
Mae arnaf angen llinyn, felly gadewch i mi wneud a1 llinyn, am ei fod y
llinyn cyntaf i mi poeni am hyn o bryd.
Rydw i'n mynd i ddweud "potel". Ac yna, gadewch i ni weld, llinyn
s2 - a byddaf yn esbonio ble dw i'n mynd mewn eiliad -
"Poteli." Felly dwyn i gof bod, yn y gân, mae angen i ni allu
i argraffu pethau, dau air gwahanol o bosibl.
Felly, os ydym yn edrych yn ôl yma, yn sylwi bod pan fyddwn yn mynd i
yr enghraifft hon yma, "dwy botel o gwrw ar y wal,
dwy botel o gwrw, yn cymryd un i lawr, pasio o gwmpas ", yr wyf eisiau
y llinell hon pedwerydd yn awr yn dweud "un botel o gwrw ar y
wal ". Felly, yr wyf angen i chi benderfynu, ydw i'n eisiau dweud" poteli "neu
"Potel"? Felly dw i'n mynd i ddweud fympwyol, popeth yn iawn,
Rydw i'n mynd i bellach yn datgan newidyn a elwir a1, llinyn
un, mae hynny'n mynd i gael eu plygio i mewn yma ac yma,
am fod y geiriau bob amser yn union yr un fath, dim ond oherwydd y
natur y gân.
Ac yr wyf i'n mynd i alw a2 beth bynnag air yr wyf eisiau
pen draw yn ymddangos i lawr yma.
Yn awr, yn llythrennol, 99 gwaith allan o 100, mae'n mynd i fod yn
un fath yn y ddau o'r achosion hynny, oherwydd 3 yn lluosog, 2 yn
lluosog, 4 yn lluosog.
Ond yn yr achos hwn gornel, lle'r ydym yn cael i 2 ac yna 1, neu
hyd yn oed 1 ac yna 0, yr wyf angen y rhesymeg.
Felly, rhaid i mi dreulio rhywfaint o amser yn fy cod yn cael yr hawl honno.
Felly, os wyf yn gwneud hyn, os fi == 1, yna s1 a bennwyd yn hafal i "potel"
ac a2 cyfartal i "poteli", oherwydd bydd hyn yn am 1
Bydd botel, ac mae hyn yn ar gyfer 0 poteli.
A hyn yma, beth mae hyn yn ei gynrychioli?
Dim ond i fod yn glir.
Mae hyn yn unig sylw.
Felly, mae'r ffaith y gallwch gael un llinell sylwadau yn golygu eich bod
Gall eich côd fel hyn, ond un arall cyffredin
patrwm, hefyd, yw os oes gennych ymadrodd super-byr
ydych am roi eich hun a 'i' ychydig yn fwy darllenadwy i roi
yn iawn ar ddiwedd y llinell o god, gallwch
hollol gwneud rhywbeth fel hyn.
>> Felly, yn awr beth os ydw i'n gwneud hyn? Arall os na fi yn hafal i 1.
Felly bang yn dychwelyd -
pwynt ebychnod ei adnabod fel "bang".
Felly bang = 1.
Felly, os na fi yn hafal i 1, beth ddylwn i ei lle hynny am ei wneud?
Wel, y gair cyntaf i mi am fod yn beth?
Felly dylai llinyn 1 yn "poteli" ar gyfer poteli lluosog,
ac yna bydd hyn yn lluosog "poteli" yn ogystal, am y tro.
A byddwn yn gweld a yw hyn mewn gwirionedd yn cael i ni
lle rydym eisiau mynd.
Felly, yn awr os wyf yn sgrolio i lawr yma, sylwch fy mod yn plygio i mewn
nid yn unig i, ond s1.
Rwy'n plygio i mewn i ac s1.
Ac yna i lawr yma, rwy'n minws 1, sydd yr un fath â
o'r blaen, ond a2.
Mewn geiriau eraill, yr wyf am i'r gair Saesneg i newid yn seiliedig
ar y rhesymeg.
Nawr, mae eisoes rhai problemau yn y cod hwn.
Beth yw torri eisoes allan o borth yma?
Yeah?
GYNULLEIDFA: [Anghlywadwy].
>> DAVID J. Malan: Yn union.
Felly, yr wyf eisoes wedi sathru y wers o gwmpas.
Felly, yr wyf wedi datgan S1 ac S2, ond rwyf wedi gwneud y tu mewn o
braces cyrliog, sy'n golygu yeah, bydd y cod hwn yn gweithio i fyny
tan llinell 42, ond cyn gynted ag y taro llinell 43, dyfalu beth na
bellach yn bodoli?
Wel, dyfalu beth mwyach o ran cwmpas - nid adran 1 neu a2.
Felly mae'n rhaid i atgyweiria hon.
Felly, gadewch i mi ddileu'r datganiadau.
A byddaf yn gadael yr enwau amrywiol ac yn dileu hyn yma
a dilëwch y fan hyn.
A dylai ym mha llinellau Fi 'n sylweddol yn datgan y pethau hyn?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yeah, felly yn ôl pob tebyg
dde i fyny yma, 33-ish.
Felly, a1 llinyn ac yna llinyn a2.
Ac mae'n troi allan, gallaf wneud hyn.
Os ydych yn datgan dau newidyn o'r un math,
alli 'n weithredol jyst arfer coma a gwneud hynny yn C. Mae pob
iawn, felly rwyf bellach wedi dau newidyn -
S1 ac S2.
Rwy'n eu dosrannu gwerthoedd yn y
amodau yma, neu yma.
Ac yna rwy'n eu defnyddio i lawr isod.
Pa mor dda mae hyn yn awr yn mynd i weithio?
>> Wel, mae'n dal i fod yn bygi ychydig, ond gadewch i ni yn o leiaf yn gweld
pa mor bell yr ydym wedi gotten.
Felly, gadewch i mi fynd yn ei flaen ac yn gwneud beer3.
A yw hyn yn beer3?
Yep, mae hyn yn beer3.
Ac yn awr gad i mi fynd yn ei flaen ac yn rhedeg beer3.
399 99.
Mae'n debyg y gallwn sgip y rhan fwyaf ohonynt.
Ac i lawr yma, edrych ar hynny.
"Un botel o gwrw ar y wal, un botel o gwrw, cymryd
un i lawr, ei throsglwyddo o gwmpas, 0 boteli o gwrw ar y wal. "
Ond dw i'n tynnu eich sylw at dim ond hanner y datrysiad.
Math o sgriwio i fyny yma.
Felly, mae'n ymddangos bod yr achosion yn codi pan cornel i yn dychwelyd yr hyn a
ddau werth?
GYNULLEIDFA: 2, 1.
DAVID J. Malan: 2 ac 1.
Dyw hi ddim yn 1 ac nid 1.
Mae'n mewn gwirionedd dim ond y ddau olaf penillion y gân hon.
Felly, beth ddylwn i ei lle hynny am ei wneud?
Felly, ymddengys fy mod wedi dal yr achos lle os fi yw == i 1,
yna bydd y gair cyntaf yw "potel", ond mae'r ail air
yw "poteli". Ond yma, rydw i eisiau newid hyn i fod == 2.
Ac os yw hyn yn wir, beth ddylwn i ei eisiau
gair cyntaf fod?
GYNULLEIDFA: "Poteli".
DAVID J. Malan: "Poteli", felly ar gyfer dwy botel.
Ac yna dylai hyn gair yma fod yn -
GYNULLEIDFA: "Potel".
DAVID J. Malan: "Potel", unigol.
>> Mae pob hawl, gadewch i ni chwyddo allan, ewch yn ôl dros yma, ail-redeg gwneud,
ail-redeg beer3, math 99 eto.
Iawn, "fai Segmentiad (craidd gadael)."
Beth ydw i wedi ei wneud yn anghywir?
GYNULLEIDFA: Nid oes gennych werth [Anghlywadwy].
DAVID J. Malan: Ah, pwynt ardderchog.
Mae pob hawl, felly beth sydd o'i le yma?
Felly wall, ac rydym yn wir yn mynd i weld
hyn yn eithaf ychydig o weithiau yn y dyfodol, yn fwriadol.
Ond ar hyn o bryd, beth mae hyn yn ei olygu mewn gwirionedd?
Mae wall bron bob amser yn golygu bod gennych
ceisio rywsut i gael mynediad cof, RAM yn eich cyfrifiadur,
nad ydych yn berchen, nad ydych mewn gwirionedd gofyn i'r
system gweithredu ar gyfer.
Felly, yn yr achos hwn, sylwi ar yr hyn yr wyf wedi ei wneud, sydd yn
ddiffygiol yn fy rhesymeg.
Rwyf wedi neilltuo S1 ac S2 gwerth os fi yn hafal i 1.
Rwyf hefyd wedi gwneud hynny os fi yn hafal i 2.
Ond nid wyf wedi gwneud hyn yn y nifer anfeidraidd o eraill
posibiliadau -
yn benodol, 3 neu 4 neu dot, dot, dot, 99.
Felly, gallai un ateb ar gyfer hyn dim ond gadewch i ni fod yn
oes gennych gyflwr arall.
A gadewch i mi fynd i mewn yma a dweud a1 gyfartal -
beth ddylai fod yn fan hyn?
GYNULLEIDFA: [Anghlywadwy].
>> DAVID J. Malan: "Poteli", oherwydd yn yr achos cyffredin,
mai dim ond yr un peth.
Felly, yn dychwelyd Dyfyniadau, "poteli." Felly, er lluosog
poteli, ac yna i fyny yma, ar gyfer poteli lluosog.
Iawn, felly, yn awr gadewch i mi fynd yn ôl at fy ffenestr terfynell,
ail-grynhoi, ail-redeg.
99.
Whew.
A gadewch i ni wneud gwiriad pwyll gyflym.
Yn dechnegol, byddem yn awyddus i ddarllen pob un o'r rhain i wneud yn siŵr
eu bod yn gywir, ond gadewch i ni edrych ar
leiaf y tramgwyddwyr hysbys.
3 potel, 2 poteli, 2 poteli, 1
potel, 1 potel, 0 poteli.
Rydym yn ymddangos i fod wedi o leiaf sefydlog ni am y tro.
Ond mae'r dal yma yw bod yr hyn a llanast ofnadwy duw mae hyn yn
dim ond i ddatrys dwp
un cymeriad manylion gramadegol.
Felly mae math o reswm fy mod yn torri y gornel
gynharach, oherwydd ei fod dim ond yn gyfan gwbl blino gorfod
ysgrifennwch y cod lawer.
Ond mae'n troi allan fod yna ffyrdd ychydig yn fwy cain o
mynegi un peth yn union.
A gallwn wneud hyn fel a ganlyn.
>> Gadewch i mi adael hyn ar y sgrîn am funud a
gyflwyno rhywbeth a elwir fel gweithredwr teiran.
Mae hyn yn fath o un-leinin sydd wedi golygu dim ond er mwyn gwneud ein
yn byw yn sexier bach, fel yr addawyd.
Ac yr wyf i'n mynd i wneud hyn fel a ganlyn.
Rhowch i mi llinyn o'r enw a1, a gadewch i mi
neilltuo fel a ganlyn.
(I == 1)?
"Potel", fel arall "poteli". String a2 cael (i == 2)?
"Potel", fel arall "poteli".
Felly, beth felly yw'r gwahaniaeth yma?
Mae'r ddwy linell o god, yr wyf yn dadlau, yn gallu
disodli'r y llanast cyfan.
Felly, galwaf ei fod yn llanast, dim ond oherwydd ei fod yn fath o rhwbio mi
ffordd anghywir ei fod yn gymaint o linellau o god.
Ddim yn anghywir.
Dyw hi ddim yn dylunio gwael.
Fel, mae hyn yn berffaith gywir ac yn berffaith iawn.
Ond chodio yn cael diflas os oes rhaid i fynegi eich hun fel
damn penodol eto ac eto ac eto gyda syml
senario fel hyn.
Felly C mae rhai llwybrau byr, fel hyn.
Felly, mae hyn yn ei hanfod yn ei ddweud datgan llinyn o'r enw a1 ac
neilltuo naill ai gwerth hwn, neu y gwerth hwn os fi yw == -
ddrwg gennym, dylwn ddweud hyn yn fwy clir.
Ddatgan a1 amrywiol, pennu ei gwerth hwn os yw hyn yn wir.
Fel arall, caiff y cofnod ei gwerth hwn.
Felly, mewn geiriau eraill, mae hyn yn fath o ffordd un-llinell
dweud os arall ond yn gwneud aseiniad ar hyd y ffordd.
Felly, os fi yw 1, ac yna mynd yn ei flaen ac yn galw hyn yn "potel". Ac
yna mae hyn arall, yn ei alw'n "poteli". Yn y cyfamser, a2, mae'r
ail air y mae angen i ddiffinio, os fi yn hafal i 2, gallwn eich
gosod a2 i "potel". Fel arall, gosodwch i "poteli". A beth
mae hyn yn golygu yn awr yw y gallaf fynd drwy'r hyn a dileu pob un o'r
hynny linellau o god.
Ac wrth ddweud, braidd yn chwerthinllyd, fod hyn yn awr yn
sexier, mae'n sexier yn y math o synnwyr arddull.
Mae'r ffaith bod swyddogaethol, y cod hwn mewn gwirionedd yn mynd i
gwneud yr un peth yn union.
A hyd yn oed er y gallai fod yn edrych ychydig yn cryptig yn gyntaf
olwg, oherwydd nid ydym wedi gweld y lluniad o'r blaen, yr wyf i wedi
dadlau ei fod yn y pen draw yn mynd i fod yn gymaint mwy
ddarllenadwy ac felly yn llawer haws i ni fodau dynol i ddatrys y
deall, oherwydd yn awr gallwch ddarllen y
cod i gyd ar un llinell.
Mae'n dal i fod yn debyg o ran ysbryd i yr os, lle bo hyn yn
cyflwr ac yna mae hyn yn beth sydd y tu mewn i'r os a hyn yn
yw'r hyn y tu mewn i'r arall.
Ond gallwn wneud hyn dim ond yn llawer yn fwy cain.
>> Ac os wyf yn awr yn mynd yn ôl at fy terfynell, ar ôl dileu pob
o'r rhai llinellau ac yn eu lle gyda dim ond y ddau,
ail-grynhoi, ail-redeg boteli o gwrw gyda 99, hysbysiad bod fy
gramadeg, mewn gwirionedd, dal yn gywir.
Felly eto, rhywbeth i ddechrau.
2 botel o gwrw, 1 botel o gwrw.
Yn edrych yn iawn.
Yeah.
Felly, mae gennym ateb cryno llawer mwy.
Felly, mae hyn, hefyd, wrth i chi gael mwy cyfforddus nid gyda C,
anghenraid gyda'r pset cyntaf neu hyd yn oed yn ail, ond
sylweddoli y gall y lluniadau yn ein galluogi i wneud pethau byth
yn fwy cain.
Nawr gadewch i ni wneud un peth arall yma.
Gadewch i mi fynd yn ei flaen ac yn agor i fyny return1.c.
Nawr gadewch i ni ddechrau i ddatrys problem arall mewn ffordd sy'n
yn caniatáu i ni ysgrifennu cod yn fwy soffistigedig.
>> Felly dyma raglen bach syml sydd â'r diben mewn bywyd
yw i gynnydd gwerthoedd.
Ac mewn gwirionedd, gadewch i ni gymryd cam yn ôl.
Gadewch i mi wneud hyn â llaw.
Gadewch i mi yn cynnwys ac yn int phrif (gwag).
A gadewch i mi galw hyn yn increment.c.
A beth ydw i eisiau ei wneud?
Rydw i'n mynd i fynd yn ei flaen a dweud rhywbeth fel -
byddwn yn galw'r rhifau yr un fath -
x int.
Felly x int yn cael 2; x printf yw%, d llinell newydd, x.
Felly, yr wyf i'n teipio yn gyflym, ond math o bethau cyfarwydd yn awr.
Wedyn dw i'n mynd i wneud x + +.
Wedyn dw i'n mynd i argraffu bod un frawddeg eto.
Ac yna dwi'n mynd i ddychwelyd 0 dim ond i roi'r gorau i'r rhaglen.
Mae pob hawl, felly mae hon yn rhaglen sy'n
codiadau yn rhif.
Mae'n cyntaf yn mynd i ymgychwyn rhywbeth i 2, ac yna mae'n
mynd i gynnydd ac argraffu eto.
>> Felly, gadewch i redeg cynyddiad, rhaglen hynod o syml.
Ond mae'n debyg nawr mod i am i giwb y gwerth, felly
rhywbeth braidd yn fympwyol.
Ac yr wyf mewn gwirionedd yn awyddus i wneud x yn cael y ciwb ohono.
Felly, gallwn ddefnyddio hyn a elwir y swyddogaeth pow, ond nid wyf yn
wir yn gwybod lle y bo hynny'n eto.
Felly dw i'n mynd i wneud hyn y ffordd hen-ffasiwn.
x gwaith y mae hyn yn cyfateb x amserau x x amser.
Felly rwy'n cubing y gwerth, ei luosi ei hun unwaith eto
ac eto ac eto, er mwyn i ni gael y pŵer
o 3 yn yr achos hwn.
Felly nawr, dylai'r rhifau y dylwn argraffu fod, fel y byddwn yn gweld
yma - gwneud cynyddiad, felly mae'n mewn gwirionedd yn ddim wir gynyddran
anymore, ond byddwn yn gadael y enw yn unig -
2 ac yna 8.
Yn awr, mae gennym y dechreuadau cyfle i fireinio
yma, lle y peth cubing o luosi nifer
Efallai ei ben ei hun gan ei hun drwy ei hun yn teimlo fel hyn yn unig yn
ddefnyddiol i gael fel swyddogaeth, yn debyg iawn i rywun benderfynu
mlynedd yn ôl - eich bod yn gwybod, math o ddefnyddiol os yw un ohonom yn eistedd i lawr
ac yn ysgrifennu printf fel y gall gweddill y byd yn ei ddefnyddio,
pam nad ydym yn eistedd i lawr ac ysgrifennu swyddogaeth o'r enw ciwb
sy'n gwneud hyn cubing i ni felly nid ydym yn rhaid i chi'ch
gweithredu'r syniad o cubing gwerthoedd yma?
>> Felly, enghraifft syml, ond gadewch i ni fynd yn ei flaen ac yn defnyddio hyn yw bod yn
cyfle i ysgrifennu ein swyddogaeth ei hun.
Hyd yn hyd yn hyn, rydym wedi defnyddio dim ond y prif, ac rydym wedi defnyddio eraill
Nid yw swyddogaethau pobl, ond rydym wedi ysgrifennu ein hunain.
Felly, yma rydym yn mynd.
Rydw i'n mynd i fynd yn ei flaen ac ysgrifennu swyddogaeth o'r enw ciwb.
A dwi'n mynd i gael ei gymryd mewnbwn.
Felly, ei fewnbwn yn mynd i fod yn gyfanrif.
A beth y mae'n mynd i'w wneud?
Mae'n mynd i ddatgan allbwn int = mewnbwn gwaith mewnbwn
amser mewnbwn.
Ac yna mae'n mynd i ddychwelyd y cynnyrch hwnnw.
Ac yna mae'n rhaid i mi fod yn benodol yn awr.
Mae'r swyddogaeth hon yn mynd i ddychwelyd int.
Felly dyma felly yw sut y byddech yn ysgrifennu eich swyddogaethau ei hun.
Yn gyntaf benderfynu beth yw'r enw eich
swyddogaeth yn mynd i fod.
Ac yn gyffredinol, rhywbeth esboniadol yn dda, felly byddaf yn
alw ciwb.
Yna mae'n rhaid i chi nodi yr hyn y mae'n mynd i ddychwelyd, beth sydd
ei allbwn yn mynd i fod.
Ac nid oes gennym opsiynau fod llawer eto.
Int, torgoch, arnofio, bool, llinyn.
Am y tro, dwi'n mynd i gadw gyda int, oherwydd yr wyf am ei
i ddychwelyd yn gyfanrif.
Yna rhaid i chi nodi beth yw ei fewnbwn, os o gwbl, yn cael eu.
Ac os ciwb yn cymryd dadl, yn cymryd rhywbeth rhwng
cromfachau, rhaid i chi roi y ddadl enw fel y
gallwch alw rhywbeth wrth i chi weithredu neu ysgrifennu
swyddogaeth hon, ac mae'n rhaid i chi roi cynnig math, sydd yn yr
achos yn mynd i fod yn int.
Felly, yn fyr, ciwb yn swyddogaeth sy'n cymryd cyfanrif
fel mewnbwn a ffurflenni cyfanrif fel allbwn.
>> Felly, beth mae'n ei wneud gyda mewnbwn hwnnw?
Wel, yn unol 14, yr wyf yn datgan allbwn amrywiol o'r enw, ac yr wyf
neilltuo yn y gwerth, mewnbwn gwaith mewnbwn amser mewnbwn.
Ac yna dof yn ôl allbwn.
Felly, sut ydw i'n defnyddio hyn felly?
Beth ydw i'n newid y cymeriadau a amlygwyd ar-lein
7 yn cael eu, yn eich barn chi?
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Yeah, felly ciwb o x.
Felly x yn newidyn, sy'n golygu ei fod yn dal rhywfaint o werth.
Yn ffodus, mae o gyfanrif fath.
Ac oherwydd x yn int, sy'n golygu y gallaf ei drosglwyddo i mewn i ciwb.
A hyd yn oed er fy mod i'n bwysicach gwerth x gyda'r gwerth
x ciwb, fel sydd wedi digwydd hyd yn hyn, unrhyw tro y byddwch yn
fod arwydd cyfartal a llinell o god, y stwff ar y dde
yn cael ei gweithredu a wedyn yn cael ei neilltuo i'r
gwerth ar y chwith.
Felly, trefn y gweithrediadau fel y byddem yn gobeithio.
Felly, mae hyn yn gweithio?
Wel, gadewch i mi fynd i lawr yma.
Gadewch i mi agor fy ffenest terfynell.
Gadewch i mi yn gwneud cynyddiad, Enter.
Ystyr "datganiad ymhlyg o 'ciwb' swyddogaeth yn annilys yn
C99. "Fel o'r neilltu, C99 yn cyfeirio at y C iaith fel ei fod yn
diffinio yn 1999, a oedd yn ddiweddariad dros y fersiwn o
1989, sef diweddariad dros y gwreiddiol.
Felly dyna i gyd yw ystyr hynny.
>> Felly, beth mae'n ei olygu bod "datganiad ymhlyg o
'ciwb' swyddogaeth yn annilys? "Mae'n iawn yma.
Mae'n iawn yno yn llinell 12.
GYNULLEIDFA: [Anghlywadwy].
DAVID J. Malan: Beth sy'n bod?
GYNULLEIDFA: Dyw hi ddim yn blaen.
DAVID J. Malan: Dyw hi ddim o'r blaen.
Felly, mae hyn yw'r peth.
C yn fath o dwp, neu crynoadyddion C yn fath o dwp.
Maent yn wir yn unig yn gwneud yr hyn a ddywedwch iddynt ei wneud.
Ac maen nhw, yn arbennig, ond yn darllen eich cod top i'r gwaelod,
chwith i'r dde.
Felly, os y compiler, Clang, yn darllen eich cod, llinell 1, mae'n
ffigurau allan sut i wneud hyn.
O, dyma brif dod.
Iawn, gadewch i mi fynd yn ei flaen ac yn datgan x amrywiol.
Gadewch i mi argraffu rhywbeth.
Llinell 7, yr hyn y mae'r Heck yn ciwb?
Nid yw'n datgan yn stdio.h.
Nid yw'n dod gyda C. Nid oes gennyf unrhyw syniad beth i'w wneud.
Ac felly Clang unig bails ac yn ymddiswyddo â'r neges gwall.
Felly gallwn atgyweiria hon mewn dwy ffordd.
Gallwn ddysgu Clang beth ciwb yw drwy dim ond symud pan fo'r
datganiad yn.
Felly yr wyf yn torri a gludo ei ben brif.
Nawr yn sylweddoli mai dim ond oherwydd prif bellach yn gyntaf, mae'n
gweithredu yn dal yn ddiofyn.
Main yn brif.
Mae'n 'r ball enw swyddogaeth.
Nid oes ots lle mae mewn ffeil.
Ond o leiaf yn awr Clang wedi gweld ciwb cyn i mi ei ddefnyddio.
Felly, gadewch i ni weld os Clang yn hapusach yn awr.
Gwnewch cynyddiad, oedd yn llunio y tro hwn.
>> Gadewch i mi redeg cynyddiad.
Ac yn wir, mae'n ymddangos ei fod yn gweithio.
Nawr, gallwch ddod o hyd i sefyllfaoedd yn y pen draw lle
nid yw'n ymarferol i roi pob swyddogaeth
goruwch pob swyddogaeth arall.
Byddwch yn mynd yn sownd yn y dolen ddiddiwedd mewn gwirionedd,
lle mae hyn yn guy eisiau bod yma ond mae hyn
guy angen i fod yno.
Felly nid yw hynny bob tro'n gweithio.
Felly, diolch byth, C wedi ateb mwy cain.
Rydw i'n mynd i roi hwn yn ôl lle yr oedd, dim ond am fy mod
well gennych, fel mater o egwyddor, y prif bob amser yn
ar y brig, oherwydd mai dim ond braf i weld beth y rhaglen hon
gwneud yn ddiofyn.
A hyn yr wyf i'n mynd i wneud i fyny yma yn datgan yr hyn a elwir
prototeip.
Rydw i'n mynd i ail-ddatgan fy swyddogaeth ciwb drwy llythrennol
gopïo a gludo.
Mewn gwirionedd, nid yw hynny'n llythrennol.
Felly, yn llythrennol copïo a gludo llinell 15
i fyny uwchben y llinell 6.
Nid oes ots beth mae hyn yn dod i ben llinell i fyny ar.
Mae'n digwydd i fod ar llinell 4.
Ond mae'n rhaid i chi fod cyn brif.
Ond yn sylwi ar y gwahaniaeth.
Llinell 4 yn dod i ben gyda hanner colon, sy'n golygu hey,
Clang, gymryd fy ngair i am hynny fod yn rhaid wrth swyddogaeth
a elwir yn ciwb sy'n cymryd int ac yn dychwelyd yn int.
Ond nid wyf yn gonna dweud wrthych beth ydyw eto.
Dim ond yn gwybod fy mod yn addo i ddweud wrthych yn y pen draw.
Ac yn wir, yn awr ei fod yn iawn bod hyn yn i lawr isod.
>> Felly, mae hyn yn gyffredinol yn well, gan fod yna ar ben
eich ffeil, gallwch ysgwyd i ffwrdd, cyflym-tân, un llinell
yr un, beth yw enwau eich swyddogaethau hyn, beth yw eu
mewnbynnau'n, beth yw eu cynnyrch yn cael eu.
Ac i fod yn fwy eglur, mewnbwn yn gyffredinol yn golygu dadl neu
paramedr, gyfystyr â'i gilydd.
Allbwn yn golygu gwerth ddychwelyd, beth mae'n ei
law yn ôl i mi.
Felly, yn yr achos hwn yma, ciwb wedi ei ddatgan ar y brig, ond
diffinio, a elwir fel arall fel y'i gweithredwyd, ar y gwaelod.
Felly nawr gadewch i ni fynd yn ôl yma ac ail-redeg y.
Felly nawr gadewch i mi fynd yn ei flaen ac ail-redeg gwneud, ail-redeg cynyddiad.
Ac mae'n awr yn ymddangos i fod yn gweithio jyst ddirwya.
Felly nawr gallwn fynd ymlaen ac yn ffactor allan rhywbeth fel y
cwrw enghraifft, i mewn y fersiwn pedwerydd.
Felly, gadewch i mi sgrolio i lawr yma.
Ac yn sylwi fy mod yn fath o gymryd y wers hon i galon yn unig yn awr.
Mae'r ffaith fy mod yn canu y pennill un fath eto ac
eto ac eto, y llinell gorws un yn y gân, yn teimlo
hoffi pam nad ydw i'n ffactor allan i swyddogaeth?
Ac yn wir, dylai hyn fod yn un o'r cymhellion.
Heblaw am y ffaith y gallai rhywun arall yn y byd am
i ddefnyddio swyddogaeth ciwb -
mae hynny'n rheswm da i ffactor rhywbeth ac ysgrifennwch eich
arfer swyddogaeth ei hun -
os oes darn o god yn eich rhaglen mai dim ond yn gwneud
ymdeimlad cysyniadol, eich bod yn fath o awyddus i roi cynnig
enw - fel yn yr achos hwn, corws -
yna gallwch ysgrifennu yr un modd hynny fel swyddogaeth ar wahân.
Nid oes rhaid i chi ysgrifennu popeth yn y prif os dim ond
teimlo glanach i wahanu allan a rhoi enw iddo.
>> Felly, yn yr achos hwn yma, yn sylwi bod gennyf sylw ar ben
swyddogaeth hon mai dim ond canu am y
nifer penodol o boteli.
Hysbysiad yma nad oes angen i mi galw'r rhain yn
pethau mewnbwn ac allbwn.
Yn wir, y tro hwn Fi jyst galw fy b mewnbwn ar gyfer potel.
Ac yn sylwi yma, ddi-rym yn awgrymu beth?
Bod corws -
GYNULLEIDFA: Nid yw'n dychwelyd.
DAVID J. Malan: Nid yw'n dychwelyd gwerth.
Ac yn wir, nid yw swyddogaethau oes rhaid i ddychwelyd gwerthoedd.
Dim ond Gallant wneud rhywbeth.
Gallant gael hyn a elwir yn sgîl-effeithiau, sydd yn yr
achos yn unig yw criw cyfan o argraffu ar y sgrin.
Felly, yn sylwi bod y cod hwn yma, yr wyf yn llythrennol dim ond dwyn o
yr enghraifft flaenorol.
Yr unig wahaniaeth yw yn hytrach na defnyddio i fel fy
amrywiol, Im 'bellach yn defnyddio b fel fy amrywiol.
Felly mae gen i b i lawr yma, mae gennyf b i lawr yma, mae gennyf b
minws 1 i lawr yma.
Ond mae'r cod yn union yr un fath.
Ond dim ond i ddangos i chi'n awr sut y gallwn ddefnyddio hyn, gadewch i mi fynd
flaen ac mewn gwirionedd yn newid hyn i fod yn ddolen i.
ar gyfer (i int = n; i> n: i -).
>> Felly, yr wyf wedi dwyn hynny o'n enghraifft flaenorol.
Yn flaenorol, mae yn llinell 37 a byddwn wedi dechrau
canu y gân blino.
Ond yn hytrach, Im 'jyst yn mynd yn hyn alw corws o i.
Done.
Felly, yn awr ym mhob fersiwn o'r ddolen, yr wyf yn galw hyn yn eraill
swyddogaeth, corws, fy mod yn digwydd i ysgrifennu.
Nid ei ysgrifennu gan rywun arall flynyddoedd yn ôl.
Ond corws, yn y cyfamser, yn defnyddio printf i argraffu
hyn allan pedair llinell.
Ond y ffaith fy mod i'n galw corws eto ac eto mewn
ddolen yn golygu fy mod i'n mynd i nôl, yn y diwedd, y
gân union yr un fath gan fod gen i hyd yn hyn.
Felly, yn fyr, yn awr os byddaf yn edrych yn ôl ar fy cod, er bod
swyddogaethol hyn yn gyfwerth, yn sylwi ei fod yn
dechrau mynd hyd yn oed yn fwy darllenadwy.
Nid wyf yn gwybod yn union pa mor GetInt
cael ei weithredu.
A dweud y gwir, nid wyf yn gwybod sut corws yn cael ei weithredu.
Ond nid yw o bwys i mi.
Nid wyf yn poeni, oherwydd yn awr gellir i ryw raddau, fel bod dynol, darllenwch
y gwaelod o'r top i.
Ac oherwydd bod y swyddogaethau yn cael eu henwi yn ôl yr hyn y maent
wneud, fy cod yn gynyddol ddarllenadwy.
Ac fel ein rhaglenni yn cael llawer mwy cymhleth -
erbyn diwedd y semester, byddwch yn ysgrifennu cannoedd o linellau
cod mewn ieithoedd fel PHP a JavaScript ac ati -
fe welwch ei fod gymaint yn haws nag i gadw golwg ar
hyn rydych wedi'i wneud.
A phan fyddwch yn dechrau cydweithio â ffrindiau neu
bartneriaid neu gydweithwyr, byddwch yn gallu ysgrifennu llawer mwy
rhaglenni enfawr gan ddechrau ymarfer y rhain sylfaenol
blociau adeiladu.
>> Felly, gyda hynny ddywedodd, pam nad ydym yn galw ei fod yn ddiwrnod?
A byddwn yn eich gweld ar ddydd Mercher.
[Cymeradwyaeth]