[Powered by Google Translate] DAVID Malan: Sa a se CS50, e sa se kòmansman an nan Semèn 1.
Ki sa nou te panse nou ta fè jodi a se pran yon gade tounen nan
yon bagay anpil nan ou te pwobableman gen te mache sot pase pou kèk
tan kounye a epi ta ka gade yon ti jan yo konnen yo.
Bagay sa a isit la, sa a nan kou se nan an -
ODYANS: Syans.
DAVID Malan: Syans sant.
Se konsa, sa a se aktyèlman youn nan òdinatè yo pi bonè
tounen soti nan ane 1940 yo.
Li te youn nan òdinatè yo an premye elektwo
sa yo ki te kapab nan patikilyèman lontan,
oto-pwolonje kalkil, ak ki sa nou wè aktyèlman nan
sant lan syans a se sèlman yon moso ti kras nan bagay sa a.
Ki sa nou te panse nou ta fè Lè sa a, se pran yon gade tounen nan yon videyo
ki te fèt kèk tan de sa, entwodwi sa a
bagay nan mond lan.
Epi ou pral wè soti nan mizik la ak vwa ki vre sa yo
yo te trè kontan fwa.
>> [Lèktur VIDEO]
-A triyonf nan konpetans matematik ak mekanik se sa a
gwo nouvo kalkilatris otomatik nan Harvard University.
Pwoblèm konplike nan matematik, mete nan an
machin nan fòm kode sou kasèt, yo avèk presizyon te rezoud nan yon
minit fraksyon nan tan yo mande pou moun
kalkil.
Ki fèt yo akselere tout fòm matematik ak syantifik
rechèch, jeyan sèvo a mekanik pral travay pou Etazini
Etazini Marin jouk nan fen lagè a.
>> DAVID Malan: Se konsa, sa ou pa ta ka konnen se ke li te nan
aparèy sa a menm ki yon tèm nou tout nou kounye a pran bèl anpil
pou yo akòde te envante, sa yo ki an yon ensèk.
Se konsa yonn nan enjenyè yo k ap travay nan sa a sou òdinatè
literalman te jwenn yon vè ti nan machin lan ki te lakòz
nan kèk kalkil kòrèk.
Ak kòm istwa an ale ke te vè kole sa a log
jounal isit la, tounen soti nan Sèptanm 9 an 1940 yon bagay-,
e konsa te fèt pou moun lemonn yo tèm "pinèz la".
Se konsa, koulye nou konsidere pinèz yo dwe nenpòt ki sòt de erè nan
pwogram yo, si se moun ki fè, oubyen, nan ka sa a, ensèk.
>> Se konsa, yon anons kèk, menm jan nou kontinye.
Se konsa, CS50 gen yon tradisyon nan ofrann manje midi nan kalite sou
pi vandredi pandan semès la, kote nou pran 30 a
40 elèv yo Dife ak glas nan Kare a pou aksidantèl
bavardaj, pale sou syans òdinatè,
pale sou lavni an.
Nou envite ansyen elèv ak zanmi nan men endistri chat moute
elèv yo kòm byen.
Vrèman nan direksyon yon fen nan fè sa ki nan yon klas jistis gwo
tout plis entim, omwen yon fwa a nan pandan ke pou
ansanbl elèv yo.
Se konsa, si ou ta renmen rantre nan nou sa a Vandredi, 1:15 PM, ale nan
CS50.net/lunch RSVP.
Epitou, n ap fè sa recurringly, se konsa pa enkyete w si ou pa
nan mitan 30 la an premye oswa konsa semèn sa a.
>> Se konsa, nòt sekretè.
Yon ti mo sou resous yo ki pral kounye a kòmanse yo te disponib
bay elèv yo nan klas la.
Se konsa, ke tèt ou an bezwen pa bezwen desann pandan konferans
scribbling desann tout bagay mwen di ak pou fè, sa nou fè
olye se bay ki soti nan pèsonèl la ansèyman yon
kanonyal seri nòt.
Se konsa, nou gen youn nan zanmi ansèyman nou an, Andre Sellergren,
ki chita desann chak semenn, revize videyo yo, ak Lè sa a,
ekri desann sa nou panse se yon jistis
autorité seri nòt.
Ak fanatik Andre a, tou, nan mete nòt anba snarky nan
anba a.
Se konsa, ou pral èspere ke jwi sa yo kòm yon liv referans pou
plezi, epi tou li, vini poze tan, kòm yon opòtinite yo revize
sa ki te pase nan konferans endividyèl.
Se konsa, sa yo yo lye nan paj la konferans.
>> Seri pwoblèm 0, pandan se tan, se deyò.
Ak an tèm de resous ki disponib ba ou -
solisyon an.
Milo te mennen premye a nan Vandredi.
Li te filme-li, mete sou entènèt nan Samdi.
Se konsa, reyalize, si ou se pa reyèlman asire w ki kote yo kòmanse,
pou sa a oswa nan lavni p-kouche, toujou vire premye a
solisyon oswa ladan l 'lan videyo.
Koup se nan pwogrè; nan cs50.net/section a se kote ou
ta dwe soumèt preferans ou an, si ou pa gen
deja, pa jodi a.
Paske seksyon pral kòmanse jou Dimanch sa a ap vini, Lendi,
ak Madi.
Nou fè seksyon jou sa yo, twa chak semèn nan nan
semès pou pati ki pi.
Ak nou menm tou nou prezante, ankò, tren diferan.
Se konsa, ou pral ap mande sou fòm sa a koup, si ou
pa t 'wè li deja, si ou se nan mitan moun mwens
konfòtab, pi konfòtab, oubyen yon kote nan ant.
Epi si w ap sòt de sou kloti a, jeneralman yon kote nan
ant se sa ki pi elèv yo fini tcheke.
Lè biwo kòmanse aswè a.
>> Se konsa, grate se kle san patipri ki ba, menm si li nan afè natirèl
nan kouri nan pinèz divès kalite, oswa li kapab ensèten ki di kòman
aplike yon bagay.
Se konsa, reyalize ke nou ap kòmanse lè biwo semèn sa a.
Yo pral omwens Annenberg Lendi, Madi, Mèkredi,
Jedi, apati de 8:00 PM jiska 11:00 PM pandan repo nan sèvo.
Classmen Upper ka jwenn nan, epi si ou te janm gen pwoblèm pou
nan pòt la, paske yo pral swiping, jis pale wout ou
nan epi eksplike w ap avèk CS50.
Tipikman 20 a 30 nan nou sou anplwaye a pral gen ede
ou yon sèl sou yon sèl.
>> Lè yo rive lide a se sa a: ou pral pote konpitè pòtatif ou,
ou pral gen plato ou a, n ap gen fil pouvwa siplemantè,
patikilyèman ansanm miray ranpa a nan nan sid Annenberg kote
gen nan anpil nan magazen elektrik.
Ak pwen an antre prensipal nan biwo Q & A èdtan se pou yo ale nan
cs50.net/discuss ak afiche
kesyon ou gen.
Ak ou mete lejann sou li ak pset 0 oswa pset 1, kèlkeswa sa semèn nan
ka rive yo dwe.
Lè sa a, ki sa nou pral fè se gen yon tab nan zanmi ansèyman
ak kou asistan yo, jeneralman 8 oswa 10 oswa konsa nan nou,
ale atravè tout, kenbe yon je vijilan sou tablo a, ak
arrache koupe kesyon reyèlman kòm byen vit ke nou kapab,
refere ou nan posts ki gen rapò ak si ou pa yo te jwenn sa yo
kè nou, referans sou entènèt, jan sa apwopriye.
Lè sa a, si gen pwoblèm, jan yo gen inevitableman
yo pral, oswa li jis fè sans pi plis yo chita yonn sou yon sèl,
travay nan pwoblèm ak yon moun.
>> Oswa ou jis antre nan lè biwo louvri reyèlman
ki bezwen attitude ki.
Ou pa vle yo ale nan fòm lan elektwonik, ou
reyèlman vle rankontre ak yon moun.
Kominike mele nou sa, epi sa ki pral rive se lè ou
kesyon ki te wè yon manm pèsonèl la, epi nou
detèmine, wi, sa a yo ta dwe voye nan youn nan 20 an oswa
30 manm ekip isit la lokalman, ou pral wè nan tèt kite sa a
ti kras Antre nan bouton an keu kòmanse flache sou cs50.net /
diskite sou.
Lè sa a ap di ou ke ou kounye a te envite, se konsa
pale, yo antre nan nat la.
Ak pa klike ki bouton, non ou pral Lè sa a parèt sou
yon iPad ki greeter nan CS50, youn nan chèf kou a, pral
dwe kenbe tou pre pòt kote yo antre nan Annenberg, ki moun ki pral Lè sa a,
wè kòm repwezante isit la, elèv yo ki gen kesyon sou
bò gòch la, manm yo anplwaye ki ap prezan sou bò dwat la.
Se avèk yon klike la agoch ​​epi adwat, navigatè entènèt ou a pral
kòmanse flache le pli vit ke, pou egzanp, Pwofesè McGonnagal
se pare vin wè ou nan yon tablo patikilye nan Annenberg.
>> Se konsa, nou te fè kèk nan ane sa a dènye.
Nou te demare lè biwo ak
re-aplike anpil nan lojisyèl an.
Se konsa, reyalize ke sa a pral chofe semèn sa a.
Men, tou reyalize tou, nan ane sot pase yo, kòm ou ta ka te tande
nan men zanmi, lè biwo te gen tout bon 50 a
150 elèv nan yon fwa.
Epitou, se tou senpleman pa posib pou nou okipe ki
efektivman, yonn sou yon sèl, nan tout aswè a.
Se konsa, sa n ap reyèlman ale nan eseye fè ane sa a se
tirer sou lefèt ke yon anpil nan kesyon ki gen
moun poze souvan ak ka souvan pi bon reponn
asenkron.
Se konsa, ou kapab klase nan panse atravè repons anplwaye a,
epi nou ka panse a kòd ou a, san yo pa chofe a
presyon nan nesesèman konbat
atravè li kòt a kòt.
Se konsa, nou estime ke apeprè yon twazyèm oswa mwatye nan kesyon yo
yo pral voye nan moun yo, epi nou ap eseye rache li kòm
anpil kòm yon mwatye oswa plis elektwonikman,
pandan lè biwo.
Epitou, n ap kontinye sèvi ak Diskite sou
nan tout semèn nan kòm byen.
>> Epi anfen, reyalize ke sa a kapab kou dwe pran pase / fail.
Se konsa, si ou se sou kloti a oswa jis panse ke ou ap reyèlman
pa si si sa a se mond la pou ou, oswa sa a se reyèlman
byen etranje nou la a, reyalize ke sa a se yon fason bèl bagay
nan pran moute kèk konfyans ak ki etap antre nan la
klas, tankou m 'te fè franchman, ane de sa.
Lè sa a, gen senk semèn a sòt de figi deyò pou
tèt ou si ou vle rete pase / fail, chanje nan yon lèt
klas, oswa tankou an.
E anjeneral ki sa pase / fail, mwen panse, pou elèv ki se
konnen, si w mete nan 10 ki èdtan, 20 èdtan, tou sa li
ka sou kèk pwoblèm, epi w ap frape tèt ou
kont miray la,
ak ou reyèlman jis pa ka kouri dèyè yon bagay desann, epi ou
gen bagay konsa anpil lòt sa ou bezwen fè, onètman, ki sa mwen
panse pase / fail se, li pran kwen nan koupe nan
sitiyasyon tankou sa.
Ki kote ou te pran bagay la 90% nan wout la.
Ou konnen, li nan pa byen pafè.
Men, ou te resevwa yon anpil soti nan li, Alòske.
Se konsa, konsidere pase / fail kòm ban nou ki
mantal modèl, petèt.
>> Tout dwa, se konsa semèn pase a nou plonje nan grafouyen, epi nou
te pale osijè de pwogramasyon sou yon nivo gaz la ase wo grafik.
Ak jodi a nou fè tranzisyon an nan yon lang
rele C, yon pi ba nivo lang programmation sou tèt
ki anpil lang modèn yo kounye a se bati, ki gen ladan kèk
nan yo menm ki n ap lè l sèvi avèk rive sou fen tèm nan.
Ak syntactically, ki sa yo gade tankou
se tout byen menm jan an.
Se konsa, kite la kòmanse fè tranzisyon sa a isit la.
Se konsa, sa a te yon pwogram semèn pase a sa ki te pi senp la
alo pwogram nan lemonn.
Li senpleman enprime nan mond lan ekran hello, ak yon
ti kras jarèt diskou ki t'ap soti nan chat la.
Byen, si nou kòmanse kounye a tradwi sa a nan yon lòt
lang, reyalize ke lide yo jodi a ak nan Mèkredi
yo se idantik, men sentaks la kòmanse chanje.
Se konsa, Lè nou konsidere ke semèn pase a nou te gen, lè vèt drapo klike, di
alo lemonn.
Jodi a nou pwal gen Int, prensipal yo, anile, printf,
retounen, ak kèk sentaks lòt nan la kòm byen.
Aparèy òtopedik Curly, ak parantèz, ak Site, ak etajèr.
Men, reyalize ke nwayo a nan lide a isit la se enprime a,
ak finalman lefèt ke prensipal se kounye a pral fè
synonyme ak kòmanse a nan yon pwogram nan.
Main a pwal kote drapo a vèt anvwaye bagay sa yo la.
>> Se konsa, kounye a kite a toumante apa kèk nan blòk yo bilding isit la
anvan nou plonje nan kèk egzanp konkrè.
Se konsa, nou rele nan semèn sa a yon deklarasyon dènye, annakò ak sa li jis
yon ansèyman an.
Èske sa a - nan ka sa a, salye lemonn.
Byen nan C, si nou gade nan jis dwat ki, sa a se kijan nou ap
pral kòmanse eksprime ke moso devinèt patikilye:
printf ("alo mond");.
Epi, koulye a nou pral toumante sa yo apa pi plis ak plis sou tan,
men mwen reyalize ke gen nan yon modèl isit la.
Se konsa, yon sèl, nou gen bagay sa yo rele printf, ki se
esansyèlman analoji te di a di.
Sa a ki sa li pral fè.
Printf, ak f isit la vle di "fòma".
Se konsa, li jis vle di ou ka insert
divès detay ayestetik.
Se konsa, unquote quote se nan konmansman an nan ki sa nou pwal
yo kòmanse rele yon kòd.
Yon ti mo, yon fraz, yon fraz.
Yon fil nan yon lang pwogramasyon lan se yon sekans nan zewo
oswa plis karaktè.
Se konsa, h-e-l-l-o, vigil, ak pou fè se,
unquote quote, yon kòd.
Epi, koulye a antislach n, yon ti kras syntactically enpè, men nou
deja defini ki semèn dènye kòm sa vle di ki sa?
Se jis nan yon liy nouvo.
Se jis yon fason pou pas nan òdinatè a ou vle a
ekivalan a frape Antre nan la, men ou pa fè sa
vle aktyèlman frape Antre ak Se poutèt sa dezòd moute tout la
fòma nan pwogram aktyèl ou yo.
Koulye a, parantèz yo fèmen sa a fil, louvri paren ak
fèmen paren, ak andedan nan ki se fisèl nou an.
Paske sa a, se paske nan C, ak lòt pwogram
lang, bagay sa yo tankou printf pran agiman, oswa pran
paramèt.
>> Se konsa, kòmanse panse kounye a nan sa a blòk diz koulè wouj violèt kòm yon
fonksyon, kòm yon metòd, kòm yon pwosedi yo.
Ou ka vrèman rele li tou sa ou vle pou kounye a, men
li nan sòt de yon pwogram Miniatures ki sèlman fè sa ki yon sèl
bagay, nan yon sèl liy, pa mwens.
Se konsa, printf tou se ki sa nou ap ale nan kòmanse rele yon
fonksyon, ak fonksyon fè yon bagay - nan ka sa a
simagri yon fisèl formate ekran an -
men fonksyon pran tou agiman oswa paramèt.
Ak pa agiman oswa paramèt, di ou mèsi, nou vle di
ki ka konpòtman yo dwe enfliyanse pa sa w fin pase nan
andedan nan parantèz yo.
Se konsa, nan ka sa a, bezwen printf yo te di sa yo dwe enprime yo, epi nou
jis pase nan, nan quotes doub isit la, fisèl la ke nou
aktyèlman vle enprime.
Ak virgules a sou fen anpil nan liy sa a se jis yon
istorik nwuizans kote nan fen ki pi liy nan kòd,
ou mete yon virgules fè super klè nan òdinatè a
ki liy sa a nan kòd fini isit la.
Koulye a, sa a se yon bon bagay paske kòm nou pral wè kòm pwogram jwenn plis
konplèks, virgules a pral fè super moun ki klè ak nou,
epi tou li sou òdinatè a, kote liy nan kòmansman kòd ak yon fen.
Reyalize ke kèk lang pa gen kèk
nan sa yo detay menm.
Ak an reyalite, nan JavaScript, ou pa toujou bezwen yon bagay
tankou virgules la.
Men, plis sou sa ap vini yo.
>> Se konsa, pasan.
Nou te gen yon bagay tankou sa a, anpil intuitivement, evidan, fè
yon bagay ankò, li ankò epi ankò.
Tankou mete yo sou chosèt, oubyen di hello, nan ka sa a.
Oke, kòmanse jodi a nan C, nou te ka eksprime sa a reyur
bloke kòm pandan y ap (vrè) printf ("alo mond").
Se konsa, remake nou ap kòmanse bati sou literalman devinèt la
pyès depi anvan.
Nou gen menm blòk la koulè wouj violèt, men li la anndan sa a
parantèz pou tout tan blòk, ak pi bon fason yo tradui ki
C se jan sa a.
Gen nan pa gen pou tout tan mo kle.
Ou pa ka jis tape f-o-r-e-v-e-r nan C.
Se konsa, analòg la pi pre a se pandan y ap.
>> Koulye a, pandan y ap (vrè) sanble yon ti kras estipid paske fè sa ki valè a
nan vre chanjman tout tan?
Prezimableman pa.
Se tankou li di pandan y ap yon sèl, pandan yo sou yo, pandan ke vrè.
Li nan tout menm bagay la, vre se toujou ka a.
Se konsa, sa a riban ki aktyèlman pwovoke ki kalite riban?
Jis yon riban enfini, dwa.
Yon riban pou tout tan oswa kòm nou te rele li semèn pase a,
jis yon riban enfini.
Se konsa, pafwa sa a, se move.
Pafwa sa a, se yon ensèk, pafwa sa a, se poukisa ou jwenn
boul la plaj bondi oswa sabliye oswa tankou an.
Men, nan ka sa a, nou fè espre, pou kèlkeswa
rezon ki fè, te vle enprime menm bagay la ankò
ak ankò epi ankò.
Oswa nan ka a nan tankou yon gade, ou vle fè
yon bagay ankò, li ankò epi ankò.
Se konsa, pasan enfini ta ka fè sans.
Men ki jan nan C nou ta ka tradui pou tout tan kòd.
>> Se konsa, kounye a yon sèl sa a se yon ti kras pi plis espesifik.
Nou te repete 10 fwa deklarasyon sa a.
Se konsa, pandan (vre) pa byen travay la, paske vrè se
toujou vrè.
Se konsa, si nou olye gade nan vèsyon an C, kounye a sentaks la vin yon
ti kras pi plis skre.
Men, yo dwe onèt yon fwa ou kòmanse wè sa, li tout vin
trè abitye byen vit.
Se konsa, sa a se sa yo rele yon pou riban.
A pou riban ki pral di òdinatè a fè yon bagay
ankò, li ankò e ankò pou osi lontan ke
bagay sa yo yo se verite.
Kounye a ki sa nou vle di pa sa?
Oke, gen nan twa pati nan yon riban pou yo, epi nou ap ale nan
tounen vin jwenn sa a nan yon kontèks nan aktyèl
egzanp nan yon ti moman.
Se konsa, pa enkyete w si li pa byen koule nan tout yon fwa nan.
Men, int mwen = 0 a se, istwa long kout, li di, ban m 'yon
varyab ki nan nonb antye relatif nan kalite, se konsa, ban m 'yon nimewo
rele mwen, ak inisyalize li a 0.
Sa a se, ban m 'tankou yon x aljebrik varyab ak
inisyalize li a 0.
Men, nan ka sa a nou te rele li mwen.
Lè sa a, nan mitan an, li di mwen se mwens pase 10.
Sa se di òdinatè a bagay sa yo lontan
kòm mwen se mwens pase 10.
E evidameman li kòmanse mwens pase 10 paske
li kòmanse nan 0.
Lè sa a, anfen, ou ka petèt devine kisa mwen + + vle di.
Li se yon ti kras nan sentaks ki jis vle di kantite mwen.
Se konsa, ajoute 1 a mwen menm, ankò, li ankò epi ankò.
>> Se konsa, jan nou pral wè sa a riban, sa a sentaks, olye, aplike
jisteman menm bagay la sa, franchman, nan reyur te jis pou
pi fasil yo eksprime.
Repete 10, epi w ap fè.
Nan C, ak nan pifò lang programmation, nou dwe fè yon
ti kras pi plis édikatif pou òdinatè a ak aktyèlman
presize yon bagay tankou sa a.
Men, nou pral tounen vin jwenn sa a ak sentaks lòt.
>> Ki sa ki sou varyab?
Nan reyur nou te gen yon bagay tankou sa yo blòk zoranj,
kote mwen te kapab deklare yon varyab.
Se pou nou abitrèman rele li vann san preskripsyon.
Se pou nou inisyalize li nan 0, epi Lè sa a,
kite a pou tout tan fè yon bagay.
Nan ka sa a nan grate m ap di kontwa a, se konsa a
chat la pral gen yon jarèt diskou ti kras ki nan pale
nimewo a ki nan sa a nan varyab.
Lè sa a, nou gen kontwa chanjman nan 1.
Se konsa, tout bagay sa yo vlope andedan yon lock pou tout tan.
Se konsa, nou deja kounye a gen blòk yo bilding nan C ak
ki tradwi sa a.
>> Youn nan fason nou ka fè sa sa a.
Ban m 'yon nonb antye relatif, rele li vann san preskripsyon.
Inisyalize li nan 0
nan liy nan premye a.
Pandan ke (vre), se konsa mwen vòlè lide sa a ki soti nan jis moman yon
de sa, ale pi devan epi fè bagay sa a.
Ekri an lèt detache soti kontwa an, ak Lè sa a, kantite kontwa an,
ankò, epi ankò, epi ankò.
Oswa ankò, + + jis vle di ajoute 1 a yon bagay.
Men, gen yon moso nouvo sou sentaks isit la.
Kisa ki sote soti kòm pa egzanp nan mitan anvan nou yo?
Wi, sa a d%.
Se konsa, ou ka petèt dégager ki sa sa a ap fè, franchman, ki baze
sou sa ki blòk la reyur ap fè.
Men, ankò nan C, nou jis gen yo dwe yon ti kras plis an patikilye
lè li rive eksprime tèt nou.
>> Se konsa, printf ("% d \ n").
Byen pi fò nan ke nou ka jete kòm yo konnen yo.
Quotes yo jis vle di li nan yon fisèl, antislach n
se jis yon liy nouvo.
Se konsa, bagay la sèlman nouvo isit la se d%.
Ak tou sa ki se yon kontneur.
D% ki pral fè yon don yon nimewo desimal.
Ak òdinatè% vle di d, mete yon nonb desimal isit la.
Oke, ki nimewo ou vle mete ladan l '?
Bon, kòm ou ka petèt dégager, apre yo fin vigil la nou di
kontwa, sa se non an nan yon varyab ke nou te deklare oubyen
te kreye yon liy koup pi bonè.
Se konsa, sa a se jis fason C a nan rakorde nan yon varyab nan yon
fisèl dynamique.
Paske pa kontras, si mwen te olye fè yon bagay tankou
sa a, printf ("vann san preskripsyon"), sa ki ta sa a
pwogram olye fè sa, prezimableman?
Li pral literalman enprime "vann san preskripsyon".
Ki se pa efè a ke mwen vle.
Mwen bezwen ranplase nan kèk valè nimerik.
Se konsa, nou pral wè ki fonksyon Lè sa a,, tankou printf, ka pran pa
sèlman jis agiman sèl, tankou
"Alo mond".
Yo ka pran vigil unquote quote, ak Lè sa a, kèk varyab
ki pral jwenn konekte nan, menm jan nou pral wè fisèl la anvan
via sa yo placeholders siy%.
>> Oke sa ki sou ekspresyon Boolean?
Ekspresyon Boolean te valè sa yo, vrè oswa fo.
Wi oswa Non.
1 oswa 0.
Limen oubyen etenn.
Se konsa, nan reyur yo gade tankou sa a, ak avi ke nan
blòk anba isit la se aktyèlman konjonksyon a
nan de blòk ki pi piti.
Se konsa, mwen kalite trennen ak tonbe twa moso devinèt
ansanm fè ki moso devinèt ankò gen pou m '
te kapab transmèt lide ki fè konnen mwen vle x li dwe mwens pase y ak
y li dwe mwens pase z.
Se konsa, mwen ka tradui sa yo de liy apa jan sa a.
Ka yon sèl nan tèt dwe trè trivyalman tradui C,
ak jis x <y.
Petèt ak kèk parantèz pou mezire bon.
Lè sa a, nan C, ou pa ekri ak fè yon don a
konjonksyon nan yon bagay.
Ou olye pou ekri &&.
E kòm nou pral evantyèlman wè, yon sèl comercial k ap pase nan
vle di yon bagay diferan.
Se konsa, && jis vle di lide nan AK.
>> Se konsa, ankò, menm si sa a kòmanse gade olye konplèks,
youn nan bi sa yo nan entwodwi grafouyen, san konte
jis gen sòt de yon plezi sou-ranp kote ou ka fè
yon bagay ki trè grafik, ak anime, ak
partajabl ak renmen an, se tou tansmèt lide ki fè konnen
tout nan ide sa nou kòmanse plonje nan jodi a ak pati
yo te incorporée nan menm senp ki
koòdone depi jou yon sèl.
Ki sa ki sou yon sèl sa a isit la?
>> Se konsa, kondisyon yo.
Se konsa, blòk la reyur sou bò gòch la gen sanble
yon ti kras plis konplèks.
Men, li la sèlman kèk trenen ak
jete moso yo konnen yo.
Si x se mwens pase y, di nou fè sa.
Lòt Bagay si x se pi gran pase y, di nou fè sa.
Lòt Bagay, nou ka lojikman asime li nan enferans ki
yo dwe egal-ego.
Se konsa, di yo ke yo egal.
Koulye a, nan C sou bò dwat, menm bagay la egzak.
Ak avi ke aparèy òtopedik yo Curly yo ale nan gen yon
karakteristik nan C ak lòt lang ki fè sa a sòt
nan ANKAPSILASYON.
Jis tankou nan si blòk se bagay sa a jòn ki nan sòt de
arachman blòk wouj fonse a andedan nan li.
Menm jan an yo se sa yo aparèy òtopedik -
sa yo aparèy òtopedik Curly -
vle di ke yo sorselri moute lide sa a menm nan globale youn oswa plis
liy nan kòd ki ap utilize andedan nan yo.
Se konsa, sou bò men dwat-ou isit la, si x mwens pase y, printf
("X se mwens pase y").
Lòt Bagay si x se pi gran pase y, enprime soti menm bagay la.
Lòt Bagay enprime soti yo ke yo egal.
>> Se konsa, nan kout, gen yon kat san patipri dirèk oswa tradiksyon
nan lang lan nou te wè konsa byen lwen, ki gen ladan pou kèk
nan karakteristik yo ki pi plis sofistike.
Se konsa, ou pa ta ka lè l sèvi avèk sa a pou pwojè ou a, oswa ka pa
dwe lè l sèvi avèk sa a pou pwojè ou semèn sa a.
Men, nou te bagay sa yo rele ranje nan C. Nan grafouyen,
yo ap rele lis.
Ak nou te wè sa yo ki avè Fruitcraft rp a semèn pase.
Ti nèg la ble ki te ap mache otou, davwa ke yo pran
seriz ak zoranj ak renmen an.
Byen nan grafouyen, ki te aplike avèk sa a zoranj
bloke ki gen mo; nan ka sa a, nou 're literalman
ajoute "zoranj" nan yon
varyab yo rele envantè.
Se konsa, nan C, sa a sentaks ki pral yo ka resevwa yon ti kras pi plis skre.
Epitou, n ap tounen vin jwenn semèn sa a pwochen ak fè plis
bagay enteresan nan mond lan nan chifreman ak li.
Men, nan pati anba a isit la, liy sa yo de esansyèlman
tradui sa n ap fè nan yon sèl reyur bloke moute a.
Men, plis sou sa ap vini yo.
>> Se konsa, mete l ansanm, isit la se yon pwogram nan C. Se konsa, nan kite l '
byen vit toumante apa kèk nan moso yo nan sentaks isit la, men
Lè sa a, kite a aktyèlman kòmanse ekri kèk kòd, familyarize
ou ak kèk nan zouti sa yo nou pral lè l sèvi avèk, ak wè si nou
kapab bati sou kounye a kèk nan eleman debaz sa yo debaz soti nan
semèn pase a, kounye a syntactically nan C. Se konsa, nan tèt la isit la, sa a
se petèt youn nan pwogram ki ou te kapab pi raz
ekri nan pifò nenpòt lang programmation.
Men, sòt li a nan gen siyifikasyon espesyal paske li nan la
kanonyal pwogram ke nenpòt syantis òdinatè ekri lè
anseye yon moun yon lang programmation -
yon pwogram mond hello.
>> Se konsa, nan tèt la anpil, nou wè sa a nosyon nan # gen ladan yo
ak lè sa a, nan parantèz Incline, stdio.h.
Nou pral tounen vin jwenn ke, men vrèman ki sa sa
vle di se ke gen yon dosye nan mond sa a yo rele estanda
Mwen / O, stdio dot h, e ke se jis yon dosye tèks ki
yon moun te ekri ane de sa.
Ak andedan nan ki dosye tèks tout yon seri de
fonksyon, oswa metòd, oswa pwosedi, ke yon lòt moun
te ekri ke nou se benefisyè yo nan paske nou
kapab kounye a itilize kòd moun sa a.
Fonksyon yo li oswa li te ekri.
Nan ka sa a, printf se pa yon bagay ke mwen te ekri, li nan
pa yon bagay ke CS50 te ekri.
Li nan yon bagay ke yon moun te ekri ane de sa, li mete nan yon
dosye yo rele stdio.h ak lè sa a, kòm yon sou kote, mete
yon lòt pati nan fonksyon an nan yon lòt dosye.
Men, nou pral jwenn la.
>> Se konsa, gen ladan yo # se jis fason nou nan li di, nan
C, ban m 'gen aksè nan fonksyon ke yon lòt moun te ekri.
Ak nan ka sa a mwen pran swen paske mwen vle printf.
Koulye a, nou jwenn int prensipal (san valè).
Se konsa, sa a se youn nan bagay sa yo, franchman, ki nan jou 0,
bèl anpil mwen te kalite soti zòn, paske li nan jis
pa enteresan
entelektyèlman, kèk nan sentaks la.
Men, pou kounye a konnen ke fonksyon, ki te rekonèt kòm
pwosedi, oswa metòd yo, jeneralman pwodwi kèk valè.
Yo fè yon bagay.
Yo vini ak yon repons.
Yo pwodwi pwodiksyon.
Se konsa, int akote prensipal se jis fason steno nou an li di
ke sa a fonksyon, pwosedi sa a, se evantyèlman pral
ba ou tounen yon nimewo.
Epi poukisa se sa ki, nou pral tounen vin jwenn.
Main se jis estanda a mond default pou default a
fonksyon ki nan pwal jwenn egzekite nan yon pwogram C lè
ou kouri li.
Anile jis vle di bagay sa a, prensipal yo, pa pran
agiman, nan ka sa a.
Se konsa, mwen ke yo te super eksplisit.
Gen nan pa gen strings nan la, gen nan pa gen vigil.
Anile vle di pa gen agiman prensipal la.
>> Koulye a, alafen, Erezman, de dènye liy ki yo abitye.
Anndan aparèy òtopedik yo Curly nou gen yon printf
e nou gen yon retou.
Epi voye li retounen nan se kalite malere ki nou bezwen
mete l 'la, paske nan ka sa a li pa ap fè tout sa ki
anpil nan enterè yo.
Men, nan yon pwogram òdinatè, lè yon fonksyon retounen 0,
sa vle di tout bagay byen.
Pa gen anyen ale mal.
Nan kontras, si yon fonksyon retounen 1, oswa 1 negatif, oswa
negatif 1.337, oswa kèk nimewo o aza tankou sa yo, ki
jeneralman vle di ke yon erè aktyèlman ki fèt.
Se konsa, si w ap sou Mac ou a oswa PC ou, si ou te janm wè
kèk mesaj annwiyeu paske òdinatè w lan te fè aksidan oswa
jele, ak gen yon mesaj erè skre,
ak Lè sa a, kèk kòd, tankou sistèm kòd
1,2,3,4, gen kèk nimewo,
byen, anjeneral se yon detay nesesè di
pi fò nan nou moun, men sa a se sa ki kèk fonksyon oswa kèk
pwogram gen aktyèlman tounen, yon valè ki pa zewo.
Ak benefis nan sa a se ke 0 vle di tout kòm byen, ak
Lè sa a, ou esansyèlman gen yon nonb infini de bagay ki
ka ale mal.
Ki se poukisa yo te chwazi 0 pou bon ak yon valè ki pa zewo pou
move, menm jan nou va byento wè.
>> Se konsa, kite a ale pi devan epi ekri sa a.
Se konsa, sonje jou sa a nan lòt mwen itilize Mac mwen an louvri moute yon
fenèt tèminal, ak Lè sa a, mwen louvri moute pwogram tèks, tankou
TextEdit, epi mwen te kòmanse ekri kèk kòd.
Oke sa a, se amann.
Men, eksperyans ou a pral nan kapab diferan sou yon Mac, oswa
sou yon òdinatè Solarin, yon òdinatè Linux, kèlkeswa sa opere
sistèm ou rive yo dwe lè l sèvi avèk.
Se konsa, nan kou a, ki sa nou olye yo sèvi ak se yon bagay
rele Aparèy la CS50.
Se konsa, Aparèy nan CS50 se yon moso nan lojisyèl Downloadable
ki pèmèt ou kouri yon sistèm opere ki rele Linux,
espesyalman fedora Linux, sou pwòp Mac ou a oswa PC.
Epi ou fè sa pa Téléchargez yon bagay yo rele yon ipèrvizeur.
Se konsa, tout bagay sa yo pral dokimante nan seri pwoblèm 1.
Epi ou pral dwe gide nan direksyon sa ou bezwen telechaje.
Men, rezilta nan fen, si ou gen yon Mac oswa PC, se ou
telechaje kèk lojisyèl gratis.
Ou Lè sa a, download Aparèy la CS50, epi ou di ke
gratis lojisyèl - ipèrvizeur la -
nan kouri aparèy la CS50 nan yon fenèt sou òdinatè ou.
Ak sa k ap pase sa a.
>> Mwen te kounye a, remake isit la, sa ki sanble se yon Desktop
anviwònman.
Ak kite m 'aktyèlman retresi fenèt sa a sèl.
Se konsa, sa a kounye a se Mac mwen an, ki gen yon fenèt ti kras isit la, ak andedan
nan fenèt sa a k ap pase yon konplètman
diferan opere sistèm.
Vreman vre gen nan sa a meni kòmanse desann isit la, okoumansman de
Fenèt yo, ki gen yon pakèt antye nan meni sub, ki gen ladan
yon ap mennen nan manyèl la CS50, Dropbox, e tankou nan.
Ak sa ki anviwonman sa a kounye a se yon anviwònman estanda
ki tout moun nan nou kapab kounye a itilize, se konsa ke pa gen pwoblèm sa ou
òdinatè se, sa ou te enstale sou li, ki sa ki vèsyon
nan Mac OS oswa Windows w ap kouri, nou tout nou genyen kounye a nan
menm anviwònman an.
Epi, koulye a nan anviwonman sa a nou kapab kòmanse ekri kèk kòd.
>> Se konsa, mwen pral ale pi devan epi louvri yon pwogram yo rele jdi.
Sa a se konparab ak notepad.exe, oswa
TextEdit sou yon Mac.
Ak sa a se sèlman yon pwogram super senp koreksyon tèks
ki sanble tankou sa a nan ti koutje sou premye.
Koulye a, nan tèt la anpil, mwen gen yon palèt blan, nan pati anba a mwen
gen fenèt sa a nwa ki di jharvard @ aparèy.
Epi sa a, paske kont lan itilizatè ke nou pre-te kreye
pou tout moun ki rele Jan Harvard.
Li gen yon katab kote tout nan dosye l 'yo ale nan ale a, epi
isit la nan kote nou kapab kòmanse ekri kèk kòd.
Se konsa, kite m 'ale pi devan isit la ak rale nan jis yon ti jan, epi mwen
pral fè # enkli , int prensipal (san valè), ak
Lè sa a, mwen pral fè printf ("alo mond")
; Retounen 0.
Koulye a, sa a se tout byen nwa ak blan.
>> Kite m 'ale pi devan epi fè yon bagay yo anseye jdi sa mwen
aktyèlman fè.
Kite m 'ale pou konsève pou Kòm.
Mwen pral chwazi nan bò men gòch isit la jharvard.
Se konsa, ankò, menm si ou pa janm te itilize Linux anvan, franchman
jou sa yo, yo tout yo devolu nan esansyèlman la
menm di ki kalite koòdone -
Mac OS, Windows, ak Linux.
Se konsa, mwen te chwazi folder lakay jharvard a isit la.
Apre sa, mwen pral pou konsève pou sa a ranpli kòm hello.c.
Se konsa, nan tèt la anpil, mwen tape hello.c; nonmen yon C
pwogram avèk yo. ekstansyon an c se
sa ki nan pratik komen.
Apre sa, mwen frape Save.
Epi, koulye a sa ki nan bon se ke mwen te efektivman anseye jdi,
ke sa a se yon pwogram C.
Remake se tèks nwa ak blan mwen an kounye a koulè kode, oswa
sentaks evidans, ki jis trase atansyon mwen an nan
diferan pati semantik nan pwogram nan.
Nan tèt la kite la, tankou pwogram mwen ka jwenn plis konplèks, mwen
pral gen yon rezime de tout bagay sa yo mwen te ekri.
Se konsa, sa a, se l 'kanpe.
Se konsa, kite m 'koulye a rale deyò epi yo desann nan fenèt sa a tèminal.
>> Se konsa, sa a se petèt ki nouvo nan anpil moun.
Si ou pa janm te itilize yon anviwònman liy lòd, ou te pa janm
itilize DOS, oswa ou pa janm te itilize Linux, oswa ou pa janm te louvri
Mac OS ou tèminal fenèt, gen nan yon anpil nan bagay ou
ta ka fè ak grafik la, tankou montre, epi klike, ak
trenen, ak jete, ak renmen an, men anjeneral -
sètènman nan mond lan nan syans òdinatè -
lè l sèvi avèk yon liy lòd, kote ou pa gen sourit ou
anjeneral, ou gen sèlman klavye ou a, se aktyèlman yon anpil
plis pouvwa anpil pase koòdone, yon fwa ou jwenn adapte nan
kòmandman divès kalite.
Epi ou sòt de gratis tèt ou nan ki bezwen nan pwen, epi klike
nan tout bagay.
Se konsa, nan jdi nou pral klase nan gen pi bon nan tou de mond.
Nou ka trennen ak gout tèks, nou ka wè l '
nice ak koulè kode.
Men, lè li rive tan kouri pwogram nou an, nou pral pafwa
jis itilize fenèt sa a ti isit la.
>> Se konsa, mwen pral ale pi devan epi fè sa.
Nan fennèt la anba nwa ak blan, mwen pral ale pi devan
epi ekri sonnen.
Ak sonnen se non an nan yon du.
Li se yon pwogram ki konvèti kòd sous mwen
nan, se konsa, objè kòd.
0s ak 1, ke nou te wè yon ti tan semèn pase a.
Sonje soti nan semèn dènye, nou te pwomèt ke nou te ale nan
ale nan yon bagay tankou sa a - nou bezwen yo dwe
yon bagay tankou sa a -
ak sa a se sètènman pa yon bagay ke yon moun k ap pase
fè manyèlman.
Se konsa, olye nou pral sèvi ak yon pwogram, e ke pwogram nan
se ka sa a yo rele sonnen.
Ak non pwogram mwen an se hello.c.
Se konsa, yo nan lòd yo konpile hello.c soti nan kòd sous nan
kòd objè, oswa 0s ak 1S, li ta dwe sifi jis fè
sa a ak frape Mete.
>> Oke, pa gen anyen sanble yo te rive.
Men, mwen konnen kounye a, oswa nan semèn pase a, ki default non an nan
se yon pwogram nan, lè ekri nan C, tankou moun fou yo rele a.out.
Pifò entérésan non ou ta ka vini ak.
A se lèt la premye nan alfabè a, soti se sa ki te
outputted, men se la pou li.
Sa a se pwogram m 'yo, e kounye a, dot koupe, menm jan nou pral wè, se
aktyèlman jis yon sòt de karakteristik sekirite, paske
a.out se yon pwogram mwen te ekri.
Li pa t 'vini ak òdinatè mwen, li nan
pa nan Dosye Pwogram.
Li pa nan dosye aplikasyon Mac OS a.
Mwen bezwen yo dwe Super eksplisit nan òdinatè a, epi di
pwogram sa a, a.out, se nan dosye aktyèl la, nan
aktyèl anyè.
Ak nan fason ou reprezante sa a nan yon anviwònman ki tankou sa a
se dot reprezante kèlkeswa sa folder ou se kounye a pous
Se konsa,. / Jis vle di a.out kouri
nan dosye aktyèl la.
Apre sa, mwen kouri sa a ak Antre, ak vwala, pwogram trè premye m 'yo.
>> Koulye a, kite m 'pran yon etap tounen.
Fenèt sa a se yon ti kras piti, ak reyalize ke anba a
rete nan aparèy la isit la se yon lòt icon.
Youn nan se Chrome, ki ta dwe byen yo konnen yo, jis yon sit entènèt
navigatè andedan nan aparèy la.
Lè sa a icon nwa ak blan se jis yon
pi gwo tèminal fenèt.
Se konsa, si li vin yon annwiyeu ti sòt de gen jis
sa a ti tranch ti kras nan yon fenèt ak ki kominike
ak pwogram, nou ka olye fè sa.
Epi, koulye a kite m 'kòmanse sezisman yon kèk byento
yo dwe kòmandman yo konnen yo.
ls.
Se konsa, ls se yo lòd, ki pou yo liste.
Se konsa, nan yon eksplwatasyon Mac oswa Windows, ou ta jeneralman double-klike sou yon
folder ak lè sa a, vwala, ou wè tout nan dosye sa yo divès kalite
ak dosye.
Nan yon anviwònman liy lòd, kote ou ka sèlman tape
kòmandman oswa tèks, ls ki ekivalan a.
Se konsa, montre m sa ki nan anyè sa a.
>> Koulye a, gen nan yon pakèt moun sou bagay isit la ki nan tou de yon ti kras
familye yo ak lòt yon abitye ti kras.
Men, avi ki jis tankou fenèt ak Mac OS, jharvard
gen yon katab Desktop.
Se konsa, nenpòt ikon yo ki nan Desktop mwen rive
yo dwe nan ki folder.
Genyen nan yon folder downloads, bagay ki
Chrome ta ka mete ladan l '.
Dropbox.
Se konsa, aparèy la vini ak bati-an sipò pou Dropbox
se konsa ke plis pase semès la, ou ka senkronizasyon ak Dropbox ou
kont pou ke tout pwogram ou yo apiye moute.
Yo ap aksesib sou òdinatè lòt ou.
Si anyen janm ale mal ak aparèy la, ou kapab
trè fasil retabli de Dropbox.
Se konsa, ke folder nan gen pou sa.
Genyen de dosye ke mwen te fè - hello.c
ak a.out.
Lè sa a, sou bò dwat la gen nan kèk dosye lòt ke nou pral
jwenn yo nan direksyon nan fen semès la, ak entènèt
pwogramasyon yo.
Se konsa, lè m 'fè. /, A.out, Antre, ki nan li di ale
nan anyè a mwen nan, anyè a ye kounye a, epi kouri nan
pwogram yo rele a.out ki la a.
>> Tout dwa, pou ki nan bèl ak bon, men li pa tout sa ki
irezistib yo ekri yon pwogram yo rele ede a.out.
Se konsa, nou ka aktyèlman fè sa yon ti jan diferan.
Se konsa, olye pou yo jis rezone kouri, hello.c, kite la ajoute
ki sa yo rele yon agiman liy lòd.
Se konsa, yon agiman liy lòd, oswa yon switch nan ka sa a, se jis
yon lòt mo oubyen yon fraz ki ou tape nan yon èd memwa apre
pwogram lan ou vle kouri.
Se konsa, nan ka sa a, rezone se pwogram lan mwen vle kouri,-o
pwodiksyon vle di yon dosye ki nan pa rele a.out.
Sòti yon dosye rele hello, ak pou fè sa a konpile nan
dènye mo sou liy lan, hello.c.
Se konsa, nan kout, sa a se yon amelyorasyon trè majinal, annakò ak sa
olye pou yo gen sa a a.out dosye estipid nonmen non li,
Mwen kapab fè kounye a sonnen-o hello, Lè sa a, hello.c, ak
Lè sa a, frape Mete.
Pa gen anyen sanble yo rive, men ankò anpil renmen ak 0 - lè
pa gen anyen sanble yo rive sa vle di pa gen anyen mal ki te pase -
kidonk kite a fè ls kounye a, Antre, ak tout bon mwen kounye a
gen yon pwogram hello.
Se konsa, si mwen tape alo kounye a, bay lòd pa jwenn.
OK,. /.
Se konsa, egzakteman dwat.
Se konsa, paske pwogram sa a mwen te ekri, epi li pa t 'vini ak
òdinatè a,. / hello, Antre, vle di
Mwen kounye a kouri hello.
>> Se konsa, sa a, se li a.
Kounye a ki sa n ap pètèt jwenn yo pi plis ak plis liy lòd
agiman ki pèmèt nou fè plis, men sèlman pou moun pou
moun sa a ta kapab fin vye granmoun chapo, kite m 'ale aktyèlman nan yon
anyè isit la ak jis ba ou yon kol nan konbyen lòt bagay nou
t 'ka ale sou mete ann aplikasyon alo lemonn.
Kite m 'ale nan isit la, ak mwen pral louvri li.
Se konsa, aktyèlman, mwen pral eksplike sa m ap fè, se konsa
sa a se itil.
Kite m 'tounen moute.
>> Se konsa, mwen te toujou ap fè sa a yon tan long.
Se konsa, avi sou sou bò dwat la gen yon koup la
repèrtwar ki etranj yo te rele source1m ak source1w.
Sa a se jis konvansyon enbesil nou itilize yo.
Sous jis vle di kòd sous, 1 vle di sa a se semèn yon sèl, ak
m vle di li nan Lendi, ak w vle di li nan Mèkredi.
Se konsa, pa gen anyen skre la.
Se jis nan notasyon steno.
Bagay sa yo ble yo se dosye, ki te rekonèt kòm
repèrtwar.
Mwen vle ale nan ki folder kounye a, ak sou yon òdinatè nòmal
Mwen te kapab jis double-klike sou yon icon folder ak
gen nan tout dosye m 'yo.
Men, nan yon anviwònman liy lòd, mwen pa ka byen fè
sa, Se konsa, olye, mwen gen chanje repèrtwar manyèlman.
Se konsa, si mwen tape cd ak Lè sa a, source1m, Antre, avi ke
èd memwa m 'yo, bagay la nan blan sou bò gòch, jis chanje.
Se konsa, tout bon, lè li jis di parantèz yo, epi Lè sa a,
ti kras squiggle, senbòl la tild, ki jis te vle di mwen te
nan anyè lakay Jan Harvard la, Dokiman mwen l 'yo,
dosye pèsonèl l 'yo.
Men koulye a, nan parantèz li di ~ / source1m.
Sa a jis vle di mwen nan yon folder rele source1m
sa a, se nan anyè lakay Jan Harvard la.
Se konsa, si mwen kounye a vle lis dosye yo nan sa a folder, fasil
kesyon, mwen tape jis ls.
Epi, koulye a mwen wè tout dosye yo pou m 'pre-kreye pou jodi a
konferans, nan tout ki, oswa pifò ladan yo, rive
nan fen an. c.
>> Se konsa, kite m 'ale pi devan koulye a, epi kouri jdi nan yon pwogram yo rele
holloway.c, ki se ekri pa kèk aker o aza
sou Entènèt la, ki sanble yon ti kras tankou sa a.
E nou pa pral yo ale nan yon sèl sa a nan nenpòt
detay, men pou moun konfòtab plis yo, an patikilye, si
ou vle pran yon devine tankou sa ki nan pwogram sa a fè isit la.
Rest te asire, si ou se mwens oswa plis konfòtab,
nou pa menm rive nan sa a sòt de bagay sa a nan fen
sa a semès la.
Sa a se sa ki nan yon egzanp yon konkou C obfuscated, ki
vle di ekri pwogram ki pi skre kap posib ou
kapab fè distance lòt moun entelijan, ki moun ki se menm jan
eseye ekri bagay sa yo ak montre nan yo ke yo ka ekri
plis skre bagay pase sa w.
Se konsa, sa a se pa yon egzanp yon pwogram ki byen ekri ki soti nan
pèspektiv nan style, sa a se yon egzanp sou yon pwogram ki
ranport yon konkou, pou moun k ap eseye
dwe vag ak abstrè.
>> Se konsa, si nou kouri bagay sa a, kite m 'ale nan fenèt tèminal m' yo,
se konsa pale.
Se konsa, sa a se anviwònman nwa ak blan yo rele nan
fenèt tèminal jeneralman.
Kite m 'ale pi devan epi pou konpile tout li.
Mwen pa pwal itilize sonnen, paske pwogram sa a se yon
ti kras skre ak li bezwen yon diferan
du, youn ki rele GCC.
Men, li fè sa menm bagay la.
Li pran kòd sous nan kòd objè.
Epi, koulye a si mwen kouri a.out, ki pwogram ou
jis te wè sa a.
Se konsa, ke parèy ane sa a te genyen ki konkou.
Kanmèm, nou pa ale nan ki direksyon, se pou chak.
>> Se konsa, kite a aktyèlman eseye kounye a toumante apa sa nou kapab fè
ak eleman debaz sa yo debaz nan fè pi plis ak plis
pwogram ki enteresan.
Se konsa, nou te ekri yon pwogram, nou te kouri nan yon pwogram.
Koulye a, nou ka aktyèlman senplifye ak pa gen ekri
mo rezone la nan èd memwa a.
Li vire soti kòm pwogram nou jwenn plis skre, nou kapab, oswa
pi konplèks olye, nou ka aktyèlman kouri lòd sa a.
Se konsa, kite m 'ale tounen nan anyè lakay mwen, se konsa pale, kite m'
retire - RM se yo lòd, ki bare - I'm pral retire
dosye a rele a.out ak hello.
Epi, koulye a remake nan yon anviwònman liy lòd, anpil tankou nan
yon entèfas, ou jwenn pouse. Mwen pa kapab klike sou yon bouton menm si, mwen
gen tape y pou wi, y pou wi.
Epi, koulye a si mwen tape ls ankò, avi ke moun vèt
pwogram - a.out ak alo -
fin ale.
Pran prekosyon nou Rm.
Li ka fè move bagay, jis tankou ou ka pa trenen
bagay sa yo nan fatra ou yo.
>> Se konsa, kounye a kite a ale pi devan - e mwen te kapab fè sa a - rezone-o
hello, alo -
Mwen deja anwiye sezisman ki lòd.
Menm si mwen tape li yon ti kras byen vit.
Se konsa, nou ka olye fè fè hello.
Se konsa, fè se pa sa yon du.
Se jis nan yon pwogram zanmitay ki vini ak Linux, nan sa a
ka - sistèm nan fonksyone -
ki automatise pwosesis la nan konpile pwogram yo.
Se konsa, olye pou yo sonje rezone-o fichier ak
Lè sa a, pou fè yo, espesyalman yon fwa liy sa yo jwenn pi lontan e pi
pi long, mwen ka jis ekri fè.
Lè sa a ki pral krache soti yon pakèt antye nan bagay ki
n ap pètèt wè sa semès la.
Men, remake kounye a si mwen kalite ls, alo se tounen nan anyè m 'yo.
Ak tout bon mwen ka kouri li avèk yo. / Hello.
Se konsa, fè jis automatise pwosesis la nan sa ki te kouri,
nan ka sa a, yon anpil ankò, pi konplèks lòd.
Se konsa, nou ap ale nan kòmanse lè l sèvi avèk mak, jis paske li nan yon anpil
plis itilizatè zanmitay.
>> Men koulye a, ann fè yon pwogram plis enteresan
pase jis di hello.
Se konsa, nan pwogram sa yo nou te ekri konsa byen lwen gen nan prensipal la.
Se jis bagay la default ki anvwaye tout bagay la.
Men, gen lòt fonksyon yo deyò kòm byen, ak
stdio.h se bagay ki ke nou te wè nan tèt la nan nou an
dosye anvan, epi se sa ki nan ke yo rekonèt kòm bibliyotèk estanda a.
Anndan nan bibliyotèk la estanda se yon pakèt antye nan fonksyon
ke yon lòt moun ekri, epi nou ka kòmanse lè l sèvi avèk sa yo
fonksyon yo ekri plis
pwogram enteresan tèt nou.
>> Se konsa, kite m 'ale tounen nan aparèy la.
Mwen pral fèmen fenèt sa a tèminal.
Mwen pral fèmen bagay sa yo nou te ekri pi bonè, ak jis ale
nan hello.c, ak avi koulye a, mwen ka fè sa ki annapre yo.
Alo lemonn yo se pa tout sa ki enteresan, mwen ta renmen
pèrsonalize pwogram sa a pou tèt mwen.
Se konsa, olye pou yo li di mond, mwen pral
ale pi devan epi di -
Mwen te kapab tape David - men sa a vrèman se sòt de
fondamantalman menm bagay la.
Men, kite a eseye soti ide sa a kontneur.
Sonje byen, nan C, olye nan printf, nou te gen sa yo
placeholders, e gen plis pase jis d%.
Se konsa,% d te ye a, rapid chèk saniti.
Okay, nonb desimal, sa se li.
Chif desimal, ki nan tout sa.
Se konsa, c%, menm jan nou pral kontre, a pwal yon karaktè.
Mete yon karaktè isit la, yon lèt yon atravè z,
oswa ponktiyasyon senbòl.
Yon karaktè sèl, f%, nenpòt moun ki konnen nan lòt lang?
Se konsa, yon valè pwen k ap flote.
Yon nimewo reyèl.
Se konsa, pa yon nonb desimal - sa a se aktyèlman yon nimewo reyèl ak
yon pwen desimal, ak kèk kantite chif a gòch la
e yo gen dwa nan li.
% S, fisèl.
Ke youn nou pral wè byen souvan.
Yon fil, ankò, se jis yon mo, yon fraz, yon sekans nan
karaktè endividyèl.
Epi anfen, lld?
Se konsa, sa a se plis nan yon ka kwen.
Long, depi lontan desimal.
Se konsa, si ou vle pa jis yon nimewo ki nan sa a gwo, ou
vle yon nimewo pi gwo, w ap ale nan gen presize
òdinatè a ke li nan ki gen yon gwosè patikilye.
>> Se konsa, kite a ajistè sa a yon ti kras ti jan.
Olye ke sèlman kòd difisil nan David la, kite m 'yon ti kras
dynamique di% s.
Se konsa, mete% s isit la, ki se yon kontneur pou yon fisèl.
Lè sa a, kite m 'fè vigil, ak Lè sa a, "David" sou isit la.
Koulye a, sa a se pa tout sa ki entelektyèlman enteresan,
paske tout Mwen te fè kounye a se reyèlman kreye plis travay pou
òdinatè a.
Olye de di òdinatè a sa a nan tout yon fwa, mwen kounye a
li di fè sa epi antre yon kòd isit la evantyèlman, vigil,
isit la se ke fisèl.
Se konsa, sa a se pa yon amelyorasyon pi bon, men li la omwen
yon etap nan direksyon yon pwogram plis enteresan.
Paske, koulye a, kite m 'ale pi devan epi fè fenèt sa a yon ti kras
pi gwo, kite m 'ale pi devan epi kouri fè hello.
Epi, koulye a,. / A.out pa ap travay, poukisa?
Tout dwa, kounye a sa yo rele hello.
Se konsa, ankò fè, epi tou li rezone ak yon o-, rnome nan
pwogram yo dwe yon bagay plis enteresan.
Epi vwala: kounye a li di alo David.
>> Tout dwa, toujou yon pwogram estipid.
Se konsa, kounye a kite a aktyèlman ale tounen isit la epi prezante nosyon a
nan yon varyab.
Pa ta bon pou li si mwen te kapab deklare yon varyab
ki gen kalite se fisèl?
Ak valè varyab la a aktyèlman soti nan itilizatè a
l 'oswa tèt li.
Se konsa, abitrèman, mwen pral rele nan varyab m 'yo, ki se
jis yon konvansyon komen lè ou gen yon varyab ki rele
fisèl la.
Mwen pral fè egal siyen li, e Lè sa a, mwen pral rele yon
fonksyon rele GetString.
Se konsa, GetString se pa yon bagay ki vini bati nan C. Li nan
yon fonksyon ki anplwaye a CS50 te ekri, vrèman jis pou
sa yo koup premye semèn, ak senplifye pwosesis la nan
ap resevwa opinyon itilizatè yo ak pran dizon itilizatè nan fòm nan
nan strings, oswa nimewo, ak sa yo.
Se konsa, GetString, se tankou printf, men evidamman olye ke
enprime li a pral fè sa ki non li di, jwenn yon kòd.
Men, yo sèvi ak GetString, nou ap pral fè yo fè yon chanjman
isit la, pi lwen pase sa a.
Se konsa, intuitivement, pwogram sa a, èspere ke, ki pral yon jan kanmenm
jwenn yon fisèl soti nan itilizatè a, ak Lè sa a, sa ki li pral fè
ak ki fisèl, ki rele yo?
Li nan jis pral enprime li, dwa?
Toujou pa yon pwogram enteresan paske tout li pral
fè se ploge nan ki valè nan kote% s
di li ta dwe ale.
>> Se konsa, kite a omwen wè sa a nan aksyon.
Kite m 'sove ak rale soti.
Koulye a, nan fennèt tèminal m 'desann isit la, tranch la ti nan yon sèl,
kite m 'ankò fè fè hello.
Okay, ak ah, modi; mwen te resevwa yon pakèt antye nan erè.
Kite m 'woulo liv moute, epi nou wè premye nou yo -
kidonk kite a aktyèlman fè sa nan yon fenèt menm pi gwo pou ou
kapab wè ki jan seryezman mwen vise moute -
kidonk, fè hello.
Okay, sa a, se yon dezas, dwa?
Mwen te ekri twa liy nan kòd, epi
li nan ban m '12 erè.
Se konsa, poukisa sa a ye?
Se konsa, erezman, souvan lè ou wè anpil moun, erè anpil
voye krache deyò nan yon fwa, li vrèman jis paske ou te
konfonn òdinatè a moute isit la.
Ak li rete mele nan tan an, li vin desann isit la.
Se konsa, li jis kòmanse Tripping, ak baryè, ak
voye krache deyò plis pè bagay pase aktyèlman nan aplike.
Se konsa, an jeneral, toujou kòmanse ak yon sèl nan tèt.
>> Se konsa, anpil tèt egzanp nan pi fò nan wouj la,
mesaj erè sa a.
Sèvi ak nan fisèl idantifyan sekrè, mwen te
vle di estanda nan?
Mwen pa t '.
Mwen vle di ke fisèl, men sa a se paske, tou, fisèl la pawòl
ke mwen kenbe lè l sèvi avèk vèbalman aktyèlman
pa egziste nan C swa.
Li nan yon bagay nou pral sèvi ak jis pou premye semèn oswa de
isit la, men li egziste nan yon dosye rele cs50.h.
Se konsa, pou kounye a, konnen ke gen nan sa a bibliyotèk ki lòt la
anplwaye te ekri, se konsa li a te ekri pi plis dènyèman pase
stdio.h.
Men, anndan cs50.h se yon definisyon, yon sinonim nan
kalite, ki kreye sa a fil mo.
>> Se konsa, kounye a kite m 'ale retounen nan fenèt tèminal m' yo.
Mwen pral klè dezòd sa a tout antye nan ctrl L-. Nou pral jis
siye tout bagay pwòp, ak mwen pral ale pi devan epi fè
alo ankò, Antre.
Se konsa, sa ki te rive kounye a?
Koulye a, tout moun sa yo erè al fè wout yo.
Se konsa, sa yo te Mwen vrèman fè konsa?
Mwen te jis anseye òdinatè a ki fisèl ki egziste, epi li
nan ki dosye yo rele cs50.h.
Se konsa, sispann plenyen, paske koulye a ou konnen ki kote yo jwenn
deklarasyon ki fonksyon an se konsa pale.
Ki kote li egziste nan mond lan.
>> Se konsa, kounye a mwen pral ale pi devan epi kouri hello.
Mwen sanble yo gen yon riban enfini, kap pase pa gen anyen an.
Se konsa, mwen bezwen tape yon bagay isit la, dwat.
Liy nan premye nan kòd nan pwogram mwen te GetString.
Se konsa li literalman ap tann pou m 'yo ka resevwa yon fisèl.
Se konsa, nan sans sa se wi, li se yon riban enfini.
Aparamman nan GetString se yon konpòtman ki default ke nou
te ekri - anplwaye nan -
ki jis di rete tann epi rete tann epi rete tann epi rete tann epi rete tann,
jouk itilizatè a ap ba ou yon fisèl pa sezisman yon bagay pous
Se konsa, kite m 'ale pi devan ak kalite nan D-yon v-- m-d, Antre.
Ak la li ye, alo David.
>> Koulye a, sa a sanble tankou li jis yon zak?
Kite m 'ale pi devan epi tape nan Tommy.
Antre, oke, sanble ap travay.
Travo pou Rob, travay pou Zamyla, ap travay pou - oke.
Se konsa, li pral nan travay, gen plis chans.
Se konsa, li ta dwe enprime soti tou sa nou aktyèlman bay li,
epi nou ka gen yon ti kras difisil isit la.
Ann wè si nou fè yon bagay tankou hello.
Ka ale sou isit la, se pou yo wè la a, kopi, keratin.
Mwen pa pwal pou kapab keratin anpil fwa isit la.
Keratin, oke, chanjman + ctrl + V. Se konsa, sa te kapab
rive sa a, se move isit la?
>> Oke, kidonk, segfaults.
Se konsa, kèk moun pami nou ki gen orijin anvan yo va konnen se
jeneralman, bay òdinatè anpil bagay nan entrain yo lè yo ap
pwobableman pa vle di ke yo resevwa non long tankou sa a - move
bagay sa yo rive.
Vreman vre, yo nan mond lan nan sit wèb la, tou, sa rive byen yon ti jan,
kote lè w ap desine yon sit entènèt, lè w ap
desine Facebook, ou gen pou pran desizyon pou abitrè moute
devan, tankou konbyen tan ap nan yon moun
Facebook non itilizatè ta dwe ye?
Oswa konbyen tan yo pral premye non yon moun nan ta dwe ye?
Konbyen tan ap nimewo telefòn yon moun pou ak renmen an.
Men, si pwogramasyon fè sipozisyon move, pwogram kraze
paske ou eseye ba yo plis randman, plis D '
olye, pase yo gen memwa.
Oswa RAM afekte pou li, epi kidonk si koulye a, mwen frape Antre,
pwogram sa a aktyèlman te travay, paske nou tout nou te nan bibliyotèk la
epi nou aktyèlman antisipe sa a ka an patikilye.
Men, san dout sa a semès, ou pral ekri omwen yon
pwogram ki pral di pawòl sa yo.
Sonje sa a semèn nan kounye a, petèt de jou soti nan kounye a.
Fòt Segmentation se yon move bagay.
Li pral refere ak fè yon bagay ou a, ki òdinatè a
pa t 'antisipe.
Ak nan ka sa a, ou menm, pwogramè a, pa t 'antisipe.
Anpil renmen sa sa a pil nan chosèt, te gen divès kalite
ka kwen nou te ka genyen rankontre.
Menm jan an nan pwogram si ou pa prevwa konbyen tan se
non yon moun nan pral fè.
Oswa sa ki si mwen gen yon itilizatè move, ak li oswa non li se
aktyèlman trè kout, men yo ap jis ap eseye
dezòd avè m '?
Sa k ap pase yo dwe konpòtman an nan pwogram mwen an?
Oke, nan ka sa a, yon bagay ta ka aktyèlman aksidan.
>> Se konsa, kite a fè sa.
Nan 90 minit, sa a se yon tan terib long
fè syans òdinatè.
Poukisa nou pa nou jwenn nan abitid la nan pran yon minit senk
kraze isit la, ak lè nou 'tounen an, nou pral plonje nan kèk
pi konplèks ak irezistib pwogram?
Senk minit.
>> Tout dwa.
Se konsa, yon sèl rapid kòmantè.
Mwen te di ke menm si sa a te sou ekran an anvan, sa ki
te vini soti nan bouch mwen te cs50.net/rsvp.
Sa a se kòrèk. cs50.net/lunch.
Se konsa, kounye a ou ka eseye RSVPing pou sa a nan / manje midi.
Men, kite a fè sa kounye a.
Se konsa, sa a te gen Super vit, super nouvo pou yon anpil nan jan.
Old chapo pou kèk jan.
Se konsa, kite a remonte sèlman pou moman yon, epi wè ki jan nou te rive nan
sa a pwodiksyon mond alo jis yon ti moman de sa.
>> Se konsa, premye, gen nan aparèy sa a CS50.
Yon fwa ankò, moso nan pwoblèm lojisyèl, mete 1 nan pral di
ou ki jan telechaje li, ki kote yo download li, ki sa ki klike sou
ak pou fè.
Lè sa a, yon fwa ou swiv sa yo enstriksyon yo, ou pral kapab
yo maksimize fenèt ou a, ak Mac ou a oswa PC yo pral gade yon
ti kras yon bagay tankou sa a.
Yon background nwa, yon folder kay nan tèt la kote tout
dosye ou ale, yon poubèl sou bò gòch nan tèt,
yon meni nan pati anba nan.
Se konsa, ankò, bèl menm jan an nan lespri a Mac OS oswa Windows,
menm si li k ap pase yo Linux.
Se konsa, nou sa nou te pwochen fè?
Bon, nou te kòmanse ekri pwogram yo.
Ak sonje soti nan semèn dènye ke tout li pran yo ekri yon
pwogram yo se yon editè tèks ki senp,
tankou notepad oswa TextEdit.
Franchman, ou menm ka sèvi ak Microsoft Word.
Men, move bagay pral evantyèlman rive, paske sa se yon trè
lou-men solisyon pou ekri yon pwogram, plis sa ap
sove li nan fòma a dosye ki mal.
Men, li la jis yon editè tèks, yon processeur mo, se tout sa ki nan
bezwen ekri yon pwogram nan.
>> Se konsa, nan aparèy la CS50, nou ka fè sa nan yon fason ki senp.
Nou ka jis klike sou icon sa a sou bò gòch anba.
Epi ankò, pwoblèm mete 1 ap fè w konnen sa a, ak vwala -
ou jwenn sa a koòdone nwa ak blan ki kote nou ka kòmanse
ekri kòd.
Se konsa, kite la kòmanse ekri yon super pwogram senp ankò.
Mwen pral moute al ranpli, Save, ak mwen pral rele
sa a, se pou yo di, hello2.c.
Ak mwen jis di li pa klike sou jharvard, mete l '
nan anyè lakay li yo, mwen pa reyèlman sousye
kote yon sèl sa a ale.
Lè sa a, Save.
Epi, koulye a mwen ka kòmanse ekri pwogram mwen an.
Apre sa, mwen sonje soti nan pi bonè ke mwen gen yo ekri int
prensipal (san valè).
Zoom an sou bò gòch tèt.
Lè sa a, mwen vle di printf, pran de.
Epi, koulye a yon newline, fèmen quote, fèmen
parantèz, virgules.
Lè sa a, m 'desann isit la nan fenèt tèminal mwen ki nan
entegre nan jdi, jis pou konvenyans.
Ak mwen pral ale pi devan epi ekri fè hello, men se pa
alo pou kont li, hello2.
>> Se konsa, nan dosye mwen rele hello2.c. Dosye mwen an Se poutèt sa
yo ta dwe rele hello2, nan ka sa a.
Dammit, ki sa ki t 'mwen fè sa ki mal?
Tout dwa, Se konsa, mwen byen klè manke yon liy, si ou sonje sa ki
pwogram anvan sanble.
Men, kite a wè si nou pa ka toumante sa a apa.
Malerezman, pifò moun ki ekri pwogram yo ak ki
nou ekri pwogram ki pa senplifye bagay sa yo tout sa ki byen.
Se konsa, nou gen kalite koudèy sou sa ki pa byen fè
sans isit la ak wè si nou kapab konnen ki sa ki nan mal.
Liy an trè premye gen di chal deklare C
fonksyon bibliyotèk printf ak int kalite.
OK, mwen te konprann yon pati nan sa.
Men, li sanble ap ou evoke lefèt ke mwen itilize printf
sa ki mal, yon jan kanmenm.
Ak sa ki sans se li ki mal?
Mwen jis pa t 'anseye òdinatè a ke li nan nan yon dosye
rele stdio.h.
Koulye a, mwen gen sèlman yo jis memorize kounye a ke printf se
nan stdio.h, ak tout bon gen pral lòt
fonksyon nan ki ranpli menm ke nou pral jwenn itilize.
>> Se konsa, kounye a kite m 'ale pi devan epi frape ctrl-L rive jis klè ke
ale, relance fè hello2, ak vwala.
Ak lòd sa a ankò, pi konplèks pase nou pral eksplike pou
rezon a jodi a.
Men, li t 'kouri rezone, epi rezone pran kòd sous ak
krache soti 0s ak 1S.
Ak moun ki 0s ak 1S nan ka sa a yo rele yo ki sa?
Okay, objeksyon kòd.
Epi li se dosye a yo ke yo ap nan rele, se konsa,
hello2, nan ka sa a.
Paske dosye tèks mwen te hello2.c, Antre.
Epi, koulye a mwen te pran de entewogasyon, pwen eksklamasyon, esklamasyon
pwen, entewogasyon, pwen eksklamasyon.
Tout dwa, konsa nou gen kounye a kapasite a jwenn strings,
aparamman.
Oke, ki lòt bagay nou ka jwenn nan itilizatè yo?
>> Byen nan bibliyotèk la CS50, gen nan lòt fonksyon ki
yo ale nan senplifye lavi nou nan jou sa yo premye kèk.
GetChar, GetDouble, GetFloat, GetInt,
GetLongLong, GetString.
Oke, kite la rache koupe pi fasil la nan sa yo an premye.
GetString literalman fè sa.
Li jis chita la, ap tann pou itilizatè a pou tape yon bagay nan,
epi kòm pli vit ke mwen tape yon bagay nan ak frape Antre, li
fè yon bagay ak ki valè.
Se konsa, kite a tounen nan egzanp yo wè ekzakteman ki sa
GetString t'ap fè a.
Kite m 'ale pi devan epi louvri moute nan jdi, hello.c, ak sonje
dwa sa avan repo a, sa a se kote nou te kite.
>> Se konsa, kite a kounye a toumante sa a apa nan yon detay ti kras pi plis.
Se konsa, sou liy, 6, gen nan de bagay sa yo
pase nan moman an.
Siyen an egal a separe premye mwatye mwatye dezyèm fwa.
Se konsa, sou bò men gòch nan siy ki egal, nou ap
li di fisèl la.
Lè sa a,, tèm jis pwofàn la, ki sa ki fisèl la
ap fè li, ou panse?
Li nan kreye yon ki sa?
Se konsa li kreye yon fisèl rele s.
Kounye a ki sa ki vrèman vle di?
Oke, li la rezève espas pou yon kòd yo rele an.
Sa a se pa byen dwat.
Ki sa ki sa a ap fè?
Òdinatè Bon, kòm ou konnen, gen kondui difisil; sa a, se kote
dosye ou yo estoke.
Odinatè gen RAM, e ke a kote pwogram yo chaje
pandan ke yo ap kouri.
Se konsa, lè ou double-klike sou yon icon ak Microsoft Word ouvè
leve, Microsoft Word ap kouri, se konsa pale, nan RAM, ki se
pati nan elektwonik sou òdinatè ou.
Pa fizik, mekanik, pati nan ki nan bondi, ki kote
done ki estoke se jeneralman tèm long sa.
Se konsa, fisèl la se bèl anpil di òdinatè a, ban m '
ase belye mouton nan anfòm yon kòd.
Kounye a se yon ti jan nan yon Senplifikasyon, paske
Kòman gwo se fisèl la yo pral?
Oke nou aktyèlman pa konnen ankò, pou nan semèn kap vini
nou pral aktyèlman rale tounen kouch nan ki se kòd li ansanm ak
nou pral di w ki sa li vrèman se.
Fisèl, pou kounye a, se jis yon senplifikasyon bèl nan mond nou an.
Men, fisèl la Se mwen menm yon kòd yo rele a, pou kounye a.
Se mwen menm yon kòd.
Li rezève kèk espas nan RAM pou fisèl la itilizatè a se
sou yo tape.
>> Koulye a, kite pou yo gade nan bò dwat la nan siy lan egal.
Se konsa, li di GetString ().
Ak yon ti kras saniti tcheke.
Lefèt ke pa gen anyen anndan parantèz yo
implique sa ki sou GetString?
Li pa pran agiman.
Sa se, ou pa kapab enfliyanse konpòtman li yo nan okenn fason.
Chak fwa ou sèvi ak li, li pral jwenn yon kòd li ansanm ak sa a, se li.
Nan kontras, printf, èspere ke konpòtman li yo fè sa ki
chanje chak fwa.
Sinon, li nan yon fonksyon enprime bèl initil si
li fè sa menm bagay la.
Si li toujou simagri David oswa yon bagay
abitrè tout tan tout tan an.
Se konsa, printf fè sans nan gen yon agiman.
GetString pa reyèlman bezwen gen yon diskisyon, paske mwen te vle
yo ka resevwa yon fisèl soti nan itilizatè a ak li a itilizatè a ki k ap pase
bay dynamism lan nan sezisman nan lèt diferan
chak fwa nan klavye la.
>> Se konsa, sa GetString finalman?
Panse a li kòm bwat sa a ti kras nwa.
Ak bwat sa a nwa pa pran opinyon yo, men lè ou Bang sou
li, li krache soti yon kòd ki itilizatè a tape pous
Ak lefèt ke gen nan yon siy egal a vle di pran
ki sa ki krache soti sou bò dwat la, epi estoke yo andedan
sa ki nan sou bò gòch la.
Se konsa, egal siy isit la, li aktyèlman pa vle di
egalite, li olye teknikman vle di plasman.
Pran valè a sou bò dwat la, li mete l 'nan an
varyab sou bò gòch la.
Se konsa, sa a, se tout sa ki k ap pase a.
>> Koulye a, nan liy 7, n ap rele printf.
Se konsa, printf èspere ke ap resevwa yon raz ti kras pa kounye a.
Se konsa, enprime yon fisèl formate.
Ki sa ki fisèl?
Ekri an lèt detache soti, "h-e-l-l-o,% s
! \ N ".
Tout dwa, Se konsa, sa mwen vle ki ploge nan pou% s?
Literalman, kèlkeswa sa ki estoke nan s.
Se konsa, nan ka sa a, nou menm ti chèk saniti, konbyen agiman fè sa ki
printf pran?
Okay, mwen tande yonn.
Mwen tande yonn ankò.
De, m 'te tande de.
Ak ki jan sou twa?
Okay, twa?
Ekselan.
Twa repons posib, se sèlman youn nan yo se kòrèk.
Se konsa, agiman ankò yo enfliyanse konpòtman yon fonksyon.
Nan tan lontan, printf t 'pran sèlman yon sèl agiman.
"Alo mond" se te yon agiman sèl.
Sepandan, kounye a, remake kote sa a vigil se.
Sa a se vigil deyò nan quote la / unquote, ki vle di
hey printf, isit la vini yon agiman dezyèm fwa.
>> Se konsa, vigil nan pifò lang programmation
apa agiman miltip.
Se konsa, repons lan isit la se definitivman pa yon sèl, paske
gen sa a vigil.
Se konsa, minim, printf se aparamman pran de
agiman tan sa a.
Men, opòtinite la pou yon kesyon Trick isit la se sa ki
sou sa a vigil?
sa a vle di ke gen la aktyèlman twa agiman?
Sa a, sa a, ak sa a.
Se konsa, pa gen okenn, paske men sa vigil se andedan nan quotes yo, ki
vle di li se vrèman jis yon ayestetik nan lang angle.
Li te gen anyen fè avèk ki kantite
agiman nan pwogram sa a.
Se konsa, sa a se vigil deyò nan quotes yo doub.
Lè sa a, retounen 0.
Jis sòt Pou kounye a kite a nan pran yon sèl sa a sou lafwa pou
jodi a, ak jis konnen ke lè fonksyon yo fè pwomenad
liy nan kòd yo, yo ta dwe jeneralman tounen kèk valè.
Nan ka sa a, jis paske prensipal dwe retounen yon int,
sa a, se jis fason an C nan lang travay.
>> Se konsa, paske pa gen anyen ale mal, santi l tankou sa a nan pwogram
amann, mwen jis difisil kode an retou 0.
Men, nan kontras, ak mwen pral ekri sa a nan kòd pseudo
kounye a, anpil tankou Jozèf 'te fè lè nou te fè sa chosèt la
egzanp semèn pase a.
Si yon bagay ale mal - sa a se pa t kòd aktyèl - al
sa ki mal, Lè sa a, retounen, kite la di, 1.
Lòt Bagay retounen 0.
Se konsa, sa a se kote nou pral ak sa.
Sa a se pa reyèl C kòd, jis pseudocode.
Men sa se ki jan ou ta ka retounen
diferan valè posib.
Men, pou kounye a mwen jis ale nan ale pi devan epi retounen 0.
Tout dwa, nenpòt kesyon konsa byen lwen sou fonksyonalite sentaks,,
oswa renmen an?
Yeah, nan dèyè.
>> ODYANS: [fèbl]
DAVID Malan: Èske ou ka pale yon ti kras pi fò?
Poukisa sa a 0 retounen pwogram, epi?
ODYANS: [fèbl]
DAVID Malan: Oh, sa a, se paske mwen te resevwa parese, regrèt.
Pa gen bon repons akademik, retounen 0.
Mwen ka kalite sovtaj sa a, lè li di teknikman C, si prensipal
pa trete keksyon retounen yon valè, 0 pral retounen
otomatikman pou ou.
Ki se vre, mwen pa jis ki kouvri yo.
Men, m 'ta dwe te fè sa nan fason sa.
Pa gen Takeaway enteresan pase sa lòt pase erè m 'yo.
Yeah?
>> ODYANS: Anjeneral lè ou tape nan anile, sa vle di ou
pa retounen yon bagay.
DAVID Malan: kòrèk.
Si olye de sa, ou presize anvan non an nan yon fonksyon, pou
egzanp isit la, anile, lè sa a fonksyon an
pa retounen anyen.
Ak Se poutèt sa mwen ta jis di, retounen oswa pa gen anyen nan tout,
e ke sa ta ki konsistan.
Epitou, n ap tounen vin jwenn sa.
Ak jis Fyi, youn nan kaptur yo ak aprann
pwogramasyon nan yon mond ki gen dè santèn de liv ak
dè santèn de sit entènèt yo deyò se ou pral toujours
wè diferan sentaks nan diferan liv
pa diferan moun.
Reyalize nou pral fè pi byen nou nan seksyon ak konferans yo dwe
ki konsistan.
Men, pafwa ou pral wè konfli sentaks.
Se konsa, chak fwa ou gen yon dout, jis mande.
Ak an jeneral, nou pral pran swen nan konferans ak seksyon
prèske toujou prezante l 'nan yon dwa chemen.
Apre sa, mwen di prèske toujou, paske ka nan pwen.
Lòt kesyon yo?
>> ODYANS:% s egziste deyò aparèy la?
DAVID Malan:% s egziste deyò nan aparèy la?
Wi.
Se konsa,% s te fè avèk C. reyalite a ke nou ap sèvi ak li nan
aparèy la fondamantalman pa gen anyen fè ak an
karakteristik nan lang nan nou ap lè l sèvi avèk.
Vreman vre, yo semèn pase a lè nou itilize Mac mwen an, mwen te ekri
C kòd sou Mac mwen an.
Mwen te kapab itilize% s sou Mac mwen an, epi ou ka sèvi ak li sou
òdinatè Windows ou a si ou enstale yon du, tankou
Vizyèl Studio soti nan Microsoft.
Se konsa,% s.
Tout bagay nou ap fè andedan nan fenèt sa a jodi a gen yo
fè ak pa gen anyen C. e fondamantalman fè ak an
fonksyònman sistèm nan kesyon.
Nan kontras, fenèt la tèminal nwa ak blan - lè
Mwen sezisman bagay sa yo tankou ls, ak RM, cd ak -
ki te fè ak sistèm nan fonksyone ak
navige alantou.
Yeah.
ODYANS: mwen vle di ke bibliyotèk la, bibliyotèk la CS50.
DAVID Malan: Oke, konsa si ou vle di fisèl la mo kle, ki
sèlman egziste nan bibliyotèk la CS50, kòrèk.
Ki pa egziste nan C tèt li, ak tout bon nan yon koup
nan semèn nou pral jete bibliyotèk la CS50 e kòmanse
fè bagay soti nan grafouyen tèt nou, se konsa pale.
Lòt kesyon yo?
Yeah.
>> ODYANS: [fèbl]
DAVID Malan: Bon kesyon.
Èske ka a kòmandman sansib?
Ak kite m 'fè yon distenksyon isit la.
Se konsa, kòmandman yo jeneralman bagay sa yo nou pral ekri nan la
anba nan fennèt la, nan fennèt la tèminal.
Nenpòt bagay moute isit la ta dwe deklarasyon oswa kòd C.
Men, nan tou de ka yo, repons lan se menm bagay la tou, wi.
Tou de sa yo anviwonman, C kòd la a nan tèt la ak
fonksyònman sistèm lòd liy nan an
anba, yo ka sansib.
Se konsa, ou dwe tirer GetString ak kapital G,
kapital S. Ou dwe ekri printf nan tout miniskil.
Ou dwe tape ls nan tout miniskil.
Se konsa, nan prèske chak sitiyasyon sa a semès, ka pral, nan
reyalite, matyè.
Wi.
>> ODYANS: [fèbl]
DAVID Malan: Ah, alò, oke, sa ki si nou te gen yon dosye
rele hello.d.
Se konsa, li vire soti D se yon lang programmation.
Se konsa, nan kèk ka, nou te ka aktyèlman ekri yon pwogram nan
genyen ki dosye a epi li li konpile nan ki alamòd.
Nou kapab, ak aktyèlman, repons kout se, mwen pa konnen.
Se konsa, nou ap ale nan fè sa.
Kite m 'ale pi devan epi kreye yon dosye nouvo.
Ak vire a isit la, onètman an jeneral, se chak fwa nenpòt dout
sa a semès, epi ou gen aparèy ou oswa òdinatè
louvri, ale pi devan epi eseye yon bagay.
Se konsa, mwen pral pou konsève pou yon dosye rele hello.d.
Sove sa a.
Apre sa, mwen pral kouri fè alo Antre nan.
Li te sanble ke yo dégager ki c te plis chans
pase d, nan ka sa a.
Lòt kesyon yo.
Yeah.
>> ODYANS: [fèbl]
DAVID Malan: Okay, di ke yon fwa plis.
ODYANS: [fèbl]
DAVID Malan: Kouman ou ta ale sou dyagnostik ki oswa
depanaj sa?
Se konsa, gen plis chans, paske yo ap lang diferan,
gen plis chans ou ta jwenn yon konplètman
diferan pwogram outputted.
Ou ta jwenn mesaj konplètman diferan erè.
Epi tou li sèlman nan tèm nan konsepsyon, li ta joui gen yon
pòv konsepsyon desizyon yo dwe ekri de diferan
lang ak prèske idantik yo te rele dosye, nan
egzak anyè a menm, lè l sèvi avèk yon
otomatik zouti tankou fè.
Se konsa, mwen kapab tou pouse retounen lakay yo epi di nan 15 ane nan fè sa,
pa janm te fè ki erè.
Ka rive.
Men, gen nan jis divès kalite, mwen panse,
defans lojistik nan plas li.
Plus mesaj yo erè ki ta ka krindr, ki ta
evantyèlman revele sa ki pwoblèm nan se.
Men, yon ka kwen sa posib.
>> Tout dwa, kidonk kite a prezante jis yon koup nan lòt
karakteristik isit la kounye a, pou nou ka kòmanse bati moute nan plis
ak plis konplèks pwogram nan.
Se konsa, premye a tout moun, matematik.
Se konsa, egzanp matematik yo se jis kalite fasil nan premye semèn.
Sa a se pa vle di ke tout pwogramasyon se sou
matematik.
Sètènman, konprann karakteristik divès kalite
matematik, aljèb an patikilye, se
byen ki enpòtan isit la.
Nan klas pi wo nivo CS, lineyè aljèb,
kalkil matematik, ak renmen an.
Men mwen reyalize pi fò nan sa nou pral fè sa a semès diminye pa
matematik, ak sètènman pa aritmetik, se pou chak, men reyèlman
jis lojik ak atansyon panse.
Se konsa, sa a daplon ki te syans konpitè long te genyen,
sitou nan nivo lekòl segondè, ak matematik, se yon
ti erè ladann.
Paske pifò nan pwogram sa yo ke nou pral ekri, reyèlman, se
sòt de pi wo nivo epi konsantre sou rezoud pwoblèm sa,
asire w, ta ka sèvi ak kèk adisyon, soustraksyon, ak plizyè
fòmil matematik oswa tankou an,
men nan fen jou a, li la sou panse epi yo pa
jis mete ann aplikasyon sa ou ta kapab te fè sou tankou yon TI
kalkilatris nan lekòl segondè.
>> Se konsa, avèk ki t'ap di:, kite la kounye a fè yon bagay ak sa yo
operatè matematik ki egziste pou ke nou kapab vwayaj
sou kèk nan aspè yo kache nan pwogram, oswa nan
ka sa a C. Se konsa, gen, menm jan bibliyotèk la CS50 sijere,
ak jodi a nou ap sèlman lè l sèvi avèk GetString - ak nan yon moman
petèt youn lòt fonksyon -
men gen done diferan kalite nan yon òdinatè.
Nan fen jounen an, òdinatè sèlman konnen 0s ak 1S.
Men, sonje sa semèn pase a nou te pale de sistèm nan binè
nan reprezante chif, tankou nimewo a 0, epi 1, ak 2,
tout wout la sou jiska 8, tankou nan videyo Nate a.
Lè sa a, nou ka konte pi wo jan nou
te fè sou sèn isit la.
Men, si ou vle reprezante pa sèlman nimewo men lèt,
nou menm, moun yo, yo gen vini ak kèk abitrè
konvansyon, annakò ak sa si nan fen jou a, tout òdinatè mwen an
te a se kapasite a yo eksprime 0s ak 1, nou byen ta pi bon
kòmanse estandadize modèl nan 0s ak 1S ki reprezante
bagay diferan.
Yon modèl nan 0s ak 1S ki reprezante lèt la yon.
Modèl nan 0s ak 1S ki reprezante z la lèt.
Modèl nan 0s ak 1S ki reprezante ble a koulè po yo, oswa
wouj, oswa tankou an.
Nou bezwen sèvi ak tout moun sa yo 0s ak 1S yo eksprime tèt nou nan
kontèks diferan, nan diferan fason ki pa
nesesèman nimerik.
>> Se konsa, an tèm de reprezantasyon, C a gen kalite done diferan,
epi nou te wè youn nan sa yo byen lwen tèlman.
Nou te wè Int, ak avi sa ki nan pa sou ekran an
kounye a se fisèl.
Fisèl pa, an reyalite, egziste nan C. Yon fwa ankò, li nan yon
senplifikasyon nou ap prezante pou premye fwa a
koup la semèn.
Yon Char se yon karaktè endividyèl.
Yon flote se yon nimewo reyèl, ak yon pwen desimal ak chif ki rive jiska
bò gòch la ak dwa a nan li.
Yon doub se sa ki, pou moun ki gen background tounen anvan sa?
Se konsa, yon doub se de fwa yon bagay.
Ajoute de fwa kòm presizyon anpil.
Se konsa, sa sa vle di?
Se konsa, nan chak nan ka sa yo, mond la genyen yon sòt de ofisyèl
konbyen Bits yo itilize reprezante
chak nan bagay sa yo.
Se konsa, si ou te ap gade ASCII videyo Nate a deja pou pati
nan pset 0, oubyen apre sa semèn sa a ou pral, ou pral pwobableman konnen
ki ASCII -
karaktè reprezantasyon -
itilize konbyen Bits?
Epi ou ta ka menm sonje soti nan Demo nou semèn pase a sou kouman
gen anpil moun ki te sou sèn.
Se konsa, 7 oswa 8, tipikman.
Se konsa, jeneralman 8, ak gen nan yon bagay yo rele kòm pwolonje
ASCII ki sèvi ak tout Bits 8, olye pou yo 7.
Men, an jeneral, nou pale nan pouvwa nan 2, se konsa nan ka sa a, 8.
Se konsa, yon Char nan yon lang pwogramasyon se nòmalman 8 Bits.
Se konsa, yon int se jeneralman 32 miyèt moso.
Yon flote se jeneralman 32 miyèt moso.
Yon doub se jeneralman 64 miyèt moso.
Ak sa ki sa vle di?
Sa vle di ou ka reprezante pi gwo nonb, oswa nan ka a
nan chif reyèl yo, ou ka gen yon anpil plis nimewo apre a
desimal kote.
Yon anpil plis presizyon, nan ka sa a.
Koulye a, se yon long long malerezman yo te rele.
Se konsa, gen nan yon int ki se 32 miyèt moso.
Gen yon tan ki se, non, 32 Bits.
Ak yon long long ki se 64 miyèt moso.
Sepandan kèk nan sa yo se kontèks sansib; li depann
ki kalite òdinatè ou genyen.
Se konsa, an jeneral, nou pral presize nan yon devwa oswa nan yon egzamen lè
li aktyèlman zafè.
Men, pwen an se gen nan tout moun sa yo diferan
reprezantasyon isit la.
>> Se konsa, kite a aktyèlman plonje nan yon pwogram.
Olye de ekri yon sèl sa a soti nan grafouyen, kite m 'ale pi devan
ak louvri moute soti nan kòd sous la jodi a - tout nan yo ki se
sou entènèt - si ou vle Tinker alantou sou entènèt, oswa retounen sou
Mèkredi ak aparèy la sou òdinatè ou, enstriksyon
pou ki pral konekte sou paj dakèy kou a.
Isit la nan yon pwogram super senp.
Men, li la te resevwa yon ti kras yon bagay nouvo nan tèt la ki
nou pa t 'gen anvan an.
Yon anpil tout liy ble nan tèks.
Se konsa, liy sa yo ble reprezante kòmantè.
Se konsa, li byen itil nan yon pwogram pou kapab ekri
kèk kòmantè nan tèt ou, oswa yo kòlèg, oswa zanmi, oswa
zanmi ansèyman, ki sòt de dekri sa k ap pase nan
sa a ranpli, men pa gen anyen fè avèk kòd C tèt li.
Pa gen anyen fè ak pwogram lan fonksyonèl, li jis
estetik.
Se konsa, nan fason ou fè sa nan C se anjeneral ou kòmanse ou
kòmantè ak / *, epi ou fini kòmantè ou a ak
* /.
Epi si w ap reyèlman anal ak tankou fè desen sòt de foto,
Lè sa a, ou ta mete yon lot antye nan zetwal, ou ta fè yon
ti bwat tankou sa a.
Men, pa youn nan ki zafè.
Bagay la sèlman ki zafè se trè premye a
ak anpil sot pase yo. la
Sa a se sa yo rele yon kòmantè milti-liy.
Epitou, se jis konvansyon moun a yon souvan fè zetwal yo ansanm ak ti bwat
bagay sa yo nan tankou sa a si ou gen yon anpil tan gratis.
>> Se konsa, apre ou te ekri nan kèk kòmantè, jeneralman, vini
entesten yo reyèl nan pwogram nan.
Isit la nan abitye nou # enkli .
Ak jis rapid, sa a se nesesè oswa pa nesesè?
ODYANS: sa nesesè.
DAVID Malan: Se konsa, li la aktyèlman pa nesesè.
Se konsa, poukisa, menm si, se li pa nesesè?
Se konsa, gen nan pa gen printf.
Vreman vre.
Tout sa nou ap fè nan pwogram sa a se nan matematik.
Se konsa, mwen ka aktyèlman efase sa.
Se konsa, ou pa toujou bezwen mete anyen nan
tèt la nan yon pwogram.
>> Se konsa, kite a senplifye sa yon ti jan.
Epi, koulye a remake ki sa pwogram sa a ap fè.
Pa anpil nan enterè yo.
int x = 1.
Oke, ki sa ki sa a ap fè?
Oke, panse tounen nan modèl la mantal soti nan anvan.
Bò men gòch nan sa a ekspresyon fè sa?
Kreye espas pou yon nonb antye relatif.
Se konsa, kouman espas anpil?
Bon, nou rive konnen kounye a ke li nan 32 Bits.
Précédemment, yon kòd te teknikman 32 Bits, men li plis
sou sa nan tan kap vini an.
Men, yon int se 32 miyèt moso.
Se konsa, sa a ekspresyon sou bò gòch la isit la, int x jis di hey
fonksyònman sistèm, ban m '32 Bits nan RAM -
ki te rekonèt kòm 4 bytes nan RAM -
pou m 'ka mete yon nonb antye relatif nan espas sa a.
Ki sa ki nonb antye relatif ou te vle mete?
Oke, jis nimewo a 1.
int y ap vin 2, fè sa ki bagay la egzak menm menm si la
nonb ki se pi gwo, an tèm de mayitid li yo.
Nimewo a li menm se toujou jis 32 miyèt moso.
Se jis nan modèl la nan Bits se diferan yo
reprezante 1 kont 2.
int z kounye a di, ban m 'yon lòt Bits 32, rele li z, epi li mete nan
somasyon nan 1 ak 2 an la.
Se konsa, sa koulye a z la prezimableman estoke valè a 3,
ak Lè sa a, retounen 0.
>> Koulye a, pwogram sa a, li fè anyen nan enterè?
Se konsa, li aktyèlman pa fè anyen ki enteresan, nan nenpòt ki
sans, paske poukisa? Li nan fè kèk matematik.
Men, li pa retounen repons lan, dwa.
Li nan retounen 0.
Li pa nan enprime repons lan.
Se konsa, pwogram sa a se fondamantalman vo anyen, kòm li
kanpe kounye a.
Li nan ap fè kèk travay.
Li nan pral pran kèk kantite segonn, oswa mikro, nan
fonksyone, men li pa aktyèlman fè anyen
itil pou moun nan.
>> Se konsa, kite a aktyèlman kounye a louvri math2, kote kounye a mwen aktyèlman
enprime rezilta a.
Se konsa, sa a twò ka fè dedwi soti nan egzanp anvan nou yo.
Si m 'vle fè kèk matematik ki senp, int x = 1, y
= 2. z se 1 plis 2 kounye a.
Ki sa ki sa a pral enprime soti evidamman?
Jis 3.
Se konsa, rapid saniti tcheke.
Kite m 'deplase ale nan anyè sa a.
Se konsa, cd source1m.
Kite m 'ale pi devan epi tape fè math2.
Pa gen mesaj erè soti, se konsa, kite m 'kouri -
pa a.out-kite m 'kouri math2. Antre.
Ak tout bon, li soti enprime 3.
Oke kite a pran yon gade nan yon Variant sa a.
Nan math3.c, nou genyen kounye a egzanp sa a isit la.
>> Se konsa, kalite sa a yon sèl la nan enteresan.
Se konsa, nan yon sèl sa a isit la, repons la pral jwenn 1 divize pa 10,
ak avi mwen te deklare li kòm yon flote.
Poukisa mwen vle li nan dwe yon flote?
Oke, li nan yon fraksyon.
Li nan pral fè yon kantite reyèl.
Se konsa li pral fè 0.1, èspere ke - 10%, nan ka sa a.
Epi ki sa mwen Lè sa a, vle enprime soti?
Oke, repons sa a.
Oke, kite la toumante sa yo apa premye.
Se konsa, ki sou bò gòch-men, deklare yon
flote, rele li reponn.
Sou bò nan men dwat, 1 divize pa 10 ak mete sa
reponn andedan nan varyab la.
Koulye a, liy sa a sanble yon ti kras plis skre.
Men, remake kèk karakteristik yo konnen yo. % Vle di isit la vini yon
kontneur.
f vle di isit la nan yon valè pwen k ap flote, jis yon reyèl
nimewo, yon bagay ki gen yon pwen desimal.
0.2 vle di ki sa?
Nenpòt moun ki konnen nan eksperyans anvan sa?
De kote desimal.
Se konsa, nou pa te wè sa anvan, men li la jis yon fason pou
fè egzèsis yon ti kras plis kontwòl sou printf ak
pwovèb pa ban m '30 pwen apre pwen desimal la,
olye, ban m 'jis 2.
>> Lè sa a, kite a ale pi devan epi kouri sa a.
Se konsa, fè matematik 3, e kounye a, kite m 'kouri matematik 3, Antre.
E ke se pa bon.
Nou yo sanble yo te rankontre premye nou otantik ensèk.
Oke, petèt mwen jis pa kap ase pre.
Se konsa, kite m 'moute isit la, ak kite m' mete 20 desimal
pwen kote a.
Ak kite m 'konpile sa a, fè math3, kouri.
Joli asire w 1 divize pa 10 se pa 0.
Se konsa, sa k ap pase sou?
Oke oke, se konsa aktyèlman li pa gen yo fè ak sa.
Sa a se yon panse bon.
Sa a se vrèman jis yon konyensidans
ke nou ap fè sa.
Men, jis ki pwouve ke sa a se pa li, mwen pral
retounen yon bagay o aza.
pa fè sa lakay ou, paske li nan jis sa ki mal.
Men, fè math3, kite m 'kouri li.
Se konsa, pa gen anyen fè ak sa m ap retounen, se sèlman te fè
ak sa m ap enprime.
Men, mwen fin tande l 'desann isit la.
Ki sa?
ODYANS: Se konsa, nou bezwen ekri chif yo nan
divizyon an kòm -
>> DAVID Malan: Oke bon.
Se konsa, nou bezwen ekri nimewo yo k ap patisipe nan la
divizyon isit la kòm pwen k ap flote valè tèt yo.
Se konsa, pwoblèm nan isit la se tankou anvan: C, menm jan ak yon anpil nan
lang, gen kalite done ki diferan.
Ak sa yo ki kalite done, pou egzanp, moun sa yo ki isit la.
Ak done ki kalite nan kesyon isit la, lè m 'tape 1 ak Lè sa a, mwen
kalite 10, yo se pwobableman kalite done ki sa?
Se konsa, li la pwobableman yon int, dwa?
Li definitivman pa yon flote paske gen nan pa gen desimal
pwen oswa yon bagay tankou sa.
Se konsa, reyèlman, mwen gen yon int divize pa yon int.
>> Se konsa, bagay la enteresan sou matematik ak òdinatè yon se ke
si w ap fè divizyon lè l sèvi avèk nonb antye relatif -
1 divize pa 10, wi se 0.1.
Sepandan, lè w ap divize yon nonb antye relatif pa yon nonb antye relatif, nan
repons te tou pou yon nonb antye relatif jis paske, pou kounye a.
Ak sa ki nan enplikasyon la lè sa a?
Byen, si se repons lan 1 divize pa 10 egal 0.1, ki sa ki
òdinatè a ki pral fè se mwen pa gen okenn lide ki jan yo
reprezante 0.1, paske sa a, se yon valè pwen k ap flote, se pa yon
nonb antye relatif; li a pral koupe nan tout bagay apre a
desimal pwen ak jis montre w 0 a nan kòmansman an.
Ak lefèt ke li nan enprime kòm yon pwen k ap flote
valè, li jis yon bagay ayestetik.
Sa a se paske mwen m 'fòse òdinatè a nan enprime sa a kòm yon
k ap flote valè pwen.
Ak tout bon mwen te deklare li kòm yon flote, men matematik la se
pase sou isit la.
>> Se konsa, kite m 'aktyèlman ranje sa a nan yon fason trè fasil.
Poukisa nou pa mwen jis fè 10.0 ak 1.0, byenke
teknikman mwen te kapab jwenn lwen ak jis ap fè youn nan moun ki.
Koulye a, kite m 'ale pi devan epi fè math3.
Kite m 'ale pi devan epi kouri kounye a math3, Antre.
Epi, koulye a, o ti gason.
Koulye a, nou gen yon pwoblèm nouvo tout ansanm.
Se konsa, pi bon, dwa, nou ap pi pre 0.1, men ki sa byen klè se
sa ki mal isit la?
Sof si nou ve yo te kouche pou ou pou ane, dwa?
1 divize pa 10 se aktyèlman pa byen 0.1, se konsa sa ki nan
reyèlman ale sou isit la?
Oke ou kapab kalite ki esplike ki rezon nan sa a lojikman.
Si yon òdinatè sèlman gen yon kantite lajan fini nan RAM yo kòmanse
ak, ak tout bon yon òdinatè sèlman se lè l sèvi avèk Bits 32 pou yon
k ap flote valè pwen, li vle di rezon ki avèk yon
fini kantite 32 Bits, nan ka sa a, se wi, ou kapab
reprezante yon anpil nan lòt bagay.
Li aktyèlman se kat milya dola valè diferan ka
reprezante ak 32 Bits, 2 a 32 an, men li la toujou fini.
Se konsa, pwoblèm nan se gen nan yon nonb infini nan reyèl
chif, dwat.
Si ou ban m 'yon nimewo reyèl, mwen ka toujou jwenn nou yon sèl
yon ti kras pi gwo, yon ti kras mwens, pa jis tweaking la
chif ki pi apre pwen desimal la.
Se konsa, si ou pa gen yon nonb infini nan Bits, ou
pa ka pètèt reprezante yon enfini
nimewo nan nimewo reyèl.
>> Se konsa, gen nan sa a enpresizyon nannan nan òdinatè, ak
sa a vin trebiche sou tout tan tout tan an menm nan pi senp la
pwogram tankou sa a.
Men tou nan kèk pwoblèm mond kòm byen trè reyèl.
An reyalite, kite a pran yon moman nan jis pran yon gade nan
yon bagay ki aktyèlman te rive nan reyalite.
Nou pral gade jis koup la nan premye minit, epi Lè sa a,
nou pral afiche sou entènèt la lyen.
Men sa se siyen kontra Bondye a sèlman sa ki kapab ale mal, byen
onètman, nan yon fason trè trajik lè bagay sa yo se pa
apresye oswa jis nou moun fè erè lè li rive
sa yo kalite detay aplikasyon nan òdinatè modèn.
>> [Jwe VIDEO]
-Nou kounye a retounen nan dezas jeni sou mervey modèn.
Odinatè.
Nou tout vini nan aksepte pwoblèm yo souvan fwistre
ki ale avèk yo.
Pinèz, viris ak pepen lojisyèl yo se pri ti
peye pou konvenyans a.
Men, nan segondè militè vitès ak teknoloji ak segondè espas
aplikasyon pou pwogram nan, pwoblèm ki pi piti a kapab
gwo respè nan dezas.
Sou, 4 jen 1996, syantis prepare lanse yon sans
Aryan 5 fize.
Li te pote satelit syantifik ki fèt
etabli pwesizeman kouman mayetik jaden sou tè a nan
reyaji ak van solè.
Te fize a bati pou Ajans la Espas Ewopeyen ak
Li leve soti nan etablisman li yo sou kòt la nan Giyān franse.
>> -Nan apeprè sou 37 segonn nan vòl la, yo premye
remake yon bagay te ale mal, ki ajutaj yo te
tournan nan yon fason yo te reyèlman pa ta dwe.
Anviwon 40 segonn nan vòl la, byen klè machin nan
te nan pwoblèm, e ke se lè yo te pran desizyon nan
detwi l '.
Yon ofisye sekirite ranje ak entesten fòmidab bourade la
bouton, kònen moute fize a anvan li ta kapab vin yon
danje nan sekirite piblik la.
>> -Sa a te vwayaj la jenn fi nan aryan a 5, ak li yo
destriksyon te pran plas paske yo gen yon defo entegre nan an
lojisyèl fize la.
>> -Pwoblèm nan sou aryan a te ke te gen yon nimewo ki
egzije pou 64 Bits yo eksprime yo e yo te vle konvèti li
nan yon kantite ti jan 16.
Yo sipoze ke kantite a te pa janm
pral gen anpil gwo,
ki pi fò nan sa yo chif nan nonb lan ki ti jan 64 te 0s.
Yo te sa ki mal.
>> -Enkapasite a yon pwogram lojisyèl aksepte a
kalite nimewo pwodwi pa yon lòt te nan rasin lan
fayit la.
Te devlopman lojisyèl vin tounen yon pati trè koute chè nan
nouvo teknoloji.
Te aryan 4 fize a te trè siksè.
Se konsa, anpil nan lojisyèl an kreye pou li te tou te itilize
nan aryan a 5.
>> -Pwoblèm nan debaz te ke aryan a 5 te pi vit,
akselere pi vit.
Ak lojisyèl an pa t 'matirite pou sa.
>> -Destriksyon a nan fize a te yon gwo finansye
dezas, tout akòz yon erè lojisyèl minit.
Men, sa a te pa premye fwa done pwoblèm konvèsyon te gen
gwo malè tonbe sou teknoloji modèn fize.
>> DAVID Malan: Nou pral kite li nan sa.
Men sa se siyen kontra Bondye jan jis aplikab menm kèk nan
sa yo detay nivo ki pi ba ke nou te fèk kòmanse fè
eksplore jodi a yo ye.
Se konsa, menm jan ou jwenn yon ti distrè petèt pa kèk nan
sentaks la ak arcaneness isit la, reyalize ke plis pase a
tèm n ap konsantre jis sou ki jan sa aplikab sa a se
mond pi lwen CS.
Nou pral wè ou nan Mèkredi.