[Duke luajtur muzikë] DAVID Malan: Të gjithë të drejtë. Mirë se vini mbrapa. Kjo është CS50, dhe kjo është Week One, Vazhdon. Pra, një nga arsyet që ne kemi qenë që kalojnë rreth teknologjive si Google Glass është se ata vijnë me diçka e njohur si një API, një Application Programming Interface. Dhe çfarë kjo do të thotë është se me Fotografi të duhur dhe me të drejtë dokumentacioni, ju në fakt mund të shkruani software për pajisje edhe si këto. Dhe kështu që ajo që ne kemi në mendje drejt semestra fund është, në qoftë se një projekt përfshin, të themi, qelqi Google mund të apeli, ne do të shohim se çfarë mund të bëjmë në Kushtet e ju up hooking me disa hardware loaner si API-të qasshme publikisht në mënyrë që ju mund të në të vërtetë të fillojë krijimin e softuerit që shkon në atë Glass njëjtën Google. Një pajisje që ne kemi qenë duke luajtur e me vonë se ne kemi menduar mund të jetë fun në fund semestër është kjo gjë pak këtu. Ajo që quhet Motion brishtë, dhe atë që ju jeni gati për të parë është teknikisht një shpallje për pajisjen, por ajo flet për atë që kjo të veçantë pajisja është e aftë të. Dhe kjo, gjithashtu, vjen me një API me anë të të cilat ju mund të shkruani software për të kontrollojë kompjuterin tuaj në një mënyrë të mjaft e pëlqen këtë film një-minutësh këtu. [Video playback] [VIDEO END rishikim] Deri tani, kjo pajisje ndodh me të zbatohet si një USB pak lidhës që ju mund të plug në tuaj kompjuter, por unë nuk do të çuditesha në qoftë se para se të gjatë kemi këto lloje të teknologjive në grumbull të ardhshëm të PC dhe Macs kështu që ju mund të, në të vërtetë, bashkëveprojnë me të në një mënyrë të tillë. Në fakt, ajo që unë mendova se do të bëjë, gjithashtu, është I nxorrën një demonstratë pak program që vjen me këtë softuer. Kështu që unë kam vënë sensor pak në frontin e laptop tim. Dhe si ju mund të shihni, ajo tashmë e kupton se dora ime është atje kontrollin atë. Dhe e gjithë kjo kërkesë nuk është e vaj pak gjëra si kjo. Por ju mund të shihni se, në të vërtetë, Unë kam pesë gishtat atje. Nëse ne mund të merrni atë për të bërë të gjitha 10, ju mund të imagjinohet një piano zoti Aplikimi apo si. Pra, nëse ju dëshironi të dalë pas klasës sot dhe të luajë me se si mirë, ju jeni të mirëpritur për të. Pra, më shumë se drejt fund semestër. Pra, një çift i administrative njoftime. Një, bëjnë pjesë në këtë e premte në mesditë në cs60.net/section. Kjo URL është në kurs të faqe si edhe. Në ndërkohë, edhe pse, supersections do të debutojnë këtë të dielë. Supersections janë një kohë gjë, sepse kjo na merr disa kohë për të punuar se kush është në cilin seksion dhe ku. Pra, kjo dielën e ardhshme, nuk do të jetë një Seksioni për ata më pak të rehatshme, një seksion për ata më të rehatshme. Dhe ata prej jush diku në në mes të janë të mirëpritur për të shkuar në ose të dyja, ose as. Të dyja këto do të filmohet. Ata do të jenë në një auditor të madh se një seksion normalisht do të jetë in Por qëllimi këtu është që t'ju pajisë me disa rehati me një problem të caktuar, me C, me aplikim CS50, këtë fundjavë, madje edhe para se ju të gjeni tuaj Caktimi formal seksion. Pra, ju do të takohet TF tuaj dhe të vogël juaj grupi i sectionmates ne rreth një javë kohë. Orari i punës, ndërkohë, kanë qenë duke shkuar në. A të përfitojnë prej tyre sonte apo nesër natën në qoftë se ju do të donte. Set Problem 0 është për shkak të premten. Kjo është një ditë më vonë se rregullisht-planifikuar të enjten. Por me grup Problemi 1, ju do të shihni se ajo përfshin disa të ngrohtë-up Ushtrimet me të cilat ju vetë mund të zgjasë Juaj Afati i fundit të enjten për të premten. Problemi 1 set, ndërkohë, do të debutojnë në faqen e internetit rrjedhën e kjo vjen E premte, në qoftë se ju dëshironi të rehatohem me ajo si unë e bëri një herë e një kohë në fund Natën e premte në dhomën tuaj. Pra cs50.net/appliance është vendi ku ju mund të merrni pajisjen CS50 që kemi filluar duke përdorur të hënën. Ne do të përdorim atë pak më sot. Por pjesa tjetër e siguroi se problemi Set 1 specifikim do të ecin ju nëpërmjet pikërisht hapat që duhet për të marrë atë dhe drejtimin. Pra, mos u bëni merak për të bërë para se Pset 1 në qoftë se ju nuk do të më tepër. Dakord. Pra, kemi shikuar të hënën në kodin e burimit, por në kontekstin e një të re gjuhë programimi, domethënë C. Dhe C, ndryshe nga zeroja, nuk është grafik. Kjo nuk është mister copë. Kjo është sintaksa më Anglisht-si. Dhe ka një çift i hapave të përfshira në të vërtetë shkrim dhe drejtimin e një program në C, sepse përveç burimit Kodi si kjo, keni nevojë për diçka quajtur një përpilues. Dhe në kushtet e laik, çfarë bën një përpilues të bëni për ne? Po. STUDENT: Ai konverton kodin që ju të shkruani për të 0s dhe 1s. DAVID Malan: Mirë. Pra, ajo konverton kodin që kemi shkruar për 0s dhe 1s. Ai konverton kodin ashtuquajturin burim për Kodi objekt, kjo e fundit e cila duket një diçka të vogël si kjo. Dhe kjo është CPU juaj, truri brenda e kompjuteri juaj, se për shkak të njerëz të cilët krijuan ata kompjutera, dini se çfarë ato sekuenca e mesatares 0s dhe 1s. Ndoshta kjo do të thotë të shtypura. Ndoshta kjo do të thotë shtesë. Ndoshta kjo do të thotë zbritja. Ndoshta kjo do të thotë të shfaqin një grafik. Ka modele paracaktuara të bit se bota ka vendosur të thotë gjëra të caktuara. Por, për pjesën më të madhe në këtë kurs, ne do të punojmë në një nivel më të lartë, dhe ne do të marrë për të dhënë se ekzistojnë gjëra të tilla si hartuesit që mund të të bëjë funksion kodin burimor tonë në mënyrë që ne synojmë. Pra, programin e parë kemi shkruar javën e kaluar dhe pastaj filloi të portit, në mënyrë që të flasin, për këtë C kaluara E hënë, ishte kjo. Kur flamuri gjelbër klikuar, thonë hello. Kjo ishte, sigurisht, shkruar në Scratch. Dhe unë pohoi se ekuivalenti program në C dukeshin pak diçka si kjo. Pra, ajo që unë mendova që ne do të bëjmë në fillim është, le të ngas përveç asaj që duket, në fillim shikim, pa dyshim, si mjaft misterioze sintaksë, por ju do të filloni të vini re modele mjaft shpejt. Ajo që ne gjithashtu do të bëjmë sot është të sigurojë ju me një model mendor për disa kanonike, disa nga konstruktet standarde në programim. Dhe pastaj ne do të vërtetë të marrë në duart tona pista me disa shembuj si. Pra, për ata prej jush më të rehatshme, të kuptojë se kjo javë dhe pastaj e ardhshme Javën e shumë mirë mund të jetë pak e shqyrtimit. Por sidomos kur edicioni hacker e problemit set 1 shkon jashtë në Sigurisht website të premten, unë mendoj ju do të gjeni se edhe si ju plotësoni në disa boshllëqet gjatë javës së ardhshme ose dy, ju do të fillojnë për të marrë gjithnjë e më shumë sfidohen dhe të hasni gjëra të reja dhe më të reja. Pra, le të ngas këtë program veç e veç disa rreshta në një kohë. Në shumë të lartë, ne kemi atë që është quajtur teknikisht një direktivë preprocessor. Kjo është vetëm një linjë e kodit që thotë të përfshijnë përmbajtjen e një skedar, I quajtur standard / N, input standard - ose, më vjen keq, standardi I / O, standard input / output,. h, brenda e programit tim. Pra, me fjalë të tjera, në qoftë se kam shkruar këtë program me një editor teksti të thjeshtë si gedit, ekuivalenti i thjeshtë diçka si Microsoft Word, që udhëzim, # include stdio.h, është vetëm do të them përpiluesit, grab Përmbajtja e kësaj dosje tjetër, stdio.h, dhe ngjiti ato të drejtë këtu. Tani, pse nuk kam intereson? Çfarë kemi pretendojnë është në brendësi të këtij file quajtur stdio.h, e cila është ruajtur diku në hard drive time, apo në këtë rasti, diku në aplikim CS50? Dikush tjetër e vënë atë atje për mua. Por çfarë është në të? Yeah, kështu që kjo është një deklaratë e një funksion të quajtur printf. Pra printf kujton funksion që tregon fjalët dhe karaktere dhe numrat në ekran në ankandin e mia. Por unë nuk e shkruajnë atë. CS50 nuk e shkruajnë atë. Vjet më parë dikush shkroi atë, dhe ata në thelb na dha recetë për atë në një skedar të quajtur stdio.h. Kështu që vija e parë vetëm jep mua qasje për funksionet që dikush tjetër shkroi vjet më parë, në mesin e të cilat janë printf. Tani, linja tjetër unë jam duke shkuar për të valë m'i në dorë, të paktën deri në javën e ardhshme. Por tani për tani, e di se int kryesor (i pavlefshëm) është në thelb ekuivalent i kësaj verdhë puzzle copë kur flamuri gjelbër klikuar. Bota, vite më parë, vendosi që nëse ju jeni duke shkruar një program në gjuha quajtur C, ju filloni programi juaj me një linjë që duket si kjo. Në vetëm rreth një javë kohë, ajo do të bëjë çfarë kuptimi int është, çfarë është e pavlefshme. Por tani për tani, vetëm të mendojnë për atë si ky verdhë puzzle copë. Tani e ardhshëm, ne kemi një mbajtëse kaçurrel ndjekur nga një tjetër shtrëngoj ngushtë kaçurrel, kështu që të flasin. Dhe ne do të shohim këto gjatë gjithë programe në C, si dhe JavaScript dhe PHP. Dhe këto vetëm encapsulate Linjat e lidhura me të kodit. Braçe hapur kaçurrel thelb thotë se, këtu vjen kod komputeri. Dhe mbyllura shtrëngoj kaçurrel, i cili është angled në drejtimin tjetër, vetëm do të thotë, kjo është ajo për Kodi relevante. Pra, linja me lëng në këtë e parë Programi është i fundit, printf, quote-mbyll thonjëzat, Tungjatjeta botë. Dhe unë e thirra gjë në mes citon atë herën e fundit? Pra, kjo është një varg. Dhe një varg është vetëm techie Termi për një sekuencë të karaktere, një fjalë, një frazë. Madje edhe një shkronjë e vetme mund të të jenë cituar dyfishtë. Por kjo është një sekuencë e zero ose më shumë shenja. Backslash-n, edhe pse, duket pak e çuditshme. Por kjo thjesht do të thotë diçka thjeshtë në kompjuter. Çfarë është backslash-n? Linja e re. Pra, kjo është vetëm sekuencë të veçantë të karaktere që bota ka vendosur Mjetet vënë një pushim linjë të drejtë atje, sepse përpilues të vërtetë do të merrni hutuar, zakonisht, në qoftë se ju, shumë të kuptueshme, por gabimisht, vetëm të fillojë goditur Enter për të vënë Linjat e reja në kodin tuaj. Ju duhet të jetë pak më shumë eksplicite me backslash-n. Dhe ne do të shohim se ka një të tillë disa të tjera modele për karaktere të veçanta. Për shembull, në qoftë se ju të kërkuar për të le tuaj mendje enden në një rast qoshe, mendoj se kam kërkuar për të shtypur një quote dyfishtë në ekran për çfarëdo arsye, që duket se do të të jetë pak problematike, e drejtë? Sepse në qoftë se kam vënë një kuotë të dyfishtë në e mesme e "Hello World," për çfarëdo Arsyeja, pse nuk duket se potencialisht problematike? Ajo thyen string. Përpiluesi është vetëm një program. Një program si një përpilues është vetëm do për të lexuar kodin tuaj të lartë deri në fund, majta në të djathtë. Dhe në qoftë se e sheh tre kuotat e dyfishtë në vend të dy, ajo nuk do të dinë në qoftë se ju do të thotë se gjëja për të majtë duhet të jetë string, ose gjë për të drejtë, apo gjithë gjë. Është e paqartë, dhe kështu çfarë është një tipik përpilues do të bëni është thjesht të trullos, dhe ju jap disa mesazh gabimi, dhe të bëjë që ju të merren me problemin. Pra, duke pasur parasysh se backslash-n do të thotë një i ri line, çfarë do instinktet tuaja tani të fillojë të jetë në qoftë se ju të kërkuar për të përfshirë diçka anormale si një të dyfishtë japin kuotën e tyre brenda e kësaj ndryshe i cituar string? Backslash-quote dyfishtë. Dhe kështu që ne do të shohim këtë lloj model shumë. Nëse ju doni të bëni diçka pak çuditshme, ju do të gjeni se Zgjidhjet shpesh ndjekin një model, dhe backslash tregon një sekuencë shpëtojnë. Dhe kjo thjesht do të thotë diçka të veçantë se ne kemi nevojë për të përfaqësuar në një mënyrë të ndryshme. Sa për mënyrën se si mendoni ju përfaqësojnë një backslash, pra, ne do kthehen në atë. Por përgjigja, gjithashtu, është në të vërtetë pak e qartë. Pra, tani le të prezantoj disa të tjera konstrukte programimi që ju panë në Scratch. Ju keni marrë ndoshta për të dhënë tashmë në qoftë se ju keni fetar tashmë në Problemi vendosur 0. Por tani le të prezantuar sintakse në C për këto përndryshe mjaft intuitiv Idetë, të paktën disa prej tyre. Pra ky nocion i një gjendje apo një degë, ndërsa më parë ne përfaqësuar atë me kodin që dukej si kjo në të majtë në Scratch - nëse x është më pak se y, atëherë them kështu - në vend që tani në C - më lejoni të grihë ne në rastin thjeshtë - ne jemi thjesht do të thotë, në qoftë se, të hapur parantezë, diçka është e vërtetë - një Shprehje boolean është duke shkuar për të shkuar ku kam thënë kusht - kllapë të ngushtë, atëherë bëni çfarë është e brenda këtyre formatimin e teksteve kaçurrel. Pra, edhe këtu, formatimin e teksteve kaçurrel janë lloj si të zeroja U-formë copa mister. A atë që është brenda këtyre formatimin e teksteve kaçurrel. Në këtë rast, çaj çaj. Dhe vini re kjo është një përpara çaj, jo një backslash. Forward plagë, plagë përpara, për ata që kam programuar para, thjesht do të thotë - kjo është vetëm një koment. Një koment nuk është një linjë e kodit, në vetvete. Kjo është një linjë e gjuhës angleze që ju, njerëzor, kanë shkruar për veten tuaj për të ndoshta ju kujtoj për të bërë diçka, për të shpjegojë për veten tuaj, për të shpjeguar për dikush tjetër, çfarë kodi juaj është duke bërë. Është vetëm një koment përshkrues. Tani, sigurisht, ne mund të kemi një rrugë dy- pirun në rrugë vetëm duke bërë këtë, një tre-palësh pirun në rrugë duke bërë këtë, dhe nëse ju vazhdoni këtë model, ju mund të ketë katër-mënyrë, pesë-mënyrë, gjashtë kalime forks në rrugë nëse ju keni nevojë për të trajtuar, me të vërtetë, se kushtet shumë. Dhe pastaj njoftim paralelizëm këtu - në qoftë se (kusht), tjetër në qoftë se (kusht), dhe i vetmi që është pak çuditshme është e fundit, të cilat është tjetër vetëm se. Por përsëri, kjo është identik, konceptualisht, për atë që kemi bërë tashmë, edhe pse do sintaksa të marrë pak duke u përdorur për të. Tani, në këtë shembull, nuk janë Sintaksa e disa të tjera të çuditshme. Ne e shohim printf përsëri, parantezë të hapur, dhe kllapë të ngushtë. Dhe brenda i ka një varg cituar. Të kllapat, në kontekstin e printf, shkoni në të majtë dhe e drejta e kujt? Çfarë ne përshkruajmë se cituar string si më në përgjithësi? Pra, kjo është një argument. Çdo herë që të ketë një funksion, si printf, dhe pastaj një Paren hapur dhe një Paren ngushtë dhe diçka në brendësi të ajo, nëse kjo është një string, ose një integer, apo ndonjë gjë tjetër, gjë të ndërmjet ato kllapat quhet një argument. Dhe një argument vetëm ndikon Sjellja e funksionit. Në këtë rast, kjo është goxha e qartë se si. x