>> [MIZIK jwe]
>> ROB bodèn: Tout dwat.
Se konsa,, premye bagay an premye, nan videyo ki sòti nan yon figi yo konnen yo.
>> [VIDEO lèktur]
>> -Tout dwa.
Sa a se CS50, e sa se kòmanse nan semèn twa.
Mwen regrèt Mwen pa ta ka gen avèk ou jodi a, men pèmèt mwen prezante
CS50 nan pwòp Rob bodèn.
>> [FEN VIDEO lèktur]
>> [Aplodisman AK cheers]
>> ROB bodèn: filmografi an nan ki videyo ki kokenn.
Tout dwa.
Se konsa, premye, gen nan yon lòt manje midi.
Li nan demen nan 1:15.
Gen nan pa gen manje midi Vandredi sa a.
Li se ak Quora.
Apre sa, Tommy a pa isit la ankò, men se yon sèl nan moun yo gen ansyen CF tèt,
Tommy McWilliam.
Se konsa, li se yon nèg plezi.
Ou ta dwe vini an.
>> Tout dwa.
Se konsa, semèn pase a, nou te kòmanse kraze apa sou sa ki yon kòd vrèman se.
Nou te li te ye depi nan konmansman an ki li nan yon sekans nan karaktè.
Men, semèn pase a, nou delved nan lefèt ke sa se reyèlman yon sekans
karaktè, byen, nou genyen kounye a ranje nan karaktè.
, Nou konn sa yon kòd, li nan yon etalaj nan karaktè, nan fen anpil,
nou gen sa a multiple nil espesyal, sa a antislach 0, ki endike nan fen
fisèl la.
>> Se konsa, yon kòd se yon etalaj de karaktè, men nou ka gen plis pase
jis yon etalaj de karaktè yo, nou kapab gen yon etalaj de nenpòt ki
di ki kalite bagay nou vle.
Se konsa, si ou sonje soti nan semèn pase a, a Laj pwogram ki David prezante
vrèman byen vit.
Se konsa, premye bagay nou pral fè se mande itilizatè a pou yon nonb antye ki pè, la
kantite moun ki nan sal la.
Yon fwa nou genyen ki nonb antye ki pè, nou ap deklare yon etalaj.
Avi sa a sentaks bracket.
W ap ale nan jwenn itilize sa a.
>> Se konsa, nou ap deklare yon etalaj de nonb antye relatif rele laj, e gen n
nonb antye relatif nan etalaj sa a.
Se konsa, modèl sa a dwa isit la, sa a Int 4 mwen egal 0, mwen se mwens pase n, mwen plis
plis, se sa ki tou pral gen yon modèl ke ou jwenn anpil itilize yo.
Paske sa a, se bèl anpil ki jan w ap toujou ale nan repňte sou ranje.
Se konsa, sonje ke n se la longè nan etalaj nou an.
Se konsa, isit la, nou ap repete mande pou laj la nan moun mwen nan sal la.
>> Apre sa a, nou desann, epi pou tou sa rezon ki fè abitrè, nou Lè sa a,
ekri ak lèt ​​detache konnen ki jan fin vye granmoun yo ap ale yo dwe yon ane soti nan kounye a.
Ak kouri pwogram sa a, se pou yo fè laj, dot koupe laj.
Se konsa, kantite moun ki nan chanm nan, Se pou nou di gen twa.
Epi n'ap di: premye moun ki se 13, pwochen se 26, ak dènye a se 30.
Se konsa, lè sa a li pral repňte sou sa yo twa moun, enprime soti 14, 27, ak 31.
>> Se konsa, sonje ke lè nou deklare yon etalaj de gwosè n, endis yo nan ki
etalaj, etalaj la gen valè ak endis 0, 1, 2, tout wout la
jiska n mwens 1.
Se konsa, lè nou te di te gen twa moun ki nan chanm nan, epi nou mete nan isit la
iterasyon an premye nan sa a bouk, mwen a pwal 0.
Se konsa, nan endèks 0.
Nou ap plase premye a gen laj itilizatè a antre nan.
Lè sa a, nan yon sèl kap vini an, nou ap antre nan la dezyèm n itilizatè a antre nan, ak nan
akote de, dènye n la.
>> Se konsa, remake ke yon etalaj de gwosè twa pa gen anyen
nan endèks la twa.
Sa a se pa ki valid.
Tout dwa.
Se konsa, pral tounen isit la.
Se konsa, kounye a ke nou te te fè fas ak ranje, nou gen kèk abitye.
Koulye a, nou ap ale pou avanse pou sou lòd agiman liy, ki fè yo pral fè
trè ki gen rapò ak pwoblèm sa a seri egzèsis la.
>> Se konsa, moute jouk koulye a, chak fwa ou te te deklare fonksyon prensipal ou an, nou te
di Int anile prensipal la.
Se konsa, anile jis vle di ke nou pa pase nenpòt ki
agiman nan fonksyon sa a.
Koulye a, nou ap ale nan wè ke prensipal ka pran kèk agiman.
Isit la nou rele yo Int arg ak tout kòd parantèz argv.
Parantèz yo, yon lòt fwa ankò, ki endike ke nou ap fè fas ak ranje.
Se konsa, isit la, parantèz fisèl argv, nou fè fas ak yon etalaj de strings.
Se konsa, arg, ki k ap pase yo endike konbyen agiman nou te
pase nan pwogram sa a.
Apre sa, yo wè sa ki sa vle di, kite a fèmen sa a.
>> OK.
Se konsa, moute jouk koulye a, nou te kouri chak pwogram tankou laj koupe dot.
Nou kapab tou, nan liy lan lòd, sot pase yo pase agiman, enben, tèm nan, lòd
liy agiman.
Se konsa, agiman an premye, bonjou nan lemonn.
Se konsa, isit la, arg ta dwe twa.
Li nan konte a nan agiman yo nan liy lan lòd.
Arg se toujou omwen 1, depi dot koupe laj, li menm, konsidere kòm youn nan
liy lòd agiman yo.
>> Lè sa a, bonjou se premye a.
Si laj koupe dot se zeroth a, Lè sa a, alo se premye a, ak mond la se nan
dezyèm lòd liy agiman.
Se konsa, argv nan fisèl, nou ap ale nan wè la a, gen strings, dot koupe nan
laj, hello, ak nan lemonn.
Epi, si ou mande sa David la, nou pral yo jwe yon videyo entwodwi sa a.
>> [VIDEO lèktur]
>> -Up jouk koulye a nan pwogram nou te ekri, nou te deklare
prensipal kòm Int anile prensipal la.
Apre sa, tout tan sa a, ki anile gen tou senpleman te espesifye ki la
pwogram pa pran okenn lòd liy agiman.
Nan lòt mo, lè yon itilizatè kouri yon pwogram nan, li oswa li te ka bay lòd
agiman liy pa ekri plis mo ak fraz apre pwogram lan
non nan èd memwa a.
>> Byen, si w ou vle pwogram ou a pran lòd agiman liy, youn oswa
plis mo sa yo, nou bezwen ranplase anile ak yon koup la agiman.
Se konsa, kite a fè sa.
Mete CS50.h.
Mete estanda io.h.
Int prensipal la.
Epi, koulye a, olye pou yo anile, mwen pral presize yon Int rele arg, ak yon
etalaj de strings rele argv.
Koulye a, arg ak argv yo tou senpleman konvansyon.
>> Nou te kapab yo te rele agiman sa yo anyen ki pi nou vle.
Men, ki sa ki enpòtan se ke arg se yon Int paske, pa definisyon, li se
ale nan gen ladan konte nan agiman, nan kantite mo nan manm ki la
te itilizatè tape nan èd memwa li.
argv, pandan se tan, agiman vektè, se ale nan aktyèlman ap yon etalaj estoke
tout nan mo sa yo ki itilizatè a gen tape nan èd memwa li.
>> Se pou yo kontinye nan fè yon bagay kounye a ak youn oswa plis nan sa yo
lòd liy agiman.
An patikilye, se pou yo ale pi devan epi ekri ak lèt ​​detache tou sa pawòl ki kalite itilizatè
apre Non pwogram lan nan èd memwa a.
Louvri bracket.
Fèmen bracket.
S antislach printf pousan ak vigil.
Koulye a, mwen bezwen di printf sa ki valè ploge nan ki kontneur.
Mwen vle pawòl Bondye a premye ki itilizatè a gen tape apre Non pwogram lan,
yo ak pou mwen pral presize argv bracket 1, fèmen
parantèz, pwenvigil.
>> Koulye a, poukisa bracket 1 epi yo pa bracket 0?
Oke, li vire soti, otomatikman ki estoke nan argv 0 a pwal nan
aktyèl Non pwogram lan.
Se konsa, pawòl Bondye a premye ki kalite mouvman yo itilizatè apre Non pwogram lan se, pa
konvansyon, pral fè ki estoke nan argv 1.
Se pou nou kounye a konpile ak kouri pwogram sa a.
>> Fè argv 0, dot koupe argv 0.
Epi, koulye a yon mo tankou hello.
Antre.
Apre sa, nou genyen li, hello.
>> [FEN VIDEO lèktur]
>> ROB bodèn: Tout dwat.
Fèmen sa a.
Se konsa, pran yon gade nan ki pwogram ki nou jis prezante yo nou, byen, jis
yo montre, si nou ekri ak lèt ​​detache argv 0, fè, kounye a ki sa ki li, argv 0, dot koupe argv 0.
Se konsa, jan yo espere a, li te enprime soti nan Non pwogram lan, depi argv 0 se
toujou pral fè a Non pwogram lan.
Men, kite a fè yon bagay yon ti jan pi plis enteresan.
>> Se konsa, nan pwoblèm mete nan, ou pral prezante yo fonksyon sa a, atwa.
Se konsa, sa nou itilize atwa pou?
Sa a ale nan konvèti yon fisèl nan yon nonb antye ki pè.
Se konsa, si, fòk mwen pase fisèl la, yon sèl de twa, atwa, ki pral konvèti ki
nonb antye ki pè a, yon sèl de twa.
Se konsa, nou ap ale nan konvèti premye a lòd liy agiman nan yon nonb antye ki pè,
ak Lè sa a, jis ekri ak lèt ​​detache ki nonb antye ki pè.
>> Se konsa, fondamantalman, nou kalite reimplementing getint, jis nan
nonb antye ki pè se te antre nan nan yo lòd, ki liy olye pou yo nan pwogram nan
epi youn.
Se konsa, lè sa a, fè argv 0, se pou yo fè li nan isit la, epi fèmen sa a.
Se konsa, kouri argv 0, e kite yo antre nan la nonb antye ki pè, yon sèl de twa kat youn de.
Se konsa, li pral ekri ak lèt ​​detache nonb antye ki pè a, yon sèl de twa kat youn de.
Gen kèk sibtilite atwa ki li pral sispann pran swen sou anyen
ale pi lwen pase ki valid nimerik karaktè, men sa pa gen pwoblèm.
>> Se konsa, ki sa ou panse k ap pase si mwen fè sa?
Segmentation fay.
Se konsa, poukisa se sa?
Si ou gade tounen nan pwogram nou an, nou konvèti argv 1, agiman an premye
apre Non pwogram lan, nan yon nonb antye ki pè.
Men pa gen okenn agiman te pase apre Non pwogram lan.
Se konsa, isit la, nou wè ke sa a se yon buggy pwogram, depi, si nou eseye kouri li
san yo pa nenpòt agiman, li pral jis aksidan.
>> Se konsa, yon lòt modèl komen ou pral wè se yon bagay tankou, si arg ki pi piti a
pase de, ki endike ke pa t 'la omwen non pwogram nan ak yon
premye agiman, lè sa a nou pral fè yon bagay tankou printf, pa ase
lòd liy agiman.
Sa a pwobableman pa yon bon ekri ak lèt ​​detache, li la pwobableman yon bagay, tankou
ou ta dwe antre nan yon nonb antye relatif nan liy lan lòd.
Mwen pral jis fini ak li a.
Lè sa a, retounen 1.
Se konsa, sonje ke nan fen nou an pwogram, si nou tounen 0, ki sòt de
endike siksè.
Apre sa, prensipal tou otomatikman retounen 0 si w pa fè sa.
>> Se konsa, isit la, nou ap retuning 1 a endike ki sa a pa siksè.
Apre sa, ou ka retounen tou sa ou vle, jis, 0 endike siksè, ak
nenpòt lòt bagay endike echèk.
Se konsa, kite a kouri vèsyon sa-a nan bagay sa yo.
Se konsa, koulye a, si nou pa antre nan yon liy lòd agiman, li pral di kòrèkteman
nou, pa ase liy lòd.
Pa t 'fini fraz la.
Lòt Bagay, si nou aktyèlman pase l yon sèl, li ka konplete pwogram la.
Se konsa, sa a se ki jan ou ta sèvi ak arg nan lòd yo valide ki kantite
liy lòd agiman ki yo aktyèlman te pase.
>> Se konsa, kite a fè pwogram sa a yon ti jan pi plis konplike, epi gade nan dezyèm lan
iterasyon de bagay sa yo.
Se konsa, koulye a, nou ap pa sèlman enprime la premye lòd liy agiman.
Isit la, nou ap iteration soti nan Int egal mwen 0, mwen se mwens pase arg, mwen plis
plis, ak argv enprime, endèks mwen.
Se konsa, modèl sa a, ankò, sa a se menm bagay la tou modèl tankou anvan, eksepte olye pou
pou rezidan yo rele varyab la n, nou ap lè l sèvi avèk arg.
>> Se konsa, sa a se iteration sou chak endèks nan etalaj la, ak enprime chak
eleman nan ki etalaj.
Se konsa, lè nou kouri pwogram sa a, byen, Mwen pa t 'antre nan nenpòt liy lòd
agiman, se konsa li jis simagri Non pwogram lan.
Si m 'antre nan yon pakèt moun sou bagay sa yo, li pral ekri ak lèt ​​detache yon sèl, yo chak sou liy pwòp li yo.
>> OK.
Se konsa, kite a pran yon sèl sa a etap pi lwen.
Apre sa, olye pou yo enprime chak agiman sou liy pwòp li yo, se pou yo ekri ak lèt ​​detache chak
karaktè nan chak agiman sou liy pwòp li yo.
Se konsa, sonje ke argv se yon etalaj de strings.
Se konsa, sa se yon fil, men yon etalaj de karaktè?
Se konsa, ki vle di ke argv se reyèlman yon etalaj de yon etalaj de karaktè.
Se konsa, pran avantaj de sa a, kite a inyore sa a pou kounye a.
Se pou nou jis konsidere argv la fisèl 0.
>> Se konsa, si nou vle pote chak karaktè nan argv 0 sou liy pwòp li yo, Lè sa a, mwen vle
fè modèl la n ap itilize yo, mwen se mwens pase longè a nan etalaj la,
ki isit la, se strlèn nan, ki nan pa sa m 'vle fè a, fisèl
s egal argv 0.
Se konsa, mwen se mwens pase longè a nan nou an etalaj, ki nan ka sa a se yon etalaj
nan karaktè, mwen plis plis.
Se konsa, kòm nou te wè semèn pase a, li la ideyal si nou demenaje ki strlèn deyò
nan kondisyon an, depi n ap ajoute strlèn a nan s chak fwa nou ale
nan bouk la, epi li pa yo pral chanje.
Se konsa, nou pral mete l 'egal a n sou isit la.
>> OK.
Se konsa, koulye a, nou ap iteration sou chak endèks nan etalaj la.
Se konsa, si nou vle ekri ak lèt ​​detache chak karaktè nan ki etalaj, pousan c se
drapo a nou vle sèvi ak pou karaktè.
Epi, koulye a yon mwen bracket a pwal nan fisèl, pèsonaj endèks mwen, kidonk si la
fisèl te hello.
Lè sa a, s 0 a pwal h, s bracket 1 yo pral e, ak sou sa.
>> Se konsa, koulye a nou vle konbine de bagay sa yo.
Nou vle ekri ak lèt ​​detache chak karaktè nan chak agiman liy lòd.
Se konsa, nou ap ale nan gen yon nich pou bouk.
Apre sa, konvansyonèl, premye kontwa an Se mwen menm, pwochen an a pwal j, n
yo pral strlèn a nan argv mwen, mwen se mwens pase n, mwen plis plis.
Epi, koulye a olye pou yo enprime argv mwen, se konsa argv bracket mwen se ale nan endèks -
ki k ap pase yo dwe liy lan m-th lòd agiman, argv mwen, j ki pral
gen karaktè a jth nan m-th agiman an.
Mwen pral debarase m de sa a moute isit la kounye a depi nou mete l 'nan ke bouk.
Se konsa, ki ekivalan a egal fisèl la argv mwen, ak Lè sa a, yo bracket j.
>> Oke, nou pa bezwen deklare sa a s varyab.
Olye de sa, nou pral jis konbine sa yo de nan ki sa nou te genyen, argv mwen, j.
>> Oratè 1: [fèbl].
>> ROB bodèn: Bon apèl.
Se konsa, sa a se kase.
Si m 'aktyèlman kouri l', nou ta te reyalize sa a.
Se konsa, kontwa an mwen pran swen sou nan sa a an patikilye pou
bouk se j, iterator la.
Se konsa, ou ta gen kouri antre nan pwoblèm, pwobableman yon bouk enfini, si nou
pa t 'fiks sa.
Se poutèt sa nou ap tou ap pale sou debogaj jodi a.
>> OK.
Se konsa, kite a kouri pwogram sa a.
Li kite yo aktyèlman ajoute yon printf separe dwa isit la ki pral jis ekri ak lèt ​​detache
yon lòt liy, depi sa sa vle di lè nou kouri pwogram nan, gen pral yon vid
liy nan ant chak karaktè nan chak liy agiman lòd.
Oke, nou pral wè kisa sa vle di.
Op.
Gen kèk ensèk.
Erè chal deklare fonksyon bibliyotèk strlèn.
>> Se konsa, pral tounen nan pwogram nou an, mwen bliye Hash gen ladan string.h.
Se konsa, string.h a pwal nan dosye header ki deklare
fonksyon an strlèn.
OK, li compiles.
Koulye a, se pou yo kouri li.
Se konsa, sèlman sa.
Li ale nan ekri ak lèt ​​detache soti nou an Non pwogram nan, bonjou nan lemonn.
Li ale nan ekri ak lèt ​​detache chak bagay, chak karaktè, sou liy pwòp li yo.
OK.
>> Se konsa, kite a aktyèlman pran sa a yon sèl etap pi lwen.
Apre sa, olye pou yo lè l sèvi avèk string.h, se pou yo panse osijè de kòman nou ta aplike pwòp nou
strlèn fonksyon.
Se konsa, mwen pral ba imedyatman yon siyati fonksyon.
Se konsa, kite a rele nan my_strlen, epi li pral pran yon kòd kòm yon diskisyon,
e nou espere retounen nan longè ki fisèl.
Se konsa, kote se ke nèg?
Wi.
OK.
Se konsa, sonje soti nan glise la pi bonè ke te tou ki soti nan semèn pase a, ke yon
etalaj de karaktè, byen, yon kòd, Se konsa, kite a di sa a se nan fil nou an.
Se konsa, si yo se fisèl la, hello, lè sa a, H-E-L-L-O, nan memwa, ki nan ale nan
dwe, ak Lè sa a, sa a antislach 0 karaktè.
>> Se konsa, kouman nou jwenn longè a nan a?
Oke, se jwe fent la kap chèche sa a repèkisyon 0 karaktè, nil sa a
Terminator.
Se konsa, algorithm a pral yo dwe yon bagay tankou kèk
ase karaktè ki -
kite a gen men sa a reprezante kèk vann san preskripsyon, se pou yo rele sa longè Int.
Se konsa, kòmanse soti nan plis pase isit la, nou ap ale nan repňte sou fisèl nou an.
>> Se konsa, karaktè a an premye, li nan H, epi li pa la tounen koupe 0, se konsa
longè a se 1.
Repňte nan karaktè kap vini an, E, epi li pa la antislach 0.
Longè se 2.
L, 3.
L, 4.
O, 5.
E finalman, nou rive nan antislach 0, e konsa sa vle di, byen,
fisèl sa a se sou.
Se konsa, kite a retounen 5.
>> Se konsa, aktyèlman mete ann aplikasyon sa a, premye, longè n mwen an egal 0, men dwat mwen an.
Apre sa, nou pral repňte -
>> Oratè 1: [fèbl]
>> ROB bodèn: Oh, tire.
Bon apèl.
Boom.
Se konsa, n longè egal 0.
Se konsa, koulye a, longè pandan y ap s pa fè sa egal ak Lè sa a, antislach 0.
Se konsa, sonje, sa a antislach 0, li se yon N. reyèl, epi li endike
nan fen fisèl la.
Jis tankou, tou, antislach n se yon karaktè vrè.
Antislach 0 ki pral endike nan fen fisèl nou an.
Mwen pa vle mete sa a.
Epi pandan ke y s Catalogue pa longè se pa egal a Terminator a nil, lè sa a
nou ap jis ale nan enkreman longè.
Se konsa, lè sa a, nan fen pwogram nou an, longè ki evantyèlman ale nan
gen 5 nan ka sa a.
Epitou, n ap jis retounen longè.
>> OK.
Se konsa, koulye desann isit la, mwen pa fè sa fè my_strlen.
Se pou nou konpile li nan asire w ke tout bagay kouri fèt san pwoblèm.
Te mwen fè nan 2?
Oswa te ke 1 an?
Sa ta dwe fè.
Tout dwa.
Se konsa, sa a se argv 2.
Travay kòm prevwa, byenke te ke youn nan m 'te fè l' nan?
Wi.
OK.
Sa a vèsyon de bagay sa yo pa t 'gen printf liy nan nouvo apre, men li
pa fè okenn diferans.
OK.
Se konsa, te travay kòm espere.
>> Koulye a, nou ka menm konbine etap sa a yon sèl pi lwen, kote avi isit la, byen,
premye, nou ap arachman strlèn a nan argv mwen, ak Lè sa a, nou ap iteration sou
chak karaktè nan ki fil.
Se konsa, olye pou yo fè sa, ki sa ki si nou jis konbine sa a lojik nan ap tann
jiskaske nou frape antislach 0 dwa nan sa a pou bouk?
Se konsa, repňte pandan y ap argv mwen, j fè pa egal antislach 0.
Se konsa, kite a kouri li an premye.
>> Tout dwa.
Se konsa, isit la, kondisyon sa a ap di -
kite a klè ke.
Se konsa, koulye a, se pou sa a gen argv nou an.
Se konsa, lè mwen jis kouri pwogram sa a anvan, argv se yon etalaj de strings.
Se konsa, si mwen kouri li ak dot argv koupe 2, bonjou sou latè, Lè sa a, argv la
tèt li se longè 3, pou argv zewo, hello, ak nan lemonn.
>> Ak andedan nan chak nan endis sa yo se, tèt li yon etalaj, kote sa a pral
dot, sa a pral koupe, mwen pa konnen si sa ki te bon direksyon an, mwen
pa panse ke li te ye.
A-R-V priz, bezwen plis espas.
Se pou yo koupe nan etalaj sa a.
A-R-V priz 0, epi Lè sa a, antislach 0.
Lè sa a, nan tètchaje yo pral hello.
Se pou nou di, H-E antislach 0.
E finalman, W-O antislach 0.
>> Se konsa, algorithm a ke nou jis te ekri, pare solèy la pou pasan, ki sa ki yo ap
fè se, nou gen nan premye vann san preskripsyon mwen ak Lè sa a, j.
Sa a ta ka pi fasil avèk kòd sou la ekran, Se pou yo tounen nan sa a.
OK.
Se konsa, remake ke mwen se iterator a ki nan iteration sou chak lòd
liy agiman.
Apre sa, j a se iteration nan iterator sou chak karaktè nan ki
lòd liy agiman.
Se konsa, sa printf sa a entim ap fè se, nou te printf argv 0 0, printf
argv 0 1, printf argv 0 2, 0 3, 0 4, 0 5, 0, 6, men kounye a, argv 0 7 ki pral
egal antislach 0.
>> Se konsa, lè sa a nou sòti ki pou bouk, e kounye a, mwen iterates a 1.
Epi, koulye a nou pral ekri ak lèt ​​detache argv 1 0, argv 1 1 -
byen, kounye a, depi m 'koupe alo ti bout tan, argv 1 2 se ankò pral fè
antislach 0.
Se konsa, enkreman mwen yo e yo kontinye, ak sou sa, jouk nou enprime soti tout nan
mond lan, ak sa yo se twa liy lòd agiman, epi n ap sòti soti nan
bouk ki pi aleksteryè, ak fini pwogram nou an.
OK.
>> Se konsa, kite a va tounen isit la.
Se konsa, ou pral jwenn kèk abitye avèk agiman liy lòd sa a sou
pwoblèm patikilye mete.
>> Koulye a, debogaj.
Se konsa, ou pwobableman te deja te fè kèk debogaj ak anvan ou
pwoblèm mete.
Apre sa, yon fason trè fasil nan debogaj, premye, se pou yo gade nan yon pwogram buggy.
Oke, mache nan pwogram sa a, nou pral mande itilizatè a pou yon
nonb antye ki pè, gen tan pwan ke nonb antye ki pè, ak lè sa a, abitrèman, nou gen yon bouk pandan y ap ki
se jis ale nan dekrwasans mwen jouk li a egal a 10.
Se pou nou jis asime mwen k ap antre nan yon nonb antye relatif ki pi gran pase 10.
Se konsa, dekrwasans mwen jouk li a egal a 10.
>> Lè sa a, nou gen yon lòt bouk pandan y ap ki, pandan y ap mwen pa fè sa egal 0, nou ap
ale nan dekrwasans mwen pa 3.
Se konsa, si ou wè entansyon an nan pinèz la isit la, li nan ke sa a pral dekrwasans m '
gen 10, ak Lè sa a, sa a pral pandan y ap bouk dekrwasans mwen soti nan 10, nan 7, a 4, a 1,
negatif 2, nan negatif 5, ak sou sa, Infinity negatif, depi m 'pral
aktyèlman pa janm egal a 0.
Lè sa a, nan fen pwogram sa a, nou gen fonksyon an foo ki se
ale sou ekri ak lèt ​​detache soti ke mwen.
>> Se konsa, sa a se yon pwogram kout ak trivial, ak pinèz la se evidan,
sitou apre mwen jis di ki sa pinèz la te ye a.
Men, entansyon a isit la se, byen, sa a ta ka aktyèlman gade tankou kèk nan ou
solisyon soti nan visye ki soti nan dènye a pwoblèm mete, ak petèt ou gen
kèk bouk enfini nan pwogram ou an, epi ou pa gen okenn lide
sa ki sa ki lakòz li.
Se konsa, yon teknik debogaj trè itil se jis ajoute printfs
tout lòt peyi sou Kòd ou.
>> Se konsa, isit la mwen vle yon printf deyò premye pandan y ap bouk.
Ak isit la mwen vle yon printf, epi mwen pral jis ekri ak lèt ​​detache mwen.
Mwen pral menm fè premye pandan y ap bouk, mwen.
Deyò, dezyèm pandan y ap bouk.
Yon fwa ankò, ekri ak lèt ​​detache andedan nan isit la, valè a mwen.
Li kite yo kouri sa a.
>> Se konsa, dot koupe debug.
Antre nan yon nonb antye relatif.
Se pou yo fè 13.
Apre sa, boom.
Nou wè ke nou se enfini loupin andedan nan dezyèm bouk la pandan y ap.
Se konsa, kounye a nou konnen ki sa ensèk la se.
Men, printf debogaj se parfe gwo, men yon fwa pwogram ou jwenn
pi long ak pi konplike, gen solisyon pi plis sofistike
ap resevwa bagay sa yo ap travay.
Se konsa, kite a retire tout printfs sa yo.
Li kite yo asire yo ke mwen pa t ' kraze anyen.
OK.
>> Se konsa, pwogram lan nou pral prezante yo rele
Gdb, pou GNU debogeur.
Oke, aktyèlman, se pou yo retire debug pou yon dezyèm fwa, epi fè debug ankò.
Oke, aktyèlman an premye, yon bon leson nan lòd liy agiman.
Remake lòd sa a sonnen se sa ki konpile se tout bagay yo te pase
nan liy lan lòd, sa yo lòd liy agiman.
Se konsa, egzakteman kouman ou yo pral lè l sèvi avèk liy lòd agiman, jan nou
te fè anvan, ak jan ou pral nan PSET 2, sa a, se ki jan sonnen se lè l sèvi avèk yo.
>> Se konsa, remake ke sa a premye drapo, priz ggdb3, ki sa ki ki nan di se, rezone,
ou ta dwe konpile sa a ranpli ak nan entansyon ke nou pral evantyèlman
bezwen debug li.
Se konsa, osi lontan ke ou genyen ki drapo, Lè sa a, nou kapab gdb debug.
Apre sa, li pral louvri moute GNU debogeur la.
>> Se konsa, gen yon anpil nan kòmandman ke ou bezwen jwenn itilize.
Premye yon sèl ke ou ap pwobableman imedyatman bezwen se kouri.
Se konsa, sa se kouri pral fè?
Li pral kòmanse pwogram nou an.
Se konsa, kouri, pwogram kòmanse, pwogram nan mande nou pou yon nonb antye ki pè, 13.
Lè sa a, li la enfini loupin kòm yo espere a, eksepte mwen retire nan
printfs, se konsa nou pa menm wè sa.
Quitté nòmalman.
Oh.
Li posib ke li vlope tout la fason alantou li, tounen nan - inyore sa.
Sipoze li pa t 'soti nan nòmalman.
Genyen yon repons konplike nan sa.
>> Se konsa, kounye a, sa a pa trè itil.
Se konsa, jis kouri pwogram nou an andedan nan debugjeur sa a pa ede nou nan nenpòt ki
fason sa a, depi nou te kapab jis fè dot koupe debug soti an deyò de gdb.
Se konsa, yo lòd, ki moun ki Ou ap pwobableman -
epi mwen pral kite sa-a.
Kontwòl-d oswa ou kite, tou de travay.
Se konsa, kite a louvri l 'ankò.
>> Yon lòt lòd ke ou ap pwobableman imedyatman vle
jwenn itilize se Pak.
Se konsa, nou pral kraze sou prensipal pou kounye a, ak Lè sa a, mwen pral eksplike ke.
Oke, isit la nou wè nou mete yon breakpoint nan liy sa a nan debug.c.
Se konsa, sa ti repo vle di se ke lè m ' tape kouri, pwogram nan se ale nan
kontinye kouri jouk Mwen frape yon breakpoint.
Se konsa, lè m 'frape kouri, pwogram nan kòmanse, ak Lè sa a, li kraze le pli vit ke li
antre nan fonksyon prensipal la.
Kraze prensipal ki pral gen yon bagay ou trè souvan fè.
>> Epi, koulye a, nan entwodui ou nan kèk kòmandman plis ankò.
Avi isit la, ke li nan di nou te kraze nan liy 11, ki se
printf, antre nan yon nonb antye relatif.
Se konsa, yo lòd, ki Next a pwal ki jan nou ale nan liy nan pwochen nan kòd.
Sa a se ale nan pèmèt nou nan etap nan liy pwogram nou an pa liy.
Se konsa, kap vini an.
>> Koulye a, liy 12, nou pral jwenn nonb antye ki pè a.
Kap vini an.
Ak si ou jis frape Antre ankò, li pral refè bagay la pase ou te fè.
Se konsa, mwen pa bezwen tape pwochen chak fwa.
Se konsa, antre nan yon nonb antye relatif, 13.
Se konsa, koulye a, liy 14, pandan y ap mwen an gen plis pouvwa pase 10, epi mwen pral fè pwochen.
Lè nou wè nou pral dekrwasans mwen.
Se konsa, nou ap ale nan dekrwasans mwen ankò.
>> Se konsa, koulye a, yon lòt itil lòd se Enprime.
Se konsa, Enprime ki pral enprime soti valè a nan varyab la.
Se pou yo pote l 'valè a nan varyab mwen.
Se pou yo ekri ak lèt ​​detache mwen.
Li pral di mwen se 11.
Koulye a, nou Next ankò pandan y ap mwen gen plis pouvwa pase 10.
Se konsa, mwen la toujou pi gran pase 10, depi li nan 11.
mwen mwens mwens.
Se pou yo ekri ak lèt ​​detache mwen ankò.
Kòm espere, li la 10.
>> Se konsa, kounye a, kap vini an.
Li pral tounen nan kondisyon an, mwen se pi gran pase 10, men mwen se kounye a 10, Se konsa,
li pa pi plis pase 10, se konsa nou espere li soti tonbe nan bouk la pandan y ap.
Epi, koulye a nou ap anba a ki liy nan kòd.
Ak yon lòt lòd, Lis, se jis ale an montre anvan an ak pwochen
koup la liy nan Kòd, nan ka ou pèdi tèt ou.
Se konsa, nou jis quitté sa a bouk ti tan, epi kounye a nou gen antre nan sa a
pandan y ap bouk, liy 18.
Se konsa, pandan mwen pa fè sa egal 0.
Epi, kap vini an, mwen egal mwen mwens 3, epi n ap avi, sa a pral jis kenbe prale.
Apre sa, nou ka ekri ak lèt ​​detache mwen.
>> Chak lòd sòt de gen rakoursi.
Se konsa, p se kout pou Ekri an lèt detache.
Se konsa, nou kapab p mwen.
Jis kenbe kenbe n, oswa kontinye ap fè kap vini an.
Enprime mwen ankò.
Ou wè kounye a li nan negatif 167.
Se konsa, sa a pral ale sou pou tout tan, men se pa vrèman pou tout tan, depi ou jis te wè, li
aktyèlman ap fini nan kèk pwen.
>> Se konsa, ki se Kòmanse gdb.
Men, kite a fè yon bagay plis nan gdb.
Uh, debug.
Se konsa, nan ka sa a an patikilye, nan enfini bouk ki te pase yo dwe andedan nan
fonksyon prensipal la.
Se pou kounye a, jis aksepte ke ke mwen se ale pou avanse pou pi bouk la enfini nan
fonksyon an foo.
Jis sonje ke, nan fen sa a pwogram, byen, sa a te orijinal
rele foo, sa ki te jis ale nan ekri ak lèt ​​detache mwen.
Men koulye a, nou ap rele foo, ki se ale nan dekrwasans mwen jouk li a 0, epi
Lè sa a, ekri ak lèt ​​detache varyab sa a.
OK.
Delivre sa.
Fè debug.
Koulye a, gdb debug.
OK.
>> Se konsa, si mwen jis kouri Lè sa a, mwen pa ale nan kapab aktyèlman etap nan mwen
liy-pa-liy pwogram nan.
Se konsa, kite a kraze nan prensipal yo, ak Lè sa a, tape kouri.
Se konsa, ale nan sa a, printf, antre nan yon nonb antye relatif, jwenn nonb antye ki pè a, 13.
Se konsa, nou ap ale nan kenbe decrementing jouk tan mwen gen plis pouvwa pase 10.
Lè sa a, nou pral tonbe nan la pandan y ap bouk, epi pou yo jwenn nan liy lan -
kite a louvri li moute nan yon fennèt apa a.
Se konsa, nou dekremante jouk tan mwen te gen okenn ankò pi gran pase 10, ak Lè sa a, nou
rele fonksyon an, foo.
>> Se konsa, sa ki te pase le pli vit ke mwen frape foo fonksyon, byen, mwen te rele foo, ak
Lè sa a, mwen pa gen okenn ankò te gen kontwòl sou gdb.
Se konsa, le pli vit ke mwen frape Next nan liy sa a, bagay sa yo kontinye jouk sa a te pase a,
kote pwogram lan quitté lè -
sipoze li pa t 'egziste evantyèlman.
Ou te wè sa pran yon poz pou yon ti jan si.
Se konsa, poukisa mwen te pèdi kontwòl sou pwogram lan nan pwen sa?
Oke, lè mwen tape kap vini an, ki ale nan literal liy nan pwochen nan kòd ki
ap egzekite.
Se konsa, apre liy 21, liy nan pwochen nan Kòd ki pral egzekite se liy 22,
ki se, elèv la kite prensipal la.
Se konsa, mwen pa vle jis ale nan liy lan pwochen nan kòd.
Mwen vle ale nan fonksyon, foo a, ak Lè sa a, tou etap nan
moun ki liy nan kòd.
>> Se konsa, pou ke, nou gen yon altènatif.
Se pou nou kite sa ankò.
Kraze prensipal la.
Uh, 1, apre, pwochèn nan, 13, kap vini an, kap vini an, kap vini an, ak anpil atansyon,
anvan nou frape liy foo.
OK.
>> Se konsa, koulye a, nou ap nan liy 21, kote nou rele foo.
Nou pa vle tape kap vini an, depi ke pral jis rele foo an fonksyon, ak
ale nan liy nan pwochen nan kòd.
Ki sa nou vle sèvi ak se Etap.
Se konsa, gen nan yon diferans ant Etap ak Apre sa, kote Etap etap nan la
fonksyone, ak pwochen ale sou fonksyon an.
Li jis ègzekutra antye nan fonksyon an ak kenbe prale.
>> Se konsa, Etap ki pral mennen nou nan fonksyon an, foo.
Lè nou wè isit la, kounye a, nou ap tounen nan sa a bouk pandan y ap sa a, se, nan teyori,
pral kontinye pou tout tan.
Men, si ou frape Etap, lè li se pa menm yon fonksyon yo rele, lè sa a li nan
ki idantik ak pwochen an.
Se konsa, li a sèlman lè w ap nan yon liy ki ap rele yon fonksyon ki etap
ki pral diferan de kap vini an.
Se konsa, Etap ap fè nou isit la.
Etap, etap, etap, etap, etap, etap, ak nou pral jis enfini bouk pou tout tan.
>> Se konsa, ou ta ka jwenn itilize sa a kòm ou fason pou idantifye pasan enfini, se
jis kenbe sa a antre nan kle yo wè ki kote ou jwenn kole.
Gen pi bon fason yo fè sa, men pou kounye a, se sa ki parfe ase.
Apre sa, estilitikman, nan konfòme yo ak Style 50, mwen ta dwe fè sa a.
OK.
>> Se konsa, yon dènye lòd prezante.
Oke, kite la gdb debug pous
Se konsa, olye pou yo kraze nan prensipal yo, si mwen konnen fonksyon an foo se tou nan
pwoblèm, Lè sa a, mwen te kapab gen sèlman te di, kraze nan foo, olye pou.
Se pou nou di mwen kraze nan tou de pwensipal yo ak foo.
Se konsa, ou ka mete kòm anpil breakpoints jan ou vle.
Lè m 'tape kouri, li pral yo sispann nan a -
Ooh, se pou yo compile, depi Mwen chanje bagay sa yo.
Ou pral wè liy sa a, avètisman, sous dosye a se pi plis ki sot pase pase ègzèkutabl.
Se konsa, ki vle di ke mwen jis te ale nan isit la Li chanje sa yo konfòme yo ak Style
50, men mwen pa t 'compile pwogram lan.
Se konsa, gdb fè m 'okouran de sa.
Mwen pral kite fimen, fè debug ankò, frape gdb debug.
OK.
>> Se konsa, koulye a, tounen nan sa mwen te fè a.
Kraze prensipal yo, kraze foo.
Koulye a, si mwen kouri pwogram nan, se konsa li a ale nan kontinye jiskaske frape yon
breakpoint.
Sa breakpoint k ap pase nan fè yon sèl la an premye nan prensipal la.
Koulye a, olye pou yo fè apre, pwochèn nan, apre, apre, pwochèn nan, jouk tan mwen frape foo, mwen
ka tape kontinye, ki ap kontinye jiskaske ou frape breakpoint nan pwochen an.
Mwen gen antre nan nonb antye ki pè a an premye.
Kontinye ap kontinye jouk tan mwen frape nan pwochen breakpoint, ki se ki
fonksyon nan foo.
>> Se konsa, kouri pral kouri jiskaske ou frape yon breakpoint, men ou sèlman tape kouri lè
w ap kòmanse pwogram nan, ak Lè sa a, soti nan Lè sa a, sou, li la kontinye.
Si mwen jis te fè kraze prensipal ak Lè sa a, kouri, li pral kraze a
prensipal yo, ak Lè sa a kontinye.
Depi mwen pa gen yon pwen kraze nan foo, antre nan nonb antye ki pè a, Lè sa a, koulye a, mwen se
pa ale nan kraze nan foo.
Se jis ale nan enfini bouk jouk sa.
OK.
>> Se konsa, sa a, se Entwodiksyon nan gdb.
Ou ta dwe kòmanse lè l sèvi avèk li nan aparèy televisyon HD pwoblèm ou an.
Li kapab trè itil yo idantifye pinèz.
Si ou aktyèlman jis, liy-pa-liy, ale nan Kòd ou, epi konpare sa ki
aktyèlman pase ak sa w ap atann rive, Lè sa a, li a trè
difisil yo kapab manke pinèz ou.
OK.
>> Se konsa, semèn pase a David te fè sa a sekrè-kle bagay chifreman pou la
premye fwa, kote nou pa vle modpas jis dwe estoke sou nou
òdinatè nan kèk dosye tèks plenn, kote yon moun ka vin sou yo ak jis
louvri li leve, li li yo.
Idealman, yo ta dwe chiffres nan kèk fason.
Ak nan Pwoblèm Set 2, ou pral fè fas ak yon sèl metòd pou chifreman,
oswa, byen, de metòd, men yo menm yo pa tèlman gwo.
Si ou fè sa edisyon an HACKER, w ap tou yo pral fè fas ak
dechifre kèk bagay sa yo.
>> Se konsa, pwoblèm nan kounye a se, byen, menm si nou gen chifreman ki te pi fò
algorithm nan mond lan, si ou chwazi yon patikilyèman pòv modpas, Lè sa a, li
pa pral ede w anpil, depi moun ap toujou kapab figi li soti.
Menm si wè fisèl la chiffres ak li sanble yon dezòd nan fatra
sa vle di pa gen anyen yo, si yo toujou jis bezwen eseye yon modpas kèk
figi li soti, lè sa a ou yo pa twò ki an sekirite.
Se konsa, l ap gade yon videyo ki fè pwen sa.
>> [VIDEO lèktur]
>> -Kask, ou anraje.
Sa k ap pase sou?
Kisa ou ap fè bay pitit fi mwen an?
>> -Kite m prezante briyan nan jèn chirijyen plastik, Dr Phillip
Schlotkin, nen an pi gran moun travay nan tout la
linivè, ak Beverly Hills.
>> -Ou Samajeste.
>> -Nen travay?
Mwen pa konprann.
Li te te deja gen yon travay nen yo.
Se te yon dous sèz prezan.
>> -Non.
Li pa sa w panse.
Li nan anpil, anpil vin 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 t 'jwenn sa?
>> -Tout dwa.
Mwen pral di.
Pa gen, papa.
Non, ou pa dwe fèt la.
>> -You're dwat, mwen renmen anpil.
Mwen pral manke nen nouvo ou.
Men, mwen pa pral di l 'konbinezon an, pa gen pwoblèm sa.
>> -Trè byen.
Dr Schlotkin, fè pi mal ou.
>> -Mwen plezi.
>> [ZOUTI YO file]
>> -Non.
Rete tann.
Mwen pral di.
>> -Mwen te konnen li ta travay.
Tout dwa.
Ba li avè m '.
>> -Konbinezon a se youn.
>> -Yon.
>> -De.
>> -Twa.
>> -Kat.
>> -Senk.
>> -Se konsa, konbinezon an se youn, de, twa, kat, senk.
Sa a konbinezon an estipid Mwen janm tande nan lavi mwen.
Sa a ki kalite bagay yon moun sòt ta gen sou bagaj l 'yo.
>> -Mèsi, Samajeste.
>> -Ki sa ou te fè?
>> -Mwen etenn miray la.
>> -Pa gen ou pa t '.
Ou etenn fim nan tout antye.
>> -Mwen dwe te bourade bouton an mal.
>> -Bon, mete l 'tounen sou.
Mete fim nan tounen sou.
>> -Wi, mesye.
Wi, mesye.
>> -Ann al, Arnold.
Vini non, Gretchen.
Natirèlman, ou konnen mwen pral toujou gen pou voye bòdwo pou ou pou sa a.
>> [FEN VIDEO lèktur]
>> ROB bodèn: Tout dwat.
Se konsa, kounye a ke nou ap deja ap pale de sekirite nan kèk fason, bèl
afich fim ti kras, se konsa nan ki sot pase jou, pwoblèm sa yo ak NSA la
kontwole tout bagay.
Li kapab difisil a santi tankou ou gen kèk sòt de vi prive nan la
sou entènèt nan lemonn, byenke mwen pa t 'kapab di ou pi fò nan detay yo nan pris.
Se konsa, k ap deplase pi lwen pase prism, nou pa ap ale yo dwe pale sou sa, koulye a
panse osijè de laptop ou.
Se konsa, Moute bò isit, mwen vle chanje nan kont aktyèl m 'yo,
ak pengwen ti kras mwen.
Se konsa, mwen gen yon seri modpas, e ke sa modpas se tou sa mwen vle li yo dwe.
>> Men sonje ke sa m ap ouvri sesyon nan ak, se konsa login sa a
rapid, se kèk nan pwogram nan.
Li nan kèk pwogram ki te ekri pa kèk moun.
Se konsa, moun sa a, si yo patikilyèman move, yo te kapab
te di, tout dwa, Se konsa, si modpas la ke mwen antre nan ki egal a mwen
aktyèl modpas, oswa li a egal nan kèk modpas espesyal -
David se pè oubyen yon bagay -
Lè sa a, se pou yo pous
Se konsa, yon pwogramè move te kapab gen aksè a tout nan Macs ou, oswa
Fenèt yo, oswa nenpòt bagay.
>> Se konsa, ki se pa anpil nan yon enkyetid, depi, Mwen vle di, sa a se pwogram login
ki nan anbake ak OS X, dè santèn oswa dè milye de moun ki gen
revize Kòd sa a.
Se konsa, si, nan Kòd ou yon kote, ou di si fisèl sa a egal egal
David se pè, login, Lè sa a, yon moun nan pral fè, tankou, rete tann.
Sa a se pa dwat.
Sa a pa ta dwe isit la.
Se konsa, sa a, se youn nan fason nou resevwa bagay sa yo yo dwe kalite ki an sekirite.
>> Men, panse osijè de pwogram menm ke ou ekri.
Se pou nou di ou te ekri pwogram nan login.
Se konsa, pwogram sa a login ke ou te ekri, Se konsa, evidamman, ou se yon bon
pwogramè.
Ou pa ap ale nan mete nenpòt move si x egal egal David se pè
nan Kòd ou.
Men, pwogram sa a, sa ki fè ou sèvi ak konpile pwogram sa a?
Yon bagay tankou sonnen.
Se konsa, sa si moun nan ki te rive ekri sonnen espesyal gèn nan rezone
yon bagay tankou, si mwen konpile nan konekte pwogram nan, Lè sa a, antre kòd sa a
nan pwogram lan login ki di, si x egal egal David te pè?
Se konsa, pa byen ankò, men nou gen menm bagay la tou bay isit la, kote sonnen, byen,
dè milye, si se pa dè dizèn de milye nan moun, yo te gade sonnen yo, yo gen
gade liy li yo nan Kòd, li di: tout dwa, gen nan pa gen anyen move isit la.
Li evidan, pa gen yon sèl ap fè anyen sa a move.
>> Men, sa ki se rezone tèt li, tankou, E si mwen konpile sonnen?
E si mwen gen kèk du ki compiles rezone ke foure nan rezone
sa a Hack espesyal ki di, tout dwa, lè m 'konpile sonnen, lè sa a nan
ègzèkutabl mwen jwenn yo ta dwe espesyalman gade andedan nan pwogram nan login ak insert
sa a modpas, egal egal Dave se pè?
Se konsa, sonje ke du ou tèt li bezwen yo dwe konpile nan kèk pwen.
Se konsa, si sa ou chwazi yo konpile rezone ak, tèt li se move, Lè sa a, ou
ta ka vise tout la fason desann liy lan.
>> Se konsa, isit la, nou gen Ken Thompson ak Dennis Ritchie.
Se konsa, sa a se yon foto Iconiţă.
Dennis Ritchie se sou bò dwat la.
Li se yon gwo -
bèl anpil te ekri C. Se konsa, ou kapab di li mèsi pou klas sa a.
Ken Thomson nan sou bò gòch la.
De a yo fondamantalman ekri UNIX.
Oke, yo te gwo kontribye nan UNIX.
Te gen kèk lòt moun.
Se konsa, Ken Thompson, nan kèk pwen, li ranport prim lan Turing.
Apre sa, prim lan Turing, Mwen te toujou tande li referans fason sa a, li la a
Pri nobèl nan syans òdinatè.
>> Se konsa, nan prim lan Turing, li te gen yo bay diskou aksepte l 'yo.
Apre sa, li bay sa a diskou trè popilè kounye a, yo rele Refleksyon sou mete konfyans
Trust, nou te lye sou sit entènèt la kou.
Apre sa, nan diskou sa a, li te di, tout dwa, Se konsa, mwen te ekri UNIX, epi kounye a tout moun nan
ou moun yo lè l sèvi avèk UNIX.
Koulye a, sonje jodi a ke Linux se yon pitit dirèk nan UNIX.
OS X dirèkteman sèvi ak UNIX.
Windows fè pa konsa pou sa anpil, men yon anpil nan lide yo te pran nan UNIX.
>> Se konsa, li ale jiska etap nan e li di, tout dwa, mwen te ekri UNIX.
Apre sa, jis pou ou nèg konnen, mwen se kapab ale nan tout
yon sèl youn nan òdinatè ou.
Depi mwen mete youn nan sa yo espesyal si x egal egal Ken Thomson se pè,
Lè sa a, mwen pèmèt yo konekte.
Se konsa, moun, yo sanble, byen, how'd ou fè sa?
Nou te gade pwogram nan login e pa gen anyen nan la.
Li se tankou, byen, mwen modifye du a ou kapab konekte nan pwogram nan login
se konsa ke pwogram nan login kounye a ap gen ki x egal egal Ken Thompson
se pè.
>> Apre sa, yo di, byen, sa a, se pa vre.
Nou ap chèche a du a, ak nan du pa gen okenn liy nan
Kòd tankou sa.
Li se tankou, OK, men ki sa yo ou konpile du a ak?
Apre sa, yo panse, e li, tankou, byen, Mwen se youn nan moun ki te ban nou du a
w ap itilize konpile du a, se konsa w ap konpile yon du, se sa
tèt li se move, epi yo pral kraze pwogram nan login.
Se konsa, fondamantalman, nan ki pwen, gen nan pa gen okenn fason ou ta ka gade nan sous la
Kòd nan pwogram nan login yo wè sa ki mal.
Ou pa t 'kapab menm gade nan la sous Kòd la du a
yo wè sa ki mal.
>> Ou ta bezwen gade machin nan Kòd, binè aktyèl la nan la
konpile du yo wè, rete tann, sa yo liy nan Kòd pa ta dwe isit la.
Men, Ken Thompson pran l 'yon sèl etap plis, li di: byen, gen
pwogram espesyal sa yo ki aktyèlman ede w li binè a nan pwogram yo,
ak Se konsa, si yon moun te itilize ke pwogram nan li binè a, yo ta wè sa yo
liy nan kòd.
Li te modifye pwogram sa yo vle di, tout dwat, si w ap chèche a nan
du, pa montre sa a an patikilye seri binè.
>> Se konsa, Lè sa a, ou bezwen pran ke yon etap pli lwen ak fondamantalman, ki ta ka gen
pran plizyè nivo indirection, ak nan kèk pwen, pa gen yon la aktyèlman
yo pral tcheke.
Se konsa, moral la nan istwa a se, w ap pa yo pral ekri
Sonnen nan klas sa a.
W ap ale nan dwe lè l sèvi avèk k ap grenpe Sonnen yon anpil nan klas sa a.
Pou tout ou konnen, rezone se yon move pwogram ki sabote tout
pwogram sèl ou janm konpile.
Apre sa, yo kite ou sou sa trè menasan note, wè ou nan Mèkredi.
>> [Aplodisman]
>> Oratè 2: Nan CS50 nan pwochen an.
>> Oratè 3: pa ou oze di sa.
Ou ka fè sa.
Ou te fè sa anvan, ou kapab fè sa a jodi a, ou ka fè sa denmen.
Ou ve yo te fè sa pandan plizyè ane.
Jis ale kanpe ak fè sa.
Ou ka fè sa.
>> [MIZIK jwe]