[GROJA MUZIKA] David J. Malan: Gerai. Tai yra CS50 ir tai yra 2-ąją savaitę pradžia. Ir jūs priminti, kad per pastaruosius porą savaičių, mes jau įdiegti kompiuteryje mokslo ir, savo ruožtu, programavimas. Ir mes pradėjome pasakojimą būdu Nulio, kad grafinė kalba iš MIT Media Lab. Ir tada visai neseniai, Praėjusią savaitę, tai mes įvesti higher-- A žemesnio lygio kalba žinomas kaip C, kažką, kad vien tekstinė. Ir, tiesą sakant, paskutinį kartą mes ištirta per tą kontekste sąvokų skaičius. Tai, prisiminti, buvo labai Pirmoji programa, mes pažvelgė. Ir ši programa, paprasčiausiai, spausdina, "Hello, World". Bet ten tiek daug tariamas magija vyksta. Yra tai #include su šiomis laužtiniuose skliaustuose. Yra int. Yra (tuščia). Yra skliaustai, garbanotas petnešos, kabliataškiai ir daug daugiau. Ir taip, priminti, kad įdiegėme nulio kad galėtume, idealiu atveju, pamatyti praeities kad sintaksė, stuff, kad tikrai ne visi, kad intelektualiai įdomus, tačiau anksti yra absoliučiai šiek tiek sudėtinga wrap savo mintis aplink. Ir, iš tikrųjų, vienas iš dažniausiai viskas anksti programavimo klasės, ypač tiems, mažiau patogus, yra gauti nusivylė ir paslydau iki tam tikros sintaktikai klaidų, nekalbant loginių klaidų. Ir taip tarp mūsų tikslų šiandien, iš tikrųjų, bus būti išmokyti jus su kai Problemų sprendimo būdai, kaip geriau spręsti problemas patys atsižvelgiant į derinimo forma. Ir jūs žinote, taip pat, kad aplinka, mes pristatėme Paskutinį kartą buvo vadinamas CS50 IDE. Tai žiniatinklio programinės įrangos, kuri Leidžia programuoti debesyje taip sakant, išlaikant visus savo failus kartu, nes mes vėl šiandien. Ir prisiminti, kad mes peržiūrėta šias temas čia tarp jų funkcijas ir kilpos, ir kintamieji, ir Būlio išraiškos, ir sąlygomis. Ir iš tikrųjų keli, kad mes išversti iš nulio pasaulyje į C. pasaulyje Bet pagrindinis pastatas blokai, taip sakant, buvo tikrai vis dar tas pats praeitą savaitę. Iš tiesų, mes tikrai tik buvo skiriasi įspūdį, jei bus. Vietoj to violetinė išsaugoti bloką, mes vietoj buvo printf, kuris yra Ši funkcija C, kad leidžia spausdinti kažką ir suformatuoti jį ekrane. Mes pristatė CS50 Biblioteka, kurioje jus dabar turi savo žinioje get_char, ir get_int ir get_string, ir keletas kitų veikia kaip Na, per kurią jūs galite gauti indėlį iš vartotojo savą klaviatūrą. Ir mes taip pat paėmė į dalykus pažvelgti kaip these- bool ir char, ir du kartus, plūdė, INT, long_long eilutė. Ir ten net kitus duomenų tipus C Kitaip tariant, kai jūs deklaruoti kintamasis saugoti tam tikrą vertę, arba kai jums įgyvendinti funkciją kad grįžta tam tikrą vertę, galite nurodyti, ką tipo vertę, kuri yra. Ar tai eilutė, tarsi simbolių seka? Ar tai skaičius, kaip ir sveikasis skaičius? Ar tai slankaus kablelio vertė, arba kaip? Taigi C, skirtingai nuo nulio, mes iš tikrųjų pradėjo nurodykite, kokių rūšių duomenis mes buvome grįžta arba naudojant. Bet, žinoma, mes taip pat vyko į keletas pagrindinių ribos skaičiavimas. Ir visų pirma, Ši kalba, C, prisiminti kad mes priėmėme pažvelgti sveikasis skaičius perpildymo, realybė kad jei turite tik ribinis dydis atminties arba, konkrečiau, baigtinis skaičius Bitų, galite tik tikėtis, kad didelis. Ir todėl mes pažvelgė Šiame pavyzdyje čia kuriuo skaitliukas lėktuve,, Tiesą sakant, jei veikia pakankamai ilgai būtų perkrautas ir sukelti programinės įrangos faktinis fizinis potencialas klaida. Mes taip pat pažvelgė į plaukiojantieji taškas netikslumas, realybė kad tik su baigtinio skaičiaus Bitų, ar tai 32 ar 64, galite nurodyti tik tiek daug numerių po dešimtainio taško, po kurio jūs pradeda gauti netikslūs. Taigi, pavyzdžiui, vienas trečdalis į Pasaulio čia, mūsų žmonių pasaulyje, mes žinome tik begalinis skaičius apie 3s po kablelio. Bet kompiuteris gali nebūtinai atstovauti begalinį skaičių numeriais jei tik leidžia tai kai baigtinis informacijos kiekis. Taigi mes ne tik išmokyti jus su aukštesnės galios požiūriu kaip jums gali išreikšti save klaviatūra, kalbant apie programavimą, mes taip pat ribotas, ką jūs iš tikrųjų galite padaryti. Ir iš tiesų, klaidas ir klaidos gali kyla iš tų klausimų rūšių. Ir iš tiesų, tarp temų šiandien ketinate būti temas kaip derinti ir iš tikrųjų ieško po gaubtu tuo, kaip viskas buvo įvestas praėjusią savaitę yra realiai įgyvendinamas taip, kad jums geriau suprasti tiek pajėgumų ir panašaus C kalba apribojimai Ir iš tikrųjų, mes žievelės atgal sluoksnius iš paprasčiausių duomenų struktūros, kažkas vadinamas masyvas, kuris Įbrėžimams atsitinka skambinti "sąrašą". Tai šiek tiek besiskiriantis tuo, kad kontekste. Ir tada mes taip pat pristatyti vieną iš Pirmasis mūsų domenų konkrečių problemų į CS50, kad pasaulis kriptografija, kad stengiamasi menas arba kodavimo informaciją, kad jūs galite siųsti slaptus pranešimus ir iššifruoti slaptus pranešimus tarp dviejų asmenų A ir B Taigi, kol mes perėjimo tai naujo pasaulio, pabandykime išmokyti jus su kai metodai, su kuria jūs galite pašalinti arba sumažinti bent kai kurie iš nusivylimų kad jūs tikriausiai susidūrėte per vien praeitą savaitę. Tiesą sakant, prieš jus yra such-- kai Jūsų pirmieji problemos C. Ir šansai yra, jei jūs panašus į mane, pirmą kartą bandote tipo iš programos, net jei manote, logiškai Programa yra gana paprasta, jums gali labai gerai pataikyti sienos, ir sudarytojas nesiruošia bendradarbiauti. Padaryti arba klingsėti nesiruošia realiai padaryti savo siūlymų. Ir kodėl gali būti? Na, tegul pažvelgti, galbūt, paprasta programa. Aš ruošiuosi eiti į priekį ir sutaupyti tai byla sąmoningai vadinamas buggy0.c, nes žinau, ją būti ydingas iš anksto. Bet aš gali ne suprantame, kad, jeigu šis yra pirmoji arba antroji arba trečioji programa kad aš iš tikrųjų padaryti save. Taigi, aš ruošiuosi eiti į priekį ir tipo iš, int main (void). Ir tada viduje mano garbanotas petnešos, labai pažįstamas ( "Sveiki, world-- Backslash, n ") - ir pusiau-gaubtinės žarnos. Aš išsaugoti failą. Dabar aš ruošiuosi eiti mano terminalo lange ir tipo makiažo buggy0, nes, vėlgi, failo šiandien vardas buggy0.c. Taigi aš tipo padaryti buggy0, Enter. Ir, o, dieve, prisiminti nuo paskutinio karto kad be klaidų pranešimų yra geras dalykas. Taigi ne produkcija yra geras dalykas. Bet čia aš turiu aiškiai kai klaidų skaičius. Taigi pirmoje eilutėje produkcijos Įvedę padaryti buggy0, prisiminti, yra žvangėjimas gana daugiažodis produkcija. Po gaubtu, CS50 IDE yra sukonfigūruota naudoti visa krūva galimybės su šiuo sudarytojas taip, kad jūs neturite galvoti apie juos. Ir tai viskas, pirmoji eilutė reiškia, kad prasideda žvangėjimas. Bet po to, problemos pradėti uždirbti savo išvaizdą. Buggy0.c on-line 3, charakterio 5, ten yra didelis, raudonas klaida. Kas tai? Netiesiogiai teigiama bibliotekos funkcija printf su tipo int (const char *, ...) [-Werror]. Aš turiu galvoje, kad tai yra labai greitai tampa labai paslaptinga. Ir, žinoma, iš pradžių žvilgsnis, nebūtume tikimės, kad jūs suprasti visuma šio pranešimo. Ir taip viena iš pamokų už šiandien vyksta būti išbandyti pastebėti modeliai, ar panašių dalykų, klaidų gali tekti susiduriama su anksčiau. Taigi leiskite erzinti išskyrus tik šie žodžiai, kurie atrodo pažįstama. Didelis, raudonas klaida yra aiškiai simbolinė kažkas yra negerai. netiesiogiai teigiama, bibliotekos funkcija printf. Taigi, net jei aš ne visai suprantu, ką netiesiogiai teigiama bibliotekos funkcija priemonės, problema tikrai susijęs su printf kažkaip. Ir šiuo klausimu šaltinis turi daryti su nedeklaravę. Skelbiantis funkcija paminėti, kad pirmą kartą. Ir mes panaudojome terminologiją praėjusią savaitę skelbiantis funkcijos prototipas, arba su vienos linijos lango viršuje savo savo failą arba vadinamasis antraštės faile. Ir ką failo padariau sakome praeitą savaitę, kad printf yra citata, citatos pabaiga, pareiškė? Kokiu failas yra jos prototipas? Taigi, jei jūs prisimenate, pats pirmasis dalykas, kurį aš parašomas beveik kiekviena programa paskutinis LAIKĄ_ ir netyčia akimirka prieš pradėjau rašyti myself-- buvo tai vienas here-- hash-- #include