[Powered by Google Translate] DAVID Malan: Mae hyn yn CS50, ac mae hyn yn dechrau Wythnos 1.
Beth rydym yn meddwl y bydden ni'n ei wneud heddiw yw cymryd golwg yn ôl ar
rhywbeth y mae llawer ohonoch wedi thebyg yn cerdded heibio i rai
amser efallai nawr ac yn edrych ychydig yn gyfarwydd.
Mae hyn yn beth yma, mae hyn wrth gwrs yn y -
GYNULLEIDFA: Gwyddoniaeth.
DAVID Malan: Gwyddoniaeth ganolfan.
Felly, mae hyn mewn gwirionedd yn un o'r cyfrifiaduron cyntaf
gefn o'r 1940au.
Roedd yn un o'r cyfrifiaduron cyntaf electromechanical
a oedd yn gallu arbennig o hir,
hunan-barhaus cyfrifiannau, a beth y byddwn yn gweld yn y
y ganolfan wyddoniaeth yn unig yw darn bach y peth hyn.
Beth rydym yn meddwl y bydden ni'n ei wneud wedyn yw cymryd golwg yn ôl ar fideo
a wnaethpwyd beth amser yn ôl, cyflwyno'r
beth i'r byd.
A byddwch yn gweld o'r gerddoriaeth a llais sy'n wir y rhai
Roedd adegau hapus iawn.
>> [Chwarae fideo]
-A fuddugoliaeth o sgiliau mathemategol a mecanyddol yn hyn
cyfrifiannell awtomatig newydd gwych ym Mhrifysgol Harvard.
Problemau cymhleth mewn mathemateg, rhowch drwy'r
peiriant ar ffurf cod ar dâp, yn cael eu datrys yn gywir mewn
ffracsiwn munud o'r amser sydd ei angen ar gyfer pobl
cyfrifiad.
Cynllun i hwyluso pob math o mathemategol a gwyddonol
ymchwil, bydd yr ymennydd mecanyddol mawr yn gweithio ar gyfer y Deyrnas
Unol Llynges tan ddiwedd y rhyfel.
>> DAVID Malan: Felly beth efallai nad ydych yn gwybod yw ei fod yn
hwn yn un ddyfais bod amod ydym i gyd yn awr yn cymryd 'n bert lawer
yn ganiataol ei fathu, sef a bug.
Felly un o'r peirianwyr sy'n gweithio yn y cyfrifiadur
dod o hyd llythrennol wyfyn bach yn y peiriant a arweiniodd at
mewn rhai cyfrifiadau anghywir.
Ac wrth i'r stori fynd y gwyfyn yn eu tapio at y log
cylchgrawn yma, yn ôl o fis Medi 9 yn 1940-rhywbeth,
ac felly ei eni ar gyfer y byd y term "nam".
Felly o hyn ymlaen byddwn yn ystyried bygiau i fod yn unrhyw fath o gamgymeriadau yn y
rhaglenni, boed yn ddyn-wneud neu, yn yr achos hwn, pryfed.
>> Felly, cyhoeddiadau ychydig, wrth inni fwrw ymlaen.
Felly CS50 draddodiad o gynnig cinio o ryw fath ar
Dydd Gwener fwyaf yn ystod y semester, pan fyddwn yn cymryd 30 i
40 o fyfyrwyr i Tân ac Iâ yn y Sgwâr ar gyfer achlysurol
cecru, yn sôn am wyddoniaeth gyfrifiadurol,
siarad am y dyfodol.
Rydym yn gwahodd alumni a ffrindiau o ddiwydiant i sgwrsio i fyny
myfyrwyr yn ogystal.
Really tuag at ben o wneud beth dosbarth eithaf mawr
yn fwy agos, o leiaf unwaith yn tra
is-setiau o fyfyrwyr.
Felly os hoffech chi ymuno â ni ddydd Gwener, 1:15 PM, ewch i
CS50.net/lunch i RSVP.
A byddwn yn gwneud hyn yn gylchol, felly â phoeni os nad ydych chi'n
ymhlith y 30 cyntaf neu felly yr wythnos hon.
>> Felly nodiadau ysgrifennydd.
Mae gair ar yr adnoddau a fydd yn awr yn dechrau ar gael
i fyfyrwyr yn y dosbarth.
Fel bod eich pennau Nid oes yn rhaid i lawr yn ystod darlithoedd
sgriblo i lawr popeth yr wyf yn dweud ac yn y blaen, yr hyn rydym yn ei wneud
hytrach yn cael ei darparu gan y staff addysgu a
set o nodiadau canonaidd.
Felly mae gennym un o'n cymrodyr addysgu, Andrew Sellergren,
sy'n eistedd i lawr bob wythnos, yn adolygu y fideos, ac yna
ysgrifennu i lawr yr hyn yr ydym yn meddwl yn weddol
set awdurdodol o nodiadau.
Ac Andrew hoff, hefyd, o roi troednodiadau snarky yn
y gwaelod.
Felly, byddwch yn mwynhau gobeithio y rhain fel llyfr cyfeirio ar gyfer
hwyl, a hefyd, yn dod cwis amser, fel cyfle i adolygu
yr hyn a ddigwyddodd mewn darlithoedd unigol.
Felly, y rhai yn cael eu cysylltu ar y dudalen darlithoedd.
>> 0 set Problem, yn y cyfamser, allan.
Ac o ran yr adnoddau sydd ar gael i chi -
y walkthrough.
Milo Arweiniodd y cyntaf ar ddydd Gwener.
Cafodd ei ffilmio, rhoi ar-lein erbyn dydd Sadwrn.
Ac felly yn sylweddoli, os nad ydych yn siŵr ble i ddechrau,
ar gyfer hyn neu yn y dyfodol p-setiau, bob amser yn troi yn gyntaf i'r
walkthrough neu'r ohono fideo.
Rhannu'r mynd rhagddo, yn cs50.net/section yw lle rydych yn
Dylai gyflwyno eich dewisiadau, os nad oes gennych
yn barod, erbyn heddiw.
Gan y bydd adrannau yn dechrau ddydd Sul hwn yn dod, Dydd Llun,
a dydd Mawrth.
Rydym yn gwneud adrannau y tri diwrnod, bob wythnos o'r
semester ar gyfer y rhan fwyaf.
Ac rydym hefyd yn cyflwyno, unwaith eto, traciau gwahanol.
Felly, byddwch yn cael eich gofyn ar y ffurflen hon rhannu a, os ydych
wedi ei weld yn barod, os ydych chi ymhlith y rhai llai
cyfforddus, yn fwy cyfforddus, neu rywle yn y canol.
Ac os ydych yn fath o ar y ffens, yn gyffredinol yn rhywle yn
rhwng yr hyn y rhan fwyaf o fyfyrwyr yn y pen draw gwirio.
Oriau swyddfa yn dechrau heno.
>> Felly Scratch yn allweddol yn weddol isel, hyd yn oed er 'i' eithaf naturiol
i redeg i mewn i bugs amrywiol, neu fod yn ansicr ynghylch sut i
gweithredu rhywbeth.
Felly, yn sylweddoli y byddwn yn dechrau oriau swyddfa yr wythnos hon.
Byddant fod yn Annenberg Dydd Llun, Mawrth, Mercher,
Dydd Iau, 20:00-11:00 yn ystod egwyl ymennydd.
Gall classmen Uchaf mynd i mewn, ac os ydych chi erioed wedi cael trafferth cael
yn y drws, oherwydd fe wna nhw yn ymosodiadau, dim ond siarad eich ffordd
i mewn ac esbonio eich bod gyda CS50.
Yn nodweddiadol, bydd 20 i 30 o ni ar staff yno i helpu
chi'n un ar un.
>> Ar ôl cyrraedd y syniad yw hyn: byddwch yn dod â'ch gliniadur,
byddwch yn cael eich charger, bydd gennym cordiau pŵer ychwanegol,
yn arbennig ar hyd y wal i'r de o Annenberg lle
mae llawer o siopau trydanol.
Ac mae'r prif bwynt mynediad i oriau swyddfa Q & A yn mynd i
cs50.net/discuss, ac i osod
i'ch cwestiwn yno.
Ac i labelu gyda pset 0 neu pset 1, beth bynnag yr wythnos
allai ddigwydd i fod.
Ac yna beth byddwn yn ei wneud yw cael tabl o'r cymrodyr addysgu
cynorthwywyr cwrs ac, yn gyffredinol 8 neu 10 neu fel un ohonom,
mynd drwy, gan gadw llygad barcud ar y bwrdd, a
plicio oddi ar y cwestiynau gwirioneddol mor gyflym ag y gallwn,
eich cyfeirio at swyddi cysylltiedig os nad ydych wedi dod o hyd rhai
eich hunain, cyfeiriadau ar-lein, fel y bo'n briodol.
Ac yna os oes problemau, gan fod yn anochel
yn, neu'n 'i jyst yn gwneud mwy o synnwyr i eistedd i lawr un ar un,
weithio drwy broblemau gyda rhywun.
>> Neu 'ch jyst yn dod i oriau swyddfa mewn gwirionedd
angen y meddylfryd hwnnw.
Dydych chi ddim eisiau mynd trwy'r ffurflen electronig, rydych
wir am gwrdd â rhywun.
Cyfathrebu hynny i ni, a beth fydd yn digwydd yw pan fydd eich
cwestiwn wedi cael ei gweld gan aelod staff, ac rydym yn
penderfynu, yup, dylai hyn gael ei anfon at un o'r 20 neu
30 o aelodau tîm yma yn lleol, byddwch yn gweld yn y gornel chwith uchaf y
ychydig Rhowch y botwm Ciw yn dechrau fflachio ar cs50.net /
trafod.
Ac mae hyn yn dweud wrthych eich bod bellach wedi cael eu gwahodd, felly
i siarad, i fynd i mewn i'r ciw.
A thrwy glicio y botwm, bydd eich enw yn ymddangos ar
iPad bod y cyfarchwr CS50 un o bennau y cwrs, bydd
yn cynnal ger y fynedfa Annenberg, a fydd wedyn yn
weld yn cael ei darlunio fel yma, y ​​myfyrwyr sydd â chwestiynau am
y chwith, yr aelodau staff sy'n bresennol ar y dde.
Ac trwy roi clic chwith a dde, bydd eich porwr gwe yn
dechrau fflachio cyn gynted ag, er enghraifft, yr Athro McGonnagal
yn barod i weld chi ar fwrdd arbennig yn Annenberg.
>> Felly, rydym yn gwneud rhywfaint o hyn y llynedd.
Rydym wedi hailgychwyn oriau swyddfa a
ail-weithredu llawer o'r meddalwedd.
Felly, yn sylweddoli y bydd hyn yn cael ei gynhesu i fyny yr wythnos hon.
Ond hefyd yn sylweddoli hefyd, yn ystod y blynyddoedd diwethaf, fel y byddech wedi clywed
gan ffrindiau, oriau swyddfa oedd yn wir 50 i
150 o fyfyrwyr ar unwaith.
Ac nid yn syml bosibl i ni ymdrin â hynny
yn effeithiol, un ar un, trwy gydol y noson.
Ac felly yr hyn yr ydym ni'n wir yn mynd i geisio gwneud eleni yw
manteisio ar y ffaith bod llawer o gwestiynau yn
a ofynnir yn aml ac yn aml yn cael eu hateb yn well
asynchronously.
Felly, gallwch ddatrys o feddwl drwy ymateb y staff,
a gallwn feddwl drwy eich cod, heb y gwresogi
pwysau o reidrwydd yn ei chael hi'n anodd
drwyddo ochr yn ochr.
Felly, rydym yn amcangyfrif bod tua thraean neu hanner y cwestiynau
yn cael eu hanfon yn bersonol, a byddwn yn ceisio dynnaf i ffwrdd fel
cymaint â hanner neu fwy yn electronig,
yn ystod oriau swyddfa.
A byddwn yn parhau i ddefnyddio Trafod
drwy gydol yr wythnos yn ogystal.
>> Ac yn olaf, yn sylweddoli y gall y cwrs hwn yn cael eu cymryd pasio / methu.
Felly, os ydych ar y ffens neu jyst yn meddwl eich bod yn wirioneddol
ddim yn siŵr os yw hyn yn y byd i chi, neu mae hyn yn wir
eithaf tramor i chi, yn sylweddoli bod hyn yn ffordd wych
o ennill i fyny rhywfaint o hyder i'w defnyddio i gamu i mewn i'r
dosbarth, fel y gwnes i dweud y gwir, flynyddoedd yn ôl.
Ac yna bum wythnos i ddatrys y ffigur ar gyfer
eich hun os ydych am aros pasio / methu, newid i lythyr
radd, neu yn y blaen.
Ac fel arfer beth pasio / methu ei wneud, yr wyf yn meddwl, ar gyfer myfyrwyr yn
hynny, os ydych yn eu rhoi yn y 10 awr, 20 awr, beth bynnag
Efallai y bydd ar rai o'r problemau, ac rydych yn taro eich pen
yn erbyn y wal,
ac ydych yn wir ni all dim ond mynd ar drywydd rhywbeth i lawr, ac rydych yn
cael cymaint o bethau eraill mae angen i chi ei wneud, yn onest, yr hyn yr wyf
meddwl pasio / methu yw, mae'n cymryd ymyl oddi ar
sefyllfaoedd fel 'na.
Os ydych wedi cymryd y peth 90% o'r ffordd.
Rydych yn gwybod, nid yw'n hollol berffaith.
Ond byddwch yn cael llawer allan ohono, serch hynny.
Felly, yn ystyried pasio / methu â rhoi i chi y
model meddwl, efallai.
>> Mae pob hawl, yr wythnos diwethaf, felly colomen i mewn i Scratch, ac rydym yn
siarad am raglennu ar lefel weddol uchel graffigol.
A heddiw rydym yn gwneud y newid i iaith
o'r enw C, iaith raglennu lefel is ar ben
pa ieithoedd modern yn cael eu hadeiladu yn awr, gan gynnwys rhai
o'r rhai y byddwn yn eu defnyddio tuag at ddiwedd tymor.
Ac syntactically, yr hyn y maent yn edrych fel
i gyd yn eithaf tebyg.
Felly, gadewch i ni ddechrau i wneud y newid yma.
Felly mae hwn yn rhaglen yr wythnos diwethaf a oedd yn y symlaf o
helo rhaglenni byd.
Mae'n hargraffu yn syml at y sgrin hello byd, gyda
swigen siarad bach yn dod allan o'r gath.
Wel, os ydym yn dechrau yn awr i gyfieithu hyn i un arall
iaith, yn sylweddoli bod y syniadau heddiw ac ar ddydd Mercher
yn union yr un fath, ond y gystrawen yn dechrau newid.
Felly, tra yr wythnos diwethaf yr oedd gennym, pan fydd baner werdd glicio, yn dweud
helo byd.
Heddiw rydyn ni'n mynd i gael int, prif ddi-rym, printf,
dychwelyd, gyda rhai chystrawen eraill yn yno yn ogystal.
Braces cyrliog, a cromfachau, a dyfyniadau, a whatnot.
Ond yn sylweddoli bod craidd y syniad yma yn y argraffu,
ac yn y pen draw, y ffaith bod prif awr yn mynd i fod yn
gyfystyr â cychwyn rhaglen.
Main yn mynd i fod yn lle y faner werdd yn cychwyn pethau i ffwrdd.
>> Felly nawr gadewch i ni ar wahân canfod rhai o'r blociau adeiladu yma
cyn i ni plymio i mewn i rai enghreifftiau pendant.
Felly, byddem ni'n ei alw yr wythnos hon datganiad diwethaf, lle dim ond
cyfarwyddyd.
Gwnewch hyn - yn yr achos hwn, yn dweud helo byd.
Wel yn C, os edrychwn ar hynny llinell, dyma sut rydym yn
mynd i ddechrau yn mynegi y darn pos arbennig:
printf ("helo byd");.
Ac yn awr byddwn yn canfod y rhain ar wahân yn fwy a mwy dros gyfnod o amser,
ond yn sylweddoli bod yna batrwm yma.
Felly, yr ydym yn cael y peth a elwir yn printf, sydd yn
yn y bôn sy'n cyfateb i'r gair Dweud.
Dyna beth mae'n mynd i wneud.
Printf, a f yma yn golygu "wedi'i fformadu".
Felly, 'i jyst yn golygu y gallwch fewnosod
manylion esthetig amrywiol.
Felly unquote dyfyniad yn dechrau o'r hyn yr ydym yn mynd
i ddechrau galw llinyn.
Mae gair, ymadrodd, yn frawddeg.
Mae llinyn mewn iaith raglennu dilyniant o sero
neu fwy o gymeriadau.
Felly h-e-l-l-o, coma, ac yn y blaen yw,
, unquote dyfynbris gan un llinyn.
Ac yn awr slaes n, ychydig syntactically od, ond rydym yn
sydd eisoes wedi'u diffinio yr wythnos diwethaf i olygu beth?
Dim ond llinell newydd.
'I' jyst yn ffordd o gyfleu at y cyfrifiadur rydych am i'r
cyfateb yn taro 'r Rhowch yno, ond nad ydych yn gwneud
eisiau mewn gwirionedd daro Enter a llanast i fyny, felly yr holl
fformatio eich rhaglen wirioneddol.
Nawr bod y cromfachau amgáu llinyn yma, yn agored paren a
paren agos, ac y tu mewn o hynny yw ein llinyn.
Oherwydd hynny oherwydd yn C, a rhaglenni eraill
ieithoedd, pethau fel printf cymryd dadleuon, neu gymryd
paramedrau.
>> Felly, ddechrau meddwl nawr am y bloc hwn Dweud porffor fel
swyddogaeth, fel dull, fel gweithdrefn.
Gallwch wir yn ei alw beth bynnag yr ydych ei eisiau ar hyn o bryd, ond
mae'n fath o raglen bychan mai dim ond y mae un
beth, mewn llinell sengl, dim llai.
Felly printf hefyd yr hyn rydym yn mynd i ddechrau galw
swyddogaeth, a swyddogaethau gwneud rhywbeth - yn yr achos hwn
argraffu llinyn fformatio i'r sgrin -
ond mae swyddogaethau hefyd yn cymryd dadleuon neu baramedrau.
Ac erbyn dadleuon neu baramedrau, diolch i chi, rydym yn golygu
y gall eu hymddygiad yn cael ei dylanwadu gan yr hyn byddwch yn mynd heibio yn
tu mewn i'r cromfachau.
Felly, yn yr achos hwn, anghenion printf cael gwybod beth i'w argraffu, ac rydym yn
dim ond pasio i mewn, mewn dyfynodau dwbl yma, y ​​llinyn yr ydym yn
mewn gwirionedd eisiau argraffu.
A'r hanner colon ar ddiwedd y llinell hon yn unig yw
niwsans hanesyddol lle ar ddiwedd y llinellau mwyaf o god,
chi roi hanner colon i wneud super glir i'r cyfrifiadur
fod y llinell o god yn dod i ben yma.
Nawr mae hyn yn dda oherwydd fel byddwn yn gweld fel rhaglenni yn cael mwy
cymhleth, bydd y colon yn gwneud pobl yn glir i ni super,
a hefyd y cyfrifiadur, lle mae llinellau o ddechrau ar ddiwedd cod a.
Sylweddoli nad yw rhai ieithoedd yn cael rhywfaint o
o'r un manylion.
Ac yn wir, yn JavaScript, nid oes bob amser angen rhywbeth
fel y colon.
Ond mwy am hynny i ddod.
>> Felly, dolennau.
Cawsom rhywbeth fel hyn, yn reddfol, yn amlwg, yn
rhywbeth eto ac eto ac eto.
Fel rhoi ar sanau, neu ddweud helo, yn yr achos hwn.
Wel, gan ddechrau heddiw yn C, gallem fynegi hyn yn Scratch
bloc fel tra (gwir) printf ("helo byd").
Felly sylwi rydym yn dechrau i adeiladu ar llythrennol y pos
darn o'r blaen.
Mae gennym y bloc porffor un, ond mae'n y tu mewn o hyn
cromfachau Forever bloc, a'r ffordd orau i gyfieithu bod
i C fel a ganlyn.
Does dim Forever keyword.
Ni allwch jyst deipio f-o-r-e-v-e-r yn C.
Felly mae'r analog agosaf yw tra bod.
>> Yn awr, tra (yn wir) yn ymddangos ychydig yn dwp oherwydd y mae'r gwerth
o newid yn wir erioed?
Yn ôl pob tebyg peidio.
Mae fel dweud wrth un, tra ar, tra bod wir.
Mae hyn i gyd yr un peth, yn wir bob amser yn wir.
Felly, mae hyn mewn gwirionedd yn ddolen yn cymell pa fath o ddolen?
Dim ond dolen ddiddiwedd, ar y dde.
Mae dolen Forever neu fel byddem ni'n ei alw yr wythnos diwethaf,
dim ond dolen ddiddiwedd.
Felly, weithiau mae hynny'n ddrwg.
Weithiau, mae hynny'n bug, weithiau dyna pam yr ydych yn ei gael
y bêl traeth nyddu neu hourglass neu debyg.
Ond yn yr achos hwn, rydym yn fwriadol, am ba bynnag
reswm, yn awyddus i argraffu yr un peth eto
ac eto ac eto.
Neu yn achos o fel gwylio, ydych am ei wneud
rhywbeth eto ac eto ac eto.
Efallai Felly dolenni diddiwedd yn gwneud synnwyr.
A dyma sut yn C gallem cyfieithu Forever i cod.
>> Felly nawr hyn yn un 'ychydig yn fwy penodol.
Rydym wedi ailadrodd 10 gwaith y datganiad canlynol.
Felly, er na (yn wir) yn eithaf gweithio yno, oherwydd yn wir yn
bob amser yn wir.
Felly, os ydym yn hytrach yn edrych ar y fersiwn C, sydd bellach yn y gystrawen yn cael
ychydig yn fwy cryptig.
Ond i fod yn onest unwaith i chi ddechrau i weld hyn, mae'r cyfan yn cael
eithaf gyfarwydd cyflym.
Felly mae hyn yn hyn a elwir yn ddolen i.
A am ddolen yn mynd i ddweud wrth y cyfrifiadur i wneud rhywbeth
eto ac eto ac eto am gyhyd ag y
pethau hyn yn wir.
Nawr beth ydym yn ei olygu wrth hynny?
Wel, mae tair rhan i am ddolen, ac rydym yn mynd i
yn dod yn ôl at hyn yng nghyd-destun gwirioneddol
enghreifftiau mewn munud.
Felly peidiwch â phoeni os nad yw'n hollol suddo yn i gyd ar unwaith.
Ond int i = 0 yw, stori fer hir, gan ddweud yn rhoi i mi
amrywiol sy'n o cyfanrif fath, felly rhowch mi nifer
enw i, ac yn ymgychwyn i 0.
Dyna yw rhoi mi fel newidyn x algebraidd a
ymgychwyn i 0.
Ond yn yr achos hwn byddem ni'n ei alw i.
Yna, yn y canol, mae'n dweud i yn llai na 10.
Dyna ddweud wrth y cyfrifiadur yn y pethau canlynol cyn belled
fel fi yn llai na 10.
Ac yn amlwg ei fod yn dechrau llai na 10 oherwydd
fydd yn dechrau ar 0.
Yna yn olaf, allwch chi ddyfalu beth efallai i + + modd.
Mae'n ychydig o gystrawen mai dim ond yn golygu cynyddiad i.
Felly, ychwanegu 1 i i, eto ac eto ac eto.
>> Ac felly gan y byddwn yn gweld y ddolen, mae hyn yn cystrawen, yn hytrach, yn gweithredu
union yr un peth a dweud y gwir, yn Scratch yn unig er mwyn
llawer haws i fynegi.
Ailadroddwch 10, ac rydych yn ei wneud.
Yn C, ac mewn ieithoedd rhaglennu y rhan fwyaf o, mae'n rhaid i ni fod yn
ychydig yn fwy addysgiadol ar gyfer y cyfrifiadur ac mewn gwirionedd yn
nodi rhywbeth fel hyn.
Ond byddwn yn dod yn ôl at hyn a chystrawen eraill.
>> Beth am newidynnau?
Yn Scratch cawsom rhywbeth fel hyn blociau oren,
lle y gallwn ddatgan amrywiol.
Gadewch i ni fympwyol ei alw cownter.
Gadewch i ymgychwyn i 0, ac yna
gadewch i ni wneud rhywbeth am byth.
Yn yr achos hwn yn Scratch i ddim yn dweud y cownter, felly mae'r
cath yn mynd i gael swigen siarad ychydig sydd wedi siarad
y nifer sy'n sydd yn y newidyn.
Ac yna mae gennym gownter newid erbyn 1.
Felly, hyn i gyd wedi'i lapio tu mewn clo Forever.
Felly, rydym yn barod yn awr y blociau adeiladu yn C gyda
sydd i gyfieithu hyn.
>> Un ffordd y gallem wneud hynny yw hyn.
Rhowch i mi cyfanrif, ei alw'n cownter.
Ymgychwyn ei i 0
yn y llinell gyntaf yno.
Er (gwir), felly rwy'n dwyn y syniad o ychydig ennyd
yn ôl, mynd yn ei flaen ac yn gwneud y canlynol.
Argraffwch y cownter, ac yna hicyn y cownter,
unwaith eto, ac unwaith eto, ac unwaith eto.
Neu eto, + + yn unig yn golygu ychwanegu 1 i rywbeth.
Ond mae yn ddarn newydd o gystrawen yma.
Beth sy'n neidio allan gan na ymhlith ein enghreifftiau blaenorol?
Ydy, mae hyn yn d%.
Felly, efallai y gallwch gasglu beth mae hyn yn ei wneud, a dweud y gwir, yn seiliedig
ar yr hyn y bloc Scratch yn ei wneud.
Ond unwaith eto yn C, rydym yn unig rhaid i ni fod ychydig yn fwy penodol
pan ddaw i fynegi ein hunain.
>> Felly printf ("% d \ n").
Wel y rhan fwyaf o hynny y gallwn daflu i ffwrdd mor gyfarwydd.
Mae'r dyfyniadau yn unig yn golygu ei fod yn llinyn, slaes n
yn unig yw llinell newydd.
Felly, y peth newydd yn unig yma yw% d.
A'r hyn oll sydd yn placeholder.
D% yn mynd i ddynodi rhif degol.
Ac cyfrifiadur% d modd, rhowch rif degol yma.
Wel, pa rif ydych chi eisiau ei roi ynddo?
Wel, fel y gallwch o bosibl casglu, ar ôl y coma rydym yn dweud
cownter, dyna enw'r newidyn yr ydym yn datgan neu
creu ychydig o linellau yn gynharach.
Felly, mae hyn yn unig yw C yn ffordd o lenwi'r mewn newidyn i mewn i
llinyn ddynamig.
Oherwydd y llaw arall, os ydw i wedi wneud yn lle rhywbeth fel
hyn, printf ("gwrth"), beth fyddai hyn yn
rhaglen yn hytrach yn ei wneud, yn ôl pob tebyg?
Bydd yn llythrennol argraffu "gwrth".
Nid Pa un yw'r effaith yr wyf am.
Angen i mi gymryd lle mewn rhai gwerth rhifol.
Felly, byddwn yn gweld bod swyddogaethau hynny, fel printf ni all gymryd
dim ond dadleuon unigol, fel
"Helo byd".
Gallant gymryd coma unquote dyfyniad, ac yna rhai newidynnau
a fydd yn cael blygio i mewn, gan y byddwn yn gweld y llinyn blaenorol
drwy hyn bachau% arwydd.
>> Wel beth am mynegiadau Boole?
Mynegiadau Boole oedd y rhain gwerthoedd, yn wir neu'n anwir.
Ydw neu nac ydw.
1 neu 0.
Ar neu i ffwrdd.
Felly, yn Scratch maent yn edrych fel hyn, ac yn sylwi bod y
bloc gwaelod dyma mewn gwirionedd y cyd
dau floc llai.
Felly, yr wyf yn fath o llusgo a gollwng tri darn pos
gyda'i gilydd i wneud y darn pos yno bellach er mwyn i mi
gallai gyfleu'r syniad yr wyf am x i fod yn llai na y a
y i fod yn llai na z.
Ac felly rwy'n gallu cyfieithu'r rhain ddwy linell ar wahân fel a ganlyn.
Gall Ar y brig yn cael ei iawn trivially cyfieithu i C,
gyda dim ond x <y.
Efallai gyda rhai cromfachau ar gyfer mesur da.
Ac yna yn C, nad ydych yn ysgrifennu ac i ddynodi
ar y cyd o rywbeth.
Chi yn hytrach na ysgrifennu &&.
Ac fel y byddwn yn y pen draw yn gweld, a ampersand un yn digwydd i
yn golygu rhywbeth gwahanol.
Felly, dim ond && yn dynodi y syniad o AC.
>> Felly eto, er bod hyn yn dechrau edrych braidd yn gymhleth,
un o ddibenion cyflwyno Scratch, ar wahân
dim ond cael rhyw fath o hwyl ar-ramp lle y gallwch wneud
rhywbeth sy'n iawn graffigol, a animeiddiedig, a
shareable ac yn y blaen, hefyd i gyfleu y syniad bod
holl syniadau i ni ddechrau plymio i mewn i heddiw ac ymlaen
wedi cael eu hymgorffori mewn hyd yn oed mor syml â hynny
rhyngwyneb ers y diwrnod cyntaf.
Beth am yr un yma?
>> Felly amodau.
Felly y bloc Scratch ar y chwith mae yn edrych
ychydig yn fwy cymhleth.
Ond dim ond rhai llusgo a
gollwng darnau cyfarwydd.
Os x yn llai na y, dywedwch hynny.
Arall os x yn fwy na y, dywedwch hynny.
Else, gallwn gymryd yn ganiataol yn rhesymegol ei fod yn casglu bod
rhaid iddynt fod yn gyfartal.
Felly, yn dweud eu bod yn gyfartal.
Nawr yn C ar y dde, un peth yn union.
Ac yn sylwi bod y braces cyrliog yn mynd i fod yn
nodwedd o C ac ieithoedd eraill sy'n gwneud y math hwn
o amgįu.
Yn union fel y bloc os yw hyn beth melyn sy'n fath o
gydio yn y bloc porffor y tu mewn iddo.
Yn yr un modd a yw'r rhain braces -
hyn braces cyrliog -
i fod i gonsurio bod un syniad o gofleidio un neu fwy o
linellau o god sy'n cael eu mewnoli tu mewn iddynt.
Felly, ar yr ochr dde yma, os x yn llai na y, printf
("X yn llai na y").
Arall os x yn fwy na y, argraffwch yr un fath.
Arall argraffu eu bod yn gyfartal.
>> Felly, yn fyr, mae 'na mapio eithaf uniongyrchol neu gyfieithiad
yr iaith rydym wedi ei weld hyd yn hyn, gan gynnwys ar gyfer rhai
o nodweddion mwy soffistigedig.
Felly, efallai nad ydych yn defnyddio hyn ar gyfer eich prosiect, neu a allai beidio
yn defnyddio hyn ar gyfer eich prosiect yr wythnos hon.
Ond rydym wedi y pethau hyn a elwir yn araeau yn C. Yn Scratch,
maen nhw'n galw rhestrau.
Ac rydym yn gweld y rhain gyda'r RPG Fruitcraft yr wythnos diwethaf.
Y dyn bach glas sydd yn cerdded o gwmpas, codi
ceirios ac orennau ac yn y blaen.
Wel, yn Scratch, a weithredwyd gyda'r oren
bloc sy'n cynnwys geiriau; yn yr achos hwn, rydym yn llythrennol
ychwanegu "oren" i
amrywiol a elwir yn rhestr.
Felly, yn C, y gystrawen yn mynd i gael ychydig yn fwy cryptig.
A byddwn yn dod yn ôl at hyn yr wythnos nesaf, a gwneud mwy
bethau diddorol yn y byd o cryptograffeg ag ef.
Ond ar y gwaelod yma, mae'r ddwy linell yn y bôn
cyfieithu i'r hyn yr ydym yn ei wneud mewn un bloc Scratch i fyny yno.
Ond mwy am hynny i ddod.
>> Felly roi at ei gilydd, dyma rhaglen yn C. Felly gadewch i ni
yn gyflym canfod ar wahân rhai o'r darnau o gystrawen yma, ond
yna gadewch i ni mewn gwirionedd yn dechrau ysgrifennu rhai cod, ymgyfarwyddo
chi gyda rhai o'r offer y byddwn yn eu defnyddio, a gweld os ydym
yn gallu adeiladu ar hyn rhai o'r blociau adeiladu sylfaenol o
yr wythnos diwethaf, yn awr yn syntactically C. Felly ar y top yma, mae hyn yn
efallai mai dyma un o'r rhaglenni mwyaf diflas gallech
ysgrifennu yn y rhan fwyaf o unrhyw iaith raglennu.
Ond mae'n fath o wedi ystyr arbennig am ei fod y
rhaglen canonaidd bod unrhyw wyddonydd cyfrifiadurol yn ysgrifennu pan fydd
addysgu rhywun iaith raglennu -
rhaglen y byd helo.
>> Felly, ar frig iawn, rydym yn gweld y syniad hwn o # gynnwys
ac yna, mewn cromfachau ongl, stdio.h.
Rydym yn mynd i ddod yn ôl at hynny, ond mewn gwirionedd yr hyn y
yn golygu ei bod yn ffeil yn y byd hwn a elwir yn safon
I / O, stdio dot h, a dim ond ffeil testun sy'n
ysgrifennodd rhywun o flynyddoedd yn ôl.
Ac tu mewn y ffeil destun yn criw cyfan o
swyddogaethau, neu ddulliau, neu weithdrefnau, bod rhywun arall
Ysgrifennodd mai ni yw'r buddiolwyr oherwydd ein bod
yn awr yn gallu defnyddio cod y person hwnnw.
Mae'r swyddogaethau ef neu hi ysgrifennodd.
Yn yr achos hwn, nid printf yn rhywbeth i mi ysgrifennu, mae'n
Nid rhywbeth y CS50 ysgrifennodd.
Mae'n rhywbeth y ysgrifennodd rhywun o flynyddoedd yn ôl a'i roi mewn
ffeil o'r enw stdio.h ac yna, wrth fynd heibio, rhowch
rhan arall o'r swyddogaeth mewn ffeil arall.
Ond byddwn yn cyrraedd yno.
>> Felly, # yn cynnwys yn unig yw ein ffordd ni o ddweud, yn
C, yn rhoi i mi mynediad i swyddogaethau sydd ysgrifennodd rhywun arall.
Ac yn yr achos hwn rwyf yn gofalu am fy mod eisiau printf.
Nawr rydym yn cael y prif int (gwag).
Felly, mae hyn yn un o'r pethau hyn, a dweud y gwir, bod ar ddiwrnod 0,
'n bert lawer yr wyf i wedi i fath y tu allan i barth, oherwydd dim ond
Nid yw diddorol
ddeallusol, mae rhai o'r gystrawen.
Ond am nawr yn gwybod bod swyddogaethau, a elwir fel arall yn
gweithdrefnau, neu ddulliau, yn gyffredinol yn cynhyrchu rhywfaint o werth.
Maent yn gwneud rhywbeth.
Maent yn dod o hyd i'r ateb.
Maent yn cynhyrchu allbwn.
Felly, int nesaf i'r brif yn unig yw ein ffordd law-fer o ddweud
bod y swyddogaeth hon, y weithdrefn hon, yn y pen draw yn mynd
i roi i chi yn ôl nifer.
A pham hynny yw, byddwn yn dod yn ôl i.
Main yn unig 'r ball safon byd ar gyfer y rhagosodiad
swyddogaeth sy'n mynd i gael eu gweithredu mewn rhaglen C pan fydd
ydych yn ei redeg.
Void yn unig yn golygu y peth hyn, prif, yn cymryd unrhyw
dadleuon, yn yr achos hwn.
Felly, fy mod yn cael super penodol.
Does dim llinynnau i mewn 'na, does dim atalnodau.
Void yn golygu unrhyw ddadleuon to main.
>> Nawr yn olaf, diolch i'r drefn, y ddwy linell olaf yn gyfarwydd.
Y tu mewn i'r braces cyrliog gennym printf
ac mae gennym dychwelyd.
A dychwelyd yn fath o anffodus bod rhaid i ni
roi yno, oherwydd yn yr achos hwn nid yw'n gwneud popeth a
llawer o ddiddordeb.
Ond mewn rhaglen gyfrifiadur, pan fydd ffwythiant yn dychwelyd 0,
sy'n golygu popeth yn iawn.
Nid oes dim yn mynd o'i le.
Ar y llaw arall, os yw ffwythiant yn dychwelyd 1, neu 1 negyddol, neu
1337 negyddol, neu rai rhifau ar hap fel 'na, bod
gyffredinol yn golygu bod camgymeriad wedi digwydd mewn gwirionedd.
Felly, os ydych chi ar eich Mac neu PC eich, os ydych chi erioed wedi gweld
ryw neges blino oherwydd bod eich cyfrifiadur wedi chwalu neu
rhewi, ac mae 'na neges gwall cryptig,
ac yna rhai cod, cod system fel
1,2,3,4, ryw nifer,
yn gyffredinol yn manylion diangen i ddweud
rhan fwyaf ohonom pobl, ond dyna rhyw swyddogaeth neu ryw
rhaglen wedi dychwelyd mewn gwirionedd, mae gwerth ychwanegol di-sero.
Ac y fantais o hyn yw bod 0 yn golygu i gyd fel yn dda, ac
yna rydych yn y bôn yn cael nifer anfeidrol o bethau y
Gall mynd o'i le.
Pa un yw pam eu bod wedi dewis 0 am da a gwerth ychwanegol di-sero ar gyfer
ddrwg, fel y gwelwn cyn hir.
>> Felly, gadewch i ni fynd yn ei flaen ac yn ysgrifennu hyn.
Felly dwyn i gof bod y diwrnod arall yr wyf yn defnyddio fy Mac i agor i fyny
, ffenestr terfynell ac yna yr wyf yn agor rhaglen destun, fel
Dechreuodd TextEdit, ac yr wyf ysgrifennu rhai cod.
Wel mae hynny'n iawn.
Ond eich profiad yn mynd i fod yn wahanol ar Mac, neu
ar gyfrifiadur Solaris, cyfrifiadur Linux, beth bynnag gweithredu
system yr ydych yn ei ddefnyddio.
Ac felly yn y cwrs, yr hyn rydym yn lle hynny i ddefnyddio yn rhywbeth
a elwir yn Appliance CS50.
Felly, y Appliance CS50 yn ddarn o feddalwedd i'w llwytho i lawr
sy'n caniatáu i chi redeg system weithredu o'r enw Linux,
yn benodol Fedora Linux, Mac ar eich hun neu PC.
A ydych yn gwneud hyn trwy lawrlwytho rhywbeth a elwir yn hypervisor.
Felly bydd hyn oll yn cael ei dogfennu yn 1 set problem.
A byddwch yn eu harwain tuag at yr hyn y mae angen i chi lawrlwytho.
Ond y canlyniad, a oes gennych Mac neu PC, yn eich
lawrlwytho rhai meddalwedd am ddim.
Yna byddwch yn lawrlwytho'r Offer CS50, ac rydych yn dweud bod
meddalwedd am ddim - y hypervisor -
i redeg y Appliance CS50 mewn ffenestr ar eich cyfrifiadur.
A beth fydd yn digwydd yw hyn.
>> Rwyf wedi yn awr, sylwi yma, yr hyn sy'n ymddangos i fod yn ben-desg
amgylchedd.
A gadewch i mi mewn gwirionedd yn crebachu y ffenestr hon sengl.
Felly, mae hyn yn awr yw fy Mac, gyda ffenestr bach yma, ac y tu mewn
y ffenestr hon yn digwydd i fod yn gwbl
system gweithredu gwahanol.
Yn wir, mae hyn chychwyn ddewislen i lawr yma, sy'n atgoffa rhywun o
Windows, sydd â criw cyfan o fwydlenni is, gan gynnwys
dolen i llawlyfr CS50, Dropbox, ac yn y blaen.
A beth mae hyn yn amgylchedd yn awr yn amgylchedd safonol
y gall pob un ohonom yn defnyddio, fel nad oes ots beth yw eich
cyfrifiadur yn, yr hyn yr ydych wedi gosod arno, pa fersiwn
o Mac OS neu Windows ydych yn rhedeg, rydym i gyd yn awr yn cael y
un amgylchedd.
Ac yn awr yn yr amgylchedd hwn gallwn ddechrau ysgrifennu rhai cod.
>> Felly, yr wyf i'n mynd i fynd yn ei flaen ac agor rhaglen o'r enw gedit.
Mae hyn yn debyg i notepad.exe, neu
TextEdit ar Mac.
Ac mae hyn yn unig yw rhaglen super destun syml golygu
sy'n edrych fel hyn ar yr olwg gyntaf.
Nawr ar frig, mae gen i palet gwyn, ar y gwaelod I
cael y ffenestr ddu sy'n dweud jharvard @ offer.
Ac mae hynny oherwydd bod y cyfrif defnyddiwr yr ydym yn rhag-greu
i bawb ei alw'n John Harvard.
Mae ganddo ffolder lle ei holl ffeiliau yn mynd i fynd, a
dyma lle y gallwn ddechrau ysgrifennu rhai cod.
Felly, gadewch i mi fynd yn ei flaen yma ac chwyddo i mewn dim ond ychydig, ac rwy'n
mynd i wneud # cynnwys , prif int (gwag), a
yna yr wyf i'n mynd i wneud printf ("helo byd")
, Dychwelyd 0.
Nawr mae hyn i gyd yn eithaf du a gwyn.
>> Gadewch i mi fynd yn ei flaen ac yn gwneud un peth i ddysgu gedit hyn yr wyf i'n
ei wneud mewn gwirionedd.
Gadewch i mi fynd i Save As.
Rydw i'n mynd i ddewis ar yr ochr chwith yma jharvard.
Felly eto, hyd yn oed os nad ydych erioed wedi defnyddio Linux o'r blaen, a dweud y gwir
y dyddiau hyn, pob un ohonynt yn datganoli i mewn i hanfod y
un math o ryngwyneb -
Mac OS, Windows, Linux a.
Felly, yr wyf wedi dewis ffolder cartref jharvard yma.
Ac yr wyf i'n mynd i achub y ffeil fel hello.c.
Felly, ar y brig, yr wyf deipio hello.c; enwi C
rhaglen gyda'r. estyniad c yn
yr hyn yn arfer cyffredin.
Ac yr wyf yn taro Achub.
Ac yn awr beth braf yw fy mod i wedi dysgu effeithiol gedit,
bod hon yn rhaglen C.
Sylwch fod fy testun du a gwyn erbyn hyn codio yn ôl lliw, neu
cystrawen tynnu sylw, a dim ond yn tynnu fy sylw at y
rannau semantig gwahanol o'r rhaglen.
Ar ochr chwith uchaf yno, gan fod fy rhaglenni yn cael mwy cymhleth, rwy'n
mynd i gael crynodeb o'r holl bethau yr wyf wedi ysgrifennu.
Felly dyna ni i fyny yno.
Felly, gadewch i mi yn awr chwyddo allan ac ewch i lawr at y ffenestr terfynell.
>> Felly mae hyn yn bosibl newydd i lawer o bobl.
Os nad ydych erioed wedi defnyddio gorchymyn amgylchedd llinell, nad ydych erioed i wedi
ddefnyddio DOS, neu nad ydych erioed wedi defnyddio Linux, neu nad ydych erioed wedi agor
eich Mac OS ffenestr terfynell, mae 'na lot o bethau rydych
gallai ei wneud gyda'r GUI, fel pwyntio, a chlicio, a
llusgo, a gollwng, ac ati, ond yn gyffredinol -
bendant yn y byd gwyddoniaeth gyfrifiadurol -
ddefnyddio, llinell orchymyn lle nad oes gennych eich llygoden
gyffredinol, dim ond eich bysellfwrdd, mewn gwirionedd yn llawer
yn fwy pwerus na rhyngwyneb, unwaith y byddwch yn cael acclimated i
gorchmynion amrywiol.
A ydych yn fath o rhad ac am ddim eich hun o fod angen i bwynt a chliciwch
ar bopeth.
Felly, yn gedit byddwn yn didoli o'r cael y gorau o ddau fyd.
Gallwn llusgo a gollwng testun, gallwn weld
'n glws a lliw godio.
Ond pan ddaw amser i redeg ein rhaglen, gallwn eich weithiau
dim ond yn defnyddio ffenestr hon bach yma.
>> Felly, yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud hyn.
Yn y ffenestr isaf du a gwyn, yr wyf i'n mynd i fynd yn ei flaen
ac ysgrifennu clang.
Ac clang yw enw'r casglwr.
Mae'n rhaglen sy'n trosi fy cod ffynhonnell
i mewn i, felly, cod gwrthrych.
0au ac 1, a welsom yn gyflym yr wythnos diwethaf.
Dwyn i gof o wythnos diwethaf, rydym yn addo ein bod yn mynd i
mynd o rywbeth fel hyn - angen i ni fod
rhywbeth fel hyn -
ac mae hyn nid yn sicr yn rhywbeth y mae pobl yn mynd
i wneud â llaw.
Felly, yn lle hynny rydym ni'n mynd i ddefnyddio rhaglen, a bod y rhaglen yn
yr achos hwn gelwir Clang.
Ac enw fy rhaglen yn hello.c.
Felly, er mwyn llunio hello.c o cod ffynhonnell i mewn i
cod gwrthrych, neu 0s a 1s, dylai fod yn ddigon i ychydig wneud
hyn a daro Chofnoda.
>> Iawn, dim byd yn ymddangos i fod wedi digwydd.
Ond yr wyf yn gwybod yn awr, neu o wythnos diwethaf, fod enw diofyn o
rhaglen, pan ysgrifennwyd yn C, a elwir ffôl a.out.
Enw mwyaf anniddorol gallech ddod o hyd.
A yw llythyren gyntaf y wyddor, allan yn yr hyn a oedd
outputted, ond dyna ni.
Mae hyn yn fy rhaglen, ac yn awr dot slaes, gan y byddwn yn gweld, yn
mewn gwirionedd dim ond rhyw fath o nodwedd diogelwch, oherwydd
a.out yn rhaglen ysgrifennais.
Nid oedd yn dod gyda fy nghyfrifiadur, mae'n
nid mewn Ffeiliau Rhaglen.
Dyw hi ddim yn Mac OS ar geisiadau folder.
Angen i mi fod yn eglur super gyda'r cyfrifiadur, ac yn dweud
rhaglen hon, a.out, yn y ffolder ar hyn o bryd, mae'r
cyfeiriadur cyfredol.
A'r ffordd yr ydych yn cynrychioli hyn mewn amgylchedd fel hyn
yn dot yn cynrychioli beth bynnag ffolder yr ydych ar hyn o bryd mewn
Ac felly. / Yn unig yn golygu a.out rhedeg
yn y ffolder ar hyn o bryd.
Ac yr wyf yn rhedeg hyn gyda Mewnbynnu, a voila, fy rhaglen gyntaf.
>> Nawr, gadewch i mi gymryd cam yn ôl.
Mae'r ffenest yn ychydig yn fach, ac yn sylweddoli bod y gwaelod
gadael y peiriant yma arall eicon.
Mae un yn Chrome, a ddylai fod yn eithaf cyfarwydd, dim ond ar y we
porwr tu mewn i'r offer.
Ac mae hyn yn eicon du a gwyn yn unig yw
ffenestr terfynell mwy.
Felly, os yw'n cael blino llai i gadw trefn ar yr union
y sleisen bach bach o ffenestr y mae i ryngweithio
â rhaglenni, gallwn wneud hyn yn lle hynny.
Ac yn awr gadewch i mi ddechrau teipio ychydig yn fuan
i fod yn gorchmynion cyfarwydd.
ls.
Felly ls yw'r gorchymyn ar gyfer rhestru.
Felly, mewn OS Mac neu Windows, byddech fel arfer dwbl-cliciwch ar un o'r
ffolder ac yna, voila, byddwch yn gweld yr holl ffeiliau amrywiol
a ffolderi.
Mewn llinell gorchymyn amgylchedd, lle gallwch deipio
gorchmynion neu destun, ls yn cyfateb.
Felly, dangos i mi beth sydd yn y cyfeiriadur hwn.
>> Nawr mae 'na griw o bethau yma mae hynny yn cynnwys ychydig
cyfarwydd ac ychydig yn anghyfarwydd.
Ond rhybudd bod yn union fel Windows a Mac OS, jharvard
Mae ffolder n ben-desg.
Felly unrhyw eiconau sydd ar fy n ben-desg yn digwydd
i fod yn y ffolder.
Mae 'na, ffolder llwytho i lawr pethau sy'n
Efallai Chrome rhoi yno.
Dropbox.
Felly, yr offer yn dod gyda adeiledig yn cefnogaeth ar gyfer Dropbox
fel bod dros y semester, gallwch cydamseru gyda'ch Dropbox
hystyried fel bod eich holl raglenni yn cael eu cefnogi.
Maent yn hygyrch ar eich cyfrifiadur arall.
Os oes unrhyw beth byth yn mynd o'i le gyda'r offer, gallwch
yn hawdd iawn dod dros Dropbox.
Felly y ffolder yno am hynny.
Mae dwy ffeil a wneuthum - hello.c
a a.out.
Ac yna i'r dde mae rhai ffolderi eraill y gallwn eich
cyrraedd tuag at ddiwedd y semester, gyda ar y we
rhaglennu.
Felly, pan fyddaf yn ei wneud. /, A.out, Mewnbynnu, mae hynny'n dweud mynd
yn y cyfeiriadur Im 'i mewn, y cyfeiriadur ar hyn o bryd, a rhedeg y
raglen o'r enw a.out iawn yno.
>> Mae pob hawl, felly dyna braf ac yn dda, ond nid yw'n bob un sy'n
chymhellol i ysgrifennu rhaglen o'r enw helpu a.out.
Felly gallwn ei wneud mewn gwirionedd hyn ychydig yn wahanol.
Felly yn hytrach na dim ond clang rhedeg, hello.c, gadewch i ni ychwanegu
hyn a elwir yn ymresymiad llinell orchymyn.
Felly gorchymyn, ymresymiad llinell neu switsh yn yr achos hwn, dim ond
arall gair neu ymadrodd yr ydych yn teipio ar brydlon ar ôl
y rhaglen rydych am ei redeg.
Felly, yn yr achos hwn, clang yw'r rhaglen yr wyf am redeg,-o
allbwn golygu ffeil sydd wedi bellach o'r enw a.out.
Allbwn ffeil o'r enw helo, a gwneud hynny drwy gasglu'r
gair olaf ar y lein, hello.c.
Felly, yn fyr, mae hyn yn welliant ymylol iawn, lle
yn hytrach na cael y a.out ffeil o'r enw wirion,
Gallaf ei wneud yn awr clang-o helo, ac yna hello.c, a
yna pwyswch Enter.
Nid oes dim yn ymddangos i ddigwydd, ond eto yn debyg iawn fel gyda 0 - pan
dim byd yn ymddangos i ddigwydd yw hynny'n golygu dim o'i le yn digwydd -
felly gadewch i ni wneud ls yn awr, Mewnbynnu, ac yn wir yr wyf yn awr
gennym raglen helo.
Felly, os wyf yn teipio helo yn awr, nid gorchymyn dod o hyd.
OK,. /.
Felly, yn union gywir.
Felly, oherwydd bod y rhaglen hon ysgrifennais i, ac nid oedd yn dod â
y cyfrifiadur,. / helo, Rhowch, yn golygu
Rwyf nawr yn rhedeg helo.
>> Felly dyna ni yno.
Nawr yr hyn fydd yn y pen draw mynd i'r llinell orchymyn mwy a mwy o
dadleuon sy'n caniatáu i ni wneud mwy, ond dim ond ar gyfer rhai ar gyfer
y gallai hyn fod yn hen het, gadewch i mi mewn gwirionedd yn mynd i mewn i
cyfeiriadur yma a dim ond yn rhoi teaser o sut arall rydym yn
Gallai fynd ati i weithredu byd helo.
Gadewch i mi fynd i mewn yma, a dw i'n mynd i'w agor.
Felly, mewn gwirionedd, dw i'n mynd i esbonio hyn yr wyf i'n ei wneud, felly
mae hyn yn ddefnyddiol.
Gadewch i mi yn ôl i fyny.
>> Felly, yr wyf wedi bod yn gwneud hyn yn amser hir.
Felly sylwi drosodd ar y dde mae yna gwpl o
cyfeirlyfrau sy'n cael eu henwi rhyfedd source1m a source1w.
Mae hyn yn unig confensiwn wirion a ddefnyddiwn.
Ffynhonnell unig yn golygu cod ffynhonnell, 1 yn golygu ei bod yn wythnos un, a
m yn golygu ei bod yn ddydd Llun, ac w yn golygu ei fod yn ddydd Mercher.
Felly, dim byd cryptig yno.
Dim ond nodiant llaw-fer.
Mae'r pethau hyn glas yn ffolderi, a elwir fel arall yn
cyfeirlyfrau.
Dw i eisiau mynd i mewn i'r ffolder yn awr, ac ar gyfrifiadur arferol
Gallai Fi jyst dwbl-gliciwch ar eicon ffolder a
mae fy holl ffeiliau.
Ond mewn llinell orchymyn amgylchedd, ni allaf wneud
hynny, felly yn lle, rhaid i mi newid cyfeirlyfrau llaw.
Felly, os wyf yn teipio cd ac yna source1m, Mewnbynnu, yn sylwi bod
fy brydlon, y peth mewn gwyn ar y chwith, newid yn unig.
Ac felly yn wir, pan newydd ei ddweud cromfachau ac yna'r
squiggle bach, y symbol tilde, mai dim ond yn golygu fy mod yn
mewn cyfeiriadur cartref John Harvard, mae ei My Documents,
ei ffeiliau personol.
Ond yn awr mewn cromfachau mae'n ei ddweud ~ / source1m.
Mae hyn yn unig golygu fy mod mewn ffolder o'r enw source1m
dyna yn y cyfeiriadur cartref John Harvard yn.
Felly os wyf yn awr am i gael rhestr y ffeiliau yn y ffolder hwn, hawdd
cwestiwn, rwyf yn teipio yn unig ls.
Ac yn awr yr wyf yn gweld yr holl ffeiliau a achubaf y-chreu ar gyfer heddiw
ddarlith, pob un ohonynt, neu'r rhan fwyaf ohonynt, yn digwydd
dod i ben yn. c.
>> Felly, gadewch i mi fynd yn ei flaen yn awr ac yn rhedeg gedit o'r rhaglen o'r enw
holloway.c, sy'n cael ei ysgrifennu gan rai haciwr ar hap
ar y Rhyngrwyd, sy'n edrych ychydig fel hyn.
Ac nid ydym yn mynd i fynd drwy'r un mewn unrhyw
fanwl, ond i'r rhai yn fwy cyfforddus, yn benodol, os
ydych am gymryd dyfalu ynghylch beth y rhaglen hon yn yma.
Rest yn sicr, p'un a ydych yn llai neu fwy cyfforddus,
Nid ydym yn hyd yn oed yn cyrraedd y math hwn o beth erbyn diwedd
y semester hwn.
Mae hyn yn beth enghraifft o gystadleuaeth C obfuscated, sy'n
golygu ysgrifennu rhaglen mwyaf cryptig yn edrych i chi o bosibl
Gall gwneud yn well na'r pobl smart eraill, sydd yn yr un modd
ceisio ysgrifennu pethau a dangos eu bod yn gallu ysgrifennu
mwy o bethau cryptic na chi.
Felly, nid yw hyn yn enghraifft o raglen wedi'i ysgrifennu'n dda gan y
safbwynt arddull, mae hyn yn enghraifft o raglen sy'n
yn ennill cystadleuaeth, i bobl sy'n ceisio
fod yn amwys a haniaethol.
>> Felly, os byddwn yn rhedeg y peth hyn, gadewch i mi fynd i mewn i fy ffenestr terfynell,
felly, i siarad.
Felly, yr amgylchedd du a gwyn a elwir yn
ffenestr terfynell yn gyffredinol.
Gadewch i mi fynd yn ei flaen ac yn llunio ei.
Dydw i ddim yn mynd i ddefnyddio clang, gan fod y rhaglen hon yn
ychydig yn cryptic ac mae angen gwahanol
compiler, un o'r enw Cyngor Gwynedd.
Ond mae'n gwneud yr un peth.
Mae'n cymryd cod ffynhonnell i cod gwrthrych.
Ac yn awr os byddaf yn rhedeg a.out, y rhaglen honno i chi
jyst yn gweld yn gwneud hyn.
Er mwyn cyd-y flwyddyn honno enillodd y gystadleuaeth.
Anyhow, nid ydym yn mynd i'r cyfeiriad hwnnw, fel y cyfryw.
>> Felly, gadewch i ni fynd ati i geisio canfod yn awr ar wahân yr hyn y gallwn ei wneud
gyda'r blociau adeiladu sylfaenol i wneud mwy a mwy o
rhaglenni diddorol.
Felly rydym wedi ysgrifennu rhaglen, rydym wedi cynnal rhaglen.
Nawr gallwn mewn gwirionedd yn symleiddio ac nid oes rhaid i chi ysgrifennu
y clang gair wrth yr anogwr.
Mae'n troi allan fel ein rhaglenni yn cael mwy cryptic, gallwn, neu
yn fwy cymhleth yn hytrach, gallwn mewn gwirionedd hidla hon archa.
Felly, gadewch i mi fynd yn ôl at fy cyfeiriadur cartref, fel petai, gadewch i mi
dynnu - rm yw'r gorchymyn remove - I'm mynd i ddileu
y ffeil o'r enw a.out a helo.
Ac yn awr sylwi mewn llinell orchymyn yr amgylchedd, yn debyg iawn mewn
a GUI, rydych yn cael eu hannog. Ni allaf glicio botwm er; I
rhaid i deipio y ar gyfer ie, y ar gyfer ie.
Ac yn awr os byddaf yn teipio ls eto, hysbysiad bod y rhai gwyrdd
rhaglenni - a.out a helo -
yn mynd.
Gwyliwch rhag rm.
Gall wneud pethau drwg, yn union fel y gallwch drwy lusgo
pethau i'ch sbwriel.
>> Felly nawr gadewch i ni fynd ymlaen - a gallwn wneud hyn - clang-o
helo, helo -
Rwyf wedi diflasu yn barod teipio y gorchymyn.
Hyd yn oed er fy mod yn ei deipio ychydig yn gyflym.
Felly gallwn yn lle hynny yn gwneud helo.
Felly, nid yw gwneud yn compiler.
Mae'n dim ond rhaglen gyfeillgar a ddaw gyda Linux, yn y
achos - y system weithredu -
sy'n awtomeiddio'r broses o lunio rhaglenni.
Felly, yn lle cofio clang-o enw'r ffeil a'r
wedyn yn y blaen, yn enwedig unwaith y bydd y llinellau mynd yn hirach ac yn
hirach, gallaf ysgrifennu eu gwneud.
Ac mae hyn yn mynd i boeri allan criw cyfan o bethau y
byddwn yn gweld hyn yn y pen draw semester.
Ond sylwi nawr os ls math I, helo yn ôl yn fy cyfeiriadur.
Ac yn wir y gall Rwy'n rhedeg i ag. / Helo.
Felly gwnewch yn unig awtomeiddio'r broses o redeg yr hyn a oedd,
yn yr achos hwn, mae llawer mwy o amser, gorchymyn yn fwy cymhleth.
Felly, rydym yn mynd i ddechrau defnyddio gwneuthuriad, dim ond oherwydd ei fod yn llawer
yn fwy cyfeillgar i'r defnyddiwr.
>> Ond yn awr, gadewch i ni wneud rhaglen fwy diddorol
na dim ond dweud helo.
Felly, yn y rhaglenni rydym wedi ysgrifennu hyd yn hyn mae prif.
Dyna dim ond y peth diofyn sy'n dod i rym popeth i ffwrdd.
Ond mae yna swyddogaethau eraill ar gael hefyd, ac
stdio.h yw'r peth a welsom ar frig ein
ffeil o'r blaen, a dyna beth a elwir yn y llyfrgell safonol.
Y tu mewn y llyfrgell safonol yn criw cyfan o swyddogaethau
Ysgrifennodd y mae rhywun arall, a gallwn ddechrau defnyddio'r rhain
swyddogaethau i ysgrifennu mwy
rhaglenni diddorol ein hunain.
>> Felly, gadewch i mi fynd yn ôl i'r ddyfais.
Rydw i'n mynd i gau'r ffenestr hon terfynol.
Rydw i'n mynd i gau y pethau yr ydym ysgrifennais yn gynharach, a dim ond yn mynd
i mewn i hello.c, ac yn sylwi nawr gallaf wneud y canlynol.
Nid Helo byd yw'r cyfan sydd ddiddorol; Hoffwn i
bersonoli rhaglen hon ar gyfer fy hun.
Felly, yn hytrach na dweud byd, yr wyf i'n mynd i
mynd yn ei flaen a dweud -
Gallwn i deipio David - ond mae hyn yn wir yn fath o
sylfaenol yr un fath.
Ond gadewch i ni roi cynnig ar y syniad dalfan.
Dwyn i gof bod yn C, yn hytrach yn printf, rydym yn cael y rhain
bachau, ac mae mwy na% d yn unig.
Felly,% oedd d, gwiriad pwyll gyflym.
Iawn, rhif degol, dyna ni.
Digidau Degol, dyna i gyd.
Felly c%, gan y byddwn yn dod ar eu traws, yn mynd i fod yn gymeriad.
Rhowch gymeriad yma, llythyr drwy z,
symbol atalnodi neu.
Mae cymeriad unigol, f%, unrhyw un yn gwybod o ieithoedd eraill?
Felly, mae Gwerth pwynt arnawf.
Mae nifer go iawn.
Felly nid rhif degol - mae hyn mewn gwirionedd mae nifer go iawn gyda
pwynt degol, ac mae rhai nifer o ddigidau ar y chwith
ac i'r dde ohono.
% S, llinyn.
Dyna un yr ydym yn mynd i weld yn eithaf aml.
Mae llinyn, unwaith eto, yn unig yw gair, ymadrodd, cyfres o
cymeriadau unigol.
Ac yn olaf, LLD?
Felly, mae hyn yn fwy o achos cornel.
Long, degol hir.
Felly os nad ydych eisiau dim ond rhif sy'n ydyn nhw fawr, byddwch yn
am gael rhif fwy, rydych chi'n mynd i gael i nodi i
y cyfrifiadur ei fod o faint penodol.
>> Felly, gadewch i tweak y darn ychydig.
Yn hytrach na dim ond cod caled yn David, gadewch i mi ychydig yn
ddynamig ddweud% s.
Felly, yn rhoi% s yma, sydd yn dalfan ar gyfer llinyn.
Yna gadewch i mi wneud coma, ac yna "David" dros yma.
Nawr nid yw hyn yw'r cyfan sydd ddeallusol ddiddorol,
gan fod yr holl Rydw i wedi wneud yn awr yn wir yn creu mwy o waith i
y cyfrifiadur.
Yn hytrach na dweud wrth y cyfrifiadur yn gwneud hyn i gyd ar unwaith, rwy'n awr yn
ddweud yn gwneud hyn ac yn mewnosod llinyn yma yn y pen draw, coma,
yma yw bod llinyn.
Felly, nid yw hyn yn welliant well, ond mae'n leiaf
yn gam tuag at raglen fwy diddorol.
Oherwydd yn awr, gadewch i mi fynd yn ei flaen ac yn gwneud y ffenestr hon ychydig yn
mwy, gadewch i mi fynd yn ei flaen ac yn rhedeg yn gwneud helo.
Ac yn awr,. / Ddim a.out yn gweithio, pam?
Mae pob hawl, erbyn hyn fe'i gelwir helo.
Felly, unwaith eto yn gwneud, a hefyd clang gyda o-, ailenwyd y
rhaglen i fod yn rhywbeth mwy diddorol.
A voila: yn awr y mae'n ei ddweud helo David.
>> Mae pob hawl, dal i fod yn rhaglen dwp.
Felly nawr gadewch i ni mewn gwirionedd yn mynd yn ôl yma a chyflwyno'r syniad
o amrywiol.
Oni fyddai'n braf pe gallwn ddatgan newidyn
mae ei fath yn llinyn?
Ac gwerth y newidyn yn mewn gwirionedd yn dod oddi wrth y defnyddiwr
ef neu hi ei hun.
Felly fympwyol, dw i'n mynd i alw fy s amrywiol, sydd yn
dim ond confensiwn cyffredin pan fydd gennych un newidyn a elwir yn
y llinyn.
Rydw i'n mynd i wneud arwydd cyfartal, ac yna yr wyf i'n mynd i alw
swyddogaeth a elwir yn GetString.
Felly, nid GetString yn rhywbeth sy'n ddaw hadeiladu i mewn C. Mae'n
swyddogaeth a ysgrifennodd y staff CS50, mewn gwirionedd yn unig ar gyfer
rhain yn ychydig wythnosau cyntaf, i symleiddio'r broses o
cael mewnbwn defnyddwyr a chael mewnbwn defnyddwyr yn y ffurflen
o linynnau, neu rifau, ac o'r fath.
Felly GetString yn debyg printf, ond yn amlwg yn hytrach nag
argraffu mae'n mynd i wneud beth oedd ei enw yn dweud, yn cael llinyn.
Ond i ddefnyddio GetString, rydym yn mynd i gael i wneud newid
yma, tu hwnt i hyn.
Felly, yn reddfol, mae'r rhaglen hon, gobeithio, yn mynd i rhywsut
cael llinyn gan y defnyddiwr, ac yna beth rwyt ti'n mynd i'w wneud
gyda'r llinyn, a elwir yn s?
Mae'n jyst yn mynd i argraffu, dde?
Still nad yw rhaglen ysgogol gan fod yr holl mae'n mynd
ei wneud yw plwg yn y gwerth i ble% s
yn dweud y dylai fynd.
>> Felly, gadewch i ni o leiaf yn gweld hyn ar waith.
Gadewch i mi arbed a chwyddo allan.
Nawr yn fy ffenestr terfynell i lawr yma, y ​​dafell bach o un,
gadewch i mi unwaith eto yn gwneud helo.
Iawn, ac AH, damn; cefais criw cyfan o wallau.
Gadewch i mi sgrolio i fyny, ac rydym yn gweld ein gyntaf -
felly gadewch i ni mewn gwirionedd yn gwneud hyn mewn ffenestr hyd yn oed yn fwy er mwyn i chi
gallu gweld pa mor wael yr wyf sgriwio i fyny -
felly gwnewch helo.
Iawn, mae hynny'n drychineb, dde?
Yr wyf wedi ysgrifennu tair llinell o god, ac
mae wedi rhoi i mi 12 gwallau.
Felly, pam mae hyn?
Felly, yn ffodus, oftentimes pan fyddwch yn gweld llawer, llawer o gamgymeriadau
poeri allan ar unwaith, mae'n wirioneddol dim ond oherwydd ydych wedi
drysu y cyfrifiadur yma.
Ac mae'n dal drysu gan yr amser y mae'n mynd i lawr yma.
Ac felly 'i jyst yn dechrau baglu, ac yn baglu, ac
poeri allan yn fwy bethau brawychus nag mewn gwirionedd yn berthnasol.
Felly, yn gyffredinol, bob amser yn dechrau â'r un uchaf.
>> Felly, y lle iawn uchaf y rhan fwyaf o goch, y
neges gwall yw hwn.
Defnyddio llinyn dynodwr heb ei ddatgan, wnes i
olygu safon i mewn?
Wnes i ddim.
Rwyf yn golygu llinyn, ond mae hyn oherwydd, hefyd, y llinyn gair
fy mod yn parhau i ddefnyddio'r lafar mewn gwirionedd
yn bodoli yn C chwaith.
Mae'n rhywbeth y byddwn yn eu defnyddio yn unig ar gyfer yr wythnos gyntaf neu ddwy
yma, ond mae'n bodoli mewn ffeil o'r enw cs50.h.
Felly, ar hyn o bryd, yn gwybod bod yna llyfrgell hon eraill y mae'r
Ysgrifennodd staff, felly mae'n cael ei ysgrifennu yn fwy diweddar na
stdio.h.
Ond y tu mewn o cs50.h yn ddiffiniad, yn gyfystyr o
fath, sy'n creu llinyn yma gair.
>> Felly nawr gadewch i mi fynd yn ôl at fy ffenestr terfynell.
Rydw i'n mynd i glirio'r llanast cyfan gan Ctrl-L. Gallwn eich unig
sychu popeth yn lân, ac yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud
helo eto, Enter.
Felly beth sydd wedi digwydd nawr?
Nawr pob un o'r gwallau hynny aeth i ffwrdd.
Felly beth rwyf wedi ei wneud mewn gwirionedd?
Rydw i wedi dysgu dim ond y cyfrifiadur y llinyn yn bodoli, ac mae'n
yn y ffeil o'r enw cs50.h.
Felly rhoi'r gorau i gwyno, oherwydd yn awr eich bod yn gwybod ble i ddod o hyd i
datganiad y swyddogaeth honno fel eu siarad.
Lle mae'n bodoli yn y byd.
>> Felly nawr rwy'n mynd i fynd yn ei flaen ac yn rhedeg helo.
Yr wyf yn ymddangos i gael dolen ddiddiwedd, dim byd yn digwydd yn.
Felly, mae angen i mi deipio rhywbeth yma, ar y dde.
Mae'r llinell gyntaf y cod yn fy rhaglen GetString.
Felly, mae'n llythrennol yn aros i mi gael llinyn.
Felly, yn yr ystyr hwnnw ie, mae'n dolen ddiddiwedd.
Mae'n debyg yn GetString yw ymddygiad diofyn ein bod yn
Ysgrifennodd - y staff -
mai dim ond yn dweud aros ac aros ac aros ac aros ac aros,
nes bod y defnyddiwr yn rhoi llinyn trwy deipio rhywbeth i mewn
Felly, gadewch i mi fynd yn ei flaen a theipiwch D-a-v - i-d, Enter.
Ac yno y mae hi, helo David.
>> Nawr mae hyn yn ymddangos fel mai dim ond gweithred?
Gadewch i mi fynd yn ei flaen a theipiwch yn Tommy.
Mewnbynnu, iawn, ymddengys ei fod yn gweithio.
Gwaith i Rob, sy'n gweithio i Zamyla, yn gweithio ar gyfer - iawn.
Felly, mae'n mynd i weithio, yn fwyaf tebygol.
Felly, dylai argraffu beth bynnag yr ydym mewn gwirionedd yn ei roi,
a gallwn fod ychydig yn anodd yma.
Gadewch i ni weld os ydym yn gwneud rhywbeth fel helo.
A all fynd dros yma, gadewch i ni weld, copi, past.
Dydw i ddim yn mynd i fod yn gallu bastio hynny droeon yma.
Gludo, iawn, Shift + Ctrl + V. Felly, yr hyn y gallai
digwydd sy'n ddrwg yma?
>> Iawn, felly, segfaults.
Felly, bydd rhai ohonoch sydd â chefndiroedd blaenorol yn gwybod bod
yn gyffredinol, gan roi cyfrifiaduron llawer o fewnbynnau pan fyddant yn
yn ôl pob tebyg ni fwriedir iddynt dderbyn enwau hir fel hyn - drwg
i bethau ddigwydd.
Yn wir, yn y byd y we, hefyd, bydd hyn yn digwydd gryn dipyn,
lle pan fyddwch yn dylunio gwefan, pan fyddwch yn
dylunio Facebook, rhaid i chi wneud penderfyniadau mympwyol i fyny
blaen, fel pa mor hir y bydd rhywun
Facebook enw defnyddiwr fod yn?
Neu pa mor hir fydd enw rhywun gyntaf?
Pa mor hir fydd rhif ffôn rhywun fod yn ac yn y blaen.
Ac os rhaglenwyr gwneud rhagdybiaethau drwg, rhaglenni torri
oherwydd eich bod yn ceisio rhoi mwy o allbwn, mwy o fewnbwn
yn hytrach, nag sydd ganddynt cof.
Neu RAM a ddyrannwyd ar ei gyfer, ac felly os cefais yn awr daro Enter,
y rhaglen yn gweithio mewn gwirionedd, oherwydd ein bod yn y llyfrgell
ac rydym mewn gwirionedd yn disgwyl yr achos arbennig hwn.
Ond heb os y semester hwn, byddwch yn ysgrifennu o leiaf un
rhaglen a fydd yn dweud y geiriau hyn.
Cofiwch hyn wythnosau o hyn, efallai dau ddiwrnod o hyn.
Wall yn beth drwg.
Bydd yn cyfeirio at eich gwneud rhywbeth bod y cyfrifiadur
nid oedd yn rhagweld.
Ac yn yr achos hwnnw, gallwch chi, rhaglennydd, nid oedd yn rhagweld.
Mae llawer yn hoffi beth mae hyn yn pentwr o sanau, roedd amryw o
achosion cornel gallem fod wedi dod ar eu traws.
Yn yr un modd mewn rhaglenni os nad ydych yn rhagweld faint o amser yn
enw rhywun yn mynd i fod.
Neu beth os oes gen i ddefnyddiwr maleisus, a'i enw i yw
mewn gwirionedd yn eithaf byr, ond maen nhw jyst yn ceisio
i llanast gyda mi?
Beth sy'n mynd i fod yn ymddygiad fy rhaglen?
Wel, yn yr achos hwnnw, gallai rhywbeth mewn gwirionedd yn damwain.
>> Felly, gadewch i ni wneud hyn.
Mewn 90 munud, mae hwn yn ofnadwy o hir amdano
i wneud gwyddoniaeth gyfrifiadurol.
Pam nad ydym yn mynd i'r arfer o gymryd pum munud
torri yma, a phan fyddwn yn dod yn ôl, byddwn yn plymio i mewn i rai
rhaglenni mwy cymhleth a chymhellol?
Pum munud.
>> Mae pob hawl.
Felly, un sylw cyflym.
Dywedir wrthyf fod er bod hyn oedd ar y sgrîn cyn, beth
ddaeth allan o fy ngheg yn cs50.net/rsvp.
Mae hyn yn gywir. cs50.net/lunch.
Felly nawr gallwch roi cynnig RSVPing ar gyfer hyn ar / cinio.
Ond gadewch i ni wneud hyn yn awr.
Felly, mae hyn wedi bod yn super gyflym, super newydd ar gyfer llawer o Folks.
Hen het ar gyfer rhai Folks.
Felly, gadewch i ailddirwyn am ddim ond ennyd, a gweld sut y cawsom ein
yr allbwn y byd helo dim ond funud yn ôl.
>> Felly, yn gyntaf, mae hyn Offer CS50.
Unwaith eto, darn o, problem meddalwedd osod 1 yn mynd i ddweud wrth
i chi sut i lawrlwytho, lle i lwytho i lawr, beth i glicio
ac yn y blaen.
Ac yna ar ôl i chi ddilyn y cyfarwyddiadau, byddwch yn gallu
i wneud y gorau eich ffenestr, a bydd eich Mac neu PC edrych yn
rhywbeth bach fel hyn.
Mae cefndir du, blygell gartref ar y brig lle mae pob
eich ffeiliau yn mynd, a sbwriel yn gallu ar yr ochr chwith uchaf,
dewislen ar y gwaelod.
Felly, unwaith eto, 'n bert yn debyg o ran ysbryd i'r Mac OS neu Windows,
er ei fod yn digwydd i fod Linux.
Felly, beth oedd y cam nesaf fydd yn ei wneud?
Wel, rydym yn dechrau ysgrifennu rhaglenni.
Ac yn cofio ers yr wythnos ddiwethaf bod yr holl mae'n ei gymryd i ysgrifennu
rhaglen yn olygydd testun syml,
fel Notepad neu TextEdit.
A dweud y gwir, hyd yn oed gallwch ddefnyddio Microsoft Word.
Ond bydd pethau drwg yn digwydd yn y pen draw, oherwydd dyna iawn
llawdrwm ateb ar gyfer ysgrifennu rhaglen, yn ogystal mae'n chi helpu
achub ef yn y fformat ffeil anghywir.
Ond dim ond, golygydd testun prosesydd geiriau, yn ymwneud ag sy'n
sydd eu hangen i ysgrifennu rhaglen.
>> Felly, yn y Appliance CS50, gallwn wneud hyn mewn un ffordd syml.
Gallwn cliciwch ar yr eicon ar y chwith gwaelod.
Ac eto, problem a osodwyd 1 Bydd eich cynghori am hyn, a voila -
byddwch yn cael y rhyngwyneb du a gwyn lle gallwn ddechrau
ysgrifennu cod.
Felly, gadewch i ni ddechrau ysgrifennu rhaglen syml super eto.
Rydw i'n mynd i fynd i fyny i Ffeil, Achub, ac yr wyf i'n mynd i alw
hyn, gadewch i ni ddweud, hello2.c.
Ac Im 'jyst yn dweud iddo gan glicio ar jharvard, roi
yn ei cyfeiriadur cartref, nid wyf yn wir gofal
lle mae hyn yn un yn mynd.
Ac yna Achub.
Ac yn awr y gallaf ddechrau ysgrifennu fy rhaglen.
Ac yr wyf yn cofio o'r cyfnod cyn bod rhaid i mi ysgrifennu int
prif (gwag).
Zoom i mewn ar y chwith uchaf.
Ac yna yr wyf am ei ddweud printf, cymryd dau.
Ac yn awr mae Newline, dyfynnwch agos, yn agos
cromfachau, hanner colon.
Ac yna dwi'n mynd i lawr yma i fy ffenestr terfynell sy'n
yn rhan annatod o gedit, dim ond er hwylustod.
Ac yr wyf i'n mynd i fynd yn ei flaen ac ysgrifennu gwneud helo, ond nid
helo ei ben ei hun, hello2.
>> Felly, fy ffeil a elwir hello2.c. Fy ffeil felly
dylid galw hello2, yn yr achos hwn.
Dammit, beth wnes i ei wneud o'i le?
Mae pob hawl, felly yr wyf yn amlwg hepgor llinell, os ydych yn cofio beth
rhaglenni blaenorol yn edrych fel.
Ond gadewch i ni weld os na allwn canfod hyn ar wahân.
Yn anffodus, rhan fwyaf o bobl sy'n ysgrifennu y rhaglenni y mae
byddwn yn ysgrifennu nid yw rhaglenni yn symleiddio pethau i gyd fod yn dda.
Felly mae'n rhaid i fath o sgimio dros hyn nad yw'n hollol gwneud
synhwyro yma a gweld os gallwn chyfrif i maes beth sydd o'i le.
Mae'r llinell gyntaf yn dweud mae ymhlyg datgan C
swyddogaeth llyfrgell printf gyda int fath.
OK, yr wyf yn deall yn rhan o hynny.
Ond mae'n ymddangos ei fod yn crybwyll y ffaith fy mod yn defnyddio printf
anghywir, rhywsut.
A pha synnwyr a yw'n anghywir?
Doeddwn i ddim yn dysgu y cyfrifiadur ei fod mewn ffeil
a elwir yn stdio.h.
Nawr dim ond rhaid i jyst gofio nawr bod printf yn
yn stdio.h, ac yn wir, bydd yna eraill
swyddogaethau yn y ffeil ag y byddwn yn dod i arfer ag.
>> Felly nawr gadewch i mi fynd yn ei flaen a tharo Ctrl-L i ddim ond glir bod
i ffwrdd, ailgynnal gwneud hello2, a voila.
Ac mae hyn yn gorchymyn unwaith eto, yn fwy cymhleth nag y byddwn yn esbonio i
dibenion heddiw.
Ond yn rhedeg clang, a clang yn cymryd cod ffynhonnell a
poeri allan 0s a 1s.
A'r rhai 0au ac 1 yn yr achos hwn yn cael eu galw yr hyn?
Iawn, gwrthwynebu cod.
Ac y ffeil eu bod yn ei alw, felly,
hello2, yn yr achos hwn.
Gan fod fy ffeil testun yn hello2.c, Enter.
Ac yn awr yr wyf wedi cymryd dau, pwynt ebychnod ebychnod
pwynt, pwynt ebychnod.
Mae pob hawl, felly mae gennym bellach y gallu i gael llinynnau,
mae'n debyg.
Wel, beth arall allwn ni ei gael gan ddefnyddwyr?
>> Wel yn y llyfrgell CS50, mae swyddogaethau eraill sy'n
yn mynd i symleiddio ein bywydau yn y dyddiau cyntaf.
GetChar, GetDouble, GetFloat, GetInt,
GetLongLong, GetString.
Wel, gadewch i dynnaf oddi ar yr hawsaf y rhain yn gyntaf.
GetString llythrennol yn gwneud hynny.
'I jyst yn eistedd yno, yn disgwyl i'r defnyddiwr i deipio rhywbeth i mewn,
a chyn gynted ag yr wyf deipio rhywbeth i mewn ac tharo Enter, mae'n
gwneud rhywbeth gyda gwerth hwnnw.
Felly, gadewch i ni fynd yn ôl at yr enghraifft honno i weld yn union beth
GetString yn ei wneud.
Gadewch i mi fynd yn ei flaen ac yn agor i fyny yn gedit, hello.c, a dwyn i gof
yr hawl honno cyn yr egwyl, dyma lle rydym yn gadael i ffwrdd.
>> Felly, gadewch i ni bellach yn ymhelaethu ar wahân mewn mwy o fanylder.
Felly, ar llinell 6, mae dau beth
digwydd ar hyn o bryd.
Mae'r arwydd cyfartal yn gwahanu hanner cyntaf ac ail hanner.
Felly, ar yr ochr chwith yr arwydd cyfartal, rydym yn
dweud llinyn s.
Ac yna, dim ond termau lleygwr, beth yw llinyn s
wneud, yn eich barn chi?
Mae'n creu beth?
Felly, mae'n creu llinyn o'r enw s.
Nawr beth mae hynny'n ei olygu mewn gwirionedd?
Wel, mae'n cadw lle ar gyfer llinyn o'r enw s.
Dyw hynny ddim yn hollol iawn.
Beth mae hyn yn ei wneud?
Cyfrifiaduron Wel, fel y gwyddoch, yn cael 'n anawdd drives, dyna lle
eich ffeiliau yn cael eu storio.
Cyfrifiaduron wedi RAM, a dyna lle mae rhaglenni yn cael eu llwytho
tra eu bod yn rhedeg.
Felly, pan fyddwch yn dwbl-glicio ar eicon a Microsoft Word yn agor
i fyny, Microsoft Word yn rhedeg, fel petai, yn RAM, sydd yn
y rhan electronig o'ch cyfrifiadur.
Nid y corfforol, rhan mecanyddol sy'n ei nyddu, lle
data yn cael ei storio yn gyffredinol yn y tymor hir.
Felly llinyn s wedi ei 'n bert lawer ddweud wrth y cyfrifiadur roi i mi
digon o RAM i osod llinyn.
Nawr bod 'na dipyn o gorsymleiddio, oherwydd
pa mor fawr yw'r llinyn yn mynd i fod?
Wel nid ydym mewn gwirionedd yn gwybod eto, felly yn ystod yr wythnosau i ddod
byddwn mewn gwirionedd yn tynnu'n ôl yr haen sydd yn llinyn a
byddwn yn dweud wrthych beth y mae mewn gwirionedd.
Llinynnol, ar hyn o bryd, yn unig yw symleiddio braf ein byd.
Ond mae llinyn s datgan llinyn o'r enw s, am y tro.
Yn datgan llinyn.
Mae'n cadw'r ychydig o le yn RAM ar gyfer y llinyn y defnyddiwr yn
am i deipio.
>> Nawr gadewch i ni edrych yn hawl yr arwydd cyfartal.
Felly, mae'n dweud GetString ().
A bwyll bach gwirio.
Mae'r ffaith nad oes dim byd tu mewn i'r cromfachau
awgrymu beth am GetString?
Mae'n cymryd unrhyw ddadleuon.
Hynny yw, nad ydych yn gallu dylanwadu ar ei hymddygiad mewn unrhyw ffordd.
Bob tro y byddwch yn ei ddefnyddio, bydd yn cael llinyn a dyna ni.
Mewn cyferbyniad, printf, gobeithio ei ymddygiad yn
newid bob tro.
Fel arall, mae'n swyddogaeth argraffu 'n bert ddiwerth os
mae'n ei wneud yr un peth.
Os yw'n bob amser yn argraffu David neu rywbeth
fympwyol drwy'r amser.
Felly printf yn gwneud synnwyr i gael dadl.
Nid GetString oes ei gwir angen dadl, gan fy mod am
i gael llinyn gan y defnyddiwr ac mae'n y defnyddiwr pwy sy'n mynd
i gyflenwi egni trwy deipio mewn llythrennau gwahanol
bob tro ar y bysellfwrdd.
>> Felly beth mae GetString yn y pen draw?
Meddyliwch am y peth fel y blwch hwn fach ddu.
Ac mae hyn yn blwch du yn cymryd unrhyw fewnbwn, ond pan fyddwch yn bang ar
, mae'n poeri allan llinyn fod y defnyddiwr wedi teipio i mewn
Ac mae'r ffaith fod yna arwydd cyfartal yno yn golygu cymryd
yr hyn sy'n boeri allan ar y dde ac yn ei storio y tu mewn
beth sydd ar y chwith.
Arwydd Felly gyfartal yma, nid mewn gwirionedd yn golygu
cydraddoldeb, yn hytrach dechnegol olygu aseiniad.
Cymerwch y gwerth ar y dde, ac yn ei roi yn y
amrywiol ar y chwith.
Felly dyna'r cyfan sy'n digwydd yno.
>> Nawr yn llinell 7, rydym yn galw printf.
Felly, gobeithio printf yn cael braidd yn ddiflas erbyn hyn.
Felly argraffu llinyn fformatio.
Beth llinyn?
Argraffwch, "h-e-l-l-o,% s
! \ N ".
Mae pob hawl, felly beth ydw i eisiau plug-in ar gyfer% s?
Yn llythrennol, beth bynnag ei ​​storio yn s.
Felly, yn yr achos hwn, gwiriad pwyll bach, faint o ddadleuon yn
printf cymryd?
Iawn, yr wyf yn clywed un.
Clywais un eto.
Dau, clywais ddau.
A beth am dri?
Iawn, tri?
Ardderchog.
Mae tri ateb posib, dim ond un ohonynt sy'n gywir.
Felly, unwaith eto dadleuon dylanwadu ar ymddygiad swyddogaeth.
Yn y gorffennol, printf oedd dim ond un ddadl.
"Helo byd" oedd dadl un.
Fodd bynnag, yn awr, sylwch lle mae hyn yn coma.
Mae'r coma y tu allan i'r dyfyniad / unquote, sy'n golygu
hey printf, dyma daw ail ddadl.
>> Felly, atalnodau yn y rhan fwyaf o ieithoedd rhaglennu
dadleuon lluosog ar wahân.
Felly, yr ateb yma yn bendant nid un, oherwydd
mae hyn yn coma.
Felly cyn lleied â phosibl, printf yn ymddangos yn cymryd dwy
dadleuon hyn o bryd.
Ond mae'r cyfle ar gyfer cwestiwn tric yma yw beth
am y coma?
A yw hyn yn awgrymu bod yna mewn gwirionedd 3 dadleuon?
Mae hyn, mae hyn, ac mae hyn.
Felly dim, oherwydd bod coma yn y tu mewn o'r dyfyniadau, a oedd yn
golygu ei fod yn wir dim ond esthetig Saesneg.
Mae ganddo ddim i'w wneud gyda'r nifer o
dadleuon yn y rhaglen hon.
Felly, mae hyn coma y tu allan i'r dyfynodau dwbl.
Ac yna yn dychwelyd 0.
Am y tro gadewch i 'jyst fath o gymryd y un ar ffydd ar gyfer
heddiw, a dim ond yn gwybod bod pan fydd swyddogaethau yn cael eu gwneud gweithredu
linellau o god, dylai fel rheol ddychwelyd rhywfaint o werth.
Yn yr achos hwn, dim ond oherwydd mae'n rhaid i brif dychwelyd int,
dim ond y ffordd y mae'r C iaith yn gweithio.
>> Felly, am fod dim byd yn mynd o'i le, yn teimlo fel hyn rhaglen
iawn, Fi jyst galed godio yn gyfnewid 0.
Ond mewn gwrthgyferbyniad, a dw i'n mynd i ysgrifennu hyn mewn cod ffug
yn awr, yn debyg iawn i Joseff oedd pan wnaethom yr hosan
enghraifft yr wythnos diwethaf.
Os oes rhywbeth yn mynd o'i le - nid yw hyn yn cod gwirioneddol - aeth
anghywir, yna dychwelyd, gadewch i ni ddweud, 1.
Arall dychwelyd 0.
Felly, dyma lle rydym yn mynd â hyn.
Nid yw hyn yn wir C cod, dim ond pseudocode.
Ond mae hyn yn sut y byddwch yn dychwelyd
werthoedd posibl gwahanol.
Ond am nawr, Im 'jyst yn mynd i fynd yn ei flaen ac yn dychwelyd 0.
Mae pob hawl, unrhyw gwestiynau hyd yma ar, ymarferoldeb cystrawen,
neu debyg?
Yeah, yn ôl.
>> GYNULLEIDFA: [Anghlywadwy]
DAVID Malan: A allwch chi siarad ychydig yn uwch?
Pam wnaeth y rhaglen 0 dychwelyd, a?
GYNULLEIDFA: [Anghlywadwy]
DAVID Malan: O, mae hynny oherwydd cefais ddiog, sori.
Dim ymateb academaidd da, yn dychwelyd 0.
I fath o achub hyn, drwy ddweud dechnegol C, os y prif
nid yw'n benodol dychwelyd gwerth, bydd 0 yn cael eu dychwelyd
yn awtomatig i chi.
Pa yn wir, nid Im 'jyst yn cynnwys i fyny.
Ond, dylwn fod wedi ei wneud fel hyn.
Dim bwyd parod diddorol na'r hyn a heblaw am fy camgymeriad.
Yeah?
>> GYNULLEIDFA: Fel arfer pan fyddwch yn teipio yn ddi-rym, sy'n golygu eich bod
Peidiwch â dychwelyd rhywbeth.
DAVID Malan: Cywir.
Os yn lle hynny, gallwch nodi cyn i'r enw swyddogaeth, er
enghraifft yma, ddi-rym, yna bydd y swyddogaeth
nid yw'n dychwelyd unrhyw beth.
Ac felly byddwn yn dweud, dychwelyd neu dim byd o gwbl,
a byddai hynny'n gyson.
A byddwn yn dod yn ôl at hynny.
A dim ond FYI, un o'r dalfeydd ag anableddau dysgu
rhaglennu mewn byd sydd â channoedd o lyfrau a
cannoedd o wefannau allan yna byddwch yn ddieithriad
gweld cystrawen gwahanol mewn gwahanol lyfrau
gan wahanol bobl.
Sylweddoli fe wnawn ein gorau yn adrannau a darlithoedd i fod yn
gyson.
Ond weithiau fe welwch cystrawen sy'n gwrthdaro.
Felly, pryd bynnag yn ansicr, gofynnwch.
Ac yn gyffredinol, byddwn yn cymryd gofal mewn darlithoedd ac adrannau i
bron bob amser ei gyflwyno yn y ffordd gywir.
Ac yr wyf yn dweud bron bob amser, oherwydd bod achos dan sylw.
Cwestiynau eraill?
>> GYNULLEIDFA: A yw% s yn bodoli y tu allan i'r teclyn?
DAVID Malan: A yw% s yn bodoli y tu allan i'r teclyn?
Ydw.
Felly,% s wedi ei wneud gyda C. Mae'r ffaith ein bod yn ei ddefnyddio mewn
yr offer sylfaenol wedi ddim i'w wneud â'r
nodweddion yr iaith rydym yn ei ddefnyddio.
Yn wir, yr wythnos diwethaf pan fyddwn yn defnyddio fy Mac, ysgrifennais
C cod ar fy Mac.
Gallwn fod wedi defnyddio% s ar fy Mac, a gallech ei ddefnyddio ar
'ch Ffenestri chyfrifiadur os ydych yn gosod casglwr, fel
Visual Studio gan Microsoft.
Felly,% s.
Mae popeth rydym yn ei wneud tu mewn y ffenestr heddiw wedi i
wneud gyda C. Ac yn y bôn dim byd i'w wneud â'r
gweithredu system dan sylw.
Ar y llaw arall, y ffenestr derfynell du a gwyn - pan
Rwyf i'n teipio pethau fel ls, a rm, a cd -
sydd wedi ei wneud gyda'r system weithredu a'r
lywio o gwmpas.
Yeah.
GYNULLEIDFA: Yr wyf yn golygu y llyfrgell, y llyfrgell CS50.
DAVID Malan: Iawn, felly os ydych yn golygu y llinyn keyword, y
ond yn bodoli yn y llyfrgell CS50, yn gywir.
Nid yw hynny'n bodoli yn C ei hun, ac yn wir mewn cwpl
o wythnosau, byddwn yn ei daflu i ffwrdd y llyfrgell CS50 a dechrau
wneud pethau o'r dechrau ein hunain, fel petai.
Cwestiynau eraill?
Yeah.
>> GYNULLEIDFA: [Anghlywadwy]
DAVID Malan: Cwestiwn da.
A yw'r achos gorchmynion sensitif?
A gadewch i mi wneud gwahaniaeth yma.
Felly gorchmynion yn gyffredinol pethau y byddwn yn ysgrifennu yn y
waelod y ffenestr, yn y ffenestr terfynell.
Byddai unrhyw beth yma fod yn ddatganiadau neu C cod.
Ond yn y ddau achos, yr ateb yw yr un fath, ie.
Mae'r ddau o'r amgylcheddau hyn, y cod C ar y brig a'r
gweithredu system llinell orchymyn ar y
gwaelod, yn achos sensitif.
Felly, mae'n rhaid i chi fanteisio GetString gyda chyfalaf G,
cyfalaf S. Rhaid i chi ysgrifennu printf ym mhob llythrennau bach.
Mae'n rhaid i chi deipio ls yn yr holl llythrennau bach.
Felly, ym mron pob sefyllfa hon semester, achos bydd, yn
wir, mater.
Ydw.
>> GYNULLEIDFA: [Anghlywadwy]
DAVID Malan: Ah, felly iawn, beth pe bai gennym ffeil
a elwir yn hello.d.
Felly, mae'n troi allan D yn iaith raglennu.
Ac felly mewn rhai achosion, gallem ysgrifennu mewn gwirionedd rhaglen yn
y ffeil ac wedi ei llunio yn yr un modd.
Gallwn, ac mewn gwirionedd, ateb byr yw, nid wyf yn gwybod.
Felly, rydym yn mynd i wneud hyn.
Gadewch i mi fynd yn ei flaen ac yn creu ffeil newydd.
Ac y sbin yma, yn onest yn gyffredinol, yn pryd bynnag unrhyw amheuaeth
y semester, ac mae gennych eich offer neu gyfrifiadur
agor, mynd yn ei flaen a rhoi cynnig ar rywbeth.
Felly dw i'n mynd i achub ffeil o'r enw hello.d.
Achub hyn.
Ac yr wyf i'n mynd i redeg yn gwneud helo Enter.
Roedd yn ymddangos i awgrymu bod c yn fwy tebygol o
na d, yn yr achos hwn.
Cwestiynau eraill.
Yeah.
>> GYNULLEIDFA: [Anghlywadwy]
DAVID Malan: Iawn, yn dweud bod unwaith yn rhagor.
GYNULLEIDFA: [Anghlywadwy]
DAVID Malan: Sut fyddech chi'n mynd ati i diagnosis hwnnw neu
datrys problemau hynny?
Felly fwyaf tebygol, oherwydd eu bod gwahanol ieithoedd,
fwyaf tebygol y byddech yn cael yn gyfan gwbl
raglen wahanol outputted.
Byddech yn cael negeseuon gwall hollol wahanol.
A hefyd unig o ran dyluniad, byddai'n dadlau yn
penderfyniad dylunio gwael i gael ei ysgrifennu dau wahanol
ieithoedd gyda ffeiliau a enwir bron yn union, yn
yr un cyfeiriadur union, gan ddefnyddio
offeryn awtomatig fel gwneud.
Felly gallaf hefyd yn gwthio yn ôl a dweud mewn 15 mlynedd o wneud hyn,
byth yn gwneud y camgymeriad.
Gallai ddigwydd.
Ond nid dim ond amrywiol, yr wyf yn meddwl,
amddiffynfeydd logistaidd yn eu lle.
Byd Gwaith yn y negeseuon gwall a fyddai'n ddilyn, a fyddai'n
yn y pen draw yn datgelu beth yw'r mater.
Ond achos cornel posibl.
>> Mae pob hawl, felly gadewch i ni gyflwyno dim ond cwpl o eraill
nodweddion yma yn awr, fel y gallwn ddechrau adeiladu i fyny i fwy
ac yn fwy cymhleth rhaglen.
Felly, yn gyntaf oll, mathemateg.
Felly enghreifftiau mathemateg yn unig fath o hawdd yn yr wythnos gyntaf.
Nid yw hyn yn dweud bod yr holl raglenni yn ymwneud â
mathemateg.
Yn sicr, deall nodweddion gwahanol
mathemateg, algebra yn arbennig, yn
eithaf berthnasol yma.
Yn lefel uwch dosbarthiadau CS, algebra llinol,
calcwlws, ac yn y blaen.
Ond yn sylweddoli nid yw'r rhan fwyaf o'r hyn a byddwn yn gwneud hyn yn lleihau semester
i mathemateg, ac yn sicr nid i rhifyddeg, fel y cyfryw, ond mewn gwirionedd
i ddim ond rhesymeg a meddwl yn ofalus.
Ac felly y cysylltiad hwn bod gwyddoniaeth gyfrifiadurol wedi cael hir,
yn enwedig ar lefel ysgol yn uchel, gyda mathemateg, yn
ychydig yn gamarweiniol.
Oherwydd bod y rhan fwyaf o'r rhaglenni y byddwn yn ysgrifennu, mewn gwirionedd, yn
math o lefel uwch ac yn canolbwyntio ar ddatrys problemau hynny,
yn siwr y gallai, defnyddio rhai adio, tynnu, ac amrywiol
fformiwlâu mathemategol neu yn y blaen,
ond ar ddiwedd y dydd, mae'n ymwneud â meddwl, ac nid
dim ond gweithredu'r hyn y gallech fod wedi'u gwneud ar fel TI
cyfrifiannell yn yr ysgol uwchradd.
>> Felly, gyda hynny ddywedodd, gadewch i ni bellach yn gwneud rhywbeth gyda hyn
gweithredwyr mathemategol sydd yn bodoli fel y gallwn daith
dros rai o'r agweddau sylfaenol o raglenni, neu mewn
yr achos hwn C. Felly mae, fel y llyfrgell CS50 yn awgrymu,
a heddiw rydym yn unig gan ddefnyddio GetString - ac mewn eiliad
efallai un swyddogaeth arall -
ond mae fathau data gwahanol mewn cyfrifiadur.
Ar ddiwedd y dydd, cyfrifiaduron ond yn gwybod 0s a 1s.
Ond dwyn i gof bod yr wythnos diwethaf buom yn siarad am y system ddeuaidd
o ran cynrychioli rhifau, fel y rhif 0, ac 1, a 2,
yr holl ffordd ar hyd at 8, fel yn Nate fideo.
Ac yna gallwn ddibynnu llawer uwch wrth i ni
oedd ar y llwyfan yma.
Ond os ydych am i gynrychioli nid yn unig niferoedd ond llythrennau,
ni, y bodau dynol, yn gorfod dod i fyny gyda rhai mympwyol
confensiynau, lle os ar ddiwedd y dydd i gyd fy nghyfrifiadur
wedi y gallu i fynegi 0s a 1s, yn dda byddem yn well
dechrau safoni patrymau 0s a 1s sy'n cynrychioli
pethau gwahanol.
Mae patrwm o 0s a 1s sy'n cynrychioli y llythyr a.
Patrymau 0s a 1s sy'n cynrychioli'r z llythyr.
Patrymau 0au ac 1 sy'n cynrychioli'r glas lliw, neu
coch, neu yn y blaen.
Mae angen i ni ddefnyddio pob un o'r rhain 0s a 1s i fynegi ein hunain yn
gwahanol gyd-destunau, mewn ffyrdd gwahanol nad ydynt yn
reidrwydd yn rhifol.
>> Felly, o ran cynrychiolaeth, C wedi fathau data gwahanol,
ac rydym wedi gweld un o'r rhain hyd yn hyn.
Gwelsom int, a hysbysiad beth sydd ddim ar y sgrin
ar hyn o bryd yn llinyn.
Nid yw'r llinyn, mewn gwirionedd, yn bodoli yn C. Unwaith eto, mae'n
symleiddio rydym yn cyflwyno am y tro cyntaf
cwpl o wythnosau.
Mae torgoch yn gymeriad unigol.
Mae arnofio yn rhif real, gydag un pwynt degol a rhifau i
y chwith a'r dde ohono.
Mae dwbl yn beth, i'r rhai sydd â chefndir yn ôl ymlaen llaw?
Felly dwbl yn ddwywaith rhywbeth.
Ychwanegu dwywaith mor fanwl iawn.
Felly beth mae hyn yn ei olygu?
Felly, ym mhob un o'r achosion hyn, y byd math o safoni
faint o ddarnau yn cael eu defnyddio i gynrychioli
pob un o'r pethau hyn.
Felly, os ydych wedi gwylio fideo Nate ASCII yn barod ar gyfer rhan
o pset 0, neu yn ddiweddarach yr wythnos hon chi, byddwch yn ôl pob tebyg yn gwybod
bod ASCII -
sylwadau cymeriad -
defnyddio faint o ddarnau?
Ac efallai y byddwch hyd yn oed yn cofio o'n demo yr wythnos diwethaf o sut y
llawer o bobl oedd ar y llwyfan.
Felly, 7 neu 8, yn nodweddiadol.
Felly, yn gyffredinol 8, ac mae yna rywbeth o'r enw fel y'i hestynnwyd
ASCII sy'n defnyddio'r holl 8 did, yn hytrach na 7.
Ond yn gyffredinol, rydym yn siarad mewn pwerau o 2, felly yn yr achos hwn, 8.
Felly, golosg mewn iaith raglennu fel arfer 8 did.
Felly mae int yn gyffredinol 32 catiau.
Mae arnofio yn gyffredinol 32 catiau.
Mae dwbl yn gyffredinol 64 did.
A beth mae hynny'n ei olygu?
Mae'n golygu y gallwch gynrychioli rhifau mwy, neu yn achos
niferoedd go iawn, gallwch gael rifau llawer mwy ar ôl y
lle degol.
Trachywiredd Mae llawer mwy, yn yr achos hwnnw.
Erbyn hyn, mae hir hir yn cael ei enwi yn anffodus.
Felly mae 'na int sydd yn 32 catiau.
Mae hir sydd, Na, 32 did.
A hir hir sydd yn 64 did.
Fodd bynnag mae rhai o'r rheiny yn gyd-destun sensitif; mae'n dibynnu
pa fath o gyfrifiadur sydd gennych.
Felly, yn gyffredinol, byddwn yn nodi mewn gwaith cartref neu mewn cwis pan
mae hynny'n wirioneddol bwysig.
Ond y pwynt yw mae pob un o'r rhain wahanol
sylwadau yma.
>> Felly, gadewch i ni mewn gwirionedd yn plymio i mewn i raglen.
Yn hytrach na ysgrifennu hyn un o'r newydd, gadewch i mi fynd yn ei flaen
ac yn agor i fyny o cod ffynhonnell heddiw - pob un ohonynt yn
ar-lein - os ydych am i botsian o gwmpas ar-lein, neu enillion ar
Dydd Mercher a'r offer ar eich cyfrifiadur, cyfarwyddiadau
Bydd y cysylltu ar dudalen hafan y cwrs.
Dyma raglen syml super.
Ond mae llawer mwy o rywbeth bach newydd ar y brig a
Nid oedd gennym o'r blaen.
Mae llawer gyfan o linellau glas o destun.
Felly, mae'r llinellau glas yn cynrychioli sylwadau.
Felly, mae'n eithaf defnyddiol mewn rhaglen i fod yn gallu ysgrifennu
rhai sylwadau i chi eich hun, neu i gydweithwyr, neu ffrindiau, neu
cymrodyr addysgu, y math yna o disgrifio'r hyn sy'n mynd ymlaen yn
y ffeil, ond mae ganddynt ddim i'w wneud gyda C cod ei hun.
Dim byd i'w wneud â'r rhaglen swyddogaethol, dim ond
estheteg.
Felly, y ffordd yr ydych yn gwneud hyn yn C yw chi fel arfer yn dechrau ar eich
sylwadau gyda / *, a byddwch yn gorffen eich sylwadau gyda
* /.
Ac os ydych yn wirioneddol rhefrol ac yn hoffi i dynnu math o luniau,
yna byddech yn rhoi llawer gyfan o sêr, byddech yn gwneud
blwch bach fel hyn.
Ond nid yw hynny'n bwysig.
Yr unig beth sy'n bwysig yw y cyntaf
a. olaf
Mae hyn yn beth a elwir yn aml sylw-lein.
A 'i' jyst confensiwn dynol i yn aml yn gwneud y sêr a blwch
pethau mewn fel hyn os oes gennych lawer o amser rhad ac am ddim.
>> Felly, ar ôl i chi wedi ysgrifennu mewn rhai sylwadau, yn gyffredinol, yn dod
yn ddigon dewr gwirioneddol y rhaglen.
Dyma ein cyfarwydd # cynnwys .
A dim ond gyflym, mae hyn yn angenrheidiol neu nad oes angen?
GYNULLEIDFA: Angenrheidiol.
DAVID Malan: Felly nid oes angen mewn gwirionedd.
Felly pam, fodd bynnag, nid yw hyn yn angenrheidiol?
Felly, does dim printf.
Yn wir.
Y cyfan yr ydym yn ei wneud yn y rhaglen hon yw mathemateg.
Felly gallaf mewn gwirionedd ddileu hynny.
Felly, nid ydych bob amser yn rhaid i chi gynnwys unrhyw beth o
ben y rhaglen.
>> Felly, gadewch i ni symleiddio'r bit a.
Ac yn awr sylwi ar yr hyn y mae'r rhaglen yn ei wneud.
Dim llawer o ddiddordeb.
int x = 1.
Wel, beth mae hyn yn ei wneud?
Wel, meddyliwch yn ôl at y model meddwl o'r blaen.
Mae ochr chwith y mynegiant gwneud beth?
Creu lle ar gyfer cyfanrif.
Felly, faint o le?
Wel, rydym yn digwydd gwybod nawr ei fod yn 32 catiau.
Yn flaenorol, llinyn yn dechnegol 32 catiau, ond yn fwy
ar hynny yn y dyfodol.
Ond mae int yw 32 ddarnau.
Felly, mae hyn mynegiant ar y chwith yma, int x yn unig yn dweud hey
gweithredu system, yn rhoi i mi 32 catiau chan FAHAREN -
a elwir fel arall fel 4 bytes o RAM -
fel y gallaf roi cyfanrif yn y gofod.
Pa cyfanrif oedd y dymunwch ei roi?
Wel, dim ond y rhif 1.
int y cael 2, mae'r un peth yn union er bod y
rhif yn fwy, o ran ei faint.
Y rhif ei hun yn dal i fod dim ond 32 ddarnau.
Dim ond y patrwm o ddarnau yn wahanol i
cynrychioli 1 yn erbyn 2.
int z bellach yn dweud yn rhoi i mi un arall darnau 32, alw z, a rhoi'r
grynodeb o 1 a 2 mewn 'na.
Felly, sydd bellach yn ôl pob tebyg z yn storio gwerth 3,
ac yna dychwelyd 0.
>> Yn awr y rhaglen hon, a yw'n gwneud unrhyw beth o ddiddordeb?
Felly, nid mewn gwirionedd yn gwneud dim byd diddorol, mewn unrhyw
synnwyr, oherwydd pam? Mae'n gwneud rhywfaint mathemateg.
Ond nid yw'n dychwelyd yr ateb, ar y dde.
Mae'n dychwelyd 0.
Dyw hi ddim yn argraffu'r ateb.
Felly, mae'r rhaglen hon yn sylfaenol ddi-werth, gan ei fod yn
mae yn awr.
Mae'n gwneud rhywfaint o waith.
Mae'n mynd i gymryd peth nifer o eiliadau, neu microseconds, i
rhedeg, ond nid yw'n mewn gwirionedd yn gwneud unrhyw beth
ddefnyddiol ar gyfer y bobl.
>> Felly, gadewch i ni mewn gwirionedd nawr ar agor math2, lle erbyn hyn rwy'n mewn gwirionedd
argraffu y canlyniad.
Felly, mae hyn hefyd yn gallu cael ei gasglu gan ein enghreifftiau blaenorol.
Os ydw i eisiau i wneud ychydig o fathemateg syml, int x = 1, y
= 2. z yw 1 a 2 awr.
Beth mae hyn yn mynd i argraffu amlwg?
Dim ond 3.
Felly sanity cyflym gwirio.
Gadewch i mi symud i mewn i'r cyfeiriadur.
Felly, cd source1m.
Gadewch i mi fynd yn ei flaen a theipiwch gwneud math2.
Dim negeseuon gwall ddaeth allan, felly gadewch i mi redeg -
Nid yw a.out--gadewch i mi redeg math2. Enter.
Ac yn wir, mae'n hargraffu 3.
Wel gadewch i ni edrych ar amrywiad o hyn.
Yn math3.c, mae gennym bellach yr enghraifft hon yma.
>> Mor garedig hyn yn un o ddiddorol.
Felly, yn yr un yma, ateb yn mynd i gael 1 wedi'i rannu â 10,
ac yn sylwi Rwyf wedi datgan fel fflôt.
Pam ydw i am iddo fod yn arnofio?
Wel, mae'n ffracsiwn.
Mae'n mynd i fod yn rhif real.
Felly, mae'n mynd i fod yn 0.1, gobeithio - 10%, yn yr achos hwn.
A beth ydw i'n yna am argraffu?
Wel, yr ateb hwn.
Wel, gadewch i ni canfod y rhain ar wahân yn gyntaf.
Felly, ar yr ochr chwith, ddatgan bod
arnofio, ei alw'n ateb.
Ar yr ochr llaw dde, peidiwch 1 wedi'i rannu gyda 10 ac yn rhoi y
ateb y tu mewn y newidyn.
Yn awr, y llinell hon yn edrych ychydig yn fwy cryptig.
Ond yn sylwi ar rai nodweddion cyfarwydd. % Yn golygu yma daw
dalfan.
f golygu dyma Gwerth pwynt arnawf, dim ond go iawn
rhif, rhywbeth gyda phwynt degol.
0.2 dulliau beth?
Dylai unrhyw un yn gwybod o brofiad blaenorol?
Ddau le degol.
Felly, nid ydym wedi gweld hyn o'r blaen, ond mae'r un ffordd o
arfer rheolaeth ychydig yn fwy dros printf a
Nid ddywediad yn rhoi i mi 30 pwynt ar ôl y pwynt degol,
yn lle hynny yn rhoi i mi yn unig 2.
>> Ac yna gadewch i ni fynd yn ei flaen ac yn rhedeg y.
Felly gwnewch mathemateg 3, ac yn awr gad i mi redeg mathemateg 3, Enter.
Ac nid yw hynny'n gywir.
Rydym yn ymddangos i wedi dod ar draws ein bug 1 dilys.
Wel, efallai ydw i'n jyst yn edrych yn ddigon agos.
Felly, gadewch i mi fynd i fyny yma, a gadewch imi roi 20 degol
lleoedd pwynt yno.
A gadewch i mi lunio hyn, gwnewch math3, rhedeg.
Pretty yn siwr nad yw 1 wedi'i rannu gan 10 yw 0.
Felly beth sy'n mynd ymlaen?
Wel iawn, felly mewn gwirionedd nid oes rhaid iddo wneud â hyn.
Dyna syniad da.
Mae hyn yn wir dim ond cyd-ddigwyddiad
ein bod yn gwneud hyn.
Ond dim ond i brofi nad yw hyn yn ei, 'n annhymerus'
dychwelyd rhywbeth ar hap.
Peidiwch â gwneud hyn yn y cartref, oherwydd ei fod o ddim yn iawn.
Ond gwnewch math3, gadewch i mi redeg.
Felly, wedi ddim i'w wneud â'r hyn yr wyf i'n dychwelyd, dim ond i wneud
gyda'r hyn yr wyf i'n argraffu.
Ond yr wyf yn clywed ei fod i lawr yma.
Beth?
GYNULLEIDFA: Felly mae angen i ysgrifennu'r rhifau yn
yr is-adran fel -
>> DAVID Malan: Iawn da.
Felly mae angen i ysgrifennu'r rhifau cymryd rhan yn y
adran yma fel pwynt arnawf gwerthfawrogi eu hunain.
Felly, y broblem yma yw fel o'r blaen: C, fel gyda llawer o
ieithoedd, mae fathau data gwahanol.
A'r rhai mathau data, er enghraifft, a yw'r rhain yma.
A'r mathau data dan sylw yma, pan oeddwn math 1 ac yna fe
math 10, yn ôl pob tebyg pa fathau data?
Felly, mae'n fwy na thebyg yn int, dde?
Nid yw'n bendant fflôt am nad oes degol
pwynt neu unrhyw beth fel 'na.
Felly mewn gwirionedd, mae gennyf int rannu gan int.
>> Felly, y peth diddorol am mathemateg a chyfrifiadur yw bod
os ydych chi'n gwneud is-adran gan ddefnyddio cyfanrifau -
1 wedi'i rannu â 10, ie yn 0.1.
Fodd bynnag, pan fyddwch yn rhannu'r cyfanrif gan gyfanrif, y
ateb wedi hefyd i fod yn gyfanrif dim ond oherwydd, ar hyn o bryd.
A beth yw'r goblygiadau hynny?
Wel, os yw'r ateb yn cael ei rannu 1 erbyn 10 yn dychwelyd 0.1, beth
y cyfrifiadur yn mynd i wneud yw Nid oes gennyf unrhyw syniad sut i
cynrychioli 0.1, oherwydd dyna gwerth pwynt nid fel y bo'r angen, yn
cyfanrif, mae'n mynd i dorri i ffwrdd popeth ar ôl y
pwynt degol a dim ond dangos i chi y 0 ar y dechrau.
Ac mae'r ffaith ei fod yn argraffu fel pwynt arnawf
werth, dim ond yn beth esthetig.
Mae hynny am fy mod i'n gorfodi y cyfrifiadur i argraffu hwn fel
fel y bo'r angen gwerth pwynt.
Ac yn wir yr wyf wedi datgan fel fflôt, ond y mathemateg yn
digwydd dros yma.
>> Felly, gadewch i mi mewn gwirionedd yn atgyweiria hon yn un ffordd eithaf hawdd.
Pam nad ydw i'n jyst yn ei wneud 10.0 a 1.0, er bod
dechnegol y gallwn i fynd i ffwrdd gyda dim ond gwneud un o'r rheiny.
Nawr, gadewch i mi fynd ymlaen a gwneud math3.
Gadewch i mi fynd yn ei flaen ac yn awr yn rhedeg math3, Enter.
Ac yn awr, oh bachgen.
Nawr mae gennym broblem newydd yn gyfan gwbl.
Felly well, ar y dde, rydym ni'n agosach at 0.1, ond beth yn amlwg yn
o'i le yma?
Oni bai ein bod wedi bod yn gorwedd i chi am flynyddoedd, dde?
1 wedi'i rannu gan 10 mewn gwirionedd ddim yn hollol 0.1, felly beth
wir yn mynd ymlaen yma?
Wel gallwch fath o reswm drwy hyn yn rhesymegol.
Os cyfrifiadur dim ond swm cyfyngedig o RAM i ddechrau
gyda, ac yn wir cyfrifiadur dim ond yn defnyddio 32 catiau ar gyfer
fel y bo'r angen gwerth pwynt, mae'n sefyll i resymu bod gyda
nifer cyfyngedig o ddarnau, 32 yn yr achos hwn, ie, gallwch
cynrychioli llawer o bethau.
Mae'n mewn gwirionedd yw y gall 4000000000 werthoedd gwahanol fod yn
cynrychioli gyda 32 darnau, 2 i 32, ond mae'n dal i fod cyfyngedig.
Felly, y broblem yw mae 'na nifer anfeidrol o go iawn
rhifau, ar y dde.
Os ydych yn rhoi i mi yn rhif real, gallaf bob amser yn dod o hyd i un i chi
ychydig yn fwy, ychydig yn llai, gan ddim ond tweaking y
niferoedd sydd yn ôl y pwynt degol.
Felly, os nad oes gennych nifer anfeidrol o ddarnau, byddwch yn
ni all o bosibl yn cynrychioli ddiddiwedd
nifer o rifau real.
>> Felly, mae hyn yn anfanyldeb gynhenid ​​mewn cyfrifiaduron, ac
mae hyn yn cael ei baglu dros yr holl amser hyd yn oed yn y symlaf o
rhaglenni fel hyn.
Ond hefyd mewn rhai problemau byd go iawn yn ogystal.
Yn wir, gadewch i ni gymryd eiliad i fwrw golwg ar
rhywbeth sydd mewn gwirionedd yn digwydd mewn gwirionedd.
Byddwn yn gwylio yn unig yr ychydig cyntaf o funudau, ac yna
byddwn yn postio ar-lein cyswllt.
Ond mae hyn yn dyst i'r union beth fynd o'i le, yn eithaf
yn onest, mewn ffordd drist iawn pan nad yw'r pethau hyn yn
gwerthfawrogi neu ddim ond rydym yn bodau dynol yn gwneud camgymeriadau pan ddaw i
manylion o'r fath yn gweithredu o gyfrifiaduron modern.
>> [CHWARAE VIDEO]
-Rydym yn awr yn dychwelyd i drychinebau peirianneg ar Marvels Modern.
Cyfrifiaduron.
Rydym i gyd wedi dod i dderbyn y problemau yn aml yn rhwystredig
sy'n mynd gyda nhw.
Pryfed, firysau, a glitches meddalwedd yn bris bach i
talu am y cyfleustra.
Ond mewn milwrol cyflymder uwch-dechnoleg ac uchel a gofod
ceisiadau rhaglen, gall y broblem fod yn lleiaf
chwyddo i mewn i drychineb.
Ar Fehefin 4, 1996, gwyddonwyr yn barod i lansio di-griw
Ariane 5 roced.
Roedd yn cario lloerennau gwyddonol a gynlluniwyd i
canfod faint yn union faes magnetig y ddaear
rhyngweithio gyda gwyntoedd solar.
Mae'r roced ei adeiladu ar gyfer yr Asiantaeth Ofod Ewropeaidd a
godi oddi ar ei gyfleuster ar arfordir Ffrainc Guyana.
>> -Ar am tua 37 eiliad i mewn i'r awyren, yn gyntaf
rhywbeth sylwi yn mynd o'i le, bod y nozzles oedd
swiveling mewn ffordd y maent ddim wir dylai.
Mae tua 40 eiliad i mewn i'r awyren, mae'n amlwg y cerbyd
oedd mewn trafferthion, a dyna pan fyddant yn gwneud y penderfyniad i
ddinistrio.
Mae ystod swyddog diogelwch gyda dewrder aruthrol pwyso y
botwm, chwythu i fyny y roced cyn y gallai ddod yn
peryglon i ddiogelwch y cyhoedd.
>> -Hwn oedd y fordaith gyntaf y Ariane 5, ac mae ei
dinistrio Cynhaliwyd oherwydd nam wreiddio yn y
roced meddalwedd.
>> -Y broblem ar y Ariane oedd bod nifer y
gwneud yn ofynnol i 64 did i fynegi ac roedden nhw am i drosi ei
i rhif 16 bit.
Maent yn cymryd yn ganiataol na chafodd y nifer yn
mynd i fod yn fawr iawn,
bod y rhan fwyaf o'r rhai digidau mewn rhif 64 bit yn 0au.
Eu bod yn anghywir.
>> -Mae anallu un rhaglen feddalwedd i dderbyn y
math o nifer a gynhyrchir gan un arall oedd wrth wraidd y
y methiant.
Datblygu meddalwedd wedi dod yn rhan gostus iawn o
dechnoleg newydd.
Mae'r 4 Ariane roced wedi bod yn llwyddiannus iawn.
Felly, mae llawer o'r meddalwedd a grëwyd ar gyfer ei ddefnyddio hefyd
yn y Ariane 5.
>> -Y broblem sylfaenol oedd bod y Ariane 5 yn gyflymach,
cyflymu gyflymach.
Ac nid yw'r meddalwedd wedi cyfrif am hynny.
>> -Mae dinistrio y roced yn ariannol enfawr
trychineb, i gyd oherwydd gwall meddalwedd munud.
Ond nid hwn oedd y tro cyntaf phroblemau trosi data wedi
plagued dechnoleg fodern roced.
>> DAVID Malan: Byddwn yn gadael ar hynny.
Ond mae hyn yn brawf yn union pa mor berthnasol hyd yn oed rhai o'r
manylion hyn ar lefel isaf ein bod wedi dechrau
archwilio heddiw.
Felly, hyd yn oed wrth i chi fynd ychydig yn canolbwyntio ar y ffordd efallai drwy rai o'r
y cystrawen a arcaneness yma, yn sylweddoli bod dros y
tymor byddwn yn canolbwyntio yn unig ar pa mor berthnasol yw hyn i
byd ymhell y tu hwnt CS.
Byddwn yn eich gweld ar ddydd Mercher.