[Muzika] JASON Hirschhorn: OK, të gjithë. Mirë se vini në seksionin. Kjo është CS50, shumë tonë Pjesa e parë super. Siç e dini, javën e ardhshme seksione të rregullt do të fillojë, por këtë javë ne jemi të gjithë së bashku. Nuk është vetë. Emri im është Jason. Unë jam një lektor në Shkenca Kompjuterike. Ne kemi Andi, i cili është kreu i AT i CS50. Dhe Scaz, Profesor Brian Scassellati, ai është një profesor në Shkenca Kompjuterike. Ne jemi të parët CS50 në Yale. Ju gjithmonë mund email na heads@cs50.yale.edu. Ne do të jetë në leksione. Ne do të jetë në orarit të punës. Nëse ka ndonjëherë ndonjë gjë që mund të bëjë për ju, gjë që ju duhet, të ndjehen të lirë për të arritur deri te ne. Pra, çfarë do të shkojmë të bëjmë sot? Ose para se atëherë, çfarë është vjen deri këtë javë? Pra Orari i punës janë e hëna, e martë, E mërkurë, e enjte, ora 8:00 deri në ora 11:00. Ka një orar në faqen e internetit. Seksionet, siç e përmenda, kanë filluar javën e ardhshme. Dhe ju do të gjeni këtë javë çfarë pas here seksion juaj është, çfarë dite është, dhe kush AT juaj është. Problemi Set 1 është për shkak të enjten në mesditë, e premte në mesditë me një ditë me vonesë. Po, ju keni nëntë ditë vonesë. Dhe ka nëntë grupe problematike. Dhe mund të përdorin vetëm një ditë me vonesë për të vendosur problemit. Po, në fakt, të gjithë problemi grupe janë për shkak të premten në mesditë. Kjo eshte e gjitha. Të gjitha detajet që janë në planin mësimor. Çdo të premte, ne kemi dreka. Ne si për të bërë këtë të madhe Sigurisht ndjehen pak më të vogël. Pra, ju jeni të mirëpritur për të RSVP. Drekë të lirë me shokët Shokët e klasës dhe stafi. cs50.yale.edu/rsvp. Të gjitha këto gjëra që Unë kam në ekran, dhe më shumë, ju mund të gjeni cs50.yale.edu ose cs50.harvard.edu, në qoftë se ju shkoni në Harvard dhe janë të shikuar këtë online. Gjithashtu në ato faqet e internetit, atje një ton të burimeve për ju. Çdo leksion jo vetëm që ka video të e ligjërimit, por edhe vë në dukje. Dikush do të shikojnë leksion dhe të marrë shënime për ju. Kështu që ju mund të paguani vetëm vëmendje gjatë ligjëratave, ose ju mund të përdorni shënimet e tyre / tona shënime për të plotësuar shënimet tuaja. Ka slides online. Burimi code-- gjithçka Davidi shkon mbi në leksion, ose Scaz shkon mbi leksion, që Kodi burimor është në dispozicion online si dhe, si si unë, video përmendur. Seksionet, gjithashtu, të gjithë do të filmuar. Të gjitha këto slides do të jenë në dispozicion. Të gjithë që do të kodit të jetë në dispozicion për ty. Ka pantallona të shkurtra në faqen e internetit ku Anëtarët e stafit CS50 kalojnë pesë deri 10 minuta kalon nëpër temave për ju. Disa prej atyre që ju keni tashmë hasur në grupe problemit. Orari i punës, siç e përmenda, hënave përmes enjteve, 8:00 deri 11:00. CS50 Studimi është një burim fantastik. Ka probleme praktikë, slides mostër, mete njohur që nxënësit të donte për të kandiduar në, për thelb çdo temë ne do të mbulojë në këtë kurs. Dhe së fundi, në këtë rrëshqitje të paktën, Reference50 e cila ju jep informacion në të gjitha funksionet C ju mund të ndonjëherë ndoshta shpresoj për t'u përdorur dhe shumë, shumë më tepër. Përsëri, kjo dot dot dot në pjesën e poshtme të ekranit është për të treguar se ka edhe më shumë burime në ato dy faqet e internetit: cs50.yale.edu, cs50.harvard.edu. Pra, çfarë po bëjmë sot? E pra, së pari unë jam duke shkuar për të dhënë ju shikoni në burimet. Tashmë e bëri atë një të tillë. Shikoni në ne. Tani, ne jemi duke shkuar për të shkuar mbi lloje të të dhënave dhe operatorët në C. Pastaj Andi do të dalë këtu dhe shkoni mbi bibliotekat në C, Printf (), një funksion me të cilat ju jeni tashmë njohur apo do të bëhet shpejt shumë njohur. Dhe ju do të shkoni edhe mbi conditionals dhe sythe. Dhe pastaj në fund, Scaz do të shkojë mbi ID CS50. Nëse ju nuk e keni pëllumb në tashmë në problem i caktuar 1, si dhe se si të përdorin terminal komandat dhe të dobishme dhe pastaj ju japin disa popull dhe Praktika coding në ID CS50. Para se të hidhen në në këtë Përmbajtja në këtë anë, ka dikush keni ndonjë pyetje deri më tani? I madh. NE RREGULL. Ndryshimi i ingranazhet. [Ndrrimin] Kjo ishte më i ndryshueshëm ingranazhet në një makinë manuale. Pra, tipet e te dhenave në C, ju nuk mund të ketë një ndryshore x dhe duhet të jetë në linjë 10, një numër i plotë, ndoshta numri 1, on line 20, një numër decimal 10.5, dhe linjat e pastaj një çift më vonë një varg, dua CS50. Në C, variabla mund të jetë vetëm një gjë, dhe një gjë vetëm. Dhe kështu që ju duhet të jepni atyre llojeve. Dhe në këtë bord, ne të ketë një listë të llojeve. Ka chars, e cila të qëndrojë për karaktere. Pra, kjo është një letër A, B, C, D. Kjo gjithashtu mund të jetë një hapësirë, ose që mund të jetë gjithashtu një karakter të ri linjë. Nuk janë integers, të cilat janë vetëm numra, e tërë numbers-- ose numra të plotë rather-- por pa numra dhjetorë. Për decimale, ne kemi lundrues numra pikë. Floating point numrat janë numra me presje dhjetore. Atëherë ka longs, të cilat janë integers në thelb më të gjatë. Ju do të vëreni se një kohë të gjatë është 8 ndërsa një int është 4. Unë do të shkoj në se në një të dytë. Kjo për shkak se dëshiron mund të ruajë edhe më shumë integers se një int mund të ruajë. Dyfishtë është një noton gjatë. Dhe së fundi, ne kemi string, e cila është një lloj që ju keni përdorur ndoshta më parë. Në qoftë se ju të përfshijë hashtag # includeCS50.h në skedarin tuaj burimor, atëherë ju mund të përdorni një lloj varg. Kjo nuk është ndërtuar në të vërtetë në C. Ka disa lloje të tjera si edhe. Por këto janë ato kryesore me që ju do të përdorni dhe të hasni. C si, përsëri unë përmenda, çdo variable-- atë mund të jetë vetëm një lloj dhe një lloj i vetëm. Kjo për shkak se C është një mënyrë statike Gjuha e shtypur, në krahasim në gjuhët e shtypur dinamike ku në qoftë se keni krijuar një ndryshore ju mund të ndryshojë atë që ruhet në ajo si ju shkoni në në programin tuaj. Mbi këtu në të djathtë anë, unë kam madhësive të ndryshme e këtyre llojeve të të dhënave në bytes. Pra, një karakter është 1 bajt. Kjo është 8 bit. Dhe kjo do të thotë për shkak se 8 bit ka tetë 0s dhe 1s. Ne pamë ato popull në radhë të parë javë me atë llamba binare. Me 8 bit apo byte 1, ne mund të përfaqësojnë numra nga 0 deri 255. E drejtë. Nëse të gjitha 8 BITS janë 0 kjo është 0. Nëse bit e parë është 1, që është numri një, dhe kështu me radhë, të gjithë rrugën deri në 255. Dhe kjo është arsyeja pse për personazhet që ju mund të kanë në thelb deri në 255 prej tyre, por kjo është shumë për të mbuluar të gjitha personazhet ne duhet të përdorim. Për integers, ju mund të ketë 0 dhe atëherë ju keni 2 në 32 minus 1. Ata janë si shumë opsione ju keni për integers. Për një kohë të gjatë, ju keni 0 për 2 deri 64 minus 1. Pra, ju keni shumë, shumë, më shumë opsione për longs. Vargjet, kjo është një pikëpyetje sepse kjo është një cliffhanger për më vonë. Po. Unë mund të them të gjithë e në buzë e vendin e tyre, si çfarë është kjo pikëpyetje? Kjo është një cliffhanger. Ne përfundimisht do të mbulojë madhësinë e vargjet dhe të flasim më shumë për vargjet. Sepse string është në fakt një prej rrotave të trajnimit ne kemi vënë në në këtë Sigurisht në fillim dhe pastaj të marrë jashtë më vonë në, sepse vargjet në C në të vërtetë janë pointers të vargjeve karakter. Por përsëri, kjo është një cliffhanger për më vonë. Para se të lëvizin në çdo pyetje, komente, shqetësimet në lidhje me këtë rrëshqitje? NE RREGULL. Unë duhet të jetë një shpjegues fantastike. Gjithashtu, kur ju jeni të programimit, ju jeni do të përdorin këto operatorët. Shenja me të vërtetë të thjeshta që mund të bëjë thjeshtë operacionet, me të cilën ju jeni me siguri tashmë shumë të njohur. Për shembull, në të djathtë hand side, ne shohim shtoni. Për të shtuar, ju vetëm bëni një shenjë plus. Dhe kështu që ju mund të keni dy variablave x dhe y. Ju mund të bëni x + y në kodin tuaj. Ndoshta ju doni to-- thoni ju kanë numrin 7 dhe 3, ju doni të ruajtur atë në një ndryshore të quajtur shumë. Ju mund të bëni int për llojin, hapësira shuma, emri i variablit, = 7 + 3; Çfarë do që dyqan në shumës? Çdokush? Po të kisha në shumën = 7 + 3. Çfarë do të ruhen në shumë? Ju vetëm mund të bërtas atë. Audienca: 10. JASON Hirschhorn: 10! Kjo është saktësisht e drejtë. Po në lidhje me në shumën = 7 - 3, Unë vetëm përdorin atë shenjë dash. Çfarë do të ruhen? Audienca: 4. JASON Hirschhorn: 4. Shuma është ndoshta emri i gabuar për se ndryshueshme, por 4 do të ruhen. Të shumohen në C, përdorni pak Karakter Star, ju nuk e përdorni një x. Për të ndarë, të përdorur një përpara Nuk Slash simbolin e ndarjes. Dhe për modulo, përdorin simbolin qind. Pra, le të thonë se unë dua të shoh int z = 7% 3, çfarë do të ruhen në z? Pra, kjo është në thelb pyetur çfarë do modulo bëni? A e dini çfarë bën modulo? Po. y 4. SPEAKER 1: Kjo është pjesa tjetër. JASON Hirschhorn: Kjo është Pjesa tjetër kur ju ndani. Pra, 7 ndarë nga 3 është 2 pjesa 1. Pra, 1 do të ruhen. Ju e bëri zbritje, por kjo është se si funksionon. Kjo është ajo që e bën operatori modulo. Ajo merr një numër ndan atë nga një numër tjetër dhe kthehet për ju pjesa tjetër. Pra, përsëri, 7% 3 ju jep 1, sepse 7 ndarë nga 3 është 2 pjesa 1, dhe kthen pjesën e mbetur. Po në lidhje me le të kthehemi deri një hap në atë shenjë ndarje. Nëse kam bërë 7 / pjesëtuar me 3 e bën dikush e di se çka do të kthehet? SPEAKER 2: 2. JASON Hirschhorn: Pse 2 dhe jo 2,333? SPEAKER 2: Unë mendoj se kjo shkurton off pas numrin e plotë. JASON Hirschhorn: Pra, kjo është saktësisht e drejtë. Në C, në qoftë se ju bëni ndarjen e dy integers 7 ndarë nga 3, ajo merr përgjigje që në këtë rast 2.3333 përgjithmonë dhe konstaton se pikë dhjetore dhe chops gjithçka jashtë pas dhjetore dhe vetëm ajo ju kthehet 2. Pra, nëse unë e bëri 8 ndarë nga 3. Që në fakt, ne e dimë që të kthehen 2.666, por ajo chops gjithçka jashtë në dhjetore, truncates të gjitha, dhe vetëm të kthehet për ju 2. Kështu 6 ndarë nga 3, 7 të ndarë me 3, 8 ndarë nga 3, të gjithë do të kthehet tek ju 2. A e dini, ose kanë një mend, se si unë në fakt mund të merrni përgjigje të plotë, nëse unë dua atë decimal? Po. Shkoni përpara. SPEAKER 3: Përdorni një noton? JASON Hirschhorn: Çfarë doni të thoni? SPEAKER 3: Sepse ju tha noton është për numrat [e padëgjueshme] JASON Hirschhorn: E drejta. Pra, kjo është saktësisht e drejtë. 7 është një numër i plotë. Por, nëse kam kërkuar për ta kthyer atë në një numër lundrues pikë, Unë do të duhet për të ruajtur atë si 7.0 sepse kompjuteri është me të vërtetë stupid-- pamë se me BP dhe J example-- ajo do të bëjë vetëm pikërisht çfarë ju thoni atë. Pra, nëse ju shkruani 7, ajo mendoj se kjo është një numër të plotë. Në qoftë se ju shkruani 7.0, edhe pse ne e di se këto gjëra janë ekuivalente, ajo trajton se si një lundrues numrin pikë. Pra, nëse ju e bëri 7.0 ndarë nga 3, ose ndarë nga 3.0, kjo do të thotë, OK, tani ne jemi që kanë të bëjnë me gjithandej. Unë do të kthehem te ju 2.333333 përgjithmonë. Por jo të vërtetë përgjithmonë, sepse siç e pamë edhe në leksion, këto shifra lundrues pikë nuk janë saktësisht të sakta. Pra, nëse ju doni që decimal, apo një pjesë e atij dhjetore, atëherë ju duhet të use-- një prej tyre duhet të jetë një numër lundrues pikë dhe kompjuteri ka për të kuptuar se kjo është një pikë lundrues ju jeni që kanë të bëjnë me, jo një numër të plotë. Çdo pyetje në atë tavolinë në anën e djathtë, deri më tani? Ose dorën tuaj nga e majta, tuaj majtas, dora jote nga e majta. Po. SPEAKER 4: E drejta. Për vetëm si një rregullt integers, ju do të write-- do të ju duhet të shkruani noton? JASON Hirschhorn: Po kështu. E pra, në qoftë se ju doni të krijoni një variabël që është një noton, ju duhet të them noton z barabartë diçka. SPEAKER 4: OK. JASON Hirschhorn: Por, nëse kam kërkuar për të bëjnë 7 ndarë nga 3 dhe për të marrë atë decimal, Unë do të bëj noton Z = 7.0 / 3.0; dhe që do të më jepni pika pluskuese numër. SPEAKER 4: OK. JASON Hirschhorn: Në qoftë se kam bërë diçka si int z = 7 / nga 3, se do të më jepni një numër të plotë, sepse ato janë të gjitha integers. A ka kjo kuptim? SPEAKER 4: Po. JASON Hirschhorn: OK. I madh. Çdo pyetje të tjera në lidhje me atë tryezë? Me të vërtetë? Unë jam aq i ngacmuar. NE RREGULL. Pra, disa gjëra të tjera që ju do të përdorni, shpesh në kushte apo sythe, janë këto lloje të operators-- këto lloje të shprehjeve Boolean. Dhe siç kemi mësuar, == është ajo që ju përdorin për të kontrolluar nëse dy gjëra janë të barabartë. Kështu që këtu unë jam duke kontrolluar nëse x == y, le të përsëri marrin që është 7 x dhe y është 3. Pra, nëse kam shkruar 7 == 3, çfarë do që të kthehet në mua? A është e vërtetë apo e rreme? Audienca: False. JASON Hirschhorn: OK. Ndjehem si të gjithë mund të merrni këtë një të tillë. Pra të gjithë, çfarë do që të kthehet? Audienca: False. JASON Hirschhorn: False. I madh. 7 nuk ka të barabartë 3. Pra, 7 == 3 do të kthehen rreme. Ju keni një shenjë jo të barabartë, kështu që nëse unë kontrollohet 7! = 3, çfarë do që të kthehet? Audienca: Vërtetë. JASON Hirschhorn: Vërtetë. Shkëlqyer. Dikush ishte shumë këmbëngulës në mbrapa dhe të vlerësojmë se. Atëherë ju keni më pak se operatori, me pak se ose te barabarte me operatorin, më i madh se operatori, i madh se ose e barabartë me operatorin. Pra, një më shumë kontroll mendje e shëndoshë. Po të kisha 7 është më e madhe se ose e barabartë me 3. Çfarë do që të kthehet? Audienca: Vërtetë. JASON Hirschhorn: Vërtetë. Po. Kjo dhomë prapa, anën e pasme e dhomës, fantastik. Ju mund të kombinohen këto Shprehjet në qoftë se ju pëlqen, si edhe, me një logjik dhe i cili është && Ose një logjik OR i cili është || ||. Dhe kështu që tani ju mund ta provoni dy gjëra together-- është kjo qesharake? Pse është kjo qesharake? Pra, nëse kam kërkuar, unë mund të them është 7 madh se 3 dhe 2 është më pak se 4? E pra, në qoftë se 7 është më i madh se 3, kjo është e vërtetë. 2 është më pak se 4, që është e vërtetë. Pra, kjo gjë do të kthehen vërtetë. Nëse unë testuar 7 është më e madhe se 3 and-- Unë jam vetëm picking numra të rastit here-- 4 është më pak se 2, mirë, kjo është e rreme. Aq e vërtetë dhe të bëjë false. Dhe ju mund të shkoni në dhe të ju kombinohen si shumë kushte së bashku si ju dëshironi. A ka dikush ndonjë pyetje, komente, shqetësimet deri tani? Dhe unë shoh disa nga ju të marrë fotografi për mua në ekran, që unë të vlerësojmë. Shpresojmë, kjo nuk është Snapchat. Shpresojmë, kjo është për shënimet tuaja. Por të gjitha këto janë duke shkuar të jetë në dispozicion në internet. Pra, ju nuk keni për të të marrë fotografitë e kësaj. Ashtu si thashë, çdo gjë do të jetë në dispozicion në internet për ju. NE RREGULL. Unë jam gati për të marrë paraskenë, kështu bën askujt dua të them asgjë përpara se të ndodhë? Pyetje? [Ndërhynte ZËRA] JASON Hirschhorn: Oh, të ndaluar. Ju djema jeni shumë e bukur. NE RREGULL. Unë jam duke shkuar për tag jashtë. Shkojme. ANDI Peng: Ne jemi duke shkuar për të bërë një ndryshim i vështirë mic tani. JASON Hirschhorn: Unë jam shkuar për të marrë këtë off. ANDI Peng: Vlerësojmë mbështetjen, djema. Mund te me degjosh? A është kjo e mirë? Përsosur. Bukur. Më lejoni vetëm të fut atë në. NE RREGULL. Pra, unë jam gati për të bërë si një gjigant informacion hale mbi ju djema tani. Dhe nuk shqetësohet çfarëdo nëse ju jeni jo pas çdo linjë të vogël të asaj që Unë jam gati për të treguar ty. Siç Jason thënë, çdo gjë është plotësisht në internet. Vetëm ne jemi duke shkuar për të përpiqen për të futur të gjithë për konceptet e mbuluar në disa nga këto slides. Pra, vetëm të ndjekin së bashku. Nuk shqetësohet nëse ju nuk e kuptoni çdo gjë; Megjithatë, në qoftë se në çdo pikë ju mendoni humbur, të rritur tuaj dore, ne do të ndalet, nuk shqetësohet. Ftohtë. Kështu që unë mendoj diçka që Davidi ka tashmë lloj i përmendur në leksion dhe Jason lloj i ka aluduar sot është ajo që një bibliotekë është. Pra në programimin, ne kemi këto gjëra quajtur bibliotekat. Ku, në thelb, të gjithë ata janë është vetëm një grup i funksioneve, që është në thelb vetëm kodin që është tashmë është shkruar nga dikush tjetër që ne mund të gjithë përdorni brenda programeve tona. Pra, si e bën një normale Puna bibliotekë, e drejtë? Ju të hyjë në derën e bibliotekës. Ju keni të gjitha këto libra ju mund të tërhiqet nga dhe ju mund të hyni informacion brenda këtyre librave. E njëjta gjë në programimin. Ju keni një bibliotekë që ka tashmë ishte shkruar nga njerëzit e tjerë. Dhe mënyra që ju mund të, si programues apo student, mund të kenë akses në këtë bibliotekë është nëpërmjet hashtag # Include. Për shembull, në C ne kanë tre C-- më zakonisht përdoret tre standardit C libraries-- bibliotekën input / output, biblioteka string, dhe biblioteka matematikë. Pra, brenda juaj e parë çift ​​problemi vendos, ata do të jenë tre që ju jeni duke përdorur kryesisht. Pra, si Davidi tashmë shpjegohet në leksion, së Parë standardi / O bibliotekë, ose standarde input / output bibliotekë bën pikërisht këtë. Kjo ju lejon, në kodin tuaj, për të dhëna asgjë nga përdoruesit dhe prodhimit që në ekran, në thelb shtypjen atë në ekran. Dhe kështu që çdo herë që ju përdorni funksione, për shembull printf funksioni () e cila ne jemi duke shkuar për të shkuar mbi rrëshqitje të ardhshëm, sigurohuni që të përfshijë standarde I / O bibliotekë apo tjetër që ju nuk jeni duke shkuar për të jetë në gjendje të përdorin printf () funksion. Sepse ju, si programues në fakt nuk ka shkruar atë funksion, ju jeni vetëm duke përdorur dikë Kodi tjetër brenda kodin tuaj. Ka që e bëjnë kuptim të gjithë? Ftohtë. Dhe pastaj ne thelb merrni onto biblioteka string dhe math.h bibliotekë, .H vetëm nënkupton bibliotekë, biblioteka të tjera që ju do të përfundimisht të jetë duke përdorur brenda kodin tuaj. Megjithatë, për qëllime i kësaj biblioteke, ne gjithashtu have-- i këtij class-- ne gjithashtu kemi atë që quhet bibliotekën CS50, cs50.h, ku ne, për lexim tuaj kanë krijuar shumë funksione të rëndësishme dhe të dobishme. Kështu që ju, si një programues mund të transportim me platformë off atë që ne kemi shkruar tashmë në mënyrë që ky funksion është në dispozicion për ty për përdorimin tuaj. Unë do të mbulojnë një çift të funksionet e përdorur zakonisht, por e di se këto janë të gjithë në internet googleable. Ndjehen të lirë, tërheq lart bibliotekën CS50 dhe atëherë ju keni të gjitha funksionet atje. Po. SPEAKER 5: Pra, nëse ju nuk ishin duke përdorur software që është dhënë për ne nga klasa, bën që të thotë që ne do të duhet për të shkarkuar dhe për të gjetur kjo header paraqesë veten dhe tregoni kompjuteri ku është? ANDI Peng: pyetje e madhe. Pikërisht. Pra, kjo është si në qoftë se ju nuk jeni fizikisht të pranishëm në një biblioteke, nuk ka asnjë mënyrë për ju për të në fakt shkojnë dhe të hyni në atë. Pra, e njëjta gjë me programimit në C, ju duhet të bëni të sigurtë që ju jeni duke përdorur tonë aplikim për shkak se biblioteka është tashmë janë përfshirë në të. Dhe pastaj kur ju hashtag # Include, biblioteka është atje. Po. Pyetje e mirë. Gjithkush mirë? Ftohtë. Në rregull. Pra, ne jemi duke shkuar për të goditur, në thelb, ajo që është funksioni i parë që ne si programuesit janë do të jetë duke përdorur në kodin tonë. Kjo është quajtur printf () Funksioni. Pra, printf () funksion, siç e kam tha se tashmë në rrëshqitje e fundit, është përfshirë në standardin I / O, input standarde / output, bibliotekë. Pra, sigurohuni që çdo gjë që ju jeni using-- oh, më lejoni të rrëmbyer lazer pointer-- sa herë që ju jeni duke përdorur printf () Funksioni, ju duhet të përfshijë standarde I / O bibliotekë ose tjetër, kur përpiloni, ju jeni do të merrni një gabim sepse kompjuteri do të jetë si, oh Unë nuk e di se ku printf () është, ju nuk po më thoni mua ku printf () është. Well printf () është përfshirë në I standarde / O, kështu që kur ju përdorni printf (), sigurohuni që të ketë atë Linja më sipër kodin tuaj. Kështu për shembull, printf () këtu është një funksion. Gjithë kjo nuk është diçka jashtë të shtypura brenda kllapave të përdoruesit. Do dikush të doja të marrë një goditje me thikë në atë këtë linjë të kodit të drejte këtu do të shtypura nga? Prandaj, përgjigja është në ekran. Çdokush? VERDI: Fund. ANDI Peng: Verdi, pse nuk shkoni përpara dhe të thonë të gjithë deklaratën? VERDI: Përshëndetje, emri im është Andi, dhe unë jam 20 vjeç. ANDI Peng: Ah, bukuroshe. Pra, në këtë linjë ne do të shtypura nga, Përshëndetje, emri im është Andi, dhe jam 20 vjeç, i cili është në fakt një deklaratë e vërtetë. Sintaksa. Pra, disa çështje sintaksore që ju djema doni të bëni të sigurtë që ju e dini. Kuotat. Kuotat e dyfishtë tregoni kompjuter se çdo gjë brenda do të jenë të shtypura. Çdo gjë brenda kanaçe vetëm të jetë saktësisht se si ju shkruani atë, me përjashtim të zakonisht në fund, ne jemi duke shkuar për të duan të përfshijnë një hash-- oh sorry-- një n dash. Pra, një dash n. A ka dikush duan të marrin me mend në atë që e bën të kodit tonë? Po. SPEAKER 6: e vë atë në një linjë të re. ANDI Peng: Pikërisht. Pra, e gjithë kjo nuk është të lejojë çfarëdo që të ndodhë pas kësaj, pas kësaj deklarate, të jenë të shtypura në një linjë të re. Kështu që kur ju jeni shkrimin tuaj Kodi ju nuk keni rastësisht gjëra tacked më në fund që ju nuk dëshironi. Se çdo gjë merr mjeshtërisht shtypur një linjë dhe pastaj ne fillojmë në rreshtin vijues. A ka dikush kujtohet se çka pikëpresje bën kur ne jemi kodim? Po. SPEAKER 7: Deklarata. ANDI Peng: Na vjen keq? SPEAKER 7: A përfundojnë deklaratën? ANDI Peng: Po. Pra, në C, ose ndonjë programimi gjuhë, pikëpresje tregon fundin e një linjë të programimit. Kështu për shembull, në anglisht ne përdorim periudhë për të thënë, oh kjo është fundi i një dënimi. Në programimin, të njëjtën gjë, ne kemi një pikëpresje për të treguar fundin e një linjë. Shpesh, kur ju jeni filluar të programit, ju do të kuptojë ju harroni të shtoni një pikëpresje dhe pastaj ju përpiqen për të drejtuar tuaj Kodi dhe ajo nuk punon. Dhe ju jeni si, Ah, unë nuk e bëj e di pse, ajo duhet të punojnë. Shanset janë që ju ndoshta harruar një pikëpresje apo një grupim apo diçka diku. Pra, kjo është e rëndësishme të kujtoni. Ftohtë. Të gjithë të drejtë, shfaqje e duarve, si shumë njerëz këtu kanë ndonjëherë marrë AP Shkenca Kompjuterike ose programuar në Java më parë, ndonjëherë? NE RREGULL. Bukuroshe. Kjo nuk do të jetë i zbatueshëm pastaj, por në Java, ju kanë diçka të quajtur System.out.println cila nuk ekziston në C. Pra në C, kur ju doni të shtoni në variablat në çdo gjë që ju doni për të printuar jashtë, nuk ka një sintaksë të veçantë që ne jemi duke shkuar për të përdorur. Kjo është quajtur placeholding-- në thelb ne shtoni placeholders në vend i numër i plotë ose variablit që ne duam të shtypura. Pra, si ju djema mund të shihni se ne kemi përfshirë një header ri bibliotekë të paraqesë këtu. Biblioteka CS50. Dhe përmbante brenda asaj bibliotekës CS50 është një funksion i përbashkët ne do të jetë duke përdorur në kursin tonë të quajtur GetInt (). Do që dikush të marrë një goditje me thikë në Çfarë GetInt () ndoshta mund të jetë bërë. Audienca: [padëgjueshme] ANDI Peng: Na vjen keq. Nuk mund të dëgjoni ju. Maddie, çdokush. Maddie: Oh, ajo bën ju për një numër të plotë. ANDI Peng: Pikërisht. Pra ky funksion, tjetër funksion që është tashmë ishte shkruar nga dikush tjetër që ne mund të telefononi me tani. Të gjitha ajo është është menjëhershëm ju, përdoruesit, të dhëna çdo gjë që ju doni, si kodin po kandidon dhe ajo ruan whatever-- në këtë rast ne jemi GetInt () - Ing, kështu që do të thotë që ne jemi marrjen e një numër të plotë. Dhe ne jemi duke shkuar për të ruajtur që në një numër të plotë që ne kemi bërë vetëm të quajtur moshë. Që kanë kuptim për të gjithë? Ftohtë. Pra, tani që ne kemi ruajtur këtë numër i plotë, se ne kemi nxitur nga përdoruesit, në këtë variabël, ne kemi krijuar e tipit int quajtur mosha, ne mund të shkoni përpara dhe vendi që në printf tonë () funksion. Pra, sintaksa zakonisht për printf () është se kudo në fizike tuaj aktuale Linja ju dëshironi që të përfshijë këtë numër i plotë, ju bëni atë simbol të drejtë atje, simbol për qind, me lloji i ndryshore që ju dëshironi. Kështu që në këtë rast moshe eshte nje numer. Pra, ju jeni duke shkuar për të përfshirë % i për shkak se është një numër të plotë. Dhe pastaj pas tuaj Deklarata, ju do të jeni për të bërë presje dhe emrin e variablit. Kështu që këtu, ne jemi duke shkuar për të shtypur jashtë, Përshëndetje, emri im është Andi, dhe unë jam vjet bosh të vjetra. Hashta-- ose, sorry--, mosha me çfarëdo input I. Pra, nëse unë do të dhëna 20 për GetInt time () këtu, ajo do të shtypura nga të njëjtën gjë e saktë. Por, nëse kam kërkuar për të dhëna diçka tjetër, si ndoshta 40 ose 45, atëherë ju do të shihni se pasqyrohet në përputhje me rrethanat në kodin. Pra, ky është një shembull për diçka në të cilën ajo printon jashtë dhe duket të ju si në qoftë se është e njëjta gjë, por nën kapuç e kompjuteri ka në fakt gjëra shumë të ndryshme ndodh. Ftohtë. Në rregull. Pra, çfarë nëse ne duam variablave të shumta? Goxha e lehtë. E njejta gje. Ne gjithashtu kemi një funksion të ri këtu i quajtur getString (), gjithashtu përfshihen në bibliotekë CS50, se gjithë kjo nuk është menjëhershëm të përdoruesit për një varg, i cili është vetëm një grup të karaktereve, kështu si një fjali ose si një emër. Pra, në këtë rast, ne do të kemi dy placeholders% s për string dhe% i për numër të plotë. Dhe ne jemi duke shkuar për të ndjekur se nga dy variablave ne duan të përfshira, në mënyrë që ata të paraqiten në fjalinë. Kështu për shembull, emri im është bosh, unë dua një emër atje, kështu që unë jam do të ketë emrin e parë. Dhe pastaj më pas, unë dua mosha, duan të kenë dytë moshës. Dhe kështu që në qoftë se unë të kërkuar për të dhëna, Përshëndetje, emrit tim Andi, dhe unë jam 20 vjeç. Nëse unë futur Andi dhe 20, njëjtën gjë e saktë do të shtypura; megjithatë, tani ne kemi marrë dy të ruajtura Variablat e emrit, si dhe int. Po. SPEAKER 8: A do të jetë gjendje për të kandiduar në qoftë se ju kaloi Emri dhe mosha në fund të kësaj? ANDI Peng: Po. Kjo është pyetje me të vërtetë mirë. Pra histori të gjatë të shkurtër, nuk ka. Sepse emri dhe age-- çfarë lloji i variablit është emri? SPEAKER 8: String. ANDI Peng: Dhe çfarë lloji i variablit është mosha? SPEAKER 8: Integer. ANDI Peng: Pra, këtu ne kemi një placeholder për vargun dhe numër i plotë, e drejtë? Pra, nëse ju do të kaloni këto, kompjuteri nuk do të dinë. Ajo do të shikoni për një varg, dhe në qoftë se ju të përpiqet për të dhënë atë një int, ajo do të jetë si pres unë jam i hutuar, ju më tha se unë duhet të jenë të allotting kujtesës për një int. Dhe pikërisht këtu, kur ajo pret një numër të plotë dhe ju t'i jepte një emër dhe një varg në vend të kësaj, ajo gjithashtu do të jetë shumë konfuze, atë nuk do të kandidojë pikërisht në mënyrë që ju nevojë për të. Kështu që këtu, emërtimin dhe sintaksa është shumë e rëndësishme për drejtimin e kodit. Gjithkush mirë? Po. Maddie. Maddie: Ja, unë e di që ne kemi shikuar në shembujt në klasë, ku ata kërkojnë çfarë është mosha juaj, çfarë është emri juaj. Këtu, do që të jetë ajo doesn't-- në qoftë se ne ishim për të drejtuar këtë kod, kjo nuk do të kërkojë për këtë? Por ju do të vetëm dy numra të dhëna dhe pastaj ajo do të kandidojë si kjo? ANDI Peng: Po, pikërisht. Pra, nëse do të donit që ajo të ekran, ju lutem shkruani moshën tuaj, ju vetëm mund të shtoni një printf () Funksioni që thotë, Ju lutemi shkruani moshën tuaj, mbi të. Kjo është një pyetje e mirë. Po. SPEAKER 9: Pra, tashmë do të jetë të përfshira në GetInt () [e padëgjueshme]. ANDI Peng: Jo, ai në fakt nuk është. Pra, e gjithë kjo nuk është vetëm shkakton një ekran bosh për përdoruesit input diçka. Në qoftë se ju doni atë, në qoftë se ju dëshironi që ajo të shtypura nga diçka që tregon përdoruesit si, ju lutem jepni moshën tuaj, atëherë ju do të duhet të printf () se veten. Sepse të gjithë e përdor këtë Funksioni për gjëra të ndryshme, ju mund të jetë ruajtjen moshë, ju mund të jetë ruajtjen adresa, ju mund të jetë ruajtjen numrat e telefonit. Dhe kështu që është me të vërtetë deri në Përdorime individuale djemtë tuaj ' për atë që ju doni të thoni. Po. SPEAKER 10: Pra, vetëm për të sqaruar, ku bëni ju input emrin dhe moshës në mënyrë që tregon deri në vend të% s? ANDI Peng: Si në përdorues? SPEAKER 10: Po, si si mund ta bëjnë it-- ku nuk kam vënë Andi, dhe ku mund ta vënë 20? ANDI Peng: Po. Pra, nëse ju keni qenë të të vërtetë të drejtuar këtë kod, Unë nuk jam në të vërtetë që drejton kodi, kjo është vetëm këtu tani. Nëse unë do të drejtuar kodin, unë do të përpilojnë kodin, të bëjë fotografi, drejtuar kodin, dhe pastaj nuk do të vetëm të jetë dy hapësira për mua të dhëna atë. Po. Ju djema do të shihni kur ju luani rreth me kodin veten. Të gjithë të drejtë ne jemi duke shkuar për të lëvizur në seksionin tjetër të asaj ne do të mbulojnë sot. Ne jemi duke shkuar për të shkuar mbi çfarë Deklaratat e kushtëzuara janë. Pra, nëse ju djema mbani mend dhe kujtojnë nga leksion, Deklaratat e kushtëzuara, të gjithë ata janë janë një grup e udhëzimeve për kompjuter në e cila në qoftë se një kusht të caktuar është e vërtetë, ju të ekzekutuar kodin brenda atë gjendje. Pra, në thelb Scratch-- temë e madhe nga sot është se ju djema keni tashmë të gjithë shihet logjikën prapa çdo gjëje se ne jemi duke mbuluar. Dhe të gjithë ne jemi duke bërë është përkthimin diçka se ishte shumë intuitive në Zeroja, dhe vështirë coding atë në sintaksë ne do të jetë duke përdorur për klasën cila është C. Pra logjikisht, e gjithë kjo ishte bllok është ajo pjesë e kodit të drejtë atje. Po. NE RREGULL. Ne gjithashtu të marrë në një rast tjetër ... Deklarata e cila është vetëm një shtresë shtuar e kompleksitetit në qoftë se deklarata ku kompjuteri merr një vështrim në këtë dhe e sheh, nëse ky kusht është e vërtetë, të bëjë çfarëdo e brenda këtyre dy kllapa, else-- kështu lloj si default nëse ajo nuk i plotëson condition-- bëjë këtë. Është si një pirun në rrugë. Nëse bie shi jashtë, kam vënë në një xhaketë shi, tjetër gjë tjetër unë nuk e vënë në një xhaketë shi. Bën që logjika kuptim për të gjithë? Ftohtë. Në rregull. Pra, si një shembull të vështirë të kjo se ne do të shohim në C është në qoftë se unë të kërkuar për të krijuar një ndryshore të quajtur orë detyrat e shtëpisë. Dhe në qoftë se orë Detyrat e shtëpisë është më e vogël se pesë, unë them Jeta është e madhe. Është e mrekullueshme. Megjithatë, thonë se Lufta është real-- e cila është ajo që ne të gjithë në këtë hënën pasdite deri Shkenca Hill janë ndoshta duke bërë drejtë now-- Audienca: [Laughing] ANDI Peng: Ata mënyrë ne do, ju falënderoj për këtë. Mënyra se si do të hardcode kjo në C është if-- le të supozojmë ne tashmë kemi një ndryshore të tipit int quajtur orë detyrat e shtëpisë të drejtë këtu. Nëse orë Detyrat e shtëpisë është më pak se pesë printf (), Jeta është e madhe. Mos harroni të mbajtur / n, sepse ju doni një linjë të re pas. Print tjetër, Lufta është e vërtetë. A e kuptojnë të gjithë si I kaloi nga ky bllok në këtë bllok të kodit? Ftohtë. Në rregull. Pra, tani ne jemi duke shkuar për të marrë një sy në Deklaratat e shumta, nëse krejt. Pra, le të supozojmë Qëllimi i këtij programi ishte ne përdorues për një notë të shpejtë. Ne Prompt përdorur GetInt () për një klasën, dhe ata input një vlerë, dhe ju doni të shfaqur çfarë lloji i klasës ata patën. Pra, nëse unë për të hartuar një program, unë do të thotë në mënyrë tipike në të gjithë sytë tanë, 90-100 është Një, 80-90 është një B, dhe kështu me radhë e kështu me radhë. Çfarë është e gabuar me këtë pjesë të kodit që nuk është duke bërë atë që unë dua që ajo të bëjë. Po. SPEAKER 11: Ata kanë kufij më të ulët, por ata nuk kanë kufijve të sipërm. ANDI Peng: Pikërisht. Ka dëgjuar të gjithë se çfarë tha ajo? Nuk do të jetë e sipërme kufijtë, por nuk ka kufij më të ulët. Na vjen keq, mënyra të tjera përreth, Kufijtë më të ulët, nuk ka kufij sipërme. Pra, do të dëshironit të të marrë një goditje me thikë në duke thënë çfarë do të jenë të shtypura në këtë ekran në qoftë se unë do të drejtuar këtë kod. SPEAKER 11: Një gabim? ANDI Peng: Një gabim? Guess i madh, nuk është mjaft e drejtë. A ka dikush tjetër thikë? Po, Aaron. AARON: Nëse keni vënë në më i madh se 90, ajo do të tregojë të gjitha notat ju mori. Kjo do të tregojë se ju mori një A, ju mori një B, ju mori një C. ANDI Peng: Po. Kjo është saktësisht e drejtë. Pra, kjo do të jetë e mrekullueshme. Megjithatë, ato janë reciprokisht ekskluzive, unë mendoj. Nëse unë do të drejtuar këtë pjesë të kodit. Dhe pastaj le të them vetëm, unë futur në klasën e 95. Pra, 95 është ruajtur tani në int quajtur klasën. Dhe kështu C është një gjuhë që shkon deri të lartë në fund, kështu ajo do të gjithmonë drejtuar deri në fund. Kështu ajo do të vijë këtu, lexoni nëse klasën është më e madhe se ose e barabarte me 90, printf () ju mori një A. Madhe, unë kanë një 95, që është më i madh se 90. Ajo do të shtypura, Kam marrë një A. ajo do për të marrë një sy në këtë rast, ajo do thonë se, edhe 95 është edhe më i madh se 80, ajo do të shtypura edhe ju mori një Got një shenjë B thirrje, dhe kështu me radhë e kështu me me radhë. Pra, si ne të gjithë mund të shohim, kjo është një bug të përbashkët që mund të ndodhë kur ne jemi shkruar kodin për të parë jashtë për të. Çdokush, ndonjë pyetje në pse kjo po ndodhte? I madh. NE RREGULL. Deri sa nuk kemi rregulluar këtë, është padyshim pyetja logjike tjetër. E pra, ne kemi këto të bukur gjëra quajtur qoftë tjetër në qoftë se tjetër nëse deklarata tjetër. Kështu që ju mund të shihni, nëse do të donit për të ndryshuar këtë problem, ju kërkuar për të bërë secilin nga Kushtet reciprokisht ekskluzive, ju do të shtojë një tjetër ... nëse deklarata. Dhe këto i course-- mendojnë për to si Shkalle, ose si rungs ana ladder-- ju mund të shtoni sa më shumë nga këto si ti duan për sa më shumë kushte si ju dëshironi. Kështu që këtu, në qoftë se unë futur notë të jetë 95. Nëse nota është më i madh se 95, printf (), kam marrë një A. Madhe. Ajo do të shohim një tjetër ... nëse dhe ajo do të dinë, Oh jo, Unë tashmë ekzekutohet i pari tjetër. Unë vet e dini, ose if-- pari unë e di se Unë nuk duhet të shikojmë në ndonjë nga këto sepse një prej tyre tashmë është e vërtetë. Kështu ajo do të kandidojë nga lart poshtë. Sapo e para është e vërtetë, atëherë ajo do të kaloni mbi gjithë të tjerëve e tjetër ... IFS. A ka kjo kuptim? Pra, në këtë mënyrë ju keni nivele të ndryshme të kontrollit dhe sa më shpejt që njëri prej tyre është false, Pjesa tjetër janë gjithashtu, ata nuk do të shikoni. Ftohtë. Në rregull. Pra, ky është një shembull i një tjetër lloj i deklaratës së kushtëzuar ne shohim më shpesh, por ne do të shohim ato dhe përdorimin e tyre. Dhe ata janë shpesh më shumë efikas për raste të caktuara. Pra, ne kemi atë që quhet një deklaratë switch. Pra, para se të mbuluar atë që është një tjetër Deklarata, një në qoftë se ... tjetër deklaratë. Këtu, ne kemi çfarë janë quajtur kaloni deklaratat. Pra, kur të bëjmë ne përdorim kaloni Deklaratat është çelësi? Pra, në një deklaratë të kaloni, ju zakonisht, në mënyrë tipike, në të vërtetë ju vetëm mund të integers input për tuaj variabël që ju jeni duke kontrolluar. Pra, nëse kam kërkuar për të kontrolluar për të parë në qoftë se një number-- të caktuar për shembull një notë, në qoftë se kam marrë një 90. Unë dua atë për të parë nëse kjo është një A, B, apo C. unë mund të ketë një rast këtu. Megjithatë, rasti ka të jetë një tjetër konstante. Pra, në këtë kuptim, kaloni deklaratë mund vetëm kontrolloni për barazinë e dy numrave. Ajo nuk kontrolloni për ndonjë gjë tjetër. Pra, kjo është diçka që të jetë shumë kujdesshëm të kur ju jeni duke përdorur këtë. Kështu që këtu, në qoftë se unë të kërkuar për të kontrolluar për të parë në qoftë se im klasën e 90 është e barabartë me 90 ose 80 ose 70 ose 60, dhe pastaj të shtypura klasën përkatëse, Unë do të jetë në gjendje të shkruani se në një deklaratë të kaloni. Kështu ajo do të vijë këtu, kontrolloni është ky numer I barabarte me këtë konstante? Nëse jo, ajo do të kaloni. A është e barabartë me konstante dy, dhe kështu me radhë e kështu me radhë, derisa ju goditi default, në qoftë se asnjëri prej tyre nuk janë të barabartë. Sa më shpejt si një prej tyre është vendosur të jetë e barabartë, ajo do të bëjë këtë linjë e kodit dhe pushim. Që do të thotë ajo do të goditur atë drejtuar, pushim, dhe vetëm plotësisht kaloni në pjesën e poshtme të kodit. Pra, në këtë kuptim lloj i funksioneve si një rast tjetër në qoftë tjetër në qoftë se deklarata. Kështu që këtu është një konkret shembull për ju djema. Pra, le të supozojmë se unë të kërkuar për krijojë një ndryshore të quajtur Viti i themelimit. Dhe unë dua të menjëhershëm të përdoruesit për të dhëna viti që shkolla e tyre u themelua. Kështu që unë mund të krijojë një deklaratë të kaloni këtu. Dhe le të them vetëm, unë input 1636. Ky kod këtu do të shohim kaloni Viti i themelimit cila është e barabartë me 1636. Ajo do të shohim çështjen 1636, oh ata janë të barabartë, printf () nuk duhet të jetë në atë shkollë deri në veri? Sepse ne mendojmë se ata nuk e bëjnë shkojnë këtu në qoftë se ata të shkojnë në Harvard, të thyer dhe të kaloni në fund. Nëse unë do të input 1701, e cila Unë supozoj të gjithë ne do të dhëna, ajo do të kaloni këtë rast, eja poshtë në rastin e dytë që është 1701, dhe të shtypura Mirë se vini në Yale! Pushim, të kaloni në fund. Tjetër ju ndoshta jeni duke marrë këtë kurs në internet në të cilën case-- tmerrshëm mirëpritur për Yale-- ajo do të shkojë të print parazgjedhur, Përshëndetje internet! Dhe pushim. Po. SPEAKER 12: Mund të përdorni tjetër në vend të parazgjedhur atje? ANDI Peng: Jo, sepse mënyrë që ky funksion i tërë kaloni është ndërtuar, sintaksa ju duhet të përdorni është rasti rast default. Është si në qoftë se tjetër në qoftë se, kjo një është rast rast default. Po. SPEAKER 13: Ju ndoshta tashmë e ka thënë këtë, por mund të ketë më shumë se dy raste? ANDI Peng: Po, ju mund të ketë sa më shumë raste si ju dëshironi. Mendoni se si ashtu si pafundësisht duke shtuar në. SPEAKER 14: Në qoftë se ju kaloi 1701 me vitin 1636, ajo nuk ka të vërtetë të bëjë një e drejtë ndryshim? Është vetëm do të jenë të kontrolluar për të. ANDI Peng: Kjo është një pyetje me të vërtetë mirë. Dhe ne do të prekim këtë më vonë, por vetëm e di se është kaloni Deklarata është infinitely-- është më efikas se ai dhe nëse tjetër në qoftë se për shkak se ajo vepron duke përdorur një lloj të ndryshme të funksionit që ju lejon, në thelb, për të vetëm hidhen drejt e në rast ju duhet të jetë në. Po. SPEAKER 14: Best. Faleminderit. ANDI Peng: Po SPEAKER 14: Dhe ju nuk mund të të bëjë raste si dhe më e madhe se. ANDI Peng: Jo. Pra, kjo është ajo që është e kufizuar në lidhje me kaloni deklaratë është që ju keni të ketë konstanta vetëm, vetëm integers. Po. NE RREGULL. Pra, kjo është diçka që ju djema do të ndeshen më shpesh e, por unë vetëm të kërkuar për të futur atë në rast. Ne kemi këtu se çfarë është quajtur një operator tresh. Ku në thelb, kjo është vetëm si një nëse deklarata e hartuar në një linjë. Këtu, unë do të shkoj në vijën e ardhshëm, faqja tjetër, sepse është më e lehtë për të parë. Pra, ne kemi parë të gjithë këtë të drejtë? Kjo është shumë e lehtë për t'u ndjekur. Në qoftë se unë të kërkuar për të bërë një ndryshore të quajtur string quajtur s, në qoftë se një numër i caktuar Unë jap ajo është më pak se 100, unë doni të caktojë ulët në vargun, tjetër unë dua të caktojë të lartë. Kjo këtu është duke bërë të njëjtën gjë e saktë këto tetë rreshta të kodit janë duke bërë. Kështu që këtu unë dua të krijoj një varg variabël. Dhe kjo është kushti unë jam kontrolluar, nëse një numër është më pak se 100, atëherë ju caktojë vlerën e ulët, tjetër të caktojë vlerën e lartë. Këto slides do të jetë online, nuk shqetësohet në qoftë se ju djema nuk e merrni këtë poshtë. Kjo është vetëm një mënyrë e thjeshtë, një më shumë mënyrë efikase të kodit të shkruar. NE RREGULL. Pra, tani ne jemi duke shkuar për të hyjë në atë, për shumicën e njerëzve janë si një shumë, shumë konfuze gjë për të menduar për në fillim. Seksioni loop. Pra sot, ne jemi duke shkuar për të folur rreth tre lloje të sythe. Ne jemi duke shkuar për të filluar me një kohë loop, pastaj flasim për një për ta bërë, ndërsa loop, dhe pastaj të flasim për për sythe. Pra, në thelb, për më shumë nxënësit vizuale atje, ne kemi, në thelb, një grafik përshkrim i asaj që bën një lak, ndërsa. Pra, në një programimit, ju do të filloni dhe të hyjë në lak në një pikë të caktuar. Ju shikoni një kusht. Dhe në qoftë se gjendja është e vërtetë, ju të ekzekutuar kodin brenda. Dhe ju kthehen përreth dhe ju kontrolloni. Nëse kjo është ende e vërtetë se ju mbani drejtimin ky kod përreth dhe rreth në një lak. Megjithatë, e dyta që gjendja bëhet i rremë, ju jeni duke shkuar për të thyer dhe në fund lak. Dhe kjo është në thelb sintaksë që ju jeni do të përdorin. Ndërsa një kusht të caktuar është e vërtetë e bëjnë këtë, nëse kjo nuk është e vërtetë, ju jeni do të kaloni në fund dhe për të shkuar përpara me programin tuaj. NE RREGULL. A ka dikush një shembull në atë që potencialisht mund të ndodhë në qoftë se unë të përpiqet për të drejtuar këtë pjesë të kodit? Nga rruga, SAJ-- kjo është Scaz, Andi, Jason-- ne do të nënshkruajnë email tona, Dashuri, SAJ. Kjo na është. NE RREGULL. Çdokush kanë një shembull, ose kanë një ide se çfarë kjo do të shtypura? Lloj i një pyetje mashtrim. Kështu që këtu, mos harroni gjendjen ne jemi të kontrolluar për të është, ndërsa e vërtetë. Kështu, ndërsa kjo është e vërtetë, kjo është do të shtypura, I love SAJ-it! A ka ndonjë pikë në të cilën ne do të më ndryshojë këtë për ndonjë gjë ndryshe? Jo, e drejtë? Kështu që këtu, ne kemi hasur çfarë është ndoshta do të përgjimi shumë programet tuaja, lak pafund. Ju do të gjeni se në qoftë se ju drejtuar këtë pjesë të kodit, ajo është vetëm do të mbajë shtypjen, unë dua SAJ-it! Ndërsa ne vlerësojmë mbështetjen, ne nuk duam kompjuterat tuaj të rrëzuar, sepse ju mbajtur shtypjen dua SAJ-it! Pra ju lutem, ju lutem, shmangur lak pafund sepse ajo kurrë nuk do për të vlerësuar në false dhe ju kurrë nuk do të jeni për të lënë lak. Dhe ju jeni duke shkuar për të të thithur në përgjithmonë. Ftohtë. NE RREGULL. Lloji i dytë i lak ne do të flasim për sot është bërë, ndërsa loop, bëni ndërsa lak. Dhe kjo është quajtur një për ta bërë, ndërsa loop sepse ju keni një për ta bërë dhe një kohë. Pra, kjo është shumë e ngjashme me një kohë lak, por pak më ndryshe. Këtu, ju jeni duke shkuar për të bërë çfarëdo e brenda kësaj ndërsa një kusht të caktuar është e vërtetë. Pra, nëse unë ishim C dhe kompjuter unë jam drejtimin poshtë këtë pjesë të kodit, Kam marrë një vështrim në krye. Unë shkoj në C, unë them ta bëj këtë gjë. Dhe atëherë unë kontrolloj, ndërsa kjo është e vërtetë, unë kam për të përsëritur atë. Por ndërsa kjo është e rreme, atëherë unë të ecur përpara dhe unë kurrë nuk kthehem në atë lak përsëri. Mund dikush të marrë një goditje me thikë në çfarë ndryshimi në mes të këtij lak dhe një ne vetëm shikoi ishte praktikisht. Po. SPEAKER 15: Kusht vjen pas në vend të parë? ANDI Peng: Pikërisht. Pra, ajo tha se gjendja vjen pas, nuk para. Në fund të fundit, diferenca mes kësaj dhe lak ndërsa është se ju jeni vetëm duke shkuar për të bërë çfarëdo që është brenda kjo pavarësisht nga nëse janë apo jo gjendja juaj është vërtetë, dhe pastaj kontrolloni gjendjen. Pra, në këtë rast, ju jeni always-- në këtë mënyrë, ju jeni gjithmonë duke u siguruar çfarëdo që është brenda shkon të paktën një herë para se të kontrolluar për të parë në qoftë se ju dëshironi që ajo të kandidojë përsëri. Dhe këtu është një shembull e kur ne do të përdorin atë. Kështu për shembull, nëse kam kërkuar që të ketë një variabël të tipit int emrin mosha, dhe unë dua për të nxitur përdoruesi për moshën e tyre, Unë jam duke shkuar për të bërë printf () Çfarë është mosha juaj? mosha = GetInt (), e cila është bërë përdoruesit. Dhe disa njerëz do të jetë me të vërtetë i bezdisshëm. Dhe ju nuk doni mete në tuaj Programi i dikujt inputting si, oh unë jam negativ 4 vjeç apo çfarëdo. Në të cilin rast, nëse ata bëni këtë, kjo vlerëson të vërtetë, që do të thotë se unë jam duke shkuar për duhet të mbajë prapa dhe duke bërë këtë. Pra, kjo do të mbajë ri-bërë përdoruesit për të ju jap si një e vërtetë Numri mosha dhe kjo është do të mbajë prapa dhe redoing kjo derisa ata t'ju japin një moshë të vërtetë më të madhe se një, ose jo zero. Pra lënë të kuptohet, aluzion. Kjo do të jetë shumë, shumë i dobishëm për një nga problemet tuaja pset. Po. SPEAKER 16: Uh, sorry. ANDI Peng: Po. SPEAKER 16: A ka, nuk për të qenë një asshole, but-- ANDI Peng: Nuk shqetësohet. SPEAKER 16: --are atje rregulla të ndryshme këtu, apo nuk ju vetëm të harrojmë për të vënë citat? ANDI Peng: Oh Yeah. Na vjen keq, kjo është plotësisht e keqe e mia. Kjo ishte padyshim menduar të jetë një citat. Kapur mirë. Se nuk do të kishte kandiduar. NE RREGULL. Pra, lloji i fundit i lak ne do të flasim për dhe, në fund të fundit, lloji nga më të Kompleksi është për lak. Mos u shqetësoni nëse ju nuk e bëni e di se çfarë do të thotë. Është mjaft konfuz në fillim. Ne do të shkoj për një shembull. E gjithë kjo ndodh në një për lak është se ju keni tre deklarata se ju jeni duke shkuar për të përfshirë. Pra, për një gjë të caktuar, ju jeni do të nisja një ndryshore. Ju do të jeni për të shtuar kushtin për që ky lak do të mbajë drejtimin. Dhe pastaj, në fund të loop, ju jeni duke shkuar për të rinovuar atë. Ju mund update ndryshueshme që ju doni të mbani gjurmët e. Pra, ne zakonisht përdorin për sythe për kur ne duan për të drejtuar një lak për një sasi të caktuar të kohës dhe ne tashmë e dimë, Oh unë dua kjo lak për të ekzekutuar si 10 herë, atëherë ju do-- unë do të shkoj për një shembull në faqen tjetër. Kështu që këtu për shembull, në Scratch, në qoftë se ju kërkuar diçka për të përsëritur 10 herë, të gjithë ju kishte për të thënë ishte, Përsëriteni 10 herë dua SAJ-it! i cili është një shumë të pranueshme shfaqje e mbështetjes për ne sesa lak të pafund. Këtu, si ju do të Tranzicioni në C dhe shkruani që është për int-- unë jam duke shkuar për të krijuar ose të deklarojë një ndryshore të tipit int quajtur i. Unë do të nisja ajo me 0, në mënyrë që i = 0; dhe kjo do të jetë gjendja ime. Pra unë është më pak se 10. Dhe pastaj në end-- deklarata e fundit që ju jeni do të ketë është përditësimi i çfarë ndodh me i ndryshueshme ne fund te juaj per lak. Pra, kjo është lloj i konfuze, sepse pjesë të ndryshme të kësaj linje janë duke ndodhur në të ndryshme Llojet e lak. Por unë do të shkoj për një shembull pseudokod e që dhe ndoshta shpjegojnë këtë vetëm pak më mirë. Kështu që këtu. Kjo është lak ne vetëm e pa. Në thelb në pseudokod, çfarë po ndodh në këtë program, është parë që unë jam duke krijuar Unë, fillimin atë në 0. Unë jam duke kontrolluar për të parë nëse i është më pak se 10, në të cilin rast hera e parë që është për shkak 0 është më pak se 10. Kështu lak do të kandidojë. Dhe atëherë unë jam duke shkuar për të shtypur këtë linjë. Dhe pastaj në fund të kësaj linje, e drejtë këtu, unë jam duke shkuar për të bërë rritje të unë, unë ++, të gjitha që do të thotë është bën rritjen atë nga një. Kështu që unë tani është 1. Për shkak se ajo ishte një herë 0, në qoftë se unë ardhura është, kjo është tani 1. Dhe atëherë unë jam duke shkuar për të shkuar mbrapa në fillim të lak dhe unë të kontrolluar gjendjen. Është kushti ende e vërtetë? Po, 1 është ende më pak se 10. Kështu ajo do të shtypura këtë përsëri, shkoni dhe pastaj Rritja unë, dhe shikoni gjendja vazhdimisht, vazhdimisht, deri sa ju të merrni përfundimisht në pikën ku i është 10. Ju jeni duke shkuar për të shtypur këtë 10 herë dhe pastaj unë do të barabartë 10. Ju do të jeni për të kontrolluar gjendjen. Është 10 më pak se 10? Jo, kjo është e rreme. Pra, kjo lak nuk do për të drejtuar, ajo do të thyer, dhe ju do të jeni vazhdojë me kodin tuaj. Pra, si ju djema mund ta shikoni, kjo është një shembull i vërtetë e madhe e një lak ju mund të programit në atë shkon për një sasi të caktuar të kohës. Çdo njëri i qartë? Po. SPEAKER 17: Si në lidhje rritjes në mënyrë eksponenciale, është ajo coding ndryshe? ANDI Peng: Ju can-- ne do të shkojnë mbi këtë në rrëshqitje ardhshëm. Pyetje e mirë. Është anyone-- para se unë të lëvizur on-- dikush fare të hutuar, sepse ky është një koncept me të vërtetë të vështira. Nuk shqetësohet, nëse you're-- OK. Ftohtë. Në rregull. Vetëm një rrëshqitje përgjithësi. Kjo loop ndërsa është duke bërë njëjtën gjë e saktë për lak ishte. Është vetëm e shkruar ndryshe. Ju djema mund të lexoj slides në lehtësinë tuaj më vonë. Por vetëm e di se nuk ka të shumta mënyrat e shkrimit të njëjtën gjë të ndodhë me sythe të ndryshme. NE RREGULL. Pra, tani ne kemi marrë në pyetjen se çfarë në qoftë se ne kemi një lak brenda një lak. Ne jemi duke marrë në të vërtetë Sende fillimi lloj këtu. Kur ju doni të bëni gjëra të shumta herë brenda e gjëra të tjera që bëjnë gjëra shumë herë, ju dua atë që quhet një mbivendosur për lak. Për ata prej jush që për herë të parë e shohin këtë dhe merrni hutuar shumë, të gjithë ne jemi duke bërë këtu është të paturit e një për lak ku ne kemi një ndryshore të rresht. Por në brendësi të saj, ne gjithashtu kemi një tjetër për lak e një kolonë të ndryshueshme të quajtur. Dhe I highly sugjeroj të gjithë ju të cilët janë të hutuar për të parë të mbajtur track-- nxjerrë këtë, barazim këtë. Mos u mundoni për të vetëm arsye nëpërmjet saj, tërheqë atë. Në kokën tuaj, në këtë pjesë të letër, ose çfarëdo, rresht shkruaj, mbajnë gjurmët e asaj që është e barabartë me rresht. Shkruaj kolonë, ndiek nga ajo kolonë është e barabartë me. Dhe mbajnë gjurmët e asaj që është shtypjen me çdo përsëritje. Çdo përsëritje e këtij loop, çdo përsëritje e atij lak më të madhe, vetëm i mbajnë duke ndjekur logjikën. Dhe unë ju garantoj, ju do të duan atë që ju shihni, sepse kjo është gjithashtu shumë të zbatueshme për grupe tuaj problemit. Ftohtë. Në rregull. Pra, gjëja më e rëndësishme se ju djema janë ndoshta të gjithë duke menduar për tani, Problem janë vendosur tuaj 1s, të cilat janë për shkak e enjte / e premte. Në programin tuaj water.c, aluzion ju jeni do të ketë të menjëhershëm të përdoruesit për një input. Në kuadër të programit tuaj mario.c ju jeni do të ketë të përdorë mbivendosur për lak, i cili është një për lak brenda një për lak, për të shtypur një bllok të piramidës, në thelb si çfarë Mario ka të kërcejnë përmes. Dhe pastaj brenda tuaj greedy-- ose ndoshta Marrja e Ndryshimi, në qoftë se ndonjë nga ju djema kanë dëgjuar ndonjëherë that-- ju jeni do të duhet të jenë shumë kujdesshëm i vlerave të parë lundrues pikë. Mos harroni numra dhjetorë lundrues dhe integers nuk janë e njëjta gjë. Mbani gjurmët e të cilit është që një. Dhe ju jeni do të përdorin Deklaratat e kushtëzuara, po ashtu. Të gjithë të drejtë, gjëja e fundit. Unë kam marrë disa minuta majtë. Stil. Pra, kjo është diçka që nuk ka në fakt ndikojnë në efikasitetin, ose drejtimin aktual i kodit tuaj. Megjithatë, ajo na Efektet si klasën tuaj, si lexuesit tuaj. Ajo ndikon veten, në qoftë se ju jeni duke u përpjekur për të gjetur një problem. Ajo ndikon leximin e kodit tuaj. Pra stil, si kur jeni duke u përpjekur për të stil një ese për anglisht, në qoftë se ju nuk kanë paragrafët, ju keni gjithçka lloj e jumbled së bashku në një rresht, atë e bën atë të vërtetë e vështirë për të gjithë për të lexuar ese tuaj, edhe në qoftë se pikat tuaja janë logjikisht të shëndoshë. E njëjta gjë në programimin. Ju mund të keni tmerrshëm errët Kodi cila Scaz do të mbulojë, dhe ajo ende mund të kandidojë dhe të funksionojë. Por për ne, si TAS tuaj të bukur, të cilët do të të lexojnë dhe vlerësimin PSets tuaja, që nuk është shumë e bukur. Pra ju lutem, për hir nga ne dhe veten tuaj, kur jeni duke u përpjekur për të rregulluar një problem në kodin tuaj, dhe ju jeni duke u përpjekur për të lexoni kodin tuaj, të bëjë sigurohuni që ju ndiqni disa konventat se ne jemi duke shkuar për të shkuar mbi. Pra, për herë të parë. Jepni ndryshoret emra kuptimplotë. Nëse ju doni për të ruajtur një numër të plotë quajtur mosha, ju lutem emër moshën. Mos atë emër lartësi. Kur ju jeni duke u përpjekur për të ruajtur një moshë në lartësi, kjo e bën gjithçka shumë konfuze për ne. Ne nuk na pëlqen të jenë të hutuar. Ju nuk kanë dëshirë të jenë të hutuar. Askush nuk i pëlqen të jetë i hutuar. Nëse ju jeni duke shkuar për të krijuar diçka, të emërojë atë diçka kuptimplotë. Megjithatë, në lak, të vetme Variablat karakter janë zakonisht gjobë. Dhe në për lak, në qoftë se ju doni vetëm unë, dhe j, k, të ndjehen të lirë për të bërë vetëm atë. Initialization qëndrueshme. Pra, çfarë do të thotë kjo? Kjo do të thotë teknikisht, teorikisht, ju mund të fillojë dhe të krijojnë variabla të shumta në të njëjtën linjë. Kështu për shembull, unë mund të krijojë një numër i plotë i quajtur scaz_age, dhe numër i plotë i quajtur andi_age = 20, dhe nje numer i plote i quajtur jason_age në të njëjtën linjë. Dhe unë gjithashtu mund të caktojë vetëm një nga ata dhe jo të tjerët të vlerave. Ne ju kërkojmë ju lutem mos bëjnë atë. Sepse këtu ju keni krijuar në thelb tre variabla, por vetëm një prej tyre aktualisht ka një vlerë. Dhe atëherë kur ne jemi duke u përpjekur për të lexuar kodin tuaj, ose në qoftë se jeni duke u përpjekur për të rregulluar një problem në kodin tuaj, është shumë konfuz për të ndjekur. Pra, vetëm për lexueshmëri tuaj, për lexueshmëri ynë, nuk e bëjmë atë. Formatimin e teksteve kaçurrel konsistente. Disa njerëz si për të vënë tyre formatimin e teksteve kaçurrel në vende të ndryshme. Kjo nuk ka rëndësi. Vetëm sigurohuni që ju jeni konsistent në tuaj Kodi vet se ku ju dëshironi për të vënë ato. Ndarje në përputhje. Nëse ju vendosni një hapësirë ​​pas një për lak, gjithmonë të bëjë atë. A jo vetëm si lloj i të bëjë atë në disa vende, nuk e bëjmë atë në të tjerët. Vetëm të jenë në përputhje. Së dyti, në qoftë se dikush do të donte të lexoj CS50 Style Guide, ne kemi zyrtarisht një udhëzues stil që ju të gjithë e këtyre konventave thotë: plus më shumë. Është në internet. Është si cs50.net/style~~pobj ose diçka të tillë. Ju mund të google atë. Konsistenca është çelësi. Pra, mos u shqetësoni se çfarë njerëzit e tjerë janë duke bërë, vetëm sigurohuni që ju jeni në përputhje në kodin tuaj. Çdokush keni ndonjë pyetje në lidhje me këtë? Po. SPEAKER 18: Pra, gjëja e duhur të bëjë me initialization është vetëm kanë të gjithë ata në një të veçantë line, është se çfarë ju jeni duke thënë? ANDI Peng: Pra, unë rrallë e kam këtë të ndodhë. Por në qoftë se ju të kërkuar për të, nëse do të donit të jetë si kursyer hapësirë ​​në kodin tuaj, apo çfarëdo, ju mund ta bëni këtë. Ne kërkojmë që ju thjesht nuk nisja një gjë dhe jo të tjerët. Pra, nëse ju doni të bëni int scaz_age, int andi_age, int jason_age, kjo është në rregull. Vetëm mos nisja një dhe jo të tjerët është e gjitha. Pyetje? Në rregull. Unë jam duke shkuar për të kaluar jashtë mikrofon, dhe akrep lazer, dhe baton te Scaz në këtë pikë. Kjo është e vështirë. Ja ku eshte. Brian SCASSELLATI: Ju faleminderit. Si e që për të shëndosha? Sound është e mirë? . Shkëlqyer. NE RREGULL. Pra, hi të gjithë. Unë do të përpiqet për të punuar me një shembull praktik me ty. Dhe ne jemi duke shkuar për të përdorur CS50-së mjedis të zhvillimit, atë që quhet Integruar Zhvillimi Mjedisit. Dhe e keni parë këtë demonstruar në leksion. Dhe në problemit Set 1, ju jeni do të ketë një mundësi të përdorin atë, dhe të luajnë rreth me ajo, dhe për të marrë mësuar me të, sepse ne jemi duke shkuar për të përdorin atë me pjesën tjetër të semestrit. Pra, në këtë IDE, ju keni çfarë duket si një shfletues shumë tradicionale fotografi gjatë në njërën anë. Ju keni marrë një pjesë deri lartë ku ju jeni duke shkuar të shihni kodin tuaj burim, tuaj Cfile, kodi që ju shkruani. Dhe poshtë në fund, ju do të kanë një dritare terminali të cilën ju do të jetë duke përdorur të dy hartojnë programin tuaj dhe për të kandiduar ose të ekzekutuar programin tuaj. NE RREGULL. Pra, vetëm për të na dhënë një grimë të vogël e themeli, në atë dritaren e terminalit, ju jeni do të jetë duke përdorur një sërë komandave që janë komandat standarde të gjithë shumica e Unix apo Linux sistemet. Dhe kështu që nëse ju keni përdorur ndonjëherë çdo formë e Unix, Ubuntu, apo ndonjë nga shije të tjera, këto do të duken të njohur. Nëse ju nuk e keni, mos u bëni merak. Nuk ka asgjë të komplikuar rreth tyre. Ata janë vetëm duke përdorur një tjetër sintaksë, një emërtimin ndryshme Konventa se ju kam parë më parë. Pra, në listën nga fotografi brenda një directory të veçantë, ata do të përdorin një komandë quajtur LS, apo lista. Në qoftë se ju doni të shihni gjithçka me të gjitha detajet, ju do të përdorni një komandë Linja Argumenti me ls -l. Dhe kjo do t'ju tregoj gjithçka në mënyrë më të detajuar, duke përfshirë lejet për një fotografi. Për të ndryshuar directory, ju do të përdorni komandën cd. Dhe ju do të jetë në gjendje të ndryshojë directory qoftë për të shkuar në directory tuaj të origjinës. Kjo është vetëm cd gjitha nga vetë, cd me dy pika do të ju kthehet deri një Niveli në directory tuaj të mëparshëm. Dhe ju gjithashtu mund të cd në një subdirectory nga shtypja në CD dhe emri i atij subdirectory. Ju gjithashtu mund të krijoni directories të reja. Dhe ne jemi duke shkuar për të ecur nëpër këtë në vetëm një minutë. Por vetëm për të vënë çdo gjë në ekran. Kështu që ju mund të shihni ato. Ju gjithashtu do të keni mundësinë për të manipuluar fotografi direkt nga vija e komandës. Ju do të jenë në gjendje të kopje e tyre, për të ata lëvizin, ose për të hequr ato, që është, në mënyrë efektive, për të fshini ato. CS50 IDE ju jep të plotë Fuqia e argumente command line. Dhe kjo do të thotë që ju mund të bëjë gjëra shumë të rrezikshme. NE RREGULL. Për shembull, ju mund të hequr, apo se është i fshini, një skedar pa pyetur për një konfirmim. Dhe ju mund edhe të hiqni recursively-- kjo është r dash flag-- një të tërë subdirectory dhe gjithë përmbajtjen e saj. NE RREGULL. Ata janë të shënuara me të kuqe, sepse ti duhet të mendojnë "RREZIK" çdo kohë ju shohin ato. NE RREGULL. Në rregull. Tani më në fund, gjërat që janë do të jetë me të vërtetë të vlefshme për ju, janë atje janë disa truket të mira të dinë se si ju jeni të lundrimit përmes këtij dritaren e terminalit. Së pari, ju mund të qartë në ekran në çdo kohë nga vetëm shtypni në të qartë. Dhe ju jeni duke shkuar për të parë bëj që mjaft shpesh. Ju gjithashtu mund të shfaqin vetëm teksti i një fotografi nga shtypja më shumë dhe pastaj emrin e file. Ju pastaj do të jetë në gjendje të lëvizni prapa dhe radhë me që vetëm me spacebar dhe shigjetë çelësat. Nëse keni, siç bëmë sot në leksion, një program që është i rrjedhshëm në mënyrë të vazhdueshme në lak të pafund, ju mund të ndalojë atë program nga ekzekutimin nga shtypja në kontroll, që është mbajtur Kontrollit-C. Dhe ju mund të keni për të bërë këtë herë të shumta. Kompjuteri merr shumë më përpara prej jush. Dhe ju ndonjëherë duhet të t'i jepte një çift të përpiqet para se ai në fakt do të vijnë përmes. Ju gjithashtu do të jetë në gjendje të lloj me anë të komandave që ju të shtypur vetëm duke përdorur deri kyç, shigjetë kyç, dhe pastaj butonin down arrow. Dhe çfarë është më e dobishme është në vend i shtypur jashtë gjatë emrat e file, ju do keni të drejtë të përdorimit të Tab plotësojë automatikisht një udhëzime pak. Tani ne jemi duke shkuar për të treguar të gjithë ata që janë në vetëm një të dytë. Pra, nëse ju nuk e mbani mend tyre, mos u shqetësoni. Këto janë gjëra që ju do të marr dhe të përdorin si të shkojmë së bashku. NE RREGULL. Pra, në C-- ndryshe në Scratch-- C është një gjuhë e hartuar. Kjo do të thotë që ne jemi duke shkuar për të marrë një burim file-- kjo është teksti që ju shkruani, komandat që ju shkruani, printf () deklarata, sythe, gjithçka else-- dhe ne jemi duke shkuar për të marrë këtë dosje dhe dorëzojë atë në një program të quajtur përpilues. Përpiluesit pastaj do të marrë që teksti që e keni shkruar dhe përkthyer atë në udhëzimet binare se kompjuteri juaj është i vërtetë do përdorimit. Kjo është quajtur objekt ose skedarin ekzekutues. Nëse ju shikoni në këtë fotografi, ju jeni duke shkuar për të parë kodin që keni shkruar. Nëse ju shikoni në këtë fotografi, ju jeni duke shkuar për të parë një sekuencë të rastit të karaktereve që të kishte asnjë kuptim whatsoever. Kjo për shkak se kjo është binar. Kjo nuk është menduar për ju për të lexuar. Megjithatë, çdo herë që duan të drejtuar diçka, çfarë ju jeni duke shkuar të konkurrojnë është kjo skedë objekt. Pra, kur ne kemi punuar me këto fotografi, ne do të shkruaj një fotografi në C. Ne pastaj do të përpiloj atë, duke përdorur një komanda si make cili do të kërkoj tingëllimë përpilues për gjuhën C. Dhe kjo do të prodhojë një objekt paraqesë, si jashtë, apo në këtë rast, emri, fotografi tim, që unë kam vënë në. Në rregull. Pra, le të vërtetë të provoni këtë. Kështu që unë doli me një shembull nga ajo që kam kërkuar për të provoni. Dhe një nga gjërat që magjeps mua është animacion. Pra, ne jemi duke shkuar për të përpiqet të bëjë pak e animacion duke përdorur vetëm karaktere ASCII. Figurë ne mund të shtypura jashtë lehtë tani. Kështu që këtu është përpjekje tim më të mirë të krijojë për ju animacion i një lepur kalon nëpër bari i gjatë. Ja ku eshte. NE RREGULL. Pra, ai nuk është drejtimin, por ai është duke qëndruar atje në bar i gjatë. Por në qoftë se unë ishin një animator, në shkollën e vjetër version i animacion, ajo që unë do të bëni është të unë do të prodhojë një foto e kësaj lepur në bar. Dhe atëherë unë do të prodhojë tjetër picture-- tjetër atë që e quajti cell-- se kishte lepur lëvizur vetëm pak. Dhe pastaj një i tretë që kishte lepur shkoi pak më tej. Dhe unë do të prodhojë një të tërë Sekuenca e këtyre qelizave. Disa ku lepur është e gjatë në anën e majtë. Dhe pastaj lëviz ngadalë, një nga një drejt mes. Dhe pastaj nga mesi mbi të drejtën. Dhe në qoftë se unë ishin atëherë, me të vërtetë me fat, unë mund të vënë atë së bashku dhe unë mund të animate ato. Dhe nuk ka lepur ime kalon nëpër bar. Kjo është e madhe PowerPoint trick për ditë. NE RREGULL. Pra, kjo është aq i mirë sa ajo merr. NE RREGULL. Pra, këtu një herë më shumë, këtu është tonë lepur kalon nëpër bar. SPEAKER 19: Again. Brian SCASSELLATI: Një më shumë kohë, të gjithë të drejtë. Ka lepur tuaj. NE RREGULL. Pra, sot, ajo që ne jemi duke shkuar të bëni është që ne jemi duke shkuar në përpjekje për të Automate procesin për prodhimin e këtyre qelizave. Ne nuk do të mjaft të merrni deri në pikën e duke qenë në gjendje për të vënë të gjithë së bashku. Por, ne jemi duke shkuar për të përpiqen për të Automate Procesi i gjeneruar këtë rend. Dhe kjo është shumë e çfarë animacion sot është si. Kjo është, ju nuk e bëni gjëra domosdo duke tërhequr çdo gjë me dorë. Ne përdorim një kompjuter për të Automate pjesë e atij procesi. NE RREGULL. Pra më lejoni të kaloni mbi tani për të IDE tonë CS50. Dhe unë kam krijuar për us-- dhe le të mua zoom në këtu një bit-- pak qe kam krijuar për ne një pikënisje. Sa herë që ne ju kërkojmë të ulem poshtë dhe shkruani një pjesë të kodit, ajo që ne jemi me të vërtetë duke kërkuar që ju të bëni po ne jemi duke kërkuar për të zgjidhur një problem. Dhe mënyra që ju duhet mendojnë për të bërë atë është duke filluar me disa pjesë e thjeshtë e kësaj zgjidhjeje. Dhe pastaj të ndërtuar nga ajo pjesë. Dhe kjo është ajo që ne jemi duke shkuar për të bërë sot. Pra, në vend se duke u përpjekur për të gjithë në të njëjtën kohë të shkruaj tërë bandë e kodit që është do të prodhojë ato 10 qeliza animacion, ne jemi duke shkuar për të filluar në vend me një copë që punon. Dhe pastaj ne do të ndërtojmë një pak rreth se dhe pak më shumë dhe pak më shumë. Tani gjë e mirë në lidhje me zgjidhjen e problemeve në këtë mënyrë është se ai do t'ju lejojë të fillojë gjithmonë me diçka që ju e dini punon dhe të futur një ndryshim gradual. Dhe kjo është një mënyrë e madhe për të mësuar se si të kodit, sepse çdo herë që bëni një ndryshim, ju shihni se çfarë ndikimi që ka. NE RREGULL. Kështu që këtu është pika jonë e nisjes. NE RREGULL. Pra, në fillim të dosjes sime, Unë kam stdio.h hash #included. Kjo është kështu që unë mund të merrni printf () Funksioni për të punuar. Unë atëherë kam funksionin tim kryesor. Dhe kjo ende duket pak Misterioze ose të errët për disa prej jush. Eshte ne rregull. Të gjitha ajo thotë është se funksioni kryesor merr do të thotë nuk ka argumente të pavlefshme asgjë në C. Dhe kjo Kthimet nga konvente një numër të plotë. Kryesor gjithmonë kthehet një numër të plotë, zakonisht një kod thënë gjëra shkoi mirë ose nuk shkojnë mirë. NE RREGULL. Por kryesor duhet të ketë se formuar për ne tani. Unë e kam vënë pastaj në tre rreshta të kodit. Dhe së bashku me çdo linjë të Kodi, unë kam vënë një koment. Tani një nga gjërat që ne do të insistojmë që ju bëni, dhe kjo është e tillë një i rëndësishëm praktikë programimit, është që gjithmonë të komentuar kodin tuaj. Gjithmonë shkruani në një Shqip koment diçka se ju mendoni se Kodi është menduar për të bërë. Në këtë mënyrë, më vonë, kur ju ardhur përsëri për ajo, ju mund të shikoni në atë dhe ju mund të thoni, oh, unë mbani mend se çfarë unë kam qenë duke u përpjekur të bëjë me këtë. Ose kur një AT ulet me ju për të përpiqemi për t'ju ndihmuar në orarit të punës, ata mund të shikoni në këtë dhe të shkojnë, unë shikoni se çfarë ju ishin duke u përpjekur për të bërë, por në vend kjo është çfarë është me të vërtetë ndodh. NE RREGULL. Kështu që unë kam marrë tri pjesë në kodin tim, Unë jam duke shkuar për të parë të gjitha shtypura nga disa pika në fillim. Unë pastaj do të shtypura nga tim lepur jashtëzakonisht dashuroj. Dhe pastaj disa pak nga pika në fund. Dhe këta tre deklarata të shtypura duhet duken të njohura për ju në këtë pikë. Të gjitha që unë jam duke bërë në secili prej tyre është që unë jam shtypjen nga një sekuencë e karaktere. Nuk ka variablave të përfshira. Çdo gjë është vetëm e sheshtë. NE RREGULL. Pra, nëse unë të zbres në terminal-- tim le të shohim nëse unë mund të merrni këtë përsëri out-- dhe unë jam duke shkuar për të tipit të qartë përsëri. SPEAKER 20: A kemi përdorim slash dyfishtë për të komentuar? Brian SCASSELLATI: Can përdorin Po double--. Ka mënyra të shumta për të lënë komente në C. Një mënyrë është që të përdorin plagë të dyfishtë. Tjetra është që të përdorin një plagë dhe një yll dhe pastaj të mbyllë me një yll dhe një plagë. Në rregull. Para së gjithash, unë jam duke shkuar për filloni lundrimit rreth këtu. Pra, nëse unë shkoj në directory time në shtëpi, Unë kam ndryshuar directories atje, Unë jam duke shkuar për të parë dhe të shohim se çfarë është në këtë directory, ls, lista jashtë. Unë do të shihni se unë kam mori dy subdirectories. Le të bëjnë këtë një pak më e madhe këtu kështu që ne të gjithë mund ta shohin atë. Unë mund të shoh se unë kam mori dy subdirectories. Unë do të ndryshojë directory për të shkuar në hapësirë ​​pune. Dhe unë jam duke shkuar vetëm për të tipit jashtë pjesë e saj, dhe pastaj vetëm goditi Tab. Dhe kjo do të përfundojë pjesën tjetër për mua. Dashuroj. Unë do të shikoni dhe të shohim në hapësirë ​​pune. Dhe tani, unë jam duke punuar në SuperSection që ne jemi mësuar tani. Kështu që unë do të shkoj në atë directory. Dhe së fundi, shikoni dhe të shohim. Dhe unë kam marrë këtë dosje bunny.c. Të gjithë të drejtë kështu që më lejoni të qartë edhe një herë. Dhe unë jam duke shkuar për now-- përsëri unë jam ende duke qëndruar në atë directory dhe kjo është thënë mua unë jam në se drejtori SuperSection. Unë jam duke shkuar për të shkuar përpara dhe bëjnë lepur programin tim. Dhe kjo komandë, bëjnë lepur, ndërsa fryrë pak e çuditshme, gjithashtu thirret përpilues tingëllimë. Dhe është prodhuar për mua një prodhim që është i një funny-- një ekzekutueshme skedë të ekzekutueshme quajtur lepur. NE RREGULL. Unë pastaj mund të, dhe kjo tingëllon edhe më keq, të ekzekutuar lepur. NE RREGULL. Dhe le të shohim se çfarë ajo bën. NE RREGULL. Kjo është pak e ajo që unë isha duke pritur. Unë kam marrë foton time lepur në atje, por unë lloj i kërkuar të gjitha nga vetë. Çfarë I miss? SPEAKER 21: Slash l ose çaj n. Brian SCASSELLATI: Slash n. NE RREGULL. Pra, le të kthehemi këtu. Dhe unë do të merrni nga kjo. Dhe unë do të shkoj përsëri në këtë një të tillë. Dhe le të marrin një vështrim tani nga funksioni im kryesor këtu. Pra, çfarë duhet të bëj? Unë dua t'i dhënë fund linjë. Kështu që unë do të vënë në një koment. Unë do të vë në një printf (). Dhe çfarë kam për të vënë në? / n. NE RREGULL. Çfarë duhet për t'i dhënë fund atë me? Pikëpresje. Në rregull. Tani, një nga më të vërtetë gjërat e rëndësishme është të siguroheni çdo herë që bëni një ndryshim në kodin tuaj, që ju ruani atë. Nëse ju nuk e keni ruajtur kodin tuaj, ju jeni do të vini re një yll të vogël deri atje. Dhe se ylli ju thotë nuk e keni ruajtur këtë kod. Nëse unë përpiloj atë të drejtë tani, kjo nuk është duke shkuar për të reflektuar ndonjë nga këto ndryshime, sepse përpilues shikon në dosjen kjo është në disk, jo file që është hapet në editor tuaj. Në rregull. Pra, le të shpëtuar atë dhe pastaj ne do të shkojnë drejtë mbi poshtë këtu, kthehen jashtë. Të zbresë në terminalin time. Dhe le të pastruar hapësirën përsëri. Dhe ne mund të shkoni përpara dhe një më shumë Ora bëjë programin tonë lepur. Dhe ekzekutuar lepur. Që nuk punojnë as. Plagë gabuar. Pra, nëse ju shikoni në atë që unë kam marrë, kam vënë një / n në atje, por kam pasur plagë të gabuar. Çdo gjë që kompjuteri juaj nuk është shumë i qartë. NE RREGULL? Një gabim i vogël i shenjave të pikësimit, dhe papritmas ju nuk e merrni atë që ju dëshironi. Në rregull. Pra, le të zoom mbrapa përsëri. Ne do të kthehemi. Edhe të bëjë që riparim shumë të shpejtë. Ne do të vënë plagë të drejtë në. Ne do të shpëtuar atë. Ne do të zoom përsëri në. Për disa arsye, që nuk është të qenit i lumtur, por le të shkojë përpara dhe ne do të kthehemi në terminalin këtu. Qartë atë. Ne do të zmadhuar. Dhe një herë më shumë, ne do të të bëjë lepur. Dhe tani pa dyshim, ajo punon. Hooray. NE RREGULL. Pra, le të përpiqemi për të bërë këtë pak më të përgjithshme. Le të shohim nëse në vend të vetëm shtypjen një kornizë të veçantë, le të shohim nëse ne mund të bëjë këtë kështu që ne mund të merrni të gjitha 10 e këtyre kornizave animuar që kemi dashur të kemi. Pra, përsëri, le të marrin kjo një hap në një kohë. Le të parë të përgjithësuar atë, nuk kështu që unë bëj të gjitha kornizat, por kështu që unë bëj çdo një kornizë që unë mund të dëshironi. Pra, çfarë është dallimi midis kornizave? Është lepur i njëjtë? Audienca: Po. Brian SCASSELLATI: Po. Çfarë është dallimi? Audienca: Pozita. Brian SCASSELLATI: Pozita e saj, e drejtë? Dhe si mund ta kontrollojnë pozicionin e saj? Sa dots unë jam duke vënë në fillim dhe sa dots unë jam vënien në fund. Kështu që unë kam pesë në nivel fillimi dhe pesë në fund. Le të zëvendësojë atë me pesë një për lak. NE RREGULL. Dhe unë jam duke shkuar për të krijuar një për loop tani që do të thotë, Unë jam duke shkuar për të shkruar disa numrin e dots në fillim. Unë jam duke shkuar për të përdorur një ndryshore. Le të themi, si për sa i counter në lak tim. Dhe unë jam duke shkuar për të deklaruar atë të lartë. Dhe pastaj në për lak Unë duhet të bëj tre gjëra. Gjëja e parë që duhet të bëni është që unë duhet të nisja i. Çfarë duhet të nisja që ajo të fillojë të jetë? 0. NE RREGULL. Atëherë unë duhet të them, çfarë është gjendja përfundimi? Kur duhet të ndalet? E pra sa dots bëni ju doni të shtypura në këtë? Audienca: Pesë. Brian SCASSELLATI: Pesë përsëri? Si në lidhje me le të bëjë diçka ndryshe, ne e bëmë pesë. Le të tregojmë se kjo është e ndryshme. SPEAKER 22: Dy. Brian SCASSELLATI: Dy. NE RREGULL. Pra, nëse unë dua dy pika, çfarë duhet të kam vënë këtu? Audienca: Tre. Brian SCASSELLATI: Tre. NE RREGULL. Sa herë është se do të kalojnë nëpër? Kjo do të kalojnë nëpër tre herë, 0, 1 dhe 2, drejtë? Të gjithë të drejtë, le të kthehemi poshtë për të dy. Tani ne do të merrni dy pika. Dhe çfarë unë dua të bëj çdo herë që unë shkoj nëpër lak? Çfarë duhet të ndryshojë çdo herë që unë shkoj nëpër? SPEAKER 23: Shto një dot. Brian SCASSELLATI: Unë kam për të mbajtur vazhdim e sipër. Unë jam duke shkuar për të shtuar një njollë. Unë jam duke shkuar për të shkruar një njollë, çdo herë përmes lak. Por si jam unë mbajtja e sa shumë herë unë kam qenë përmes lak? Unë jam duke përdorur unë, që ndryshueshme, se kundër. Pra, çdo herë me anë të, unë jam duke shkuar të ardhura counter nga një. Tani, kjo është e njëjtë për mua si duke thënë se unë = i + 1. Eshte ne rregull. Unë mund të bëjë atë that-- Më pëlqen stenografi, kështu që unë jam duke shkuar për të thonë se unë ++. NE RREGULL. Le të bëjmë të njëjtën gjë këtu poshtë në pjesën e poshtme. Vetëm unë lloj i bëri atë një të tillë. Unë do të le ju djema bëjnë këtë një plotësisht. Në rregull. Pra, çfarë duhet të shkruaj këtu? Ja mia për lak. Unë jam duke shkuar për të bërë një printf (), dhe unë jam duke shkuar për ta bërë atë në mënyrë që unë të shtypura vetëm një pikë në atë fund. Çfarë duhet unë të shkruaj brenda këtë për lak tani? E pra, para së gjithash çfarë variabla duhet të përdor? SPEAKER 24: j. Brian SCASSELLATI: unë mund të përdorni j. A mund ta përdor të njëjtën një? A mund të përdor unë përsëri? Po. Kjo është në rregull, sepse është që unë jam duke përdorur deri këtu, Unë nuk kanë nevojë për ato përsëri kur Unë shkoj poshtë në këtë pikë. Pra, çfarë duhet të nisja unë për të? SPEAKER 25: 10. Brian SCASSELLATI: 0. Çfarë duhet të kontrolloni unë? Sa shumë pika nuk kam nevojë tani në fund në qoftë se unë kam marrë dy pika në fillim? Unë kam nevojë për tetë në fund, kështu që çfarë duhet të kontrolloni, unë më pak than-- Audienca: Shtatë, tetë, nëntë. Brian SCASSELLATI: Kam dëgjuar shtatë. Kam dëgjuar tetë. Dhe dëgjova nëntë. NE RREGULL. Pra, ne jemi të gjithë në të djathtë ball-- Jason thotë 10. NE RREGULL. Në qoftë se unë e nevojshme dy pika për e para, sa të bëjë I-- dhe kam nevojë për tetë pika për e fundit one-- kam vënë një dy lart, çfarë duhet të kam vënë poshtë? Audienca: Tetë. Brian SCASSELLATI: Tetë. Sepse kjo do të numërimin zero deri në shtatë. Dhe kjo është tetë herë përmes lak. NE RREGULL. Dhe çfarë duhet të bëj në fund? AUDIENCA: i ++. Brian SCASSELLATI: i ++. Në rregull. Kështu që është në kërkim mjaft të mirë atje. Le të provoni atë dhe le të shohim se çfarë ajo bën. NE RREGULL. Pra, ne jemi duke shkuar për të shpëtuar atë. E bukur dhe shpëtoi. Ne do të zoom nga mbrapa. Ne do të përpiqemi këtu në terminalin. Ne do të zmadhuar. Oops. Ne do të, një herë më shumë, bëjnë programin tonë lepur. Dhe të shkojnë përpara dhe të ekzekutojë lepur. Dhe nuk është. Pra, ka lepur ynë. Ku ajo ka dy pika në fillim dhe tetë pika në fund. Gjithkush akoma me mua? NE RREGULL. Pra, kemi ndërtuar atë. Ne kemi ndërtuar një lepur, një kornizë të veçantë. Tani ne kemi qenë në gjendje të përgjithësoj se për të ndërtuar më shumë, lloje të ndryshme të kornizave. Tani le të shkojnë përpara, dhe kanë ajo të gjenerojë jo vetëm një kornizë, por le të gjenerojë 10 korniza, ku ne ngadalë bëjnë lepur të lëvizë të gjithë mënyra në të gjithë fushën. Në rregull. Le të kthehemi. Dhe ne do të përpiqemi tani. Pra, çfarë unë me të vërtetë nevojë për të ndryshuar këtu? Çfarë duhet të ndryshojë? SPEAKER 26: Ju së pari duhet të të ndryshojë numrin e maksimum dots ne fillim. Sepse në qoftë se ne jemi duke bërë 10 pika, ajo do të duhet për të deri në shkallë. Brian SCASSELLATI: Po. Deri tani unë kam atë lloj Hardwired për të gjithmonë të bëjë dy pika në fillim dhe gjithmonë të bëjë tetë pika në fund. Unë dua të ndërtuar një lak, e drejtë? Sepse unë nuk dua të të ndërtuar vetëm një foto lepur, Unë dua të ndërtuar 10 fotografi lepur. Kështu që kam nevojë për të ndërtuar një lak, dhe si unë shkoj nëpër atë lak, Unë dua për të ndryshuar sa dots I shtypura në fillim dhe sa pika të shtypura në fund, bazë të të cilave cikli nëpër lak Une jam ne. Në rregull. Pra, le të marrë një tjetër kundër. Dikush ka thënë më parë j: kështu që ne do të bëjë një tjetër j. Dhe tani, ne jemi duke shkuar për të ndërtoj një tjetër për lak. Çfarë shkon brenda atij lak? Kjo stuff ka për të shkuar brenda lak, e drejtë? A ka lepur për të shkuar brenda lak? A kam nevojë për një lepur në secili prej këtyre 10 korniza? Audienca: Uh-huh. Brian SCASSELLATI: Po. Unë dua një lepur në çdo nga 10 korniza, e drejtë? Si për dots në në fund, nuk kam nevojë për atë? NE RREGULL. Kështu që unë jam duke shkuar për të porosis të gjithë ata. Unë jam duke shkuar për të nxjerrë në pah të gjitha këtë, dhe unë jam duke shkuar për të goditur Tab. Dhe kjo do të shtyjë ata të gjithë pak, kështu që është e lehtë për mua për të parë se çfarë është në lak. Dhe atëherë unë do të përfundojë atë. Le të themi. NE RREGULL? Tani, në këtë lak që Unë jam building-- Uh, bëjnë që kështu që ju mund see-- Unë kam marrë time kundër j. Unë do të filluar atë në 0. Sa herë që unë dua të kalojnë nëpër këtë lak? Audienca: 10 herë. Brian SCASSELLATI: 10 herë. Pra, çfarë numri duhet të kam vënë këtu? Audienca: 9, 10. Brian SCASSELLATI: 9, 10, dikush e mori për të të thënë 11, apo jo? Doja dy pika para dhe vënë unë më pak se 2. Doja tetë pika, I vënë kam më pak se 8. Tani unë dua të shkoj nëpër 10 herë, kështu që kam vënë j pak than-- Audienca: 10. Brian SCASSELLATI: 10. Atje shkojmë. Dhe çfarë të bëj në fund të j? ++, Rrisim atë. NE RREGULL. Tani, këtu është pjesë e ndërlikuar, çfarë është do të ndodhë tani në qoftë se unë bëj këtë? Jam unë do të shtypura 10 korniza? SPEAKER 27: Mendoj ata të gjithë do të jenë të njëjta. Brian SCASSELLATI: ata do të të gjithë të jenë të njëjta, e drejtë? Sepse të gjithë prej tyre janë ende duke shkuar për të vënë dy pika në fillim. Por unë nuk dua të gjithë ata për kanë dy pika fillimi. Sa shumë pika të bëjë unë duan në fillim? Audienca: Ndryshimi. Brian SCASSELLATI: I duan që ajo të ndryshojë, e drejtë? Pra, çfarë kam këtu se po ndryshon çdo herë lak shkon përmes? Audienca: Numri i dots, j. Brian SCASSELLATI: j, numri i dots. Kështu që unë mund të ndryshojë kjo të jetë j. Hera e parë përmes loop, çfarë po që do të jetë? Çfarë kam vendosur J për të në fillim? Audienca: 0. Brian SCASSELLATI: Pra, sa herë jam unë do të bëj këtë? 0. Herën e dytë përmes lak, j-së do të jetë 1, sepse unë ardhura atë. Sa pika jam unë do të shtypura? 1. Herën e tretë përmes lak, Sa pika jam unë do të shtypura? Audienca: Tre. Brian SCASSELLATI: j do të jetë 3. Sa pika jam unë do të shtypura? Oh, më vjen keq, j do të jetë 2. Sa pika jam unë do të shtypura? Audienca: 2. Brian SCASSELLATI: 2. OK, kështu që unë jam duke shkuar për të mbajtur bën rritjen se si të shkojmë së bashku. Si në lidhje me poshtë? Çfarë shkon poshtë këtu? Unë nuk dua 8 gjithmonë në fund më? SPEAKER 28: 10. Brian SCASSELLATI: Dua 10 pika? Unë dua që ajo të ndryshojë, too. Pra, si mund unë dua që ajo të ndryshojë? Audienca: [padëgjueshme]. Brian SCASSELLATI: E pra, në qoftë se unë kanë pesë pika në fillim, Sa dot-së mund të shkoj në fund? Audienca: Pesë. Brian SCASSELLATI: Nëse unë kam gjashtë pika në fillim, Sa mund ta merrni në fund? Audienca: Katër. Brian SCASSELLATI: Nëse unë kam shtatë pika në fillim, Sa mund ta merrni në fund? Audienca: Tre. Brian SCASSELLATI: Nëse unë kam mori pika j në fillim, Sa mund ta merrni në fund? 10-j. NE RREGULL. Pra, le të përpiqemi që jashtë. Kështu që unë jam duke shkuar për të ruajtur programin tonë lepur. Edhe një herë ne do të zoom jashtë. Ne do të zbresin në terminalin tonë. Ne do të qartë atë. Dhe zoom in. Ne do të bëjë programin tonë lepur, përsëri. Dhe ne do të ekzekutuar atë. Uh-oh. Hold on, le të zoom out. Nuk kam marrë 10 korniza? E pra, si shumë bunnies bëj unë shoh atje lart? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. I kam 10 korniza. A janë ata të gjithë të njëjtën gjë? Audienca: Po. Jo. Brian SCASSELLATI: Jo. Se një së pari, lepur është larg në të majtë. Dhe këtu, lepur është tani në SPEAKER 29: E drejta. Brian SCASSELLATI: Pra, çfarë kam harroni të bëni? SPEAKER 30: Fillo një linjë të re. Brian SCASSELLATI: Harrova për të filluar një linjë të re, përsëri. Njëjtin gabim kam bërë më parë. Të gjithë të drejtë, le të shkojmë të rregullojmë se. Tani, unë kam ende mori kodin në atje për të bërë një linjë të re. Pse nuk e bëri atë punë? SPEAKER 31: Kjo nuk është brenda lak. Brian SCASSELLATI: Oh, kjo nuk është brenda lak. Kjo është e drejtë. Është ulur jashtë këtu. Dhe për lak është gjithçka kjo është brenda këtij teksti. Kështu që unë jam duke shkuar për të lëvizur kjo brenda për lak. Dhe unë do të Tab në frontin e tij në tregojnë se kjo është në vendin e duhur. Dhe tani, ne do të shpëtuar atë përsëri. Ne do të zoom jashtë. Ne do të kaloni mbi terminalin tonë. Zmadhuar. Ne do xhirim programin tonë lepur. Dhe tani, tani ne kemi marrë 10 korniza tona. [Duartrokitje] Brian SCASSELLATI: OK. Kështu që. Këtu është mbivendosur ynë për sythe. Ne ishim në gjendje të gjenerojnë në lak i brendshëm sa dots kam kërkuar për të shtypur ne fillim, në fund. Dhe lak e jashtme të kontrolluar Sa korniza unë u ndërtuar. Ne kemi filluar me një të vogël thelbi i problemit, dhe ne kemi ndërtuar jashtë nga kjo pikë. Në rregull. Le të bëjmë një hap më shumë. Jeni gati? Ka një gjë në këtu ku ne kemi në fakt lloj i mori më shumë kompleksitet se ne kemi nevojë. Le të marrin një vështrim. Pra, në programin tonë lepur, në qoftë se unë zoom këtu, Unë në fakt të bëjë disa të njëjtë gjë mbi dhe mbi përsëri. Çfarë të bëj që është lloj i e njëjta gjë përsëritet dy herë? SPEAKER 32: Printo pika. Brian SCASSELLATI: Po Unë të shtypura ato pika dy herë. Me të vërtetë, unë duhet të ketë ky koment këtu poshtë. Unë të shtypura disa pika në nivel filluar, të drejtë deri këtu. Dhe pastaj unë të shtypura disa pika në fund. Dhe unë bëj lloj pikërisht të njëjtën gjë. Ajo që ne jemi duke shkuar për të filluar duke punuar në në javët e ardhshme është në gjendje për të marrë ato blloqet e Kodi që ne përdorim pa pushim, dhe përmes një procesi quajtur abstraksion, ne jemi duke shkuar për të tërhequr ato dhe shkruaj ato një herë në mënyrë që ne mund të pastaj ripërdorimin e tyre mbi dhe mbi përsëri. Pra, le të përpiqemi që. Gati? Ne jemi duke shkuar për të marrë këtë bllok i kodit. Dhe unë jam duke shkuar për të marrë atë nga atje. Dhe unë jam duke shkuar për define-- poshtë në pjesën e poshtme, Unë jam duke shkuar për të shkruar një funksion të ri. Kjo nuk do të kthehen asgjë. Dhe unë jam duke shkuar për të thirrur atë printDots. Ajo do të marrë një të tillë argumenti, një numër i plotë që thotë howManyDots unë duhet të shtypura. Dhe tani në vend të shtypjes pika j, unë do shtypura them howManyDots unë duhet të shtypura. Dhe nuk ka një problem të vogël këtu. Çdokush e di se çfarë është ajo? Çfarë kam që është shënuar këtu që nuk është përcaktuar? Audienca: [padëgjueshme] Brian SCASSELLATI: E pra si shumë pika është përcaktuar të drejtë deri këtu, por unë jam duke përdorur këtë variabël i. Kështu që unë jam duke shkuar për të marrë atë variabël i dhe unë jam duke shkuar për të përcaktuar atë në këtu në vend. Kështu që tani ajo do të stay-- Oops, u kyçjen e shkronjave në somehow-- unë jam do të mbajë unë poshtë në këtu. Deri tani këtu është funksioni im i vogël ose nën-rutinë, dhe ajo thotë: Sa pika jam unë do të shtypura? Dhe kjo do të kalojnë nëpër këtë lak dhe printoni ato mbi dhe mbi përsëri. Unë pastaj mund të modifikoj programin tim këtu. Dhe çfarë unë e quaj atë funksion? printDots. Kështu që unë do të thërrasë printDots. Sa shumë pika bëj unë dua të shtypura hera e parë para lepur? Audienca: j. Brian SCASSELLATI: j. Sa shumë pika bëj unë dua të shtypura në fund, pas lepur? 10-j. Dhe ka një gjë që unë jam i humbur. Siç e patë në leksion sot, ne jemi duke shkuar për të deklaruar printDots lart për të dhënë prototip. NE RREGULL. Pra, ajo që unë kam bërë është që unë kam provuar për izolojnë atë pjesë ripërdoren të kodit që unë kam bërë pa pushim. Dhe unë e kam provuar për të tërhequr atë jashtë në mënyrë që të gjithë që përmbahet në një vend. Në këtë mënyrë, në qoftë se unë kam një gabim diku, Unë vetëm duhet për të rregulluar atë në një vend. Në rregull. Pra, le të shpëtojë atë. Dhe le të sigurohemi se punon. Pra, le të shkojnë jashtë. Ne do të shkojnë përsëri në terminalin tonë. Ne do të zmadhuar. Ne do të bëjë këtë proces lepur. Oh. Dhe kjo më ka dhënë një paralajmërim. Çfarë është kjo thënë mua? Edhe në ndonjë nga këto herë, ju gjithmonë doni të lëviz deri në error-- e parë tani në këtë, unë kam marrë vetëm një të tillë. Ajo tregon mua në bunny.c, on line 8, 9 kolona, ​​ka një problem. Ajo thotë se, ju keni deklaruar këtë Unë ndryshueshme dhe ju nuk e kanë përdorur atë. Tani normalisht, kjo është jo gabim keqja. Kjo është një e lehtë për të rregulluar. Dhe në fakt, ne mund të shkoni përsëri në. Ne mund të shkoni përsëri në lepur. Dhe në këtë rast, të gjithë ne duhet të bëni është të hequr qafe i, sepse ne nuk jeni duke përdorur Unë brenda kryesor më. Ne jemi vetëm duke e përdorur atë brenda nën-rutinë tonë. Pra, le të shpëtojë atë. Ne do të kthehemi. Dhe zoom in. Ne do të edhe një herë të bëjë lepur. Dhe ka përsëri 10 korniza tona. NE RREGULL. Çdo herë që ju jeni duke i dhënë një procedure-- Po. SPEAKER 33: Unë kam a-- unë jam i hutuar. Ju mund të shkoni përsëri në kodin? Brian SCASSELLATI: Po. SPEAKER 33: Pra, kur ju ka shkruajtur prototip juaj, argumenti ju kishte ajo quajtur quhej howMany? Por, below-- Brian SCASSELLATI: Oh yeah. SPEAKER 33: --called atyre diçka të ndryshme, unë nuk e kuptoj. Brian SCASSELLATI: Përse ata janë të ndryshëm. Pra, kjo është një pyetje e madhe. Pra, pyetja është, deri këtu, kam shkruar howMany, dhe poshtë, kam shkruar howManyDots. Arsyeja është se deri në prototip tuaj, është e vërtetë jo duke i kushtuar vëmendje për emrat që ju jeni vënë në. Të gjithë me të vërtetë kujdeset për është se ajo është një numër të plotë. Ai dëshiron të dijë formën e asaj që ju jeni vënë në. Tani stylistically-- oops-- atë që unë duhet bëni, është që unë doja të bëjë këto ndeshje. NE RREGULL. Sepse kjo do të mbajë atë më e lehtë për mua për të kujtuar. Por kjo ishte gabimi im Po. SPEAKER 34: Dhe kështu për prototip për të punuar, vetëm shkruar atë vijë, shkrim prototip, lejon këtë funksion që vjen të drejtën poshtë atë për të shkuar deri në fund dhe rifitoj çka do të thotë? Brian SCASSELLATI: Çfarë do të thotë është kur përpilues shkon përmes, shkon nga maja Kodi tuaj në fund. Dhe çfarë kjo është prototip, është është në thelb një premtim. Ajo thotë se, nuk do të jetë një funksion të përcaktuar diku. Ajo do të jetë quajtur printDots. Dhe ajo do të marrë një argument që do të jetë një numër të plotë dhe ajo do të kthehet asgjë, lloji i pavlefshëm. NE RREGULL. Unë ju premtoj se do të jetë përcaktuar diku poshtë rrugës. Por çdo herë që sheh që, si ju shkoni poshtë me pjesën tjetër të tim Funksioni kryesor, unë dua të trajtuar se si një funksion që merr një input integer. Dhe kështu kur përpilues shkon poshtë me anë të kësaj, ajo e sheh atë premtim. Dhe, kur ajo merr poshtë, mban sipër, mban sipër, ajo gjen për herë të parë printDots është përmendur. Dhe ai thotë: Oh, ju jeni duke i dhënë mua kjo j. j është një numër të plotë. E pra ju më premtoi se do të të jetë një numër të plotë dhe kjo është e drejtë. Eshte ne rregull. Dhe pastaj në fund, poshtë në fund shumë, para se të shkoj në fund të tim file, kam bërë mirë në premtimin tim dhe unë të përcaktuar atë. NE RREGULL? SPEAKER 35: Pra, ajo saves-- Programi do të shpëtojë hapësira bosh se ajo shkon prapa dhe mbush në fund? Brian SCASSELLATI: Kjo nuk është në lidhje me ndarjen e kujtesës. Kjo është në fakt vetëm për atë lloji jeni duke pritur për të parë. Nëse kjo gjë të ketë një argument, ose pesë argumentet? Duhet të ketë ajo numra të plotë të jetë e jepet, ose vargjet? Kjo është e gjitha ajo është në kërkim për të bërë është për të kontrolluar, jeni duke i dhënë mua lloj drejtën e argumentit. NE RREGULL? Në rregull. Më lejoni të ju lënë me një grimë tjetër për të parë. ASCII art nuk është model i madh e animacion siç është sot. Por disa njerëz natyrisht marrin gjërat dhe ata e shtyjnë atë në ekstreme e tyre. Kjo është, si David demonstruar në leksion, një pjesë e kodit që ju duhet në asnjë rrethanë përpiqen për të kopjuar veten. Për shkak se ajo është e tmerrshme stilistikisht. Në fakt, ajo është projektuar të jetë si e vështirë sa të jetë e mundur për të lexuar. NE RREGULL. Pra, për të bërë përsëri, le të zmadhuar këtu. Unë jam duke shkuar për të shkuar tani, directory ndryshim. Unë jam duke shkuar për të shkuar deri një nivel, përsëri në hapësira e punës time. Unë pastaj do të ndryshojë në këtë directory Lista të tjera që unë kam krijuar. Dhe kjo është Ndërkombëtare Turbullohet Programim C Contest. Mjetet turbullohet si e vështirë të jetë e mundur për të kuptuar. Pra ju lutem, mos i frikësuar në qoftë se ju shikoni në këtë dhe shkoj, unë nuk mund të lexojnë atë. Kjo është pika e saj. NE RREGULL? Por, ne kemi këtë program i mrekullueshëm që unë jam do të shikojmë në vetëm duke shtypur më shumë. Dhe le të shohim nëse unë mund të zoom jashtë vetëm pak, kështu që ju mund të shihni atë Dhe ky është programi. Është quajtur endo.c. Dhe kjo duket si ky kovë me lloj i letrave F-L-U-I-D në të. Kjo është në fakt një program. Është e shkruar në më të errët Mënyra se autorët ndoshta mund të shkruajnë atë. Por kjo është një pjesë e mrekullueshme pak se gjeneron një model të dinamikën e fluideve. Dhe kështu që ne jemi duke shkuar për të dhënë se modeli i një input që duket si kjo, e një staired vendosur të kontejnerëve me disa lëngun, disa likuid, në majë. Dhe ne do të kemi atë simulojnë çfarë po ndodh me të. Kështu që unë do të thërrasë atë funksion, endo. Dhe unë do të jap atë që input skedar që unë kam pasur. Dhe nuk është mishërim jonë e artit ASCII. Një imitues i plotë fluide dinamik drejtimin në vetëm disa rreshta të kodit. Tani se çfarë është në të vërtetë me të vërtetë mahnitshme në lidhje me këtë program të vogël është se unë dua të ndaluar atë tani, kështu që unë jam duke shkuar për të përdorin atë që komandën? Audienca: Kontrolli-C. Brian SCASSELLATI: Kontrolli-C. NE RREGULL. Kështu që unë do të përdorin kontrollin-C. C Kjo do të ndaluar atë. Unë do të qartë përsëri. Dhe tani unë jam duke shkuar për të thirrur program, të ekzekutuar programin, duke përdorur veten si input. Dhe ne do të shohim dinamikën fluide simulimi i saj shkrirjes. NE RREGULL. Ju lutem, mos e le atë program të jetë gjë që ju ngatërron. Është vetëm në mënyrë që ne mund të përfundojnë në diçka të ftohtë dhe interesante. NE RREGULL. Best of luck me grupe tuaj problemit. Ne do të jenë të lumtur për t'iu përgjigjur Pyetje pas klasës. Faleminderit shumë, djema.