[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