[Vídeó spilun] -A Sigur stærðfræði og vélrænni kunnátta er þetta frábær ný sjálfvirk reiknivél við Harvard háskóla. Flókinn vandamál í stærðfræði setja í gegnum vél í dulkóðuðu formi á borði eru nákvæmlega leyst í mínútna brot af þeim tíma sem þarf fyrir mönnum útreikning. Hannað til að flýta allar gerðir stærðfræði og vísinda rannsóknir, risastór vélrænni heilinn mun vinna fyrir United States Navy til loka stríðið er. [END spilun] DAVID J. Malan: Þetta er CS50. Fortíðin var sannkölluð staður, en ef þú hefur einhvern tíma furða hvað það tæki er í Harvard Science Center, það er örugglega hluti af Harvard Mark I, og það er á skjánum þar núna á undanförnum árum. Og það sem þú munt sjá innbyggð í Heimadæmi einn er að líta á bak við tjöldin á það sem tæki gerði, og gerir, frá prófessor Harry Lewis, sem er í vísindi tölva deild hér. Svo meira um það í bara smá. En í dag erum við að byrja að umskipti frá síðustu viku en þetta, og við munum koma umtal einn ljósmynd hér sem er í raun alveg frægur. Veit nokkur hvað þetta hér er á skjánum? Að minnsta kosti í samræmi við goðsögn. Já. Áhorfendur: Fyrsta veira. DAVID J. Malan: Svo það var talið mjög fyrstur raunverulegur galla í tölvu. Nú í raun orðið galla, fyrir mistök í áætlun, hefur verið hjá okkur í sumar tími í líkamlega heimi, og þetta var eitt af fyrstu skjalfest sinnum þar sem einhver í raun reif stór Moth út úr Mörk II tölva, setja það í bindiefni, og þá skráði hana sem fyrsta þekkta galla að hafa í raun fundist líkamlega. Svo þannig var slegið sem í fræði dag. Allt frá síðustu viku er í boði á netinu. Í tilteknum auðlindum sem þú gætir ekki endilega eftir, sérstaklega ef koma hingað í eigin persónu. Svo ein af kennslu félögum hverjum ári gerir Canonical setja af athugasemdum, þannig að þú þarft ekki að halda höfuðið niður, reyna að skrifa mest allt sem gæti gerst hér í bekknum. Svo átta sig að þeir svokallaða [? Skrifara?] Athugasemdir eru á netinu, vissulega glærur og Kóðinn sem við notum í bekknum. Við gerum fullt afrit texta í boði eins og heilbrigður. Svo ef þú manst óljóst sumir tíma, og vilja til að líta það upp a lítill meira fúslega, átta sig á að allir af því er að leita á netinu. Eins og walkthroughs eins og heilbrigður. Reyndar, í dag erum við að byrja að horfa á a lægri forritunarmál, fljótlega að vitað er að okkur sem C, og það er mjög auðvelt til að raða í villast eftir bara nokkrar augnablik tíma, og þá tegund af undrun hvernig við fengum í raun að meira flókið dæmi frá einföldustu. Og svo skiljum við munum kirsuber taka á bekknum nokkru á fulltrúa dæmum, en grein fyrir að svo miklu meira er einnig í boði á netinu svo þú getur unnið í gegnum það á eigin hraða, en þú ert þægilegur. En við fórum burt með forrit sem voru bara þetta. Svo ég smelli á græna fána, og hvað þýðir þetta forrit gera? Segir, halló, heimur. Það gerir kötturinn segja halló í litla heimi hans á the toppur vinstri hönd hlið af notendaviðmót grunni er. En við byrjuðum að kynna Sum hugtök í síðustu viku. Og svo, hluti eins og þetta sem við kallað það? Hvað gæti verið samheiti fyrir þetta? Já. Aðferð eða yfirlýsing. Jú, það er aðgerð. Gera þetta. Og enn voru önnur form að klóra, Að auki þessir svokölluðu yfirlýsingu, þeir voru líka hlutir eins og þetta, sem við kallað það? Já. Svo lykkju. Og í þessu tilfelli, þetta hlutur endurtekningar, augljóslega, 10 sinnum. Það er að eilífu blokk. There er a par af öðrum. Og í dag við erum að fara að sjá hvernig á að þýða þetta til fleiri nútíma heimi, ef þú vilt, jafnvel þó að það er að fara að birtast við fyrstu sýn að vera miklu meira Bogagöng. En þeir voru reyndar lykkjur. Og þá höfum við hluti eins og þetta, sem hafði þessa lögun, og í raun spurningar. Og við, sem um getur þetta eins og hvað? Áhorfendur: Boolean tjáningu. DAVID J. Malan: Já. Boolean tjáningu. Eitthvað sem er annaðhvort satt eða rangar, já eða nei, einn eða núll, en þú vilt skoða heiminn. En við kölluðum þá Boolean orðasambönd, og við stinga þeim í aðstæður eða útibú. Og í heimi Scratch, allt fallega interlocks í skilmálar af lögun sinni, ef það gerir rökrétt vit í að gera það, en þú þarft ekki að hætta á bara að gera einn hlut með skilyrðum, þú getur haft proverbial punga í veginum og gera annað hvort þetta eða að ef skilyrðið er satt eða ekki. Og þá, eins og þú munt sjá, ef þú hefur ekki nú þegar, Þú getur jafnvel hreiður þessar blokkir. Svo Scratch vex að fylla form sem þú vilt kannski að setja inn í það, svo þú getur raunverulega að tjá mest allir rökfræði sem þú vilt kannski að gera. Nú nokkur orð tilkynningu bæði hér og New Haven. Svo sneiðingu hefst í dag. The URL fyrir þetta er á námskeiðið er website, fyrir þá sem ókunnur. Kafla verður tækifæri til að koma saman á mun nánara umhverfi en [? Sanders?] Gerir, 10 til 20 bekkjarfélögum með a kennslu náungi á mismunandi lög, og mismunandi skref, ef þú velur það. Reyndar námskeið tilboð mismunandi hlutum fyrir þá sem minna þægilegt, meira þægilegt, og einhvers staðar þar á milli, og hlutverk þumalfingri hér er það er engin formleg skilgreining, en ef þú ert minna þægilegt, þú veist svona það. Þú ert dálítið Intrepid um Hugmyndin um stepping fótinn, ef til vill, til baka í skólastofunni, eða sýna allt að á milli hluta. Ef þú hefur verið forritun síðan þig voru sex ára, öruggari, kannski til þín. Og ef það er góður af a kasta upp, Það er einmitt það sem á milli er ætlað að vera. Nú, í millitíðinni, fyrir flokk þessari stærð, það tekur okkur þó nokkurn tíma að hluta allir, þannig að við höfum svokallaða, frábær köflum, koma upp þetta helgi og í byrjun næstu viku, svo taka a líta á heimasíðu námskeiðsins er fyrir þá sem eru að sjálfsögðu á breidd, og einnig teknar fyrir þá sem getur ekki gera þá. Og kafla sjálfir vilja byrja í viku þrír CS50 núll vísitölunni. Heimadæmi 0 er þegar á heimasíðu námskeiðsins er. Og átta sig á því að þú þarft níu seint daga þessa önn. Svo er þetta uppfærsla frá síðustu ári, þegar við höfðum fimm seint daga. Svo ef þú ert að spá, við höfum níu vandamál setur. Hefurðu níu seint daga, sem hver um þú getur aðeins eytt eitt á viku á. Sem í raun gerir allt vandamálið setur vegna Föstudagur, en markmiðið er að setja smá hluti af sálfræðileg þrýstingi á þig að reyna að fá hlutir í á fimmtudag því eins og þú munt brátt komast, fyrir betri eða verri, mest allt í hugbúnaður veröld endar taka mikið lengri tíma en þú von. Svo telja það eins konar tækifæri til að hjálpa sjálfur að miða Fimmtudagur, en taka þægindi í því, já, allt er vegna Föstudagur. Og ef þú sendir þær á Fimmtudagur, það er dásamlegt. Það er engin bónus stig eða auka kredit fyrir fund þann tíma. Það er ætlað að vera hækja aðeins. Og viðtalstímar, bæði hér og í New Haven, í eigin persónu, ef þú vilt hitta eitthvað af námskeiðum okkar kennslu félagar og CAS um aðstoð. Allt í lagi. Svo nú skulum við gera þetta meira alvöru. Og um stund það er að fara að byrja að fá smá meira Bogagöng, en mjög fljótt á föstudaginn og í næstu viku munum við vera fær um að gera svo miklu meira en við gátum svona langt í grunni. Þannig að við kynntum kóða síðustu viku, að vísu pictoral. Það var púsluspil stykki. Og við formlegt að það er eitthvað sem kallast uppspretta merkjamál, en myndi gerði líta út? Jæja, það leit svolítið eitthvað eins og þetta. Og í raun, bara til að konar stríða þar sem við getum farið með þetta. Ég ætla að fara á undan og opna glugga hér, og ég ætla bara að fara að velja nýja skrá. Og ég ætla að vista þessa skrá sem eitthvað eins og halló punktur c. Meira um það val á orð í aðeins augnablik. Og þetta er hvernig einhver gæti fara um að skrifa forrit. Eru stöðluð I / O punktur h, int helstu ógilt, og þá opinn hrokkið Brace, nálægt hrokkið Brace, printf halló komma heimur, sviga n, semíkommu, Vista, gert. OK. Ég hef skrifað fyrsta mitt program, en það er að fara að vera ótrúlega underwhelmed vegna þess að þegar ég í raun keyra þetta forrit, auðvitað, með letri gera halló, og þá punktur rista halló, og við munum fara í gegnum þetta í mun meiri smáatriðum í smá stund, það er allt það er. Ekki skjóta opna glugga. Það þýðir ekki að gera neitt sérstaklega fínt. Allt það gerir er það sem ég sagði það til gera, en hvernig fáum við að því? Og hvernig eigum við að byggja á því? Jæja, við skulum kynna nokkrar mismunandi hugtök hér. Svo einn, við erum að fara að byrja nota forrit sem heitir þýðanda. A þýðanda til fyrir Mac OS, Windows, Linux, allir tala um stýrikerfi, og við munum fljótlega kynna þér til umhverfi sem við munum vera með, en þýðanda er bara almenn tíma fyrir stykki af hugbúnaður sem tekur kóðann og framleiðir mótmæla kóða frá því. Með öðrum orðum, ef þú hafa sem inntak uppspretta þinn númer, eitthvað eins og það sem ég gafst bara, það framleiðir endanum mótmæla kóða. Og mótmæla kóða er í raun bara fínt leið til að segja sem birtist núll og einn er. Með öðrum orðum, uppspretta númer, jafnvel þó að það er fara að líta aðeins Bogagöng, og a lítill minna vingjarnlegur en grunni við fyrstu sýn, það er að minnsta kosti eitthvað sem við mennirnir getum skilið. Það lítur svona og hljómar eins English jafnvel þó að það er mjög gagnorðar. En forritun í núll er og einn er, eins og forverar okkar þurfti að gera, fyrir nokkrum árum, var ekki sérstaklega gaman áskorun. Og enn, þetta er það sem tölva skilur samt. Svo þýðanda fær oss frá Kóðinn að mótmæla kóða. Það er eins og að opna skrá með þýðanda, og þegar þú vistar hana, þú færð þessar núll og sjálfur. Þannig að við munum sjá hvernig á að gera sem í bara smá stund. En við skulum nú reyna að veita brú milli síðustu viku og þetta, svo að jafnvel eins og við fá hengdur upp á hluti eins og hrokkið axlabönd, og semikommum og svigum og öll þessi vitsmunalega áhugavert þætti forritun, sem mjög skiljanlega skráveifu snemma, átta sig á að allar hugmyndir í dag, eru þau sömu og síðast. Svo síðast, við sáum þetta dæmi hér, Hello World program. Jæja, hefst í dag, ef við viljum að framkvæma þessi sömu áætlun, það er að fara að líta lítill eitthvað eins og þetta. Og við munum útskýra fyrir löngu hvaða int, og helstu, og tóm, og allt sem er, en að minnsta kosti ég sé hér þegar ég þekki Hello World. Á sama tíma, hlutir eins virka, segjum halló, er mjög einfaldlega að fara til vera a mjög einfalt yfirlýsingu eins og þetta. Printf halló heimur, með nokkrum vitna, með sviga, með semíkommu, en meira um það að koma. Loops, á meðan þetta er lykkja sem, auðvitað, segir halló heim að eilífu, og þetta er að fara að líta lítið weirder en síðast, en ef ég segi eitthvað eins, en satt, ég getur síðan prentað út halló heimur aftur og aftur og aftur og aftur. Og þá eins og þú getur konar af byrja að álykta hér, þetta samningur um að nota hrokkið axlabönd er góður af eins faðma inndregin lína af kóða þar. The printf lína af kóða líkt gula ráðgáta stykki upp hér að ofan. Þannig að við erum ekki að fara að segja að eilífu, við erum að fara að segja en satt, en við munum sjá hvers vegna það er í bara smá. Á sama tíma, ef við höfum lykkju eins og þetta, þar sem þú endurtaka eitthvað endanlegt fjöldi sinnum, þetta líka er það að fara að taka smá tíma að venjast að, en það er að fara að segja fyrir int ég fær núll, ég minna en 10, ég ++, og þá printf aftur. En það er að fara að vera mynstur. Og þá af yður, ég þekki með AP tölvunarfræði, eða Java, eða allir tala af öðrum tungumálum, nánast allar þessar býr svona langt ætti að líta að mestu kunnugt. Svo breyta. Svo hér er einföld Scratch útdráttur sem setur breytu sem heitir gegn núlli, og þá að eilífu segir gegn, og þá breytist það borðið í einu. Svo það byrjar með núll, og síðan einn, tveir, þrír. Jæja, hvernig gætum við kynna að í þetta nýja tungumál svolítið álíka? Int gegn jafngildir núll, en satt, sem er sama hugmynd frá áður um að gera eitthvað að eilífu, og ég ætla bara að fara að printf. Og nú er að fá svolítið skrítið, prósent i, en meira um það að koma, en þessar hugmyndir eru nákvæmlega það sama. Við bara nú að fylgja setningafræði að tölvan er fara að krefjast af okkur. Boolean tjáning, eitthvað eins og SX minna en Y eða x minna en y, og Y minna en z. Það er að fara að líta smá eitthvað eins og þetta með svigum bara eins og í stærðfræði fyrir gott mál bara sjá til þess að röð aðgerða er eins og við ætlum. Og nú, skilyrði. Svo ef x minna en y, segja x minna en y, annars ef x er hærra en y, segja að x er hærra en y, annars rökrétt, x verður að vera jöfn y. Svo þú gætir innleiða eitthvað svona í grunni, eða þú gætir innleiða það í þessu setningafræði. Og aftur, eru hrokkið axlabönd konar gefa okkur sömu lögun eins þraut stykki, en setningafræði, nú er kannski byrja að fylgja nokkrum mynstrum. Svo, hvað þýðir þetta að gefa okkur hér? Þannig að við erum aftur þá á helstu kerfi okkar. Við skulum reyndar, nú, gera eitthvað með það. Svo í þessu fyrsta lína sem við sjáum mikil eru, staðall I / O, punktur klst og þá sumir furðulegur horn sviga neðan sem. int helstu ónýtt og þá printf halló heimur. Svo bara taka skref. Einhver sem hefur aldrei forritað áður, að minnsta kosti útskýra eitt af þessum línum. Using kannski sumir af hrognamál síðustu viku. Hvað er printf, til dæmis? Já. Áhorfendur: [inaudible] DAVID J. Malan: Já. Það er fall, eða yfirlýsing, frá síðustu viku hugtök. Og það er aðgerð það er að gera eitthvað. Nú þetta virka, eða þessa yfirlýsingu, er það virðast taka einhvers konar inntak? Og í hvaða skilningi er það virðist taka inntak, ef svo? Inntak, hvað ég meina með því? Já. Áhorfendur: [inaudible] DAVID J. Malan: Já. Svo klóra út nokkur stykki púsluspil þar sem þú getur parametrize það. Þú gætir sagt að endurtaka loka hversu oft á að endurtaka, svo það var inntak þess konar, og bara eins og grunni hafði smá hvítt tákn fyrir númerinu sem á slá í, svo notum við í þessu texti heimi sviga að gefa okkur að hringlaga form inn sem við getum stinga inntak okkar. Eftir allt saman, tugir ára síðan þegar þetta mál, sem heitir C, var fundin engan búist hún er ein af okkur, þessi nokkrum árum síðar, við myndum vilja til fall sem segir halló. Ekki satt? Það væri gott ef það væri þraut stykki, eða lykill orð, það er kallað halló, sem bókstaflega bara segir halló. En við þurfum ekki að. Við getum haft eitthvað mikið lægri stigi, eins og almenna prenta stjórn, sem tekur inntak, og prentar hvað sem við viljum. Svo eftir nú mynstur sem mun byrja að koma fram. Open paren, nálægt paren er virðist faðma inntak, og þá er ég að sjá tvöfalt vitna á báðum endum. Það er enn skrítið sviga n, en vonandi nú getur byrjað að sjón minnsta kosti að printf er að taka í einhvers konar inntak. Ekki eins notendavænt og Klóra, en það er bara eins hafa tengt nokkur gildi þar. Allt í lagi, nú skulum raunverulega gera eitthvað með þetta. Svo sumir af þú might vita frá hafa verslað bekknum áður, spjallaði við vini, sem í mörg ár við notuðum eitthvað sem heitir CS50 tæki. Þetta var í senn að lýsa tækni kallað raunverulegur vél, sem er a stykki af hugbúnaður þessi þinn forverar myndi sækja burt website Námskeiðið er ókeypis. Þeir myndu einnig sótt ókeypis stykki af hugbúnaður sem kallast Hypervisor, eitthvað sem kallast eins VMware, eða Raunverulegur, eða allir tala önnur verkfæri, og á þeirra Mac eða PC eða hvað tölvan þeir höfðu á síðasta ári og í ár fortíð, þeir myndi tvöfaldur smellur táknið að keyra þennan hugbúnað kallað Hypervisor. Og þá inni af því að áætluninni þeir myndu opna CS50 tæki. Og áhrif var að hvort forveri þinn var að keyra Mac OS eða Windows, hann eða hún þá hafði síðan nýjan glugga á þeirra skjár gangi umhverfi CS50 er. Svo raunverulegur vél gerir þér kleift að keyra einn stýrikerfi inni annars, og það er einmitt það sem við gerðum. Um flest sjálfsögðu við nota stýrikerfi sem heitir Linux, sérstaklega Ubuntu Linux og þetta er mjög góð leið í ár fortíð að tryggja að allir í námskeiðinu bara haft sama umhverfi. Og þú getur notað hvaða tegund af tölva sem þú vilt í raun. Meðal downsides, þó, voru það var eins og tvær gígabæta að sækja þetta. Það var ekki endilega að vinna frábær vel á fólk sem tölvur að kannski aðeins hafði tónleikum eða svo af vinnsluminni, eða ekki of margir gigahertz CPU hraða, og svo á þessu ári, fyrir þessum og öðrum ástæðum, höfum við verið að breyting að þessu umhverfi. Svonefnd CS50 IDE, sem er byggt á opinn uppspretta hugbúnaður, og stutt pallur að fyrirtæki sem heitir Cloud9 styður í Evrópu, sem gerir okkur kleift að hafa í raun að nákvæmlega sama umhverfi og í ár fortíð, en í svokölluðu ský. Svo er það skýið? Þú hefur sennilega smellt helgimynd á Mac eða PC. Hvað er ský? Já? Smá hávær. Já. Það er bara fullt af tölvum annars staðar að geyma gögn og hlaupa hugbúnaður og þess háttar. Svo það er í raun bara að orðinu de að lögum að lýsa [? rentable?] tölvur sem búa annars staðar. Að þú, sjálfur, ekki endilega eiga. Svo þegar gögn eða þinn forrit eru í skýinu, það þýðir bara að það er á einhvern aðrir eru að tölvur annars staðar, og ekki, líklega, á þinn líkamlega laptop eða skrifborð. Og svo er það það sem CS50 IDE er nú. Héðan þú munt fara að vissu URL sem vilja kynna þig að, í Heimadæmi 1, síðar á þessu viku, sem mun þá, ef þú skráir þig inn, gefa þér þetta umhverfi. Og líkt Scratch hafði nokkrar mismunandi spjöldum þátt, svo er IDE CS50 hafa einmitt það. Á the toppur vinstri hönd hlið hér, þú ert fara að sjá kunnugleg skrá vafra. Svo allir af the skrá sem þú setja inn í þetta umhverfi eru bara að fara að vera skráð þar. Skrár og möppur. Á the toppur hérna, þú ert að fara að sjá stað þar sem þú getur í raun skrifa kóðann þinn. Upphaflega í C, síðar í Hugtakið í PHP og JavaScript, og, ef til vill til endanlegrar verkefni, Ruby eða Java eða Python eða allir tala af tungumálum eru studd í þessu umhverfi. Það er alls ekki bundin að CS50 sérstaklega. Og síðan í hornið hér, sérstaklega fyrir þá öruggari, þú hefur eitthvað kallað endastöðvar. Og þetta endastöðvar gerir þú þarft að framkvæma hvaða skipun sem þér vilt í þessu ský umhverfi. Það gerir þér kleift að setja upp allir viðbótar-hugbúnaður sem þú vilt vegna þess að þú hefur svokallaða rót, eða stjórnandi forréttindi. Svo í öðrum orðum, jafnvel þótt það er að lokum hýst í skýinu, og jafnvel þó að við höfum einfaldað þetta að einhverju leyti sjálfgefið, bókstaflega kynna, takk Dan Armendáriz og Dino, og Dan Bradley á liðinu CS50 er yfir framhjá mörgum mánuðum, minna þægilegt háttur sem felur mikið af upphaflega ruglingslegt truflun. Allt þar til að tákna dæmigerður tölvukerfi sem þú gætir notað í hinum raunverulega heimi. Svo hvað þýðir þetta allt, og hvað getum við gert í raun með það? Við skulum taka raun kíkja á dagskrá. Þannig að ég ætla að opna upp Raunveruleg umhverfi hér, sem er bara Chrome okkar Vafrinn, sem gæti verið Firefox, gæti verið Internet Explorer, eða einhver annar flettitæki eins og heilbrigður. Það er fullt sýnd hér í bili. Og ég vil í raun og veru stríða sundur hvað þetta forrit var. Svo skulum taka a líta, með zooming í allt top, hvað ég gerði, og hvernig ég fékk hér. Svo hér þá nákvæmlega Sömu línur af kóða. Þannig að þetta er yfirlýsing, eins og þú fyrr. Fallið sem segir halló. Hrokkið axlabönd, á lína fjögur og lína sex, væntanlega konar umvefja þessi lína til að tengja það með kjarna af áætlun minni. Svo reyndar var þetta leitarorð helstu, sem er þarna upp á línu þremur, er hægt að hugsa um það sem jafngildir um að þegar grænt merkja smellt loka í grunni. Svo það er allt sem við höfum hér, er þegar grænn fáni smellt prenta, eða segja, Halló heimur. En við skulum taka giska, nú, á hvaða þetta fyrst, meira Bogagöng lína, er. Sharp eru, opið horn krappi, staðall I / O punktur klst, loka rétthyrndan krappi. Hvað er að kannski að gera, sérstaklega ef þú hefur forritað áður í einhverju öðru máli. Já? Áhorfendur: [inaudible] DAVID J. Malan: Já. Nákvæmlega. Þannig að þetta er að gefa þér aðgang að bókasafn, svo að segja, af störfum. Og bókasafn af störfum er aðgerðir sem einhver annar skrifaði, annaðhvort nýlega eða fyrir löngu, svo að þú þurfa ekki að fjárfesta á ný the hjól. Til dæmis, við gerum ekki að vita, árið 2015, hvernig á að skrifa kóða sem setur a staf á skjánum mínum. Einhver annar hefur mynstrağur það út með printf virka svo að ég er að raða af abstrakt í burtu frá þeim, eða lag ofan á hans eða hennar númer og nú bara taka því að nokkuð forrit sem ég skrifa Hægt er að prenta eitthvað á skjáinn. Þannig að þetta fyrsta línan þarna í skrefi eitt felur í sér svokallaða haus skrá fyrir venjulegt bókasafn. Svo sjá, tungumálið í sem við erum nú að vinna haft staðlað bókasafn með fullt af aðgerðum. Printf er einn af þeim, og sem fyrst lína af kóða þýðir að gefa mér aðgang að þau virka, þannig að ég þurfa ekki að fjárfesta á ný að hjól. Nú skulum fara til the botn glugga og gera nákvæmlega það sem ég gerði áður. Áðan, þegar ég var whizzing gegnum kóða, slá það út í fyrsta sinn, Ég mjög fljótt slegið, gera halló. Hvað var þetta myndir þú giska? Hvað var ég að gera? Já? Aldrei hugur. Það er allt í lagi. Já. Áhorfendur: samantekt hana. DAVID J. Malan: Já. Það var bara gerð það. Ekki satt? Jafnvel ef þetta er alveg ókunnur til þín, það er nokkuð ensku eins. Það er vissulega ekki núll og sjálfur, svo ég er enn þarf að keyra það í gegnum að svokölluð program, þýðanda, sem er að fara að taka það sem inntak og framleiða framleiðsla. Og að minnsta kosti, fyrir nú, í þetta Linux umhverfi, en þetta er ekki forsenda, þetta er bara þar sem við munum byrja, þú samskipti almennt við tölva kerfi eins og þetta með svokölluðu stjórn lína. Svo með blikkandi hvetja og lyklaborðið, og ekki svo mikið músina, og ekki svo mikið gluggar og tákn og valmyndir, frekar allt er texta. Og jafnvel þótt það finnst, fyrst sýn, kannski, eins og skref afturábak, það er í raun miklu meira öflugur og svipmikill leið að stjórna tölvu sérstaklega eins og þú, sjálfur, verða þægilegt úr minna. Það er að fara að leyfa þér að gera a einhver fjöldi fleiri hlutir en bara hvað Microsoft eða Apple gerir þér kleift að gera með grafísku stýrikerfi þeirra. Svo þegar ég lenti inn, nú, ekkert gerist í þetta sinn því greinilega program halló er upp til dagsetning. Og hvað var stjórn Ég hljóp eftir það? Dot rista halló, og Halló heimur. Nú skulum taka skref baka fyrir aðeins augnablik. Það kemur í ljós að gera halló er bara einfölduð leið að setja saman áætlun. Skulum kynna bara eitt stykki af hrognamál, en þá að fara í burtu frá því, þar sem það er ekki allt sem áhugavert tilgangi í dag. Þýðandinn við erum að fara að byrja að nota er kallað Clang, fyrir C tungumál. Og þetta er forrit sem er að keyra bara eins og við gerðum á the stjórn lína þar. Og svo ef ég vil safna saman forrit sem ég hafa skrifað í skrá sem kallast halló punktur c, ég bókstaflega bara slá clang Hello C inn. Það fyndna er, sögulegum ástæðum ef ég tilgreina ekki nafn forritsins að ég vil að framleiðsla, ef ég geri ekki tilgreina skrá nafn fyrir þá núllum og sjálfur, mjög undarlegt Samningurinn var undirritaður í árum þar sem það fannst konar gott svar á þeim tíma, Jæja við skulum bara geðþótta kalla Fyrsta forritið sem við saman punkt út. A kemur fyrst í stafrófinu. Út, er það framleiðsla. Þannig að við munum kalla forritið sjálfgefið punktur út. Og það er allt í lagi vegna þess að ef ég vil hlaupa the program í þessum texta byggt umhverfi, ég slá bara punktur rista punkt út inn. Og það myndi hlaupa nákvæmlega eins og áður. Svo skulum sjá að alvöru hratt. Svo ef ég fer aftur til mín Kóðinn í CS50 IDE, og ég í staðinn þetta, Clang halló Cot c inn tilkynning ekkert virðist gerast, en næstum alltaf í þetta Linux umhverfi, þegar ekkert slæmt virðist gerast, sem þýðir eitthvað gott gerst. Ef þú sérð ekki villu skilaboð, allt er sennilega vel. Og reyndar, ef ég nú punktur rista punkt út inn, ég hef keyrt mig sama kerfið. Ég hef enn hello forritið frá fyrr vegna örugglega, það er að fara að vera svo miklu betur bara tegund gera í stað þess að muna þessi incantations af skipanir, en við skulum sjá hvernig við gæti bætt við þetta, engu að síður. Svo, þetta er skipun að þýða kóðann. Þetta er skipunin til að keyra safna saman kóða síðan. Hvernig get ég tilgreina skrá nafn? Jæja við skulum kynna bara eitt stykki af hrognamál. Þegar þú ert í þessu texta undirstaða umhverfi, þú ert að fara að vilja til að tilgreina hlutir sem kallast stjórn lína rifrildi. Sem er bara fínt leið til að segja, öðrum orðum á hvetja sem klip hegðun hvað forritið sem þú ert að keyra. Svo sérstaklega program ég gangi, með því að slá nafn clang, er forrit sem heitir Clang. Svo er þetta eða gamla skóla jafnvirði tvísmella á Microsoft Word eða icon sumir forritsins. Ég er í staðinn bara að skrifa nafn þess, en í þessari útgáfu af stjórn, Ég hef þá þjóta o pláss halló pláss halló punktur c. Svo jafnvel ef þú hefur aldrei spilað í þessum heimi áður, bara taka giska hvað er þjóta eða halló gera? Eða hvað er það að segja clang að gera? Já. Áhorfendur: [inaudible] DAVID J. Malan: Já. Það setur bara framleiðsla skrárinnar til að vera halló í stað sillier punktur út. Og reyndar, við skulum reyna þetta. Svo ef ég nú, fyrst við skulum gera þetta, r m halló. Það er að fjarlægja. Og það er að fara að segja Fjarlægja venjuleg skrá halló, sem er óþarflega yfirnáttúrulegt, en það bara þýðir ekki að þú viljir eyða skrá, og ég gerð y fyrir já. Og eftir því, ef þú varst að glancing á toppinn vinstri, gerði það hverfa frá þarna uppi. Leyfðu mér að gera núna clang þjóta o, og Ég ætla að fara á undan og gera halló, í öllum húfur, halló punktur c. Nú, ef ég geri punktur rista halló, hvað myndir þú búast við? Kannski er það raunin viðkvæm. Kannski er það ekki. Við skulum sjá. Engin slík skrá eða möppu. Og við getum konar svindl með bara að horfa á efst til vinstri. Hvað gerði ég augljóslega vista forrit sem? Allt húfur halló. Svo reyndar, það er að fara að gera a mismunur. Svo nú heimurinn er halló aftur. Nú er þetta allt í lagi og gott, og allt mjög hugur-numbing, að einhverskonar fá hika við niður í þessum upplýsingar, en skilja þá er gott. Slá út þessar æ langa incantations er ekki að fara að vera sérstaklega gaman, svo fólk í heiminum fundið annað forrit, fyrir nokkrum árum, sem heitir gera, að einfaldlega gerir þér kleift að slá make nafn af the program þú vilt gera, og gera er klár í að það mun líta í núverandi möppu, aka skrá, og ef þú ert með skrá kallaði halló punktur c, sem er skrá það mun þýða fyrir þig í forrit sem heitir halló. Svo það er mun einfaldari leið að vinnið meira dulinn skipanir sem við gerðum áðan. Og við höfum fyrirfram stillt CS50 IDE að vita að það ætti að gera þjóta o og fjölda önnur fánar, eða stjórn lína rifrildi, að við munum sjá fyrir löngu. En við skulum nú reyndar gera eitthvað meira áhugavert. Bara að slá út Halló heimur allt tíminn er ekki allt sem sannfærandi. Svo láta mig fara á undan og breyta þetta forrit og segja, halló David. Nú ætla ég að fara niður hér. Ég ætla að fara á undan og gera það halló. Og aftur nú þú ert að sjá gera er að sýna þér lengur röð af skipunum sem það er gera vegna þess að við höfum fyrirfram stillt það þannig, en við þarft ekki að hafa áhyggjur í bili hvað það er að gera annað en það er Samantekt punktur rista halló, halló heimur. Hvað er rangt? Já. Áhorfendur: [inaudible] DAVID J. Malan: Já. Svo, noobie mistök. Ég tek eftir að þetta er frábær lúmskur, en stjarna hér í flipanum bara þýðir að þú hefur ekki vistað hana, og vafra og önnur forrit gera þetta stundum. Svo stjórn s eða stjórn s ætti að spara hana. Nú láta mig fara á undan og aftur hlaupa the program. Recompiled. Einmitt, svo það er a multi-stíga aðferð. Enginn sem er sérstaklega flókið, en hvenær við breytt skrá, við þurfum að breyta leiðir núll og sjálfur, og punktur rista halló. Vá. Svo er þetta mjög underwhelming að við prentað bara út þetta. Skulum gera hlutina aðeins meira dynamic, nú. Jæja það kemur í ljós, að eins Scratch, C styður breytur. Og það kemur í ljós ef þú vilt að hafa breytu sem geymir, ekki tala eins og við yfirleitt gerði með grunni, en eins og orð, eða setning, eða nafn, þú getur tilgreint breytu að vera af taginu String. Þannig að við munum sjá meira af þetta í bara smá stund, en það kemur í ljós að C, og a einhver fjöldi af tungumálum eins og það, hafa mjög sérstakar tegundir af breytum. Það er ekki bara eins og algebru, þar sem þú færð X, A Y, og Z og þeir eru bara alltaf tölur, í forritunarmál þú getur geymt tölur, þú getur geyma einstaka stafi, þú getur geymt heilu orð, þú gætir geyma heilar myndir, heilar hljóðskrár, og þess háttar. Þannig að við þurfum að skilgreina hvað tegund breytu okkar er. Og með því að venju ég ætla að kalla mína breytilegum s bara því það er gagnorðar, og s stendur fyrir streng. Og þá er ég að fara að geyma inni þessa breytu, bara eins og með grunni þegar ég nota setja blokk, Ég ætla að nota verkefni rekstraraðila í C, sem fallega nóg er jafnan undirrita, en merkið er þetta. Það færist eitthvað frá hægri í vinstri hönd hlið af tjáningu. Svo það sem ég hef gert, að vera ljóst í lína fimm, er ég hef lýst breytu. Ég hef sagt tölvuna, gefa mér minni breytu, kalla það er, og vita fyrirfram að ég ætla að setja band í það. Og band er bara röð af stöfum. Það er orð, eða orðasamband, eða málsgrein, en það er röð af stöfum. Það er ekki númer. Hvað string er ég að fara að vera setja í breytunni? Jæja, víst vitna unquote, "Hannah". Nú taka mynstur sem er vaxandi. Það er vinstri hönd tjáningu. Það er hægri hönd tjáning, aðskilin með merkið. Og bara taka giska, ef framandi engu að síður, með hvað semíkommu er að gera. Hvað er það væntanlega að gera fyrir okkur? Já? Áhorfendur: [inaudible] DAVID J. Malan: Já. Það er bara slíta línuna. Ekki satt? Tölvur vilja vera hispurslaust sagði, bókstaflega, hvað á að gera. Eins hnetusmjör og hlaup samloku dæmi, ef þú tilgreinir ekki nákvæmlega það sem þú ætlar, það gæti verið vinstri til dóms eða mistaka. Semíkommu þýðir, sem er það fyrir þessa skipun. Það er að vera frábær nákvæmur, og það er mjög auðvelt að fara burt. Svo nú þetta forrit virðist ekki vera atferlis eitthvað öðruvísi þangað til ég gera það virkt meira. Svo frekar en erfitt gat mitt eigið nafn, láttu mig setja staðgenglinum gildi. Og það kemur í ljós að, og ég veit að þetta frá hafa lesið skjöl, og notaði virka fyrir ár, sem printf var hannaður til að vera virkt. Þú þarft ekki að vita fyrirfram hvaða orð þú vilt setja í það. Þú getur í staðinn hafa tákn, eins og prósent S, þar sem er að fara að segja að tölva, setja streng hér. Hvaða band viljum við setja það? Will kemur í ljós að á milli þessara svigum, sem muna, afmarka inntak að aðgerð, ef þú ert með kommu aðskilin lista af hlutum hér, við framhjá reyndar í mörgum aðföng til starfsemi. Svo bara eins og sumir Scratch blokkir, gætir þú ekki hafa leikið með þeim í verkefnum enn eða yfirleitt, sumir Scratch blokkir hafa tvær inntak. Tveir hvítir reiti sem þú getur slá tölur eða orð í. Svo að er C hafa aðgerðir eins printf sem getur tekið tvær inntak. Og aftur, þetta komma er að aðgreina þá. Svo í ensku, aftur jafnvel þótt þú hefur aldrei forritað áður, eftir að rökfræði printf er fall, tekur tvær inntak, einn sem er tákn, hvað myndir þú vona printf er að fara að gera við þessa inntak? Það er að fara að segja halló Hannah, vonandi. Svo til að gera þetta þurfum við að vista það. Ég ætla að minnka hann. Ég ætla að fara aftur niður hér og segja, gera halló inn. Oh. Eitthvað er rangt, og í raun þetta er alveg yfirþyrmandi. Ég hef sex línur af kóða og eins og 12 línur af villum. Svo, hlakka til þessa. Svo hvað er að gerast hér? Svo the bestur þumalputtaregla hér, sérstaklega þegar þú ert að byrja út, fæ ekki annars hugar við draslið neðst. Í staðreynd, ÉG mjög vísvitandi bara að skruna upp vegna þess að mjög oft, tölvan er ekki allt sem bjartr tæki. Það er að fara að fá rugla. Ef það sér eitt sem það skilur ekki, það gæti mistök annað línur af kóða sem rangt, jafnvel þó þeir séu fullkomlega í lagi. Svo þú vilt alltaf að vinna top niður í gegnum villur. Og að vísu er þetta frábær yfirnáttúrulegt í augnablikinu. Villa, notkun óskilgreinda Auðkenni band. Gerði ég meina staðall í? Nei, ég ætlaði streng. Og það er að benda á, kannski er það prentvilla. Raða af eins og stafa-stöðva í mjög geeky vegur, en ástæðan hér, og þú munt vita þetta bara með því að æfa, er að það kemur í ljós að band er ekki til í C. Í raun, C er sérstaklega gamall tungumál, og það er mjög lágt, og það er ekki mikið af möguleikum sem þú gætir hafa vaxið upp með ef þú ert í raun, forritað í Java, eins og sum ykkar hafa, en þú getur kennt henni nýja hluti. Og reyndar, höfum við gert þetta CS50, jafnvel þótt í lok misseris, allar þessar þjálfun hjól mun hafa verið tekið burt, það sem við gerum í þessum Fyrsta par af vika upphaflega er að við höfum líka þú eru CS50 punktur h. Sem er haus skrá. Meira um það í framtíðinni. Það er skrá sem inniheldur aðgerðir sem við höfum skrifað fyrir þig. Og meðal þeirra aðgerða er aðgerðir til að fá inntak frá notanda, eins og strengi, og tölur og rauntölur, og fleira. En það hefur einnig nokkrar flýtileiðir. Það skilgreinir Boolean sem gögn tegund. C er ekki satt eða ósatt. En við getum gefið það hugmyndin um satt eða ósatt með því að þessu bókasafni. Og það hefur heldur ekki með band byggð í þar til við eru þessa línu. Svo þessi lína af kóða segir þýðandinn, hey, Clang, líta í þessari skrá fyrir heild fullt af kóða sem CS50 hefur skrifað svo að einhver að nota þessa skrá getur tekið sem sjálfsögðum hlut að aðgerðir sem þeir hafa bætt við. Svo nú langar mig að fara á undan og hreinsa skjáinn, og ef forvitinn ég ætla bara að segja stjórn Ég hvert sinn til að hreinsa skjáinn, eða þú getur slegið skýr. Ég ætla bara að fara að fara á undan núna og tegund gera halló, og allt er vel. Enn yfirnáttúrulegt framleiðsla, en það er ekki rangra skilaboð. En ef ég gjöri punktur rista halló, og eins og hliðar, punktur rista er framandi flestum. Það þýðir bara, punktur þýðir núverandi möppu. Þannig að ef þú hefur einhvern tíma notað DOS, eða Linux eða Unix þú gætir hafa gert eitthvað eins CD punktur punktur, þar punktur punktur þýðir að fara aftur á bak í tími, eða fara aftur á bak, eða ofar í möppuna. Dot þýðir bara að líta í núverandi möppu. Ég vil halló, sem er hérna. Og reyndar, nú segir það halló Hannah. Og ef ég breytt því aftur Maria, laun það myndi gera halló, punktur rista halló, the program heldur að breytast. En þetta er samt ansi heimskur program. Ef ég vil að skip þetta forrit, eða gefa það til a vinur, eða gefa það til Maria eða Hönnu fyrir þessi efni, það er fínt. Ég get aðlaga það fyrir þau bæði, en það er aldrei að fara að vera virkt. Þeir geta ekki breytt því þegar það er tekið saman niður í þeim núll og sjálfur. Svo það sem við gerðum eitthvað betri? Hvað ef, í stað þess að harður-kóðun inn í forritið nafn þessi manneskja, hvað ef við fáum bara band á eftirspurn? Svo í öðrum orðum, láta mig gera þetta. Ég ætla þá að endurþýða þetta forrit. Og láta mig stækka neðst núna. Gera halló punktur rista halló. Nú er ekkert að gerast. Getum við fengið skjótan sjálfboðaliða að skapa eitthvað? Komdu upp. Hvað er nafn þitt? Pancho: Pancho. DAVID J. Malan: Pacho? Komdu upp. Þegar þú færð upp hér, þetta er að fara að vera mjög underwhelming, en það er meira áhugavert en ég skrifa það. Ef þú vilt fara á undan og tegund nafn, ég gerði þetta forrit bara fyrir þig. Sláðu bara inn nafnið þitt. Sláðu. Wonderful. Allt í lagi, þakka þér kærlega. Pancho: Þakka þér kærlega. DAVID J. Malan: OK. [Applause] Það var mjög góður. Hér þú fara. Hvað gerði við gerum? Þannig að við að lokum, að minnsta kosti, gerði þetta forrit dynamic. Nú er það samt örugglega við hönnun underwhelming, en við höfum loksins getu nú til að skrifa kóðann fyrirfram, mikið eins höfundar printf, og þá virk Adapt byggt á inntak sem við erum afhent, annað hvort með því að forritari, eða með því að mönnum sem er í raun samskipti við the program. Svo skulum reyndar nú reyna að gera nokkrar aðrar býr og sjá hvort við getum ekki gert forrit sjálfir háþróuð meira. Svo skulum við fara á undan og í stað þess að skrifa þetta frá grunni, Ég ætla að fara í dag er uppspretta merkjamál, og allt þetta er að finna á námskeiðið er website, og þú geta draga og falla því í eigin umhverfi þínu koma föstudagur einu sinni vandamál setja 1 gefur þér leiðbeiningar, eða þú gætir gera það á the stjórn lína og vel, en meira að koma í p sett 1. Við skulum sjá hvað er í þessari áætlun hér kallað, naðra punktur c. Nú hef ég áður gert athugasemd það, en hvað er nýtt? Við fyrstu sýn, það lína af kóða er algerlega nýtt? Sennilega ekki í grundvallaratriðum framandi núna. Áhorfendur: [inaudible] DAVID J. Malan: Já, svo int x jafngildir fá n. Við höfum aldrei séð eitthvað af þessu áður, en int er sennilega Táknið fyrir hvers konar breyta, [? frá?] heiltala. Svo int fyrir heiltölu. Það er bara að vera meira gagnorðar. x er bara handahófskennt. X og Y og Z eru enn nokkuð sanngjarnt fyrir tölur, en almennt við notum orð einu sinni Verkefni okkar fá flóknari. Fá int, að sjálfsögðu, líkt fá band, er líklega að fara að fá int frá notanda, og þá erum við að fara að gera það sama með y. Og virðist, jafnvel þótt það síðasta lína, 24, lítur flóknari, það er að fara að segja summu þetta og það er þetta annar hlutur. Og takið prósent ég líklega táknar hvað? Hvaða hlutverki gegnir prósent ég þjóna virðist? Það er bara tákn. Ekki satt? Prósent s var fyrir band, prósent i er fyrir heiltölu. Það er að fara að vera prósent F fyrir fleytitölu gildi, sem er bara tala með kommu. Með öðrum orðum, rauntala. Svo skulum raunverulega saman þetta forrita alvöru hratt og gera adder. Úpps. Gott tækifæri. Svo eftir hér, allan þennan tíma notandi minn nafn fyrir þetta reikningur er jharvard. Ég er í CS50 IDE, aka IDE50. Og nú í bláum hér er minnst, en frá umhverfi, hvar ég er. Og í raun, ef ég stækka upp á toppinn hér, eftir að ég hef IDE50 og ég sé þetta orð, ef þú konar snúa höfðinu til hliðar, vinnuaðstöðu. Í hnotskurn, þá staðreynd að Ég ætla að sjá Tilde skástrik vinnusvæði þýðir að í þessum texta miðað stjórn umhverfi, Ég er í texta nemur þetta Myndræn mappa upp hér. Svo þegar ég punktur rista adder, það er að segja engin regla að gera miða naðra stöðva. Ég veit ekki hvað það þýðir, en það er slæmt fyrir sumir ástæða. Engin slík skrá eða möppu er enn ljóst. Hvar er það þá? Byggt á því hvar ég smellti til að opna skrána fyrr. Hvar gæti það verið? Það er líklega í upptökum einn m, miðvikudaginn og ég get séð það, örugglega, ef ég opna það upp. Það er naðra punktur C, en á Þessi texti-undirstaða umhverfi, aftur, ég verð að vera frábær skýr. Ef ég vil breyta framkvæmdarstjóra í Heimild einn miðvikudagur, ég þarf að slá, CD pláss uppspretta einn Miðvikudagur inn og nú hvetja breytingar mínar til gefa mér sjón bending sem Ég er reyndar annars staðar í umhverfi mínu, en nú get ég ekki gera adder, virðist það að vinna, punktur rista adder, gefa mér heila tölu. Einn. Two. Summan af einum og tveimur er þrír. En ef ég vinna ekki, við skulum sjá hvað fá INT gerir. Gefðu mér heiltölu. Nei Reyna aftur. OK. Fine. 50. 50. Allt í lagi. Svo það vinnur að lokum. Og það er sumir af the virkni sem þessar aðgerðir getur hafa byggt í fyrir þig. Svo inni í framkvæmd af fá int, hvað forritun reisa frá síðustu viku er líklega í það að neyða þessa hegðun Reyna aftur, reyna aftur, reyna aftur? Já, það er líklega einhvers konar lykkju. Það er að fara að líta setningafræðilega frábrugðin blokkir grunni er, en það er örugglega hvað er inni í skránni. Og í nokkrar vikur þegar við munum í raun líta á CS50 bókasafn um hvað er inni, en það er lykkju leggja einmitt það. Skulum spila kjánalegt lítið leikur hér með þessari skrá. Ástand núll punktur c. Við erum bara að fara að almennt byrja að telja á núlli. Og ég að halda rolla fortíð sumir af the efni í kolli. Í bláum hér afmarkast með öllum þessar stjörnur og rista, þá sem forrita áður, hvað er það? Hvers vegna eigum við að halda skipstjóri á það? Hvað? Áhorfendur: Það er athugasemd. DAVID J. Malan: Já. Það er bara athugasemd. Þetta er fyrsta færslan þín fyrir menn að lesa, að í okkar tilviki, segir okkur hvað nafnið á skránni er, sem skrifaði það, og hvað það gerir, þannig að þú þarft ekki að lesa í gegnum kóða að vita hvað þessi skrá er allur óður í. Það er bara lýsing, en virkni er það óviðkomandi. Og ég get jafnvel eytt úr minn skrá og það hefur engin áhrif. Safaríkur línur eru þessir Fyrstu tveir hér, núna. int helstu ógilt jafngildir hvenær okkar grænn fáni smellt þannig að við erum að fara að yfirgefa það vera í dag, og við munum koma aftur, lokum, eins og hvað int og tóm eru, en nú, taka það sem ég hef gert hér líka, getur þú einnig, ef þú ert með í línu athugasemd, ef þú ert með a hélt að þú vilt deila um ákveðna línu af kóða, samningur í C ​​er að gera skástrik rista, og þá nokkrar gagnorðar orð, ekki alla setninguna, almennt ekki málsgrein, sem bara útskýrir að þér, eða þinn TF eða önnur lesendur eða samstarfsfólk, hvað númerið þitt er að gera. Svo frekar en að líta á þessu og álykta af línum níu og 10, það er þetta að gera, í samræmi átta Ég gef bara athugasemd við spyrja notandann til heiltala, þá er ég ekki að hugsa of mikið um hvað línur níu og 10 eru. Ég veit bara að það er það sameiginlega þeir eru að gera. Hvernig? Jæja, hér er hvetja. Hér er að fá í int. Og byggt á fyrri hegðun, það virðist eins og Fá INT er sviði nógur til að ganga úr skugga um að manna vinnur og gefur það heiltala. En nú erum við að sjá þetta. Og þetta minnir grunni. Ég hélt því fram að ég er greina inntak notandans, en nokkuð rangt. Og þetta virðist í C er hvernig við látum if annars, útibú, gaffal í veginum, en ég segja nokkuð rangt. Hvað er padda í þessari áætlun? Um lengra aftur? Já. Áhorfendur: [inaudible] núll. DAVID J. Malan: Já. Svo ef ég tegund í núll, við skulum íhuga einmitt það mál, eða horn tilfelli, ef þú vilt. Svo ef ég tegund í núll, sem af blokkir er að fara að virðast grípa það? The ef eða annað? The annar, og það er að fara að segja, þú sóttir neikvæð tala. Og reyndar, núll er ekki ætlað að vera jákvæð eða neikvæð, og svo það væri ranglega. Það væri padda. Og hvernig getum við lagað þetta? Einhver sem hefur aldrei forritað áður? Ert þú want-- Áhorfendur: [inaudible] DAVID J. Malan: dragast? Áhorfendur: [inaudible] DAVID J. Malan: Oh, þú þarft? Einhver sem hefur aldrei forritað áður. Langar þig til að reyna hendinni á þetta, í rauðu treyjunni? Komdu upp. Ó já, komdu upp, ef þú dont 'hugur. Svo aldrei hafa forritað áður, hvað er nafnið þitt? LAUREN: Lauren. DAVID J. Malan: Lauren, allt í lagi. Svo laga þessa villu fyrir okkur. Þú hefur ekki séð C, væntanlega, og sennilega ekkert annað tungumál. Svo að laga þetta forrit fyrir okkur. Gaman að hitta ykkur. Enginn þrýstingur. LAUREN: Já. DAVID J. Malan: En aftur, ef þetta fjárhættuspil fer samkvæmt áætlun, takeaway hér mun vera, bara aftur, til að byrja til tilkynningar mynstur og álykta frá núverandi setningafræði hvernig annað sem þú gætir tjá sjálfur, engin orðaleikur ætlaður, til að fanga nokkur atburðarás. Þannig að við erum að segja annað hvort. printf, gott. Og taka með CS50 IDE og frankly-- IDE stendur fyrir Integrated Þróun umhverfi. Það er bara fínt leið til að segja forrit sem hjálpar þér program. Það er notandi vingjarnlegur hluti eins þegar þú skrifar eina sviga, það gefur þér sjálfkrafa öðrum. Ályktunin er sú að þú ert loksins að fara að vilja til að slá það, og það gerir það einnig með tilvitnunum. Þannig að ég eins línu 23. 99% af leiðinni þangað. Einhver vill Chime með þjórfé? Ég heyrði semíkommu frá áhorfendum. Good. Svo lýkur að það. Og nú, ég hef bara smá skelfing með línu 21. Hvernig viljum við að tjá þetta? Hvaða spurningar viljum að spyrja, finnst þér? Svo áður við spurði, ef n er stærra en núll, að gera þetta. Annars, gera það. Þannig að við þurfum að velja spurning að spyrja hér. Áhorfendur: [inaudible] DAVID J. Malan: Good. Svo ef n jafngildir núlli. Excellent. Svo skulum staldra hér. Þakka þér svo mikið fyrir braving þetta. Leyfðu mér að gefa þér smá vel skilið streitu boltanum, kannski það. Þannig að við erum næstum þarna. Í raun, Lauren, ef þú ert ekki hugur, láta mig gera eitt klip hér, bara til að vera í samræmi, jafnvel með það sem við sáum í grunni, það ég vil gera með línum 21 og 24, bara aftur byggt um hvernig við gerðum þetta í grunni, kannski? Áhorfendur: Færa upp. DAVID J. Malan: Já, færa það upp. Svo annað ástand, þriðja eða fjórða, eða fimmta eða endanleg útibú, ætti reyndar að koma síðar, og það er bara með því að venju, bara vegna þess að ef þú vilt. Svo ég þarf að gera þetta klip. Og ég þarf að setja My hrokkið Brace aftur hingað. Og nú, this program vilja taka saman. Við erum svo nálægt, en það er mjög, mjög lúmskur galla. Við skulum sjá hvað gerist. Fyrst, láta mig fara á undan og minnka. Ég ætla að fara á undan og slá gera Condition Zero. Oh, laug ég. Nú er þýðanda reyndar mjög klár. Og ég í raun ekki skilið það er villa skilaboð. Notkun niðurstöðu framsal sem skilyrði án sviga, er greinilega slæmt. En hvað þýðir það? Jæja aftur, leita að mynstri í kóða sem við höfum séð áður, hvað er lína 17 í raun að gera, jafnvel þótt Lauren ætlað örlítið annars? Já. Áhorfendur: [inaudible] DAVID J. Malan: Já. Svo muna jafnan merki, virðist eins og við höfum notað það áður, er ekki jafn. Verkefni hennar, frá hægri til vinstri. Svo stilla 17 í augnablikinu er ástand, og það er framkvæmd kóða inni í sviga, en þegar að kóðinn framkvæmir, hvað er að gerast í núll? Hvað er að gerast í gildi á n? Verða núll. Svo ef n er að verða núll, og aftur, eins og á síðustu viku, við segjum yfirleitt að núll er falskur og einn er satt, eða já er ein og ekki er núll. Svo satt og ósatt, einn og 0. Ef n frá línu 17 hefur verið miðað við gildið 0, er núll satt? Nei Samkvæmt skilgreiningu núll er falskur. Það er samningur sem við erum fara til að loða við áfram. Svo mun línur 18, 19, og 20 alltaf eiga nú, rökrétt? Þeir geta ekki. Þannig að við spurði en ekki alveg nákvæmlega, og þú vildi ekki vita þetta nema þú hefur séð það, lausn í C er þegar þú vilt að tjá jafnrétti, þú segir jafngildir jafngildir. Svo merkið var þegar notaður upp með framsali, frá hægri til vinstri. Jafnt jafngildir leið jafngildir. Og ef þú vilt virkilega skoðun að vera boginn, í JavaScript og PHP, það er jafn jafngildir jafngildir, sem meina eitthvað annað að öllu leyti, en við munum fá til að áður en langur. Þannig að þetta er einfalt festa, en ljóst frábær auðvelt að gera þetta mistök, og þá furða og barátta mínútur, ef ekki klukkutíma, hvers vegna er númerið mitt ekki framkvæmd eins og ég ætla? Það er vegna þess að þú did ekki segja það nákvæmlega það sem þú átt. Svo það var nánast fullkominn, var og er frábært að við rakst þessum tveimur litlum það því nú ef við gætum þá, og ég gera Condition Zero punktur rista ástand núll, Mig langar heiltölu vinsamlegast. Við skulum sjá. Nei Það er að fara að neyða mig til að gera það. Svo 42. Ég tók jákvæð tala. Svo nú hvernig ég sanna þetta forrit rétt? Ef þú ert stærðfræðingur, þú getur ekki virkilega að sanna þetta með því að prufa og villa, ekki satt? Þú getur ekki bara sönnun með dæmi, en að minnsta kosti sem forritari við erum ekki ætla að reyna að sanna fyrir nú að þetta er í raun rétt, en ég ætti sennilega prófa nokkrar fulltrúa tilvikum. Ég hef prófað 42. Ég gæti prófa 43. Ég gæti prófa 44. Test 45. Ekki satt? En ég gæti gert þetta mjög lengi. Hvað væri meira áhugavert tilfelli að reyna? Áhorfendur: [inaudible] núll. DAVID J. Malan: Svo núll. Vissulega. Og gott, höfum við fengið það í þetta sinn, Þökk sé nýja númerið Lauren er. Hvað er annað gott mál að reyna? Áhorfendur: Neikvæð einn. DAVID J. Malan: Neikvæð einn, og kannski eitthvað aðeins stærri, svo kannski neikvæð 42, En almennt, þegar prófa forrit áfram, þú ert fara til að vilja hugsa til sjálfur, eins og það eru grundvallaratriði mismunandi tilvikum. Og ég þori að segja neikvæð mál, jákvæð ræða, og núll mál ansi mikið umferðir þeim út. Við skulum líta á afbrigði af þessum þó. Skilyrði einn. Þetta er rétt lausn hér, þannig að þú munt sjá tvö og á netinu, ef þú gengur í gegnum walkthroughs, mun almennt hækka þessar þrepum þar til við fá nákvæmlega rétta nálgun. Hvað ef við vildum spyrja tvær spurningar í einu? Leyfðu mér að opna þetta í staðinn. Non-switch, af ástæðum við munum sjá í annað sinn. Hvað er nýtt setningafræðilega hér? Ég er nú að spila leikinn þar sem tölvan er að segja mér, gefa mér tölu milli einn og 10, og þá er ég að dæma inntak notandans. Á ensku, byggt á kóðann sem þú sérð hér í bláum, hvað er þetta forrit að gera? Áhorfendur: [inaudible] valinn stór eða lítil númer. DAVID J. Malan: Já. Það er bara úrskurða hvort Ég tók stórt eða miðli, eða lítil númer byggt á mjög handahófskennt skilgreiningu á litlum, miðlungs, og hér stór, en tilkynning setningafræði sem er nýtt er þetta. Það er ekkert minna en INT eða jafnt undirrita, eða meiri en eða jafnt og merki, þar sem maður er yfir öðrum, sem þér getur tjáð í eins og Microsoft Word. Svo í forritunarmál þú oftast bara gera tveir stafir, hver á eftir öðrum. Og hvað þýðir þetta líklega tákna, merkið merkið. Áhorfendur: [inaudible] DAVID J. Malan: Já. Það þýðir bara og vegna þess að það kemur í ljós að höfundar C notað eitt merkið, sem þú might hugsa væri fullkominn fyrir að hugmyndin af og er nú þegar notaður upp, svo merkið merkið raun fangar mál sem við viljum í raun. Svo skulum hrasa nú yfir tveimur hlutum. Leyfðu mér að fara á undan og opna einn. Eitthvað sem er svolítið áhyggjuefni. Ónákvæmni punktur c. Leyfðu mér að kynna tvennt hér. Einn, tilkynningu sem við getum gert stærðfræði, eins og bara eins og áður þegar við gerðum auk tveggja talna, x og y. Hvað er þetta forrit virðist gera? Ég hef ekki tjáð það enn, og ég hef kynnt prósent f, en ég sagði fljótt áðan prósent, f þýðir fleytitölu gildi, sem er rauntala. Eitthvað með aukastaf lið, sem er ekki heiltala. Hvað heldur þú að þetta forrit er reyna að sýna mér á skjánum? Já? Áhorfendur: Árangurinn af einn yfir 10. DAVID J. Malan: Já. Hvað er afleiðing af einn deilt með 10. Rétt, því allt sem þú hefur sennilega vaxið upp vitandi að einn yfir 10 er það? Já, það er bara 10/01 eða 0.1. Ekki satt? Svo skulum sjá hvað þetta raunverulega er. Svo láta mig fara á undan og vista þetta. Leyfðu mér að fara niður hér. Gera ónákvæmni punktur rista ónákvæmni, og tilkynning líka, í Linux umhverfi, þú ert ekki að slá út ónákvæmni og taka allan daginn. Það almennt, ef þú högg Tab, það mun ljúka hugsun fyrir þig, byggt á orðum sem eru í boði í núverandi möppu. OK. Svo þú varst rétt. Einn deilt með 10 er, í raun, 0,1. En ég er svolítið forvitinn. Og það kemur í ljós printf styður nokkrar aðgerðir þannig að þú getur að tilgreina fleiri en er aðalnúmerið aukastafa. Þannig að ef ég vil sjá 10 aukastaf stig sem ég get gert prósent, fyrir staðgenglar tákn, punktur 10 fyrir, gefa mér 10 aukastafa, og þá enn fleytitölu gildi, og, eins og innskot, hvað er þetta sviga n virðist við halda áfram að nota? Það kemur í ljós að það er Táknið fyrir nýja línu. Það er mjög skýr leið segja við tölvuna, færa bendilinn í næstu lína eftir að þú ert búinn. Og við munum sjá hvað gerist þegar við gerum það ekki. Leyfðu mér að laun gera ónákvæmni. Nú punktur rista ónákvæmni. OK. Enn rétt. Einn deilt með 10. Nú er ég að fá lítið forvitinn, þó. Hvað ef ég lít 20 aukastaf bendir laun, endursýning, og sem innskot fyrir hraði, getur þú líka notað upp og niður örvarnar til að fletta í gegnum sögu, svo þú þarft ekki að halda retyping þessar skipanir, inn. Huh. Ég vissi ekki að læra það í grunnskóla. Allt í lagi, svo láttu mig sjá eins 29 stöðum út. Kannski er það bara fluke. Kannski tölvan mín er að vinna undarlegt. Það er ekki hlutur, ekki satt? Það er að gera eitthvað deterministically. Svo gera ónákvæmni. OK, það er boðberi upp. Svo hvað er að gerast? Svo virðist þínum kennari hefur legið að þér allan þennan tíma fyrir ástæður sem við munum sjá fyrir löngu. En við skulum enda með einum önnur forrit. Þetta er lítið forrit einhver skrifaði fyrir nokkrum árum, og það er í raun hluti af keppni. Enginn skrifar í raun kóða eins og þetta, og ef þú gerir það, þetta er stylistically vandamál. En fólk gerir þetta fyrir gortari réttindi. Til að skrifa mest truflandi leita forrit sem engu að síður er eitthvað áhugavert. Og athugið að ég hélt að við myndum fara á í dag, áður en Colton leikur okkur út hér, er að keyra þetta forrit, sem jafnvel í bara að nota C í þessi texti-undirstaða umhverfi, gefur okkur þetta. Dammit. [Hlátur] Standa við. [Inaudible] c þjóta Ég m. Þú ert að fara að sjá töfrandi incantation að við munum sjá fyrir löngu. [Inaudible] Allt í lagi. Og nú þú getur jafnvel gera hlutina eins og þetta. Það er það. Fyrir CS50 við, mun sjá þig á föstudaginn. [TÓNLIST spila] [Applause]