[Powered by Google Translate] DAVID J. Malan: pob hawl, mae hyn yn CS50, a dyma'r
diwedd Wythnos 1, cardiau astudiaeth felly yn a chyfanswm y
cyd-ddisgyblion bod gennych eleni yw 745.
Ac rydym wrth ein bodd felly i gael cymaint ohonoch yn y cwrs
y semester, ond hyd yn oed er bod y cwrs hwn mor fawr,
sylweddoli ei bod yn y pethau hyn fel cinio ddydd Gwener, fel
oriau swyddfa, 15-person adrannau, ac yn y blaen y
yn cael eu olygu mewn gwirionedd i greu'r hyn yn fwy agos
amgylchedd.
Felly hyd yn oed er efallai y byddwn yn casglu unwaith neu ddwywaith yr wythnos, yma yng
Sanders, yn gwybod bod cryn dipyn o'ch profiad yn y cwrs hwn
Bydd yn fawr iawn fod yn ymarferol ar ar ochr eich ffrindiau yn y dosbarth
a'r staff addysgu.
>> Felly, yma rydym yn mynd, Fall 2012.
Felly, yn cofio bod tro diwethaf i ni ddod i ben ar nodyn o
anfanyldeb, siarad am y gynrychiolaeth o rifau.
Ac rydym yn edrych ar un o'r methiannau a ddigwyddodd, yn y
byd go iawn, pan ddaeth i gamddealltwriaeth
sut mae cyfrifiaduron yn gweithio.
Wel, heddiw byddwn yn edrych eto ar un arall o'r syniadau hynny fel
ogystal â pharhau ein trafodaeth ar y cleient CS50
a C a'r hyn y mae'n ei olygu mewn gwirionedd i raglen.
Ond yn gyntaf, dim ond cwpl o gyhoeddiadau corwynt.
>> Adrannau yn dechrau ar ddydd Sul, ac wythnos gyntaf bob amser yn
dipyn o gychwyn gyflym, oherwydd ein bod jyst got yn
eich ffurflenni adran.
Rydym yn gwneud yr un peth, yn awr, gyda'r cymrodyr addysgu, yn awr
eu bod yn gwybod eu hamserlenni, felly rydym yn anelu, gan
Fore Sadwrn, i ddilyn i fyny gyda chi gyda'ch adran
aseiniad a TF.
Sylweddoli bod byddant yn dechrau y diwrnod nesaf, Dydd Sul
neu ddydd Llun neu ddydd Mawrth.
Ac yna byddwn yn darparu ar gyfer newidiadau adran wrth iddynt godi
yn y dyddiau i ddod.
Oriau swyddfa, yn y cyfamser,, unwaith eto, heno, 8 PM 11, yn
Annenberg, yn ogystal â nos yfory.
Er bod y setiau problem yn gyffredinol oherwydd ar ddydd Iau
am hanner dydd, yn sylweddoli bod gennych hyd at bum niwrnod yn hwyr i'w wario,
felly ar gael i oriau swyddfa ar ddydd Iau os
arian i chi yn un o'r dyddiau hynny yn hwyr a, thrwy hynny, cyflwyno
rhywbeth ar ddydd Gwener.
Gadewch i mi yn awgrymu bod Scratch ymhlith yr hwyl yn fwy, ymhlith y
setiau problem fwy isel allweddol.
A byddwn yn hongian ar y dyddiau hynny yn hwyr, yn strategol, dim ond
ar gyfer yn ddiweddarach yn y semester pan fydd bywyd yn dechrau cael yn y ffordd
gyda midterms a dosbarthiadau eraill.
1 Set Problem, yn y cyfamser, yn cael eu postio ar y cwrs
wefan y dydd Gwener hwn, fel y bydd yn daith ar gyfer y cwrs
drwy fideo, a fydd yn cael ei ffilmio am 2:30 pm ar ddydd Gwener
ac yna ei phostio ar-lein erbyn y diwrnod nesaf.
>> Felly, rydym yn dod i ben ar ddydd Llun.
Rwyf am i - mewn gwirionedd, un nodi yma.
Oherwydd bod y dosbarthiadau - gan nad Sanders yn union benthyg
ei hun i Q & A achlysurol yn ôl ac ymlaen yn hollol iawn, rydym yn
yn mynd i roi cynnig ar rywbeth ychydig yn newydd eleni, lle
os nad ydych yn gyfforddus codi eich llaw neu 'ch jyst
Ni fyddai yn hytrach codwch eich llaw mewn ystafell fel hyn,
rydym yn mynd i gael rhai o'r cymrodyr addysgu a CAs
staffio cs50.net/discuss yn ystod darlith.
Felly, os oes gennych gwestiwn am fy mod yn gwbl
aneglur am rywbeth neu os ydych yn chwilfrydig am rai
pwnc, ceisiwch ei bostio yno.
Dagio gyda label o Ddarlith, ac fe wnawn ein gorau
heddiw a'r wythnos nesaf - we'll roi cynnig ar hyn - i maes ei
naill ai'n electronig, ar-lein, neu os yw'n teimlo fel y dylem
wir yn mynd i'r afael yn en masse, un o'r cymrodyr addysgu neu
Bydd CAs godi eu dwylo ac yn gofyn
ddienw ar eich rhan.
Felly, byddwn yn rhoi hyn yn ceisio gweld pa mor dda y mae hyn yn gweithio.
Ond, ar bob cyfrif, yn parhau i godi dwylo fel y byddech yn ei hoffi.
>> Felly, y tro diwethaf rydym yn dangos bod Nid yw 10% neu un rhan o ddeg yw, yn
gwirionedd, 0.1, fel chi yn dysgu nifer o flynyddoedd yn ôl.
Mae'n mewn gwirionedd, mae gwerth fel hyn.
Ond nid yw hynny'n gwbl wir, dde?
Rydym yn unig wedi cyfyngiad hwn mewn cyfrifiaduron sy'n golygu, os ydych yn
Dim ond swm penodol o cof, RAM, neu fwy
yn benodol darnau, wel, dim ond nifer cyfyngedig
o bethau y gallwch ei gynrychioli.
Er enghraifft, os oes gennym y nifer sero, ac rydym am
cynrychioli yn deuaidd, gan ddefnyddio wyth did, lle mae ychydig,
eto, yn sero neu'n un, gallem
cynrychioli fel 00,000,000.
A dyna ychydig yn ddiangen amleiriog.
Yn union fel yn y system degol yn y byd go iawn,
yn gyffredinol, os ydych chi eisiau ysgrifennu rhif 123, rydym yn
pobl na thebyg yn ysgrifennu 00000123 er,
swyddogaethol, dyna yr un nifer yn union.
Rydym yn unig yn galw heibio zeros blaenllaw, fel petai.
>> Yn deuaidd, gallwn wneud yr un peth.
Binary a sero, sero ac deuaidd yn unig yw sero.
Dim ond angen ychydig sengl.
Ond unwaith eto, mae'r uned mwyaf cyffredin o fesur yn y byd
cyfrifiadura yw bytes, wyth did.
Dim ond oherwydd bod un bit, 'n bert' n annefnyddiol.
Wyth darnau, nid ofnadwy o ddefnyddiol, ond o leiaf mae'n fwy
defnyddiol nag un uned o fesur.
Felly, gyda wyth did, byddwn fel arfer yn cynrychioli deuaidd.
Felly dyma ni yn cael y rhifau sero, un, dau, ac yna, fel
Nate wnaeth yn ein fideo ddydd Mercher diwethaf, gallwn barhau i
cyfrif hyd at saith, i wyth.
Ac yna, os ydym yn defnyddio darnau mwy a mwy, rydym yn
Gall gyfrif hyd i anfeidredd.
Ond os mai dim ond nifer cyfyngedig o'r darnau, fel y mae
yr achos mewn unrhyw system gyfrifiadurol, neu hyd yn oed taflegryn
system, wel, yn wir dim ond yn cael
swm cyfyngedig o drachywiredd.
Felly, os ydych am i gynrychioli'r nifer fel 0.1, yn dda, mae'r
gyfrifiadur i ddewis a dethol.
Ac os mai dim ond nifer cyfyngedig o rifau gall
cynrychioli, gall ddod yn agos at 0.1 i chi, ond ni all
reidrwydd yn rhoi i chi yn union y gwerth yr ydych ei eisiau.
Ac mae hyn yn un o'r heriau o gyfrifiaduron,
o dan y cwfl, diolch byth.
>> Wrth i ni symud ymhellach yn y semester, mae'r rhain yn lefel is
manylion dod yn llawer llai diddorol, ond yn sicr mae'r
Gellir cymhwyso'r syniadau hyn gael rhywfaint o byd go iawn
oblygiadau.
Mae un yn hwyl ychydig.
Faint ohonoch chi wedi gweld y ffilm Gofod Swyddfa anhygoel?
Os nad ydych, dyna eich answyddogol
gwaith cartref ar gyfer yr wythnos.
Ond yn y Gofod Swyddfa, y cymrodyr yn y ffilm yn cymryd
manteisio ar union syniad hwn, ond maent mewn gwirionedd yn dwyn
oddi arall movie a allai fod gennych
gweld, hyd yn oed flynyddoedd blaenorol.
Felly, gadewch i mi roi ychydig eiliadau y trelar gan
y ffilm hon anhygoel ac mae hyn yn fawr iawn
academaidd berthnasol.
>> [CHWARAE FFILMIAU]
A dweud y gwir dwi'n cael eu hyrwyddo.
Gallaf raglennu firws a fydd yn RIP bod
gosod oddi ar amser mawr.
Wel, sut mae'n gweithio?
Bob tro y mae trafodiad banc lle mae llog yn
cyfrifiadurol, mae miloedd y dydd, y cyfrifiadur yn dod i ben i fyny
gyda'r ffracsiynau o cant.
Ond nid wyf i'n mynd i wneud unrhyw beth anghyfreithlon.
Anghyfreithlon? Samir, mae hyn yn America.
Mae'n rhaid i chi dyngu i Dduw.
Os nad oes neb yn gwybod am hyn, ond ni, popeth yn iawn? Dim aelodau o'r teulu, dim
cariadon, does neb.
[Anghlywadwy].
Peidiwch â phoeni, dyn, ni fyddaf yn dweud wrth unrhyw un chwaith.
[FFILMIAU DIWEDD]
>> Mae pob hawl, felly efallai fy mod dod o hyd y ffilm hon yn well na'r rhan fwyaf o
pobl yma, ond mewn unrhyw achos, y firws sy'n eu bod yn
ceisio creu -
ac yn y ffilmiau, unrhyw bryd y byddent yn galw rhywbeth firws,
ei fod nid yn gyffredinol, mewn gwirionedd firws.
Dim ond rhaglen sy'n ysgrifennodd rhywun i wneud rhywbeth.
Ac yn yr achos hwn, y guys yn ceisio ysgrifennu rhaglen
a gymerodd manteisio ar eu cwmni o'r enw Innotech yn
, system gyfrifiadurol lle cyfrifiaduron, hefyd, hyd yn oed pan
yn dod ag arian, all o reidrwydd
cynrychioli arian yn fanwl.
Felly hyd yn oed er y gallai fod gennych $ 0.10 yn eich cyfrif banc,
0.10, wel, efallai y cyfrifiadur mewn gwirionedd yn meddwl bod gennych
hyn cents llawer yn eich cyfrif banc.
Ac felly beth yw'r guys yn anelu at ei wneud - ac maent yn
dwyn y syniad, mae'n troi allan o Superman III, lle
Wnaeth Richard Pryor yr un peth - nhw oedd yn eu hanfod
rhaglenni ysgrifennu sy'n anelu at gymryd pob un o'r llusgo
rhifau, pob un o'r bach, bach, ffracsiynau bach o
ceiniogau, ac yn seiffno rhai nad ydynt fel bod y bobl yn unig
meddwl, oh, dim ond $ 0.10 yno, ond mae pob un o'r rhai
niferoedd llusgo yn y pen draw adio i fyny.
Felly, syniad gwych ac mae'n backfired chwerthin llond eu boliau yn y
ffilm arbennig.
>> Ond yn y byd go iawn, hefyd, mae yna lawer mwy o bryder
goblygiadau y mathau hyn o bethau.
Ac un o'r rhesymau i ddeifio i mewn i'r maes cyfrifiadurol
gwyddoniaeth, unwaith eto, ei berthnasedd nid i'r
gwyddorau peirianneg ei hun, ond dim ond i
meysydd eraill yn ogystal.
Felly, mae hyn yn edrych yn llai ysgafn ar hyn a all fynd o'i le, ond
mae hefyd yn agoriad llygad eithaf, yr wyf yn meddwl, pan ddaw i
deall yn union sut hollbresennol dechnolegau fel
cyfrifiaduron a rhaglennu neu y dyddiau hyn,
ar ffurf meddalwedd.
Felly, mae hyn clip nesaf yn golygu mwy na chwe munud, yn parhau
lle rydym yn gadael i ffwrdd tro diwethaf, ond yn caniatáu i ni edrych ychydig yn
mwy yn fanwl ar ba un bynnag o'r materion hyn.
Gadewch i mi neidio ymlaen i ble rydym yn gadael i ffwrdd,
a oedd yn iawn yma.
Ac mae gennym rhan dau o ddau, am tua chwe munud yma.
>> [CHWARAE FFILMIAU]
Plagued dechnoleg fodern roced.
Yn 1991, gyda dechrau cyntaf Rhyfel y Gwlff, y Gwladgarwr
taflegryn profi fath tebyg o
problem trosi rhif.
Ac o ganlyniad, 20 o bobl, 20 o filwyr Americanaidd, eu lladd
a tua 100 o bobl eraill eu hanafu, pan fydd y Gwladgarwr, a oedd i fod
i ddiogelu yn erbyn Scuds dod i mewn,
wedi methu i danio taflegryn.
>> Pan ymosododd Iraq lansio Kuwait ac America yn Anialwch
Storm yn gynnar ym 1991, batris taflegryn Gwladgarwr oedd
defnyddio i amddiffyn Saudi Arabia ac Israel o Irac
Ymosodiadau taflegrau Scud.
Mae'r Gwladgarwr yn gyfrwng-range yr Unol Daleithiau wyneb-i-awyr system,
gynhyrchwyd gan y cwmni Raytheon.
Mae maint y ataliwr Gwladgarwr ei hun, mae'n ymwneud â
tua 20 troedfedd o hyd ac mae'n pwyso tua 2,000 o bunnoedd.
Ac mae'n cario warhead o tua - Rwy'n credu ei fod yn fras
£ 150.
Ac mae'r warhead ei hun yn ffrwydrol uchel sy'n
darnau o'i gwmpas.
Mae'r casin y warhead wedi'i gynllunio i weithredu fel fwled.
Mae'r taflegrau yn cael eu cynnal pedwar y cynhwysydd ac maent yn
gludo gan ôl-gerbyd lled.
>> Mae'r Gwladgarwr gwrth-taflegryn system yn mynd yn ôl o leiaf i
20 mlynedd yn awr.
Fe'i cynlluniwyd yn wreiddiol fel amddiffyn taflegryn aer i
saethu i lawr awyrennau gelyn, yn y Rhyfel cyntaf y Gwlff.
Pan fydd y rhyfel ddaeth draw, y Fyddin eisiau ei ddefnyddio i saethu
i lawr nid Scuds, awyrennau.
Nid yw'r Llu Awyr Irac oedd cymaint o broblem, ond y Fyddin
yn poeni am Scuds.
Ac felly maent yn ceisio uwchraddio'r Gwladgarwr.
Rhyng-gipio taflegryn gelyn yn teithio ar Mach 5 yn mynd
i fod yn heriol yn ddigon.
Ond pan fydd y Gwladgarwr ei rhuthro i mewn i wasanaeth, y Fyddin
nid oedd yn ymwybodol o addasiad Irac a gwneud eu
Scuds bron yn amhosibl i daro.
>> Beth ddigwyddodd yn y Scuds a oedd yn
yn dod i mewn yn ansefydlog.
Roeddent yn wobbling.
Y rheswm am hyn oedd y Iraciaid, er mwyn cael 600
cilomedr allan o taflegryn ystod cilomedr 300, cymerodd
pwysau allan o'r warhead blaen a
gwneud y warhead ysgafnach.
Felly, yn awr y Gwladgarwr sy'n ceisio dod ar y Scud, a'r rhan fwyaf o'r
yr amser, y mwyafrif llethol o'r amser, byddai'n
dim ond hedfan gan y Scud.
Unwaith y bydd y gweithredwyr Gwladgarwr system sylweddoli y Gwladgarwr
methu â chyrraedd ei tharged, maent yn tanio y warhead Gwladgarwr.
Er mwyn osgoi anafiadau posibl, caniatawyd
i syrthio i'r llawr.
Dyna oedd yr hyn a welodd rhan fwyaf o bobl, fel y fireballs mawr yn yr awyr,
a'i gamddeall fel rhyng-gipio o arfbennau Scud.
>> Er bod, yn awyr y nos, gwladgarwyr yn ymddangos i fod yn
Scuds dinistrio yn llwyddiannus, yn Dhahran, gallai fod dim
camgymeriad am ei pherfformiad.
Yno, system radar y Gwladgarwr yn colli trac o
sy'n dod i mewn Scud a pheidiwch byth â lansio oherwydd
i nam meddalwedd.
Roedd yr Israeliaid oedd y cyntaf i ddarganfod bod y tymor
y system oedd ar, y mwyaf yw'r anghysondeb amser daeth,
oherwydd cloc yn rhan annatod o gyfrifiadur y system.
Mae tua dwy wythnos cyn y drychineb yn Dhahran, y
Israeliaid adroddwyd i'r Adran Amddiffyn y
system yn colli amser.
Ar ôl tua wyth awr o redeg, maent yn sylwi bod y
system yn dod yn amlwg yn llai cywir.
Ymatebodd yr Adran Defense drwy ddweud wrth bawb o
Nid y batris Gwladgarwr i adael y systemau
ymlaen am amser hir.
Maent byth yn dweud beth amser hir oedd - 8 awr, 10
oriau, 1,000 o oriau.
Does neb yn gwybod.
>> Mae'r batri Gwladgarwr lleoli yn y barics yn Dhahran
ac mae ei gloc yn ddiffygiol mewnol wedi bod ar fwy na 100 o oriau ar
noson 25 Chwefror.
Mae'n olrhain amser i gywirdeb o tua un rhan o ddeg eiliad.
Erbyn hyn, mae rhan o ddeg o'r ail yw nifer ddiddorol oherwydd
Ni ellir ei fynegi mewn binary, yn union, sy'n golygu
ni ellir ei mynegi yn union mewn unrhyw
cyfrifiadur modern digidol.
Mae'n anodd credu.
Ond yn defnyddio hwn fel enghraifft.
>> Gadewch i ni gymryd y rhif un trydydd.
Ni all un o bob tri yn cael ei fynegi mewn degol, yn union.
Traean yn cael ei 0.333 mynd ymlaen am anfeidredd.
Does dim ffordd i wneud hynny gyda chywirdeb absoliwt yn degol.
Dyna'n union yr un fath o broblem a ddigwyddodd yn
y Gwladgarwr.
Po hiraf yn rhedeg y system, y gwaethaf y gwall amser daeth.
Ar ôl 100 awr o weithredu, mae'r gwall mewn amser yn unig oedd
tua thraean o eiliad.
Ond o ran targedu taflegryn sy'n teithio ar Mach 5,
mae'n arwain at gwall olrhain dros 600 metr.
Byddai'n gamgymeriad angheuol ar gyfer y milwyr yn Dhahran.
>> Beth ddigwyddodd yn lansio Scud ei ganfod gan y rhybudd cynnar
lloerennau ac maent yn gwybod bod y Scud yn dod yn eu
cyfeiriad cyffredinol.
Doedden nhw ddim yn gwybod lle cafodd ei dod.
Roedd yn awr i fyny at y gydran radar y Gwladgarwr
system, amddiffyn Dhahran, i leoli a chadw golwg ar y
taflegryn gelyn dod i mewn.
Roedd y radar yn smart iawn.
Byddech yn mewn gwirionedd yn olrhain lleoliad y Scud ac yna
ragfynegi lle byddai'n debygol o fod y tro nesaf y
radar anfon curiad allan.
Dyna oedd enw y giât ystod.
Yna, unwaith y bydd y Gwladgarwr yn penderfynu digon o amser wedi mynd heibio i fynd
gefn a gwirio lleoliad nesaf ar gyfer y canfyddir
gwrthrych, mae'n mynd yn ôl.
Felly pan aeth yn ôl i'r lle anghywir, yna yn gweld unrhyw
wrthwynebu, ac mae'n penderfynu nad oedd gwrthrych.
Roedd yn canfod ffug ac yn disgyn y trac.
>> Diflannodd y Scud sy'n dod i mewn oddi wrth y sgrin radar.
Ac eiliadau yn ddiweddarach, mae'n Condemniwyd hi i mewn i'r barics. Mae'r Scud
lladd 28 a oedd yr un olaf ei tanio yn ystod
y Rhyfel cyntaf y Gwlff.
Yn drasig, y meddalwedd diweddaru cyrraedd Dhahran
y diwrnod canlynol.
Ac mae'r diffyg meddalwedd wedi ei osod, cau un bennod yn
hanes cythryblus y taflegryn Gwladgarwr.
Gwladgarwr mewn gwirionedd yn acronym ar gyfer "Olrhain Array raddol
Rhyng-gipio Targed. "
>> Mae pob hawl, felly mae llawer mwy ar ganlyniadau drist pryd nad oedd yn
ddeall y byd.
A'r tecawê, mewn gwirionedd, gan y ffilm yw fod yr ateb
roedd yna ailgychwyn eich system amddiffyn taflegryn
pob siwrnai mewn blwc.
Ac felly eto, un o amcanion y cwrs, yn sicr
ar raddfa fwy gostyngedig na'r ceisiadau hyn, yw
llygaid pawb mewn gwirionedd yn agored i union sut yr ydych yn mynd ati i
peiriannau yn gwneud gwneud yr hyn rydych eisiau iddynt ei wneud a sut rydych yn mynd
am wneud hynny yn gywir, tra ar hyd y ffordd wneud hynny
yn dda, cain, ac yn y blaen.
Ac felly heddiw, gadewch i blymio i mewn i ychydig yn fwy o hyn, ond
fel nad ydym yn mynd yn rhy gyflym, yn enwedig ar gyfer rhai sy'n llai
gyfforddus, ond hefyd fel y gallwn gadw diddordeb y
rhai sy'n fwy cyfforddus, gadewch i ni dim ond yn gyflym yn dechrau gydag ychydig
o ailadrodd rhai o'r syniadau hyn.
Ac eto, gofynnwch i ffwrdd, yn bersonol neu ar-lein, os oes gennych
cwestiynau fel y gallwn gadw pawb ar yr un dudalen.
>> Felly, y Appliance CS50, quick step yn ôl, yn
beth, yn eich geiriau eich hun?
Mae'n iawn os nad oes gennych syniad beth gall y geiriau fod eto.
[Anghlywadwy]
Iawn, felly mae rhyngwyneb cyffredinol ar gyfer -
y gallwn i gyd rannu.
Yn hollol.
Felly, gallem, er enghraifft, dweud wrthych i fynd i rai
gwefan, lawrlwythwch y meddalwedd ar gyfer Mac OS.
Lawrlwythwch y meddalwedd ar gyfer Windows, ffurfweddu yn
hyn ac y.
Ond y gwir amdani yw, yna rydym yn rhedeg i mewn technegol di-rif
gefnogi materion.
A hefyd y dyddiau hyn, mae llawer o'r hyn sy'n cael ei wneud ochr y gweinydd,
ym myd cyfrifiadureg, yn enwedig pan ddaw i
ar y we datblygu a cheisiadau ar y we, mewn gwirionedd
yn aml wneud ar gyfrifiaduron Linux neu Unix, yn hytrach na
Macs neu gyfrifiaduron Windows.
>> Felly, ymysg y upsides, yna, o ddefnyddio peth hyn a elwir y
CS50 Offer yw y bydd gan bob un ohonom yr un amgylchedd.
Felly, mae pawb sydd ar y dudalen un fath ni waeth pa galedwedd chi
Daeth i'r campws gyda nhw, ond bydd hefyd yn dabbling yn union
yr un amgylchedd y byddwch yn ei ddefnyddio tuag at
diwedd semester yn ogystal ar gyfer datblygu ar y we, yn ogystal ag yn y
dyfodol ar gyfer ceisiadau byd go iawn ohono.
Felly yn fwy concretely, mae'r Offer CS50 yn ddarn rhad ac am ddim o
meddalwedd sy'n caniatáu i chi redeg system weithredu arall,
Linux, yn yr achos hwn, ar eich cyfrifiadur eich hun, mewn ffenestr.
Nawr nid ydych yn gallu lawrlwytho'r offer.
Byddwch angen rhaglen i'w ddefnyddio i chwarae neu redeg y ddyfais.
A bod darn o feddalwedd yn cael ei adnabod yn gyffredinol fel
hypervisor.
Hypervisors ddod yn y ffurf o gynhyrchion fel VMware,
Blwch Rhithwir, Parallels.
Mae pob math o gwmnïau yn gwneud meddalwedd, yn rhydd ac
masnachol, fel ei gilydd.
Beth fyddwch chi'n ei weld yn Problem Set 1 cyfarwyddiadau ar sut i
gael meddalwedd am ddim i'w ddefnyddio i
rhedeg y Appliance CS50.
Ac unwaith y byddwch yn ei wneud, bydd gennych, mewn ffenestr ar eich Mac neu PC,
amgylchedd penbwrdd sy'n edrych yn debyg i hyn, lle
mae ganddo Cychwyn dewislen tebyg i beth yn y
gwaelod gornel chwith.
Mae ganddo, ffolder Cartref neu cyfeiriadur cartref, yn yr ochr chwith uchaf
yno, a sbwriel yn gallu, ac yn y blaen.
Felly, byddwn yn canfod ar wahân y manylion angenrheidiol wrth i ni fynd.
>> Ond yn awr, gadewch i ni ddechrau i ddeifio i mewn i C.
Felly C yn yr iaith hon raglennu, yn debyg o ran ysbryd i'r
Scratch, ond yn llawer llai graffigol, ond yn eironig, ymhell
yn fwy pwerus ar ôl i chi gael savvy ag ef.
Felly, yn C, byddwn yn ysgrifennu rhaglenni drwy ysgrifennu cod ffynhonnell, sydd yn
y gystrawen Saesneg-fel, yn debyg i'r sanau
arddangos ein bod yn gwneud y tro diwethaf sy'n eich galluogi i
mynegi eich hun yn weddol fanwl gywir, os
arcanely, i'r cyfrifiadur.
>> Felly, pa fath o feddalwedd gynnyrch ydych chi'n ei angen mewn gwirionedd
i ysgrifennu rhaglenni mewn iaith fel C, yn seiliedig ar ein
sgwrs ar ddydd Llun?
[Anghlywadwy]
OK, 'ch jyst angen golygydd testun.
Nid oes angen unrhyw feddalwedd arbennig
fel y cyfryw i ysgrifennu rhaglenni.
'Ch jyst angen golygydd testun fel Notepad, ar Windows,
TextEdit ar Mac, neu rywbeth a elwir yn gedit, yn y byd o
Linux, y byddwn yn ei ddefnyddio yma.
A dyna ni, i ysgrifennu rhaglenni.
>> Ond ysgrifennu dim ond hanner yr hafaliad.
Yna bydd angen i'w rhedeg.
Ond er mwyn rhedeg rhaglenni -
Ni allwch chi redeg cod ffynhonnell.
Chi yn lle hynny rhaid i chi wneud beth i yn gyntaf?
Yeah.
DAVID J. Malan: Mae angen i chi
llunio ei.
Ac, rhywun arall, llunio'r cod ffynhonnell yn golygu -
[Anghlywadwy]
DAVID J. Malan: Yn union.
Cyfieithu i sero a rhai.
Gan fod pob un ohonom, y dyddiau hyn, gyfrifiaduron sydd wedi CPUs,
bron pob un ohonynt yn cael eu gwneud gan gwmni o'r enw Intel, ac
Intel Y tu mewn, yn golygu fod y tu mewn i'r ymennydd eich
gyfrifiadur, a elwir yn y CPU.
Ac un o'r pethau y bod ymennydd yn ei wneud yn, mae'n gwybod
sut i ddeall patrymau o sero a rhai.
Mae'n gwybod beth patrwm o ddarnau yn cynrychioli ogystal, pa
patrwm yn cynrychioli Tynnu gyda, pa batrwm o
darnau cynrychioli argraffu, ac yn creu sain clywadwy.
>> Felly, yn fyr, y CPU, ynghyd â'r system weithredu,
sydd yn ddarn o feddalwedd sy'n rhedeg ar ben y CPU,
felly, i siarad.
Gyda'i gilydd, y ddau ddarn yn gwybod sut i redeg rhaglenni sy'n
rydym yn bodau dynol ysgrifennu.
>> Felly, os byddaf yn mynd i mewn i'r Appliance CS50 yma, mae angen i mi agor
i fyny golygydd testun a gallaf gael gafael ar y
mewn dwy ffordd.
Gallaf naill ai fynd i Fynegai'r, Rhaglennu,
ac yna gallaf ddewis -
Na, nid y fwydlen.
Gallaf fynd i Ategolion / gedit yma i agor
fy golygydd testun bach.
Neu yn fwy syml, gallaf glicio ar yr eicon hwn bach yn y gwaelod
gornel chwith.
Ac yn awr yr wyf yn cael yr amgylchedd yma.
Mae'n eithaf atgoffa rhywun o golygydd testun syml, gyda dim ond
un neu ddau o wahaniaethau.
Yn y top, lle mae'r cyrchwr yn amrantu yn awr, dyma lle
Gallaf ddechrau ysgrifennu fy cod.
Yn y gwaelod mae hyn yn beth a elwir yn y ffenestr terfynell.
A gall pa fathau o bethau yr wyf yn ei wneud yn hyn o
hyn a elwir yn ffenestr terfynell?
[Anghlywadwy]
>> Iawn, felly byddaf yn rhedeg gorchmynion.
Ac mae rhai o'r gorchmynion ydym yn rhedeg ar ddydd Llun ychydig yn
cryptig i ddechrau, ond ls am restr, cd gyfer cyfeiriadur newid,
rm, ar gyfer cael gwared.
Felly, mae'n fath o ffordd hen-ysgol o lywio eich
cyfrifiadur, gan ddefnyddio dim ond eich bysellfwrdd a gorchmynion testunol,
ac nid, yn gyffredinol, gan ddefnyddio llygoden.
Ond byddwn yn gweld, cyn hir, mae hyn mewn gwirionedd yn rhoi i ni
pŵer ychydig yn fwy a thrachywiredd ychydig mwy i
mynegi ein hunain.
Ac yna dros yma ar y chwith, rydym yn jyst yn mynd i weld,
wrth i ni ddechrau, meddalwedd ysgrifennu crynodeb ychydig o
rhaglen yr ydym wedi ysgrifennu ar y chwith uchaf.
Ond byddwn yn gweld hynny eto cyn bo hir.
>> Felly, gadewch i ni wneud rhywbeth eithaf syml yma.
Gadewch i mi yn gyntaf fynd yn ei flaen ac yn mynd i Ffeil, Achub, ac rwy'n dim ond
mynd i glicio ar jharvard yma, drosodd ar y chwith, a
jharvard yw, unwaith eto, yr enw ar gyfer fy blygell gartref, fy
ffeiliau personol, i mi, bellach yn cael eu John Harvard, gan fod pob un ohonoch
Cyn bo hir bydd John Harvard yn yr amgylchedd hwn.
Mae ganddo y cyfeiriadur cartref, Fy Dogfennau ac yn y blaen,
yr wyf am ei gynilo, yn awr, y ffeil hon i mewn
Felly, yr wyf i'n mynd i alw hello.c. Wedyn dw i'n mynd i fynd
ymlaen cliciwch ac Achub, ac yn awr yr hyn sydd gennyf yma yw tab
a elwir yn hello.c, cymaint fel math arall o golygydd.
>> Felly nawr gadewch i mi fynd yn ei flaen ac yn dechrau ysgrifennu rhaglen.
int brif (gwag).
Ac yna Fi jyst yn gwneud y tro diwethaf, printf, ar gyfer print fformatio,
("Helo, byd!"
);.
Mae bron gwblhau.
Ond dw i'n colli ychydig o fanylion.
Beth sydd ar goll o'r rhaglen hon y Fi 'n sylweddol angen am
i lunio mewn gwirionedd?
Yeah.
[Anghlywadwy]?
>> DAVID J. Malan: Yeah, felly mae angen i mi gynnwys y safon
I / O llyfrgell.
Felly, mae angen i fynd uchod bennaf, hyd Im 'jyst yn mynd i
gwneud rhywfaint o le ar ei gyfer yno.
Ac yr wyf i'n mynd i wneud # cynnwys .
Ac yn sylwi ar y cromfachau onglog yno.
Ac fel o'r neilltu, gedit yn defnyddio ychydig yn gyfeillgar, os
weithiau ychydig yn gymhleth, gan ei fod yn ceisio helpu eich
llygaid sylwi ar yr hyn llinellau i fyny gyda'r hyn.
Felly, mae'r ffaith bod fy cyrchwr yn iawn nesaf at y onglog
braced, sylwch sut mae'n tynnu sylw at y ongl eraill
braced ynghyd â hyn un.
A dim ond i dynnu fy sylw at y ffaith fy mod
gael cymesuredd.
Ac cymesuredd mewn rhaglenni yn gyffredinol yn beth da.
Yn yr un modd, os wyf yn symud fy cyrchwr i'r diwedd, sylwch sut y mae'r
braces cyrliog llinell i fyny i ddangos, ie, mae gennyf un agored
ac yn un gaeedig, felly, i siarad.
>> Gall pob hawl, ac yr wyf yn gwneud un peth arall.
Dyw hi ddim yn hollol angenrheidiol, ond mae arferion da, i ddweud
dychwelyd 0.
A 0 dychwelyd yn gwneud yr hyn i ni yma?
Neu arwydd beth?
[Anghlywadwy]
DAVID J. Malan: Ond dim byd o'i le.
A dweud y gwir mae'n anodd i lawer fynd o'i le mewn
rhaglennu byr hwn.
Felly, Im 'jyst yn bod yn super eglur bod popeth yn iawn.
Yr wyf fi, y dynol, pan fyddaf yn rhedeg y rhaglen, mae'n debygol y bydd byth yn
gweld bod 0.
Yn gyffredinol, mae'r niferoedd sy'n cael eu dychwelyd o brif
Dim ond fagu eu pennau i bobl pan
rhywbeth yn mynd o'i le.
A ydych yn cael pop bach i fyny gwall system yn dweud, un,
dau, tri, neu beth bynnag y nifer oedd bod
ei ddychwelyd mewn gwirionedd.
Felly unrhyw beth arall o'i le ar hyn?
[Anghlywadwy]
>> DAVID J. Malan: Felly, nid yw hyn yn gymaint o gamgymeriad swyddogaethol
ond yn un esthetig.
Mae'n debyg y dylwn roi mewn cymeriad Newline yno ar y
ddiwedd y llinyn fel ein bod mewn gwirionedd yn symud y cyrchwr i
y llinell nesaf, a bydd y rhaglen yn unig yn edrych ychydig yn prettier.
>> Felly nawr gadewch i mi fynd i lawr at fy ffenestr terfynell
a chwyddo yn ôl i mewn
Ac mae hyn yn beth yma, fe'i elwir yn brydlon.
Mae'n dim ond fy atgoffa pwy ydw i, jharvard @ offer, lle
offer yn enw'r cyfrifiadur dwi ar.
Yn y cromfachau yw hyn tilde, y symbol squiggle, sy'n
cynrychioli'r hyn?
GYNULLEIDFA: cyfeiriadur cartref.
DAVID J. Malan: cyfeiriadur cartref.
Felly dyna dim ond nodiant llaw-fer am ddweud eich bod yn
eich ffolder personol lle mae pob un o'ch ffeiliau yn mynd yn ddiofyn.
Felly nawr, yma, gallaf deipio ls ar gyfer rhestr.
A'r unig beth yr wyf yn gweld yma ar hyn o bryd yn hello.c.
Ac mae hynny'n beth da oherwydd fy mod newydd ei ysgrifennu hyn.
>> Felly, gadewch i mi fynd yn ei flaen ac yn gwneud helo.
Ac yn sylwi nad wyf i'n teipio yn gwneud hello.c.
Yn hytrach, Im 'yn unig teipio enw'r waelod y ffeil, helo.
A gwnewch, fel y gwelsom ddydd Llun bydd, dim ond casglu fy mod am
y. ffeil c.
Felly, yn awr yr wyf wedi ei deipio i wneud helo.
Nawr rwy'n gweld y gorchymyn yn weddol hir a bydd yn parhau
gweld hyn dro ar ôl tro.
Ond i fod yn glir, clang, y gair mai dim ond yn ymddangos,
bod yn y compiler gwirioneddol.
Gwnewch yn unig yw cyfleustodau adeiladu.
Mae'n dim ond rhaglen mwy cyfeillgar sy'n arbed i mi, yn y
tymor hir, rhag gorfod teipio allan anhygoel o ddiflas hir
gorchmynion fel 'na un.
Felly gallech redeg Clang llaw.
Gallech math hynny i gyd â llaw.
Dim ond yn mynd yn ddiflas.
Ac felly gwnewch yn unig yw rhaglen sy'n symleiddio ein bywydau a
redeg gorchmynion mwy cymhleth i ni.
>> Mae pob hawl, felly, yn awr yr hyn y ffeil dylwn gael
yn fy cyfeiriadur ar hyn o bryd?
Nid dim ond hello.c, ond hefyd helo.
Felly os wyf eisiau rhedeg helo, cofio fy mod yn dweud dot slaes,
lle y defnyddir dulliau dot mynd i mewn i'r ffolder ar hyn o bryd, ble bynnag yr ydych
, ac yna rhedeg y rhaglen o'r enw hello, ac yn wir, yn awr,
Mae gen i fyd helo.
Mae pob hawl, unrhyw gwestiynau ar y llif gwaith neu y gystrawen o
hyn yr ydym yn unig oedd?
>> Mae pob hawl, felly gadewch i ni gymryd pethau i fyny hollt eto.
Felly, roedd hyn yn anfoddhaol i ddim ond ysgrifennu rhaglen mai dim ond
byth yn dweud helo, byd.
Felly, rydym yn newid, ar ddydd Llun, i ddweud, helo, David.
Mae'n ychydig yn fwy personol, ond yr un mor galed codio fel y
fersiwn gyntaf.
Felly nid yw pob bod gymhellol.
Ond mae yn bodoli, yn C, swyddogaethau ar wahân yn sicr
print, swyddogaethau sy'n gadael i chi gael mewnbwn defnyddwyr.
Ac mae'r ffordd yr ydym yn gwneud hyn, y diwrnod o'r blaen, fel a ganlyn.
Cyn i mi argraffu rhywbeth, tro cyntaf i mi
rhywbeth gan y defnyddiwr.
Felly, gadewch i mi wneud hyn eto.
>> Llinynnol, lle mae yn unig yw enw mympwyol, yma, ar gyfer
llinyn, yn hafal i GetString.
Felly, beth oedd yn GetString?
Mae'n amlwg yn cael llinyn, yn seiliedig ar ei enw.
Ond beth ydyw, yn fwy technegol?
Mae'n swyddogaeth.
Felly, mae'n swyddogaeth nad yw'n dod gyda C fel y cyfryw.
CS50 staff ysgrifennodd y.
Ac felly i ddefnyddio'r hyn, nid ydych yn gallu cynnwys stdio.h,
Angen i chi hefyd gynnwys yr hyn?
Yeah.
Felly cs50.h, sydd ychydig ffeil wnaethom ysgrifennu rai blynyddoedd yn ôl.
Rydym yn ei osod ar y peiriant i chi ochr yn ochr â
holl ffeiliau safonol.
Ac felly yn yr ychydig wythnosau cyntaf y dosbarth, byddwn yn defnyddio
hyn dim ond er mwyn symleiddio'r broses o wneud sylfaenol iawn
pethau fel mewnbwn defnyddiwr gael.
Oherwydd fel y byddwn yn gweld mewn ychydig wythnosau, mewnbwn defnyddiwr gael mewn
iaith fel C mewn gwirionedd yn syndod o gymhleth,
yn enwedig oherwydd nad ydych yn gwybod ymlaen llaw, fel arfer, sut y
pethau lawer y defnyddiwr yn mynd i deipio i mewn
A phan nad ydych yn gwybod faint o ddata i'w disgwyl, nad ydych yn
gwybod faint o gof i ddyrannu.
Ac os ydych mewn gwirionedd yn cael ddefnyddiwr gwrthwynebus pwy sy'n ceisio
i hacio i mewn i'ch system, damwain eich cyfrifiadur, yn dda,
gyffredinol y dull cyntaf o ymosodiad yw, yn union fel y gwneuthum ar
Dydd Llun, teipiwch dilyniant hir cyfan o gymeriadau ar hap,
daro Enter, a gweld beth yn torri.
Oherwydd yn gyffredinol, os bydd yn torri rhaglen, sy'n Awgrymiadau ar
nam diogelwch, o bosibl.
Mae'n sicr yn Awgrymiadau ar chi, y rhaglennydd, ar ôl gwneud
camgymeriad, ond yn fwy peryglus, efallai y byddwch wedi gwneud
gysylltiedig â diogelwch camgymeriad, ac yn gyffredinol byddwn yn gweld bod
dyna sut y peiriannau yn cael eu peryglu hyd y dydd hwn, yn
yn y byd y we a rhaglenni ar y
, llinell orchymyn fel hyn.
>> Mae pob hawl.
Felly llinyn s yn dychwelyd GetString.
Felly, yn fwy concretely yn awr, beth yw llinell 6 wneud yma?
Felly, mae'r swyddogaeth ar y dde yn cael llinyn,
cymryd sawl dadleuon?
Iawn.
Felly, dim.
Mae ychydig o bwyll gwirio.
Mae dadl, unwaith eto, yn unig yw mewnbwn i swyddogaeth i newid
ei ymddygiad diofyn mewn rhyw ffordd.
Ond yn yr achos hwn, nid wyf am newid
ymddygiad GetString.
Fi jyst eisiau i gael llinyn.
Felly, yr wyf yn rhoi unrhyw beth yn y cromfachau, ac yna yr wyf yn rhoi i
hanner colon demarking diwedd y llinell o god.
Yn awr, y symbol hafal yn golygu gyfartal, fel y cyfryw.
Mae'n golygu aseiniad, sy'n golygu rhoi beth bynnag yn cael
outputted ar y tu mewn cywir o beth bynnag sydd ar y chwith.
>> Felly, ar y chwith, rydym yn dweud ein bod wedi datgan
llinyn o'r enw s.
Ac yn fwy penodol, rydym wedi dyrannu cof tu mewn
y byddwn yn rhoi'r darnau sy'n cynrychioli cyfres o
cymeriadau.
Ond ar gyfer heddiw, rydym wedi dyrannu
neu ddatgan llinyn.
Mae pob hawl.
Felly, yn awr unwaith y byddaf wedi gwneud hyn, rwyf am i lenwi'r yng ngwerth y
s, gwerth David.
Felly, mae hyn yn anghywir pam?
Felly, mae hyn yn unig yw llythrennol s hard-coded.
Mae'n dweud "helo, s," nad yw hyn rwyf eisiau.
Felly gallaf wneud hyn.
Mae'r arwydd y cant yn placeholder, ond erbyn hyn mae angen i mi
fynd i mewn argraffu ail ddadl.
Dwyn i gof bod dadleuon i swyddogaethau yn cael eu gwahanu gan
atalnodau, felly mae'r coma nesaf yma yr wyf yn rhoi ar ôl hyn yn y llythyr.
Ac yn y cyd-destun yn awr, s yn y newidyn, ac printf,
ar dderbyn y ddau fewnbwn -
y llinyn ar y chwith a'r enw amrywiol ar y dde -
bydd yn llenwi'r olaf i mewn i'r hen i ni, ac
dim ond argraffu llinyn hardd 'n glws cynnwys
beth bynnag yw ein bod yn teipio i mewn
>> Felly, gadewch i ni geisio hyn.
Mynd i fynd yn ei flaen ac yn chwyddo allan, yn ôl
i fy ffenestr terfynell.
Chwyddo i mewn ar waelod yma.
Ail-deipiwch gwneud helo.
Clang fel pe bai wedi cael ei ailgynnal.
Rydw i'n mynd i deipio. / Helo, Enter.
Nid oes dim yn ymddangos i fod yn digwydd eto, ond mae'n ar hyn brydlon
y gallaf deipio rhywbeth fel Nate, Mewnbynnu, ac erbyn hyn mae gennym
Helo, Nate.
A allaf wneud hynny eto gyda Rob, ac yn y blaen.
Felly, gobeithio nawr y rhaglen hon yn ymddwyn fel yr wyf yn bwriadu.
>> Nid yn awr, y cyfan sydd gyfeillgar i'r defnyddiwr.
Does gen i ddim syniad beth sy'n cael ei ddisgwyl i mi.
Felly, gallwn yn sicr lanhau hyn i fyny ychydig bach.
Gadewch i mi fynd yn ôl i fyny yma, ac yn hytrach na dim ond saethu i mewn ac
gofyn i'r defnyddiwr ar gyfer llinyn, gadewch i mi yn benodol yn dweud wrth y
defnyddiwr yr hyn rwy'n ei ddisgwyl.
Felly printf ("Rhowch llinyn:"
);
Felly, dim newidynnau yma.
Dim arwyddion y cant.
Dim ond yr ymadrodd Saesneg syml.
Gadewch i mi fyned yn awr i'r gwaelod yma ac ailgynnal fy rhaglen.
Ond dim ymddangos i wedi newid.
Pam?
Rhaid i mi ail-grynhoi iddo.
Felly, camgymeriad hawdd i'w wneud.
Ond mae'n rhaid i chi nid yn unig yn arbed y ffeil ond
ail-grynhoi y rhaglen.
Ac felly os wyf yn ail-redeg gwneud helo, sydd bellach yn rhedeg Clang.
Nawr gallaf redeg. / Helo. Ac yn awr yr wyf yn gweld "Rhowch llinyn:".
Iawn.
Nawr mae'n ychydig yn fwy defnyddiwr-gyfeillgar.
Nate, Mewnbynnu, helo, Nate.
>> Wel, gadewch i ni geisio hyn eto ac yn dechrau meddwl
am achosion cornel.
Felly, yn union fel yn Scratch, rydych yn annog neu'n cael eu
annog yn y fanyleb i fath o feddwl am beth allai fynd
anghywir os nad ydych yn rhagweld popeth y gallai'r defnyddiwr ei wneud.
Pryfed, felly gallai, dilyn.
Felly, mynd i mewn i linyn -
beth achos cornel yma?
Beth yw sefyllfa yr wyf fi, y rhaglennydd efallai na fydd, yn cael
eu rhagweld?
Yeah.
Iawn.
Felly beth os ydw i'n teipio mewn nifer fel hyn?
Mae pob hawl.
Felly, mae'n dal i weithio.
Gramatically yn gwneud unrhyw synnwyr.
Ond o leiaf mae'r rhaglen yn gweithio.
>> Beth yw achos arall cornel?
Rhywbeth Nid oeddwn yn disgwyl.
Yeah?
Iawn.
Felly, gallem wneud rhywbeth fel nifer iawn, iawn fawr.
Felly, gadewch i ni wneud hyn yma.
Gadewch i mi chwyddo allan am eiliad, gadewch i mi dynnu sylw.
Methu copïo a gludo i lawr yma.
Mae pob hawl.
Felly, ni allaf gopïo a gludo yn y ffenestr hon terfynell, felly gallwn eich
dim ond efelychu ei.
Gadewch i mi chwyddo allan, mynd i lapio.
Dydw i ddim yn mynd i wneud hyn yn rhy hir, oherwydd ni fydd yn
mewn gwirionedd yn doriad yn y rhaglen hon.
Ond y gallai.
Enter.
Ond ni wnaeth.
Mae pob hawl.
Ond mae'n achos cornel go iawn.
A'r unig reswm y ymddwyn yn gywir, felly i
siarad, oherwydd bod y CS50 GetString swyddogaeth mewn gwirionedd
cynllunio o dan y cwfl, fel y byddwn yn gweld ymhen ychydig wythnosau,
yn awtomatig dyrannu RAM mwy a mwy, yn fwy a mwy o
cof gan y system weithredu, pan fydd yn sylweddoli, wow,
rydych wedi teipio mewn gwirionedd yn rhywbeth eithaf hir.
Yn awr, mae hyn yn dipyn o gelwydd gwyn.
Os ydym mewn gwirionedd yn seibio am gryn amser, ac rwy'n deipio mewn
rhywbeth fel 5000000000 cymeriadau ar y bysellfwrdd
yma, neu daro mewn gwirionedd gopi-gludo gryn dipyn, rydym o bosib
Gallai achosi i'r rhaglen i ddamwain.
Dim ond ychydig yn galetach i efelychu hynny gyda cyfyngedig
faint o amser.
>> Beth yw achos arall gornel gallem geisio?
Yeah?
Yeah.
Felly pam nad ydym yn ateb dim byd?
Felly, rydym mewn gwirionedd yn rhaid i ni gymryd rhai camau, oherwydd fel arall
y rhaglen yn mynd i eistedd yno trwy'r dydd amrantu.
Ond os Fi jyst daro Enter -
OK, yn awr, yn dal i edrych yn anghywir.
Heb chwalu, ond efallai mae bellach yn gyfle i
dechrau gweithredu rhaglen fwy trylwyr
sydd mewn gwirionedd yn gwirio.
Ac os y llinyn, y ddedfryd, y gair yr wyf
teipio mewn wedi hyd 0, yn dda, efallai y dylwn gweiddi ar y
defnyddiwr, neu ddweud ef neu hi i fynd i mewn i linyn eto, fel y
ydym mewn gwirionedd yn cael yr hyn edrych fel ymddygiad cywir ac nid
dim ond amryfusedd llwyr ar fy rhan.
>> Cwestiwn yn y cefn?
Rhif degol.
Felly, gallem geisio hynny, hefyd.
1.10000005.
Seems fel 'na sy'n mynd i jyst yn gweithio mewn gwirionedd iawn.
A bod mewn gwirionedd yn cael ei ddisgwyl.
Hyd yn oed er efallai y byddwn wedi ei deipio y nifer hwnnw yno, neu
nifer mwy yn gynharach, yn sylweddoli bod pan fyddwn yn teipio defnyddiwr
Nid yw mewnbwn ac rydym yn defnyddio'r swyddogaeth GetString, yn
mater os bydd yr hyn yr wyf i'n teipio yn edrych fel rhif.
Dwyn i gof bod yn ôl ASCII, popeth ar eich
bysellfwrdd werth rhifiadol y gellir eu mapio i
cymeriad, golosg.
Felly, yn yr achos hwn, hyd yn oed er efallai y byddwn yn deipio rhif,
cyfrifiadur yn mynd i feddwl am y peth, fel petai, fel llinyn -
rhywbeth sy'n edrych yn debyg i nifer, ond mae'n
nad ydynt mewn gwirionedd yn rhif.
Ond mewn gwirionedd segue berffaith, oherwydd yn awr gallwn
mewn gwirionedd yn trosglwyddo i raglenni ysgrifenedig
ddefnyddio mathau data eraill.
>> Felly, ar wahân gan ddefnyddio chars, neu yn hytrach, ar wahân i ddefnyddio llinynnau,
sylweddoli ein bod wedi fathau o ddata eraill yn C yn ogystal ag yn
ieithoedd eraill.
Mae torgoch, fel yr awgryma'r enw, yn unig yw cymeriad unigol.
Mae arnofio yn werth pwynt arnawf, a bod yn unig ffansi
ffordd o ddweud nifer go iawn - rhywbeth sydd â degol
pwynt ynddo gyda rhai rhifau i'r chwith a / neu i'r dde.
Mae int yw cyfanrif, sydd ychydig rhif, er enghraifft 123.
Ac yn awr yn fwy diddorol yw pethau fel dwbl.
Beth wnaethon ni ddweud dwbl oedd y tro diwethaf?
Mae'n 64, i'r dde.
Felly, tra nodweddiadol fflôt yn 32-bit -
felly mae'n hyn yn hir yn y cof, mae'n defnyddio 32 zeros a rhai i
cynrychioli gwerthoedd - dwbl yn llythrennol ddwywaith hynny, a
yn golygu y gallwch naill ai gynrychioli rhifau mwy, neu
gallwch gynrychioli rhifau mwy manwl gywir.
Felly, gallwch gael mwy o rifau ar ôl y pwynt degol, ond
fel y cyd-dweud yn y fideo, hyd yn oed rhywbeth syml
gysyniadol ni all er enghraifft 1/3 yn cael ei cynrychioli yn union gan
cyfrifiadur, oherwydd yn y pen draw byddwch yn rhedeg allan o ddarnau, ac
felly gallwch ond gwneud .33333333 gymaint o weithiau, yn
y pwynt os oes gen ti i ddweud fy mod allan o gynrychiolaeth
gofod, rhaid i mi ei alw'n ddim y dydd a'i gynrychioli
braidd yn imprecisely yn hoffi hynny.
A hir hir -
enw dwp, ond mae'n oherwydd mae 'na math data a elwir yn
hir yn C a chyda llaw yn aml yn 32 catiau, yn union fel
int yw 32 darnau, ond hir hir yn
yn gyffredinol 64 did.
Felly, 'i jyst yn golygu y gallwch gynrychioli mwy
rhifau na hyn.
>> Mae pob hawl.
Felly, os ydym mewn gwirionedd yn awyddus i ddechrau yn cynrychioli pethau, rydym yn
efallai y bydd angen mwy o fathau soffistigedig, ac
dyna pam yr ydym wedi llinyn.
Felly, yn y llyfrgell CS50, y ffeil o'r enw cs50.h, rydym wedi
mewn gwirionedd datgan, math ddata fel petai, a elwir yn llinyn,
ond nid yw llinyn yn bodoli mewn gwirionedd.
Mae hyn, unwaith eto, un o'r haenau hyn rydyn ni'n mynd i croen
yn ôl mewn wythnos neu ddwy a'i daflu i ffwrdd, ac mewn gwirionedd yn
edrych o dan y cwfl ar yr hyn llinyn mewn gwirionedd yw, a
sut mae'n cael ei chynrychioli.
Rydym hefyd yn mynd i edrych ar werthoedd Boole.
>> Felly beth oedd yn bool yng nghyd-destun Scratch?
Mae'n wir neu'n anwir.
Felly, mae'n werth dim ond mae hynny'n wir neu'n anwir, ar neu oddi ar, 1 neu
0, fodd bynnag ydych am weld y byd.
Felly, yn C, diolch i lyfrgell CS50, sydd yn ei dro
yn cynnwys lyfrgell arall o dan y cwfl, mae gennym
mynediad i fath data sy'n cael ei alw bool, a fydd yn
llythrennol yn ein galluogi i aseinio y gwerthoedd gwir neu anwir i
pethau mewn rhaglen.
>> Felly, gadewch i ni fynd yn ei flaen yma ac ysgrifennu rhaglen bach sy'n
yn gwneud rhywbeth sy'n cynnwys rhifau yn lle hynny.
Felly, gadewch i mi fynd yn ôl at y Appliance CS50, gadewch i mi fynd yn ei flaen a
creu ffeil newydd o'r enw yma -
gadewch i 'jyst dweud rhywbeth syml, fel math.c.
Mae pob hawl.
Ac yn awr yn mynd i fyny i ben fy rhaglen, rwy'n
mynd i wneud y arferol -
# Cynnwys , fel y gallaf ddefnyddio
printf, int brif (gwag) -
byddwn yn dod yn ôl i, yn y pen draw, pa int olygu
yma, pa ddi-rym yn golygu yma, ond ar hyn o bryd, dim ond yn gwybod bod
rhaid i chi ddechrau raglenni fel hyn.
Nawr rwy'n mynd i fynd yn ei flaen a dweud rhywbeth ychydig yn
wahanol - printf ("Rhowch i mi rhif:"
);.
Wedyn dw i'n mynd i wneud int n = GetInt, gan ei fod yn
tro allan GetInt yn swyddogaeth arall yn y llyfrgell CS50
ar wahân GetString.
Ac yn awr yr wyf i'n mynd i wneud rhywbeth twp, fel "diolch
ar gyfer y d%, "ar gyfer cyfanrif degol, ac yna n coma, a
wedyn yn dychwelyd 0.
Felly, unwaith eto, yn dychwelyd 0 ddim byd i wneud gyda'r nifer rwy'n
gofyn i'r defnyddiwr ar gyfer.
Dim ond arwydd ar y diwedd y cyfan, yn ôl pob tebyg, yn dda.
>> Felly, gadewch i mi fynd i lawr at fy ffenestr terfynell yma.
Gadewch i mi deipio yn gwneud mathemateg, rhowch.
A rhywbeth o'i le.
Sicrhewch nad mathemateg oedd yn gweithio.
Dyma'r cyntaf o'n negeseuon gwall.
Pam?
Mae cryptic ychydig, ond -
Yeah.
Felly cs50.h.
Felly, unwaith eto, yn enwedig yn gynnar, byddwch yn ysgrifennu eich dewis cyntaf
rhaglen ar gyfer pset 1 mewn adrannau, yn ystod oriau swyddfa, a
dweud y gwir, bydd yn cael ei llethol weithiau beth yw'r pethau
yn ei ddweud mewn gwirionedd.
Ond byddwch yn sylweddoli yn gyflym iawn y byddant yn dechrau disgyn
i mewn i bwcedi lle hwn yn golygu eich bod wedi gadael oddi ar un
o # gynnwys ar ben y ffeil.
Ac Clang, y compiler, yn eich hysbysu o hyn drwy
ddweud, yn hytrach fancifully, datganiad ymhlyg o
GetInt swyddogaeth yn annilys.
>> Mae pob hawl.
Felly beth mae hynny'n ei olygu?
'I jyst yn golygu eich bod wedi datgan llwyr GetInt yn
yr ystyr nad ydych wedi datgan yn glir arno.
I ddatgan yn benodol int, rhaid i chi ddysgu
Clang ei fod yn bodoli.
Ac mae'r ateb yn syml iawn am hynny yw ei ddysgu gan
gan gynnwys y ffeil arall, cs50.h, yn
frig eich ffeil.
Oherwydd llythrennol, yr hyn # gynnwys yn ei wneud yw ei fod yn dweud Clang
'n bert lawer i fynd ddod o hyd i'r ffeil o'r enw cs50.h, copi,
bastio 'n awtomatig i mewn i ben fy rhaglen i mi,
ac yna drosi'r cod ffynhonnell i sero a rhai.
Ond byddai hynny yn amlwg yn iawn 'n faith os ydym bodau dynol wedi
i fynd gopïo a gludo y ffeiliau mawr drwy'r amser,
felly dim ond # cynnwys gwneud popeth yn awtomatig heb
muddying fy cod gyda rhywun arall llyfrgell.
A llyfrgell arall yn unig ffeil yn cynnwys swyddogaethau a
pethau eraill y mae rhywun arall wedi ysgrifennu, ein bod yn
leveraging ar gyfer ein fwyn ei hun.
>> Mae pob hawl.
Gadewch i ni geisio eto.
Gwnewch mathemateg.
Enter.
Da.
Felly, mae'n ymddangos ei fod yn gweithio.
Felly, gadewch i mi redeg yn awr mathemateg;. / Mathemateg.
Rhowch rhoi i mi nifer, 123.
Diolch am y 123.
Nawr gadewch i ni geisio achos arall gornel.
Mae llinyn yn eithaf hael, oherwydd bod
Gall llinyn fod yn unrhyw beth.
Gallu edrych fel rhifau, yn edrych fel
cymeriadau, yn edrych fel geiriau.
Ond mae int yn int.
Felly, yn awr os ydw i'n ddefnyddiwr anodd, ac mae'n dweud "Rhowch i mi
nifer, "beth os byddaf yn ceisio gwneud rhywbeth fel 0.1?
Wel, mae hynny'n nifer, ac mae'n gyson â'r
gramadeg wyf yn ei ddefnyddio yma, ond o dan y cwfl, Im 'yn
cwrs gan ddefnyddio'r GetInt swyddogaeth.
>> Felly, gadewch i ni weld beth sy'n digwydd.
Mewnbynnu, retry.
Mae pob hawl.
Gadewch i mi fod yn anodd ac yn jyst daro Enter eto.
Mewnbynnu, Enter.
Felly nawr mae'n ymddangos bod GetInt ychydig yn fwy
pwerus na GetString.
Rydym ni, y staff, eu gweithredu yn y fath fodd, os ydym yn sylwi
nad ydych wedi rhoi i ni yn int - a int yn rhif degol
zeros sy'n cynnwys, rhai, fesul dau, tri, pedwar, pump, chwech,
saith, wyth oed, neu nines.
A dyna ni.
Dim pwyntiau degol, dim cymeriadau, dim atalnodi.
Mae'n ymddangos bod yn rhaid inni gydweithredu.
Felly, gadewch i mi roi cynnig pedwar, pump, chwech, ac sy'n cael mi drwy.
Felly mewn gwirionedd, i fod yn rhefrol yma, mae'n debyg y dylwn ddweud "Rhowch i mi
cyfanrif "er mwyn cyfleu i'r defnyddiwr
yn union yr hyn yr wyf yn bwriadu.
>> Nawr gadewch i ni feddwl am dan y cwfl.
Nid ydym yn mynd i edrych ar sut cs50.h cael ei weithredu heddiw,
y llyfrgell.
Ond os yw'n cadw dweud retry, retry, retry, pa rhaglennu
adeiladu ydw i'n ôl pob tebyg gan ddefnyddio o dan y cwfl i
weithredu hynny?
Felly, dim ond dolen, dde?
Un o'r syniadau symlaf a welsom ar Scratch.
Mae'r Forever adeiladu, y Ailadrodd adeiladu.
Yn ôl pob tebyg, yn y rhaglen hon, o dan y cwfl, hyd yn oed
er ei fod yn ysgrifennu yn C ac nid dechrau, mae'n gwneud
rywbeth a elwir yn cyfateb i am byth os nad yw'r defnyddiwr
teipio mewn cyfanrif, yn dweud retry, retry, retry, retry, felly
yna yn olaf pan fyddwn yn cael cyfanrif, yna rydych
dorri allan o'r cylch.
>> Felly, beth swyddogaethau eraill yr ydym yn defnyddio yma yn CS50 llyfrgell?
Wel, math o'r rhai amlwg, o leiaf yn seiliedig ar y
mathau o ddata ein bod bellach yn gwybod yn bodoli.
Rydym yn gweithredu GetString, GetInt, ond drwy gydol y
wythnosau cyntaf y tymor, gallwch hefyd ddefnyddio GetFloat a
GetDouble a GetLongLong er mwyn cael yr union
mathau o ddata yr ydych ei eisiau.
Oherwydd bod y manylion allweddol yma yw bod yn wahanol i rai ieithoedd,
fel Python a Ruby, lle nad oes rhaid i
datgan y math data o amrywiol -
Nid oes rhaid i chi ddweud wrth y cyfrifiadur pa fath o bethau
rydych chi'n mynd i'w roi yn y newidyn -
yn C, rhaid i chi fod byth mor fanwl gywir.
Felly os ydych am newidyn a elwir yn n, darn o storio
yn yr achos hwn yn digwydd bod yn 32 catiau gan gonfensiwn, byddwch yn
yn rhaid i ddweud wrth y cyfrifiadur bod y darnau yn
mynd i storio nifer -
nid Nid yw cymeriad, llinyn, nid arnofio.
Ac mae hyn yn mynd i'r afael â'r mater yn effeithiol rydym yn
yn rhedeg i mewn yr wythnos diwethaf.
Os ydym yn defnyddio sero a rhifau rhai i gynrychioli nid yn unig
niferoedd ond Fel a brecwast a Cs, sut yn y byd yn
cyfrifiadur yn mynd i wybod bod y patrwm hwn o ddarnau mewn gwirionedd
yn cynrychioli nifer 65, yn hytrach na chynrychioli
llythyren A, sy'n gyd-ddigwyddiad, yn ôl
ASCII, galw i gof, yn cyfateb i 65?
>> Felly, y mathau hyn data darparu cyd-destun i'r cyfrifiadur, felly
ei bod yn gwybod os y darnau ei ddehongli fel
int neu fel llinyn.
Unrhyw gwestiynau, yna, ar hyn?
Yeah?
DAVID J. Malan: Cwestiwn da.
Os byddwn yn cymryd stdio.h, rydym yn arbed y ffeil -
gadewch i mi fynd i lawr at y ffenestr derfynell ac yn rhedeg yn gwneud mathemateg, zoom
mewn a rhowch -
awr yr wyf yn cael gwall gwahanol, oherwydd fy mod yn ymhlyg
datgan beth yw swyddogaeth nawr?
Printf.
Felly nawr dwi wedi creu problem newydd, y mae ei ateb yw
yn y bôn yr un fath.
Angen i mi roi hynny'n ôl.
GYNULLEIDFA: [Anghlywadwy]
DAVID J. Malan: Oh.
Felly, os wyf yn cymryd allan -
Iawn, yeah.
Felly, os wyf yn cael gwared ar y safon I / O llyfrgell cynnwys i fyny
yma, ac yna rydych chi'n ei ddweud os wyf yn cael gwared ar printf, yn cael
gwared o printf?
Ydw.
Dylai hyn weithio, oherwydd dydw i ddim bellach yn defnyddio unrhyw - Wps.
A wnes i jyst yn gorwedd?
O, iawn.
Ni fydd hyn yn gweithio oherwydd gwall newydd yr ydym yn unig gyflwyno.
Ac mae hyn yn un ychydig yn fwy hunan-esboniadol.
>> Beth yw'r broblem?
N amrywiol nas defnyddiwyd.
Felly, mae hyn gwall yn sgîl y ffaith ffurfweddu y
offer i fod yn arbennig o bedantig, i wir gweiddi ar
i chi am bob camgymeriad posibl, hyd yn oed os yw'n fath o
camgymeriad heb fod yn angheuol fel hyn - a yw'n wir mor fawr
delio fy mod yn dyrannu int, rhowch nifer ynddo, ac yna
dim ond yn gwneud dim byd ag ef?
Felly, swyddogaethol, dim.
Nid yw hynny'n mynd i dorri'r rhaglen.
'I' jyst fath o dwp, dde?
Nid oes unrhyw werth i wedi gofyn am y nifer hwnnw, storio
mewn newidyn, os nad ydych chi'n mynd i wneud unrhyw beth
ag ef, boed hargraffu neu ei chadw.
Felly, yn yr achos hwn, Clang yn cydnabod cymaint, a
mae'n dweud n amrywiol heb ei ddefnyddio.
>> Felly gallwn atgyweiria hon os ydym wir eisiau.
Ond unwaith eto, nid yw hyn yn rhaglennu da yn awr.
Felly, dim ond gallwn i wneud hyn -
mynd i lawr yma, gadewch i mi glirio'r sgrin, yn gwneud mathemateg.
Sy'n gweithio.
Nawr gallaf rhedeg fy rhaglen mathemateg, yn cymryd mewnbwn -
yn dda, a oedd yn wael.
Cymryd mewnbwn, a dyna'r cyfan mae'n ei wneud, yn yr achos hwn.
>> Felly, mewn gwirionedd, gadewch i ni geisio un achos gornel eraill yr ydym yn
nid oedd yn meddwl yn gynharach.
Yn yr achos hwn - yma, gadewch i ni fynd yn ôl i'r un mae hynny'n
ychydig yn fwy defnyddiwr-gyfeillgar.
Gadewch i mi fynd yn ôl yma ac yn rhedeg yn gwneud mathemateg eto.
Wps, beth wnes i ei wneud o'i le?
Got i rolio yn ôl ymhellach.
Iawn.
Nawr rydym yn ôl yn y cyflwr gwreiddiol, lle mae pob
yn gobeithio dda.
Ac yn awr os byddaf yn rhedeg mathemateg, 123 ymddangos i weithio.
Ond nid yw hyn yn wir yn brawf effeithiol, i ddweud
iawn, sy'n gweithio.
789, sy'n gweithio.
Amser i gyflwyno.
Oherwydd mae achosion cornel arall yma.
Nid yw llinyn ddim yn rhoi i ni lawer o drafferth trwy deipio mewn
llawer gyfan o gymeriadau.
Ond beth os ydw i'n teipio yn hyn?
Taro y rhif 1 a lot, lot cyfan yma -
popeth yn iawn, mae'n mynd braidd yn ddiflas, felly dwi'n mynd i
aros yma, ac yr wyf i'n mynd i daro Chofnoda.
>> Beth mae'r uffern newydd ddigwydd?
Felly, gall hyn mewn gwirionedd yn cael eu hesbonio.
Felly oedd yn mynd ag ef fel deuaidd?
Mae meddwl da, ond na, nid y ffaith ei fod yn cymryd yn
fel deuaidd, oherwydd yn wir, a oedd yn union fath o
cyd-ddigwyddiad.
Gallwn wneud hyn eto.
Felly, does dim 2 yn y system ddeuaidd, dyna
yn ôl pob tebyg yn ddigon beth bynnag.
Enter.
Felly nid oedd y broblem.
Beth arall?
Yn union.
>> Felly meddyliwch yn ôl at yr hyn mae int mewn gwirionedd.
Mae'n 32 catiau sydd gyda'i gilydd yn cael eu dehongli
fel rhif.
Os oes gennych 32 catiau, sy'n golygu y gall pob un o'r darnau fod yn
o 0 neu a. 1, 0 neu 1
Felly mae hynny'n golygu mae yna ddau posibiliadau ar gyfer y darn,
dau bosibilrwydd ar gyfer hyn, dau bosibilrwydd ar gyfer y
bit - felly dyna 2 waith 2 waith -
felly dyna 2 i rym 32 yw cyfanswm nifer y
amnewidiadau o sero a rhai os oes gennych 32
bachau, zeros neu rai, o flaen chi.
Felly os oes gen i 2 i 32, fathemategol, dyna beth?
Felly, mae'n llawer.
Mae'n 4 biliwn, rhoi neu gymryd.
Ac nid 4000000000 yw'n ymddangos i fod yr hyn oedd yn hargraffu yma.
Mewn gwirionedd, mae hyn yn edrych yn agosach at 2 biliwn.
Ond nid yw hyn yn cyd-daro.
Mae'r ffaith bod y cyfrifiadur wedi camddehongli fy rhif enfawr,
fy dilyniant enfawr o rai ac yna fy dilyniant enfawr o deuoedd,
fel tua 2 biliwn, yn esbonio sut?
Mae terfyn ar int.
Mae yna yn sicr yn werth mwyaf y gallwch ei gynrychioli.
Ond mae fel arfer yn 4 biliwn, dde?
Os bydd 2 i 32 yw tua 4 biliwn, sy'n ymddangos fel
dyna'r rhif mwyaf.
Felly, nid gweddill, ond mae meddwl da.
Rhifau negatif.
Felly, os oes gennych 4000000000 bethau posibl y gallwch
cynrychioli â'r gwahanol batrymau o 32 0au ac
1s, yn dda, mae'n sefyll i reswm y gallwn pobl eisiau
cynrychioli nid yn unig gyfanrifau positif
ond gyfanrifau negatif.
Ac yn wir, dyna'r rhagdybiaeth bod C yn ei wneud.
Felly, gyda 32 darnau, gallwch gynrychioli yn fras negyddol 2
biliwn yr holl ffordd i fyny i bositif 2 biliwn.
Ac felly yn yr achos hwn, yr hyn rydym ni'n wirioneddol gweld yn unig
ymylon y gallu ein cyfanrif, ac mae gennym, felly
i siarad, gorlifo yn gyfanrif.
Rydym wedi ceisio gwasgu darnau mwy i mewn iddo nag y gellir mewn gwirionedd yn addas.
Felly, y canlyniad terfynol yw ein hanfod yr holl ddarnau 1.
Rydym wedi troi ein holl ddarnau yn ddiweddarach, rydym wedi ceisio i gynrychioli
y nifer fwyaf posibl, ond nid yw'n glir bron
ddigon mawr i gynrychioli'r ddau beth rwyf wedi ei deipio i mewn yn unig
Yeah?
GYNULLEIDFA: [Anghlywadwy]
>> DAVID J. Malan: Cwestiwn da.
Pam na allwn ni jyst cynrychioli'r negyddol
llofnodi fel dim ond cymeriad?
Felly, rydym yn hollol gallai, a gallem wedyn arbed
yn ychydig yn ychwanegol.
Ond rydych chi'n dal yn mynd i gael i gynrychioli'r dash, a
mae hynny'n mynd i gostio i chi o leiaf rhywbeth,
yn ôl pob tebyg ychydig.
Felly ie, gallai gennym 32 ddarnau a ddefnyddir ar gyfer ein rhif, ond erbyn hyn
mae arnom angen ychydig arall a ddefnyddir ar gyfer ein llinell doriad
symbol, arwydd minws.
Felly, nawr rydym gennym 33 o werthoedd bit, y gallem ei wneud, ond mae'n
dim ond nid y ffordd y mae'n ei wneud.
Rydym yn llunio barn years galwad yn ôl, 32 darnau yn fath o
uned o fesur yma.
Felly, rydym yn mynd i ddefnyddio un o'r rhai darnau yn effeithiol i
cynrychioli negyddol, a 31 darnau i gynrychioli'r rhif.
Cwestiynau eraill?
Mae pob hawl.
Mae hynny'n llawer.
Pam nad ydym yn mynd yn ei flaen ac yn cymryd ein pum-munud egwyl yma?
>> Mae pob hawl.
Felly eto, er mwyn gorbwysleisio ceisiadau mathemategol
o raglennu, gadewch i ni dim ond tyn oddi ar un enghraifft hon yn
cyn i ni symud i mewn lluniadau eraill, dim ond oherwydd ei fod yn
Bydd dangos ambell bwynt tramgwydd cyffredin ar rai o'r
y pethau sylfaenol pan ddaw i raglenni ysgrifennu.
Yn yr achos hwn, yn gwneud rhifyddeg ymadroddion sydd â rhai
berthnasol diddorol i'r gystrawen.
>> Felly, mae hyn yn unig yw fformiwla gyda y gallwn drosi
tymheredd o Fahrenheit i Celsius.
Os nad ydych yn cofio, nid yw hyn ond y fformiwla.
Felly, os gallwn gau yn Fahrenheit gwerth o 32 gradd, sydd yn
rhewi, mae hynny'n mynd i fod yn 32 llai 32 yw 0, ac yn wir,
0 mewn Celsius hefyd yn rhewi.
Felly pwyll cyflym gwirio yno - dyna y fformiwla cyfarwydd.
Gadewch i mi fynd draw at y peiriant, fodd bynnag, a dechrau
ysgrifennu rhaglen o'r enw, fel, f2c; "Fahrenheit i
Celsius dot c ".
Ac ar y top yma, dw i'n mynd dechrau i ffwrdd gyda # yn cynnwys
stdio.h, ac yr wyf i'n mynd i wneud brif int (gwag), a
eto, byddwn yn dod yn ôl yn y dyfodol ynghylch pa int olygu
yno a beth ddi-rym yn golygu bod.
Ac yn awr gad i mi fynd yn ei flaen a gweithredu rhaglen sy'n
yn y bôn mae hyn yn trosi i ni.
>> Felly printf, gadewch i ni ddweud, tymheredd yn Fahrenheit.
Ac yna gadewch i mi fynd yn ei flaen a chael y gwerth gan y defnyddiwr.
Pa fath o werth a gaf gan y defnyddiwr os ydw i eisiau
iddynt roi i mi tymheredd yn Fahrenheit?
Yeah?
Beth fyddech chi'n ei gynnig?
Yeah.
Felly, arnofio yn teimlo eithaf rhesymol.
Mae gennym, unwaith eto, dim ond ychydig o ddewisiadau sy'n
rydym wedi gweld hyd yn hyn.
Mae gennym pethau fel torgoch, dwbl, arnofio, int, hir hir,
bool, llinyn.
Felly, o'r rhain, arnofio yn teimlo eithaf rhesymol.
Gallem ddefnyddio dwbl, iawn, oherwydd os ydym wir eisiau
cynrychioli tymheredd a dynol -
98.60000 -
gallem ddefnyddio 64 did i wneud hynny, ond mae'n teimlo fel
overkill ar gyfer y tymheredd.
Felly, gadewch i 'jyst yn mynd gyda fflôt.
Nawr mae angen newidyn.
Dim ond i gadw pethau'n syml, dw i'n mynd i alw ei f, ond yr wyf
Gallai un mor gywir ei alw tymheredd,
ond naill ai yn iawn.
Felly, arnofio f = GetFloat.
Cyn gynted ag yr wyf yn awr wedi penderfynu defnyddio GetFloat, fodd bynnag, yr wyf
angen i wneud un cywiriad.
Yeah.
Felly mae angen i # cynnwys , fel arall, y casglwr yn
mynd i gweiddi arnon ni.
Nawr bod gen i arnofio, gadewch i mi fynd yn ei flaen a gwneud y
trosi.
>> Felly, yn gyntaf, gadewch i mi fynd i mewn i'r arferiad yma o
sylwadau fy cod.
Felly eto, sylw yn unig yw nodiant i'r dynol sy'n
nad ydynt yn rhan o'r rhaglen fel y cyfryw, ond ei fod yn un, yn eich helpu i
deall beth wnaethoch chi y bore nesaf, neu y nesaf
mis, mae'n helpu eich cyd-addysgu yn deall yr hyn a wnaethoch chi
neu beth yr ydych yn bwriadu ei wneud, felly mae'n
ymarfer yn gyffredinol yn dda iawn.
Mae pob ychydig linellau o god, ysgrifennu sylw at y
eich hun neu eich cydweithiwr.
Felly yma, dw i'n mynd i ddweud, "Gofyn defnyddiwr ar gyfer tymheredd."
Nid yw'n rhaid i chi fod brawddeg gyflawn, dim ond ymadrodd byr.
Ond mae'r syniad y tu ôl i sylwadau yn C yw bod pob un o'ch
Dylai sylwadau grym i chi - neu, dyweder, TF neu gydweithiwr -
i sgimio eich rhaglen a gwybod yn union beth mae'n ei wneud, drwy beidio â
cymaint darllen y cod, ond trwy ddarllen y sylwadau, a
Dylai fod yn gryno ac yn glir.
Mae pob hawl, felly, yn awr gad i mi fynd yn ei flaen a dweud, "Trosi
Fahrenheit i Celsius. "Felly rwy'n mynd i fynd yn ei flaen ac yn ei wneud,
gadewch i ni ddweud, arnofio c.
Byddwn yn cadw Celsius fel Gwerth pwynt arnawf.
>> A gadewch i mi gymryd drywanu ar hyn.
Y fformiwla yw, unwaith eto, i fyny yma.
Fel 5/9 gwaith F minws 32.
Felly, gadewch i ni wneud hyn.
Hynny 5 wedi'i rannu gan 9, minws -
Wps, yr wyf cyboledig i fyny yn barod.
Times.
Felly, 5/9 gwaith F minws 32.
Felly F minws 32, hanner colon.
Ac yn awr, i lawr yma, yr wyf i'n mynd i fynd yn ei flaen
a dweud, argraffu canlyniad.
Ac mae hyn yn rhan hawdd. Printf.
Sut ydw i'n mynd ati i argraffu hyn?
Wel, gallwn ddweud "Dyna rhif yn Celsius yw% f \ n",
yn unig ar gyfer rhai estheteg.
Ac yna beth werth ydw i'n awyddus i gau'r yma fel y printf
ail ddadl?
Iawn.
Felly, dim ond c.
Felly, byddwn yn dechrau gyda hyn ac yna dim ond dychwelyd 0.
Unwaith eto, mae wedi ddim i'w wneud â'r math.
Mae'n jyst yn golygu popeth yn iawn.
>> Yn awr, mae hyn yn gywir, y rhaglen hon?
Mae pob hawl.
Felly, yr wyf wedi gwneud rhai camgymeriadau.
Hyd yn oed os nad oes gennych syniad beth yw rhaglennu, gallwch ddatrys
o casglu yn ôl i'r ysgol radd hyn y mae'r
Gallai camgymeriadau yma fod.
Beth yw un o'r cyntaf?
GYNULLEIDFA: [Anghlywadwy]
DAVID J. Malan: Yeah.
Felly, rydym yn colli cromfachau.
Roedd yn fwriadol a wneuthum cromfachau yn y prif
llithro yma, oherwydd mae mewn gwirionedd syniad hwn o drefn
o weithrediadau, neu blaenoriaeth, lle gweithrediadau penodol -
lluosi -
fod yn uwch rhwymo, yn cael blaenoriaeth uwch, na phethau
fel adio neu dynnu.
Felly, rydym wedi gwneud hyn ers blynyddoedd dim ond er mwyn gwneud yn glir yn union
pa weithrediad mathemategol sydd yn cael ei wneud yn gyntaf.
Felly mae'n debyg y dylwn dynwared yn union hynny.
Fel arall, mae'r cyfrifiadur yn ôl pob tebyg yn mynd i geisio gwneud
rhywbeth fel rhaniad 5 erbyn 9, yna lluosi F, yna tynnu
32 o holl beth.
Nad yw, mewn gwirionedd, yr hyn rydym am ei wneud.
Felly, gadewch i ni parenthesize.
Gadewch i ni ychwanegu fy cromfachau yma, cromfachau yma.
Gadewch i ni roi hyn dros yma.
Yma, Fi jyst sylwi ar gamgymeriad arall yr wyf ar hyd y ffordd.
Yeah?
GYNULLEIDFA: [Anghlywadwy]
>> DAVID J. Malan: Ah.
Da.
Felly, rydym mewn gwirionedd yn cael yr un cyfanrif
mater adran o'r blaen.
I gywiro hynny, gadewch i ni weld beth yw'r symptomau yn.
Ond rydym ni'n mynd i gael i gywiro un
camgymeriad arall yma.
Yeah?
GYNULLEIDFA: [Anghlywadwy]
DAVID J. Malan: Ydw.
Felly, camgymeriad dwp a wneuthum, ond yn hynod o bwysig.
Nid yw'r cyfrifiadur yn mynd i jyst troi llygad dall a gadael
i mi ddefnyddio F cyfalaf, pan oeddwn mewn gwirionedd yn datgan y newidyn
fel f llythrennau bach yma, yn llinell 8.
Felly, mae angen i mi gywiro yn llinell 11 fy cyfalafu, y mae
hyn o bryd yn ôl roedd yn F cyfalaf mewn camgymeriad.
Beth am fan hyn?
Pe bai hyn yn llythrennau bach yn ogystal?
Dylai fod yn, ond mae hynny'n cyd-ddigwyddiad.
Bod f% wedi ddim i'w wneud â'r amrywiol.
Felly, dim ond i fod super glir yma, gadewch i mi fynd yn ei flaen a
ail-enwi hyn, yn fyr, "tymheredd." Gadewch i mi ail-enwi
y "tymheredd." Gadewch i mi Methu ail-enwi hyn.
Oherwydd, unwaith eto, f% yn fyd-eang yn golygu, "fel y bo'r angen gwerth pwynt."
Wedi ddim i'w wneud gyda fy amrywiol.
Ond "tymheredd" i gyd dros y lle yn unig yw ychydig yn amleiriog,
felly dwi'n mynd i fynd yn ôl at fy llythrennau bach "f" s.
>> Yn awr, gadewch i mi fynd yn ei flaen i lawr at fy ffenestr yma.
Gwnewch f2c -
a oedd, unwaith eto, yr enw mympwyol I
roddodd i'r ffeil hon.
Ymddangos i wedi ei lunio.
Gadewch i mi redeg f2c.
Enter.
Tymheredd yn Fahrenheit - gadewch i ni wneud yn un hawdd.
32.
OK, cywiro.
Ond, os wyf yn ei wneud yn awr 212 i gael berwi -
damn.
Mae pob hawl.
Felly, nid, yn amlwg yn gywir, os yw eich TF ceisio
o leiaf dau werth.
Felly beth yw'r broblem yma?
Wel, ydych chi eisoes yn rhoi eich bys ar yr hyn y mater.
Ond pam bod yr achos?
Up yma, pan oeddwn i'n gwneud y math o 5 wedi'i rannu gan 9.
Felly gysyniadol, mae hynny'n berffaith gywir.
Gwbl gyson â'r fformiwla.
Ond gyfrifiaduron ond yn gwneud yn union yr hyn yr ydych
dweud wrthyn nhw am wneud.
A beth ydym ni'n effeithiol dweud wrth y cyfrifiadur yma
rhannwch y 5 gyfanrif gan y 9 gyfanrif
ac yn rhoi 'm' r canlyniad.
Y broblem yw, fodd bynnag, pan fyddwch yn is-adran gan ddefnyddio data
mathau, mae'r allbwn yw'r math ddata un fath â'r mewnbynnau.
Ac felly os yw'r ddau fewnbwn yn y ddau ints, mae'r allbwn yn mynd
i fod yn int.
Ac hynny 5 wedi'i rannu gan 9 yn rhywbeth pwynt.
Ond beth yw'r cyfanrif agosaf i bwynt rhywbeth?
Felly, mae'n mewn gwirionedd 0.
Felly, wrth i ni drafod ddydd Llun, popeth ar ôl y degol
pwynt yn cael ei fyrhau.
'I jyst yn cael eu taflu i ffwrdd.
Felly, mae hyn yn gamgymeriad gyflawn, oherwydd efallai y byddaf yn ogystal dim ond
lluosi popeth erbyn 0 yma.
>> Yn awr, gallaf atgyweiria hon mewn dwy ffordd.
Gallwn wneud hyn.
5.0 rhannu gan 9.0.
Yn dechnegol, nid wyf yn hyd yn oed angen i wneud hynny.
Mae'n gwneud yn ddigon i ddim ond gwneud un o'r rhifau fflôt -
neu ddwbl - drwy roi'r pwynt degol yma.
Oherwydd yr hyn sy'n digwydd yn awr yw pan fyddwch yn rhannu'r yn gyfanrif gan
fflôt, neu ddwbl, y cyfrifiadur yn mynd i wireddu
oh, un o'r rhai yn fwy manwl gywir.
Gadewch i mi gyfeiliorni ar ochr o roi mwy o fanylder nag
oeddech yn bwriadu.
Felly, bydd yn newid y canlyniad -
bydd yn dychwelyd y canlyniad fel Gwerth pwynt arnawf yn ogystal.
Felly, a fyddai'n gweithio.
Byddai hyn yn gweithio.
Ac mae un dull arall y byddwn yn gweld yn y
mwy o fanylion yr wythnos nesaf.
Gallwch mewn gwirionedd, fel y rhaglennydd, ddweud wrth y cyfrifiadur
mewn gwirionedd drin un math data fel
er ei fod yn un arall.
>> Felly, gallai Fi 'n weithredol wneud hyn.
Mewn cromfachau, gallaf ddweud rhywbeth fel (arnofio), agored
paren, paren agos.
Ac mae hyn yn hyn a elwir "castio." Unwaith eto, yn fwy
hyn yr wythnos nesaf.
Ond dim ond y ffordd rhaglennol o ddweud
y cyfrifiadur, yeah Rwy'n gwybod 9 yn gyfanrif neu hir.
Rwy'n gwybod nad ei fod yn werth pwynt arnawf.
Ond ei drin yn briodol beth bynnag.
Felly, er mwyn bwrw math data yn golygu i drosi
o un i'r llall.
A dweud y gwir, mae hyn yn unig yw ychydig yn hyll, felly byddwn yn cynnig byddwn yn mynd
gefn i'r awgrym gwreiddiol o ddim ond trosi
y pethau hyn i arnofio werthoedd pwynt llaw.
Oherwydd awron 'i' jyst super glir beth sy'n mynd ymlaen, ac
nid yw'n bob un sy'n tynnu sylw.
>> Felly, gadewch i ni bellach yn mynd yn ôl i mewn i fy ffenest terfynell.
Gwnewch f2c.
Gadewch i mi fynd yn ei flaen ac yn rhedeg y.
Ac, wrth fynd heibio, byddwch yn cael diflasu teipio gorchmynion hyn
dro ar ôl tro, yn sylweddoli bod cyfrifiaduron, fel Linux yma,
yn tueddu i fod yn eithaf smart.
Ac os wyf yn taro Up, gallwn fynd trwy fy hanes gyfan o
gorchmynion, Up and Down.
Felly, yn yr achos hwn yma, gallaf jyst yn mynd Hyd at redeg gwneud f2c.
Rwy'n cael yelled, oherwydd Fi jyst yn gwneud hynny eiliad yn ôl.
Mae eisoes yn gyfoes.
Felly nawr gallaf redeg f2c eto.
Gadewch i ni geisio 32 Fahrenheit.
Nawr gadewch i ni geisio 212 Fahrenheit.
>> PHEW.
Ymddangos i weithio.
Yn awr, mae hyn yn dda, ond mae'n teimlo ychydig yn mympwyol a fyddai'n
Rwy'n dangos chwe rhif ar ôl y pwynt degol.
Hawl?
Os mai chi yw'r person y tywydd ar y teledu, rydych yn fath o doofus
os ydych chi'n darllen y tymheredd i
y radd o gywirdeb.
Felly, gadewch i ni symleiddio hyn.
Felly, gadewch i ni mewn gwirionedd yn mynd i fyny yma, i fy printf.
Ac ie, yr wyf am i arnofio.
Ond yr wyf am i hyn nodi y manylder.
Ac yr wyf i'n mynd i fod yn gryno bach.
Rydw i'n mynd i ddweud, yn rhoi i mi un pwynt ar ôl y lle degol.
Felly, yn hytrach na dweud f%, dw i'n mynd i ddweud% .1 f.
Ac mae hyn yn unig yn golygu rhoi i mi un swydd
ar ôl y pwynt degol.
Mae pob hawl.
Gadewch i ni geisio hyn eto.
Gadewch i mi ail-redeg ar ôl llunio.
Ac yn awr yr wyf yn teipio mewn 32, ac yr wyf yn mynd yn ôl i
werth yn fwy cryno.
A allaf deipio i mewn, yn awr, 212, a mynd yn ôl fwy cryno
gwerth yn ogystal.
Ac mae pethau eraill y gallwch chi ei wneud gyda printf.
Gallwch mewn gwirionedd yn nodi pa mor eang y dylai'r nifer fod.
Os ydych chi am gael padin arno, fel y gallwch dde-alinio neu
chwith-alinio eich holl rhifau neu
ceisio bethau ganolfan.
Felly, yn sylweddoli bod driciau bach y gallwch eu gwneud yno.
Ond maent dim ond berwi i lawr i godau fformat,
fel y mae gennym yno.
>> Felly, o ran y mater o flaenoriaeth.
Mae hwn yn tabl diflas iawn i fynd drwy'r drefnus.
Ond yn sylweddoli bod awduron C wedi dod o hyd i'r
rheolau sy'n pennu pa weithredwyr uwch
blaenoriaeth, mwy o bŵer rhwymo, nag eraill.
Felly, tra yn yr ysgol radd, rydym yn gyffredinol yn gwybod ei bod yn
lluosi a rhannu, yna adio a thynnu,
yna rhai pethau eraill.
Mewn byd o raglenni, mae llawer
rhestr hwy o bethau.
Ac nid yw hyn yn rhywbeth gwerth cofio nawr.
Byddwch yn cael acclimated iddo cyn hir.
Ond yn union fel yn yr ysgol radd, cromfachau yn gyffredinol datrys
y materion blaenoriaeth, drwy wneud super glir i'r
cyfrifiadur a dynol fel ei gilydd yr hyn a fwriedir.
Felly, yn ystyried hyn yn unig taflen twyllo ychydig yno.
Ond mae'r rhan fwyaf o'r manylion hynny ni fyddwn yn cael i ers peth amser.
>> Mae pob hawl.
Nawr, gadewch i ni adeiladu i fyny ac i symud i ffwrdd o'r ychydig gwirion
enghreifftiau mathemategol.
Yn dal i ddefnyddio yr hanfodion yr un, ond yn dechrau
mynegi ein hunain ychydig yn fwy fel Scratch.
Felly, yn Scratch, cawsom y mynegiadau Boole.
Ac yn Saesneg, mynegiad Boole yw beth?
Gwir neu ffug.
Mae'n rhywbeth sy'n gwerthuso yn wir neu'n anwir.
1 neu 0.
Ar neu i ffwrdd.
Beth bynnag yr ydych am ei alw.
Nawr yn Scratch, y darnau pos yn edrych fel hyn.
A dyna y cyfuniad, ar y gwaelod yno, o dri
darnau pos.
Un ar y cyd -
rhywbeth sydd yn wag ac yn wag.
Ac yna ddau mynegiadau Boole tu mewn iddo.
Felly, gallwch mynegiadau Boole nythu i gael rhagor o
cymhleth mynegiadau Boole.
Er enghraifft, os yw dydd Sadwrn, ac mae'n braf
tywydd, ac yna mynd allan.
Neu rywbeth fel 'na mympwyol.
Felly, gallwch ymuno â mynegiadau Boole i ddod o hyd i
gwerth gwir mwy o faint, y mae ei ateb yn seiliedig
ar y rhai llai.
>> Yn awr, yn C, diolch byth, y mapiau hyn yn
mewn gwirionedd yn eithaf syml.
Cromfachau helpu i wneud pethau yn glir yma.
&& Hyn yn golygu "a." Felly dyna sut y
rydym yn mynd i newid y blociau o Scratch i C.
Ac ar gyfer yr amodau a welsom yn Scratch, ar y llaw chwith
ochr yno, gallaf pentyrru nhw yr un modd yn C. Os yw x yn llai
nag y, yna gwnewch hyn.
Arall os x yn fwy na y, yna gwnewch hyn.
Arall yn rhesymegol rhaid iddynt fod yn gyfartal, felly dweud
eu bod yn gyfartal.
Felly, gallwn yn awr ddechrau adeiladu y pethau hyn i fyny.
>> Felly, gadewch i ni wneud yn enghraifft.
Gadewch i mi agor i fyny ffeil sydd ar wefan y cwrs y
Ysgrifennais o flaen llaw.
Sy'n cael ei alw'n nonswitch.c.
A byddwn yn gweld pam fod mewn dim ond hyn o bryd.
Felly, yn y ffeil - nonswitch.c--
1 yn sylweddoli bod yna criw cyfan o
sylwadau ar y brig.
Dyna dim ond egluro enw'r ffeil, beth mae'n ei
ei wneud, ac yn y blaen.
Ac mae'n debyg yn dangos y defnydd o Boole A-ing -
conjoining ddau fynegiad.
>> Felly, gadewch i ni weld sut y mae'r rhaglen hon yn gweithio.
Wyf yn cynnwys fy dwy ffeil, cs50.h a stdio.h.
Os byddaf yn sgroliwch i lawr, yn awr, at y rhaglen, mae'n ychydig yn hwy
nag yr ydym wedi ysgrifennu o'r blaen, ond 'n bert ddarllenadwy.
Felly, Tro cyntaf i mi argraffu i'r defnyddiwr, ar-lein 18,
"Rhowch i mi cyfanrif rhwng 1 a 10." Felly
sy'n iawn yno.
Nawr rwy'n cael y cyfanrif.
Ond sylweddoli bod GetInt - 'n bert syml.
Mae'n dim ond yn mynd i gael int.
Mae'n mynd i beidio â sicrhau ei fod yn cael int a
llinyn neu fflôt.
Ond nid yw'n mynd i wneud unrhyw fath o wirio ffin.
Nid yw'n mynd i hidlo'r niferoedd i fod rhwng
ystod benodol.
Felly, mae'n rhaid i ni weithredu ein hunain.
Felly, yn union fel yn Scratch, lle y gallwn wneud ar y cyd o
dau fynegiad, gallaf wneud hynny yn C fel a ganlyn.
Os n yn fwy na neu'n hafal i 1, ac n yn llai na ac yn
neu'n hafal i 3, yr wyf yn mynd i iawn fympwyol gorchymyn a
plith i fod yn nifer fechan.
Dim ond er mwyn datganiad.
Arall os yw n rhwng 4 a 6, print "Rydych yn dewis gyfrwng
rhif. "Else os n yw rhwng 7 a 10, print" Rydych yn dewis a
nifer mawr. "Else argraffu" chi ddewis rhif annilys. "
Oherwydd rhesymegol, sy'n dilyn os ydym wedi
wedi blino'n lân ein hystod.
>> Felly, yn sylweddoli nad yw hyn yn hollol sut y byddwn yn ysgrifennu yn fwy na neu'n
cyfartal i mewn dosbarth mathemateg.
Hawl?
Byddwch fel arfer yn tynnu fel hyn, gyda'r llinell yn ei sgil.
Ond nid oes allwedd o'r fath ar fy bysellfwrdd.
Felly mae'r symbol yn C ar gyfer mynegi fwy na neu'n
cyfartal i yw dau gymeriad, a'r symbol am lai na
neu'n hafal i yw dau gymeriad yn ogystal.
Mae pob hawl.
Felly, os wyf yn rhedeg y rhaglen, mae'n debyg y gallwch ddyfalu beth yw
mynd i'w wneud.
Os byddaf yn mynd yn ei flaen ac yn gwneud nonswitch, Enter.
Ac yna yn rhedeg nonswitch.
Rhowch i mi rif rhwng 1 a 10.
Rydw i'n mynd i roi 11.
Yr wyf yn codi nifer annilys.
Gadewch i mi roi cynnig ar y rhif 3.
Yr wyf yn codi nifer bach.
Felly, yn weddol syml yno.
>> Beth os wyf am newid ymddygiad y rhaglen hon ac
wneud rhywbeth ychydig yn wahanol yn lle hynny?
Gadewch i mi fynd yn ei flaen a dweud hyn.
Gadewch i mi gael gwared ar yr holl hyn.
A gadewch i mi ddweud os (n == 42).
Ac yna dwi'n mynd i fynd yn ei flaen a dweud print "Rydych dewis y
ateb cywir. "Else rydym yn mynd i fynd yn ei flaen a dweud,
printf ("Rydych dewis y
ateb anghywir ");. Iawn.
Dim ond oherwydd.
>> Nawr, ychydig o bwyntiau gallwn wneud yma.
Un, doeddwn i ddim yn teipiwch y symbol y byddech yn meddwl yn y
mwyaf rhesymol.
Pan fyddaf am wirio cydraddoldeb, troi allan nad ydych yn defnyddio'r
arwydd cyfartal.
Chi yn hytrach na defnyddio'r arwydd cyfartal cyfartal.
Ac efallai pam fod, dim ond reddfol?
Yeah.
GYNULLEIDFA: [Anghlywadwy]
DAVID J. Malan: Cywir.
Mae'r arwydd cyfartal yn cael ei ddefnyddio eisoes ar gyfer aseiniad.
Nid yw rhywun oedd yn wir yn feddwl hyn trwyddo.
Ac felly yn awr, pan ddaw i brofi cydraddoldeb, mae'n rhaid i ni
fod yn fwy eglur, a dweud hafal gyfartal.
Camgymeriad cyffredin iawn yw i wneud hyn.
Ac, os yn ystod oriau swyddfa neu rywbryd yr wythnos nesaf neu yn y
y pythefnos nesaf byddwch yn gwneud rhywbeth fel hyn ac yna
cael trafferth â nhw am 10, 20 munud yn ceisio at chyfrif i maes
yr hyn y byg damn yw, yn sylweddoli eich bod yn un o'r rhai
bobl a wnaeth y camgymeriad.
Felly, super hawdd i'w wneud.
Ond y nod yn awr yw i ward oddi ar y camgymeriad.
Gallai hyn gwerthuso, gan fod yr hyn mae hyn yn ei ddweud mewn gwirionedd?
Os n cael 42.
Felly y bobl a ferf defnyddio, ar lafar, i fynegi
syniad o aseiniad yw "ei gael." Felly, os n cael 42.
Felly mae hynny'n golygu neilltuo 42 i n.
Nawr mae gennyf mynegiad Boole mewn cromfachau,
y tu mewn y cyflwr hwn, y gwerth sydd yn 42.
Hawl?
Oherwydd os ydych yn ei werthuso gan y, y tu mewn i'r cyfanswm
ateb, yn awr, yw 42.
>> Felly, os wyf yn gofyn y cwestiwn, "os (42)," yr hyn sy'n
bod ei ddweud mewn gwirionedd?
Wel, gall mynegiadau Boole yn unig fod yn wir neu ffug.
1 neu 0.
Ar neu i ffwrdd.
Felly, rydym yn ymddangos i gael achos cornel yma, lle mae'r holl o
sydyn, i ddim yn dweud "os (42)". Nid yw hynny'n werth Boole.
Felly, yr hyn y cyfrifiaduron yn ei wneud, fodd bynnag, yw ei hanfod yn cyfateb
unrhyw beth nad yw hynny'n cael ei ddehongli 0 i fod yn wir.
1.
Ar.
Maen nhw i gyd cyfatebol swyddogaethol.
Dim ond y gwerth 0, neu yr allweddair ffug, fel y gallwn eich
yn y pen draw yn gweld, mewn gwirionedd ffug.
Felly, "os (42)" fyddai mewn gwirionedd yn wir, oherwydd ei fod yn di-sero.
Felly, i fod yn fwy manwl gywir yma, mae gwerth Boole nid yn wirioneddol felly
llawer yn wir neu'n anwir, ond ar gyfer yr
achos, os yw 0 neu heb fod yn sero.
Felly, ffug neu nad ffug.
Ac mae hynny'n ein galluogi i gynnwys yn fwy
posibiliadau yn y mynegiant cromfachau.
Felly mae angen i, byth mor ofalus, yn dweud hyn -
os (n == 42).
Yn syml, oherwydd mae angen i ni nodi prawf o gydraddoldeb,
Nid yw aseiniad o werth.
>> Beth arall sydd werth eu nodi yma?
Mae'r rhain yn braces cyrliog nad ydynt mewn gwirionedd yn angenrheidiol.
Rydw i wedi bod yn ei wneud ohonynt yn unig i fod yn nit-picky yma.
Ond pan fydd gennych gyflwr mai dim ond un llinell o
cod, fel hwylustod, nid rhaglenwyr oes angen i ddefnyddio
y braces cyrliog.
Mae'n ddigonol i ddim ond indent, am resymau esthetig, a
yna ysgrifennwch eich llinell o god.
Dim ond pan fyddwch am i ysgrifennu dwy linell o god - ar gyfer
enghraifft, arall printf ("Hwyl!"). Os ydych chi am ei wneud
hynny, mae hyn yn cael ei dorri.
Gallwch indent yr holl ydych am, ond y ffaith eich bod wedi
teipio dwy linell o god heb ddefnyddio braces cyrliog
yn golygu na fyddai hyn yn rhaglen yn rhedeg yn gywir neu a allai
Nid yw hyd yn oed yn llunio yn gywir.
Felly, ar hyn o bryd, i fod yn onest, yr wyf yn meddwl yr arfer gorau yn unig
defnyddio'r braces cyrliog, a byddwch yn dod o hyd eu bod yn gwneud
super glir beth sy'n mynd ymlaen.
>> Hefyd, wrth fynd heibio - yn enwedig os ydych chi ymhlith y rhai sy'n defnyddio
y llyfrau a argymhellir neu adnoddau ar-lein -
sylweddoli fod yna syniad hwn o arddull yn
rhaglennu.
Ac mae rhai pobl yn well i roi'r Brace cyrliog
dros yma ar linell.
Well gan rai pobl i wneud pethau gwirion,
hoffi eu rhoi yma.
Does dim ateb anghywir pan ddaw i
arddull, ond mae hyn yn anghywir.
Ond mae rhai pobl yn ei wneud.
[Chwerthin]
DAVID J. Malan: Felly, yr wyf yn sôn am hyn yn awr, yn syml oherwydd fel
eich bod yn darllen i fyny ar bethau mewn llyfrau neu ar-lein, rydych yn mynd i gael
negeseuon gwahanol gan wahanol athrawon a
gwahanol awduron.
A dim ond yn sylweddoli hynny, swyddogaethol, maen nhw'n
cyffredinol cyfwerth, ond byddwch yn gyson.
Felly, yn yr achos hwn, byddwn yn safoni ar y cyrliog
braces leinin i fyny yma ar y chwith.
>> Mae pob hawl.
Felly, gadewch i ni fynd yn ei flaen yn awr ac yn rhedeg hyn, a gweld beth sy'n digwydd
gyda'r rhaglen hon.
Gwnewch nonswitch.
Yna rhedeg nonswitch.
Rhowch i mi cyfanrif rhwng 0 a - felly nid yw hynny'n berthnasol
anymore, ond Im 'jyst yn mynd i ddweud fympwyol 42.
Ac yr wyf yn dewis yr ateb cywir.
Wel yn awr, gadewch i ni mewn gwirionedd yn cymryd hyn i gyfeiriad gwahanol.
Mae'n troi allan mae rhywfaint o gystrawen eraill yr ydym yn
Gall eu defnyddio mewn rhaglen.
Dyma ddarn newydd o gystrawen sy'n swyddogaethol yr un fath,
ond dim ond yn cyflwyno ffordd arall o fynegi ein hunain.
Felly, mae hyn yn beth a elwir yn "ddatganiad switsh." A
datganiad switsh yn gweithredu fel a ganlyn.
Mae'n cymryd, mewn cromfachau, mae gwerth yr ydych am ei
"Newid" ar.
Rydych am i ymddwyn yn wahanol yn seiliedig ar ei werth.
Felly, mae hyn yn golygu newid ar werth n.
A beth mae hynny'n ei olygu?
Wel, os n yn 1 neu 2 neu 3, mynd yn ei flaen ac argraffu "Rydych
dewis nifer fawr "ac yna torri.
Y rheswm dros y toriad yw bod y ffordd C yn gweithio mor
gynted ag y bydd yn canfod achos sy'n cyd-fynd, yn dechrau gweithredu
pob un o'r cod isod hynny.
Felly os oes gen i un llinell o god, fel yr wyf fi yma ar llinell 27, mae'n
yn cael ei ddienyddio.
Os byddaf yn ychwanegu llinell arall yma, mae'n cael ei weithredu.
Arall llinell yma, mae'n cael ei weithredu.
Mae'r rhaglen yn unig yn stopio gweithredu beth sydd o dan y
datganiad achos perthnasol pan fyddaf yn benodol
dweud "dorri." Felly anghywir.
Iawn, yn yr achos hwn, o ganlyniad.
Achos 4 neu 5 neu 6, yn yr un modd, yn mynd
i argraffu neges.
Yn yr achos hwn, rhif canolig.
Egwyl.
Achos 7, 8, 9, 10, mae'n mynd i argraffu "Rydych dewis mawr
rhif. "Break.
Ac yna mae llythrennol air allweddol o'r enw "diofyn"
sy'n effeithiol fel y "arall" adeiladu.
Felly cystrawen newydd, ond yn ddeallusol,
dim byd o gwbl yma newydd.
Mae'n union fel y Scratch.
Os, arall os, arall os, math o bloc.
>> Felly dyna y fersiwn newid y rhaglen hon.
Ond sylwi ein bod yn gwneud hynny gyda rhifau yma.
Gadewch i mi agor ail fersiwn, dim ond i ddangos
rywbeth ychydig yn fwy cadarn.
Felly dyma ni yn cael graddau yn lle hynny.
Troi allan gallwch ddefnyddio switshis nid yn unig ar cyfanrifau, ond ar
cymeriadau.
Nid ym mhob math data, ond o leiaf ar gymeriadau.
Felly yma, gallem wneud rhywbeth fel os yw gwerth y C y
y defnyddiwr deipio i mewn, yn unol 19, drwy ddefnyddio'r swyddogaeth GetChar,
yw prifddinas A neu lythrennau bach a, gadewch i ni ei ddehongli fel gradd,
ac yn dweud eu bod yn dewis cael gradd 'rhagorol.
Ac i lawr ar hyd y datganiad newid, y mae gennym eraill
achosion ar gyfer "B" s a "C" s, ac yn y blaen.
Ond gadewch i ni yn awr yn cloi allan un peth arall.
Ac eto, math o hedfan drwy
rhai o'r enghreifftiau hyn.
Ond mae'n wirioneddol fel y gallwn eu cymhwyso, yn awr -
neu mewn gwirionedd, dim ond eu cyfieithu nawr -
i C.
>> Felly, gadewch i mi fynd ymlaen a gwneud hyn.
Rydw i'n mynd i agor ffeil newydd.
Ac yr wyf i'n mynd i'w gwneud yn cynnwys .
Ac yna dwi'n mynd i wneud int brif (gwag).
Gadewch i mi arbed y ffeil fel loop.c.
Yn union fel enghraifft.
Ac yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud y canlynol.
Rwyf am i ysgrifennu rhaglen iawn 'n faith.
Felly 10.
Gadewch i ni wneud hyn.
9.
Mae pob hawl.
Cyn gynted ag y byddwch yn dechrau gwneud hyn mewn rhaglennu, rydych yn
yn ôl pob tebyg yn gwneud rhywbeth o'i le.
Ond byddwn yn dechrau yno beth bynnag.
Wps.
Sydd mewn gwirionedd yn anghywir.
7.
6.
5.
4.
Nid oes dim yn mynd i ddigwydd pan fyddwn yn mynd i 0.
3.
2.
1.
Iawn.
0.
Dileu.
>> Mae pob hawl.
Felly, yn dychwelyd 0.
Felly, mae'r rhaglen hon sy'n amlwg yn mynd i wneud yr hyn yn
tediously dweud ei fod yn mynd i'w wneud.
Mae'n mynd i argraffu pob un o'r rheiny
gwerthoedd, o'r top i'r gwaelod.
Felly, gadewch i mi yn gwneud ddolen.
Ac yna - Wps.
Gwnewch ddolen.
Roeddwn i yn y cyfeiriadur anghywir.
Ac yn awr gad i mi redeg ddolen.
Enter.
Woohoo.
Iawn 'n glws.
Nice, rhaglen hir.
>> Mae pob hawl, ond yn awr gadewch i ni wneud hyn yn well.
Yn union fel yn Scratch, pan fyddwch yn dechrau defnyddio dolennu
adeiladu, yn hytrach na dim ond copïo a gludo yr holl
darnau pos, gadewch i mi gyflwyno y peth hyn.
Felly, yn C, mae yn adeiladu dolennu amrywiol,
un sy'n edrych fel hyn.
A "i" ddolen Mae tri pheth, wedi'u gwahanu gan ddau hanner colon.
Ac yna, y tu mewn i'r corff y ddolen, fel petai - y
y tu mewn pethau o'r braces cyrliog -
gallwn wneud rhywbeth eto ac eto.
Felly, yr hyn sydd gennyf yma ar y sgrîn, mae hyn yn
llythrennol yn unig sylw.
Y / / golygu yma daw sylw.
Nid yw hyn yn cod.
Mae hyn yn unig disgrifiad Saesneg, i mi, y dynol.
>> Initializations Felly, amodau, a diweddariadau.
Wel, gadewch i ni weld sut mae hyn yn gweithio.
Mae hyn yn caniatáu i mi i ailysgrifennu y rhaglen hon fel a ganlyn.
I -
felly dyma daw fy dolen -
int i -
yma hon newidyn o'r enw "i" -
yn cael ymgychwyn i 10.
Felly mae fy initialization.
Rwyf am wneud hyn dolen cyhyd â "i" yn fwy na neu'n
gyfartal i 0.
Ac ar bob fersiwn o'r ddolen, yr wyf eisiau
i wneud i -.
Felly, gwelsom + + ar ddydd Llun.
- Yn y gwrthwyneb.
Mae'n decrements gwerth erbyn 1.
Y tu mewn y ddolen, yr wyf am ei wneud mewn gwirionedd rhywbeth.
Felly dw i'n mynd i ddweud rhywbeth fel printf.
Nid wyf am i dyweder 10 awr, oherwydd mae'n amlwg bod hyn yn unig yw
mynd i argraffu'r un gwerth.
Beth ydw i eisiau argraffu yn lle hynny, yn ôl pob tebyg?
Yeah.
Felly, "i." D% Felly, i.
>> Felly, yr wyf i'n mynd i ddwyn un o'r syniadau hynny o gyfnod cynharach -
hyn fel dewis amgen ar gyfer codau fformat -
ac yna i lawr yma, yn y gwaelod, 'n annhymerus' yn dychwelyd 0, dim ond
ar gyfer mesur da.
Ond nawr, mae gen i raglen yn fwy cryno.
Dim ond ychydig o linellau, ac nid yw rhai 10 neu 11 o linellau.
Gadewch i mi fynd i fy brydlon i lawr yma.
Dolen ail-wneud.
Ailgynnal ddolen.
Ac mae'n ymddangos i fod yr un fath.
Nawr, mae'r rhaglen yn ddim mwy diddorol.
Ond yn awr y gallaf deipio rhywbeth fel hyn.
Gallaf newid hyn i 100.
Yna gallaf ail-grynhoi fy rhaglen.
Ac yna gall yr wyf yn ail-redeg fy rhaglen.
Ac yn awr mae'n mynd super-gyflym ar gyfrifiaduron heddiw.
Ond mae gen i -
ac mewn gwirionedd, nid yw fy byffer teflir yn
hyd yn oed yn mynd mor bell.
Dyna ni.
Felly, mae gennym yr holl 100.
Ond mae'n hawdd i wneud camgymeriadau yma.
Beth sy'n mynd i fod yr ymddygiad a ddisgwylir os byddaf yn
ddamweiniol gwneud hynny?
Felly, mae'n teimlo fel ddiddiwedd.
Felly, gadewch i ni weld os bydd y cyfrifiadur yn ymddwyn.
>> Felly, gadewch i mi fynd yn ei flaen ac yn gwneud ddolen.
A gadewch i mi redeg ddolen.
Felly, gadewch i ni ddod yn ôl at hynny mewn dim ond hyn o bryd.
Byddwn yn gadael i hynny rhedeg.
Oherwydd dylai hyn yr ydym yn cyfrif hyd at, cyn lleied â phosibl?
Yn ôl pob tebyg o leiaf 2 biliwn, os byddwn yn cael y darnau lawer, ac
ein bod yn defnyddio gwerthoedd cadarnhaol.
Felly, gadewch i ni neidio yn ôl yma.
Heblaw am y math o dolenni, mae gennym yr hyn a elwir tra
dolenni. Felly, yn union fel yn Scratch, oedd gennych Forever
blociau, a oedd gennych blociau Ailadrodd.
Yn yr un modd, yn C, os oes gen ti ffyrdd eraill
o fynegi eich hunan.
Felly, mae gennych syniad hwn o dolen tra bod eich galluogi i
mynegi eich hun ychydig yn wahanol.
Ac yna mae gennych rywbeth a elwir yn ddolen do-tra,
sy'n gweithredu ychydig yn wahanol yn ogystal.
A byddwn yn canfod y rhain ar wahân dros gyfnod o amser.
>> Ond gadewch i ni edrych ar y yr un olaf ei yma.
Os ydym yn mynd i mewn i -
dal i redeg.
Mae'n eithaf ddiddiwedd.
Felly, gadewch i mi fynd i mewn i cadarnhaol, ac yn dangos sut y gallwn mewn gwirionedd
rheoli mewnbwn defnyddwyr ychydig yn fwy effeithiol.
Mae'n rhaglen eithaf byr.
Ac yma mae gennym, yn bennaf, yn int n datganiad.
Felly, yn rhoi i mi newidyn a elwir yn n. Yn awr, yr wyf yn llythrennol yn dweud
"Wneud." Ac yna mae gen i agor cyrliog
Brace, brês agos cyrliog.
Ac yna sylwi, ar y dde ar ôl hynny, mae'n dweud tra n
yn llai nag 1.
Felly, yn sylwi bod y llinellau hyn -
19-24 -
cyfansoddi ar y cyd dolen do-gyfnod.
Ac eto, cystrawen yn newydd, yn syniad newydd.
Dim ond ffordd arall o dolennu, syntactically.
Felly beth mae hyn yn ei wneud?
Gwneud y canlynol tra n yn llai nag 1.
Felly, beth ydw i eisiau ei wneud?
I fynnu eich bod yn rhoi i mi gyfanrif positif.
Yna mi mewn gwirionedd yn ceisio cael cyfanrif gan y defnyddiwr.
Ond o ran y drefn gweithrediadau yma, oherwydd y
tra bod cyflwr sydd i lawr yma, rwy'n wedyn yn mynd i wirio, yw n
llai nag 1?
Felly, mae'n debyg bod y defnyddiwr -
ar ôl cael ei galw yn y ffordd hon -
math yn y 0 gwerth.
Mae'r amod hwn yn mynd i fod yn wir neu'n anwir?
Wel, mae'n wir yn mynd i fod yn wir.
Gan fod n yn 0, a 0 yn llai nag 1.
Felly beth mae hynny'n ei awgrymu?
Yn ei wneud eto.
Dim ond unwaith y cyflwr yn enrhifo i FFUG.
Os byddaf yn teipio 42.
Wel na, nid 42 yn llai nag 1.
Felly mae'r ddolen yn cael ei wneud gweithredu.
Ac felly ar y pwynt hwnnw, bydd y rhaglen yn ei ddweud, diolch am
42, yn yr achos hwn.
Nawr eich bod yn cael y ffordd o fynegi eich hun -
Ni ddylem ddisgwyl i hyn orffen.
Mae'n mynd i gymryd peth amser.
I'w barhau tro nesaf, efallai.
>> Ond yn awr, mae gennych y gallu i, gobeithio, i ddeall
ychydig o hiwmor geek.
Ymddiheuriadau.
Nid yw hyn yn gynrychioliadol o hiwmor yn y wyddoniaeth gyfrifiadurol
byd, ond mae'n 'n giwt.
[Chwerthin] Dewch i ben ar y nodyn hwnnw.
A byddwn yn eich gweld ar ddydd Llun.
[Cymeradwyaeth]