[Vaizdo įrašų atkūrimas] -A Triumfas matematinis ir mechaninių įgūdžių tai puikus naujas automatinis skaičiuoklė Harvardo universitete. Painus problemos matematikos įdėti per mašiną koduota forma juosta yra tiksliai išspręsta minučių frakcija laikas, reikalingas žmonių skaičiavimą. Sukurta paspartinti visas formas, Matematinis ir moksliniai tyrimai, milžinas mechaninis smegenų dirbs JAV karinio jūrų laivyno iki karo pabaigos. [PABAIGA PLAYBACK] David J. Malan: Tai yra CS50. Praėjusieji buvo magiškas vieta, bet jei jūs kada nors įdomu, ką tas prietaisas yra Harvardo mokslo centras, tai iš tiesų dalis iš Harvardo Mark I, ir tai ekrane ten dabar pastaruosius daug metų. Ir ką jūs pamatysite įdėta į problemą, rinkinį Vienas iš jų yra žvilgsnis užkulisiuose ką tas prietaisas padarė, ir daro, profesoriaus Harry Lewis, kuris yra informatikos departamentas čia. Taigi daugiau, kad tik šiek tiek. Tačiau šiandien mes pradedame perėjimo iš praeitą savaitę tai, ir mes atneš paminėti Vienos fotografijos čia kad tikrai gana garsus. Ar kas nors žino, kas tai čia yra ekrane? Bent pagal mitą. Taip. Auditorija: pirmasis virusas. David J. Malan: Taigi tai buvo tariamai labai pirmasis faktinis klaidą kompiuteryje. Dabar iš tikrųjų žodis klaidą, už į programą klaidą, buvo pas mus kai laikas fiziniame pasaulyje, ir tai buvo vienas iš pirmųjų, dokumentais kartų, kai kažkas iš tikrųjų nupeštos didelį drugys iš Mark II kompiuteris, įdėti jį į rišiklio, ir tada įrašyti jį kaip pirmasis žinomas klaidą kad iš tikrųjų buvo rasti fiziškai. Taigi taip buvo įrašytas kad į šiandienos kraštotyros. Viskas nuo paskutinis savaitę yra prieinama internete. Visų pirma išteklių, kad jums gali nebūtinai pastebėti, ypač jei ateina čia asmeniškai. Taigi vienas iš mokymo bičiulių kiekvieną metų daro kanoninę rinkinį pastabose, todėl jums nereikės laikyti Jūsų galva žemyn, bando perrašyti dauguma nieko kad gali atsitikti čia klasėje. Taigi suprantate, kad tie, Vadinamasis [? Scribd?] Pastabos yra internete, tikrai skaidres ir kodo, kad mes naudojame klasėje. Mes viso teksto nuorašai taip pat. Taigi, jei jūs miglotai prisimenu kai draugyste, ir nori atrodyti jį šiek tiek lengviau, reikia suprasti, kad visi apie tai paieškos internete. Taip pat Walkthroughs taip pat. Iš tiesų, šiandien mes pradedame ieškoti Žemesnio lygio programavimo kalba, netrukus bus žinoma, kad mus kaip C, o tai labai lengva rūšiuoti pasiklysti po kelių akimirkų laikas, tada tarsi stebuklas kaip mes iš tikrųjų turime šiek tiek daugiau kompleksas pavyzdys paprasčiausias. Ir taip suprantame mes vyšnios pasiimti klasės tikru metu tipinių pavyzdžių, tačiau suprasti, kad tiek daug yra taip pat galima rasti internete, kad jūs galite dirbti per jį savo tempu, Tačiau jūs patogiausia. Bet mes palikome ne su programas, kurios buvo tik tai. Taigi, aš spustelėkite žalią vėliavą, ir ką ši programa daro? Sako, Labas, pasauli. Tai daro katė pasakyti Sveiki jo mažai pasaulyje ant viršutinio kairės pusės nulio vartotojo sąsają. Bet mes pradėjome pristatyti kai terminologija praėjusią savaitę. Ir taip, tokie dalykai kaip šis mes vadinami kas? Ką gali būti bendrinis terminas už tai? Taip. Metodas arba pareiškimas. Žinoma, tai veiksmas. Ar tai. Ir dar ten buvo kitų formų nulio, Be šių vadinamųjų pareiškimo, jie taip pat buvo dalykų kaip šis, kurį mes vadinami kas? Taip. Taigi kilpa. Ir šiuo atveju, šis dalykas kartojasi, žinoma, 10 kartų. Yra amžinai blokas. Yra daug kitų pora. Ir šiandien mes ketiname pamatyti, kaip versti tai daugiau šiuolaikiniame pasaulyje, jei bus, nors tai ketina pasirodyti iš pirmo žvilgsnio būtų daug paslaptinga. Bet tai buvo iš tiesų kilpų. Ir tada mes turime dalykų, pavyzdžiui, tai, kuri turėjo šią formą, ir iš esmės užduodamus klausimus. Ir mes nurodyta šių, kaip ką? Auditorija: Bulio logikos išraiška. David J. Malan: Taip. Bulio logikos išraiška. Kažkas, kad yra arba tiesa arba klaidinga, taip arba ne, vienas arba lygus nuliui, tačiau norite peržiūrėti pasaulį. Bet mes vadinami tie, Būlio išraiškas, ir mes prijungti juos į sąlygas, ar filialus. Ir iš pasaulio Nulio, viskas gražiai blokuotės atsižvelgiant į jos formą, jei ji daro logine prasme tai daryti, bet jūs neturite sustoti tik daro vieną dalyką sąlyginai, jūs galite turėti patarlė šakutės kelyje ir atlikite vieną ar kitą, jei sąlyga yra teisinga, ar ne. Ir tada, kaip jūs pamatysite, Jei dar neturite, Jūs netgi galite Nest šiuos blokus. Taigi įbrėžimams auga užpildyti formas kad jūs galbūt norėsite įterpti į jį, kad jūs iš tikrųjų galite išreikšti dauguma bet logika, kad jūs galbūt norėsite padaryti. Dabar keletas žodžių skelbimo tiek čia ir New Haven. Taigi ruožais prasideda šiandien. Dėl šios URL kurso s svetainė, tiems, susipažinę. Skyriai bus galimybė gauti kartu yra daug labiau intymus aplinkoje kaip [? Sandersas?] Leidžia, nuo 10 iki 20 klasiokų, turinčioms mokymo bendradarbis skirtingų trasos, ir skirtingu tempu, jei to pageidautų. Iš tikrųjų, kursas suteikia įvairios jo dalys tiems mažiau patogūs, daugiau patogus ir kažkur tarp jų, ir nykščio čia vaidmuo, yra nėra formalus apibrėžimas, bet jei jūs mažiau patogus, Jūs rūšies jį žinome. Jūs esate šiek tiek bebaimis apie idėja žengia koja, ko gero, atgal klasėje, arba rodo iki tarp skyrius. Jei jau programavimas, nes jūs buvo šešeri metai, patogesnis, galbūt jums. Ir jei tai tipo iš Lobizmas-up, Būtent tai skirtumas tarp visų yra skirtas būti. Dabar, tuo tarpu, A klasės tokio dydžio, užtrunka mums šiek tiek laiko į skyrių visi, todėl mes taip vadinamas, Super skyriai, artėja tai savaitgalį ir anksti kitą savaitę, taip pažiūrėtų į kursą interneto svetainėje išvaizdą tiems, kurie yra žinoma, pločio, ir taip pat nufilmavo tiems kurie negali padaryti juos. Ir skyriai patys pradės į savaitę tris CS50 nulinio indekso. Problema nustatyti 0 jau kurso tinklalapyje. Ir suprasti, kad jūs turite devyni vėlai dienas šį semestrą. Taigi, tai yra nuo paskutinis atnaujinimas metais, kai mes turėjome penkias dienas vėlai. Taigi, jei jums įdomu, turime devynis problemines rinkinius. Jūs turite devynias dienas vėlai, kurių kiekvienas galite praleisti vieną per savaitę tik. Kad būtų veiksmingai daro visi problema rinkiniai dėl Penktadienis, tačiau tikslas yra įdėti šiek tiek tiek psichologinio spaudimo jums bandyti gauti dalykų ketvirtadienį nes, kaip jūs netrukus atranda, geriau ar blogiau, dauguma viskas programinės įrangos pasaulyje baigiasi atsižvelgiant daug ilgiau, nei tikitės. Taigi mano, kad tai tarsi galimybė padėti Būk nukreipti Ketvirtadienis, bet džiaukis, kad taip, viskas yra dėl penktadienį. Ir jei jūs pateikiate juos Ketvirtadienis, kad tai nuostabu. Nėra jokių papildomų taškų arba papildomos kredito susitikti šį terminą. Tai reiškia, kad tik ramentas. Ir darbo valandomis, tiek čia ir New Haven, asmeniškai, jei norite susitikti su bet kuriuo iš mūsų kursus mokymo bičiulius ir CAS pagalbos. Gerai. Taigi dabar, padarykime tai labiau realus. Ir akimirką jis ketina pradėti gauti šiek tiek daugiau paslaptingą, bet labai greitai penktadienį ir Kitą savaitę mes būsime gali padaryti daug daugiau nei mes galėtume taip toli nulio. Taigi, mes pristatė kodą paskutinį savaitę, nors pictoral. Tai buvo įspūdį. Ir mes įformintas, kad ji yra kažkas vadinamas kodo, tačiau nebuvo atrodo? Na, tai atrodė šiek tiek kažkas panašaus į tai. Ir, tiesą sakant, tik rūšies erzinti, kur mes galime eiti su tai. Aš ruošiuosi eiti į priekį ir atverti langą čia ir aš tik ketina pasirinkti naują failą. Ir aš ruošiuosi išsaugoti šį failą kaip kažką panašaus Sveiki dot C. Daugiau apie tai pasirinkimo žodžiai tik akimirką. Ir tai, kaip kas nors gali eiti apie rašymo programą. Įtraukti standartinį I / O dot h, int main negaliojančiu ir tada atidarykite garbanotas petnešomis, netoli garbanotas petnešomis, printf Sveiki kablelis pasaulis, Backslash N, kabliataškis, išsaugoti, padaryti. GERAI. Aš parašiau mano pirmasis programa, tačiau ji vyksta būti neįtikėtinai underwhelmed nes kai aš iš tikrųjų paleisti šią programą, žinoma, iki pirmojo raštu atlikti Sveiki, ir tada dot velniop Sveiki, ir mes eiti per tai daug išsamiau per akimirką, tai visa tai daro. Ar ne pop atidaryti bet langus. Jis nedaro nieko ypač išgalvotas. Visa tai daro tai, ką aš jį papasakojo padaryti, bet kaip mes gauti, kad? Ir kaip mes remtis, kad? Na, tegul pristatyti keli skirtingos sąvokos čia. Taigi vienas, mes apie pradėti naudojant programą "sudarytojas. Sudarytojas egzistuoja Mac OS, Windows, "Linux", bet operacinių sistemų skaičius, ir mes netrukus pristatyti Jums į aplinka, kad mes bus naudojamas, bet kompiliatorius yra tik bendras terminas, programinė įranga, kad mano kodą ir gamina objekto kodą iš jo. Kitaip tariant, jei turi kaip pirkimo šaltinį kodas, kažkas panašaus į tai, ką aš ką tik įvedėte, galiausiai gamina objekto kodą. Ir objekto kodas yra tikrai tik išgalvotas būdas pasakyti tai išveda Zero ir vienas aisiais. Kitaip tariant, šaltinis kodas, nors tai ketina ieškoti šiek tiek paslaptinga, ir šiek tiek mažiau draugiškas nei Scratch iš pirmo žvilgsnio, tai bent kažkas kad gali suprasti mes, žmonės. Jis rūšies atrodo ir skamba kaip Anglų nors tai labai glaustas. Kadangi programavimo nulis "ir One, kaip mūsų pirmtakai turėjo padaryti, Prieš keletą metų, buvo ne ypač įdomus iššūkis. Ir dar, tai yra tai, ką kompiuteris vis dar supranta. Taigi sudarytojas gauna mums kodo objekto kodo. Tai kaip atidaryti failą su sudarytojas ir išsaugokite jį, jūs gaunate tuos nulių ir. Taigi mes pamatysime, kaip tai padaryti kad vos akimirką. Bet tegul dabar pabandykite leisti teikti tiltas tarp praeitą savaitę, ir tai, kad net kaip mes gauti pakabinti apie tokius dalykus kaip garbanotas petnešos, ir kabliataškiai ir skliaustai, ir visa tai intelektualiai įdomu aspektai programavimas, kad labai Suprantama kelionė žmones anksti, suvokti, kad visi idėjų šiandien, yra toks pat kaip paskutinis. Taigi paskutinis, mes matėme šį pavyzdį čia Hello World programa. Na, pradedant šiandien, jei norime įgyvendinti tą pačią programą, jis ketina atrodyti tiek kažką panašaus į tai. Ir mes paaiškinsime, prieš ilgą, kokia int, ir pagrindinis, ir negaliojantis, ir visi, kad yra, bet bent jau aš matau čia jau pažįstamas Hello World. Tuo tarpu, tokie dalykai kaip funkcija, pasisveikinti, yra labai paprasta ketina būti labai paprastas pareiškimas, kaip šis. Printf hello world, su kai citatos, su backslash, kabliataškiais, bet daugiau apie tai, kad ateis. Kilpos, tuo tarpu, tai yra, kad kilpa, Žinoma, sako labas pasaulį amžinai, ir tai vienas ketina atrodyti mažai weirder nei paskutinis, bet jei aš ką nors pasakyti kaip, o tiesa, aš Tada galite išspausdinti hello world vėl ir vėl ir vėl ir vėl. Ir tada, kaip jūs galite natūra veiklos pradžios išvesti čia šis naudojant konvenciją garbanotas petnešos yra natūra tiek kaip apimantis įspaudžiami linija kodas ten. Printf linija kodą panašiai kaip geltona įspūdį iki viršaus. Taigi mes neketiname sakyti amžinai, mes ketiname pasakyti, o tiesa, bet mes pamatyti, kodėl tai yra tik šiek tiek. Tuo tarpu, jei mes turime kilpa, kaip šis, kur jūs pakartoti kažką baigtinių kartų skaičių, tai vienas per tai ketina imtis šiek tiek priprasti , bet jis ketina pasakyti int i gauna nulis, i mažiau nei 10, i ++, ir tada printf dar kartą. Bet ten bus modelius. Ir tiems iš jūsų susipažinę su AP Computer Science, ar Java, arba bet kuri kita kalbomis numeris, beveik visi šie konstruoja iki šiol turėtų atrodyti daugiausia pažįstamas. Taigi kintamasis. Taigi čia paprastas įbrėžimams ištrauka, kad nustato kintamąjį vadinamą skaitiklis lygus nuliui, ir tada amžinai sako skaitiklis ir tada jis keičia vienas skaitiklis. Taigi jis prasideda nuliu, ir tada vienas, du, trys. Na, kaip gali mes pristatome kad Ši nauja kalba šiek tiek panašiai? Žiniasklaida skaitiklis lygus nulis, o teisinga, kuri yra tai, kad pati idėja iš prieš daro kažką amžinai, ir aš tik ketina printf. Ir dabar jis truputį keista, proc i bet daugiau apie tai ateis, bet šios idėjos yra lygiai tas pats. Mes tiesiog dabar turi laikytis sintaksė, kad kompiuteris yra ketina reikalauti iš mūsų. Bulio logikos išraiška, kažkas panašaus SX mažiau nei y arba x mažiau nei y, ir y mažiau nei z. Jis ketina ieškoti truputį kažką kaip tai, su skliaustai tik kaip matematika gera priemonė tiesiog užtikrinti, kad operacijų siekiant yra, kaip mes ketiname. Ir dabar, sąlygos. Taigi, jei x mažiau nei y, tarkim x yra mažiau nei y, kitas, jei x yra didesnis nei y, pasakyti, x yra didesnis nei y, kitaip logiškai, x turi būti lygi y. Taigi jums gali įgyvendinti kažkas panašaus į tai nulio, arba galite įgyvendinti tai šiame sintaksė. Ir vėl, garbanotas petnešos yra rūšies suteikia mums tą pačią formą, kaip dėlionės gabalus, bet sintaksė, dabar, ko gero, pradedant laikytis tam tikrų modelių. Taigi, ką tai duos mums čia? Taigi, mes grįžome tada mūsų pagrindinę programą. Leiskite tikrai, dabar kažką daryti su juo. Taigi tai pats pirmas linija matome SHARP apimti, Standartinis I / O, dot h, ir tada kai keistai kampas skliausteliuose žemiau, kad. int main tuščia, ir tada printf hello world. Taigi tik žengti žingsnį. Kažkas, kas niekada užprogramuotas anksčiau, bent paaiškinti vieną iš šių linijų. Naudojant galbūt kai kurie iš Praėjusios savaitės žargono. Kas yra printf, pavyzdžiui? Taip. Auditorija: [nesigirdi] David J. Malan: Taip. Tai funkcija, arba pareiškimas, nuo praėjusios savaitės terminologija. Ir tai veiksmas kad daro kažką. Dabar ši funkcija arba Šis pareiškimas, ar tai atrodo šiek tiek įvesties natūra? Ir kokia prasme tai daro atrodo, kad sąnaudų, jei taip? Įvesties, ką aš turiu galvoje, kad? Taip. Auditorija: [nesigirdi] David J. Malan: Taip. Taigi išdrėksti keletą įspūdį kur Jūs galite parametrize ją. Galima pasakyti kartojimą blokuoti, kiek kartų kartoti, kad buvo įvesties rūšių, ir kaip Scratch turėjo šiek tiek baltos vietos rezervavimo ženklą už numerį turėtumėte įvesti į, taip mes naudojame šiame Tekstas pasaulio skliaustai duoti mums, kad apskritos formos į kurią mes galime prijungti savo indėlį. Juk dešimtys metų atgal kai šis kalba, vadinamas C buvo išrastas niekas Tikimasi, kad tai vienas iš mūsų, Šie keletas metų, mes norime noriu funkciją, kuri sako labas. Teisė? Tai būčiau malonu, jei ten buvo įspūdį, arba raktažodžiai, Tai vadinama labas, kad tiesiog tiesiog sako labas. Bet mums nereikia, kad. Mes galime turėti kažką daug mažesnę lygio, kaip bendrinio Spausdinti komandą, kad mano indėlis, ir spausdina, ką mes norime. Taigi pastebėsite dabar modelis kad pradės ryškėti. Atviri paren, netoli paren yra matyt apimantis įvestį, ir tada matau dvigubai citatos iš abiejų galų. Yra dar keistai Backslash dabar N, bet tikiuosi jums gali pradėti vizualizuoti, kad bent jau printf yra atsižvelgiant į kai kurių įvesties forma. Ne taip patogi kaip Nulio, bet tai tik lyg prijungtas kai vertė ten. Gerai, dabar tegul iš tikrųjų kažką daryti su tai. Taigi kai kurie iš jūsų gali žinoti iš turintys pirko klasę anksčiau, kalbėjosi su draugais, , kad daugelį metų mes naudojome kažkas vadinamas CS50 prietaisas. Tai buvo terminas, apibūdinantis technologiją vadinama virtuali mašina, kuri yra programinė įranga, kad jūsų pirmtakai būtų parsisiųsti išjungtas Kursas tinklapyje nemokamai. Jie taip pat atsisiųsti nemokamą kūrinį programinė įranga vadinama Hypervizoriaus, kažkas vadinamas kaip "VMware", arba VirtualBox, arba bet koks skaičius Kitų įrankių ir jų Mac arba PC ar kas kompiuteris jie turėjo pernai ir metais anksčiau, jie būtų dukart spustelėkite piktogramą paleisti šią programinę įrangą vadinamas Hypervizoriaus. Ir tada viduje tos programos jie būtų atidaryti CS50 prietaisą. Ir poveikis buvo tai, kad ar tavo pirmtakas buvo rodomi Mac OS Langai, jis ar ji tada Vėliau turėjo naują langą jų ekranas veikia CS50 anketa aplinką. Taigi virtuali mašina leidžia jums paleisti vieną operacinės sistemos viduje kitą, Ir tai būtent tai, ką mes padarėme. Per didžiąją Žinoma, mes naudoti operacinę sistemą, vadinamą "Linux", specialiai Ubuntu Linux, ir tai yra labai gražus būdas metų praeitį Užtikrinti, kad visi į paskaitas tiesiog turėjo tą pačią aplinką. Ir jūs galite naudoti bet kokios rūšies kompiuteris, jūs iš tikrųjų norite. Tarp praradimas, nors, buvo tai buvo tarsi dviejų gigabaitų atsisiųsti šį dalyką. Tai nebūtinai dirba super gerai žmonės, kurių kompiuteriuose, kurie gal tik turėjo koncertą ar taip RAM, ar ne per daug gigahercų CPU greitis, ir taip Šiais metais tai ir kitų priežasčių, Mes neturime buvo pereinate prie šios aplinkos. Vadinamasis CS50 IDE, kuris yra remiantis atviro kodo programinę įrangą, ir palaikoma platforma kad įmonė vadinama Cloud9 palaiko Europoje, kad leidžia turėti esmės kad lygiai toks pats, kaip ir aplinka metų anksčiau, tačiau vadinamosios debesies. Taigi, kas yra debesis? Jūs tikriausiai paspaudėte jos piktogramą ant jūsų Mac arba PC. Kas yra Debesis? Taip? Šiek tiek garsiau. Taip. Tai tiesiog Kompiuterių krūva kitur, kad saugoti duomenis ir paleisti programinė įranga, ir panašiai. Taigi tai tikrai tik į žodį de jure aprašyti [? nuomojamų?] Kompiuteriai, kad gyventi kitur. Kad jūs, patys, nebūtinai priklauso. Taigi, kai jūsų duomenys, ar jūsų programos, yra debesyje tai tiesiog reiškia, kad jis kažkam kito kompiuteriai kitur, o ne, greičiausiai, ant jūsų fizinė kompiuterio ar nešiojamojo darbastalio. Ir taip, kad tai, ką CS50 IDE dabar yra. Nuo šiol jums eiti tam tikras URL, supažindins Jus kad iš problemos Set 1, vėliau šį savaitę, kad tada, kai prisijungdami, duoti jums šią aplinką. Ir panašiai kaip "Scratch buvo keletas skirtingų plokštės dalyvauja, todėl nėra CS50 IDE turi būtent tai. Ant viršaus kairės pusės čia jūs ketiname pamatyti pažįstamą failų naršyklę. Taigi nors iš failų, kurie įdėti į šioje aplinkoje yra tik ketina būti išvardyti čia. Failus ir aplankus. Viršutiniame dešiniajame čia jūs ketinate pamatyti vietą kur jūs iš tikrųjų galite parašyti savo kodą. Pradžių C, vėliau į Terminas PHP ir JavaScript, ir, galbūt galutinis projektai, Ruby ar Java arba Python arba bet kalbų skaičius yra palaikoma šioje aplinkoje. Tai ne visi surišti į CS50 specialiai. Ir tada apatiniame kampe čia, ypač tiems, patogesnis, turite kažką vadinamas terminalo langą. Ir šis terminalas langas leidžia jums vykdyti bet kokią komandą, kurią nori šio debesies aplinkoje. Jis leidžia jums įdiegti jokios papildomos programinės įrangos kad jūs norite, nes jūs vadinamoji šaknis, arba administratorius privilegijų. Taigi, kitaip tariant, nors tai galiausiai surengė debesyje ir nors mes turime supaprastinta jį tam tikru mastu pagal nutylėjimą, tiesiog diegti, dėka Dan Armendariz Dino, Dan Bradley ant CS50 komanda per praeityje daug mėnesių, mažiau patogus režimą, kuris slepia partiją iš pradžių paini ramiai. Viskas egzistuoja iki tipinė kompiuterinę sistemą kad galite naudoti realiame pasaulyje. Taigi ką visa tai reiškia, o ką mes galime realiai padaryti su juo? Leiskite tikrųjų imtis žvilgtelėti programą. Taigi, aš ruošiuosi atverti Tikrasis aplinka čia kuris yra tik mūsų Chrome " naršyklė, kuri gali būti Firefox gali būti "Internet Explorer", ar kokios nors kitos naršyklės, taip pat. Tai visiškai patikrintas čia momento. Ir aš noriu, kad iš tikrųjų erzinti išskyrus tai, ką ši programa buvo. Taigi leiskite pažvelgti, atstovus padidindami iki viršų, ne tai, ką aš padariau, ir kaip aš čia. Taigi čia tie Tiksli tie patys eilučių kodo. Taigi tai yra teiginys, kaip Jūs minėjote anksčiau. Funkcija, kuri sako labas. Garbanotieji petnešų, apie keturių linija ir linija šešių, matyt rūšies lėšomis kad linija asocijuojasi su mano programa iš esmės. Taigi iš tiesų, šis raktažodis pagrindinis, tai ten on-line trijų, jūs galite galvoti, kad ekvivalentinis to, kai žalia vėliava paspaudėte, blokas nulio. Taigi, kad visi mes turime čia, yra tada, kai Žaliosios vėliavos paspaudėte, spausdinti ar pasakyti, Sveikas Pasauli. Bet tegul spėti, dabar, ką Tai pirma, paslaptingas linija, yra. Sharp yra atviro kampu laikiklis, standartinis I / O taškas H, uždaryti kampu laikiklį. Kas yra, kad galbūt daro, ypač jei jūs užprogramuotas Prieš kitu kalba. Taip? Auditorija: [nesigirdi] David J. Malan: Taip. Būtent. Taigi, tai suteikia jums prieigą prie biblioteka, taip sakant, funkcijų. Ir funkcijų biblioteka funkcijos, kad kažkas rašė: arba neseniai ar seniai, todėl, kad jūs neturi išradinėti dviračio. Pavyzdžiui, mes do not turite žinoti, 2015, kaip rašyti kodą, kuris kelia ant mano ekrano simbolių. Kažkas kitas jau suprato, kad atlikti su printf funkcija kad galėčiau rūšiuoti abstrakčių atokiai nuo to, ar sluoksnis ant jo ar jos kodas, o dabar tiesiog savaime suprantama, kad kokia nors programa rašau gali spausdinti kažką ekrane. Taigi, šis pirmasis linija yra vienu žingsniu apima vadinamąjį antraštės failą už standartinės bibliotekoje. Taigi matyti, kad kalba kurioje mes dirbame turėjo standartinę biblioteką su daugybe funkcijų. Printf yra vienas iš jų, ir kad pirmoji eilutė kodas tai man prieigą prie tas funkcijas, kad aš nereikia išradinėti dviračio, kad. Dabar eikime prie lango apačioje ir tai, ką aš padariau anksčiau. Prieš momentas, kai buvau whizzing per kodą, rašyti jį pirmą kartą, Aš labai greitai įvedėte, kad labas. Kas buvo, kad visa informacija apie tai galite atspėti? Ką aš buvau darai? Taip? Nesvarbu. Viskas gerai. Taip. Auditorija: Surinkimas ją. David J. Malan: Taip. Tai buvo tiesiog kaupiant ją. Teisė? Net jei tai yra visiškai nepažįstamas jums, tai gana anglų pan. Tai tikrai ne nuliai ir tie, todėl aš vis dar reikia paleisti jį per, kad taip vadinama Programa sudarytojas, kad vyksta priimti jį kaip pirkimo ir gaminti produkcija. Ir bent, dabar, į Ši "Linux" aplinka, tačiau tai nėra būtina sąlyga, tai tik ten, kur pradėsime, Jūs paprastai bendrauti su kompiuterinės sistemos, kaip tai pagal vadinamąją komandų eilutę. Taigi su mirksintis greitai ir klaviatūra, ir ne tiek daug, pelės, o ne tiek daug langų ir piktogramas ir meniu, o viskas yra tekstinė. Ir nors tai atrodo, iš pradžių žvilgsnis, ko gero, kaip žingsnis atgal, tai tikrai daug daugiau galingas ir ekspresyvus būdas kontroliuoti kompiuterį ypač jums, sau, tapti labiau patogus nuo mažiau. Ji ketina leisti jums padaryti daug daugiau dalykų, nei tai, ką "Microsoft" ar "Apple" leidžia jums padaryti su jų grafinė operacinė sistema. Taigi, kai aš paspauskite "Enter", dabar, nieko neįvyksta šį kartą nes matyt Programa Hello yra iki šiol. Ir tai, kas buvo komanda Išbėgau po to? Dot velniop Sveiki, ir hello world. Dabar galime žengti žingsnį atgal tik akimirką. Pasirodo, kad padaryti Hello yra tik supaprastintas būdas sudarant programą. Tegul tik pristatyti vienas gabalas žargono, bet tada tolti iš jos, nes ji nėra visi, kad įdomus šiandienos tikslais. Kompiliatorius mes ketiname pradėti naudoti yra vadinamas klingsėti, už C kalbą. Ir tai yra programa, kuri manimi paleisti tik kaip mes padarėme komandų eilutėje ten. Ir todėl, jei aš noriu sudaryti programą, kad aš parašiau į failą pavadinimu Sveiki taškas c, aš tiesiog tiesiog įveskite klingsėti sveikinasi C įeiti. Įdomiausia tai, dėl istorinių priežasčių, jei aš neturiu nurodėte Programos pavadinimas kad aš noriu produkcijos, jei aš neturiu nurodyti failo pavadinimą tų nulių ir tie, labai keistai prieš konvencija buvo priimta metai kur jis pajuto natūra Kurių geras atsakymas tuo metu, gerai tegul tiesiog savavališkai vadiname Pirmoji programa mes kompiliuoti tašką iš. Ateina pirmoji abėcėlė. Iš, tai produkcija. Taigi mes vadiname programą pagal nutylėjimą taškas iš. Ir tai gerai, nes jei aš noriu paleisti programą Šiame tekste pagrįstos aplinka, aš tiesiog įveskite dot velniop tašką iš įeiti. Ir tai būtų paleisti tiksliai taip, kaip anksčiau. Taigi pažiūrėkime, kad labai greitai. Taigi, jei aš einu atgal į savo kodo į CS50 IDE, ir aš ne tai padaryti, žvangėjimas Sveiki vaikiška lovelė c atvykti, pranešimas niekas, atrodo, kad taip atsitiktų, bet beveik visada Ši "Linux" aplinka, kai nieko bloga, atrodo, kad taip atsitiktų, kad reiškia kažką gero iš tikrųjų atsitiko. Jei nematote klaidą pranešimą, visi turbūt gerai. Ir iš tiesų, jei aš dabar daryti dot velniop tašką iš įeiti, aš paleisti savo pačią programą. Aš vis dar turiu Hello programą iš anksčiau, nes iš tiesų, tai bus tiek daug gražiau tik įrašykite padaryti vietoj prisiminti Šie užkalbėjimai komandas, bet pažiūrėkime, kaip mes gali patobulinti šią, vis dėlto. Taigi, tai yra komandų kompiliuoti kodą. Tai yra komandų paleisti , kai surinkta kodą vėliau. Kaip aš galiu nurodyti failo vardą? Na tegul tiesiog pristatyti dar vienas gabalas žargono. Kai būsite šiame tekstinis aplinka, jūs ketinate norite nurodyti dalykai vadinami komandinės eilutės argumentai. Kuris yra tik išgalvotas būdas pasakyti, kitaip sakant, į eilutę, kad įgnybti elgesį kokia programa dirbate. Taigi specialiai programa aš veikia, įvesdami vardą klingsėti, yra programa, vadinama klingsėti. Taigi, tai yra, arba senosios mokyklos ekvivalentas dukart spustelėdami "Microsoft Word" ar " kai kuriuos programos piktograma. Aš vietoj tiesiog įrašydami jos pavadinimą, bet šioje komandą versija, Tada aš turiu brūkšnys o erdvę Sveiki erdvė Sveiki taškas c. Taigi, net jei jūs niekada grojo šiame pasaulyje ir anksčiau, tiesiog atspėti, ką nėra brūkšnys O labas daryti? Arba ką jis pasakys klingsėti daryti? Taip. Auditorija: [nesigirdi] David J. Malan: Taip. Jis tiesiog nustato failo produkciją laikyti Sveiki vietoj sillier taškas iš. Ir, tiesą sakant, pabandykime tai. Taigi, jei aš dabar daryti, pirmą kartą Padarykim tai, R m Hello. Štai pašalinti. Ir jis ketina pasakyti Išimkite Nuolatinis failas Sveiki, kuris yra pernelyg neaiškus, bet jis tiesiog priemonės ar norite ištrinti failą, ir aš tipo Y Taip. Ir pastebėsite, jei jūs žvelgdamas viršuje į kairę, jis išnyksta iš ten. Leiskite man dabar daryti klingsėti brūkšnys O, ir Aš ruošiuosi eiti į priekį ir padaryti Sveiki, visų kepurės, hello taškas c. Dabar, jei aš dot velniop Sveiki, ką jūs tikitės? Gal tai ir mažosios raidės. Gal tai ne. Pažiūrėkim. Nėra tokio failo ar katalogo. Ir mes galime rūšies apgauti iki tik žiūri viršuje kairėje. Ką aš akivaizdžiai išsaugoti kaip programa? Visi kepurės labas. Taigi iš tiesų, tai vyksta padaryti skirtumą. Taigi dabar hello world atgal. Dabar tai viskas gerai ir gerai, ir visi labai proto nejautros, rūšiuoti įklimpsta tai Išsamiau, bet suprasti jų yra geras. Spausdinimo šiuos vis ilgi užkalbėjimai nesiruošia būti ypač Smagu, kad žmonės pasaulyje išrado kitą programą, Prieš keletą metų, vadinamas padaryti, kad paprasčiausiai leidžia įvesti markę, programos pavadinimas norite padaryti, ir padaryti yra protingas, kad ji atrodys dabartiniame aplanke, dar žinomas kaip kataloge, ir jei jūs turite failą vadinamas Hello taškas c, kad yra failas ji bus kaupia Jums į programą "Sveiki. Taigi tai yra daug paprastesnis būdas daro daugiau paslaptingas komandas kad mes padarėme anksčiau. Ir mes iš anksto sukonfigūruotas CS50 IDE žinoti kad ji turėtų daryti brūkšnys o ir skaičių kitos vėliavos, ar komandinės eilutės argumentai, kad mes pamatysime netrukus. Bet tegul dabar iš tikrųjų kažkas įdomiau. Tiesiog rašyti iš hello world visi laikas yra ne visi, kad įtikinamos. Taigi leiskite man eiti į priekį ir pakeitimas Ši programa ir sako, labas Davidas. Dabar aš ruošiuosi eiti čia. Aš ruošiuosi eiti į priekį ir padarysiu labas. Ir vėl dabar matote padaryti yra parodyti jums, tuo ilgiau komandų seka, kad jis daro, nes mes iš anksto sukonfigūruotas kad taip, bet mes nereikia nerimauti dabar ką jis daro, išskyrus tai sudarinėjusiems dot velniop Sveiki, hello world. Kas negerai? Taip. Auditorija: [nesigirdi] David J. Malan: Taip. Taigi, noobie klaida. Aš pastebėjau, tai yra super subtilus, bet Žvaigždutė čia, skirtukas, tiesiog reiškia, jūs ne jį išgelbėjo, ir naršyklių ir kitos programos tai padaryti kartais. Taigi kontrolė S arba komandą ai turėtų išsaugokite jį. Dabar leiskite man eiti į priekį ir iš naujo paleisti programą. Perkompiliavote. Teisė, todėl kelių etapų procesas. Nė vienas iš jų yra itin sudėtingas, bet kuriuo metu mes pakeisti failą, reikia pakeisti Gautas nulių ir, ir taškas velniop labas. Oho. Taigi tai yra labai underwhelming kad mes tiesiog atspausdinti tai. Padarykime ko šiek tiek labiau dinamiškas, dabar. Na it turns out, kad patinka Įbrėžimams C palaiko kintamuosius. Ir it turns out, jei norite turėti kintamąjį, kuris saugo, ne kaip mes skaičius paprastai padarė su nulio, bet kaip žodžio, arba Frazė, arba pavadinimas, jums galite nurodyti kintamąjį būti tipo eilutę. Taigi mes pamatysime daugiau tai vos akimirką, bet Pasirodo, kad C, ir iš kalbų, pavyzdžiui, jo partija, turi labai konkrečius kintamųjų tipai. Tai ne tik patinka algebra, kur gauti X, Y ir Z ir tie, kurie tiesiog visada numeriai, programavimo kalba Jūs galite laikyti numerius, galite saugoti atskirus simbolius, galima laikyti ištisus žodžius, jūs galite saugoti visą vaizdus, ​​neskaldytų garso failus, ir panašiai. Taigi mums reikia nurodyti, ką mūsų kintamojo tipas yra. Ir pagal susitarimą aš ruošiuosi paskambinti savo kintamos -os tik todėl, kad ir glaustai, ir s reiškia eilutę. Ir tada aš ruošiuosi laikyti viduje šio kintamojo, Kaip ir su Scratch kai aš naudoju nustatytą blokas, Aš ruošiuosi naudoti priskyrimo operatorius C, kurie pakankamai gražiai yra lygi pasirašyti, tačiau lygybės ženklas tai daro. Jis juda kažką iš dešinės į kairės pusės išraiškos. Taigi, ką aš padariau, kad būtų aišku, linija penki, yra aš paskelbė kintamąjį. Aš papasakojo kompiuterį, duok man atminties kintamajam, skambinkite ji s, ir iš anksto žinoti, kad aš ruošiuosi reikia išleisti eilutę į jį. Ir eilutė yra tik seka simbolių. Tai žodis, arba frazė, arba dalis, bet tai simbolių sekos. Tai ne skaičiai. Kas seka aš bus išleidimą į tą kintamąjį? Na, matyt, cituoti citatos pabaiga "," Ona ". Dabar pastebėsite modelį, besiformuojanti. Yra kaire ranka, išraiška. Yra dešinė išraiška, atskirtas vienodo ženklas. Ir tik spėti, jei nepažįstamas vis dėlto, su tuo, ką kabliataškis daro. Kas tai turbūt daro mus? Taip? Auditorija: [nesigirdi] David J. Malan: Taip. Tai tiesiog nutraukiama liniją. Teisė? Kompiuteriai nori būti tiesmukai sakė, pažodžiui, ką daryti. Kaip žemės riešutų sviestas ir želė sumuštiniai pavyzdys, Jei nenurodysite ką jūs ketinate, jis gali būti paliktas sprendimo ar klaidos. Kabliataškis reiškia, kad viskas šiai komandai. Tai yra super tikslūs, ir tai labai paprastas dalykas palikti išjungtas. Taigi, dabar ši programa neatrodo būti elgiasi kaip nors kitaip, kol I padaryti jį labiau dinamiškas. Taigi, o ne sunkiai galėjo my own vardas, leiskite man įdėti imituojančiu vertę. Ir paaiškėja, kad ir aš žinau, tai gražu skaityti dokumentus, ir naudojami daugelį metų funkciją, kad printf buvo sukurta siekiant būti dinamiškas. Jūs neturite žinoti iš anksto kokiais žodžiais norite įdėti į jį. O jūs galite turėti vietos rezervavimo, kaip proc s, kuri ketina papasakoti kompiuteris, įdėti eilutę čia. Kuris styginių mes norime ten įdėti? Ar paaiškėja, kad tarp šių skliaustai, kurie prisimena, atskiria įėjimo į funkciją, jei turite atskirtų kableliais sąrašą dalykų, kuriuos čia mes iš tikrųjų pereiti į kartotinio įėjimai į funkciją. Taigi tiesiog patinka kai nulio blokai, jūs negalite grojo su jais Jūsų projektai ar dar ne visi, kai Scratch blokai turi du įėjimus. Du baltos dėžės galite tipo numeriuose ar žodžius į. Taigi, norint nėra C turi funkcijų, pavyzdžiui, printf, kad gali užtrukti du įėjimus. Ir vėl, tai kablelis yra atskirti juos. Taigi anglų kalba, vėl net jei Jūs niekada užprogramuotas anksčiau, Iki, kad logika printf yra funkcija, trunka du įėjimus, iš kurių vienas yra vietos rezervavimo, ką jūs tikėtis, printf ketina daryti su šia pirkimo? Ji ketina pasakyti labas Ona, tikiuosi. Taigi tai turime išsaugokite jį daryti. Aš ruošiuosi nutolinti. Aš ruošiuosi eiti atgal čia ir pasakyti, kad Hello įvesti. Oh. Kažkas yra negerai, ir iš tikrųjų tai yra gana didele. Aš turiu šešis eilutes kodo ir kaip 12 eilučių klaidų. Taigi, tikimės, kad tai. Taigi, kas čia vyksta? Taigi geriausias nykščio taisykle čia ypač, kai jūs pradedate, do not get išsiblaškęs apačioje dalykų. Iš tiesų, aš labai sąmoningai tik przewijany iki nes labai dažnai, kompiuteris yra ne visi, kad prietaiso šviesus. Tai vyksta susipainioti. Jei jis mato vienas dalykas, kad ji nesupranta, tai gali supainioti kita eilučių kodo, kaip neteisingas, nors jie puikiai baudą. Taigi jūs visada nori dirbti iš viršaus į apačią per klaidų. Ir tiesa tai Super slaptas metu. Klaida, naudojimas nedeklaruota identifikatorius eilutė. Ar aš turiu galvoje standartas? Ne, aš reiškė eilutę. Ir tai nukreipta į, galbūt tai klaidos. Rūšiuoti kaip, rašybos tikrinimo A labai patogu būdas, bet priežastis čia ir jūs tai žinote tiesiog praktikoje yra kad ji Pasirodo, kad eilutę neegzistuoja C Iš tiesų, C yra ypač senas kalba, ir tai labai žemo lygio, ir jis neturi daug funkcijų kad jūs galėjote užaugo su, jei turite, iš tiesų, užprogramuotas Java, kaip kai kurie iš jūsų, bet jūs galite mokyti naujų dalykų. Ir iš tiesų, mes padarėme šį CS50, nors pagal semestro pabaigos, visų šių mokymo ratų bus imtasi išjungti, ką mes darome tai Pirmoji pora savaičių iš pradžių yra taip pat turime jūs įtraukiate CS50 dot h. Kuris yra antraštės failą. Daugiau apie tai ateityje. Tai failas, kuriame yra funkcijų kad mes parašėme jums. Ir tarp šių funkcijų yra funkcijos vis įvestį iš naudotojo, kaip stygos, ir numeriai ir realieji skaičiai, ir daugiau. Tačiau ji taip pat turi keletą nuorodų. Jis apibrėžia loginį kaip duomenų tipą. C neturi true arba false. Tačiau mes galime suteikti jai sąvoką true arba false būdu šios bibliotekos. Ir jis taip pat neturi eilutę pastatytas, kol mes įtraukti šią liniją. Taigi šis kodas linija pasakoja sudarytojas, ei, klingsėti, ieškoti Šiame faile visa krūva kodas, kuris CS50 parašė, kad kas naudojate šį failą gali imtis už suteiktas savybes jie pridėjome. Taigi dabar leiskite man eiti į priekį ir išvalyti ekraną, ir jei įdomu, aš tiesiog pasakyti kontrolę L kiekvieną kartą išvalyti ekraną, arba galite įvesti aiškus. Aš tik ketina eiti į priekį ir dabar tipo, kad labas, ir viskas yra gerai. Vis dar neaiškus produkcija, bet tai nėra klaidingas pranešimas. Dabar, jei aš dot velniop Sveiki, ir kaip žemę, taškų pasviro brūkšnio susipažinę su dauguma. Tai tiesiog reiškia, DOT priemonės einamojo katalogo. Taigi, jei jūs kada nors naudoti DOS arba "Linux", "Unix" jūs galėjote padaryti kažką kaip cd dot dot, kur dot dot reiškia eiti atgal laikas, arba eikite atgal, arba aukščiau Jūsų kataloge. Dot tiesiog reiškia ieškoti einamojo katalogo. Noriu Sveiki, kuris yra čia. Ir iš tiesų, dabar ji sako labas Ona. Ir jei aš pakeisiu jį dar kartą į Maria, perkompiliuoti tai būtų Sveiki, dot velniop Sveiki, programa nuolat keičiasi. Tačiau tai yra vis dar gana kvailas programa. Jei aš noriu, kad laivas šią programą, ar duoti jį draugui, ar duoti Maria ar Hannah šiuo klausimu, tai gerai. Galiu pritaikyti jį tiek iš jų, bet jis niekada nebus dinamiškas. Jie negali pakeisti jį, kai jis sudarytas žemyn į tų nulių ir. Taigi, ką mes padarėme kažką protingesni? Ką daryti, jei vietoj kietojo kodavimo į programą šio asmens vardas, Ką daryti, jei mes tiesiog gauti dėl paklausos eilutė? Taigi, kitaip tariant, leiskite man tai padaryti. Aš ruošiuosi perkompiliuoti šią programą. Ir leiskite man padidinti apačioje dabar. Padaryti Sveiki dot velniop labas. Dabar nieko nevyksta. Ar mes galime gauti greitai savanoris padaryti kažką atsitikti? Nagi iki. Koks tavo vardas? PANCHO: Pancho. David J. Malan: Pacho? Nagi iki. Kai gausite čia, tai bus labai underwhelming, bet tai įdomiau nei man jį rinkdami. Jei norite eiti į priekį ir įveskite savo Vardas, aš padariau šią programą, kaip tik jums. Tiesiog įveskite savo vardą. Įveskite. Nuostabus. Gerai, ačiū labai daug. PANCHO: Labai ačiū. David J. Malan: Gerai. [Plojimai] Tai buvo labai malonūs. Čia Go. Ką mes galime padaryti? Taigi, mes pagaliau, bent jau, padarė ši programa dinamiškas. Dabar jis vis dar tikrai pagal konstrukcijos underwhelming, bet mes pagaliau turime galimybę dabar rašyti kodą iš anksto, daug Kaip ir printf autorių, ir tada dinamiškai prisitaikyti remiantis įvesties mes esame rankomis, nei programuotojas, arba žmogaus, kuris tikrai bendrauja su programa. Tad iš tikrųjų dabar pabandykite padaryti keletą kitų konstruktus ir pamatyti, jei mes negalime padaryti programas patys vis sudėtingesnės. Taigi eikime į priekį ir vietoj rašau šį vieną nuo nulio, Aš ruošiuosi eiti į šiandien kodo, ir visa tai galima rasti aikštyno svetainė, ir jūs galite nuvilkti jį į savo aplinką ateiti penktadienį, kai problemos Set 1 suteikia jums instrukcijos, ar galima daryti komandų eilutėje kaip Na, bet daugiau ateiti p Set 1. Pažiūrėkime, kas šioje programoje čia vadinamas, padidinimas taškas c. Dabar aš jau komentavo tai, bet kas naujo? Iš pirmo žvilgsnio, ką linija kodo yra visiškai naujo? Tikriausiai ne iš esmės nepažįstamas dabar. Auditorija: [nesigirdi] David J. Malan: Taip, taip int x lygus gauti n. Mes niekada bet tai anksčiau, tačiau INT tikriausiai už tai, ką rūšies simbolis kintamasis [? nuo?] sveikasis skaičius. Taigi int už sveikojo skaičiaus. Tai tiesiog yra daugiau glaustas. x yra tiesiog savavališkai. x ir y ir z yra vis dar gana geras numerių, tačiau paprastai mes naudojame žodžius, kai Mūsų programos gauti daugiau sudėtingas. Gauk int, žinoma, panašiai kaip get eilutę, tikriausiai ketinate gauti Ištrauka iš naudotojo int, ir tada mes ketiname daryti tą patį su y. Ir, matyt,, nors tai paskutinė eilutė, 24, atrodo sudėtingesnis, jis ketina pasakyti, kad ši suma ir kad tai yra kitas dalykas. Ir pranešimas proc i tikriausiai reiškia ką? Kokį vaidmenį proc Aš, matyt, tarnauti? Tai tiesiog pamainymai. Teisė? Procentai S buvo už eilutę, proc i yra sveikasis skaičius. Ten bus procentų f slankiojo kablelio vertę, kuri yra tik numeris su kablelio. Kitaip tariant, tikras skaičius. Tad iš tikrųjų sudaryti šią programuoti labai greitai ir padarysiu padidinimą. Oi. Gera proga. Taigi pastebėsite čia, visą šį laiką mano vartotojo vardą šiam paskyra jharvard. Aš esu CS50 IDE, dar žinomas kaip IDE50. Ir dabar mėlynai čia yra paminėti, bet iš aplinkos, iš kur aš esu. Ir iš tiesų, jei aš padidinti iki viršaus čia pastebėti, kad turiu IDE50 ir matau šį žodį, jei jums rūšies pasukite galvą į šoną, darbo vietos. Trumpai tariant, tai, kad Matau tildės velniop darbo sritį tai reiškia, kad šiame tekste remiantis komandų aplinka, Esu teksto ekvivalentu Ši grafinė aplanką čia. Taigi, kai aš dot velniop padidinimas, tai sakydamas ne taisyklė padaryti tikslinę padidinimas stop. Aš nežinau, ką tai reiškia, bet tai blogai dėl kažkokių priežasčių. Nėra tokio failo ar katalogo dar aišku. Kur jis tada? Remiantis kur aš spustelėjote atidaryti failą anksčiau. Kur tai gali būti? Tai tikriausiai šaltinį viena W, trečiadienį, ir matau ją, tiesą sakant, jei aš atidaryti, kad iki. Yra padidinimas dot C, bet Šis tekstas pagrįstas aplinka, vėl turiu būti itin aiškus. Jei noriu pakeisti katalogus į šaltinis vienas Trečiadienis, man reikia rašyti, CD erdvė šaltinis vienas Trečiadienis įvesti ir dabar Mano skubių pakeitimų man vizualiai lazda, kad Aš, tiesą sakant, kitur mano aplinkoje, bet dabar galiu padarysiu padidinimas, atrodo, kad darbas, dot velniop padidinimas, duok man sveikasis skaičius. Vienas. Du. Vieno ir dviejų suma yra trys. Bet jei aš nebendradarbiauja, pažiūrėkime, ką gaunate int daro. Duok man sveikasis skaičius. Ne. Bandyti dar kartą. GERAI. Gerai. 50. 50. Gerai. Taigi pagaliau bendradarbiauja. Ir tai kai kurie iš funkcija, kuri šias funkcijas gali būti pastatyta už jus. Taigi viduje įgyvendinimo iš gauti int, koks programavimas statyti iš praeitą savaitę yra turbūt ten priversti šią bandymu elgesį, bandykite dar kartą, bandykite dar kartą? Taip, ten tikriausiai kai kilpa natūra. Jis ketina ieškoti sintaksiškai skiriasi nuo nulio anketa blokų, bet tai iš tiesų kas viduje failą. Ir per keletą savaičių metu mes realiai pažvelgti į CS50 bibliotekoje apie tai, kas viduje, bet ten kilpa nustatyti būtent tai. Pažaiskime kvailas Little Žaidimas čia su šia byla. Būklė nulio taškas c. Užtenka tik ketina iš esmės pradėti skaičiuoti nuo nulio. Ir aš nuolat przewijanie praeitį kai kurie iš viršuje medžiagą. Mėlynai čia pažymėtos su visais Šių žvaigždės ir slešų Tiems iš jūsų, kurie užprogramuoti anksčiau, kas tai yra? Kodėl mes nuolat praleidžiant per jį? Ką? Auditorija: Tai komentaras. David J. Malan: Taip. Tai tiesiog komentaras. Tai yra žmonėms komentaras skaityti, kad mūsų atveju, pasakoja, ką failo vardą yra, kas ją parašė, o ką ji daro, taip, kad jūs neturite perskaityti kodas žinoti, ką šis failas yra visa informacija apie. Tai tiesiog aprašymas, bet funkciškai tai neturi jokios reikšmės. Ir aš netgi galite ištrinti jį iš mano byla ir ji neturi įtakos. Sultingas linijos yra šios Pirmieji du čia, dabar. int main negaliojančiu yra lygiaverčiai Mūsų kai žalia vėliava paspaudėte, todėl mes išeisime, kad būtų šiandien, ir mes grįžti, Galų gale, kaip ką INT ir negaliojančiu yra, bet dabar, pastebėsite, ką aš padariau Čia taip pat galite taip pat, Jei turite suderinti komentarų, jei turite minties norite pasidalinti apie tam tikrą eilutę kodo, Konvencija C yra padaryti velniop velniop, tada keli glausti žodžiai ne visą sakinį, paprastai ne dalis, kad tik paaiškina jums, ar jūsų TF, ar kiti skaitytojai ar kolegos, Ką jūsų kodas daro. Taigi, o ne turi atrodyti ne tai ir daro išvadą, linijų devynių ir 10, kas yra Tai darydama, atsižvelgiant aštuonių Aš tiesiog duoti komentarą prie paprašyti naudotojo už sveikasis skaičius, tada aš neturiu galvoti per sunku apie tai, kas devynias ir 10 eilutės. Aš tiesiog žinau, kad tai, ką kartu jie daro. Kaip? Na, čia yra greitas. Štai gauti iš tarpt. Ir remiantis ankstesniu elgesys, atrodo GET int yra pakankamai protingas, kad įsitikinti, kad žmogaus bendradarbiauja ir teikia ją yra sveikasis skaičius. Bet dabar mes matome tai. Ir tai primena nulio. Aš teigdamas, kad aš Analizuojant vartotojo įvestį, bet šiek tiek netiksliai. Ir tai, matyt, C, kaip Mes pareiškiame, jei kitur, filialas, yra vienas iš kelių šakutė, bet aš pasakyti šiek tiek netiksliai. Kas yra šioje programoje klaidą? Apie toliau atgal? Taip. Auditorija: [nesigirdi] nulis. David J. Malan: Taip. Taigi, jei aš tipo nulio, aptarkime būtent tai atvejis, ar kampe atveju, jei bus. Taigi, jei aš tipo nulio, kuris iš blokai ketina matyt patraukti jį? IF arba kitur? Else, ir jis ketina pasakyti, pasirinktas neigiamas skaičius. Ir iš tiesų, nulis nesugriauna būti teigiamas arba neigiamas, ir taip, kad būtų klaidingai. Tai būtų klaida. Taigi, kaip mes galime išspręsti šią problemą? Kažkas, kas niekada užprogramuotas prieš? Ar tu nori-- Auditorija: [nesigirdi] David J. Malan: Įtraukimo? Auditorija: [nesigirdi] David J. Malan: Oi, jūs turite? Kažkas, kas niekada užprogramuotas anksčiau. Norite išbandyti savo jėgas Tai, raudona marškinėliai? Nagi iki. Oh yeah, nagi aukštyn, jei jūs neprieštaraujate. Taigi niekada užprogramuotas anksčiau, koks tavo vardas? LAUREN: Lauren. David J. Malan: Lauren, visi teisūs. Taigi išspręsti šią klaidą mums. Jūs nemačiau C, matyt, ir tikriausiai jokia kita kalba. Taigi išspręsti šią programą už mus. Nice to meet ya. Jokio spaudimo. LAUREN: Taip. David J. Malan: Bet vėl, jei tai lošti eina pagal planą, Takeaway čia bus būti, tiesiog vėl pradėti pastebėti tendencijas ir numanyti iš esamų sintaksę kaip kitaip jums gali išreikšti sau, ne kalambūras skirti tam, kad fiksuoti tam tikrą papildomą scenarijų. Taigi mes sakydamas else if. printf, geras. Ir pastebėti su CS50 IDE ir frankly-- IDE stovi integruotoms Kūrimo aplinka. Tai tik išgalvotas būdas pasakyti programa, kuri padeda jums programą. Ji patogias naudoti tokius dalykus kaip kai įvedate vieną skliaustų, jis automatiškai suteikia jums kitą. Daroma prielaida yra ta, kad jūs esate galiausiai ketinate norite įvesti, kad ir ji taip pat daro su kabutėmis. Taigi aš norėčiau 23 eilutė. 99%, kaip ten. Kažkas nori varpelių su antgaliu? Girdėjau kabliataškį iš auditorijos. Geras. Taigi, kad baigia tai. Ir dabar, aš tiesiog šiek tiek Konsternacja su linija 21. Kaip mes norime išreikšti tai? Kas klausimas norime paklausti, ar jūs manote? Taigi anksčiau mes paprašėme į klausimą, jei n yra didesnė, negu nulis, tai padaryti. Kita, tai padaryti. Taigi, mes turime pasirinkti klausimą užduoti čia. Auditorija: [nesigirdi] David J. Malan: Geras. Taigi, jei n yra lygus nuliui. Puikus. Taigi leiskite pristabdyti čia. Thank you so much braving tai. Leiskite man duoti jums šiek tiek pelnytą streso kamuolys, galbūt ten. Taigi mes beveik ten. Tiesą sakant, Lauren, jei jūs neturite Protas, leiskite man padaryti vieną įgnybti čia tiesiog, kad būtų nuosekliai net ir su ką matėme nulio, kas aš noriu daryti su linijomis 21 ir 24, tik vėl grindžiamas apie tai, kaip mes tai padarėme nulio, gal? Auditorija: Perkelti jį. David J. Malan: Taip, perkelti jį į viršų. Taigi kita sąlyga, trečiasis, arba ketvirta, ar penkta, ar galutinis filialas, iš tiesų turėtų ateiti vėliau, ir tai tik pagal susitarimą, tik todėl, kad jei bus. Taigi aš reikia padaryti šį įgnybti. Ir man reikia įdėti savo garbanotas petnešomis grįžti čia. Ir dabar, ši programa bus rinkti. Mes taip arti, bet ten labai, labai subtilus klaidą. Pažiūrėkime, kas atsitiks. Pirmiausia leiskite man eiti į priekį ir nutolinti. Aš ruošiuosi eiti į priekį ir įrašykite padaryti būklę nulio. Ech, man melavo. Dabar sudarytojas yra tikrai gana protingas. Ir aš nemanau, tikrai suprasti, tai klaidos pranešimas. Naudojant paskyrimo rezultatą kaip be skliausteliuose būklės, matyt blogai. Bet ką tai reiškia? Na vėl ieško modelių kodas, kurį mes matėme anksčiau, kas yra 17 linijos iš tikrųjų daro, nors Lauren šiek tiek skirti kitaip? Taip. Auditorija: [nesigirdi] David J. Malan: Taip. Taigi nepamirškite lygybės ženklą, matyt kaip mes jį naudojo anksčiau, nėra lygus. Jo užduotis, iš dešinės į kairę. Taigi 17 metu linija yra sąlyga, ir jis yra vykdyti kodą viduje skliausteliuose, bet kai tas kodas vykdo, tai, kas vyksta prie nulio vertės? Kas vyksta su n vertę? Tapimas nuliui. Taigi, jei n tampa lygus nuliui, ir vėl, kaip už praeitą savaitę, mes paprastai pasakyti, kad nulį yra klaidinga ir viena tiesa, arba taip yra vienas ir ne yra lygus nuliui. Taigi teisinga ir neteisinga, vienas ir 0. Jei n kaip 17 eilutės buvo atsižvelgiant vertė 0, yra lygus nuliui tiesa? Ne. Pagal apibrėžimą, nulis yra klaidinga. Štai Konvencija mes vyksta kabintis į juda į priekį. 20 taip ir linijos 18, 19 ir kada taikyti dabar logiškai? Jie negali. Taigi, mes paprašė klausimą bet ne visai tiksliai, ir jūs nežinote, nebent mačiau ją, kad į C sprendimą yra tada, kai norite išreikšti lygybė, jūs sakote, lygu lygu. Taigi lygybės ženklas jau buvo naudojamas iki perleidžiant, iš dešinės į kairę. Lygu lygu priemonės lygus. Ir jei jūs tikrai norite, kad jūsų protas būti išlenktas, JavaScript ir PHP, ten lygu lygu lygiomis teisėmis, kuri reiškia ką nors kita apskritai, bet mes gauti, kad prieš ilgas. Taigi tai yra paprastas nustatyti, tačiau suprantame, Super lengva padaryti šią klaidą, ir tada įdomu ir kova už minučių, jeigu ne per valandą, kodėl mano kodas nėra vykdyti, kaip ketinu? Tai todėl, kad tu negali pasakyti, tai būtent tai, ko jums reiškia. Taigi, tai buvo beveik tobula, ir tai buvo puikus kad mes szarpnęły visoje šių dviejų mažai dalykų, nes dabar, jei mes juos pašalinti, ir aš padarysiu būklę nulį dot velniop būklė nulis, Norėčiau sveikasis skaičius prašom. Pažiūrėkim. Ne. Ji ketina priversti mane tai padaryti. Taigi 42. Paėmiau teigiamas skaičius. Taigi, dabar kaip man įrodyti, Ši programa teisinga? Jei esate matematikas, jūs negalite tikrai tai įrodyti bandymų ir klaidų, tiesa? Jūs galite ne tik įrodymo pavyzdys, bet ne mažiau kaip kaip programuotojas mes ne einu bandyti įrodyti dabar , kad tai yra faktiškai teisinga, bet aš tikriausiai turėtų išbandyti keletą atstovybes atvejus. Aš išbandyti 42. Galėčiau išbandyti 43. Galėčiau išbandyti 44. Testas 45. Teisė? Bet aš tai tikrai ilgą laiką gali padaryti. Koks būtų šiek tiek daugiau Įdomios atvejai pabandyti? Auditorija: [nesigirdi] nulis. David J. Malan: Taigi nulis. Žinoma. Ir gerai, mes turime šį kartą, Ačiū Lauren naujos kodą. Kas dar vienas geras atveju pabandyti? Auditorija: neigiamas. David J. Malan: neigiamas, ir gal kažkas šiek tiek didesnis, tai gal neigiamas 42, bet apskritai, kai išbandyti savo programas juda į priekį, jūs ketinate nori galvoti sau, kaip ir tai, ką yra pagrindinės skirtingus atvejus. Ir drįstu pasakyti neigiamą bylą, teigiamas, atvejais, ir nulis, atveju gana daug raundų tokiai padėčiai ištaisyti. Leiskite pažvelgti į šio nors variantu. Sąlygos vienas. Tai yra teisinga tirpalas čia taip, kad jūs pamatysite du ir internete, jei eisi per Walkthroughs, paprastai prieaugio šias palaipsniui, kol mes gauti būtent teisingas požiūris. Ką daryti, jei mes norėjome paklausti du klausimai iš karto? Leiskite man atverti tai vietoj. Ne jungiklis, dėl priežasčių, mes matome kitą kartą. Kas naujo sintaksiškai čia? Aš šiuo metu žaisti žaidimą kur kompiuteris yra pasakyti man, duok man sveikasis skaičius tarp vieno ir 10, ir tada aš sprendžiant vartotojo įvestį. Be anglų, remiantis kodas matote čia mėlyna, ką ši programa daro? Auditorija: [nesigirdi] pakėlė didelis ar mažas skaičius. David J. Malan: Taip. Tai tiesiog nagrinėdamas, ar Paėmiau didelis, ar vidutinės, ar mažas skaičius, remiantis labai savavališkai apibrėžimas mažos, vidutinės, ir didelio čia, bet pranešimas sintaksė, kad naujo tai. Yra ne mažiau kaip int arba lygus pasirašyti arba didesnis nei arba lygus pasirašyti, kur yra virš kito, kad jums gali išreikšti, pavyzdžiui, Microsoft Word. Taigi programavimo kalba, kurią jūs paprastai tiesiog padaryti du simboliai, vienas po kito. Ir ką tai tikriausiai atstovauti, Ampersand ampersendo. Auditorija: [nesigirdi] David J. Malan: Taip. Tai tiesiog reiškia, ir kad jis Pasirodo, kad C autorių naudojami vieną ampersendo, kurios jūs manote būtų idealus sąvokos ir, jau panaudota, taip Ampersand Ampersand tikrųjų fiksuoja atveju mes iš tikrųjų nori. Taigi leiskite dabar suklumpa dviejų dalykų. Leiskite man eiti į priekį ir atverti vieną. Kažkas, kad šiek tiek jaudina. Paklaidos taškas c. Leiskite pristatyti du dalykus čia. Vienas iš jų, pranešimas, kad mes galime padaryti matematikos, nes kaip ir anksčiau, kai mes padarėme plius du skaičiai, X ir Y. Kas tai yra programa, matyt, daro? Aš ne komentavo jis dar, ir aš pristatė proc F, bet aš greitai anksčiau sakė, procentų f reiškia slankiojo kablelio vertė, kuri yra realaus numeris. Kažkas su dešimtosios taškas, kuris yra ne sveikasis skaičius. Ką manote ši programa yra bando man parodyti ekrane? Taip? Auditorija: Vieno per 10 rezultatas. David J. Malan: Taip. Koks vienas rezultatas, padalytą iš 10. Teisė, nes visi jūs tikriausiai užaugo nežinodamas, kad vienas daugiau kaip 10 yra kas? Taip, tai tik 1/10 arba 0,1. Teisė? Taigi pažiūrėkime, ką tai iš tiesų yra. Taigi leiskite man eiti į priekį ir išsaugoti tai. Leiskite man eiti čia. Padaryti netikslumas dot velniop netikslumas, ir įspėjimas, taip pat, į Linux aplinkoje, jūs neturite turite įvesti iš netikslumo ir imtis visą dieną. Paprastai, jei paspausite "Tab", ji baigs savo mintis už jus, remiantis žodžiais, kurie yra prieinama einamojo katalogo. GERAI. Taigi buvai teisus. Vienas padalintas iš 10, iš tikrųjų, 0.1. Bet aš esu šiek tiek įdomu. Ir it turns out printf palaiko kai kurias funkcijas kuriuo galite nurodyti daugiau nei numatytasis numeris dešimtųjų kiekis. Taigi, jei aš noriu pamatyti 10 dešimtosios dalies Taškai Galiu padaryti procentų, už rezervuotos vietos simboliu, dot 10, duok man 10 dešimtainių taškų, ir tada dar slankiojo kablelio vertė, ir, kaip panaikinti, kas tai yra Backslash n matyt mes nuolat naudojate? Pasirodo, tai simbolis naujos linijos. Tai labai aiškus būdas pasakyti su kompiuteriu, perkelti žymeklį į kitą linija po to, kai baigsite. Ir mes pamatyti, kas vyksta kai mes neturime daryti. Leiskite perkompiliuoti padaryti netikslumų. Dabar dot velniop netikslumų. GERAI. Vis dešinę. Vienas dalijami iš 10. Dabar gaunu tiek smalsu, nors. Ką daryti, jei aš žiūriu 20 dešimtosios dalies atkreipia dėmesį į tai, perkompiliuoti, pakartotinis, ir kaip skirta greitis, taip pat galite naudoti Jūsų rodykles aukštyn ir žemyn, kad pereikite per jūsų istorijos, todėl jūs neturite išlaikyti perspausdinimas šių komandų, įveskite. Huh. Aš ne suprato, kad pradinėje mokykloje. Visos teisės, todėl leiskite man pamatyti, kaip 29 vietų iš. Gal tai tik atsitiktinumas. Gal mano kompiuteris veikia keistai. Tai ne dalykas, tiesa? Tai daro kažką deterministically. Taigi, kad paklaidos. Gerai, kad yra messed up. Taigi, kas vyksta? Taigi, matyt, tavo mokytojas buvo gulėti Jums visą šį laiką, priežasčių, kad mes pamatysime netrukus. Bet tegul baigiasi viena kitą programą. Tai šiek tiek programos kažkas rašė prieš keletą metų, ir tai tikrai dalis konkurse. Niekas iš tikrųjų rašo kodą kaip šis, ir jei jūs darote, tai stilistiškai problema. Bet žmonės tai padaryti Chwalenie teises. Norėdami rašyti labiausiai paini ieško programa, kuri vis dėlto daro kažką įdomaus. Ir pastaba aš maniau, mes norime išvykti Šiandien prieš Colton vaidina mus čia yra paleisti šią programą, kuri net tik naudojant C šis tekstas pagrindu aplinka, suteikia mums tai. Po perkūnais. [Juokas] Budėjimo. [Nesigirdi] c brūkšnys L M. Jūs ketinate pamatyti magiškas užkalbėjimas, kad mes pamatysime netrukus. [Nesigirdi] Visa dešinę. Ir dabar jūs netgi galite daryti tokius dalykus. Viskas. Dėl CS50 mes, bus matyti jus penktadienį. [Muzikos grojimo] [Plojimai]