[Powered by Google Translate] DAVID J. Malan: Tout dwat.
Sa a se CS50, e sa se nan fen semèn de.
Si ou espere yo dwe grangou alantou tan sa a demen, konnen ke nou pwal
konvoke kòm yon demen an ti gwoup, Jedi, 1:15 PM.
Genyen nan sa a URL isit la si ou ta renmen RSVP.
Espas a limite, kidonk, tanpri padonnen si fòm lan plen moute pa tan an ou
ranpli sa a soti.
Yon lòt URL menm si ke sa ta kapab nan enterè a se sa a.
>> Se konsa, nan jis sou tan yon mwa a, kou a ki pral ap disponib
tout plis lajman a atravè èdo, via ki jan sou Entènèt la pral
kapab swiv ansanm, angaje nan kou a byen aktivman, an reyalite.
Yo pral lè l sèvi avèk aparèy la CS50 ak CS50 Diskite ak pi fò nan la
zouti sòfwè divès ke nou yo deja lè l sèvi avèk sa a semès la.
Ak youn nan inisyativ sa yo nou ta renmen pran sou kòm yon eksperyans nan ane sa a
se wè jis ki jan anpil kontni nou ka tradwi nan lòt pale ak
ekri lang yo.
Se konsa, si ou ta ka gen yon enterè nan k ap patisipe nan pwojè sa a, annakò ak sa
n ap ofri relve nòt angle ak tradiksyon an pou nan la kou
konferans ak bout pantalon ak seminè ak seksyon ak renmen an -
si ou pale kouraman oswa ekri kouraman kèk lòt lang, nou ta
renmen angaje ou nan pwojè sa a, annakò ak sa ou pran sou youn oswa plis nan nan
videyo, tradui yo nan yon lang ou konnen trè byen.
Pou bay ou yon sans de koòdone a, gen nan sa a koòdone itilizatè ki baze sou wèb
ke nou pral lè l sèvi avèk ki pral kreye esansyèlman se yon UI tankou sa a.
Sa a te m 'moutre kèk Halloween Anons sa pibliye depi.
Yo, epi sou bò nan men dwat la an nwa pwochen sa yo koupon pou tan,
ou pral wè bagay sa yo divès kalite ki te vin soti nan bouch mwen jou sa a.
Lè sa a, pi ba a li, ou pral kapab tradwi nan kèk lòt lang.
Ekzakteman ki sa kat la se ant, nan ka sa a, angle
ak, di, an panyòl.
Se konsa, li la aktyèlman yon trè user-zanmitay zouti.
Ou ka remonte ak vit devan trè fasilman ak rakoursi klavye.
Se konsa, si ou ta renmen pran yon pati nan eksperyans sa a ak menm ki gen pawòl ou
wè ak li pa potansyèlman dè milye de jan yo deyò, tanpri santi
gratis yo patisipe.
>> Koulye a, yon sèl mo sou kitten la nan Lendi, paske nou te voye yon tro
pè mesaj.
Èske reyalize a ki kòm lè biwo sijere ak kòm seksyon sijere,
konsepsyon nan kou a se anpil yo te elèv yo kolabore ak
ap pale ak ap travay nan aparèy televisyon HD pwoblèm ak pwoblèm yo ansanm.
Ak reyèlman liy lan jis vini desann nan, ankò, travay la ou finalman
ta dwe soumèt yo ta dwe pwòp ou yo.
Se konsa, li la, byen onètman - nan lè biwo louvri, li nan totalman nòmal -
li nan totalman yo dwe atann, menm - yo dwe diskite ak kèk
zanmi kap vini jwenn ou.
Si li gen difikilte avèk kèk sijè, epi w ap tankou, o, byen kite
m 'ba ou yon aperçu nan kèk liy nan kòd ki mwen te ekri.
Sa a se amann.
Sa k ap pase.
Epi sa a, anpil fezab, mwen panse, avèk pwosesis pou aprann.
Ki kote liy lan, ankò, vin rive janbe lòt se lè tèt la se sòt de panche sou
isit la pou segonn lwen twòp oswa minit pou ki vrèman gen jis
te yon opòtinite déblotché pou zanmi ou yo.
Epi sètènman, lè bagay sa yo jwenn echanj via imel ak Dropbox ak
tankou la, gen tou se liy lan.
Se konsa, pa tout vle di, santi yo alèz epi w santi w ankouraje chat ak zanmi
ak kamarad klas sou psets ak plis ankò.
Ak jis reyalize ke sa ou finalman soumèt ta dwe reyèlman dwe nan
pwodwi nan kreyasyon ou epi li pa yon lòt moun.
>> Se konsa, nan Venn an menm nan tout bèt cuddly, ou ta ka
konnen nan sa a Guy isit la.
Se konsa, sa a se yon fim horrifically fwomaj soti nan ane de sa.
Nenpòt moun ki isit la wè Spaceballs?
Tout dwa.
Se konsa, yon nimewo bon isit la.
Se konsa, sa se yon fason bèl bagay akademik nou an jodi a entwodwi finalman
nosyon de chifreman.
Se konsa, youn nan pwoblèm ki domèn espesifik pou, 2 pset ki pwal vini
soti lannwit demen an reta, se yo plonje nan mond lan nan chifreman, ki
se atizay la chifreman oswa eskalade enfòmasyon.
Lè sa a finalman gen rapò ak mond lan nan sekirite.
>> Koulye a, sekirite pou pi fò nou rive nan fòm la nan fòmil jistis Munden.
Tout moun nan nou gen usernames ak modpas.
Ak tout moun nan nou gen usernames trè move ak modpas, gen plis chans.
Si modpas ou se menm bagay la sou sit entènèt plizyè, sa se pwobableman pa
lide a pi bon, menm jan nou pral diskite sou rive sou fen semès la.
Si yo modpas ou ekri sou yon nòt kolan - pa gen blag - sou ou
pou kontwole, ki tou se pa nesesèman konsepsyon nan pi bon, men byen yon komen
fenomèn.
Men, si ou pa ap lè l sèvi avèk chifreman ankripte modpas ou yo, yo se
frajil sitou.
Se konsa, si ou panse w ap yo te super entelijan pa gen yon Pawòl kache
dokimante yon kote sou kondwi difisil ou a, ki te gen tout modpas ou, men
li nan nan yon folder ke pa gen okenn youn nan pral gade nan, ki twò se pa yon trè
sekirite mekanis.
Se konsa, sa ki pset 2, n ap entwodui sa a atizay nan chifreman ak
eskalade enfòmasyon pou ke bagay sa yo tankou modpas yo
tout plis sekirite a.
Se konsa, kòm motive pwoblèm sa a trè reyèl nan lavi a ak yon trè ki pa reyèl mond-
scénario, kite m 'entwodui ou nan youn nan klip pi renmen nou an isit la sa a soti nan
fim, Spaceballs.
>> [Lèktur VIDEO]
-Kask, ou enrage, sa k ap pase sou?
Ki sa yo ou ap fè ak pitit mwen an?
-Kite m 'prezante briyan chirijyen nan jèn plastik, Dr Filip
Schlotkin, pi gran travay nen nonm lan nan tout nan
linivè ak Beverly Hills.
-Ou Samajeste.
-Nen travay?
Mwen pa konprann.
Li te deja te gen yon travay nen yo.
Se te yon dous 16 prezan.
-Non, li pa ki sa ou panse.
Li nan anpil, anpil pi mal.
Si ou pa ban m 'konbinezon nan plak pwotèj li a lè, Dr Schlotkin pral
bay pitit fi ou tounen nen fin vye granmoun li.
-Non!
Ki kote ou te jwenn sa?
-Tout dwat.
Mwen pral di.
-Non, papa, pa gen okenn.
Ou fèt pou ou pa.
-You're dwat, mwen renmen anpil.
Mwen pral manke nen nouvo ou.
Men, mwen pa pral di yo konbinezon a pa gen pwoblèm sa.
-Trè byen.
Dr Schlotkin, fè pi mal ou.
-Mwen plezi.
-Non!
Rete tann, rete tann.
Mwen pral di.
-Mwen te konnen li ta travay.
Tout dwa, ban mwen li.
-Konbinezon a se youn.
-Yon.
-De.
-Twa
-Twa.
-Kat.
-Senk
-Senk.
-Se konsa, konbinezon a se yonn, de,, twa, kat, senk.
Sa a se konbinezon an estipid mwen janm tande nan lavi mwen.
Sa a ki kalite bagay yon moun sòt ka kapab genyen sou bagaj l 'yo.
-Mèsi, Samajeste ou a.
-Ki sa ou te fè?
-Mwen te vire sou tèt miray la.
-Non, ou pa t '.
Ou etenn fim an antye.
-Mwen dwe te bourade bouton an mal.
-Bon, mete l 'tounen sou.
Mete fim nan tounen sou.
-Wi, mesye.
Wi, mesye.
-Ann al, Erna.
Vini non, Gretchen.
Nan kou ou konnen m ap toujou gen pou voye bòdwo pou ou yo pou sa.
-Bon, t 'li travay?
Ki kote nan pòtay lavil la?
-Li te travay, Eli, mèt.
Nou gen konbinezon an.
-Great.
Koulye a, nou ka pran tout dènye souf nan lè fre soti nan planèt Druidia.
Ki sa ki nan konbinezon an?
-Yonn, de,, twa, kat, senk.
-Yonn, de,, twa, kat, senk?
-Wi.
-Sa a dwòl.
Mwen te gen konbinezon an menm sou bagaj mwen an.
Prepare Spaceball 1 pou depa imedya.
-Wi, mesye.
-Lè chanje konbinezon an sou bagaj mwen an.
-Ay!
[Lèktur VIDEO FEN]
>> DAVID J. Malan: Yon fim etonan ou ta dwe kounye a tout wè.
Se konsa, kontèks la isit la se ke ak done anksyeu vini yon opòtinite
ankripte l ak Goumen li.
Se konsa, sa a, pou egzanp, ki se yon egzanp yon mesaj chiffres.
Sa sa a aktyèlman di yon bagay nan lang angle.
Men, li la klèman pa nèt evidan.
Epitou, n ap vin plen sèk jodi a toumante apa ki sa sa a sekrè
mesaj isit la se.
Men, nan mond reyèl la nan òdinatè, bagay sa yo pa menm ka sanble ke yo ta ka
dwe fraz angle.
Pou egzanp, sa a se sa ou ta ka jwenn sou yon Linux estanda oswa Mac oswa
UNIX òdinatè nan yon dosye ki te yon fwa sou yon tan ki rele dosye a modpas ou.
Sèjousi, li la te demenaje ale rete nan lòt kote.
Men, si ou gade nan kote a dwat sou yon sistèm, ou ap wè se pa sèlman ou
non itilizatè oswa ki nan lòt moun sou sistèm nan, men ou pral wè yon
chiffres vèsyon an modpas yo.
Vreman vre, yo kripte nan mo gen sijere ke bagay sa yo se chiffres.
Lè sa a seri de lèt w pèdi o aza ak karaktè ak nimewo ak
pou fè yo ka dechifre sèlman pa jeneralman konnen kèk sekrè -
yon mo sekrè a, yon nimewo sekrè.
Se konsa, tout bon, atizay la chifreman finalman klou desann nan fè konfyans nan kèk
sòt ak konnen yon bagay ke yon lòt moun fè sa ki pa.
Nou pral eksplore sa a nan yon ti jan plis detay jodi a ak nan pset an ap vini yo.
>> Epi, koulye a yon mo sou pase / fail.
Se konsa, espesyalman, tankou kèk nan ou te plonje nan, 1 pset aparèy la, ak
yon mond trè nouvo pou tèt ou, reyalize ke fristrasyon ak
konfizyon ak jis teknik difikilte yo se yo dwe atann.
Espesyalman ak pset a an premye, kote gen nan jis tèlman nouvo, jis ap resevwa
ki abitye avèk ls ak cd ak tout sa yo kòmandman Esoteric nan yon nouvo anviwònman.
Epi sa a, separe de materyèl aktyèl la ak pwogramasyon tèt li.
Se konsa, reyalize, tou, ke gen sètènman lè biwo ki egziste kòm
sipò estrikti a.
Seksyon kòmanse jou Dimanch sa a ki t'ap vini.
Men, sa ki pi enpòtan, si ou santi ke sa a se jis la pa
mond pou ou, reyalize ke li vrèman jis pran tan.
Epi yo te pou li pa pou opòtinite sa a ane de sa pou m 'nan pran yon klas
pase / fail, franchman, mwen pa tap janm menm mete pye nan salklas la.
Epi ou ka chanje sa a moute jouk, di, Lendi a senkyèm nan kou an.
Se konsa, si w ap sou kwen an, koulye a, reyalize ke olye ke tèt nan kèk lòt
dlo nèt, sètènman konsidere jis chanje yo pase / fail.
Yon fwa ankò, gen nan pa reyèlman kilti sa a isit la nan Harvard nan pran bagay sa yo
pase / fail depi tout moun ta vrèman renmen reyalize oswa overachieve.
Men, franchman, sa a se yon fason bèl bagay pou eseye yon bagay ki soti ki ta ka pa
dwe abitye ba ou.
Ak ou pral fini fè nan pifò ka afè byen, petèt,
anpil sipriz ou a.
Ak nan plis tèm konkrè, ki sa mwen panse pase / fail jeneralman fè,
espesyalman kòm ou ta ka fè eksperyans avèk pset 0, si ou te mete
nan 10 èdtan, 15 èdtan, 25 èdtan nan kèk pset - ak w ap sèlman frape
tèt ou kont miray la,
ak li a ap resevwa super anreta nan mitan lannwit,
men ou te pran pset a tankou 90% nan wout la,
ou konnen ou jis pa kapab konnen ki yon sèl bagay -
pase / fail reyèlman pran kwen nan koupe nan yon klas tankou sa a, kote ou ka sòt
nan san pwoblèm mwen tap di oke, mwen konnen li pa pafè.
Men, mwen te travay bourik mwen an sou sa.
Mwen trè kontan ak kote li te fini.
Ak ki pral rankontre nan ap atann pou pase / fail.
Se konsa, kenbe sa nan tèt ou.
>> Tout dwa.
Se konsa, moun nan nou ki te plede goumen yo sèvi ak Inivèsite a Harvard Wi-Fi konnen
ki gen nan yon ssid CS50, yon koneksyon Wi-Fi waf alantou ke ou
ta ka gen pi bon chans pou li a.
Li se yon ironik ti ke modpas la pou sa a - si ou ta renmen eseye
konekte ak lòt moun sa a pou pi bon vitès ak fè nou konnen si li nan pa gen pi bon -
se youn, de, twa, kat, senk, tout wout la jiska uit paske uit se
plis sekirite pase senk.
Se konsa, si ou bezwen modpas la Wi-Fi, konekte nan CS50 wirelessly isit la.
Youn, de, twa, kat, senk, sis, sèt, uit.
Ak pòs sou CS50 Diskite si ou toujou gen pwoblèm koneksyon tanzantan,
epi n ap kite pouvwa yo pou yo konnen pou plas sa a.
>> Tout dwa.
Se konsa, yon kol rapid, espesyalman pou moun nan nou ki yo se ti gason fanatik oswa ti fi
nan tout Apple bagay sa yo.
Ki sa mwen fouye moute soti nan yon kèk ane tounen te sa a ranpli isit la, ilock.c, jis
kalite pou ka fè plis konkrè ak plis konplèks kèk nan C a plis debaz
pwogram nou ve yo te ekri.
Se konsa, mwen louvri moute sa a ranpli, ilock.c.
Li nan ki disponib sou paj la konferans pou jodi a.
Ki sou bò gòch-men, ou wè yon lis long nan fonksyon.
Se konsa, parèy la ki te ekri sa a te ekri moute yon anpil nan fonksyon yo,
pi plis pase jis prensipal la.
Li te itilize yon pakèt antye nan bibliyotèk isit la.
Men, si nou kòmanse defile nan, ki sa ki sa sa a aktyèlman se trè a
premye fwa, mwen kwè, krak pou ifon orijinal la.
Lè ou te vle jaybrèk iPhone orijinal la, ki vle di untether
li nan men AT & T ak aktyèlman enstale lojisyèl espesyal sou li epi fè bagay sa yo
ke Apple pa t 'vle moun yo fè -
byen, yon moun te pran tan la konnen egzakteman kouman yo te ka esplwate
lojisyèl defo, erè, pinèz, nan lojisyèl Apple la.
E konsa te fèt ilock.c.
Ke si ou konpile l 'sou yon òdinatè ak enstale li sou yon ifon ki
te konekte nan òdinatè w lan atravè, di, yon kab USB, sa a ta ba ou
administratif oswa rasin privilèj sou iPhone ou ak kite ou fè bèl anpil
tou sa ou vle.
>> Se konsa, te gen sa a chat kaptivan ak jwèt sourit ant Apple ak
rès la nan mond lan an patikilye tankou yo, tankou anpil konpayi, eseye fèmen
bagay yo desann pou ke ou ka sèlman fè avèk li sa yo te gen entansyon.
Men, gras a moun sa a tankou ak konpreyansyon yo nan ba nivo-
detay, epi, nan ka sa a, pwogram C ak yon anpil nan konstwi yo abitye
ke nou te kòmanse jwe ak, se ou ki kapab reyèlman ogmante nan
kenkayri nan yon mannyè ki ou wè anfòm e li pa nesesèman kèk antite rèstriktirasyon.
Se konsa, pou egzanp, mwen pa gen okenn lide ki sa tout bagay sa a ap fè.
Men, GetVersion son trè senp.
E li sanble tankou sa a se yon fonksyon ki moun sa a te ekri.
Pran kèk kalite nonb antye relatif kòm yon agiman, pa retounen anyen, men
sanble li riban ak yon riban pou isit la ak yon si kondisyon, si kondisyon,
kraze, ak yon jan kanmenm gen rapò ak nimewo vèsyon.
Si nou desann -
menm si yon anpil nan sa yo mo kle yo pral yo dwe nouvo, epi gen yon
antye anpil nan fonksyon nan isit la nou pat janm wè ak pa ta ka janm wè sou
kou nan semès la -
nan fen jou a, li swiv règ yo menm ak lojik ke nou ve yo te
ap jwe ak konsa byen lwen.
Se konsa, sa a se byen lwen twò granmoun krak 3s ifon ou oswa 4s oswa touswit 5, jou sa yo,
men konnen ke li nan tout anpil ki sòti nan mond sa-a ke nou te
plonje nan.
>> Se konsa, kite a pran yon gade nan yon egzanp ti kras pi plis senp.
Yon sèl sa a, jis jwenn t'ap chofe moute ak kèk sentaks yo ansanm ak kèk lòt done
kalite ki nou te pale sou, men se pa te reyèlman wè nan C. Se konsa, sa a se yon
dosye yo rele positive1.c.
Ak pou chak kòmantè yo nan tèt la, sa a jis mande pou yon itilizatè bay yon
pozitif nimewo.
Se konsa, li yon egzanp sou yon riban fè-pandan y ap, ki se bèl pou itilizatè entèaktif-
pwogram ki kote ou bezwen di itilizatè a fè yon bagay.
Men, si yo pa kolabore, ou rele nan yo oswa rejte D 'yo.
Ka nan pwen, mwen pral fè liy 19 a 24 tan konsa tankou itilizatè a gen
pa ban m 'yon chif pozitif.
Koulye a, sa a detay isit la sou liy 18, poukisa Mwen deklare n pi wo a sa a tout antye
loupin organize tankou yo te opoze a dwat pwochen nan liy 22 kote mwen
aktyèlman pran swen yo ka resevwa n?
Yeah?
[Fèbl]
>> DAVID J. Malan: Yeah, se konsa pwoblèm sa a nan dimansyon.
Ak nan tèm pwofàn la, ki sa ki dimansyon, al gade nan?
Yeah?
[Fèbl]
DAVID J. Malan: Èske ou ka pale yon ti kras pi fò?
Oratè 1: Ki kote ou kapab jwenn aksè nan yon varyab patikilye.
DAVID J. Malan: pafè.
Ki kote ou kapab jwenn aksè nan yon varyab patikilye.
Epi jeneralman, règ la nan gwo pous konsa byen lwen te gen ki sijè ki abòde lan kèk
varyab yo defini pa aparèy òtopedik ki pi resan yo Curly ke ou te wè.
Se konsa, nan ka sa a, si mwen fè erè nan deklare n sou liy 22,
ki liy ta ka travay.
Mwen ta jwenn yon int, epi mwen ta mete l 'nan ke n varyab nan liy 22.
Men, ki liy nan kòd yo kounye a pwal pa gen okenn lide ki sa mwen ap pale de?
Se konsa, 25, epi li vire soti 24, kòm byen, paske se nan ka sa a, li tonbe deyò
nan aparèy òtopedik yo Curly.
Se konsa, jis yon ti kras nan yon nwuizans men trè fasil rezoud pa senpleman deklare
deyò a varyab nan fonksyon nan tèt li.
>> Koulye a, nou pral wè pita jodi a, ou ka ale yon sèl etap pi lwen.
Epi ou ka menm jwenn yon ti parese -
ak sa a pa bezwen ap rekòmande, an jeneral -
men ou ta ka jwenn menm parese, li mete yon varyab globalman, se konsa pale, pa
andedan nan yon fonksyon, pa andedan nan yon riban, men nan dosye a li menm, andeyò
nan tout nan fonksyon ou te ekri, menm jan mwen te fè isit la sou liyn 15.
Men, sa a se jeneralman dezaprouve sou li.
Men mwen reyalize sa a se yon solisyon pafwa ak pwoblèm lòt, menm jan nou pral
evantyèlman wè.
Se konsa, pou kounye a, nou pral kite li tankou sa a.
Men, kite a wè si nou ka reyekri sa a jis yo kòmanse eksprime tèt nou yon
enpe diferan.
>> Se konsa, pwogram sa a, jis yo dwe klè, se positive1.
Kite m 'ale pi devan isit la ak nan fenèt tèminal mwen ki fè positive1, Antre.
Compiles, oke.
Mwen pral kouri positive1, frape Mete.
Mwen mande w ban m 'yon nonm antye ki pozitif.
Mwen pral di -1.
Ki pa t 'travay.
0, 99, ki sanble nan travay.
Petèt pa tès ki pi difisil.
Men, nan omwen li nan yon chèk saniti bèl ke nou se sou track dwat la.
Se konsa, kounye a kite m 'ale pi devan epi louvri vèsyon de nan sa a.
Ak sa ki diferan deja?
Li aplike menm bagay la.
Men, sa ki sote soti kòm tan klèman diferan sa a?
Yeah, kidonk sa a bouleen nan vèt.
Jdi te make nan mo kle vèt sa a ke yo rekonèt kòm bouleen,
ki se yon kalite done.
Li pa vini bati nan nan tout vèsyon an C. Ou bezwen genyen ladan yo yon
espesifik bibliyotèk la.
Nan ka nou an, mwen enkli bibliyotèk la CS50 pou nou
gen aksè a bouleen.
Men, nan liy 18, nou yo sanble yo gen yon valè Boolean isit la yo rele rekonesan.
Se konsa, mwen te kapab yo te rele sa a anyen.
Men, mwen rele l 'rekonesan jis kalite transmèt kèk siyifikasyon semantik.
Se konsa, okòmansman sou liy 18, mwen aparamman pa rekonesan paske la
Se Boolean valè rekonesan inisyalizèd fo nan liy 18.
Lè sa a, li sanble sa m 'te fè isit la nan liy 21 a 23 se Mwen te jis
kalite reekri lojik m 'yo.
Se konsa, pa gen okenn woulant diferan.
Men, nan liy 22, koulye a, mwen tcheke si int a te itilizatè a bay gen plis pouvwa pase
0, Lè sa a, Mwen tou senpleman chanje valè la nan rekonesan vre.
Ak poutèt sa mwen fè sa?
Paske nan liy 25, aparamman, mwen pral tcheke yon kondisyon.
Èske sa a riban pandan y ap rekonesan se fo.
>> Se konsa, mwen pwopoze sa a kòm yon altènativ a vèsyon yon sèl paske li nan omwen yon
ti kras pi plis entwisyon, petèt.
Li se yon ti kras pi plis chita nan lang angle.
Se konsa, fè bagay sa yo pandan ke w ap pa rekonesan oswa pandan y ap rekonesan se fo.
Ak tan sa a, tou, mwen aparamman pa pran swen a sonje sa itilizatè a tape
nan paske avi gen nan pa gen n varyab.
Se konsa, aktyèlman, mwen -
yon ti kras bay manti blan la.
Woulant, pwogram nan se yon ti jan diferan yon fwa nou jwenn nan fon
li paske mwen pa sonje sa n se.
Men, mwen te vle demontre isit la tou, menm lè nou te wè GetInt ak
GetString ki te itilize sou bò men dwat-ou nan yon siy egal konsa byen lwen pou ke
nou chonje valè a, teknikman, sa se pa estrikteman nesesè.
Si pou kèlkeswa rezon ou jis pa pran swen pou konsève pou valè a, ou jis vle
yo tcheke valè a, remake ke nou ka senpleman ekri sa a kòm GetInt louvri
paren, fèmen paren.
Sa fonksyon ki pral retounen yon valè, menm jan nou ve yo te di.
Li nan pral ba ou tounen yon int.
Se konsa, si ou mantalman panse a sa kap pase, lè mwen tape nan 99, GetInt
retounen nimewo a 99.
Se konsa, Concept, li la tankou si m 'te aktyèlman nan kòd sa a.
Se konsa, si 99 se vre pi gran pase 0, lè sa a rekonesan vin vre.
Lè sa a, liy 25 reyalize Ooh, nou ap fè paske mwen kounye a rekonesan.
Ak nan liy 26, nou tou senpleman di, mèsi pou nonb antye relatif pozitif la, tou sa li
te rive yo dwe.
>> Koulye a, kite a fè ti tay sik Massachusetts Institute of Technology isit la, se konsa pale.
Se pou nou wè si nou ka netwaye liy sa a 25 ak sa a divèjans twazyèm ak dènye
nan positive3.
Se konsa, remake diferans la sèlman kounye a se sa liy nan kòd?
Yeah, se konsa 25.
Epi nou pa te reyèlman wè sa a jwe fent jis ankò.
Men, nou te fè sa wè nan ki pwen esklamasyon nan Lendi, ki vle di ki sa?
Se konsa, pa, oswa negasyon.
Se konsa, pran yon valè Boolean ak baskile valè li yo.
Vrè vin fo.
Fo vin vre.
Se konsa, sa a, mwen ta pwopoze, se menm yon ti kras pi plis entwisyon nan yon fason pou
ekri kòd la, paske mwen toujou inisyalize rekonesan fo.
Mwen toujou fè sa ki annapre yo.
Mwen mete rekonesan vre lè lè a va rive.
Men koulye a, ou ka reyèlman jis tradwi sa a kòd vèbalman goch a dwat,
pandan y ap pa rekonesan.
Paske bang, oswa entewogasyon, pwen eksklamasyon, vle di nosyon de pa, se konsa pandan y ap
pa rekonesan.
>> Se konsa, ankò, nou pa te prezante nenpòt konsèp nouvo se pou chak.
Nou te pale sou Booleans tounen lè nou te jwe ak grafonyen moun.
Men mwen reyalize kounye a nou ka jis kòmanse ekri kòd nou yo nan
anpil fason diferan.
Se konsa, espesyalman nan pset1, si ou se sòt de difikilte yo konnen ki wout la
ekri kèk pwogram nan, chans yo w ap nan chans paske gen k ap pase yo dwe nenpòt ki
kantite solisyon ke ou ka rive sou li.
Pou egzanp, sa a se jis twa pou menm pi senp la pwogram yo.
Tout dwa.
Epi, koulye a sonje nan Lendi, nou kite sou nòt sa a ak valè retou.
Se konsa, pou tan an trè premye, nou te ekri yon pwogram ki pa jis gen prensipal yo,
li tou te gen pwòp li yo fonksyon koutim ke mwen te ekri isit la.
Se konsa, nan liy 31 a 34, mwen te aplike yon fonksyon kib.
Li pa konplike.
Li nan jis yon fwa yon fwa nan yon, nan ka sa a.
Men, sa ki enpòtan sou li se ke mwen ap pran opinyon nan fòm lan nan yon ak
Mwen retounen pwodiksyon nan fòm lan nan yon fwa yon fwa nan yon.
>> Se konsa, koulye a, mwen gen kapasite a, anpil tankou mwen itilize yo ak printf pou kont yo, yo rele
sa a fonksyon lè w rele fonksyon an kib.
Ak fonksyon an kib pran kèk D '.
Ak fonksyon an kib retounen kèk pwodiksyon.
Se konsa, pa kontra, printf jis te fè yon bagay.
Li pa t 'tounen anyen ke nou pran swen sou - menm si, kòm yon
sou kote, li fè sa tounen yon valè.
Ou jis jeneralman inyore li.
Printf jis te fè yon bagay.
Li te gen yon efè segondè nan enprime ekran an.
Nan kontras isit la, nou gen fonksyon an kib, ki
aktyèlman retounen yon bagay.
>> Se konsa, sa a se jeneralman -
pou moun ki abitye avèk sa a, li nan yon lide san patipri senp.
Men, pou moun ki abitye mwens ak sa a lide nan pase nan entrain yo ak pou jwenn
sorti tounen, se pou yo eseye jis yon bagay super senp.
Èske nenpòt moun ki konfòtab k'ap moute sou sèn yon ti tan?
Ou dwe konfòtab ak yon kamera sou ou, tankou byen.
Yeah.
Okay, sa ki nan non ou?
KEN: Ken.
DAVID J. Malan: Ken.
Tout dwa, Ken.
Vini non sou yo.
Se konsa, Ken a pwal yon fonksyon nan kalite isit la.
Li kite yo ale pi devan epi fè sa.
Se pou nou jwenn yon anpenpan ti kras.
Bèl al kontre ou.
Byenveni nan sant etap yo.
Tout dwa.
Se pou nou frape bouton sa-a isit la.
Tout dwa.
Se konsa, isit la ou gen yon tablo modèn.
Ak sa m 'ye a se fonksyon prensipal, pou egzanp.
Apre sa, mwen pa gen yon iPad nan men m '.
Mwen pa reyèlman sonje ki jan yo - byen, aktyèlman, pa ka di sa.
Mwen pa vrèman gen bon ekriti.
Se konsa, Se poutèt sa, mwen vle fè w enprime yon bagay sou ekran an pou mwen.
>> Se konsa, mwen ke yo te pwogram lan prensipal la.
Apre sa, mwen: Mwen pral gen ou di sa a pa ekri l 'nan grafouyen poul mwen yo ak
Lè sa a, pase ou yon antre.
Se konsa, kòm enbesil menm si sa a fè egzèsis se, nosyon de fonksyon ak rele yon
fonksyon epi retounen yon fonksyon reyèlman klou desann nan sa a.
Se mwen menm prensipal la.
Mwen te jis ekri printf ("yon bagay") sou ekran an.
Mwen kouri pwogram sa a.
Ak le pli vit ke printf vin rele, li pran yon sèl agiman - oswa paramèt youn,
pafwa -
ant quotes doub.
Isit la se ke agiman.
Mwen pase li nan Ken.
Koulye a, se li ki yon bwat nwa ekri kèk nimewo de zan de sa ki aparamman
sèlman konnen ki jan yo enprime bagay sa yo sou ekran an.
>> Se konsa, egzekite.
Sa se pa move.
Se konsa, bon nèt.
Se konsa, kounye a Ken a se fè pwomenad.
li bezwen lage m 'anyen tounen ankò?
Se konsa, pa ke nou te wè konsa byen lwen.
Yon fwa ankò, printf aktyèlman retounen yon nimewo.
Men, nou ap ale nan inyore ki pou kounye a paske nou pa janm te itilize li.
Se konsa, sa a, se li pou Ken.
Se konsa, kounye a prensipal vini tounen nan egzekite -
prensipal pran plis pase kontwòl nan pwogram nan ankò paske sa liy nan kòd,
printf, se fè pwomenad.
E nou ale sou wout nou egzekite tou sa liy lòt la tou.
>> Tout dwa.
Se konsa, kounye a kite a eseye yon egzanp yon ti kras diferan.
Ak tan sa a isit la, se pou yo premye klè ekran an isit la.
Ak tan sa a, nou pral fè fonksyon an cubing.
Men, tan sa a, Mwen atann mwen ke yon valè randman.
Se konsa, kite a ale pi devan epi fè sa.
Se konsa, koulye a, mwen gen yon liy nan kòd ki di x = kib (x).
Se konsa, aktyèlman let's -
liy lan nan kòd, sonje, sanble sa a.
x = kib (x).
Se konsa, kouman sa a ale nan travay?
Se konsa, kite a ale pi devan epi ba ou yon ekran blan ankò.
Apre sa, mwen: Mwen pral ekri kounye a desann valè x, ki nan moman sa a nan
tan k ap pase yo dwe, kite la di, 2, kenbe li senp.
Se konsa, mwen te ekri desann sou yon moso papye valè a nan 2,
ki se x valè m 'yo.
Mwen lage li nan Ken.
KEN: Apre sa, mwen jis ekri repons la?
DAVID J. Malan: Yeah, kite yo jis ekri repons la.
Oke.
Epi, koulye a li gen retounen m 'yon bagay.
Se konsa, -
pafè.
Bèl seg.
>> Se konsa, koulye a, li men m 'tounen valè a nan 8, nan ka sa a.
Epi ki sa mwen fè avèk li?
Oke, aktyèlman, kite la wè.
Jwenn dwa sa a.
Kisa mwen pwal fè avèk li?
Koulye a, mwen pral pran sa a valè ak aktyèlman mete yo nan sa yo
Bits menm nan memwa.
Men, avi, mwen kalite difikilte isit la.
Mwen se yon ti kras konfonn paske kote mwen aktyèlman ekri valè x?
Paske sa Mwen te jis fè se fizikman men Ken yon moso papye
ki te gen valè a 2, ki te x.
Ak tout bon, ki nan pwesizeman sa ki k ap pase.
Se konsa, li sanble ke lè w rele yon fonksyon, epi ou pase nan yon agiman
renmen "alo mond" oswa ou pase nan yon agiman tankou 2, jeneralman, w ap
pase nan yon kopi ki agiman.
Se konsa, menm jan mwen te ekri desann nimewo 2 a isit la epi lage li nan Ken; ki dwe
vle di ke mwen toujou gen yon kopi nan 2 a valè yon kote.
Paske tout bon, kounye a ke mwen te vinn tounen valè a 8, mwen bezwen ale tounen nan
RAM ak aktyèlman ekri 8 kote mwen yon fwa te gen nimewo 2 a.
>> Se konsa, vizyèlman sonje sa a nosyon nan pase nan literalman
yon kopi valè an.
Ken fè bagay li yo, men m 'tounen yon bagay - nan ka sa a,
yon valè tankou 8.
Lè sa a, mwen gen fè yon bagay ak ki valè si mwen
vle kenbe l 'alantou.
Se konsa, tout bagay sa yo pral tout twò abitye anvan lontan.
Mèsi anpil pou sa a Demo isit la, Ken.
Tout dwa.
Trè byen fè.
Se konsa, kite a wè ki jan ki finalman gen rapò ak kèk nan fonksyon an
rele nou pou nou te toujou ap fè isit la.
Se konsa, kite m 'ale pi devan epi pote nou tounen nan egzanp lan cubing isit la.
Ak avi ke si nou vle aktyèlman kòmanse pran sa a pi lwen, nou pwal
gen yo dwe bliye nan lefèt ke x la nimewo ki nan ke yo te ki te pase nan
isit la se diferan de sa ki la aktyèlman ke yo te pase nan fonksyon an.
Se konsa, ankò, sa a ap pase bò la kopi ki pral vin byen
alye nan jis moman yon.
>> Se konsa, kite a pran yon gade nan yon bagay ki pa byen travay dwa ankò.
Mwen pral ale pi devan epi louvri yon egzanp buggy twazyèm, ki
se defekte pa lanati.
Ak sa yo rele buggy3, epi li mete sou pye yon fonksyon échanjé.
Se konsa, isit la nou gen yon fonksyon prensipal ki te x ak y abitrèman inisyalizèd
1 ak 2, respektivman.
Nou te ka itilize GetInt, men nou jis bezwen yon egzèsis ki senp.
Se konsa, li difisil-kode kòm 1 ak 2.
Nan liy 21 ak 22, nou aparamman enprime soti x ak y, youn pou chak liy.
Lè sa a, sou liy 23, mwen reklame mwen échanjé valè sa yo, dot, dot, dot.
Mwen aparamman rele yon fonksyon nan liy 24 rele swap
ki pran de prèv.
Li nan totalman legi pou fonksyon yo pran de prèv.
Nou te wè printf fè li deja.
Se konsa, swap aparamman pran x ak y.
Epi kòm non li sijere, mwen ta swete ke li pral
swap valè sa yo de.
Se konsa, Lè sa a, mwen reklame sou liy 25, échanges.
Apre sa, mwen Reprint x ak y anba sipozisyon an ki
yo te tout bon yo te échanges.
Men, si mwen aktyèlman kouri pwogram sa a -
kite m 'louvri moute yon fenèt tèminal.
Kite m 'fè buggy3.
Kòm non an sijere, sa a pa pral nan fen byen.
Paske lè m 'frape Antre, avi ke x se 1.
y se 2.
Men, nan fen pwogram nan, yo ap toujou, an reyalite, menm bagay la.
>> Se konsa, ki baze sou demonstrasyon an jis kounye a ak Ken, ki sa ki la aktyèlman ale sou?
Oke, kite la plonje nan sa a fonksyon swap.
Li nan super kout.
Li nan sèlman yon liy kèk nan kòd long.
Men, sa ki nan pwoblèm nan fondamantal ki baze sou istwa a te di ki senp
moute isit la ak Ken?
Poukisa se swap kase?
[Fèbl]
Egzakteman.
Se konsa, nou ap estoke nan yon kopi, pa varyab la li menm.
Nan lòt mo, swap aparamman pran de prèv, yon int.
Ak li a abitrèman yo te rele yon b ak.
Ak moute isit la, mwen te ki te pase nan x ak y yo, ki se respektivman 1 ak 2.
Men mwen pa literalman pase nan x.
Mwen pa literalman pase nan y.
Mwen pase yon kopi x ak yon kopi y.
Se tankou prèske tankou si ou kopye ak kole nan boukante valè yo ki
ou vle l 'bay aktyèlman manipile.
Se konsa, si sa a, se ka a, lè m ', pwogram nan, kòmanse egzekite
liy 35, Lè sa a, 36 -
lè m 'rive nan liy 37, nan pwen sa a nan istwa a, ki sa ki valè a nan yon?
Nan pwen sa a nan istwa a, liy 37, ki valè a nan yon nan pwen sa a?
Se konsa, li ta dwe jis pou 1.
Dwa?
Paske x te pase nan kòm agiman an premye.
Lè sa a fonksyon jis abitrèman ap rele agiman premye li yo, yon.
Menm jan an se y, agiman, dezyèm lan.
Ak li jis abitrèman rele b nan agiman dezyèm fwa.
>> Koulye a, sa a se dikotomi aktyèlman jistis tou senpleman eksplike.
Reflechi sou li.
Okenn nan nou gen te rankontre moun ki te ekri printf.
Se konsa, siman, li oubyen li pa gen okenn lide ki sa varyab nou an 30 ane pita yo pral
yo dwe rele.
Se konsa, gen te gen yon diferans ant sa ou rele varyab nan
fonksyon w ap ekri a ak sa ou rele varyab nan fonksyon ou se
rele oswa lè l sèvi avèk.
Se konsa, nan lòt mo, mwen te ekri varyab mwen kòm x ak y.
Men, si te yon lòt moun ekri fonksyon an swap, li oubyen li sètènman
pa t 'vle konnen ki sa varyab m' yo pral rele.
Se konsa, reyalize ke sa a se poukisa ou gen sa a duality nan non.
Teknikman, mwen te kapab fè sa a pa konyensidans.
Men, yo ta dwe toujou ki te pase nan kòm kopi.
Li ta jis pou yon konyensidans pi estetik si moun sa a ki te ekri
swap te itilize non yo menm.
>> Tout dwa.
Se konsa, nan pwen sa a nan istwa a, liy 37, yon se 1.
b se 2.
Koulye a, mwen kontinye nan boukante yo.
Oke premye a tout moun, kite m 'aktyèlman fè sa a pi plis tou senpleman.
Mwen pa konnen sa moun liy twa nan kòd yo te fè a.
Kite m 'jis fè sa.
b jwenn yon.
yon vin b.
Fè.
Poukisa se sa a kase, lojikman?
Li nan kalite bagay la entwisyon, dwa?
Se konsa, yon vin b.
Epi b vin tounen yon.
Men, pwoblèm lan se ke le pli vit ke liy 37 ègzekutra, sa ki nan la
valè de A ak B?
Menm bagay la tou, 1.
Paske ou te clobbered, se konsa pale, ou te chanje b egal a yon.
Se konsa, yon fwa yo fin liy 37 egzekite, sa se gwo.
Ou kounye a gen de kopi anndan an nimewo 1 nan sa a fonksyon.
Se konsa, Lè sa a, lè w di nan liy 38, yon vin b, byen, ou se kalite vise.
Paske w ap sèlman plase 1 a 1.
Ou te kalite pèdi valè a ou pran swen sou yo.
>> Se konsa, nan vèsyon orijinal la nan sa a, remake sa mwen te fè.
Mwen olye te gen yon liy twazyèm nan kòd ki te sanble ak sa a.
Mwen deklare yon varyab tanporè - tan se yon non trè komen
pou yon varyab tanporè.
Se yon int paske li gen matche ak sa m 'vle fè yon kopi.
Mwen sere yon kopi yon andedan nan tan. Se konsa, yon fwa ke liy 37 egzekite,
valè a nan yon se -
rapid saniti tcheke -
1.
Valè b se 2.
Ak valè a nan tan tou se 1.
Se konsa, koulye a, mwen egzekite liy 38.
Se konsa, yon fwa liy 38 ègzekutra, yon pran sou valè a pou b.
Epi b te 2.
Se konsa, yon se kounye a 2.
Se konsa, nan pwen sa a nan istwa a, yon se 2, b se 2,
ak tan se 1.
Se konsa, kounye a lojikman, nou kapab valè jis plok tan la nan b.
Ak nou ap fè.
>> Se konsa, nou te rezoud pwoblèm sa a.
Malerezman, lè m 'kouri pwogram sa a nan fòm sa a, li pa aktyèlman swap
nenpòt ki valè.
Men, yo dwe klè, poukisa?
Mwen fiks pwoblèm nan ki lojik ki soti nan jis yon ti moman de sa.
Men, ankò, si mwen kouri pwogram sa a, x ak y rete san okenn chanjman nan fen
ekzekisyon pwogram nan.
[Fèbl]
DAVID J. Malan: Se konsa, nou pa t 'tounen anyen.
Se konsa, sa a, se vre.
A, men li vire soti gen nan yon ti jan nan yon pwoblèm isit la paske konsa byen lwen
bagay sèlman nou te kapab retounen se yon sèl bagay.
Ak sa a se yon restriksyon sou C. Ou kapab sèlman retounen vrèman yon sèl valè,
nan ka sa a, mwen kalite kole isit la
paske mwen te kapab retounen valè a nouvo sou x oswa mwen te kapab retounen nan
nouvo valè de y.
Men, mwen vle tou de tounen.
Se konsa, retounen se pa sa solisyon an senp isit la.
Men, pwoblèm lan se fondamantalman poukisa?
Ki sa nou aktyèlman échanges?
a ak b.
Men, a ak b se kopi x ak y, ki vle di nou jis te fè tout bagay sa yo
travay - nou jis te pase tankou twa minit ap pale de swap la
fonksyon ak tout twa nan sa yo varyab.
Epi sa a, gwo, parfe kòrèk nan izòlman.
Men, yon ak anviwonman b a sèlman se nan liy sa yo isit la.
Se konsa, jis tankou yon riban pou, si ou deklare yon nonb antye relatif mwen andedan pou la
riban - Menm jan tou, si w ap deklare a ak b andedan nan yon fonksyon ki
ou te ekri yo, yo ap sèlman valid andedan nan ki fonksyon.
Ki vle di le pli vit ke swap a se fè pwomenad ak nou ale nan liy 24 a
, 25 liy x ak y pa te chanje nan tout.
Ou jis gaspiye yon anpil tout tan échanjé kopi varyab.
>> Se konsa, li sanble ke solisyon an sa a se aktyèlman ki pa klè.
Li pa byen ase retounen valè paske nou kapab
sèlman retounen yon sèl valè.
Apre sa, mwen reyèlman vle swap tou de x ak y nan menm tan an.
Se konsa, nou ap ale nan tounen vin jwenn sa a.
Men, pou kounye a, reyalize ke pwoblèm nan fondamantalman proceed de la lefèt
ki a ak b se kopi.
Apre sa, yo yo se nan dimansyon pwòp yo.
Oke, kite la eseye rezoud sa a nan kèk fason.
Kite m 'tounen isit la aktyèlman woulo liv ak louvri moute, kite la di, yon Variant katriyèm
sa a, buggy4.
Ak sa ki sou sa a?
Sa a se yon pwoblèm ki sanble men ki pi senp gade nan anvan nou pran yon koud nan
rezoud li.
Sa a se pwogram yo rele kantite.
Epi li aparamman inisyalizasyon yon nonb antye relatif x nan 1 nan liy 18.
Mwen Lè sa a, reklame x se 1.
Mwen Lè sa a, reklamasyon incrementing, dot, dot, dot.
Mwen Lè sa a, rele kantite.
Men, Lè sa a, nan liy 22 ak 23, mwen reklame li nan te enkremante.
Mwen reklame x se kounye a tou sa li se, 2 prezimableman.
>> Men, pwogram sa a se buggy.
Ki sa ki nan pwoblèm nan?
Yeah?
[Fèbl]
DAVID J. Malan: Egzakteman.
Se konsa, x ki te deklare evidamman sou liy 18.
Sa a se andedan aparèy òtopedik Curly prensipal la.
Se konsa, repons lan senp isit la se ke, byen, x egziste isit la.
Li pa egziste nan liy 32.
Se konsa, pwogram sa a aktyèlman pa pral menm konpile.
Du a, lè m 'eseye konpile sa a kòd, ki pral rele nan m'
sou kèk idantifyan sekrè oswa yon bagay sou sa.
An reyalite, se pou yo eseye.
Sa a se fè buggy4.
Gen li ye.
Sèvi ak nan x idantifyan sekrè nan liy 32.
Ak aktyèlman, se pou yo gen plis eksplisit isit la jodi a se konsa ke sa a se itil nan
biwo èd tan ak nan kay la.
Remake li nan yon ti kras cryptically ekri.
Men, lefèt ke rezone gen rele nan nou, li di:
buggy4.c: 32:5, se aktyèlman itil.
Sa vle di ke erè a se sou liy 32 nan pozisyon karaktè senk.
Se konsa, yonn, de,, twa, kat, senk.
Sa a se, an reyalite, kote pwoblèm lan se.
Epi tou li kenbe nan tèt ou nan lè biwo louvri ak nan kay la, mwen gen chans isit la.
Mwen gen yon erè.
Li k ap pase yo dwe relativman fasil yo ranje.
Men, si ou jwenn yon ekran tout plen ak mesaj erè boulvèsan, ankò,
reyalize ke yon sèl la bottommost ta ka jis pou sentòm nan
sa yo topmost.
Se konsa, toujou kouri dèyè desann pinèz ou soti nan desann tèt.
Paske se la ta ka jis gen yon efè flè magerit-chèn ki sijere ou
gen fason plis pwoblèm ke ou aktyèlman fè.
>> Se konsa, kouman nou ta ka ranje sa a si objektif mwen se kantite x?
Ki sa ki nan sa?
Oke.
Se konsa, nou ka fè x mondyal.
Kite a pran rakoursi nan ke mwen te avèti sou pi bonè.
Men, èk, nou jis bezwen yon ranje rapid.
Se konsa, kite yo jis di x int moute isit la.
Ki fè x mondyal.
Se konsa, kounye a prensipal gen aksè a li.
Ak kantite gen aksè a li.
Se konsa, kite m 'ale pi devan epi pou konpile tout sa a kounye a.
Fè buggy4, Antre.
Sanble yo konpile kounye a.
Se pou nou kouri buggy4, epi li sanble yo aktyèlman ap travay.
Koulye a, sa a se youn nan bagay sa yo -
fè menm bagay mwen di, se pa jan mwen fè, kòm Mwen te jis fè isit la.
Paske an jeneral, pwogram nou yo ap pral jwenn pi plis enteresan ak
pi lontan ankò pase sa a.
Men, si solisyon ou a pwoblèm lavi a se jis ah, mete nan tout
varyab nan tèt la nan dosye ou, trè byen vit fè pwogram jwenn
horrifically difisil jere.
Li vin pi difisil yo panse moute nouvo non varyab.
Li vin pi difisil a konprann ki sa varyab ap fè sa.
>> Se konsa, an jeneral, sa a se pa yon solisyon bon.
Se konsa, kite a fè sa pi byen.
Nou pa vle sèvi ak yon varyab mondyal isit la.
Mwen vle kantite x.
Se konsa, mwen te kapab evidamman -
nan fen jou a, li nan kalite yon istwa komik paske nou jis fè sa.
Men, si mwen pa t 'konnen sou sa operatè, oswa mwen pa te pèmèt li
chanje li nan prensipal tèt li, konbyen lòt bagay te kapab mwen aplike Ken sou isit la, sa a
tan ki pa ka kib, men yo kantite?
Kouman pou mwen chanje bagay sa a isit la?
Yeah.
[Fèbl]
DAVID J. Malan: Oke, bon.
Se konsa, poukisa m pa pase nan x?
Lè sa a, olye ke retounen li, poukisa pa fè sa mwen jis fè retounen x + 1?
Koulye a, yon koup plis bagay oblije chanje isit la.
Mwen sou track dwat la.
Ki lòt bagay mwen bezwen ajistè?
Yon lòt moun.
Yeah?
[Fèbl]
DAVID J. Malan: Mwen bezwen chanje kalite a retounen nan kantite
paske li pa anile.
Anile vle di pa gen anyen k ap retounen.
Men, byen klè, kounye a li.
Se konsa, sa a bezwen chanje pou Int yo dwe konsistan avèk tou sa
Mwen aktyèlman retounen.
>> Koulye a, yon lòt bagay se toujou buggy isit la.
Yeah?
[Fèbl]
DAVID J. Malan: Se konsa, mwen bezwen kantite x?
[Fèbl]
DAVID J. Malan: Ah, se konsa mwen bezwen pase x.
Se konsa, mwen bezwen fè sa a isit la.
Se konsa, pwototip a, mwen gen chanje sa a moute isit la.
Se konsa, sa a te vin tounen yon int.
Sa a gen yo vin -
hmm.
Mwen gen aktyèlman yon ensèk desann isit la.
Se pou nou ranje yon sèl sa a an premye.
Kisa mwen ta dwe sa sa a aktyèlman ta dwe ye?
Se konsa li te resevwa yo dwe genyen yon yon bagay int.
Li ta ka x.
Men, franchman, si w kòmanse rele tout x varyab ou a, li la pral jwenn
pi piti ak mwens klè ki se ki.
Se konsa, kite a jis abitrèman chwazi yon konvansyon nonmen diferan pou m '
vin ede fonksyon, fonksyon yo mwen ekri.
Nou pral rele li yon.
Oswa nou te ka rele li - kite a rele l 'even_number yo dwe menm plis eksplisit.
Se konsa, Lè sa a, mwen gen retounen tou sa nimewo a se plis 1.
Epi, koulye a mwen gen chanje yon lòt bagay moute isit la epi youn
lòt bagay moute isit la.
Kisa mwen gen chanje sou liy 21 an premye?
Mwen gen yo asiyen li nan x.
Se konsa, mwen pa ka jis rele x kantite.
Mwen bezwen sonje repons lan pa chanje valè x sou
bò men gòch.
E menm si x se kounye a sou bò gòch la ak dwa, sa se an totalman amann paske
vin bò nan men dwat egzekite premye Lè sa a, vin plopped nan bò gòch la
bagay men, x nan ka sa a.
Lè sa a, anfen, sa a se yon ranje fasil kounye a.
Sa a ta dwe jis matche ak sa ki nan desann pi ba a.
Int nimewo.
>> Tout dwa.
Se konsa, yon pakèt antye nan chanjman pou yon fonksyon vrèman estipid.
Men, reprezantan de bagay sa yo ke nou pral de pli zan pli vle fè.
Se konsa, fè buggy4.
Mwen te vise moute kèk kote.
Oh Bondye mwen an.
Senk erè nan, renmen, yon pwogram sis-liy.
Se konsa, sa ki nan mal sou liy 18, pèsonaj 5?
Tout dwa.
Se konsa, mwen gen deklare sa a int.
Tout dwa.
Se konsa, kite a wè, yon pakèt antye nan erè ak lòt.
Oh Bondye mwen an.
19, 18, 21.
Men ankò, kite yo jis klè ekran an -
L kontwòl isit la - ak rezone re-kouri.
Se konsa, senk pwoblèm se aktyèlman jis yon sèl.
Se konsa, kounye a kite a kouri buggy4, Antre.
Wou.
x ki te enkremante kòrèkteman.
>> Tout dwa.
Nenpòt kesyon sou kòman yo kantite nimewo?
Yeah?
Oratè 2: Poukisa se li ke ou kapab jis chanje x ak kantite nan varyab la
Non ak li pral konnen ki sa ou vle di?
DAVID J. Malan: Bon kesyon.
Kouman se li ke mwen ka jis chanje x ak kantite ak pwogram lan pral konnen
imedyatman?
Se konsa, ankò, panse a li tankou sa a abstraction.
Se konsa, si mwen menm prensipal ak Ken se incrémentielle, franchman, mwen pa pran swen
ki sa Ken rele iPad l 'yo.
Mwen pa pran swen sa l 'mande nenpòt ki bagay ki te fè avèk aplikasyon l'
sa a fonctionnalités.
Se konsa, sa a se yon detay aplikasyon se mwen menm, prensipal yo, pa fè sa
gen nan swen sou.
Se konsa, tou senpleman chanje li toujou andedan nan fonksyon an, nimewo isit la
ak nimewo isit la, se tout li pran toutotan m'a compile.
Li nan sòt de renmen si ou panse sou - anpil nan nou, sa yo ki nan nou ak chofè a
lisans ki te kondwi, oswa si w te menm kondwi nan yon machin -
pi fò nan nou pa gen okenn lide ki jan yon machin ap travay anba kapo a.
Ak literalman, si ou louvri moute kapo machin lan, pi fò nan nou - tèt mwen enkli -
pa pral vrèman konnen ki sa nou ap chèche a.
Kalite tankou ou kapab santi ou ak bagay tankou sa a kounye a.
Men nou pa vrèman gen nan swen ki jan machin nan travay.
Nou pa bezwen pran swen ki sa tout branch yo ak Pistons ak câbles anndan
machin nan yo aktyèlman ap fè.
>> Se konsa, yon bagay tankou sa ou rele Piston a pa gen pwoblèm
isit la nan ka sa a.
Menm lide.
Yeah?
[Fèbl]
DAVID J. Malan: Si, te gen plis itilizasyon nan moman an varyab g de sa,
ou, pwogramè a, ta gen yo chanje yo toupatou.
Oswa ou ta ka literalman fè File, Menu, ak Lè sa a, Jwenn / Ranplase,
yon bagay tankou sa.
Men, ou yo ale nan gen fè chanjman sa yo tèt ou.
Ou dwe konsistan.
[Fèbl]
DAVID J. Malan: Yon lòd patikilye tankou isit la?
Si sa a te Int yon lòt nimewo?
Yeah.
Se konsa, lòd zafè lè ou ap rele fonksyon an.
Se konsa, si m 't'ap rele kantite isit la ak yon bagay vigil yon bagay,
gen yon kat dirèk.
Se varyab a an premye, tou sa li yo rele, te fè yon kopi premye a
agiman sou isit la.
Padon, sa a pa ta dwe gen yon parantèz.
Liy ki agiman dezyèm moute ak yon sèl, dezyèm lan.
>> Se konsa, lòd, se wi, zafè.
Tout dwa.
Padon, mwen pran yon fason lontan yo ka resevwa la.
Lòt kesyon yo?
Tout dwa.
Se konsa, kite a wè si nou pa ka penti yon foto nan sa ki aktyèlman pral sou
isit la anba kapo a, se konsa pale.
Se konsa, sa a se yon rektang ki ta ka reprezante memwa òdinatè ou a.
Se konsa, menm si ou pa gen okenn lide kouman memwa ap travay oswa ki jan RAM travay, omwen
asime ke ou genyen grap rezen li jou sa yo.
Ou te gen megabit nan li.
Ou te gen jigokte nan li.
E nou konnen soti nan zewo semèn ke yon multiple se jis ki sa?
8 Bits.
Dwa, se konsa 8 zero ak inite.
Se konsa, si òdinatè ou a gen yon Gig nan RAM, de jig nan RAM jou sa yo, ou gen yon
milya dola oswa 2 milya dola bytes nan memwa, oswa apeprè 8 milya dola oswa 16 milya dola
Bits, andedan nan òdinatè ou.
Koulye a, kontrèman ak ti kras egzanp lan leneu Willy, li pa patikil mayetik
tipikman ankò.
De pli zan pli, nan laptops omwen, li la kondui eta solid, SSDs, ki
jis pa gen okenn deplase pati.
Li nan tout elektwonik.
Li nan tout elektrisite ki baze.
Se konsa, panse, menm si, nan rektang sa a kòm jis ki reprezante youn nan oswa de
jigokte nan memwa ki di ou gen.
>> Se konsa, li yon ti moso nan memwa.
Kounye a nan mond lan nan syans òdinatè gen kalite partition nan sègman nan
memwa fè bagay diferan.
Se konsa, pou egzanp, si sa a se RAM òdinatè w lan an - kòm sijere pa la
rektang gen - sanble ke pa konvansyon, nan tèt la nan RAM ou konsa,
pale, se jeneralman sa ki rele yon segman tèks.
Moun sa yo se zero yo ak moun ke ou te konpile.
Se konsa, lè nou te gade anba kapo a nan sa ki a.out se, tout
zero yo ak moun yo -
lè ou kouri nan yon pwogram, sa yo ki zero ak moun yo yo chaje soti nan di ou
kondwi nan yon bagay yo rele RAM.
Ak nan RAM a, yo ap mete nan tèt la.
Koulye a, pandan se tan, ou gen lòt bagay.
Inisyalizèd done, uninitialized done.
Moun sa yo ki swaths de nan memwa, al gade nan varyab mondyal, ki
ou pa yo itilize souvan.
Men, pafwa si ou fè sa, yo fini 'kanpe tankou byen.
Lè sa a, gen nan kèk bagay lòt.
Anviwònman varyab, ki nou pa pral pase anpil tan sou.
Men, Lè sa a, de bagay enpòtan ke yo va tounen nan tout sa a
semès, chemine ak pil wòch.
>> Se konsa, pifò nan memwa òdinatè w lan a ap rezève lè kouri yon pwogram pou
yon bagay yo rele pil la ak yon bagay yo rele pil wòch la.
Epi nou pa ap ale nan pale sou pil wòch la jodi a, men nou pap
pale sou pil la.
Epi li se chemine a vle di ke yo sorselri moute vizyèl nan tankou sal la kote moun
plato manje nan Mather House, oubyen nenpòt kote ou rive yo, kote nan
kote moun sal anplwaye netwaye yo chak jou.
Yo chemine yo moute ki soti sou planche sou yo.
Ak menm nan memwa, gen ide sa a pou mete yon bagay sou yon
chemine, mete yon bagay sou yon pil, mete yon bagay sou yon pil.
Ak ki sa nou vle di pa sa a?
Oke, kite la rale nan sou jis mwatye ki pi ba nan foto sa a, nan òdinatè w lan
RAM, nan pwopoze sa ki annapre yo.
Li sanble ke lè ou kouri nan yon pwogram tankou a.out oswa hello, kèlkeswa sa
pwogram lan se ke ou te ekri,
ankò, sa yo ki zero ak moun yo yo chaje soti nan kondwi difisil ou - ki se
depo tèm long, rete la menm lè ou rale ploge an -
chaje nan RAM.
RAM se pi vit pase kondui difisil.
Li nan pi piti pase kondui difisil.
Men, li la kote pwogram viv pandan w ap kouri yo.
>> Se konsa, ou doub klike sou yon pwogram sou yon Mac oswa PC yon - li an chaje soti nan
difisil kondwi nan RAM.
Le pli vit ke li an chaje nan RAM, zero yo ak moun yo ale nan nan tèt la fason sa a,
sa ki te rele segman tèks.
Men, Lè sa a, le pli vit ke pwogram ou an aktyèlman kòmanse kouri, prensipal la
fonksyon yo rele.
Ak prensipal, menm jan nou te wè, souvan gen varyab lokal yo.
Epi li gen antye ak strings ak charaktèr ak renmen an.
Se konsa, si pwogram ou ke ou te ekri oswa pwogram nan ki di ou gen
doub klike itilize kèk varyab andedan nan prensipal yo, yo fini nan nan
anba nan chemine ou nan memwa, se konsa pale.
Koulye a, plis konkrètman, ki sa ki sa sa a aktyèlman vle di?
Sa a jis vle di ke si nou te ale nan nimewo bagay sa yo -
si nou te ale nan nimewo bytes yo nan RAM nan òdinatè w lan, avi ke
sa a ta kapab multiple zewo nimewo.
Sa a ta kapab multiple nimewo yon sèl, de, twa, kat, senk, sis, tout
wout la jiska renmen -
2 milya dola ta dwe tout wout la moute gen nan tèt la.
Se konsa, nan lòt mo, lè nou pale sou RAM oswa memwa an tèm de bytes, li
jis vle di ke yon moun te deside ki sa ak kantite chak nan
sa yo fragman nan memwa.
>> Se konsa, lè ou bezwen 32 Bits pou yon int, oswa ou bezwen 8 Bits pou yon Char, kote
yo fini nan memwa?
Oke concept yo, yo jis fini nan fon an nan sa a
bagay yo rele pil la.
Men, sa ki nan enteresan kounye a se lè prensipal rele yon fonksyon.
Sipoze yon fonksyon rele foo, jis yon non abitrè.
Kisa k ap pase se prensipal se nan pati anba a nan sa a pil nan memwa.
Man koulye a, se mete sou tèt prensipal nan memwa.
Se konsa, nenpòt varyab lokal ki foo te fini sòt de teori pi wo a
sa yo ki nan prensipal la.
Si foo rele yon lòt fonksyon rele bar, sa yo ki varyab fini isit la.
Si bar rele yon lòt bagay, isit la, isit la, isit la.
Se konsa, sa ki nan enteresan sou kouri yon pwogram se ke lè w rele fonksyon,
ak tankou moun yo fonksyon rele fonksyon, ak tankou moun yo fonksyon rele fonksyon,
ou bati sa a pil nan fonksyon nan memwa.
Ak sèlman yon fwa yon retounen fonksyon ou kòmanse resevwa ki memwa tounen.
Se konsa, youn nan fason ki pi fasil yo kouri soti nan memwa nan yon pwogram òdinatè se
ekri fonksyon ki pa janm retounen.
>> Se konsa, pou egzanp, kite a demontre kòm anpil ak yon
entansyonèlman buggy pwogram nan.
Kite m 'ale pi devan epi # enkli , int prensipal (san valè).
Apre sa, mwen pral fè pandan y ap (2> 1), ki pwobableman pa pral janm
chanje sou nou.
Ak kite m 'ale pi devan koulye a ak fè printf.
Aktyèlman, ki k ap pase yo dwe mwens vizyèlman enteresan.
Se pou nou fè sa.
Pou int (mwen = 0; mwen> 0).
Se pou nou fè sa-a erè, mwen + +.
Li kite yo pa printf isit la.
Se pou nou pratike sa mwen te t'ap anonse bon.
Se pou nou genyen yon metòd isit la.
Koral anile, epi nou pral di Int mwen.
Lè sa a, mwen pral di, printf -
Tanpri, kite a fè sa-a plis enteresan.
Se pou nou aktyèlman pa enprime anyen nan tout.
Se pou nou jis fè sa.
Koral (mwen).
>> Tout dwa.
Se konsa, sa a se buggy paske poukisa?
Mwen fè sa a moute kòm m 'ale paske pwogram lan pa aktyèlman fè anyen
nan enterè yo.
Men se pa sèlman objektif la.
Objektif la se yo ekri yon pwogram ki gen prensipal fonksyon fè sa, aparamman?
Rele tèt li.
Ak aktyèlman, nou pa bezwen riban an.
Se pou nou menm senplifye sa a jis pou yo pa pèdi devan je nan la reyèlman
fondamantal ensèk.
Apèl Main koral nan chante kèk koral.
Apre sa, mwen te fè yon bagay estipid, epi mwen te gen koral rele nan koral paske mwen sipoze
yon lòt moun te ale nan aplike li petèt.
Epi, koulye a sa a pa pral konpile ankò.
Mwen bezwen fè ki sa?
Mwen bezwen pwototip a, sonje.
Se konsa, mwen bezwen gen moute isit la koral anile (Int mwen);.
>> Se konsa, kounye a, si m 'desann isit la -
aktyèlman, se pou yo sèvi ak fenèt la pi gran.
Se pou nou ale pi devan epi fè koral.
Sèvi ak nan deklaran idantifye mwen.
Oh, sa ki te estipid.
Nou pa bezwen agiman an.
Se pou nou jis fè sa.
Swete nou te kòmanse fason sa a.
Li ta yon pwogram pi fasil ekri.
Se konsa, gen.
Koulye a, kite a janbe lòt bò nan fenèt tèminal m 'yo, re-kouri sonnen.
Ak isit la nou ale.
Se te vrèman vit.
Ki sa ki aktyèlman jis te rive, menm si?
Oke, koulye a, mwen pral ajoute liy lan ekri ak lèt ​​detache, pou nou ka wè.
Se konsa, kite m 'di printf, kite la di, mwen ta nan isit la.
Oke, pa gen okenn varyab, nou pral kite li tankou sa.
Kite m 're-kouri fè.
Kite m 're-kouri koral.
Ak vin sou.
Kenbe prale.
Kòm yon sou kote, poukisa li pa te fè aksidan ankò?
Fay la segmentation te rive Super vit anvan.
[Fèbl]
DAVID J. Malan: Egzakteman.
Se konsa, li pran tan nan enprime.
Li jis pran plis travay sou pati òdinatè a.
Ak la li ye.
Fòt segmentation.
>> Se konsa, remake jis ki jan pwogram vit kouri.
Si ou pa ap enprime anyen, Super vit.
Men, nou toujou gen sa a fòt segmentation paske sa ki te rive?
Byen, si w panse osijè de kòman se memwa òdinatè w lan an mete deyò sa a,
k ap pase yo prensipal la.
Men, isit la -
kite yo jis rele sa koral, e kite yo rele sa koral.
Epi, koulye a, si mwen fè estetik mwen dwat, sa a se jis pral di koral,
koral, koral, koral, koral, koral, koral, nauseum anons.
Ak evantyèlman, sa ki pral rive?
Si foto a gwo literalman se sa a, ki sa ki jis k ap pase concept?
Chemine depatman yo pil wòch la.
Oswa pi mal, ou jis anvahi tout bagay, ki gen ladan segman nan tèks, ki se
zero yo ak moun yo ki reprezante pwogram ou an.
Nan ti bout tan, sa a se jis super, super move.
Dwa?
Te pwogram ou an espiral soti nan kontwòl.
W ap itilize fason plis memwa pase ou gen entansyon tout paske yo gen yon sòt
erè, nan ka sa a.
Oswa nan ka sa a, yon fonksyon trè fè espre fè rele tèt li.
Koulye a, sa a se pa tout move.
Fonksyon rele tèt yo aktyèlman gen gwo pouvwa
lè ou sèvi ak li kòrèkteman.
Mwen pa te itilize li kòrèkteman isit la.
>> Se konsa, sa a se pa tout move.
Men reyalite a ke mwen pa janm aktyèlman sispann rele tèt mwen se yon fondamantal
feblès isit la nan pwogram sa a.
Se konsa, kote nou pral ansanm ak tout sa yo?
Oke, sa ki vrèman rive?
Lè m 'rele fonksyon an kantite, tankou nou te fè nan sa yo egzanp,
Mwen gen yon valè tankou 1 ke mwen pase pous
Mwen pase nan yon kopi nimewo a youn.
Se konsa, sa ki annapre yo k ap pase.
Se konsa, kite a ale nan egzanp lan kantite.
Ak sa a Guy dwa sou isit la.
Se konsa, isit la nan sa ki aktyèlman rive.
Lè m 'rele kantite, epi mwen pase nan x, pictorially sa ki nan
ale sou isit la se sa a -
si mwen gen valè a nan 1 ki estoke isit la, e mwen aktyèlman rele kantite, ki
se kounye a yo rele koral -
yeah, ki nan voye m 'wete isit la.
Se konsa, kite a rele sa a kantite.
Epi nou pa konnen ki sa sa a fonksyon pwochen k ap pase yo dwe.
Se konsa, sa ki aktyèlman rive se isit la yon kote nan prensipal yo, mwen gen yon ti moso nan
memwa ki estoke nimewo a 1.
Lè m 'rele kantite, mwen sèvi ak yon lòt ti moso nan memwa yo, men koulye a, mwen
gen kopi a nan 1.
Lè m 'kantite ki valè, sa a vin tounen 2 - oribleman ekri sou la
ekran isit la.
Men, lè sa a, kisa k ap rive le pli vit ke retounen kantite?
Sa a memwa jis vin yo retounen l ba sistèm nan fonksyone, ki vle di tout
ou te fè se pa gen anyen itil.
Youn nan ki te orijinal genyen nan yo nan prensipal se toujou aktyèlman la.
>> Se konsa, kote nou pral ak sa a?
Oke, li sanble ke nan memwa ou gen sa a tounen nan fè bak sekans
bytes ke ou ka mete bagay pous
Epi li sanble ke nou te deja wè yon bagay ki enplike mete
bagay sa yo tounen nan fè bak nan do nan do.
Ki sa ki se yon fisèl, ki baze sou yon semèn e kounye a, semèn de?
Se konsa, li jis yon koleksyon karaktè.
Se konsa, li vire soti, menm jan ou ka mete nimewo yo nan memwa, menm jan ou kapab
mete karaktè nan memwa.
E yon fwa nou kòmanse mete karaktè nan memwa tounen nan Retounen nan Retounen nan
tounen, li sanble ke lè l sèvi avèk pi senp la bagay sa yo tankou yon riban pou oswa
yon riban pandan y ap, nou ka rèspèté -
de goch a dwat sou karaktè yo nan yon fisèl -
e kòmanse masaj yo nan karaktè diferan tout ansanm.
Yon ka vin B. B ka vin C. Se konsa, ki finalman, nou ka pran yon
Angle fraz ki aktyèlman fè sans ak konvèti chak nan sa yo
lèt yon sèl nan yon tan pa mache nan memwa òdinatè nou an goch a
dwa aktyèlman ankripte.
>> Se konsa, kite a pran repo senk minit nou yo isit la, ak lè nou 'tounen an, nou pral
kòmanse pwosesis sa a nan eskalade enfòmasyon.
>> Tout dwa.
Se konsa, anvan nou plonje nan nan kèk kriptografik ak tout bagay sa yo rele ranje, kite m '
pran yon poz pou nenpòt kesyon paske mwen santi mwen tankou mwen reyèlman kalite confus kèk nan
sijè sa yo.
Se konsa, kite a ranje kounye a, si nou kapab.
Se konsa, nou jis te pale osijè de valè retou.
Nou te pale de diskisyon.
Epi nou te pale osijè de sa a nosyon, ki nou pral tounen vin jwenn nan semèn yo nan
vini, nan gade memwa kòm yon pakèt antye nan sa yo anpile
plato, se konsa pale.
Anba nan fon sou moute, tankou ke chak plato ki vin mete yo sou chemine a reprezante
yon fonksyon ki nan kounye a yo te rele.
Nenpòt kesyon?
Se konsa, ki jan sou - kite m 'eseye mande yon kesyon.
Mwen kenbe dega ki, men kounye a it's - you've tout wè figi ti gason an.
Se konsa, nou pral tounen vin jwenn sa.
>> Se konsa, kite m 'poze yon kesyon isit la.
Kite m 'senplifye sa a tounen nan ki sa li te la anvan kèk nan pi bonè Q & A. nou
Ak lefèt ke kantite a gen parantèz louvri, int nimewo, fèmen
parantèz.
Ki sa ki int nimewo reprezante?
[Fèbl]
DAVID J. Malan: Yon diskisyon.
Okay, men sa ki nan yon diskisyon?
[Fèbl]
DAVID J. Malan: Padon, sa ki nan sa?
Oratè 3: yon bagay ou pase pous
DAVID J. Malan: Okay.
Se konsa, yon bagay ke ou pase pous
Ak plis ankò jeneralman, li nan jis opinyon an.
Si w ap ekri yon fonksyon ak objektif ki fonksyon an nan lavi se fè
yon bagay yon ti kras diferan chak fwa ou sèvi ak li, Lè sa a, wout la sèlman pou
ki rive reyèlman ta sanble yo gen ba yo li ak opinyon konsa ke li
ka fè yon bagay diferan ak sa D 'chak fwa.
>> Se konsa, ou bezwen presize de bagay lè yon fonksyon pran entrain.
Ou bezwen presize non an ke ou vle bay ak sa yo ki D ', piman pou
konvenyans pwòp ou a pou ke ou ka al gade nan li nan fonksyon an ke ou
tèt ou ap ekri, jan mwen te fè isit la nan liy 32.
Men, ou ap bezwen tou presize kalite li yo paske C se yon lang programmation
ki jis mande
ke si ou vle yon varyab, ou gen di òdinatè a ki sa
done tape li ye,
nan pati gwo pou ke li konnen kijan anpil Bits
asiyen pou varyab sa a.
Paske li te kapab fè sis -
regrèt, li pa pral gen sis.
Li kapab 16.
Li kapab 8.
Li kapab 32, menm 64.
Men, òdinatè a bezwen konnen.
Koulye a, int a sou bò men gòch reprezante sa, pa kontra?
[Fèbl]
DAVID J. Malan: Ki sa ki nan sa?
[Fèbl]
DAVID J. Malan a: ki kalite fonksyon an ak, plis espesyalman,
di ki kalite pwodiksyon li yo.
Dwat.
Se konsa, Lè nou konsidere ke bagay la nan parantèz reprezante opinyon li yo, si genyen, nan
bagay sou bò goch la reprezante pwodiksyon li yo.
Ak nan ka sa a, kantite aparamman retounen yon int.
Se konsa, int a se tip a retounen nan fonksyon sa a.
>> Kisa sa vle di retounen?
Literalman, ou sèvi ak retounen nan mo kle.
Lè sa a, si sa w ap retounen a dwat a mo kle a se yon
nonb antye relatif, lè sa a ke se vre ki konsistan avèk ki sa nou te pwomèt la.
Ou pa t 'kapab fè yon bagay tankou sa a -
hello, mond -
paske sa se yon kòd.
Li evidan li se pa yon nonb antye relatif.
Se konsa, nan kout, chay la se reyèlman sou nou, pwogramè a, yo dwe espesifik kòm
nan sa nou ap retounen ak Lè sa a, aktyèlman ale sou retounen li.
Lè sa a, yo fè yon tad plis klè kontèks la -
Se la li ye ankò.
Kontèks la -
gwo sipriz vini nan jis moman yon.
Kontèks la isit la kounye a se ke memwa òdinatè w lan an se, ankò, yon
jigokte, de jigokte, kèlkeswa sa.
Petèt li nan plis.
Petèt li nan mwens.
Men, òdinatè a wè li tankou ke li gen seksyon diferan.
Yon bagay desann la.
Yon lòt bagay ap moute a.
Bagay diferan ale nan mitan yo.
Ak jodi a, nou jis kòmanse di istwa sa a.
>> Men, nou pral tounen vin jwenn tan sa a sou.
Pou kounye a, moso a sèlman nan memwa nou reyèlman sousye de se segman nan tèks
paske ki jis reprezante zero yo ak moun yo
ki sonnen te outputted.
Se konsa, lè ou kouri nan yon lòd nan klavye a tankou a.out, oswa ou doub
klike sou yon icon sou Mac OS oswa Windows, nan pwogram ou an chaje soti nan di ou
kondwi nan RAM.
Ak li a plopped nan tèt la nan RAM òdinatè ou a, se konsa pale.
Koulye a, pandan se tan, kòm pwogram ou an kòmanse kouri ak prensipal vin rele nan la
pwogram ou te ekri oswa Microsoft a pwogram oswa Apple te ekri, nenpòt nan li yo
varyab lokal fini desann gen nan fon an nan memwa òdinatè ou a.
Men, si prensipal rele yon lòt fonksyon ki kont li genyen varyab oswa
agiman yo, yo fini pi wo a li.
Men, si ke fonksyon rele yon bagay, yo fini anlè li,
anlè li, pi wo a li.
Ak sèlman yon fwa se yon fonksyon fè pwomenad fè pil la nan plato ki anba po, se konsa
pale, kòmanse jwenn pi ba ak pi ba yo.
Ak sa a se sa lè sa a, nan yon Nutshell, eksplike poukisa, lè w rele kib -
oswa ou rele kantite -
w ap pase nan yon kopi valè an.
Ak ki sa sa vle pictorially se ke w ap literalman ekri a
nimewo 1 nan yon lòt pati nan memwa, chanje, ki 1 a 2, nan ka a nan
Kantite -
oubyen nan yon 8, nan ka a nan kib -
ak Lè sa a, voye ki memwa lwen le pli vit ke kantite a oswa kib la
fonksyon retounen.
>> Kesyon.
[Fèbl]
DAVID J. Malan: Ki kote - varyab global yo ap estoke nan sa ki nan
kounye a yo rele done yo inisyalizèd oswa done uninitialized.
Diferans lan ke yo te, si ou gen yon varyab mondyal, epi ou bay li
imedyatman yon valè ak egal a siyen, li fini moute nan tèt la a.
Men, si ou jis di Int x virgules ki pa gen okenn valè, li fini moute yon ti kras
pi ba nan RAM tou senpleman pa konvansyon.
Lòt kesyon yo.
Tout dwa.
>> Se konsa, foto sa a ap tounen menm jan nou jwenn plis pouvwa anpil ak sa nou kapab fè
avèk òdinatè a.
Men, pou kounye a, se pou yo gen yon Intro kout chifreman, yon kalite espesifik nan
chifreman ki pa rezoud tout pwoblèm nan mond lan, men rezoud
kèk nan yo.
Nan ka sa a isit la, nou gen yon bagay yo rele sekrè chifreman kle.
Ak chifreman sekrè kle yo, kòm non an sijere, proceed sekirite li yo
ki sòti nan yon sekrè.
Se konsa, pou egzanp, si w ap tounen nan lekòl klas yo ak w ap pase yon
ti kras renmen sekrè lèt nan ti gason an oswa ti fi w ap kraze sou - si w
te vle pase ke atravè odyans la, pwobableman ou pa ta ekri
tankou yon nòt nan lang angle oswa kèlkeswa sa lang natif natal ou se; olye, ou
ta ka ankripte li.
Oswa ou ta ka jis voye yo yon mesaj tèks jou sa yo.
Men, ou ta ka aktyèlman pase yo yon nòt nan tout sal klas la.
Ak fè sa byen, nan yon fason ke zanmi ou a ak pwofesè a
pa konnen sa ou ap ekri, ou ta ka vini ak yon senp san patipri
algorithm -
jenn si ou ta ka -
jis goumen mo yo.
Se konsa, olye pou yo ekri yon, ou ta ka ekri B. Olye pou yo B, ou ta ka ekri
C. Olye pou yo C, ou ta ka ekri D, ak pou fè.
Oswa ou ta ka vini ak yon tradiksyon de lèt pi plis sofistike
lèt diferan.
Men, trape an se ti gason an oswa ti fi ki moun w ap voye nòt sa a bezwen
konnen yon bagay.
Ki se sa ki, evidamman?
Tankou, ki sa ki sekrè ou a se.
Tankou an, sa sa kat ant A ak B ak CS ak DS?
Èske li jis ajoute yon sèl, se konsa pale, nan chak nan lèt yo ale soti nan
Yon rive nan B, B C?
Èske li pi konplèks pase sa?
Se konsa, ou menm ak kraze ou a bezwen gen enfòmasyon sa a sekrè.
Men, gen nan kalite yon trape 22-isit la.
Si sa a se tan an trè premye w ap voye lèt sa a renmen nan a
klas, ki jan ki tigason oswa yon tifi pral konnen ki sa ki sekrè a menm se?
Se konsa, sekrè kle kriptografik pa rezoud tout pwoblèm nan mond lan.
Se la la aktyèlman yon relasyon ke nou pral tounen vin jwenn nan direksyon
fen semès la.
>> Menm jan tou, genyen okenn nan nou pwobableman janm voye yon -
Menm jan an, pi fò nan nou pa konnen yon moun ki travay, pou egzanp, nan
Amazon.com.
E ankò, anpil nan nou te pwobableman te achte bagay at Amazon.com.
E nou te te anseye yo asime ke sa yo E-commerce
tranzaksyon yo gen sekirite.
Dwa?
URL la pwobableman di https.
Genyen petèt yon icon komik ti kras kadna kèk kote.
Genyen kèk kalite chifreman sekirite enfòmasyon kat kredi w
ant ou menm ak Amazon.com.
E ankò, si chifreman enplike konnen kèk sekrè, epi ankò mwen pa fè sa
konnen nenpòt moun ki nan Amazon, epi mwen te sètènman pa ranje nenpòt kalite
sekrè ak yon moun nan Amazon, ki jan òdinatè mwen an oswa navigatè mwen fè sa?
Oke, vire soti gen nan lòt kalite chifreman tout ansanm ki rezoud
ki pwoblèm.
Men, pou jounen jodi a, nou pral konsantre sou yon sèl la ki senp, ki kote ou ka fè aranjman pou nan
avanse a konnen kèk sekrè a, tankou plis 1 oswa kèk kat ant A ak B.
>> Ak pwosesis la nan chifreman jeneralman enplike nan sa.
Ou gen kèk tèks plenn, repwezante isit la sou bò gòch.
Ou kouri li nan kèk kalite algorithm oswa pwosedi
pou chifreman li.
Petèt sa a, se jis yon vin B, B vin C. Lè sa a, ou fini ak
Kalkile tèks.
Pandan se tan, yon fwa kraze ou a ap resevwa nòt la sekrè, li gen Lè sa a,
dekriptaj li pa jeneralman ranvèse ki algorithm konsa tankou yo ka resevwa
fè bak tèks la klè.
Koulye a, gen enkarnasyon fizik sa a.
Pou egzanp, sa a se yon bag ti kras sekrè dekodaj.
Ak sa a se yon bèl zanno nan sans ke gen nan de kadran isit la.
Sou periferi la deyò nan bagay sa a, gen nan lèt A jiska Z,
byenke yo ap nan lòd o aza.
Yo, epi sou andedan an, gen nan aktyèlman kèk nimewo, tankou ke ak sa a
bag, ou ka kalite vire deyò an, men se pa andedan kay la yo nan lòd yo aliyen
nimewo ak lèt.
Ak nan clip la w ap sou yo wè - kèk nan yo ki ou ka gen pou wè 24/7
alantou nan sezon Nwèl la ki sòti nan yon fim ki rele Yon Istwa Nwèl la.
Ou ap wè ke Ralphie ti kras te tèlman anvi konnen sa ki ti kras on òfelen
Sekrè mesaj Annie a te fè l 'ki te kominike, mwen panse ke, nan la
fòme nan mesaj nimerik sou yon bwat seri.
Epi ou te dwe akimile tout kat yo ti kras ki te vin
nan ti bwat la sereyal.
Ou te gen nan voye yo pous
Ou te gen jwenn tounen bag la dekodaj sekrè a, pou ke ou ka finalman kalkile
konnen ki sa ki kat la se ant lèt ak nimewo,
oswa lèt ak lèt.
Se konsa, mwen ba ou sa a clip kout nan yon istwa Nwèl motive pset 2 ak
diskisyon nou an, nan yon moman, nan ranje.
Se konsa, isit la nou gen Ralphie.
>> [Lèktur VIDEO]
-Se pou li li te ye nan tout ak diferan ki Ralph Parker sa a fin nonmen yon
se manm nan Òfelen Little Circle la sekrè Annie epi li gen dwa nan tout
onè ak benefis ki fèt toujou.
-Siyen, Little Annie on òfelen.
Kontresiye, Pierre Andre!
Nan lank!
Onè ak benefis, ki deja nan laj la nan nèf.
Vini non sou, kite la jwenn sou ak li.
Mwen pa bezwen tout sa ki jazz sou kontrebandye ak pirat.
-Koute lannwit demen pou avanti a conclure nan Nwa a
Bato bato.
Kounye a li nan tan pou mesaj sekrè Annie a pou ou manm
nan Sèk la sekrè.
Sonje byen, timoun, manm sèlman nan Sèk sekrè Annie a ka dekode
Sekrè mesaj Annie a.
Sonje byen, Annie a depann sou ou.
Fikse broch ou a B2.
Isit la se mesaj la.
12, 11 -
-Mwen menm mwen nan premye rankont sekrè m 'yo.
-14, 11, 18, 16 -
-Pierre te nan aswè a vwa gwo.
Mwen te kapab di ke mesaj aswè a an te vrèman enpòtan.
-3, 25.
Sa a se yon mesaj nan Annie tèt li.
Sonje byen, pa di pesonn sa.
-90 Segond pita, mwen nan sal la sèlman nan kay la kote yon ti gason nan nèf
te kapab chita nan sou vi prive ak dechifre.
Aha, B. Mwen te ale nan pwochen an.
E. mo an premye se dwe.
S. Li te vini pi fasil kounye a.
Etazini
-Tanpri, vini sou li a, Ralphie.
Mwen te resevwa yo ale.
-I'll dwe gen dwa desann, MA.
-Gee sifleman.
-T, O. Asire ou ke ou.
Asire ou ke ou ki sa?
Ki sa ki te Little Annie Òfelen ap eseye di nou fè?
Asire ou ke ou ki sa?
-Ralphie!
Randy te gen yo ale.
Èske w ap tanpri soti?
-Tout dwa, MA.
Mwen pral dwe gen dwa soti.
-Mwen te vin pi pwòch kounye a.
Tansyon nan te terib.
Ki sa ki te li?
Sò a nan planèt la ka pann nan balans lan.
-Ralphie!
Randy a te resevwa yo ale.
-I'll dwe gen dwa soti, pou nonm k'ap rele byen fò.
-Gee, prèske la.
Dwèt mwen te pran vòl.
Lide mwen se te yon pèlen an asye.
Chak pò vibre.
Li te prèske klè.
Wi, se wi, se wi, wi.
-Asire ou ke ou bwè Ovaltine ou a.
Ovaltine?
Yon komèsyal sal?
, Pitit gason yon femèl chen.
[Lèktur VIDEO FEN]
>> DAVID J. Malan: Se konsa, gen nou gen chifreman.
Se konsa, kouman nan yon òdinatè nou ka ale sou mete ann aplikasyon oswa
ki reprezante bagay sa yo tankou sa a?
Oke, nou bezwen yon fason pou eksprime tèt nou yon ti kras pi plis pase genyèn flexibilité
varyab nou konsa byen lwen yo te aksepte.
Nou te gen antye.
Nou te gen charaktèr.
Nou te gen cha ak double ak yon lòt moun kèk.
Men, sa yo se moso endividyèl nan memwa ki pa vrèman pèmèt nou
eksprime bagay sa yo tankou mo ak fraz ak fraz.
Vreman vre, nou te rele tout bagay sa strings.
Men, nou te pwomèt ke sa a se reyèlman jis yon senplifikasyon nan CS50 nan
bibliyotèk ke nou ap lide kale tounen.
>> Se konsa, kite la kòmanse fè sa isit la.
Kite m 'ale pi devan epi louvri moute yon dosye -
tout moun sa yo dosye sa yo disponib kòm sou entènèt abityèl -
rele array.c rezoud yon pwoblèm asosye strings men sa ki pentire yon
foto isit la sou kouman nou ta ka itilize yon bagay yo rele yon etalaj.
Yon etalaj se yon kalite done.
Li se yon kalite varyab, nan kalite, ki gen plizyè ki pi piti kalite done
andedan nan l 'tounen nan fè bak nan do nan do.
Se konsa, pou egzanp, si nou vle ekri yon pwogram ti kras ki ba ou ou
poze mwayèn pou yon kou tankou 50 ki gen de ti tès, ou te kapab trè fasil
ekri pwogram sa a - ki baze menm sou kèk nan materyèl semèn pase a a -
lè l sèvi avèk GetInt ak yon koup la varyab.
Int quiz1, int quiz2, epi li trè dwat.
Li nan petèt 10, 20 liy nan kòd, max, yo mete yon pwogram ki mande a
itilizatè pou de nòt egzamen ak Lè sa a, òdinatè mwayèn yo lè yo ajoute yo
ansanm, divize pa de, ak Lè sa a, enprime rezilta yo.
Nou te ka pwobableman fè sa trè fasilman kounye a apre
kèk nimewo nan minit.
>> Men, pwoblèm nan se ke sipoze ke 50 te gen twa ti tès oswa kat.
Sipoze ke ou te vle sèvi ak menm pwogram lan pou yon klas ki te gen
chak semèn ti tès.
Reflechi sou yon klas ki te chak semèn ti tès.
Si gen nan tankou 16 oswa konsa semèn nan yon semès, kounye a ou gen 16 varyab -
int quiz1, int quiz2, int quiz3, int quiz4.
Osito ke ou kòmanse wè sa a redondance, sa a kopye ak kole
nan kòd, li ta dwe kòmanse fè ou vle, te gen yon pi bon fason.
Ak Erezman, paske nan ranje a, gen.
Se konsa, kite a fè sa.
Premyèman, kite m 'prezante yon bagay trè senp ke nou pa te itilize konsa byen lwen,
men ou pral wè li detanzantan nan kòd.
Sa a se sa ki jeneralman yo te rele yon konstan.
Se konsa, li nan yon konstan nan sans ke sa a valè pa janm chanje.
Konvansyon imen an lè y ap kreye yon konstan se sèvi ak tout kapital
lèt, jis konsa ke li reyèlman vle di soti nan kòd ou a.
Ak mo kle a espesyal ke ou itilize nan C a # defini.
Se konsa, si ou di # defini, lè sa a yon espas, Lè sa a, pawòl Bondye a ke ou vle pou itilize pou
non konstan nan, ak Lè sa a, valè a konstan la.
Se konsa, avi, sa a se diferan de plase yon bagay nan yon varyab.
Gen nan pa gen egal siy.
Gen nan pa gen virgules.
Sa a se sa ki jeneralman li te ye tankou yon direktiv preproseseur, men li plis sou
ki lòt lè.
>> Pou kounye a, sa a kreye yon valè chanje rele ti tès aktyèl ki gen
valè nimerik se 2.
Se konsa, nenpòt kote ou wè ti tès, ti tès, ti tès nan tout sa a ranpli, ki nan
jis nimewo 2 a.
Koulye a, si mwen gade nan prensipal kounye a, kite la wè ki jan sa a travay.
Nan premye fwa, li sanble yon ti kras skre.
Men, li la tout bagay soti nan yon semèn.
Mande itilizatè a pou klas.
Ki jan nou fè sa?
Oke, nan liy 22 -
sa a se reyèlman pati nan juicy -
Mwen deklare yon flote, men se pa jis yon flote sèl.
Mwen deklare, olye, yon etalaj de valè pwen k ap flote.
Varyab sa yo pral rele klas, kòm enplisit isit la.
Men, moso a sèlman nan sentaks nouvo Lè sa a, moun sa yo ki parantèz kare, reyalite a
ke mwen te di klas flote ak Lè sa a, louvri bracket ak Lè sa a, yon nimewo.
Avi, si sa a se yon konstan, sa a se jis tankou nou te fè sa sa a.
Sa vle di hey òdinatè, ban m 'de flote, epi kite nan kolektivman rele
yo klas.
Sa a se nan kontras nan yon pwosesis pi plis fatigan tankou sa a.
Flote grade1, flote grade2, ak pou fè.
Se konsa, yon etalaj pèmèt nou aplike ide sa a, men anpil mwens messily, nan
tankou yon fason ke nou ka ekri yon liy nan kòd olye pou yo, di, 16 pou yon 16
semès semèn.
Se konsa, mwen pa t 'vle difisil-kòd 2 paske si ou panse sou sa a kounye a
lojikman - sipoze ane pwochèn CS50 chanjman nan 3 ti tès olye.
Apre sa, mwen te gen nimewo 2 a isit la.
Mwen te gen nimewo 2 a isit la.
Li vin tounen trè fatigan ak trè fasil a vis moute nan ak aksidantèlman chanje
yon sèl valè a 3 ak manke kèk valè lòt moun ki te 2.
Se konsa, mwen pral olye abstrè sa a lwen ak itilize sa a konstan ke, kòm li yo
non sijere, pa janm chanje.
Epi, koulye a, pa gen pwoblèm si nou gen diferan ti tès ane sa a oswa pwochen, mwen
jis gen nan chanje li nan yon sèl kote, moute isit la nan tèt.
>> Se konsa, ki nan tout sa konstan se.
Pandan se tan, karakteristik nan nouvo konseptyèl ekspresyon se sa yo ki an yon etalaj.
Se konsa, parantèz yo kare, ban m 'sa a flote anpil, epi li pèmèt m' kolektivman
rele yo klas isit la.
Se konsa, kounye a kite a wè sa m pral fè a.
Isit la nan liy 24 se nan konmansman an nan yon riban pou.
Sa a se vrèman anpenpan pa gen anyen.
Li nan jis lè l sèvi avèk ti tès olye pou yo yon nimewo difisil-kode.
Men pa gen anyen entelektyèlman diferan gen soti nan semèn dènye a.
Sa a se jis printf.
Se konsa, printf ("d% egzamen kantite d%") paske mwen jis vle enprime soti, ban m 'poze
nimewo youn nan de ak Lè sa a, de nan de.
Se konsa, sa a se piman yon bagay ayestetik.
Men, pati nan enteresan kounye a se nan liy 27.
Yo nan lòd yo ranpli nan youn nan de placeholders yo ak yon k ap flote pwen-
valè, ou ankò itilize parantèz kare.
Nan ka sa a, mwen sèvi ak mwen paske sa a pou riban te kòmanse avèk mwen egal
ki sa valè, aparamman?
0.
>> Se konsa, sou iterasyon an premye nan sa a riban, li se tankou si m '
te ekri sa a nan kòd.
Men, sou iterasyon an dezyèm nan sa a riban, li se tankou si m '
te ekri sa a nan kòd m 'yo.
Men reyalite a ke mwen lè l sèvi avèk yon varyab se pafè, paske, kòm non an
sijere, li nan divès valè li sou chak iterasyon.
Se konsa, mwen ranpli sa a etalaj yon sèl plas nan yon tan.
Ki sa sa etalaj sanble?
Oke, rezon ki fè mwen te trase sa a super rektang senp sou ekran an isit la
anvan te pou rezon sa a.
Yon etalaj se jis yon ti moso nan memwa ki te swiv pa yon lòt ti moso nan memwa,
ki te swiv pa yon lòt ti moso nan memwa, ak pou fè.
Se konsa, si etalaj mwen, se yon nan gwosè 2, nan ka sa a isit la, tout mwen ta dwe ap fè pa
sezisman nan nòt egzamen m 'yo, renmen isit la.
Mwen te resevwa 100 sou yon sèl sa a.
Lè sa a, mwen te resevwa yon 99 sa a sou youn.
Lè sa a, sa a memwa ka pa menm kapab itilize paske mwen te sèlman mande a
òdinatè pou yon etalaj de gwosè 2.
Moun sa yo ki kare toujou la.
Dwa?
Ou toujou gen de jigokte nan RAM, menm si w ap sèlman
mande pou de cha.
Se konsa, lide nan dèyè ranje se ke òdinatè a jis pran yon ti moso nan memwa
ak Lè sa a, repartisan ki pi piti moso tounen nan fè bak nan do nan do.
Se konsa, ki nan tout sa yon etalaj se.
Li se yon moso vwazen nan memwa, andedan nan yo ki ou ka mete bagay sa yo.
>> Koulye a, sa a k ap pase nan Lè sa a, fè sèlman kèk aritmetik raz.
Si m 'desann isit la, sa a se kote mwen Lè sa a, repekte sou etalaj la.
Mwen vini ak somasyon nan tout valè yo nan etalaj la.
Lè sa a, mwen sèvi ak fonksyon an wonn isit la yo aktyèlman fè a
rapò kantite divize pa ti tès.
Men, kite m 'balanse men m' nan ke kòm sòt de aritmetik ase pou kounye a.
Men, tout sa ki nan ap fè pou m 'finalman ap kalkile yon mwayèn.
Se konsa, premye egzamen plis egzamen dezyèm fwa, divize pa 2, ak Lè sa a, enprime
li soti kòm yon int.
>> Men, nan kite l 'koulye a tranzisyon nan yon egzanp diferan rele string1,
ki pentire yon foto ki sanble men strings lè l sèvi avèk.
Kite m 'ale pi devan epi senplifye sa a sèlman pou moman yon.
Padonnen tout dekoupaj an pou kounye a.
Avi nan liy 19 nan egzanp sa a, mwen jwenn yon fisèl soti nan itilizatè lan.
Men, remake sa m ap fè pwochen nan liy 22 pati.
Mwen aktyèlman iteration soti nan mwen jiska - ak sa a se yon Trick nouvo -
strlèn, fisèl longè.
Sa a se yon fonksyon ki vini ak C ke si ou pase l yon kòd, li di
ou kouman anpil karaktè yo nan ki fisèl.
Sa a tout.
Reyalite a ke li nan strlèn olye pou yo longè fil se jis paske li nan
plis somèr.
30 ane de sa, moun te renmen yo ekri bagay kòm suksen ke posib.
Se konsa, nou te kenbe ki konvansyon isit la.
mwen + + jis vle di kantite mwen nan chak iterasyon.
Epi, koulye a avi sa a, ki se reyèlman enteresan.
Se konsa, nan liy 24, mwen di òdinatè, ban m 'yon karaktè, uit
Bits, ak rele li c.
Men, sa ki sa a sou bò nan men dwat li di?
Nan lang angle, ki sa sa reprezante?
[Fèbl]
DAVID J. Malan: Egzakteman.
Ban m 'pèsonaj la an premye nan etalaj la.
Oswa plis jeneralman, ban m 'pèsonaj la m-th nan etalaj la.
Ak reyalize li enpòtan kounye a ke kòm syantis konpitè, nou 're aktyèlman
konte soti nan 0.
Ou pa gen diskresyon kounye a yo kòmanse fè sa.
Koulye a, ou gen konpòte li yon jan an akò avèk egzijans òdinatè a ak
konte soti nan zewo paske [0] a pwal premye a
karaktè nan yon fisèl.
[1] a pwal, dezyèm lan.
[2] a pwal twazyèm lan, ak pou fè.
Se konsa, pwogram sa a, si mwen konpile li - sa a se, ankò, string1.
>> Se konsa, fè string1.
Epi, koulye a mwen kouri string1 nan fennèt tèminal m 'yo.
Li nan ap tann pou D ', se konsa mwen pral tape nan, di, David.
Antre.
E kounye a li simagri DAVID tout sou liy diferan paske
avi sa m ap fè a.
Mwen enprime yon karaktè nan yon tan.
Koulye a, nou pa pral antre detay jodi a sou sa.
Men, mwen efase yon moman Anons sa pibliye depi chèk sa-a isit la.
Li sanble ke si itilizatè a se dezòd, konfwontasyon, oswa jis
konfonn, ou ka aktyèlman fail bay yon afè de kèk longè.
Si ou frape kle a mal sou klavye a, ou ta ka bay
pa gen okenn fil nan tout.
Oswa si w ap move, ou ta ka eseye keratin nan vo yon jigokte a nan yon
redaksyon yo ranpli sa a fisèl.
Men, si òdinatè a kouri soti nan memwa, li sanble ke nou pwal
jwenn tounen sa a valè espesyal ki rele nil.
Se konsa, pou kounye a, jis konnen ke gen nan sa a valè espesyal ki rele nil ki
ap pèmèt nou yo tcheke lè nou ap soti nan memwa, pami lòt bagay.
>> Men, si mwen louvri moute kounye a string2, remake yon diferans ki genyen isit la.
Avi yon diferans ki genyen isit la ak string2.
Avèk string2, sa a pou riban se yon ti kras diferan.
Kite m 'efase nulls yo pou ke nou ka pale sou sa yo yon lòt lè.
Men, sa ki nan diferan sou la pou riban tan sa a?
Apre sa, mwen ka ale tounen nan egzanp lan anvan yo.
Se konsa, sa a, se vèsyon de.
Sa a se vèsyon youn.
Youn, de, yon sèl de.
Se konsa, rele nan strlèn se ki kote?
Li nan nan premye pati nan an pou riban.
Nenpòt panse kòm poukisa m ap fè sa?
Yeah.
[Fèbl]
DAVID J. Malan: Se konsa, nou pa rele fonksyon an chak fwa sèl.
Egzakteman.
Sonje soti nan pou pasan yo ke yo ap super senp yon fwa ou sòt de
konprann ke sa a se inisyalizasyon a, nan
kondisyon, ak mete ajou nan.
Pwoblèm lan se ke kondisyon an k ap pase sou chak
iterasyon nan riban an.
Se konsa, nan egzanp sa a isit la, sa ki mal sou reyalite a
ke sa a se kondisyon mwen an?
W ap rele strlèn ankò, li ankò epi ankò.
Men, yon fwa mwen te tape nan DAVID a, longè ki fisèl se senk.
E li pa nan pral chanje a sou chak iterasyon nan riban an paske
fisèl se toujou D-A-V-I-D. Se konsa, sa a se yon allusion nan sa k ap pase yo vin yon
pli zan pli enpòtan lide li te ye tankou yon desizyon konsepsyon, kote - jis pa fè sa
fè òdinatè a fè nesesè travay.
>> Koulye a, jis kòm yon preview glisman nan, 2 pset pset 2 nan edisyon estanda a se
ale nan defi ou a aktyèlman aplike kèk nimewo nan Algorithms, gen kèk
kantite algoritm chifreman, se konsa ke ou kapab tou de ankripte ak dekriptaj
mesaj sekrè a, anpil tankou Ralphie a yon sèl gen Decoder.
Nan edisyon an aker nan pset 2, nou pwal ale yon ti kras pi lwen.
Nou pral lage ou yon dosye soti nan yon sistèm òdinatè aktyèl ki gen ladan yon
antye pakèt moun sou usernames ak aktyèl modpas chiffres, ak defi a
pou edisyon an aker a pwal krak sa yo modpas ak figi
konnen ki sa ki chifreman oswa sa ki sekrè te itilize yo aktyèlman
jenere sa yo modpas.
Epi nou ap ale nan fè sa a pa lè l sèvi avèk yon karakteristik nouvo isit la nan C ki Mwen pral ba
ou jis yon Demo nan, yo konnen kòm lòd-liy agiman.
>> Se konsa, li vire soti, tankou kèk nan ou ka gen pou wè nan seksyon oswa nan liv lekòl,
prensipal pa toujou gen yo dwe anile nan parantèz.
Li sanble ke prensipal kapab tou ekri tankou sa a, ak de agiman,
arg ak argv, kote arg se nimewo a nan mo ke ou tape apre
non pwogram nan sou liy lòd ou yo.
Ak argv se mo sa yo vrè.
Epi kòm parantèz yo kare gen sijere, argv se aparamman yon etalaj.
Li nan ale nan yon fisèl apre yon fisèl apre yon fisèl nan memwa.
Se konsa, sa nou pral kapab fè, ta kòmanse avèk pset 2, se
yon bagay tankou sa a.
Si mwen fè argv1, ki se yon egzanp nou pral tounen vin jwenn nan Lendi, epi kouri
li, remake ke li pa sanble yo fè anyen ankò.
Li jis simagri soti non pwòp li yo.
Men, si mwen di orevwa klas, avi ke pwogram sa aparamman iterates
sou chak nan mo sa yo ki te tape nan èd memwa a.
Ak mwayen yo pa ki nou pral jwenn aksè nan mo ki itilizatè a gen
tape nan èd memwa a se pa chanje prensipal, kòmanse nan fen semèn sa, ki soti nan int
prensipal (san valè) Int prensipal (arg, argv).
Se konsa yo pral fèt agiman liy lòd.
E yon fwa w jwenn vrèman sofistike nan nivo sa a, ou pral kapab ekri
reyèlman tripi pwogram, tankou yon sèl sa a isit la, ki ale pi wo a ak pi lwen pase
kèk nan fonctionnalités a nou te fè konsa byen lwen men yo tout byen ki pwisan.
>> Se konsa, nou pral kite sa-a ak sa-a sou ekran an.
Epi nou pral wè ou nan Lendi.