DAVID J. Humala: Nii et see on CS50. Ja see oli CS50 enda Colton Ogden, rohkem sellest, kes on muusika võite lae kell soundcloud.com/cs50. Nii et täna me keskenduda enam aasta programmeerimisest. Ja me võtame, kui me lahkusime välja eelmisel nädalal, keskendudes aasta Scratch, mis oli selle graafiline programmeerimiskeel. Ja võtta asju madalamale tasemele, kasutades rohkem traditsioonilise programmeerimise keeles tuntakse C. Kuid mööda teed, mõistes et sama ideed me rääkis eelmisel reedel kordumist mitte ainult selles keeles C, kuid enamikul iga teine et me vaatame seda semester. Nii et me kutsusime seda asja siin, mida viimane kord? See on tüüpiline oma avalduses. Nii et me kutsusime seda avaldust. Ja ta teeb midagi. See on juhis, et arvuti või Scratch võiks täita. Ja edaspidi, olgem alustada ka kutsudes midagi sellist funktsiooni, põhjustel järgnevalt näeme. Vahepeal nägime asju niimoodi. Ja need on tavaliselt tuntud mida ehitada? Sihtrühm: Loop. DAVID J. Humala: Nii loop. Nii et päris lihtne. Ta sõna otseses mõttes teeb mida ta ütleb. Ja Scratch, kui soovite tuupima rohkem puzzle tükki olemas, tükk kasvab sobi see. Ja me näeme, C, et saame teha sama asja. Teist tüüpi silmus, kuigi Scratch võiks olla igavesti, või on mingi number teisi lähenemisviise. Aga võtame veel üld vaadata koos näo see on tõenäoliselt üsna tuttav, at ring üldisemalt. Mark Zuckerberg: One asi, et arvutid on tõesti hea on Korrates käske. Nagu inimene, sa saad tõesti igav, kui te pidid tegema sama asja palju kordi järjest. Aga arvuti saab teha sama asja miljoneid või isegi miljardeid korda ja ei igavleda, ja suutma kanda seda väga hästi välja. Nii näiteks, kui ma soovin teile kõigile Facebookis õnne sünnipäevaks , saates neile e-posti, see võib võtta mind üle sajandil tegelikult kirjutada kõik need e-mailid kõigile. Aga just paar rida koodi, ma ei on süsteem, talle igaühele Facebookis soovivad neile palju õnne sünnipäevaks. Nii see on, mida silmad on ja miks nad on väärtuslikud ja midagi et arvutid võivad teha väga hästi. DAVID J. Humala: Nii et kui olete olnud saaja Mõnede CS50-ja Dropbox on ruumi hilja, see on tegelikult täpselt see, mida me teha, kasutades koodi päris niimoodi. Me sisuliselt on suur tabelisse, kuhu inimesed on sisestanud oma nimesid ja e-posti aadresse. Ja me kirjutasime killuke kood, mis saab kinnitada, kui neid, aadressid ja sülitama unikaalne aadressid kui keegi esitas mitu korda. Ja pärast seda, saadame automatiseeritud e-posti CS50 on bot, sealhulgas kuponkikoodi. Nüüd vaadeldi ka Selle ehitamiseks viimast korda. Ja see on eriti Näiteks mida? Nii et, jah, Boolean väljend. Ja kuju on mõeldud lüüa, et samuti. Kõik sellised küsimused moodustada tõene või väär Scratch vaatame natuke midagi sellist. Ja me nimetame seda Boolean väljend. See on tõesti õige või vale, jah või ei. See on viis, kuidas vastata küsimusele. Ja vahepeal saate need Boolean väljendeid sees konstrueerib nagu need, mis on Loomulikult on tingimused või filiaalide lõpmatuseni kahvlid maantee. Ja nad saavad vaadata mitte ainult meeldib see, kuid nad võivad ka on elses nendega. Ja te võite tegelikult on kolm teed tee hargneb või neli viis kahvel maantee, lihtsalt pesitseb neid asju, nagu näete, Scratch kui sa ei ole juba. Ja kui saad teha C samuti. Võtame teise üld vaata alumnist, samuti, kes võib kujutada teistsugust lähenemist et neid asju nimetatakse tingimused. Bill Gates: Inimesed teevad otsuseid iga päev. Näiteks enne kui lähed väljaspool teid selline on kui avaldus, mis ütleb, Kui sajab, siis ma peame oma jope. Ja arvutid on hämmastav, kui olete otsustada nende tüüpi avaldused, et neid saab usaldusväärselt teostada need asjad uskumatu kiirusega. Ja nii arvutiprogrammi tegelikult on natuke matemaatikat ja mõned Kui avaldused, kus Otsuse saab teha. DAVID J. Humala: Nii nagu te teate, et see oli inimesed nagu Bill Gates, Paul Allen ja teised et tõeliselt avalöögi Niinimetatud personaalarvuti revolutsioon mõned aastad tagasi. Ma arvasin, et enne kui me sukelduda mõnda Administrivia, me seotud muinasjutust Albuquerque, New Mexico Museum of Natural History ja teadus, kus mõned Bill Gates " ja Paul Allen varasemaid lugusid on jutustanud, kuidas me oleme Tänapäeva PC-ja Mac ja rohkem. Selleks aga peame kaks vabatahtlikku kellel on väga hea jutu hääli lugeda skripti valjusti. Olgu, kuidas on seal taga. Tule. Ja kuidas on ees siin. Tule alla. Võtke kohad siin. Nagu te tulla, paar halduskoormuse teadaandeid. sektsioneerimispunktid protsess valimise osas hakkab see Kolmapäevast reedeni. Veel, et tuleval Kolmapäeval loeng. Super lõigud, vahepeal on midagi, mida me pakume järgmisel nädalal kusjuures kogu klass on kutsutud osaleda üsna suures ulatuses lõigud, üks hubane, üks vähem mugav. Ja me kuulutab andmed Selle, nagu ka hiljem sel nädalal. Vahepeal lõigud, ise hakkab nädalal kolm loomulikult null indeksi mis tähendab, et need on paar nädalat välja. Nii et ärge muretsege. Sa pole veel vastamata midagi sarnast. Vahepeal Vahepeal, kui sa Küsimuste halduslikult kirjuta mulle ja Devon ja Gabe ja Rob sellel aadressil siin. Lõpuks probleemi seatud 0 on muidugi välja. Olete ehk märganud, et kursuse kodulehel. See peaks andma teile kõik vastused küsimustele sa oleks võinud mööda teed alustanud probleem komplekti. Aga kui sa leiad end vajavale aidates küljest kõigi vahenditega osalema tööaega Esmaspäev, teisipäev, kolmapäev, neljapäev Selle nädala õhtul neljas söögisaali. Vaata, mis URL seal üksikasjad kus tööaega peab olema. Nüüd kohtume kaks online täna. Mis su nimi on? JAY PAUL: Jay Paul. DAVID J. Humala: Jay Paul, meeldiv kohtuda. HIKARI: Hikari. DAVID J. Humala: Hikari? HIKARI: Hikari. DAVID J. Humala: Hikari. Meeldiv kohtuda ka. Jay Paul ja Hikari olema nende ees nende muusika seisab kahe skriptid, et ma trükitud välja täna hommikul New Mexico Loodusmuuseum ja Science. Ja ma arvasin Teeksin õhuliini on kaasas oma ettekandmine script ja selle ajalugu mõned pildimaterjali, mingeid üllatusi. Ja see, mida ma olen teinud varem on prehighlight oma script mida sa peaksid lugema, ja mida sa peaksid lugema. Ja me põhiliselt lihtsalt vahelduvad punktid. Nii et see on palju nagu te võite teinud inglise klassis. See on tõesti sundida publikut uskuda oma lugu siin. Kas lähme? Nii et lugu siin on meil Põhiline ja see algab Cambridge. JAY PAUL: Oli talv 1974 Cambridge, Massachusetts kus talved on külmad. Habe, pikakarvaline kolledži väljalangevus nimega Paul Allen oli drudging üle Harvard Square, imendub oma mõtteid. Tema peamine mure nendel päevadel oli see, kuidas saada oma sõbra, Bill Gates, koolist ära ja mine äri temaga. HIKARI: kaks olid juba läinud läbi mitmeid äriettevõtteid koos algusega kell Lakeside kooli Seattle'is, kus need maksti tasuta arvuti aeg testida PDP-10 arvuti kohalik aeg jagamine firma. Kõige värskemad plaan oli loobuda kool ja moodustavad tarkvarafirma. Allen lahkus Washington State University. Aga viimasel hetkel, Väravad otsustas jääda Harvard. JAY PAUL: Sel päeval, ületades Harvard Square, Allen märkas jaanuaris 1975 küsimust Popular Electronics Maaga seiskumise pealkiri, Maailma esimene Mini Arvuti Kit rivaali ärimudeleid. Beneath pealkiri oli pildi väike kast kaunistatud tuled ja lülitid. Seda nimetati MITS Altair 8800. Ja Allen teadsin, et see oli see, mida ta oli otsinud. HIKARI: Päeva arutelu järgida. Allen ja Gates aru tähendus Altair. Nad olid rääkinud sageli umbes mikroprotsessorid ja ootasid, et näha, mida tuleks teha koos nendega. Nüüd oli mini kit kaanel Popular Electronics. See ilmselt ei olnud tarkvara veel. Nad kujutasin rahvas programmeerijad laskumine MITS. Ja nii nad kutsusid Ed Roberts, Ettevõtte juht, väidavad, et on versioon BASIC programmeerimiskeelt peaaegu valmis jaoks Altair. Nad ei teinud seda. Ja Roberts pidi teadma, et nad ei teinud seda. Ta oli saada 10 kõned päev inimesed, kes olid BASIC peaaegu valmis. Ja tema aktsia vastus oli: "Esimene inimene kes näitab üles töö BASIC saab lepingu. " JAY PAUL: Gates ja Allen ei olnud kunagi näinud Altair. Nad ei olnud kunagi isegi näinud Intel 8080 mikroprotsessor keskmes Altair. Aga paar aastat varem Allen oli kirjutatud programmi suurarvuti arvuti, mis jäljendasid toimimise eelmine Intel mikroprotsessor. Ja seekord nad teeks sama asja. HIKARI: Intel 8080 kasutusjuhend tema poolel, Allen istus Harvard PDP-10 arvuti ja kirjutas emulaator ja tarkvara vajalikud vahendid, et teha programmeerimine. Vahepeal Gates lõpetas kavatse klasside ja pühendus projekteerimisel BASIC, kasutades iga trikk Ta teadis, et saada suurus allapoole 4 kilobaiti. JAY PAUL: Out in Albuquerque, Ed Roberts sain kõne Gates paludes üksikasjalikku teavet Altair käideldakse rutiini. Keegi kunagi küsis, et enne. Ja Roberts hakkas saada huvitatud. HIKARI: Mis areng ja projekteerimise valmis, Gates ja Allen kirjutas kood PDP-10, värbamine teise Harvardi üliõpilane, Monte Davidoff, kirjutada matemaatika rutiinid. Pärast lõplikku ööl programmeerimine, Allen sai lennuk andma oma põhilised MITS. Ta veetis lennukiga sõita läbi murettekitav. Ja tagasi Cambridge Gates oli murettekitav. Nad olid testitud nende põhi-ja ta oli töötanud emulaator. Aga mis siis, kui emulaator oli vale? JAY PAUL: Kuna lennuk lähenes Albuquerque, Allen aru, et nende BASIC, nüüd kenasti sisalduvate väike rull augustatud paberit lindid, mis kasutu ilma eraldi Programm, mida nimetatakse laadur, et ütleks Altair kuidas loe paberteip olend söödetakse teletaibiaadressid masin. Ta võttis välja oma sülearvuti ja kiiresti kritseldas maha loader programm aastal Assembly, siis käsitsi tõlkida seda arvesse 1s ja 0. Altair ei mõista. HIKARI: Allen ootasin puhas, vähe, kõrgtehnoloogiline ettevõte juhivad mehed ülikonnas. Nii et ta oli üllatunud, kui Roberts täidetud teda lennujaamas otsin nagu rantšo poolt. Roberts oli ka üllatunud. Kui ta langes Harvard programmeerija kallis hotell, Allen pidi tunnistama, et ta ei saa endale ruumi. JAY PAUL: MITS, ise oli asub tolmune ribad kaubanduskeskus. Toas on täis Workbench oli Altair laaditakse 5 kilobaiti mälu ja kaablite et teletaibiaadressid masin. Roberts ja peainsener, Bill Yates, ootasin ootusärevalt nagu Allen lülitada oma laadur Programm viiakse Altair. Teletaibiaadressid hakkas chugging sest see tõmbas paberteip läbi lindi lugeja. Kulus ehk 15 minutit laadimiseks programmi. Siis teletaibiaadressid järsult trükitud mälu kiire, siis valmis kiiresti, ja Allen alustas kirjutades mõned test käske. Igaühe hämmastusega, tarkvara töötas. Seal olid vead, muidugi. Kuid peamine asi oli see töötas. HIKARI: Hiljem teel $ 3,00 lõunasööki Pancho on, herilane lendas aknast pikap veoauto ja nõelab Allen käe. Aga sel hetkel midagi võib rikkuda tuju. Altair oli nüüd tema põhilised, Esimene kommertstarkvara kodus arvuti, tehtud Paul Allen ja Bill Gates, äri nagu Microsoft. DAVID J. Humala: Paljud Tänu meie kahe lugejatele. [APPLAUSE] DAVID J. Humala: Nüüd sul on valik, enne kui sa lahkud, on sädelevat või kuma dark-- oh, ootama üks sek, Oota- sädelevat ja kuma pimedas elevanti alates CS50 enda Cheng Gong. HIKARI: Ah, tänan. DAVID J. Humala: All Olgu, tänan sind nii palju. [APPLAUSE] DAVID J. Humala: Nii tõsi lugu. See tähendab, et kõik need masinad ja lihtsus, millega me kasutada neid nüüd ja võtab enesestmõistetavaks, tõesti algas siin, vaid mõne sammu kaugusel selle tegelik teater. Ja nüüd täna, kui olete ei olnud, see on Maxwell Dworkin, arvuti õppehoones, ka ümber nurga. Ja teisel korrusel see hoone teeb riputada kolm lehekülge algallikast kood, mis Bill Gates ja Paul Allen kirjutas. Tegelikult, kui kasutada suumida aastal näete mitte ainult nende nimed originaalsete, vaid ka oma allkirjaga, et nad ehitud Paar aastat tagasi, kui nad viimati külastatud. Aga mis oli eriti veenvad on see, mida nad on sätestatud, mida teha oli kirjutada programm, mis et teised inimesed kirjutada oma programme. Ajal, kõik oli koos Selle Altair masin tehtud MITS. Ja kõik nad vajasid oli mingi viis mistõttu on lihtne harrastajad ja inimesed nagu meie siin ruumis tegelikult programmi et ilma tingimata mõista Assamblee koodi või masin kood, või jumal hoidku, 0. ja 1s. Me programmeerijad, nagu neid selles toas, me taha olla võimeline väljendama end palju rohkem nagu pseudo kood isegi kui see on natuke rohkem ting valiv kui me rääkisime eelmisel nädalal. Me ei taha, et kirjutada koodi nagu see, mida Paul Allen ja Bill Gates tegi. Meie, selle asemel, tahan kirjutada koodi, mis tundub veidi kasutajasõbralikumaks. Nüüd on see keel, mida nimetatakse BASIC. Ja joon numbrid seal on, mida sa kasuta lihtsalt number rida koodi et sa oled kirjalikult. Me isegi ei pea seda nendel päevadel. Aga näete siin kuidas print "tere maailm" tõepoolest oletatavasti printida just seda. Ja mis siis Bill ja Paul tegid, oli julgustada inimesi kirjutada koodi niimoodi asemel of-- kui te võtate pilk arvutiteadus wall-- kood niimoodi. Tegelikult CS50 hiljuti oli võimalus istuda koos professor Harry Lewis in Computer Science osakond, kes tegelikult õpetas Bill Gates mõned aastad tagasi, ja seisab siin enne need kolm lehekülge väljakirjutusi. Võtame pilk. HARRY LEWIS: Mis teil siin on loetelu alguses tarkvara kirjutatud Bill Gates ja Paul Allen, asutajad Microsoft. Nii et kood on huvitav kahel põhjusel. Esiteks, see muutus Microsofti esimene toode, mis oli tõlgi BASIC programmeerimiskeelt. Ja teiseks, see oli üks esimesi katseid luua tõlk nii tavaliste inimesed võiksid kasutada personaalarvutid. Nii et Bill Gates oli bakalaureuse Harvardi. Hakkasin õpetamise Harvardis 1974. Seda tehti 1975. Nii et see oli alguses oma karjääri ja alguses oma karjääri. Ma tegelikult õpetas Bill sisse Muidugi umbes sel ajal. Paul Allen ei olnud Harvardi üliõpilane, kuid ta oli keskkooli klassivend Bill Gates. Kui sa tuled ja vaata at nimekirjades, saad tegelikult leida kolmas nimi, Monte Davidoff, kes oli Gates klassikaaslane siin Harvardis. OK, nii et siin on huvitav kommentaar siia. Ta ütleb: "In 4K kustutada ruutjuur kuid silmad peaks ikka tegema. " OK, nii et mida see tähendab, on see, et olid kaks võimalust koostada programmi. Üks oli joosta versioon Selle Altair arvuti mis oli vaid 4K sõnu mälu, 4096 sõna mälu. Aga suur versioonis oli 8K. Ja mis see ütleb on et 4K versioon siis tuli kustutada kood, et see sobib. Ja üks asi, et oleks kustutatud oleks ruutjuur rutiinist. Aga ilmselt jaoks silmuseid peaks ikka tööd, isegi kui sa koostamisel alla just 4K versioon arvutisse. DAVID J. Humala: Nii et üks teemasid, nagu me näeme, infotehnoloogia, on see mõiste kihilisus ja veevõtu ja tegelikult seisab õlgadele toredaid inimesi, kes on tulnud enne meid, ei erinevalt mõnest Bill Gates ja Paul Allen jutustav siin. Ja mida see tähendab, et täna saame võtta anda, et asjad on tegelikult meil lihtsam kirjutada koodi. Tõepoolest kood, kui me ütles reedel, on tehniliselt rohkem tuntud lähtekoodi. Ja see on see inglise keeles, nagu süntaks et enam nõuetekohaselt ja täpselt määratletud kui midagi pseudo kood, mis puudub ametlik määratlus. Ja täna me läheme keskenduda on lähtekoodi mis näeb välja selline, mis küll esmapilgul tundub täiesti segasena. Ja ausalt öeldes, see on, kuidas esteetiliselt keerulisem, kui selle aluseks olev programm on. Kõik see programm, Meenuta, on see, mida me tegime öelda? See lihtsalt trükib "hello world". Ja veel vaadata kõiki asju peame ümbritsev, et väga lihtne lause. Aga enne pikka kõik need read ja rohkem teeb palju paremat mõtet teile. Ja vool on järgmine. Mida me vajame, on meie käsutuses võtab koodi, nagu allikas kood, mis me just nägin. Ja meil on vaja uut programmi kestab see läbi. Me peame algoritme, mis võivad teisendada lähtekoodi, nagu see, objektiga koodi 0. ja 1s. Teisisõnu, mida me ei kavatse õppida täna on, kuidas seda teha, kirjutage lähtekoodi üleval, andke seda sisendina eriline Programmi tuntud tõlkija, ja me ei kavatse toota objekti kood. Mis on lihtsalt fancy viis öeldes, me võtame midagi mis näeb välja selline, andke seda käivitatud programm nimega kompilaator, toodavad objekti kood mis näeb välja selline. Nii et need on sõna otseses mõttes mustrid 0. ja 1s arusaadavate Intel arvuti nendel päevadel, et kui tõlgendada CPU, ajud sees arvutis sõna otseses mõttes välja printida, lihtsalt "hello world". Nüüd on nii rohkem 0. ja 1s, kui sa loodan, võib olla vajalik, et. Aga see on sellepärast, et me ehitada aasta hea tehingu keerukuse et saame nüüdsest enesestmõistetavaks. Teisisõnu, palju nutikaid inimesi on andnud meile palju lahedaid tööriistu ja võimas tarkvara, mis me Nüüd saab projekte meie oma. Niisiis alustame. Kui eelmisel reedel, ja jaoks Ülesanded 0 Sel nädalal teid mängima maailmas, mis näeb välja selline. Alates tänasest ning probleemide Vaid 1 järgmisel nädalal, kood läheb otsima veidi rohkem segasena, kuid funktsionaalselt on läheb sama. Nii teate, top on Scratch, alt on C. Ausalt Scratch on palju rohkem kasutaja sõbralik ja kättesaadav. Aga kui sa nüüd võrrelda visuaalselt ülevalt alt, seal on selline 00:59 kirjavahetust puzzle tükid ja keel me oleme umbes mängida. Eelkõige öelda, sinine puzzle tükk üleval, Ilmselt on samaväärne sellega, mis märksõna või eriline fraas selles keeles nn C? Sihtrühm: printf. DAVID J. Humala: printf. See tähendab vormindatud printimist. Ja see on lihtsalt fancy viis öelda printf C saab olema avalduse või funktsioon mis prindib midagi ekraanil. Mis see printida ekraanil? Mida iganes sa öelda, et see sees hinnapakkumisi, sees sulgudes. Nii et taas, küll seal on palju asju et sa pead meeles pidama, sulgudes, hinnapakkumisi, semikoolonit, ja kõik see. Aga kõik see on omamoodi on kõrvale punkti. Huvitav Buffee nüüd on see, et rääkida ploki Scratch on päris palju, mis vastab printf avaldus C. Vahepeal kollane puzzle tükk üleval, kui roheline lipp klõpsates Tõenäoliselt samaväärse et millised märksõna siin? Sihtrühm: Main. DAVID J. Humala: Nii peamine. Ehk keskmine, võibolla tühine. Aga peamine omamoodi kõlab see on oluline, ja seda ta tõepoolest on. Nii et kui roheline lipp klõpsatud on jällegi puzzle tükk et avalöögi Kogu Scratch programmiga. Aga me nüüd alustada kutsudes et peamine, selle funktsiooni tuntakse peamine. Nüüd vahepeal paneme üldistada seda järgmiselt. Me võime nimetada öelda funktsiooni. Ja see võib tunduda just niimoodi. Noh, aga silmad? Kui me tahame, et alustada konverteerimiseks või tõlkimise rohkem Scratch C, see asi siin ilmselt lihtsalt ütleb "hello world" igavesti. Nii et kui sa seostab neid skripte kass Scratch, see on lihtsalt läheb aina kordad mingi koomiks mull, "Hello world, hello world, hello maailmas, "ad nauseum, igavesti. Kui me tahame teha midagi sarnast C, siis läheb vaadata veidi segasena. Aga me ei saa saavutada sama tulemusi, kuna jagame lõpuks teada, süntaksi niimoodi. Ma lähen kasutada printf jälle sest lõpuks päev Ma tahan printida "hello world". Ja ma ilmselt kasutades märksõna, mis ei ole igavesti. See on selle asemel sõna ajal. Aga semantiliselt sisse Inglise, samas omamoodi näitab mingi loop või tsükli. Nii et juhtub olema märksõna C kasutab. Ja kuigi tõsi, siis miks ei samas tõsi tähendab tegelikult igavesti? Noh, samas, kui me varsti hindan seda enam, on see Sulgudes kõrval kus saab panna Boolean väljend. Ja nii kaua, kui see avaldis on tõene, on see kood, mis tähistatakse nende kahe looksulg kui me kutsume neid, muudkui jookseb ikka ja jälle. Nii tõsi on tõsi. Niisiis, kui õige vahend lihtsalt seda teha igavesti. See on peaaegu rumal ehitada ennast väljendada. Aga ei olnud igavesti märksõna C. Oli samal ajal. Ja seal oli väga lihtne Loogiline väljend nagu tõeline. Ja nii see, me näeme, saavutab sama tulemuse. Kuidas muidu oleks teil rakendada loop? Noh, Scratch võite kõva kood konkreetne number korduste silmus siin. Ja see on täpselt see, mida me võiks teha selles versioonis C, kusjuures meil on niinimetatud jaoks silmus. Ja silmus siin läheb itereerima, veidi salapäraselt, väärtusest 0 püsti , aga vähem kui 10. Nüüd muutujate Scratch. Sa ei pruugi pidanud korral kasutada neid. Aga mis mõtet on üldiselt muutuja, nagu rääkisime eelmisel nädalal? Mis see on? Sihtrühm: juhib. DAVID J. Humala: Punkti? Oh punktid. OK, jälgida punkte, Näiteks mäng. Või üldisemalt teed Mis on muutuja? Milline on kasuliku neist? Sihtrühm: Memory. DAVID J. Humala: Jah, nii mälu. See hoidmiseks midagi. Ja omamoodi tobe visuaalne Kasutasin Viimane kord oli niimoodi klaas kauss. Ja kui me tahame, et salvestada midagi sees muutuja, Näiteks praegu väärtus on kuus, kuna seal Kuus ping pong pallid siin. See on lihtsalt mingi ladustamine mahuti, mis all kapuuts rakendatakse koos bitti, 0. ja 1s, aga arvuti juhtub seda teha. Nii Scratch, kui me tahan olla erinev, saame kasutada oranž blokk niimoodi. Me helistame, et terrorismivastase sellel konkreetsel juhul. Ma vormindatud see 0. Ja mida see ma siis teen? Forever, ütlevad loendur, mis siis, kui sa mängid, et Scratch, sa lihtsalt vaata Scratch. Kass või mis iganes kostüüm paned Tema räägib number küsimus. Muuda counter 1 on nagu incrementing 1. Ja nii see läheb loe, mida siis? 0 til lõpmatuseni, või kuni Scratch puruneb, või kuni sa omamoodi kaotada huvi vaadates kuidas kõrge ta võib tegelikult arvestada. Niisiis, kuidas võiks me muuta see, et C? See saab vaadata veidi segasena. Aga jälle, kui te vaatate iga Nende joonte üksikult nad omamoodi rivistus üldiselt. Nii et ilmselt int läheb on mingi eriline tähendus C. Me näeme, et jälle. Selle kõrvale see tähendab täisarv. Nii et see tähendab lihtsalt number. Nii et see tüüp klaasist kaussi Ma tahan, üks mida saab salvestada numbreid, ei ping pong pallid. Ja ma lähen kasutada võrdusmärk ei määrata selle väärtus 0. Nii et on üsna nagu komplekt loendur 0, kuid C. Vahepeal samas tõsi, et see oli ekvivalenti, muidugi igavesti, kuigi see on veidi segasena, ja siis sees looksulg. Ja sa ei mõtle neid looksulg, kuhu saab kirjutada klaviatuuril, kui tõesti oleks nagu kõverust need kollased loop plokid Scratch. See hõlmab mitu rida koodi. Printf muutub natuke hirmutav nüüd, sest ma vaata mitte ainult tsiteerib sulgudes. Aga mida veel uut süntaktiliselt selles näites? Seal protsenti d. Ja siis längkriipsu n on olemas. Me ei näe, et enne, isegi kuigi ma ei maininud seda. Siis on koma. Ja siis seal on counter. Aga me näeme vaid hetkel, et see on lihtsalt standard viis öelda print "Koma number," quote, lõppeb, mõned kümnendkohani. Aga ma ütlen sulle hiljem mida see koma number on. Seega asjaolu, et seal on komadega seda joont ütlus printf, tähendab, minna ja print mõned kümnendkohani. Oh, ja muide, kui palju on olenemata selle muutuja väärtusele on. Ja nii, et muuta see rohkem selge, eks me näeme näiteks Enne pikk segatud täpselt printf kontekstis reaalse C programme. Nüüd lihtsalt pakkima mõned Nende konstruktide. Loogiline väljendeid, ei pruugi teil olla korral kasutada neid oma programmi aga sa võiksid väga hästi, eriti kui lehe tingimustel. Ja nii need kaks näidet Scratch tähendab, kui x on väiksem kui y, või kui x on väiksem kui y ja y on väiksem kui z, kuidas võiks tõlkida seda? Noh, C see on lihtsalt läheb välja nägema selline. Vähe segasena, rohkem sulgudes mingi imelik sümboliga, kuid põhimõtteliselt ideed on nii lihtne kui nad on puzzle tükk maailma. Me lihtsalt kontrollida, kui midagi on väiksem kui midagi muud. Kuidas tingimustel? Lühidalt inglise keeles, mida see patakas Scratch kood ei sa ütleksid? Sihtrühm: Võrdleb kahte numbrit. DAVID J. Humala: võrdleb kaht numbrid, ja kui x on väiksem kui y ta ütleb, kui palju. Kui x on suurem kui y ta ütleb, kui palju, muidu kui x on võrdne y ta ütleb nii palju. Nüüd, kus ta x ja y on pärit? Kes teab. See patakas Scratch kood on kontekstist välja. Aga see, mida me tahame teha, on praegu tõlkida see hetkeks näha. Nii et kui sa end mugavalt sel nädalal Ülesanded 0 mängib selles maailmas Vasakul mõistma et ideid ei muutu sel nädalal või järgmisel või väljaspool seda. Me lihtsalt läheb hakake asju aastal teistmoodi meie klaviatuuri asemel hiireke. Seega, kui x on väiksem kui y ja seal on mõned sulud seal, siis seal on mõned looksulg jälle omamoodi kapseldada ta nagu kollane puzzle tükki teha. Ja ma lähen printf x on väiksem kui y ja nii edasi. Mis on ilus umbes C, nagu näete siin, on see, et sa ei saa seda pesitsevate, pesitsevate, pesitseb see on tingimata sunnin oma koodi paremale. Võite selle asemel on kõik rivistus korralikult meeldib see. Aga see on ainult esteetiline üksikasjalikult me ​​näeme jälle enne pikk. Olgu. Nii et see toob meid tagasi see segasena otsin programmi. Olgem tegelikult kirjutada mingi kood. Nüüd, kuidas sa minema umbes kirjalikult koodi? Kõik need aastad, et olete omanik Mac või PC, lauaarvuti või sülearvuti, olete tegelikult oli võime hakake kirjutama programmi koodi. Aga sa oled ilmselt puuduvad eriliik programm. Saad kindlasti kirjutada koodi. Aga sa ei saa tingimata, karbist välja, teisendada, et lähtekoodi objektiga koodi 0. ja 1s ilma, mida arvuti? Sihtrühm: tõlkija. DAVID J. Humala: Nii koostaja, eks. Nüüd enamik te ilmselt ei oma kompilaatori ei ole kunagi alla koostaja. Aga näete, saad selle alla laadida nagu enamik muid tükk tarkvara. Tänapäeva maailmas Mac OS, võite laadida või alla laadinud juba midagi Xcode või GCC või rõkkama. Kui sa tuled Windows maailma võite allalaaditud Visual Studio, Visual Basic, keskkondade niimoodi. Seal on kümneid koostajad nendel päevadel, et sa võiksid kasutada. Aga lühike siin on, et see oleks valu ja ausalt öeldes, tehnoloogilised luupainaja sadu inimeste erinevate Arvutikonfiguratsioonide kõigile seadistada oma seadmed täpselt samamoodi nii et me kõik võime olla samal lehel. Nii et see, mida me selle asemel tegema aastal CS50 on meil teile standard keskkonda, Linux keskkonnas, mis on läheb otsima vähe midagi sellist. Näete rohkem seda on Ülesanded 1 spetsifikatsioon, mis läheb Internetis sel reedel. Ja mida see tähendab on see, et sa edaspidi hakkavad saama laadida ja installida programmi nimetatakse CS50 Appliance. Ja sa lähed alla laadida ja paigaldada teise programmi nimega hüpervisoori, mis on lihtsalt fancy viis selle saavutamiseks. Kas te oma Mac või PC või Linux arvutisse või Solaris arvutis või mis iganes hull operatsioonisüsteemi süsteemi sa kasutad, sa lähed alla laadida programm nimetatakse hüperviisor see jooksegi CS50 Kodumasinad arvutis ükski asi, mida teie operatsioonisüsteem on. Hüpervisoori teisisõnu teisendab meie kraami olenemata keelest, olenemata juhiseid oma oma arvuti aru saab. Nii et see on kihilisus. Ja veel, see on selline temaatiliste arvuti teaduse, hoone peal asju. Sul võib olla Windows. Sul võib olla Mac OS. Aga alustades järgmisel nädalal olete läheb allalaaditud vaba tarkvara nimetatakse hüperviisor. Sa lähed on alla tükk tarkvara nimega CS50 Appliance. See saab toimuda hüperviisor, mis läheb teie arvuti. Ja tulemuseks on et me kõik on lihtne aken, nagu see Mac või PC mis annab meile illusiooni kõik töötab sama operatsioonisüsteemi, ilma muude mõju arvuti. Ja te võite täisekraanil see ja sisuliselt käituma nagu oleks teil on operatsioonisüsteemi nimega Linux, mis on see, mida CS50 Kodumasinad põhineb. Nii et olgem tegelikult kasutavad seda nüüd kirjutada programm. Võite kirjutada programm kasutades Microsoft Word. Võite kirjutada programm kasutades TextEdit või Notepad, või WordPad või päris palju tahes sõna töötlemise programm olete kunagi kasutada. Kuid reaalsus on see, te ei tohiks kasutada tõesti mõnega neist programmidest. Te kindlasti ei tohiks kasutada midagi nagu Microsoft Word, mis on julge sõidusuunas kaldkirjas, ja suurem fonte ja väiksemaid fonte sest arvuti ei ole hooli sellest. Kõik arvuti läheb hoolivad English nagu juhiseid kirjutatud C. Niisiis, mida me teeme sees Euroopa CS50 Appliance on kasutada programmi vabalt olemas, ja see on eelinstalleeritud selles seade, mida nimetatakse Gedit. Ja Gedit on lihtsalt super lihtne tekstiredaktoris nagu Mac OS TextEdit, nagu Windows Notepad, mis läheb vaata natuke midagi sellist. Nii et olgem tegelikult ei vaata slaidid selle. Kuid olgem tegelikult minna keskkond ise. Ma lähen edasi minna ja sisse sellega teiste aknas minu CS50 Appliance, mis ma olen eelinstalleeritud minu sülearvuti siin. Pane tähele, et nagu Windows ja Mac OS, see sai mõned menüüd. Nagu Windows ta paneb see seal selle asemel Mac OS, mis paneb selle sinna. Kuid reaalsus on see, et see on igasugu sama. Ja siin on kogu hunnik tarkvara. Seal on Dropbox. Seal on terve hunnik lisaseadmed graafilise programmid, paneme kasutada hiljem perspektiivis probleem komplekti. Seal on veebilehitseja ehitatud nii, et see on küps arvuti sees arvutis. Aga ma lähen klõpsa selle vasakpoolsema valge ikoon siin , mis on ikooni Gedit. Ja see saab avada aken et on kolm paneelid see, vasakpoolne, ülemine ja alumine. Nüüd on selles ülalt õige, et Ma tegelikult kirjutada mingi kood. Teeme seda ,. Ma lähen, et minna File, Save. Ja sa ei pruugi kunagi näinud see konkreetne aken enne. Aga see on nagu Mac OS või Windows. See on lihtsalt aknas kõik kaustad et mul on sees selle arvuti. Ja ma lähen säästa fail hello.c. Ja ma lähen edasi ja klõpsake nuppu Salvesta. Ja nüüd teate mul tab ülaosas vasakul nimetatakse hello.c. Nii et ilmselt päris tuttav, isegi kui sa oled ei kasutatakse selle konkreetse programmi enne. Ja nüüd ma lähen kirjuta need üsna segasena jada käske et me nägime hetkeks tagasi. Kaasa, standard I / O.h. Veel, et varsti. Int main void, avatud lokkis traksidega, suletud lokkis traksidega. Ja siis seal sees on minu arvates kus meil oli "hello world" semikoolon. Ja nüüd salvestada. Nii et see on kirjutatud programmi C, kirjutatud, seega lähtekoodi. Aga ma ei saa lihtsalt käivitada see programm. Ma nagu tahad kahekordistada kliki ikooni kuhugi, kuid ikoon on olemas teisi kui lähtekoodi fail. Mis jällegi on protsess nüüd, et Mul on vaja käivitada see fail läbi? Sihtrühm: tõlkija. DAVID J. Humala: Nii tõlkija. Nii et erinevates arvutites seda erinevalt. Aga mida me oleme teinud siin CS50 Appliance see on esindaja, kuidas te võite Selleks on palju erinevaid süsteeme, on Ma lihtsalt lähen käivitada käsk nimega Mark. Ja teha on sõna otseses mõttes seda teeme. Tee mind programm. Nii et läheb käivitada kompilaator minu jaoks. Ja programmi nimi Ma tahan teha on tere. Nüüd teeb on programm. Ja teha on piisavalt targad, et aru, et kui ma ütlen teha hello, see läheb vaatama automaatselt faili nimega hello.c lihtsalt sellepärast, et see on nii see konfigureeritud. Nii et kui ma nüüd Enter siin, see hull segasena line just hukata. Ja usu mind, enne pikk jooksul vaid paar päeva, saate aru, mida kõik selle jama vahenditega. Aga nüüd, lihtsalt tean, et teha vallandatud täitmise tõlkija. Teisisõnu, see leiti koostaja minu arvutis see on eelinstalleeritud aasta CS50 Appliance et me anna teile Ülesanded 1. Ja siis võttis hello.c kui sisend ja toodetud ilmselt 0. ja 1s toodanguna. Ja vaikimisi, mida ta teeb, on see säästab need 0. ja 1s faili nimega hello. Ja kuigi see süntaks liiga võiks on uusi teid, lihtsalt öeldes dot kaldkriips hello saab olema vahendid, mille abil ma programmi käivitada. Praegu ja vähemalt paar nädalat, peaaegu kõik programmid Me kirjutada ei kavatse olla must ja valge tekst aknad. No Hiirtel ei klõpsamine ilma akendeta, ei ikoone. Me läheme seda lihtsalt ja keskenduda algideedest algselt enne kui me midagi kõrgem tase, näiteks nagu break out mäng, mis me rääkisime umbes esimese loengu eelmisel nädalal. Nii et kui ma Enter siin, et see on vaste ainult teksti keskkond kahekordistada klõpsates ikoonil nimega hello. Mida ootate tahet juhtuda, kui ma tabanud Sisesta siis? Sihtrühm: See saab printida "hello world". DAVID J. Humala: Loodetavasti ta prindib "hello world". Ja ta tõepoolest tegi. Nüüd on olnud mõned segasena süntaks siin. Lähme tagasi kerida vaid hetk ja vaata, kas me ei saa alustada järeldada lihtsalt sisemusse, püüdes ja jättes, selle kohta, mis siin toimub. Mis siis, kui ma saan lahti längkriipsu n? Nüüd mõned teist, kes olen programmeeritud enne ilmselt tea kohe, mida see tähendab. Aga neile, kes pole kunagi programmeeritud enne, vähemalt arvan ise, mis toimub muuta, kui ma uuesti, see programm? Nii et ma lähen tagasi alla mu väike must ja valge aken, mis on aken, kus Võin koostada selle. Ma lähen kompileerida tere. Me näeme sama segasena jada käske. Ja ma teen dot kaldkriips tere. Ja nüüd keegi, kui teil oleks, kes pole kunagi programmeeritud enne, Mis võib olla erinev seekord? Jah. Sihtrühm: See ei peatu trükkimine "hello world". DAVID J. Humala: See läheb to-- kahju? Sihtrühm: See ei peatu trükkimiseks? DAVID J. Humala: see ei ole Printimise peatamine "hello world". Nii et ei ole halb mõte. Ideid? Jah. Sihtrühm: Veateade? DAVID J. Humala: Error sõnum, OK, võiks olla. Mis veel? Sihtrühm: See võib printida bracket semikooloniga ka? DAVID J. Humala: võib printer printida bracket semikoolon samuti. Nii et võibolla see tagurpidi kaldkriipsuga siis on mõned liiki terminous, mis on oluline. Muid mõtteid? Nii et kõik head ideed. Ja tegelikult, see läheb olla veateate. See on ilmselt kõige tõenäolisem olevat vastus üldiselt Järgmise paari nädala jooksul kui me õpime koodi siin. Aga nüüd meeles, et arvutid ainult seda, mida sa neile öelda, mida teha. Palju nagu naeruväärne maapähkli või ja marmelaad näiteks. Meie inimeste arvuteid vaid peaks teha seda, mida sa ütlesid, et nad teeksid. Nii et sel juhul, kui te ei ütle arvuti liikuda, et vilkuv kursor Järgmine rida, ta ei kavatse seda teha. Nii et kui ma saan selle programmi nüüd märgata erinevust. Paistab, et viga. See on esteetiline bug, võibolla. Aga mis on erinev sellest võimsus vs viimane loomulikult? Jah. Sihtrühm: See ei tee uut rida. DAVID J. Humala: See ei tee uut rida. Nüüd neile, kes on äkki tehtud veebilehti enne, sa võiksid teada, et BR tag või lõikes tag, väga sarnase sisuga. Veebibrauser ignoreerib sind, kuni sa ütle täpselt, mida teha. Samuti on keel nagu C ainult teeme, mida sa öelda tahad. Nii et sel põhjusel, et kõik need näited, Siiani on selline juhuslikult oli see tagurpidi kaldkriipsuga seal, see on vahend millega ennast väljendada kui reavahetusmärki, nii rääkida. Ja te võite seda mõista, võib-olla, et see näeks välja tobe Kui mitte midagi muud. Kui ma tahtsin uut rida, vaid Enterin ja seejärel objekti butchering kood niimoodi ei tohiks tõesti hõõruda sa õige tee. Ja isegi kui sa seda ei tee tõesti hoolivad sel hetkel, siis saad aru, et see ei ole eriti stiilne tükk kood. Ja nii see, mida maailm otsustas aastaid tagasi on et kui sa tahad panna Cursor'iga uus liin selgesõnaliselt, peate selgelt öelda uus liin, längkriipsu n. Ja seal on mõned muud sümbolid niimoodi. Aga nüüd me lihtsalt keskenduda längkriipsu n. Nüüd teeme programmi natuke huvitavamaks. Ma lähen edasi minna ja seekord avada uus fail. Ma lähen, et päästa seda hello-1.c. Ja lihtsalt peksab, ma lähen mine pane see minu Dropbox kausta. Nagu näete, on CS50 dokumentatsiooni seadme hiljem sel nädalal Probleem Vaid 1, me julgustada teil kasutada Dropbox või mõnda samaväärset teenust, sest siis on kõik teie kood on läheb käiks automaatselt. Ja see on põhjus, miks ma olen läinud selles kaustas siin. Ja nüüd ma lähen kirjutada veidi erinev programm. Kaasa, standard I / O.h, int main void. Ja siis siin printf, hello world, mis on täpselt sama nagu enne. Aga nüüd ma tahan printida midagi see on veidi erinev. Ma tahan välja printida, öelda: "Tere, David." Olgu, ilmselt, see peaks loodetavasti olla nii, et kui ma kompileerida Selle programmi uuesti, see, see saab öelda "tere, David." Aga mis siis, kui ma tahan tutvustada selline muutuja, mõiste pakend, mis läheb salvestada D--v-i-d ja ei ole raske koodi see minu programmi. Noh mis siis, kui ma alustan midagi sellist? String s, nii et see on muutuv. Kui soovite string, teise nimega sõna või fraasi. Märgijada, mida me programmeerimine helistada string. Me lihtsalt läheb üldiselt kõne see s, sest see on kena lihtne nimi. Aga ma ei saanud helistada see midagi. Ma lähen ütlen string s võrdsete quote lõppeb, "David" semikoolon. Ja nüüd ma tahan lisada D-a-v-i-d sellest, mida ma olen trükkimine. Ja enne kui me nägime teaser kohta ekraanil mõned süntaksit mis võimaldas meil asendajana väärtus. Mis oli eriline sümbol mõned slaidid tagasi? Niisiis protsenti. Tol ajal oli see protsent D kümnendkohani. See valik ei oma siin tähtsust. Selgub, et tema teise protsenti sümbol, mis on protsendi s, mis tähistab jaoks kohatäide string. Nii et nüüd, väga lihtsalt, ma olen lähen tegema hello-1, sest seda faili nimetatakse hello-1.c ja vajuta Enter. Ja ma silmamunad. Mis toimub? Noh, siin on koht, kus me peame hakkama aru, et me oleme see käsk line keskkond, seda ainult teksti keskkond. Ei ole klõpsates ikoonid nagu kaustu praegu. Ja arvan, et tagasi hetk tagasi. Millises kausta ma ütlesin Ma hoidsin oma koodi? Nii Dropbox kausta. Kas on kutsutud midagi. Aga see juhtub nimetada Dropbox. Nii et ma kuidagi on vaja topeltklõpsu et Dropbox kausta, et saada seda ja saad mu kood nimega hello-1.c. Tegelikult, las ma minna ja minimeerida see aken hetkeks. Just nagu Windows ja Mac OS, seal on kaustad Linux. On kaustad CS50 Appliance. See on lihtsalt praegu me sulgeda end selle teksti keskkond. Aga kui ma topelt klõps on Dropbox, märkate seal on fail, et ma tahan koguda. Aga ma vajan seda mustvalgelt terminali aken, nii rääkida. Aga mul on vaja seetõttu, et liikuda samasse kausta või kataloogi. Nii et veidi kauge, kuid Sa harjud selle liiga. Tänapäeva maailmas on Linux, mis omakorda on tegevuse süsteem meil hakkab seestpoolt CS50 Kodumasinad, seal käsk nimega CD. Mis tähendab, et ma saan teha, CD, ruumi, Dropbox. CD, muutus kataloogi. Õigus. Juba järgmisel päeval, kui inimesed olid leiutas arvutid ja tegutsevad süsteemide nagu see, et nad tahtsid kirjuta kõige vähem klahvivajutusi võimalik. Nii et lihtsaim viis öelda muutus kataloogi CD. Nii et kui ma tabanud CD, ruumi Dropbox, teate, mis on muutunud siin. Toas sulgude Seade on selline kohta humoring mind ja meenutas mulle, kus ma olen. Nii avatud kausta Dropbox. Kui ma nüüd kirjuta LS nimekirja, jälle lühike, sest inimesed ei taha kirjuta juba järgmisel päeval l-i-s-t. Nii nad selle asemel tegi ta ls. Sisesta. Pange tähele, ma näen kahte asja, tere-1.c, ja siis see segasena asi, allikas 1m. See on lihtsalt minu viis öelda lähtekoodi nädal 1 esmaspäeval. See kaust ma alla laadida CS50 veebisaidil, et ma tegin täna ja lihtsalt panna see Seadme ette. Aga nüüd ainus asi, mida hoolin teeb seda programmi. Nii et kui ma tüüpi muuta tere-1, Enter. Kurat. Midagi läks valesti. Nii et olgem kiusupunn see peale. Ja kahjuks on see kus asjad natuke stressirohke alguses, vähemalt siis, kui olete kunagi programmeeritud enne. Mu jumal. Kirjutasin kaks rida programmi ja Mul on neli rida vigu. Niisiis, mis toimub siin. Kõigepealt alati tagasi kerima up ja leida esimene veateade, sest Sageli koostajad lihtsalt saada segaduses, mida sina ja mina. Koostajad on päris loll. Nad ainult seda, mida sa ütle neile, mida teha. Ja kui sa neid segadusse ajada, et nad on lihtsalt läheb selline öökima oma käed ja võibolla viska rohkem veateateid kui on tegelikult oluline. Nii et vaatame kõigepealt. Super segasena alguses. Aga teate, siin on nimi fail, kus ma silmamunad ilmselt. Colon 5, käärsoole 5 tähendab lihtsalt kohta sirgel 5 viienda iseloomu. Nii et viies kolonn tähemärki kui soovite, viga. Kasutada deklareerimata tunnus string. Kas mõtlesite standard n? Ei, ma mõtlesin string. Ja siis see on selline kopeerimine ja asetamine mida ma kirjutada, et tõesti juhtida oma tähelepanu, kui ma silmamunad. Nii mingil põhjusel C või vähemalt koostaja ei saa aru sõna string. Ja see on sellepärast, et me tegime seda üles. Nii et string ei ole olemas C. Mis CS50 teeb, Esimese paari nädala jooksul ainult klassis on meil pakkuda mõned koolitus rattad, nii rääkida. Ja me paneme need abirattad sees spetsiaalne fail nimega CS50.h. Nii et see on teine ​​kahe faili nimed, mis ilmselt lõpeb dot h. Lähme tagasi kerida. Printf on avalduse või funktsioon et ilmselt trükib midagi ekraanile. Aga te ei näe mind rakendada printf, eks. Keegi aastat tagasi ellu printf. Millises faili sa kihlvedu ta või ta pani rakendamise printf, kood printf? Faili nimega standard I / O.h. Tegelikult, see on ilmselt kaks faili, standard I / O.h, mis tähistab kaudu fail ja standard I / O.c, mis tähistab C lähtekoodi. Nii ta mõned aastad tagasi plopped kood, mis nad kirjutasid, et fail nii et inimesed nagu meie aastat hiljem saab lisada see, niiöelda meie oma programme. Ja tõepoolest, seda nael märk millele järgneb sõna hulka ei. Tundub kohalikule kõvakettale, leiab fail nimega standard I / O.h, ja siis tegelikult koopiad ja kleebib selle sees oma faili. Nüüd minu programm teab kuidas printida ekraanil. Nii et selle loogika, kus on string määratletud? Sihtrühm: CS50.h. DAVID J. Humala: CS50.h. Ja tõepoolest, see on, mida me, tuum töötajad on teinud. Me oleme välja töötanud mõned andmetüübid, nii rääkida, nagu string, lisaks need, mida saada tasuta, nagu int. Ja me näeme, teised nagu char jaoks märk ja veel mõned. Toas CS50.h ilmselt on vähemalt mõned mainita string. Nüüd lubage mul minna ja kordamisega mark hello-1. Ma suumida uuesti ja rist mu sõrmed. Nüüd, mida on teinud ühe muuta I kinnitatud kõige rohkem asju. Aga kurat võtaks. Rohkem protsente kui andmed argumente. Mis ma valesti tegin sel ajal? Nii et see on ikka päris segasena. Aga see viga on rida 7 ja iseloom 21. Nii et lähme vaatame siin. See on veidi peenem. Aga kui sa arvad, mida põhilisi ideid on siin, ehk saame kiusupunn see peale. Nii printf on funktsiooni nimi. Sulgudes, seni on nagu see, mida me panna ümber kraami Me möödume sisenditena funktsioon. Hea küll, lihtsalt suvalise inimese konventsiooni. Kasuta sulgudes. Toas need sulud oleme olnud pannes jutumärgid, ja siis string nagu "hello world". Aga mis varem näiteks väga lühidalt tegime me vaatame koos Scratch. Ja meil oli protsenti d, mida veel oli sees need sulud mis ma hüüdsin suuliselt? Jah. Sihtrühm: Nii et see on see, mida te kasutate [Kuuldamatu] sees [kuuldamatu] mis need [kuuldamatu]? DAVID J. Humala: Täpselt. Seega oli meil protsenti d. Aga meil oli lähedal quote, koma counter. Õigus. Oleme kindlaks, mida me tahame teha nii, nagu kohatäide. Niisiis, mida ma lähen tegema, on siin koma, mida sa tahad panna? Sihtrühm: S. DAVID J. Humala: S, sest s sel juhul on nime kanistrisse. See on nimi, et klaas kauss. Kui enne oli see counter selles lihtne Scratch näide me vaatasime. Nii et nüüd on teinud kaks muutusi, andke mulle suurendamiseks ja proovida veel kord koostada programmi. Nüüd ma näen, et segasena liin. Aga see on tegelikult koostaja nimi. Rõkkama on koostaja nimi. Tee on lihtsalt säästa mind peavalu kunagi kirjutades, et pikk hull käsk välja. Nüüd, kui ma dot kaldkriips hello-1, Ma oleks näha "tere, David." Päris underwhelming, eks? Me oleks võinud teha see palju lihtsamalt ilma räägime muutujate ja CS50.h ja kõik see. Seega teeme seda natuke huvitavamaks. Lisaks CS50.h, võttes asju nagu string kuulutas CS50 raamatukogu Lisaks on mõned funktsioonid. Nii nagu aasta tagasi, keegi kirjutas printf ja pane see standard I / O.h ja mõne muu faili. Meie, CS50 personal, kirjutas funktsioon nimetatakse getchar, GetDouble, GetFloat, GetInt, GetLongLong, getString, ja paneme need sees fail nimetatakse CS50.h ja CS50.c. Ja me paneme nad sisse Euroopa CS50 Appliance. Ja inimesed saavad ka laadida neid võrgus, kui nad tahan panna neid oma oma arvutid samuti. Mis tähendab, et oleme loonud funktsioone, mis saada sisend kasutaja. Ma ei tea, mida kõik Nende andmete tüüpe. GetInt on selline lihtne, nagu saada täisarv kuidagi kasutaja. Ja getString on ilmselt nagu get sõna või lause kasutaja. Nii et olgem keskenduda selle. Ja ma lähen tagasi seadme ja ma lähen edasi minna ja salvestada see fail, kutsume see hello-2.c nagu mu teine ​​versioon. Ja olgem teha paar muudatusi. Seekord asemel kõva kodeerimine David, mis teeb uskumatult järjekindel kuid underwhelming programmi Mis siis, kui ma selle asemel teha getString? Nüüd teate getString on avatud sulgudes suletud sulgudes sest see ei vaja sisend. See on lihtsalt minema saada string kasutaja. Ja nüüd sõna teiste süntaks. Puolipisteinä lihtsalt lõpuks rida koodi. Sa ei pea neid kõikjal. Aga see lihtsalt tähendab, et ma olen teinud seda rida koodi. Lubage mul liikuda teisele avalduse või funktsioon. String deklareerib muutuja. String on nagu öelda andke mulle nõu, siis palun. Ja las ma panen string ta. Ja nüüd võrdusmärk. Mis on võrdusmärk sisuliselt samaväärsed? Sihtrühm: määrata. DAVID J. Humala: Jah, väärtustamise. Nii et kui ma näiteks kõne Selle funktsiooni getString, ja me näeme ühel hetkel, et on läheb küsib kasutajalt string. See on nagu lased mul siis kirjutada D-a-v-i-d tükk paberit. Ja kui ma ütlen string s võrdub getString, võrdub tegelikult ei tähenda võrdsed C programmeerimine. See tähendab loovutada alates paremalt pool vasakul pool. Nii et ma olen saanud string. Ja võrdusmärk tähendab panna aastal hoiuruum nimetatakse s. Ja siis liigu see ära printf tegelikult teha oma asja. Nii et lõpptulemus siis läheb vaadata veidi erinev. Teeme teha hello-2. Kas võiks toimida. Sa järgmine mööda. Tee hello-2 töötas. Dot kärpida hello-2, Enter. Mulle tundub, et on lõputu loop või midagi. Midagi ei juhtu. Miks? Sihtrühm: see teeb lõputu silmuse. DAVID J. Humala: See on lõputu silmuse. See on omamoodi ootab mind tegelikult annab talle mõned sisend. Nii et lubage mul minna ja kirjuta David ja vajuta Enter. Ja nüüd ta ütleb: "Tere, David." Kui ma saan seda uuesti. Olgem kirjuta Rob, "Tere, Rob." Nüüd on see kõige hullem kasutajaliides kunagi. Kasutaja ilmselt peaksin teadma, mida teha. Aga ükskõik. Kasutades neid samas hoones plokid nagu Scratch, saame seda probleemi lahendada ja öelda midagi oma nimi palun, koolon, ruumi, suletud quote lähedal sulgudes semikooloniga. Nii palju taas rumaluseks süntaks. Aga teate ma olen lihtsalt lisatud puzzle tükk üle selle ühe ja üle selle. Nüüd, kui ma uuesti, see, tere-2, Enter. Oota nüüd. Mis viga? See ei käitunud teistmoodi. Jah. Sihtrühm: Sa ei jooksnud teha uuesti. DAVID J. Humala: ma ei ole joosta tee jälle paremale. Nii et ma muutsin oma lähtekoodi. Aga jälle, seal on see vool. Lähtekood läbi koostaja annab te uue objekti kood või 0. ja 1s. Nii et ma pean tegelikult kordamisega mark hello-2 Enter. OK, tundub, et midagi on juhtunud. Dot kärpida hello-2. Sinu nimi palun. Ja selge nüüd, miks on kursor sama liini? Täpselt. Ma ei pane längkriipsu n siin minu koodi. Nii et nüüd ma ei kirjuta midagi Daven, Enter. Ma saan käivitada uuesti ja kirjuta midagi Gabe, Enter, ja me saame teist programmi uuesti ja uuesti ja uuesti. Nüüd lõpuks me vajame kasutada palju erinevaid võimalusi. Meil on vaja kehtestada lõpuks mõned tingimustel teha asju tinglikult. Võib-olla silmuseid, et saaksime teha asjad ikka ja jälle. Võib-olla oleks tore, kui me võiks rakendada oma funktsioone, nagu me võiksime rakendada oma printf või oma versiooni getString ja GetFlow, sest lõppkokkuvõttes isegi Kasutades seda käsurea keskkond me saame teha, isegi kõige visuaalselt huvitavaid asju. Tõepoolest lõpetuseks lubage mul seda teha. Ma lähen edasi minna ja sulgege need aknad ja avage see ikoon siin mis on lihtsalt suurem versiooni, et varjatud terminali aknas. Nii Gedit ei ole mitte ainult koht minu kood, kuid ka ehitatud terminali aknas must ja valge aken, kus ma saan käivitada käske. Ma lihtsalt juhtus, et avada suurem versioon sellest. Ja nüüd ma lähen minema kausta, et ma olen juba pane eelnevalt muidugi kodulehel. Ja ma lähen edasi minna ja avage fail nimega thadgavin.c, mis on kirjutatud kellegi teise poolt. Ja kui me vaatame seda, see ei ole objekti kood me kirjutame alates Eesmärk on see kood oli kirjutada ilusaim otsin koodi, et ta võiks olenemata sellest, kas teine ​​inimene võiks kunagi mõista seda koodi. Tõepoolest, igal aastal on see, mis on nimetatakse obfuscated C võistlus, mis on reaalne geeks, kes kirjutavad kood, et keegi teine ​​ei saa lugeda, aga ei midagi kas väga lihtne ja tõesti hämmastav. Ja me arvasime, et oleme sõlmida see ilme midagi, mis on päris hämmastav te olete näinud, kui enne. Aga me lõpetada selle teadmiseks, dot kaldkriips, thadgavin. See on siis, mis ootab. Ongi CS50. Me näeme teid kolmapäeval. [Muusika mängimine]