[Powered by Google Translate] DAVID J. Malan: pob hawl.
Mae hyn yn CS50, ac mae hyn yn y diwedd yr wythnos dau.
Os ydych yn disgwyl i fod yn newynog o gwmpas yr amser hwn yfory, yn gwybod ein bod ni'n mynd
i gynnull fel grŵp bach yfory, dydd Iau, 1:15 PM.
Mae hyn yn URL yma os hoffech i ateb.
Gofod yn gyfyngedig, felly os gwelwch yn dda maddau os yw'r ffurflen wedi llenwi erbyn yr adeg y byddwch
lenwi'r allan.
Arall URL er y gallai fod o ddiddordeb yw hwn.
>> Felly, mewn dim ond ymhen rhyw fis, mae'r cwrs yn mynd i fod ar gael
yn fwy cyffredinol drwy EDX, trwy y bydd Folks ar y Rhyngrwyd fod yn
gallu i ddilyn ar hyd, cymryd rhan yn y cwrs yn eithaf yn weithredol, mewn gwirionedd.
Byddant yn defnyddio'r Offer CS50 a CS50 Trafod a'r rhan fwyaf o'r
offer meddalwedd amrywiol ein bod eisoes wedi bod yn defnyddio y semester hwn.
Ac un o'r mentrau a byddem yn hoffi i gymryd ymlaen fel arbrawf eleni
yw gweld yn union faint o gynnwys y gallwn ei gyfieithu i ieithoedd eraill a siaredir a
ieithoedd ysgrifenedig.
Felly, os allai fod gennych ddiddordeb mewn cymryd rhan yn y prosiect hwn, lle
byddwn yn darparu trawsgrifiadau Isdeitlau Saesneg a gyfer y cwrs
darlithoedd a siorts a seminarau ac adrannau ac ati -
os ydych yn siarad yn rhugl neu ysgrifennu yn rhugl mewn iaith arall, byddem yn
wrth eu bodd yn cymryd rhan chi yn y prosiect hwn, lle byddwch yn derbyn un neu fwy o'r
fideos, eu cyfieithu i iaith eich bod yn gwybod yn eithaf da.
I roi syniad i chi o'r rhyngwyneb, mae hwn yn rhyngwyneb defnyddiwr ar y we
y byddwn yn defnyddio a fydd yn creu hanfod UI fel hyn.
Roedd hyn yn i mi addysgu rhai Calan Gaeaf yn ôl.
Ac ar yr ochr llaw dde yno mewn du nesaf wrth y rhain stampiau amser,
byddwch yn gweld y pethau amrywiol ddaeth allan o fy ngheg y diwrnod hwnnw.
Ac yna islaw iddo, byddwch yn gallu cyfieithu i mewn i rai iaith arall.
Yn union beth y mapio hwn yw rhwng, yn yr achos hwn, Saesneg
ac, yn dweud, Sbaeneg.
Felly, mewn gwirionedd mae'n iawn hawdd i'w ddefnyddio offeryn.
Gallwch ail-ddirwyn ac yn gyflym ymlaen yn rhwydd ag llwybrau byr bysellfwrdd.
Felly os hoffech chi gymryd rhan yn yr arbrawf hwn a dweud eich geiriau
weld a'i ddarllen gan o bosibl miloedd o Folks i maes 'na, os gwelwch yn dda yn teimlo
rhad ac am ddim i gymryd rhan.
>> Bellach yn un gair am y gath fach o ddydd Llun, rhag i ni wedi anfon rhy
neges brawychus.
Ydych yn sylweddoli bod fel oriau swyddfa yn awgrymu ac fel adrannau yn awgrymu, y
dyluniad y cwrs yn fawr iawn i fod wedi cydweithio a myfyrwyr
siarad â gweithio drwy setiau problem a phroblemau gyda'i gilydd.
Ac yn wir y llinell yn unig yn dod i lawr, unwaith eto, y gwaith yr ydych yn y pen draw
Dylid ei gyflwyno eich hun.
Ac felly mae'n, yn eithaf onest - yn ystod oriau swyddfa, mae'n hollol normal -
mae'n gwbl i'w ddisgwyl, hyd yn oed - i fod yn sgwrsio gyda rhai
ffrindiau nesaf i chi.
Os yw ef neu hi yn cael trafferth gyda rhai pwnc, ac rydych yn hoffi, oh, wel gadewch i
i mi roi cipolwg o rai llinell o god a ysgrifennais.
Mae hynny'n iawn.
Mae hyn yn digwydd.
A dyna yn fawr iawn ffafriol, yr wyf yn meddwl, gyda'r broses o ddysgu.
Lle mae'r llinell, unwaith eto, yn cael ei chroesi yw pan fydd y pennaeth yn fath o ogwydd dros
yma am ychydig eiliadau llawer gormod o neu gofnodion ar gyfer y gwirionedd i gael yr un
bod yn gyfle dadflocio ar gyfer eich ffrind.
Ac yn sicr, pan fydd pethau'n cael eu cyfnewid drwy e-bost a Dropbox a
yn y blaen, yno hefyd yn y llinell.
Felly ar bob cyfrif, yn teimlo'n gyfforddus ac yn teimlo eu hannog i sgwrsio gyda ffrindiau
a chyd-ddisgyblion am psets a mwy.
A dim ond yn sylweddoli y dylai hyn yr ydych yn y pen draw cyflwyno mewn gwirionedd y
gynnyrch dy greadigaeth ac nid rhywun arall.
>> Felly, yn yr un modd o greaduriaid meddal, gallech
yn gwybod am y boi yma.
Felly, mae hyn yn ffilm dychrynllyd, cheesy o flynyddoedd yn ôl.
Gall unrhyw un weld yma Spaceballs?
Mae pob hawl.
Felly, mae nifer dda yma.
Felly mae hyn yn ein ffordd wych academaidd o gyflwyno heddiw yn y pen draw
y syniad o cryptograffeg.
Ac felly un o'r problemau parth penodol ar gyfer pset 2, a fydd yn dod
allan yn hwyr nos yfory, yw i neidio i fyd cryptograffeg, sy'n
yw'r grefft o amgryptio neu sgramblo gwybodaeth.
Ac mae hyn yn y pen draw yn berthnasol i'r byd o ddiogelwch.
>> Nawr diogelwch ar gyfer y rhan fwyaf ohonom yn dod ar ffurf eithaf cyffredin fecanweithiau.
Mae pob un ohonom enwau defnyddwyr a chyfrineiriau.
Ac mae pob un ohonom yn cael enwau gwael iawn a chyfrineiriau, yn fwyaf tebygol.
Os yw eich cyfrinair yn yr un fath ar wefannau lluosog, nad yw yn debyg
y syniad gorau, gan y byddwn yn trafod tuag at ddiwedd semester.
Os yw eich cyfrinair yn cael ei ysgrifennu ar nodyn gludiog - dim jôc - ar eich
monitro, nad yw o reidrwydd yn rhy y dyluniad gorau ond yn eithaf cyffredin
ffenomen.
Ac os nad ydych yn defnyddio cryptograffeg i amgryptio eich cyfrineiriau, maent yn
arbennig o agored i niwed.
Felly, os ydych yn meddwl eich bod yn cael eu super glyfar drwy gael Word cudd
dogfennu yn rhywle ar eich disg caled sydd wedi eich holl passwords, ond
ei fod mewn ffolder nad oes unrhyw un yn mynd i edrych i mewn, nad yw gormod yn iawn
fecanwaith diogel.
Ac felly yr hyn y bydd pset 2 yn cyflwyno'r yn y gelfyddyd o cryptograffeg a
sgramblo gwybodaeth fel bod pethau fel cyfrineiriau yn
yn oed yn fwy diogel.
Er mwyn cymell y broblem hon yn y byd go iawn gyda iawn nad ydynt yn y byd go iawn
senario, gadewch i mi eich cyflwyno i un o'n hoff glipiau yma o hyn
ffilm, Spaceballs.
>> [Chwarae fideo]
-Helmed, rydych fiend, beth sy'n mynd ymlaen?
Beth ydych chi'n ei wneud i fy merch?
Caniatáu i mi-i gyflwyno'r llawfeddyg plastig ifanc disglair, Dr Philip
Schlotkin, y dyn trwyn mwyaf swydd yn y cyfan
bydysawd ac yn Beverly Hills.
-Eich nyrchafiad.
Trwyn-swydd?
Nid wyf yn deall.
Mae hi eisoes wedi cael swydd trwyn.
Roedd yn felys 16 yn bresennol.
-Na, nid yw'n beth yw eich barn.
Mae'n llawer, llawer gwaeth.
Os nad ydych yn rhoi i mi y cyfuniad at y darian aer, Dr Schlotkin bydd
rhoi eich merch yn ôl ei thrwyn oed.
-Na!
Ble wnaethoch chi gael hynny?
-Mae pob hawl.
'N annhymerus' ddweud.
-Na, Dad, dim.
Rhaid i chi beidio.
You're-dde, fy annwyl.
Byddaf yn colli eich trwyn newydd.
Ond ni fydd yn dweud wrthynt y cyfuniad waeth beth.
-Yn dda iawn.
Dr Schlotkin, gwneud eich gwaethaf.
-Mae fy pleser.
-Na!
Arhoswch, aros.
'N annhymerus' ddweud.
-I yn gwybod y byddai'n gweithio.
Mae pob hawl, yn ei roi i mi.
-Mae'r cyfuniad yn un.
-One.
-Dau.
Tri-
-Three.
-Four.
-Five
-Five.
-So y cyfuniad yn un, dau, tri, pedwar, pump.
Dyna y cyfuniad stupidest wyf erioed wedi clywed yn fy mywyd.
Dyna'r math o beth byddai idiot yn ei chael ar ei bagiau.
-Diolch i chi, eich nyrchafiad.
-Beth wnaethoch chi ei wneud?
-I droi oddi ar y wal.
-Na, nid felly yr oedd.
Byddwch yn troi oddi ar y ffilm gyfan.
-I fod wedi pwyso'r botwm anghywir.
-Wel, ei roi yn ôl ar.
Rhowch y ffilm yn ôl ar.
-Oes, syr.
Ie, syr.
-Gadewch i ni fynd, Erna.
Dewch, Gretchen.
Wrth gwrs yr ydych yn gwybod y byddwch yn rhaid i mi bil i chi am hyn.
-Wel, wnaeth hyn weithio?
Ble mae'r giât?
-Mae'n gweithio, syr.
Mae gennym y cyfuniad.
-Great.
Nawr gallwn gymryd pob anadl olaf o awyr iach o blaned Druidia.
Beth yw'r cyfuniad?
-Un, dau, tri, pedwar, pump.
-Un, dau, tri, pedwar, pump?
-Ydy.
-Mae hynny'n anhygoel.
Rwyf wedi cael y cyfuniad un ar fy bagiau.
Paratoi Spaceball 1 am adael ar unwaith.
-Oes, syr.
-Ac newid y cyfuniad ar fy bagiau.
-Ow!
[DIWEDD chwarae fideo]
>> DAVID J. Malan: Mae ffilm anhygoel dylech i gyd weld.
Felly, y cyd-destun yma yw bod â data ansicr, daw cyfle i
amgryptio ac i scramble hynny.
Ac felly mae hyn, er enghraifft, yn enghraifft o neges wedi ei amgryptio.
Mae hyn mewn gwirionedd yn dweud rhywbeth yn Saesneg.
Ond nid yw'n amlwg yn gwbl amlwg.
A byddwn yn dod y cylch llawn heddiw i dynnu ar wahân beth mae hyn yn gyfrinach
neges yma.
Ond yn y byd go iawn o gyfrifiaduron, nid yw pethau'n hyd yn oed edrych fel y gallent
fod yn ymadroddion Saesneg.
Er enghraifft, mae hyn yn hyn y gallech ei gael ar Linux neu Mac safonol neu
Unix cyfrifiadur mewn ffeil a oedd unwaith ar y tro a elwir yn y ffeil gyfrinair.
Erbyn hyn, mae wedi bod yn symud i fannau eraill.
Ond os ydych yn edrych yn y lle iawn ar system, byddwch yn gweld nid yn unig eich
enw defnyddiwr chi neu bobl eraill ar y system, ond byddwch yn gweld
fersiwn wedi'i amgryptio eu cyfrinair.
Yn wir, y crypt gair yno yn awgrymu bod y pethau canlynol yn hamgryptio.
Ac mae hyn yn gyfres o lythyrau sy'n ymddangos ar hap a chymeriadau a rhifau a
Gall y blaen ei dadgriptio yn unig yn gyffredinol yn gwybod rhywfaint o gyfrinach -
gair cudd, mae nifer gyfrinach.
Ac felly yn wir, y grefft o cryptograffeg yn y pen draw boils i lawr i ymddiried o rai
yn didoli ac yn gwybod rhywbeth nad yw rhywun arall yn ei wneud.
Byddwn yn archwilio hyn yn fanwl ychydig mwy o heddiw ac yn y pset i ddod.
>> Ac yn awr gair ar basio / methu.
Felly, yn enwedig, gan fod rhai ohonoch wedi syrthio i mewn i pset 1, yr offer, a
byd newydd iawn i chi eich hun, sylweddoli bod rhwystredigaethau a
anawsterau dryswch a dim ond technegol i'w disgwyl.
Yn enwedig gyda'r pset cyntaf, lle mae dim ond cymaint newydd, dim ond cael
gyfarwydd â ls a cd a hyn i gyd gorchmynion dirgel mewn amgylchedd newydd.
A dyna wahân i'r deunydd gwirioneddol a rhaglennu ei hun.
Felly sylweddoli, hefyd, fod yn sicr mae yna oriau swyddfa sy'n bodoli wrth
y strwythur cefnogi.
Adrannau yn dechrau dydd Sul hwn i ddod.
Ond yn bwysicaf oll, os ydych yn teimlo'n unig nad yw hyn yn
byd i chi, yn sylweddoli ei bod yn wir yn unig yn cymryd amser.
Ac oni bai am y cyfle hwn flynyddoedd yn ôl i mi o gymryd dosbarth
pasio / methu, yn onest, nid wyf erioed y byddai wedi gosod hyd yn oed droed yn yr ystafell ddosbarth.
A allwch chi newid hyn nes ar, dyweder, dydd Llun rhan o bump o'r cwrs.
Felly, os ydych chi ar yr ymyl yn awr, yn sylweddoli, yn hytrach na pen i rai eraill
dyfroedd yn gyfan gwbl, yn sicr yn ystyried dim ond newid i basio / methu.
Unwaith eto, nid oes gymaint â hyn diwylliant yma yn Harvard o gymryd pethau
pasio / methu gan fod pawb yn awyddus iawn i gyflawni neu overachieve.
Ond a dweud y gwir, mae hyn yn ffordd wych o roi cynnig rhywbeth a allai na
yn gyfarwydd i chi.
A byddwch yn y pen draw yn gwneud yn y rhan fwyaf o achosion yn eithaf iawn, efallai
fawr at eich syndod.
Ac mewn termau diriaethol mwy, yr hyn yr wyf yn meddwl pasio / methu yn gyffredinol yn ei wneud,
yn enwedig fel y byddech wedi eu profi gyda pset 0, os ydych chi wedi rhoi
mewn 10 awr, 15 awr, 25 awr i rai pset - a ydych ond yn taro
eich pen yn erbyn y wal,
ac mae'n mynd yn super yn hwyr yn y nos,
ond eich bod wedi cymryd y pset fel 90% o'r ffordd,
eich bod yn gwybod na allwch ffigwr allan un peth -
pasio / methu mewn gwirionedd yn cymryd y ymyl oddi ar y dosbarth fel hyn, lle gallwch ddatrys
o yn dweud yn hapus iawn, yr wyf yn gwybod nad yw'n berffaith.
Ond yr wyf yn gweithio fy ass i ffwrdd ar hyn.
Rwy'n eithaf hapus gyda lle yn y diwedd.
A fydd yn bodloni disgwyliadau ar gyfer pasio / methu.
Felly, yn cadw hynny mewn cof.
>> Mae pob hawl.
Felly, y rhai ohonoch sydd wedi cael trafferth i ddefnyddio Brifysgol Harvard Wi-Fi yn gwybod
bod yna SSID CS50, cysylltiad Wi-Fi fel y bo'r angen o gwmpas eich bod yn
allai fod lwc gwell.
Mae'n eironig fawr fod y cyfrinair ar gyfer hyn - os hoffech i roi cynnig ar
cysylltu hyn ar gyfer cyflymder gwell a gadewch i ni wybod os does dim yn well -
yn un, dau, tri, pedwar, pump, yr holl ffordd i fyny at wyth oherwydd wyth y
yn fwy diogel na phump.
Felly, os ydych angen y cyfrinair Wi-Fi, cysylltu â CS50 wirelessly yma.
Un, dau, tri, pedwar, pump, chwech, saith, wyth.
Ac swydd ar CS50 Trafod os oes gennych materion cysylltedd ysbeidiol,
a byddwn yn gadael i'r pwerau sydd eu gwybod am y gofod.
>> Mae pob hawl.
Felly teaser cyflym, yn enwedig i'r rhai ohonoch sydd yn fechgyn neu ferched fan
o'r holl bethau Apple.
Beth ddylwn i ei gloddio i fyny o ychydig flynyddoedd yn ôl roedd y ffeil yma, ilock.c, dim ond i
fath o wneud yn fwy cadarn ac yn fwy cymhleth rhai o'r C yn fwy sylfaenol
rhaglenni rydym wedi bod yn ysgrifennu.
Felly, yr wyf yn agor y ffeil, ilock.c.
Mae ar gael ar y dudalen darlithoedd ar gyfer heddiw.
Ar yr ochr chwith, byddwch yn gweld rhestr hir o swyddogaethau.
Felly, y cyd-a ysgrifennodd y ysgrifennodd llawer o swyddogaethau,
mwy na dim ond y prif.
Defnyddiodd criw cyfan o lyfrgelloedd yma.
Ac os ydym yn dechrau sgrolio drwy, beth mae hyn mewn gwirionedd yw yn iawn
gyntaf, yr wyf yn credu, cracio ar gyfer y iPhone gwreiddiol.
Pan fyddwch yn eisiau i jailbreak y iPhone gwreiddiol, sy'n golygu untether
rhag AT & T ac mewn gwirionedd yn gosod meddalwedd arbennig arno a gwneud pethau
Nid yw bod Apple oedd am i bobl ei wneud -
yn dda, rhywun yn cymryd yr amser i ffigur yn union sut y gallent fanteisio
diffygion meddalwedd, camgymeriadau, bygiau, yn Apple meddalwedd.
Ac felly ganwyd ilock.c.
Os ydych yn llunio ar gyfrifiadur a'u gosod ei roi ar y iPhone
yn gysylltiedig â'ch cyfrifiadur drwy, er enghraifft, mae cebl USB, byddai hyn yn rhoi i chi
breintiau gweinyddol neu wraidd ar eich iPhone ac yn gadael i chi wneud 'n bert lawer
beth bynnag y dymunwch.
>> Ac felly mae wedi bod y gath ryfeddol a gêm llygoden rhwng Afal a
gweddill y byd yn enwedig gan eu bod, fel llawer o gwmnïau, ceisiwch i gloi
eu stwff i lawr fel y gallwch ond ei wneud ag ef yr hyn y maent yn bwriadu.
Ond diolch i bobl fel hyn ac mae eu dealltwriaeth o lefel isel
manylion ac, yn yr achos hwn, rhaglennu C ac mae llawer o'r lluniadau cyfarwydd
ein bod ni wedi dechrau chwarae gyda, byddwch yn gallu mewn gwirionedd trosoledd y
caledwedd mewn modd gwelwch yn dda ac nid o reidrwydd rhyw endid corfforaethol.
Felly, er enghraifft, nid oes gennyf unrhyw syniad beth hyn i gyd yn ei wneud.
Ond GetVersion swnio'n eithaf syml.
Ac mae'n edrych fel hyn yn swyddogaeth fod y person ysgrifennodd.
Cymerwch rhyw fath o cyfanrif fel dadl, nid yw'n dychwelyd unrhyw beth, ond
ymddangos dolen gyda dolen i yma ac yn os yw cyflwr, os yw cyflwr,
torri, a rhywsut yn cyfeirio at niferoedd fersiwn.
Os byddwn yn sgrolio i lawr -
er bod llawer o'r rhain keywords yn mynd i fod yn newydd, ac mae 'na
llawer gyfan o swyddogaethau yma nid ydym erioed wedi gweld ac efallai byth yn gweld dros
ystod y semester -
ar ddiwedd y dydd, mae'n dilyn yr un rheolau a rhesymeg ein bod wedi
chwarae gyda hyd yn hyn.
Felly, mae hyn yn llawer rhy hen i fynd i'r afael eich iPhone neu 3s 4s neu'n fuan 5 oed, y dyddiau hyn,
ond yn gwybod ei fod yn gyd yn fawr iawn yn deillio o'r byd hwn y mae gennym
syrthio i mewn i.
>> Felly, gadewch i ni edrych ar enghraifft ychydig yn fwy syml.
Mae hyn yn un, dim ond er mwyn cael cynhesu i fyny gyda rhywfaint o gystrawen a rhywfaint o ddata eraill
math yr ydym wedi siarad amdano, ond nid ydynt wedi gweld mewn gwirionedd yn y C. Felly mae hwn yn
ffeil o'r enw positive1.c.
Ac unol â'r sylwadau ar y brig, mae hyn yn mynnu bod defnyddiwr yn darparu
rhif positif.
Felly mae'n enghraifft o ddolen do-tra, sydd yn braf ar gyfer defnyddwyr-rhyngweithiol
raglenni lle mae angen i chi ddweud wrth y defnyddiwr i wneud rhywbeth.
Ac os nad ydynt yn cydweithredu, byddwch yn gweiddi arnynt neu wrthod eu mewnbwn.
Achos ym mhwynt, yr wyf yn mynd i wneud llinellau 19 trwy 24 cyn belled ag y defnyddiwr
Ni roddwyd i mi rhif positif.
Nawr manylion hyn yma ar llinell 18, pam wnes i ddatgan n uwch na hyn gyfan
lluniad dolennu yn hytrach na dde nesaf i llinell 22 lle rwy'n
mewn gwirionedd gofal i gael n?
Yeah?
[Anghlywadwy]
>> DAVID J. Malan: Yeah, felly mae'r mater o gwmpas.
Ac yn y tymor lleygwr, beth yw cwmpas cyfeirio at?
Yeah?
[Anghlywadwy]
DAVID J. Malan: A allwch chi siarad ychydig yn uwch?
SIARADWR 1: Ble y gallwch gael mynediad newidyn penodol.
DAVID J. Malan: Perfect.
Ble y gallwch gael mynediad i newidyn penodol.
Ac yn gyffredinol, y rheol y fawd hyd yn hyn yw bod y cwmpas rhai
amrywiol yn cael ei ddiffinio gan y bresys mwyaf diweddar cyrliog eich bod wedi gweld.
Ac felly yn yr achos hwn, os wyf yn gwneud y camgymeriad o ddatgan n ar-lein 22,
byddai llinell gweithio.
Byddwn yn cael int, a byddwn yn ei roi i mewn i'r n amrywiol yn llinell 22.
Ond a fyddai llinell o god yn awr yn cael unrhyw syniad beth rwy'n siarad amdano?
Felly 25, ac mae'n troi allan 24, hefyd, oherwydd yn yr achos hwn, mae'n disgyn y tu allan i
o'r braces cyrliog.
Felly, dim ond ychydig bach o niwsans, ond yn hawdd iawn eu datrys gan syml ddatgan
y tu allan amrywiol y swyddogaeth ei hun.
>> Nawr byddwn yn gweld yn nes ymlaen heddiw, gallwch fynd un cam ymhellach.
A allech chi hyd yn oed gael ychydig yn ddiog -
ac nid yw hyn yn cael ei argymell, yn gyffredinol -
ond gallech hyd yn oed gael ddiog ac yn rhoi amrywiol yn fyd-eang, felly i beidio siarad,
tu mewn swyddogaeth, nid tu mewn dolen, ond yn y ffeil ei hun, y tu allan
o'r holl swyddogaethau rydych wedi ysgrifennu, fel y gwneuthum yma ar llinell 15.
Ond mae hyn yn gyffredinol gwgu arno.
Ond yn sylweddoli hyn yn ateb weithiau i broblemau eraill, fel y gallwn eich
yn y pen draw gweld.
Felly, am nawr, byddwn yn ei adael fel hyn.
Ond gadewch i ni weld os allwn ni ailysgrifennu hyn yn unig i ddechrau mynegi ein hunain yn
ychydig yn wahanol.
>> Felly y rhaglen hon, dim ond i fod yn glir, yn positive1.
Gadewch i mi fynd yn ei flaen yma ac yn fy ffenestr terfynell yn gwneud positive1, Enter.
Llunio, iawn.
Rydw i'n mynd i redeg positive1, daro Chofnoda.
I fynnu eich bod yn rhoi i mi gyfanrif positif.
Byddaf yn dweud -1.
Nad oedd yn gweithio.
0, 99, sy'n ymddangos i weithio.
Efallai nad yw'r prawf mwyaf llym.
Ond o leiaf mae'n gwiriad pwyll braf ein bod ar y trywydd iawn.
Felly nawr gadewch i mi fynd yn ei flaen ac agor fersiwn dau o hyn.
A beth sy'n wahanol yn barod?
Mae'n gweithredu yr un peth.
Ond beth sy'n neidio allan fel yn amlwg yn wahanol y tro hwn?
Yeah, felly mae hyn yn bool mewn gwyrdd.
Gedit wedi amlygu â lliw gwyrdd y gair allweddol a elwir yn bool,
sy'n fath data.
Nid yw'n dod a adeiladwyd i mewn i holl fersiynau o C. Mae angen i chi gynnwys
llyfrgell penodol.
Yn ein hachos ni, yr wyf yn cynnwys y llyfrgell CS50 fel ein bod yn
yn cael mynediad i bool.
Ond yn llinell 18, rydym yn ymddangos i fod â gwerth Boole yma a elwir yn ddiolchgar.
Felly, gallwn fod wedi galw hyn unrhyw beth.
Ond yr wyf yn ei alw ddiolchgar yn unig i fath o gyfleu rhywfaint o ystyr semantig.
Felly, i ddechrau ar llinell 18, Dwi ddim yn ôl pob golwg ddiolchgar oherwydd bod y
Gwerth ddiolchgar Boolean yn cael ei ymgychwyn i ffug mewn llinell 18.
Ac yna mae'n ymddangos hyn yr wyf wedi ei wneud yma yn y llinellau 21 drwy 23 yn Rwyf newydd
math o ailysgrifennu fy rhesymeg.
Felly ddim yn swyddogaethol gwahanol.
Ond yn llinell 22 awr, yr wyf gwirio a yw'r int y defnyddiwr wedi darparu yn fwy na
0, yna yr wyf yn newid y gwerth ddiolchgar i gwir.
A pham ydw i'n gwneud hynny?
Oherwydd, yn unol 25, mae'n debyg, yr wyf i'n mynd i wirio cyflwr.
Gwnewch hyn dolen tra ddiolchgar yn ffug.
>> Felly, yr wyf yn cynnig hyn fel dewis amgen i fersiwn un am ei fod yn o leiaf
ychydig yn fwy 'n athrylithgar, efallai.
Mae'n ychydig yn fwy cadarn yn y Saesneg.
Felly, yn gwneud y canlynol tra nad ydych yn ddiolchgar neu tra ddiolchgar yn ffug.
A'r tro hwn, hefyd, yr wyf debyg nad oes gofal i gofio beth y defnyddiwr deipio
mewn oherwydd rhybudd does dim n amrywiol.
Felly, mewn gwirionedd, I -
celwydd bach gwyn yno.
Swyddogaethol, mae'r rhaglen yn ychydig yn wahanol ar ôl i ni gyrraedd y gwaelod
am nad wyf ddim yn cofio beth yw n.
Ond yr wyf yn awyddus i ddangos yma hefyd bod hyd yn oed er ein bod wedi gweld GetInt a
GetString cael ei ddefnyddio ar yr ochr dde-law o arwydd cyfartal hyd yn hyn er mwyn
rydym yn cofio y gwerth, yn dechnegol, nid yw hynny'n hollol angenrheidiol.
Os am ​​ba bynnag reswm nad ydych yn unig yn poeni i achub y gwerth, 'ch jyst eisiau
i wirio gwerth, sylwch y gallwn yn syml ysgrifennu hyn fel GetInt agored
paren, paren agos.
Swyddogaeth honno yn mynd i ddychwelyd gwerth, fel yr ydym wedi bod yn ei ddweud.
Mae'n mynd i roi i chi yn ôl yn int.
Ac felly os ydych yn feddyliol yn meddwl am hyn yn digwydd, pan fyddaf yn teipio yn 99, GetInt
yn dychwelyd y nifer 99.
Ac felly yn gysyniadol, mae'n fel pe fy cod mewn gwirionedd yn hyn.
Felly, os 99 yn wir yn fwy na 0, yna ddiolchgar dod yn wir.
Yna llinell 25 sylweddoli www, rydym yn ei wneud am fy mod i'n awr yn ddiolchgar.
Ac yn llinell 26, rydym yn syml yn dweud, diolch am y cyfanrif positif, beth bynnag
digwydd bod.
>> Nawr gadewch i ni wneud ychydig o siwgr cystrawennol yma, felly, i siarad.
Gadewch i ni weld os allwn lanhau y llinell hon 25 gyda yr amrywiant hwn trydydd a'r olaf
yn positive3.
Felly, yn sylwi ar y gwahaniaeth yn unig yn awr yw pa linell o god?
Yeah, felly 25.
Ac nid ydym wedi gweld mewn gwirionedd hon castia eto.
Ond fe welsom y pwynt ebychnod ar ddydd Llun, sy'n dynodi beth?
Felly na, neu negyddu.
Felly, yn cymryd gwerth Boole ac yn troi ei werth.
Gwir yn dod yn ffug.
Ffug yn dod yn wir.
Felly, mae hyn, byddwn yn cynnig, hyd yn oed ychydig yn fwy 'n athrylithgar o ffordd o
ysgrifennu'r cod oherwydd yr wyf yn dal ymgychwyn ddiolchgar i ffug.
Rwy'n dal i wneud y canlynol.
Wyf yn gosod ddiolchgar yn wir pan ddaw'r amser.
Ond yn awr y gallwch chi mewn gwirionedd dim ond cyfieithu cod hwn ar ôl ar lafar i'r dde,
er nad ddiolchgar.
Oherwydd bang, neu bwynt ebychnod, yn dynodi y syniad o beidio, felly er
Nid ddiolchgar.
>> Felly, unwaith eto, nid ydym wedi cyflwyno unrhyw gysyniadau newydd fel y cyfryw.
Rydym wedi siarad am Booleans ôl pan fyddwn yn chwarae gyda Scratch.
Ond yn sylweddoli nawr gallwn dim ond dechrau ysgrifennu ein cod yn
nifer o wahanol ffyrdd.
Felly, yn enwedig yn pset1, os ydych yn fath o ymdrechu i chyfrif i maes y ffordd i
ysgrifennu rhai rhaglen, odds yn cael eu rydych mewn lwc oherwydd mae mynd i fod yn unrhyw
nifer o atebion y gallwch ddigwydd arnynt.
Er enghraifft, mae hyn yn unig yw tair blynedd ar gyfer hyd yn oed y symlaf o raglenni.
Mae pob hawl.
Ac yn awr yn cofio ar Ddydd Llun, rydym yn gadael ar y nodyn gyda gwerthoedd dychwelyd.
Felly, am y tro cyntaf, fe wnaethom ysgrifennu rhaglen nad yw'n unig yn brif,
mae ganddo hefyd ei swyddogaeth ei hun arferiad i mi ysgrifennu yma.
Felly, mewn llinell 31 trwy 34, rwyf wedi gweithredu swyddogaeth ciwb.
Dyw hi ddim yn gymhleth.
Mae'n dim ond gwaith y gwaith, yn yr achos hwn.
Ond yr hyn sy'n bwysig am y peth yw fy mod i'n cymryd mewnbwn yn y ffurf a
Rwy'n dychwelyd cynnyrch ar ffurf o weithiau o weithiau a.
>> Felly, yn awr yr wyf yn cael y gallu, yn debyg iawn Roeddwn i'n arfer gyda printf ei ben ei hun, i alw
swyddogaeth hon drwy ffonio'r swyddogaeth ciwb.
Ac mae'r swyddogaeth ciwb yn cymryd peth mewnbwn.
Ac mae'r swyddogaeth ciwb yn dychwelyd rhywfaint o allbwn.
Ac felly ar y llaw arall, dim ond printf gwneud rhywbeth.
Nid oedd yn dychwelyd unrhyw beth yr ydym yn gofalu amdanynt - er, fel
neilltu, mae'n dychwelyd gwerth.
Chi dim ond yn gyffredinol anwybyddu.
Printf dim ond gwneud rhywbeth.
Roedd yn sgîl-effaith o argraffu ar y sgrin.
Mewn cyferbyniad yma, mae gennym y swyddogaeth ciwb, sy'n
mewn gwirionedd yn dychwelyd rhywbeth.
>> Felly, mae hyn yn gyffredinol -
ar gyfer y rhai sy'n gyfarwydd â hyn, mae'n syniad gweddol syml.
Ond ar gyfer rhai sy'n llai cyfarwydd â'r syniad o basio mewn mewnbynnau a chael
allbynnau yn ôl, gadewch i ni geisio syml rywbeth yn unig super.
A oes unrhyw un yn gyfforddus yn dod i fyny ar y llwyfan yn fyr?
Mae'n rhaid i chi fod yn gyfforddus gyda chamera ar chi, yn ogystal.
Yeah.
Iawn, beth yw eich enw?
KEN: Ken.
DAVID J. Malan: Ken.
Mae pob hawl, Ken.
Dewch ar i fyny.
Felly, Ken yn mynd i fod yn swyddogaeth o fath yma.
A gadewch i ni fynd ymlaen a gwneud hyn.
Gadewch i ni gael ychydig o ffansi.
Braf i gwrdd â chi.
Croeso i ganol y llwyfan.
Mae pob hawl.
Gadewch i ni daro y botwm yma.
Mae pob hawl.
Felly dyma oes gennych bwrdd sialc modern.
A hyn yr wyf yw prif swyddogaeth, er enghraifft.
Ac nid oes gennyf iPad yn fy llaw.
Dwi ddim yn cofio sut i - wel, mewn gwirionedd, ni ellir dweud hynny.
Dwi ddim yn cael llawysgrifen da.
Ac felly, felly, rwyf am i chi argraffu rhywbeth ar y sgrin i mi.
>> Felly, yr wyf yn cael y brif raglen.
Ac yr wyf yn mynd i gael i chi ddweud hyn drwy ysgrifennu yn fy crafu cyw iâr a
yna basio eich mewnbwn.
Felly, fel y gwirion er bod yr ymarfer hwn yw, y syniad o swyddogaethau a galw
swyddogaeth a dychwelyd swyddogaeth wir boils i lawr i hyn.
Yr wyf yn brif.
Yr wyf wedi ysgrifennu newydd printf ("rhywbeth") ar y sgrin.
Rwy'n rhedeg y rhaglen.
A chyn gynted ag printf yn cael ei alw, mae'n cymryd un ddadl - neu un paramedr,
weithiau -
rhwng dyfynodau dwbl.
Dyma yw y ddadl.
Rwy'n ei throsglwyddo i Ken.
Nawr mae'n blwch du ysgrifennu rhai nifer o flynyddoedd yn ôl sy'n ymddangos
yn unig yn gwybod sut i argraffu pethau ar y sgrin.
>> Felly, gweithredu.
Dyw hynny ddim yn ddrwg.
Felly, da iawn.
Felly nawr Ken yn cael ei wneud gweithredu.
A oes angen iddo roi unrhyw beth i mi yn ôl?
Felly, nid ydym wedi gweld hyd yn hyn.
Unwaith eto, printf mewn gwirionedd yn dychwelyd rhif.
Ond rydym ni'n mynd i anwybyddu hynny am awr oherwydd nid ydym erioed wedi ei ddefnyddio.
Felly dyna ni am Ken.
Ac felly, yn awr prif dod yn ôl i weithredu -
brif cymryd drosodd rheolaeth y rhaglen eto oherwydd y llinell o god,
printf, yn cael ei wneud gweithredu.
Ac rydym yn mynd ati i weithredu ein ffordd beth bynnag llinellau eraill yno.
>> Mae pob hawl.
Felly nawr gadewch i ni geisio enghraifft ychydig yn wahanol.
A'r tro hwn yma, heb yn gyntaf glir y sgrin yma.
A'r tro hwn, byddwn yn gwneud y swyddogaeth cubing.
Ond y tro hwn, yr wyf yn disgwyl gwerth allbwn.
Felly, gadewch i ni fynd ymlaen a gwneud hyn.
Felly nawr mae gen i linell o god sy'n dweud x = ciwb (x).
Felly, mewn gwirionedd let's -
y llinell o god, galw i gof, yn edrych fel hyn.
x = ciwb (x).
Felly, sut mae hyn yn mynd i weithio?
Felly, gadewch i ni fynd yn ei flaen ac yn rhoi sgrin gwyn eto.
Ac yr wyf yn mynd i ysgrifennu nawr i lawr y gwerth x, sydd ar hyn o bryd yn
amser yn digwydd bod, gadewch i ni ddweud, 2, i'w gadw'n syml.
Felly, yr wyf wedi ysgrifennu i lawr ar ddarn o bapur gwerth o 2,
sef fy x gwerth.
Rwy'n ei roi i Ken.
KEN: Ac yr wyf yn jyst ysgrifennu'r ateb?
DAVID J. Malan: Yeah, gadewch i ni dim ond ysgrifennwch yr ateb.
Iawn.
Ac yn awr mae'n rhaid iddo ddychwelyd i mi rhywbeth.
Felly -
berffaith.
Nice segue.
>> Felly nawr ei fod dwylo fi yn ôl y gwerth o 8, yn yr achos hwn.
A beth ddylwn i ei wneud ag ef?
Wel, mewn gwirionedd, gadewch i ni weld.
Cael yr hawl hon.
Beth ydw i'n mynd i wneud â hi?
Nawr rwy'n mynd i gymryd y gwerth hwn ac mewn gwirionedd yn ei storio yn y
darnau yr un yn y cof.
Ond rhybudd, rwy'n fath o trafferthion yma.
Rwy'n ychydig yn ddryslyd oherwydd lle ydw i'n ysgrifennu mewn gwirionedd gwerth x?
Oherwydd hyn yr wyf wedi ei wneud yn unig yn gorfforol law Ken ddarn o bapur
nad oedd gan y gwerth 2, a oedd yn x.
Ac yn wir, dyna yn union beth sy'n digwydd.
Felly, mae'n troi allan bod pan fyddwch yn ffonio swyddogaeth, ac rydych yn pasio mewn dadl
fel "helo byd" neu os ydych yn pasio mewn dadl fel 2, yn gyffredinol, ydych chi'n
pasio mewn copi o'r ddadl.
Ac felly yn union fel ysgrifennais i lawr y rhif 2 yma a'i roi i Ken; y mae'n rhaid
golygu fy mod yn dal i gael copi o'r 2 werth yn rhywle.
Oherwydd yn wir, yn awr fy mod i wedi gotten yn ôl y gwerth 8, mae angen i mi fynd yn ôl yn
RAM ac mewn gwirionedd yn ysgrifennu i lawr 8 lle cefais unwaith roedd y rhif 2.
>> Felly, cofiwch weledol y syniad o fynd yn llythrennol
copi o'r gwerth.
Ken yn gwneud ei beth, dwylo i mi rhywbeth yn ôl - yn yr achos hwn,
gwerth fel 8.
Ac yna mae'n rhaid i mi wneud rhywbeth gyda'r gwerth os byddaf yn
am gadw o gwmpas.
Felly bydd hyn i gyd yn rhy gyfarwydd cyn bo hir.
Diolch yn fawr am y demo yma, Ken.
Mae pob hawl.
Da iawn chi.
Felly, gadewch i ni weld sut yn y pen draw yn berthnasol i rai o'r swyddogaeth
galw ein bod ni wedi bod yn ei wneud yma.
Felly, gadewch i mi fynd yn ei flaen ac yn dod â ni yn ôl at yr enghraifft cubing yma.
Ac yn sylwi bod os ydym am i mewn gwirionedd yn dechrau mynd â hyn ymhellach, rydym yn mynd
i gael i fod yn ymwybodol o'r ffaith bod y x rhif sy'n cael ei basio yn y
yma yn wahanol i'r hyn mewn gwirionedd yn cael ei basio i mewn i'r swyddogaeth.
Felly, unwaith eto, mae hyn yn pasio drwy copi yn mynd i fod yn eithaf
bwys yn mewn dim ond hyn o bryd.
>> Felly, gadewch i ni edrych ar rywbeth nad yw'n llwyr gweithio'n iawn eto.
Rydw i'n mynd i fynd yn ei flaen ac agor enghraifft bygi parti, sy'n
yn ddiffygiol gan natur.
Ac fe'i gelwir buggy3, a fydd yn gweithredu swyddogaeth cyfnewid.
Felly yma mae gennym swyddogaeth prif sydd wedi x ac y ymgychwyn fympwyol i
1 a 2, yn y drefn honno.
Gallem ddefnyddio GetInt, ond rydym yn unig angen ymarfer syml.
Felly mae'n hard-coded fel 1 a 2.
Mewn llinellau 21 a 22, gennym, mae'n debyg argraffu x ac y, un i bob llinell.
Yna, ar llinell 23, gallaf wneud cais am yr wyf yn cyfnewid gwerthoedd hyn, dot, dot, dot.
I bob golwg alw swyddogaeth yn llinell 24 a elwir yn cyfnewid
sy'n cymryd dwy ddadl.
Mae'n gwbl legit ar gyfer swyddogaethau i gymryd dwy ddadl.
Rydym wedi gweld printf wneud yn barod.
Felly gyfnewid pob golwg yn cymryd x ac y.
Ac fel yr awgryma'r enw, byddwn yn gobeithio ei fod yn mynd i
gyfnewid y ddau gwerthoedd.
Felly, yna gallaf hawlio ar-lein 25, cyfnewid.
Ac yr wyf yn ailargraffiad x ac y dan y dybiaeth bod
maent wedi cael eu cyfnewid yn wir.
Ond os wyf mewn gwirionedd yn rhedeg y rhaglen -
gadewch i mi agor ffenestr terfynell.
Gadewch i mi wneud buggy3.
Fel y mae'r enw'n awgrymu, nid yw hyn yn mynd i orffen yn dda.
Oherwydd pan wyf yn taro Mewnbynnu, yn sylwi bod x yn 1.
y yw 2.
Ac eto ar ddiwedd y rhaglen, maent yn dal i fod, mewn gwirionedd, yr un fath.
>> Hynny ar sail yr arddangosiad yn unig yn awr gyda Ken, beth sy'n digwydd mewn gwirionedd?
Wel, gadewch i ni neidio i mewn i'r swyddogaeth cyfnewid.
Mae'n super byr.
Dim ond ychydig linellau o god hir.
Ond beth yw'r broblem sylfaenol yn seiliedig ar y stori syml dywedwyd wrtho
i fyny yma gyda Ken?
Pam mae cyfnewid torri?
[Anghlywadwy]
Yn union.
Felly, rydym yn storio peidio i gael copi, y newidyn ei hun.
Mewn geiriau eraill, ffeirio ymddangos yn cymryd dwy ddadl, yn int.
Ac mae'n cael ei alw yn fympwyol a b a.
Ac yma, rwyf wedi pasio yn x ac y, sydd yn y drefn honno 1 a 2.
Ond dydw i ddim yn llythrennol basio yn x.
Dydw i ddim yn llythrennol basio yn y.
Rwy'n pasio copi o x a chopi o y.
Mae fel bron fel petaech copïo a gludo i mewn i gyfnewid y gwerthoedd sy'n
ydych am iddo mewn gwirionedd trin.
Felly, os yw hynny'n wir, pan oeddwn i, y rhaglen, yn dechrau gweithredu
llinell 35, yna 36 -
pan fyddaf yn mynd i linell 37, yn y fan hon yn y stori, beth yw gwerth?
Ar y pwynt hwn yn y stori, llinell 37, beth yw gwerth ar y pwynt hwn?
Felly, dylai fod dim ond yn 1.
Hawl?
Oherwydd x ei basio i mewn fel y ddadl gyntaf.
Ac mae hyn yn swyddogaeth yn unig fympwyol yn galw ei ddadl gyntaf, a.
Yn yr un modd yn y, yr ail ddadl.
Ac 'i' jyst fympwyol ffonio'r b ail ddadl.
>> Nawr mae hyn ddeuoliaeth mewn gwirionedd yn eithaf hegluro'n syml.
Meddyliwch am y peth.
Nid oes yr un ohonom wedi cwrdd â'r person a ysgrifennodd printf.
Felly yn sicr, bydd ef neu ganddi ddim syniad beth yw ein newidynnau 30 mlynedd yn ddiweddarach yn mynd
i gael ei alw.
Felly, mae'n rhaid cael gwahaniaethu rhwng yr hyn a alwch newidynnau mewn
swyddogaethau rydych chi'n ysgrifennu a beth fyddwch yn ffonio newidynnau mewn swyddogaethau rydych chi'n
ffonio neu ddefnyddio.
Felly, mewn geiriau eraill, yr wyf wedi ysgrifennu fy newidynnau fel x ac y.
Ond os yw rhywun arall wedi ysgrifennu y swyddogaeth cyfnewid, bydd ef neu hi yn sicr
na fyddent yn gwybod beth yw fy newidynnau yn mynd i gael eu galw.
Felly, yn sylweddoli bod hyn yn pam yr ydych yn cael y ddeuoliaeth o enwau.
Yn dechnegol, gallwn wneud hyn drwy gyd-ddigwyddiad.
Ond byddent yn dal i gael eu trosglwyddo i mewn fel copïau.
Byddai yn unig fod yn gyd-ddigwyddiad pur esthetaidd os yw'r person a ysgrifennodd
cyfnewid wedi defnyddio yr un enwau.
>> Mae pob hawl.
Felly, ar y pwynt hwn yn y stori, llinell 37, a yw 1.
b yw 2.
Ac yn awr yr wyf yn symud ymlaen i gyfnewid eu cyfer.
Wel yn gyntaf oll, gadewch i mi mewn gwirionedd yn gwneud hyn yn llawer mwy syml.
Nid wyf yn gwybod beth yw'r tair llinell o god yn ei wneud.
Gadewch i mi wneud hyn.
b yn cael.
a yn cael b.
Done.
Pam mae hyn yn torri, yn rhesymegol?
Mae'n fath o beth sythweledol, dde?
Felly yn dod b.
Ac b yn dod yn.
Ond y broblem yw bod cyn gynted ag y bo llinell 37 executes, beth yw'r
gwerth a b?
Mae'r un peth, 1.
Am eich bod wedi taro, fel petai, rydych chi wedi newid b yn hafal i a.
Felly, unwaith y bydd llinell 37 wedi'i gyflawni, mae hynny'n wych.
Nawr mae gennych chi dau gopi o 1 rhif y tu mewn swyddogaeth hon.
Felly, yna pan fyddwch yn dweud yn llinell 38, yn cael b, wel, rydych yn fath o sgriwio.
Oherwydd eich bod yn unig yn neilltuo 1-1.
Rydych chi wedi fath o golli y gwerth yr ydych yn gofalu amdano.
>> Felly, yn y fersiwn wreiddiol o hyn, sylwi ar beth wnes i.
Yn hytrach, roedd nhrydedd linell o god sy'n edrych fel hyn.
Yr wyf yn datgan newidyn dros dro - tmp yn enw cyffredin iawn
ar gyfer newidyn dros dro.
Mae'n int oherwydd mae'n rhaid iddo cyfateb i'r hyn yr wyf am wneud copi o.
Rwy'n cadw copi o tu mewn tmp. Felly, unwaith y bydd llinell 37 wedi cyflawni,
y gwerth yw -
bwyll cyflym gwirio -
1.
Mae gwerth b yw 2.
A gwerth tmp hefyd yn 1.
Felly, yn awr yr wyf gweithredu llinell 38.
Felly, unwaith y bydd llinell 38 executes, a mynd ar werth b.
A oedd 2 b.
Felly yn awr 2.
Felly, ar y pwynt hwn yn y stori, a yw 2, b yw 2,
ac tmp yw 1.
Felly, yn awr yn rhesymegol, gallwn werthfawrogi dim ond sw n plopian tmp yn i mewn i b.
Ac rydym ni'n ei wneud.
>> Felly, rydym wedi datrys y broblem honno.
Yn anffodus, pan fyddaf yn rhedeg y rhaglen ar y ffurflen hon, nid yw'n mewn gwirionedd yn gyfnewid
unrhyw werthoedd.
Ond i fod yn glir, pam?
Wyf yn sefydlog y broblem rhesymegol o ychydig funud yn ôl.
Ond unwaith eto, os wyf yn rhedeg y rhaglen, x ac y yn aros yn ddigyfnewid erbyn diwedd
gweithredu y rhaglen.
[Anghlywadwy]
DAVID J. Malan: Felly nid ydym wedi dychwelyd unrhyw beth.
Felly, mae hynny'n wir.
Ond mae'n troi allan mae ychydig o broblem yma oherwydd hyd yn hyn, mae'r
unig beth rydym wedi bod yn gallu dychwelyd yn un peth.
Ac mae hyn yn gyfyngiad o C. Gallwch ddychwelyd yn wir un gwerth,
yn yr achos hwn, rwy'n math o sownd yma
gan y byddwn yn dychwelyd y gwerth newydd x neu gallwn ddychwelyd y
gwerth newydd y.
Ond yr wyf am i yn ôl.
Felly nid ddychwelyd yw'r ateb syml yma.
Ond y broblem sylfaenol yw pam?
Beth ydym ni wedi cyfnewid mewn gwirionedd?
a a b.
Ond mae a a b yn copďau o x ac y, sy'n golygu ein bod yn unig oedd hyn i gyd
gweithio - rydym yn ei wario yn union fel tair munud yn siarad am y cyfnewid
swyddogaeth a pob un o'r tri o'r newidynnau hyn.
Ac mae hynny'n wych, yn hollol gywir yn ei ben ei hun.
Ond a a b yn chwmpas yn unig yn y llinellau hyn yma.
Felly, yn union fel ar gyfer ddolen, os ydych yn datgan yn gyfanrif i tu mewn i'r am
dolen - yn yr un modd, y tu mewn os ydych yn datgan a b swyddogaeth y
rydych wedi ysgrifennu, maent yn unig y tu mewn dilys y swyddogaeth honno.
Sy'n golygu cyn gynted ag y cyfnewid yn cael ei wneud cyflawni ac rydym yn mynd o linell 24 i
Nid yw llinell 25, x ac y wedi cael eu newid o gwbl.
Rydych yn unig gwastraffu llawer gyfan o amser yn gyfnewid copïau o newidynnau.
>> Felly, mae'n troi allan fod yr ateb i hyn mewn gwirionedd heb fod yn amlwg.
Dyw hi ddim yn hen ddigon i ddychwelyd gwerthoedd oherwydd ein bod yn gallu
dim ond yn dychwelyd un gwerth.
Ac yr wyf wir yn awyddus i gyfnewid ddau x ac y ar yr un pryd.
Felly, rydym yn mynd i ddod yn ôl i hyn.
Ond am nawr, yn sylweddoli bod y mater sylfaenol yn deillio o'r ffaith
bod a a b yn gopïau.
Ac maent yn eu cwmpas eu hunain.
Wel, gadewch i ni geisio datrys hyn mewn rhyw ffordd.
Gadewch i mi mewn gwirionedd yn sgrolio yn ôl yma ac yn agor i fyny, gadewch i ni ddweud, amrywiad 4
o hyn, buggy4.
A beth am hyn?
Mae hon yn broblem debyg ond symlach i edrych ar cyn inni gymryd drywanu yn
datrys.
Mae'r rhaglen hon yn cael ei alw'n cynyddiad.
Ac mae'n debyg initializes cyfanrif x i 1 yn llinell 18.
Yna hawlio x yw 1.
Yna hawliad incrementing, dot, dot, dot.
Yna, galwaf ar hicyn.
Ond wedyn mewn llinellau 22 a 23, yr wyf yn ei hawlio wedi bod yn mynd i fyny.
Gallaf wneud cais am x yn awr beth bynnag ydyw, 2 yn ôl pob tebyg.
>> Ond mae'r rhaglen hon yn bygi.
Beth yw'r broblem?
Yeah?
[Anghlywadwy]
DAVID J. Malan: Yn union.
Felly x wedi cael ei ddatgan yn amlwg ar linell 18.
Dyna y tu mewn i brif braces cyrliog.
Felly, yr ateb syml yma yw, wel, x yn bodoli yma.
Nid yw'n bodoli mewn llinell 32.
Felly y rhaglen hon, ni fydd mewn gwirionedd hyd yn oed yn llunio.
Mae'r compiler, pan fyddaf yn ceisio llunio'r cod hwn, yn mynd i gweiddi arna i
am rai dynodwr heb ei ddatgan neu rywbeth i'r perwyl hwnnw.
Yn wir, gadewch i ni geisio.
Mae hyn yn gwneud buggy4.
Mae ydyw.
Defnyddio x dynodwr heb eu datgan yn llinell 32.
Ac mewn gwirionedd, gadewch i ni fod yn fwy eglur yma heddiw fel bod hyn yn ddefnyddiol wrth
oriau swyddfa ac yn y cartref.
Hysbysiad ei fod yn ychydig yn gryptig ysgrifenedig.
Ond mae'r ffaith bod Clang wedi yelled ni, gan ddywedyd
buggy4.c: 32:5, mewn gwirionedd yn ddefnyddiol.
Mae'n golygu bod y gwall ar llinell 32 ar bum safle cymeriad.
Felly un, dau, tri, pedwar, pump.
Dyna, mewn gwirionedd, lle mae'r broblem.
A hefyd i gadw mewn cof yn ystod oriau swyddfa ac yn y cartref, rwy'n lwcus yma.
Mae gen i un camgymeriad.
Mae'n mynd i fod yn gymharol hawdd i'w datrys.
Ond os ydych yn cael sgrîn gyfan lawn o negeseuon gwall llethol, unwaith eto,
sylweddoli y gallai yr un bottommost yn unig fod yn arwydd o
y rhai topmost.
Felly, bob amser yn mynd ar drywydd i lawr eich bugs o lawr uchaf.
Oherwydd gallai dim ond fod yn effaith llygad y dydd-gadwyn sy'n cael ei awgrymu i chi
yn cael problemau ffordd fwy na chi ei wneud mewn gwirionedd.
>> Felly, sut y gallem atgyweiria hon os yw fy nod yw i gynnydd x?
Beth sy'n bod?
Iawn.
Felly, gallwn wneud x byd-eang.
Gadewch i ni gymryd y shortcut fy mod yn rhybuddio amdanynt yn gynharach.
Ond Heck, ni jyst angen ateb cyflym.
Felly, gadewch i 'jyst dweud x int i fyny yma.
Mae hynny'n gwneud x byd-eang.
Felly nawr brif fynediad iddo.
Ac mae cynyddiad yn cael mynediad iddo.
Ac felly gadewch i mi fynd yn ei flaen ac yn llunio hyn yn awr.
Gwnewch buggy4, Enter.
Ymddangos i lunio awr.
Gadewch i ni redeg buggy4, ac mae'n ymddangos i weithio mewn gwirionedd.
Nawr mae hyn yn un o'r pethau hyn -
wneud fel y dywedais, nid fel fi, gan fy mod wedi gwneud yn unig yma.
Oherwydd yn gyffredinol, mae ein rhaglenni yn mynd i gael llawer mwy diddorol a
llawer hirach na hyn.
Ac os yw eich ateb i broblemau bywyd yn unig AH, rhowch yr holl
newidynnau ar frig eich ffeil, yn gyflym iawn yn gwneud rhaglenni yn cael
dychrynllyd, yn anodd i'w reoli.
Mae'n mynd yn anoddach i feddwl am enwau amrywiol newydd.
Mae'n mynd yn anoddach i ddeall beth newidyn sy'n gwneud beth.
>> Ac felly yn gyffredinol, nid yw hyn yn ateb da.
Felly, gadewch i ni wneud hyn yn well.
Nid ydym am i ddefnyddio newidyn byd-eang yma.
Dwi ddim eisiau i gynnydd x.
Felly, allwn yn amlwg -
ar ddiwedd y dydd, mae'n fath o stori wirion oherwydd rydym yn unig yn gwneud hyn.
Ond os nad oeddwn yn gwybod am y gweithredydd, neu os nad wyf yn caniatáu i
newid yn y brif hun, gallai sut arall y gallaf weithredu Ken dros yma, mae hyn yn
amser i beidio â ciwb, ond i gynnydd?
Sut ydw i'n newid y peth yma?
Yeah.
[Anghlywadwy]
DAVID J. Malan: Iawn, da.
Felly pam nad ydw i'n pasio yn x?
Ac yna yn hytrach na dychwelyd, pam nad wyf ond yn gwneud dychwelyd x + 1?
Yn awr, mae pethau ychydig yn fwy yn gorfod newid yma.
Dwi ar y trywydd iawn.
Beth arall sydd angen i mi tweak?
Rhywun arall.
Yeah?
[Anghlywadwy]
DAVID J. Malan: mae angen i mi newid y math dychwelyd i fyny un gynyddran
oherwydd nad yw'n ddi-rym.
Void yn golygu dim byd sy'n cael ei ddychwelyd.
Ond yn amlwg, yn awr y mae.
Felly, mae angen i hyn newid er mwyn int i fod yn gyson â beth bynnag
Im 'mewn gwirionedd yn dychwelyd.
>> Nawr rhywbeth arall yn dal i fod buggy yma.
Yeah?
[Anghlywadwy]
DAVID J. Malan: Felly, yr wyf angen i gynnydd x?
[Anghlywadwy]
DAVID J. Malan: Ah, felly mae angen i basio x.
Felly, mae angen i mi wneud hyn yma.
Felly y prototeip, rhaid i mi newid hyn i fyny yma.
Felly, mae'n rhaid i hyn ddod yn int.
Mae'n rhaid i hyn fod yn -
hmm.
Fi 'n weithredol yn cael bug i lawr yma.
Gadewch i ni atgyweiria hon un cyntaf.
Beth ddylai hyn mewn gwirionedd fod?
Felly mae'n rhaid i fod yn rhywbeth int.
Gallai fod yn x.
Ond dweud y gwir, os byddwch yn dechrau ffonio eich holl newidynnau x, mae'n mynd i gael
llai ac yn llai eglur p'un yw p'un.
Felly, gadewch i 'jyst fympwyol ddewis confensiwn enwi gwahanol ar gyfer fy
swyddogaethau cynorthwy-ydd, y swyddogaethau rwy'n ysgrifennu.
Byddwn yn galw ei fod yn.
Neu gellid ei alw - gadewch i ni ei alw even_number i fod hyd yn oed yn fwy eglur.
Felly, yna rhaid i mi ddychwelyd beth bynnag y nifer yn plws 1.
Ac yn awr mae'n rhaid i mi newid un peth arall i fyny yma ac un
beth arall i fyny yma.
Beth sydd rhaid i mi newid ar-lein 21 yn gyntaf?
Rhaid i mi neilltuo i x.
Felly ni all Fi jyst alw x cynyddiad.
Angen i mi gofio yr ateb drwy newid y gwerth x ar
yr ochr chwith.
A hyd yn oed er bod x yn awr ar y chwith a'r dde, mae hynny'n hollol iawn oherwydd
yr ochr llaw dde yn cael ei gweithredu yn gyntaf ac yna yn cael ei plopped i'r chwith
, beth llaw x yn yr achos hwn.
Ac yna yn olaf, mae hwn yn ateb hawdd nawr.
Dylai hyn dim ond cyfateb i'r hyn sydd i lawr isod.
Nifer Int.
>> Mae pob hawl.
Felly, mae criw cyfan o newidiadau i swyddogaeth iawn dwp.
Ond mae cynrychiolydd o bethau y byddwn yn fwyfwy awyddus i wneud.
Felly gwnewch yn buggy4.
Rydw i wedi sgriwio i fyny yn rhywle.
O fy Nuw.
Pum camgymeriadau yn, fel, rhaglen chwe-lein.
Felly beth sydd o'i le ar llinell 18, cymeriad 5?
Mae pob hawl.
Felly, rhaid i mi ddatgan hynny int.
Mae pob hawl.
Felly, gadewch i ni weld, criw cyfan o wallau eraill.
O fy dduw.
19, 18, 21.
Ond unwaith eto, gadewch i ni dim ond yn glir y sgrîn -
L Rheoli yma - ac ail-redeg Clang.
Felly pum problem mewn gwirionedd dim ond bod un.
Felly nawr gadewch i ni redeg buggy4, Enter.
Whew.
x wedi cael ei cynyddran yn gywir.
>> Mae pob hawl.
Unrhyw gwestiynau am sut i gynnydd rhifau?
Yeah?
SIARADWR 2: Pam bod gallwch newid i rif x yn y newidyn
enwi a bydd yn gwybod beth ydych yn ei olygu?
DAVID J. Malan: Cwestiwn da.
Sut mae'n bod y gallaf newid i nifer x a bydd y rhaglen yn gwybod
ar unwaith?
Felly, unwaith eto, yn meddwl am y peth fel hyn yn tynnu dŵr.
Felly, os wyf yn prif Ken yn gynyddol, a dweud y gwir, nid wyf yn poeni
beth Ken galw ei iPad.
Nid wyf yn poeni beth y mae'n galw unrhyw beth sydd wedi ei wneud gyda ei weithredu
o'r swyddogaeth hon.
Felly, mae hyn yn gweithredu manylion nad wyf fi, prif, yn gwneud
rhaid i chi ofalu amdanynt.
Ac felly dim ond ei newid yn gyson tu mewn i'r swyddogaeth, rhif yma
a rhif yma, yw'r cyfan mae'n ei gymryd gymaint o amser gan fy mod yn ail-grynhoi.
Mae'n fath o fel os ydych yn meddwl am - llawer ohonom, y rhai ohonoch sydd â gyrrwr
trwyddedau sydd wedi gyrru, neu os ydych chi wedi gyrru hyd yn oed mewn car -
y rhan fwyaf ohonom ddim syniad sut mae car yn gweithio o dan y cwfl.
Ac yn llythrennol, os byddwch yn agor y cwfl, mae'r rhan fwyaf ohonom - gan gynnwys fi -
nad ydynt yn mynd i wir yn gwybod beth rydym yn edrych ar.
Fath o fel efallai y byddwch yn teimlo gyda pethau fel hyn ar hyn o bryd.
Ond nid ydym yn wir yn gorfod gofalu sut y mae'r car yn gweithio.
Nid oes rhaid i ni ofalu beth y mae'r holl y wialen a pistons a cheblau tu mewn
y car yn cael ei wneud mewn gwirionedd.
>> Felly nid rhywbeth fel hyn a alwch yn piston yw o bwys
yma yn yr achos hwn.
Un syniad.
Yeah?
[Anghlywadwy]
DAVID J. Malan: Pe bai mwy o ddefnydd o bryd xa amrywiol yn ôl,
chi, y rhaglennydd, yn cael eu newid ym mhob man.
Neu fe allech chi wneud llythrennol File, Dewislen, ac yna Canfod / Amnewid,
rhywbeth fel 'na.
Ond yr ydych yn mynd i gael i wneud y newidiadau hynny eich hun.
Mae'n rhaid i chi fod yn gyson.
[Anghlywadwy]
DAVID J. Malan: A drefn arbennig yma?
Os yw hyn yn int rhif arall?
Yeah.
Felly, er bwysig pan fyddwch yn galw y swyddogaeth.
Felly, os wyf yn galw cynyddiad yma gyda rhywbeth coma rhywbeth,
mae 'na mapio uniongyrchol.
Y newidyn cyntaf, beth bynnag fe'i gelwir, yn cael ei gwneud copi o'r cyntaf
dadl dros yma.
Mae'n ddrwg gennym, ni ddylai hyn fod yn parenthesis.
Mae'r llinellau ail ddadl i fyny gyda'r ail un.
>> Felly gorchymyn, ie, materion.
Mae pob hawl.
Mae'n ddrwg gennym wyf yn cymryd ffordd bell i gyrraedd yno.
Cwestiynau eraill?
Mae pob hawl.
Felly, gadewch i ni weld os na allwn beintio darlun o'r hyn sy'n digwydd mewn gwirionedd ar
yma o dan y cwfl, fel petai.
Felly mae hwn yn petryal a allai gynrychioli cof eich cyfrifiadur.
Felly, hyd yn oed os nad oes gennych syniad sut y cof yn gweithio neu sut mae RAM, o leiaf
cymryd yn ganiataol bod gennych sypiau ohono y dyddiau hyn.
Rydych chi wedi got megabeit ohono.
Rydych chi wedi got gigabeit ohono.
Ac rydym yn gwybod o sero wythnos fod beit yn unig yw hyn?
8 did.
Iawn, hynny 8 sero a rhai.
Felly, os yw eich cyfrifiadur yn gig o RAM, dau gigs o RAM y dyddiau hyn, mae gennych
biliwn neu 2000000000 bytes o gof, neu tua 8 biliwn neu 16000000000
darnau, tu mewn i'ch cyfrifiadur.
Nawr yn wahanol i'r enghraifft Willy bach gwlanog, nid yw'n gronynnau magnetig
fel arfer anymore.
Yn gynyddol, mewn gliniaduron o leiaf, mae'n gyrru cyflwr solet, AGCau, sy'n
yn unig wedi dim rhannau symudol.
Mae hyn i gyd electronig.
Mae hyn i gyd trydan.
Felly, yn credu, fodd bynnag, y petryal fel dim ond cynrychioli'r un neu ddau
gigabeit o gof sydd gennych.
>> Felly mae'n ddarn o gof.
Nawr bod y byd gwyddoniaeth gyfrifiadurol yn fath o ddarnau rhannu oddi
cof i wneud pethau gwahanol.
Felly, er enghraifft, os yw hyn yn RAM eich cyfrifiadur - fel yr awgrymwyd gan y
petryal yno - troi allan bod gan gonfensiwn, ar ben eich RAM, felly
i siarad, yn gyffredinol hyn a elwir yn segment testun.
Dyna'r sero a rhai yr ydych wedi ei lunio.
Felly, pan fyddwn wedi edrych o dan y cwfl ar yr hyn a.out yw, mae pawb
y sero a rhai -
pan fyddwch yn rhedeg rhaglen, y rhai sero a rhai yn cael eu llwytho oddi wrth eich caled
gyrru i mewn i rywbeth o'r enw RAM.
Ac yn y RAM, maen nhw'n rhoi ar y brig.
Nawr yn y cyfamser, mae gennych bethau eraill.
Data hymgychwyn, data uninitialized.
Mae'r ddau ystodau o gof yn cyfeirio at newidynnau byd-eang, sy'n
nad ydych yn aml yn defnyddio.
Ond weithiau os ydych yn ei wneud, maent yn y pen draw i fyny yno yn ogystal.
Yna mae rhai pethau eraill.
Newidynnau amgylchedd, a ni fyddwn yn treulio llawer o amser ar.
Ond yna ddau beth pwysig a fydd yn dod yn ôl drwy gydol y
semester, stac a domen.
>> Felly, y rhan fwyaf o gof eich cyfrifiadur yn cael ei gadw wrth redeg rhaglen ar gyfer
rywbeth a elwir yn y pentwr ac yn rhywbeth a elwir yn y domen.
Ac nid ydym yn mynd i siarad am y domen heddiw, ond byddwn yn
siarad am y pentwr.
Ac y pentwr i fod i greu'r yr gweledol fel y neuadd fwyta
hambyrddau bwyd yn Mather House, neu ble bynnag yr ydych yn digwydd bod, lle mae'r
neuadd fwyta staff glanhau bob dydd.
Maent yn pentyrru nhw i fyny o'r llawr ar i fyny.
Ac yn yr un modd mewn cof, mae hyn yn syniad o roi rhywbeth ar
stac, gan roi rhywbeth ar pentwr, gan roi rhywbeth ar pentwr.
A beth ydyn ni'n ei olygu wrth hyn?
Wel, gadewch i ni chwyddo i mewn ar ddim ond hanner isaf y llun, eich cyfrifiadur
RAM, i gynnig y canlynol.
Mae'n troi allan bod pan fyddwch yn rhedeg rhaglen fel a.out neu helo, beth bynnag
y rhaglen yw eich bod wedi ysgrifennu,
unwaith eto, y rhai sero a rhai yn cael eu llwytho oddi wrth eich gyriant caled - sy'n
storio tymor hir, yn aros yno hyd yn oed pan fyddwch yn tynnu'r plwg -
lwytho i mewn RAM.
RAM yn gyflymach na 'n anawdd drives.
Mae'n llai na 'n anawdd drives.
Ond mae'n lle mae rhaglenni byw tra rydych yn eu rhedeg.
>> Felly rydych dwbl cliciwch ar un o'r rhaglen ar Mac neu PC - mae'n lwytho o'r
'n anawdd cathrena i mewn RAM.
Cyn gynted ag y mae'n cael ei llwytho i mewn i RAM, y sero a rhai yn mynd ar y brig ffordd, mae'r
hyn a elwir yn segment testun.
Ond wedyn cyn gynted ag y bydd eich rhaglen yn cychwyn mewn gwirionedd yn rhedeg, y prif
swyddogaeth ei alw.
Ac yn bennaf, fel yr ydym wedi gweld, yn aml mae newidynnau lleol.
Ac mae wedi ints a llinynnau a chars ac yn y blaen.
Felly, os yw eich rhaglen eich bod wedi ysgrifennu neu'r rhaglen sydd gennych
ddwbl glicio defnyddio rhai newidynnau y tu mewn o brif, maent yn y pen draw ar
waelod eich pentwr o gof, fel petai.
Nawr yn fwy concretely, beth mae hyn yn ei olygu mewn gwirionedd?
Mae hyn yn unig yn golygu os ydym yn mynd i rifo pethau -
os ydym yn mynd i nifer y bytes o RAM yn eich cyfrifiadur, yn sylwi bod
gallai hyn fod yn sero rhif beit.
Gallai hyn fod yn rhif beit un, dau, tri, pedwar, pump, chwech, i gyd
y ffordd i fyny i hoffi -
Byddai 2 biliwn ar gael yr holl ffordd i fyny yno ar y brig.
Felly, mewn geiriau eraill, pan fyddwn yn siarad am RAM neu gof o ran bytes, mae'n
jyst yn golygu bod rhywun wedi penderfynu beth i'w rifedi ar bob un o'r
rhai darnau o gof.
>> Felly, pan fydd angen 32 catiau ar gyfer int, neu os oes angen 8 did ar gyfer golosg, lle
maent yn y pen draw yn y cof?
Wel gysyniadol, maent ond yn y pen draw ar waelod y
beth a elwir yn y pentwr.
Ond beth sy'n ddiddorol yn awr yw pan fydd yn galw brif swyddogaeth.
Tybiwch swyddogaeth o'r enw foo, dim ond enw mympwyol.
Beth sy'n digwydd yw prif ar waelod y pentwr o gof.
Foo bellach yn cael ei roi ar ben y brif cof.
Felly unrhyw newidynnau lleol sy'n foo wedi dod i ben i fyny math o gysyniadol uchod
y rhai yn y prif.
Os foo yn galw swyddogaeth arall a elwir yn bar, y rhai newidynnau yn y pen draw fan hyn.
Os bar yn galw rhywbeth arall, yma, yma, yma.
Felly, yr hyn sy'n ddiddorol am redeg rhaglen yw bod wrth i chi alw swyddogaethau,
ac fel y swyddogaethau hynny galw swyddogaethau, ac fel y swyddogaethau hynny galw swyddogaethau,
rydych yn adeiladu i fyny y pentwr o swyddogaethau yn y cof.
A dim ond unwaith y ffurflenni swyddogaeth yn byddwch yn dechrau cael bod y cof yn ôl.
Felly, un o'r ffyrdd hawsaf i redeg allan o gof mewn rhaglen gyfrifiadurol i
ysgrifennu swyddogaethau sydd byth yn dychwelyd.
>> Felly, er enghraifft, gadewch i ni ddangos gymaint â
rhaglen fwriadol bygi.
Gadewch i mi fynd yn ei flaen ac nid # cynnwys , prif int (gwag).
Ac yr wyf i'n mynd i wneud ychydig (2> 1), a oedd yn debyg na fydd byth
newid arnom.
A gadewch i mi fynd yn ei flaen yn awr a gwneud printf.
A dweud y gwir, mae hynny'n mynd i fod yn llai diddorol yn weledol.
Gadewch i ni wneud hyn.
Am int (i = 0; i> 0).
Gadewch i ni wneud y camgymeriad hwn, i + +.
A gadewch i ni beidio printf yma.
Gadewch i ymarfer beth roeddwn yn ei bregethu.
Gadewch i ni gael dull yma.
, Corws Gwag a byddwn yn dweud int i.
Ac yna dwi'n mynd i ddweud, printf -
oh, gadewch i ni wneud hyn yn fwy diddorol.
Gadewch i ni mewn gwirionedd yn argraffu unrhyw beth o gwbl.
Gadewch i ni dim ond yn gwneud hyn.
Chorus (i).
>> Mae pob hawl.
Felly, mae hyn yn buggy oherwydd pam?
Rwy'n gwneud hyn i fyny gan fy mod yn mynd am nad yw'r rhaglen yn ei wneud mewn gwirionedd unrhyw beth
o ddiddordeb.
Ond nid dyna'r nod.
Y nod yw i ysgrifennu rhaglen sydd â'r brif swyddogaeth gwneud beth, mae'n debyg?
Ffoniwch ei hun.
Ac mewn gwirionedd, nid oes angen y ddolen.
Gadewch i ni hyd yn oed yn symleiddio'r hyn yn unig er mwyn peidio â cholli golwg ar wir y
bug sylfaenol.
Galwadau Prif corws i ganu rhai corws.
Yna mi wneud rhywbeth twp, ac roedd gen i corws alwad corws oherwydd fy mod yn cymryd yn ganiataol
rhywun arall yn mynd i weithredu efallai.
Ac yn awr nid yw hyn yn mynd i lunio eto.
Angen i mi wneud beth?
Fi angen 'r prototeip, cofiwch.
Felly, mae angen i mi gael hyd yma corws ddi-rym (int i);.
>> Felly nawr, os byddaf yn mynd i lawr yma -
mewn gwirionedd, gadewch i ni ddefnyddio y ffenestr mwy.
Gadewch i ni fynd ymlaen a gwneud corws.
Defnyddio datganydd anhysbys i.
O, a oedd yn dwp.
Nid oes arnom angen y ddadl.
Gadewch i ni dim ond yn gwneud hyn.
Wish rydym wedi dechrau fel hyn.
Byddai wedi bod yn rhaglen lawer yn haws i ysgrifennu.
Felly yno.
Nawr gadewch i ni fynd draw i fy, ffenestr terfynell ail-redeg Clang.
A dyma ni yn mynd.
Dyna oedd yn gyflym iawn.
Beth a ddigwyddodd mewn gwirionedd yn unig, er bod?
Wel, yn awr byddaf yn ychwanegu'r llinell print, fel y gallwn weld.
Felly, gadewch i mi ddweud printf, gadewch i ni ddweud, Im 'i mewn yma.
Iawn, dim newidynnau, byddwn yn gadael fel hynny.
Gadewch i mi ail-redeg wneud.
Gadewch i mi ail-redeg corws.
Ac yn dod ymlaen.
Cadwch yn mynd.
Fel o'r neilltu, pam nad yw wedi chwalu eto?
Mae'r wall yn digwydd yn gyflym super o'r blaen.
[Anghlywadwy]
DAVID J. Malan: Yn union.
Felly, mae'n cymryd amser i argraffu.
Mae'n cymryd dim ond mwy o waith ar ran y cyfrifiadur.
Ac yno y mae.
Wall.
>> Felly sylwi pa mor gyflym rhaglenni rhedeg.
Os nad ydych yn argraffu unrhyw beth, yn gyflym super.
Ond rydym yn dal i gael y wall oherwydd yr hyn oedd yn digwydd?
Wel, os ydych yn meddwl am sut y cof eich cyfrifiadur wedi ei osod allan, mae hyn yn
digwydd i fod yn brif.
Ond yma -
gadewch i 'jyst yn galw hyn yn corws, a gadewch i ni yn galw hyn corws.
Ac yn awr os wyf yn gwneud fy estheteg iawn, mae hyn yn unig yn mynd i ddweud corws,
corws, corws, corws, corws, corws, corws, nauseum ad.
Ac yn y pen draw, yr hyn sy'n mynd i ddigwydd?
Os yw'r darlun mawr llythrennol yw hyn, beth yn union sy'n digwydd gysyniadol?
Mae'r gor-redeg stac y domen.
Neu waeth, rydych gor-redeg yn bopeth, gan gynnwys y segment testun, sydd yn
y sero a rhai sy'n cynrychioli eich rhaglen.
Yn fyr, mae hyn yn unig super, super drwg.
Hawl?
Mae eich rhaglen wedi sbinio allan o reolaeth.
Rydych yn defnyddio cof ffordd fwy na'r bwriad i gyd oherwydd dwp
camgymeriad, yn yr achos hwn.
Neu yn yr achos hwn, mae swyddogaeth gwneud iawn fwriadol galw ei hun.
Nawr nid yw hyn yn ddrwg i gyd.
Swyddogaethau galw eu hunain mewn gwirionedd wedi bŵer mawr
pan fyddwch yn ei ddefnyddio yn gywir.
Nid wyf wedi ei ddefnyddio yn gywir yma.
>> Felly, nid yw hyn yn ddrwg i gyd.
Ond y ffaith nad wyf byth yn rhoi'r gorau i mewn gwirionedd yn galw fy hun yn sylfaenol
gwendid yma o'r rhaglen hon.
Felly, lle rydym yn mynd gyda hyn i gyd?
Wel, beth sy'n digwydd mewn gwirionedd?
Pan alwaf y swyddogaeth cynyddiad, fel yr ydym yn ei wneud yn enghreifftiau hynny,
Mae gen i werth fel 1 fy mod yn mynd i mewn
Rwy'n pasio mewn copi o'r rhif un.
Felly, mae'r canlynol yn digwydd.
Felly, gadewch i ni fynd i mewn i'r cynyddiad enghraifft.
Ac mae hyn yn guy dde dros yma.
Felly, dyma beth sy'n digwydd mewn gwirionedd.
Pan fyddaf yn galw cynyddiad, ac yr wyf yn pasio x, ar ffurf lluniau beth sydd
yn mynd ymlaen yma yw hyn -
os byddaf yn cael y gwerth o 1 storio yma, ac yr wyf yn ei galw cynyddiad, a
elwir bellach corws -
yeah, mae hynny'n taflu fi oddi yma.
Felly, gadewch i ni galw hyn gynyddiad.
Ac nid ydym yn gwybod beth y mae hyn swyddogaeth nesaf yn mynd i fod.
Felly, beth sy'n digwydd mewn gwirionedd yma yn rhywle yn y brif, mae gen i ddarn o
cof sy'n cael ei storio y rhif 1.
Pan fyddaf yn galw cynyddiad, rwy'n defnyddio darn arall o cof, ond yn awr yr wyf
cael copi o 1.
Pan fyddaf yn gynyddran y gwerth, mae hyn yn 2 - a ysgrifennwyd ofnadwy ar y
sgrin yma.
Ond wedyn, beth sy'n digwydd cyn gynted ag y ffurflenni cynnydd?
Mae'r cof yn unig yn cael eu rhoi yn ôl i'r system weithredu, sy'n golygu bod yr holl
eich bod wedi gwneud dim byd defnyddiol.
Yr un a gafodd ei gynnwys yn wreiddiol yn brif yn dal i fod mewn gwirionedd yno.
>> Felly, lle rydym yn mynd â hyn?
Wel, mae'n troi allan bod mewn cof gennych y cefn wrth gefn dilyniant o
bytes y gallwch roi pethau mewn
Ac mae'n troi allan bod rydym eisoes wedi gweld rhywbeth sy'n golygu rhoi
pethau yn ôl i gefn wrth gefn wrth gefn.
Beth yw llinyn, yn seiliedig ar wythnos un ac yn awr yr wythnos ddau?
Felly, mae'n dim ond casgliad o gymeriadau.
Felly, mae'n troi allan, yn union fel y gallwch roi rhifau mewn cof, yn yr un modd y gallwch
rhoi cymeriadau mewn cof.
Ac ar ôl i ni ddechrau cymeriadau rhoi er cof cefn wrth gefn wrth gefn i
yn ôl, mae'n troi allan bod defnyddio y pethau symlaf fel dolen i neu
dolen tra, gallwn ailadrodd -
o'r chwith i'r dde dros y cymeriadau mewn llinyn -
ac yn dechrau massaging i mewn i gymeriadau gwahanol yn gyfan gwbl.
Gallai ddod gallai B. B ddod C. Felly yn y pen draw, gallwn gymryd
Frawddeg Saesneg sydd mewn gwirionedd yn gwneud synnwyr ac yn trosi pob un o'r
llythyrau un ar y tro gan gerdded trwy ein cof cyfrifiadur ar ôl i
hawl i amgryptio mewn gwirionedd.
>> Felly, gadewch i ni gymryd ein pum munud egwyl yma, a phan fyddwn yn dod yn ôl, gallwn eich
gychwyn y broses hon o sgrialu gwybodaeth.
>> Mae pob hawl.
Felly, cyn i ni plymio i mewn i rai crypto ac mae'r rhain yn bethau o'r enw arrays, gadewch i mi
oedi ar gyfer unrhyw gwestiynau am fy mod yn teimlo fel Fi 'n sylweddol fath o ddryslyd rhai o'r
y pynciau hynny.
Felly, gadewch i ni atgyweiria awr os gallwn.
Felly, rydym yn unig yn siarad am werthoedd dychwelyd.
Rydym yn siarad am ddadleuon.
Ac rydym yn siarad am y syniad hwn, y byddwn yn dod yn ôl atynt yn yr wythnosau i
ddod, o edrych ar cof fel criw cyfan o'r rhain ei stacio
hambyrddau, fel petai.
O gwaelod ar i fyny, fel bod gan bob hambwrdd sy'n cael ei roi ar y pentwr yn cynrychioli
swyddogaeth sydd wedi cael eu galw ar hyn o bryd.
Unrhyw gwestiynau?
Felly, beth am - gadewch i mi geisio gofyn cwestiwn.
Rwy'n cadw ddifetha hynny, ond erbyn hyn it's - you've gweld yr holl wyneb y bachgen.
Felly, byddwn yn dod yn ôl at hynny.
>> Felly, gadewch i mi ofyn cwestiwn yma.
Gadewch i mi symleiddio'r hyn yn ôl i'r hyn yr oedd cyn i rai o Q ynghynt yr oedd ein & A.
Ac mae'r ffaith bod cynyddiad wedi parenthesis agored, rhif int, ar gau
parenthesis.
Beth mae nifer int ei gynrychioli?
[Anghlywadwy]
DAVID J. Malan: Mae dadl.
Iawn, ond beth dadl?
[Anghlywadwy]
DAVID J. Malan: Mae'n ddrwg gennyf, beth sy'n bod?
SIARADWR 3: Rhywbeth byddwch yn pasio i mewn
DAVID J. Malan: Iawn.
Felly, rhywbeth y byddwch yn pasio i mewn
Ac yn fwy cyffredinol, dim ond y mewnbwn.
Os ydych chi'n ysgrifennu swyddogaeth a diben y swyddogaeth honno mewn bywyd yw gwneud
rhywbeth ychydig yn wahanol bob tro y byddwch yn ei ddefnyddio, yna yr unig ffordd i
y byddai i ddigwydd mewn gwirionedd yn ymddangos i fod i roi iddo yr mewnbwn fel ei fod yn
Gall gwneud rhywbeth gwahanol gyda mewnbwn hwnnw bob tro.
>> Felly, mae angen i chi nodi dau beth pan fydd swyddogaeth yn cymryd mewnbwn.
Rhaid i chi benodi enw yr hoffech ei roi i hynny o mewnbwn, dim ond am
gyfleus i chi fel y gallwch gyfeirio ato yn y swyddogaeth yr ydych yn
eich hun yn ysgrifenedig, fel y gwneuthum yma yn llinell 32.
Ond mae angen i chi hefyd nodi ei fath oherwydd bod C yn iaith raglennu
mai dim ond ei gwneud yn ofynnol
, os ydych am newidyn, rhaid i chi ddweud wrth y cyfrifiadur pa
data deipio yw,
i raddau helaeth er mwyn iddo wybod faint o ddarnau i
ddyrannu ar gyfer y newidyn.
Oherwydd gallai fod yn chwech -
ddrwg gennym, ni fydd chwech.
Gall fod yn 16.
Gall fod yn 8.
Gall fod yn 32, hyd yn oed 64.
Ond mae'r cyfrifiadur angen gwybod.
Nawr bod y int ar yr ochr chwith yn cynrychioli beth, ar y llaw arall?
[Anghlywadwy]
DAVID J. Malan: Beth sy'n bod?
[Anghlywadwy]
DAVID J. Malan: Y math o swyddogaeth ac, yn fwy penodol, y
math o allbwn.
Hawl.
Felly, tra bod y peth yn cromfachau yn cynrychioli ei fewnbwn, os o gwbl, y
beth ar y chwith yn cynrychioli ei allbwn.
Ac yn yr achos hwn, cynyddiad ymddangos yn dychwelyd yn int.
Ac felly int yw'r math dychwelyd y swyddogaeth hon.
>> Beth mae'n ei olygu i ddychwelyd?
Yn llythrennol, eich bod yn defnyddio'r ffurflen keyword.
Ac yna os yw'r hyn rydych yn dychwelyd i'r dde y gair allweddol yn
cyfanrif, yna mae hynny'n wir yn gyson â'r hyn yr ydym wedi ei addo.
Ni allech wneud rhywbeth fel hyn -
helo, byd -
oherwydd bod yn llinyn.
Yn amlwg nid yw'n gyfanrif.
Felly, yn fyr, mae'r baich yn wirioneddol arnom ni, y rhaglennydd, i fod yn benodol fel
i'r hyn rydym yn dychwelyd ac yna mewn gwirionedd yn mynd am ei ddychwelyd.
Ac yna i wneud braidd yn fwy clir y cyd-destun -
yno y mae eto.
Y cyd-destun -
syndod mawr yn dod mewn dim ond hyn o bryd.
Y cyd-destun yma yn awr yn y cof eich cyfrifiadur, unwaith eto, a
gigabyte, dau gigabeit, beth bynnag.
Efallai ei fod yn fwy.
Efallai ei fod yn llai.
Ond mae'r cyfrifiadur yn ystyried ei fod yn cael adrannau gwahanol.
Rhywbeth yn mynd i lawr yno.
Rhywbeth arall yn mynd i fyny yno.
Pethau gwahanol yn mynd yn y canol.
A heddiw, rydym yn unig yn dechrau dweud y stori hon.
>> Ond byddwn yn dod yn ôl at hyn dros gyfnod.
Am y tro, yr unig ddarn o cof ydym yn wir yn poeni am yn y segment testun
oherwydd mai dim ond yn cynrychioli sero a rhai
bod Clang wedi outputted.
Felly, pan fyddwch yn rhedeg gorchymyn ar y bysellfwrdd fel a.out, neu os ydych yn ddwbl
cliciwch eicon ar Mac OS neu Windows, eich rhaglen ei llwytho o'ch caled
gyrru i mewn i RAM.
Ac mae'n plopped ar frig y RAM eich cyfrifiadur, felly, i siarad.
Nawr yn y cyfamser, fel eich rhaglen yn dechrau rhedeg a phrif cael galw i mewn y
rhaglen i chi ysgrifennu neu ysgrifennodd y Microsoft rhaglen neu Apple, unrhyw un o'i
newidynnau lleol yn y pen draw i lawr yno ar waelod y cof eich cyfrifiadur.
Ond os brif galw swyddogaeth arall sydd ei hun wedi newidynnau neu
dadleuon, maent yn y pen draw uwch ei ben.
Ac os yw'r swyddogaeth honno yn galw rhywbeth, maent yn y pen draw uwch ei ben,
uwch ei ben, uwch ei ben.
A dim ond unwaith y swyddogaeth yn cael ei wneud weithredu yn y pentwr o hambyrddau, felly
i siarad, yn dechrau cael is ac yn is.
Ac mae hyn yn beth wedyn, yn gryno, yn esbonio pam, pan fyddwch yn ffonio ciwb -
neu os ydych yn ffonio cynyddiad -
ydych yn pasio mewn copi o'r gwerth.
A beth mae hynny'n ei olygu ddarluniadol yw eich bod yn llythrennol yn ysgrifennu'r
rhif 1 mewn rhan arall o'r cof, newid bod 1 i 2, yn achos
cynyddiad -
neu i 8, yn achos ciwb -
ac yna thaflu bod y cof i ffwrdd cyn gynted ag y cynyddiad neu'r ciwb
dychwelyd swyddogaeth.
>> Cwestiwn.
[Anghlywadwy]
DAVID J. Malan: Lle - newidynnau byd-eang yn cael eu storio yn yr hyn sydd
a elwir ar hyn o bryd y data ymgychwyn neu ddata uninitialized.
Y gwahaniaeth yw, os oes gennych newidyn byd-eang, ac yr ydych wedi aseinio ei
unwaith gwerth gyda'r hafalnod, mae'n dod i ben i fyny ar y brig yno.
Ac os ydych yn unig yn dweud int x hanner colon heb unrhyw werth, mae'n dod i ben i fyny ychydig
is yn RAM yn syml trwy confensiwn.
Cwestiynau eraill.
Mae pob hawl.
>> Felly, bydd y darlun yn dod yn ôl wrth i ni gael mwy pwerus â'r hyn y gallwn ei wneud
gyda'r cyfrifiadur.
Ond am nawr, gadewch i ni gael intro byr i cryptograffeg, math penodol o
cryptograffeg nad yw'n datrys yr holl broblemau y byd, ond yn datrys
rhai ohonynt.
Yn yr achos yma, mae gennym rywbeth o'r enw cryptograffeg gyfrinach allweddol.
Ac cryptograffeg allweddol gyfrinach, fel yr awgryma'r enw, yn deillio ei diogelwch
o gyfrinach.
Felly, er enghraifft, os ydych chi'n ôl yn yr ysgol gradd a ydych yn pasio
llythyr caru gyfrinach fawr ddim at y bachgen neu ferch rydych yn mathru ar - os ydych yn
yn awyddus i basio'r drwy'r gynulleidfa, mae'n debyg na fyddech ysgrifennu
nodyn o'r fath yn Saesneg neu beth bynnag yw eich iaith frodorol yw, yn hytrach, i chi
gallai ei amgryptio.
Neu efallai y byddwch yn anfon neges atynt destun y dyddiau hyn.
Ond efallai y byddwch mewn gwirionedd yn eu trosglwyddo nodyn trwy gydol yr ystafell ddosbarth.
Ac i wneud hyn yn ddiogel, yn y fath fodd fel bod eich ffrindiau a'r athro
ddim yn gwybod beth rydych chi'n ysgrifennu, efallai y byddwch yn dod o hyd i gweddol syml
algorithm -
ifanc er y gallech fod -
i ychydig sgrialu y geiriau.
Felly, yn hytrach nag ysgrifennu A, efallai y byddwch yn ysgrifennu B. Yn hytrach na B, efallai y byddwch yn ysgrifennu
C. Yn hytrach na C, efallai y byddwch yn ysgrifennu D, ac yn y blaen.
Neu fe allech chi ddod o hyd i gyfieithiad mwy soffistigedig o lythyrau
i lythyrau gwahanol.
Ond mae'r dal yn y bachgen neu ferch i bwy rydych chi'n anfon y nodyn hwn mae angen i
gwybod rhywbeth.
Sef yr hyn, yn amlwg?
Fel, beth yw eich gyfrinach.
Fel, beth yw bod mapio rhwng A a B a C a D?
A yw'n dim ond ychwanegu un, fel petai, i bob un o'r llythyrau i fynd o
A i B, B i C?
A yw'n fwy cymhleth na hynny?
Felly, i chi a'ch malwch angen i gael y wybodaeth gyfrinachol.
Ond mae fath o dal-22 yma.
Os mai dyma'r tro cyntaf rydych chi'n anfon y llythyr caru drwy'r
dosbarth, sut mae hynny'n cael bachgen neu ferch yn mynd i wybod beth yw'r gyfrinach hyd yn oed yn?
Felly gyfrinach allweddol crypto yn datrys yr holl broblemau y byd.
Ac mae mewn gwirionedd perthynas y byddwn yn dod yn ôl i tuag at
diwedd semester.
>> Yn yr un modd, yn cael yr un ohonom yn ôl pob tebyg a anfonwyd erioed -
yn yr un modd, nid ydynt yn y rhan fwyaf ohonom yn adnabod rhywun sy'n gweithio, er enghraifft, ar
Amazon.com.
Ac eto, mae llawer ohonom wedi prynu yn ôl pob tebyg pethau at Amazon.com.
Ac rydym wedi bod yn dysgu i gymryd yn ganiataol bod y rhain yn e-fasnach
drafodion yn ddiogel.
Hawl?
Mae'r URL yn ôl pob tebyg yn dweud https.
Mae efallai eicon clo bach gwirion yn rhywle.
Mae rhyw fath o cryptograffeg sicrhau eich gwybodaeth cerdyn credyd
rhyngoch chi a Amazon.com.
Ac eto, os cryptograffeg yn golygu gwybod rhywfaint o gyfrinach, ac eto nid wyf yn ei wneud
adnabod unrhyw un yn Amazon, ac nid wyf wedi trefnu sicr unrhyw fath o
gyfrinachol gyda rhywun yn Amazon, sut mae fy nghyfrifiadur neu fy porwr yn gwneud hyn?
Wel, yn troi allan yna fathau eraill o cryptograffeg yn gyfan gwbl sy'n datrys
y broblem honno.
Ond ar gyfer heddiw, byddwn yn canolbwyntio ar yr un syml, lle gallwch drefnu yn
ymlaen llaw i adnabod rhai gyfrinach, fel ynghyd ag 1 neu ryw mapio rhwng A a B. Mae.
>> Ac mae'r broses o cryptograffeg yn gyffredinol yn cynnwys hyn.
Mae gennych rhywfaint o destun plaen, a ddangosir yma ar y chwith.
Rydych yn rhedeg ei trwy ryw fath o algorithm neu weithdrefn
ar gyfer amgryptio amdano.
Efallai mai dim ond yn dod B A, B yn dod yn C. Ac yna ydych yn darfod i fyny gyda
Cipher testun.
Yn y cyfamser, unwaith y bydd eich mathru yn derbyn y nodyn cudd, ganddo ef neu hi wedyn
dadgriptio yn gyffredinol yn gwrthdroi'r algorithm er mwyn cael
cefnogi'r testun plaen.
Erbyn hyn mae ymgnawdoliadau corfforol o hyn.
Er enghraifft, mae hwn yn gylch datgodiwr gyfrinach fach.
Ac mae hyn yn gylch yn yr ystyr bod yna ddau deialau yma.
Ar gyrion y tu allan i'r peth, mae llythrennau A drwy Z,
er eu bod mewn trefn ar hap.
Ac ar y tu mewn, mae mewn gwirionedd rhai rhifau, fel bod â hyn
ffoniwch, gallwch fath o droi'r tu allan ond nid y tu mewn er mwyn i linell i fyny
rhifau gyda llythrennau.
Ac yn y clip ydych chi ar fin i weld - rhai ohonynt efallai eich bod wedi gweld 24/7
o amgylch y tymor y Nadolig o ffilm o'r enw Stori Nadolig.
Byddwch yn gweld bod Ralphie bach oedd mor awyddus i chyfrif i maes beth amddifad bach
Annie neges gyfrinach oedd iddo ef fod wedi cael eu cyfleu, yr wyf yn meddwl, yn y
ffurfio o negeseuon rhifol ar flwch cyfresol.
A bu'n rhaid i chi gronni holl gardiau bach a ddaeth
yn y blwch grawnfwyd.
Roedd yn rhaid i bost nhw i mewn
Roedd yn rhaid i fynd yn ôl y cylch datgodiwr gyfrinach, fel y gallwch yn olaf ffigur
beth yw'r mapio rhwng llythrennau a rhifau,
neu lythyrau a llythyrau.
Felly, yr wyf yn rhoi i chi y clip byr o A Christmas Story i ysgogi pset 2 a
ein trafodaeth, mewn munud, o araeau.
Felly yma mae gennym Ralphie.
>> [Chwarae fideo]
-Bod yn hysbys i'r byd a'r betws bod Ralph Parker yn cael ei benodi drwy hyn
aelod o'r Cylch Plant Amddifad Little Secret Annie ac yn cael ei hawl i'r holl
y anrhydedd a budd-daliadau digwydd hynny.
-Llofnodwyd, Orphan Little Annie.
Chydlofnodi, Pierre Andre!
Mewn inc!
Anrhydedd a budd-daliadau, sydd eisoes yn naw oed.
Dewch ymlaen, gadewch i ni fynd ymlaen â'r gwaith.
Nid wyf yn angen yr holl jazz am smyglwyr a môr-ladron.
Gwrando-nos yfory ar gyfer y antur olaf y The Black
Môr-ladron Ship.
Nawr mae'n amser i Annie neges gyfrinach i chi aelodau
y Cylch Secret.
Cofiwch, plant, gall dim ond aelodau o Annie Cylch Secret dadgodio
Annie neges gyfrinachol.
Cofiwch, Annie yn dibynnu ar chi.
Gosodwch eich pinnau i B2.
Dyma yw'r neges.
12, 11 -
-Rwyf yn fy nghyfarfod cyfrinachol cyntaf.
-14, 11, 18, 16 -
Oedd-Pierre yn heno llais mawr.
Allwn ddweud bod neges heno oedd yn bwysig iawn.
-3, 25.
Dyna neges gan Annie ei hun.
Cofiwch, peidiwch â dweud wrth unrhyw un.
-90 Eiliadau yn ddiweddarach, rwy'n yn yr ystafell yn y tŷ lle mae bachgen o naw
Gallai eistedd mewn preifatrwydd a dadgodio.
Ha, aeth B. I i'r nesaf.
E. Y gair cyntaf yw fod.
S. Yr oedd yn dod yn haws yn awr.
U.
-Oh, yn dod ar, Ralphie.
Ges i fynd.
-I'll fod yn iawn i lawr, ma.
Gee-law arni.
-T, O. Byddwch yn siwr i.
Byddwch yn siwr i beth?
Beth oedd Orphan Annie Little ceisio ei ddweud?
Byddwch yn siwr i beth?
-Ralphie!
Randy wedi mynd i fynd.
A wnewch chi ddod allan?
-Mae pob hawl, ma.
'N annhymerus' fod yn iawn allan.
-I yn dod yn nes yn awr.
Roedd y tensiwn yn ofnadwy.
Beth oedd hi?
Efallai y bydd tynged y blaned yn y fantol.
-Ralphie!
Randy rhaid iddo fynd.
-I'll fod yn iawn, ar gyfer crio yn uchel.
-Gee, bron yno.
Fy bysedd hedfan.
Fy meddwl oedd trap dur.
Mae pob mandwll vibrated.
Roedd bron yn glir.
Ie, ie, ie, ie.
-Byddwch yn siwr i yfed eich Ovaltine.
Ovaltine?
Mae masnachol crummy?
Mab i ast.
[DIWEDD chwarae fideo]
>> DAVID J. Malan: Felly mae gennym cryptography.
Felly sut y gall mewn cyfrifiadur rydym yn mynd ati i weithredu neu
cynrychioli pethau fel hyn?
Wel, mae arnom angen ffordd o fynegi ein hunain ychydig yn fwy hyblyg na
ein newidynnau hyd yn hyn wedi caniatáu.
Rydym wedi cael ints.
Rydym wedi cael chars.
Rydym wedi cael fflotiau a dyblau a rhai eraill.
Ond y rhai yn ddarnau unigol o gof nad ydynt yn wir yn caniatáu i ni
mynegi pethau fel geiriau a brawddegau ac ymadroddion.
Yn wir, rydym wedi galw llinynnau pethau o'r fath.
Ond rydym yn addo bod hyn yn wir yn unig yw symleiddio yn y CS50
llyfrgell ein bod yn bwriadu bilio yn ôl.
>> Ac felly gadewch i ni ddechrau gwneud hynny yma.
Gadewch i mi fynd yn ei flaen ac yn agor i fyny ffeil -
pob un o'r ffeiliau hyn ar gael fel arfer ar-lein -
a elwir yn array.c i ddatrys problem nad yw'n gysylltiedig llinynnau ond bod yn creu
darlun yma o sut y gallem ddefnyddio rhywbeth o'r enw arae.
Mae amrywiaeth yn fath data.
Mae'n fath o amrywiol, o ryw fath, sydd â mathau o ddata lluosog llai
tu mewn yn gefn wrth gefn wrth gefn wrth gefn.
Felly, er enghraifft, os ydym am ysgrifennu rhaglen fach sy'n rhoi i chi eich
cwis cyfartaledd ar gyfer cwrs fel 50 sy'n ddwy cwisiau, gallech yn hawdd iawn
ysgrifennwch y rhaglen hon - yn seiliedig, hyd yn oed ar rai o ddeunydd yr wythnos diwethaf -
drwy ddefnyddio GetInt a chwpl o newidynnau.
Int quiz1, int quiz2, ac mae'n eithaf syml.
Mae'n efallai 10, 20 linellau o god, max, er mwyn gweithredu rhaglen sy'n gofyn y
ddefnyddwyr ar gyfer dau sgôr cwis ac yna computes eu cyfartaledd drwy eu hychwanegu
gyda'i gilydd, rhannu â dau, ac yna argraffu'r canlyniadau.
Gallem yn ôl pob tebyg yn gwneud hynny 'n bert yn barod yn awr ar ôl
ryw nifer o funudau.
>> Ond y broblem yw bod debyg bod 50 wedi cael tri neu bedwar cwisiau.
Tybiwch eich bod am ddefnyddio'r un rhaglen ar gyfer dosbarth a oedd wedi
wythnosol cwisiau.
Meddyliwch am ddosbarth sydd wedi wythnosol cwisiau.
Os oes fel 16 neu felly wythnos mewn semester, nawr eich bod gennym 16 newidynnau -
int quiz1, int quiz2, int quiz3, int quiz4.
Cyn gynted ag y byddwch yn dechrau gweld y diswyddo, mae hyn yn copïo a gludo
cod, dylai ddechrau i wneud i chi yn dymuno bod yn ffordd well.
Ac diolch byth, oherwydd araeau, mae.
Felly, gadewch i ni wneud hyn.
Yn gyntaf, gadewch i mi gyflwyno yn beth syml iawn nad ydym wedi defnyddio hyd yn hyn,
ond byddwch yn gweld ei fod o bryd i'w gilydd mewn cod.
Mae hyn yn beth a elwir yn gyffredinol yn gyson.
Felly mae'n gyson yn yr ystyr na fydd hyn fyth yn newid gwerth.
Mae'r confensiwn dynol wrth greu cyson yw i ddefnyddio'r holl gyfalaf
llythyrau, dim ond fel ei fod yn wir yn sefyll allan yn eich cod.
A'r gair allweddol arbennig yr ydych yn eu defnyddio yn C # yn cael ei ddiffinio.
Felly, os ydych yn dweud # diffinio, yna ofod, yna bydd y gair yr ydych eisiau ei ddefnyddio ar gyfer
enw'r cyson, ac yna caiff gwerth y cysonyn.
Felly, rhybudd, mae hyn yn wahanol i neilltuo rhywbeth i newidyn.
Does dim arwydd hafal.
Does dim hanner colon.
Mae hyn yn beth a elwir yn gyffredinol fel gyfarwyddeb Preprocessor, ond yn fwy ar
bod un arall amser.
>> Am y tro, mae hyn yn creu gwerth digyfnewid a elwir yn Cwisiau y mae eu gwir
gwerth rhifol yw 2.
Felly, yn unrhyw le byddwch yn gweld Cwisiau, posau, cwisiau drwy gydol y ffeil, dyna
dim ond y rhif 2.
Yn awr, os wyf yn edrych ar y prif awr, gadewch i ni weld sut mae hyn yn gweithio.
Ar y dechrau, mae'n edrych ychydig yn cryptig.
Ond mae'n holl bethau o un wythnos.
Gofynnwch i'r defnyddiwr ar gyfer graddau.
Sut rydym yn gwneud hyn?
Wel, yn unol 22 -
hyn yn wir yn y rhan juicy -
Yr wyf yn datgan fflôt, ond nid dim ond float sengl.
Rwy'n datgan, yn hytrach, amrywiaeth o werthoedd pwynt arnawf.
Y newidyn yn mynd i gael ei alw graddau, fel a awgrymir yma.
Ond yr unig ddarn o gystrawen newydd, yna mae hyn cromfachau sgwâr, y ffaith
fy mod wedi dweud graddau arnofio ac yna braced agored ac yna rhif.
Rhybudd, os yw hyn yn gyson, mae hyn yn union fel y gwnaethom hyn.
Mae hyn yn golygu hey cyfrifiadur, yn rhoi i mi ddwy arnofio, a gadewch i ni ar y cyd yn galw
eu graddau.
Mae hyn yn cyferbynnu yn broses llawer mwy diflas fel hyn.
Float gradd 1, arnofio Gradd 2, ac yn y blaen.
Felly mae amrywiaeth yn ein galluogi i weithredu'r syniad hwn ond yn llawer llai messily, yn
fath fodd fel y gallwn ysgrifennu un llinell o god yn hytrach na, dyweder, 16 i 16
semester yr wythnos.
Felly doeddwn i ddim eisiau galed-god 2 oherwydd os ydych yn meddwl am hyn nawr
rhesymegol - mae'n debyg y flwyddyn nesaf CS50 newidiadau i 3 cwisiau yn lle hynny.
Ac yr wyf yn cael y rhif 2 yma.
Cefais y rhif 2 yma.
Mae'n dod yn iawn 'n faith ac yn hawdd iawn i sgriw i fyny ac i newid yn ddamweiniol
un gwerth i 3 ac yn colli rhywfaint o werth arall o 2.
Felly, yr wyf i'n mynd i lle haniaethol hyn i ffwrdd ac yn defnyddio hyn yn gyson, fel ei
awgryma'r enw, byth yn newid.
Ac yn awr, ni waeth a oes gennym wahanol cwisiau eleni na'r flwyddyn nesaf, yr wyf
yn unig wedi ei newid mewn un lle, i fyny yma ar y brig.
>> Felly dyna i gyd yn gyson.
Yn y cyfamser, y nodwedd cysyniadol newydd yw y bydd o arae.
Felly y cromfachau sgwâr yn rhoi fy hyn yn arnofion llawer ac yn gadael i mi ar y cyd
eu galw graddau yma.
Felly nawr gadewch i ni weld yr hyn yr wyf i'n mynd i wneud.
Yma yn llinell 24 yw'r ddechrau gyfer dolen.
Mae hyn yn wir ffansi ddim.
Mae'n dim ond gan ddefnyddio cwisiau yn hytrach na nifer hard-coded.
Ond does dim byd deallusol gwahanol yno ers yr wythnos ddiwethaf.
Mae hyn yn unig printf.
Felly printf ("d nifer cwis% o% d") oherwydd Fi jyst eisiau i argraffu roi i mi cwis
rhif un o ddau ac yna dau o ddau.
Felly, mae hyn yn unig yn beth esthetig.
Ond mae'r rhan ddiddorol yn awr yw yn llinell 27.
Er mwyn i chi lenwi un o'r ddau bachau gyda fel y bo'r angen-pwynt
gwerth, chi eto yn defnyddio cromfachau sgwâr.
Yn yr achos hwn, rwy'n ei ddefnyddio i oherwydd hyn ar gyfer dolen wedi dechrau gyda gyfartal i
Beth yw gwerth, mae'n debyg?
0.
>> Felly, ar y fersiwn gyntaf y ddolen, mae fel pe bawn
Ysgrifennais hyn mewn cod.
Ond ar yr ail ailadroddiad y ddolen, mae fel pe bawn
Ysgrifennodd hyn yn fy cod.
Ond mae'r ffaith fy mod i'n defnyddio newidyn yn berffaith oherwydd, fel y mae'r enw'n
awgrymu, mae'n amrywio ei werth ar bob iteriad.
Felly rwy'n llenwi'r amrywiaeth un man ar y tro.
Beth mae hyn yn amrywiaeth yn edrych?
Wel, y rheswm tynnais y petryal yma syml super ar y sgrin yma
cyn Am y rheswm hwn.
Mae amrywiaeth yn unig yw darn o gof ac yna darn arall o gof,
ddilyn gan darn arall o gof, ac yn y blaen.
Felly, os bydd fy amrywiaeth o faint 2, yn yr achos yma, y ​​cyfan y byddwn yn ei wneud trwy
teipio yn fy sgoriau cwis, fel yma.
Ges i 100 ar yr un yma.
Ac yna fe ges i 99 ar yr un yma.
Yna, efallai na fydd y cof hyd yn oed yn cael ei ddefnyddio oherwydd fy mod wedi gofyn dim ond y
cyfrifiadur ar gyfer amrywiaeth o faint 2.
Mae'r rhai sgwariau yn dal i fod yno.
Hawl?
Byddwch yn dal i gael dau gigabeit o RAM, hyd yn oed os ydych ond yn
yn gofyn am ddau fflotiau.
Felly, y syniad y tu ôl i arae yw bod y cyfrifiadur yn unig yn cymryd darn o gof
ac yna dosrannu ddarnau llai gefn wrth gefn wrth gefn wrth gefn.
Ac felly dyna i gyd arae yn.
Mae'n darn cyffiniol o gof, y tu mewn y gallwch roi pethau.
>> Nawr mae hyn yn digwydd wedyn gwneud dim ond rhai rhifyddeg ddiflas.
Os byddaf yn sgrolio i lawr yma, dyma lle byddaf wedyn yn ailadrodd dros y rhesi.
Rwy'n dod o hyd y Crynodeb o'r holl werthoedd yn y casgliad.
Ac yna yr wyf yn defnyddio'r swyddogaeth rownd yma i mewn gwirionedd wneud y
swm wedi'i rannu gan cwisiau.
Ond gadewch i mi chwifio fy llaw ar hynny fel math o rifyddeg ddigon am y tro.
Ond y cyfan a yn ei wneud i mi yn y pen draw yn cyfrifiadurol ar gyfartaledd.
Felly, cwis cyntaf yn ogystal â cwis ail wedi'i rannu â 2, ac yna argraffu
ddweud ei fod yn int.
>> Ond gadewch i ni bellach yn newid i enghraifft wahanol o'r enw string1,
sy'n rhoi darlun tebyg ond llinynnau defnyddio.
Gadewch i mi fynd yn ei flaen a symleiddio hyn am ychydig funud.
A maddau bant am y tro.
Hysbysiad llinell 19 o'r enghraifft hon, byddaf yn cael llinyn gan y defnyddiwr.
Ond sylwi ar yr hyn yr wyf i'n ei wneud nesaf mewn llinellau 22 ymlaen.
Im 'mewn gwirionedd ailadrodd o hyd i i - ac mae hyn yn gamp newydd -
strlen, hyd llinyn.
Mae hon yn swyddogaeth a ddaw gyda C, os byddwch yn mynd heibio ei fod yn llinyn, mae'n dweud
i chi faint o gymeriadau yn y llinyn.
Dyna i gyd.
Mae'r ffaith ei fod yn strlen yn hytrach na hyd llinyn yn unig oherwydd ei fod yn
yn fwy cryno.
30 mlynedd yn ôl, mae pobl yn hoffi ysgrifennu pethau mor gryno ag y bo modd.
Felly, rydym wedi cadw y confensiwn yma.
i + + yn unig yn golygu cynnydd i ym mhob fersiwn.
Ac yn awr sylwi ar hyn, sydd yn ddiddorol iawn.
Felly, yn unol 24, yr wyf yn dweud cyfrifiadur, yn rhoi i mi cymeriad, wyth
darnau, a galw yn c.
Ond beth yw hyn ar yr ochr llaw dde yn ei ddweud?
Yn Saesneg, beth mae hynny'n ei gynrychioli?
[Anghlywadwy]
DAVID J. Malan: Yn union.
Rhowch i mi y cymeriad cyntaf yn y rhesi.
Neu yn fwy cyffredinol, yn rhoi i mi y cymeriad i-fed yn y rhesi.
Ac yn sylweddoli ei bod yn bwysig nawr bod fel gwyddonwyr cyfrifiadurol, rydym mewn gwirionedd
cyfrif o 0.
Nid oes gennych hawl yn awr i ddechrau gwneud hyn.
Nawr mae'n rhaid i chi ymddwyn yn unol â'r disgwyliadau y cyfrifiadur a
cyfrif o sero oherwydd [0] yn mynd i fod y cyntaf
cymeriad mewn llinyn.
[1] yn mynd i fod yr ail.
[2] yn mynd i fod y trydydd, ac yn y blaen.
Felly y rhaglen hon, os byddaf yn llunio arno - mae hyn, unwaith eto, string1.
>> Felly gwnewch yn string1.
Ac yn awr yr wyf yn rhedeg string1 yn fy ffenestr terfynell.
Mae'n aros am fewnbwn, felly dwi'n mynd i deipio i mewn, dyweder, David.
Enter.
Ac yn awr y bydd yn argraffu DAVID i gyd ar linellau gwahanol oherwydd
sylwi ar yr hyn rwy'n ei wneud.
Rwy'n argraffu un cymeriad ar y tro.
Nawr ni fyddwn yn manylu heddiw ar hyn.
Ond yr wyf yn dileu eiliad yn ôl y gwiriad hwn yma.
Mae'n troi allan os yw'r defnyddiwr yn camymddwyn, gwrthwynebus, neu dim ond
ddryslyd, alli 'n weithredol yn methu â rhoi cyfres o gryn hyd.
Os ydych yn taro'r allweddol anghywir ar y bysellfwrdd, efallai y byddwch yn rhoi
dim llinyn o gwbl.
Neu os ydych yn faleisus, efallai y byddwch yn ceisio bastio mewn gwerth gigabyte o un
traethawd i lenwi'r llinyn.
Ac os bydd y cyfrifiadur yn rhedeg allan o gof, mae'n troi allan ein bod ni'n mynd
i fynd yn ôl y gwerth arbennig o'r enw null.
Felly, ar hyn o bryd, dim ond yn gwybod bod yna y gwerth arbennig a elwir yn null y
yn ein galluogi i wirio pan fyddwn ni'n allan o gof, ymysg pethau eraill.
>> Ond os wyf yn agor yn awr string2, sylwi ar un gwahaniaeth yma.
Sylwi ar un gwahaniaeth yma gyda string2.
Gyda string2, hyn ar gyfer dolen yn ychydig yn wahanol.
Gadewch i mi ddileu'r nulls fel y gallwn siarad am y tro arall.
Ond beth sy'n wahanol am y ddolen ar gyfer y tro hwn?
A allaf fynd yn ôl at yr enghraifft flaenorol.
Felly dyna fersiwn dau.
Mae hwn yn fersiwn un.
Un, dau, un dau.
Felly, yr alwad strlen yw lle?
Mae yn y rhan gyntaf y ddolen i.
Unrhyw syniadau ynghylch pam yr wyf i'n gwneud hyn?
Yeah.
[Anghlywadwy]
DAVID J. Malan: Felly nid ydym yn galw swyddogaeth bob tro.
Yn union.
Dwyn i gof o ddolenni am eu bod yn super syml ar ôl i chi fath o
deall bod hyn yn y initialization, y
cyflwr, a'r diweddariad.
Y broblem yw bod y cyflwr yn digwydd ar bob
ailadrodd y ddolen.
Ac felly yn yr enghraifft yma, beth sy'n ddrwg am y ffaith
bod hyn yn fy nghyflwr?
Ydych yn ffonio strlen eto ac eto ac eto.
Ond unwaith y byddaf wedi teipio yn DAVID, hyd y llinyn yw pump.
Ac nid yw'n mynd i newid ar bob fersiwn o'r ddolen oherwydd bod y
llinyn yn dal i fod D-A-V-I-D. Felly, mae hwn yn awgrym ar yr hyn sy'n mynd i ddod yn
syniad gynyddol bwysig a elwir yn penderfyniad dylunio, lle - dim ond nid
wneud i'r cyfrifiadur wneud gwaith diangen.
>> Nawr yn unig fel rhagflas o pset 2, pset 2 yn y rhifyn safonol yw
mynd i herio chi i mewn gwirionedd yn gweithredu rhai nifer o seifferau, mae rhai
nifer o algorithmau encryption, fel y gallwch yn amgryptio a dadgryptio
negeseuon cudd, yn debyg iawn i'r Ralphie neb yno ddatgodio.
Yn y rhifyn haciwr o pset 2, rydym yn mynd i fynd ychydig ymhellach.
Rydym yn mynd i law i chi ffeil o system gyfrifiadurol gwirioneddol sy'n cynnwys
criw cyfan o enwau defnyddwyr a chyfrineiriau amgryptio gwirioneddol, a'r her
ar gyfer y rhifyn haciwr yn mynd i fod i fynd i'r afael hynny cyfrineiriau a ffigur
pa cryptograffeg neu beth gyfrinach ei ddefnyddio i mewn gwirionedd
cynhyrchu cyfrineiriau hynny.
Ac rydym yn mynd i wneud hyn drwy ddefnyddio nodwedd newydd yma o C y byddaf yn rhoi
chi dim ond demo o, a elwir yn orchymyn-lein dadleuon.
>> Felly, mae'n troi allan, gan y gall rhai ohonoch wedi gweld yn adran honno neu mewn gwerslyfrau,
Nid yw bob amser yn brif rhaid i fod yn ddi-rym mewn cromfachau.
Mae'n troi allan y gall prif hefyd yn cael ei ysgrifennu fel hyn, gyda dau dadleuon,
argc a argv, lle argc yw nifer y geiriau yr ydych yn teipio ar ôl
enw'r rhaglen ar eich llinell orchymyn.
Ac argv yn y geiriau eu hunain.
Ac fel y cromfachau sgwâr yno yn awgrymu, argv yn ymddangos yn arae.
Mae'n mynd i fod yn llinyn ar ôl cyfres ar ôl llinyn yn y cof.
Felly, beth ydym yn mynd i fod yn gallu ei wneud, gan ddechrau gyda pset 2, yn
rhywbeth fel hyn.
Os byddaf yn gwneud argv1, sy'n enghraifft byddwn yn dod yn ôl i ddydd Llun, ac yn rhedeg
hynny, yn sylwi nad yw'n ymddangos i wneud unrhyw beth eto.
'I jyst yn argraffu ei enw ei hun.
Ond os ydw i'n dweud ffarwel dosbarth, rhybudd bod y rhaglen hon ymddangos yn ailadrodd
dros bob un o'r geiriau a deipiwyd wrth yr anogwr.
A'r modd y byddwn yn cael mynediad i eiriau bod y defnyddiwr wedi
teipio wrth yr anogwr yw drwy newid prif, gan ddechrau y penwythnos hwn, o int
prif (gwag) i int brif (argc, argv).
A fydd felly yn cael ei eni dadleuon llinell orchymyn.
Ac ar ôl i chi ca 'n sylweddol soffistigedig ar hyn, byddwch yn gallu ysgrifennu
rhaglenni gwirioneddol trippy, fel yr un yma, sy'n mynd y tu hwnt
rhai o'r swyddogaethau ydym wedi ei wneud hyd yn hyn, ond i gyd yn eithaf pwerus.
>> Felly, byddwn yn gadael hyn gyda'r hyn ar y sgrin.
A byddwn yn eich gweld ar ddydd Llun.