[Daqq tal-mużika] DAVID Malan: Kull dritt. Merħba lura. Dan huwa CS50, u dan huwa Ġimgħa waħda, Ikompli. Allura waħda mir-raġunijiet aħna kont qed tgħaddi madwar teknoloġiji bħal Google ħġieġ huwa li dawn jaqgħu mal- xi ħaġa magħrufa bħala API, l- Applikazzjoni Programming Interface. U dak li dan ifisser huwa li bl- fajls dritt u bid-dritt dokumentazzjoni, inti tista 'attwalment tikteb software għal apparati anke bħal dawn. U hekk dak li għandna fil-moħħ lejn semestri għan huwa, jekk proġett jinvolvu, ngħidu aħna, Google ħġieġ jista appell, aħna ser tara dak li nistgħu nagħmlu fl F'termini ta 'hooking up inti ma' xi hardware loaner kif ukoll il- API pubblikament aċċessibbli sabiex inti tista ' attwalment tibda ħolqien software li timxi fuq l-istess Glass Google. Mezz ieħor li aħna kont qed jilagħbu ma ta tard li ħsibna jista 'jkun gost fl-aħħar semestru huwa dan il-ħaġa ftit hawn. Huwa sejjaħ Leap Mozzjoni, u dak li int waslet biex tara hija teknikament reklam għall-mezz, iżda ma jitkellmu dwar din partikolari apparat huwa kapaċi. U dan, wisq, taqa 'ma' API via li tista 'tikteb software biex kontroll tal-kompjuter tiegħek b'mod pjuttost simili dan il-film ta 'minuta hawn. [Daqq video] [Daqq video END] Allura issa dritt, dan il-mezz jiġri li jiġu implimentati bħala USB ftit konnettur li inti tista 'plagg fil tiegħek kompjuter, iżda nixtieq ma jkun sorpriż jekk qabel twil għandna dawn it-tipi ta ' teknoloġiji fil-lott li jmiss ta 'PCs u MACs sabiex inti tista ', tabilħaqq, jinteraġixxu miegħu fl b'mod bħal dik. Fil-fatt, dak li ħsibt I d tagħmel, wisq, huwa I jinġibed up dimostrazzjoni ftit programm li jiġi ma 'dan is-software. Allura stajt tpoġġi l-sensor ftit quddiem ta 'laptop tiegħi. U kif tista 'tara, huwa diġà jirrealizza li naħa tiegħi hemm tikkontrollah. U dan kollu l-applikazzjoni ma huwa affarijiet swimmingly ftit bħal dan. Iżda int tista 'tara li, tabilħaqq, I jkollu ħames swaba hemmhekk. Jekk nistgħu nibdew li jagħmlu dak kollu 10, tista 'timmaġina piano pulita applikazzjoni jew simili. Mela jekk inti tixtieq li toħroġ wara klassi llum u play ma 'dak li ukoll, inti merħba li. Allura aktar fuq li lejn tmiem semestru tal. Allura ftit amministrattiva Avviżi. Wieħed, do taqsima billi dan il-ġimgħa f'nofsinhar fl cs60.net/section. Dan URL huwa fuq li l-kors homepage ukoll. Fil-frattemp, għalkemm, supersections se DEBUT dan il-Ħadd. Supersections huma ħaġa ta 'darba, minħabba li jieħu us xi żmien biex jaħdmu min i f'liema taqsima u fejn. Allura dan il-Ħadd li ġejjin, ser ikun hemm wieħed sezzjoni għal dawk inqas komdi, sezzjoni waħda għal dawk aktar komda. U dawk minnkom x'imkien bejn are welcome biex tmur jew it-tnejn jew la. Kemm minn dawn se jkunu iffilmjati. Huma ser ikunu sala akbar minn sezzjoni normalment tkun pulzieri Iżda l-għan hawnhekk huwa li tgħammar int ma ' xi kumdità ma 'problema sett wieħed, ma 'C, bl-appliance CS50, dan weekend, anki qabel ma inti taf tiegħek assenjazzjoni formali taqsima. Allura inti ser jiltaqa TF tiegħek u iżgħar tiegħek grupp ta 'sectionmates f'madwar żmien ta 'ġimgħa. Ħinijiet tal-uffiċċju, sadanittant, ġew għaddejjin. Do jieħdu vantaġġ minnhom tonight jew għada bil-lejl jekk inti tixtieq. Sett Problema 0 huwa dovut nhar il-Ġimgħa. Dan huwa jum aktar tard mid- regolarment skedata Ħamis. Iżda bil-problema sett 1, tkun taf tara li tinkludi xi warm-up eżerċizzji li inti stess tista 'testendi tiegħek Skadenza-Ħamis sal-Ġimgħa. Sett Problem 1, sadanittant, se DEBUT fuq il-websajt tal-kors ta 'din ġejjin Ġimgħa, jekk inti tixtieq li curl bi huwa kif għamilt darba fuq żmien tard Ġimgħa bil-lejl fil-kamra tiegħek. Allura cs50.net/appliance huwa l-post fejn inti tista 'tikseb l-appliance CS50 li aħna bdew jużaw nhar it-Tnejn. Aħna ser tużah daqsxejn aktar illum. Iżda mistrieħ assigurat li l-problema stabbilixxa l-1 ispeċifikazzjoni ser jimxu miegħek permezz preċiż l-passi li għandek bżonn biex tikseb dan u titħaddem. Allura ma joqogħdu jinkwetaw dwar kif isir dan qabel Pset 1 jekk youd pjuttost ma. Kull dritt. Allura aħna ħares fuq it-Tnejn fil-source code, iżda fil-kuntest ta 'sistema ġdida lingwa ta 'programmar, jiġifieri C. And C, b'differenza Scratch, mhuwiex grafika. Mhuwiex puzzle biċċiet. Huwa aktar English-like sintassi. U hemm koppja ta 'passi kollha involuti fil-fatt bil-miktub u tmexxija ta ' programm C, għaliex minbarra sors kodiċi bħal dan, għandek bżonn xi ħaġa imsejħa kompilatur. U f'termini laymans, dak ma kompilatur do għalina? Yeah. STUDENT: Hija tikkonverti l-kodiċi li tikteb biex 0s u 1s. DAVID Malan: Tajba. Allura li tikkonverti l-kodiċi li aħna jikteb lill 0s u 1s. Hija tikkonverti hekk imsejħa kodiċi sors li kodiċi ta 'oġġett, b'dawn tal-aħħar jistenna ftit xi ħaġa bħal din. U huwa CPU tiegħek, l-imħuħ ġewwa ta kompjuter tiegħek, li minħabba l- nies li ħolqu dawn il-kompjuters, taf liema dawk sekwenzi tal-medja 0s u 1s. Forsi dan ifisser print. Forsi dan ifisser żieda. Forsi dan ifisser tnaqqis. Forsi dan ifisser juru grafika. Hemm mudelli predefiniti ta 'bits li d-dinja tkun iddeċidiet jfissirx ċerti affarijiet. Iżda għall-parti l-aktar f'dan il-kors, aħna ser jaħdem fi grad ogħla, u aħna ser jieħdu għal mogħtija li jeżistu affarijiet simili kompilaturi li jistgħu jagħmlu funzjoni tagħna kodiċi sors fil-mod kif aħna ħsieb. Allura l-programm aħna kiteb l-ewwel ġimgħa li għaddiet u mbagħad beda port, biex jitkellmu, għal dan C passat It-Tnejn, kien dan. Meta bandiera aħdar għafast, jgħidu bonjour. Dan kien, naturalment, miktuba Scratch. U jien qal li l-ekwivalenti programm C ħares ftit xi ħaġa bħal din. Allura dak li ħsibt aħna'd nagħmlu fil-ewwel huwa, ejja tease apparti dak li jistenna, fl-ewwel daqqa t'għajn, ċertament, bħala pjuttost arcane sintassi, iżda inti ser tibda l-avviż mudelli pjuttost malajr. Dak li aħna ser wkoll tagħmel illum huwa jipprovdi inti ma 'mudell mentali għal xi canonical, xi constructs standard fil-programmazzjoni. U allura aħna ser attwalment jiksbu l-idejn tagħna maħmuġin b'xi eżempji kif ukoll. Għalhekk għal dawk tal inti aktar komda, jirrealizzaw li din il-ġimgħa u mbagħad li jmiss ġimgħa jista 'jkun tajjeb ħafna daqsxejn ta' reviżjoni. Iżda speċjalment meta l-edizzjoni Hacker ta 'problema sett 1 tmur fuq il- website kors nhar il-Ġimgħa, jien naħseb inti ser issib li anki kif inti timla xi blanks matul il-ġimgħa d-dieħla jew tnejn, inti ser tibda tikseb dejjem aktar ikkontestata u jiltaqgħu affarijiet ġodda u aktar ġodda. Mela ejja tease apparti dan il-programm ftit linji fi żmien. Fuq nett, għandna x'hemm teknikament jissejjaħ direttiva Preprocessor. Dan huwa biss linja tal-kodiċi li tgħid biex tinkludi l-kontenut ta 'fajl, imsejħa standard I / N, input standard - jew, sorry, standard I / O, standard input / output,. h, ġewwa tal-programm tiegħi stess. Allura fi kliem ieħor, jekk I kiteb dan programm bil-editur test sempliċi bħal gedit, l-ekwivalenti sempliċi ta ' xi ħaġa bħal Microsoft Word, li istruzzjoni, # jinkludu stdio.h, huwa biss ser jgħidlek il-kompilatur, grab- kontenut ta 'dan il-fajl oħra, stdio.h, u paste dritt hawn. Issa, għaliex għandi kura? What did aħna pretensjoni hija ġewwa ta 'dan il-fajl imsejħa stdio.h, li hija maħżuna x'imkien fuq hard drive tiegħi, jew f'dan każ, x'imkien fil-appliance CS50? Xi ħadd ieħor poġġih hemmhekk għalija. Imma x'hemm dan? Yeah, dan huwa dikjarazzjoni ta ' funzjoni msejħa printf. Allura printf ifakkar il-funzjoni li kliem displays u l-karattri u numri fuq l-iskrin fil-offerti tiegħi. Imma jien ma jiktbu. CS50 ma jiktbu dan. Xi ħadd snin ilu kiteb dan, u dawn essenzjalment tana l-riċetta għal din fil-fajl imsejjaħ stdio.h. Allura li l-ewwel linja biss tagħti me aċċess għall-funzjonijiet li xi ħadd ieħor kiteb snin ilu, fost li huma printf. Issa, il-linja li jmiss jien ser mewġa tiegħi naħa lejn, mill-inqas sa ġimgħa d-dieħla. Iżda għal issa, jafu li int prinċipali (vojt) huwa essenzjalment l-ekwivalenti ta 'dan biċċa puzzle isfar meta bandiera aħdar għafast. Id-dinja, sena ilu, iddeċieda li jekk int kitba ta 'programm fil- lingwa imsejħa C, tibda programm tiegħek ma 'linja li qisu dan. Fil biss dwar ħin ta 'ġimgħa, li ser tagħmel sens dak int hija, dak null hija. Iżda għal issa, biss jaħsbu li kif din il-biċċa puzzle isfar. Issa jmiss, għandna Brace kaboċċi segwit minn ieħor Brace kaboċċi qrib, biex ngħidu hekk. U aħna ser tara dawn madwar programmi C, kif ukoll JavaScript u PHP. U dawn biss jirrappreżentaw linji relatati ta 'kodiċi. Il Brace kaboċċi open essenzjalment jgħid, hawn taqa xi kodiċi. U l-Brace kaboċċi magħluq, li hija angolata fid-direzzjoni oħra, biss mezzi, li hija għal il-kodiċi rilevanti. Allura l-linja mmerraq f'din l-ewwel programm huwa l-aħħar, printf, quote-unquote, bonjour dinja. U jien imsejjaħ il-ħaġa bejn kwotazzjonijiet liema aħħar darba? Allura huwa string. U string huwa biss il-techie tul għall sekwenza ta ' karattri, kelma, frażi. Anke ittra waħda tista jiġu kkwotati doppja. Imma hija sekwenza ta 'żero jew aktar karattri. Backslash-n, għalkemm, jistenna daqsxejn stramba. Iżda dan kien ifisser sempliċement xi ħaġa sempliċi għall-kompjuter. X'hemm backslash-n? Linja ġdida. Allura dan huwa biss l-sekwenza speċjali ta ' karattri li d-dinja tkun iddeċidiet mezzi tpoġġi waqfa linja hemm dritt, minħabba li l-kumpilatur fatt se tikseb konfuż, normalment, jekk inti, ħafna jifhem, iżda b'mod żbaljat, biss jibdew laqtu Ikteb biex linji ġodda fil-kodiċi tiegħek. Inti jeħtieġ li tkun ftit aktar espliċitu bil backslash-n. U aħna ser tara hemm ieħor ftit mudelli għall-karattri speċjali. Per eżempju, jekk inti riedu let tiegħek mind wander għal każ kantuniera, jissoponi li xtaqt li jistampaw kwotazzjoni doppja fuq l-iscreen kwalunkwe raġuni, li jidher li jkun ftit problematika, right? Għaliex jekk nressaq kwotazzjoni doppja fil- nofs ta '"hello, dinja," għal kwalunkwe raġuni, għaliex ma li jidhru potenzjalment problematiċi? Pawżi-sekwenza. Il-kompilatur hija biss program. A program bħal kompilatur huwa biss se biex taqra kodiċi tiegħek top għal isfel, xellug għal-lemin. U jekk jara tliet kwotazzjonijiet doppja minflok ta 'tnejn, mhuwiex ser tkun taf jekk int tfisser li l-ħaġa fuq ix-xellug għandu jkun il-string, jew il-ħaġa li id-dritt, jew il-ħaġa sħiħa. Huwa ambigwa, u iva, liema tipiku kompilatur se tagħmel huwa biss skerz, u jagħtuk xi messaġġ ta 'żball, u tagħmel inti jittrattaw mal-problema. Allura peress li backslash-n tfisser ġdida linja, dak li instincts tiegħek issa jibdew ikunu jekk int riedu jinkludu xi ħaġa anomala bħal double kwotazzjoni ġewwa ta 'dan altrimenti' ikkwotat string? Kwotazzjoni backslash-double. U hekk aħna ser tara dan tip ta 'mudell wisq. Jekk inti tixtieq li tagħmel xi ħaġa ftit stramba, inti ser issib li l- soluzzjonijiet sikwit isegwu mudell, u l-backslash tindika sekwenza ħarba. U dan ifisser biss xi ħaġa speċjali li għandna bżonn li jirrappreżentaw b'mod b'mod differenti. Fir-rigward kif taħseb li jirrappreżentaw backslash, ukoll, aħna ser terga 'lura għal dan. Iżda l-risposta, wisq, huwa attwalment daqsxejn ovvji. Mela ejja issa jintroduċu xi oħra constructs programmazzjoni li inti raw fil Scratch. You ħadthom probabbilment meħuda għall mogħtija diġà jekk inti stajt diġà dived fis problema stabbiliti 0. Imma ejja issa jintroduċu s-sintassi fis-C għal dawn inkella pjuttost intuwittivi ideat, għall-inqas xi wħud minnhom. Allura dan il-kunċett ta 'kundizzjoni jew fergħa, filwaqt li qabel we irrappreżentata ma kodiċi li ħares bħal dan fuq ix-xellug fil Scratch - jekk x huwa inqas minn y, allura jgħidu hekk - minflok issa C - let me hone fuq il-każ sempliċi - aħna qed sempliċiment se ngħid, jekk, miftuħa parentesi, xi ħaġa huwa veru - a Espressjoni Boolean se jmorru fejn għidt kundizzjoni - parentesi qrib, allura x'hemm ġewwa ta 'dawk ċingi kaboċċi. Allura hawnhekk, il-braces kaboċċi huma tip ta 'prodotti simili tal Scratch Biċċiet puzzle U-forma. Do x'hemm ġewwa dawn braces kaboċċi. F'dan il-każ, mmejla mmejla. U l-avviż dan huwa l quddiem mmejla, mhux backslash. Forward slash, quddiem mmejla, għal dawk li ħadthom programmati qabel, ifisser biss - huwa biss kumment. A kumment mhix linja tal-kodiċi, per se. Huwa linja tal-Ingliż li inti, l- bniedem, kitbu lill lilek innifsek biex forsi infakkarkom li tagħmel xi ħaġa, għall- jispjegaw lilek innifsek, tispjega lill- xi ħadd ieħor, dak kodiċi tiegħek qed tagħmel. Huwa biss kumment deskrittiv. Issa, naturalment, jista 'jkollna two-way furketta fit-triq biss billi tagħmel dan, three-way furketta fit-triq billi tagħmel dan, u jekk inti tkompli dan mudell, inti jista 'jkollhom erba' mod, ħames postijiet, sitt mod frieket fit-triq jekk għandek bżonn biex jimmaniġġaw, tabilħaqq, li ħafna kondizzjonijiet. U allura l-avviż paralleliżmu hawn - jekk (kundizzjoni), inkella jekk (kundizzjoni), u l-unika waħda li ftit stramba hija l-aħħar, li huwa biss li ħaddieħor. Iżda għal darb'oħra, dan huwa identiku, kunċettwalment, għal dak li aħna ghamilt diġà, anki jekk il-sintassi se tieħu ftit jkollna użati biex. Issa, f'dan l-eżempju, hemm xi sintassi stramba ieħor. Naraw printf darb'oħra, parentesi miftuħa, u parentesi qrib. U ġewwa tal hemm string ikkwotat. Il-parentesi, fil-kuntest ta 'printf, mur fuq ix-xellug u d-dritt ta 'xiex? What do we jiddeskrivu dak ikkwotat string billi b'mod aktar ġenerali? Allura huwa argument. Kwalunkwe ħin li inti għandhom funzjoni, bħal printf, u mbagħad paren miftuħa u paren qrib u xi ħaġa ġewwa tal dan, jekk huwa string, jew numru sħiħ, jew xi ħaġa oħra, il-ħaġa fil- bejn dawk parentesi hija msejħa argument. U l-argument biss tinfluwenza imġieba tal-funzjoni tal-. F'dan il-każ, huwa pjuttost ċar kif. x