>> PROFESORIUS: Taigi už darbotvarkė Šią savaitę, ne tai, kad daug dalykų.
Bet tikiuosi, labai, labai naudinga ir gauti Jums aktualią vaikinai šią savaitę.
Tačiau mes ketiname išleisti gal 15, 20 minučių tiesiog greitai kalbėti
apie nuorodą, sąrašą.
Link sąrašai ketinate būti padengtas viktorinoje.
Taigi, galbūt tai būtų labai naudinga sužinoti šiek tiek apie tai, kas tai yra.
>> Mes ketiname išleisti didžioji Dauguma šiandienos skyriuje
vyksta per Viktorina nulinės praktikos problemas.
Ir tada mes išsaugosime gal 20, 30 minučių ne už bet išlikęs klausimus pabaigos
kas turi.
>> Ir tada, paskutinį penkių minučių, aš ruošiuosi
duoti pripumpuoti kalbą dėl viktorina.
Jūs vaikinai visi nori būti čia, kad.
Nes tai bus geras laikas.
>> Visos teisės, todėl kai medžiaga apie ryšio sąrašą.
Kaip jie paprastai struktūra yra turite tai, kas vadinama mazgas, tiesa?
Jūs turite šiuos dalykus, vadinamus mazgai, kurie structs.
Aš eisiu, kaip kurti yra vienas į kitą skaidrę mazgas.
Tačiau iš esmės visi susiję sąrašų yra duomenys,
buvo suverti kartu per rodykles.
>> Ir taip privalumas turime naudojant susietą sąrašą daugiau,
galbūt, kaip masyvą, yra tai, kad masyvo
jums reikia vieną vientisą bloką atminties visi toje pačioje vietoje, vienas
po kito, kad būtų galima turėti, kad.
Kadangi susietą sąrašą, galite turi atsitiktinius mažai bitai atminties
visame kompiuteryje suverti kartu rodykles.
>> Ir tokiu būdu jūs gali prieiti prie informacijos
kad ateina vienas po kitos, po kito
nereikia tik didžiulis riekė atminties kompiuteryje kažkur.
Ir todėl tai yra vienas iš pagrindinių priežasčių, kodėl mes naudojame Nuorodų sąrašą.
>> Antra, tai labai lengva dinamiškai dydį nuorodą sąrašą, nes masyvas,
Kai paskelbti masyvą, jūs turite tam tikrą nustatytą vertę.
Tarkime, aš norėjau sukurti kaip 10 skaičių masyvas.
Aš sukuria 10 masyvo sveikieji skaičiai, ir viskas.
Tai 10.
Aš nežinau, ką daryti po to.
Jei aš norėjau, kad ji 11, negali padaryti.
Jei aš noriu, kad jis 9, negali padaryti.
>> Kadangi saitą sąrašą, galite pridėti ir ištrinti ir įterpti kur norite.
Jūs galite dinamiškai pakeisti jūsų struktūrizuoti čia savo duomenų struktūrą.
Ir tai suteikia mums daug daugiau pridėtinės lankstumą
kad mes paprastai nėra turi su matricomis.
>> Kiekvienas supainiojami pagrindinis struktūra, kaip nurodo sąrašas
arba kodėl mes turime naudoti vieną virš masyvą?
Taip, mes eiti per smulkiai kaip iš tikrųjų sukurti.
Bet tai tiesiog rūšies bendrąja prasme dabar.
Saunus.
Ir taip matricos yra suverti kartu Šių gražių smulkmenų
vadinami mazgų.
Visi mazgas yra yra struct tipo.
Atminkite, kad konstrukto yra, jei jūs norėjo sukurti tam tikrą tipą kintamojo
C, kad nėra jau egzistuoja, jums, kaip programuotojas,
iš tikrųjų gali sukurti, kad sau.
>> Ir todėl šis duomenų tipas struktūra, vadinama mazgas,
buvo faktiškai sukūrė mus, kad neegzistuoja per C ant savo.
Ir taip, kad jums sukurti vienas turite
iš Typedef struct antraštė, kuris pasakoja kompiliatorių Aš tikiu
apie sukurti konstrukto.
>> Mes ketiname vardą jis "mazgas".
Ir viduje mes ketiname paskelbti kintamąjį,
kurioje vyksta saugoti vertę.
Ir tada mes taip pat ketiname turėti žymeklis vadinamas "Next"
kad nurodo į kitą mazgas nuorodą sąrašo.
Ir tada, kai baigsite, kad ne tiesiog kartoti mazgas vėl taip
kompiliatorius žino, Gerai tai mano struct pabaigos.
>> Ir taip tokiu būdu, mes natūra sukurti cute little masyvo
rūšies dalykas su vertė ir su rodykle.
Ir jūs galite susieti juos visus kartu su šių patarimų.
Taip, kad jie gali būti visų rūšių suverti kartu grandinėje.
>> Saunus.
Ar girdi, kad šiek tiek geriau?
>> Auditorija: Taip.
>> PROFESORIUS: Visos dešinę.
Taigi būdas, kad jus vaikinai galite pamatyti, tipiškas nurodo sąrašas struktūra
yra jūs turite galvą.
Turite galvos vertę, kuri nėra yra pažymėti bet kuriuo kitu rodyklę.
Bet jis ketina atkreipti ne, arba nuoroda, kitas mazgas.
Mazgas po ketina nuorodą mazgas, kad po to, kai, ir taip toliau ir taip toliau
kol galiausiai nukentėjo Jūsų nuoroda sąrašo gale.
Ir jūs tiesiog neturite žymeklį ten.
>> Ir taip, galvoti, kaip, ant grandinės, ar net jei kas nors iš jūsų vaikinai padarė, aš nežinau,
kaip su vaisiais kilpų kai buvai mažas.
Galima būtų eilutė juos kartu ir nešioti ant kaklo.
Manau, kad tai lygiai toks pats dalykas.
Turite šių mažai dalykų, kad jūs gali styginių kartu, kad taškas į vieną
po jo, į vieną po ji, ir taip toliau ir taip toliau
kol jūs turite grandinę iš duomenų struktūros
kad galite naudoti, tačiau jums patinka.
>> Taigi taip, kad tai mums būtų paprastai įterpti arba pašalinti
bet mazgas iš nuorodą sąrašas yra labai skirtingi
priklausomai nuo to, kur, kad mazgas yra.
Taigi, pavyzdžiui, dėl to, patarimų visada
nukreipta į tam tikrą vertę, kai jūs ištrinti arba įdėkite mazgas,
Jūs norite įsitikinti, kad žymiklis yra viskas nukreipta į teisingus dalykus.
>> Taigi, jei norite įterpti potencialiai naujas mazgas su vieno vertės
viduje rūšiuotų nuorodą sąrašas, mes visi žinome, čia
iš paveikslėlio, kad ketina eiti tarp galvos ir du, tiesa?
Kadangi vienas tinka tiesiai ten.
Tačiau būdas, kuriuo mes padaryti, kad yra pirmiausia dereferencing žymeklį
nuo galvos ir siuntimas, kad į vieną.
>> Bet mes einame į problema čia.
Ar kas nors pamatyti, kokia yra problema yra, jei mes buvome prie pirmo dereference
rodyklė nuo galvos iki vieno?
Kas problema gali mums paleisti į, jei mes stengiamės pridėti tai prie mūsų masyvo priekyje?
>> Auditorija: [nesigirdi]
PROFESORIUS: Būtent.
Taigi čia mes turime žymiklį, kad buvo kai nukreipta nuo galvos iki dviejų.
Bet jei jums atsikratyti, kad žymeklis, jums nukreipti jį į vieną,
dabar mes neįsivaizduoju kur eiti rasti du.
Kadangi, kaip minėjau anksčiau, jūs turite milžinas riekė atminties Jūsų kompiuteryje.
Visi šie mazgus gali atsitiktinai trumpo
bet kurioje kompiuterį vietoje.
Ir jūs nežinote, kaip eiti apie surasti tai.
>> Ir todėl jūs turite patarimų nukreipta į visų gale mazgų.
Arba, jei jūs netyčia dereference vieną
be pirmojo priskyrimo vertės pirma, jūs
tik ketina prarasti viskas po to.
>> Taigi, ką mes ketiname padaryti, tai, Jūs pirmiausia
norite sukurti rodyklę ant mazgas norite įterpti.
Taško, kur jūs norite įterpti jį,
ir tada po to jums gali atkreipti galvą atgal į vieną.
>> Ar tai prasminga visiems čia?
Didysis.
Pagalvokite apie tai, kaip kaip grandine.
Jei pridėsite grandinę, tai tipo intuityvus
kaip jūs einate apie įterpiant kad.
>> Gerai, kad tai yra tikrųjų daug trumpesnis nei aš maniau jis bus,
penkių minučių Spiel nuorodą sąrašus.
Tiesiog taip, jūs vaikinai turėti Pagrindinė idėja, kas tai yra.
>> Čia mes turime už viktorina nulio darbotvarkę.
Neleisk, įbauginti jus.
Aš žinau, tai daug informacijos.
Jis atrodo labai baisi.
Tai taip pat yra daug, aš manau, CSC rūšies sąlygomis.
Dalykų, pavyzdžiui, šešioliktainis stygos, rodyklės, dinaminės atminties paskirstymas
yra labai baisu skambesio terminai.
>> Tačiau mes ketiname jas laužyti žemyn, padaryti šiek tiek praktikos problemas
kad vaikinai visi esame pasirengę šiam testui.
Kaip daugelis iš jūsų vaikinai jau pradėjau studijuoti?
>> Gerai, vaikinai tikriausiai nori pradėti nuo ko pradėti
apie tai, nes Viktorina rytoj.
Arba ketvirtadienį kai kurie iš jūsų.
Taip, taip, mes ketiname eiti per tam tikrą praktiką problemų.
Jei jus vaikinai visi norime imtis iš popieriaus lape pieštuku.
Mes ketiname tiesiog praleisti Dauguma šiandienos skyriuje
vyksta per keletą, kad tiek vaikinai turi AN, ko tikėtis ant viktorina idėja.
>> GERAI.
A logistikos pora Išsamiau taip pat, visiems,
kuris buvo ne šio ryšio nėra, jeigu jūs einate į cs50.yale.edu, ant priekinio
šiuo puslapiu yra nuoroda kad sako: "Apie Viktorina Zero".
Nuoroda pateksite ten.
Jei turite ne skaityti, prašome jį perskaityti.
Kadangi jis jums pasakys tikrai svarbu informacija apie viktorinoje.
>> Aš ruošiuosi traukti tai iš kad tik todėl, fiziškai,
Jei vaikinai nežino, kur eiti, turėsime problemų.
Ir todėl, jei jūsų paskutinė susitaikyti su A N, eikite į teisės mokyklos auditorijoje.
Ir jei jūsų paskutiniai prasideda P Z, eikite į Davies Auditorium.
Ir tai taikoma tik žmonių trečiadienį skyriuje.
>> Jei jūs vartojate ant viktorina Ketvirtadienis, jūs einate į SSS 114
kur jūsų paskaita paprastai yra.
Auditorija: [nesigirdi]
PROFESORIUS: "O iki Z, jūs ketinate eiti į Davies auditorijoje.
Aš ruošiuosi keisti, tiesa?
>> O, taip, jūs tiesiog nesugeba automatiškai.
>> Oh yeah, tai jums Christa.
Taip, mano blogas.
Taip, O-Z, jūs ketinate eiti į Davies Auditorim.
Aš ruošiuosi išspręsti šią problemą, kai aš įkelti.
Taip.
>> Ir tada taip pat yra kažkas Svarbu į galvą
yra tai, kad, trečiadienis, jei esate oficialiai įtraukti į trečiadienio skyriuje,
turite imtis savo viktoriną trečiadienį.
Ir jei jūs įtraukti į ketvirtadienį, turite imtis savo viktoriną ketvirtadienį.
Ir tai per klasės laiko.
Tais atvejais, kai manau, kad tai kaip 1:00 iki 02:15 trečiadieniais ir 2:30-03:45
ketvirtadieniais.
>> Jei turite nesuderinamų konfliktus, Dekano pasiteisinimų yra vienintelis dalykas,
Deja, mes galime imtis.
Kadangi mes turėjome Dauguma prašymų
pereiti nuo trečiadienio iki ketvirtadienio.
Kuris mes negalime pagerbti nebent Mes turime dekano prašymą.
>> GERAI.
Taigi, kol mes pradėti ant pora iš praktikos problemas,
Aš tik ketina eiti per Andy naudingų patarimų sėkmės.
Vaikinai, kai jūs studijuoti, tikrai nori praktikuoti rašyti kodą rankiniu būdu.
Pirmą kartą aš kada nors paėmė CS viktorinoje, turėjau ne
praktika rašyti kodą ranka prieš tai buvo labai
šokiruojantis, kaip sunku buvo.
>> Kai vaikinai neturi patekti į įprotis rašyti viską, ko,
ji ateina labai natūraliai yra galėtų turėti automatiškai užbaigtas
gembės ir kabliataškiai ten.
Rašydami jį ranka, kartais tai
labai, labai lengva pamiršti, kabliataškį, arba pamiršti uždaryti laikiklį,
arba pamiršti uždaryti dvitaškis, ar kažkas panašaus.
>> Taigi, kai rašote kodą vertus, tai labai skiriasi jaustis.
Taigi jūs vaikinai, kai dirbate per kai kurias iš praktikos problemas,
tai gerai, kad tikrai praktika šiandien.
Arba rytoj, manau, jei esate atsižvelgiant į ketvirtadienį viktorinoje.
>> Antra, mes turime paskutinis, kaip, aštuonerių metų verta praktika
viktorinos internete.
Šiemet Viktorina tikriausiai bus labai, labai panašios į visi iš jų.
Jie visi labai panašūs.
Jūs rūšies patekti į stilius klausimų tipą
kad mes prašome, tipo funkcijos, kad mes parašyti jam,
ET cetera et cetera.
>> Taigi imtis praktikos viktorinos, ypač pagal laiko apribojimus.
75-ąją padaryti viktorina yra nėra laiko daug.
Tai labai, labai ilgai.
Ir todėl jūs vaikinai tikrai norite įsitikinti, kad vaikinai yra
į raštu įpročiai kodas ranka greitai.
Kadangi jūs nenorite pirmas laikas pamatyti tokio ilgio viktorina
būti ant jūsų viktorina.
Jūs vaikinai tikrai norite įsitikinti, kad jūs praktiškai iš anksto.
>> Ketvirta, norite peržiūri paskaita ir skyrių skaidres.
Jūs neturite įsiminti dalykus.
Tiesą sakant, visi leido vieną lapą balto popieriaus pastabose,
priekyje ir gale.
Vaikinai galite įvesti arba rašykite.
Jei radote sau, kuriems reikia įsiminti nieko, padėkite jį ant to lapo.
>> Aš garantuoja jums, nenoriu pakimba viduryje tos viktorinos
yra kaip, Oh yeah, kas yra Trukmė šio pobūdžio, palyginti su tuo rūšiuoti.
Tiesiog padėkite jį žemyn ir nukopijuokite jį tiesiai iš savo užrašų lape.
Tada jūs iš tikrųjų galite tiesiog naudoti savo smegenys galvoti apie problemas
užuot prisiminti faktus.
Ir taip iš tikrųjų pasinaudoti bet nišą informacijos
kad jūs manote, kad reikia įsiminti, pūkštelėti jį žemyn dėl peržiūros lape.
>> Gerai, bet klausimai logistiniu dėl viktorinoje
prieš pradedant kai viktorina problemų praktikoje?
Taip?
>> Auditorija: aš ne turėjo galimybę pažvelgti į viktorinos [nesigirdi]
Bet tai bus Programa dažniausiai,
ar yra ten pat bus, kaip, žinios klausimų?
>> PROFESORIUS: Tai daug.
Taigi, taip, kad aš būtų aprašyta viktorinoje
is-- Aš kartu sudėjus šiek tiek praktikos problemos
kad aš iškedentas iš visų viktorinos.
Bet jūs pamatysite, kad ten dvi pagrindinės tipų klausimus prašysime jums.
>> Vienas iš jų yra labai žemo lygio detalė dalykų.
Mes padėsime jums maža riekė kodas ir pasakyti, ar yra klaida čia?
Ką būtų spausdinti čia?
Ką šis kodas gaminti et cetera.
Taigi labai žemo lygio informacijos detales.
>> Ir atvirkštinė pusė, mes turime labai aukšto lygio žiniomis pagrįstos klausimai.
Ar galite paaiškinti, ką skirtumas tarp binarinės paieškos
ir tiesinis paieška?
Kodėl mes norime naudoti vieną virš kito?
Galbūt, kas GDB?
Kodėl mes norime naudoti GDB?
Lygis, svarbesnė supratimas klausimai.
Taigi jūs pamatysite mišinį Du iš jų savo viktorina.
>> Kitoks, kol mes galvą tiesiai į jį?
GERAI.
Auditorija: Vienas daugiau.
PROFESORIUS: Oi, dar vieną.
Atsiprašau.
>> Auditorija: Taip, tai viskas gerai.
Taigi jūs sakote 75 minučių per trumpas, kaip ji yra mažai tikėtina,
kad mes baigs?
Arba, pavyzdžiui, 75 minučių yra tiksliai taip, kaip daug laiko
kaip mums reikia, jei mes buvome tinkamai paruošti?
PROFESORIUS: Gerai, todėl viktorina yra sudėtingas.
Tai tikrai nelengva.
Jūs atsidursite trūksta laiko.
Jūs tikriausiai ketina hit, kaip ir 10, 15 minučių eiti, ir yra kaip šūdas.
Turiu tiek daug liko padaryti.
Ir tai visiškai gerai.
Kiekvienas ketina jaučiasi taip pat.
>> Tiesiog labai gerai žino, kiek laiko turite.
Ir taip, tai kodėl aš jums pasakysiu vaikinai daryti praktikos viktorinos.
Nes ji tikrai suteikia puikus jausmas KĄ viktorina bus panašiai.
Taigi, jei jums rasti sau yra sugebėti baigiau praktiką
Viktorinos į gera suma laikas, galite tempą sau gerai,
tada jūs neturite problemų trečiadienį ar ketvirtadienį.
>> Saunus.
Taigi, jei visi wants-- Manau dauguma žmonių popieriaus lapų
iš jau.
Aš ruošiuosi iš esmės tik jums imties klausimus,
jums vaikinai, Kaip, kelias minutes padaryti juos.
Ir mes eiti per kaip klasė ką su jais atsakymai.
>> Taigi, tai yra labai tipiškas pradžioje klausimas mes
paprašyti jus, tiesiog konvertuoti numeriai tarp skirtingų bazių.
Dvejetainiai, kaip jūs vaikinai gali Prisiminkite, yra pagrindo du.
Dešimtainis yra pagrindo 10, ar tai, ką mes kaip žmonės paprastai interpretuoti.
E¹ioliktainis yra pagrindo 16, kuri yra lygi nuliui, per devynių taip pat per F.
>> Taigi ten keturi numeriai aš klausia jums vaikinai konvertuoti čia.
Aš duosiu jums patinka, nuo trijų iki keturias minutes apgalvoti, kaip
mes eiti apie sprendžiant tai.
>> Auditorija: Ar mes leidžiama Skaičiuoklės?
>> PROFESORIUS: Tau nėra reikia skaičiuotuvai, taip.
Manau, pagrindinė to, manau, yra visi vaikinai bus paprašyta padaryti.
>> Ir tik todėl, I rūšies turėti prasmę kada kiekvienas yra padaryta, ieškoti,
banga, aš nežinau, šypsena, atrodo laimingi, jei jūs baigsite.
Taip.
Gal pora daugiau minučių.
>> Gerai, tegul jį į.
Aš sąmoningai ketina duoti jums, vaikinai mažiau laiko
nei jūs tikriausiai reikia padaryti kai kurias iš šių problemų,
tiesiog, nes noriu įsitikinti, kad mes gauname per daug problemų krūva.
Nesijaudinkite, jei tu negali turi galimybę baigti.
Visiškai Gerai tol, kol jūs turite pavyzdys, kaip eiti apie tai idėja.
Taigi eikime į priekį ir daryti pirmasis.
>> Taigi, pirmiausia, ar kas nors nori man pasakyti į dvejetainę, ką kiekvienas iš šių skaitmenų
atstovauti pagal savo vertybes?
Taip?
>> Auditorija: Dvi į maitinimo nulis, du į vieną.
PROFESORIUS: Būtent.
So.
>> Teisė, todėl paprastai kai mes į bazę 10
visi šie atstovauja yra, pavyzdžiui, 10 iki nulio bazę, teisę?
Štai Jūsų ONE vieta.
Visi jūsų 10 vieta yra yra 10 į vienos galia.
Jūs 100 vieta 10 į dviejų galia.
>> Nepriklausomai bazė esate vyksta daryti su tą patį dalyką,
tik su skirtingu bazę.
Taigi dvejetainis, visa tai yra pagrindas du.
Jūs ketinate konvertuoti visus skaitmenų į dvi kokia galia
tos skaitmens.
Ir taip ta prasme, mes gali turėti lengvesnį kelią
kad galėtų pridėti arba Apibendrinant visus numerius, siekiant
konvertuoti į bazę 10 d.
>> Taigi ar kas nors nori man pasakyti, ką atsakymas į pirmąjį yra bazės dešimties?
>> Auditorija: Du, [nesigirdi]
PROFESORIUS: Taip.
Auditorija: 42.
PROFESORIUS: 42, ten jūs einate.
Taigi, kaip mes turime šį atsakymą buvo iki daro du pirmojo, kuris yra du.
Plius du trečiasis, kuris yra aštuoni.
Plius dviejų iki penktasis, kuris yra kas liko daugiau.
Jūs Apibendrinant juos ir tai 42.
>> Ar kas nors supainioti apie tai, kaip mes turime tai?
Taigi pagrindinė to, kaip Aš pasakiau, jums turėtų būti gerai.
Jei ne, gerai, mes galime praktikuoti kad per daug.
Bet tai viskas gerai.
Saunus.
>> Ar kas nors nori duoti man atsakyti į antrąjį vieną, taip pat?
>> 50?
Geras.
Kiekvienas supainioti apie tai, kaip mes turime, kad arba?
Šaunu, turėsite atsakymai apie kitą skaidrę.
Nesijaudinkite, jei jūs reikia nukopijuoti jį žemyn.
>> Gerai, kad šešioliktainis yra šiek tiek sudėtingesnis.
bet aš ketinu parodyti jums, vaikinai už tai, kaip tai padaryti nuorodą.
Taigi šešioliktainėje, kaip jūs Atminkite, kad visa tai yra būti 16.
Ir todėl mes, kaip žmonės ne iš tikrųjų turi 16 numerių atstovauti, kad
mes einame nuo nulio iki devynių, o pirmasis mūsų 10 verčių, tada mes darome nuo A iki F,
kurie per ateinančius šešis vertės.
>> Ir taip lengviausias būdas pereiti nuo bet dvejetainis skaičius šešioliktainėje
yra nutraukti juos į dvi dalis.
Ir todėl bet koks dvejetainis skaičius mes suteiksime Jums tikriausiai turės aštuonių skaitmenų.
Jūs galite tiesiog išeiti juos per vidurį.
>> Taigi pirmas one-- viena vienas, vienas vienas, vienas, vienas, vienas vienas.
Rūšis manote jį žinote, atkreipti velniop arba tarp jų kablelis.
Ir jūs galite tiesiog konvertuoti tiesiogiai kokia
tai yra, kad pirmasis skaičius šešioliktainis
ir kokia čia yra iš šešioliktainėje sekundę.
>> Taigi nepamirškite iš bendros žymėjimo, ką šešioliktainius vertės pradėti?
>> AUDITORIJA: Nulio.
>> PROFESORIUS: 0x.
Taigi mes žinome, kad bet kuriuo metu prašome konvertuoti bet kokį numerį šešioliktainis
arba bet kuriuo metu jūs matote bet skaičius, kuris prasideda 0x,
jūs žinote, kad tai yra šešioliktainis vertė.
>> Ir tada jūs ketinate būti paprašyta nustatyti, ką šie du skaitmenys yra.
Ir kaip jums tai padaryti, veda iki kad pusė ir veda iki, kad pusė.
Taigi, šiame pavyzdyje, kas būtų vienas, vienas, vienas, vienas būti?
Kas vertė būtų?
Kad būčiau F, tiesa?
Kad būčiau 15.
>> Taigi tai būtų F. Vienas, vienas, vienas, vienas iš čia taip pat yra
F. Taigi vienas, vienas, vienas, vienas, vienas, vienas, vienas, vienas šešioliktainis, visa tai yra 0xFF.
Kadangi šiame kėlinyje atstovavo F, nei 15 vertė,
ir šis pusė atstovaujamas F vertė 15.
Nes atsimenu, mes skaičiuojant nuo nulio iki devynių.
A yra kaip 10, B yra kaip 11, F 15.
>> Ar tai prasminga visiems how mes turime iš dvejetainės į šešioliktainį?
>> Auditorija: Ir taip, kaip mes ten 15 iš vienos, vienas, vienas, vienas?
PROFESORIUS: Taip, tai yra dvejetainis, tiesa?
Įsivaizduokite, kad tai tik dvejetainis skaičius.
Taigi jūs turite du į nulinis, kuri yra viena.
AUDITORIJA: O, gerai.
Taigi jūs tiesiog iš viso jį.
>> PROFESORIUS: Taip, ir tada jūs tiesiog iš viso, kad iš.
Tai viskas yra.
>> Auditorija: Gerai.
>> PROFESORIUS: Gerai.
>> Auditorija: Taigi jūs einate iš dvejetainis į dešimtainį į šešioliktainėje?
>> PROFESORIUS: Štai Paprasčiausias būdas tai padaryti, taip.
Jūs esate nesiruošia į dešimtainį nes Dešimtainė turi tik nulio iki devynių.
Užtenka tik rūšies padalijant tai į dvi.
>> Auditorija: [nesigirdi] naudojant dešimtosios dalies rasti
ką jis atitinka iki šešioliktainis.
PROFESORIUS: Aš turiu galvoje, jūs veda iki naudojant pagrindinius matematikos.
Auditorija: Taip.
PROFESORIUS: Taip, gana daug.
Ji yra šiek tiek paini.
Bet tik žinau, kad jūs gali padalinti kokia
ši vertė yra į vos pusę.
Žiūrėk, kas tai dvejetainis?
Kas numeris yra?
Tai bus kažkas nuo nulio iki F.
>> Čia taip pat bus kažkas nuo nulio iki F.
Ir tada jūs galite tiesiog įdėti tie du tiesiai ten.
>> Auditorija: Gerai.
PROFESORIUS: Yep.
GERAI.
Taigi jūs vaikinai nori pabandykite kitą tada?
Nulis, vienas, nulis vienas, vienas, nulis, vienas nulis.
Aš duosiu jums vaikinai kaip 30 sekundžių, nes jūs tikriausiai nežinojo
triukas kaip tai padaryti anksčiau.
>> Gerai, kas nori gauti šį vieną kulka?
>> 0X5A.
PROFESORIUS: 0X5A.
5a.
Geras.
Taigi, tai čia būtų be-- norite papasakoti, kaip jūs turite, kad?
Pirma, kaip tu gauti penki?
>> Auditorija: Kadangi nulio, vienas, nulis, vienas yra penki.
>> PROFESORIUS: Ar visi suprantame, kodėl nulis, vienas, nulis, vienas, yra penki?
Jūs turite vieną čia.
Jūs nieko dviem į pirmąjį.
Dviejuose į antrąjį jus turėti vieną, kuris yra keturi.
Taigi jūs įtraukiate Keturi plius vienas, turite penki.
Kiekvienas geras?
GERAI.
Ir kas tada tai bus ir kodėl?
Kas skaičius daro atitinka?
>> Auditorija: 10.
>> PROFESORIUS: Ir ką tai pagrindo dviejų?
Auditorija: [nesigirdi]
PROFESORIUS: Būtent.
Taigi, tai antroji reikšmė čia būtų 0X5A.
>> Kiekvienas gerai, kaip konvertuoti?
Tai daug paprasčiau, nei jūs manote ji yra.
Aš tik noriu įsitikinti, žinote naudingų patarimų
ir gudrybės, kaip tai padaryti.
>> Auditorija: Kodėl jūs tiesiog padalinti ji viduryje, pavyzdžiui, kad?
Tiesiog patinka, gerai, aš tik ketina rūpi šie pirmieji [nesigirdi]?
>> PROFESORIUS: Nes tai iš tikrųjų būdas šešioliktainius vertės atstovaujama.
0x, tai iš tikrųjų reiškia kas kita, kaip sakau
kad tai šešioliktainis skaičius.
Ir tai visada reiškia pirmieji keturi skaitmenys.
Ir tai visada reiškia paskutiniai keturi skaitmenys.
Ir todėl šie du skaitmenys tik atitinka skirtingus bitai.
>> Auditorija: Taigi mes always--
>> PROFESORIUS: Jūs visada ketinate gauti aštuoni vertės bitai.
>> Auditorija: Ar tai tiesiog patinka dalyką čia arba kad daiktas visame?
PROFESORIUS: Tai tik dalykas kompiuterius, yep.
Auditorija: Gerai.
Nuostabus.
>> PROFESORIUS: Taip pat, todėl šiame pavyzdyje mes konvertuoti iš dvejetainės į dešimtainį,
ir iš dvejetainės į šešioliktainėje.
Jūs vaikinai nori įsitikinti, kad jūs taip pat praktika vyksta atvirkščiai.
Taigi, jei aš padovanojo tau 0xFF, galite atkreipti dėmesį, kad į dvejetainę, tiesa?
>> Jūs konvertuoti F dvejetainiais, kuris yra vienas, vienas, vienas, vienas,
konvertuoti F dvejetainis, kuris yra vienas, vienas, vienas, vienas.
>> Taigi, mes galime paprašyti jūsų padaryti atvirkščiai.
Taigi dešimtainės į dvejetainis arba šešioliktainis dviejų komponentų.
Taigi jūs norite įsitikinti, Įsitikinkite, kad žinote abiem būdais.
Mes tikriausiai užduoti jums derinys iš dviejų.
>> Taip, turite klausimų?
Galiu see-- esate geras?
Auditorija: Taip.
PROFESORIUS: Gerai.
Ar aš gerai ištrinti tai?
Didysis.
>> Visos teisės, todėl atsakymai yra čia, jei kas nors Įdomu vėliau ir susipainioti.
GERAI.
>> Auditorija: Ar tai svarbu, jei mes įdėti Mūsų raidės sostinėje ar mažosiomis raidėmis?
>> PROFESORIUS: ji, nes šešioliktainis, pagal susitarimą,
visi personažai yra didžiosios.
Taigi per F yra bus didžiąsias.
Jeigu jūs įtraukėte mažosiomis raidėmis A, aš nežinau jei mes būtinai pažymėkite tai negerai.
Bet teoriškai, tai nėra techniškai
kaip jūs turėtų jį turėti.
Taigi jie visi turėtų būti didžiosios.
Taip, geras klausimas.
>> GERAI.
Dėl antrojo klausimo.
Apsvarstykite šį mielą programą čia.
Aš užduoti klausimą, Aš sugrįšiu tai.
>> Taigi, pirma, kas yra viduje standartą io.h tai sudominti programą?
Antra, ką negaliojančiu reiškia atitinka tris?
Ir trečia, ką grįžti prie nulio iš Pagrindinis, kaip linijos šešių, dažniausiai reiškia?
Jei vaikinai nori rašyti tiems žemyn, nes turiu perjungti atgal
skaidrę, tiesiog todėl jūs galite pamatyti kodą.
Tai yra, kaip, pavyzdžiui, gal aukštesnio lygio klausimas, kur mes prašome
ką reiškia programos.
>> Kiekvienas geras man grįžti į skaidrę?
Gerai.
Taigi, aš duosiu jums, vaikinai, kaip gal tris minučių pažvelgti į šią vieną nekilnojamojo greitai.
>> Gerai, kad tai vienas lyg gana lengva, konceptualiai.
Ar kas nors nori man pasakyti, kas Pirmasis viduje iki maišos įskaitant
Mūsų standartas io.h bibliotekos failą?
Kodėl mums reikia, kad biblioteką įtraukti šią programą?
Kas čia mums reikia jį?
>> Taip?
>> Auditorija: tai, kad kai Jums įdėti, kad printf?
>> PROFESORIUS: Būtent.
Taigi printf, bet kuriuo metu jums imtis įvestį iš naudotojo
ir spausdinti kažką į ekraną, tai
standartinis įvesties, išvesties biblioteka.
Pagalvokite apie tai, kad way-- įvesties, išvesties.
>> Ar turiu produkcija?
Taip, aš.
Taigi aš žinau, kad aš visada vyksta į reikia etalonuoti i.o biblioteką.
>> Taigi printf yra funkcija pagal kurį turime pasiekti
ir grotelėmis apima standartinis i.o biblioteka.
GERAI.
>> Antra, tai ką negaliojančiu reiškia?
Mes turime int main (void), ką nebegalioti čia reiškia čia on-line tris?
Taip, gale.
>> Auditorija: [nesigirdi]
>> PROFESORIUS: Būtent.
Taigi nepamirškite, mes sužinojome pradedant mūsų pset
kad jūs iš tikrųjų galite nurodyti komandų eilutę
argumentai, kad jūsų programa, kad jūs pagrindinė funkcija, trunka, kaip jūs, vartotojas,
ją vadina.
Jei mes turime tuščia, tai reiškia, kad jums gali tiesiog paleisti programą tiesiogiai
be jokių komandų eilutės argumentus.
Kiekvienas aišku, kad?
GERAI.
>> Ir galiausiai kodėl mes nerimauti daro šis sugrįžimas nulis dalykas čia?
Kodėl mes net int pagrindinis?
Kodėl mes negalime tiesiog void main tuštumą?
Taip?
Auditorija: Tiesiog taip, kad mes galime būti tikri, kad programa yra
sėkmingai išeinant, kaip ne, jei jis buvo sunumeruoti.
Ir mes žinome, kad tai kitoks klaidų.
>> PROFESORIUS: Taip, tiksliai.
Tai tik labai įprastinis dalykas, kad mes,
yra tai, kad tik pabaigoje jūsų programa, tiesiog įsitikinkite, kad
kad savo pagrindinės funkcijos veikia tinkamai,
mes visada norime padaryti grąžą nulio.
Nors mes gali nebūtinai nemato, kad atspausdintas bet kurioje vietoje.
>> Kadangi, kaip programuotojai, žinote, jei turite daug skirtingų eilučių kodo
ir jūs nežinote, kur jie vyksta neteisingai,
ir jei klaida įvyksta, norite įsitikinkite, kad jūs gaunate šią klaidą.
Ir taip paprastai, jei kas nors negerai mes turime vieną grąžą tik
įsitikinti, kad mes žinome, kad ji yra.
Taigi, jei matote grąža nulis, kurie paprastai
reiškia, kad jūsų programa yra sėkmingai įvykdytas.
Geras?
Saunus.
>> Gerai, antroji programa čia.
Mano, kad.
Ir jei jus vaikinai matau plūduriuoti, vaikinai greičiausiai gali
turėti gerą idėją, kas Aš apie jūsų paklausti.
>> Taigi, kai ši programa vykdo, kaip jūs galite pamatyti,
Aš skelbiantis plūdę viduje mano pagrindinės funkcijos.
Aš pavadinti tai "atsakyti", o aš nustatymo kad lygus vienam padalintas iš 10.
Aš spausdinti, į vieną po kablelio, kad plūdė.
Ir tada aš grįžti prie nulio.
>> Taigi, kai vykdant programą, prisiminkite godus dabar
Ši programa spausdina 0,0.
Kaip mes visi žinome, tikiuosi mes visi žinome, vienas padalintas iš 10 yra ne 0,00,
tai 0.1.
Tačiau paaiškinti, kodėl ši programa mano kad 1, padalytą iš 10 spaudinių 0,1 Kita
nei 0,1?
Aš duosiu jums, vaikinai, gal kaip 30 sekundes, tiesiog greitai galvoti apie tai
ir aš eisiu atgal į programą.
>> GERAI.
Kiekvienas nori suteikti jai kulka?
Per tris sakinius ar mažiau, nes paprastai mes
ketina apriboti visus atsakymus trijų sakinių ar mažiau
todėl jūs ne tik atryti atsitiktinių dalykų ant jūsų viktorina.
>> Taip, imtis kulka.
>> Auditorija: Taigi, aš manau, kad tai dalykas vadinamas, kaip, [nesigirdi]
Taigi, kad gali būti, pavyzdžiui, ten gali būti, kaip, 0,09,
kad kai spausdinate pirmas skaitmenų, ji būtų 0,0?
>> PROFESORIUS: Uždaryti, ne visai.
Christabell?
>> Auditorija: Jūs dalijant vieną ir 10, ir jie abu sveikieji skaičiai.
Ir taip taip, kad ji vyksta saugoti tai, kaip sveikasis skaičius.
Ir taip arčiausiai sveikas būtų 0,0.
Ir taip, kad tai 0.1.
PROFESORIUS: Taip, tai tikrai gera.
Štai teisingas atsakymas.
Taigi tai yra labai paini koncepcija dėl vaikų aikštelė.
Ir aš tikrai noriu įsitikinti, kad Tai sustiprina kiekvieno galvos.
>> Taigi, ką mes vadiname plaukiojantieji taškas netikslumas,
kur priežastis, kodėl daug Jūsų programų godus
neveikia pradžių buvo, nes pamiršote atiduoti savo kintamąjį.
Taigi, ką sakė Christabell buvo visiškai teisingas.
>> Plūduras iš esmės yra netikslus.
Kadangi kompiuteryje, tiesa, mes turime baigtinis dydis bitai atminties
mes galime naudoti atstovauti numerius.
Taigi, pavyzdžiui, šis CS50 ID is-- Aš manau, kad tai 64 bitų kompiuteris.
>> Plūduras gali būti atstovaujama tik baigtinės suma šių bitai.
Ir taip 0.1 begalybės nuliai, Štai buvo 0,1 yra, tiesa?
Bet mes negalime iš tikrųjų laikyti šis skaičius mūsų kompiuteryje.
Mes tiesiog neturi pakankamai atminties padaryti.
>> Ir taip artimiausias Įstatymų kas atmintyje yra iš tikrųjų
kažkas panašaus 0,000 kažką, kažkas, kažkas, kažką.
Kuris, kai jūs trumpinti IT, baigia iki 0,0.
>> Ir taip šis pavyzdys yra tik vienas kad rodo daug klausimų
mes turime kai mes bando neteisingai padaryti matematiką
be liejimo kitokiu sveikojo skaičiaus.
Taigi tik būkite atsargūs, kad taip nutinka.
>> Apie viktorinos, jei mes suteikiame Jums blokas kodą ir tai, kaip,
ką spausdina pabaigoje?
Ir jei tai kai atsitiktinai vertė Jūs vaikinai turėtų žinoti, kodėl tai vyksta.
Taip?
>> Auditorija: trumpinti yra atsikratyti viskas po tam tikro taško?
[Nesigirdi]
PROFESORIUS: Taip, taip, iš tikrųjų tai tikrai blogas pavyzdys,
nes 0,100 kokia iš tikrųjų būtų trumpinti iki 0,1.
Bet jei buvo paleisti it-- aš ne Nepamirškite, kad praėjusiais metais jie
vyko ant kitos programos.
Jie bėgo į vadinamąjį CS50 Appliance, kuris
skiriasi nuo ID.
Tai buvo 32-bitų sistema, manau.
Ir taip buvo su skirtingais numeriais.
>> Bet iš esmės, tiesiog žinau, kad visa koncepcija trumpinimą
ir kaip ji tiesiog gabalai ko ne.
Ir todėl, jei jį rounds--
>> Auditorija: Be apvalinimo.
>> PROFESORIUS: Būtent.
Taip.
Saunus.
>> Sveiki, gale.
Užtenka tik vyksta per keletą viktorina peržiūrėti klausimus.
>> Gerai.
Taigi mano kitą programą čia.
Aš norėčiau duoti jums vaikinai pora minučių skaityti daugiau tai.
Tai yra kažkas, kad buvo skirta labai Neseniai kad aš manau, pūtė daug iš jūsų
vaikinų protuose.
Bet mes ketiname kalbėti per tai vėl tik
įsitikinkite, kad jūs visiškai ją suprasti.
GERAI.
Kiekvienas reikia daugiau laiko perskaitykite šį kodą?
GERAI.
>> Taigi man atrodo, kad šioje programoje aš
sukurti dvi eilutes pagal naudodami GetString.
Vienas vadinamas S ir vienas vadinamas T.
Ir jei jie lygūs lygus viena su kita,
ji turėtų spausdinti "You įrašykite tą patį. "
>> Bet elsewise, tai spausdinti, "You įvedėte skirtingus dalykus ", tiesa?
Atrodo, labai, labai paprasta.
Bet, tačiau, jei I tikrųjų pabandyti parašyti šią programą,
atrodo, kad net tada, kai aš Įveskite tą patį įsipareigojimų,
ji vis dar spausdina "Tu įvedėte skirtingus dalykus! "
Ar kas nors nori imtis šaudė, kodėl ši programa visada
atsako, kad įėjimai yra skirtingi, net
kai patys žodžiai yra tas pats?
>> Taigi, jei aš būčiau input-- David meilę naudoti pavyzdį, kaip mama, tiesa?
Lowercase M-O-M S, T lygus mažosiomis raidėmis M-O-M.
Jei išbėgau tai per tas kodas, kodėl jis
spausdinti "įvedėte skirtingus dalykus?"
>> Ar kas nors reikia daugiau laikas pagalvoti apie tai?
Gerai, manau, mes geri.
Taip?
>> Auditorija: Gerai, kad tai kažkas apie kur jis saugomas atmintyje, tiesa?
>> PROFESORIUS: Yep.
>> AUDITORIJA: Kur tai kaip, jei tai styginių s saugomi atmintyje spot--
Aš išrasti this-- yra lygus nuliui.
PROFESORIUS: Žinoma.
Auditorija: ir styginių t yra saugomi atminties vietoje,
panašiai, 167, ir tada nulis nėra lygi 167.
>> PROFESORIUS: Būtent.
Gerai, kad tai prisiminti neįtikėtina apreiškimas mums paaiškino jums vaikinai
praeitą savaitę, kad įsipareigojimų tikrai egzistuoja?
Kai mes sukurti kažką vadinama styginių mes, iš tikrųjų,
sukurti kažką vadinama char žvaigždė.
Kurie visi yra yra rodyklė eilutė arba kurio simbolių masyvo.
>> Ir taip šiame pavyzdyje, jei aš buvo įvesties M-O-M ir būdų
kad mano kompiuteris būtų laikyti tai per atminties backslash nulis, tiesa?
Šie keturi simboliai, simbolių, būtų saugomi kažkur.
>> Ir tada šių keturių simbolių, Backslash nulis,
yra kažkur kitur, tiesa?
Aš neįsivaizduoju, kur adresai yra, jie kažkur mano kompiuteryje.
Bet aš nemanau, tiksliai žinoti, kur jie yra.
>> Kai aš sukurti eilutę S, visi, kad tikrai yra
yra rodyklė į pradėti šio eilutę.
Ir kai aš sukurti šį T vertė, visa tai yra rodyklė į čia.
Ir todėl, kai jūs bandote prilyginti ir patikrinkite
pamatyti, jei yra lygu s lygus iki t, kompiuteris
yra tikrai tik grįžta į Jums šio m adresas
ir, kad: m adresas.
Ir todėl, kad jie du atskiri duomenų
kad yra saugomi du skirtingi adresai kompiuteryje,
kompiuterio niekada atpažinti juos kaip ta pati.
Ar kas nors nori duoti ne kulka, ką mes
tektų daryti, jei mes norėjome informacija tai ir teisingai vykdomos programos
vietoj?
Pagalvokite apie tai už poros sekundžių.
Ką mes turime pakeisti gauti šią programa veikimą
kaip mes norime, kad ji veiktų?
>> Taip, noriu imtis Pabandyti juo?
>> Auditorija: Ar mes stengiamės dereference žymeklis ir patikrinti per masyvas?
PROFESORIUS: Štai vienas iš būdų tai padaryti.
Taigi, kas yra jūsų vardas vėl?
Aš atsiprašau, man primena.
>> Zee: Zee.
PROFESORIUS: Taip, taip, tai ką Zee Siūloma būtų absoliučiai dirbti.
Teisė?
Galėtume dereference rodyklė ir iš tikrųjų eiti ir prieiga
fiziniai duomenys viduje čia.
Ir mes galime tik lyginti visą ekraną.
>> Galime sakyti, gerai, žymeklis, duok man, kas viduje čia.
Būtų grąžinti m.
Ir sakyčiau, žymeklis, duok man, kas viduje čia.
Grįžti M.
Ar šie rungtynės?
Taip.
Tada mes judėti.
>> Mes nuolat tikrinti visą du įsipareigojimų, visą kelią iki pabaigos
ir pamatyti, jei jie yra lygūs, jeigu visos nustatytos vertės yra lygūs.
Ir jeigu visos nustatytos vertės yra vienodos, tada mes žinome, stygos yra tiesa.
Absoliučiai, tai, kaip mes tai padaryti?
>> Ar kas nors nežino, bet apie tai?
Visa koncepcija, kaip stygos yra tikrai tik patarimų,
ir kaip jie tikrai egzistuoja?
Ir kodėl mes gauname klaidų patinka, kaip mes jį gauti?
Nes aš jums garantuoti vaikinai, patarimų ir styginių paskirstymas ir atminties
ketinate sugalvoti.
>> Taip?
>> Auditorija: [nesigirdi] dereference IT, jūs tiesiog įdėti žvaigždę [nesigirdi]
PROFESORIUS: Teisė.
Taigi, norint derererence rodyklė priemonės eiti į tą rodyklė adresą
ir gauti duomenis, vertė ten.
Ir būdas tai padaryti yra žvaigždė žymeklis.
Nepainiokite tai.
>> Auditorija: [nesigirdi].
>> PROFESORIUS: Taip.
Auditorija: Taigi, galite tiesiog parašyti jei žvaigždės s lygi lygu žvaigždė t.
>> PROFESORIUS: Na, ne.
Ne.
>> Auditorija: Štai nėra pakankamai gera, tiesa?
>> PROFESORIUS: Tai ne, nes esate tik tikrinant pirmąją raidę.
Jūs tikriausiai reikia šiek tiek kilpa rūšiuoti, kad
kartojasi kiekvieną personažas tiek stygos.
Taip.
Taigi, jei norite tiesiog patikrinti, jei jie pradėjo su tą patį,
jūs galite padaryti, jei žvaigždės s yra lygus star t.
Tada jūs žinote, kad jie bent jau pradėjo su to paties pobūdžio.
>> Taip?
>> Auditorija: Taigi būdas Jūs, kad būtų
kaip įterpti už linijos ar rodyklė?
PROFESORIUS: Taip.
Gana daug tik už kilpa.
Atminkite, kad Davidas klasėje paminėti laisvas sintaksinis cukrus?
Ir jis turėjo tai labai painu dalykas star t
plius vienas, kur ji būtų integruoti per ir perkelkite žymeklį?
Lengviau būdas tai padaryti tai tik t i.
>> Taigi tai tik masyvas.
Taip, kad jūs turite už kilpa, kuri tęsėsi nuo nulio iki i, kur
i yra ilgis eilutė, galima tiesiog
parašyti, kad vietoj daro Visa žymeklis, nuoroda dalykas.
Taigi šie dalykai yra būtent tai, lygiaverčiai jūsų kompiuteryje.
>> Vaikinai tikriausiai ne reikia žinoti, kad,
bet tai gerai, tiesiog rūšies turi gale savo mintis.
Tiesiog žinau, kad kompiuteris pripažįsta skirtingus blokus kodas
kaip tą patį.
Kadangi tai tik labiau vartotojas draugiška mums pateikti jį kaip tai
masyvas.
Tai tiesiog lengviau.
>> Auditorija: Taigi naudoti strlen patinka, get--
PROFESORIUS: Taip.
Auditorija: Gerai.
PROFESORIUS: Tu gali naudoti strlen arba jei
neturėjo strlen galite tiesiog padaryti iki kol paspausite Atgal nerijos velniop nulis tiek.
Bet būtų dirbti.
Taip.
Auditorija: Taigi tai, kad kiekvienas dereference vienas simbolis, jei mes iš tikrųjų buvo
raštu Šiuo kodu mes gali tiesiog padaryti t laikiklius i
kaip su priešais jį žvaigžde?
>> PROFESORIUS: Taip, lygus lygus s kronšteinas i, o tada nuolat juda i
žemyn iki paspausite pabaigą.
Taip, tai, ką būtų galima daryti.
Ir aš iš tikrųjų turėsite šalia pavyzdys, kai mes iš tikrųjų
rašyti strlen tiek vaikinai bus natūra iš gauti žaisti aplink su juo šiek tiek.
>> Taigi kiekvienas, aišku, tik atminties, stygos, rodyklės, kokybės adresai?
Kai aukštesnio lygio sąvokas, kad jūs valia tikrai reikia žinoti apie Viktorinos
rytoj.
>> Gerai.
Geras.
Yep.
Gerai, kad vienas dalykas, kad mes taip pat prašome, Jūs, kaip ir mes kiekvienais metais viktorinoje, yra
Tarkime, kad jūs pamiršote (kuris mes, atrodo, pamiršti, kad kasmet padaryti)
kurioje antraštės failą strlen deklaruojama.
Ir todėl mes turime perrašyti save.
>> Čia yra gaires, sąrašas kad mes galime pateikti jums
vaikinai kur jums manyti, kad S eilutė nebus null.
Galite manyti, kad ai bus nutraukta su backslash nulio.
Taigi jūs žinote, kad tai, ką jis ketina baigti su.
>> Ir, pavyzdžiui, kad ilgis labas būtų penki.
Taigi, galite manyti, kad Hello bus penki, H-E-L-L-O.
Jūs neturite manyti, kad reversas nulį sąskaitas ilgio.
>> Tai paskutinis dalykas, čia ne nerimauti sveikasis perpildymo.
Ar kas nors prisiminti kas sveikas perpildymo yra?
>> Auditorija: peržengia ilgis [nesigirdi].
>> PROFESORIUS: Taip, galite paaiškinti šiek tiek, ką tai reiškia?
>> Auditorija: Taigi, aš manau, kad jis nueina į trumpinimą pavyzdys anksčiau.
Bet jei jūs turite tik tiek daug skaičių kad peržengti bitų skaičius
kad jūs iš tikrųjų galite priskirti kad ji tiesiog rūšies išjungtas.
PROFESORIUS: Taip, taip, tipiškas kompiuteris, kiek bitų turime?
Auditorija: 32?
PROFESORIUS: Taip, 32, į dešinę.
Ir taip, kad tai, ką, keturių mlrd dviejų milijardų?
Keturis milijardus iki keturių milijardų teigiami sveikieji skaičiai, tiesa?
Du milijardai neigiamas, du milijardai teigiamas,
priklauso nuo to, kaip jūs norite daryti.
>> Ir todėl iš esmės mes galime turėti pakankamai sveikieji skaičiai, kurie gali eiti
iki dviejų su 31 minus 1, tiesa?
Nes kai mes nukentėjo du 32-ajai, mes do not
kad daug atminties mūsų kompiuteryje.
>> Ir taip, teoriškai, aš gali sugalvoti skaičių
tai yra, kaip, nuo dviejų iki 46-osios.
Tai didžiulis asilas skaičius, bet teoriškai galėtų.
Ir taip sveikas perpildymo yra, jei jūs bandote sukurti sveikasis skaičius, kad viršija tai, kas
kompiuteris gali saugoti.
>> Ir tokiu būdu jūs vaikinai šis pavyzdys neturi
nerimauti mums suteikia jums milžinas eilutė, yra nuo dviejų iki 32-simbolių
ilgai.
Tai būtų iš tikrųjų reiškia.
>> Gerai, kad aš tik ketina duoti vaikinai bazinė struktūra tai.
Jūs ketinate sukurti INT strlen kur funkcija vadinama
perdavimo į, char žvaigždė, ar eilutė, rodyklę į eilutę vadinamas s.
>> Gerai, visi nukopijuoti, kad žemyn.
Saunus.
Oops-- kitu būdu.
>> Taigi tai yra tipo kaip sunkiau gabalas problemos,
todėl aš duosiu jums vaikinai gal penkių iki šešių minučių iki rūšies Brainstorm
ir rašyti šią funkciją atlikti.
>> Auditorija: Mes ne sąskaita [nesigirdi],
mes neturime naudoti sveikasis skaičius?
>> PROFESORIUS: Ne, jums nereikia.
Aš duosiu jums, vaikinai užuominą.
Kurį laiką kilpa gali būti labai naudinga čia.
Taip.
Štai
saldainiai.
Saldainiai taip pat bus galima už viktoriną, manau.
Taigi vaikinai bus visi cukrus rytoj.
Ar I-- jūs turite jį.
>> Auditorija: Gerai.
PROFESORIUS: Taip.
>> Gal 30 sek ar taip.
>> Gerai, jei esate nebuvo padaryta, jokių rūpesčių.
Mes pereiti per tai kartu.
GERAI.
Taigi, aš ruošiuosi tiesiog išdėstymas pagrindinė struktūra šiai funkcijai čia.
Žiniasklaida strlen.
Pirma, ar kas nors nori pasakyti man, ką tai reiškia, int?
Mums reikia turėti šią funkciją.
>> Auditorija: strlen [nesigirdi].
PROFESORIUS: Būtent.
Taigi, kas beatsitiktų čia, mes turime grįžti sveikasis skaičius.
Ir, kaip nurodyta spec, mes norime return--
Eiti į jį vaikinai, tiesiog nesustoti.
Viskas gerai.
Valgykite visa tai todėl aš neturiu priimti jį atgal, iš tikrųjų.
INT tiesiog reiškia, kad jūs esate bus grįžta sveikasis skaičius.
>> Kas tai yra char žvaigždė s?
Ką tai reiškia?
>> Auditorija: Kaip, kas yra indėlis.
PROFESORIUS: Būtent.
Ir kas yra beveik tas pats, kaip char žvaigždė?
Auditorija: Styginių?
PROFESORIUS: Būtent.
Taigi, visi mes darome yra suteikti Ši rodyklė į eilutę.
GERAI.
Saunus.
>> Be to, nereikia pamiršti, jei mes pamirštame duoti jums šiuos laikiklius,
nepamirškite parašyti patys.
Kadangi teoriškai, jūsų kodas yra Neteisingas jei pamiršti, kad rašyti juos.
Tiesiog visada atkreipti dėmesį.
Kaip, smulkmenos kad jūs nepastebi
kai jūs programavimo į savo kompiuterį, nes jūsų nešiojamas ar jis jums tinka?
Nepamirškite, kai rašote ranka.
Taip?
>> Auditorija: Bet kaip neteisingas?
Kaip, mes gauname visas problemas blogo?
>> PROFESORIUS: Ne, ne.
Nesijaudinkite.
Tai tikrai teoriškai įmanoma jums gauti visą taškus klausimą
net jei jūsų kodeksas niekada paleisti realiame gyvenime.
Siūlyčiau nebandykite padaryti, kad taip atsitiktų.
Pavyzdžiui, kaip jei viskas tai čia yra teisinga,
bet jūs pamiršti dvitaškis ar laikiklį, Jūsų kodas bus ne iš tikrųjų paleisti.
Bet mes galime būti gailestingas.
>> Taip?
>> Auditorija: Ar turite pakomentuoti mūsų rašysena?
>> PROFESORIUS: Ne, ne, ne Nesijaudinkite apie tai.
Nėra komentarų.
Stilius turėtų būti gera.
Kaip, nereikia Smush viskas vienoje eilutėje.
Mes nebus laimingas su jumis, jeigu jums tai padaryti.
>> Ar kas nors nori man pirmą eilutę?
Užuomina, tai labai paprasta.
>> Taip?
>> Auditorija: Žiniasklaida, n yra lygus nuliui.
Tiesiog įsteigti skaitiklis.
PROFESORIUS: Taigi mes norime kai rūšiuoti prekystalio, tiesa?
Aš tik ketina pavadinti ją "suskaičiuoti" dėl aiškumo dėlei.
Ką mes norime nustatyti, kad jis lygus?
>> AUDITORIJA: Nulio.
PROFESORIUS: Yep.
Kabliataškiais.
Taip pat labai keista piešimo kabliataškiai.
Tiesiog praktika daro.
>> Taigi mes norime pirmiausia turite iš tipo int skaitiklis.
Kadangi mes norime suskaičiuoti, kaip daug simbolių ar raidės
Šioje eilutėje, tiesa?
Labai lengva pirmas žingsnis.
>> Gerai, gal šiek tiek daugiau sudėtinga Dabar, kaip mes ketiname daryti?
Ar kas nors nori duok man kodo eilutę
kurios gali būti galėtų padėti kilpa per kokia tai?
>> Taip, drąsus siela gale?
>> Auditorija: Gerai, kad nors taškas žvaigždutes, The Yeah, žvaigždė s,
nėra lygus nuliui, tada kažką daryti?
PROFESORIUS: Tai tikrai, tikrai arti.
Tikrai arti.
Taigi, aš ruošiuosi spręsti du dalykai su tuo.
Visų pirma, tai ne visai nulis.
Kas tai?
Tai niekinis terminatorius, kuris yra Backslash nulis.
Taigi jie skiriasi sąlygos, kaip jie saugomi.
Taigi jūs tikrai arti.
>> Ir, antra, mes nenorime tiesiog perkelkite žymeklį.
Mes norime, kad iš tikrųjų prisijungti vertybes, tiesa?
Ir taip, kaip mes darome tai?
Labai lengva.
Negalima galvoti apie rodykles, nemanau, kad apie prisiminimus.
Grįžti į šio kurso dvi savaites.
>> Auditorija: [nesigirdi].
PROFESORIUS: Nuo, prisimeni?
Kokie be įsipareigojimų?
Kaip jie saugomi atmintyje?
>> Auditorija: Jie iškėlė.
>> PROFESORIUS: Jie iškėlė.
Taigi, kaip mes prieiti kiekvienas viduje charakteris?
>> Auditorija: [nesigirdi].
PROFESORIUS: Būtent.
Taigi while-- kas vyksta viduje čia?
S -
>> Auditorija: I.
>> PROFESORIUS: Ech, man neegzistuoja, ar ne?
>> AUDITORIJA: Oi, tikėtis?
>> PROFESORIUS: Mes galime tik naudoti skaičius, mes negalime?
>> Auditorija: Atsiprašau, aš jį pavadino i.
>> PROFESORIUS: Taip, tai viskas gerai.
Mes turime kintamąjį čia tai jau buvo deklaruotos kaip mūsų prekystalio.
Taigi, kodėl ne mes tiesiog naudoti, kad pereiti per while cikle?
Ar tai prasminga?
>> Taigi, nors ai iš count-- Ar kas nors nori duoti man, kas atsitinka po čia?
Auditorija: Ji nėra lygūs.
PROFESORIUS: nėra lygi, tiesa?
Tai sprogimo lygus, šauktukas lygus,
ką jūs vaikinai nori vadina jį ne equal--
>> Auditorija: [nesigirdi].
>> PROFESORIUS: Taip.
Įsiminti vieną citatą yra char, dvigubose kabutėse yra už eilutę.
Būkite atsargūs, kai juos naudojant.
Taigi, kai mes ieškome per masyvas, paskutinis simbolis,
mes žinome, mes nenorime kad ji būtų Backslash nulis.
>> Taigi, nors.
Mes ne eilutės pabaigoje.
Ką mes norime padaryti viduje?
>> Auditorija: Mes norime pridėti prie skaitiklis, todėl skaičiuoja plius plius?
PROFESORIUS: Būtent.
Taigi čia mes ketiname daryti skaičiuoti, skaičiuoti plius pliusas.
Trūksta dar vieną liniją.
Mes beveik ten.
Ką mes pamiršta tai padaryti?
>> Auditorija: Grįžimas nulį?
>> PROFESORIUS: Jūs norite grįžti prie nulio?
>> Auditorija: Ne, grįžta į strlen.
Palaukite.
PROFESORIUS: Kuris yra saugomi?
Auditorija: Count.
Grafas.
PROFESORIUS: Būtent.
Taigi čia mes ketiname grįžti skaičius.
>> Nes tai, ką mes čia darai ultimately--
turime priešinį kintamasis, kad yra ketina prieaugio per mūsų eilutę.
Mes ketiname nesustoti, nuolat vyksta, aplink ir aplink šio kilpa.
Ir nors mes ne apie tai pabaigoje eilutė, kuri yra niekinis terminatorius.
>> Ir kiekvieną kartą, kai mes pereiti per tai, mes pridedant prie mūsų prekystalio.
Ir mes ketiname toliau kartu šiame masyve.
Ir pabaigoje, kai mes nukentėjo null terminatorius,
mes žinome, oi, mes galime pertrauka, grąžinkite skaičius.
Mes turime strlen.
>> Ar visi gauti kaip Tai buvo įgyvendinta?
Nors loops-- aš žinau mes ne padaryti per daug su jais,
bet jie paprastai labai, labai naudinga, jei
nežinau, ką jūs sustoti Būklė nebūtinai turi būti.
>> Klausimas?
>> Auditorija: Ar mes rašome NULL ant Nors būklės?
>> PROFESORIUS: Nors?
Taip, todėl šią problemą turėjau jus vaikinai manyti, kad ai nebus null.
Nes prisimenu, Teoriškai, jei aš davė jums
rodyklė kad buvo per didelis atminties, tai turėtumėte null, tiesa?
Štai ką operacinė sistema būtų daryti.
>> Taigi, jei aš ne pasakyti jums manyti, ai būtų niekinis, reikia patikrinti.
Taigi čia, darytumėte, jei -os lygus lygus NULL, grąžina vieną.
Kažkas panašaus.
Auditorija: [nesigirdi] nulis.
PROFESORIUS: Gerai, aš jums pasakysiu kodėl mes negalime padaryti.
Kadangi prisiminti atmintyje, tiesa, čia.
Mes eikite čia.
>> Jūs turite milžinišką blokai atminties visi su tinklų
kad Patalpink skirtingas vertybes, tiesa?
Ir taip visą eilutę is-- už Pavyzdžiui, jei mes įvesti Sveiki,
jis būtų H-E-L-L-O Backslash nulis, tiesa?
Ir tada kas žino, kaip atsitiktinis dalykų, kurie čia po jo.
>> Mes neturime iš tikrųjų žino, kas ten.
Ir taip, jei buvo daryti vietoj backslash nulis,
negaliojantis, ji gali būti tuščias.
Nes jis tiesiog gali reikšti Kažkoks atsitiktinis kitų dalykų
kurie nepriklauso jūsų eilutę.
Ir taip taip, kad mes visada žinome, kad eilutė baigiasi yra su backslash nulio.
Ir taip, kad visada, kaip mes Tikrinti pamatyti eilutę pabaigą.
>> Null, visa tai reiškia, jei turite ne visai nėra žymeklis, visų pirma,
arba jei jūsų atminties yra tik toks didelis, kad Jūs negalite grįžti, tada, kad būčiau null.
Taigi būkite labai atsargūs, kai diferencijuojant tarp null skirtumas
ir Backslash nulis.
Taip.
>> Kiekvienas gerai su tai?
GERAI.
>> Taigi turėjau vaikinai rašyti strlen.
Realiai mes taip pat gali paprašyti rašote iš A į I, atminkite, kad "Atwoa"
arba ką vaikinai nori jį pavadinti?
Kad funkcija Vigenere ir Cezaris, kad
konvertuoja ASCII vertę sveikasis skaičius?
Tai taip pat atėjo praeities viktorinos Funkcijų mes paprašė parašyti.
>> Beveik bet funkcija kad jūs naudojami ir yra
labai lengva rašyti sau, jutikliai patinka yra mažesnis,
yra viršutinė, sumažinti, kad viršutinė.
Funkcijos, kurios būtų konvertuoti eilutė iš mažosios į didžiąsias.
Mes visi žinome, kaip tai padaryti, tiesa?
Tai gana paprasta.
Tiesiog noriu įsitikinti, kad jūs can-- tai tas pats mąstymo procesą.
Jūs tiesiog pakartoti per ir jūs pasukti dalykų.
Jūs arba skaičių arba kai įjungsite dalykus skirtingai.
>> Norėčiau suggest-- I nežinau, jei mes ketiname
Jūsų paprašyti įsiminti ką kapitalu arba kapitalo Z arba mažosiomis raidėmis A arba mažosiomis raidėmis
Z yra ASCII, bet siūlyčiau galbūt raštu, kad nustatytų atveju
Mes darome.
Tiesiog taip, jūs vaikinai turi nuorodą.
Kaip didžiosios A yra kas, 197?
Ir tada mažosiomis yra kaip 50 kažką.
65, taip, ten jūs einate.
Taigi tik gana daug žinoti skirtumas tarp jų yra 32.
Tai gana svarbu.
Taip.
Ar aš gerai apie tai?
GERAI.
>> Auditorija: Galėtume teoriškai rašyti kai
iš jų žemyn, taip pat mūsų little--
>> PROFESORIUS: Jūs teoriškai gali tiesiog kopijuoti funkciją žemyn.
Tai tiesa.
>> Auditorija: Ne [nesigirdi].
>> Profesorius: Jūs vaikinai turi lapą.
Vaikinai turi dokumento lapo.
Galite įveskite jį.
Jūs galite rašyti jį.
Jūs galite daryti ką nori su juo.
Taip.
Taigi, teoriškai, jeigu norite, eikite.
>> Auditorija: [nesigirdi] bet mes tikrai ne
nebūtinai reikia prisiminti vertė, mes galime tik
naudoti į viršutinę arba mažesnis funkcija, tiesa?
PROFESORIUS: Taip.
Bet jei mes davė jums klausimą kad sako parašyti viršutinė,
tada jums reikės parašyti.
Taigi vaikinai gali manyti, kad jūs vaikinai turi prieigą prie visų funkcijų,
bet jei norite naudoti viršutinę arba mažesnis, ką jūs taip pat turite daryti?
>> Auditorija: [nesigirdi] naudoti CS50 [nesigirdi]
>> PROFESORIUS: Ar CS50.h?
Būkite atsargūs ten.
>> Taigi, norint viršutinė, sumažinti, yra viršutinė, yra mažesnis,
funkcijos, kurios dalyvauja styginių manipuliacijos
visi per arba ASCII arba per matematikos biblioteka
arba per styginių bibliotekoje.
Taigi, jei jus vaikinai naudoti tiems, funkcijos, būkite atsargūs prisiminti
įtraukti tą antraštę.
Taigi galbūt kažkas jus norite įtraukti į savo lapą,
kas yra antraštė?
Kokie bibliotekos jau naudojate?
Kas funkcijos viduje šių bibliotekų?
Tai svarbu.
>> Taip?
>> Auditorija: Gal mes tiesiog policininkas, ir padaryti hashtag
per absoliučiai kiekvienas laiškas, mes kada nors
matyti, kaip dėl visų klausimų?
>> PROFESORIUS: Tu gali.
Aš nežinau, kaip laimingas mes ketiname būti klasę
kad viktorina, kai kiekvienas kodo fragmentą yra du kartus tol, kol ji turi būti.
Aš nežinau, mes galime kilimo už stiliaus tašką.
Tačiau teoriškai tavo kodas būtų teisinga.
Vaikinai galėtų policininkas, ir tiesiog apima viską.
Tai gerai per, taip.
Auditorija: [nesigirdi].
PROFESORIUS: Taip.
Siūlyčiau nedaryti, kad nors.
Taip.
Auditorija: cool.
PROFESORIUS: Geras klausimas.
Auditorija: Taigi, blogiausiu atveju.
PROFESORIUS: Blogiausiu atveju.
Jei visiškai pamiršti, galite tai padaryti.
Taip.
>> Taip, kodas yra teisus ten.
Aš n vietoj skaičiaus, bet jums žinoti, kokia plūdės savo valtis.
Auditorija: Palaukite, todėl mes nereikės hashtag
įtraukti, nes mes pradedant tuo int?
>> PROFESORIUS: Taip, aš ką tik daryti prielaidą, kad mes buvo paprašyta parašyti funkciją.
Jei nori būti saugūs, jus turbūt galėtų jį ten.
Bet aš tiesiog nesivargino, taip.
>> Aš net nežinau, jei jūs reikia bet biblioteką už tai.
Kadangi jūs tikrai ne spausdinti iš nieko arba nieko, tiesa?
Taip, aš nežinau, jei jums reikia biblioteka.
>> GERAI.
Tai taip pat yra šiek tiek daugiau kartu Atminties manipuliavimo linijos.
Šis šiek tiek sudėtinga natūra.
Pagalvokite apie tai.
Jūs turite funkcija vadinama func.
Galėjau pavadino jį kas, bet aš pasirinksiu ją įvardinti func.
Turiu jį virš mano pagrindinis.
Nepamirškite, kad jūs norite turėti ir atlikus jūsų pagrindinė funkcija,
norite įsitikinti, kad jūs įtraukti viršuje prototipą.
>> Bet šiuo atveju tai buvo toks trumpas kad aš jaučiau, kad galėjau tik
įtraukti jį ant pagrindinė.
Man nereikėjo turėti prototipą, nes jis jau parašyta aukščiau.
Taigi viskas, ką aš darau, mano pagrindinės funkcijos yra sukurti sveikasis skaičius x yra lygus 10.
Aš skambina mano func funkciją, ir tada spausdinti kažką.
>> Ir tada, kad tikrai kas func daro.
Jūs vaikinai nori apgalvoti tai.
Nes tai šiek tiek sudėtinga.
Tai labai, labai sudėtinga, iš tikrųjų.
Pagalvokite per ką šis programa būtų išvedė.
Aš duosiu jums, vaikinai, dvi minutes.
>> Geros diskusijos?
>> Auditorija: Taip.
>> PROFESORIUS: Taip.
Visos teisės, todėl tai yra sudėtinga dėl priežasties.
Ir tai, kodėl aš norėjau duoti tai visų dėmesio.
Ar kas nors nori man duoti pasiūlymas, bandymas?
Ką tai atsispausdinti?
Visiškai gerai, jei jūs klystate.
Taip?
>> Auditorija: manau, kad tai 100 ir tada 10 dviejų atskirų linijų.
>> PROFESORIUS: ir 10?
Ar kas nors turite kokių nors kitų spėlionės?
Taip?
>> Auditorija: Gal tik 10, nes func negrįžta nieko?
>> PROFESORIUS: Gerai, kad mes turi atspėti numeris vienas
yra tai, kad spėjimas numeris du yra tik ketina išspausdinti 10.
Ar kas nors turite kokių nors kitų spėlionės?
GERAI.
Taigi leiskite eiti per tai, tiesa?
Kai jūs gaunate kodo fragmentą, ne tik pažvelgti į jį ir būti kaip,
Ah, tai tiek daug dalykų!
Aš pasimetęs!
Kaip, nuraminti save žemyn.
Tiesiog žinau, kad galima tiesiog peržiūrėti kodo eilutę po eilutės.
Tai viskas yra.
Tai kaip skaitant knygą.
>> Taigi su bet kokia funkcija, mes visada prasideda pagrindinis.
Taigi mes ketiname pradėti int main tuštumos,
net pagal programos jau paleisti žemyn, į dešinę?
Pradėkite pagrindiniame tuštumos.
Žiniasklaida x lygus 10.
>> Taigi, aš ruošiuosi ištrinti tai.
Aš ruošiuosi padaryti atmintį tik tokiu būdu jūs vaikinai gali rūšies pamatyti, kas vyksta.
>> Įsiminti žemyn čia mes turime krūvą?
Čia mes turime užversti kažkur čia.
Kamino užauga, tiesa?
Ir per kaminą, turite maitinimo funkcionuoti taip pat
visi maitinimo vietos kintamųjų.
>> Taigi čia, int x lygus 10.
Per mūsų pagrindinė funkcija mes sukurti kintamąjį vadinamą x.
Mes kuriame, kad lygi 10.
Čia jūs turite keletą X, ir jūs nustatant, kad lygi 10, į dešinę,
per Pagrindinis.
Kiekvienas geras?
>> Funkcija.
Taigi, dabar, kaip mūsų pagrindinis funkcija, mes telefonu
funkcija mes parašiau aukščiau.
Taigi mes dabar patekti į antrą funkciją.
Mes ketiname sukurti kitą kintamasis int x lygus 100.
Kas vyksta čia kamino?
Kas atsitinka, kai skambinate funkcija, kuri sukuria naujus kintamuosius?
Kas atsitinka, čia kamino?
>> Auditorija: [nesigirdi] poliai viršuje?
PROFESORIUS: Taip.
Taigi ji iš tikrųjų sukuria kopiją.
Ir tai rūšies polių ant viršaus.
Pagalvokite apie stack-- kamino knygų, iš nieko kamino.
Poliai ant viršaus, pirmas paskutinis out, paskutinis, pirmasis iš.
>> Taigi jis ketina čia sukurti x.
>> Štai teks Visi funcs kintamųjų.
Didysis.
Taigi dabar mes turime du skirtingus x-ųjų, kad atstovauja du labai skirtingus dalykus.
Tada mes ketiname spausdinti iš X sveikojo skaičiaus.
Taigi leiskite spausdinti 100, tiesa?
Nes čia tai 100.
Taigi, kad pirmas dalykas, kad ji ketina išspausdinti.
Kaip Ši funkcija grąžina nieko, dabar, kad funkcija, kad pagrindinė linija
yra padaryta.
Kiekvienas geras su manimi iki šiol?
>> Taigi mes dabar per du iš trys eilutės mūsų pagrindinė funkcija.
Dabar mes ketiname trečioje eilutėje.
Mes ketiname printf.
Kas tai yra x per Pagrindinis?
Ką tai reiškia?
>> Kas vertė yra x dabar?
>> Auditorija: 100.
>> PROFESORIUS: tai 100?
AUDITORIJA: Vis dar 10.
PROFESORIUS: Vis dar 10.
Taip.
Nes atsimenu, per Mūsų func x lygus 100.
Bet jei mes grįžti mūsų pagrindinė funkcija,
kad kintamasis yra saugomi kitoks mūsų kamino.
>> Taigi dabar mes turime grįžti į Pagrindinis kamino, dujotiekio vietinius kintamuosius.
Ir čia x yra lygi 10.
Ir taip mes ketiname spausdinti 10.
>> Taigi ji buvo visiškai teisus.
Mes ketiname turėti galingumas 100 ir 10.
Taip?
Auditorija: Kai malloc, Ar tai krūvą arba kamino, kad yra [nesigirdi]?
PROFESORIUS: Kai malloc, jūs vartojate atmintį iš krūvos
ir ją paskirstyti.
Taigi, kad jūs neturite kad netvarka su bet tai.
Taigi, manau, didesnę Takeaway čia yra kažkas vadinamas apimtis.
>> Tiems iš jūsų, kurie buvo ne peržiūros sesijos paskutinę naktį,
mes kalbėjome Trumpai apie tai.
Taikymo sritis apibrėžiama, kaip ir kai jūsų kintamieji egzistuoja.
Arba per kokį rėmeliai padaryti jūsų kintamieji egzistuoja.
>> Gana daug Nykščio taisyklė paprastai yra jūsų variables-- jei kuriate juos
viduje garbanotais braces-- jie egzistuoja tik viduje šių garbanotas petnešos.
>> Taigi, pavyzdžiui, mūsų funkcija func, matote šias dvi petnešos.
Jei kuriate nieko viduje ji,
yra tikimybė, kad visi jūs darote, yra sukurti krūvą ir saugoti, kad ten.
Tas pats dalykas pagrindinis.
Tai tiesiog saugomi viduje pagrindinis.
>> Taip pat norite būti labai, labai atsargūs, čia.
Kadangi apimtis taip pat skolina Pati prie skirtingų pavyzdžių.
Taigi, pavyzdžiui, į būtinybę kilpa, už int i lygus 0.
I yra mažiau nei, aš nežinau, 10.
Aš plius pliusas.
Ir jūs turite kodą viduje ji, tiesa?
>> Kur šis kintamasis, Aš, iš tikrųjų tik egzistuoja?
Tik viduje jūsų už kilpa.
Taigi aš bet ir daugelis iš jūsų vaikinai tikriausiai susidūrėte su šia klaida, kai
darote programas jūsų psets.
Kaip daugelis iš jūsų vaikinai bandė naudoti i ne už kilpos ir turėjo klaidą?
Kaip unreferenced skaičiais ar kažkas panašaus?
>> Priežastis, kodėl taip atsitinka, yra todėl, kad čia esate
sukurti kažką, kad tik egzistuoja Jūsų for ciklas.
O jei bandysite jį naudoti, aš ne iš tiesų egzistuoja už jos ribų.
Taigi, iš esmės kompiuteris sakydamas: "Aš nežinau, ką jūs kalbate apie.
Viskas, ką aš žinau, yra tai, kad man buvo čia, bet dabar nebėra.
>> Taigi, jei aš buvo sukurti už kilpos viduje, tiesa?
Ir aš ruošiuosi sukurti kitą, kaip int j, ir jį padaryti dar ką nors.
Ir jūs turite viduje kodą kad kilpa, j egzistuoja tik čia.
Bet tai taip pat egzistuoja kaip i.
Ir taip j egzistuoja tik per tai už kilpos,
kadangi i egzistuoja visa tai.
>> Kiekvienas aišku?
Tas pats su sąlyginių ataskaitų Jei norite sukurti ką nors.
Tas pats su tuo pačiu kilpomis, jeigu norite sukurti nieko.
Tai kažkas, kad būtų labai, labai atsargūs, apie.
Taigi tai buvo tikrai gera problema prasme, kad ji parodė du dalykus.
Tai parodė pirmą kartą, taikymo sritį.
Ir tai parodė taip pat atminties paskirstymas.
Kadangi vaikinai turėtų žinoti, kad funkcijos augti aukštyn pluošte.
Ir tai, kai skambinate funkcijos, kuriate
iš esmės naujas kamino atminties.
Kad tai yra labai skiriasi nuo ką jūsų tinklo atmintis.
Taip.
FIU!
Kiekvienas Gerai, kad?
Tai buvo paini.
Labai geras temos eiti per, nes jūs tikriausiai
kažkiek sudėtinga dalykų, pavyzdžiui, kad viktorinoje.
Taip.
Saunus.
Aš įdėti gausite 100 ant vieno linija ir tada 10 iš kitos.
Taip, labai gerai.
>> Gerai, dabar jūs vaikinai gaus galimybė būti struktūra.
Jūs gaunate atsakyti į visus miela laiškus, kad aš kartais gauti.
>> Taigi, Gerbiamieji Andi, matau aš manau kažkas vyksta negerai su mano kompiliatorius.
Aš tikras, kad mano kodas yra teisingas, bet gaunu segmentavimo kaltės
kiekvieną kartą aš paleisti.
Kas vyksta?
Prašome padėti, daug meilės.
>> Jei vaikinai gavo kažką panašaus kad kaip jūs atsakyti?
Tai iš tikrųjų yra labai dažnas klausimai prašysime jums.
Ar, jei mes tau duos scenarijus, mes mums
tavo geriausias spėjimas, kas vyksta.
Kiekvienas turi tai, kas vyksta Pabandyti?
Taip?
>> Auditorija: Gal dereferenced niekinis, kažkas panašaus rodyklė
yra nukreipta į kažką null.
PROFESORIUS: Taip, kad būčiau būti pavyzdys, kai tai nutiks.
Bet koks didesnis paveikslėlis kas čia vyksta?
Auditorija: Ar jūs bandote prieiti prie atminties, kad nesate
turėtų turėti prieigą prie?
PROFESORIUS: Būtent.
Taigi galvoti apie seg kaltės, off ribos, rajonas, kuriame ribojama atminties
kad jums nereikėtų liesti.
>> Taigi gana daug, kai jūs bandote į index-- kaip pavyzdžiui,
Jūs paskelbė masyvas nuo nulio iki devynių.
Bet jūs bandote paliesti, kad 10 dieną vertė, jūs neturite priėjimo prie to.
Kadangi jūs nedeklaravę ją.
Ir, kad jūsų kompiuteris yra vyksta pažvelgti, kad bus kaip,
Oi, jūs bandote eiti už indeksu ribų.
Aš norėčiau duoti jums segmentacijos kaltė.
>> Pagalvokite apie segmentą, tiesa?
Papildomas segmentas, gedimas yra kai bandote kažką pažeisti
ir jūs ten neturėtų būti.
Segmentavimas kaltė yra kada bandote paliesti dalykus
kad jums nereikėtų liesti.
>> Taigi bendri pavyzdžiai indeksas.
Žinoma, jei jūs bandote paliesti, kad buvo niekinis,
kuris taip pat dirbti, taip pat.
Jei jūsų žymeklis bandžiau paliesti dalykus, kurie neturėtų liesti,
kuris taip pat gali dirbti, taip pat.
Dauguma paprastai jums pamatyti šį masyvą.
Kiekvienas geras?
>> Auditorija: Taigi, jei norite atidarykite 10-tašką
ir ten tik riba devynių ar kažką.
>> PROFESORIUS: Taip, tiksliai.
Daug maž.
Saunus.
>> Gerbiamas Ieva.
Taigi mes turime šiuos nuostabius dalykai vadinami rūšių.
Jei Sujungti sort-- kaip mes pjūklas pavyzdžiui, kai
Dovydas darė visa dalykas class-- kodėl,
jei ji taip daug greičiau nei bet kurį iš kitų rūšių,
kodėl mes net vargintis žinant bet kurį iš kitų rūšių?
>> Kas yra šis klausimas tikrai klausia jums?
Kas tris word--
Auditorija: Koks kompromisas?
PROFESORIUS: Būtent.
Štai ką klausimas klausia.
Kas yra kompromisas tarp Sujungti Rūšiuoti eilėraščiai kitų rūšių?
>> Auditorija: mano atmintį, tiesa?
>> PROFESORIUS: Ar jums paaiškinti, kad šiek tiek daugiau?
Pirma tegul paaiškina Merge parduotuvė.
Kaip Sujungti Rūšiuoti dirbti?
>> Auditorija: Taigi darbų dalijant viską į pusę
ir tada padėkite jį kartu ir perskirstyti ją tam,
kaip kaskart sujungti rinkinius.
PROFESORIUS: gana daug.
Taigi aš galiu padaryti tai atlikti, tačiau tai būtų imtis man penkias minutes jį semia.
Atsigręžti į skyriuje skaidres kur mes apėmė Merge rūšiuoti.
Būtent.
>> Taigi būdas sujungti rūšiuoti darbus tai skirsto dalykų pusę,
ir tada jis tiesiog žiūri į pirmieji vertės visi iš jų
ir tik, kad rūšiuoja.
Nuolat atsiranda naujų masyvus ir kelia viskas daugiau ir daugiau, siekiant.
Ir taip, o tai tikrai, tikrai greitai, nes it's-- žinote,
dvejetainis paieškos yra n log n.
Jūs kuriate tiek daug įvairių masyvų, kad jūs
naudojant didelį kiekį atminties.
Ir taip, kol jis yra greitesnis, prekybos išjungtas čia yra, kad jūs naudojate daugiau atminties.
>> Ir taip, užuomina, rūšys ir kratos buvo taikoma daug daugiau šiais metais
nei jie buvo metais ankstesnių.
Vaikinai turėtų matyti, kad atitinkamai nuo viktorinoje atsispindi.
Aš tikrai praleisti laiką vyksta per kokį visi skirtingų rūšių
yra, kaip dvejetainis paieškos, kaip linijinis paieška darbas.
Kaip galbūt Pseudocode kodą tiems iš.
Kokie bėgimo laikai?
Kažkas panašaus veikia laikais yra labai lengva nusikopijuokite ant dokumento lapo,
tiesa?
>> Tai tikrai sunku, kai esate viduryje testus
ir jūs turite suprasti, kad iš.
Kopijuoti jį žemyn.
Aš jums garantuoti jums ketinate reikia žinoti, kad.
Kokie yra galimi kompromisai?
Blogiausiu atveju, geriausiu atveju scenarijai visus juos, labai pažinti.
Taip?
>> Auditorija: Ar turime žinoti, kaip koduoti Merge rūšiuoti?
Kaip, mums reikia prisiminti Ciklas?
>> PROFESORIUS: Aš labai abejoju, tiesiog nes tai kaip gana sudėtinga.
Tačiau jis gali būti ne neįvykdomą jei mes paprašys jūsų naudoti Pseudocode jį.
Taip.
>> Taip, gerai, dar vienas.
Tai galėjo sugalvoti paskutinį kartą gabalas šiek tiek.
Taip?
Ar visi girdime, kad?
>> Gerai, kad gana daug pirma visiems, kokio tipo programos
būtų duoti jums patinka šis produkcija?
Įsiminti mes paprašėme jums sužinoti apie Tai naujo tipo derinimo įrankis?
Koks buvo jo vardas?
Valgrind, teisė
>> Tai buvo programa, kur galite skambinti, kad galėtų
sekti visus atmintyje esate naudojant savo programą ir vyksta.
Taigi, jei jūs turite ką nors, pavyzdžiui, tikrai neteko 40 baitų vieno bloko.
Tikriausiai esate ne prisiminti išlaisvinti ją.
Nes jei jūs naudojate baitų atminties, tai reiškia, kad jūs atvertas, kad atmintį,
bet jūs neturite galėjo nemokamai.
Taigi jūs norite įsitikinti, Įsitikinkite, kad jūs taip pat
naudojant free-- kad tai function-- išlaisvinti visus
iš atminties perskirstyti malloc.
>> Saunus.
Taigi šioje skaidrėje, aš turiu jį.
Tai visur iš daug paskaitos, daugeliu skyriuje skaidres daug.
Jūs tikrai norite įsitikinti, jūs tiesiog žinau, visa tai.
Bet jūsų dokumento lapo arba jei norite įsiminti, nedvejodami.
Tai tikrai, tikrai, tikrai svarbu.
>> Taip pat labai geras klausimas, kad mes galime paprašyti.
Kodėl pasirinkimą sort-- žvilgsnis Atrankos sort-- visus Runtimes
yra N kvadratu.
Nepriklausomai nuo to, kaip tas sąrašas ateina į Jums taip, tai kodėl atranka sort--
Aš duosiu jums, vaikinai, 30 antra galvoti apie tai.
Nes tai rūšies paini.
Ji apima tam tikras koncepcinis minties.
Kodėl Run kartų būti iš tos pačios tiek didžiausias ir mažiausias scenarijai?
>> Taip?
>> Auditorija: Kadangi atranka Rūšiuoti kiekvienas pozicija ar kosmoso šioje mažoje masyvo
dalykas ar kas.
Taigi net geriausiu atveju, net jei ji puikiai rūšiuojamos,
ji vis dar turi būti kaip, gerai, vieną.
Mano pirmoje vietoje Turiu vieną.
Ir eiti per juos visus.
Gerai, vienas yra mažiausias.
Ir tada jis eina vėl ir yra kaip, gerai, du
yra mažiausias visus dalykus.
Tačiau jis vis dar turi Tikrinti kiekvienas iš.
PROFESORIUS: Taip.
Taigi, pavyzdžiui, tegul tiesiog pasakyti Mes turime sąrašas jau rūšiuojamos,
masyvas vieno iki penkių.
Taip, kad Atrankos rūšių yra tai, kad jis eina per, jis pasitikrina šias dvi.
Tada ji patikrina tuos du.
Ir tada ji patikrina ir ji tikrina.
Jis saugo patikrinti juos visus, nepriklausomai nuo to, ar
tai tikrai rūšiuojami.
Nes tai tiesiog būdas rūšiuoti veikia.
>> Ir taip šis klausimas yra lyg konceptualus klausimas prašysime.
Kur pirma, jums žinau, ką atrankos rūšiuoti
yra, į dešinę, kad būtų galima atsakyti į klausimą.
Turite gebėti suprasti konceptualiai, kas vyksta.
Ir tada galite ją taikyti ir manau, gerai tegul tik įsivaizduoti blogiausią scenarijų.
Jie visi mažėjančia tvarka.
Kaip tai veikia tai?
>> Ką daryti, jei jis Didėjančia tvarka?
Jei jis jau rūšiuojami?
Kaip tai įtakos runtimes?
Ir tada pasirinkimas rūšiuoti, jūs pastebėsite, , kad ji iš tikrųjų nėra reikšmės.
Kadangi jūs patikrinti visus vertės, neatsižvelgiant į tai, kas vyksta.
>> Ir taip geri dalykai prisiminti.
Kodėl kai kurie rūšių skiriasi nuo kitų ir kaip geriausia ir blogiausio atvejo scenarijus
turėtų įtakos visi iš jų.
>> Aš ruošiuosi tikrai nukentėjo rūšių nes tai bus viktorinoje.
Taip.
GERAI.
Yra šešios minutės kairę.
Galiu paimti tris minutes klausimus.
Aš taip pat galima pakabinti aplink kaip 20 minučių po skirsnio
Jei norite užduoti klausimus, taip pat.
Ar kas nors tiesiog tikrai trumpas klausimai ar konceptualūs klausimai
jie neaišku dabar?
Taip?
>> Auditorija: Ar kalbate šiek tiek tiek apie Bitinis operatorių?
>> PROFESORIUS: Taip.
Taigi Bitinis operatoriai kažkas, kad jūs tikriausiai
gali tiesiog norite įdėti į savo lapą.
Taigi quickly-- nenoriu eiti per daug gylio
nes Harvardo, jų peržiūrą sesija, ją apdengė gana gerai.
Bitinis operatorius, yra penki iš jų, tiesa?
>> Yra tai, kuris yra x arba funkcija, ten Ampersand, kuri yra ir.
Vamzdis, kuris yra arba.
Ir tada jūs turite du skirtingų tipų pamainomis.
>> Jei aš tau dvi reikšmes, JEI Aš duodu jums, kaip, vienas ir vienas.
Ką tai galėtų įvertinti,?
Jei duodu jums teisinga ir tikra, tiesa?
Ką apie true arba false?
Vis tiesa, tiesa?
Nes ten yra arba.
Mes greičiausiai suteiks jums numerius.
Taigi nepamirškite, vienas lygu tiesa, nulis lygus klaidinga.
Ir mes galime suteikti jums šiuos dalykus ir paprašyti jus papasakoti, kas vyksta.
Harvardo apima jį per pirmas 10 minučių savo studijų sesijos
tikrai, tikrai gerai.
Taigi jūs vaikinai nori padaryti tikrai atsigręžti į tai.
>> Auditorija: Ar pisa5 bus ant viktorina?
PROFESORIUS: Ne
Negalima net pažvelgti pisa5 dabar.
Sunku.
Tiesiog nereikia net vargintis žiūri pisa5.
>> Tačiau, kaip kai kurių užuominų ir pasiūlymai, aš
siūlyčiau pradėdami pisa5 kuo greičiau viktorina yra daugiau.
Tai bus sunkiausia savaitę, bet tada jums vaikinai
bus perduota ją ant kalvų geležinkelių žalia ir šuniukai,
ir tai gerai.
>> Ši klasė gauna reikšmingas lengviau po penktos pset.
Auditorija: Darbo valandos yra sekmadienis, pirmadienis?
PROFESORIUS: Taip, taip, biuro valandos sekmadienis iki pirmadienio už pset.
Darbo valandos šįvakar esmės bus tik apžvalga viktorinoje.
Jei kas nori ateiti ir paklausti struktūra klausimas, mes būsime ten.
>> Imsiu gal dar vieną klausimą jei kas nors turi klausimų?
Taip?
Auditorija: Kai būsite apibrėžiantys mazgai, [nesigirdi]
Jei pasakyti mazgas žvaigždę ir po to toliau, automatiškai daro kompiuteris
suprasti, kad esate nuoroda į kitą rodyklė?
>> PROFESORIUS: Ne
>> Auditorija: Jūs turite relink jis [nesigirdi]?
>> PROFESORIUS: Taigi iš esmės konstrukto iš mazgo, atminkite,
tai kaip jums sukurti mazgas ir tada jūs turite žymeklį vadinamas toliau.
Visi jūs darote, yra turintys struktūra nėra.
Jūs turite priskirti kad žymiklis kažkur.
Taigi kompiuteriai nėra žinoti, ką jis daro dar.
Turite tikrųjų priskirti jį, kai kuriate savo susietą sąrašą.
Ir tai, kas iš esmės pset 5 bus.
Taigi ne apie rūpesčius bet tos dabar.
>> Auditorija: Taigi, mes nereikia per daug dėmesio nuorodą sąrašo, tiesiog
bendra koncepcija?
>> PROFESORIUS: Tik gana daug žetonų, eiles, nuorodą sąrašai, medžiai, maišos lentelės.
Tiesiog galės žinoti, kas jie yra.
Mes neketiname paklausti jums patinka nieko konkretaus
nes mes tikrai ne padariau pset kad apima, bet kad dar.
>> Taigi per dvi paskutines minutes prieš Aš jus išlaisvins nužudyti šį testą.
Gana daug, kaip, manau, apie tai, kaip kas jus vaikinai atėjau į šią klasę.
>> Aš atsimenu, kai dviejų savaičių šios klasės, kai kurie iš jūsų
praleisti tris valandas rašyti vandenį.
Kiek laiko užtruktų jus vaikinai rašyti vanduo dabar?
30 sekundžių, o gal?
Pagalvokite apie tai, kiek vaikinai išmoko.
AP yra tikrai, tikrai sunku objektas.
Nėra to abejonių.
Sunku, todėl niekas tyrimais.
Tai tiesiog sunku.
Ir tai visiškai gerai.
>> Ir aš tikrai didžiuojuosi, kad visi tapo taip toli.
Psets nėra lengva.
Jie daug laiko.
Jūs vaikinai, aš niekada paprašyti jus rašyti 15 ar Vigenere žaidimas ant pset.
Nereikia tik freak out apie tai.
Visa, ką mes išbandyti čia yra įvertinti Jūsų konceptualus žinių, taip pat
kaip kai kurie iš jūsų pagrindinių įgūdžių kodavimo.
Bandymas yra skirta tikrai nelengva.
Kaip, ji yra skirta jums nereikia gauti 100.
Jis taip pat skirtas jums tikriausiai negalės baigti 75 min.
Ir tai visiškai gerai.
Esu studentas save.
Aš žinau, aš nekenčiu jo, kai aš vaikščioti iš viktorinoje būti kaip šūdas.
Tai buvo tikrai sunku.
Tikriausiai kas vyksta happen-- ir tai visiškai gerai,
Aš sakau jums, vaikinai dabar.
Ant šių dalykų priemonės nėra didelės ne visiems.
>> Ir tiems iš jūsų, kurie buvo gauti, pavyzdžiui,
trise ant jūsų problema rinkinių, tai nereiškia, kad esate
ketinate gauti 60 proc šioje klasėje.
Jei jūs gaunate 60% dėl viktorina, kad ne
reiškia, kad jūs ketinate gauti D šioje klasėje.
Matome, ypač Aš, Tiems iš jūsų, mano skyriuje,
Matau, kaip sunku jums, vaikinai, visi dirba.
Ir aš sekti, kad.
>> Vaikinai bus gerai.
Nėra institucinė atmintis laimė ne semestro pabaigoje.
Kadangi visi Harvardo vaikai pasakoja jų draugai, OH, jums bus gerai.
Niekas sako jums, vaikinai, kad čia.
Taigi, aš turiu pasakyti jums, vaikinai, kad čia.
>> Vaikinai bus gerai.
Aš taip didžiuojuosi jumis visais vaikinai.
Bandymas bus sunku.
Studijų už jį, o po to tiesiog jį išmeskite.
Pasiruoškite išmokti naujų dalykų.
Ir valgyti saldainių.
Mes turime daug saldainių.
>> Gauti gerą nakties miegą.
Negalima miegoti, nes kad būčiau tikrai blogai.
AP yra logikos daug.
Jei nenorite miegoti, jūs negalite veikti, ir jūsų smegenys gali neveikti.
Ir aš būsiu čia per ateinančius 20 minučių, jei kas nors nori pakabinti aplink.
Vaikinai ketina jį nužudyti.
Sėkmės.