[MUSIC Playing] DAVID Malan: Mirë kjo është CS50 dhe ky është fundi i javës një. Kështu që unë do të doja të prezantoj ish tim advisee, Andel Duff, i cili jo vetëm që e bën iPhone 5 qëndron, si dhe kjo pupitër, ai gjithashtu e bën makina. Ansel DUFF: Si po shkon, të gjithë? Unë vetëm dua të ju them pak bit për Formula SAE, nga të cilat unë jam kapiten. Është një ekip MIT. Unë vetëm dua të them djema pak në lidhje me të dhe shpresojmë se të gjeneruar një interes. Pra më lejoni të vetëm të drejtuar përmes një disa gjëra për ekipin tonë. Pra, ne jemi plotësisht të drejtuar të studentëve, ku të gjithë i dizajnit anëtarëve, simulojnë, test, dhe prodhues një nënsistem e makinave. Ne kemi dyqan tona makinë dhe garazhe, dhe N52-- apo keq, N51-- cila është njëjtë ndërtesë si Muzeu i Shkencës MIT. Dhe ne jemi populli që të përzënë makinë. Ka një konkurrencë kombëtar në fillim të verës, dhe pastaj ka gjuajtje më të vogla konkurse gjatë gjithë vitit. Dhe atëherë ne bëjmë trajnim shofer ditë për të marrë anëtarët e rinj të njihen. Ditë tanë të ndërtuar janë në Shtunave 11:00-8:00. Dreka dhe darka janë duke u kujdesur i, nga Bertucci-së dhe Beantown respektivisht. Ne kemi një takim javore dhe Seminari, i cili është për kredi kursit. E cila është e re në këtë semestër, dhe ajo do të jetë për semestrin e ardhshëm, kështu që ju mund të kalojnë-reg për këtë. Dhe pastaj ne kemi projektim, dyqan, dhe ditë CAD gjatë javës, ndërsa anëtarë do të në mënyrë të pavarur Pjesë CAD, mënyrë e aksioneve e të tjera. Pra për elektrike inxhinieri në ekipin ne kemi tërheqëse tonë, sistemit të tensionit të lartë, i cili shkon në një nominale 300 volt, e cila përfshin motors, kontrolluesit motorike, dhe pako bateri. Pastaj ne kemi një të ulët sistemi i tensionit, i cili shkon në 12 volt, i cili përfshin kontrollet, MUND nyjet, trurin kuti, dhe pult. Sa i përket CS shkon, ne bëjmë kanë mirëmbajtjen e internetit që ne duhet bërë për ngjarjet, anëtarësimi ndryshime, fotot e reja dhe materiale PR. Dhe pastaj ne kemi kodin që kontrollon makinë për tërheqje të kontrollit tonë, të nisur kontrollit, kontrollit dash, çift rrotullues vectoring, dhe sistemet rigjeneruese frenim, të cilat të drejtuar në mënyrë tipike në MATLAB, Simulink, dhe Labview. Ju tregoj pak për makinën. Pra, kjo është rreth 500 £. Është rregulla të kufizuara në 85 kilovat. Ajo ka 2 EMRAX 207 motorët në mbrapa, një për çdo rrota e pasme. Ajo ka pako me porosi ndërtuar bateri nga ngjyra-ngjyra qelizat A123 qese, që arrin në 300 volt dhe 5.6 kilovat orë. Dhe kjo është makinë të drejtpërdrejtë me një raport 2,64-1 makinë. Këtu janë disa fotografi ne mori atë në konkurs. Ja kon mbrapa, hundë, dhe këtu janë motorët, ato disqe të mëdha të zeza nën et mens Manus. Këtu ka një rrëshqitje që unë u larguan jashtë skemës tonë konkurrencës. Dhe kjo është vetëm krahasuar makinën tonë për një çift ​​i makinave komerciale në dispozicion, si KTM XBOW, Ariel Atom, dhe Caterha M 7-280. Nëse ju jeni të njohur me çmim, fuqia tërheq peshë, dollarë në kuaj-fuqi, dollarë për çift rrotullues, dhe makina jonë rrahje të gjithë nga uji. Nëse keni ndonjë pyetje, shënoj këtë adresë e-mail. Na xhiruar një email në fsae@mit.edu. Ne jemi të lumtur për të folur për çdo gjë që ju dëshironi. Studentët e Harvardit janë të lloj e pakicës në ekip. Nëse keni ndonjë pyetje në lidhje që ju lutem na xhiruar një email, të lumtur për të folur, dhe unë jam duke shkuar për kokë mbrapa mbi të Davidit. Faleminderit. Unë e vlerësoj atë, djema. [Duartrokitje] DAVID Malan: Ansel kaloi verën duke punuar me ne këtu në kampus në CS50 këtë verë. Dhe përveç duke punuar në gjëra të tilla si llamba binare, ai në fakt u hap me të vërtetë tonë eyes-- dhe minave në particular-- për çfarë me të vërtetë në kryqëzimin e nuk e hardware dhe software mund të jetë. Në fakt shumë nga gjërat që ai vetëm turne ju nëpërmjet jeni në fund të fundit krijuar të parë në software, dhe pastaj të fabrikuara në fund të fundit në botën e vërtetë në hardware. Pra, nëse ju jeni të interesuar në eksploruar këtë ndërprerje, ndoshta të marrë atë grup. Tani ndërkohë, ato prej jush të cilët janë tifozë të teknologjisë, dhe produktet e Apple në të veçantë e dinë se ka ishin një çift i njoftime dje. Por ne menduam se do të tregojnë ju ai që doli disa ditë para se ju nuk mund të keni parë. Jorgen EGHAMMER: Ju e dini, një herë në diçka pak kohë vjen së bashku që ndryshon mënyrën se si jetojmë. Një pajisje kaq e thjeshtë dhe intuitiv duke e përdorur atë ndihet pothuajse të njohur. Futja 2015 IKEA katalogu. Kjo nuk është një libër dixhitale apo një e-libër, kjo është një libër-libër. Gjëja e parë që vini re ka kabllot, as edhe një kabllo të energjisë. 2015 IKEA Katalogu vjen plotësisht e ngarkuar, dhe jeta e baterisë është e përjetshme. The interface është 7.5 me 8 inç, por mund të zgjerohet në 15 nga 8 inç. Navigacion është i bazuar në kontakt prekshëm teknologji që ju mund të vërtetë të ndjehen. Përmbajtja vjen para-instaluar me anë të 328 faqet e definicion të lartë i frymëzuar në shtëpi mobilimin ide. Për të filluar shfletimin, thjesht prek dhe terhiq. E drejta për të majtë për të ecur përpara, majta në të djathtë për të lëvizur prapa. Vini re diçka tjetër? Kjo është e drejtë. Nuk ka lag. Çdo faqe e qartë ngarkesa menjëherë, pa marrë parasysh se sa shpejt ju shkoni. Nëse ju doni të merrni një pasqyrë të shpejtë, vetëm të mbajë atë në pëllëmbë të dorës tuaj, dhe duke përdorur vetëm gishtin e madh, Shpejtësia shfletoni përmbajtjen. Nëse ju gjeni diçka që ju doni të ruani për më vonë, ju thjesht mund të bookmark it. Dhe edhe në qoftë se ju mbyllni aplikacionin, ju mund të gjeni lehtësisht bookmark përsëri. Amazing. [Qeshura] [Duartrokitje] Kështu që na sjell në në fund të javës një. Disa njoftime tani. Pra sectioning tani është në progres. Shkoni në këtë URL këtu dikur në mes tani dhe të premten në mesditë që në fakt të specifikojë nëse jeni në mesin e atyre më pak të rehatshme, më të rehatshme, apo diku në mes. Kjo është zakonisht një nga ato gjëra që ju vetëm lloj i di. Dhe në fakt ata që janë më pak të rehatshme ndoshta e dini sa më shumë, ata që janë më të të rehatshme e di sa më shumë, dhe përsëri në qoftë se ju nuk jeni mjaft të sigurt që nga ato kova ju bien në ju jeni ndoshta diku në mes. Por pjesa tjetër e siguroi ju mund të bie në ujdi pas disa javësh, nëse duhet të jetë. Ndërkohë, për javën e ardhshme ne nuk do të fillojnë seksione në vetvete, por seksione super, të cilat janë të hapura për të gjithë studentët. Kjo vjen të djelën në një vend të të shpallet në faqen e internetit të kursit ne do të kemi një të tillë për ata më pak të rehatshme, si dhe një për ato më të rehatshme. Dhe ata që diku në mes mund të zgjedhin se cili prej atyre dy, ose që të dy në qoftë se ju dëshironi, për t'u ulur-në më. Dhe fokusi i atyre do të jetë në fund të fundit në C, të cilat ne do të vazhdojmë tonë Biseda e sotme. Problem vendosur 0 ndërkohë është shpresojmë se në duart tuaja. Zyrtarisht nesër për shkak, E enjte, në mesditë. Nëse nuk e keni të holla në një 5 ditët tuaja vona, i cili do ta sjellë atë deri të premten në mesditë. Problem vendosur 1 ndërkohë do të jetë postuar në faqen e internetit të kursit-së. Dhe kjo do të jetë e jonë e parë bastisje si një klasë në C. Dhe se problemi vendosur spekulim do të ecin nëpër shumë mekanikën e çfarë kemi filluar duke folur për të hënën, dhe ne do të vazhdojmë duke folur për sot. C, Linux, CS50 aplikim, të gjithë që do të ju presin në specifikimet. Orari i punës ndërkohë janë në zhvillim e sipër, në sallën universitare ngrënie. Shkojnë në këtë URL këtu për të parë planifikojë për sonte dhe nesër, në qoftë se ju do të donte për të marrë pjesë. Pyetjet ndërkohë, kështu që ju kanë mundësi për të bërë pyetje asynchronously, 24/7, e kupton që ju jeni pa u kufizuar në seksione dhe zyra orë, por më tepër ky mjet këtu, CS50 Diskutoni në atë URL do të jetë online rrjedhës së buletini bordit software, nëpërmjet të cilës ju mund të bëni pyetje të shokët e klasës dhe të stafit. Pra, mbani në mend se burimeve si. Ndërkohë një traditë fillon këtë të premte. Siç mund ta keni glimpsed nga ngacmues Video të mërkurën e kaluar, duke ne kemi një traditë më të çdo të premte gjatë mandatit të i marrë rreth 50 studentë dhe Stafi në një restorant lokal të quajtur Zjarri dhe Ice, në të cilën ne jemi të zakonisht të bashkuar nga disa alumni apo miqtë nga industria që përgjithësisht aspirojnë për të bërë një klasë të madhe të ndjehen më të vogla. Pra, kjo është një drekë krejtësisht i rastësishëm. Një bandë prej nesh, stafi veçanërisht, do të luajë karrige muzikore dhe të bisedoni me nxënësit për 50, jeta jashtë 50, jeta në të ardhmen, bota reale, Unë jam duke folur në lidhje me mundësitë e punësimit me miqtë në industrinë. Pra, nëse ju do të donte të bashkohen me ne kjo e premte, shkojnë në këtë URL këtu. Hapësirë ​​është i kufizuar, por ne do të bëjmë këtë recurringly gjatë gjithë mandatit. Shef atje për cs50.harvard.edu/rsvp. Dhe në qoftë se ju nuk e merrni në këtë herë, për të mos u shqetësoni. Ne do ta bëjmë atë përsëri në javët e ardhshme si. Pra, kjo është foto ne pikturuar javën e kaluar, dhe ju keni qenë ndoshta dabbling në deri më tani. Por le të përpiqemi për të lidhur këtë tani për atë që ne jemi duke shkuar për të bërë sot dhe tutje. Mund Unë kam një vullnetar? Në rregull, ose disa. Si për këtu në fund, në këmishë blu. Eja lart, si e ke emrin? Alana: Alana. DAVID Malan: Alana. Pra Alana, për vetëm një moment-- nice to meet you-- do të luajë rolin i këtij funksioni këtu. Bllok purpurt ne kemi quajtur deri tani një funksion. Pra, ajo që unë jam duke shkuar për të shkuar përpara këtu dhe të ofrojë Alana është një tag pak emër, për të bërë qartë se çfarë roli që ju jeni duke luajtur. Pra, ju do të jetë në bllok të themi. Nëse ju doni të shkoni përpara dhe të vënë që në. Dhe ne jemi duke shkuar për mbajtur këtë super të thjeshtë. Nëse qëllimi në fjalë është thjesht tani për të zbatuar me Alana, kjo ashtu-quajtur thonë bllok, këtu është se si ajo do të punojë. Unë have-- le ta quajmë atë një argument apo parametër, kjo është me të vërtetë vetëm një fletë të bardhë letre. Dhe kjo është e bardhë të jetë lloj i kujton kutia e bardhë në të cilën ju mund të shkruani fjalë. Ndërkohë unë jam duke shkuar për të shkuar këtu. Unë jam duke shkuar për të shkuar përpara dhe të shkruaj H-E-L-L-o presje botën. Dhe tani unë, siç thonë programues, nuk bëjnë në të vërtetë e di se si për të thënë diçka. Unë mund të dalë me fjalët, por unë nuk domosdoshmërisht e di se si të shprehem me gojë ose në ekran. Dhe kështu që ajo që unë jam duke shkuar të bëni është të marrë këtë copë e funksionalitetit, të cilit input-- ose argumenti, si ne do të thërrasë atë, Unë e kam shkruar në këtë pjesë të paper-- dhe unë jam duke shkuar për të transferojmë atë. Dhe me të vërtetë kjo është roli që funksionon në një gjuhë programimi mund të luajë. Diçka si thonë bllok mund të jepen për dikë që me të vërtetë e di atë që ai ose ajo është duke folur rreth. Pra, nëse ju do të hap gjatë këtu për vetëm një moment, Unë jam duke shkuar për të kaluar këtë të dhëna për Alana, dhe të kërkojë që ju të thoni këtë input. Alana: Përshëndetje, bota. DAVID Malan: Kjo është ajo. Kështu që ka një funksion. Tani ne mund të marrë atë edhe më shumë, ne mund të marrë një hap përpara këtu. Për shkak se ishte e qartë underwhelming. Pra, le të tani të kthyer këtë të diçka pak më të sofistikuar. Pra, kjo sigurisht është versioni ynë C. Deri tani, nëse ju doni të merrni se një off, që emri tag jashtë, dhe le të kemi të vënë në një emër të ri. Por në thelb ju jeni luajnë të njëjtin rol, kjo ndodh pikërisht kështu që të të quhet printf tani. Historia është, natyrisht, do të be-- ndoshta ashtu si underwhelming-- është do të jetë në vijim. Ju jeni tani printf funksion. Unë jam telefonuesi, ose programues, i cili dëshiron për të qëndruar mbi supet e njerëzit në të kaluarën si ju, të cilët kanë motive tashmë se si që në fakt të shkruani diçka poshtë. Dhe kështu këtë herë, në vend se të thonë se kjo le të në fakt përdorin ekran tonë këtu. Pra, nëse ju dëshironi të hap mbi këtu, unë jam duke shkuar për të kaluar përsëri këtë si input mikut tim printf. Nëse ju mund të shkoni përpara dhe të shtypura se në ekran, thjesht duke tërhequr me tuaj gisht në ekran të zi. Excellent. Në rregull, kështu që shumë pasiguri për si që ishte duke shkuar për të luajtur jashtë. Pra, tani le të marrin gjërat një nivel përfundimtar, në qoftë se ne mund të, si më poshtë. Pra, ky është një program C siç kemi thënë për herë të fundit. Dhe kjo vetëm e bën atë që keni bërë, atë printon nga të ekranit, Hello, World. Edhe pse nuk ka në mënyrë të qartë shumë e gjëra të shkëputur deri atje. Por le të marrin gjërat një nivel dhe prezantuar këtë version, të cilat të kujtojnë ishte versioni i tretë që ne përfundoi me kohën e kaluar. Dhe tani nuk ka në mënyrë të qartë dy përdorimet e printf. Ka 2 thirrjet për Alana në këtë rast për printf, por ka edhe një telefonatë në një tjetër funksion. Çfarë është që funksion në mënyrë të qartë? Getstring. A mund të kemi një vullnetar më shumë? OK, eja lart. Si e keni emrin? Javier: Javier. DAVID Malan: Javier, eja lart. Pra, roli i Javier është në kjo copë letër. Që unë jam duke shkuar për të thirrur generically s. Tani kjo është një variabël, është e i vargut tipit, siç nënkuptohet deri në atë vijë të dytë në mes atje. Dhe unë do të doja që ju të shkoni të merrni mua një varg. Në mënyrë të veçantë kokë poshtë në orkestër seksioni dhe të marrë më emrin e dikujt, dhe të vijnë përsëri me një ndryshore përmban këtë vlerë. Ajo mund të jetë dikush që ju dëshironi. Këtu ne do të shkojmë. Në rregull, Javier është shkruar emrin. Të gjithë të drejtë. Ne të gjithë mund ndoshta me mend se si kjo do të luajnë jashtë. Ne jemi ndoshta belaboring pika e asaj një funksion është duke bërë, por megjithatë shumë faleminderit. Pra, Javier ka kthyer këtë varg këtu, të cilat, nuk mund të mjaft të shohin, Jonathan është string që ne kemi marrë. Deri tani ajo që unë jam në të vërtetë duke shkuar për të siguruar që të Alana pse është diçka pak më ndryshe. Sepse në këtë version të program, së pari ka deklaruar emrin tuaj. Pra argumentin e parë Unë kam nevojë për të siguruar Alana me do të jetë fjalë për fjalë të shtetit emrin tuaj. Në rregull, aq e thjeshtë sa që Unë do të dorëzojë këtë për ju. Dhe si unë shkruaj deri Argumenti tjetër, në qoftë se ju duan të shkojnë përpara dhe të shkruaj këtë në bord, le të shkojë përpara dhe të bëjë shembullin përfundimtar këtu për të bërë qartë se çfarë është në fund të fundit mori për të ndodhë. Pra shtetit emrin tuaj, shkruani atë në drejtim të lartë në qoftë se ju nuk do mend, vetëm në mënyrë që ne kemi vend për një linjë të dytë. Për shkak se gjëja e fundit që unë jam duke shkuar për tani të siguruar me nuk është një, por dy copa letre. Të gjithë të drejtë. H-E-L-L-O comma dhe pastaj një linjë bosh. Pra, atë që unë jam gati për të dorëzuar Alana tani është diçka pak më ndryshe. Jo vetëm që ajo të marrë këtë, ku plotësoni në bosh përfaqëson se percent-- ajo që ishte placeholder ne kemi qenë duke përdorur? Yeah, kështu qind s. Ndërkohë unë jam duke shkuar për të kaluar saj në një argument të dytë, e cila është pikërisht ajo Javier marrë nga Jonathanit. Pra më lejoni të ju jap këto dy. Nëse ju dëshironi të, të shkojnë përpara dhe të shtypura se efekti. Çfarë është në fund të fundit ndodh tani është, Alana përsëri është duke luajtur rolin e printf. Javier është duke luajtur roli i GetString. Kështu që do të jetë suvenir tuaj. Dhe në fund të fundit ajo që po ndodh, pavarësisht kjo hello-- yep shkojnë përpara dhe presje. Alana: A e kam marrë këtë ende apo jo? DAVID Malan: Po, ju marrë ata të dy në të njëjtën kohë. Pra, ideja është që ju tani mund të shfletoj faqe për të trajtuar e dytë e këtyre dy inputeve. Pra, kjo është vetëm për të arritur në shtëpi theksojnë se ndërsa Alana ekzekutuar kjo linjë e gjelbër këtu, dhe pastaj Javier bëri këtë një për ne dhe të kthehet në mua diçka ne do të thërrasë s, por ajo ishte me të vërtetë vetëm se copë letër e tij. Dhe tani Alana e ka bërë këtë linjë të tretë. Dhe, edhe pse e gjithë kjo duket në mënyrë tepër të fshehtë ndoshta në shikim të parë, me të vërtetë është aq e thjeshtë sa që. Kalimi inputeve përreth, duke marrë rezultatet, ose duke iu dhënë fizikisht mbrapa diçka, ose duke parë një efekt anësor si kjo. Diçka vizualisht shkruar në ekran. Pra, le të shkojnë përpara dhe të falënderoj Alana dhe Havier, i cili ishte këtu poshtë, për t'u bashkuar me ne këtu. [Duartrokitje] Pra, tani le të marrë për të dhënë se sa hapur të gjitha që mund të jetë. Dhe le të vazhdojë në të vërtetë të bëjë diçka në kodin aktual. Pra, deri në ekran këtu është një screenshot i ashtu-quajtur aplikim CS50. Dhe në qoftë se keni pasur për të, si një 02:00 të mërkurën pasdite, të shpjegojë në një farë mik çfarë aplikim CS50 është, si do ta përcaktojë atë në një fjali? Çdo fjali e? Po? STUDENT: Është si një program që e bën kompjuterin të gjithëve drejtuar me të njëjtin sistem. DAVID Malan: Mirë! Është një program që mundëson të gjithë të kompjuter për të drejtuar me të njëjtin sistem. Kjo është lloj nga mesi juaj kopje e një operative sistem që ndodh me të quhet Ubuntu Linux. Dhe ajo shkon në mënyrë efektive brenda një dritare në Mac tuaj apo PC, kështu që në këtë mënyrë të drejtë nga porta në javën e 1, të gjithë këtu në klasë ka qasje në të njëjtat mjete, njëjtë konfigurimit, dhe nuk ka asnjë kurbë të mësuarit të veçantë në një Mac apo PC në veçanti. Tani kemi hapur, në brendësi të CS50 aplikim të hënën, ky program këtu. Kjo ndodh që do të quhet gedit. Por kjo është me të vërtetë vetëm një editor grafik. Është diçka si Notepad ose Tekst Edit në Windows ose Mac OS respektivisht. Dhe unë propozoi që ka pasur me të vërtetë tre pjesë të rëndësishme në këtë ekran. Ana e lartë është ajo ku ju do të shkruani kodin tuaj. Dhe kjo është ajo ku kemi shpenzuar shumë nga tonë tre shembuj në leksionin e së hënës. Fund kemi quajtur atë, kjo dritare e zezë, vërtet? STUDENT: Compiler? DAVID Malan: Compiler ne arrihen me anë të kësaj dritare. Por në përgjithësi. Po, ajo ishte vetëm një dritare terminali. Ky është një term i vjetër mosha që vetëm përshkruan në thelb një keq të shpejtë, që vite më parë e përdorur për të të jetë në një nga ato vëzhguesve të mëdha të stilit KRRT. Por në ditët e sotme kjo është lloj e virtuale në software. Dhe dritaret e terminalit Le të na shkruani komandat. Ai lloj i versionit të thjeshtuar e ndërfaqen e përdoruesit ose UI. Kjo nuk është një grafik Ndërfaqja e përdoruesit ose GUI, kjo është një ndërfaqe tekst me bazë në ose një ndërfaqe command line. Dhe me të vërtetë kjo është ajo ku në fund të fundit Unë kam qenë në gjendje për të shkruar një kod. Pasi kisha shkruar një kod pse, kujtojnë se kam përdorur këtë komandë. Dhe si ajo e emrit lloj i sugjeron, kjo lejon mua për të bërë një program të quajtur Përshëndetje. Por çfarë është me të vërtetë duke bërë? E pra make ishte duke marrë tim input, kodi im burim, dhe konvertimin e tij në atë që, në fund të fundit? Kodi objekt. Dhe kodi objekt është vetëm një i zbukuruar mënyrë për të thënë zero dhe ato. Dhe pastaj një herë kam kërkuar për të drejtuar këtë kod objekt, herë kam kërkuar për të kaluar si input ato zero dhe ato në kompjuterin tim-së trurit, i ashtuquajturi CPU ose njësi qendrore të përpunimit, Unë kisha për të drejtuar programin. Por kjo nuk ishte mjaft e thjeshtë të hënën si vetëm të dyfishtë klikuar disa ikona. Ajo që në vend të kësaj ka më duhet të bëni në mënyrë për të drejtuar një program? Cili ishte se komanda e dytë? Unë jam duke dëgjuar një ul pak? Po, vërtet? STUDENT: Dot çaj dhe Emri i programit. DAVID Malan: Pikërisht. Dot çaj dhe emrin e programit. Tani çfarë do të thoshte kjo? E pra dot është vetëm një mënyrë misterioze i thënë dosjen aktuale. Çfarëdo dosje që ju jeni në është referohet si, është e përfaqësuar si dot. Slash është vetëm ajo që ju keni parë në Mac OS dhe Windows për vite, kjo është një ndarës mes një directory ose dosje dhe pjesa tjetër e ndonjë emër. Në Windows kjo ndodh për të shkuar prapa, në Linux dhe Mac OS kjo ndodh për të shkuar përpara. Por kjo është vetëm ndarës, kështu që është e vetëm një detaj jointeresant sintaktik. Pjesa lëng sigurisht është emri i programit, Përshëndetje. Dhe kjo është ajo që bëjnë krijuar për ne. Ajo outputted këtë dosje për ne. Por si kemi marrë në këtë pikë? Le tani kërkoni pyetje, ajo ishte me të vërtetë ndodh këtu, të paktën me parasysh disa prej këtij sintaksës? Pra, në një fjali apo më shumë, si kemi shpjeguar kjo linjë e parë që është theksuara në të gjelbër? Cili ishte se vija e parë duke bërë, në lidhje me programin tim? Po? STUDENT: [padëgjueshme]. DAVID Malan: Thuaj atë përsëri? STUDENT: Përfshirja dhe shkarkimit Funksionet e kaluara [e padëgjueshme]. DAVID Malan: Mirë. Duke përfshirë, unë nuk do të thonë shkarkimit, por le të themi duke përfshirë edhe funksionet që njerëzit kanë shkruar në të kaluarën. Dhe ato funksione zbatohen diku në kompjuterin tim. Dikush shkroi një fotografi vjet më parë, dhe se fotografi është diku në brendësi të CS50 aplikim, ose në hard drive time në përgjithësi. Dhe kështu kjo linjë është në thelb duke thënë: shkoni gjeni se file, I standarde / O dot h, dhe kopjoni dhe ngjisni përmbajtjen e saj të drejtë këtu në majë dosjen time kështu që unë nuk duhet të bëni që me dorë vetë. Dhe në mesin e copa juiciest brenda e se fotografi ne pohoi ishte çfarë funksioni? Çfarë funksioni ka ne themi u shpall ose të përmendura në I standarde / O dot h më i mundshëm? Printf, e drejtë? Ne nuk shkruaj printf në E hënë, ajo vetëm ekzistuar. Shumë si Alana sapo erdhi deri në skenë dhe ajo vetëm ekzistuar dhe e dinte se si për të nxjerrë diçka në ekran, kështu që ekziston printf për shumë vite. Dhe kështu kjo është se si ne të hyrë në të. Tani në qoftë se ne shkojmë në këtu, kryesor ishte ne analoge i tha copë mister quhet kur flamuri gjelbër klikuar në botën e Scratch. Është vetëm lloj i Emri i parazgjedhur që njerëzit vendosur do të përfaqësojnë parazgjedhur pikë hyrje për një program. Copë e kodit programimit që merr ekzekutuar parë. Ndërkohë këto formatimin e teksteve kaçurrel janë lloj si formë e lakuar e një shumë të kafshëve të ndarë verdhë mbushëse. Ata lloj i encapsulate një e tërë bandë e udhëzimeve bashku. Kështu që vetëm lloji i lidh së bashku disa funksionalitetin lidhur. printf sigurisht është një funksion që printon në ekran, si ne vetëm e bëri. Po në lidhje me këto kllapa? Si do të define-- edhe në qoftë se ju keni kurrë nuk e programuar më parë, por e bazuar vetëm tani në një rritje shpresojmë se intuita, çfarë janë kllapa duke bërë për ne këtu? Ose çfarë janë ato përreth? Po? STUDENT: Ata janë duke thënë se çfarë ju do të jeni për të shtypur me printf. DAVID Malan: Po, ata janë duke thënë se çfarë ju do të jeni për të shtypur me printf. Ose më në përgjithësi, ata janë përreth inputet për funksion. Kështu që ju mund të pothuajse të mendoni e këtyre kllapa si si metal clip në këtë clipboard. Kjo është ajo që e mban, kjo është ajo që është do të përdoret për të siguruar argumente në funksion, e cila në ky rast është quajtur printf. Pra, në përgjithësi pothuajse çdo koha që ne e quajmë një funksion, ne do të shohim një palë kllapa. Ndoshta me diçka në të, si tani, ndoshta asgjë në të. Por kjo është ajo ku ju do të vënë inputet ose të ashtuquajturat argumente në një funksion. Ja një argument i tillë. Unë e kam theksuar çdo gjë mes kuotat, sepse ajo rezulton në këtë gjuhë quajtur C, kur ju doni të paraqesin një string-- se është një fjalë ose një frazë apo edhe një paragraph-- ju duhet të rrethojnë atë me kuotat e dyfishtë. Kuotat e vetme nuk, kuotat dyfishtë. Dhe kjo është pikërisht ajo që unë kam bërë këtu. Ndërkohë ka një shokuar simbol drejt fund atje. Backslash n. Çfarë të themi se të përfaqësuara? Po? STUDENT: Një linjë e re. DAVID Malan: Linja e re. E drejta, ju nuk e bëni përgjithësisht hit Enter kur doni programin të nxjerr nga goja një linjë të re. Përkundrazi ju them se në mënyrë të qartë me këtë pjesë pa dyshim misterioze i sintaksës, backslash n, që ju doni një linjë e re për të shkuar atje. Së fundi pikëpresje. Ne nuk të vërtetë të flasim shumë për këtë, dhe deri tani kjo do të jetë fatkeqësi e disa e ekzistencës tuaj për problemin e parë caktuar, kur ju vetëm nuk arriti të kuptojë ju keni harruar diçka si budalla si pikëpresje. Dhe në përgjithësi të vënë atë atje do të rregullojmë këtë problem. Por çfarë është kjo duke bërë për ne, do të thoni? STUDENT: [padëgjueshme]. DAVID Malan: Na vjen keq? STUDENT: [padëgjueshme]. DAVID Malan: Mbarimi një deklaratë. Është lloj si të periudhës së fundi i një fjali anglisht, ndërsa në këtë gjuhë C është e duke i dhënë fund një deklaratë. Një udhëzim i programimit Kodi që ju vetëm doni të thoni, Unë jam bërë me këtë. Tani vini re kjo është vetëm një here. Pra, ju nuk doni të merrni në një zakon i pikpresje vënë pas çdo kllapa mbyllur. Për shembull nuk ka asnjë pranë pavlefshme, dhe ne do të të kthehet në të ardhmen me atë që do të thotë i pavlefshëm. Por në këtë rast printf juaj është një funksion, ose një deklaratë duke u përdorur, dhe kështu ne duam të kemi që final në fund të saj. Dhe unë jam qëllimisht picking mbi C. Dhe sinqerisht shumë gjuhëve si C, C ++, Java, JavaScript, dhe çdo numër të gjuhët e tjera kanë shumë nga këto lloj detaje sintaksore. Kjo sigurisht në qoftë se ju jeni e re në programimit mund të vërtetë të udhëtimit ju lart. Dhe ju do të, të shënojë tim fjalë, disa prej jush do të kanë këtë përvojë në orarit të punës apo vonë natën duke punuar në disa p-set, ku programi juaj mallkuar thjesht nuk harton, kjo nuk do të kandidojë, ju keni nuk ka ide se çfarë është e gabuar, duket krejtësisht logjikisht e saktë për ju. Dhe kjo është për shkak se keni harruar diçka si goditur a pikëpresje në fund të një linjë. Por këto janë llojet e gjërave që ju jeni do të menjëherë të mësoni për të parë. Dhe me të vërtetë këto janë gjërat se AK-së dhe TF-së kanë është lloj i trajnuar për të parë shumë më shpejt se sa ju. Dhe kështu kjo është vetëm për të thënë, si ju pikiatë në problemin vendosur 1 në veçanti, mos merrni frustruar me këtë stuff. Pasi të lloj acclimate në botë, ju fillojnë të shohin gjëra që ju nuk mund shihni në shikim të parë këtë javë të parë. Pra, kodi burim është diçka të tillë. Ne duam për të kaluar atë në e ashtuquajtura përpilues. Dhe se si përpilues kemi thënë siguron dalje i njohur si kod objekt, ashtuquajtura zero dhe ato. Por nga atje, çfarë do që të na japë? E pra kjo na jep këto modele. Dhe përsëri kompjuterin tuaj, Intel tuaj brenda, kupton këto modele e zero dhe ato. Dhe ndonjëherë model përfaqëson një numër decimal aktual siç e pamë javën e kaluar, nganjëherë ai përfaqëson një letër si e pamë javën e kaluar, nganjëherë ai përfaqëson një udhëzim, si shtypjen diçka në ekran. Pra printf për instance-- por më tepër, më lejoni të Rewind. Ne kemi qenë duke marrë për të dhënë se ato zero dhe ato janë prodhuar nga kjo komandën make. Por të bëjë nuk është një përpilues. Bëni nuk është gjë në mes që është prodhimin e zero dhe ato. Në vend të bërë është vetëm një shumë e përshtatshme Programi i quajtur qëllimi i të cilit në jetë është në thelb të kuptoj se se si të hartojnë programin tuaj. Dhe ne e përdorin atë në këto javë më parë për shkak të vetëm na kursen një shumë probleme. Por ajo që bëjnë është me të vërtetë duke bërë, kur ju përpilojnë hello, është, siç kemi thënë për herë të fundit, kjo është duke kërkuar në hard drive tuaj ose në dosjen aktuale, për file i quajtur ajo, me sa duket? Hello.c, e drejtë? Kjo është vetëm lloj i një konvente. Është e arbitrare, por kjo është mënyra gjërat janë. Bëni, në qoftë se ju vetëm të specifikoni emrin i një programi që ende nuk ekziston, ajo do të shikoni për kodin burimor në një dosje, nga default do të thotë hello.c. Dhe në qoftë se e gjen atë, e madhe. Ajo do të kthyer atë burim Kodi në kodin objekt për ju. Por çdo herë që unë e kam hit Enter pas drejtimin bëjë hello, A ju kujtohet duke parë herën e fundit a në mënyrë të drejtë gjatë dhe rend i fshehtë të letrave të tjera të bardha dhe karaktere në ekran? E pra se ishte komanda aktuale, përpilues aktuale, që ishte duke ecur. Pra përpilues aktuale ne do të përdorim më të semestër është diçka që quhet tingëllimë. Disa nga ju mund të ketë përdorur Visual Studio para, ose GCC, ose ndonjë numër të hartuesit të tjera. Ne do të përdorim tingëllimë. Dhe tingëllimë na lejon të vërtetë të kthyer se kodi burim për të kundërshtuar kodin. Çfarë e bën këtë të vërtetë të thotë në praktikë? E pra më lejoni të shkoj në një nga dosjet e mia nga herë të fundit. Brenda të pajisjes CS50. Dhe më lejoni të shkojnë përpara dhe për të krijuar këtë njëjtën fotografi, përfshijnë standarde I / O dot h. Pavlefshëm kryesore int. Dhe ne do të kthehet në të ardhmen si për çfarë int mjetet dhe çfarë do të thotë të pavlefshme. Por tani për tani, le të bëjmë përshëndetje backslash bota n, ashtu si ne e bëmë në bord. Më lejoni të ruani këtë file të quajtur hello.c. Dhe tani, nëse unë dua të hartojë këtë Unë could-- lejoni të zoom kandidojë in-- bërë përshëndetje të hyjë. Dhe kjo përsëri u se linja shumë të fshehtë. Por tani të paktën një fjalë ndoshta në hedhje nga ju. Tingëllimë është se linja e pamë më parë. Tani ka shumë sende të tjera sinqerisht se ne do të tundë duart tona në për sot. Por ka një subsets disa, disa karaktere në këtu që janë me interes. Por unë jam duke shkuar për të shkuar përpara dhe të bëjë këtë. Unë jam duke shkuar për të drejtuar e parë hello, vetëm për të provuar se kjo është duke punuar ashtu siç ishte të hënën. Por tani unë jam duke shkuar për të fshirë programin. Dhe ashtu si kemi pasur këto emra të shkurtër kohore të kaluar, komanda për heqjen diçka është rm, hequr, të hyjë. Ju jeni do të merrni disa pyetje mjaft të fshehta. Vështirë të besoj se ju mund të bëni edhe kjo pyetje e vështirë për të kuptuar. Por hiqni përshëndetje rregullt skedarëve vetëm do të thotë nuk ju duan të fshini përshëndetje. Dhe unë mund të shkoni përpara dhe shkruani y për po, Enter, dhe tani është e shkuar. Çfarë kjo do të thotë tani, nëse i fshirë ekranin tim, është se në vend të duke bërë të bëjë hello-- ju e di se çfarë, unë jam marrë mirë në këtë. Unë jam duke shkuar për të drejtuar përpiluesit veten. Unë nuk kanë nevojë për ndonjë program të kuptoj se çfarë fotografi ime quhet. Kam shkruar hello.c, unë e di se çfarë është quajtur, Unë jam në mënyrë të qartë të aftë për të shtypur që. Kështu që unë jam duke shkuar për të shkuar përpara dhe e tingëllim hello.c Enter. Duket për të punuar. Dhe nuk ka asnjë output shtesë, sepse tingëllimë është përpilues. Kjo është çfarë po konvertimin Kodi burim për zero dhe ato. Pra, nëse unë tani bëj dot çaj përshëndetje Shkruani, hm. Mesazh i ri gabim sot. Pra, bash është vetëm emri i keq shpejtë që ne jemi duke përdorur. Kjo është një oversimplification bruto, por tani për tani kjo është e gjitha që është, kjo është keq të shpejtë. Dhe kjo është arsyeja pse është yelling në ne. Nuk ka fotografi apo directory e tillë është pak më të drejtpërdrejtë. Por, unë e bëra atë kod objekt. Por kapur është, se në qoftë se unë shtypni komandën të listojnë përmbajtjen e kësaj Lista, e cila është ajo? ls për listën. Ka një bandë e gjëra në këtu, disa prej të cilave erdhi me aplikim, si dosjen time Desktop, Downloads dosje, Dropbox dosje, dhe të gjitha se stuff. Por ajo që është interesante është hello.c, e cila Kam krijuar një moment më parë me gedit. Dhe çfarë është weirdest kërkoni emrin në këtu, ndoshta se ne nuk të shihni për herë të fundit në të gjitha? a.out, e drejtë? Pra, mbrapa në ditë, atë u vendos vetëm se kur ju të hartuar një program të për herë të parë, dhe ju nuk e specifikoni emrin fotografish, le të thërrasë atë një. Dhe a.out thjesht do të thotë kjo ishte prodhimi i përpiluesit. Pra, është një emër i tmerrshëm për një program. Por, nga kjo logjikë, dot çaj për Lista aktuale, çaj a.out, duhet të thotë se ka në të vërtetë tim përshëndetje Programi botëror. Tani pak të ngrohtë deri stërvitje, too. Nëse unë dua të riemërtoni këtë fotografi, rezulton se ju zhvendosur një skedë nga një emër në një tjetër. A.out Pra mv, dhe pastaj unë mund të telefononi atë përshëndetje Enter. Pra, kjo është një komandë Linux. DOS kishte këtë vite më parë, Windows ka një dritare terminali e disa lloj që duket si ky, Linux dhe Mac kompjutera e kanë këtë të shpejtë keq. Edhe pse shumica prej nesh ndoshta rrallë, nëse ndonjëherë, e përdorin atë. Por ajo që unë kam bërë është drejtuar një program, emri i të cilit është mv, dhe unë e kam dhënë atë me dy argumente, kështu që të flasin. Dy inputeve. a.out është emri origjinal. Përshëndetje është emri i ri. Pra, nëse unë tani bëj dot plagë hello, Shkruani, që ekziston. Dhe në qoftë se unë bëj dot a.out Slash, Çfarë prisni unë duhet të shoh? Bash, asnjë fotografi apo directory e tillë. Sepse unë vetëm riemëruar atë. Pra, kjo merr një grimë duke u përdorur për të. Por problemi vendosur 1 specifikim do me të vërtetë të mbajë dorën tuaj nëpërmjet disa prej këtij minutae. Për shkak se kjo është një e plotë çmenduri intelektuale nga më interesante Idetë në dorë, të cilat është në të vërtetë duke krijuar diçka nga kodi. Por le të bëjmë një modifikim tani në këtë program. Kujtojnë se për herë të fundit kam bërë diçka si kjo, printf shtetit emrin tuaj. Dhe me të vërtetë ne vetëm e bëri këtë në ekranin e madh mbi atje. Dhe pastaj kam bërë string s merr GetString Paren hapura, Paren ngushtë. Dhe Paren vetëm stenografi simbol për kllapa. Pra ka GetString marrë argumente? Jo inputet jo, por ajo nevojë për kllapa, sepse kjo është ajo që shënon thirrja e një funksioni. Kështu që unë jam duke shkuar për të shkuar përpara dhe të përpiqen për të drejtuar përpiluesit në këtë program tani. Tingëllimë hello.c, sepse unë nuk ka ndryshuar emrin e saj tani për tani. Dhe unë kam një bandë e gabimeve. Le të zoom out këtu. Nëse unë lëvizni përsëri, si i tha herën e fundit, të parë të njëjtin gabim të, që kam marrë për herë të fundit. Top 6 të hello.c kam pasur një string padeklaruar identifikues, e Unë do të thotë standarde në? Unë nuk e bëri. Për shkak se ajo gabim kam bërë në këtë program, nëse ju kujtohet nga koha e kaluar? Po, ne kemi nevojë ashtuquajtura rrota trajnimit se ne do të përdorim vetëm për disa javë. Por unë duhet të specifikojë se gjithashtu, diku në brendësi të pajisjes, është një fotografi që kemi shkruar vetëm pak vite më parë. Brenda të cilat janë funksione si duket GetString. Deri tani, nëse unë kthehem këtu poshtë, zoom, dhe ri-drejtuar tingëllimë hello.c. Damn, një tjetër gabim. Por ne nuk e kemi parë këtë më parë. Kjo është pak më shumë ezoterik të kuptoj se. Por kjo është qëllimisht në ekran, sepse ne të kërkuar për të treguar këtë histori. Kur ju përpilojnë hello.c, ashtu si foto nga sugjeruar më parë, ju jeni vetëm konvertimin se Kodi burim për zero dhe ato. Tani stafi CS50 disa vite më parë ka shkruar CS50.h, dhe një fotografi korresponduese, CS50.c. Dhe ne, disa vjet më parë, përpiluar ato fotografi në një skedar që ndodh që do të quhet CS50.o. Ose ajo mund të riemërohet një disa gjëra të ndryshme. Por kjo është një mënyrë e thjeshtë e të menduarit në lidhje me të. Pra, ne hartuar CS50-së Biblioteka në zero dhe ato. Por askund kam specifikuar që unë dua për të kombinuar zero mia dhe ato për botën time përshëndetje program me zero dhe ato se stafi CS50 krijuar disa vite më më parë në një program të plotë. Të gjitha i kam përcaktuar nga shkrim hello.c tingëllimë është hartojnë hello.c. Unë nuk kam thënë tingëllim të Lidhje në zero dhe ato se stafi CS50 krijuar për ju disa kohë më parë. Pra, kjo është një fix lehtë, dash l për lidhjen, CS50. Dhe ne do të shohim përsëri këtë para se të gjatë përsëri dhe përsëri. Por vini re tani nuk ka pasur asnjë ankesë. Deri tani, nëse unë të drejtuar dot plagë hello, tani ajo është duke punuar. Edhe pse kjo është pak mashtruese pasi që unë vetëm të rikrijuar atë foto? a.out. Pra më lejoni të Rewind për vetëm një moment. Programi ne sapo hartuar ka tre rreshta të kodit. Kur unë u zhvillua Hello World, përshëndetje një moment më parë, unë nuk e shoh të shtetit emrin tuaj. Dhe kjo është për shkak se unë u zhvillua versioni i vjetër i programit. Por në qoftë se unë do të kandidojë me të vërtetë dot a.out Slash Shkruani, shtetit emrin tuaj, Rob, hello, bota. Hm. Kjo është lloj i një bug. Ndoshta do të thotë për të thënë Rob, e drejtë? Pra, çfarë është fix këtu në kod. STUDENT: [padëgjueshme]. DAVID Malan: Pikërisht. Kështu që unë vetëm duhet të bëjë atë shkulje përfundimtar kështu që unë jam duke kaluar në një placeholder, si një plotësoni në bosh, si ne e bëmë një moment më parë. Por për qind është tani që të plotësoni në bosh. Pra, së fundi le të zbulojë një të fundit detaje kështu që nuk ka asnjë magji. Unë jam duke shkuar për të shkuar përpara dhe të shpëtoj të Hellow. Unë jam duke shkuar për të shkuar përpara dhe të shpëtoj të a.out. Deri tani unë nuk kam asnjë programe, vetëm kodi im burim. Dhe unë jam duke shkuar për të drejtuar një komandën pak më të gjatë, tingëllimë dash o tungjatjeta hello.c dash LCS50. Tani kjo ka filluar të lloj të shkuar në një vesh dhe nga ana tjetër ndoshta. Por vetëm vë në lojë përveç asaj që kjo është duke bërë. Tingëllimë është përpilues, dash LCS50 qëllimisht në fund bën atë që në një fjali? Lidhje me bibliotekë CS50. Grabs zero dhe ato që stafi bëra dhe crams ato në programin tim. Pra, pyetja e fundit në dorë është, çfarë është dash o përshëndetje ndoshta duke bërë, edhe në qoftë se ju nuk e kam parë këtë sintaksë më parë? Kompjuteri një program që është nuk e quajtur a.out default. Përkundrazi ajo është quajtur përshëndetje. Deri tani nuk ka asnjë a.out. Nuk ka fotografi të tilla apo directory, sepse ka thënë në mënyrë eksplicite e quajnë këtë program hello, në mënyrë që Unë tani mund të shkruani një emër të tillë dhe kanë të sillen. Tani sinqerisht, djali është se jointeresant që të ketë për të kujtuar të gjithë se pak minutia, e drejtë? Pra, le të shkojnë përpara dhe të të shpëtoj prej Përshëndetje përsëri. Dhe tani le të kthehet në një botë në e cila mjafton për të thënë të bërë përshëndetje. Por kjo është magji që bërë është duke bërë për ju, kjo është mërzi që ajo e bën për ju. Dhe si programet tona dhe të Problemet merrni më komplekse, bëjnë me të vërtetë do të jetë miku juaj. Sepse jo shumë e gjatë nga tani ne jemi duke shkuar që të ketë programe që janë shkruar jo me një fotografi, por disa fotografi, dhe të bëjë do të automate procesin e hartimin të gjithë që për ne së bashku. Deri tani të shtypura. printf është brenda këtij file, standarde I / O h dot, se ne kemi parë më parë, por ka më shumë për printf se kaq. Ka n backslash, por ka edhe një bandë e sekuencave të tjera të ikjes. Dhe rend shpëtuar është vetëm një mënyrë e sofistikuar për të thënë diçka që fillon me një backslash, jo një plagë përpara, një backslash, dhe e bën një gjë të veçantë. Dhe ne nuk do të ndalem në shumicën e këtyre, por pse nuk ka backslash kuotë të dyfishtë, mendoni ju? Pse ka ky rend i çuditshëm i karaktere, quote backslash dyfishtë, pse mund që të jenë të dobishme? STUDENT: [padëgjueshme]. DAVID Malan: Pikërisht, e drejtë? Mendoni përsëri në programin tonë botë Hello që ne kemi parë mjaft disa herë tani, çdo herë ne kemi parë atë botë Hello programi ne kemi pasur kuotat e dyfishtë brenda e cila është përshëndetje presje Bota backslash n. Por mendoni për veten, çfarë nëse ju në të vërtetë të kërkuar për të shkruar një shenjë citat? Instinkt juaj e parë mund të jetë, unë nuk e bëj e di pse unë mund të dëshironi të do-- këtu, ne mund të jetë një pasiv pak agresive, përshëndetje mik. Ne mund të dëshironi të bëni diçka të tillë. Por pse është kjo tani problematike? Injorimi kuotat kaçurrel mënjanë se kryesor bërë për ne automatikisht. Pse është kjo problematike? Pikërisht. Sepse ne kemi si 4 thonjëza. E pra e para ndoshta shkon me një të dytë, dhe ndoshta një e katërta shkon me një të tretë, ose, Unë do të thotë unë nuk jam edhe i sigurt, as nuk është kompjuter do të jetë. Kompjuter përsëri, hartuesit përsëri, janë mjaft memec. Ata do të bëjnë vetëm atë ju tregoni atyre për të bërë. Dhe në qoftë se ju nuk jeni të qartë se ata me siguri do të hedhin një gabim. Nëse ju nuk jeni të qartë se si të të bëjë një gjalpë badiava dhe pelte sanduiç gjëra të çuditshme mund të arrijnë. Është e njëjta ide. Tani mjafton të themi se ka disa sekuenca të tjera të shpëtuar, por ne do të vijnë për ata para se të gjatë. Në thelb këto shpëtojnë sekuenca përfaqësojnë diçka që ju nuk mund të jetë në gjendje shumë lehtë në tastierë, pa konfuze kompjuterin. Tani ndërkohë ne kemi placeholders në printf. Përqind d, e cila mund të shkruhet pothuajse në të gjitha rastet si për qind i, është një placeholder për çfarë lloj të të dhënave? Çfarë lloji të vlerës? Një numër decimal. Pra, në të vërtetë ne do të fillojnë përdorur për qind i, sepse kjo është pak më të thjeshtë, si një numër të plotë. I qind. Një numër i plotë që ndodh të jetë dhjetore. Përqindja s ne tashmë e tha ishte një placeholder për një varg. E cila është vetëm një fjalë, një frazë, një paragraf, një ese, çfarëdo. Kjo është një sekuencë e karakteret e disa gjatësi. Dhe ne do të shohim para se të gjatë disa prej këtyre të tjerëve. Por për qind c është për një karakter të vetëm. Përqindja f është për një lundrues numrin pikë, si një numër real që ka një pikë dhjetore në të, të cilat është e jo sigurisht një numër i plotë. Dhe nuk është një tërësi bandë e të tjerët si. Ndërkohë në C, dhe në shumë gjuhë, ne kemi lloje të ndryshme të të dhënave. Llojet e ndryshme të qelqi lojë me birila, nëse ju do. Tas I përdorur për herë të fundit ishte për topa ping pong, por ne mund të ruajë të ndryshme Vlerat si karaktere dhe vargjet dhe integers në një enë, si një variabël, dhe C ka këto. Char është lloji i të dhënave, lloji i ndryshore, në të cilën ju mund të ruajë një karakter. Float është një lloj i ndryshore në të cilat ju mund të ruajë një numër të vërtetë. Int është sigurisht për një int. Dhe mjaft qesharake quajtur një kohë të gjatë është ajo ku ju mund të ruajë në thelb një numër të vërtetë të gjatë, me të edhe më shumë shifra atëherë një tipike int fuqia dyqan. Por ne do të kthehen me atë para se të gjatë. Në CS50 dot h ndërkohë fotografi tjetër header që ne kemi parë një çift herë në përdorim, nuk ka dy lloje të tjera të të dhënave që nuk ekzistojnë në C zakonisht. Njëra është string, dhe ne do të shohim në pak javë ajo që vargjet të vërtetë janë nën kapuç. Dhe një është bool. Dhe një bool është një variabël që vetëm mund të marrë vlera të caktuara. Dhe vetëm në bazë të javës së kaluar shpjegim i Scratch, dhe më shumë kohët e fundit C, çfarë do të ju me mend janë dy vlera të mundshme për disa enë që është e tipit bool? Po dhe jo. Një dhe zero. E vërtetë apo e rreme. Dhe me të vërtetë kjo është e fundit që ka tendencë të jetë konvencionale në një programimit gjuha, duke thënë diçka si e vërtetë apo e rreme. Ndërkohë bibliotekë CS50 vjen me një bandë e funksionalitetit se stafi ka shkruar për ju, përveç vetëm duke marrë një varg. Ne shkroi në funksionet paraprakisht se mund të marrë një numër të plotë nga përdoruesi, të marrë një karakter të vetëm, merrni një noton, që është vetëm një numër me presjes dhjetore. Merrni një kohë të gjatë, një të vërtetë vlera të mëdha nga përdoruesit. Pra, ne kemi parë vetëm këtë në veprim në formën e GetString. Por me anë të këtyre funksioneve së shpejti do të jetë në gjendje për të shkruar programe që të merrni të dhëna nga përdoruesit. Ndërkohë konsiderojnë këtë program, dhe të marrë parasysh se si ne tani mund të filloni për të shtuar që ajo ndërton me të reja. Një turne të shpejtë shakullinë dhe pastaj ne do të shohim në disa të shkruar disa Programet me dorë veten. Tani e tutje, nëse ne duam të zbatojë një kusht, ajo nuk do të duket si një bukur pak copë goxha mister. Ajo do të duket pak më e errët. Por kjo është kanonik struktura e një gjendje në C. Fjala nëse, dy kllapat, brenda i cili do të jetë një lloj e shprehjes Boolean. Tani plagë plagë në mes, kjo është në momentin lloj si placeholder pseudokod Kodi. Por më duhet, ndonjë linjë e kodit në C që fillon me çaj çaj është një koment. Është si një shënim ngjitet që ju mund të vënë në një ese, të shtypura në letër. Kjo është një shënim për veten tuaj. Ajo ka jo funksionale ndikimi mbi programin. Kjo është lloj i një kujtesë, atë të vetë tuaj dokumentacionin si për atë që po ndodh. Pra, bëni këtë në këtë moment është lloj i një placeholder për çdo gjë që ka brenda e këtyre formatimin e teksteve kaçurrel përfundimisht do të bëjë diçka. Ndërkohë ju keni dy forks në rrugë, një rast tjetër të ndërtuar si kjo. Ju mund të, nëse, ElseIf, tjetër. Tani ia vlen të përmendet, sidomos në qoftë se ju keni qenë Googling rreth në internet për burime jashtë kuriozitet, ose në qoftë se ju të vini deri një kurs të libra rekomanduara në C, ju do të shihni se njerëzit kanë shumë preferencat e ndryshme për mënyrën se si për të shprehur veten në kod. Disa njerëz si për të vënë formatimin e teksteve kaçurrel si unë kam bërë këtu. Disa njerëz si për të vënë në kaçurrel përgatitet për shembull deri këtu. Disa njerëz si për të vënë elses deri këtu dhe pastaj kjo këtu. Ka ndonjë numër mënyrash për të Kodi shkruaj, dhe asnjëri prej tyre janë të drejta në vetvete. Edhe pse ka disa që janë mjaft të gabuara. Por ka no-- nëse kjo është e në fund të fundit një debat shumë fetare. Në fakt, një nga më të bezdisshëm gjëra në lidhje me shkenca kompjuterike është se si i vetëdijshëm shkencëtarët kompjuter mund të jetë. Dhe ju do të gjeni me kalimin e kohës që edhe ju të zhvilloni preferencat personale se si kodi juaj duhet të duken. Jo vetëm sillen, jo vetëm të krijojë dalje, por se si duhet të duken estetikisht. Pra, ajo që ne do të bëjmë është të ju udhëzojë gjatë rruga drejt, tani për tani të paktën, një stil standarde CS50 se të paktën mban gjëra uniforme dhe të lehtë për të lexuar. Por më shumë në ato dallimet para të gjatë. Një shprehje Boolean në C, në qoftë se ju të kërkuar për të thënë nëse ky kusht është e vërtetë dhe ky kusht tjetër është e vërtetë, ju nuk e shkruani fjalën dhe, si ju do në anglisht. Ju në vend që të përdorin 'e ampersand, për arsye ne do të kthehen për të. Nëse ju doni të thoni ose ju përdorni dy bare vertikale, të cilat në një tastierë të SHBA është përgjithësisht më sipër Shkruani tjetër kyç për backslash. Dhe kjo thjesht do të thotë në qoftë se kjo gjendje apo ky kusht tjetër është e vërtetë e bëjnë këtë. Ndërkohë ka kjo gjë e çmendur, e cila ju do të keni rastin për të përdorur një herë në pak kohë. Por kjo është vetëm një alternativë mënyrë për të shprehur veten. Kjo, tani për tani, le të përcaktojnë, është vetëm një tjetër mënyrë për të shokuar të shprehur nëse, ElseIf, ElseIf, ElseIf, ElseIf. Është formatuar vetëm në aspektin e rasteve, kur ju fjalë për fjalë numëroj vlerat që ju mund të dëshironi të shikoni për. Ndërkohë sythe. Ne pamë një krahasim të Scratch me një lak. Dhe unë jam duke shkuar për të tundë dorën time në çfarë secili prej këtyre gjërave do të thotë. Por vini re se një lak do shumë shpesh fillojnë me fjalen për. Ose ajo do të fillojë me kohë fjalen. Ose ajo do të fillojë me fjalen bëni, dhe do të përfundojë me kohë fjalen. Por ajo që ne jemi gati për të parë të është gjëra më e pëlqejnë këtë. Këtu është, në përgjithësi në C, si ju mund të deklarojë një ndryshore dhe të jepte një vlerë. Në C kjo nuk mjafton, si në Scratch, ju vetëm thonë se më jepni një ndryshueshme quajtur diçka. Ju duhet të tregoni C, dhe tregoni përpilues tuaj, në mënyrë më specifike, çfarë lloji i vlerës të bëni ju duan të vënë në tas qelqi. A është një numër i plotë? Nëse është kështu, ju duhet të fjalë për fjalë thonë int dhe pastaj emri i variablit, pastaj një pikëpresje. Nëse ju në vend të kërkuar varg dhe e quajti ajo s si unë e bëri kodin tim sot këtu, ju do të thonë String s pikëpresje. Pasi ju doni të jepni një vlerë atëherë ju mund të përdorni shenjën e barazimit, njohur ndryshe si Operatori detyrë. Dhe vini re se si çdo nga këto rreshta të kodit ka pikëpresje në fund të saj. Por sinqerisht kjo vetëm duket pak e shëmtuar. Pse nuk mund të them në kompjuter, të japë me një ndryshore dhe të nisja atë në zero. Kjo është, më jepni një tas qelqi bosh. Ndërsa ju mund. Dhe kështu një i aktgjykimit ju thërret do duhet të bëjë stilistikisht me kalimin e kohës po, ju shkruani kodin tuaj si kjo, ose ju lloj i pastruar atë dhe të lë përshtypje njerëz duke shkruar dy rreshta si vetëm një. Dhe kjo do të konsiderohet përgjithësisht një mënyrë më elegante e shkruar kodin tuaj stilistikisht. Funksionet ne jemi natyrisht parë. Ata janë duke shkuar për të marrë këtë format. Emri i funksionit, disa kllapa, dhe pastaj ndoshta disa gjëra brenda. Ose ju mund të shihni përdorimet e Funksionet e shumta anë për krah, si diçka si kjo. Tani si një tangente, bën kjo shaka tani kuptim? [Qeshura] Kjo nuk do të thotë se është qesharake, por ajo e bën ndoshta të bëjë një kuptim pak më shumë. Pra, tani le të shkojnë në Aplikim CS50 për një moment. Dhe më lejoni të hapur një ngacmues këtu. Dhe me të vërtetë një nga arsyet për futjen katalogun IKEA dhe ndezje foto i iPhone pak më parë ishte në fakt lidhin në së bashku Fakti që vetëm disa vjet më parë, në vitin 2007, kjo pjesë e kodit ishte lëshuar, e cila u një implementimin e parë e një pjesë e software që e bën atë që quhet jailbreaking. Për ata të panjohur, jailbreaking diçka si një telefon apo një iPhone do të thotë në thelb parafytyruar se si të bëni gjëra me atë që kompania i cili e bëri të nuk ka ndërmend. Ashtu si ju dëshironi të instaloni sigurtë softuer që nuk është në dyqan app, jailbreaking telefonin tuaj të cilat ju bëni gjëra të tilla si kjo dhe më shumë. Por ajo ishte fun në 2007-- dhe ka pasur dhjetra e versioneve të ndryshme nga këto gjëra që atëherë, në të gjitha llojet e languages-- është se ky program këtu, të quajtur iUnlock, në të vërtetë ishte shkruar në C. Dhe kështu që unë u tërhoq deri kodin burim për këtë, vetëm për të lloj të treguar ju disa prej ngjashmëritë me ndërton ne kemi diskutuar deri tani. Tani nuk ka mënyrë më kompleksiteti këtu se ne kemi parë tashmë në klasë. Më lejoni të lëviz deri vetëm pak këtu. Por vini re these-- mirë vërejmë disa things-- por vini re këto rreshta këtu, duke përfshirë standarde I / O dot h. Dhe all-- linjë 24, please-- njoftim I standarde / O dot h dhe një bandë e tërë e tjera Fotografi që njerëzit e tjerë me sa duket kanë shkruar. Dhe nëse ne lëvizni poshtë nëpër kjo, pak në mënyrë arbitrare, njoftim Unë nuk e di se si për të shkruar gjithë këtë veten time domosdoshmërisht ende, por ka po. Pra, me sa duket kjo ka një degë. Dhe në qoftë se unë lëviz nëpër pak më tej ka një tjetër rast. Në qoftë se unë lëviz lart, unë mendoj rreth linjës 100 pashë për. Kështu që unë nuk jam mjaft i sigurt se si kjo punon ende, por kjo është një për lak që do të më lejoni të iterate një numër i herë. Dhe në qoftë se unë lëviz gjithë rruga për në fund Unë shoh se ka një funksionojnë këtu poshtë i quajtur kryesore, dhe disa kredi shtesë për kënaqësinë tuaj lexim. Pra, kjo është vetëm për say-- dhe ne do të vënë kjo në internet në mesin burim rrjedhës së Kodi today-- se edhe disa nga këto pajisjet që kemi marrë për të dhënë, në fund të ditës ju jeni ende duke përdorur këto konstruktet themelore që ne kemi janë futur tashmë deri tani. Kjo është mjaft e këtij të fundit. Në rregull, kështu që tani le të në të vërtetë të ndërtuar diçka. Le të shkojnë përtej diçka si hello.c, dhe të hapur këtë, le të shkruaj këtë program këtu. Unë jam duke shkuar për të shkuar përpara dhe të shkruani një program të quajtur adder.c, qëllimi i të cilit në jetë do të jetë si e parë llogaritëse tim super të thjeshtë që vetëm shton disa numra. Jo për shkak se është një e vështirë problem, por për shkak të lejon mua që tani lidhin së bashku disa gjëra. Kështu që unë jam duke shkuar për të shkuar përpara dhe të përfshijnë I standarde / dot O h dhe CS50 dot h. Unë jam duke shkuar për të thënë boshllëk int kryesore. Dhe përsëri në të ardhmen ne do të kthehen në të në në këtë kontekst dhe mjete të pavlefshme. Dhe tani unë jam duke shkuar për të thënë diçka si printf, më jep një numër të plotë. Dhe tani në linjë tim të dytë, si mund të shprehin veten e tillë që unë dua të deklaroj një ndryshore që do të ruajtur një int? Fjalë për fjalë çfarë unë lloji në qoftë se unë dua të të krijojë një ndryshore që ruan një int do të thoni? int a barabartë getint. Sure, kështu që punon. Dhe vetëm për qëndrueshmëri me kodin ju do të shikoni online, më lejoni të ndryshojë kjo me x, vetëm për shkak se x është një emër i zakonshëm variabël për të përdorur, të paktën në algjebër. Tani më lejoni të shkoj përpara dhe të mos printf përsëri. Më jepni edhe një numër i plotë. Dhe tani unë jam duke shkuar për të llojit të të mësojnë nga ai model, Unë jam duke shkuar për të thënë y int merr për GetInt. Dhe ne nuk e kam përdorur GetInt më parë, por vetëm si GetString shkon dhe merr një varg, si Javier bëri nga publiku, në mënyrë të ngjashme e bën GetInt fillojnë keq e shpejtë. Dhe në mënyrë efektive duke pritur për përdoruesit për të dhënë atë një numër të plotë, duke shtypur atë në dhe goditur Enter. Tani së fundi unë jam duke shkuar për të bërë kjo, printf shumën of-- dhe më lejoni të merrni now-- dashuroj përqind I dhe përqind i është i pranishëm i Thirrje pikë backslash n. Dhe çfarë mendoni se unë jam duke shkuar për të vënë në tani si inpute shtesë të printf? Unë nuk dua të them fjalë për fjalë të japin kuotën e mbyll thonjëzat x. Unë dua të klasës në x dhe atëherë, dhe tani le të dashuroj dhe le të vetëm të supozojmë ne mund të bëjmë atë që duam. Çfarë doni të thoni tjetër? x plus y. Dhe me të vërtetë që do të punojnë. Është minimalisht gjuhë programimi bëjnë të kuptojnë aritmetike themelore, dhe kështu që kjo duhet në fakt puna. Pra më lejoni të shkoj përpara dhe të bëjnë nepërkë nëpër dritaren time të zezë dhe të bardhë këtu poshtë, Enter. Linja e fshehtë, por jo gabim mesazh, kështu që është e mirë. Dot çaj nëpërkë, më jepni një numër të plotë, 1. Më jepni edhe një numër të plotë, 2. Shuma e 1 dhe 2 është 3. Në rregull, kështu që një shumë e vogël program, por çfarë është bërë? Është lejuar mua që të përdorni një funksion e quajnë këtu, telefononi një funksion tjetër këtu, dy thirrjet për GetInt, a thirrja e tretë për të printf, dhe pastaj duke përdorur këto placeholders. Pra, kjo është pak më shumë sofistikuar se herën e fundit. Por, çfarë nëse unë dua të merrni pak njohës? Më lejoni të shkojnë përpara dhe tani të bëjë këtë. Më lejoni të shkojnë përpara dhe për të krijuar një skedar të ri të quajtur kushtet zero. Dhe unë jam duke shkuar për të shpëtuar disa kohë për hir klasa dhe vetëm ngjitur në se Kodi si pikënisje. Dhe tani unë jam vetëm duke shkuar për të vënë diçka të re këtu në mes. Pra printf Dua një numër të plotë, ju lutem. Dhe e gjithë ky kod është në dispozicion në faqen e internetit Kursi-së, ju nuk duhet të shkruani se të gjithë jashtë në klasë në qoftë se ju më mirë të mos. int, dhe tani unë jam duke shkuar për të përdorin, në vend të x dhe y, Unë jam duke shkuar për të përdorur n, e cila është ndoshta emri më i zakonshëm për një numër të plotë në një program kompjuterik. Dhe tani unë dua të bëj një Gjykimi pak këtu. Unë jam duke shkuar për të parë nëse n është më i madh se 0, pastaj Unë jam duke shkuar për të thënë Uh printf--, printf-- ju kap një numër pozitiv, Thirrje pikë backslash n. Mbylle se. Tjetër unë jam duke shkuar për të shtypur jashtë printf ju kap një numër negativ. Tani para se të bërtas në mua, le të drejtuar këtë program. Më lejoni të shkoj këtu poshtë. Dhe si mund të hartojnë një program të quajtur kushtet dash 0? Bëni kushtet dash 0. Lloji i një emri budalla, but-- dammit. OK, moment i mirë mësimi. Pse se thyer? Çfarë Unë rastësisht e quajnë këtë fotografi? Ju mund të lloj të konkludoj nga tab këtu. Pra, kjo nuk është e keqe që unë e bëri këtë, sepse kjo do të ndodhë ndoshta për disa prej jush. Kështu që unë quajtur rastësisht tim burim Kodi kusht 0. Por kodi im burim nga konventa duhet të jetë në një skedar të quajtur gjendja 0 dash c, ose çfarëdo dot c. Pra më lejoni të rregulluar këtë. Ashtu si Microsoft Word unë mund të shkojnë deri për të shpëtuar si dhe të bëjë gjendja 0 dot c. Tani vetëm të jenë të pastra që unë jam duke shkuar për të shkuar përpara dhe për të hequr kusht 0, e cila ishte version tim të vjetër. Dhe tani le të bëjnë kusht 0, Enter. OK, duket e mirë. Kushti 0, Enter. Do të doja një numër të plotë ju lutem, 50, ju kap një numër pozitiv. Tani si në lidhje negative 50? Ju kap një numër negativ. Sa për tani, 0. Goxha i sigurt 0 nuk është negative. Pra, kjo është lloj i një bug logjik. Si mund ta fix this? Tjetër nëse n është më pak se 0, këtë, tjetër ne mund të kemi një degë tre mënyrë këtu, printf ju kap 0. Deri tani, nëse unë këtë përsëritje program, pas hartimit atë përsëri me bëjë, dhe tani përsëritje kusht 0, çfarë unë do të shihni këtu është 0 më jep atë dalje. Pra, ku po shkojmë me këtë? E pra kjo është shumë e lehtë për të humbur shikim e pyjeve për të pemëve. Dhe kështu të na lejojë për të përfunduar me këtë video 2 dhe 1/2 minutë që në fund të fundit është pak e nje reklame nga Google, por që me të vërtetë është testament për ajo edhe duke përdorur këto ndërtesë themelore blloqe që mund të bëjmë në fund të fundit herë ne kemi një grimë e programimit tru nën rripa tona. [MUSIC Playing] SAROO BRIERLEY (Voiceover): Kjo ishte 26 vjet më parë, dhe unë kam qenë vetëm për ta kthyer 5. Ne mori në stacionin e trenit dhe ne hipi trenit tonë së bashku. Vëllai im vetëm tha unë do të qëndroni këtu, dhe unë do të kthehem. Unë vetëm mendova, edhe ju e dini, Si edhe unë mund të shkojnë vetëm për të fjetur dhe ai vetëm do të më zgjo. Dhe kur u zgjova e ardhshme ditë, tërë topi ishte bosh në një tren arratisur, një fantazmë tren duke marrë mua unë nuk e di se ku. Unë u miratua nga në Australi, për një familje Australiane. Dhe nëna e kishte zbukuruar tim dhomë me hartën e Indisë, të cilat ajo i vënë pranë shtratit tim. Zgjova çdo mëngjes duke parë këtë hartë, dhe kështu kjo lloj mbajtur kujtimet gjallë. Njerëzit do të thonë, ju jeni duke u përpjekur për të gjetur një gjilpërë në kashtë, Saroo ju kurrë nuk do të gjeni atë. Unë do të kanë flashed nga vendet që kam përdorur për të shkuar, flashes e familjes sime përballet. Nuk ishte imazhi i nënës sime, ulur poshtë me këmbët e saj të kaluar, vetëm shikuar britmën e saj. Jeta është vetëm aq e vështirë. Kjo ishte thesari im. Dhe unë isha duke kërkuar në Google Map dhe realizuar ka Google Earth si. Në një botë ku ju mund të zoom në, Fillova që të ketë të gjitha këto mendime dhe atë që mundësitë se kjo do të mund të bëjë për mua. I thashë vetes, ju e dini, ju keni marrë të gjitha ato kujtime fotografike dhe monumentet ku ju jeni nga, dhe ju e dini çfarë qyteti duket si. Kjo mund të jetë një kërkesë që ju mund të përdorni për të gjetur rrugën tuaj të kthehet. Mendova, edhe unë do të vënë një dot në stacionin e trenit Kalkutës, dhe një linjë rreze, ju e dini, se ju duhet të jetë në kërkim rreth e rrotull kësaj zone. Unë lloj i ardhur të gjithë këto këngë tren. Dhe kam filluar ndjekur atë, dhe Unë kam ardhur në një stacion treni të cilat pasqyruar të njëjtën imazhin që ishte në kujtimet e mia. Çdo gjë përputhet. Unë vetëm mendova yep, unë e di se ku unë jam duke shkuar. Unë jam vetëm duke shkuar për të le të Harta që kam në kokën time të çojë mua dhe të më kthehet në vendlindjen time. Unë kam ardhur në pragun e shtëpia që kam lindur. Dhe ecte rreth rreth 15 metra rreth qoshe, ka pasur tre zonjat këmbë jashtë, ngjitur me njëri tjetrin. Dhe një e mesme largua përpara, dhe Unë vetëm mendova, kjo është nëna juaj. Ajo erdhi përpara, ajo më përqafoi, dhe ne ishim aty për rreth pesë minuta. Ajo kapi dorën time dhe ajo më mori në shtëpinë dhe mori në telefon, ku ajo ranë motrën time dhe vëllain tim për të thënë se, ju e dini, vëllai juaj ka vetëm të gjithë e papritur u shfaq si një fantazmë. Dhe pastaj familja u bashkua përsëri. Çdo gjë është e gjitha e mirë, I ndihmuar nënën time jashtë, ajo nuk duhet të jetë slaving larg. Ajo mund të jetojnë pjesën tjetër e jetës së saj në paqe. Ajo ishte një gjilpërë në kashtë, por gjilpërë ishte aty. Çdo gjë është atje. Çdo gjë që kemi në botë është në trokitje e lehtë e një butoni. Por ju keni marrë për të kanë vullnetin dhe vendosmërinë për të dashur atë. [MUSIC Playing] DAVID Malan: mrekullisht rekomandim ëmbël për vetëm atë që ju mund të tani bëjnë me teknologjinë. Ne do të shihemi javën e ardhshme.