>> [MIZIK jwe]
>> Doug Lloyd: Tout dwa, kidonk kite a pale sou lòd-liy agiman.
Se konsa, byen lwen tèlman nan kou nan bèl pi tout pwogram ou
te pwobableman gen te kòmanse tankou sa a men int anile prensipal la.
Nou te ap kolekte opinyon itilizatè si nou bezwen li
nan pwogram nou an, tankou nan Pwogram Mario, pou egzanp,
pa envit an-pwogram lan.
Nou pa t 'bezwen li modifye deklarasyon an nan prensipal yo,
paske olye pou andedan nan nou prensipal jis di, ou ka rele li yo ka resevwa int.
Ki jan gwo ou vle piramid la ta dwe ye?
Ou, ou kapab rele li jwenn float-- konbyen lajan chanjman
m 'bezwen rete pwodiksyon nan itilizatè a?
>> Gen yon lòt fason menm si, epi si nou vle itilizatè nou an
pou kapab bay done nan pwogram nou an
a ègzekutabl a pandan y ap olye pou pwogram nan ap kouri,
yon diferans sibtil men pafwa yon yon sèl trè itil,
nou bezwen yon nouvo fòm nan deklare prensipal la.
Nou pa ka sèvi ak int anile prensipal si nou vle kolekte lòt done an lòd-liy lan
lè itilizatè a kouri pwogram nan, kon sa lòd-liy agiman.
>> Kolekte sa yo lòd-liy agiman soti nan itilizatè a,
chanje deklarasyon ou a prensipal yo gade tankou sa a men int
prensipal yo, paren louvri, int arg, vigil, fisèl argv, parantèz kare,
ak Lè sa a louvri Curly atèl.
Se konsa, sa sa vle di deja?
Oke, nou ap pase nan de paramèt, oswa agiman, oswa entrain prensipal la.
Youn, yon nonb antye relatif rele arg, ak lòt la se ki sa?
Li nan yon etalaj de strings, dwa?
Nou wè ke notasyon bracket kare.
Li nan yon etalaj de strings.
Li pa yon fisèl endividyèl, li nan yon etalaj de strings.
Ak de agiman sa yo, arg ak argv, pèmèt ou konnen ki sa done itilizatè a
te bay la nan lòd-liy lan ak ki jan anpil bagay yo
bay nan lòd-liy.
Bagay Joli itil nan travay avèk yo.
>> Arg kanpe pou agiman konte, epi ou ta dwe konnen, nan chemen an,
ke ou ta ka rele arg tou sa ou vle li.
Ou ka rele argv tou sa ou te vle.
Men non jis konvansyonèl ke nou itilize pou them-- agiman konte,
ak jan nou pral wè nan yon dezyèm fwa, agiman vektè, argv.
Men, ou pa bezwen rele yo arg ak argv si ou pa vle,
men konvansyonèl, se sa ki nou fè.
>> Se konsa, de tout fason, arg, konte a agiman.
Se yon varyab nonb antye relatif-kalite yo ak pou, kòm ou ta ka atann, si nou gen de bagay
ke nou ap ale nan dwe jwenn konnen ki sa ki sa yo yo tape
ak konbyen lajan bagay la itilizatè tape, arg se
pral di nou konbyen lajan bagay itilizatè a tape.
Se konsa, li ba ou yon kantite lòd-liy agiman itilizatè
tape lè pwogram nan te egzekite.
Se konsa, si pwogram ou a se kouri dot koupe visye,
ak andedan nan visye ou pwogram fonksyon prensipal ou
gen deklarasyon int int prensipal arg a, fisèl argv parantèz kare, Lè sa a,
arg nan ka sa a se yon sèl.
Koulye a, remake nou pa fè sa konte konbyen bagay
itilizatè a tape apre non an pwogram lan.
Non a tèt li konte pwogram kòm yon agiman lòd-liy.
>> Se konsa, dot koupe visye, nan ka sa a, arg se youn.
Si itilizatè a tape koupe visye 1024 CS50 a lòd-liy lan, arg nan ka sa a
ta dwe twa.
E nou konnen sa a paske wout la ki divizyon ki genyen ant strings yo
se detekte se si gen yon espas, oswa yon tab,
oswa yon bagay tankou sa ant yo.
Se konsa, nenpòt kantite lajan nan espas blan, sa yo rele, ant valè yo tape lòd-liy
endike konbyen gen.
Se konsa, dot koupe espas visye 1024 espas CS50, arg, nan ka sa a, se twa.
>> Argv se agiman vektè a.
Vektè, nan chemen an, se jis yon lòt mo pou yon etalaj,
ak sa a se yon etalaj ki estoke strings.
Youn fisèl pou chak eleman, ki se strings yo ki itilizatè a aktyèlman
tape nan lòd-liy lan lè pwogram nan te egzekite.
Koulye a, kòm se ka a ak nenpòt etalaj, si ou
sonje soti nan diskisyon nou an nan ranje, eleman an premye nan argv
se toujou ale nan kapab jwenn a argv bracket kare zewo.
Sa a endèks nan premye nan etalaj la argv.
Se konsa, ki will-- ak nan reyalite, ki volonte toujou gen non an nan pwogram nan,
ap toujou ki chita nan argv bracket kare zewo.
>> Se eleman an dènye nan argv toujou jwenn a argv parantèz kare arg mwens yon sèl.
Ou wè poukisa?
Sonje kijan anpil eleman egziste nan etalaj sa a.
Bon, nou konnen li la that-- Nimewo arg nan eleman.
Si itilizatè a tape twa bagay sa yo nan lòd-liy lan, arg se twa.
Men, paske se nan C, lè nou ap travay ak ranje, chak eleman nan etalaj la,
ou pito endis yo nan etalaj la, kòmanse nan zewo.
Si nou gen twa eleman nan nou an etalaj, nou gen yon eleman nan argv zewo,
yon eleman nan argv yon sèl, ak yon eleman nan argv de.
Pa gen okenn eleman nan argv twa, ak yon etalaj de gwosè twa.
Se konsa, Se poutèt sa dènye a eleman nan argv ka toujou
ka jwenn nan kare argv arg parantèz mwens yon sèl.
>> Se konsa nou asime ègzekutra yo itilizatè pwogram lan visye kòm follows--
si yo tape nan lòd-liy dot nan koupe visye espas 1024 espas CS50,
ak pou kèlkeswa rezon nou te deja prepare pwogram nou an visye
konnen ak travay ak sa yo lòd-liy agiman.
Nou pa t 'te deja lè nou te travay sou li pou pwoblèm nan visye,
men kite a di nou te kounye a modifye li pou ke nou fè pwosesis
agiman yo lòd-liy nan kèk fason.
Nan ka sa a, argv zewo se dot koupe visye.
Ki sa ki nan youn argv?
Oke, li nan 1024, dwa?
Li se 1024, men isit la nan yon distinction-- vrèman enpòtan
ou sonje kalite a done nan argv?
>> Li estoke strings, dwa?
Men, li sanble 1024 se yon valè nonb antye relatif.
Sa a se yon vrèman enpòtan distenksyon, ak se aktyèlman
ale nan vin yon bagay ke ou ta ka rankontre nan pita pwoblèm.
Tout bagay nan argv se ki estoke kòm yon fisèl.
Se konsa, sa argv yon sèl la yo se nan fisèl yon sèl, zewo, de, kat,
ki fòme ak kat karaktè sa yo.
Li nan kòm si itilizatè a tape yon sèl, zewo, de, kat
kòm lèt moun oswa karaktè.
Li se pa nonb antye ki pè nan 1024, e konsa ou pa kapab dirèkteman
travay avèk li lè li di Int 1,000, oswa olye int x egal argv yon sèl mwens 24.
>> Entwitif, ou ta ka panse a ki kòm, OK, byen li nan 1,024 mwens 24,
se konsa x ki egal a 1,000.
Men, an reyalite, sa se pa ka a, paske se youn argv yon kòd.
Fisèl la 1024.
Koulye a, gen yon fonksyon ki ka itilize konvèti strings nonm antye relatif.
Mwen pa pral piye li pou ou kounye a, men mwen si ke Zamyla
yo pral kontan ba w enfòmasyon sou li nan solisyon an pou yon pwoblèm nan lavni.
Men, ou ka jwenn tou pwoblèm like-- eskiz
m ', fonksyon ki ta fè sa nan referans 50,
si ou ale nan gid-la referans ou ka jwenn yon fonksyon ki
pral fè konvèsyon sa a pou ou.
Men, ankò, nan solisyon an pou yon pwoblèm nan lavni,
Zamyla pral kontan di ou sa fonksyon
li se ke pral konvèti an fisèl 1024 nonb antye relatif nan 1024.
>> Tout dwa, se konsa k ap deplase sou.
Nou te kouvri zewo argv nou an, nou te kouvri argv yon sèl.
Ki sa ki nan argv de?
CS50.
Ke yon moun la pwobableman bèl klè, kifè.
Ki sa ki nan argv twa?
Oke ankò, nou pa vrèman konnen, dwa?
Nou gen yon etalaj de gwosè twa, sa a, se ki jan anpil eleman kap itilize li an
tape nan lòd-liy lan, Se konsa, si nou ale nan argv twa,
nou ap kounye a outrepase limit yo nan etalaj nou an.
Du a pral fè nou fè sa, gen nan pa gen pwoblèm entwisyon ak li,
men an tèm de sa k ap pase aktyèlman rive, nou pa vrèman konnen.
Sa depann de ki sa ki ki chita nan memwa a ki kote
argv twa ta ka espere yo dwe.
Se konsa, nou te kapab fini ap resevwa lwen enpo gratis.
Plis chans pase pa, patikilyèman lè w ap travay ak argv kòm opoze
nan nenpòt lòt etalaj sa a, se nan pwogram nou an,
nou ap pwobableman ale nan soufri yon segmentation fay. Se konsa, ankò,
dwe asire w pa depase limit yo nan ranje ou, patikilyèman argv,
bay wo degre li yo nan enpòtans nan pwogram ou yo.
>> Mwen se Doug Lloyd.
Sa a se CS50.