David J. Malan: Taigi tai yra CS50. Ir tai buvo CS50 savo Colton Ogden, daugiau, kas yra muzika, galite atsisiųsti iš soundcloud.com/cs50. Taigi, šiandien mes sutelkti visas daugiau apie programavimo meną. Ir mes kur mes palikome nuo praėjusios savaitės, sutelkiant nuo nulio, kuris buvo šios grafinis programavimo kalba. Ir imtis dalykų žemyn į žemesnio lygio, naudojant daugiau tradicinės programavimo kalba žinomas kaip C. Tačiau pakeliui, suprasdamas, kad tų pačių idėjų mes kalbėjo apie praėjusį penktadienį pasikartos ne tik tai kalba C, bet dauguma kas antrą kad mes pažvelgti į šį semestrą. Taigi mes vadinami šį dalyką čia tai, kas paskutinį kartą? Tai atvaizduoja pareiškime. Taigi, mes pavadino šį pareiškimą. Ir tai daro kažką. Tai instrukcijos, kompiuterio ar įbrėžimams gali vykdyti. Ir nuo šiol, tegul taip pat pradėti skambina kažką panašaus į tai funkcija, dėl priežasčių, mes netrukus matysime. Tuo tarpu, mes matėme tokius dalykus. Ir tai dažniausiai yra žinomas kaip ką statyti? PUBLIKA: Ciklas. David J. Malan: Taigi kilpa. Taigi gana paprasta. Jis tiesiog daro, ką ji sako. Ir nulio, jei norite prisikimšti daugiau įspūdį ten, gabalas augs, kad tilptų jį. Ir mes matome, kad C mes galime padaryti tą patį. Kitas kilpos tipas, nors, į nulio gali būti amžinai, ar ten bet koks skaičius Kitų metodų. Tačiau imkime daugiau universaliais išvaizda, su veido kad tikėtina, gana gerai susipažinę, ne kilpos apskritai. Mark Zuckerberg: Vienas dalykas, kad kompiuteriai yra tikrai gerai yra kartoti komandas. Kaip asmuo, norite gauti tikrai nuobodu, jei jums turėjo padaryti tą patį daug kartų iš eilės. Tačiau kompiuteris gali padaryti tą patį milijonus ar net milijardus kartų, , o ne nuobodžiauja, ir gebėti atlikti, kad iš tikrųjų gerai. Taigi, pavyzdžiui, jei aš norėjau palinkėti visiems Facebook laimingas gimtadienio siunčiant jiems laišką, ji gali imtis man daugiau nei amžiaus, kad iš tikrųjų rašyti visų šių laiškų visiems. Tačiau vos keletą eilučių kodo, galiu turėti sistemą siųsti el.laišką visiems Facebook norintis juos su gimtadieniu. Štai ką kilpos ir kodėl jie vertingi ir kažkas kad kompiuteriai gali padaryti labai gerai. David J. Malan: Taigi, jei jūs buvote gavėjas kai kurie iš CS50 "ir Dropbox kosmoso vėlai, kad iš tikrųjų būtent tai, ką mes padaryti, naudojant kodą gana panašaus. Mes iš esmės yra didelis skaičiuoklės, į kurią žmonės buvo įvedusi jų vardai ir elektroninio pašto adresus. Ir mes rašė Odrobineczkę kodą, gali pakartoti per tuos adresus ir išspjauti unikalius adresus atveju kiekvienas pateiktas kelis kartus. Ir po to, mes siunčiame automatinis laišką iš CS50 yra boto, įskaitant kupono kodą. Dabar mes taip pat pažvelgė į tai pastatyti paskutinį kartą. Ir tai yra ypač pavyzdys, ką? Taigi, yeah, Būlio išraiška. Ir forma yra skirtas užfiksuoti, kad taip pat. Visi tokie klausimai sudaryti true arba false ir nulio atrodys truputį kažką panašaus į tai. Ir mes tai vadiname Būlio išraiška. Štai tiesa ar melas, taip arba ne. Tai atsakant į klausimą būdas. Ir tuo tarpu, galite naudoti šias Būlio išraiškos viduje konstruktų kaip tai, kuri iš Žinoma, yra sąlygos arba filialai, patarlė šakutės kelyje. Ir jie gali atrodyti ne tik kaip tai, bet jie taip pat gali jau elses susijęs su jais. Ir jūs iš tikrųjų gali turėti trieigis šakutės kelio ar keturių būdas šakės kelyje, paprasčiausiai lizdus šiuos dalykus, kaip jūs pamatysite nulio jei turite dar nepadarėte. Ir kaip jūs galite padaryti C, taip pat. Paimkime kitą bendrosios praktikos pažvelgti alumnist, taip pat, kas gali pateikti kitokį požiūrį šių dalykų, vadinamų sąlygos. Bill Gates: Žmonės padaryti sprendimai kiekvieną dieną. Pavyzdžiui, prieš išvykdami už jus rūšies turi IF, kuri sako, jei lyja, tada aš reikia gauti mano švarką. Ir kompiuteriai yra nuostabi, kai jums nuspręsti tuos pareiškimus rūšių, kad jie gali patikimai atlikti tie dalykai neįtikėtinas greitis. Ir taip kompiuterinė programa tikrai yra šiek tiek matematikos ir kai if kur Sprendimas gauna padaryta. David J. Malan: Taigi, kaip Jūs tikriausiai žinote, tai buvo žmonės kaip Bill Gates, Paulius Allen ir kiti kad tikrai prasidėjo vadinamasis asmeninis kompiuteris revoliucija prieš keletą metų. Maniau, kol mes neria į tam tikrą Bendra apžvalga, mes norime susieti pasaką iš Albuquerque, Naujoji Meksika Museum of Natural History ir mokslas, jei kai Bill Gates ' ir Paul Allen Pirmieji pasakojimai pasakojo, kaip mes turime dabar šiandienos PC ir Mac ir dar daugiau. Dėl to, nors turime du savanorius kurie turi labai gerą pasakojimą balsus skaityti scenarijų garsiai. Gerai, kaip apie į atgal ten. Nagi iki. Ir kaip apie priešais čia. Nagi žemyn. Paimkite savo vietas čia. Kaip jus vaikinai sugalvoti, pora Administracinių pranešimų. ruožais, procesas pasirenkant skyrių, pradės tai Nuo trečiadienio iki penktadienio. Daugiau informacijos apie, kad tai ateina Trečiadienį paskaitą. Super skyriai, tuo tarpu, yra kažkas, kad mes siūlome kitą savaitę , kai visa klasė kviečiama dalyvauti gana dideliu mastu skyriai, vienas Nežiūriu, viena mažiau patogi. Ir mes skelbiame informaciją to, kaip gerai, vėliau šią savaitę. Tuo tarpu skyriai, patys pradės į savaitę tris kurso, nulis indeksas, o tai reiškia, jie yra porą savaičių iš. Taigi nesijaudinkite. Jūs dar praleistų nieko palei tas linijas. Tuo tarpu per tą laiką, jei jums turite klausimų administraciniu paštu save ir Devono ir Gabe ir Robas šiuo adresu čia. Galiausiai, problema nustatyti 0, žinoma, ne. Galbūt jūs pastebėjote, kad kurso tinklalapyje. Tai turėtų suteikti jums su visi atsakymai į klausimus jums gali tekti kartu už būdu pradėjo dirbti su probleminio rinkinys. Bet jei jums rasti sau reikia pagalbos ranką, visais būdais dalyvauti darbo valandos, Pirmadienis, Antradienis, Trečiadienis, ketvirtadienis Šios savaitės vakare keturių valgyklose. Žiūrėti šį URL ten aprašus kur darbo valandos turi būti. Dabar Susitikime mūsų dvi Svečiai čia šiandien. Koks tavo vardas? JAY PAUL Jay Paul. David J. Malan: Jay Paulius, nice to meet you. Hikari: Hikari. David J. Malan: Hikari? Hikari: Hikari. David J. Malan: Hikari. Nice to meet you, taip pat. Jay Paulius ir Hikari turėti priešais juos ant šių muzikos stovi du scenarijus, kad aš atspausdintas iš šį rytą iš New Mexico Gamtos istorijos muziejus ir mokslo ministerija. Ir tai, ką aš maniau, Norėčiau padaryti Viršuje yra kartu su savo deklamavimas scenarijų ir šioje istorijoje su kai kuriais vaizdinę, jokių netikėtumų. Ir ką aš padariau iš anksto yra prehighlight savo scenarijų ką reikėtų skaityti, ir ką reikėtų skaityti. Ir mes iš esmės tik pakaitinių pastraipas. Taigi, tai, panašiai kaip jums gali padariau anglų kalbos pamoką. Tai tikrai verčia žiūrovus tikėti savo pasaką čia. Ar mes? Taigi istorija čia yra, mes turime PAGRINDINIS, ir jis pradeda Kembridže. JAY PAUL: Tai buvo žiema, 1974, , Cambridge, Massachusetts kur žiemos gali būti šalta. Barzdotas, ilgai trumpaplaukis kolegijoje nebaigusių pavadintas Paulius Allenas buvo drudging visoje Harvardo Aikštė, sugeria jo mintys. Jo pagrindinis rūpestis šių dienų buvo, kaip gauti savo draugu, Bill Gates, mesti mokyklą ir eiti į verslą su juo. Hikari: du jau dingo per verslo įmonių skaičius kartu, pradedant nuo Lakeside mokyklos Sietle kur jie buvo sumokėti į laisvą kompiuterio laiką į išbandyti PDP-10 kompiuterį vietos laiku dalintis įmonę. Naujausia planas buvo mesti mokyklos ir suformuoti programinės įrangos kompanija. Allen paliko Vašingtoną Valstybinis universitetas. Tačiau paskutinę minutę, vartai nusprendė klijuoti su Harvardo. JAY PAUL: Tą dieną, kirtimo Harvardo Aikštė, Allen dėmėtojo sausio, 1975 klausimas populiariosios Electronics su žemės sustojimo antraštę, Pirmasis pasaulyje Minikompiuterių rinkinys Rival Komercinės Modeliai. Po antraštė buvo nedidelės dėžutės nuotrauka puošia šviesų ir jungikliai. Jis buvo vadinamas MITS Altair 8800. Ir Allen žinojo tai, ką jis buvo ieškote. Hikari: Dienos diskusija. Allen ir vartai suprantama reikšmė Altair. Dažnai jie kalbėjosi apie mikroprocesorių ir buvo laukti, kad pamatytumėte, ką būtų daroma su jais. Dabar ten buvo minikompiuteris Kit Populiariosios Electronics dangtelį. Ji, matyt, neturėjo programinę įrangą dar. Jie įsivaizdavo, tauta programuotojai nusileisdamas MITS. Ir taip jie vadino Ed Roberts, bendrovės vadovas, teigdamas turėti versiją PAGRINDINIS programavimo kalba beveik paruoštas už Altair. Jie nebuvo. Ir Roberts turi žinoti jie to nepadarė. Jis buvo gauti 10 skambučių per dieną iš žmonių, kurie turėjo BASIC beveik paruoštas. Ir jo akcijų atsakas buvo: "Pirmasis žmogus kas rodo su darbo PAGRINDINIS gauna sutartį. " JAY PAUL: Vartai ir Allen niekada matė Altair. Jie niekada net matyti "Intel 8080 mikroprocesorių ties Altair širdį. Bet porą metų anksčiau Allen parašė programą ant pagrindinio kompiuterio, kad vadovautis ankstesnio Intel operacija mikroprocesorius. Ir šįkart jie " būtų daryti tą patį. Hikari: Su Intel 8080 vadovas jo pusėje, Allen atsisėdo Harvardo PDP-10 kompiuteris ir parašė emuliatorius ir programinė įranga priemones, būtinas atlikti programavimą. Tuo tarpu vartai sustojo vyksta klases ir atsidėjo projektavimo pagrindinio, naudojant kiekvieną triuką jis žinojo, kad gauti dydį žemyn žemiau 4 kilobaitai. JAY PAUL: Out Albuquerque, Edas Robertsas gavo nuo Gates skambutį prašydama informacijos apie tai, kaip Altair tvarkomi konkrečių kasdienybe. Niekas kada nors prašė, kad prieš. Ir Robertsas pradėjo domėtis. Hikari: Su plėtra įrankiai ir dizainas paruoštas, Vartai ir Allenas parašė apie PDP-10 kodas, įrašymas kitą Harvardo studentas, Monte Davidoff rašyti matematikos kasdienybe. Po galutinio naktį programavimas, Allen gavo plokštumoje pristatyti savo pagrindinius į MITS. Jis praleido lėktuvas išjoti nerimą. Ir atgal Kembridže Vartai buvo nerimą. Jie išbandyti savo pagrindinius ir ji dirbo emuliatorius. Bet kas, jei emuliatorius buvo negerai? JAY PAUL: Kaip plokštumoje kreipėsi Albuquerque Allen supratau, kad jų PAGRINDINIS dabar tvarkingai pateikta ant nedidelio ritinėlio perforuoti popieriaus juosta, būtų būti nenaudingas be atskiro programa, vadinama krautuvas, kad norėčiau pasakyti, kad, kaip Altair skaityti popieriaus juosta gerovę paduodamas į teletaipo mašina. Jis paėmė savo Notepad ir greitai parašė žemyn krautuvas programą asemblerio kalba, tada rankiniu būdu išversti, kad į 1s ir 0s Altair būtų suprasti. Hikari: Allen laukiasi švarus, mažai, aukštųjų technologijų įmonė valdo vyrų verslo kostiumai. Taigi jis buvo nustebintas, kai Roberts susitiko jam oro uoste atrodo kaip rančoje ranka. Roberts taip pat buvo nustebęs. Kai jis nukrito Harvardo programuotojas už brangaus viešbučio, Allen turėjo prisipažinti, kad jis negalėjo sau kambarį. JAY PAUL: MITS, pats buvo įsikūręs dulkėtoje juostelės Mall. Viduje ant netvarkinga darbastalis buvo Altair pakrautas su 5 kilobaitais nuo atminties ir prijungtas kabeliu į teletaipo mašina. Roberts ir vyriausiasis inžinierius, Billas Yates laukė kaip Allen perjungti savo krautuvas programa į Altair. Teletaipo pradėjo chugging kaip jis ištraukė popieriaus juostos per juostele skaitytojas. Jis paėmė galbūt 15 minučių įkelti programą. Tada teletaipo staiga atspausdintas atminties eilutę, tada pasiruošę greitai, Allen pradėjo rašyti keli bandymo komandos. Norėdami kiekvieno nuostabai, programinė įranga dirbo. Nebuvo klaidas, žinoma. Bet pagrindinis dalykas buvo tai dirbo. Hikari: Vėliau, pakeliui į 3,00 $ pietūs Pancho s, vapsva nuskrido atsižvelgiant į pikapas lange sunkvežimis ir įgėlė Allen ant rankos. Bet tuo momentu nieko gali sugadinti nuotaiką. Altair dabar turėjo savo pagrindinio, Pirmasis komercinis programinės įrangos namuose kompiuteris, padarė Paul Allen ir Bill Vartai, verslą, kaip "Microsoft". David J. Malan: Daug Dėka dviejų skaitytojams. [Plojimai] David J. Malan: Dabar jūs turite savo pasirinkimą, prieš išvykdami, ir sparkly arba į dark-- oh švyti, palaukti vieną sek, wait-- sparkly ir tamsoje švyti dramblys iš CS50 savo Cheng Gong. Hikari: Aw, ačiū. David J. Malan: Visi Gerai, ačiū labai. [Plojimai] David J. Malan: Taigi tikra istorija. Tai galima pasakyti, kad visa tai mašinos ir lengvumas, su kuria mes naudoti juos dabar ir naudokitės už suteiktas, tikrai pradėjo čia, vos keletą žingsnių iš šios faktinės teatre. O dabar ir šiandien, jei jūs ne buvo, tai Maksvelo Dworkin, kompiuteris mokslai pastatas, taip pat už kampo. Ir antrame aukšte tai pastatas ar pakabinti tris puslapius iš pradinio kodo, kad Bill Gates ir Paul Allen parašė. Iš tiesų, jei naudojimas jums padidinti į jūs galite pamatyti ne tik jų vardai originalus tipas, bet taip pat jų parašai, kad jie puošia Keletą metų atgal, kai jie paskutinį kartą aplankė. Bet tai, kas buvo ypač sunkių apie tai, ką jie išdėstyti daryti buvo parašyti programą, kuri įgalinti kitus žmones rašyti savo programas. Tuo metu visi ten buvo su tai Altair mašina padarė MITS. Ir visi jie buvo būtina, kai būdas todėl lengva mėgėjams ir žmonėms kaip mums šiame kambaryje faktiškai programa kad nereikia suprasti Asamblėja kodas, arba mašina kodas, arba, neduok Dieve, 0s ir 1s. Mes programuotojai, pavyzdžiui, kaip nurodyta šiame kambaryje, mes nori, kad būtų galima išreikšti patys daug daugiau kaip pseudo kodas net jei tai šiek tiek daugiau NIT smulkmeniškas nei mes kalbėjome praeitą savaitę. Mes nenorime rašyti kodą, kaip tai, kuris padarė Paulius Allen ir Bill Gates. Mes, priešingai, nori rašyti kodą, kad atrodo šiek tiek daugiau patogi. Dabar tai yra kalba žinomas kaip pagrindinis. Ir eilučių numerius yra tai, ką jums naudoti tiesiog suskaičiuoti kodo eilučių kad rašote. Mes net turime padaryti, kad šių dienų. Bet jūs galite pamatyti čia kaip print "Sveikas, pasauli" Iš tiesų turbūt būtų išspausdinti tik tai. Ir ką Billas ir Paulius darė, buvo suteikti žmonėms rašyti kodą, kaip tai vietoj of-- jei pažvelgsime išvaizdą kompiuterių mokslas wall-- kodą, kaip šis. Tiesą sakant, CS50 neseniai turėjo galimybę susėsti su profesoriumi Harry Lewis į kompiuterių mokslo departamento, kuris iš tikrųjų mokė Bill Vartai prieš keletą metų, ir prieš stoviu čia šie trys puslapiai ištraukų. Paimkime išvaizdą. HARRY LEWIS: Ką jūs turite čia sąrašas iš ankstyvo gabalas programinės įrangos parašė Bill Gates ir Paul Allen, "Microsoft" steigėjų. Taigi kodas yra įdomus dėl dviejų priežasčių. Visų pirma, jis tapo Microsoft pirmasis produktas, kuris buvo skirtas vertėjas PAGRINDINIS programavimo kalba. Ir, antra, tai buvo vienas iš pirmųjų bandymų sukurti vertėją taip įprasta žmonės galėtų naudoti asmeninius kompiuterius. Taigi Billas Gatesas buvo bakalauro Harvarde. Aš pradėjau dėstyti Harvarde 1974. Tai buvo padaryta 1975 m. Taigi tai buvo pradžioje savo karjerą ir anksti savo karjerą. Aš iš tikrųjų mokė įstatymo projektą Žinoma aplink šiuo metu. Paulius Allen nebuvo Harvardo studentas, tačiau jis buvo aukštosios mokyklos klasiokas Bill Gates. Jei atvykote ir surasti tuo sąrašą, jums tikrai rasite trečioji vardas, Monte Davidoff kuris buvo Gates yra klasiokas čia Harvarde. Gerai, kad čia įdomus komentaras čia. Jis sako: "Be 4K galite ištrinti kvadratinės šaknies bet kilpos dar turėtų dirbti. " Gerai, kad tai, ką tai reiškia, kad buvo du būdai kompiliuoti šią programą. Vienas iš jų buvo paleisti versiją Šio Altair kompiuterio kad tik turėjo 4K žodžius atmintis, 4096 žodžiai atmintyje. Tačiau didelis versija turėjo 8K. Ir ką tai sako, kad yra kad 4K versija Jums teko ištrinti kai kodas, kad ji tinka. Ir vienas iš dalykų, kad būtų išbraukta būtų kvadratinė šaknis rutina. Bet, matyt, už kilpos turėtų dar dirbti, net jei jūs sudarymo žemyn tik už 4K versija kompiuteryje. David J. Malan: Taigi viena iš temų,, kaip matysime informatikos, tai sąvoka sluoksniavimasis ir abstrakcijos, ir tikrai stovėti ant pečių iš žmonių, kurie atvyko prieš mus, o ne Skirtingai nuo kai kurių Bill Gates ir Paulius Allen pasakojimas čia. Ir ką tai reiškia kad šiandien mes galime imtis už savaime suprantama, kad viskas yra iš tikrųjų lengviau mums parašyti kodą. Iš tiesų kodas, kaip mes sakėme, penktadienį, yra techniškai žinomas kaip kodą. Ir tai šį anglų kaip sintaksės kad daugiau tinkamas ir daugiau gerai apibrėžta kaip kažką panašaus į pseudo kodu, kuris nėra oficialus apibrėžimas. Ir šiandien, ką mes ketiname dėmesį sutelkti kodą kad atrodo taip, o Tiesa, iš pirmo žvilgsnio atrodo visiškai paslaptingas. Ir tiesą sakant, tai būdas daugiau estetiškai sudėtingesnis nei pagrindinė programa yra. Visa ši programa daro, Prisiminkite, yra tai, ką mes padarėme pasakyti? Jis tiesiog spausdina "hello world". Ir dar atrodo ne visi stuff mums reikia į kuriuos vyniojami aplink, kad labai paprasta frazę. Tačiau neilgai trukus visi šios linijos ir daugiau bus daug geriau prasmės jums. Ir srautas yra taip. Ką mes turime mūsų žinioje yra imtis kodą, kaip šaltinį kodas, kad mes tik pamačiau. Ir mes turime naują programą per jį paleisti. Mums reikia algoritmų, kurie gali konvertuoti kodą, kaip šis, į objektiniu kodu, 0s ir 1s. Kitaip tariant, tai, ką mes ketiname sužinoti šiandien yra, kaip tai padaryti, įrašykite kodo iki viršaus, perduoti jį kaip į ypatingą Programa vadinama sudarytojas, ir mes ketiname gaminti objekto kodą. Kuris yra tik išgalvotas būdas sakydamas mes imsimės kažką kad atrodo taip, perduoti jį į programą "sudarytojas, gaminti objekto kodą kad atrodo taip. Taigi tai yra tiesiog Iš 0s ir 1s modelius kad suprastų "Intel" kompiuteris šių dienų, kad jei išaiškino procesoriaus, viduje iš kompiuterio smegenys, tiesiog bus išspausdinti, paprasčiausiai, "hello world". Dabar yra būdas daugiau 0s ir 1s, nei jums Norėtųsi, gali tekti už tai. Bet tai todėl, kad mes pastatas apie gerą sandorį sudėtingumo kad mes galime nuo šiol savaime suprantamu dalyku. Kitaip tariant, iš protingų žmonių daug davė mums daug įdomių įrankių daug ir galinga programinė įranga, su kuria mes dabar galite padaryti projektus mūsų pačių. Taigi leiskite pradėti. Kadangi praėjusį penktadienį, ir už problemą, 0 Šią savaitę, jums bus žaisti pasaulis atrodo taip. Nuo šiandien ir problemos Nustatyti 1, kitą savaitę, kodą atrodys šiek tiek daugiau paslaptingas, bet funkciškai yra bus tas pats. Taigi pranešimas, viršuje yra nulio, apačioje yra C. Atvirai įbrėžimams yra daug daugiau vartotojas draugiška ir prieinama. Bet jei dabar jūs palyginkite vizualiai iš viršaus į apačioje, ten tipo 00:59 susirašinėjimas puzzle gabalai ir kalba mes ruošiamės žaisti. Visų pirma, tarkim, mėlyna galvosūkį gabalas iki viršaus, matyt prilygsta kokia raktinį žodį arba specialus frazė šia kalba vadinamas C? PUBLIKA: Printf. David J. Malan: Printf. Tai reiškia, kad suformatuotas spausdinimą. Ir tai tik išgalvotas būdas pasakyti printf C bus pareiškimą ar funkciją kad spausdina kažką ekrane. Ką spausdinti ekrane? Ką gi, jūs pasakyti, kad viduje kabučių, viduje iš skliausteliuose. Taigi dar kartą, tiesa, ten daug daiktų kad jūs turite turėti omenyje, skliausteliai, kabutės, kabliataškiais, ir visa tai. Bet visa tai yra tarsi iš šalia taško. Įdomu Takeaway dabar yra tai, kad tarkim blokas nulio yra gana daug lygiavertis printf į C. Tuo tarpu, geltonas galvosūkis gabalas iki viršaus, kai žalia vėliava paspaudėte, tikriausiai lygiavertis ką raktažodį čia? PUBLIKA: Pagrindinis. David J. Malan: Taigi pagrindinis. Gal int, gal negaliojančiu. Tačiau pagrindinis rūšies garsus, pavyzdžiui, svarbu, ir iš tikrųjų ji yra. Taigi, kai žalia vėliava paspaudėte yra, vėlgi, dėlionės gabalas kad prasideda Visa "Scratch programa. Tačiau mes ketiname dabar pradėkite skambinti kad pagrindinis, tai funkcija vadinama pagrindinė. Dabar tuo tarpu mes apibendrinti tai taip. Mes galime paskambinti pasakyti funkciją. Ir tai gali atrodyti konkrečiai, kaip šis. Na, ką apie kilpas? Jei mes norime pradėti konvertuojant ar verčiant daugiau Scratch C, šis dalykas čia, matyt, tik sako "hello world" amžinai. Taigi, jei jums asocijuojasi šie scenarijai, kurių specializacija Scratch katė, tai tik ketina nuolat sako kai kuriose animaciją burbulas natūra "Hello world, hello world, hello pasaulis ", skelbimų nauseum, amžinai. Jei norime padaryti kažką panašaus C, tai ketiname ieškoti šiek tiek paslaptingas. Tačiau mes galime pasiekti tą patį rezultatai, kaip mes galų gale sužinoti, su sintakse, kaip šis. Aš ruošiuosi vėl naudoti printf, nes bent dienos pabaigoje Norėčiau atspausdinti "Hello World". Ir aš, matyt, naudojant Raktiniai žodžiai, kurie nėra amžinai. Tai vietoj žodžio o. Bet tik semantiškai į Anglų, nors rūšies rodo tam tikrą kilpą arba ciklą natūra. Taigi, kad atsitinka būti raktinis žodis, C naudoja. Ir nors tiesa, kodėl tiek laiko tiesa efektyviai reiškia amžinai? Na, o, kaip ir mes netrukus Vertiname visi daugiau, turi kitą jai šį suskliaustos kur jūs galite įdėti Būlio išraiška. Ir tol, kol šis išraiška yra tiesa, tai kodas, kaip žymimas tarp šių dviejų garbanotieji petnešų, kaip mes juos vadiname, tiesiog nuolat veikia, vėl ir vėl. Taigi tiesa yra tiesa. Taigi, nors tiesa priemonėmis tiesiog padaryk tai amžinai. Tai beveik kvaila statyti išreikšti save. Bet ten buvo ne amžinai raktinį C. Nebuvo o. Ir ten buvo labai paprasta Būlio išraiška kaip tiesa. Ir taip, mes pamatysite, pasiekia tokį patį rezultatą. Kaip kitaip jums gali įgyvendinti kilpą? Na, Scratch jums gali sunku kodas Konkretus dienų skaičius iteracijų kilpa čia. Ir kad tai, ką mes gali padaryti šioje C versija, kurią mes turime vadinamąjį už linijos. Ir už linijos čia vyksta kad paeiliui, šiek tiek cryptically, nuo 0 verte apie iki į bet mažesnis nei 10. Dabar kintamieji nulio. Jūs galite ne turėjo reikėtų pasinaudoti jų. Bet kokia prasmė apskritai, kintamojo dar sakome praėjusią savaitę? Kas tai? Auditorija: Taškai. David J. Malan: Norėdami atkreipti? O punktus. Gerai, sekti kiekis, Pavyzdžiui, žaidime. Arba apskritai daro kas su kintamojo? Kas iš jų naudingumas? PUBLIKA: Atmintis. David J. Malan: Taip, taip, atmintis. Ji skirta saugoti kažką. Ir kvailas vizualiai I rūšiuoti naudotą Paskutinį kartą buvo tarsi šio stiklo dubenėlį. Ir jei mes norėjome laikyti kažkas viduje kintamasis, Pavyzdžiui dabar vertė yra šeši nes Yra šešios ping-pong kamuolius čia. Tai tik keletas iš saugojimo natūra konteineris, kad po kapotu yra įgyvendinamas su bitai, 0s ir 1s, Tačiau kompiuteris atsitinka tai padaryti. Taigi nulio, jei mes nori turėti kintamąjį, mes galime naudoti apelsinų bloką panašaus į tai. Mes vadiname šį skaitiklis šiuo konkrečiu atveju. Aš inicializuoti jį į 0. Ir ką jis man tada daryti? Forever sako, skaitiklis, kuris, jei tu žaidi su, kad nulio, jūs tiesiog pamatyti nulio. Katė ar koks kostiumas jūs įtraukėte į jis kalbės numerį klausimą. Pakeisti skaitiklis pagal 1 yra kaip incrementing iki 1. Ir taip tai vyksta skaičius nuo kokiu Na ir kas? Nuo 0 til begalybės, arba iki Scratch pertraukas, arba tol, kol jums rūšiuoti prarasti susidomėjimą žiūrėti kaip didelis jis tikrai gali tikėtis. Taigi, kaip gali mes tai pakeisime į C? Tai ketiname ieškoti šiek tiek paslaptingas. Bet vėl, jei jūs žiūrite į kiekvieną Šių eilučių atskirai jie tipo išsidėstymą paprastai. Taigi, matyt int ketina turėti tam tikrą ypatingą reikšmę C. Pamatysime, kad dar kartą. Kaip panaikinti tai reiškia sveikąjį skaičių. Taigi tai tiesiog reiškia, numerį. Štai Tipo stiklo dubenėlį Noriu, vienas , kuriame galima laikyti numerius, ne ping pong kamuolius. Ir aš ruošiuosi naudoti lygybės ženklą ten priskirti jai vertė yra 0. Štai labai patiko rinkinys skaitiklis 0, o C Tuo tarpu, nors tiesa, kad buvo lygiavertis, žinoma, amžinai, nors tai mažai paslaptingas, ir tada viduje garbanotas petnešomis. Ir jūs galite pagalvoti apie šių klamrami, kurią galite įvesti klaviatūroje, kaip iš tikrųjų yra kaip ir kreivės šie geltoni kilpos blokų nulio. Ji apima keletą eilučių kodo. Printf vis šiek tiek baisu, nes dabar I pamatyti ne tik citatos skliausteliuose. Bet ką dar naujo sintaksiškai šiame pavyzdyje? Yra proc r. Ir tada Backslash n yra ten. Mes tikrai matyti, kad anksčiau, dar nors aš ne paminėti. Tada ten kablelis. Ir tada ten skaitiklis. Tačiau mes matome tik momentas, kad tai tik standartinis būdas pasakyti Spausdinti "Dešimtainis skaičius," citata, citatos, kai dešimtainis skaičius. Bet aš ruošiuosi papasakoti vėliau ką, kad dešimtainis skaičius. Taigi dėl to, kad ten kablelis Šioje eilutėje sakydamas printf, reiškia eiti į priekį ir spausdinti kai dešimtainis skaičius. Oh, ir, beje, skaičius yra kokia šio kintamojo reikšmė yra. Ir taip, kad ši daugiau aišku, mes pamatyti pavyzdį prieš ilgas įtraukiant tiksliai printf į nekilnojamojo C programas. Dabar tiesiog susivynioti kai Šių konstruktų. Būlio išraiškos, jūs negalite turėti proga jomis pasinaudoti savo programą bet jums gali labai gerai, ypač jei naudojate sąlygas. , Todėl šie du pavyzdžiai iš Scratch galvoje, jei x yra mažiau nei y, arba, jei x yra mažiau nei y ir y yra mažiau nei z, kaip gali mes išversti, kad? Na, C tai tik atrodys tai. Šiek tiek paslaptingas, daugiau skliaustai, kažkokiam keistam jungimo ženklus, tačiau iš esmės idėjos yra taip paprasta, kaip jie " yra įspūdį pasaulyje. Jei kažkas Mes tiesiog patikrinti yra mažiau nei kažkas kitas. Kaip apie sąlygas? Be anglų Trumpai tariant, ką tai riekė Scratch kodą ar galėtumėte pasakyti? PUBLIKA: Lygina du numerius. David J. Malan: Lygina dvi numeriai, o jei x yra mažiau nei m jis sako taip daug. Jei x yra didesnis nei y ji sako daug, kitur jei x yra lygi y ji sako taip daug. Dabar kur gi x ir y atsirado? Kas žino. Šis Scratch riekė kodas yra ištraukti iš konteksto. Tačiau tai, ką mes norime padaryti dabar yra išversti tai tik už akimirką pamatyti. Taigi, kaip jums patogu Šią savaitę, problemą, 0 žaisti šiame pasaulyje kairėje, suvokti kad idėjos nesikeičia Šią savaitę arba šalia arba už jos ribų. Mes tiesiog ketiname pradėti rašyti dalykus kitaip mūsų klaviatūra, o ne mūsų pele. Taigi, jei x yra mažiau nei y, ir ten kai skliaustai ten, tada ten kai garbanotas petnešos vėl rūšies piliulę jį kaip geltonieji puzzle gabalai padaryti. Ir aš ruošiuosi printf x yra mažesnis nei y ir kt. Kas yra gražus apie C, kaip matote čia, yra tai, kad jums nereikia gauti šį lizdus, lizdus, ​​lizdus tai nebūtinai ketina stumti savo kodą į dešinę. O jūs galite turėti viską seriją tvarkingai patinka. Bet tai tik estetinė detalė matysime vėl prieš ilgas. Viskas gerai. Taigi, kad atneša mums atgal į tai paslaptingas ieškote programa. Leiskite tikrųjų rašyti tam tikrą kodą. Dabar, kaip jūs einate apie rašyti kodą? Visus šiuos metus, kad jūs priklausančios Mac arba PC, darbalaukyje arba nešiojamas kompiuteris, jūs iš tikrųjų turėjo galimybę pradėti rašyti programavimo kodą. Bet jūs tikriausiai trūksta specialaus tipo programa. Jūs, žinoma, galite rašyti kodą. Bet jūs ne visada gali, out of the box, konvertuoti šį kodą į Objekto kodas, 0s ir 1s be ko jūsų kompiuteryje? PUBLIKA: Kompiliatorius. David J. Malan: Taigi sudarytojas, teisė. Dabar dauguma iš jūsų tikriausiai neturite savo kompiliatorių, niekada atsisiuntė kompiliatorių. Bet pamatysite, galite jį atsisiųsti kaip dauguma bet kurio kito gabalas programinės įrangos. Į Mac OS pasaulyje, jums gali parsisiųsti arba atsisiuntėte jau kažkas vadinamas Xcode arba Persijos įlankos bendradarbiavimo tarybos ar Zaszczękać. Jei atvykote iš Langai pasaulis jums gali turite atsisiųsti Visual Studio, "Visual Basic", aplinka, pavyzdžiui, kad. Yra dešimtys sudarytojų šių dienų, kad jūs galite naudoti. Bet tai trumpas čia yra tai, kad jis būtų skausmas ir, tiesą sakant, technologijų košmaras šimtus žmonių, turinčių skirtingas kompiuterių konfigūracijas, kad visi konfigūruoti savo mašinos lygiai taip pat, kad mes visi galime būti tame pačiame puslapyje. Taigi, ką mes, vietoj to, padaryti į CS50 yra mes suteikiame Jums standartas aplinkos apsauga, "Linux" aplinka, kuri yra ketina ieškoti mažai kažkas panašaus į tai. Pamatysite daugiau tai Problema Set 1 specifikacija, kuri vyks internete šį penktadienį naktį. Ir ką tai reiškia yra tai, kad jūs nuo šiol ketinate būti suteikta galimybė atsisiųsti ir įdiegti programą, vadinamas CS50 Appliance. Ir jūs ketinate atsisiųsti ir įdiegti kitą programą, pavadintą Hypervizoriaus, kuri yra tik išgalvotas būdas pasiekti šį tikslą. Nesvarbu, ar turite Mac arba PC arba "Linux" kompiuteris ar Solaris kompiuteris, ar kokia proto veiklos sistema dirbate, jūs ketinate atsisiųsti programą vadinama hypervisor, kad yra ketina paleisti CS50 Prietaisas kompiuteryje nesvarbu, ką jūsų operacinė sistema yra. Kitaip tariant Hypervizoriaus konvertuoja mūsų stuff kokios kalbos, kokia instrukcijos jūsų savo kompiuterio supranta. Taigi tai yra sluoksniavimasis. Ir vėl, tai yra natūra Teminių kompiuteryje mokslas, ant ko pastatas. Jūs galite turėti "Windows". Galbūt Mac OS. Tačiau pradedant kitą savaitę jūs ketina įkėlėte nemokamai gabalas programinės įrangos, vadinamas Hypervizoriaus. Jūs ketinate atsisiuntėte gabalas programinė įranga vadinama CS50 Appliance. Tai ketina paleisti hypervisor, kuris ketina paleisti savo kompiuteryje. Ir galutinis rezultatas yra kad mums visiems bus turėti paprastą langą, kaip tai ant jūsų Mac arba PC , kuri suteikia mums visiems iliuzija veikia tos pačios operacinės sistemos, be jokios kitos poveikis kompiuteryje. Ir jūs galite visą ekraną tai ir iš esmės elgiasi kaip nors dirbate operacinė sistema, vadinama "Linux", o tai, ką CS50 Prietaisas yra pagrįstas. Taigi leiskite tikrųjų naudoti šią dabar parašyti programą. Jūs galite parašyti programą Microsoft Word. Jūs galite parašyti programą naudojant TextEdit, arba Notepad, ar WordPad arba beveik bet kokį žodį apdorojimo programa jūs kada nors naudojamas. Tačiau tikrovė yra tokia, jums neturėtų naudoti tikrai viena iš šių programų. Jūs, žinoma, nereikėtų naudoti kažkas panašaus į "Microsoft Word", kuri turi drąsių fasadą ir pakreipti, ir Didesnės šriftai ir mažesni šriftai, nes kompiuteris nėra rūpintis bet kad. Viskas kompiuteris ketina rūpi Anglų kaip instrukcijų, parašytų C Taigi, ką mes padarysime viduje iš CS50 Appliance yra naudoti programą laisvai galima, ir tai iš anksto įdiegta į tai Prietaisas, vadinamas gedit. Ir Gedit yra tiesiog super paprasta teksto redaktoriumi, pavyzdžiui Mac OS TextEdit, kaip Windows Notepad, kad ketina atrodo šiek tiek kažką panašaus į tai. Tad tikrai ne pažvelgti skaidres tai. Bet tegul iš tikrųjų eiti į aplinka pati. Aš ruošiuosi eiti į priekį ir prisijunkite, šiuo kita lange mano CS50 Appliance, kuri aš iš anksto įdiegta mano nešiojamas čia. Atkreipkite dėmesį, kad, pavyzdžiui, "Windows" ir "Mac OS", jis gavo kai kurių meniu. Kaip "Windows" ji kelia tai ten vietoj Mac OS, kuri kelia jį ten. Tačiau tikrovė yra tokia, kad tai visi tos pačios rūšies. Ir čia yra visa krūva programinės įrangos. Yra ZMI. Yra visa krūva priedai, grafiniai programos, mes naudoti vėliau probleminėms rinkinių laikotarpiu. Yra interneto naršyklė pastatyta taip, kad tai yra pilnavertį kompiuteris viduje kompiuterio. Bet aš ruošiuosi spustelėkite šį kairiausias balta piktograma čia kuris yra už Gedit piktograma. Ir jis ketina atidaryti langą kad turi tris plokštes į jį, kairysis, viršuje viena, ir apačioje vienas. Dabar jis yra šios viršutiniame dešiniajame vienas, kad Aš einu, kad iš tikrųjų rašyti tam tikrą kodą. Taigi leiskite tai padaryti ,. Aš ruošiuosi eiti į File, Save. Ir galbūt ne kada nors matė tai ypač langas anksčiau. Bet tai kaip Mac OS arba Windows. Tai tiesiog langas su visais aplankais kad aš turiu viduje šiame kompiuteryje. Ir aš ruošiuosi išsaugoti failas kaip hello.c. Ir aš ruošiuosi eiti į priekį ir spustelėkite Įrašyti. Ir dabar pastebėsite, turiu skirtuką viršuje kairėje vadinama hello.c. Taigi tikriausiai gana susipažinę net jei jūs ne prieš naudojo šią konkrečią programą. Ir dabar aš ruošiuosi rašyti tiems, gana paslaptingas komandų seka kad mes matėme prieš akimirką. Įtraukti, standartinis I / O.h. Daugiau apie tai vėliau. Žiniasklaida pagrindinis negaliojančiu, atvira garbanotas petnešomis, uždarytas garbanotas petnešomis. Ir tada viduje ten, manau, yra kur mes turėjome "Hello World", kabliataškį. Ir dabar gelbsti. Taigi, tai yra programa, parašyta C, parašyta, todėl, kodą. Bet aš negaliu tiesiog paleisti šią programą. I rūšies nori padvigubinti spustelėkite piktogramą kažkur, bet jokia piktograma yra kitų nei kodo failą. Kas, vėlgi, yra procesas, kad dabar, Man reikia paleisti šį failą per? PUBLIKA: Kompiliatorius. David J. Malan: Taigi sudarytojas. Taigi skirtinguose kompiuteriuose jūs tai padaryti įvairiais būdais. Bet ką mes padarėme čia CS50 Appliance tai atstovas, kaip jums gali tai padaryti daug skirtingų sistemų, yra aš tiesiog ketinate paleisti komandą, pavadintą prekinis ženklas. Ir padaryti yra tiesiog ketinate tai daryti. Leisk man programa. Taigi, kad ketina paleisti kompiliatorių už mane. Ir programos pavadinimas Noriu padaryti tai labas. Dabar padaryti yra programa. Ir padaryti yra pakankamai protingas, suprasti, kad, jei aš sakau, kad labas, jis ketina atrodyti automatiškai failo vadinamas hello.c tik todėl, kad tai būdas tai sukonfigūruotas. Taigi, kai dabar aš paspauskite Enter čia tai proto paslaptingas linija just got įvykdytas. Ir pasitikėk manimi, prieš ilgas, vos per dienų, jums suprasti, ką visi Minėto nesąmonė priemonėmis. Bet dabar, tiesiog žinau, kad padaryti Valdomieji vykdymas kompiliatorius. Kitaip tariant, jis konstatavo, mano kompiuteryje sudarytojas tai iš anksto įdiegta ant CS50 Appliance kad mes ranka jums problemą, 1. Ir tada jis paėmė hello.c kaip įėjimas, ir, matyt, gaminama 0s ir 1s, kaip produkcijos. Ir pagal nutylėjimą, ką ji daro tai taupo tie 0s ir 1s faile vadinamas labas. Ir nors šioje sintaksė per might būti nauja jums, tiesiog sakydami tašką velniop labas bus Priemonės, kurių aš paleisti šią programą. Nes dabar ir bent pora savaičių, beveik visi programų Mes rašome ketinate būti juoda ir balta teksto langai. Nėra pelėms, nėra paspaudę, be langų, be piktogramos. Mes ketiname keep it simple ir sutelkti dėmesį į pagrindinių idėjų Iš pradžių, kol mes gauti į kažką aukštesnio lygio, pavyzdžiui, kaip išeiti žaidimą, kad mes kalbėjome apie pirmoje paskaitoje praėjusią savaitę. Taigi, kai aš paspauskite Enter čia, tai lygiavertis tekste tik aplinkos dvigubai spustelėjus piktogramą, pavadintą labas. Ko tikitės valią atsitikti, kai aš paspauskite Enter tada? PUBLIKA: Tai bus išspausdinti "Hello World". David J. Malan: Tikimės, kad jis bus atspausdintas "Hello World". Ir iš tiesų tai padarė. Dabar ten buvo kai paslaptingas sintaksė čia. Leiskite atsukti tik už momentas ir pamatyti, jei mes negali pradėti išvadą, tiesiog skardinimo, bando ir nesugeba, kaip į tai, kas vyksta čia. Ką daryti, jei man atsikratyti pasvirąjį n? Dabar kai kurie iš jūsų, kurie jau užprogramuotas prieš tikriausiai Nedelsiant žinoti, ką tai reiškia. Bet tiems iš jūsų, kurie jau niekada užprogramuotas anksčiau, bent galvoti, kas vyksta pakeisti, kai aš iš naujo paleisti šią programą? Taigi, aš ruošiuosi eiti atgal į mano Maža juoda ir balta langas, kuris yra langas, kuriame Galiu surinkti tai. Aš ruošiuosi perkompiliuoti Hello. Mes ketiname pamatyti pats paslaptingas komandų seka. Ir aš ruošiuosi daryti dot velniop labas. Ir dabar kas nors, jei būtų, kuris niekada užprogramuotas anksčiau, ką gali skirtis šį kartą? Taip. PUBLIKA: Tai nesustabdys spausdinimas "hello world". David J. Malan: Tai vyksta to-- atsiprašau? PUBLIKA: Tai nesustabdys spausdinant? David J. Malan: Tai nebus sustabdykite spausdinimą "hello world". Taigi nėra bloga idėja. Kitos idėjos? Taip. PUBLIKA: Klaidos pranešimas? David J. Malan: Klaida pranešimą, gerai, galėtų būti. Ką dar? PUBLIKA: Jis gali spausdinti laikiklis su kabliataškiu, taip pat? David J. Malan: Gali spausdinti laikiklis su kabliataškiu taip pat. Taigi gal Backslash tada yra keletas rūšies terminous tai svarbu. Bet kitos mintys? Taigi, visi gerų idėjų. Ir iš tiesų, jis ketina būti klaidos pranešimas. Tai turbūt labiausiai tikėtina būti apskritai atsakymas per ateinančius keletą savaičių kaip mes išmokti kodą čia. Bet dabar prisimenu, kad kompiuteriai tik tai, ką jūs pasakykite jiems daryti. Panašiai kaip juokinga žemės riešutų sviestas ir želė pavyzdys. Mūsų žmogaus kompiuteriai tik turėjo daryti tai, ką jūs jiems papasakojo daryti. Taigi šiuo atveju, jei nesakykite kompiuterį judėti, kad mirksi žymeklį į kitą eilutę, jis nesiruošia daryti. Taigi, kai aš paleisti šią programą dabar pastebėsite skirtumą. Atrodo klaidą. Tai estetinis klaidą, galbūt. Bet kas skiriasi apie tai išėjimo prieš paskutinis Akivaizdu? Taip. PUBLIKA: Tai nebuvo padaryti naują eilutę. David J. Malan: Tai nebuvo padaryti naują eilutę. Dabar tie iš jūsų, kurie turi gal pagaminti tinklalapius prieš, galbūt žinote, BR tegus arba dalis žymeles, labai panašus į dvasią. Interneto naršyklė ignoruos jus iki pasakykite tai, ką daryti. Be to, yra kaip C kalba tik ketina daryti tai, ką pasakyti, padaryti. Taigi dėl to, kad visi šie pavyzdžiai, Iki šiol, yra natūra atsainiai turėjo šią Atgal nerijos velniop ten, tai priemones , pagal kurią jums išreikšti save kaip naujos eilutės pobūdžio, taip sakant. Ir jūs galite rūšies vertiname, ko gero, kad tai atrodytų rūšies kvailas jei nieko daugiau. Jei aš norėjau naują eilutę, tiesiog pataikyti Įveskite o tada natūra iš skerdieną panašaus, kad kodą tikrai neturėtų patrinti jums teisingą kelią. Ir net jei jūs neturite tikrai rūpi šiuo metu, jūs suprasite, kad tai nėra ypač good looking kodo fragmentą. Ir taip, kas pasaulis prieš nusprendę metų yra kad, kai jūs norite įdėti žymeklį į naują eilutę, aiškiai, turite aiškiai pasakyti, Naujoji linija, Backslash n. Ir ten kai kurie kiti simboliai, pavyzdžiui, kad. Bet dabar mes tiesiog sutelkti dėmesį į pasvirąjį n. Dabar padarykime programą šiek tiek įdomesnis. Aš ruošiuosi eiti į priekį ir šį kartą atverti naują failą. Aš ruošiuosi Išsaugoti kaip HELLO-1.c. Ir tik prasideda, aš ruošiuosi eiti įdėti jį į mano Dropbox aplanką. Kaip jūs pamatysite, kad CS50 dokumentacija prietaiso, vėliau šią savaitę problema Nustatyti 1, mes skatinti jums naudoti ZMI arba kai tokią paslaugą, nes tada visi jūsų kodekso bus paremta automatiškai. Ir taip tai kodėl aš atvyko į šį aplanką čia. Ir dabar aš ruošiuosi rašyti šiek tiek skiriasi programa. Įtraukti, standartinis I / O.h, int main negaliojančiu. Ir tada čia printf, hello world, kuris yra tiksliai toks pat, kaip ir anksčiau. Bet dabar aš noriu spausdinti kažką kad šiek tiek skiriasi. Noriu atsispausdinti, pasakyti "Labas, David." Gerai, taigi akivaizdu, kad, ji turėtų tikiuosi būti atvejis, kad jei aš perkompiliuoti ši programa, iš naujo paleisti jį, jis ketina pasakyti "Labas, Dovydą." Bet kas, jei aš noriu įdiegti šis kintamasis rūšiuoti, konteinerio mintis, kad vyksta saugoti D-v-i-d ir nėra sunku jį kodas į mano programą. Na ką, jei aš pradedu daryti kažką panašaus į tai? Styginių s, todėl tai yra kintamasis. Jei norite eilutę, dar žinoma kaip žodį ar frazę. Simbolių seka yra tai, ką mes programavimo skambinti eilutę. Mes tiesiog ketiname bendrai skambutis ji s, nes tai gražus paprastas pavadinimas. Bet aš negalėjau ją vadina nieko. Aš ruošiuosi pasakyti String s savo dydžiu citata citatos, "David", kabliataškis. Ir dabar aš noriu įterpti D--v-i-r į ką aš spausdinimas. Ir prieš matėme erzina ant Kai kurie specialios sintaksės ekranas kad leido mums pakaitalas vertė. Koks buvo ypatinga simbolis prieš keletą skaidres? Taigi proc. Tuo metu tai buvo proc D dešimtainis skaičius. Tai tikrai ne atrodo svarbūs. Pasirodo, ten kitas proc simbolis, kuri yra proc ai, kuris stovi už styginių vietturi. Taigi, dabar, labai paprasta, aš ketina eiti, kad labas-1, nes šią bylą vadinama labas-1.c ir paspauskite "Enter". Ir aš įsukus. Kas vyksta? Na, čia, kur mes turime pradėti dėkingi, kad mes į šią komandą linija aplinka, tai Tik tekstas aplinką. Nėra ant piktogramos paspaudę kaip aplankus dabar. Ir prisiminkite prieš akimirką. Kokiais aplankas aš pasakyti Buvau taupymo savo kodą? Taigi Dropbox aplanką. Ar buvo vadinamas nieko. Bet tai atsitinka būti vadinamas "Dropbox". Taigi, aš kažkaip reikia dukart spustelėkite ant kad "Dropbox aplanką, siekiant gauti į jį ir gauti ne mano kodas vadinamas Hello-1.c. Tiesą sakant, leiskite man eiti į priekį ir iki minimumo sumažinti tai langas tik akimirką. Tiesiog kaip ir "Windows" ir "Mac OS", yra aplankai Linux. Yra aplankai CS50 Appliance. Tai tiesiog dabar mes uždarymas patys į šią teksto aplinkoje. Bet jei aš du kartus spragtelėkite apie Dropbox, pastebėsite, yra failas, kad aš noriu rinkti. Bet man reikia tai juoda ir balta terminalo langą, taip sakant. Bet man reikia, todėl judėti į šį aplanką ar katalogą. Taigi šiek tiek paslaptinga, bet jums priprasti prie tai. Atsižvelgiant į Linux pasaulį, kuris vėl yra veiklos sistema mes veikia viduje CS50 Prietaisai, ten komanda vadinama CD. Kuris reiškia, kad aš galiu padaryti CD, tarpas, Dropbox. CD, pakeisti katalogas. Teisė. Atgal į dieną, kai žmonės buvo išrasti kompiuteriai ir veiklos sistemos, kaip tai, kad jie norėjo, kad įrašykite Mažiausiai klavišų įmanoma. Taigi paprasčiausias būdas pasakyti pokytis katalogas buvo CD. Taigi, jei aš paspauskite CD, kosmoso Dropbox, pastebėsite čia, kas pasikeitė. Viduje skliausteliuose prietaisas yra natūra iš humoring mane ir priminti man, kur aš esu. Taigi atviras aplankas yra "Dropbox". Jeigu aš dabar tipo LS sąrašas, vėl glaustai, nes žmonės nenorėjo įrašykite atgal per dieną L-i-S-t. Taigi jie, o ne tapo LS. Įveskite. Atkreipkite dėmesį, matau du dalykus, hello-1.c, ir tada šis paslaptingas dalykas, šaltinis 1m. Tai tiesiog mano būdas pasakyti šaltinis kodas savaitę 1 pirmadienis. Štai aplankas aš atsisiuntė iš CS50 tinklapyje, kad aš padariau anksčiau šiandien ir tiesiog įdėti jį į Prietaisas iš anksto. Bet dabar vienintelis dalykas, mes rūpi daro šią programą. Taigi, kai aš tipo padaryti labas-1, "Enter". Velnias. Kažkas negerai. Taigi leiskite erzinti tai vienas nuo kito. Ir, deja, tai yra ten, kur viskas gauti šiek tiek įtemptas ne pirmas, bent jei jūs niekada užprogramuotas anksčiau. Mano dievas. Parašiau du eilutės programa ir Turiu keturis linijas klaidų. Taigi, kas čia vyksta. Pirmiausia visada slinkti atgal aukštyn ir rasti pirmąjį pranešimą apie klaidą, nes dažnai kompiliatorius tik susipainioti, ką jūs ir aš. Kompiliatoriai yra gana kvailas. Jie padaryti tik tai, ką jūs pasakykite jiems daryti. Ir jei jūs supainioti juos, jie tiesiog ketina rūšies apvemti savo rankas o gal mesti daugiau klaidų pranešimus nei yra iš tikrųjų svarbūs. Taigi pažvelkime į pirmąjį. Super paslaptingas ne pirmas. Tačiau pranešimas, štai ir pavadinimas failas, kuriame aš įsukus matyt. Colon 5, storosios žarnos 5 tiesiog reiškia, į ties penktuoju pobūdžio 5 eilutę. Taigi penktoji kolona simbolių, jei bus, klaida. Naudokite nedeklaruojamo identifikatorius eilutę. Ar turite galvoje standartinį n? Ne, aš reiškė eilutę. Ir tada tai tipo kopijavimas ir įklijavimas ką aš įvedėte tikrai atkreipti mano dėmesį į kur aš įsukus. Taigi dėl kažkokių priežasčių C, arba bent sudarytojas nesupranta žodžio eilutę. Ir tai todėl, kad mes padarėme jį. Taigi seka neegzistuoja į C. Kas CS50 daro, už pirmąsias kelias savaites tik klasėje, yra mes teikiame tam tikrą mokymą ratai, taip sakant. Ir mes įdėti į šias mokymo ratus viduje specialiu failą pavadinimu CS50.h. Taigi tai yra dviejų failo antra pavadinimai, matyt pabaigoje dot h. Leiskite atgal. Printf yra pareiškimas arba funkcija kad, matyt, spausdina kažką į ekraną. Bet jūs manęs nematė įgyvendinti printf, teisė. Prieš Someone metų įgyvendinama printf. Kokiu failų norėtumėte lažintis jis ar ji įdėti įgyvendinimą už printf, už printf kodą? Į failą pavadinimu standartinis I / O.h. Tiesą sakant, tai tikriausiai du failus, standartinis I / O.h, kuris reiškia antraštės failą, ir standartinės I / O.c, kuri žymi C šaltinio kodą. Taigi prieš jis keletą metų plopped kodas, kad jie rašė į tą bylą taip, kad žmonės, kaip mums metų gali jį įtraukti, taip sakant, mūsų pačių programų. Ir iš tiesų, tai, ką svaras ženklas žodeliu apima daro. Atrodo vietos kietajame diske, randa failą pavadinimu standartinis I / O.h, ir tada efektyviai kopijuoja ir pastos jį viduje mano paties failo. Taigi dabar mano programa žino kaip spausdinti ekrane. Taigi, šia logika, kur yra eilutė apibrėžta? PUBLIKA: CS50.h. David J. Malan: CS50.h. Ir iš tiesų, tai, ką mes, pagrindinis personalas, jau padaryta. Mes išrado keletą duomenų tipus, taip sakant, kaip eilutę, Be tuos, kuriuos gauti nemokamai, kaip tarpt. Ir mes pamatyti kitus kaip char už charakterį ir keli. Viduje CS50.h matyt bent kai eilutę paminėjimas. Taigi dabar leiskite man eiti į priekį ir Rerun make labas-1. Aš padidinti ir vėl kirsti savo pirštus. Dabar iki padariusi vieną pakeisti Poprawiłem daugelis dalykų. Bet tai damn. Daugiau procentų nei duomenų argumentais. Ką man daryti negerai šį kartą? Taigi, tai dar gana paslaptingas. Tačiau ši klaida yra 7 eilutė ir charakteris 21. Taigi eikime ieškoti čia. Tai šiek tiek subtilus. Tačiau, jei jūs manote apie tai, kas pagrindinės idėjos čia yra, gal mes galime erzinti tai vienas nuo kito. Taigi printf yra funkcijos pavadinimas. Skliausteliuose, iki šiol yra tiesiog patinka tai, ką mes įdėti aplink Daiktai mes artimųjų kaip įvestys funkcijos. Gerai, tik savavališkas žmogaus konvencija. Naudokite skliaustus. Viduje šių skliausteliuose mes buvo išleisti kabutes, ir tada kaip styga "Hello World". Tačiau tos ankstesnės pavyzdžiui labai trumpai padarė pažvelgsime su nulio. Ir mes turėjome proc r, ką dar buvo viduje tų skliausteliuose kad aš sušuko žodžiu? Taip. PUBLIKA: Taigi, tai, ką jūs vartojate [Nesigirdi] nuo per [nesigirdi] kas tai [nesigirdi]? David J. Malan: Būtent. Taigi mes turėjome proc r. Bet tada mes turėjome arti citata, kablelis, skaitliukas. Teisė. Mes nurodyta, ką mes norime daryti, kaip vietos rezervavimo ženklą. Taigi, ką aš ruošiuosi daryti čia yra kablelis, ką jūs norite, kad aš įdėti? PUBLIKA: S. David J. Malan: S nes s šiuo atveju yra saugojimo konteinerio pavadinimą. Tai tos stiklo dubenėlį vardas. Kadangi prieš tai buvo kovos su tuo, kad paprastas pavyzdys įbrėžimams mes pažvelgė. Taigi dabar padaręs du pokyčiai, leiskite man padidinti ir bandykite dar kartą kaupia šią programą. Dabar matau, kad paslaptingas liniją. Bet tai iš tikrųjų Pavadinimas sudarytojas. Zaszczękać yra kompiliatorius vardas. Padaryti yra tik taupymo man kada nors galvos skausmas rašyti, kad ilgai beprotiškas komandą iš. Taigi dabar, jei aš dot slash labas-1, Turėčiau pamatyti "Labas, David." Gana underwhelming, nors, tiesa? Mes galėjome padaryti tai daug daugiau tiesiog nepasitarę apie kintamųjų ir CS50.h ir visa tai. Taigi padarykime tai šiek tiek įdomesnis. Be CS50.h, turintys tokius dalykus kaip eilutę paskelbė, CS50 biblioteka taip pat turi keletą funkcijų. Prieš Taigi tiesiog kaip metų, kažkas rašė printf ir įdėti jį į standartinį I / O.h ir kai kurių kitų failų. Mes, CS50 personalas, parašė funkciją vadinamas getchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, ir mes įdėti tie viduje failą vadinamas CS50.h ir CS50.c. Ir mes juos viduje iš CS50 Appliance. Ir žmonės taip pat gali parsisiųsti juos internete, jei jie norite įdėti juos į savo pačių kompiuterių, taip pat. Kuris yra pasakyti, kad mes sukūrėme funkcijos, kad gauti indėlį iš vartotojo. Aš nežinau, ką visi Šių duomenų tipai. GetInt rūšies paprasta, kaip gauti sveikąjį skaičių kažkaip nuo naudotojo. Ir GetString tikriausiai kaip vakaronė žodis arba iš vartotojo sakinys. Taigi leiskite sutelkti dėmesį į tai. Ir aš ruošiuosi grįžti į prietaisas ir aš ruošiuosi eiti į priekį ir išsaugoti šį failą kaip, tegul pavadinkime tai labas-2.c kaip mano antroji versija. Ir tegul padaryti keletą pakeitimų pora. Šį kartą vietoj sunku kodavimo Davidas, kuris daro neįtikėtinai nuosekli bet underwhelming programa, ką daryti, jei aš vietoj padaryti GetString? Dabar pastebėsite GetString turi atvirą skliaustų, uždara skliaustelius, nes tai nereikia jokios įvestį. Tai tiesiog ketinate eiti gauti eilutė iš vartotojo. O dabar žodis kita sintaksė. Kabliataškiais tiesiog baigti kodo eilutę. Jums nereikia juos visur. Bet tai tik reiškia, kad aš padaryta su šio kodo eilutę. Leiskite pereiti į kitą pareiškimas ar funkcija. Styginių pareiškia kintamąjį. Styginių yra tarsi sakydamas, man dubenį, prašau. Ir leiskite man įdėti eilutę į jį. Ir dabar lygybės ženklas. Kas yra lygybės ženklas iš esmės atitinka? PUBLIKA: Priskirti. David J. Malan: Taip, priskiriant vertę. Taigi, jei aš, pavyzdžiui, skambučių ši funkcija GetString, ir mes pamatyti, per akimirką ŠTAI ketina paskatinti styginių vartotoją. Tai kaip leisti tada man rašyti D--v-i-r ant popieriaus gabalas. Ir kai aš sakau eilutę ai lygi GetString, lygi ne iš tikrųjų reiškia lygūs C programavimo. Tai reiškia perleisti iš dešinės pusėje į kairėje pusėje. Taigi, aš Dotarłeś eilutę. Ir lygybės ženklas reiškia jį į saugojimo konteineris vadinama s. Ir perduoti šią funkciją, kad printf, kad iš tikrųjų padaryti savo dalykas. Taigi galutinis rezultatas tada vyksta ieškoti šiek tiek skiriasi. Padarykim, kad labas-2. Arba galėtų dirbti. Jūs taip kartu. Padaryti labas-2 dirbo. Dot velniop labas-2, "Enter". Man atrodo, kad begalinis kilpa ar kažką. Nieko, kas vyksta. Kodėl? PUBLIKA: Tai padaryti begalinis ciklas. David J. Malan: Tai begalinis ciklas. Tai tipo manęs laukia, kad faktiškai teikia jį su tam tikru indėliu. Taigi leiskite man eiti į priekį ir įveskite Dovydą, ir paspauskite "Enter". Ir dabar ji sako: "Labas, David." Jei aš paleisti jį dar kartą. Leiskite įveskite Rob "Labas, Rob." Dabar tai yra blogiausia vartotojo sąsaja bet kada. Vartotojas matyt turėtų žinoti, ką daryti. Bet nesvarbu. Naudojant šias patį pastatą blokai kaip ir nulio, mes galime išspręsti šią problemą ir pasakyti kažkas kaip jūsų vardas, prašome, storosios žarnos, erdvės, uždarytas citata, netoli skliaustelius, kabliataškis. Taigi daug "vėl Muļķība su sintakse. Tačiau pastebėti, aš ką tik įdėjote dėlionės gabalas virš šio vieno Be šio vieno. Taigi dabar, jei aš įvykdysite tai, hello-2, "Enter". Palaukit. Kas negerai? Jis nesielgia kaip nors kitaip. Taip. PUBLIKA: nepaleidote padaryti dar kartą. David J. Malan: aš ne paleisti, kad vėl į dešinę. Taigi aš pakeičiau savo kodą. Bet vėl, ten, kad srautas. Šaltinis kodas per kompiliatorius suteikia Jūs naujas objektas kodą arba 0s ir 1s. Taigi man reikia, kad iš tikrųjų Rerun make labas-2 "Enter". Gerai, kažkas, atrodo, atsitiko. Dot velniop HELLO-2. Jūsų vardas prašom. Ir, kad būtų aišku, dabar, tai kodėl toje pačioje eilutėje žymeklis? Būtent. Aš ne įdėti pasvirąjį n čia mano kodas. Taigi dabar galiu rašyti kažkas panašaus Daven, Enter. Galiu paleisti jį dar kartą ir įveskite kažkas panašaus Gabe, Enter ir mes kitą programą vėl ir vėl ir vėl. Dabar galiausiai mes ketiname reikia naudoti kelis skirtingus gebėjimus. Mums reikia pristatyti galiausiai kai sąlygos daryti dalykus sąlyginai. Gal kilpų, kad mes galime padaryti viskas vėl ir vėl. Gal tai būtų malonu, jei mes galėtų įgyvendinti savo pačių funkcijų, kaip mes galime įgyvendinti mūsų printf ar mūsų pačių portalo GetString ir GetFlow, nes galiausiai net Naudojant šią komandinės eilutės aplinka mes galime padaryti, net pats vizualiai įdomus dalykų. Iš tiesų sudarymo leiskite tai padaryti. Aš ruošiuosi eiti į priekį ir uždaryti šiuos langus ir atidarykite šią piktogramą čia kuris yra tik didesnis portalo, kad integruotas terminalo langą. Taigi Gedit turi ne tik mano kodas vietos, bet taip pat pastatyta terminalo langą, juoda ir balta langą, kur galiu paleisti komandas. Aš tiesiog atsitiko, kad atidarytumėte didesni portalo tai. Ir dabar aš ruošiuosi eiti į aplankas, kad aš jau ve įdėti iš anksto kurso tinklalapyje. Ir aš ruošiuosi eiti į priekį ir atidaryti failą, pavadintą thadgavin.c, kuri buvo parašyta kažkas. Ir jei mes pažvelgti į tai, tai ne kodo rūšis mes rašyti, nes Šio kodekso tikslas buvo parašyti gražiausia ieško kodą, kad jis arba ji gali, nepriklausomai nuo to, ar kitas žmogus kada nors galėtų suprasti šį kodą. Iš tiesų, kiekvienais metais ten kas vadinamas Užtamsinto C konkursą, kuris yra realių Geeks, kurie rašo kodas, kad niekas kitas negali skaityti, bet kad daro kažką arba tikrai paprasta ir tikrai nuostabi. Ir mes manome, kad mes norime sudaryti su šiuo išvaizdą ne kažką, kad gana fantastiška galbūt mačiau vieną kartą prieš. Bet mes galų apie tai pastaba, taškas velniop, thadgavin. Tai tada kas laukia. Štai jį CS50. Pamatysime jus trečiadienį. [Muzikos grojimo]