DAVID J. MALAN: Þannig að þetta er CS50. Og þetta var eigin CS50 er Colton Ogden, fyrir meira af hver er tónlist sem þú getur sækja á soundcloud.com/cs50. Svo í dag að við einbeitum allt meira á list forritun. Og við tökum þar sem við var burt síðustu viku, með áherslu á grunni, sem var þessi grafísku forritunarmál. Og taka það niður á lægra stig, með hefðbundnari forritun tungumál þekktur sem C En á leiðinni, að átta sig á að sömu hugmyndir sem við talaði um síðasta föstudag mun endurtaki sig ekki aðeins í þessu er C, en í flesta aðra að við lítum á þetta misserið. Svo við kölluðum þetta hlutur hér hvað síðast? Þetta er dæmigert fyrir yfirliti. Svo við kölluðum þetta yfirlýsingu. Og það gerir eitthvað. Það er kennsla sem tölva eða Scratch gæti keyrt. Og héðan, við skulum byrja líka starf eitthvað svona fall, ástæðum við munum fljótlega sjá. Á sama tíma, við sáum hlutina eins og þetta. Og þetta eru yfirleitt þekktur sem hvað reisa? Áhorfendur: Endurtaka. DAVID J. MALAN: Svo lykkju. Svo frekar einfalt. Það gerir bókstaflega það sem það segir. Og í grunni, ef þú vilt troða fleiri stykki púsluspil í það, Verkið mun vaxa til að passa hana. Og við munum sjá í C sem Við getum gert það sama. Önnur gerð af lykkju, þó, í grunni gæti verið að eilífu, eða það er einhver tala annarra aðferða. En við skulum taka a fleiri almennra útlit, með andlit það er líklega alveg kunnugur, á lykkjur almennt. Mark Zuckerberg: Einn hlutur sem tölvur eru virkilega góðir í er endurtaka skipanir. Sem persónu, þú vilt fá virkilega leiðist ef þú þurfti að gera það sama hellingur af sinnum í röð. En tölva getur gert það sama milljónir eða jafnvel milljarða sinnum, og ekki fá leiðindi, og vera fær um til að framkvæma hann mjög vel. Svo til dæmis, ef ég langaði að óska ​​öllum á Facebook í tilefni dagsins með því að senda þeim tölvupóst, það gæti tekið mig meira en öld til raunverulega skrifa út allar þessar tölvupóst til alla. En með bara nokkrar línur af kóða, ég get hafa kerfið senda tölvupóst á alla á Facebook sem vilja þá í tilefni dagsins. Svo það er það sem lykkjur eru og hvers vegna þeir eru dýrmæt og eitthvað að tölvur geta gert mjög vel. DAVID J. MALAN: Svo ef þú hefur verið viðtakandinn sumir af CS50 er og Rúm Dropbox er á síðkastið, það er í raun nákvæmlega það sem við gera, með því að nota kóðann alveg eins og þessi. Við höfum fyrst og fremst stór töflureikni inn sem gott fólk hafa verið inputting þeirra Nöfn og netföng. Og við skrifuðum örlítið hluti af kóða sem getur kunnugt um þá heimilisföng og spýta út einstaka heimilisföng í ræða einhver lögð mörgum sinnum. Og eftir það, við senda sem sjálfvirk email frá láni CS50 er, þ.mt afsláttarmiða kóða. Nú litum við einnig á þetta reisa síðasta skipti. Og þetta er sérstaklega Dæmi um hvað? Svo, já, Boole tjáningu. Og lögun er ætlað til að fanga það eins vel. Allar slíkar spurningar í því mynda satt eða ósatt í grunni mun líta svolítið eitthvað eins og this. Og við köllum þetta Boole tjáningu. Það er reyndar satt eða ósatt, já eða nei. Það er leið til þess að svara spurningu. Og meðan þú getur notað þessar Boole tjáning inni býr eins og þessir, sem af Auðvitað eru aðstæður eða útibú, proverbial gafflar á veginum. Og þeir geta líta ekki aðeins eins og þetta, en þeir geta einnig hafa elses tengd þeim. Og þú getur raunverulega hafa a þrjú leið punga í veginum eða fjögurra vegur gaffal á veginum, einfaldlega með því að hreiðurgerð þetta, eins og þú munt sjá í grunni ef þú ert ekki nú þegar. Og eins og þú getur gert í C eins og heilbrigður. Við skulum taka aðra almennra líta á alumnist, eins og heilbrigður, sem getur skapað mismunandi nálgun þessum hlutum sem kallast aðstæður. BILL GATES: Fólk gerir ákvarðanir á hverjum degi. Til dæmis, áður en þú ferð út þér konar hafa ef yfirlýsingu sem segir, ef það er rigning þá er ég þarf að fá jakkann minn. Og tölvur eru ótrúlega þegar þú ákveða þær tegundir af yfirlýsingum, að þeir geta áreiðanlegum framkvæma þessir hlutir á ótrúlegt hraða. Og svo tölvuforrit raun er a lítill hluti af stærðfræði og sumir ef yfirlýsingar þar ákvörðun verður tekin. DAVID J. MALAN: Svo sem og þú mega vita, að það var gott fólk eins og Bill Gates, Paul Allen og aðrir sem sannarlega sparkað burt svokallaða einkatölvu bylting fyrir nokkrum árum. Ég hélt, áður en við kafa í sumum administrivia, við myndum tengjast þá sögu frá Albuquerque, Nýja Mexíkó Museum of Natural History og vísindi þar sem sumir af Bill Gates ' og elstu sögur Paul Allen koma einnig fram hvernig við höfum nú PCs dag og Macs og fleira. Fyrir þetta, þó, við þurfum tvo sjálfboðaliða sem hafa mjög góða frásögn raddir að lesa handritið upphátt. Allt í lagi, hvernig óður í aftur. Komdu upp. Og hvernig óður í framan hérna. Komdu niður. Taktu staði hér. Sem þið komið upp, par stjórnsýslu tilkynningum. sneiðingu, ferlið að velja kafla, mun hefja þetta Miðvikudagur til föstudags. Meira um það þetta kemur Miðvikudagur í fyrirlestri. Super köflum, á meðan, eru eitthvað sem við bjóðum í næstu viku þar sem allt er bekknum boðið að taka þátt í umtalsverðum mæli köflum einn notalega, einn vel minna. Og við munum tilkynna þær upplýsingar um það, eins og heilbrigður, síðar í þessari viku. Á meðan köflum sjálfir, verður að byrja í viku þrjú af námskeiðinu, núll vísitölu, sem þýðir þá eru nokkrar vikur út. Svo ekki að hafa áhyggjur. Þú hefur ekki enn misst eitthvað meðfram þeim línum. Á sama tíma í millitíðinni, ef þú hefur einhverjar spurningar stjórnsýsla, sendu mig og Devon og Gabe og Rob á þetta heimilisfang hér. Loks vandamál setja 0 er, að sjálfsögðu, út. Þú gætir hafa tekið eftir því á heimasíðu Auðvitað er. Það ætti að veita þér með öll svör við spurningum þú gætir hafa á leiðinni til að byrja með vandamál setja. En ef þú finnur sjálfan þig í þörf af a hjálparhönd, fyrir alla muni mæta skrifstofutíma, Mánudagur, þriðjudagur, miðvikudagur, fimmtudagur þessa viku í kvöld í fjórum veitingastöðum sölum. Sjá þessi slóð þar fyrir upplýsingunum hvar skrifstofa klst skulu vera. Nú skulum mæta okkar tveir gestir hér í dag. Hvað er nafn þitt? JAY PAUL: Jay Paul. DAVID J. MALAN: Jay Paul, gaman að hitta þig. Hikari: Hikari. DAVID J. MALAN: Hikari? Hikari: Hikari. DAVID J. MALAN: Hikari. Gaman að hitta þig eins og heilbrigður. Jay Paul og Hikari hafa í framan af þeim á þessum tónlist stendur tvær forskriftir sem ég prenta út í morgun frá New Mexico Museum of Natural History og vísinda. Og það sem ég hugsaði Ég myndi gera á the kostnaður er fylgja upptalningu þína af handriti og þessa sögu með nokkrum myndum, ekki á óvart. Og það sem ég hef gert í fyrirfram er prehighlight á handritið það sem þú ættir að lesa, og hvað þú ættir að lesa. Og við munum í raun bara varamaður málsgreinar. Svo það er mikið eins og þú might hafa gert í ensku bekknum. Það er í raun neyða áhorfendur að trúa á hala þínum hér. Skal við? Svo sagan hér er, við höfum BASIC, og það byrjar í Cambridge. JAY PAUL: Það var vetur, 1974, í Cambridge, Massachusetts þar vetur getur verið kalt. A skegg, löng hár háskóli brottfall heitir Paul Allen var drudging yfir Harvard Square, niðursokkinn í hugsanir hans. Helstu gagntekinn hans í þá daga var hvernig á að fá vin sinn, Bill Gates, að hætta í skóla og fara í viðskiptum við hann. Hikari: The tveir höfðu þegar farið í gegnum a tala af verkefnum fyrirtækja saman, sem hefst á Lakeside skóla í Seattle þar þeir voru greidd í frjáls tölva tími til prófa PDP-10 tölvu í staðartíma hlutdeild fyrirtæki. Nýjasta áætlun hafði verið að hætta skóla og mynda hugbúnaður fyrirtæki. Allen hafði skilið Washington State University. En á síðustu stundu, Gates ákvað að halda sig við Harvard. JAY PAUL: Sá dagur, yfir Harvard Square, Allen sást janúar, 1975 tölublað af Popular Electronics með jörð viðkomustöðum fyrirsögn, Heimsins fyrsta minicomputer Kit til samkeppni Commercial Models. Undir fyrirsögn var mynd af boxi skreytt með ljósum og rofa. Það var kallað mits Altair 8800. Og Allen vissi að þetta var það sem Hann hafði verið að leita að. Hikari: Dagar umræðu fylgt. Allen og Gates skilið að mikilvægi Altair. Þeir töluðu oft um örgjörvi og voru að bíða eftir að sjá hvað yrði gert með þeim. Nú var minicomputer Kit á lokinu Popular Electronics. Það hafði greinilega ekki hugbúnað enn. Þeir ímyndað sér þjóð forritari stíga niður mits. Og svo þeir kallast Ed Roberts, yfirmaður fyrirtækisins, segjast hafa útgáfu af BASIC forritunarmál næstum tilbúin fyrir Altair. Þeir gerðu það ekki. Og Roberts hlýtur að hafa vitað að þeir gerðu ekki. Hann var að fá 10 símtöl á dag frá fólk sem hafði BASIC næstum tilbúin. Og birgðir viðbrögð hans var, "Sá sem sem sýnir sig með vinnu BASIC fær samning. " JAY PAUL: Gates og Allen hafði aldrei séð Altair. Þeir höfðu aldrei séð Intel 8080 örgjörvi í hjarta Altair. En a par af ár fyrr Allen hafði skrifað forrit á mainframe tölva sem líkja rekstur fyrri Intel örgjörvi. Og að þessu sinni í kring þeir myndi gera það sama. Hikari: Með Intel 8080 handbók við hlið hans, Allen settist á a Harvard PDP-10 tölvu og skrifaði keppinautur og hugbúnaður verkfæri nauðsynleg til að gera forritun. Á meðan Gates hætt að fara að flokka og helgað sig að hanna undirstöðu, nota hvert bragð Hann vissi að fá stærð niður fyrir 4 kílóbæti. JAY PAUL: Út í Albuquerque, Ed Roberts fékk símtal frá Gates að biðja um upplýsingar um hvernig Altair meðhöndlaðar sérstakar venjur. Enginn hafði nokkru sinni spurt að áður. Og Roberts byrjaði að fá áhuga. Hikari: Með þróun verkfærum og hönnun tilbúin, Gates og Allen skrifaði kóðinn á PDP-10, enlisting annað Harvard nemandi, Monte Davidoff, til að skrifa stærðfræði venjur. Eftir að endanleg nótt forritun, Allen fékk í flugvél að skila BASIC þeirra til mits. Hann eyddi flugvél ríða út áhyggjur. Og aftur í Cambridge Gates var áhyggjuefni. Þeir höfðu prófað BASIC og þeirra það hafði unnið við keppinautur. En hvað ef keppinautur var rangt? JAY PAUL: Eins og flugvél nálgast Albuquerque, Allen komust að þeirra BASIC, nú snyrtilegur finna á litlum rúlla af sleginn pappír borði, myndi gagnslaus án sérstakt forrit, sem kallast Loader, sem myndi segja Altair hvernig að lesa pappír borði veru matað í teletype vél. Hann tók út stílabókina og fljótt hripa niður Loader forrit í Smalamál, þá handvirkt þýða að í 1s og 0s að Altair myndi skilja. Hikari: Allen bjost hreint, lítið, hátæknifyrirtæki hlaupa með menn í hentar fyrirtæki. Svo hann var hissa þegar Roberts hitti hann á flugvellinum útlit eins búgarði hönd. Roberts var líka hissa. Þegar hann hætti í Harvard forritari á dýr hótel, Allen þurfti að játa að hann gæti ekki efni á herbergið. JAY PAUL: mits sjálft, var staðsett í rykugum Strip smáralind. Inni á a ringulreið vinnubekkur var Altair hlaðinn upp með 5 kílóbæti af minni og tengdur með snúru til teletype vél. Roberts og yfirverkfræðingur, Frumvarp Yates, beið expectantly sem Allen toggled Loader hans forrit í Altair. The teletype byrjaði chugging eins og það dregið pappír borði í gegnum borði lesandi. Það tók kannski 15 mínútur að hlaða forritinu. Þá teletype prentuð skyndilega a minni hvetja, þá tilbúinn hvetja, og Allen tók slá nokkrar próf skipanir. Til undrun allra, hugbúnaður uppnámi. Það voru galla auðvitað. En aðal málið var að það starfaði. Hikari: Seinna, á leið þeirra til að $ 3,00 hádegismat á Pancho er, a Holugeitungur flaug í glugga pallbíll vörubíll og stung Allen á handlegg. En á þeim punkti ekkert gæti spilla skapi. The Altair var nú undirstöðu þess, sem Fyrsta auglýsing hugbúnaður fyrir heimili tölva, gerð af Paul Allen og Bill Gates, að gera fyrirtæki sem Microsoft. DAVID J. MALAN: Margir takk tveimur lesendum okkar. [Applause] DAVID J. MALAN: Nú þú hefur val þitt, áður en þú ferð, að vera hress eða ljóma í dark-- ó, bíða einn sek, wait-- sparkly og ljóma í myrkri fíl frá eigin CS50 er Cheng Gong. Hikari: Æ, þakka þér. DAVID J. MALAN: Allt rétt, þakka þér svo mikið. [Applause] DAVID J. MALAN: Svo sönn saga. Þetta er að segja að allir þessir vélar og vellíðan sem við nota þá núna og taka sjálfsagðan hlut, í raun byrjaði hér, bara nokkur skref frá þessum raunverulegum vettvangi. Og núna í dag, ef þú hefur ekki verið, þetta er Maxwell Dworkin, tölva vísindi byggja, einnig handan við hornið. Og á annarri hæð í þessu bygging er hanga þrjár síður frá upprunalega kóða sem Bill Gates og Paul Allen skrifaði. Í staðreynd, ef þú nota zoom í þú getur séð ekki aðeins nöfn þeirra í að upprunalega tegund, en einnig undirskriftir þeirra sem þeir adorned a nokkrum árum þegar þeir heimsóttu síðast. En hvað var sérstaklega sannfærandi um þetta er það sem þeir setja út á að gera var að skrifa forrit sem myndi gera aðra til að skrifa eigin áætlanir þeirra. Á þeim tíma allt sem var með þetta Altair vél gerð af mits. Og allt sem þeir þurfti var einhver leið til að sem gerir það auðvelt fyrir hobbyists og fólk eins og okkur í þessu herbergi til raunverulega program að án þess endilega að skilja Þingið kóða, eða vél númer, eða Guð forði, 0s og 1s. Við forritari, eins þá í þessu herbergi, við langar að vera fær um að tjá okkur miklu meira eins sauðakóda jafnvel ef það er aðeins meira NIT vandlátur en við ræddum í síðustu viku. Við viljum ekki að skrifa kóðann svona, sem Paul Allen og Bill Gates gerði. Við, í stað þess, langar til að skrifa kóða sem lítur svolítið meira notendavænt. Nú er þetta mál þekktur sem BASIC. Og línunúmer eru hvað þú nota til að einfaldlega telja línum af kóða að þú ert að skrifa. Við gerum ekki einu sinni að gera það þessa dagana. En þú getur séð hér hvernig PRINT "halló, heimur" myndi örugglega væntanlega prenta bara það. Og svo hvað Bill og Páll gerði var styrkja fólk til að skrifa kóðann svona stað of-- ef þú taka a líta á the tölvunarfræði wall-- kóða svona. Í raun, CS50 nýlega fengið tækifæri að setjast niður með prófessor Harry Lewis í tölvunarfræði deild, sem reyndar kennt Bill Gates nokkrum árum síðan, og stendur hér frammi þessir þrír síður útdrátta. Við skulum taka a líta. HARRY LEWIS: Það sem þú hefur hér er skráningu snemma stykki af hugbúnaður skrifað af Bill Gates og Paul Allen, stofnendur Microsoft. Svo kóðinn er áhugavert tveimur ástæðum. Fyrst af öllu, það varð Fyrsta varan Microsoft, sem var túlkur fyrir Grunn forritunarmál. Og í öðru lagi, þetta var eitt af fyrstu tilraunum til að búa til túlk svo venjulegt fólk gæti notað einkatölvur. Svo Bill Gates var grunnnám í Harvard. Ég byrjaði að kenna í Harvard árið 1974. Þetta var gert árið 1975. Svo það var snemma á ferli sínum og snemma á ferli mínum. Ég kenndi reyndar Bill í námskeið í kringum þennan tíma. Paul Allen var ekki Harvard nemandi, en hann hafði verið menntaskóla bekkjarfélaga af Bill Gates. Ef þú kemur og lítur á skráningu, þú munt í raun að finna þriðja nafn, Monte Davidoff, sem var bekkjarfélagi Gates hér í Harvard. Allt í lagi, svo er hér að áhugavert athugasemd hér. Það segir "Í 4K getur eytt kvaðratrót en fyrir lykkjur ætti enn að vinna. " OK, svo hvað það þýðir er að það voru tvær leiðir til að taka saman þetta forrit. Einn var að keyra á útgáfu þessarar Altair tölvunni að aðeins var 4K orð minni, 4096 orð af minni. En stóra útgáfa hafði 8K. Og svo hvað þetta segir er að í 4K útgáfa þú þurftir að eyða nokkrum kóða til að gera það passa. Og einn af þeim hlutum sem væri hægt að eyða væri kvaðratrót venja. En svo virðist sem fyrir lykkjur ætti enn vinna jafnvel þegar þú ert að setja saman niður fyrir aðeins 4K útgáfa af tölvunni. DAVID J. MALAN: Svo ein af þeim þemum, eins og við munum sjá í tölvunarfræði, er þetta hugtak af layering og abstrakt, og í raun standa á öxlum af fólkinu sem hafa komið á undan okkur, ekki ólíkt sumir af the Bill Gates og Paul Allen frásögn hér. Og hvað þýðir þetta er að í dag getum við tekið fyrir veitt að hlutirnir eru í raun og veru auðveldara fyrir okkur að skrifa kóðann. Reyndar númer, eins og ég sagði á föstudag, er meira tæknilega þekkt sem frumkóða. Og það er þetta ensku eins setningafræði það er meira viðeigandi og fleiri vel skilgreind en eitthvað eins sauðakóda fyrir sem það er engin formleg skilgreining. Og í dag hvað við erum að fara að leggja áherslu á er kóðinn sem lítur svona út, sem vísu við fyrstu sýn lítur alveg dulinn. Og hreinskilnislega, það er vegur meira fagurfræðilega flóknari en undirliggjandi program er. Allt þetta forrit gerir, muna, er það gerði við segja? Það prentar bara "halló heimur". Og enn líta á allar efni sem við þurfum að vefja í kringum það mjög einfalt setningu. En áður en langt allt þessar línur og fleiri mun gera miklu meira vit til þín. Og rennsli er eins og hér segir. Það sem við þurfum að ráða okkar er að taka kóða, eins og uppspretta númer sem við sáum bara. Og við þurfum nýja áætlun að keyra það í gegnum. Við þurfum reiknirit sem getur umbreyta kóðann, eins og þetta, í mótmæla kóða, 0s og 1s. Með öðrum orðum, hvað við erum að fara að læra í dag er hvernig á að gera þetta, skrifa Kóðinn upp efst, gefa það sem inntak í sérstakt Forritið þekktur sem þýðanda, og við erum að fara að framleiða hlut númer. Sem er bara fínt leið til að segja að við munum taka eitthvað sem lítur svona út, gefa það í forriti sem kallast þýðandi, framleiða hlut kóða sem lítur svona út. Svo þetta eru bókstaflega Munstur 0s og 1s sem skilja að Intel tölvu þessa dagana, að ef túlkuð af örgjörva, heila inni tölvu, mun bókstaflega prenta út, einfaldlega, "halló heimur". Nú er vegur meira 0s og 1s en þig þar myndi vona gæti verið nauðsynlegt fyrir það. En það er vegna þess að við erum að byggja á heilmikið flókið að við getum héðan taka sem sjálfsögðum hlut. Í öðrum orðum, a einhver fjöldi af sviði fólk hafa gefið okkur mikið af flottum verkfærum og öflugur hugbúnaður sem við geta nú gera verkefni okkar eigin. Svo skulum við hefjast handa. En síðasta föstudag, og fyrir Heimadæmi 0 í þessari viku, þú munt vera að spila í a heimi sem lítur svona út. Byrjar í dag og fyrir Vandamál Setja 1 næstu viku, númerið er að fara að líta aðeins meira dulinn, en virkni er fara til vera the sami. Svo tilkynning, efst er Scratch, botn er C. Frankly Scratch er miklu meira notendavænt vingjarnlegur og aðgengilegur. En ef þú bera saman nú sjónrænt efst til botn, það er góður af a 1-1 bréfaskipti milli stykki púsluspil og tungumál við erum að fara að spila með. Einkum segja, blár ráðgáta stykki upp efst, er greinilega jafngild hvaða leitarorð eða sérstakt setningu í þessu tungumáli kallast C? Áhorfendur: printf. DAVID J. MALAN: printf. Það þýðir sniðinn prentun. Og það er bara fínt leið til að segja printf í C er að fara að vera í sér yfirlýsingu eða aðgerð sem prentar eitthvað á skjáinn. Hvað þýðir það að prenta á skjáinn? Hvað sem þú segir það að inni af tilvitnunum, inni sviga. Svo aftur, að vísu, það er mikið af efni að þú þarft að hafa í huga, svigum, vitna, semikommum, og allt þetta. En allt um það er tegund af við hliðina á benda. The áhugaverður takeaway nú er að segja blokk í grunni er ansi mikið jafngildir að printf yfirlýsingu í C. Á sama tíma, gula ráðgáta stykki upp ofan, þegar grænt merkja smellt er líklega um að það leitarorð hér? Áhorfendur: Main. DAVID J. MALAN: Svo aðal. Kannski int, kannski ógild. En helsta konar hljómar eins það er mikilvægt, og raunar er það. Svo þegar grænt merkja smellt er, aftur, ráðgáta stykki sem ánægja burt óákveðinn greinir í ensku allt Scratch forrit. En við erum að fara að byrja núna að hringja sem helstu, þessi aðgerð kallast aðal. Nú meðan við munum alhæfa þetta eins og hér segir. Við gætum hringt sagt aðgerð. Og það getur litið sérstaklega svona. Jæja, hvað um lykkjur? Ef við viljum til að hefja umbreyta eða þýða meira í grunni í C, þessi hlutur hér virðist bara segir "halló heimur" að eilífu. Svo ef þú tengir þetta forskriftir með kött í grunni, það er bara að fara að halda að segja í einhvers konar teiknimynd kúla, "Halló heimur, halló heimur, halló heiminum, "auglýsingin nauseum, að eilífu. Ef við viljum gera eitthvað svipað í C, það er að fara að líta svolítið dulinn. En við getum náð sama niðurstöður, sem við munum að lokum finna út, með setningafræði svona. Ég ætla að nota printf aftur, vegna þess að í lok dagsins Ég vil að prenta "halló heiminum." Og ég er greinilega með því að nota leitarorð sem er ekki að eilífu. Það er í staðinn orðið meðan. En bara merkingu í Enska, en eins konar bendir til einhvers konar lykkju eða hringrás. Svo það verður að vera leitarorðið sem C notar. Og á meðan satt, hvers vegna ekki á meðan satt í raun þýtt að eilífu? Jæja, á meðan, eins og við munum fljótlega þakka því meir hefur þetta parenthetical hliðina á henni þar sem þú getur sett Boolean tjáningu. Og svo lengi sem það tjáning er satt, að þetta númer, eins táknað á milli þessara tveggja hrokkið axlabönd sem við munum kalla þá, verður bara að halda í gangi aftur og aftur. Svo satt er satt. Svo á meðan sannur hætti bara gera þetta að eilífu. Það er nánast heimskulegt reisa að tjá þig. En það var engin að eilífu leitarorð í C. Það var á meðan. Og það var mjög einfalt Boolean tjáningu eins satt. Og svo þetta, munum við sjá, nær sama árangri. Hvernig annars gæti þú framkvæma lykkju? Jæja, í grunni þú might harður kóða sérstök tala á endurtekningar í lykkju hér. Og svo er það einmitt það sem við gæti gert í þessari útgáfu af C, þar sem við höfum svo-kallaðir til hliðar. Og fyrir lykkju hér er að fara að kunnugt, nokkuð cryptically, frá gildinu 0 á allt til en minna en 10. Nú breytur í Scratch. Þú gætir ekki haft tilefni til að nota þetta. En hvað er málið, almennt, breytu gerði við segjum í síðustu viku? Hvað er það? Áhorfendur: Stig. DAVID J. MALAN: Til að benda? Ó, bendir. OK, halda utan um stig, til dæmis, í leik. Eða oftast gera hvað með breytu? Hvað er notagildi þeirra? Áhorfendur: Minni. DAVID J. MALAN: Já, svo minni. Það er til að geyma eitthvað. Og tegund af vitleysu sjón I er notað síðasta skipti var svona gler skál. Og ef við vildum að geyma eitthvað inni í breytu, til dæmis núna að gildi er sex af því að það eru sex borðtennis kúlur í hér. Það er bara einhvers konar geymslu ílát sem undir hetta er sett með bits, 0s og 1s, þó að tölvan gerist að gera það. Svo í grunni, ef við langar að hafa breytu, við getum notað appelsína blokk eins og þetta. Við munum kalla það gegn í þessu tiltekna tilfelli. Ég frumstilla hana 0. Og hvað það ég þá? Að eilífu, segir gegn, sem ef þú spilar með því í grunni, þú munt bara sjá grunni. Kötturinn eða hvað búningur sem þú setur á hann mun tala fjölda sem um ræðir. Breyta gegn með 1 er eins hækka um 1. Og svo þetta er að fara til telja frá hvað svo hvað? Frá 0 to óendanleika, eða þar Scratch hlé, eða þar til þú konar missa áhuga á að horfa hversu hár hann getur í raun og veru telja. Svo hvernig gætum við umbreyta það til C? Það er að fara að líta svolítið dulinn. En aftur, ef þú lítur á hvers þessum línum sig þeir konar leikkerfi almennt. Svo virðist int er að fara til hafa sumir sérstaka merkingu í C Við munum sjá það aftur. Sem innskot það þýðir heiltala. Svo það þýðir bara númer. Svo er að gerð gler skál ég vil, einn sem getur geymt tölur, ekki borðtennis kúlur. Og ég ætla að nota jafn skilti það til að gefa því gildi sem er 0. Svo er það alveg eins og sett í bága við 0, en í C Á sama tíma, á meðan satt, það var jafngildir, að sjálfsögðu, að eilífu, jafnvel þó að það er svolítið dulinn, og þá inni á hrokkið axlabönd. Og er hægt að hugsa af þessum hrokkið axlabönd, sem þú getur slegið á lyklaborðinu, eins raunverulega vera eins og curvature í þessi gula lykkja blokkir í grunni. Það nær margar línur af kóða. Printf er að fá svolítið ógnvekjandi núna vegna þess að ég sjá ekki aðeins vitna í sviga. En hvað annað er nýtt setningafræðilega í þessu dæmi? Það er prósent d. Og þá er sviga n þar. Við gerðum sjá það áður, jafnvel þó að ég vissi ekki að nefna það. Þá er það með kommu. Og þá er það gegn. En við munum sjá í aðeins augnablik að þetta er bara staðlað leið til að segja prentað út "Heiltala", vitna, unquote, sumir aukastaf númer. En ég ætla að segja ykkur seinna hvað sem aukastaf tala er. Svo sú staðreynd að það er komma í þessari línu að segja printf, þýðir að fara á undan og prenta sumir aukastaf númer. Ó, og við the vegur, fjölda er hvað sem gildi þessarar breytu er. Og svo til að gera þetta meira ljóst, munum við sjá dæmi áður en langt felur nákvæmlega printf í samhengi við raunveruleg C forrit. Nú bara að vefja upp sum þessara býr. Boole tjáning, þú might ekki hafa tilefni til að nota þessa í forritinu en þú gætir mjög vel, sérstaklega ef við aðstæður. Og svo þessar tvær dæmi frá Klóra meina ef x er minna en y, eða ef x er minna en y og y er minna en z, hvernig gætum við þýða það? Jæja, í C er það bara að fara að líta út eins og þetta. Smá Cryptic, fleiri svigar, sumir furðulegur -merkið, en í grundvallaratriðum hugmyndir eru eins einfalt eins og þeir eru í ráðgáta stykki heim. Við erum einfaldlega að haka ef eitthvað er minna en eitthvað annað. Hvernig um aðstæður? Í hnotskurn á ensku, hvað þýðir þetta klumpur af grunni kóða gera myndir þú segja? Áhorfendur: jafnast tvær tölur. DAVID J. MALAN: jafnast tvö tölur, og ef x er minna en Y það segir eins mikið. Ef x er meiri en Y það segir eins mikið, annað ef x er jafnt Y segir eins mikið. Nú þar sem gerði x og y koma frá? Hver veit. Þessi klumpur af grunni númerið er úr samhengi. En það sem við viljum gera núna er að þýða þetta fyrir aðeins augnablik til að sjá. Svo eins og þú fá þægilegt í þessari viku í Heimadæmi 0 að spila í þessum heimi vinstra megin, átta sig að hugmyndir eru ekki að breytast í þessari viku eða næstu eða utan. Við erum einfaldlega að fara að byrjar að skrifa hluti á annan hátt með okkar hljómborð í stað mús okkar. Þannig að ef x er minna en y, og það er sumir svigum þarna, þá er sumir hrokkið axlabönd þar aftur til konar þjappa hana bara eins og gulu stykki púsluspil að gera. Og ég ætla að printf x er minna en y og svo framvegis. Hvað er gott um C, eins og þú sérð hér, er að þú færð ekki þetta hreiður, hreiður, hreiðurgerð það er endilega fara að ýta númerið þitt til hægri. Þú getur í staðinn að hafa allt lína snyrtilegur svona. En það er bara fagurfræði smáatriði munum við sjá aftur áður en langur. Allt í lagi. Svo sem færir okkur aftur að þetta dulinn leita forrit. Við skulum skrifa í raun nokkur númer. Nú hvernig gera þú fara óður í að skrifa kóðann? Öll þessi ár sem þú hefur í eigu Mac eða PC, skrifborð eða laptop, þú hefur reyndar haft getu að byrja að skrifa forritun kóða. En þú ert líklega vantar sérstök tegund af program. Þú getur vissulega skrifað kóða. En þú getur ekki endilega, út af the kassi, umbreyta að kóðinn í hlut númer, 0s og 1s án hvað á tölvunni þinni? Áhorfendur: þýðanda. DAVID J. MALAN: Svo þýðanda, rétt. Nú flest ykkar líklega eiga ekki þýðanda, hafa aldrei sótt þýðanda. En þú munt sjá að þú getur sótt það eins og flest allir aðrir stykki af hugbúnaður. Í heimi Mac OS, þú gætir sækja eða hafa sótt þegar eitthvað sem kallast Xcode eða GCC eða Clang. Ef þú kemur frá Windows heiminum sem þú gætir hafa sótt Visual Studio, Visual Basic, umhverfi eins og þessi. Það er heilmikið af vistþýðendur þessa dagana að þú gætir notað. En stutt það hér er að það myndi vera a sársauki og, hreinskilnislega, tæknilegu martröð fyrir hundruð fólks með mismunandi tölva stillingar til allra stilla vélar sínar á nákvæmlega sama hátt svo að við getum öll verið á sömu síðu. Svo það sem við, í stað þess, að gera í CS50 er að við gefum þér staðlað umhverfi, a Linux umhverfi sem er fara að líta svolítið eitthvað eins og this. Þú munt sjá meira af þessu í Vandamál Set 1 forskrift sem mun fara á netinu á föstudaginn nótt. Og hvað þetta þýðir er að þú héðan eru að fara að vera fær um að sækja og setja upp forrit kallað CS50 Appliance. Og þú ert að fara að hlaða niður og setja annað forrit sem heitir a Hypervisor, sem er bara ímynda sér vegur að ná þessu. Hvort sem þú átt Mac eða tölvu eða Linux tölva eða Solaris tölvu, eða hvað brjálaður rekstrartekjur kerfi sem þú ert að keyra, þú ert að fara að sækja forrit heitir Hypervisor sem er að fara að keyra CS50 Tæki á tölvunni þinni sama hvað stýrikerfi er. A Hypervisor í öðrum orðum breytir efni okkar til hvað tungumál, hvað fyrirmælum þínum í tölvunni skilur. Þannig að þetta er layering. Og aftur, þetta er góður af áherslusviða í tölvunni vísindi, húsið á hreinu. Þú gætir hafa Windows. Þú gætir hafa Mac OS. En byrja í næstu viku sem þú ert fara að hafa sótt ókeypis stykki af hugbúnaður kallað Hypervisor. Þú ert að fara að hafa sótt stykki hugbúnaður sem kallast CS50 Appliance. Það er að fara að keyra í Hypervisor, sem er að fara að keyra á tölvunni þinni. Og niðurstaðan er að allir af okkur mun hafa einfaldan glugga eins þetta á Mac eða PC sem gefur okkur ímynd af öllu keyra sama stýrikerfi, án annarra áhrif á tölvunni þinni. Og þú getur fullur skjár það og í raun haga sér eins og þú ert að keyra að stýrikerfi sem heitir Linux, sem er það sem CS50 Tæki er byggt á. Svo skulum við nota reyndar þetta nú að skrifa forrit. Þú getur skrifað forrit nota Microsoft Word. Þú getur skrifað forrit nota TextEdit eða Notepad, eða Hnyttið tilsvar, eða nánast hvaða orð vinnslu forrit sem þú hefur einhvern tíma notað. En raunin er að þú ættir ekki að nota raunverulega eitthvað af þeim áætlunum. Þú vissulega ætti ekki að nota eitthvað eins og Microsoft Word, þar sem hefur djörf frammi og skáletrun og stærri letur og smærri letur, vegna þess að tölvan er ekki sama um eitthvað af því. Allt sem tölvan er fara að hugsa um er Enska eins leiðbeiningar skrifaðar í C Svo það sem við munum gera inni í CS50 Appliance er að nota forrit frjálslega boði, og það er pre-setja í embætti í það tæki, sem heitir gedit. Og gedit er bara frábær einfaldur texti ritstjóri eins Mac OS TextEdit, eins og Windows Notepad sem er að fara til líta svolítið eitthvað eins og this. Svo skulum raun ekki líta á glærur af þessu. En við skulum fara í raun inn umhverfið sjálft. Ég ætla að fara á undan og að skrá þig inn, í þessu öðrum glugga, til CS50 Appliance minn, sem ég hef pre-setja í embætti á minn laptop hérna. Taka eftir því, eins og Windows og Mac OS, það er got sumir valmyndir. Eins og Windows og það setur það þar niður í staðinn Mac OS, sem setur það niður þar. En raunin er að það er alls konar hið sama. Og hér er allt fullt af hugbúnaði. Það er geymslusvæði. Það er allt fullt af aukahlutum, myndræna forrit sem við munum nota síðar í tíma fyrir vandamál setur. Það er vefur flettitæki innbyggður í svo að þetta er fullt viðvaningur tölva inni í tölvunni. En ég ætla að smella þessu lengst til vinstri hvítur táknið hér, sem er tákn fyrir gedit. Og það er að fara að opna glugga sem hefur þrjár spjöld til þess, a vinstri einn, a toppur einn, og botn einn. Nú er það í þessum efstu réttur einn sem Ég ætla að í raun og veru að skrifa nokkur númer. Svo skulum gera þetta ,. Ég ætla að fara í File, Vista. Og þú getur ekki alltaf hafa séð þetta tiltekna glugga áður. En þetta er eins og Mac OS eða Windows. Það er bara gluggi með öllum möppunum sem ég hef inni í þessari tölvu. Og ég ætla að fara að spara skráin sem hello.c. Og ég ætla að fara undan og smelltu á Vista. Og nú eftir að ég hafa a flipi efst til vinstri heitir hello.c. Svo líklega nokkuð þekki jafnvel ef þú hefur ekki notað þetta tiltekna forrit áður. Og nú er ég að fara að slá í þeim nokkuð dulinn röð af skipunum sem við sáum áðan. Meðal annars, staðall I / O.h. Meira um að bráðum. Int helstu ógild, opinn hrokkið spelka, lokað hrokkið Brace. Og þá inni þar sem ég held að sé þar sem við vorum "Halló heimur", semíkommu. Og nú vistað. Þannig að þetta er forrit skrifað í C, skrifað, því í frumkóða. En ég get ekki bara keyrt þetta forrit. Ég vil konar að tvöfalda smelltu á táknmynd einhvers staðar, en ekkert tákn fyrir hendi annar en frumkóða skrá. Hvað, aftur, er ferlið nú að Ég þarf að keyra þessa skrá í gegnum? Áhorfendur: þýðanda. DAVID J. MALAN: Svo þýðanda. Svo í mismunandi tölvum sem þú gera þetta á mismunandi vegu. En það sem við höfum gert hér í sem CS50 Appliance, sem er Fulltrúi hvernig þú gætir gera þetta á mörgum mismunandi kerfum, er ég er einfaldlega að fara að keyra skipun sem heitir gera. Og gera er bókstaflega að fara að gera það. Gera mig áætlun. Svo gera er að fara til keyra þýðanda fyrir mig. Og nafn af the program Ég vil gera er halló. Nú er gert forrit. Og gera er sviði nógur til að átta sig á að ef ég segi að heilsa, það er að fara að líta sjálfkrafa að skrá sem heitir hello.c bara vegna þess að það er hvernig það er stillt. Svo þegar ég lenti nú inn hér, þetta brjálaður dulinn lína bara got framkvæmd. Og treystu mér, áður en lengi, innan aðeins daga, þú munt skilja hvað allir af því sem óskiljanlegum hætti. En nú, bara vita að gera Birtar framkvæmd þýðanda. Með öðrum orðum, fannst það a þýðandi á tölvunni minni það er pre-setja í embætti á CS50 Tæki að við munum skila til þín í Heimadæmi 1. Og það tók þá hello.c sem inntak og framleitt virðist 0s og 1s sem framleiðsla. Og sjálfgefið hvað það gerir er að það sparar þessir 0s og 1s í skrá sem heitir halló. Og þótt þetta setningafræði líka gæti vera nýtt til að þér, einfaldlega með því að segja punktur rista halló er að fara að vera með hvaða hætti ég að keyra þetta forrit. Fyrir nú og að minnsta kosti tvær vikur, næstum öll forrit Við skrifum ætlum að vera í svart og hvítt texta gluggum. Engin mýs, ekki smella, engir gluggar, engin tákn. Við erum að fara að halda það einfalt og leggja áherslu á undirliggjandi hugmyndir upphaflega áður en við fá eitthvað hærra stigi, til dæmis, eins og hlé á leiknum sem við ræddum um í fyrsta fyrirlestri í síðustu viku. Svo þegar ég lenti inn hér, það er jafngildir í texta aðeins umhverfi að tvöfalda smella táknið heitir halló. Hvað býstu vilja gerast þegar ég lenti inn þá? Áhorfendur: Það verður að prenta "halló heiminum." DAVID J. MALAN: Vonandi það mun prenta "halló heiminum." Og reyndar var það. Nú það hefur verið nokkur dulinn setningafræði hér. Skulum baka fyrir réttlátur stund og sjá hvort við Ekki er hægt að byrja inferring bara með tinkering, reyna og galli, hvað er að gerast hér. Hvað ef ég losna við Sviga n? Nú sumir af þú sem hef forritað áður líklega vita strax hvað það þýðir. En fyrir þá sem hef aldrei forritað áður, að minnsta kosti hugsa með þér hvað er að gerast að breyta þegar ég endursýning þetta forrit? Þannig að ég ætla að fara aftur niður til mín lítill svartur og hvítur gluggi, sem er gluggi sem Ég get safna saman þetta. Ég ætla að laun halló. Við erum að fara að sjá það sama dulinn röð skipana. Og ég ætla að gera punktur rista halló. Og nú einhver, ef þú vilt, sem hefur aldrei forritað áður, hvað gæti verið öðruvísi í þetta sinn? Já. Áhorfendur: Það mun ekki hætta prentun "halló heimur". DAVID J. MALAN: Það er að fara to-- leitt? Áhorfendur: Það mun ekki hætta að prenta það? DAVID J. MALAN: Það mun ekki hætta prentun "halló heimur". Svo ekki slæm hugmynd. Aðrar hugmyndir? Já. Áhorfendur: Villuboð? DAVID J. MALAN: Villa skilaboð, allt í lagi, gæti verið. Hvað annað? Áhorfendur: Það gæti prenta krappi með semíkommu eins og heilbrigður? DAVID J. MALAN: Gæti prenta krappi með semíkommu eins og heilbrigður. Svo er það kannski sviga þá sumir konar terminous sem er mikilvægt. Allar aðrar hugsanir? Svo allt góðar hugmyndir. Og í raun, það er að fara að vera villa skilaboð. Það er líklega líklega vera svar almennt á næstu vikum eins og við lærum að kóða hér. En nú man að tölvur bara það sem þú segir þeim að gera. Líkt og fáránlegt hneta smjör og sulta dæmi. Manna tölvur okkar voru einungis ætlað að gera það sem þú segir þeim að gera. Þannig að í þessu tilfelli, ef ekki segja tölva til að færa þá blikkandi bendilinn til næsta lína, það er ekki að fara að gera það. Svo þegar ég keyra þetta forrit nú taka mismuninn. Útlit eins og a padda. Það er fagurfræði galla, kannski. En hvað er öðruvísi um þetta framleiðsla á móti síðasta augljóslega? Já. Áhorfendur: Það var ekki gert nýja línu. DAVID J. MALAN: Það var ekki gert nýja línu. Nú þeir sem hafa kannski gert vefsíður áður, þú might vita af BR tag eða málsgrein tag, mjög svipuð í anda. A vefur flettitæki vilja hunsa þig fyrr þú segir það nákvæmlega hvað ég á að gera. Á sama hátt, er tungumál eins og C aðeins að fara að gera það sem þú segir því að gera. Svo vegna þess að allar þessar dæmum, svona langt, hafa eins konar frjálslegur hafði þetta sviga í það, það er leið sem þú tjá þig sem nýja línu staf, svo að segja. Og þú getur konar þakka, ef til vill, að þetta myndi líta svona heimskur ef ekkert annað. Ef ég vildi nýja línu, bara hitting inn og þá góður að butchering kóðann svona ætti í raun ekki nudda þér á réttan hátt. Og jafnvel ef þú gera ekki alveg sama á þessum tímapunkti, þú munt gera sér grein fyrir því að þetta er ekki sérstaklega gott útlit stykki af kóða. Og svo hvað heimurinn ákvað árum er að þegar þú vilt setja á bendilinn á nýja línu skýrt, þú verður skýrt segja Ný lína, sviga n. Og það er einhver annar tákn eins og þessi. En nú ætlum við verðum bara áherslu á Sviga n. Nú skulum gera áætlun svolítið meira áhugavert. Ég ætla að fara á undan og í þetta sinn opna nýja skrá. Ég ætla að vista þessa sem halló-1.c. Og bara fyrir ánægja, ég ætla að fara að setja það inn í Dropbox möppu mína. Eins og þú munt sjá í CS50 skjöl fyrir tæki, síðar í þessari viku til Vandamál Setja 1, munum við hvetja þú að nota Dropbox eða sumir jafngildi þjónustu, því þá alla kóða þíns að fara að vera stuðningsmaður upp sjálfkrafa. Og svo er það þess vegna sem ég hef farið inn í þessa möppu hér. Og nú er ég að fara að skrifa örlítið öðruvísi program. Meðal annars, staðall I / O.h, int helstu ógild. Og þá hér printf, Halló heimur, sem er nákvæmlega það sama og áður. En nú vil ég að prenta eitthvað það er svolítið öðruvísi. Ég vil að prenta út, segja, "Halló, David." Allt í lagi, svo augljóslega, það ætti vonandi vera raunin að ef ég laun þetta forrit, endursýning það, það er að fara að segja "halló, Davíð." En hvað ef ég vil kynna svona breytu, hugmyndin um ílát sem er að gerast til að geyma D-a-v-i-d og ekki erfitt kóða það í áætlun mína. Jæja hvað ef ég byrja gera eitthvað eins og þetta? String s, þannig að þetta er breytilegt. Ef þú vilt a band, gengur einnig undir nafninu orð eða setningu. Runa af stöfum er það við í forritun kalla streng. Við erum bara að fara að generically kalla það er vegna þess að það er gott einfalt nafn. En ég gæti kalla það hvað sem er. Ég ætla að segja STRING s jafn vitna unquote, "David," semíkommu. Og nú vil ég að setja D-a-v-i-d í það sem ég er prentun. Og áður en við sáum beitu á skjár af einhverjum sérstökum setningafræði sem gerði okkur kleift að staðinn í gildi. Hvað var sérstakt Táknið fyrir nokkrum skyggnur síðan? Svo prósent. Á þeim tíma var það prósent d fyrir heiltala. Það er í raun ekki virðast skipta máli hér. Skrúfjárn út það er annar prósent tákn, sem er prósent s, sem stendur fyrir tákn fyrir streng. Svo nú, mjög einfaldlega, ég er að fara að gera halló-1, vegna þessa skrá er kallað halló-1.c, og ýttu á Enter. Og ég ruglaður upp. Hvað er að gerast? Jæja, hér er þar sem við verðum að byrja að þakka að við erum í þessari stjórn lína umhverfi, þetta Aðeins texti umhverfi. Það er engin að smella á tákn eins og möppur núna. Og hugsa til baka í smá stund síðan. Í hvaða möppu gerði ég segi Ég var að bjarga númerið mitt? Svo Dropbox möppu. Gæti hafa verið kölluð neitt. En það gerist að vera kölluð Dropbox. Þannig að ég þarf einhvern veginn að tvísmella á að Dropbox möppu til að fá inn í það og fá á minn númer sem heitir halló-1.c. Í raun, láta mig fara á undan og draga þessum glugga fyrir réttlátur a augnablik. Rétt eins og Windows og Mac OS, það eru möppur í Linux. Það eru möppur í CS50 Appliance. Það er bara núna erum við að takmarka okkur að þessu texta umhverfi. En ef ég tvöfalda smelltu á Dropbox, eftir því að það er skrá sem ég vil til að safna saman. En ég þarf þetta svart og hvítt endastöðvar, svo að segja. En ég þarf því að færa í þeirri möppu eða skrá. Svo örlítið Bogagöng, en þú munt venjast þessu líka. Í heimi Linux, sem aftur er starfsleyfi kerfi sem við erum að keyra inni í CS50 Tæki, það er skipun sem kallast CD. Sem þýðir að ég get gert CD, rúm, Dropbox. CD, breyting skrá. Rétt. Aftur í dag þegar menn voru finna tölvur og vinni kerfi eins og þetta, sem þeir vildu slá fæst mínútum mögulegt. Svo auðveldasta leiðin til að segja breyting skrá var CD. Þannig að ef ég lenti CD, rúm Dropbox, taka eftir hvað hefur breyst hér. Inni sviga tækið er góður af humoring mig og að minna mig á hvar ég er. Svo er opinn mappa Dropbox. Ef ég slæ inn núna LS til lista, aftur gagnorðar, vegna þess að fólk vildi ekki slá til baka í dag l i-s-t. Svo gerðu þeir í staðinn það ls. Enter. Takið ég tvennt, halló-1.c, og þá er þetta dulinn hlutur, uppspretta 1m. Það er bara mín leið til að segja Kóðinn fyrir viku 1. mánudagur. Það er mappa sem ég sótt af Vefsíða CS50 er að ég gerði fyrr í dag og bara setja það inn í tæki fyrirfram. En nú það eina sem við hugsa um er að gera þetta forrit. Svo þegar ég pikka gera halló-1, Enter. Andskotans. Eitthvað fór úrskeiðis. Svo skulum stríða þetta sundur. Og því miður er þetta þar sem hlutirnir fá smá stressandi í fyrstu, að minnsta kosti ef þú hefur aldrei forritað áður. My god. Ég skrifaði tvær línu forrit og Ég hef fjórum línum af villum. Svo hvað er að gerast hér. Fyrst og fremst alltaf að fletta til baka upp og finna fyrstu villuboð, því oftsinnis Vistþýðendur bara fá rugla með það sem þú og ég. Þýðendur eru nokkuð heimsk. Þeir bara að gera hvað þú segir þeim að gera. Og ef þú rugla þeim, þeir eru bara að fara að eins konar kasta upp hendur sínar og kannski kasta fleiri villuskilaboð en eru í raun og veru máli. Svo skulum líta á fyrstu. Super dulinn í fyrstu. En tilkynning, hér er nafnið á skrá þar sem ég ruglaður upp greinilega. Colon 5, ristill 5 þýðir bara á lína 5 á fimmta staf. Svo fimmta dálki stafi, ef þú vilt, villa. Notkun á svart, kennimerki band. Áttirðu staðall n? Nei, ég ætlaði band. Og þá er það svona afrita og líma hvað ég slóst að virkilega draga minn athygli að þar sem ég ruglaður upp. Svo fyrir sumir ástæða C, eða að minnsta kosti að þýðandinn ekki skilja orðið band. Og það er vegna þess að við höfum gert það upp. Svo band er ekki til í C. Hvað CS50 gerir, fyrir fyrstu vikurnar aðeins í bekknum, er við bjóðum einhverja þjálfun hjól, svo að segja. Og við setjum þessum námskeiðum hjól inni í sérstakri skrá sem heitir CS50.h. Þannig að þetta er annað af tveimur skrá nöfn sem virðist enda í punktur h. Skulum baka. Printf er yfirlýsing eða fall sem virðist prentar eitthvað á skjáinn. En þú sást mig ekki innleiða printf, ekki satt. Einhver ár síðan framkvæmd printf. Í hvaða skrá viltu veðja hann eða hún setti framkvæmd fyrir printf, kóða fyrir printf? Í skrá sem heitir staðall I / O.h. Í raun er það líklega í tvær skrár, staðall I / O.h, sem stendur fyrir haus skrá, og staðall I / O.c, sem stendur fyrir C kóðann. Svo hann eða hún fyrir nokkrum árum plopped kóðinn sem þeir skrifuðu í þeirri skrá svo að fólk eins og okkur árum síðar er hægt að láta það, svo að segja, í eigin áætlunum okkar. Og reyndar, það er það sem pund merki á eftir orðinu eru ma gerir. Það lítur á heimamaður harður ökuferð, finnur skrána sem heitir staðall I / O.h, og þá í raun afrit og Límir það inni af eigin skrá minn. Svo nú forritið mitt veit hvernig á að prenta á skjáinn. Svo eftir að rökfræði, þar sem er band skilgreind? Áhorfendur: CS50.h. DAVID J. MALAN: CS50.h. Og reyndar, það er það sem við, algerlega starfsfólk, hafa gert. Við höfum fundið nokkrar tegundir gagna, svo að segja, eins og band, auk þær sem þú fá ókeypis, eins og int. Og við munum sjá aðra eins og bleikju fyrir eðli og nokkrar fleiri. Inni CS50.h víst er að minnsta kosti sumir nefna band. Svo nú láta mig fara á undan og endursýning gera halló-1. Ég zoom aftur og kross fingur mína. Nú með því að hafa gert eitt breyta ég fastur flesta hluti. En fjandinn. Fleiri percents en gögn rök. Hvað gerði ég rangt í þetta sinn? Svo það er enn nokkuð dulinn. En þessi villa kemur á lína 7 og eðli 21. Svo skulum við fara að líta upp hér. Það er svolítið lúmskur. En ef þér finnst um það grundvallar hugmyndir eru hér, kannski við getum stríða þetta sundur. Svo er printf nafn fallsins. Svigar, svona langt, er bara eins og það sem við setjum í kringum efni sem við erum að brottför sem inntak virka. Allt í lagi, bara handahófskennt manna samningur. Nota sviga. Inni af þeim sviga við höfum verið að setja gæsalappa, og þá band eins og "Halló heimur." En í það fyrra dæmi mjög stuttlega gerði við skoðum með grunni. Og við höfðum prósent d, hvað annað var inni á þeim sviga að ég kallaði út munnlega? Já. Áhorfendur: Svo það er það sem þú ert að taka [Inaudible] innan [inaudible] hvað þessir [inaudible]? DAVID J. MALAN: Einmitt. Svo við höfðum prósent d. En þá höfðum við nærri vitna, komma, gegn. Rétt. Við tilgreint það sem við viljum að gera eins og tákn. Svo það sem ég ætla að gera hér er komma, hvað viltu að ég að setja? Áhorfendur: S. DAVID J. MALAN: S, vegna þess að s í þessu tilfelli er nafnið á geymslu ílát. Það er nafnið á þeirri gler skál. En áður en það var gegn því að einfalt Scratch dæmi skoðuðum við. Svo nú hafa gert tvö breytingar, láttu mig súmma inn og reyna einu sinni enn að þýða þetta forrit. Nú sé ég að dulinn línu. En það er í raun og veru Heiti þýðanda. Clang er nafn þýðanda. Gera er bara að safna mér höfuðverkur sífellt slá það lengi brjálaður stjórn út. Svo nú ef ég rista punktur halló-1, Ég ætti að sjá "halló, David." Pretty underwhelming, þó, ekki satt? Við hefðum getað gert þetta mikið meira einfaldlega án þess að tala um breytur og CS50.h og allt það. Svo skulum gera það lítið meira áhugavert. Auk þess að CS50.h, hafa hluti eins band lýst er CS50 bókasafn Einnig hefur nokkur störf. Svo bara eins og árum, einhver skrifaði printf og setja það í venjulegu I / O.h og sumir annar skrá. Við, sem CS50 starfsfólk skrifaði aðgerð heitir getchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, og við setjum þær inn skrá heitir CS50.h og CS50.c. Og við setjum þær inn í CS50 Appliance. Og fólk getur líka sækja þá á netinu ef þeir vilja til að setja þær á þeirra eigin tölvur eins og heilbrigður. Sem er að segja að við höfum búið aðgerðir sem fá inntak frá the notandi. Ég veit ekki hvað allir þessara gagna tegundir eru. GetInt er góður af augljóst, eins og fá heila tölu á einhvern hátt frá notandanum. Og GetString er líklega eins fá orð eða setningu frá notandanum. Svo skulum leggja áherslu á það. Og ég ætla að fara aftur inn í tæki og ég ætla að fara á undan og vista þessa skrá sem, við skulum kalla það halló-2.c sem önnur útgáfa mitt. Og við skulum gera nokkrar breytingar. Í þetta sinn í stað þess að erfitt erfðaskrá Davíð, sem gerir ótrúlega samkvæmur en underwhelming program, hvað ef ég í staðinn GetString? Nú taka GetString er með opið sviga, lokað föll, því það þarf ekki að inntak. Það er bara að fara að fara að fá band frá notandanum. Og nú orð á öðrum setningafræði. Semikommum enda bara línu af kóða. Þú þarft þá ekki alls staðar. En það bara þýðir að ég er gert með þessari línu af kóða. Leyfðu mér að fara yfir í annað yfirlýsingu eða virka. Band lýsir breytu. Band er eins og að segja gefa mér skál, takk. Og láta mig setja band í það. Og nú jafnaðarmerki. Hvað er jafnaðarmerki meginatriðum jafngild? Áhorfendur: Framselja. DAVID J. MALAN: Já, framselja gildi. Svo ef ég, til dæmis, kalla þessi aðgerð GetString, og við munum sjá í smá stund sem er að fara að hvetja notandann til streng. Þetta er eins og að láta mig skrifa þá D-a-v-i-d á stykki af pappír. Og þegar ég segi band s jafngildir GetString, jafnt er í raun ekki að jafnt í C forritun. Það þýðir að framselja frá hægri hönd hlið til vinstri hönd hlið. Svo ég hef fengið streng. Og jafnaðarmerki þýðir setja það í geymslu gámur heitir s. Og þá fara framhjá þessu burt til printf að raunverulega gera hlutur hennar. Svo niðurstaðan þá er að fara að líta svolítið öðruvísi. Skulum gera halló-2. Annaðhvort gæti unnið. Þú ert að elta eftir. Gera halló-2 vann. Dot rista halló-2, Enter. Ég virðist hafa óendanlega lykkja eða eitthvað. Ekkert er að gerast. Hvers vegna? Áhorfendur: Það er að gera óendanlega lykkju. DAVID J. MALAN: Það er óendanlegur lykkja. Það er góður af að bíða eftir mér til að í raun veitt það með einhverjum inntak. Svo láta mig fara á undan og sláðu inn í Davíð og ýta á Enter. Og nú segir hann "halló, David." Ef ég keyrt það aftur. Skulum slá í Rob, "halló, Rob." Nú er þetta það versta notendaviðmót alltaf. Notandinn er virðist að vita hvað á að gera. En það er sama. Nota þessar sömu byggingu blokkir bara eins og í grunni, við getum leyst þessi vandamál og segja eitthvað eins og nafn þitt skaltu, ristli, rúm, lokað tilvitnun, loka föll, semíkommu. Svo mikið af aftur silliness með setningafræði. En taka ég hef bara bætt við púsluspil stykki ofan þessu og yfir þessu. Svo nú ef ég endursýning þetta, halló-2, Enter. Bíddu í eina mínútu. Hvað er rangt? Það er ekki atferlis allir öðruvísi. Já. Áhorfendur: Þú varst ekki hlaupa gera aftur. DAVID J. MALAN: Ég gerði ekki hlaupa gera aftur, ekki satt. Þannig að ég hef breytt kóðann minn. En aftur, það er að rennsli. Kóðinn gegnum þýðanda gefur þú nýja mótmæla kóða eða 0s og 1s. Þannig að ég þarf í raun og veru endursýning gera halló-2 Sláðu. OK, eitthvað virðist hafa gerst. Dot rista halló-2. Nafn þitt takk. Og að vera ljóst nú, hvers vegna er bendilinn á sömu línu? Nákvæmlega. Ég vissi ekki að setja sviga n hér í númerið mitt. Svo nú get ég skrifað eitthvað eins Daven, Enter. Ég get keyrt það aftur og slá eitthvað eins og Gabe, Enter, og við fáum annað forrit aftur og aftur og aftur. Nú lokum við erum að fara að þurfa til að nota nokkrar mismunandi getu. Við þurfum að kynna lokum nokkrar skilyrði til að gera hlutina með skilyrðum. Kannski lykkjur svo við getum gert hlutir aftur og aftur. Kannski það væri gott ef við gæti framkvæma eigin starfsemi okkar, eins og við mátti innleiða okkar eigin printf eða eigin útgáfu okkar af GetString og GetFlow, því að lokum jafnvel nota þessa stjórn lína umhverfi getum við gert jafnvel mest sjónrænt áhugavert af hlutum. Reyndar í niðurstöðu láta mig gera þetta. Ég ætla að fara á undan og loka þessum glugga og opna þetta tákn hér, sem er bara stærri útgáfa af því embed endastöðvar. Svo hefur gedit ekki aðeins staðurinn fyrir númerið mitt, en einnig a innbyggður í flugstöðinni glugga, svart og hvítt glugga þar sem ég get keyrt skipanir. Ég gerðist bara að opna stærri útgáfa af þessu. Og nú er ég að fara að fara í möppuna sem ég hef nú þegar setja fyrirfram á heimasíðu Auðvitað er. Og ég ætla að fara á undan og opna skrá sem heitir thadgavin.c, sem var skrifuð af einhverjum öðrum. Og ef við lítum á þetta, þetta er ekki góður af kóða við munum vera að skrifa síðan Markmiðið með þessari kóða var að skrifa prettiest leita kóða sem hann eða hún gat, án tillits til þess hvort eða ekki annar maðurinn gat alltaf skilja kóðann. Reyndar, á hverju ári það er það sem er kallað ruglað C keppni sem er fyrir alvöru geeks sem skrifa númer sem enginn annar getur lesið, en það gerir eitthvað annað virkilega einfalt eða í raun ótrúlegt. Og við héldum að við myndum ljúka með þetta útlit á eitthvað sem er nokkuð ótrúlegt þú gætir hafa séð einu sinni áður. En við munum enda á þetta athugið, punktur rista, thadgavin. Þetta er þá það sem bíður. Það er það fyrir CS50. Við munum sjá þig á miðvikudag. [Tónlist spila]