[Powered by Google Translate] DAVID J. Malan: Tout dwa, sa a se CS50 ak sa a se nan
fini nan Semèn 1, se konsa kat etid yo se nan ak kantite total
kamarad klas ki di ou gen ane sa a se 745.
E nou konsa frisonen gen anpil nan ou nan kou a
sa a semès, men menm si kou sa a se konsa gwo,
reyalize ke li nan sa yo bagay sa yo tankou Vandredi manje midi, tankou
biwo èdtan, 15-moun seksyon, ak pou fè ki
yo vrèman vle di yo kreye sa a pi plis entim
anviwònman.
Se konsa, menm si nou ka ranmase yon fwa oswa de fwa yon semèn, isit la nan
Sanders, konnen ke anpil nan eksperyans ou nan kou sa a
pral anpil pou men-sou sou yo ansanm kondisip ou
ak anplwaye nan ansèyman.
>> Se konsa, isit la nou ale, Fall 2012.
Se konsa, sonje tan sa a dènye nou te fini sou yon nòt nan
enpresizyon, ap pale de reprezantasyon an nan nimewo.
Epi nou te gade nan youn nan echèk yo ki sa ki te rive, nan la
reyèl mond, lè li rive nan mal konprann
ki jan òdinatè travay.
Oke, jodi a nou pral revize yon lòt youn nan ide sa yo kòm
byen ke kontinye diskisyon nou an kliyan an CS50
ak C ak sa li vle di reyèlman nan pwogram.
Men, anvan, jis yon koup nan gwo toubouyon anons.
>> Seksyon kòmanse jou Dimanch sa a, ak nan premye semèn se toujou yon
ti jan nan yon kòmanse rapid, paske nou jis te resevwa nan
fòm seksyon ou an.
Nou ap fè menm bagay la tou, koulye a, avèk zanmi pou anseye, kounye a
yo ke yo konnen orè yo, se konsa nou ap vise, pa
Samdi maten, te fè swivi avèk ou ak seksyon ou
devwa ak tf.
Reyalize ke yo pral kòmanse jou kap vini an, Dimanch
oswa Lendi oubyen Madi.
Lè sa a, nou pral akomode chanjman seksyon jan yo Leve chita non
nan jou ki ap vini yo.
Lè biwo louvri, pandan se tan, se, ankò, aswè a, 8 PM rive 11, nan
Annenberg, osi byen ke lannwit demen.
Menm si ansanm sa yo, pwoblèm yo jeneralman kòmsadwa sou jedi
jwenn yo midi, reyalize ou gen jiska senk jou an reta yo ap depanse,
pakonsekan disponiblite a lè biwo a jedi si
ou lajan kach nan youn nan jou sa yo an reta, epi konsa, soumèt
yon bagay nan Vandredi.
Kite m 'sijere ke reyur se nan mitan plezi a pi plis, nan mitan an
plis ki ba aparèy televisyon HD pwoblèm kle.
Apre sa, mwen ta pann sou jou sa yo an reta, stratégiquement, jis
pou pita nan semès la lè lavi kòmanse jwenn nan fason a
ak midterms ak lòt klas.
Set pwoblèm 1, pandan se tan, ta dwe afiche sou la nan kou
sou sit wèb sa a Vandredi, kòm ap fèt nan mache kou a nan
atravè videyo, ki pral filme-li nan 2:30 PM nan Vandredi
ak Lè sa a, afiche sou entènèt nan jou kap vini an.
>> Se konsa, nou te fini nan Lendi.
Mwen vle - aktyèlman, youn note isit la.
Paske klas yo - paske Sanders pa egzakteman prete
tèt li aksidantèl Q & A ak tounen soti fò anpil byen, nou ap
ale nan eseye yon bagay yon ti kras nouvo ane sa a, annakò ak sa
si ou pa konfòtab ogmante men ou oswa ou jis
ta pito pa leve men ou nan yon chanm tankou sa a,
nou pwal gen kèk nan zanmi yo ansèyman ak sèrtifikasyon
atitid cs50.net/discuss pandan konferans.
Se konsa, si ou gen yon kesyon paske mwen te konplètman
klè sou yon bagay oswa ou se kirye sou kèk
topic, eseye afiche li a.
Tag l 'ak yon etikèt sou nan Lecture, epi nou pral fè pi byen nou
jodi a ak semèn pwochèn - we'll eseye sa a soti - nan jaden li
swa elektwonikman, sou entènèt, oswa si li santi l tankou nou ta dwe
vrèman adrese li en masse, youn nan zanmi yo oswa ansèyman
Sèrtifikasyon pral leve men yo epi yo mande
anonim sou non ou.
Se konsa, nou pral bay sa a yon eseye ak wè kòman byen sa a travay.
Men, pa tout vle di, kontinye leve men kòm ou ta renmen.
>> Se konsa, dènye fwa nou te revele ke 10% oswa yon sèl-dizyèm se pa, nan
reyalite, 0.1, tankou ou te konn anseye anpil ane de sa.
Li nan an reyalite, yon valè tankou sa a.
Men se pa sèlman nèt vre, dwa?
Nou jis gen sa a contrainte nan òdinatè kote, si ou
sèlman gen yon kantite lajan fini nan memwa, RAM, oswa pi plis
espesyalman Bits, byen, gen nan sèlman yon nimewo fini
de bagay sa yo ou ka reprezante.
Pou egzanp, si nou gen nimewo a zewo, e nou vle
reprezante nan binè, lè l sèvi avèk Bits uit, kote yon ti jan,
ankò, se yon zewo oswa yon sèl yon, nou ka
reprezante li kòm 00000000.
Epi sa a, yon ti kras san nesesite sil.
Jis tankou nan sistèm nan desimal nan mond reyèl la,
jeneralman, si ou vle ekri 123 nimerik la, nou
moun pwobableman pa ekri 00000123 menm si,
fonksyonèl, sa se nimewo an egzak menm.
Nou jis lage zewo dirijan, se konsa pale.
>> Nan binè, nou ka fè menm bagay la.
Binè ak zewo, zewo ak binè se jis zewo.
Ou sèlman bezwen yon ti jan sèl.
Men ankò, inite ki pi komen pou mezi nan mond lan
nan informatique se bytes, wit miyèt moso.
Jis paske yon sèl ti jan, bèl initil.
Uit Bits, pa fò anpil itil, men omwen li nan plis
itil pase yon sèl inite ki mezi.
Se konsa, avèk uit Bits, nou pral tipikman reprezante binè.
Se konsa, isit la nou gen chif yo zewo, yonn, de,, ak lè sa a, kòm
Nate te fè nan videyo nou an a mèkredi dènye, nou ka kontinye
konte jiska sèt a ywit.
Lè sa a, si nou sèvi ak pi plis ak plis Bits, nou
ka konte jiska debordeman.
Men, si ou sèlman gen yon nimewo fini nan sa yo Bits, kòm se
ka a nan nenpòt ki sistèm òdinatè, oswa menm misil
sistèm, byen, tout bon ou gen sèlman yon
fini kantite lajan pou presizyon.
Se konsa, si ou vle reprezante ki kantite tankou 0.1, byen, nan
òdinatè gen yo chwazi epi chwazi.
Men, si li sèlman gen yon nimewo fini nan nimewo sa li kapab
reprezante, li ka vin pre 0.1 pou ou, men li pa kapab
nesesèman ba ou egzakteman valè a ke ou vle.
Lè sa a se jis youn nan defi yo nan òdinatè,
anba kapo machin lan, Erezman.
>> Kòm nou deplase pi lwen nan semès la, sa yo pi ba nivo
detay vin nan anpil mwens enteresan, men sètènman
aplikasyon nan ide sa yo ka gen kèk mond anpil reyèl
ramifications.
Youn nan se yon plezi ti jan.
Konbyen nan ou te wè fim etonan Espas nan Biwo?
Si ou gen pa, se sa ki ofisyèl ou
devwa pou semèn nan.
Men, nan espas biwo, zanmi yo nan sa fim pran
avantaj ki genyen nan pwesizeman lide sa a yo, men yo aktyèlman te vòlè
li soti nan yon lòt fim ke ou ta ka genyen
wè, menm ane anvan.
Se konsa, kite m 'ba ou yon kèk segond nan sa a trelè soti nan
sa a fim etonan ak sa a se anpil
onivo akademik ki enpòtan.
>> [Jwèt fim]
Aktyèlman mwen te monte.
Mwen ka pwogram yon viris ki pral RIP ki
mete nan gwo tan.
Oke, li montre kouman li travay?
Chak fwa gen nan yon tranzaksyon labank kote enterè a se
Computed, gen dè milye yon jou, òdinatè a fini moute
ak sa yo fraksyon nan yon santim.
Men, mwen pa pwal fè anyen ilegal.
Ilegal? Samir, sa a se Amerik la.
Ou gen fè sèman, Bondye.
Si pèsonn pa konnen sou sa a, men nou, tout dwa? Pa gen manm fanmi, pa gen okenn
kopin, pèsonn pa.
[Fèbl].
Pa enkyete, nonm, mwen pa pral di nenpòt moun ki swa.
[Fim fini]
>> Tout dwa, sa petèt mwen te jwenn sa a fim pi bon pase pi
moun isit la, men nan nenpòt ka, viris la yo ke yo te
eseye kreye -
ak nan fim sa yo, nenpòt lè yo ta rele yon bagay yon viris,
li nan jeneralman yo pa aktyèlman yon viris.
Se jis nan yon pwogram ke yon moun te ekri fè yon bagay.
Ak nan ka sa a, mesye yo t ap eseye ekri yon pwogram
ki te pran avantaj de konpayi yo rele nan Innotech
sistèm informatique, annakò ak sa òdinatè, tou, menm lè li
vini nan lajan, ka pa nesesèman
reprezante lajan pwesizeman.
Se konsa, menm si ou ta ka genyen $ 0.10 nan kont labank ou,
0.10, byen, òdinatè a ta ka aktyèlman panse ke ou gen
sa a santim anpil moun nan kont labank ou.
Se konsa, sa ki mesye sa yo yo te aspiran fè - epi yo
te vòlè lide a, li vire soti nan devni selèb III a, kote
Richard Pryor fè menm bagay la - yo te esansyèlman
ekri pwogram ki renmen fè pran tout fin la
nimewo, nan tout ti, ti, fraksyon yo ti nan
peni, epi sifonaj sa yo koupe pou ke moun yo jis
te panse, o, li nan sèlman $ 0.10 la, men tout moun ki
fin nimewo evantyèlman ajoute jiska.
Se konsa, yon lide bèl bagay ak li yo toujou konbat jwa nan ke
patikilye fim.
>> Men, nan mond reyèl la, tou, gen anpil plis konsènan
enplikasyon nan sa yo kalite bagay sa yo.
Ak youn nan rezon ki plonje nan jaden an nan òdinatè
syans se, ankò, Application li yo pa la
jeni syans pou kont li, men jis
jaden lòt yo tou.
Se konsa, sa a se yon gade mwens lighthearted nan sa ki ka ale mal, men
li la tou byen ouvèti je, mwen panse, lè li rive
konprann egzakteman kouman omniprezan teknoloji tankou
òdinatè ak pwogram oswa jou sa yo,
nan fòm la nan lojisyèl.
Se konsa, sa a clip pwochen se jis sou sis minit, ap kontinye
kote nou te kite dènye tan, men pèmèt nou gade yon ti kras
plis nan pwofondè nan yon sèl sa yo nan pwoblèm sa yo.
Kite m 'sote devan yo kote nou kite,
ki te isit la menm.
E nou gen yon pati de nan de, pou apeprè sis minit isit la.
>> [JWE fim]
Gwo malè tonbe sou teknoloji modèn fize.
An 1991, ak nan kòmansman an nan lagè nan premye Gòlf, Patriot la
misil ki gen eksperyans yon kalite ki sanble
nimewo konvèsyon pwoblèm.
E kòm yon rezilta, 20 moun, 20 sòlda Ameriken yo, yo te touye
ak apepwè 100 lòt ki te blese, lè Patriot la, ki te sipoze
nan pwoteje kont Scuds fèk ap rantre,
echwe pou pou tire yon misil.
>> Lè Irak anvayi Kowet ak Amerik te lanse yon dezè
Tanpèt nan lane 1991 byen bonè, pil Patriot misil yo te
deplwaye nan pwoteje Arabi Saoudit ak pèp Izrayèl la anba irakyen
Scud misil atak.
Patriot la se yon US medyòm-ranje sifas-a-lè sistèm,
manifaktire pa konpayi an Raytheon.
Gwosè a nan entèrsèpsyon nan Patriot tèt li, li la sou
apeprè 20 pye long ak li peze sou 2,000 liv.
Epi li pote yon tèt degè a sou - Mwen panse ke li nan apeprè
150 liv.
Ak tèt degè a li menm se yon eksplozif segondè ki te gen
fragman wonn li.
Se bwat la nan tèt degè a fèt yo aji tankou plon.
Misil yo yo te pote kat pou chak veso epi yo
transpòte pa yon trelè semi.
>> Patriot kont sistèm misil la a ale tounen omwen nan
20 ane kounye a.
Li te orijinal ki fèt kòm yon misil defans lè
tire desann avyon lènmi, nan Lagè nan premye Gòlf la.
Lè lagè sa a te vini ansanm, Lame an te vle sèvi ak li nan tire
desann Scuds, pa avyon.
Air Force irakyen an pa t 'konsa anpil nan yon pwoblèm, men lame a
te enkyete sou Scuds.
Se konsa, yo te eseye ajou Patriot la.
Entèrsèptan yon misil lènmi vwayaje a mach 5 te pral
yo dwe difisil ase.
Men, lè yo te Patriot la kouri nan sèvis la, Lame a
pa t 'okouran de yon modifikasyon irakyen ki te fè yo
Scuds prèske enposib frape.
>> Kisa ki te pase se Scuds ki te
vini nan yo te estab.
Yo te tranble.
Rezon ki fè la pou sa a te Irakyen yo yo, nan lòd jwenn 600
kilomèt soti nan yon misil 300 ranje kilomèt, te pran
pwa soti nan tèt degè a devan ak
te fè tèt degè a alum.
Se konsa, kounye a Patriot la ap eseye rive nan Scud a, ak pi fò nan
lè sa a, majorite nan mal nan moman an, li ta
jis vole nan Scud a.
Yon fwa operatè yo sistèm Patriot reyalize Patriot la
rate sib li yo, yo detounen tèt degè a Patriyòt.
Pou evite viktim li posib, li te pèmèt
tonbe atè a.
Sa se sa ki te pi fò moun te wè, jan fireballs gwo nan syèl la,
ak konpwann kòm segman aks dèz nan Scud tèt de gè.
>> Malgre, nan syèl la lannwit, Patriyòt yo parèt devan yo dwe
avèk siksè detwi Scuds, nan Dhahran, ta kapab genyen pa gen okenn
erè sou pèfòmans li yo.
Gen, sistèm rada Patriot la pèdi tras nan yon
fèk ap rantre Scud epi pa janm te lanse akòz
nan yon defo lojisyèl.
Li te Izrayelyen yo ki te premye dekouvri ki pi long la
sistèm a te sou li a, pi gwo a Diferans la tan te vin tounen,
akòz yon revèy entegre nan òdinatè sistèm nan.
Apeprè de semèn anvan trajedi a nan Dhahran a,
Izrayelyen rapòte bay Depatman Defans ki la
sistèm te pèdi tan.
Apre apeprè uit èdtan nan kouri, yo remake ke nan
sistèm te vin tounen nètman mwens egzat.
Depatman Defans lan reponn pa di tout
pil yo Patriot pa kite sistèm yo
sou pou yon tan long.
Yo pa janm di sa ki yon bon bout tan te - 8 èdtan, 10
èdtan, 1,000 èdtan.
Okenn moun pa te konnen.
>> Batri a Patriot estasyone nan kazèn lan nan Dhahran
yo epi ki te defekte li yo entèn revèy te sou plis pase 100 èdtan sou
Jou lannwit sa a nan 25 fevriye.
Li Suivi tan nan yon presizyon nan sou yon dizyèm nan yon dezyèm fwa.
Koulye a, yon dizyèm nan dezyèm lan se yon nimewo enteresan paske
li pa ka eksprime an binè, egzakteman, ki vle di
li pa kapab eksprime egzakteman nan nenpòt
modèn òdinatè dijital.
Li difisil yo kwè.
Men, itilize sa a kòm yon egzanp.
>> Kite a pran nimewo nan yon twazyèm.
Youn nan twazyèm pa ka eksprime nan desimal, egzakteman.
Youn nan twazyèm se 0,333 ale sou pou debordeman.
Genyen nan okenn fason fè sa ak presizyon ak absoli nan desimal.
Sa a se egzakteman kalite a menm nan pwoblèm sa ki te rive nan
Patriot la.
Pi long la sistèm nan kouri, pi mal tan erè a la te vin.
Apre 100 èdtan de operasyon, erè a nan tan te sèlman
apeprè yon tyè nan yon dezyèm fwa.
Men, an tèm de vize yon misil vwayaje a mach 5,
li a nan yon erè swiv nan 600 sou mèt.
Li ta yon erè fatal pou sòlda yo nan Dhahran.
>> Kisa ki te pase se yon lansman Scud te detekte l nan avètisman bonè
satelit ak yo te konnen ke Scud a te vini nan yo
direksyon jeneral.
Yo pa t 'konnen kote li te vini an.
Li te kounye a jiska eleman nan rada nan Patriot la
sistèm, defann Dhahran, lokalize e kenbe tras de la
fèk ap rantre lènmi misil.
Rada a te trè entelijan.
Ou ta aktyèlman swiv pozisyon nan Scud a ak Lè sa a,
predi ki kote li pwobableman ta dwe nan tan kap vini an
rada voye yon batman kè deyò.
Sa te rele pòtay lavil la pòte.
Lè sa a,, yon fwa Patriot la deside li te ase tan pase yo ale
fè bak epi tcheke kote nan pwochen pou sa a detected
objè, li ale tounen.
Se konsa, lè li tounen nan plas la mal, li Lè sa a, wè pa gen okenn
objeksyon, epi li deside ke pa te gen okenn objè.
Se te yon deteksyon fo ak gout tras la.
>> Scud a fèk ap rantre disparèt nan ekran an rada.
Ak segond apre, li te kriye byen fò nan kan an. Scud a
touye 28 ak se te youn nan dènye te tire pandan
premye Lagè Gòlf la.
Trajik, lojisyèl an mete ajou te rive nan Dhahran
jou sa a.
Yo epi ki te defo nan lojisyèl yo te fiks, fèmen yon sèl chapit nan
istwa a boulvèse nan misil a Patriyòt.
Patriyòt se aktyèlman yon akwonim pou "Tracking Mathis ekwifaz
Koupe aks nan Target. "
>> Tout dwa, se konsa yon rezilta pi plis lapenn nan pa byen
konprann monn sa a.
Ak Takeaway a, reyèlman, ki soti nan fim nan se ke solisyon an
te gen rdemare sistèm misil defans ou
chak yon fwa nan yon pandan y ap.
Se konsa, ankò, youn nan objektif yo nan kou sa a, sètènman
sou yon echèl pase aplikasyon sa yo plis modès, se
je vrèman louvri tout moun nan konnen egzakteman kouman ou ale sou
fè machin fè sa ou vle yo fè ak ki jan ou ale
sou fè sa yo kòrèkteman, pandan y ap nan tout wout la fè li
byen, chik, ak pou fè.
Se konsa, jounen jodi a, se pou yo plonje nan yon ti jan ti kras pi plis nan sa a, men
pou ke nou pa ale twò vit, patikilyèman pou moun ki mwens
konfòtab, men tou, pou nou ka kenbe enterè a nan
sa yo pi konfòtab, kite la jis byen vit kòmanse ak yon ti jan
nan rapèl nan kèk nan ide sa yo.
Epi ankò, mande ale, tou de nan moun oswa sou entènèt, si ou gen
kesyon pou nou ka kenbe tout moun nan paj la menm.
>> Se konsa, Aparèy nan CS50, rapid etap tounen, se
sa ki, nan mo pwòp ou a?
Li OK si ou pa gen okenn lide ki sa mo sa yo kapab ankò.
[Fèbl]
Oke, kidonk yon entèfas inivèsèl pou -
ke nou ka tout pataje.
Absoliman.
Se konsa, nou te kapab, pou egzanp, di ou pou yo ale nan kèk
sit entènèt, download sa a lojisyèl pou Mac OS.
Download lojisyèl sa a pou Windows, konfigirasyon an
fason sa a ak sa.
Men, reyalite a se lè sa a nou kouri antre nan teknik multitud
sipòte pwoblèm.
Epi tou li jou sa yo, anpil nan sa k ap fèt bò kote sèvè,
nan mond lan nan informatique, espesyalman lè li rive
entènèt devlopman ak aplikasyon pou sit entènèt ki baze sou, se aktyèlman
byen souvan fè sou UNIX oswa Linux òdinatè, kòm opoze a
Macs oswa PC yo Windows.
>> Se konsa, nan mitan upsides yo, lè sa a, nan lè l sèvi avèk bagay sa yo rele an
CS50 Aparèy se nou pral tout gen anviwònman an menm.
Se konsa, tout moun la sou paj la menm pa gen pwoblèm sa kenkayri ou
rive nan lakou lekòl la ak, men tou yo pral diletantism nan egzakteman
anviwònman an menm ke ou pral lè l sèvi avèk nan direksyon
fen semès la kòm byen pou devlopman entènèt, osi byen ke nan la
lavni pou aplikasyon pou mond reyèl ladan l '.
Se konsa, plis konkrètman, Aparèy nan CS50 se yon moso gratis nan
lojisyèl ki pèmèt ou nan kouri yon lòt sistèm opere,
Linux, nan ka sa a, sou pwòp òdinatè w lan, nan yon fenèt.
Koulye a, ou pa ka jis telechaje aparèy la.
Ou bezwen yon pwogram ak ki jwe oswa kouri aparèy la.
Ak se ke moso nan lojisyèl jeneralman li te ye tankou yon
ipèrvizeur.
Hypervisors rive nan fòm la nan pwodwi tankou VMware,
Virtual Box, paralèl.
Tout kalite konpayi fè lojisyèl, tou de lib ak
komèsyal yo, sanble.
Ki sa ou pral wè nan Pwoblèm Set 1 yo se enstriksyon sou kòman yo
jwenn gratis lojisyèl ak ki
run Aparèy la CS50.
E yon fwa w, ou pral gen, nan yon fenèt sou Mac ou a oswa PC,
yon anviwònman Desktop ki sanble byen tankou sa a, kote
li gen yon bagay Start meni-tankou nan la
anba bò gòch la kwen.
Li te gen yon katab Kay, oswa anyè Kay, nan bò gòch nan tèt
la, yon poubèl, ak pou fè.
Se konsa, nou pral toumante apa detay ki nesesè kòm nou ale.
>> Men, kounye a kite a kòmanse plonje nan C.
Se konsa, C se lang sa a pwogramasyon, menm jan an nan lespri
Grafouyen, men lwen mwens grafik, men iwonilman, byen lwen
plis pouvwa anpil yon fwa ou resevwa konprandr ak li.
Se konsa, nan C, nou ekri pwogram pa ekri kòd sous, ki se
sa a sentaks angle ki tankou, menm jan ak chosèt yo
demonstrasyon ke nou te fè dènye fwa ki pèmèt ou
eksprime tèt ou san patipri jisteman, si
arcanely, nan òdinatè a.
>> Se konsa, sa kalite lojisyèl pwodwi ou aktyèlman bezwen
yo ekri pwogram nan yon lang tankou C, ki baze sou nou
konvèsasyon jou lendi a?
[Fèbl]
OK, ou jis bezwen yon editè tèks.
Ou pa bezwen nenpòt lojisyèl espesyal
se pou chak yo ekri pwogram yo.
Ou jis bezwen yon editè tèks tankou notepad, sou Windows,
TextEdit sou Mac, oswa yon bagay yo rele jdi, nan mond lan nan
Linux, ki nou pral sèvi ak isit la.
Epi sa a, li, ekri pwogram yo.
>> Men, ekri nan sèlman mwatye nan ekwasyon an.
Ou Lè sa a, bezwen nan kouri yo.
Men, nan lòd yo jere pwogram -
ou pa ka kouri kòd sous.
Ou olye nou dwe fè sa a li an premye?
Yeah.
DAVID J. Malan: Ou bezwen
konpile li.
Epi, yon lòt moun, konpile kòd la sous vle di -
[Fèbl]
DAVID J. Malan: Egzakteman.
Tradikskyon li nan zewo ak inite.
Paske tout moun nan nou, jou sa yo, gen òdinatè ki gen proseseur,
prèske tout nan yo ki te fèt pa yon konpayi yo rele Intel, ak
Intel Anndan, vle di gen nan sa a andedan nan sèvo a ou
òdinatè, ke yo rekonèt kòm CPU a.
Ak youn nan bagay sa yo ke ki nan sèvo fè sa ki se, li konnen
ki jan yo konprann modèl nan zewo ak inite.
Li konnen sa ki modèl nan Bits reprezante plis de sa, ki sa
modèl reprezante soustraksyon, ki sa ki modèl nan
Bits reprezante enprime, epi kreye yon son moun kapab tande.
>> Se konsa, nan kout, CPU a, makonnen ak sistèm nan fonksyone,
ki se yon moso nan lojisyèl ki kouri sou tèt CPU a,
se konsa pale.
Ansanm, moso sa yo de konnen ki jan yo kouri pwogram ki
nou moun ekri.
>> Se konsa, si mwen ale nan aparèy la CS50 isit la, mwen bezwen louvri
moute yon editè tèks epi mwen kapab jwenn aksè nan sa a
nan yon koup nan fason.
Mwen kapab swa ale nan Menu, Programming,
ak Lè sa a, mwen ka chwazi -
non, pa ki meni.
Mwen ka ale nan Pwodwi pou Telefòn / jdi isit la yo louvri
editè ti kras tèks m 'yo.
Oswa plis tou senpleman, mwen ka klike sou sa a ti kras icon nan anba a
bò gòch kwen.
Epi, koulye a mwen jwenn anviwonman sa a isit la.
Li trè okoumansman de yon editè tèks ki senp, ak jis
youn oubyen de diferans.
Nan tèt la, kote kurseur a se blinking kounye a, sa a se kote
Mwen ka kòmanse ekri kòd m 'yo.
Nan pati anba a ap bagay sa yo rele fenèt la tèminal.
Ansanm ak ki kalite bagay sa yo mwen ka fè nan sa a
sa ki te rele fenèt tèminal?
[Fèbl]
>> Oke, kidonk mwen pral kouri kòmandman.
Ak kèk nan kòmandman sa yo nou kouri nan Lendi te yon ti kras
skre an premye, men ls pou lis, cd pou anyè chanjman,
RM, pou retire.
Se konsa, li sòt de yon fason fin vye granmoun-lekòl nan navige ou
òdinatè, lè l sèvi avèk sèlman klavye ou ak kòmandman textuelle,
epi yo pa yo, jeneralman, lè l sèvi avèk yon sourit.
Men, nou pral wè, anvan lontan, sa sa a aktyèlman ba nou yon
ti kras pi plis pouvwa ak yon ti kras pi plis precision ak ki
eksprime tèt nou.
Lè sa a, plis pase isit la sou bò gòch la, nou ap jis pral wè la a,
kòm nou kòmanse lojisyèl ekri, yon rezime ti kras nan nan
pwogram ke nou te ekri sou bò gòch tèt.
Men, nou pral wè sa ankò anvan lontan.
>> Se konsa, kite a fè yon bagay san patipri senp isit la.
Kite m 'premye ale pi devan epi ale nan dosye li an, Save, epi mwen jis
ale nan klike sou jharvard isit la, sou bò gòch, ak
jharvard se, ankò, non an pou folder lakay mwen, mwen
dosye pèsonèl, m ', koulye a yo te Jan Harvard, kòm nou tout ki
pwal byento pwal Jan Harvard nan anviwonman sa a.
Li te resevwa lis sa a yo Kay, Dokiman mwen ak pou fè,
ke mwen vle sove, koulye a, sa a ranpli pous
Se konsa, mwen pral rele li hello.c. Lè sa a, mwen pral ale
devan epi klike sou Save, epi kounye a sa m 'genyen isit la se yon tab
rele hello.c, se konsa anpil tankou yon lòt di ki kalite editè.
>> Se konsa, kounye a kite m 'ale pi devan epi kòmanse ekri yon pwogram.
int prensipal (san valè).
Lè sa a, mwen jis te fè dènye tan, printf, pou ekri ak lèt ​​detache fòma,
("Hello, mond!"
);.
Prèske ranpli.
Men mwen m 'manke yon koup la plis detay.
Ki sa ki manke nan pwogram sa a vrèman ke mwen bezwen pou
li nan aktyèlman konpile?
Yeah.
[Fèbl]?
>> DAVID J. Malan: Yeah, Se konsa, mwen bezwen gen ladan estanda a
Mwen / bibliyotèk O.
Se konsa, sa a bezwen ale pi wo a prensipal, se konsa mwen jis ale nan
fè kèk chanm pou l 'la.
Apre sa, mwen pral fè # enkli .
Ak Avi parantèz yo Incline la.
Epi kòm yon sou kote, jdi se yon itilizatè zanmitay ti kras, si
pafwa yon ti kras konfizyon, nan ke li ap eseye ede ou
je remake ki sa liy moute ak sa ki.
Se konsa, lefèt ke kurseur mwen, se yon dwa pwochen sa a Incline
bracket, avi kouman li a en Incline nan lòt
bracket plis yon sèl sa a.
Epi sa a, jis trase atansyon mwen an reyalite a ke mwen
gen simetri.
Ak simetri nan pwogram se jeneralman yon bon bagay.
Menm jan tou, si mwen demenaje kurseur mwen nan fen a, remake kijan la
aparèy òtopedik Curly liy jiska yo fè montre ke, se wi, mwen gen yon yon sèl louvri
ak yon yon sèl fèmen, se konsa pale.
>> Tout dwa, ak mwen ka fè yon lòt bagay.
Li pa estrikteman nesesè, men pratik bon, yo di
retounen 0.
Ak 0 retounen fè sa pou nou isit la?
Oswa vle ki sa?
[Fèbl]
DAVID J. Malan: Men, pa gen anyen nan sa ki mal.
Ak franchman li difisil pou anpil yo ale mal nan yon
pwogram sa a kout.
Se konsa, mwen jis ke yo te super eksplisit ke tout se byen.
Se mwen menm, moun a, lè mwen kouri pwogram sa a, pral pwobableman pa janm
wè ke 0.
Anjeneral, nimewo sa yo sa ki te tounen soti nan prensipal
sèlman dèyè tèt yo nan kò moun yo lè
yon bagay ale mal.
Epi ou jwenn yon pòp ti kras moute li di erè nan sistèm, yon sèl,
de, twa, oswa kèlkeswa sa nimewo a te ke
te aktyèlman retounen.
Se konsa, tout lòt bagay ki mal ak sa a?
[Fèbl]
>> DAVID J. Malan: Se konsa, sa a se pa tèlman yon erè fonksyonèl
men ki gen yon yon sèl ayestetik.
Mwen ta pwobableman mete nan yon karaktè newline gen nan la
nan fen sa a fisèl pou nou aktyèlman deplase kurseur la
liy nan pwochen, ak pwogram nan jis sanble yon ti kras bèl pase.
>> Se konsa, kounye a kite m 'ale desann nan fenèt tèminal mwen
ak rale tounen pous
Ak bagay sa a isit la, sa yo rele èd memwa a.
Li nan jis raple m 'ki moun mwen ye a, jharvard @ aparèy, kote
aparèy se non an nan òdinatè a, m ap.
Nan parantèz sa a tild, senbòl la squiggle, ki
reprezante ki sa?
ODYANS: anyè Kay.
DAVID J. Malan: anyè Kay.
Se konsa, sa a, se jis yon nòt steno pou li di ou se nan
folder pèsonèl ou kote tout nan dosye ou a ale pa defo.
Se konsa, koulye a, nan isit la, mwen ka tape ls pou lis la.
Ak bagay la sèlman mwen wè isit la nan moman sa a se hello.c.
Epi sa a, bon paske mwen jis te ekri sa a.
>> Se konsa, kite m 'ale pi devan epi fè hello.
Ak Avi a mwen pa sezisman fè hello.c.
Olye de sa, mwen sèlman ou tape non an baz nan dosye a, hello.
Epi fè, jan nou te wè nan Lendi, yo pral jis dégager ke mwen vle
. c dosye a.
Se konsa, koulye a, mwen te tape fè hello.
Koulye a, mwen wè lòd sa a san patipri long epi yo pral kontinye
wè sa a ankò epi ankò.
Men, yo dwe klè, rezone, pawòl Bondye a ki jis parèt,
ki nan du a vrè.
Fè se jis yon sèvis piblik bati.
Se jis nan yon itilizatè pwogram plis zanmitay ki ekonomis m ', nan la
long kouri, ki soti nan gen yo tape soti èkstrèmeman fatigan long
kòmandman tankou sa youn.
Se konsa, ou ta ka kouri rezone manyèlman.
Ou te kapab tape nan tout sa manyèlman.
Senpleman vin trè fatigan.
Se konsa, fè se jis yon pwogram ki senplifye lavi nou ak
kouri kòmandman plis konplèks pou nou.
>> Tout dwa, pou kounye a sa ki dosye yo ta dwe mwen gen
nan aktyèl anyè mwen an?
Pa sèlman hello.c, men tou, hello.
Se konsa, si mwen vle kouri hello, sonje sa m 'di nou dot koupe,
kote vle di dot ale nan folder aktyèl la, tout kote ou
ye a, epi Lè sa a, kouri pwogram nan te rele hello, ak tout bon, kounye a,
Mwen gen alo lemonn.
Tout dwa, nenpòt kesyon sou workflow la oswa sentaks la nan
ki sa nou jis te fè?
>> Tout dwa, se konsa kite a pran bagay yo yon Notch ankò.
Se konsa, sa a te underwhelming jis ekri yon pwogram ki sèlman
janm di hello, lemonn.
Se konsa, nou chanje li, nan Lendi, vle di, hello, David.
Li se yon ti kras pi plis pèsonèl, men jis osi difisil kode kòm la
premye vèsyon.
Se konsa, pa tout sa ki irezistib.
Men, gen ki egziste, nan C, fonksyon sètènman san konte
ekri ak lèt ​​detache, fonksyon ki fè ou jwenn opinyon itilizatè.
Yo ak fason pou nou te fè sa sa a, lòt jou a, se te jan sa a.
Mwen anvan m 'aktyèlman enprime soti yon bagay, mwen te resevwa premye
yon bagay nan men itilizatè a.
Se konsa, kite m 'fè sa ankò.
>> Fisèl la, kote yo se jis yon non abitrè, isit la, pou yon
fisèl, egal GetString.
Se konsa, sa ki te GetString?
Li evidamman ap vin yon fisèl, ki baze sou non li yo.
Men, sa ki se li, plis teknikman?
Li se yon fonksyon.
Se konsa, li yon fonksyon ki pa vini ak C se pou chak.
CS50 anplwaye te ekri sa a.
Se konsa, yo sèvi ak sa a, ou pa ka jis gen ladan stdio.h,
Ou ap bezwen tou gen ladan yo ki sa?
Yeah.
Se konsa, cs50.h, ki se jis yon dosye nou ekri kèk ane de sa.
Nou enstale l 'sou aparèy la pou ou ansanm ak
tout dosye yo estanda.
Se konsa, nan semèn sa yo premye kèk nan klas la, n ap sèvi ak
sa a jis senplifye pwosesis la nan fè anpil debaz
bagay sa yo tankou ap resevwa opinyon itilizatè.
Paske jan nou pral wè nan kèk semèn, jwenn itilizatè D 'nan yon
lang tankou C se aktyèlman surprenante konplèks,
patikilyèman paske ou pa konnen an avans, anjeneral, ki jan
anpil bagay itilizatè a ki pral tape pous
Ak lè ou pa konnen ki kantite ou kapab espere done, ou pa fè sa
konnen ki kantite memwa asiyen.
Men, si ou gen aktyèlman yon itilizatè konfwontasyon ki nan ap eseye
Hack nan sistèm ou a, aksidan òdinatè w lan, byen,
jeneralman metòd an premye nan atak se, menm jan mwen te fè sou
Lendi, tape yon antye sekans long nan karaktè o aza,
frape Antre, ak wè sa ki kraze.
Paske jeneralman, si yon repo pwogram nan, ke sijesyon nan
yon defo sekirite, potansyèlman.
Li sètènman sijesyon nan ou, pwogramè a, li te gen te fè yon
erè, men plis danjerezman, ou ta ka te fè yon
sekirite ki gen rapò ak erè, epi jeneralman nou pral wè ki
lè sa a jan machin yo ap konpwomèt nan jou sa a, tou de
nan mond lan nan sit wèb la ak pwogram nan nan
liy lòd, tankou sa a.
>> Tout dwa.
Se konsa, fisèl la egal GetString.
Se konsa, plis konkrètman kounye a, ki sa ki liy 6 fè isit la?
Se konsa, fonksyon an sou bò dwat la vin fisèl,
pran konbyen agiman?
Oke.
Se konsa pesonn.
Yon ti kras saniti tcheke.
Yon diskisyon, ankò, se jis yon opinyon nan yon fonksyon chanje
konpòtman default li yo nan kèk fason.
Men, nan ka sa a, mwen pa vle chanje
konpòtman an nan GetString.
Mwen jis te vle jwenn yon kòd.
Se konsa, mwen mete anyen nan parantèz yo, ak Lè sa a, mwen mete yon
virgules demarking nan fen liy lan nan kòd.
Koulye a, egal a siy sa pa vle di egal, se pou chak.
Sa vle di plasman, ki vle di mete tou sa vin
outputted sou andedan an dwa nan tou sa ki sou bò gòch la.
>> Se konsa, sou bò gòch la, nou di nou yo te deklare yon
fisèl rele s.
Ak plis espesyalman, nou te resevwa lajan memwa andedan nan
ki nou pral mete Bits yo ki reprezante yon sekans nan
karaktè.
Men, pou jounen jodi a, nou te resevwa lajan
oswa te deklare yon kòd.
Tout dwa.
Se konsa, kounye a yon fwa mwen te fè sa a, mwen vle ploge nan valè a nan
a, pa valè David la.
Se konsa, sa a se sa ki mal poukisa?
Se konsa, sa a se jis literalman nan la difisil-kode.
Li nan di "alo, s", ki se pa sa m 'vle.
Se konsa, mwen ka fè sa.
Siyen an pousan se yon kontneur, men kounye a mwen bezwen
pase nan enprime yon agiman dezyèm fwa.
Sonje byen, agiman fonksyon yo separe pa
vigil, se konsa vigil nan pwochen isit la mwen mete apre sa a nan lèt la.
Ak nan kontèks sa a, koulye a, yo se varyab la, ak printf,
yo lè li resevwa moun ki entrain de -
fisèl la sou bò gòch la ak s la non varyab sou bò dwat la -
li pral ploge lèt la nan ansyen an pou nou, epi
jis enprime soti yon bèl fisèl bèl ki gen
tou sa li se ke nou tape pous
>> Se konsa, kite a eseye sa a.
Ale nan ale pi devan epi rale soti, tounen
bò fennèt tèminal m 'yo.
Rale nan nan pati anba a isit la.
Tape fè hello.
Rezone sanble yo te relance.
Mwen pral tape. / Hello, Antre.
Pa gen anyen sanble ap pase ankò, men li la nan sa a èd memwa
ke mwen ka tape yon bagay tankou Nate, Antre, epi kounye a nou gen
Hello, Nate.
Apre sa, mwen ka fè l 'ankò ak Rob, ak pou fè.
Se konsa, èspere ke kounye a nan pwogram sa a ap aji kòm mwen gen entansyon.
>> Koulye a, pa tout sa ki itilizatè zanmitay.
Mwen te gen okenn lide sa k ap atann de m '.
Se konsa, nou kapab sètènman netwaye sa a moute yon ti jan.
Kite m 'ale tounen moute isit la, ak olye pou yo jis plonje nan ak
mande itilizatè a pou yon fisèl, se pou m 'la fòmèlman di
itilizatè sa m ap tann.
Se konsa, printf ("Mete yon fisèl:"
);
Se konsa, pa gen okenn varyab isit la.
Pa gen siy pousan.
Jis senp fraz la lang angle.
Kite m 'koulye a ale nan anba a isit la ak relance pwogram mwen an.
Men, pa gen anyen sanble yo chanje.
Poukisa?
Mwen dwe compile li.
Se konsa, fasil erè fè a.
Men, ou gen pa sèlman sove dosye a, men
compile pwogram nan.
Se konsa, si mwen re-kouri fè hello, kounye a sonnen ap kouri.
Koulye a, mwen ka kouri. / Hello. Epi, koulye a mwen wè "Mete yon fisèl:".
Oke.
Kounye a li nan yon ti kras plis user-zanmitay.
Nate, Antre, hello, Nate.
>> Oke, kite la eseye sa a ankò, li kòmanse panse
sou ka kwen.
Se konsa, jis tankou nan grafouyen, w ap ankouraje oswa yo ke yo te
ankouraje nan espèk a kalite panse sou sa t 'ka ale
sa ki mal si ou pa prevwa tout bagay itilizatè a kapab fè.
Pinèz, Se poutèt sa, ta ka krindr.
Se konsa, antre nan yon fisèl -
sa ki nan yon ka kwen isit la?
Ki sa ki nan yon senaryo se mwen menm, pwogramè a, pa ka gen
antisipe?
Yeah.
Oke.
Se konsa, sa si mwen tape nan yon nimewo tankou sa a?
Tout dwa.
Se konsa, li toujou ap travay.
Gramatically pa fè okenn sans.
Men, nan omwen pwogram nan travay.
>> Ki sa ki nan yon lòt ka kwen?
Yon bagay mwen pa t 'atann.
Yeah?
Oke.
Se konsa, nou ta ka fè yon bagay tankou yon nimewo reyèlman, reyèlman gwo.
Se konsa, kite a fè sa isit la.
Kite m 'rale soti pou yon dezyèm, kite m' mete aksan sou.
Pa ka kopi ak keratin desann isit la.
Tout dwa.
Se konsa, mwen pa ka kopi ak keratin nan fenèt sa a tèminal, se konsa nou pral
jis simule li.
Kite m 'rale soti, ale nan vlope.
Mwen pa pwal fè sa pou twò lontan, paske li pa pral
aktyèlman kase nan pwogram sa a.
Men, li te kapab.
Antre.
Men, li pa t '.
Tout dwa.
Men, li la yon ka kwen otantik.
Ak rezon la sèlman ki Konpòte kòrèkteman, se konsa
pale, se paske GetString an fonksyon CS50 se aktyèlman
ki fèt anba kapo machin lan, kòm nou pral wè nan kèk semèn,
otomatikman asiyen pi plis ak plis RAM, plis ak plis
memwa soti nan sistèm nan fonksyone, lè li reyalize, Wow,
ou te vrèman tape nan yon bagay byen long.
Koulye a, sa a se yon ti jan nan yon manti blan.
Si nou aktyèlman Sarepta pou byen pandan yon, mwen tape nan
yon bagay tankou 5 milya dola karaktè nan klavye a
isit la, oswa vrèman frape kopi-keratin byen yon ti jan, nou byen posib
ta kapab lakòz pwogram lan nan aksidan.
Jis yon ti kras pi difisil simule ki ak yon fini
nan yon kantite tan.
>> Ki sa ki nan yon lòt ka kwen nou te ka eseye?
Yeah?
Yeah.
Se konsa, poukisa pa nou reponn anyen?
Se konsa, nou gen aktyèlman pran kèk aksyon, paske otreman
pwogram lan k ap pase yo chita gen kliyote tout jou.
Men, si mwen jis frape Antre -
OK, kounye a, toujou sanble sa ki mal.
Pa t 'aksidan, men petèt gen nan kounye a yon opòtinite
kòmanse mete ann aplikasyon yon pwogram pi plis rijid
ki aktyèlman tcheke.
Men, si fisèl la, fraz la, pawòl Bondye a ke mwen
tape nan gen longè 0, byen, petèt mwen ta dwe rele nan la
itilizatè, oswa di l 'oswa li yo antre nan yon kòd ankò, se konsa ke
nou aktyèlman jwenn sa ki sanble konpòtman ki kòrèk epi yo pa
jis konplè sipèvizyon sou pati m 'yo.
>> Kesyon nan do?
Desimal nimewo.
Se konsa, nou te ka eseye sa, tou.
1,10000005.
Sanble tankou ki nan ale nan jis travay aktyèlman oke.
Ak ki aktyèlman yo prevwa a.
Menm si nou ka gen tape nimewo sa a gen, oswa yon
pi gwo nimewo pi bonè, reyalize ke lè nou ap tape itilizatè
D 'epi nou ap sèvi ak fonksyon an GetString, pa
pwoblèm si sa m ap tape sanble yon nimewo.
Sonje byen, dapre ASCII, tout bagay sou ou
klavye a gen yon valè nimerik ki ka trase nan yon
karaktè, yon Char.
Se konsa, nan ka sa a, menm si mwen ta ka tape nan yon nonb,
òdinatè ki pral panse a li, se konsa pale, kòm yon fisèl -
yon bagay ki sanble ak yon nimewo, men se
pa aktyèlman yon nimewo.
Men sa a aktyèlman yon seg pafè, paske kounye a nou kapab
aktyèlman tranzisyon nan ekri pwogram ki
itilize lòt done kalite.
>> Se konsa, san konte lè l sèvi avèk charaktèr, ou pito, san konte lè l sèvi avèk strings,
reyalize ke nou gen lòt done kalite nan C osi byen ke nan
lòt lang yo.
Yon Char, kòm non an sijere, se jis yon karaktè sèl.
Yon flote se yon valè pwen k ap flote, epi ki se jis yon anpenpan
fason pou li di yon nimewo reyèl - yon bagay ki gen yon desimal
pwen nan li ak kèk nimewo a gòch la ak / oswa dwat.
Yon int se yon nonb antye, ki se jis yon nimewo tankou 123.
Epi, koulye a pi plis enteresan yo se bagay sa yo tankou doub.
Nou sa nou te di yon doub se te dènye tan?
Li nan 64, dwat.
Se konsa, Lè nou konsidere ke tipikman yon flote se 32-bit -
Se konsa li sa a lontan nan memwa, li itilize 32 zewo ak moun yo
reprezante valè - yon doub se literalman de fwa ke, ki
vle di ke ou ka swa reprezante pi gwo chif, oubyen
ou ka reprezante nonb plis presi.
Se konsa, ou ka gen plis nimewo apre pwen desimal la, men
kòm parèy la te di nan videyo a, menm yon bagay ki senp
Concept tankou 1/3 pa kapab reprezante jisteman pa yon
òdinatè, paske evantyèlman ou kouri soti nan Bits, ak
Se poutèt sa ou ka sèlman fè .33333333 fwa anpil, nan
ki pwen ou jis gen di mwen soti nan reprezantasyon
espas, mwen gen jis rele li yon jou epi yo reprezante li
yon ti jan enpresiz renmen sa.
Ak yon long lontan -
non estipid, men li la paske gen nan yon kalite done ke yo rekonèt kòm yon
lontan nan C ki azar se souvan 32 Bits, jis tankou yon
int se 32 Bits, men yon long long se
jeneralman 64 miyèt moso.
Se konsa, li jis vle di ou ka reprezante pi gwo
nimewo pase sa.
>> Tout dwa.
Se konsa, si nou aktyèlman vle kòmanse ki reprezante bagay sa yo, nou
ta ka bezwen plis kalite sofistike, ak
sa a, se rezon sa a genyen fisèl.
Se konsa, nan bibliyotèk la CS50, ki dosye yo rele cs50.h, nou te
aktyèlman te deklare yon kalite done, se konsa pale, rele fisèl,
men fisèl pa aktyèlman egziste.
Sa a se, ankò, youn nan sa yo kouch nou pral kale
tounen nan yon semèn oswa de voye jete byen lwen, ak aktyèlman
gade anba kapo a nan sa ki yon fisèl aktyèlman se, ak
li montre kouman li a reprezante.
Nou ap tou pral gade valè Boolean.
>> Se konsa, sa se te yon bouleen nan yon kontèks reyur?
Li nan vrè oswa fo.
Se konsa, li se jis yon valè ki nan vrè oswa fo, sou oswa koupe, 1 oswa
0, sepandan ou vle wè mond lan.
Se konsa, nan C, mèsi nan bibliyotèk la CS50, ki nan klòch
gen ladan yon lòt bibliyotèk anba kapo machin lan, nou gen
aksè a yon kalite done ki nan rele bouleen, ki pral yon
literalman pèmèt nou bay valè yo vre oubyen fo
bagay sa yo nan yon pwogram.
>> Se konsa, kite a ale pi devan isit la epi ekri yon pwogram ti kras ki
fè yon bagay ki gen chif olye.
Se konsa, kite m 'ale tounen nan aparèy la CS50, kite m' ale pi devan epi
kreye yon dosye nouvo isit la yo rele -
kite yo jis di yon bagay ki senp, tankou math.c.
Tout dwa.
Epi, koulye a ale monte nan tèt la nan pwogram m 'yo, mwen
pral fè abityèl la -
# Enkli , pou m 'ka sèvi ak
printf, int prensipal (san valè) -
nou pral tounen vin jwenn, evantyèlman, ki sa ki vle di int
isit la, sa ki vle di anile isit la, men pou kounye a, jis konnen ke
ou gen yo kòmanse pwogram tankou sa a.
Koulye a, mwen pral ale pi devan epi di yon bagay yon ti kras
diferan - printf ("Ban m yon nimewo:"
);.
Lè sa a, mwen pral fè int n = GetInt, paske li
vire soti GetInt se yon lòt fonksyon nan bibliyotèk la CS50
san konte GetString.
Epi, koulye a mwen pral fè yon bagay estipid, tankou "mèsi
pou d nan%, "pou desimal nonb antye relatif, ak Lè sa a, n vigil, ak
Lè sa a, retounen 0.
Se konsa, ankò, retounen 0 pa gen anyen fè avèk nimewo a mwen
mande itilizatè a pou li a.
Jis vle di nan fen a ki tout moun, prezimableman, se byen.
>> Se konsa, kite m 'ale desann nan fenèt tèminal mwen isit la.
Kite m 'tape fè matematik, antre.
Ak yon bagay nan sa ki mal.
Fè matematik pa t 'travay.
Isit la nan premye an nan mesaj erè nou an.
Poukisa?
Yon ti kras skre, men -
Yeah.
Se konsa, cs50.h.
Se konsa, ankò, espesyalman bonè nan, ou pral ekri premye fwa ou
pwogram pou pset 1 nan seksyon, nan lè biwo louvri, ak
franchman, li pral akablan pafwa sa bagay sa yo
yo aktyèlman di.
Men, ou pral reyalize trè vit yo kòmanse tonbe
nan bokit kote yon sèl sa a vle di ke ou te sispann yon sèl
nan la # gen ladan nan tèt la nan dosye a.
Ak rezone, du la, se pou fè w konnen sa a pa
li di, olye fancifully, enplisit deklarasyon
GetInt fonksyon se valab.
>> Tout dwa.
Se konsa, sa sa vle di?
Li jis vle di ou te chal te deklare GetInt nan
sans ke ou pa t 'eksplisitman te deklare li.
Klèman deklare Int, ou gen yo anseye
Rezone ke li egziste.
Ak solisyon an trè senp pou sa se anseye li pa
ki gen ladan sa a ranpli lòt, cs50.h, nan
tèt la nan dosye ou.
Paske literalman, ki sa ki gen ladan yo se # li di rezone
bèl anpil yo ale jwenn dosye a rele cs50.h, kopi,
keratin li otomatikman nan tèt la nan pwogram mwen an pou m ',
ak Lè sa a, konvèti kòd la sous zewo ak inite.
Men, ki ta evidamman gen anpil fatigan si nou te gen moun
ale w kopye e kole fichye sa yo gwo tout tan tout tan an,
Se konsa # enkli jis fè sa ki tout sa ki otomatikman san
muddying kòd mwen an avèk bibliyotèk yon lòt moun la.
Ak yon bibliyotèk se jis yon lòt dosye ki gen fonksyon ak
lòt bagay ki te yon lòt moun ekri, ke nou se
swe pou dedomajman pou pwòp nou yo.
>> Tout dwa.
Se pou nou eseye ankò.
Fè matematik.
Antre.
Bon.
Se konsa, ki sanble ak te travay.
Se konsa, kite m 'kouri matematik;. / Matematik.
Antre nan ki ban m 'yon nonb, 123.
Mèsi pou 123 la.
Koulye a, kite nan eseye yon lòt ka kwen.
Yon fil se trè jenere, paske yon
fisèl kapab anyen.
Kapab sanble avèk chif, gade tankou
karaktè, gade tankou mo yo.
Men, yon int a se yon int.
Se konsa, kounye a si mwen itilizatè a difisil, epi li di: "Ban mwen
yon nimewo, "ki sa, si mwen eseye fè yon bagay tankou 0.1?
Oke, sa a, se yon nimewo, epi li konsistan avèk la
gramè mwen itilize isit la, men anba kapo machin lan, mwen nan
kou lè l sèvi avèk GetInt an fonksyon.
>> Se konsa, kite a wè sa ki rive.
Antre, rekoumanse.
Tout dwa.
Kite m 'ka difisil ak jis frape Antre ankò.
Antre, Antre.
Se konsa, kounye a li sanble ke GetInt se yon ti kras pi plis
pouvwa anpil pase GetString.
Nou menm, manm pèsonèl la, aplike nan yon fason ke si nou remake
ou pa t 'ban nou yon int - ak yon int se yon nimewo desimal
ki gen zewo yo, nou menm, Dezan, threes, four, Fives, sixes,
sevens, eights, oswa Nines.
Epi sa a, li.
Pa gen pwen desimal, pa gen karaktè, pa gen ponktiyasyon.
Li sanble ke nou gen pou yo kowopere pou.
Se konsa, kite m 'eseye kat, senk, sis, e ke ap resevwa m' nan.
Se konsa, reyèlman, yo dwe nan dèyè isit la, mwen ta pwobableman di "Ban m '
yon nonb antye relatif "yo nan lòd yo transmèt itilizatè a
ekzakteman ki sa mwen gen entansyon.
>> Koulye a, kite nan panse osijè de anba kapo a.
Nou pa pwal fè yon gade nan ki jan cs50.h se aplike jodi a,
ki nan bibliyotèk.
Men, si li kenbe li di rekoumanse, rekoumanse, rekoumanse, ki sa ki pwogramasyon
konstwi mwen prezimableman lè l sèvi avèk anba kapo a
aplike sa?
Se konsa, jis yon riban, dwa?
Youn nan ide ki pi senp ke nou te wè nan grafonyen moun.
Pou tout tan konstwi a, Repete a konstwi.
Prezimableman, nan pwogram sa a, anba kapo machin lan, menm
menm si yo ekri l la nan C epi yo pa grafouyen, li te fè
yon bagay yo rele ekivalan a pou tout tan si itilizatè a pa gen anyen
tape nan yon nonb antye relatif, di rekoumanse, rekoumanse, rekoumanse, rekoumanse, se konsa
Lè sa a, finalman lè nou fè jwenn yon nonb antye relatif, lè sa a ou
kraze soti nan riban.
>> Se konsa, fonksyon ki lòt nou ka sèvi ak isit la nan bibliyotèk CS50 a?
Oke, kalite nan yo menm ki evidan, omwen ki baze sou la
done kalite ke nou kounye a konnen egziste.
Nou aplike GetString, GetInt, men nan tout nan
premye semenn nan tèm nan, ou ka tou itilize GetFloat ak
GetDouble ak GetLongLong yo nan lòd jwenn pwesizeman la
done kalite ke ou vle.
Paske detay kle a isit la se ke kontrèman ak kèk lang,
tankou Piton ak Ruby, kote ou pa nesesèman gen
deklare kalite nan done nan yon varyab -
ou pa bezwen di òdinatè a ki kalite bagay
w ap ale nan mete nan varyab la -
nan C, ou dwe fè tout tan sa presi.
Se konsa, si ou vle yon varyab rele n, yon ti moso nan depo
ki nan ka sa a k ap pase yo 32 Bits nan konvansyon, ou
yo dwe di sou òdinatè a ki sa yo Bits yo se
ale nan magazen yon nimewo -
pa yon karaktè, se pa yon fisèl, se pa yon flote.
Lè sa a adrese pwoblèm nan nou efektivman
li pran kouri nan semèn dènye a.
Si nou ap sèvi ak zewo ak moun yo chif ki rive jiska reprezante pa sèlman
nimewo men A ak B ak CS, ki jan nan mond lan se yon
òdinatè pral konnen ke sa a modèl nan Bits aktyèlman
reprezante kantite 65, kòm opoze a reprezante nan
lèt A, ki azar, selon
ASCII, sonje, te ekivalan a 65?
>> Se konsa, sa yo kalite done bay kontèks nan òdinatè a, se konsa
ke li konnen si sa yo Bits yo ta dwe kapab entèprete kòm yon
Int oswa kòm yon fisèl.
Nenpòt kesyon, lè sa a, sou sa a?
Yeah?
DAVID J. Malan: Bon kesyon.
Si nou pran soti stdio.h, nou sove dosye a -
kite m 'ale desann nan fennèt la tèminal epi kouri fè matematik, rale
an ak antre nan -
koulye a, mwen jwenn yon erè diferan, paske mwen chal
deklare sa ki fonksyone kounye a?
Printf.
Se konsa, koulye a, mwen te kreye yon pwoblèm nouvo, ki gen solisyon se
esansyèlman menm bagay la.
Mwen bezwen mete ki tounen.
ODYANS: [fèbl]
DAVID J. Malan: Oh.
Se konsa, si m 'pran soti -
Okay, yeah.
Se konsa, si mwen retire enklizyon estanda mwen / O bibliyotèk la a moute
isit la, ak Lè sa a, w ap di si mwen debarase m de printf, jwenn
debarase m de printf?
Wi.
Sa a ta dwe travay, paske mwen pa lè l sèvi avèk nenpòt - whoops.
Èske mwen jis kouche?
Oh, oke.
Sa a pa pral travay paske yo gen yon erè nouvo nou jis prezante.
Ak yon sèl sa a se yon ti kras pi plis klè, kifè.
>> Ki sa ki nan pwoblèm nan?
Rès n varyab.
Se konsa, sa a erè se rezilta nan nou an gen configuré la
aparèy yo dwe patikilyèman pedant, reyèlman rele nan
ou pou chak erè sa posib, menm si kalite li a nan
yon erè ki pa fatal tankou sa a - se li vrèman tankou yon gwo
fas ke mwen resevwa lajan yon int, mete yon nimewo nan li, e Lè sa a,
jis te fè pa gen anyen ak li?
Se konsa, fonksyonèl, pa gen okenn.
Sa pa a pral kraze pwogram nan.
Se jis nan kalite estipid dwat,?
Pa gen okenn valè nan gen mande pou nimewo sa a, ki estoke
li nan yon varyab, si ou pa janm ap ale nan fè anyen
ak li, si enprime li oswa sove li.
Se konsa, nan ka sa a, rezone ap rekonèt kòm anpil, ak
li nan di rès n varyab.
>> Se konsa, nou ka repare sa a si nou vle reyèlman.
Men ankò, sa a se pa pwogram bon kounye an.
Se konsa, mwen jis te kapab fè sa a -
desann isit la, kite m 'klè ekran an, fè matematik.
Ki travay.
Koulye a, mwen ka kouri pwogram matematik m 'yo, pran opinyon -
byen, sa ki te move.
Pran opinyon, e se pou tout li fè sa, nan ka sa a.
>> Se konsa, aktyèlman, se pou yo eseye yon lòt ka kwen ke nou
pa t 'panse a pi bonè.
Nan ka sa a - isit la, se pou yo tounen nan youn nan ki se yon
ti kras pi plis user-zanmitay.
Kite m 'ale tounen isit la epi kouri fè matematik ankò.
Whoops, ki sa ki t 'mwen fè sa ki mal?
Te rive nan woule tounen pi lwen.
Oke.
Koulye a, nou ap tounen nan eta orijinal la, kote tout
se èspere ke byen.
Epi, koulye a si mwen kouri matematik, 123 sanble nan travay.
Men sa se pa reyèlman yon prèv ki efikas, jis di
oke, ki travay.
789, ki travay.
Tan yo soumèt.
Paske gen nan ka kwen lòt isit la.
Yon fil pa t 'reyèlman ban nou anpil pwoblèm lè ou tape nan yon
antye anpil nan karaktè.
Men, sa ki si mwen tape nan sa a?
Frape nimewo a 1 yon lot antye, antye anpil isit la -
tout dwa, li te jwenn yon ti kras raz, se konsa mwen pral
sispann isit la, ak mwen pral frape Mete.
>> Ki sa ki lanfè a jis ki te pase?
Se konsa, sa a ka aktyèlman ap eksplike.
Se konsa, sa te pran li kòm binè?
Yon panse bon, men pa gen okenn, li pa lefèt ke li pran l '
kòm binè, paske tout bon, sa ki te jis kalite yon
konyensidans.
Nou ka fè sa a ankò.
Se konsa, gen nan pa gen 2 nan sistèm nan binè, ki nan
pwobableman ase de tout fason.
Antre.
Se konsa, sa ki te pa pwoblèm nan.
Ki lòt bagay?
Egzakteman.
>> Se konsa, panse tounen nan ki sa yon int aktyèlman se.
Li nan 32 Bits ki kolektivman yo entèprete
kòm yon nimewo.
Si ou gen 32 Bits, sa vle di chak nan Bits yo kapab
yon 0 oswa yon. 1, 0 oswa yon 1
Se konsa, sa vle di gen nan de posiblite pou sa a ti jan,
de posiblite pou sa a, de posiblite pou sa a
ti jan - pou ki nan 2 fwa 2 fwa -
pou ki nan 2 a pouvwa a 32 se kantite total
pèrmutasyon nan zewo ak moun yo si ou gen 32
placeholders, zewo yo oswa moun yo, nan devan ou.
Se konsa, si mwen gen 2 a 32 an, matematik, se sa ki?
Se konsa, li nan yon anpil.
Li nan 4 milya dola, bay oswa pran.
Ak 4 milya dola pa sanble yo gen sa ki te soti enprime isit la.
An reyalite, sa a sanble pi pre 2 milya dola.
Men sa se pa yon konyensidans.
Reyalite a ki te òdinatè a entèrprete nimewo gwo m 'yo,
sekans gwo m 'nan yo menm ak Lè sa a, sekans gwo m' lan nan Dezan,
kòm apeprè 2 milya dola, se eksplike ki jan?
Genyen nan yon bouchon sou int la.
Genyen nan yon sètènman yon valè maksimòm ke ou ka reprezante.
Men, li la anjeneral 4 milya dola, dwa?
Si 2 a 32 an se apeprè 4 milya dola, ki sanble tankou
sa a, se nimewo nan pi gwo.
Se konsa, pa yon rès, men yon panse bon.
Nimewo negatif.
Se konsa, si ou gen 4 milya de dola bagay sa yo posib ou kapab
reprezante ak sa yo pèrmutasyon divès kalite 32 0s ak
1, byen, li vle di rezon ke nou moun ta ka vle
reprezante pa sèlman nonm antye relatif pozitif
men nonm antye relatif negatif.
Ak tout bon, ki nan sipozisyon a ki C a fè.
Se konsa, avèk 32 Bits, ou ka reprezante apeprè negatif 2
milya dola tout wout la jiska milya dola pozitif 2.
Se konsa, nan ka sa a, sa n ap reyèlman wè se jis
plizyer a nan kapasite la nan nonb antye relatif nou an, epi nou gen, se konsa
pale, desann yon nonb antye relatif.
Nou te eseye bachote plis Bits nan li pase ka aktyèlman anfòm.
Se konsa, rezilta nan fen se nou esansyèlman gen tout Bits 1.
Nou te ranvèrse tout Bits nou sou, nou te eseye reprezante
nimewo nan pi gwo posib, men li la klèman pa prèske
gwo ase reprezante bagay sa yo de Mwen te jis tape pous
Yeah?
ODYANS: [fèbl]
>> DAVID J. Malan: Bon kesyon.
Poukisa nou pa nou ka jis reprezante ke negatif
siyen kòm jis karaktè yon?
Se konsa, nou absoliman te kapab, ak Lè sa a, nou te ka sove
yon ti jan adisyonèl.
Men, ou toujou ap pral fè yo reprezante ke priz, ak
ki nan pral koute ou omwen yon bagay,
prezimableman yon ti jan.
Se konsa, wi, nou te ka gen 32 Bits yo itilize pou yon nimewo pou nou an, men kounye a
nou bezwen yon lòt ti jan yo itilize pou priz nou
senbòl, siyn a mwens.
Se konsa, kounye a nou gen 33 valè ti jan, ki nou ta ka fè, men li la
jis pa chemen an sa li fè.
Nou te fè yon jijman ane rele Anons sa pibliye depi, 32 Bits se sòt de la
inite mezi isit la.
Se konsa, nou ap ale nan sèvi ak youn nan moun ki Bits efektivman
reprezante negativite, ak 31 Bits reprezante ki kantite.
Lòt kesyon yo?
Tout dwa.
Sa se yon anpil.
Poukisa nou pa nou ale pi devan epi pran repo senk minit nou isit la?
>> Tout dwa.
Se konsa, ankò, nou pa overemphasize aplikasyon yo matematik
nan pwogramasyon, nan kite l 'jis rache nan egzanp sa a yon sèl
anvan nou deplase ale nan konstwi lòt, jis paske li
ap montre yon kèk komen pwen sou wout sou kèk nan
Basics yo lè li rive ekri pwogram yo.
Nan ka sa a, fè ekspresyon aritmetik ki gen kèk
enteresan enpòtans nan sentaks la.
>> Se konsa, sa a se jis yon fòmil ak ki nou ka konvèti
tanperati soti nan Farennayt Sèlsiyis.
Si ou pa sonje, sa a se jis fòmil la.
Se konsa, si nou ploge nan Farennayt valè de 32 degre, ki se
konjelasyon, ki k ap pase yo dwe 32 mwens 32 se 0, ak tout bon,
0 nan Sèlsiyis tou se tanperati konjelasyon an.
Se konsa, rapid saniti tcheke gen - sa a fòmil la yo konnen yo.
Kite m 'janbe lòt bò nan aparèy la, menm si, e kòmanse
ekri yon pwogram yo rele, tankou, f2c; "Fahrenheit
Sèlsiyis dot c ".
Ak moute nan tèt la isit la, mwen pral kòmanse an ak nan # gen ladan yo
stdio.h, ak mwen pral fè int prensipal (san valè), ak
ankò, nou ap tounen nan lavni an tankou sa ki vle di int
gen ak sa ki anile vle di la a.
Epi, koulye a kite m 'ale pi devan epi aplike yon pwogram ki
esansyèlman sa a konvèsyon pou nou.
>> Se konsa, printf, kite la di, tanperati nan Fahrenheit.
Lè sa a, kite m 'ale pi devan epi pou yo jwenn valè a nan itilizatè a.
Ki kalite valè mwen ta dwe jwenn nan itilizatè a si mwen vle
yo ban m 'yon tanperati nan Farennayt?
Yeah?
Ki sa ou ta pwopoze?
Yeah.
Se konsa, flote santi l ase ki rezonab.
Nou gen, ankò, jis yon opsyon kèk ki
nou te wè konsa byen lwen.
Nou gen bagay sa yo tankou Char, flote doub,, int, depi lontan lontan,
bouleen, fisèl.
Se konsa, nan sa yo, flote santi l ase ki rezonab.
Nou te ka sèvi ak yon doub, dwa, paske si nou reyèlman vle
reprezante tanperati yon moun a -
98,60000 -
nou te ka sèvi ak 64 Bits fè sa, men li santi l tankou
overkill pou tanperati a.
Se konsa, kite a jis ale ak flote.
Koulye a, mwen bezwen yon varyab.
Jis kenbe bagay sa ki senp, mwen pral rele li f, men mwen
te kapab jis kòm kòrèkteman rele li tanperati a,
men swa se amann.
Se konsa, flote f = GetFloat.
Le pli vit ke mwen kounye a te deside sèvi ak GetFloat, menm si, mwen
bezwen fè yon sèl koreksyon an.
Yeah.
Se konsa, nou bezwen # enkli , otreman du a se
ale nan rele nan nou.
Kounye a ke mwen gen yon flote, kite m 'ale pi devan epi fè nan
konvèsyon.
>> Se konsa, premye, kite m 'tou jwenn nan abitid la isit la nan
kòmantè kòd m 'yo.
Se konsa, ankò, yon kòmantè se jis yon nòt imen an ki nan
pa fè pati de pwogram nan se pou chak, men li yon sèl, ede ou
konprann ki sa ou te fè nan denmen maten, oswa pwochen an
mwa, li te ede parèy ansèyman ou konprann ki sa ou te fè
oswa ki sa ou gen entansyon fè, kidonk li a
jeneralman trè bon pratik.
Chak liy kèk nan kòd, ekri yon kòmantè moun
tèt ou oswa kòlèg ou yo.
Se konsa, isit la, mwen pral di, "Mande itilizatè pou tanperati."
pa gen yo dwe yon fraz konplè, jis yon fraz kout.
Men, lide a dèyè kòmantè nan C se ke chak nan ou
kòmantè yo ta dwe pèmèt ou - oswa, di, yon tf oswa kolèg yon -
koudèy pwogram ou an ak konnen egzakteman ki sa li fè, pa pa
tèlman lekti kòd la, men nan li kòmantè yo, ki
yo ta dwe somèr epi ki klè.
Tout dwa, konsa koulye a kite m 'ale pi devan epi di, "Konvèti
Farennayt Sèlsiyis. "Se konsa, mwen pral ale pi devan epi fè sa,
Se pou nou di, flote c.
Nou pwal kenbe Sèlsiyis kòm yon valè pwen k ap flote.
>> Ak kite m 'pran yon koud nan nivo sa a.
Fòmil a se, ankò, moute isit la.
Kòm 5/9 fwa F mwens 32.
Se konsa, kite a fè sa.
Se konsa, 5 divize pa 9, mwens -
whoops, mwen messed l 'kanpe deja.
Fwa.
Se konsa, 5/9 fwa F mwens 32.
Se konsa, F mwens 32, virgules.
Epi, koulye a, desann isit la, mwen pral ale pi devan
epi di, enprime rezilta.
Ak pati sa a nan fasil. Printf.
Kouman pou mwen ale sou enprime sa a?
Oke, mwen te kapab di "Sa nimewo nan Sèlsiyis, se pousantaj% f \ n",
jis pou kèk estetik.
Lè sa a, ki sa valè mwen vle ploge nan isit la kòm nan printf
dezyèm agiman?
Oke.
Se konsa, jis c.
Se konsa, nou pral kòmanse ak sa a ak Lè sa a, jis retounen 0.
Yon fwa ankò, li pa gen anyen fè ak matematik la.
Li jis vle di tout bagay byen.
>> Koulye a, se sa a ki kòrèk, pwogram sa a?
Tout dwa.
Se konsa, mwen te fè kèk erè.
Menm si ou pa gen okenn lide ki sa pwogramasyon se, ou ka sòt
nan dégager tounen nan lekòl la klas sa a
erè isit la ta kapab.
Ki sa ki nan youn nan premye a?
ODYANS: [fèbl]
DAVID J. Malan: Yeah.
Se konsa, nou ap manke parantèz.
Li te ekspre sa m 'fè parantèz nan moderatè la
glise isit la, paske se la la aktyèlman sa a nosyon nan lòd
nan operasyon yo, oswa priyorite, annakò ak sa operasyon sèten -
miltiplikasyon -
gen pi wo obligatwa yo, yo gen pi wo priyorite, pase bagay sa yo
tankou adisyon oubyen soustraksyon.
Se konsa, nou te fè sa a pou ane jis asire klè egzakteman
yo ta dwe sa ki matematik operasyon dwe fè premye.
Se konsa, mwen ta dwe pwobableman mime egzakteman sa a.
Sinon, òdinatè a ap prezimableman pral pou yo eseye fè
yon bagay tankou divize 5 pa 9, lè sa a anpil anpil pitit F, Lè sa a, fè soustraksyon
32 soti nan tout bagay la.
Ki se pa, an reyalite, ki sa nou vle fè.
Se konsa, kite a parenthesize.
Se pou nou ajoute parantèz m 'isit la, parantèz isit la.
Ann mete sou sa isit la.
Isit la, mwen jis remake yon lòt erè mwen te fè sou wout la.
Yeah?
ODYANS: [fèbl]
>> DAVID J. Malan: Ah.
Bon.
Se konsa, nou gen aktyèlman nonb antye relatif nan menm
pwoblèm divizyon nan anvan.
Mwen korije sa, kite la wè sa ki sentòm la se.
Men, nou pwal gen yo korije yon sèl
lòt erè isit la.
Yeah?
ODYANS: [fèbl]
DAVID J. Malan: Wi.
Se konsa, estipid erè mwen te fè, men èkstrèmeman enpòtan.
Òdinatè a pa pral jis vire yon je avèg epi kite
m 'sèvi ak F kapital, lè mwen aktyèlman te deklare varyab la
kòm yon f miniskil isit la, nan liy 8.
Se konsa, mwen bezwen korije nan majiskil liy 11 m 'yo, kote yon
moman Anons sa pibliye depi se te yon F kapital pa erè.
Ki sa ki sou isit la?
Yo ta dwe sa a dwe miniskil kòm byen?
Li ta dwe, men sa a yon konyensidans.
Sa f% pa gen anyen fè ak varyab la.
Se konsa, jis yo dwe Super klè isit la, kite m 'ale pi devan epi
chanje non sa a, yon ti tan, "tanperati." Kite m 'chanje non
sa a "tanperati." Kite m 'pa chanje non sa a.
Paske, ankò, f% globalman vle di, "k ap flote valè pwen."
Pa gen anyen fè ak varyab m 'yo.
Men, "tanperati" sou tout plas la se jis yon ti kras bavar,
se konsa mwen pral tounen nan miniskil mwen an "F".
>> Koulye a, kite m 'ale pi devan desann nan fenèt mwen an isit la.
Fè f2c -
ki te, ankò, non an abitrè mwen
te bay sa a dosye.
Sanble li te konpile.
Kite m 'kouri f2c.
Antre.
Tanperati nan Fahrenheit - kite a fè yon yon sèl fasil.
32.
OK, korije.
Men, si mwen fè kounye a 212 pou bouyi -
modi.
Tout dwa.
Se konsa, klèman pa korije, si tf ou ap eseye
omwen de valè.
Se konsa, sa ki nan pwoblèm nan isit la?
Oke, ou deja mete dwèt ou sou ki sa pwoblèm nan ye.
Men, poukisa se ke ka a?
Up isit la, lè m ap fè matematik la nan 5 divize pa 9.
Se konsa, Concept, sa se parfe kòrèk.
Totalman ki konsistan avèk fòmil la.
Men, òdinatè sèlman fè pwesizeman sa ki ou
di yo fè.
Ak sa n ap efektivman di òdinatè a isit la se
divize 5 nan nonb antye relatif pa 9 nan nonb antye relatif
ak ban m 'rezilta a.
Pwoblèm lan se, menm si, lè ou divizyon lè l sèvi avèk done
kalite, randman a se menm kalite done an kòm entrain yo.
Se konsa, si entrain yo de tou de se antye, randman a pral
yo dwe genyen yon int.
Se konsa, 5 divize pa 9 se yon bagay ki pwen.
Men, sa ki nan nonb antye relatif ki pi pre nan pwen yon bagay?
Se konsa, li aktyèlman 0.
Se konsa, jan nou diskite nan Lendi, tout bagay apre desimal a
pwen vin twonke.
Li jis vin jete lwen.
Se konsa, sa a se yon erè konplè, paske mwen ka kòm byen jis
anpil anpil pitit tout bagay pa 0 isit la.
>> Koulye a, mwen ka repare sa a nan yon koup nan fason.
Mwen te kapab fè sa.
5.0 divize pa 9.0.
Teknikman, mwen pa menm bezwen fè sa.
Li fè sa ki sifizan a sèlman fè youn nan nimewo ki yon flote -
oswa doub - pa mete pwen desimal la isit la.
Paske sa k ap pase kounye a se lè ou divize yon nonb antye relatif nan
yon flote, oswa yon doub, òdinatè a ap pase nan reyalize
oh, youn nan moun ki se pi plis presi.
Kite m 'pèdi tèt yo sou bò ban nou plis presizyon pase
ou gen entansyon.
Se konsa, li pral konvèti rezilta a -
li pral retounen rezilta a kòm yon valè pwen k ap flote tankou byen.
Se konsa, ki ta ka travay.
Sa a ta travay.
Ak gen nan yon sèl mekanis lòt ke nou pral wè nan
plis detay an semèn pwochèn.
Ou ka aktyèlman, kòm pwogramè la, di òdinatè a
aktyèlman trete yon sèl done kalite kòm
menm si li te yon lòt.
>> Se konsa, mwen te kapab aktyèlman fè sa.
Nan parantèz, mwen ka di yon bagay tankou (flote), louvri
paren, fèmen paren.
Ak sa a se sa ki rele "Distribisyon." Yon fwa ankò, pi plis
sa a sou semèn pwochèn nan.
Men, sa a se jis fason sa pwogramatik nan di
òdinatè a, yeah mwen konnen 9 se yon nonb antye oswa yon long.
Mwen konnen li pa yon valè pwen k ap flote.
Men, trete li kòm sa yo de tout fason.
Se konsa, voye jete yon kalite done vle di konvèti
nan youn nan lòt la.
Franchman, sa a se jis yon ti kras lèd, pou m ta pwopoze n 'al jwenn
Retounen nan sijesyon orijinal la nan jis konvèti
bagay sa yo nan k ap flote valè pwen manyèlman.
Paske kounye a li nan jis super klè sa k ap pase sou li a, ak
li pa tout sa ki distrè.
>> Se konsa, kite a kounye a ale tounen nan fenèt tèminal m 'yo.
Fè f2c.
Kite m 'ale pi devan epi kouri sa a.
Epi, menm jan yon sou kote, ou jwenn anwiye sezisman sa yo kòmandman
ankò e ankò, reyalize ke òdinatè, tankou Linux isit la,
yo gen tandans yo dwe trè entelijan.
Men, si mwen frape Up, nou ka ale nan istwa tout m 'lan nan
kòmandman, leve, li desann.
Se konsa, nan ka sa a isit la, mwen ka jis ale Jiska kouri fè f2c.
Mwen te rele nan, paske mwen jis te fè sa yon dezyèm Anons sa pibliye depi.
Li nan deja jiska dat sa a.
Se konsa, koulye a, mwen ka kouri f2c ankò.
Ann eseye 32 Fahrenheit.
Koulye a, kite nan eseye 212 Fahrenheit.
>> Phew.
Sanble nan travay.
Koulye a, sa a se yon bon bagay, men li santi l yon ti kras abitrè ki
Mwen ki montre sis chif apre pwen yo desimal.
Dwa?
Si ou se moun nan move tan nan televizyon, ou se kalite yon doofus
si w ap lekti tanperati an a
sa a degre nan presizyon.
Se konsa, kite a senplifye sa a.
Se konsa, kite a aktyèlman ale isit la, nan printf m 'yo.
Ak yeah, mwen vle flote.
Men, mwen vle kounye a presize presizyon la.
Apre sa, mwen pral yo dwe yon somèr ti kras.
Mwen pral di, ban m 'yon pwen apre plas la desimal.
Se konsa, olye ke di f%, mwen pral di% .1 f.
Lè sa a jis vle di, ban m 'yon sèl pozisyon
apre pwen desimal la.
Tout dwa.
Ann eseye sa a ankò.
Kite m 're-kouri li apre konpile.
Koulye a, mwen tape nan 32, epi mwen jwenn tounen yon
plis somèr valè.
Apre sa, mwen ka tape nan, kounye a, 212, ak jwenn tounen yon somèr plis
valè kòm byen.
Ak gen nan lòt bagay ou kapab fè avèk printf.
Ou ka aktyèlman endike fason lajè nimewo a yo ta dwe.
Si ou vle gen kouvèti sou li, konsa ou ka dwa-aliman oswa
bò gòch-align tout nan nimewo ou a oswa
eseye bagay sa yo sant.
Se konsa, reyalize gen ke trik nouvèl ti kras ou ka fè a.
Men, yo jis bouyi desann nan kòd fòma,
tankou nou gen la.
>> Se konsa, an tèm de pwoblèm sa a nan priyorite.
Sa a se yon tab trè raz yo ale nan metodikman.
Men, reyalize ke otè yo nan C te vini ak nan
règ ki presize ki operatè yo gen pi wo
priyorite, plis obligatwa pouvwa a, pase lòt moun.
Se konsa, Lè nou konsidere ke nan klas lekòl, nou jeneralman te konnen ke li te
miltiplikasyon ak divizyon, lè sa a adisyon ak soustraksyon,
Lè sa a, kèk lòt bagay.
Nan yon mond nan pwogramasyon, gen yon anpil
pi long lis de bagay sa yo.
Ak sa a se pa yon bagay ki vo memorize kounye a.
Ou lj jwenn adapte nan li anvan lontan.
Men, jis tankou nan klas lekòl yo, parantèz jeneralman rezoud
pwoblèm yo ki nan priyorite, pa fè super klè nan
òdinatè ak moun sanble sa ki gen entansyon.
Se konsa, konsidere sa a jis yon fèy twonpe ti kras la.
Men, pi fò nan sa yo detay nou pa pral jwenn yo pou kèk tan.
>> Tout dwa.
Koulye a, kite nan bati epi ale lwen sa yo ti kras komik
egzanp matematik.
Toujou itilize fondamantal yo menm, men kòmanse
eksprime tèt nou yon ti kras pi plis tankou grafonyen moun.
Se konsa, nan grafouyen, nou te gen sa yo ekspresyon Boolean.
Ak nan lang angle, yon ekspresyon Boolean se ki sa?
Vre oubyen fo.
Li nan yon bagay ki evalye vre oubyen fo.
1 oswa 0.
Limen oubyen etenn.
Kèlkeswa sa ou vle rele l '.
Koulye a, nan grafouyen, moso yo devinèt te sanble ak sa a.
Epi sa a, konbinezon a, sou anba a la, nan twa
devinèt moso.
Youn nan konjonksyon -
yon bagay ki gen vid ak vid.
Lè sa a, de ekspresyon Boolean andedan nan li.
Se konsa, ou kapab fè nich ekspresyon Boolean jwenn plis
konplike ekspresyon Boolean.
Pou egzanp, si li se samdi, epi li se bèl
move tan, Lè sa a, ale deyò.
Oubyen yon bagay abitrè tankou sa.
Se konsa, ou ka rantre nan ekspresyon Boolean vini ak yon
se pi gwo valè verite, ki gen repons ki baze
sou sa ki pi piti.
>> Koulye a, nan C, Erezman, sa a kat se
aktyèlman trè senp.
Parantèz yo ede fè sa klè isit la.
&& Se sa ki vle di "ak". Se konsa, lè sa a jan
nou pral konvèti sa yo blòk nan grafouyen C.
Ak pou kondisyon sa yo nou te wè nan grafouyen, sou bò gòch
bò la, mwen ka chemine yo menm nan C. Si x se mwens
pase y, Lè sa a, fè sa.
Lòt Bagay si x se pi gran pase y, Lè sa a, fè sa.
Lòt Bagay lojikman yo dwe egal, kidonk di
yo ke yo egal.
Se konsa, nou kapab kounye a kòmanse bati sa yo sou bagay yo.
>> Se konsa, kite a fè yon egzanp.
Kite m 'louvri moute yon dosye ki nan sou sit entènèt kou a nan ki
Mwen te ekri davans.
Yo rele nonswitch.c.
Epitou, n ap wè poukisa nan jis moman yon.
Se konsa, nan sa a ranpli - nonswitch.c--
premye reyalize ke gen nan yon pakèt antye nan
kòmantè nan tèt la.
Se jis pou eksplike non an nan dosye a, ki sa li
fè, ak pou fè.
Epi li aparamman demontre itilize nan Boolean AK-egziste -
conjoining de ekspresyon.
>> Se konsa, kite a wè ki jan pwogram sa a travay.
Mwen ka mete dosye de m 'yo, cs50.h ak stdio.h.
Si m 'desann, koulye a, nan pwogram lan, li la yon ti tan ankò
pase nou te ekri anvan, men trè lizib.
Se konsa, mwen premye enprime itilizatè a, sou liy 18,
"Ban mwen yon nonb antye relatif ant 1 ak 10." Se konsa,
sa a, se dwa la.
Koulye a, mwen jwenn nonb antye relatif la.
Men, reyalize ke GetInt - trè senp.
Li nan jis pral jwenn yon int.
Li nan ale nan asire ke li jwenn yon int epi yo pa yon
fisèl oswa flote yon.
Men, li pa pral fè nenpòt kalite kont kouran fwontyè.
Li pa nan ale nan filtre kantite moun ki kapab gen ant yon
sèten pòte.
Se konsa, nou gen aplike ke tèt nou.
Se konsa, jis tankou nan grafouyen, kote mwen te kapab fè yon konjonksyon nan
de ekspresyon, mwen ka fè sa nan C jan sa a.
Si n pi gran pase oswa egal a 1, ak n se mwens pase ak
oswa egal a 3, mwen pral jwenn anpil dekrè abitrèman ki
nimewo yo dwe yon nimewo piti.
Jis pou dedomajman pou la nan yon deklarasyon.
Lòt Bagay si n se ant 4 ak 6, ekri ak lèt ​​detache "Ou te chwazi yon medyòm
nimewo. "Lòt Bagay si n se ant 7 ak 10, ekri ak lèt ​​detache" Ou te chwazi yon
gwo kantite. "Lòt Bagay enprime" Ou chwazi yon nimewo valab. "
Paske lojikman, ki swiv si nou te
fin itilize ranje nou an.
>> Se konsa, reyalize sa a se pa byen ki jan nou ekri pi gran pase oswa
egal a nan yon klas matematik.
Dwa?
Anjeneral ou rale l 'tankou sa a, ak liy yo anba nèt.
Men pa gen okenn kle yo sou klavye m 'yo.
Se konsa, senbòl la nan C pou eksprime pi gran pase oswa
egal a se de pèsonaj, ak senbòl la pou mwens pase
oswa egal a se de karaktè kòm byen.
Tout dwa.
Se konsa, si mwen kouri pwogram sa a, ou ka pwobableman devine kisa li a
pral fè a.
Si m 'ale pi devan epi fè nonswitch, Antre.
Lè sa a, kouri nonswitch.
Ban m 'yon nimewo ant 1 ak 10.
Mwen pral bay li 11.
Mwen pran yon nimewo valab.
Kite m 'eseye nimewo a 3.
Mwen pran yon nimewo piti.
Se konsa, san patipri dwat la.
>> E si mwen vle chanje konpòtman an nan pwogram sa a ak
fè yon bagay yon ti kras diferan olye?
Kite m 'ale pi devan epi di sa.
Kite m 'debarase m de tout bagay sa a.
Ak kite m 'di si (n == 42).
Lè sa a, mwen pral ale pi devan epi di ekri ak lèt ​​detache "Ou te chwazi a
dwa repons. "Lòt Bagay nou ap ale nan ale pi devan epi di,
printf ("Ou te chwazi a
sa ki mal repons ");. Okay.
Jis paske.
>> Koulye a, yon kèk pwen nou ka fè isit la.
Youn nan, mwen pa t 'tape senbòl la ke ou ta panse se nan
pi rezonab.
Lè m 'vle tcheke egalite, vin aprann ou pa sèvi ak nan
egal siy.
Ou olye pou itilize egal siy ki egal.
Epi poukisa ta ka ki dwe, jis entwitivman?
Yeah.
ODYANS: [fèbl]
DAVID J. Malan: kòrèk.
Ansèy ki egal deja itilize pou devwa.
Yon moun pa t 'reyèlman panse ke sa a nan.
Se konsa, koulye a, lè li rive tès egalite, nou dwe
gen plis eksplisit, epi w'a di egal egal.
Yon erè trè komen se fè sa.
Epi, si nan lè biwo louvri oswa semèn nenpòt moman pwochen oswa nan la
pwochen de semèn ou fè yon bagay tankou sa a ak Lè sa a,
ki ap lite ak li pou 10, 20 minit eseye dekouvri
ki sa pinèz la modi se, reyalize ke ou se youn nan moun ki
moun ki te fè sa a erè.
Se konsa, Super fasil fè.
Men, objektif la kounye a se Ward nan sa a erè.
Sa a te evalye, paske sa ki a sa a vrèman di a?
Si n vin 42.
Se konsa, pèp la vèb itilize, vèbalman, yo eksprime an
nosyon nan afektasyon, se yon "yo vin." Se konsa, si n ap vin 42.
Se konsa, sa vle di bay 42 n.
Koulye a, mwen gen yon ekspresyon Boolean nan parantèz,
andedan nan kondisyon sa a, valè ki se 42.
Dwa?
Paske si ou evalye li nan men soti nan anndan an, total la
repons la, kounye a, se 42.
>> Se konsa, si mwen mande w kesyon an, "si (42)," ki sa ki
ki vrèman di a?
Oke, ekspresyon Boolean kapab fèt sèlman vre oubyen fo.
1 oswa 0.
Limen oubyen etenn.
Se konsa, nou yo sanble yo gen yon ka kwen isit la, kote tout nan yon
toudenkou, m ap di "si (42)". Sa se pa yon valè Boolean.
Se konsa, sa òdinatè fè, menm si, se li esansyèlman équivalant
se nenpòt bagay ki se pa 0 entèprete yo dwe vre.
1.
Sou.
Yo ap tout ekivalan woulant.
Se sèlman valè a 0, oswa mo kle a fo, menm jan nou pral
evantyèlman wè la a, se aktyèlman fo.
Se konsa, "si (42)" ta aktyèlman dwe vre, paske li se ki pa zewo.
Se konsa, yo dwe plis presi isit la, yon valè Boolean se reyèlman pa konsa pou sa
anpil vre oubyen fo, men pou sa a
ka, si se 0 oswa ki pa zewo.
Se konsa, ki fo oswa ki pa fo.
Ak ki pèmèt nou kouvri tout plis nan
posiblite nan ekspresyon an parantèz.
Se konsa, nou bezwen, tout tan se konsa ak anpil atansyon, di sa -
si (n == 42).
Tou senpleman paske nou bezwen presize yon egzamen sou egalite,
pa yon devwa nan yon valè.
>> Ki lòt bagay se vo anyen isit la?
Sa yo aparèy òtopedik Curly yo aktyèlman pa sa nesesè.
Mwen te fè yo jis yo dwe lav-picky isit la.
Men, lè ou gen yon pwoblèm ke se sèlman gen yon sèl liy nan
kòd, kòm yon konvenyans, pwogramasyon pa bezwen sèvi ak
aparèy òtopedik yo Curly.
Li sifizan nan jis itilize, pou rezon ayestetik, ak
Lè sa a, ekri liy ou nan kòd.
Se sèlman lè ou vle ekri de liy nan kòd - pou
egzanp, lòt bagay printf ("Bye!"). Si ou vle fè
sa, sa a se kase.
Ou ka itilize tout sa ou vle, men reyalite a ki di ou gen
tape de liy nan kòd san yo pa itilize aparèy òtopedik Curly
sa vle di ke pwogram sa a pa t 'vle kouri kòrèkteman oswa ka
pa menm konpile kòrèkteman.
Se konsa, pou kounye a, yo dwe onèt, mwen panse ke abitid nan pi bon se jis
sèvi ak aparèy òtopedik yo Curly, epi ou pral jwenn yo ke yo fè
super klè sa ki pral sou.
>> Epitou, kòm yon sou kote - sitou si ou se nan mitan moun ki sèvi ak
liv yo rekòmande oswa resous sou entènèt -
reyalize ke gen nan sa a nosyon de style nan
pwogramasyon yo.
Ak kèk moun ki aktyèlman pito mete atèl a Curly
sou isit la sou yon liy.
Gen kèk moun ki pito fè bagay sa yo ridikil,
renmen mete yo isit la.
Gen nan pa gen move repons lè li rive
style, men sa a se sa ki mal.
Men, gen kèk moun ki fè li.
[Ri]
DAVID J. Malan: Se konsa, mwen mansyone sa a, koulye a, tou senpleman paske kòm
w ap li moute sou bagay sa yo nan liv oswa sou entènèt, w ap ale nan jwenn
mesaj diferan nan men pwofesè ki diferan ak
otè diferan.
Ak jis reyalize ke, fonksyonèl, yo ap
jeneralman ekivalan, men ou dwe konsistan.
Se konsa, nan ka sa a, nou pral estandadize sou Curly a
aparèy òtopedik doubli isit la sou bò gòch la.
>> Tout dwa.
Se konsa, kite a ale pi devan koulye a, epi kouri sa a, epi wè kisa k ap rive
ak pwogram sa a.
Fè nonswitch.
Lè sa a, kouri nonswitch.
Ban m 'yon nonb antye relatif ant 0 ak - pou sa a pa ki enpòtan
ankò, men mwen m 'jis pral abitrèman di 42.
Apre sa, mwen pran repons kòrèk la.
Oke, koulye a, kite a aktyèlman pran sa a nan yon direksyon ki diferan.
Li vire soti gen nan kèk sentaks lòt nou
ka itilize nan yon pwogram.
Isit la nan yon moso nouvo sou sentaks ki se fonksyonèl menm bagay la tou,
men jis entwodui yon lòt fason de jan pou eksprime tèt nou.
Se konsa, sa a se sa yo rele yon "deklarasyon switch." Ak yon
deklarasyon switch opere jan sa a.
Li pran, nan parantèz, yon valè ke ou vle
"Switch" nan.
Ou vle konpòte yon fason diferan ki baze sou valè li yo.
Se konsa, sa vle di switch sou valè n.
Ak ki sa sa a vle di?
Byen, si n se 1 oswa 2 oswa 3, ale pi devan epi enprime soti "Ou
pran yon nimewo gwo "ak Lè sa a, kase.
Rezon ki fè yo pou repo a se ke wout la C ap travay se kòm
pli vit ke li jwenn yon ka ki matche ak yo, li kòmanse egzekite
tout nan kòd ki anba la a li.
Se konsa, si mwen gen yon sèl liy nan kòd, jan mwen fè isit la sou liy 27, li
vin egzekite.
Si m 'ajoute yon lòt liy isit la, li vin egzekite.
Yon lòt liy isit la, li vin egzekite.
Pwogram nan sèlman sispann pwomenad sa ki nan pi ba a nan
aplikab ka deklarasyon lè m 'fòmèlman
di "kraze". Se konsa, sa ki mal.
Dwa, nan ka sa a, kòm yon rezilta.
4 Ka oswa 5 oswa 6, Menm jan tou, ki pral
enprime soti yon mesaj.
Nan ka sa a, mwayèn nimewo.
Kraze.
Ka 7, 8, 9, 10, li pral enprime soti "Ou te chwazi yon gwo
nimewo. "Pak.
Lè sa a, gen nan literalman yon mo kle yo rele "default"
sa a, se efektivman tankou "lòt la" konstwi.
Se konsa, nouvo sentaks, men entelektyèlman,
pa gen anyen nan tout isit la nouvo.
Li nan jis tankou nan grafouyen.
Si, lòt bagay, si lòt bagay, si sòt de blòk.
>> Se konsa, sa a, se vèsyon an commuté nan pwogram sa a.
Men, remake ke nou te fè li ak nimewo isit la.
Kite m 'louvri moute yon vèsyon dezyèm, jis yo montre
yon bagay yon ti kras plis konkrè.
Se konsa, isit la nou gen klas pito.
Vire soti ou ka itilize switch pa sèlman sou nonm antye relatif, men sou
karaktè.
Pa nan tout kalite done, men omwen sou karaktè.
Se konsa, isit la, nou te kapab fè yon bagay tankou si valè a nan C ki
itilizatè a tape nan, nan liy 19, lè l sèvi avèk fonksyon an GetChar,
se kapital A oswa miniskil yon, kite la entèprete li kòm yon klas,
yo di ke yo te chwazi yon nòt ekselan.
, Li desann ansanm deklarasyon an switch, nou gen lòt
ka pou "B" a ak "C" a, ak pou fè.
Men, se pou a kounye a awondi soti yon lòt bagay.
Epi ankò, kalite vole byen wo nan
kèk nan egzanp sa yo.
Men, li vrèman pou nou ka aplike yo, kounye a -
oswa reyèlman, jis tradui yo kounye a -
C.
>> Se konsa, kite m 'ale pi devan epi fè sa.
Mwen pral louvri moute yon dosye nouvo.
Apre sa, mwen pral fè yo enkli .
Lè sa a, mwen pral fè int prensipal (san valè).
Kite m 'sove sa a ranpli kòm yon loop.c.
Jis kòm yon egzanp.
Ak mwen pral ale pi devan epi fè bagay sa a.
Mwen vle ekri yon pwogram trè fatigan.
Se konsa, 10.
Se pou nou fè sa.
9.
Tout dwa.
Osito ke ou kòmanse fè sa a nan pwogram, w ap
pwobableman fè yon bagay ki mal.
Men, nou pral kòmanse gen de tout fason.
Wouch.
Sa a se aktyèlman sa ki mal.
7.
6.
5.
4.
Pa gen anyen la pral rive lè nou jwenn a 0.
3.
2.
1.
Oke.
0.
Efase.
>> Tout dwa.
Se konsa, retounen 0.
Se konsa, pwogram sa a nan evidamman pral fè sa li trè
tediously l di ke li pral fè a.
Li k ap pase ou enprime tout sa yo
valè, depi anwo jouk anba.
Se konsa, kite m 'fè fè riban.
Lè sa a, - whoops.
Fè riban.
Mwen te nan anyè a sa ki mal.
Epi, koulye a kite m 'kouri riban.
Antre.
Woohoo.
Trè bèl.
Nice, depi lontan nan pwogram nan.
>> Tout dwa, men kounye a kite a fè sa pi byen.
Jis tankou nan grafouyen, lè ou te kòmanse lè l sèvi avèk yon loupin
konstwi, olye pou yo jis kopye ak kole tout la
moso devinèt, kite m 'prezante bagay sa a.
Se konsa, nan C, gen plizyè konstwi loupin,
youn nan ki sanble sa a.
A "pou" riban a gen twa bagay sa yo, separe pa de virgules.
Lè sa a,, andedan nan kò a nan riban a, se konsa pale - a
andedan bagay la aparèy òtopedik yo Curly -
nou ka fè yon bagay ankò epi ankò.
Se konsa, sa m 'gen la a sou ekran an, sa a se
literalman jis yon kòmantè.
/ / A vle di isit la vini yon kòmantè.
Sa a se pa kòd.
Sa a se jis deskripsyon lang angle, m ', moun lan.
>> Inisyalizasyon Se konsa,, kondisyon, ak dènye enfòmasyon yo.
Oke, kite la wè ki jan sa a travay.
Sa a pèmèt m 'nan reyekri pwogram sa a jan sa a.
Pou -
Se konsa isit la vini riban mwen -
Int mwen -
isit la vini yon varyab ki rele "mwen" -
vin inisyalizèd a 10.
Se konsa, gen se inisyalizasyon m 'yo.
Mwen vle fè sa a riban toutotan "mwen" se pi gran pase oswa
egal a 0.
Yo, epi sou chak iterasyon sa a riban, mwen vle
fè mwen -.
Se konsa, nou te wè + + nan Lendi.
- Se opoze an.
Li dekremant valè a pa 1.
Anndan sa a riban, mwen vle aktyèlman fè yon bagay.
Se konsa, mwen pral di yon bagay tankou printf.
Mwen pa vle di 10 kounye a, paske sa a evidamman se jis
ale nan enprime menm valè a.
Ki sa mwen vle enprime olye de sa, pwobableman?
Yeah.
Se konsa, "mwen". Se konsa,% d, mwen.
>> Se konsa, mwen pral vòlè youn nan ide sa yo soti nan pi bonè -
sa a sibstitisyon pou kòd fòma -
ak Lè sa a, desann isit la, nan pati anba a, mwen pral tounen 0, jis
pou bon mezi.
Men, koulye a, mwen gen yon pwogram somèr plis.
Li nan sèlman yon liy kèk, epi yo pa gen kèk 10 oswa 11 liy yo.
Kite m 'ale nan èd memwa m' desann isit la.
Riban renouvèlman.
Relance riban.
Ak li parèt yo dwe menm bagay la.
Koulye a, pwogram lan nan pa gen plis enteresan.
Men, koulye a, mwen ka tape yon bagay tankou sa a.
Mwen ka chanje sa a a 100.
Mwen ka Lè sa a, compile pwogram mwen an.
Lè sa a, mwen ka re-kouri pwogram mwen an.
Epi, koulye a li ale super-vit sou òdinatè a jodi a.
Men, gen mwen gen -
ak aktyèlman, tanpon scrollback m nan pa
menm ale ki lwen.
Gen nou ale.
Se konsa, gen nou gen tout 100.
Men, li la fasil fè erè isit la.
Sa k ap pase yo dwe konpòtman an prévu si mwen
aksidantèlman fè sa?
Se konsa, li santi l tankou enfini.
Se konsa, kite a wè si òdinatè a konpòte li.
>> Se konsa, kite m 'ale pi devan epi fè riban.
Ak kite m 'kouri riban.
Se konsa, kite a tounen vin jwenn ke nan jis moman yon.
Nou pral kite sa kouri.
Paske sa ki ta dwe nou konte jiska, minim?
Pwobableman omwen 2 milya dola, si nou gen ki Bits anpil moun, ak
nou ap lè l sèvi avèk valè pozitif.
Se konsa, kite a so tounen isit la.
Anplis sa yo kalite pasan, nou gen sa ki yo rele yo pandan y ap
pasan. Se konsa, jis tankou nan grafouyen, ou te gen pou tout tan
blòk, epi ou te gen blòk Repete.
Menm jan tou, nan C, ou jis gen lòt fason
de jan pou eksprime tèt ou.
Se konsa, ou gen sa a nosyon nan yon riban pandan y ap ki pèmèt ou
eksprime tèt ou yon ti jan diferan.
Lè sa a, ou gen yon bagay yo rele yon riban fè-pandan y ap,
ki opere yon ti kras diferan tankou byen.
Epitou, n ap toumante sa yo apa sou tan.
>> Men, kite a pran yon gade nan yon sèl sa a dènye isit la.
Si nou ale nan -
toujou kouri.
Li trè enfini.
Se konsa, kite m 'ale nan pozitif, epi montre ki jan nou kapab aktyèlman
gouvène opinyon itilizatè yon ti kras plis efikasite.
Li se yon pwogram trè kout.
Ak isit la nou gen, nan prensipal yo, yon int n deklarasyon an.
Se konsa, ban m 'yon varyab rele n. Koulye a, mwen literalman di
"Fè." Lè sa a, mwen te gen louvri Curly
atèl, fèmen atèl Curly.
Lè sa a, remake, dwa apre sa, li di pandan y ap n
se mwens pase 1.
Se konsa, avi ke liy sa yo -
19 a 24 -
konpoze kolektivman yon riban fè-pandan y ap.
Epi ankò, nouvo sentaks, se pa yon lide nouvo.
Se jis yon lòt fason nan loupin, syntactically.
Se konsa, sa sa a fè?
Fè bagay sa yo pandan y ap n se mwens pase 1.
Se konsa, sa m 'vle fè?
Mwen mande w ban m 'yon nonm antye ki pozitif.
Lè sa a, mwen aktyèlman eseye jwenn yon nonb antye relatif soti nan itilizatè lan.
Men, an tèm de lòd operasyon isit la, paske nan
pandan y ap kondisyon se desann isit la, mwen Lè sa a, ale nan tcheke, se n
mwens pase 1?
Se konsa, sipoze ke itilizatè a -
apre yo te fin mande nan fason sa a -
kalite nan 0 a valè.
Kondisyon sa a a pwal vre oubyen fo?
Oke, li la aktyèlman pral yo dwe vre.
Paske n se 0, epi 0 se mwens pase 1.
Se konsa, sa ki vle fè konprann?
Èske l 'ankò.
Sèlman yon fwa ke kondisyon evalye fo.
Si m 'tape nan 42.
Oke pa gen okenn, 42 se pa mwens pase 1.
Se poutèt sa, sa a se riban fè pwomenad.
Se konsa, nan pwen sa a, pwogram nan ap di, mèsi pou
42 an, nan ka sa a.
Kounye a ke ou gen nan fason sa a nan eksprime tèt ou -
Nou pa ta dwe tann pou sa a fini.
Li nan pral pran kèk tan.
Pou yo kapab kontinye nan pwochen tan, petèt.
>> Men, kounye a, ou gen kapasite nan èspere ke yo konprann yon
ti jan de imè pèr.
Ekskiz.
Sa a se pa reprezantan de imè nan syans konpitè a
lemonn, men li la bèl.
Fen [ri] Ann sou sa nòt.
Epi nou pral wè ou nan Lendi.
[Aplodisman]