>> [VIDEO lèktur]
>> -A Triyonf nan matematik ak konpetans mekanik
se sa a gwo nouvo otomatik kalkilatris nan Inivèsite Harvard.
Pwoblèm konplike nan matematik mete nan machin nan nan fòm kode
sou kasèt yo avèk presizyon rezoud nan yon minit fraksyon nan tan yo egzije
pou kalkil imen.
Ki fèt nan akselere pwosesis tout fòm matematik ak syantifik rechèch,
jeyan sèvo a mekanik pral travay pou Marin Etazini an jouk nan fen lagè a.
>> [END lèktur]
>> DAVID J. Malan: Sa a, se CS50.
Sot pase a se te yon majik plas, men si ou te janm
mande ki sa ki aparèy se nan Sant Syans Harvard,
li se tout bon yon pati nan la Harvard Mak mwen, epi li
nan ekspozisyon gen kounye a pou anpil ane ki sot pase.
Ak sa ki ou pral wè entegre nan pwoblèm seri
se yon sèl yon gade dèyè sèn nan nan sa ki ke aparèy te fè, epi fè sa,
soti nan Pwofesè Harry Lewis, ki moun ki nan syans depatman an òdinatè isit la.
Se konsa, plis sou sa nan jis yon ti jan.
>> Men, jodi a nou kòmanse tranzisyon soti nan semèn pase a sa a,
epi n ap pote mansyone nan yon sèl foto isit la
sa a, se aktyèlman byen pi popilè.
Nenpòt moun ki konnen ki sa sa a isit la se sou ekran an?
Omwen dapre mit.
Yeah.
ODYANS: Viris la an premye.
DAVID J. Malan: Se konsa, li te swadizan trè premye pinèz la aktyèl nan yon òdinatè.
Koulye a, an reyalite pinèz la mo, pou yon erè nan yon pwogram,
te gen avèk nou pou kèk tan nan mond lan fizik,
ak sa a te youn nan premye moun fwa dokimante yon moun aktyèlman kote
rache yon gwo mit k'ap manje rad soti nan Mark nan Òdinatè Mondyal la, mete l 'nan lyan la,
ak Lè sa a anrejistre li kòm premye a li te ye ensèk
yo te aktyèlman te jwenn fizikman.
Se konsa, konsa te antre ki nan Fòlklò a jodi a.
Tout bagay soti nan sot pase a semèn se disponib sou entènèt.
Nan resous patikilye ki ou ta ka pa nesesèman avi, espesyalman
si vini isit la nan moun.
Se konsa, youn nan zanmi yo ansèyman chak ane fè yon seri kanonyal nan nòt,
kidonk ou bezwen pa kenbe tèt ou desann, ap
transkripsyon anyen ki pi ki ta ka rive isit la nan klas la.
Se konsa, reyalize ke sa yo sa yo rele [? Nòt Scribd?]
yo sou entènèt, sètènman glisad yo ak sous kòd ki nou itilize nan klas la.
Nou fè relve nòt tèks plen disponib kòm byen.
Se konsa, si ou vagman sonje kèk tèm, epi ou vle fè yon gade l 'kanpe yon ti kras
plis fasilman, reyalize ke tout nan ki se recherche entènèt.
Kòm byen ke valktroug kòm byen.
Vreman vre, jodi a nou kòmanse fè yon gade nan yon pi ba nivo lang programmation,
vit yo dwe li te ye ak nou kòm C, ak li trè fasil
sòt de jwenn pèdi apre jis yon kèk moman tan, ak Lè sa a sòt de sezi
ki jan nou aktyèlman te rive nan kèk plis konplèks egzanp nan pi senp la.
Se konsa, reyalize nou pral Cherry chwazi pandan klas kèk
nan egzanp yo reprezantan, men reyalize ke pou pi plis se tou
disponib sou entènèt pou ou kapab travay atravè li nan pwòp vitès ou,
sepandan w ap pi konfòtab.
>> Men, nou te kite koupe ak pwogram ki te jis sa a.
Se konsa, mwen klike sou drapo a vèt, ak sa pwogram sa a fè?
Di, hello, nan lemonn.
Li fè chat la di alo nan mond ti kras l '
sou bò nan tèt men gòch a koòdone itilizatè Grafouyen la.
Men, nou te kòmanse prezante kèk tèminoloji semèn pase a.
Se konsa, bagay sa yo tankou sa a nou rele ki sa?
Ki sa ki ta ka tèm nan jenerik pou sa?
Yeah.
Yon metòd oswa yon deklarasyon.
Asire w, li nan yon aksyon.
Fè sa.
Men, te gen lòt fòm grafouyen,
san konte sa yo sa yo rele deklarasyon, yo te tou
bagay sa yo tankou sa a, ki nou te rele ki sa?
Yeah.
Se konsa, yon bouk.
Ak nan ka sa a, bagay sa a either, evidamman, 10 fwa.
Genyen yon blòk pou tout tan.
Genyen yon koup nan lòt moun.
Ak jodi a nou ap ale nan wè ki jan yo tradui sa a nan yon mond plis modèn,
si ou vle, menm si li nan ale nan parèt nan premye gade
yo dwe pi plis Esoteric.
Men, moun yo te tout bon pasan.
Lè sa a, nou gen bagay sa yo tankou sa a, ki te gen fòm sa a,
ak esansyèlman mande kesyon.
Apre sa, nou refere yo bay sa yo kòm ki sa?
>> ODYANS: ekspresyon Boolean.
>> DAVID J. Malan: Yeah.
Boolean ekspresyon.
Yon bagay ki se swa vre oubyen fo, repons lan se wi oswa ki pa gen, youn oswa zewo,
sepandan ou vle wè mond lan.
Men, nou rele moun Boolean ekspresyon, epi nou ploge yo
nan kondisyon, oswa branch yo.
Ak nan mond lan nan Grafouyen, tout bagay joliman
verouyaj an tèm de fòm li yo, si li fè sans lojik yo fè sa,
men ou pa gen yo sispann nan jis fè yon sèl bagay kondisyon,
ou ka gen yon provèrbyo fouchèt nan wout la
ak fè swa sa a oswa ke si kondisyon an se laverite oswa ou pa.
Lè sa a,, menm jan ou pral wè, si ou pa gen deja,
Ou ka menm nich blòk sa yo.
Se konsa, Scratch ap grandi yo ranpli fòm sa yo ki ke ou ta ka vle insert nan li,
pou ou kapab aktyèlman eksprime pi nenpòt lojik ke ou ta ka vle fè.
>> Koulye a, yon kèk mo nan anons pou tou de isit la ak New Haven.
Se konsa, kòmanse entèrneman jodi a.
URL la pou sa a se sou la nan kou sit entènèt, pou moun abitye.
Seksyon pral yon opòtinite yo jwenn ansanm
nan yon anviwònman pi plis entim pase [? Sanders?] Pèmèt,
ak 10 a 20 kamarad klas ak yon anseye parèy nan tren diferan,
ak mach diferan, si ou se konsa chwazi.
Vreman vre kou ofri yo seksyon diferan
pou moun mwens konfòtab, plis konfòtab, ak yon kote nan ant,
ak wòl nan gwo pous isit la, se gen nan pa gen definisyon fòmèl,
men si w ap mwens konfòtab, ou kalite konnen li.
Ou se yon ti jan odasyeu sou nan lide sou kite pye, petèt, tounen
nan sal klas la, oswa ki montre moute nan yon nan ant seksyon.
Si ou ve yo te pwogramasyon depi ou te gen sis zan, pi alèz,
petèt nan ou.
Men, si li la kalite yon toss-up, sa a, se egzakteman sa ki nan ki genyen ant
ki te vle di yo dwe.
>> Koulye a, nan entre-temps la, pou yon klas gwosè sa a,
li pran nou kèk tan nan seksyon tout moun, se konsa nou te sa yo rele,
seksyon super, vini sa a fen semèn ak kòmansman semèn pwochèn,
se konsa pran yon gade nan sit entènèt kou a nan pou sa yo ki kou lajè,
epi tou li filme-li pou moun ki pa ka fè yo.
Ak seksyon tèt yo ap kòmanse nan semèn twa nan CS50 zewo endèks.
Pwoblèm mete 0 se deja sou sit entènèt kou a la.
Ak reyalize ke ou gen nèf jou an reta semès sa a.
Se konsa, sa a se yon ajou soti nan dènye ane, lè nou te gen senk jou anreta.
>> Se konsa, si w ap mande, nou gen nèf kouche pwoblèm.
Ou gen nèf jou an reta, chak nan yo ki ou ka sèlman depanse yon sèl pou chak semèn sou.
Ki efektivman fè tout nan pwoblèm nan kouche akòz Vandredi,
men objektif la se yo mete yon ti kras ti jan nan presyon sikolojik
sou ou pou yo eseye jwenn bagay sa yo nan nan Jedi
paske kòm ou pral byento dekouvri, pou pi bon oswa pou vin pi mal, pi fò
tout bagay nan mond lan lojisyèl fini moute pran pi lontan ankò pase ou antisipe.
Se konsa, konsidere li yon sòt nan opòtinite yo ede
tèt ou bay sib Jedi, men pran konfò nan sa, se wi,
tout bagay se akòz Vandredi.
Men, si ou soumèt yo sou Jedi, sa a, se bèl bagay.
Gen nan pa gen pwen bonis oswa siplemantè kredi pou satisfè ke dat limit.
Li nan vle di yo dwe yon beki sèlman.
>> Apre sa, lè biwo, tou de isit la ak nan New Haven,
nan moun, si ou ta renmen rankontre avèk nenpòt nan kou nou an
anseye zanmi ak CAs pou asistans.
>> Tout dwa.
Se konsa, kounye, se pou yo fè sa-a plis reyèl.
Se pou yon ti moman li nan pral kòmanse yo ka resevwa yon ti kras pi plis Esoteric, men trè
byen vit sou Vandredi ak semèn pwochèn nou pral
kapab fè sa pi plis pase nou te kapab konsa byen lwen nan grafouyen.
Se konsa, nou prezante dènye Kòd semèn, kwake pictoral.
Li te moso devinèt.
E nou ofisyèlman ke li se yon bagay yo rele kòd sous,
men ta t 'sanble?
Oke, li gade yon ti kras yon bagay tankou sa a.
Epi, an reyalite, jis kalite toumante kote nou ka ale ak sa a.
Mwen pral ale pi devan epi louvri moute yon fenèt isit la,
ak mwen jis ale nan chwazi New File.
Apre sa, mwen pral pou konsève pou sa a ranpli kòm yon bagay tankou alo dot c.
Plis sou ke chwa a Mo nan jis yon moman.
Lè sa a se ki jan yon moun ta ka ale sou ekri yon pwogram nan.
Mete estanda mwen / O dot h, Int prensipal anile, ak Lè sa a louvri Curly atèl, fèmen
Curly atèl, printf alo mond vigil, antislach n, virgules, Save, fè.
OK.
Mwen te ekri premye fwa mwen pwogram, men li k ap pase
yo dwe ekstrèmman underwhelmed paske lè mwen aktyèlman
kouri pwogram sa a, nan kou, pa premye ekri fè hello,
ak Lè sa a dot koupe hello, ak nou pral ale nan sa a nan pi plis detay
nan yon moman, ki nan tout li fè sa.
Pa pòp louvri nenpòt fenèt yo.
Li pa fè anyen patikilyèman anpenpan.
Tout li fè sa se sa m 'rakonte l' bay fè, men ki jan nou ale nan sa?
Ak ki jan nou bati sou sa?
Oke, kite la prezante yon kèk konsèp diferan isit la.
>> Se konsa, yon sèl, nou ap sou yo kòmanse lè l sèvi avèk yon pwogram ki rele yon du.
Yon du egziste pou Mac OS, Windows, Linux, nenpòt ki kantite sistèm operasyon,
epi nou pral byento entwodui ou nan nan anviwònman ki nou pral lè l sèvi avèk,
men yon du se jis yon jeneral tèm pou yon moso nan lojisyèl
ki pran kòd sous ak pwodui Kòd objè soti nan li.
Nan lòt mo, si ou gen kòm opinyon sous ou
Kòd, yon bagay tankou sa mwen jis tape, li finalman pwodui Kòd objè.
Ak kòd objè se vrèman jis yon fason anpenpan nan li di li sorties
zewo nan ak yon sèl la.
Nan lòt mo, sous Kòd, menm si li nan
pral gade yon ti kras Esoteric, ak yon ti kras mwens zanmitay
pase Scratch nan premye gade, li nan omwen yon bagay
ke nou moun ka konprann.
Li kalite sanble ak son tankou Angle menm si li trè somèr.
Lè nou konsidere ke pwogram nan zewo a ak yon sèl la, kòm chèf anvan nou an te fè,
kèk ane de sa, pa t 'yon patikilyèman plezi defi.
E ankò, sa a se sa a òdinatè toujou konprann.
Se konsa, du vin nou soti nan kòd sous fè objeksyon kòd.
Se tankou louvri yon dosye ak nan du, ak lè ou sove li,
ou jwenn moun zewo ak inite.
Se konsa, nou pral wè ki jan fè ki nan jis yon moman.
>> Men, kite a kounye a eseye bay yon pon ant semèn pase a ak sa a,
se konsa ke menm jan nou jwenn Hung moute sou bagay sa yo tankou aparèy òtopedik Curly,
ak virgules, ak parantèz, ak tout moun sa yo entelektyèlman enteresan
aspè nan pwogram, ki trè konprann vwayaj pèp la moute ale byen bonè nan,
reyalize ke tout nan lide yo jodi a, se menm bagay la kòm dènye.
Se konsa, dènye a, nou te wè egzanp sa a isit la, pwogram Alo Mondyal la.
Oke, kòmanse jodi a, si nou vle aplike ke pwogram menm,
li k ap pase yo gade yon ti kras yon bagay tankou sa a.
Epitou, n ap eksplike anvan lontan sa int, ak prensipal, ak anile, ak nan tout sa
se, men omwen mwen wè isit la deja abitye Bonjou mond lan.
>> Pandan se tan, bagay sa yo tankou fonksyon, di hello,
se anpil tou senpleman ale nan yon trè senp deklarasyon tankou sa a.
Printf alo mond, ak kèk quotes, ak yon antislach,
ak yon virgules, men plis sou sa ap vini yo.
Pasan, pandan se tan, sa a se yon bouk sa, nan kou, di alo mond pou tout tan,
ak nan yon sèl sa a ale nan gade yon ti kras weirder pase nan dènye a,
men si mwen di yon bagay tankou, pandan y ap vre, mwen
ka Lè sa a enprime soti Bonjou mond ankò, li ankò, li ankò e ankò.
Lè sa a, ke ou kapab kalite a kòmanse dégager isit la,
sa a konvansyon pou yo sèvi ak aparèy òtopedik Curly se kalite
de tankou globale a utilize liy nan Kòd la.
Liy lan printf nan kòd anpil tankou moso nan devinèt jòn moute pi wo a.
Se konsa, nou pa ap ale nan di pou tout tan, nou ap ale nan di pandan y ap vre,
men nou pwal wè poukisa se sa ki nan jis yon ti jan.
>> Pandan se tan, si nou gen yon riban tankou sa a, kote ou repete yon bagay yon fini
fwa nimewo, yon sèl sa a twò li nan pral pran yon ti kras ap resevwa itilize
a, men li k ap pase yo di pou int mwen vin zewo, mwen mwens pase 10, mwen ++,
ak Lè sa a printf ankò.
Men, gen k ap pase yo dwe modèl.
Se pou moun nan nou abitye ak AP Syans enfòmatik, oswa Java,
oswa nenpòt ki kantite lòt lang, prèske nan tout sa yo konstwi
konsa byen lwen ta dwe gade sitou yo konnen yo.
>> Se konsa, varyab.
Se konsa, isit la nan yon ekstrè Grafouyen senp ki kouche yon varyab rele kontwa a zewo,
Lè sa a, pou tout tan di ak kontwa an, ak Lè sa a, li chanje kontwa an pa youn.
Se konsa, li kòmanse ak zewo, Lè sa a, yon sèl ak, de, twa.
Oke, ki jan ta ka nou entwodui ke nan lang sa a nouvo yon ti kras menm?
Int vann san preskripsyon egal zewo, pandan y ap vre, ki
se ke lide menm yo devan a fè yon bagay pou tout tan,
ak mwen jis ale nan printf.
Epi kounyeya, se nan ap resevwa yon ti kras etranj, pousan mwen, men li plis sou sa k ap vini,
men ide sa yo yo se egzakteman menm bagay la.
Nou jis kounye a gen pou respekte règleman sentaks la ke òdinatè a se
ale nan mande nan nou.
>> Boolean ekspresyon, yon bagay tankou SX mwens pase y, oswa x mwens pase y,
ak y mwens pase z.
Li k ap pase yo yon ti kras yon bagay gade tankou sa a, ak parantèz jis
tankou nan matematik pou bon mezi jis asire ke lòd la de operasyon
se kòm nou gen entansyon.
Epi, koulye a, kondisyon.
Se konsa, si x mwens pase y, di x se mwens pase y, lòt bagay si x se pi gran pase y,
di x se pi gran pase y, otreman lojikman, x yo dwe egal a y.
Se konsa, ou ta ka aplike yon bagay tankou sa nan grafouyen,
oswa ou ta ka aplike l 'nan sentaks sa a.
Epi ankò, aparèy òtopedik yo Curly yo se kalite ban nou fòm nan menm jan ak devinèt la
moso, men sentaks la, kounye a, se petèt kòmanse swiv kèk modèl.
>> Se konsa, sa sa a ban nou isit la?
Se konsa, nou ap tounen Lè sa a, nan pwogram prensipal nou an.
Se pou nou aktyèlman, jis, fè yon bagay ak li.
Se konsa, nan sa a trè premye liy nou wè byen file enkli ladan yo,
estanda mwen / O, dot h, ak Lè sa a, kèk ang etranj
parantèz anba a sa. int prensipal anile, ak Lè sa a printf alo lemonn.
Se konsa, jis pran yon etap.
Yon moun ki pa janm nan pwograme anvan, omwen eksplike youn nan liy sa yo.
Lè l sèvi avèk petèt kèk nan jagon an nan semèn pase a.
Ki sa ki se printf, pou egzanp?
Yeah.
>> ODYANS: [fèbl]
>> DAVID J. Malan: Yeah.
Li se yon fonksyon, oswa yon deklarasyon, soti nan tèminoloji semèn pase a la.
Lè li nan yon aksyon ki nan fè yon bagay.
Koulye a, fonksyon sa a, oswa deklarasyon sa a, fè sa ki
li parèt yo pran kèk kalite D '?
Ak nan ki sans fè li sanble yo pran D ', si se konsa?
Antre, ki sa mwen vle di pa sa?
Yeah.
>> ODYANS: [fèbl]
DAVID J. Malan: Yeah.
Se konsa, Grafouyen soti yon moso devinèt kèk kote ou ka paramètres li.
Ou te kapab di repete nan bloke konbyen fwa yo repete,
se konsa ke te gen yon D 'a kalite, ak jis tankou grate
te gen yon ti kras kontneur blan pou yon nimewo pou ou ta tape nan,
pou fè nou itilize nan sa a parantèz mond tèks
bay nou ke fòm sikilè nan ki nou ka ploge opinyon nou an.
Apre yo tout, dè dizèn de ane de sa lè lang sa a, ki rele C,
te envante pa gen yon antisipe li nan youn nan nou,
sa yo kèk ane pita, nou ta vle yon fonksyon ki di hello.
Dwa?
Li ta dwe nice si te gen yon moso devinèt, oswa yon mo kle,
ki yo rele hello, ki literalman jis di hello.
Men, nou pa bezwen sa.
Nou ka gen yon bagay pi ba anpil nivo, tankou yon ekri an lèt detache jenerik
lòd, ki pran D ', ak simagri tou sa nou vle.
Se konsa, remake kounye a modèl la ki pral kòmanse deyò.
Paren Open, fèmen paren se aparamman globale D 'a,
ak Lè sa a mwen wè doub quotes sou de bout.
Gen se toujou etranj antislach n, men èspere ke kounye a ou
ka kòmanse visualized omwen ki printf ap pran nan kèk fòm opinyon.
Piga nou fè tankou itilizatè zanmitay kòm Grate, men li la jis
tankou li te gen ploge nan kèk valè a.
>> Tout dwa, kounye a kite a aktyèlman fè yon bagay ak sa.
Se konsa, kèk nan ou ta ka konnen nan gen vin achte klas la anvan,
koze ak zanmi, ki pou anpil ane
nou itilize yon bagay rele aparèy la CS50.
Sa a te yon tèm ki dekri yon teknoloji rele machin nan vityèl, ki
se yon moso nan lojisyèl ki ou chèf anvan ta download koupe
sit kou a nan pou gratis.
Yo ta tou download yon moso gratis nan lojisyèl rele yon ipèrvizeur,
yon bagay yo rele tankou VMware, oswa VirtualBox, oswa nenpòt ki kantite
nan lòt zouti, ak sou yo Mac oswa PC oswa kèlkeswa sa òdinatè yo te gen ane pase a
ak nan ane ki sot pase yo, yo ta double klike yon icon
nan kouri lojisyèl sa a rele ipèrvizeur la.
Lè sa a, andedan nan ke pwogram yo ta louvri aparèy la CS50.
Ak efè a te ke si yon predesesè nan ou
te kouri Mac OS oswa Windows, li oswa li te Lè sa a,
imedyatman te gen yon lòt fenèt sou yo ekran kouri anviwònman CS50 a.
Se konsa, yon machin vityèl pèmèt ou kouri yon sèl opere sistèm andedan nan yon lòt,
e ke sa a ekzakteman ki sa nou te fè sa.
Pandan tout pi fò nan nou nan kou sèvi ak yon sistèm opere ki rele
Linux, espesyalman Ubuntu Linux, ak sa a
se yon fason trè bèl nan ane ki sot pase a fè si ke tout moun nan kou a
jis te gen anviwònman an menm.
Apre sa, ou ka itilize nenpòt ki kalite òdinatè ke ou aktyèlman vle.
Pami enkonvenyans yo, menm si, te li te tankou de jigokte
nan download bagay sa a.
Li pa t 'nesesèman travay super byen sou moun ki gen òdinatè ke petèt sèlman
te gen yon Gig oswa konsa nan RAM, oswa ou pa jigaèrts tou anpil nan vitès CPU,
ak pou ane sa a, pou sa a ak lòt rezon,
gen nou te tranzisyon nan anviwònman sa a.
Sa yo rele CS50 IDE a, ki se ki baze sou lojisyèl sous louvri,
ak yon platfòm sipòte ke yon konpayi yo rele Cloud9
sipòte nan Ewòp, ki pèmèt nou gen esansyèlman
ki egzak menm jan ak nan anviwònman ane ki sot pase, men nan nwaj la sa yo rele.
>> Se konsa, ki sa ki nwaj la?
Ou te pwobableman klike icon li a sou Mac ou a oswa PC.
Ki sa ki se nwaj la?
Yeah?
Yon ti kras pi fò.
Yeah.
Se jis nan yon pakèt moun sou òdinatè yon lòt kote ke magazen done ak kouri
lojisyèl ak renmen an.
Se konsa, li vrèman jis mo de la drwa a dekri [? louabl?]
òdinatè ki ap viv yon lòt kote.
Ke ou, tèt ou, pa nesesèman posede.
Se konsa, lè done ou, oswa ou pwogram, se nan nwaj la,
li jis vle di li nan sou yon moun lòt moun nan òdinatè yon lòt kote,
epi yo pa, gen plis chans, sou ou laptop fizik oswa Desktop.
Se konsa, se sa ki CS50 IDE kounye a se.
>> Koulye a ou pral ale nan yon sèten URL ki pral entwodui ou
a, nan pwoblèm mete 1, pita nan semèn, ki pral Lè sa a,, sou antre nan,
ba ou anviwònman sa a.
Apre sa, anpil tankou grate te gen yon kèk panno diferan patisipe,
pou fè IDE CS50 a gen egzakteman sa.
Sou bò nan tèt men gòch isit la, ou ap pral wè yon navigatè dosye yo konnen yo.
Se konsa, nenpòt nan dosye yo ke ou mete nan anviwonman sa a
yo se jis ale nan dwe ki nan lis la.
Dosye ak dosye.
Sou tèt nan dwa isit la, w ap ale nan wè yon kote
kote ou ka aktyèlman ekri kòd ou a.
Okòmansman nan C, pita nan la tèm nan PHP ak JavaScript,
ak, petèt pou final pwojè, Ruby oswa Java oswa Piton
oswa nenpòt ki kantite lang yo sipòte yo nan anviwonman sa a.
Li pa nan nan tout mare CS50 espesyalman.
>> Lè sa a, nan kwen anba isit la, espesyalman pou moun pi alèz,
ou gen yon bagay rele yon fenèt tèminal.
Ak fenèt tèminal sa a pèmèt nou al touye nenpòt lòd ke ou
vle nan sa a anviwònman nwaj.
Li pèmèt ou yo enstale nenpòt lojisyèl adisyonèl
ke ou vle paske ou te sa yo rele rasin, oswa administratè privilèj.
Se konsa, nan lòt mo, menm si sa a se finalman anime nan nwaj la,
e menm si nou gen senplifye li nan yon sèten mezi
pa default, literalman entwodwi, gras a Dann Armendariz, ak Dino,
lavil Dann Bradley nan ekip CS50 a sou la sot pase plizyè mwa, se yon mwens konfòtab
mòd ki kache yon anpil nan nan distraksyon okòmansman konfizyon.
Tout gen egziste reprezante yon sistèm òdinatè tipik
ke ou ta ka itilize nan mond reyèl la.
>> Se konsa, sa fè sa a tout vle di, ak sa ki ka nou aktyèlman fè avèk li?
Se pou nou aktyèlman pran yon gade vit nan yon pwogram.
Se konsa, mwen pral louvri moute nan aktyèl anviwònman isit la,
ki se jis Chrome nou an navigatè, ki ta ka Firefox,
ta ka Internet Explorer, oswa kèk lòt navigatè kòm byen.
Li nan plen tès depistaj isit la pou moman sa a.
Apre sa, mwen vle aktyèlman toumante apa sa pwogram sa a te ye a.
Se konsa, kite a pran yon gade, pa zoum nan moute tèt, nan sa mwen te fè, e ki jan mwen te resevwa isit la.
Se konsa, isit la nan sa yo egzak liy nan Kòd menm.
Se konsa, sa a se deklarasyon an, jan ou mansyone pi bonè.
Fonksyon an ki di hello.
Aparèy òtopedik yo Curly, sou liy kat ak liy sis,
prezimableman nan anvlòp kalite ke liy asosye li
ak sans nan pwogram m 'yo.
Se konsa, tout bon, sa a prensipal mo kle, sa a, se 'kanpe sou liy twa,
ou ka panse a ki jan ekivalan a a ke lè drapo vèt klike,
bloke nan grafouyen.
Se konsa, sa a, se tout sa nou gen isit la, se lè drapo vèt klike, ekri an lèt detache, oswa di,
alo lemonn.
>> Men, kite a pran yon devine, kounye a, nan sa ki sa a premye, liy plis Esoteric, se.
Sharp gen ladan, louvri Incline bracket, estanda mwen / O dot h,
fèmen Incline bracket.
Ki sa ki ke petèt fè, espesyalman si ou te pwograme
anvan nan kèk lòt lang.
Yeah?
>> ODYANS: [fèbl]
DAVID J. Malan: Yeah.
Egzakteman.
Se konsa, sa an, ap ban ou gen aksè a yon bibliyotèk, se konsa pale, nan fonksyon.
Apre sa, yon bibliyotèk nan fonksyon se fonksyon ke yon lòt moun
te ekri, swa dènyèman oswa sa pibliye depi lontan, pou ke ou
pa bezwen reenvante wou an.
Pou egzanp, nou pa fè sa gen konnen, nan 2015,
Ki jan yo ekri kòd ki mete yon karaktè sou ekran m 'yo.
Yon lòt moun gen kalkile ki soti ak fonksyon an printf
pou m 'ka sòt nan abstrè lwen ki, oswa kouch
sou tèt li oswa li kòd, e kounye a, jis pran
pou yo akòde ke nenpòt pwogram mwen ekri ka enprime yon bagay yo ekran an.
Se konsa, liy sa a premye gen nan etap yon sèl gen ladan dosye a header sa yo rele
pou bibliyotèk la estanda.
Se konsa, wè, ak lang lan nan ki nou ap kounye a ap travay
te gen yon bibliyotèk estanda avèk anpil fonksyon.
Printf se youn nan yo, ak ki premye liy nan Kòd
vle di, ban m 'aksè nan moun fonksyon, pou m '
pa bezwen reenvante ki wou yo.
>> Koulye a, kite a ale nan fenèt la anba ak fè ekzakteman ki sa m 'te fè anvan.
Yon moman de sa, lè m 'te whizzing nan kòd la,
sezisman li soti pou premye fwa, Mwen trè byen vit tape, fè hello.
Ki sa ki te ke tout sou ou ta devine?
Ki sa ki te mwen ap fè?
Yeah?
Pa janm tèt ou.
Li nan OK.
Yeah.
ODYANS: Konpile li.
DAVID J. Malan: Yeah.
Li te jis konpile li.
Dwa?
Menm si sa a se konplètman abitye nou la a, li a trè angle tankou.
Li nan sètènman pa zewo ak moun yo, se konsa mwen toujou
bezwen kouri li nan ki sa yo rele pwogram, se yon du, ki k ap pase
pran li kòm opinyon ak pwodwi pwodiksyon.
Apre sa, omwen, pou kounye a, nan sa a anviwònman Linux,
men sa pa se avantou, sa a se jis ki kote nou pral kòmanse,
anjeneral ou kominike avèk sistèm òdinatè tankou sa a
pa yon liy lòd sa yo rele.
Se konsa, avèk yon kliyote rapid ak klavye ou,
epi yo pa tèlman sourit ou a, epi yo pa anpil fenèt ak ikon ak meni,
olye tout bagay se textuelle.
E menm menm si sa a santi l, nan premye gade, petèt, tankou yon etap bak,
li la aktyèlman yon pi plis fason pwisan ak espresif
pou kontwole yon òdinatè espesyalman kòm ou,
tèt ou, vin pi konfòtab soti nan mwens.
Li k ap pase pou pèmèt ou al fè yon anpil plis bagay pase jis sa Microsoft
oswa Apple pèmèt ou fè ak sistèm opere grafik yo.
>> Se konsa, lè m 'frape Antre, jis, pa gen anyen k tan sa a
paske aparamman nan alo pwogram se jiska dat.
Ak sa ki te yo lòd, ki Mwen kouri apre sa?
Dot koupe hello, ak alo nan lemonn.
Koulye a, kite a pran yon etap do pou jis yon ti moman.
Li sanble ke fè alo se jis yon senplifye fason pou konpile yon pwogram.
Se pou nou jis prezante yon sèl pyès nan jagon,
men Lè sa a avanse pou pi lwen soti nan li, depi li pa
tout sa ki enteresan pou rezon a jodi a.
Du a nou ap ale nan kòmanse lè l sèvi avèk yo rele rezone, pou lang lan C.
Lè sa a se yon pwogram ki nan kouri jis tankou nou te fè nan liy la bay lòd la.
Se konsa, si mwen vle konpile yon pwogram ke mwen
te ekri nan yon dosye rele alo dot c, mwen literalman jis tape sonnen alo c
antre.
>> Bagay la komik se, pou rezon istorik,
si mwen pa presize nan non nan pwogram nan
ke mwen vle pwodiksyon, si mwen pa fè sa presize yon non dosye pou moun zewo
ak moun yo, yon trè etranj te konvansyon adopte ane de sa
kote li te santi kalite yon bon repons nan moman an,
byen kite yo jis abitrèman rele nan premye pwogram nou konpile yon dot deyò.
Yon vini an premye nan alfabè a.
Out, li nan pwodiksyon an.
Se konsa, nou pral rele pwogram nan pa default yon dot deyò.
Epi sa a, amann paske si mwen vle kouri pwogram nan nan tèks sa a ki baze
anviwònman, mwen jis tape dot koupe yon dot soti antre.
Epi li ta kouri egzakteman tankou anvan.
Se konsa nou wè ke reyèl vit.
>> Se konsa, si m 'ale tounen nan m' kòd sous nan CS50 IDE,
ak mwen olye pou fè sa, rezone alo kabann c antre nan, avi pa gen anyen sanble yo rive,
men prèske toujou nan sa a anviwònman Linux,
lè pa gen anyen move sanble rive, ki vle di yon bon bagay aktyèlman te pase.
Si w pa wè yon erè mesaj yo, tout se pwobableman byen.
Ak tout bon, si mwen kounye a fè dot koupe yon dot soti antre nan, mwen te kouri pwogram menm mwen.
Mwen toujou gen pwogram nan alo soti nan pi bonè paske tout bon, li nan
ale yo dwe tèlman anpil joli jis tape fè olye pou yo sonje
sa yo enkantasyon nan kòmandman, men kite a wè ki jan nou
ta ka amelyore sou sa a, Alòske.
>> Se konsa, sa a se yo lòd, ki yo konpile kòd la.
Sa a se yo lòd, ki nan kouri konpile nan Kòd apre sa.
Kouman mwen ka presize yon non dosye?
Oke kite yo jis prezante yon sèl plis moso nan jagon.
Lè w ap nan sa a tèks ki baze anviwònman,
w ap ale nan vle presize bagay rele liy lòd agiman.
Ki se jis yon fason anpenpan nan li di: lòt mo nan èd memwa a ki
ajiste konpòtman an nan tou sa pwogram w ap kouri.
Se konsa, espesyalman pwogram lan mwen se kouri, lè ou tape sonnen nan non,
se pwogram la te rele rezone.
Se konsa, sa a se oswa lekòl la fin vye granmoun ekivalan nan doub-klike
sou Microsoft Word oswa icon kèk pwogram lan.
Mwen olye pou jis tape non li, men nan vèsyon sa-a kòmandman an,
Mwen Lè sa a gen priz o espas alo espas alo dot c.
Se konsa, menm si ou te pa janm te jwe nan mond sa a anvan,
jis pran yon devine ki sa o priz alo fè?
Ou sa li di rezone fè?
Yeah.
>> ODYANS: [fèbl]
DAVID J. Malan: Yeah.
Li jis kouche pwodiksyon dosye a nan yo dwe alo olye pou yo sillier nan yon dot deyò.
Epi, tout bon, se pou yo eseye sa a.
Se konsa, si mwen kounye a fè, premye se pou yo fè sa, r m hello.
Sa a retire.
Apre sa, li la pral di retire dosye regilye alo, ki
se san nesesite Esoteric, men li jis vle di fè ou vle efase dosye a,
ak mwen tape y pou wi.
Apre sa, remake, si ou te ensidan nan tèt kite, li t 'disparèt nan' kanpe.
-Kite M 'fè o priz sonnen, ak Mwen pral ale pi devan epi fè hello,
nan tout kaskèt, alo dot c.
Koulye a, si m 'fè dot koupe hello, ki sa ou ta atann?
>> Petèt li nan ka sansib.
Petèt li nan pa.
Se pou nou wè.
Pa gen dosye sa yo oswa anyè.
Epi nou ka kalite tronpe pa jis kap nan tèt kite.
Ki sa mwen evidamman sove pwogram nan kòm?
Tout bouchon hello.
Se konsa, tout bon, sa a, se pral fè yon diferans.
Se konsa, kounye alo lemonn yo se tounen.
Koulye a, sa a se tout bon ak bon, ak tout trè lide-angourdir,
sòt de jwenn anbourbe desann nan sa yo detay, men konprann yo
se yon bon bagay.
>> Sezisman sa yo soti de pli zan pli enkantasyon lontan
a pa pral dwe patikilyèman plezi, se konsa moun nan mond lan
envante yon lòt pwogram, kèk ane de sa, ki rele
fè, ki byen tou senpleman pèmèt ou tape fè,
non an nan pwogram nan ou vle fè, epi fè
se entelijan nan ki li pral gade nan folder aktyèl la, aka anyè,
epi si ou gen yon dosye rele alo dot c,
ki se dosye a li pral konpile pou nou antre nan yon pwogram yo rele hello.
Se konsa, li nan yon fason ki pi senp nan pi fè kòmandman yo ki pi plis skre
ke nou te fè pi bonè.
Epi nou te pre-configuré CS50 IDE konnen
ke li ta dwe fè o priz ak yon kantite lòt drapo, oswa liy lòd agiman,
ke nou pral wè anvan lontan.
>> Men, kite a kounye a aktyèlman fè yon bagay ki pi enteresan.
Jis tape soti mond alo tout tan an se pa tout sa ki irezistib.
Se pou m 'ale pi devan epi chanje pwogram sa a ak di, alo David.
Koulye a, mwen pral desann ale isit la.
Mwen pral ale pi devan epi fè fè hello.
Epi ankò kounye a ou ap wè fè ki montre ou ankò nan
sekans nan kòmandman ke li nan fè paske nou te pre-configuré
li fason sa a, men nou bezwen pa enkyete pou kounye a
ki sa li ap fè lòt pase sa li se konpile dot koupe hello, alo nan lemonn.
Ki sa ki nan mal?
Yeah.
>> ODYANS: [fèbl]
>> DAVID J. Malan: Wi.
Se konsa, Noobie erè.
Mwen remake sa a se super sibtil, men asterisk nan isit la, nan tab la,
jis vle di ou pa gen sove li, ak navigatè ak lòt pwogram
fè sa pafwa.
Se konsa, nan kontwòl oubyen lòd a ta dwe sove li.
Koulye a, kite m 'ale pi devan ak re-kouri pwogram nan.
Rkonpile.
Dwa, se konsa li a yon pwosesis milti-etap.
Okenn nan yo ki se patikilyèman konplèks, men nenpòt ki lè nou chanje dosye a,
nou bezwen chanje kapab lakòz nan zewo ak moun yo, ak dot koupe hello.
Wow.
Se konsa, sa a se trè underwhelming ke nou jis enprime soti sa a.
Se pou yo fè bagay sa yo yon ti kras pi plis dinamik, kounye a.
>> Oke, li vire soti, ki renmen Grafouyen, C sipòte varyab.
Epi li vire soti si ou vle gen yon varyab ki magazen,
pa yon PO tankou nou tipikman te fè ak grafouyen,
men tankou yon mo, oswa yon fraz, oswa yon non, ou
ka presize yon varyab yo dwe nan kalite fisèl.
Se konsa, nou pral wè plis nan sa yo nan jis yon moman,
men li sanble ke C, ak yon anpil nan lang tankou li,
gen kalite trè espesifik nan varyab.
Li pa nan jis tankou aljèb, ki kote ou jwenn yon x, yon y, ak z
ak moun ki yo se jis toujou nimewo, nan yon lang programmation
ou ka magazen nimewo, ou kapab magazen karaktè endividyèl,
ou te kapab magazen mo antye, ou te kapab magazen imaj tout antye, dosye son antye,
ak renmen an.
Se konsa, nou bezwen presize ki sa ki kalite varyab nou an, se.
Ak nan konvansyon mwen pral rele m ' nan varyab jis paske li nan somèr,
ak s kanpe pou fisèl.
>> Lè sa a, mwen pral nan magazen andedan nan varyab sa a,
jis tankou ak Grafouyen lè mwen sèvi ak blòk la mete,
Mwen pral sèvi ak nan operatè plasman nan C,
ki joliman ase ki egal a siyen, men siy ki egal fè bagay sa a.
L ap deplase yon bagay nan men dwat la an bò men gòch nan ekspresyon an.
Se konsa, sa mwen te fè, yo dwe klè nan liy senk, se mwen te deklare yon varyab.
Mwen te di òdinatè a, ban m ' memwa pou yon varyab, rele li s,
ak konnen davans ki mwen pral yo dwe mete yon fisèl nan li.
Ak yon fisèl se jis yon sekans nan karaktè.
Li se yon mo, oswa yon fraz, oswa paragraf, men li la yon sekans nan karaktè.
Li pa chif yo.
Ki sa ki fisèl mwen pral yo dwe mete nan varyab sa?
Oke, aparamman site unquote, "Hannah".
Koulye a, remake modèl la ki nan émergentes.
Genyen yon ekspresyon men gòch.
Genyen yon ekspresyon men dwat, separe pa siy ki egal-ego.
Apre sa, jis pran yon devine, si abitye Alòske,
ak sa virgules la ap fè.
Ki sa ki nan li prezimableman fè pou nou?
Yeah?
>> ODYANS: [fèbl]
>> DAVID J. Malan: Yeah.
Li nan jis tèmine liy.
Dwa?
Òdinatè yo vle yo dwe briskeman te di, literalman, sa yo dwe fè.
Fè tankou bè an pistach ak jele sandwich egzanp,
si ou pa presize ekzakteman ki sa ou gen entansyon,
li ta ka kite yo jijman oswa erè.
Virgules a vle di, sa a, se li pou lòd sa a.
Li nan ke yo te super egzak, epi li yon bagay trè fasil yo kite la.
Se konsa, kounye pwogram sa a pa sanble yo dwe konpòte yon fason diferan, jouk tan mwen nenpòt
fè li pi dinamik.
Se konsa, olye ke difisil te kapab pwòp mwen non, kite m 'mete yon valè kontneur.
Epi li vire soti ke, e mwen konnen sa a soti nan li te gen li dokiman an,
ak itilize fonksyon an pou ane, ki te printf fèt yo dwe dinamik.
Ou pa oblije konnen davans sa ki mo ou vle mete nan li.
Ou ka olye pou gen yon kontneur, tankou pousan an, ki
ki pral di la òdinatè, mete yon fisèl isit la.
>> Ki fisèl fè nou vle mete ladan l '?
Will sanble ke ant sa yo parantèz, ki sonje, delimiter
D 'a nan yon fonksyon, si ou gen vigil separe lis bagay isit la,
nou aktyèlman pase nan plizyè entrain nan yon fonksyon.
Se konsa, jis renmen kèk Grafouyen blòk, ou ta ka pa
te jwe ak yo pou pwojè ou a ankò oswa nan tout,
kèk blòk Grafouyen gen de entrain.
De bwat blan ou kapab tape nimewo oswa mo nan.
Se konsa, yo gen fonksyon tankou C printf ki ka pran de entrain.
Epi ankò, sa a vigil se separe yo.
Se konsa, nan lang angle, ankò menm si ou pa janm te pwograme anvan,
pa ke printf lojik se yon fonksyon, pran de entrain, youn nan ki
se yon kontneur, ki sa ou ta espere printf ki pral fè ak opinyon sa a?
Li nan ale nan di alo Hannah, èspere ke.
Se konsa, yo fè sa nou bezwen pou konsève pou li.
Mwen pral rale soti.
Mwen pral tounen desann isit la ak di, fè alo antre.
Oh.
Yon bagay ki nan mal, ak aktyèlman sa a se byen akablan yo.
Mwen gen sis liy nan Kòd ak renmen 12 liy nan erè.
Se konsa, gade pou pi devan pou sa a.
Se konsa, sa k ap pase sou isit la?
Se konsa, règ la pi bon nan gwo pous isit la, espesyalman lè w ap kòmanse soti,
pa jwenn distrè pa bagay la nan fon.
An reyalite, mwen trè fè espre jis defiled moute
paske trè souvan, yon òdinatè se pa tout sa ki byen klere nan yon aparèy.
Li nan ale nan jwenn konfonn.
Si li wè yon sèl bagay ki li pa konprann,
li ta ka erè lòt liy nan Kòd kòm kòrèk,
menm si yo ap parfe amann.
Se konsa, ou toujou vle travay tèt desann nan erè yo ki.
Apre sa, sa a se Byensir super Esoteric nan moman an.
>> Erè, pou sèvi ak sekrè idantifyan fisèl.
Èske mwen vle di estanda nan?
Non, mwen vle di ke fisèl.
Apre sa, li nan montre nan, petèt li nan yon Typo.
Sòt de tankou, eple-tcheke nan yon trè jiki fason, men rezon ki fè yo isit la,
epi ou pral konnen sa a jis pa pratik, se
ke li sanble ke fisèl pa egziste nan C. An reyalite, C
se yon lang patikilyèman fin vye granmoun, ak li a ki ba anpil nivo,
epi li pa fè sa yon anpil nan karakteristik ke ou ta ka te cultivées moute
ak si ou gen, an reyalite, pwograme nan Java, tankou kèk nan nou genyen,
men ou ka anseye li nouvo bagay.
Ak tout bon, nou te fè CS50 sa a, menm si nan fen semès la,
tout nan wou fòmasyon sa yo pral yo te pran koupe,
sa nou fè nan sa yo premye koup la semèn
okòmansman se nou yo te genyen tou ou gen ladan CS50 dot h.
Ki se yon dosye header.
Plis sou ke nan lavni.
>> Li se yon dosye ki gen fonksyon ke nou te ekri pou ou.
, Ak nan mitan moun fonksyon se fonksyon pou jwenn D '
soti nan itilizatè a, tankou strings, ak nimewo, ak nimewo reyèl, ak plis ankò.
Men, li tou te gen yon rakoursi kèk.
Li defini yon Boolean kòm yon kalite done.
C pa gen vre oubyen fo.
Men, nou ka bay li nosyon de vre oubyen fo pa fason pou bibliyotèk sa a.
Apre sa, li tou pa gen yon fisèl bati nan jiskaske nou gen ladan liy sa a.
Se konsa, liy sa a nan kòd di du a, hey, rezone, gade
nan sa a dosye pou yon antye pakèt moun sou kòd ki CS50
te ekri pou ke nenpòt moun ki lè l sèvi avèk sa a ranpli
ka pran pou yo akòde nan karakteristik yo te ajoute.
>> Se konsa, kounye kite m 'ale pi devan epi ki klè ekran an,
epi si kirye mwen jis di kontwòl l chak fwa klè ekran an,
oswa ou ka tape klè.
Mwen jis pral ale pi devan kounye a epi yo kalite fè hello, ak tout se byen.
Toujou yon pwodiksyon Esoteric, men li pa yon mesaj inègza.
Koulye a, si m 'fè dot koupe hello, ak kòm yon sou kote, dot koupe se abitye avèk wout yo pi.
Li jis vle di, dot vle di anyè aktyèl la.
Se konsa, si ou te janm itilize DOS, oswa Linux, oswa UNIX
ou ta ka te fè yon bagay tankou CD dot dot, kote
dot dot vle di ale bak nan tan, oswa ale bak, oswa pi wo moute
nan anyè ou yo.
Dot jis vle di gade nan anyè aktyèl la.
Mwen vle hello, ki se dwa isit la.
Ak tout bon, kounye a li di alo Ana.
Men, si mwen chanje l 'ankò Maria, compile
li ta fè hello, dot koupe hello, pwogram lan kenbe chanje.
>> Men, sa a se toujou yon bèl estipid pwogram nan.
Si m 'vle yon bato pwogram sa a, oswa bay li nan yon zanmi,
oswa remèt li bay Maria oswa Hannah pou ki matyè, sa a, se amann.
Mwen kapab Customize li pou tou de nan yo, men li la pa janm pral fè dinamik.
Yo pa kapab chanje li yon fwa li a konpile desann nan sa yo zewo ak inite.
Se konsa, sa nou te fè yon bagay pi entelijan?
E si, olye pou yo difisil-kodaj nan pwogram nan non moun sa a,
sa ki si nou jis jwenn fisèl la sou demann?
>> Se konsa, nan lòt mo, kite m 'fè sa.
Mwen pral compile pwogram sa a.
Ak kite m 'rale nan nan pati anba a kounye a.
Fè alo koupe dot hello.
Koulye a, pa gen anyen k ap pase.
Èske nou ka jwenn yon volontè rapid fè yon bagay rive?
Vini non sou yo.
Ki sa ki nan non ou?
>> Pancho: Pancho.
>> DAVID J. Malan: Pacho?
Vini non sou yo.
Yon fwa ou jwenn moute isit la, sa a se ale nan dwe pran anpil underwhelming,
men li la plis enteresan pase m 'tape li.
Si ou vle ale pi devan epi tape ou non, mwen te fè pwogram sa a jis pou ou.
Jis tape non ou.
Antre nan.
Bèl bagay.
Tout dwa, di ou mèsi anpil.
>> Pancho: Mèsi anpil.
>> DAVID J. Malan: OK.
>> [Aplodisman]
>> Sa ki te trè kalite.
Isit la ou ale.
Ki sa nou fè?
Se konsa, nou finalman, omwen, te fè pwogram sa a dinamik.
Koulye a, li la toujou sètènman pa konsepsyon underwhelming,
men nou finalman gen kapasite a kounye a ekri kòd nan avanse, anpil
tankou otè yo nan printf, ak Lè sa a dynamique
adapte ki baze sou D 'a nou se lage, swa pa pwogramè a,
oswa pa imen an ki la aktyèlman kominike avèk pwogram lan.
Se konsa, kite a aktyèlman kounye a eseye fè yon kèk lòt konstwi
ak wè si nou pa ka fè pwogram yo tèt yo pi plis sofistike.
Se konsa nou ale pi devan ak olye pou yo ekri yon sèl sa a nan grate,
Mwen pral ale nan jodi a kòd sous, ak tout bagay sa yo
ki disponib sou la nan kou sit entènèt, epi ou ka trennen ak gout li
nan anviwònman pwòp ou a vini Vandredi yon fwa pwoblèm
seri 1 ba ou a enstriksyon, oswa ou te kapab
fè li nan liy la bay lòd kòm byen, men li plis vini nan p mete 1.
>> Ann wè sa ki nan nan pwogram sa a isit la rele, koulevr dot c.
Koulye a, mwen te deja kòmante li, men sa ki nan nouvo?
Nan premye gade, ki sa liy nan kòd se nouvo absoliman?
Pwobableman pa fondamantalman abitye kounye a.
>> ODYANS: [fèbl]
DAVID J. Malan: Yeah, se konsa int x egal jwenn n.
Nou pa janm te wè nenpòt nan sa a anvan, men int se pwobableman
senbòl la pou ki kalite varyab, [? soti nan?] yon nonb antye relatif.
Se konsa, int pou nonb antye relatif.
Li nan jis ke yo te plis somèr. x se jis abitrè.
x ak y ak z yo toujou bèl rezonab pou nimewo,
men jeneralman nou pral sèvi ak mo yon fwa pwogram nou jwenn plis konplèks.
Jwenn int, nan kou, anpil tankou jwenn fisèl,
se pwobableman pral jwenn yon int soti nan itilizatè a,
ak Lè sa a nou ap ale nan fè menm bagay la ak y.
Apre sa, aparamman, menm si sa a liy dènye a, 24, sanble plis konplèks,
li nan pral di sòm total la nan sa a e ke se lòt bagay sa a.
>> Apre sa, avi pousan mwen pwobableman vle di ki sa?
Ki wòl pousan mwen aparamman sèvi?
Se jis placeholders.
Dwa?
Pousantaj an te pou fisèl, pousan mwen se pou nonb antye relatif.
Gen k ap pase yo dwe pousan f pou k ap flote valè pwen, ki
se jis yon nimewo ak yon pwen desimal.
Nan lòt mo, yon PO reyèl.
Se konsa, kite a aktyèlman konpile sa a pwogram reyèl vit, epi fè sèpan.
Whoops.
Bon opòtinite.
Se konsa, remake isit la, tout tan sa a itilizatè mwen non pou se kont sa a jharvard.
Se mwen menm ki nan CS50 IDE, aka IDE50.
Epi, koulye a nan ble isit la, se yon mansyone, men nan anviwònman an, nan kote m 'prale.
Lè an reyalite, si mwen rale moute sou tèt la isit la, avi ke mwen gen yon IDE50
ak mwen wè mo sa a, si ou kalite vire tèt ou bò lanmè a, vorkspas.
Nan yon Nutshell, lefèt ke Mwen wè tild vorkspas koupe
vle di ke nan tèks sa a anviwònman ki baze lòd,
Mwen menm mwen nan ekivalan a tèks nan sa a grafik folder moute isit la.
Se konsa, lè m 'fè dot koupe koulevr, li nan li di pa gen okenn règ
fè sib koulevr kanpe.
Mwen pa konnen sa sa vle di, men li la move pou kèk rezon.
Pa gen dosye sa yo oswa anyè se menm plis klè.
Ki kote se li lè sa a?
Baze sou ki kote mwen klike yo louvri dosye a pi bonè.
Ki kote li ta kapab?
>> Li pwobableman nan sous youn w, pou Mèkredi,
e mwen ka wè li, tout bon, si mwen louvri ki yo.
Gen koulevr dot c, men nan sa a anviwònman tèks ki baze sou,
ankò, mwen gen yo dwe super eksplisit.
Si m 'vle chanje repèrtwar nan sous youn Mèkredi, mwen bezwen tape,
cd sous yon sèl espas Mèkredi antre nan e kounye a,
chanjman èd memwa mwen an ban m 'yon Replik vizyèl ki
Mwen se, tout bon, yon lòt kote nan anviwònman m 'yo,
men koulye a, mwen ka fè koulevr, li sanble nan travay,
dot koupe sèpan, ban m 'yon nonb antye relatif.
Yon.
De.
Sòm nan youn ak de se twa.
Men, si mwen pa kowopere, kite a wè sa ki jwenn int fè.
Ban m 'yon nonb antye relatif.
No
Rekoumanse.
OK.
Amann.
50.
Tout dwa.
Se konsa, li finalman kolabor.
Epi sa a, kèk nan la fonctionnalités ki fonksyon sa yo
ka te bati nan pou ou.
>> Se konsa, andedan aplikasyon an a jwenn int, ki sa pwogram
konstwi soti nan semèn pase a se pwobableman nan gen yo fòse konpòtman sa a nan rekoumanse,
rekoumanse, rekoumanse?
Yeah, gen nan pwobableman kèk kalite riban.
Li k ap pase yo gade syntactically diferan de blòk Scratch a,
men sa a tout bon sa ki andedan dosye a.
Ak nan yon tan kèk semèn nou pral aktyèlman gade nan bibliyotèk la CS50
tankou sa ki ki andedan, men gen nan yon bouk enpoze egzakteman sa.
>> Se pou yo jwe yon ti kras komik jwèt isit la ak sa a dosye-a.
Condition zewo dot c.
Nou ap jis ale nan jeneralman kòmanse konte nan zewo.
Apre sa, mwen kenbe defile sot pase kèk nan bagay la nan tèt.
Nan ble isit la, délimitation ak tout nan zetwal sa yo ak bar yo,
moun nan nou ki pwogram anvan, ki sa ki sa?
Poukisa nou kenbe sote sou li?
Ki sa?
>> ODYANS: Li se yon kòmantè.
>> DAVID J. Malan: Yeah.
Se jis nan yon kòmantè.
Sa a se yon kòmantè pou moun li, ki nan ka nou an,
di nou sa non an nan dosye a se, ki moun ki te ekri li, e ki sa li fè sa,
pou ke ou pa gen li nan kòd la
konnen ki sa sa a ranpli se tout sou.
Se jis yon deskripsyon, men fonksyonèl li nan petinan.
Apre sa, mwen ka menm efase li nan dosye m 'ak li pa gen okenn enpak.
Liy ki juicy sa yo de premye isit la, kounye a.
int anile prensipal la se ekivalan a nan lè nou an drapo vèt klike,
se konsa nou ap ale nan kite ki dwe pou jodi a, epi nou pral 'tounen an,
evantyèlman, tankou sa ki int, san valè yo, men kounye a,
remake ki sa mwen te fè isit la tou, ou kapab tou,
si ou gen yon nan liy kòmantè, si ou gen
yon te panse ou vle pataje sou yon liy patikilye nan kòd,
konvansyon nan C se fè koupe koupe, ak Lè sa yon kèk mo somèr,
pa yon fraz plen, jeneralman yo pa yon paragraf,
ki jis eksplike nou la a, oswa ou TF, oswa lòt lektè oswa kòlèg li,
sa kòd ou a ap fè.
Se konsa, olye ke gen gade nan nivo sa a ak dégager soti nan liy
nèf ak 10, ki sa ki sa a fè, nan liy uit
Mwen jis bay yon kòmantè mande itilizatè a pou yon nonb antye relatif,
lè sa a mwen pa bezwen panse twò difisil sou sa ki liy nèf ak 10 yo.
Mwen jis konnen ke se sa ki kolektivman yo ap fè.
>> Ki jan?
Oke, isit la nan èd memwa a.
Isit la nan ap resevwa a nan int la.
Ak ki baze sou anvan an konpòtman, li sanble tankou jwenn int
se entelijan ase yo asire w ke moun nan kolabor epi li ba li
yon nonb antye relatif.
Men koulye a, nou wè sa a.
Lè sa a se okoumansman de grafonyen moun.
Mwen reklame ke mwen se analize opinyon itilizatè a,
men yon ti jan inègzakt.
Lè sa a aparamman nan C se ki jan nou eksprime yon si lòt bagay, yon branch,
yon fouchèt nan wout la, men mwen di yon ti jan inègzakt.
Ki sa ki nan pinèz la nan pwogram sa a?
Sou plis tounen?
Yeah.
>> ODYANS: [fèbl] zewo.
>> DAVID J. Malan: Yeah.
Se konsa, si mwen tape nan zewo, se pou yo konsidere egzakteman sa ka a, oswa kwen,
si ou pral.
Se konsa, si mwen tape nan zewo, kilès nan la blòk ki pral aparamman gen tan pwan li?
Si oswa lòt moun nan a?
Lòt la, epi li k ap pase yo di, ou te chwazi yon nimewo negatif.
Ak tout bon, se pa sa sipoze zewo yo dwe pozitif oswa negatif,
e konsa ki ta ka fòseman.
Ki ta ka yon ensèk.
Se konsa, ki jan nou ka ranje sa a?
Yon moun ki pa janm te pwograme anvan an?
Èske ou vle-
>> ODYANS: [fèbl]
>> DAVID J. Malan: Retractable?
>> ODYANS: [fèbl]
>> DAVID J. Malan: Oh, ou genyen?
Yon moun ki pa janm te pwograme anvan.
Vle eseye men ou nan sa a, nan chemiz wouj la?
Vini non sou yo.
Oh yeah, vin sou moute, si ou pa lide.
Se konsa, pa janm gen pwograme anvan, sa ki nan non ou?
LAUREN: Lauren.
DAVID J. Malan: Lauren, tout dwa.
Se konsa, ranje ensèk sa a pou nou.
Ou pa te wè C, prezimableman, ak pwobableman pa gen okenn lòt lang.
Se konsa, ranje pwogram sa a pou nou.
Nice al kontre ya.
Pa gen presyon.
LAUREN: Yeah.
>> DAVID J. Malan: Men, ankò, si sa a jwè ale selon plan,
Takeaway a isit la pral dwe, jis ankò, yo kòmanse
a yon avi menm modèl yo epi dégager soti nan ki deja egziste sentaks
ki jan lòt moun ta ka eksprime ou tèt ou, pa gen okenn entansyon Pun, yo nan lòd
pran kèk senaryo adisyonèl.
Se konsa, nou ap di lòt moun si.
printf, bon.
Apre sa, remake ak CS50 IDE, ak frankly-- IDE
kanpe pou entegre Integrated Devlopman Anviwònman.
Se jis yon fason anpenpan nan di yon pwogram ki ede pwogram ou.
Li fè sa ki itilizatè zanmitay bagay sa yo tankou lè ou tape yon sèl parantèz,
li otomatikman ba ou lòt la.
Sipozisyon an ke yo te ke w ap evantyèlman ale nan vle tape sa,
ak li tou fè li ak quotes.
>> Se konsa, mwen renmen liy 23.
99% nan wout la a.
Yon moun vle sone nan ak yon tip?
Mwen tande virgules soti nan odyans lan.
Bon.
Se konsa, ki konplete sa.
Epi, koulye a, mwen jis gen yon ti kras scandales ak liy 21.
Ki jan nou vle eksprime sa a?
Ki kesyon nou vle fè mande, ou panse?
Se konsa, deja nou te mande kesyon an, si n gen plis pouvwa pase zewo, fè sa.
Lòt Bagay, fè sa.
Se konsa, nou bezwen chwazi yon kesyon mande isit la.
ODYANS: [fèbl]
DAVID J. Malan: Bon.
Se konsa, si n egal zewo.
Ekselan.
Se konsa nou pran yon poz isit la.
Mèsi anpil pou gran sa a.
Kite m 'ba ou yon ti kras ki byen merite boul estrès, petèt a.
Se konsa, nou ap prèske la.
An reyalite, Lauren, si ou pa fè sa tèt ou, kite m 'fè yon sèl ajiste isit la,
jis yo dwe konsistan menm avèk ki sa nou te wè nan grafouyen, ki sa
fè mwen vle fè ak liy 21 ak 24, jis ankò ki baze
sou ki jan nou te fè sa nan grafouyen, petèt?
>> ODYANS: Deplase li.
>> DAVID J. Malan: Yeah, avanse pou li leve.
Se konsa, kondisyon an lòt bagay, twazyèm lan, oswa katriyèm, oswa senkyèm, oswa branch final la,
ta dwe tout bon vini apre sa, e ke sa a jis pa konvansyon,
jis paske si ou pral.
Se konsa, mwen bezwen fè tweak sa a.
Apre sa, mwen bezwen mete m ' Curly atèl tounen isit la.
Epi, koulye a, pwogram sa a pral konpile.
Nou konsa fèmen, men gen nan yon ensèk trè, trè sibtil.
Ann wè sa ki rive.
>> Premyèman, kite m 'ale pi devan epi rale soti.
Mwen pral ale pi devan epi tape fè kondisyon zewo.
Oh, mwen bay manti.
Koulye a, du a se aktyèlman trè entelijan.
Apre sa, mwen pa reyèlman konprann li nan mesaj erè.
Lè l sèvi avèk rezilta a nan yon devwa kòm yon kondisyon san yo pa parantèz,
se aparamman move.
Men, sa ki sa vle di?
>> Oke ankò, kap chèche modèl nan kòd ke nou te wè anvan,
ki sa ki liy 17 aktyèlman ap fè travay, menm si yon ti kras gen entansyon Lauren
otreman?
Yeah.
>> ODYANS: [fèbl]
DAVID J. Malan: Yeah.
Se konsa, sonje siy ki egal, aparamman jan nou te itilize l 'devan, se pa egal.
Plasman li yo, de dwat a gòch.
Se konsa, liy 17 nan moman sa a se yon kondisyon, epi li
egzekite Kòd andedan parantèz yo, men lè ke kòd ègzekutra,
sa k ap pase nan valè a nan zewo?
Sa k ap pase nan valè a nan n?
Fason pou vin zewo.
Se konsa, si n ap vin zewo, e ankò, tankou pou chak semèn pase a,
nou jeneralman di ke zewo se fo ak yon se vre,
oswa repons lan se wi se youn e pa gen se zewo.
Se konsa, vre ak fo, yon sèl ak 0.
Si n kòm nan jwèt 17 te bay valè a 0, se zewo vre?
No
Pa definisyon, zewo se fo.
Sa a konvansyon an nou ap ale nan rete kole sou k ap deplase pi devan.
Se konsa, pral liy 18, 19, ak 20 tout tan tout tan aplike kounye a, lojikman?
Yo pa kapab.
Se konsa, nou poze kesyon sa a men li pa byen jisteman,
epi ou pa ta konnen sa a sof si ou te wè li, solisyon an nan C
se lè ou vle eksprime sa yo panse egalite, ou di egal egal.
Se konsa, egal siy te deja itilize moute pa plasman, de dwat a gòch.
Pèr egal vle di egal.
Men, si ou reyèlman vle lide ou yo dwe bese, nan JavaScript ak PHP,
gen nan egal egal egal, ki vle di yon lòt bagay nèt,
men nou pral jwenn ak sa yo ki anvan lontan.
>> Se konsa, sa a se yon ranje senp, men reyalize super fasil fè erè sa a,
ak Lè sa a mande ak lit pou minit, si se pa yon èdtan,
poukisa se kòd m 'lan pa egzekite jan mwen gen entansyon?
Li nan paske ou pa t 'di li jisteman sa ou vle di.
Se konsa, ki te prèske pafè, epi li te gen yon gwo
ke nou bite atravè sa yo de ti kras bagay paske kounye a si nou ranje yo,
ak mwen fè fè kondisyon zewo dot koupe kondisyon zewo,
Mwen ta renmen yon nonb antye relatif tanpri.
Se pou nou wè.
No
Li k ap pase yo fòse m 'fè li.
Se konsa, 42.
Mwen te chwazi yon nimewo ki pozitif.
Se konsa, kounye jan pou m pwouve pwogram sa a kòrèk?
Si ou se yon matematisyen, ou pa kapab reyèlman pwouve sa a pa esè ak erè,
dwa?
Ou kapab prèv pa sèlman pa egzanp, men omwen
kòm yon pwogramè nou pa ale nan eseye pwouve pou kounye a
ke sa a se aktyèlman kòrèk, men mwen ta dwe pwobableman
teste kèk ka reprezantan.
>> Mwen te teste 42.
Mwen te kapab teste 43.
Mwen te kapab teste 44.
Egzamen 45.
Dwa?
Men, mwen te kapab fè sa a yon moman vrèman long.
Ki sa ki ta gen kèk plis ka enteresan yo eseye?
ODYANS: [fèbl] zewo.
DAVID J. Malan: Se konsa, zewo.
Sètènman.
Ak bon, nou te gen li tan sa a, gras a nouvo Kòd Lauren la.
Ki sa ki nan yon lòt bon ka eseye?
ODYANS: yon sèl negatif.
>> DAVID J. Malan: yon sèl negatif, ak petèt yon bagay yon ti kras pi gwo,
se konsa petèt negatif 42, men an jeneral, lè
tès pwogram ou vanse, w ap
ale nan vle panse nan tèt ou, tankou sa
se fondamantal ka yo diferan.
Apre sa, mwen bay gabèl di yon ka negatif, yon ka pozitif, ak yon ka zewo
bèl anpil jij sa yo deyò.
Se pou yo gade nan yon Variant nan menm si sa a.
Kondisyon yon sèl.
Sa a se yon solisyon kòrèk isit la, pou ke ou pral wè de ak sou entènèt,
si ou mache nan la valktroug, yo pral jeneralman
kantite sa yo pwogresif jiskaske nou jwenn egzakteman apwòch la dwat.
E si nou te vle mande de kesyon nan yon fwa?
>> Kite m 'louvri moute sa a pito.
Ki pa Peye-switch, pou rezon nou pral wè yon lòt lè.
Ki sa ki nan nouvo syntactically isit la?
Mwen kounye a ap jwe yon jwèt kote òdinatè a ap di
m ', ban m' yon nonb antye relatif ant youn ak 10,
ak Lè sa a mwen jije opinyon itilizatè a la.
Nan lang angle, ki baze sou kòd a ou wè la a
nan ble, ki sa ki pwogram sa a ap fè?
ODYANS: [fèbl] pran yon gwo oswa ti kantite.
DAVID J. Malan: Yeah.
Li nan jis tranche si wi ou non Mwen te chwazi yon gwo, oswa mwayen,
oswa ti kantite ki baze sou yon trè definisyon abitrè nan ti, mwayen,
ak gwo isit la, men avi sentaks la sa a, se nouvo se sa a.
Gen nan pa gen mwens pase oswa egal a int siyen, oswa pi gran pase oswa egal a siyen,
kote se yon sèl sou lòt la, ke ou ka eksprime nan tankou Microsoft Word.
Se konsa, nan yon lang programmation ou tipikman jis fè de karaktè,
youn apre lòt la.
Ak sa ki fè bagay sa a pwobableman reprezante, comercial comercial.
ODYANS: [fèbl]
DAVID J. Malan: Yeah.
Li jis vle di epi paske li sanble ke otè yo nan C
itilize yon comercial sèl, kote ou ta ka panse
ta dwe pafè pou nosyon a a, epi, se deja itilize moute,
se konsa comercial comercial aktyèlman kaptire ka a nou aktyèlman vle.
>> Se konsa, kite a kounye a bite atravè de bagay sa yo.
Kite m 'ale pi devan epi louvri moute yon sèl.
Yon bagay ki se yon ti kras inkyétant.
Enpresizyon dot c.
Kite m 'entwodui de bagay isit la.
Youn, avi ke nou ka fè matematik, kòm jis tankou anvan lè
nou te fè plis nan de nimewo, x ak y.
Ki sa ki pwogram sa a aparamman ap fè?
Mwen pa te kòmante li ankò, epi mwen te prezante pousan f,
men mwen byen vit te di byen bonè pousan f vle di k ap flote pwen
valè, ki se nimewo reyèl.
Yon bagay ak yon desimal pwen, ki se pa yon nonb antye relatif.
Ki sa ou panse pwogram sa a se ap eseye montre m sou ekran an?
Yeah?
ODYANS: Rezilta a nan yon sèl plis pase 10.
DAVID J. Malan: Yeah.
Ki sa ki nan rezilta a nan yon sèl divize pa 10.
Dwa, paske tout nan nou te pwobableman gen grandi konnen ke youn plis pase 10
se ki sa?
Yeah, li nan jis 1/10 oswa 0.1.
Dwa?
Se konsa, kite a wè ki sa sa a aktyèlman se.
Se pou m 'ale pi devan epi sove sa a.
Kite m 'ale desann isit la.
Fè koupe enpresizyon dot enpresizyon, ak avi, tou,
nan yon anviwònman Linux, ou pa fè sa gen tape soti enpresizyon ak pran
tout lajounen.
Li jeneralman, si ou frape Tab, li pral fini panse ou pou ou,
ki baze sou pawòl ki ki disponib nan anyè aktyèl la.
OK.
Se konsa, ou te dwat.
Youn divize pa 10 se, an reyalite, 0.1.
Men, mwen se yon ti kras kirye.
Epi li vire soti printf sipòte kèk karakteristik
kijan ou ka presize plis pase nimewo a default nan pwen desimal.
Se konsa, si mwen vle wè 10 desimal pwen yo Mwen te kapab fè pousan,
pou senbòl la kontneur, dot 10 pou, ban m '10 pwen desimal,
Lè sa a, k ap flote toujou ak pwen valè, epi, kòm yon sou kote,
ki sa ki sa a n antislach aparamman nou kenbe lè l sèvi avèk?
Li sanble li nan yon senbòl pou yon liy nouvo.
Li nan wout la trè eksplisit nan di nan òdinatè a,
deplase kurseur la nan pwochen an liy apre w ap fè.
Epitou, n ap wè sa ki rive lè nou pa fè sa.
>> Kite m 'compile fè enpresizyon.
Koulye a, dot koupe enpresizyon.
OK.
Toujou dwat.
Youn divize pa 10.
Koulye a, mwen jwenn yon ti kras kirye, menm si.
E si mwen gade 20 desimal pwen soti, compile, relance,
ak kòm yon sou kote pou vitès, ou ka tou itilize
up ou, li desann flèch yo woulo liv atravè istwa ou,
pou w pa gen kenbe retyping kòmandman sa yo, antre.
Huh.
Mwen pa t 'aprann ke nan lekòl klas.
Tout dwa, se konsa, kite m ' wè tankou 29 kote soti.
Petèt li nan jis yon trematòd.
Petèt se òdinatè mwen an aji etranj.
Sa a pa yon bagay, dwa?
Li nan fè yon bagay detèrminist.
Se konsa, fè enpresizyon.
OK, ki nan messed yo.
Se konsa, sa k ap pase?
>> Se konsa, aparamman ou te pwofesè te kouche
bay ou tout tan sa a pou rezon ki nou pral wè anvan lontan.
Men, kite a fini ak yon lòt pwogram.
Sa a se yon ti kras pwogram yon moun te ekri kèk ane de sa,
ak li la aktyèlman yon pati nan yon konpetisyon.
Pa gen moun ki aktyèlman ekri Kòd tankou sa a, epi si ou fè sa,
sa a se estilitikman yon pwoblèm.
Men, moun ki fè sa pou dwa vante.
Pou ekri pi konfizyon nan pwogram kap ki
Alòske fè yon bagay ki enteresan.
Apre sa, nòt la mwen te panse nou ta kite sou jodi a, anvan Colton jwe nou soti isit la,
se nan kouri pwogram sa a, ki, menm nan jis lè l sèvi avèk
C nan sa a tèks ki baze sou anviwònman, ba nou sa a.
Dammit.
>> [Ri]
>> Kanpe pa.
[Fèbl] priz c l m.
W ap ale nan wè majik la enkantasyon ke nou pral wè anvan lontan.
[Fèbl] Tout dwa.
Epi, koulye a ou ka menm fè bagay sa yo tankou sa a.
Sa a li.
Pou CS50 nou, yo pral wè ou nan Vandredi.
>> [MIZIK jwe]
>> [Aplodisman]