>> [Jwe mizik]
>> DAVID Malan: Tout dwa.
Byenveni tounen.
Sa a se CS50, e sa se Semèn Youn, Kontinye.
Se konsa, youn nan rezon ki nou ve yo te pase alantou teknoloji tankou
Google Glass se yo ke yo vini ak yon bagay yo rekonèt kòm yon API, yon
Aplikasyon Programming Entèfas.
Ak sa ki sa sa vle di se ke ak nan dosye dwa ak dwa
kopi dokiman yo, ou ka aktyèlman ekri lojisyèl pou aparèy menm tankou sa yo.
>> Se konsa, sa nou genyen nan tèt ou nan direksyon semès fen se, si yon pwojè
ki enplike, di, Google Glass ta ka apèl la, nou pral wè sa nou kapab fè nan
tèm de akrochaj ou leve ak kèk prete pyès ki nan konpitè kòm byen ke nan
piblikman-aksesib API se konsa ke ou kapab aktyèlman kòmanse kreye lojisyèl
ki kouri sou ki Glass menm Google.
>> Yon lòt aparèy ki nou ve yo te jwe ak nan fen mwa ke nou te panse ta kapab
plezi nan fen semès la se sa a ti bagay isit la.
Li rele Mouvman kwasans, e ki sa w ap sou yo wè se teknikman yon
reklam pou aparèy la, men li pale ak sa ki patikilye sa a
aparèy se kapab nan.
Epi li, tou, vini ak yon API atravè ki ou ka ekri lojisyèl
kontwole òdinatè pwòp ou a nan yon fason ki byen renmen sa a fim yon minit isit la.
>> [Lèktur videyo]
>> [Lèktur videyo END]
>> Se konsa, kounye a, aparèy sa a k ap pase nan kapab aplike kòm yon ti kras USB
Connector ke ou kapab ploge nan ou òdinatè, men mwen pa ta dwe etone
si anvan lontan nou gen sa yo kalite teknoloji nan pakèt nan pwochen nan PC yo
ak Macs se konsa ke ou kapab, tout bon, kominike avèk li nan
yon fason ki tankou sa.
An reyalite, sa mwen te panse mwen ta fè, tou, se Mwen rale moute yon demonstrasyon ti kras
pwogram ki vini ak sa a lojisyèl.
Se konsa, mwen te mete Capteur a ti kras la devan laptop mwen.
>> Men, kòm ou ka wè, li deja reyalize ki men m 'ki gen la
kontwole li.
Apre sa, tout aplikasyon sa a fè se swimmingly bagay sa yo ti kras tankou sa a.
Men, ou ka wè ke, tout bon, Mwen gen senk dwèt la.
Si nou ka jwenn li nan fè tout 10, ou ka imajine yon pyano pwòp
aplikasyon oswa tankou la.
Se konsa, si ou ta renmen vini apre klas jodi a ak jwe ak sa kòm
byen, ou se Byenveni nan.
Se konsa, plis sou ki direksyon fen semès la.
>> Se konsa, yon koup la administratif anons.
Youn, fè seksyon sa a Vandredi a midi nan cs60.net/section.
Sa URL se sou a nan kou Homepage kòm byen.
Nan entre-temps la, menm si, supersections pral premye sa a dimanch.
Supersections se yon bagay yon sèl-fwa, paske li pran nou kèk tan nan travay
konnen ki moun ki la nan ki seksyon ak ki kote.
>> Se konsa, sa a ap vini Dimanch, gen pral fè yon sèl seksyon pou moun ki konfòtab mwens,
yon seksyon pou moun ki pi alèz.
Men, moun nan nou yon kote nan ant yo akeyi pou yo ale nan
swa oswa toude oswa pa.
Tou de sa yo pral filme-li.
Yo pral nan yon oditoryòm pi gwo pase yon seksyon nòmalman ta dwe pous
Men, objektif la isit la se ekipe ou ak kèk konfò ak pwoblèm mete yon sèl,
ak C, ak aparèy la CS50, sa a fen semèn, menm anvan ou konnen ou
fòmèl seksyon plasman.
Se konsa, ou pral rankontre TF ou ak pi piti ou gwoup sectionmates nan sou
tan yon semèn la.
>> Lè biwo louvri, pandan se tan, yo te pral sou.
Èske pran avantaj de yo aswè a oswa demen swa si ou ta renmen.
Seri Pwoblèm 0 a se akòz nan Vandredi.
Sa a se yon jou pita pase a regilyèman-pwograme Jedi.
Men, avèk seri pwoblèm 1, ou ap wè ke li gen ladan kèk cho-up
egzèsis ak kote ou tèt ou ka pwolonje ou
Jedi dat limit a Vandredi.
Seri Pwoblèm 1, pandan se tan, yo pral premye sou sit entènèt kou a nan sa a vini
Vandredi, si ou ta renmen pli moute ak li jan mwen te fè yon fwa sou yon tan an reta
Vandredi swa nan chanm ou.
>> Se konsa, cs50.net/appliance se plas la kote ou ka jwenn aparèy la CS50
ke nou te kòmanse lè l sèvi avèk nan Lendi.
Nou pral sèvi ak li yon ti jan pi plis jounen jodi a.
Men, rès asire ke pwoblèm nan mete 1 spesifikasyon ap mache ou atravè
jisteman etap sa yo ou bezwen jwenn ki leve, li kouri.
Se konsa, pa enkyete sou fè sa anvan Pset 1 Si w ta pito pa.
>> Tout dwa.
Se konsa, nou te gade nan Lendi nan Kòd sous, men nan yon kontèks la nan yon nouvo
lang programmation, sètadi C. ak C, kontrèman ak grafouyen, se pa grafik.
Li pa nan devinèt miyèt moso.
Li nan sentaks plis angle-renmen.
Men, gen yon koup nan etap ki enplike nan aktyèlman ekri ak kouri yon
pwogram nan C, paske san konte sous Kòd tankou sa a, ou bezwen yon bagay
rele yon du.
Men, an tèm pwofàn la, ki sa ki yon du fè pou nou?
Yeah.
>> ELÈV: Li konvèti kòd la ke ou ekri 0s ak 1S.
>> DAVID Malan: Bon.
Se konsa, li konvèti Kòd la ki nou ekri 0s ak 1S.
Li konvèti Kòd sa yo rele sous Kòd objè, lèt la nan ki sanble
yon yon bagay ti kras tankou sa a.
Lè li nan CPU ou a, sèvo yo ki te anndan an òdinatè a ou a, pou sa paske nan
moun ki te kreye moun òdinatè, konnen ki sa sa yo sekans
nan vle di 0s ak 1S.
>> Petèt li vle di ekri ak lèt ​​detache.
Petèt li vle di Anplis de sa.
Petèt li vle di soustraksyon.
Petèt li vle di afiche yon grafik.
Gen modèl predefini nan Bits ki te mond lan deside vle di
sèten bagay.
Men, pou pati ki pi nan kou sa a, nou pral travay nan yon nivo pi wo, ak
nou pral pran pou yo akòde ke gen egziste bagay sa yo tankou konpilateur ki ka
fè fonksyon sous Kòd nou nan chemen an nou gen entansyon.
>> Se konsa, pwogram lan nou te ekri premye semèn pase a ak Lè sa a yo te kòmanse pò, se konsa yo
pale, nan C sa a sot pase yo Lendi, sa a te.
Lè vèt drapo klike, di hello.
Sa a te, nan kou, ekri nan grate.
Apre sa, mwen te deklare ke ekivalan a pwogram nan C gade yon ti kras
yon bagay tankou sa.
>> Se konsa, sa mwen te panse nou ta fè an premye se, kite a toumante apa sa ki sanble, nan premye
gade, Byensir, kòm san patipri Esoteric sentaks, men ou pral kòmanse a yon avi
modèl byen vit.
Ki sa nou pral fè tou jodi a se bay ou ak yon modèl mantal pou kèk
kanonyal, gen kèk konstwi estanda nan pwogram.
Lè sa a, nou pral aktyèlman jwenn men nou sal ak kèk egzanp kòm byen.
>> Se konsa, pou moun nan nou pi alèz, reyalize ke semèn sa a ak Lè sa a kap vini yo
semèn yo ka trè byen se yon ti jan nan revizyon.
Men, espesyalman lè edisyon an HACKER nan pwoblèm seri 1 ale soti sou la
sit entènèt kou a nan Vandredi, mwen panse ke w ap jwenn ke menm jan ou ranpli nan
kèk espas vid sou semèn kap vini an oswa de, ou pral kòmanse jwenn tout tan tout tan plis
defye ak rankontre ak nouvo modèl ki pi resan bagay sa yo.
>> Se konsa, kite a toumante pwogram sa a apa yon liy kèk nan yon tan.
Nan tèt la anpil, nou gen sa ki teknikman rele yon
preproseseur direktiv.
Sa a se jis yon liy nan kòd ki di genyen ladan yo sa ki nan yon dosye,
rele estanda Mwen / N, estanda D '- oswa, regrèt, estanda Mwen / O, estanda
D '/ randman,. h, andedan nan pwòp pwogram m 'yo.
>> Se konsa, nan lòt mo, si mwen te ekri sa a pwogram ak yon editè tèks senp tankou
jdi, ekivalan a ki pi senp nan yon bagay tankou Microsoft Word, ki
enstriksyon, # genyen ladan stdio.h, se jis pral di du a, gen tan pwan an
Sa ki nan ke dosye lòt, stdio.h, epi kole yo dwa isit la.
>> Koulye a, poutèt sa mwen pran swen?
Ki sa ki te fè nou fè reklamasyon ki andedan sa a ranpli rele stdio.h, ki estoke
yon kote sou difisil kondwi m 'yo, oswa nan sa a ka, yon kote nan aparèy la CS50?
Yon lòt moun li mete l 'la pou mwen.
Men, sa ki a nan li?
>> Yeah, se konsa li a yon deklarasyon yon fonksyon rele printf.
Se konsa, printf rapèl fonksyon an ki montre mo yo ak karaktè ak
nimewo sou ekran an nan òf mwen.
Men, mwen pa t 'ekri l'.
CS50 pa t 'ekri l'.
Ane Yon moun de sa te ekri li, epi yo esansyèlman te ban nou resèt la pou li
nan yon dosye rele stdio.h.
Se konsa, ki liy premye jis ki ban m 'aksè nan nan fonksyon ke yon lòt moun
te ekri ane de sa, nan mitan ki se printf.
>> Koulye a, liy nan pwochen mwen pral balanse mwen men nan, omwen jiskaske an semèn pwochèn.
Men, pou kounye a, konnen ke Int prensipal (san valè) se esansyèlman ekivalan a nan sa a
jòn devinèt moso lè vèt drapo klike.
Mond lan, ane de sa, deside ke si w ap ekri yon pwogram nan nan
lang yo rele C, ou kòmanse pwogram ou an ak yon liy
ki sanble ak sa.
Nan jis sou tan yon semèn la, li pral fè sans sa Int se, ki sa ki anile se.
Men, pou kounye a, jis panse a li kòm pyès sa a devinèt jòn.
>> Koulye a, kap vini an, nou gen yon atèl Curly swiv pa yon lòt fèmen atèl Curly,
se konsa yo pale.
Men, nou pral wè sa yo nan tout pwogram nan C, osi byen ke
JavaScript ak PHP.
Apre sa, jis ankapsulasyon liy ki gen rapò ak nan kòd.
Louvri Curly atèl a esansyèlman di, isit la vini kèk kòd.
Epi li fèmen Curly atèl a, ki se Incline nan yon direksyon ki lòt, jis
vle di, sa a, se li pou kòd la ki enpòtan.
>> Se konsa, liy la juicy nan sa a premye pwogram se sot pase yo, printf a,
quote-unquote, alo nan lemonn.
Apre sa, mwen rele bagay la ant quotes sa ki dènye fwa?
Se konsa, li nan yon fisèl.
Men, yon kòd se jis techie la tèm pou yon sekans
karaktè, yon mo, yon fraz.
Menm yon lèt yon sèl te kapab dwe doub te site.
Men, li la yon sekans nan zewo oswa plis karaktè.
>> Antislach-n, menm si, sanble yon ti jan etranj.
Men, sa te senpleman siyifi yon bagay senp nan òdinatè a.
Ki sa ki nan antislach-n?
New liy.
Se konsa, sa se sèlman sekans lan espesyal nan karaktè ki te mond lan deside
vle di mete yon ti repo liy dwat la, paske du a pral aktyèlman jwenn
konfonn, anjeneral,, si ou, trè konprann, men mal, jis
kòmanse frape Antre yo mete nouvo liy nan Kòd ou.
Ou bezwen gen yon ti kras pi plis eksplisit ak antislach n-.
>> Men, nou pral wè, gen nan yon kèk lòt sa yo modèl pou karaktè espesyal.
Pou egzanp, si ou te vle kite ou lide moute desann nan yon ka kwen,
sipoze ke mwen te vle enprime yon doub quote sou ekran an pou
kèlkeswa rezon an, ki ta sanble yo gen yon ti kras pwoblèm, dwa?
Paske si mwen mete yon quote doub nan la mitan nan "alo mond,," pou kèlkeswa
rezon ki fè, poukisa ki sanble potansyèlman pwoblèm?
Li kraze fisèl la.
>> Du a se jis yon pwogram nan.
Yon pwogram tankou yon du se jis ale li tèt Kòd ou a anba,
gòch a dwat.
Men, si wè twa quotes doub olye nan de, li pa nan ale nan konnen
si ou vle di ke bagay la sou bò goch la yo ta dwe fisèl la, ou ankò bagay nan
dwa a, oswa tout bagay la.
Li nan Limit, ak Se konsa, sa yon tipik du ta fè se jis sovaj soti,
ak ba ou kèk mesaj erè, ak fè ou fè fas avèk pwoblèm nan.
>> Se konsa, bay yo ke antislach-n vle di yon nouvo liy, Ki sa ki ta ensten ou an kounye a
kòmanse yo dwe si ou te vle genyen ladan yo yon bagay iregilye tankou yon doub
site andedan nan sa a otreman-site fisèl?
Antislach-doub quote.
Se konsa, nou pral wè sa a kalite modèl tou.
>> Si ou vle fè yon bagay yon ti kras etranj, w ap jwenn ki nan
solisyon souvan swiv yon modèl, ak antislach a
vle di yon sekans chape.
Men, li jis vle di yon bagay espesyal ke nou bezwen reprezante nan yon
diferan fason.
Kòm pou ki jan ou reprezante yon antislach, byen, nou pral
tounen vin jwenn sa.
Men, repons lan, tou, se aktyèlman yon ti jan evidan.
>> Se konsa, kite a kounye a prezante kèk lòt pwogram konstwi
ke ou te wè nan grate.
Ou te pwobableman pran pou yo akòde deja si ou te deja plonje nan
pwoblèm mete 0.
Men, kite a kounye a prezante sentaks la nan C pou sa yo otreman entwisyon san patipri
lide, omwen kèk nan yo.
>> Se konsa, sa a nosyon nan yon kondisyon oswa yon branch, Lè nou konsidere ke deja nou
reprezante l 'ak kòd ki gade tankou sa a sou bò gòch la nan scratches -
Si x se mwens pase y, Lè sa a, di nou fè sa -
olye pou kounye a nan C - kite m 'egwize nan sou ka a ki pi senp -
nou ap tou senpleman ale nan di, si, louvri parantèz, yon bagay se vre - yon
Boolean ekspresyon ki pral ale kote mwen te di kondisyon -
parantèz fèmen, Lè sa a, sa ki nan andedan nan sa yo aparèy òtopedik Curly.
>> Se konsa, isit la, tou, aparèy òtopedik yo Curly yo se kalite tankou nan scratches
U-ki gen fòm devinèt miyèt moso.
sa ki andedan sa yo aparèy òtopedik Curly.
Nan ka sa a, koupe koupe.
Ak Avi sa a se yon pi devan koupe, se pa yon antislach.
Forward koupe, pou pi devan koupe, pou moun ki te pwograme
anvan, jis vle di -
li nan jis yon kòmantè.
Yon kòmantè se pa yon liy nan kòd, se pou chak.
Li se yon liy lan nan angle ki nou la a, moun, yo te ekri nan tèt ou
petèt fè ou sonje fè yon bagay, nan esplike tèt ou, pou esplike
yon lòt moun, sa ki Kòd ou ap fè.
Se jis nan yon kòmantè deskriptif.
>> Koulye a, nan kou, nou ka gen yon fason de- fouchèt nan wout la jis pa fè sa, yon
twa-fason fouchèt nan wout la pa fè sa a, epi si ou kontinye sa a
modèl, ou ka gen kat fason sa a, senk-fason sa a, sis-fason fouchèt nan wout la si
ou bezwen okipe, tout bon, ki kondisyon anpil.
Lè sa a, remake paralelis la isit la -
si (kondisyon), lòt moun si (kondisyon), ak yon sèl la sèlman ki nan yon ti kras
etranj se dènye a, ki se jis ke lòt moun.
Men, ankò, sa a se ki idantik, concept, nan ki sa nou te fè
deja, menm si sentaks la pral pran yon ti jan resevwa itilize yo.
>> Koulye a, nan egzanp sa a, gen kèk lòt sentaks etranj.
Nou wè printf ankò, louvri parantèz, epi fèmen parantèz.
Ak andedan nan gen yon kòd te site.
Parantèz yo, nan yon kontèks nan printf, ale sou bò gòch la
e yo gen dwa nan sa?
Ki sa nou dekri ki te site fisèl kòm plis jeneralman?
>> Se konsa, li gen yon diskisyon.
Nenpòt ki lè ou gen yon fonksyon, tankou printf, ak Lè sa a, yon paren louvri, epi yon
fèmen paren ak yon bagay andedan nan li, si li nan yon fisèl, oswa yon
nonb antye ki pè, oswa tout lòt bagay, bagay la nan ant moun parantèz yo rele
gen yon diskisyon.
>> Men, gen yon diskisyon sèlman enfliyanse konpòtman fonksyon an.
Nan ka sa a, li la trè klè ki jan.
x <y se sa k ap pase nan, se konsa pale, kòm yon agiman.
Men, printf ki pral enprime egzakteman sa.
Paske siman, ane sa yo moun sa pibliye depi ki moun ki aplike printf te gen okenn lide
ki sa nou siksesè moun yo te pwal itilize printf pou.
Se konsa, Se poutèt sa agiman egziste, nan enfliyanse konpòtman apre yon nan fonksyon
te ekri.
>> Koulye a, Boolean ekspresyon.
Nou te wè sa yo anvan nan grate.
Li sanble nan C ou kapab tou "oswa" yo ansanm, se konsa pale.
De ba vètikal vle di ke sa a blòk nan kòd, sa a fè sa, pral
egzekite si kondisyon an premye se vre oswa kondisyon nan dezyèm se verite.
Men, menm si ou pa ta ka fè sa a nan grafouyen, ou te kapab tout bon
fè sa nan grafouyen, epi ou ka tou eksprime tèt ou yon fason diferan -
si kondisyon an premye ak dezyèm lan kondisyon yo se verite, lè sa a sa ki nan
andedan nan aparèy òtopedik yo Curly.
>> Ak jis kòm yon sou kote, rezon ki fè yo li nan yon comercial doub ak yon doub
vètikal ba, nou pral wè evantyèlman ki yon sèl ba vètikal yo ak yon
sèl comercial gen aktyèlman diferan sa vle di nan C. Se konsa, pou kounye a,
ki repetisyon nan senbòl se entansyonèl.
>> Se konsa, kite a prezante, yon ti tan, sa a ti jan lòt kote nan sentaks.
Sa a pa byen pote sou nan Grafouyen, men mwen reklamasyon ke mwen kapab
aplike nosyon an nan yon lòt si, si lòt moun, si lòt moun, si lòt moun deklarasyon lè l sèvi avèk
yon bagay yo rele yon deklarasyon switch.
Ak rezon a sèlman sa a vrèman egziste se jis ban nou an, pwogramè a, yon
yon ti kras diferan fason pou rezoud kèk pwoblèm, menm si lojikman li
pa ba ou nenpòt kapasite nouvo.
>> Pa sa mwen vle di sa a.
Lè ou di switch, ak Lè sa a espas yon, ak Lè sa a yon pè nan parantèz, andedan
nan yo ki ale yon ekspresyon -
ak sa a ta kapab yon ti kras ki pa evidan an premye, men sa a se pa yon diskisyon,
teknikman, paske switch se pa yon fonksyon.
Se konsa, pou kounye a, jis asime ke nou ap lè l sèvi avèk parantèz nan diferan kote
pou rezon diferan.
>> Se konsa, switch sou ekspresyon vle di mwen kapab mete yon andedan varyab nan tout sa yo
parantèz kote li di ekspresyon.
Lè sa a, si varyab sa a -
ta kwè sa yo rele x, ak li nan jis yon nonb antye relatif -
Mwen ka Lè sa a, resanse nan glise mwen isit la yon bagay tankou sa.
Si x se varyab m ', mwen vle fè yon bagay si x
egal 1, mwen ka fè sa.
>> Si m 'olye vle fè yon bagay Si x se 2, mwen ka fè sa.
Lòt Bagay, si mwen vle fè yon lòt bagay antyèman, mwen ka gen yon ka default nan
ka sa a mwen fè bagay sa a ak lòt.
Se konsa, nan sans sa, li ekivalan a yon si x egal egal 1, lòt moun si lòt moun,
men mwen mansyone sa a kounye a jis paske nou pral wè l 'ankò.
Men, pou kounye a, jis konnen ke li egziste.
>> Tout dwa.
Se konsa, sa yo koup dènye yo se yon ti kras pi plis konplèks nan premye gade, men yo fè
yon bagay san patipri senp.
A pou bouk nan C se yon ti moso nan kòd ki jis fè yon bagay ankò, li
ankò e ankò.
Ak sèlman bagay la anmèdan sou li se ki se ke li nan yon ti kras skre
eksprime sa yo panse tèt ou nan sa a conjoncture modèl, men mond lan ofisyèl sou
fason sa a.
>> Lè ou sèvi ak yon pou bouk, ou te gen yon pè nan parantèz yo ankò.
Ak Avi virgules yo de an la.
Moun sa yo ki virgules de separe twa ekspresyon diferan yon anndan nan la
parantèz.
Youn nan se inisyalizasyon yo sa yo rele.
Youn nan se kondisyon an sa yo rele.
Men, se yon sèl dènye yo sa yo rele.
>> Gade nan abstrè a, sa a se konplètman ki pa evidan, se konsa Se pou yo gade
nan yon egzanp konkrè.
Nan scratches nou te gen yon blòk repete.
Lè sa a blòk di repete 10 fwa, di "Hello, nan lemonn." Kite m 'fè reklamasyon pou
kounye a, epi nou pral tounen vin jwenn sa a, ak sa a, tou, yo pral jwenn plis abitye nan
ou anvan lontan, C a ekivalan Kòd kapab di ke yo dwe sa a -
yon pou deklarasyon ak espas yon, yon pè nan parantèz, remake virgules yo ki nan
gen la, ki separe twa distenk bagay sa yo, inisyalizasyon a,
kondisyon, ak aktyalizasyon la.
>> Men, pran yon devine kisa premye a ap fè.
Int mwen = 0.
An tèm ki graj pwofàn la, sa ki ki fè pou nou, pwobableman?
Se konsa, yeah.
Li nan deklare yon varyab ki rele mwen, ak li a bay li sa ki valè?
0.
Se konsa, li la kreye yon varyab ki rele mwen, sere 0 a valè nan li.
Sa a inisyalizasyon la sa yo rele.
>> Tout dwa, koulye a mwen te reklame anvan ke bagay la mitan, mwen
<10, se kondisyon an.
Se konsa, sa ap travay?
Oke, sa bouk la pou fè lè yon Pwogram ak yon pou bouk kouri, se
chak fwa òdinatè a kouri nan sa a bouk, anwo jouk anba, anwo jouk
anba a, jis tankou ou nèg 'te fè lè konte nou ak chita,
ankò e ankò e ankò, òdinatè a ki pral
yo tcheke ki kondisyon.
Men, si mwen se mwens pase 10, li pral fè l 'ankò.
Si m 'se mwens pase 10, li pral fè l 'ankò.
Si m 'se mwens pase dis, li pral fè l 'ankò.
Se konsa, ki sanble sijere ke èspere ke mwen ap chanje.
Sinon, nou ta gen yon bouk enfini.
Ak tout bon, mwen ap chanje, paske la dènye bagay apre virgules a gen
se sentaks la yon ti jan skre nan mwen + +.
Men, moun nan nou ki te fè sa a anvan, ki jis vle di
byen tou senpleman ki sa?
>> ELÈV: [entèrpozisyon vwa].
>> DAVID Malan: Add 1 a mwen.
Enkreman mwen.
Se konsa, nou wè yon devinèt scratches moso pou sa, aktyèlman.
Li pa t 'gade tankou mwen + +, ki men jis vle di, byen tou senpleman, enkreman la
apresye mwen pa 1 chak fwa ou fè sa.
Se konsa, literalman, ou kòmanse pa inisyalizin mwen a 0.
Ou Lè sa a, tcheke eta sante ou.
Èske 0 mwens pase 10?
Wi.
Nou ale nan bouk la.
>> Bagay nan pwochen mwen reklame a nan òdinatè pral fè a se li pral
enkreman mwen.
Se konsa, mwen se kounye a 1.
Li chèk kondisyon an.
Èske 1 mwens pase 10?
Nan kou.
Se konsa, fè l 'ankò.
Lè sa a, li ogmantasyon mwen + + nan 2.
Se 2 mwens pase 10?
Wi.
Men, ankò, li ankò e ankò.
Ak evantyèlman, paske nan la plis-plussing, nou jwenn yo mwen egal 10.
Se 10 mwens pase 10?
Oke, evidamman pa.
Epi sa a, pwen an nan ki pou bouk jis sispann la.
Men, si ou gen plis Kòd sou la ekran desann anba a, òdinatè a
montan a kouri ke Kòd pito.
>> Se konsa, ankò, menm si sa a ki pral gade epi yo santi yon ti jan etranj nan
premye, sètènman pou moun nan nou ki pa janm pwograme anvan, li
literalman diminye concept nan sa a otreman yon trè
dwat devinèt moso nan grate.
>> Tout dwa, mwen te pwomèt ke gen ta gen analogue lòt nan grate.
Genyen yon sèl sa a tou.
Men, nou te wè tan sa a yon ti tan sot pase yo.
Men, sonje pou tout tan an bloke nan grafouyen?
Li jis fè yon bagay pou tout tan?
Mwen te deklare ke ou ta ka aplike sa a nan fason sa a.
Epi ou ka aktyèlman aplike sa a nan yon pakèt moun sou fason diferan.
>> Men, bouk la pandan y ap se jis yon diferan fason nan C nan eksprime tèt ou.
Nan fen jounen an, ou pa kapab fè anyen ak yon bouk pandan y ap ke ou
pa kapab ak yon pou bouk.
Se konsa, yo ap nan fen a jou fonksyonèl menm bagay la.
Men, li pèmèt ou eksprime tèt ou yon ti jan diferan nan
fason sa a.
>> Avèk bouk la pandan y ap, li nan sa ki nan parantèz ki nan tcheke ankò, li
ankò e ankò.
Lè sa ekspresyon ki fo, Lè sa a, bouk la sispann egzekite,
ak òdinatè a devan yon kouri tou sa lòt Kòd ou
gen nan dosye ou.
>> Men, sa ki nan enteresan isit la se ke mwen literalman tape vre.
Men, vre se yon kalite ki gen valè Boolean, yon valè vrè oswa fo.
Se konsa, te kapab vre tout tan tout tan vin fo si mwen te literalman
difisil-kode l 'nan pwogram mwen an?
Se konsa, pa gen okenn.
Li se yon ti kras etranj ki m 'te fè sa a.
Men, vre a se vre.
Gen nan pa gen plis-plussing.
Gen nan pa gen pou sèvi ak varyab nan isit la.
Se konsa, paske mwen difisil-kode pandan y ap vre, sa a bouk se toujou ale nan evalye
ankò e ankò epi ankò.
>> Se konsa, konbyen fwa se mond alo ale nan ekri ak lèt ​​detache sou ekran an?
Pou tout tan.
Yon nonb infini nan fwa jiskaske la batri mouri oswa kèk ekstèn lòt
evènman k ap pase.
Se konsa, sa a se pwobableman pa pi bon pwogram ekri, paske si itilizatè a
pa janm ka kite pwogram ou an, li nan pwobableman pa sa ou gen entansyon.
>> Men pafwa, pwogram yo ta dwe gen yon bouk enfini.
Pou egzanp, si òdinatè w lan gen yon revèy sou li, li sètènman ta dwe
bèl si revèy ou li kenbe à tèt li pou tout tan, kwake yon fwa nan yon
dezyèm oswa yon yon fwa nan yon minit oswa yon bagay tankou sa.
Se konsa, menm enfini pasan fè gen plas yo.
>> Tout dwa.
Anfen, yon sèl sa a.
Lè sa a se yon sèl yon ti jan diferan fonksyonèl, epi nou pral tounen vin jwenn
sa a pwobableman nan Pset 1.
Men, gen nan yon lòt di ki kalite bouk rele yon fè pandan y ap bouk.
Men, diferans la sèlman isit la ant yon fè pandan y ap bouk ak, di, yon bouk ti tan,
se ke se kondisyon an tcheke pa ou anvan ou egzekite kòd la, men apre
ou egzekite Kòd la.
Se konsa, nan tèt la pou pandan y ap nan bouk, Lè nou konsidere ke fè la pandan y ap
chèk li nan pati anba a.
>> Lè sa a jis vle di ke pandan ke bouk la ap tipikman egzekite fwa plis
oswa mwens fwa pase yon bouk pandan y ap?
Ki kapab plis fwa, paske yon fè pandan y ap bouk se klèman di fè sa,
sèlman apre yo fin ki pwen ou tcheke si kondisyon anndan an nan la
parantèz a se vre.
>> Se konsa, nou pral wè sa a ankò pwobableman nan Pset 1.
Si ou tout tan tout tan vle fè yon bagay nan omwen yon fwa ak Lè sa a petèt kèk plis
fwa, sa a se yon bon konstwi yo sèvi ak.
Men, yon bouk pandan y ap, pa kontra, yo pral tcheke kondisyon li an premye.
Epi sa a, li pou pasan nan C, pandan y ap, pandan y ap, ak pou pasan.
Li di ankò, yo kat trè joliman tounen nan grate, eksepte yon sèl sa a pa fè
byen gen analòg la menm nan grate.
>> Oke, ki jan sou, kounye a, varyab?
Se konsa, sa a se ki jan mwen te deklare yon varyab syntactically lòt jou a.
Mwen te gen yon Int, ki mwen te reklame se yon nonb antye.
Mwen Lè sa a, te gen yon varyab vann san preskripsyon rele, ak Lè sa a yon virgules.
Se konsa, sa se liy sa a nan kòd fè la a?
Sa a se, byen tou senpleman, deklare yon varyab -
ki se, mande òdinatè a, ban m ' kèk memwa, ban m 'kèk Bits - nan
ki mwen ka magazen ki sa?
Yon Int.
Men, virgules a jis vle di fen nan liy nan kòd.
>> Koulye a, liy nan dezyèm se pwobableman bèl guessable.
Ki sa ki se vann san preskripsyon = 0; fè la a?
Li nan plase 0 a vann san preskripsyon.
Se konsa, sa a se bagay ki lòt sa a, se yon ti kras anmèdan
kont, di, aljèb.
Lè nou konsidere ke nan aljèb, siy la egal vle di egal, isit la nan C, egal a
siy vle di plasman.
Se konsa, li vle di mete sa ki nan sou bò dwat la nan sa ki nan sou bò gòch la.
Men, nou pral wè yon lòt senbòl, egal egal, lè nou vle aktyèlman tès
pou bon jan kalite, yon ti jan annoyingly.
>> Men, sa a se yon ti kras rezèvwa.
Li nan kalite anmèdan ke mwen gen deklare yon varyab ak
Lè sa a, ba li yon valè.
Se konsa, C aktyèlman pèmèt nou senplifye sa a ak jis fè li tout nan yon fwa.
Ou ka deklare varyab la sou bò gòch la.
Ou ka toujou fè plasman an sou la dwa pa mete ki siy egal nan
mitan yo.
Se konsa, nan fen jounen an, sa yo de yo se ekivalan, men yon sèl sa a, franchman,
se pwobableman abitid nan pi bon jwenn nan jis paske li nan yon ti kras mwens
Kòd, li nan yon ti kras pi fasil li, ak li jis ranforsi moute
Kòd ou, se konsa pale.
>> Nenpòt kesyon konsa byen lwen sou pasan yo, sou varyab, sou kondisyon, sou
Booleans, swa teknikman oswa concept?
Tout dwa.
Se konsa, kounye a yon sèl sa a kap vini yo vin yon ti kras pi plis enteresan.
Lè sa a se egzanp lan mwen mete moute sot pase yo tan ki jis kat yon egzanp scratches
sou nan C.
>> Se konsa, yon fonksyon.
An tèm pwofàn la, sa ki nan yon fonksyon?
Got yo dwe odasyeu ak repons ou an.
Ki sa ki nan yon fonksyon?
>> ELÈV: Èske yon bagay.
>> DAVID Malan: Ki sa ki nan sa?
>> ELÈV: Èske yon bagay.
>> DAVID Malan: Èske yon bagay.
OK.
Nou pral kòmanse a.
Se konsa, yon fonksyon fè yon bagay.
Se konsa, li yon moso nan Kòd sa a, se esansyèlman aplike yon lòt kote ki
tout bon fè yon bagay.
Koulye a, sa ki nan enteresan sou yon fonksyon se ke li ka pran opinyon,
epi li ka pwodwi pwodiksyon.
Li kite yo aktyèlman pran yon gade nan sa a.
>> Se konsa, nonm lan dèyè rido a te ekspre yon ti moman de sa.
Isit la nou gen yon tab.
Men, si ke sa a aktyèlman reprezante yon bwat gwo.
Se konsa, sa a se yon sa yo rele bwat nwa.
Men, an jeneral, nan konsepsyon, nan òdinatè syans, bwat nwa jis, al gade nan
moso nan fonctionnalités ke yon moun te aplike, epi ou pa fè sa
nesesèman konnen oswa ou pran swen li montre kouman li a aplike anba kapo a.
Ou jis pran swen ke sa a bwat nwa, ki nou pral kounye a kòmanse rele yon
fonksyon, fè yon bagay.
>> Se konsa, pou egzanp, si bwat sa a nwa sou etap la isit la reprezante printf, yon
fonksyon, mwen konnen ki soti nan egzanp anvan yo ki printf pran youn oswa plis
agiman, ak premye a nan tout sa yo agiman ta dwe gen yon fisèl, tankou
"Hello, nan lemonn." Bon, si mwen menm ki moun nan ekri pwogram nan, e mwen vle
yo sèvi ak printf, mwen, pou egzanp, ka pran yon moso papye vid isit la ak yon
nwa makè epi ekri sou li -
Mwen mal ekri "mond" -
H-E-L-L-O.
>> Se konsa, mwen ap pran makè nwa mwen epi mwen pral ekri, kòm gwo ak non an aklè jan mwen kapab sou
sa a moso papye, "hello, sou latè," Epi koulye a, mwen fè reklamasyon sa a se agiman m 'yo.
Sa a se yon fisèl reprezante ak yon moso papye blan.
Ak opinyon mwen an kounye a nan fonksyon an printf a pwal sa a.
Se konsa, mwen rele printf, pase ki agiman kòm opinyon li.
>> Epi, koulye a, mwen pa konnen ki jan moun ki te ekri printf te fè li ane de sa, men
Mwen konnen soti nan dokiman li yo ki objektif li nan lavi se ekri ak lèt ​​detache sa m '
bay li kòm opinyon.
Se konsa, menm si sa a aplikasyon se ensu l m '
anba kapo a, kounye a Mwen wè, oh, li se fè.
Li te gen enprime yon bagay sou ekran an.
Epi, koulye a kontwole nan pwogram nan, si gen yo te plis liy nan Kòd, ta
gen kounye a tounen vin jwenn mwen.
Se konsa, lefèt ke Holton -
beni kè l ': se kache isit la anba yon tab la devan nou tout -
se ekspre nan ke mwen pa konnen epi mwen pa pran swen ki jan printf se
aplike.
Mwen jis konnen, ankò, ki soti nan li yo kopi dokiman yo, ki sa li fè ak ki jan mwen
mwen sipoze sèvi ak li.
>> Koulye a, sonje ke printf t 'kapab jwenn yon ti kras pi plis sofistike.
Ankò, nou jis ap pale sou la ekivalan nan blòk diz scratches la.
Men, m 'te fè tan sa a sot pase yo.
Mwen te vle fè pwogram alo mwen yon ti kras pi plis dinamik epi li pa jis difisil
yon bagay Kòd tankou "mond," ak definitivman pa difisil Kòd yon bagay
abitrè tankou D-A-V-mwen D- nan pwogram nan.
Mwen te vle mande itilizatè a pou li oswa li Non, ak Lè sa a, fè yon bagay ak
ki fisèl yo ke yo bay yo.
>> Se konsa, gen nan yon bagay yon ti kras diferan isit la. printf, yon ti moman de sa,
t ', tout bon, fè yon bagay, men li pa t 'tounen anyen m'.
Dwa?
COLTON pa t 'lage m' anyen tounen, pa gen moso papye.
Gen te jis yon efè segondè.
Bay mwen "hello, mond" kòm yon agiman Holton a nan la
efè segondè nan yon mo, gen kèk mo, parèt sou ekran an.
>> getstring, menm si, se yon ti kras diferan. getstring se tou yon
fonksyone, men li retounen kèk valè.
Li pa jis gen yon ayestetik bò efè.
Li aktyèlman ki ban m ', moun nan rele oswa lè l sèvi avèk fonksyon an,
yon bagay tounen.
Se konsa, nan ka sa a, getstring se rele ak getstring louvri
paren, fèmen paren.
getstring, Se poutèt sa, pran nenpòt ki agiman oswa opinyon?
Non, li sanble pa.
Objektif li nan lavi se jis jwenn yon kòd.
Li bezwen detay pa plis pase sa.
Se konsa, kite m 'ale pi devan epi pretann ke, ankò, sa a bwat nwa se pa printf,
men getstring, ak kite m ', moun nan ekri pwogram sa a, rele oswa itilize
getstring pa jis ekri G-E-T-S-T-R-I-N-G, louvri paren, fèmen
paren, getstring.
>> Koulye a, mwen pa gen okenn lide ki jan anplwaye nan CS50 aplike getstring, men mwen konnen ke
si mwen rete tann lontan ase, li pral fè li bagay anba kapo a, petèt lè l sèvi avèk
kèk varyab, petèt lè l sèvi avèk kèk kondisyon, petèt lè l sèvi avèk kèk pasan,
petèt lè l sèvi avèk kèk fonksyon, petèt lè l sèvi avèk -
jis ap eseye nòmal - petèt lè l sèvi avèk kèk karakteristik pwogram lòt.
Men, si mwen rete tann lontan ase - an reyalite, nan òdinatè a, sa rive
super vit -
si mwen rete tann lontan ase, fonksyon sa a getstring ki pral yo ka resevwa yon fisèl
soti nan itilizatè a, ki moun ki prezimableman tape li soti sou klavye yo, epi yo
Lè sa a,, lè ou getstring se fè ap resevwa sa yo karaktè soti nan itilizatè a
epi estoke yo nan yon fisèl, ki fonksyon, getstring, ki pral gen
pare pou m 'kèk pwodiksyon ki mwen menm ki ale nan rekipere pa fason pou la
operatè plasman.
>> Men, si m 'ale, tout bon, nan pwodiksyon an isit la, Obosi gen san gad dèyè
patisipe, san yo pa konnen sa a nan avanse, pa ekri non l 'sou sa a
varyab, ki se ki reprezante yon kòd.
Koulye a, operatè a plasman vle di, menm menm si sa a ka santi yon ti kras
redondants, mwen aktyèlman fè bezwen fè kopi m 'pwòp sa a.
Paske sou bò gòch bò - whoops! -
remake ke mwen esansyèlman gen fil non sou bò men gòch.
Se konsa, mwen tou pwal fè kopi m 'pwòp sa a.
Lè sa a se yon ti jan nan yon manti blan, paske nou pral wè nan yon semenn oswa de a
tan ki strings yo pa aktyèlman sa yo parèt yo dwe.
>> Men, pou kounye a, isit la se valè a retounen.
Isit la se kopi m 'pwòp nan li apre yo fin lè l sèvi avèk operatè plasman an.
Koulye a, sa m 'vle yo dwe fè pwochen?
Nou kounye a gen dezyèm lan nan de liy nan kòd.
Se konsa, mwen kounye a ou vle rele printf.
Se pou yo pretann kounye a ke nwa a bwat se tounen ankò yo te
printf epi yo pa getstring.
>> Printf tan sa a ki pral pran konbyen agiman?
Se konsa, gade, li la tankou de.
Genyen de vigil nan gen, men youn nan moun ki vigil, li nan
andedan nan quotes yo.
Se konsa, agiman an premye se literalman yo pral sa a.
H-E-L-L-O, vigil, pousan s, antislach-n.
Epi, koulye a mwen bay pa gen yon sèl agiman, men de agiman printf.
>> Ak sa ki nan printf dwe fè ak de sa yo entrain apre mwen fin pase yo nan
kòm agiman?
Li nan sipoze pran dezyèm lan nan yo a, ki mwen rele, Se konsa,
dezyèm moso papye mwen te ekri soti yon ti moman de sa yo rele Non.
Li nan ale nan ploge nan valè a andedan varyab sa a nan kontneur a,
% S, se konsa ke, ankò, nan jis yon ti moman nan tan sa a, nou pral wè yon efè segondè nan
li te gen rele printf, annakò ak kounye a nou pa ka wè "hello, mond," men "hello,
Obosi. "
>> Se konsa, yon wonn gwo aplodisman nan tou de nan volontè nou yo, se sèlman youn nan moun te konnen
sa a ta dwe pase.
Tout dwa.
Se konsa, petèt, senp tankou sa ki te, sètènman, si ou deja abitye
ak sa yo, èspere ke ou pral pa janm bliye ke vizyèl patikilye nan ki jan
fonksyon travay.
>> Se konsa, gen nan plis pase jis getstring.
Anndan nan bibliyotèk la CS50, gen yon tout pakèt moun sou fonksyon yo, tout nan yo ki
yo pwofite kapitalize jis fè klè ke nou te ekri fonksyon sa yo.
Tipikman, nan C, prèske chak lòt fonksyon ou pral sèvi ak se miniskil.
Men, nou fè espre sèvi ak lèt ​​majiskil jis fè klè ke sa yo
se wou fòmasyon nan kalite ki nou pral itilize pou jis yon kèk semèn ki
senplifye pwosesis la nan ap resevwa D 'soti nan itilizatè a.
>> Bibliyotèk nan CS50 pa fè anyen ke ou nou pa t 'kapab fè nan
jis lè l sèvi avèk C Kòd soti nan yon neg_montreal liv.
Men, ankò, nou sèvi ak yo kòm fòmasyon wou nan kalite pou jis yon koup nan
semèn pou nou ka debarase m de la konpleksite ki ou pral byento konprann
tèt ou nan fè yon bagay kòm relativman senp kòm trape
D 'ki sòti nan yon itilizatè.
>> Se konsa, konnen ke ou pral gen aksè GetChar, GetDouble -
double.
What's - ak Lè sa GetFloat.
Ki sa ki nan yon flote?
Ann kòmanse a.
>> ELÈV: [fèbl].
>> DAVID Malan: Yeah.
Li se yon nimewo ak yon pwen desimal.
Se konsa, Lè nou konsidere ke yon Int se yon nonb antye, ki se jis yon nimewo ak 0 jiska 9,
kèk nomb repetisyon yo ladan l ', yon flote se yon bagay ki
ak yon pwen desimal.
Men, yon doub, pandan se tan, se tou yon nimewo ak yon pwen desimal, men li plis
nimewo apre desimal la pwen, ki kapab.
>> Se konsa, nou pral jwenn tounen nan sa a depi lontan anvan.
Men, anjeneral, yo chak nan sa yo kalite done, yo chak nan sa yo kalite varyab
ki yon bibliyotèk tankou nou ka retounen nan ou, itilize nimewo diferan nan Bits
estoke enfòmasyon sou.
Tipikman, yon Char, ki jis vle di yon karaktè, itilize 8 miyèt moso.
Epi sa a, aktyèlman ki konsistan avèk nou multiple volontè semèn pase a ki
li moute soti deyò ak reprezante yon sèl ASCII karaktè nan yon tan.
Se konsa, yon Char se 8 miyèt moso.
>> Yon flote k ap pase yo 32 Bits, anjeneral.
Men, yon doub, kòm ou ka devine, se aktyèlman 64 Bits, ki se jis plis,
ki vle di ou ka gen pi gwo nimewo oswa presizyon plis.
Men, ankò, pi plis sou sa yon lòt lè.
GetLongLong, pandan se tan, menm si estipid yo te rele, se reyèlman jis yon
nonb antye ki pè sa a, se de fwa tankou gwo, de fwa tankou long, ki kapab, kòm yon regilye
nonb antye ki pè, 64 Bits olye pou yo 32.
Men, GetString nou ve yo te lè l sèvi avèk.
>> Men, li vire soti, nan bibliyotèk la CS50, ki se aplike, jan nou pral wè, nan
fòm lan nan de dosye yo, youn nan ki rele cs50.h, te gen de lòt
done kalite nan li.
Booleans pa egziste nan C. Ou kapab simulation yo pa jis lè l sèvi avèk 0s ak 1S
nan tout pwogram ou an.
Men, nou nan bibliyotèk la CS50 te kreye senbòl yo "vre" ak "fo"
ki reprezante 1 ak 0 pou ou pa fè sa gen yon bagay Kòd difisil
literalman tankou 1 ak 0.
Men, nou pral wè sa yo ankò.
>> Fisèl, tou, pa egziste.
Ak Se poutèt sa mwen mansyone li nan yon ti jan nan yon manti blan pou kounye a.
Men nou pwal kale tounen ki kouch anvan lontan.
Men, pou kounye a, yon kòd se yon sekans nan karaktè.
>> Pandan se tan, nan C, ou tout bon gen done diferan kalite.
Avi sa yo, se lèt miniskil.
Se konsa, fonksyon yo ou te wè yon ti moman de sa yo fonksyon ekri pa CS50 ki
yo pral retounen nan ou yon valè ki tonbe nan yonn nan kategori sa yo.
>> Yon fèy papye tronpe koup jis ki plante pitit pitit an isit la. printf fè sa ki pa jis
pran% s kòm placeholders.
Li pran d% pou nonm antye desimal, oswa% mwen ta travay kòm byen.
F% se k ap flote valè pwen. C% se pou yon Char, si ou vle jis ploge yon sèl
N. nan yon fisèl preformatted tankou nou ve yo te fè, ou ka itilize c%.
>> Lè sa a, yon ti jan annoyingly, lld% se pou yon long, nonb antye ki pè desimal long,
ki jis vle di si w bezwen yon vrèman gwo nimewo ak w ap itilize yon bagay
rele yon tan long, ki nou ap vin tounen nan nan yon pset, ou ka itilize lld% a
di printf, ploge nan yon gwo vrèman nonb antye ki pè isit la pa fason pou dezyèm li yo oswa
kèk agiman ak lòt.
>> Apre sa, enfin, mwen te pwomèt ke gen yon chape kèk lòt
sekans ki printf sipòte.
Nou te wè antislach-n.
Antislach-r ou ka wè.
Li nan sòt de yon bagay fin vye granmoun-lekòl la.
Si ou te janm itilize yon ane typewriter reyèl de sa, epi ou rale sou manivèl la
ki pa sèlman vire toutotou a wou a deplase pwogramasyon an, li tou te deplase nan
tout bagay tout wout la tounen nan men bò gòch la, byen, antislach-r jis
esansyèlman deplase tounen kursor ou nan kòmansman an nan liy la
san yo pa k ap deplase li desann.
Men, ankò, plis sou sa, petèt, nan tan kap vini an.
>> Antislach-quote, antislach-doub quote, antislach-antislach a se nan
solisyon a kont la ti ti kras Mwen mansyone pi bonè.
Men, antislach-0 se aktyèlman byen enteresan.
Men, nou pral tounen vin jwenn ke anvan lontan.
>> Se konsa, kite m 'ale nan, kounye a, CS50 nan aparèy, e kite yo aktyèlman fè yon
rapid chofe ak youn nan egzanp yo nou t 'deja ak Lè sa a deplase sou li nan
yon bagay yon ti kras plis konplèks.
Se konsa, si mwen louvri moute pwogram mwen rele jdi -
sa a se editè grafik m 'yo.
Apre sa, mwen ka fè sa -
kite m 'fèmen ke fenèt gen -
pa fason pou sa a icon desann isit la, jdi, nan pati anba bò gòch la-
kwen pwochen nan meni an.
>> Mwen pral ale pi devan epi avanse, ak sove egzanp sa a nan, di, John
Katab Harvard la.
Katab Jan Harvard la se jis lakay li anyè kote tout nan dosye l 'yo ap viv
pa default.
Men, mwen pral pou konsève pou sa a kòm yon dosye rele alo-0.c.
Apre sa, mwen te chwazi non sa a jis se konsa li liy moute ak Kòd ki nan egzanp lan sou la
sit entènèt kou a ak nan la YouTube videyo sou entènèt.
>> Se konsa, kounye a mwen pral kòmanse ekri pwogram premye m 'yo.
Kite m 'rale nan pou lizibilite.
Men, mwen pral ale pi devan epi di Int prensipal anile, ki se jis tankou sa
jòn moso devinèt ki kòmanse yon pwogram.
Mwen te rantre nan abitid la sou la ane nan ouvèti atèl Curly m 'yo, Lè sa a,
tou fèmen l ', li Lè sa a, pral tounen nan kote mwen vle mete Kòd m 'yo, jis
paske li te ede m 'kenbe tout bagay balanse, espesyalman kòm m '
pwogram vin lontan.
>> Epi, koulye a, nan isit la, mwen pral ale pi devan ak di, printf, site unquote,
alo mond, antislach-n, fèmen quote, fèmen parantèz, virgules.
Se konsa, mwen jis repete tout sa nou te gen te pran pou yo akòde konsa byen lwen.
Koulye a, mwen pral rale soti.
>> Lè sa a fenèt tèminal desann isit la, sa ki mwen pèmèt yo fè sa a nan nwa
ak blan fenèt?
Ki sa mwen ka itilize li pou?
Se konsa, sa a se kote mwen kouri kòmandman ak ki kote mwen ka konpile bagay sa yo.
Men, mwen pral kenbe li senp.
Mwen pral sèvi ak yon pwogram rele Fè, ki se pa
teknikman yon du.
Rele sonnen du a, men nou pral tounen vin jwenn ke nan yon
semenn oswa tan de la.
>> Pou kounye a, mwen jis ale nan tape fè alo-0, Men, moun nan nou ki te
konpare nan lespri ou sa m 'jis tape sa m ta dwe tape ka
konnen deja ke mwen te fè yon bagay mal isit la.
Koulye a, gen nan byen klè kèk erè.
Anvan sa, mwen menm gade nan ki sa yo ye, nenpòt panse tankou sa ki m 'te fè sa ki mal?
>> ELÈV: [entèrpozisyon vwa].
>> DAVID Malan: Yeah.
Mwen manke dosye header bibliyotèk la.
Nenpòt nan sa yo. Dosye h yo rele header dosye, epi yo tout ansanm
fè pati nan bagay sa yo rele bibliyotèk yo.
Bibliyotèk yo se jis fragman nan kòd ke lòt moun te ekri.
Se konsa, [estanda a? mwen?] bibliyotèk la se yon koleksyon nan dosye ki genyen Kòd
ke lòt moun te ekri.
>> Se konsa, mwen manke sa.
Se konsa, poukisa m 'ap resevwa yon erè?
Oke, kite m 'woulo liv tounen moute nan fenèt tèminal m 'isit la.
Men, malerezman, nan C, tankou nan yon anpil nan pwogram lang, espesyalman
si li nan tout nouvo nou la a, erè a mesaj yo egzak, men yo ap tou
byen skre.
Men, erè a isit la, nan wouj, se "Chal deklare bibliyotèk fonksyon
printf ak kalite, "ak Lè sa a, li woulo nan liy lan kap vini yo, "Int CONST Char *,
... "Li jis vin reyèlman akablan byen vit.
>> Men, sa ki ou ta dwe konmanse ap fè, si, ankò, nouvo nan tout bagay sa yo, se jis
kòmanse gade pou mo kle.
Klèman, mwen pa ka konprann mwatye nan mo sa yo mwen wè jis ankò.
Ou pral, menm si, nan tan yon semèn la.
Men, mwen wè printf.
Epi ki ta dwe kòmanse, anvan lontan, yo Courier memwa ou, tout dwa, printf.
Yon bagay ki nan mal ak printf.
Eske se mwen eple li mal?
Non, li pa sanble - o.
Mwen pa ka sèvi ak li sof si mwen anseye du a ke li egziste.
Se konsa,, ankò, ale ak ensten ou a, menm si ou pa aktyèlman konprann
mesaj yo erè vrè.
>> Ak tout bon, solisyon an isit la se jis gen ladan li nan tèt la nan dosye a
tankou sa yo, resaving dosye mwen ak Kontwòl-S oswa meni an dosye-a.
Men, si mwen kounye a ale tounen desann isit la, Mwen pral klè sa a.
Kontwòl-L se jis yon fason bèl klè ekran an.
Lè sa a, mwen pral tape "fè bonjou 0 "Antre, epi kounye a mwen toujou wè yon
skre sekans nan senbòl yo, men nou pral tounen vin jwenn sa.
Sa a ki sa Fè ap fè pou ou.
Li nan otomatizan pwosesis la nan pran yon lòd san patipri anmèdan ki enplike
Rezone, du a vrè.
Men, lefèt ke mwen te resevwa pa gen okenn erè vle di ki bagay sa a ta dwe travay.
>> Se konsa, mwen kounye a pral fè - kite m 'rale nan ankò -
./hello-0 Antre, ak tout bon, mwen wè "Hello, nan lemonn." Se konsa, kite a kounye a amelyore
sa a tout tan tout tan se konsa yon ti kras jis replike etap sa yo nou gen entansyon.
Mwen pral chanje non sa a ak Save Kòm yo hello1.c.
Epi, koulye a mwen pral deklare yon varyab rele, se konsa Non fisèl,
ak Mwen pral mete nan nan li valè de unquote quote-
D-A-V-I-D pre-quote virgules.
Epi, koulye a mwen pral ranplase "mond" ak sa kontneur pou yon fisèl?
% S.
>> Epi, koulye a, konbyen agiman ta dwe printf pran tan sa a?
Se konsa, de.
Se konsa, mwen ale deyò nan quotes yo.
Mwen tape "Non" apre yon vigil.
Men, mwen te fè yon bagay lòt mal tan sa a.
Men, kite a sipoze ke mwen pa t ' reyalize ke ankò.
Kite m 'ale moute isit la.
>> Ak Avi, tou, mwen jwenn yon ti kras anwiye nan tape "fè bonjou a 0" tout
tan, "fè" ak tout bagay sa a.
Se konsa, li vire soti, nan Lenis ou kapab souvan frape flèch la moute sou ou
klavye, epi ou ka aktyèlman woulo liv nan tout nan kòmandman yo ke mwen te
egzekite anvan yo jis kounye a.
Se konsa, si mwen fè sa, moute:-Leve, gen nan fè alo 0.
Mwen pa vle sa.
Mwen jis vle chanje ke yo alo 1 tan sa a, antre.
Evantyèlman, ki pral sove ou kèk tan.
>> Tout dwa.
Malerezman, gen nan ou fè yon erè.
Se konsa, kite m 'woulo liv yo.
Sa a sanble Mwen vrèman mennen labatwa pwogram sa a.
Mwen vle di, Bondye mwen, li nan de liy nan kòd, ak liy 10 li yo nan erè.
Men, gade nan yon sèl nan tèt an premye.
Sèvi ak nan fisèl idantifyan sekrè.
Èske mwen vle di estanda mwen n?
Non, mwen pa t '.
M te vle di fisèl.
>> Men, kote se varyab fisèl kalite te deklare, DD nou di?
Se konsa, li nan CS50 nan bibliyotèk la.
Se konsa, li pa sifi, nan sa yo premye koup la semèn, jis yo sèvi ak
sa C ban nou.
Mwen tou pwal ale moute isit la, ak mwen te kapab mete l 'pi wo pase ou pi ba a, men mwen pral
jis kenbe li alfabetik kenbe bagay sa yo lòd.
Mwen pral gen ladan yo cs50.h, ki se pre-enstale pou
ou sou aparèy la CS50.
Lè li nan sous louvri, se konsa menm moun sou entènèt la ka sèvi ak li sou yo
òdinatè pwòp.
Men, li vini ak aparèy la CS50.
>> Se konsa, kounye a kite m 'ale retounen lakay yo epi compile sa a ak fè alo 1.
Modi li.
Yon lòt erè.
Kite m 'woulo liv jiska premye a, menm si.
Sa a yon sèl nan yon konplèks ti kras.
Multi-karaktè karaktè konstan.
Sa pa nan ede m '.
Men, avi, rezone, se omwen yon ti kras ti jan desan, kijan ak yon ti kras
vèt Lambda senbòl, li di isit la se kote mwen vise moute.
Poukisa li montre, ak ki ti kras vèt flèch, yo quote an yon sèl kap vini an
nan non mwen?
>> Se konsa, sa a se youn nan bagay ki ou jis jwenn itilize, espesyalman si w te yon
pwogramasyon nan Piton, oswa JavaScript, oswa lòt lang yo kote sa a detay
pa gen pwoblèm.
Nan C, li fè sa matyè.
Si w ap deklare yon kòd, ki se yon sekans nan 0 oswa plis karaktè,
ou aktyèlman dwe itilize quotes doub.
Se konsa, mwen aktyèlman bezwen chanje sa a tounen yo louvri quote, fèmen quote, ak
quotes doub.
Quotes Single fè gen plas yo, men yo sèlman lè w ap itilize moun
charaktèr, men plis sou tan sa a yon lòt.
Pou kounye a, quotes yo doub ki nesesè.
>> Se konsa, kounye a, kite m 'tounen nan tèminal mwen fenèt, fè alo 1.
Men, moun ki nan konfyans?
Èske pwogram sa a kounye a pral konpile kòrèkteman?
OK.
Se konsa, twa nan nou panse ke sa a.
Tout dwa.
Antre nan.
Men, li aktyèlman te fè sa.
Se konsa, gen nan pa gen erè tan sa a, menm menm si nan pwogram sa a vinn yon ti jan
pi konplike.
Si mwen fè kounye a dot koupe alo 1, Antre, li pral di "hello, David la."
>> Men, kite a fè iteration nan twazyèm sa a, kote la
pwogram se vrèman dinamik.
Kite m 'ale pi devan epi chanje dosye a Non, jis pou konsistans ak nan
dosye ou pral gen disponib ou Apre sa, sou entènèt.
Antre nan.
Epi, koulye a mwen pral yo ale nan epi yo pa magazen "David" difisil kode isit la.
Kisa ki ta kapab m 'fè ak anpil tou senpleman amelyore pwogram sa a?
>> Mwen te kapab rele getstring.
Li ta kapab yon ti kras ki pa evidan sa ki nan rive sou, se konsa mwen pral
ki aktyèlman ajoute yon lòt liy, printf, epi di non, kolon, fèmen quote, jis
bay itilizatè a yon èd memwa sou ekran an.
Epi, koulye a mwen pral ale isit la, ak mwen se pral sèvi ak chemen kout klavye m 'yo.
Mwen pral moute:-Leve, ak chanje alo 1 a bonjou 2, Antre.
Men, Erezman, mwen fè pwogrè.
>> Epi, koulye a mwen pral moute dot alo koupe ak
chanje sa a 2, Antre.
Epi, koulye a pwogram mwen an -
Mwen pral rale nan - ap resevwa yon ti kras bèl pase.
Non a pwal, se pou yo di Rob tan sa a, Antre, hello, Rob.
Nou ka fè l 'ankò.
Non, Lauren, antre.
Non, Jozèf, Antre.
Non, se pou yo eseye, yo dwe difisil, Antre.
Eh.
Li pa reyèlman yon ensèk.
Se konsa, li nan jis yon lèd ti kras.
Se konsa, petèt nou te ka rezoud sa a nan tan kap vini an, pa kounye a.
>> Men, ki jan ou ta ensten ale sou adrese
ki defi patikilye?
Li jis sanble estipid.
Ki jan ou evite bagay sa yo kap estipid?
Se konsa, nou ta ka fè, OK, mwen tande yon koup nan bagay sa yo, yon kondisyon ak bouk yon.
Nou te kapab itilize, yon sèl, yon kondisyon, yo tcheke ki longè a nan fisèl la
itilizatè a te ban nou?
Men, si li nan 0, li nan jis site unquote, yo jis frape Antre, lè sa a
petèt mwen ta dwe rele nan yo epi pouse yo ankò.
Men, ki jan yon èd memwa yo ankò?
Oke, mwen menm mwen te tande bouk, ak mwen te kapab fè sa ankò, li ankò e ankò
pouse itilizatè a pou menm bagay la.
>> Oke, kite la fè yon lòt egzanp lè l sèvi avèk yon diferan
fonksyon nan bibliyotèk la CS50.
Kite m 'fèmen sa a ranpli.
Kite m 'kreye yon nouvo.
Apre sa, mwen pral rele li adder.c, jis paske li fasil fè senp aritmetik,
menm si sa a yo pral konplètman underwhelming ak sa ou ta ka fè
ak nenpòt òdinatè modèn.
>> Men, kite m 'ale pi devan koulye a ak -
Mwen te aprann leson mwen dènye fwa - gen ladan cs50.h, enkli stdio.h, Int
prensipal anile, ki, pou kounye a, Mwen pral jis pran sou konfyans avèg, men nou pwal asime
ki pral konprann sa sa vle di anvan lontan.
Men, mwen pral di yon bagay tankou ", ban m 'yon Int."
>> Epi, koulye a, ki jan mwen kapab jwenn yon Int?
Mwen vle finalman deklare yon varyab rele x nan Int kalite ak
magazen nan li yon nonb antye relatif ki soti nan itilizatè a.
Se konsa, sa ki te yon gren.
Men, si yon moun vle pwopoze, ki jan Mwen deklare yon nonb antye relatif x rele?
X Int.
>> Se konsa, li vrèman se sa ki senp.
Ban m 'yon Int.
Rele li x.
Koulye a, mwen sèvi ak operatè plasman an.
Men, ki jan mwen sere soti nan la kite yon valè de itilizatè a?
Mwen pa vle yo rele getstring, evidamman, men pito getint.
Nenpòt agiman?
No
Se konsa, li louvri paren, fèmen paren imedyatman, ak Lè sa a yon
virgules fini liy lan.
>> Koulye a, kite m 'fè sa ankò.
Ban m 'yon lòt Int.
Fwa sa a, mwen pral fè Int, se pou yo rele li y, egal getint.
Epi, koulye a kite m 'fè yon bagay super-senp tankou kèk matematik.
Se konsa, printf, sòm total la nan% d se la kontneur pou yon Int.
Ak% d, peryòd, antislach-n.
>> Tout dwa.
Se konsa, sa a, se pa aktyèlman matematik.
Men, si mwen vle di sòm total la nan sa a valè plis valè sa a egal sa a
lòt valè, konbyen agiman nan total pou m 'ta bay printf,
finalman?
Se konsa, kat, dwa?
Sa a fisèl ak Lè sa a valè yo twa.
Se konsa, x se premye a mwen vle fè ploge nan premye d la%.
y a pwal pwochen an.
>> Koulye a, mwen kalite vle di z, men z pa egziste.
Men, sa a se pa yon kontra gwo.
Paske sa ou t ap fè enstenktiv, espesyalman si ou te gen yon
kalkilatris syantifik, ki sa ou tape?
Kouman sou x plis y?
Se konsa, li pa yon varyab vrè.
Se jis nan sòm de varyab ak lòt.
Epi sa a, parfe lejitim.
C sètènman konprann ki senp aritmetik tankou sa a.
>> Virgules, tanpri, delivre.
Koulye a, kite m 'ale desann isit la ak tape fè sou sèpan, antre.
Pa gen erè a, pou nan pwogrè tou.
Tape sou sèpan.
Ak yon lòt klavye chemen kout, si ou kòmanse resevwa anwiye
ak tout kòmandman yo -
si w kòmanse tape yon lòd, tankou dot koupe anons, e ke sa a kote ou
annwi anvwaye nan, ou ka anjeneral frape Tab gen òdinatè a fini la
repoze nan fraz la pou ou si li pa Limit sa ki ta dwe vini apre anons.
>> Se konsa, kite m 'ale pi devan koulye a epi ou klike sou antre.
Ban m 'yon Int, 1, 2, ak Erezman, li la 3.
Men, tankou toujou, tès pwogram pa ta dwe diminye nan
jis eseye li yon fwa.
Kite m 'eseye yon ka kwen, tankou negatif 1, ban m '1, ak ke yon moun
chèk soti kòm byen.
Apre sa, mwen pwobableman vle fè kèk plis solid tès yo, men mwen se trè
konfòtab ak kote sa a, se nan.
>> Oke, kounye a kite a eseye, yon lòt pwogram ke sa a tan sèvi ak yon
ti jan nan sentaks lòt.
Kite m 'kreye yon dosye nouvo.
Mwen pral rele sa conditions0.c nan liy ak kèk sou entènèt Kòd egzanp lan.
Men, kite m 'ale pi devan epi fè gen ladan yo cs50.h, gen ladan yo
stdio.h, nan anile prensipal la -
OK.
Gen nou ale.
Nou gen boilerplate estanda nou an.
>> Ak tan sa a mwen pral di printf, "Mwen ta renmen yon Int, tanpri," jis
fè èd memwa yon ti kras nan plis zanmitay.
Koulye a, mwen vle jwenn yon Int soti nan itilizatè a.
Mwen pral rele li n tan sa a, jis paske n son tankou nimewo.
getint, epi kounye a, ki sa ki fè Mwen vle fè avèk li?
Bon, si n se - epi mwen pral rale nan -
si n pi gran pase 0, mwen vle fè bagay swivan yo -
printf "Ou pran yon kantite pozitif." Lòt Bagay, mwen pral tape printf "Ou
pran yon negatif
nimewo. "Tout dwat.
Se konsa, pwogram sa a, menm si mwen te fè li vit, sanble dwa syntactically.
Kite m 'eseye sa a.
Fè kondisyon 0.
Sanble nan kouri.
Condition 0, antre.
Se pou yo bay li yon Int nan 50.
Mwen pran yon kantite pozitif.
Ann eseye l 'ankò.
Condition 0.
Negatif 50.
Mwen pran yon chif negatif.
>> Men koulye a,, kite m 'chwazi sa nou pral kenbe rele yon ka kwen, ki se pi plis
yon ka enteresan ki ou panse ta ka ba ou kèk pwoblèm, 0.
Koulye a, mwen se trè asire w sa a se youn nan sa yo kwen ka kote zewo se
ni pozitif ni negatif, se konsa mwen pwogram nan, menm si nan syntactically
korije - li compiles, li kouri - se pa lojikman kòrèk.
Se konsa, sa ki nan ranje a senp isit la si mwen vle yo detekte, si mwen vle okipe n
egal 0 separeman?
>> Se konsa, si n egal 0, Lè sa a, mwen vle di yon bagay tankou printf "Ou pran 0."
Kite m 'eseye sa a kounye a.
Kite m 'ale tounen isit la, klè fenèt mwen an, epi compile.
Hm.
Yon erè jenere.
Men, mwen ou vle tcheke si n egal 0.
>> Se konsa, ankò, yon lòt bagay estipid jwenn itilize, siy egal se
plasman operatè a.
Se konsa, sa a se aktyèlman erè nan sa, teknikman, menm si du a
pwoteje m 'anba tèt mwen, nou ta teknikman dwe kopye 0 nan n, ki
se pa sa m 'vle.
Mwen vle fè tès pou egalite ak egal egal.
Se konsa, ke kounye a ta ka solisyon pi bon mwen.
>> Kite m 'aktyèlman resave sa a kòm, di, conditions1, yo dwe nouvo ak amelyore.
Se konsa, kounye a si mwen compile sa a, li ta fè kondisyon -
whoops - fè conditions1 dot koupe conditions1, Mete, "Mwen ta renmen yon Int,
tanpri. "Mwen pral yo ale pi devan epi tape 50.
Li nan toujou bon.
Negatif 50, toujou bon.
0, epi li, tout bon, detekte ke mwen te chwazi 0.
>> Se konsa, sa plis mwen ka fè kounye a ak sa a?
Oke, nou kapab sètènman fè de pli zan pli bagay sa yo konplèks.
Men, sa ki mwen ta renmen pwopoze se ke nou fini sou nòt sa a isit la.
Si nou rale moute sa a, ou ap wè, petèt, yon desen ki pi ba pi renmen nan ou
moute jouk jounen jodi a ou ka pa janm konprann.
Epi sa a, sou kalite ri ou ta dwe jwenn ak CS blag.
Se konsa, ki la sou dwa.
>> Men, plis irezistibleman, mwen te panse mwen ta ba nou yon kol ti kras pou Lendi.
Se konsa, nou te kòmanse lè l sèvi avèk nonb antye relatif.
Nou te refere yo bay flote.
Nou te menm refere yo bay double, ki, ankò, ba ou nimewo
apre pwen desimal.
>> Men, li sanble ke flote ak double, epi, reyèlman, òdinatè,
fondamantalman, pa ka eksprime kèk valè jisteman.
Nou konnen nan klas matematik ke ou ka gen nenpòt ki kantite nimewo apre a
desimal pwen.
Epi ou ka menm mete yon bar vètikal yo di sa yo ale sou pou tout tan.
>> Malerezman, ou kapab pa vrèman fè sa nan yon òdinatè.
Se konsa, ka kwen leve.
Pou egzanp, ann sipoze w ap fè yon bagay finansye.
Ou ap fè matematik ak pousantaj, ak
ak dola ak santim.
Ak moun ki santim pa fè sa nesesèman liy moute.
Oke, li vire soti ki fraksyon nan peni ka kòmanse ajoute jiska lè
modelize ak yon sistèm òdinatè nan yon fason ke entelijan
moun ka pran avantaj.
>> Men, moun nan nou ki pa te wè, mwen ta renmen ba ou yon kol 30-dezyèm nan
yon fim bèl bagay li te ye kòm espas biwo, ki pral penti yon foto nan yon
pwoblèm nou pral atake premye bagay nan Lendi.
Si nou te ka ogmante volim nan yon ti jan, m 'ba ou 30
segonn nan espas biwo.
>> [Lèktur videyo]
>> -Mwen vle di, ou, ou pa te montre leve, li ou jwenn kenbe travay ou.
>> -Aktyèlman, mwen te monte.
>> -Mwen te kapab pwogram yon viris ki ta RIP kote sa a nan tan gwo.
>> -Bon, li montre kouman li travay?
>> -Chak fwa gen yon tranzaksyon labank kote enterè yo kalkile, epi gen
dè milye yon jou, òdinatè a fini moute ak sa yo fraksyon nan yon santim.
>> -Men mwen pa ale nan fè anyen ilegal.
>> -Ilegal?
Samir, sa a se Amerik la.
>> -Nou dwe fè sèman devan Bondye.
>> -Si pèsonn pa konnen sou sa a men nou, tout dwa?
Pa gen manm fanmi, pa gen okenn kopin, pèsonn.
>> -Nan kou.
>> -Te dakò.
>> -Pèdi san fwa enkyetid, moun.
Mwen pa pral di nenpòt ki moun swa.
>> [Lèktur videyo END]
>> DAVID Malan: Se konsa, sa a, lè sa a, se CS50, ki te espas biwo, epi li pral tout
fè sans nan Lendi.
Al gade nan ou Lè sa a,.
>> Konteur: Nan CS50 kap vini an, Rob ajiste nan yo te koupe la
Harvard manje plan.