PROFESSOR: Nii päevakorda Sel nädalal ei ole nii palju kraami. Aga loodetavasti väga, väga kasulik ja asjakohaste kutid sel nädalal. Aga me ei kavatse kulutada võibolla 15, 20 minutit lihtsalt kiiresti rääkima umbes link nimekirja. Link nimekirju ei kavatse kaetakse kohta viktoriin. Nii et ehk oleks väga kasulik õppida natuke, mis see on. Me läheme kulutada suur Enamik tänapäeva osa läheb üle viktoriin null praktikas probleeme. Ja siis me salvestada võibolla 20, 30 minutit lõpus iga ikka küsimustele kellelgi on. Ja siis, viimasel viis minutit, ma lähen anda pump up kõne viktoriini. Te kõik tahavad olla siin selle eest. Sest see saab olema hea aeg. Kõik õige, et mõned materjali link nimekirja. Kuidas nad tavaliselt struktureeritud on teil on, mida nimetatakse sõlme, eks? Sa pead need asjad mida nimetatakse sõlmed, mis on struktuurideks. Ma lähen üle, kuidas luua sõlme järgmisele slaidile. Aga sisuliselt kõik seotud nimekirjad on on andmeid, et on nöörile koos läbi suunanäitajaks. Ja nii see eelis, meil kasutades ahelloend üle, ehk nagu massiivi, on asjaolu, et massiivi teil on vaja üks külgnevas ploki mälu kõik samas kohas, üks teise järel, et oleks võimalik on, et. Arvestades ahelloend, siis võiks on juhuslik vähe bitti mälu kogu arvuti nöörile koos suunanäitajaks. Ja see, kuidas sa oleks juurdepääs teabele mis tuleb üksteise järel Teine, pärast teisi ilma lihtsalt tohutu patakas mälu arvuti kuhugi. Ja nii on see üks peamisi miks me kasutame link nimekirja. Teiseks, see on väga lihtne dünaamiliselt suurust link nimekirja, sest massiivi, kui kuulutada massiivi, sul on teatud hulk raha. Oletame, et ma tahtsin luua massiivi 10 täisarvud. Ma luua massiivi 10 täisarvud, ja ongi kõik. See on 10. Ma ei tea, mida teha pärast seda. Kui ma tahtsin seda 11, ei saa seda teha. Kui ma tahan, et see 9, ei saa seda teha. Arvestades, et link nimekirja, võid lisada ja kustutada ja sisestada kuhu tahad. Võite dünaamiliselt suurust muuta struktureerida siin oma andmete struktuuri. Ja see annab meile palju rohkem lisada paindlikkust et meil ei ole tavaliselt on massiivid. Igaüks segi põhi struktuuri, kuidas link nimekiri on või miks me peame kasutama ühe üle massiivi? Jah, me läheme üle üksikasjalikult kuidas tegelikult luua üks. Aga see on lihtsalt selline üldises mõttes just nüüd. Cool. Ja nii massiivid on niidile koos need ilusad vähe asju nimetatakse sõlmedeks. Kõik sõlm on on teatud tüüpi struktuure. Pea meeles, et struct on kui sa tahad luua teatud tüüpi muutuja C, mis ei ole juba olemas, siis, kui programmeerija, võib tegelikult luua selle ise. Ja nii seda tüüpi andmeid struktuuri nimetatakse tipu tegelikult on meie poolt loodud, et ei kasuta C omal. Ja nii, et sa luua üks on teil päises typedef struct, mis ütleb koostaja ma olen umbes luua struktuure. Me läheme nime "sõlm". Ja sees me ei kavatse kuulutada muutuja, mis läheb salvestada väärtus. Ja siis me ka läheb on osuti nimetatakse "kõrval" mis viitab järgmise sõlme link nimekirja. Ja siis sa lõpetad selle ära lihtsalt korrates sõlme jälle nii koostaja teab, OK see on end minu struct. Ja nii sel viisil, et me oleme omamoodi luua armas väike massiiv selline asi koos hinna ja viidaga. Ja võite linkida neid kõiki koos neid viiteid. Nii et nad saavad igasugu olla nöörile koos ahelas. Cool. Kas sa kuuled, et natuke parem? Sihtrühm: Jah. PROFESSOR: Okei. Nii nii, et kui te poisid näevad, tüüpiline link nimekiri on struktureeritud on teil on head. Sul on peas väärtus, mis ei ole kusjuures märkida muul osuti. Aga see läheb osutavad, või viide teise sõlme. Sõlme pärast läheb viide sõlme pärast seda, ja nii edasi ja nii edasi kuni sa lõpuks tabas Aasta lõpus oma link nimekirja. Ja sa lihtsalt ei pea osuti seal. Ja nii, mõtle, kett, või isegi kui keegi teile poisid teha, ma ei tea, Nagu Fruit Loops kui sa olid väike. Sa oleks string neid koos ja neid kanda kaelas. Arvan, et see on täpselt sama asi. Sul on neid vähe asju, mida saab string koos sel hetkel üks peale seda, et üksteise järel see, ja nii edasi ja nii edasi kuni teil on kett andmestruktuuri mida saab kasutada siiski soovite. Nii nii, et seda oleksime tavaliselt sisestada või kustutada mis tahes sõlme link nimekiri on väga erinevad sõltuvalt sellest, kus see sõlm on. Niisiis, näiteks seetõttu osuti on alati osutades eriline väärtus, kui kustutad või lisada sõlme, soovite veenduda, et pointer on kõik osutavad õigeid asju. Nii et kui sa tahad potentsiaalselt sisestada Uue sõlme väärtusega üks sees sorteeritud link nimekirja, me kõik teame siin pildilt, et läheb minna vahel pea ja kaks, eks? Kuna üks sobib just seal. Aga kuidas me seda teha on kõigepealt dereferencing kursorit pealaest ja saates selle ühe. Aga me tuleme probleem siin. Kas keegi näha, milline probleem on, kui me esimest apparent kursorit pealaest üks? Mis probleem võib meil joosta, kui me püüame lisada seda, et ees meie massiivi? Sihtrühm: [kuuldamatu] PROFESSOR: Täpselt. Nii et siin on meil osuti, mis oli kord juhtides peast kaks. Aga kui sa lahti saada, et pointer, siis suunake see, et üks, nüüd ei tea kuhu minna, et leida kaks. Sest nagu ma enne ütlesin, et sul on hiiglaslik patakas mälu arvuti. Kõik need sõlmed võiks juhuslikult segamini igal pool arvuti. Ja sa ei tea, kuidas et minna leida seda. Ja et sa pead olema viiteid osutades kõik sõlmed lõpus. Või muidu, kui sa kogemata apparent üks ilma määramist väärtus esimene, sa oled lihtsalt kavatse kaotada kõik hiljem. Nii et me läheme teha on, siis oleks esimene soovid luua kursori sõlme soovite sisestada. Point see, kus te tahan lisada seda, ja siis hiljem sa viitaks pea tagasi ühe. Kas see mõttekas kõik siin? Hea. Mõtle seda nagu kett. Kui lisate kett, see on selline intuitiivne kuidas sa minna sisestamist, et. OK, nii et on tegelikult palju lühem kui ma arvasin, et see oleks, viie minuti Spiel lingil nimekirjad. Just nii kutid on põhiidee, mis see on. Siin on meil päevakorras viktoriin null. Ära lase seda hirmutada teid. Ma tean, et see on palju informatsiooni. See tundub väga hirmutav. Samuti on palju, ma arvan, CSC liiki mõisted. Asjad kuueteistkümnendsüsteemis stringid, suunanäitajaks, dünaamiline mälu eraldised on väga jube kõlav poolest. Aga me ei kavatse murda neid alla, teha mõned praktikas probleeme nii et kutid kõik on valmis seda testi. Kui paljud kutid on juba alustanud õpib? OK, kutid ilmselt tahad alustada alustanud kohta, et kuna viktoriin on homme. Või Neljapäeval mõned teist. Jah, nii me läheme üle mõned praktikas probleeme. Kui kutid kõik tahavad võtta välja paberilehe, pliiats. Me läheme lihtsalt veeta Enamik tänapäeva osa läheb üle mõned, et nii teiega on idee, mida oodata on viktoriini. OKEI. Paar logistika rekvisiidid samuti, et keegi kes ei ole sellele seosele seal vajaduse te lähete cs50.yale.edu, esi Sellel lehel on link mis ütleb, et "About viktoriin Zero." Link viib sind kohale. Kui te ei ole lugenud, siis loe seda. Sest ta ütleb teile tõesti oluline teavet viktoriini. Ma lähen tõmmake see välja et lihtsalt sellepärast, füüsiliselt, kui te poisid ei tea, kus minna, meil on probleeme. Ja kui sinu viimane poolest A N, minna õigusteadust õppima auditooriumis. Ja kui sinu viimane algab P Z minge Davies Auditorium. Ja see kehtib ainult inimesed kolmapäeval osa. Kui te võtate viktoriinis Neljapäev, lähete SSS 114 kus oma loengu tavaliselt on. Sihtrühm: [kuuldamatu] PROFESSOR: O Z, sa lähed minna Davies auditooriumis. Ma lähen seda muuta, eks? Ah jaa, sa lihtsalt ei suuda automaatselt. Oh yeah, see oled sina Christa. Jah, minu halb. Yep, O-Z, sa lähed minna Davies Auditorim. Ma lähen seda parandada, kui ma üles laadida. Jah. Ja siis ka midagi oluline meeles on see, et kolmapäeval, kui teil on ametlikult õpib kolmapäeval osas Te peate viktoriin kolmapäeval. Ja kui sa oled registreerunud neljapäeval Te peate viktoriin neljapäeval. Ja see on ajal klassi aega. Kui ma arvan, et see on nagu 1:00, et 02:15 kolmapäeviti ja 2:30-03:45 neljapäeviti. Kui teil on vastuolus konflikte, Dean vabandusi on ainus asi, Kahjuks me ei võta. Kuna meil oli Valdav enamik taotlusi lülituda kolmapäevast kuni neljapäevani. Mida me ei saa au, kui meil Dean soovile. OKEI. Nii et enne kui me Alustamiseks kohta Paar praktika probleeme, Ma lihtsalt minna üle Andy kasulikke nõuandeid edu. Te, kui õpid, siis tõesti tahad harjutada kirjutamist kood käsitsi. Esimene kord, kui ma kunagi võttis CS viktoriin, ma ei olnud Praktikas kirjalikult kood käsitsi Enne ja see oli väga šokeeriv juures, kui raske oli. Kui poisid ei satuks harjumus kirjutades välja kõik, tegemist väga loomulikult on võimalik on automaatselt täita Sulgudes ja semikoolonid seal. Kui sa kirjutad seda käsitsi, mõnikord on väga lihtne unustada semikooloniga, või unustada sulgeda klambri või unustada sulgeda koolon, või midagi sellist. Nii et kui sa kirjutad koodi käsitsi see on hoopis teine ​​tunne. Nii kutid, kui te töötate läbi mõned praktikas probleeme, see oleks hea tõesti harjutada täna. Või homme, ma arvan, kui sa oled võttes viktoriini neljapäeval. Teiseks, meil on viimane, nagu, Kaheksa aasta väärtuses tava viktoriinid online. Tänavune viktoriin tõenäoliselt väga, väga sarnased neile kõigile. Nad on kõik väga sarnased. Sa mingi sattuda stiilis tüüpi küsimused et me küsime, millist tüüpi funktsioone, mis me kirjutada seda, jne, jne. Nii, et võta praktikas viktoriinid, eriti tähtaegu. 75 minutit teha viktoriini on mitte palju aega. See on väga, väga pikk. Ja nii kutid tõesti veenduda, et kutid on harjumus kirjalikult kood käsitsi kiiresti. Sest sa ei taha, et esimene aega, et näha viktoriini selle pikkus olla oma viktoriini. Te tõesti soovite veenduda et sa harjutada varem. Neljandaks soovite vaadata loeng ja osa slaidid. Sa ei pea meelde asju. Tegelikult kõik on võimaldanud üks valge paberileht märkmeid, ees ja taga. Te ei kirjuta ega kirjutada. Kui sa leiad ennast vajavad meelde midagi, pane see maha, et lehed. Ma garanteerin, sa ei taha ummikus keset seda viktoriini on nagu, oh yeah, milline on Runtime sedasorti versus et omamoodi. Lihtsalt pane see alla ja kopeerida otse oma märkuse lehel. Siis saab tegelikult lihtsalt kasutada oma aju mõtlema probleeme selle asemel, et meenutada fakte. Ja nii tõesti ära mis tahes niši üksikasjad mis sa arvad, et sa pead meelde, sulpsti ta maha läbivaatamise lehel. OK, küsimusi logistiliselt seoses viktoriin Enne kui me alustame mõnda viktoriin probleeme harjutada? Jah? Sihtrühm: Mul ei ole olnud võimalust vaadata viktoriin [kuuldamatu] kuid see saab olema taotlus enamasti, või on seal ka saab olema, nagu teadmised küsimusi? PROFESSOR: See on palju. Nii, nii, et ma oleks kirjeldatud viktoriin on-- panin kokku mõned praktikas probleeme et ma tõmmatakse kõik viktoriinid. Aga näed, et seal on kaks peamist tüüpi küsimusi küsime. Üks on väga madal detail kraami. Anname väikese tüki koodi ja öelda, kas on viga siin? Mis oleks väljatrükk siin? Mida see kood toota, jne. Nii väga madal informatsiooni üksikasju. Ja Tagakülg, me peame väga kõrge teadmistepõhise küsimusi. Kas oskate selgitada, millised vahe binaarne otsing ja lineaarne otsing on? Miks me tahame, et kasutada üksteise peal? Ehk, mis on GDB? Miks me tahame kasutada GDB? Kõrgem tase, põhjalikumaid arusaamist küsimusi. Nii näete segu kaks neist oma viktoriini. Midagi muud, enne kui me pea otse sinna? OKEI. Sihtrühm: Veel üks. PROFESSOR: Oh, veel üks. Vabandust. Sihtrühm: Jah, see kõik on õige. Nii et sa räägid 75 minutini liiga lühike, nagu see on ebatõenäoline et me lõpetame? Või nagu, 75 minuti on täpselt nii palju aega kui meil oleks vaja, kui olime nõuetekohaselt ette valmistatud? PROFESSOR: OK, nii et Viktoriin on keeruline. See on kindlasti raske. Leiad ennast vähe aega. Sa oled ilmselt läheb löögi, nagu 10, 15 minutit minna, ja on nagu pask. Olen nii palju ära teha. Ja see on täiesti korras. Igaüks läheb tunnevad samamoodi. Lihtsalt olla väga teadlik kui palju aega teil on. Ja nii see on põhjus, miks ma ütlen teile poisid tava viktoriine. Sest see tõesti annab hea tunde mida viktoriini saab olema sarnane. Nii et kui sa leiad end seda võimalik lõpetanud tava viktoriinid hea summa ajal, saate tempo ise ka, siis ei ole probleemi Kolmapäeval või neljapäeval. Cool. Nii et kui kõik wants-- ma arvan enamik inimesi on paberilehte välja juba. Ma lähen oma olemuselt lihtsalt teile proovi küsimused, teile poisid, nagu, et paar minutit teha neid. Ja me läheme üle klassina Mis vastused need on. Nii et see on väga tüüpiline alguses küsimuse küsime me küsida, lihtsalt konverteeriva numbrid erinevate alustega. Binary, kui kutid Meenuta, on alust kaks. Decimal on alus 10, või mida me kui inimestel tavaliselt tõlgendada. Hexadecimal on alus 16, mis on null üheksani samuti läbi F. Nii et neli numbrit ma olen küsib kutid teisendada siin. Ma annan sulle meeldib, kolm kuni neli minutit läbi mõelda me läheks umbes selle lahendamise. Sihtrühm: Kas me lubada kalkulaatorid? PROFESSOR: sa ei vaja kalkulaatorid, yeah. Ma arvan, et põhi Lisaks, ma arvan, on kõik kutid palutakse teha. Ja just nii ma selline on tunne ja kui kõik on tehtud, otsida, laine, ma ei tea, naeratus, otsida hea meel, kui sa oled teinud. Jah. Võib-olla veel paar minutit. OK, olgem viia see. Ma sihilikult läheb teile poisid vähem aega kui sa ilmselt vaja teha mõned neist probleemidest, lihtsalt sellepärast, et ma tahan veenduda, et saame läbi hunnik probleeme. Nii ei muretse, kui sa ei ole on võimalus lõpetada. Täiesti OK nii kaua kui on idee, kuidas edasi minna. Nii saab minna ja teha esimene. Nii esimene, keegi ei taha mulle öelda binaarne, mida teha kõigi nende numbrit esindada seoses nende väärtused? Jah? Sihtrühm: Kaks kuni power null, kaks ühele. PROFESSOR: Täpselt. So. Õigus, et tavaliselt kui me oleme base 10 kõik need esindavad on, nagu, 10 baasi null, eks? See on sinu oma koha. Kõik teie 10 koht on on 10 võimu üks. Sa 100 koht on 10 võimu kaks. Ükskõik baasi oled läheb teha täpselt sama asi, lihtsalt teistsuguse baasi. Nii binaarne, kõik, mis on on alus kaks. Sa lähed, et muuta kõiki numbrit kaheks iganes võimu Selle numbriga. Ja nii selles mõttes, me võib olla lihtsam viis on võimalik liita või Kokkuvõttes kõik numbrid, et teisendada baasi 10. Nii ei keegi taha mulle öelda, mida Vastus esimesele baasis kümme? Sihtrühm: Two, [kuuldamatu] PROFESSOR: Jah. Sihtrühm: 42. PROFESSOR: 42, et te lähete. Nii, kuidas me saime selle vastus oli poolt tehes kaks esimest, mis on kaks. Plus kahe kolmas, mis on kaheksa. Plus kaks viienda, mis on kõik, mis on üle jäänud. Sa Kokkuvõttes neid üles ja see on 42. Kas keegi segaduses, kuidas me saime seda? Nii põhjalikult Lisaks, nagu Ma ütlesin, siis peaks olema OK. Kui ei, noh, saame harjutada, et liiga. Aga see on kõik õige. Cool. Kas keegi taha mulle anda vastus teine ​​ka? 50? Väga hea. Igaüks segaduses, kuidas saime, et kas? Cool, ma oleks vastused järgmisele slaidile. Nii ei muretse, kui sa vaja kopeerida selle alla. OK, nii kuueteistkümnendsüsteemis on veidi keerukam. aga ma lähen näitan teile poisid otsetee, kuidas seda teha. Nii kuueteistkümnendsüsteemis, kui mäletan, kõik see on olla 16. Ja kuna me nagu inimesed tegelikult ei on 16 numbrid tähistavad, et läheme nullist üheksani, mis meie esimene 10 väärtustega ja siis teeme läbi F, mis on järgmise kuue väärtusi. Ja nii on kõige lihtsam viis minna mis tahes binaarne number kuueteistkümnendsüsteemis on murda neid pooleks. Ja nii igal kahendarvuna anname siis ilmselt kaheksa numbrit. Sa võid murda neid keskel. Nii et esimene one-- üks ühele, üks ühele üks, üks, üks ühe. Kind of arvan, et see üles, sa tead, joonistada kaldkriipsuga või koma nende vahel. Ja sa võid teisendada otse mis tahes see on esimese arvu kuueteistkümnendsüsteemis, ja mis iganes on siin Teise kuueteistkümnendsüsteemi. Nii mäletan ühise märke, Mida kuueteistkümnendväärtused alustada? Sihtrühm: Zero. PROFESSOR: 0X. Nii et me teame, et iga kord, kui me palume teil teisendada iga numbri kuueteistkümnesüsteemis või igal ajal näete number, mis algab 0x, sa tead, et see on kuueteistkümnendväärtus. Ja siis sa lähed palutakse otsustada, milline neist kahest numbrist on. Ja kuidas sa seda teha, häälte lugemise up et pool ja häälte lugemise up, et pool. Nii selles näites, mida peaks üks, üks, üks, üks olla? Mis väärtus oleks? See oleks F, eks? See oleks 15. Nii et see oleks F. Üks, ühe, üks, üks on siin ka F. Nii ühe, üks, üks, üks, üks, üks, üks, üks kuueteistkümnendsüsteemis, kõik see on on 0XFF. Kuna see pool esindatud F väärtus 15, ja seda pool esindatud F väärtus 15. Sest mäletan, et me oleme arvestades nullist üheksani. A on nagu 10, B on nagu 11, F 15. Kas see mõtet igaüks, kuidas saime binaarne et kuueteistkümnendsüsteemis? Sihtrühm: Ja nii kuidas saame 15 ühest, ühe, üks, üks? PROFESSOR: Jah, see on binaarsed, eks? Kujutage ette, et see on lihtsalt binaarne number. Nii et teil on kaks kuni zeroth, mis on üks. Sihtrühm: Oh, OK. Nii et sa lihtsalt kokku saada. PROFESSOR: Jah, ja siis sa lihtsalt kokku, et välja. See on kõik see. Sihtrühm: OK. PROFESSOR: OK. Sihtrühm: Nii et sa minna binaarne numbriliste et kuueteistkümnendsüsteemis? PROFESSOR: Ongi Lihtsaim viis seda teha, jah. Sa ei kavatse koma kuna koma ainult nullist üheksani. Oleme vaid mingi jagades selle kaheks. Sihtrühm: [kuuldamatu] kasutades koma leida mida see sobib kuni kuueteistkümnendsüsteemis. PROFESSOR: Ma mõtlen, et sa oled häälte lugemise up kasutades põhilised matemaatika. Sihtrühm: Jah. PROFESSOR: Jah, päris palju. See on natuke segane. Aga tean, et sa saab jagada iganes see väärtus on võetud lihtsalt pooleks. Vaata, millised on selle kahendsüsteemis? Mis number see on? See saab olema midagi nullist F. Siin on ka kavatse olla midagi nullist F. Ja siis saate lihtsalt panna Nende kahe seal. Sihtrühm: OK. PROFESSOR: Yep. OKEI. Nii kutid tahavad proovida järgmise siis? Null, üks, null üks, üks, null, üks null. Ma annan sulle sinusuguseid 30 sekundit, sest sa ilmselt ei tea, trikk, kuidas seda teha varem. OK, keegi taha see pihta? 0x5A. PROFESSOR: 0x5A. 5a. Väga hea. Nii et see siin oleks olla-- soovid meile öelda, kuidas sul on? Esiteks, kuidas sa said viie? Sihtrühm: Kuna null, üks, null, üks on viis. PROFESSOR: Kas igaüks aru miks null, üks, null, üks on viis? Sul on siin. Sul pole midagi kahe esimese. Kahe teise, siis on üks, mis on neli. Nii et sa lisada neli pluss üks, sa pead viis. Igaüks hea? OKEI. Ja siis mis see oleks ja miks? Mis number teeb vastavad? Sihtrühm: 10. PROFESSOR: Ja mis seda baasi kaks? Sihtrühm: [kuuldamatu] PROFESSOR: Täpselt. Nii et see teine ​​väärtus oleks siin 0x5A. Igaüks hea, kuidas teisendada? See on palju lihtsam kui sa arvad, et on. Ma lihtsalt tahan veenduda tead kasulikke näpunäiteid ja nippe, kuidas seda teha. Sihtrühm: Miks sa lihtsalt jagada see keset niimoodi? Lihtsalt olla nagu, OK, ma olen ainult kavatse hooli neist esimene [kuuldamatu]? PROFESSOR: Sest see on tegelikult kuidas kuueteistkümnendväärtused on esindatud. 0X, et tegelikult tähendab midagi muud kui ütlen teile et see on kuueteistkümnendsüsteemis number. Ja see esindab alati esimesed neli numbrit. Ja see esindab alati Viimase nelja numbrit. Ja nii need kaks numbrit lihtsalt vastavad erinevatele bitti. Sihtrühm: Nii me always-- PROFESSOR: Sa oled alati hakka kaheksa väärtus bitti. Sihtrühm: Kas see on just nagu asi siin või et asi üle? PROFESSOR: See on lihtsalt asi arvutid, eks. Sihtrühm: OK. Awesome. PROFESSOR: Ka nii selles näites me ümber binaarset numbriliste, ja binaarne et kuueteistkümnendsüsteemis. Te soovite, veendumaks, et ka harjutada läheb teistpidi. Nii et kui ma sulle andsin 0XFF, siis võiks juhtida, et välja binaarne, eks? Sa teisendada F binaarne, mis on üks, üks, üks, üks, teisendada F kahekomponentsete, mis on üks, üks, üks, üks. Nii me võib paluda teil teha teistpidi. Nii koma kahekomponentsete või kuueteistkümnendsüsteemi kahekomponentsete. Nii et sa tahad teha kindel, et tead nii moodi. Me ilmselt küsida nende kahe kombinatsioon. Jah, teil on küsimus? Ma ei see-- sa oled hea? Sihtrühm: Jah. PROFESSOR: OK. Kas ma olen hea tühjendada? Hea. Olgu, nii vastuseid siin, kui keegi Huvitav on hiljem ja segane. OKEI. Sihtrühm: Kas see, kui me paneme Meie tähed Capitol või väiketähed? PROFESSOR: see, sest kuueteistkümnendsüsteemis Tavapäraselt kõik märgid on suurtäheks. Nii A-F on saab olema suur-. Kui paned väiketähti a, ma ei tea kui me oleks tingimata märkida, et see vale. Aga teoreetiliselt see ei ole tehniliselt kuidas sa peaksid olema see. Nii nad peaksid olema suur-. Jah, hea küsimus. OKEI. Teine küsimus. Mõtle see armas programmi siin. Ma küsida, Ma tulen tagasi selle. Niisiis, esiteks, mis sees on standard io.h see huvi programmi? Teiseks, mida tähendab tühine tähenda kooskõlas kolm? Ja kolmandaks, mida ei naasmist null alates Peamine, sest line kuus, üldjuhul tähendama? Kui te tahate kirjutada neid maha, sest mul minna tagasi slaidile lihtsalt nii näed koodi. See on näide, nagu, võibolla kõrgema taseme küsimus, kus me palume teil Mis asjad tähendavad programmi. Igaüks hea minu jaoks tagasi minna slide? OK, lahe. Nii et ma annan sulle sinusuguseid võibolla kolm minuti vaadata seda üks reaalne kiire. OK, nii et see on nagu suhteliselt lihtne, kontseptuaalselt. Kas keegi taha mulle öelda, mis on Esimene sees räsi sealhulgas Meie standard io.h raamatukogu faili? Miks me vajame, et raamatukogu sisaldub selle programmi? Mis siin me vajame seda? Jah? Sihtrühm: Kas see, kui paned et printf? PROFESSOR: Täpselt. Nii printf, iga kord, kui võtta kasutajalt ja printida midagi ekraani, mis on standard sisend, väljund raamatukogu. Mõtle sellele, et way-- sisend, väljund. Kas mul on väljund? Jah. Nii et ma tean, et ma olen alati saab vaja STANDARDIZE i.o raamatukogu. Nii printf on funktsioon mille peame juurde ja hashtag hulka standard i.o raamatukogu. OKEI. Teiseks, see, mida ei void tähendama? Meil on int main (void), mida ei void siin mõtlen siin kolmandal liinil? Jah, taga. Sihtrühm: [kuuldamatu] PROFESSOR: Täpselt. Seega pidage meeles, me oleme õppinud alustades meie pset et saate tegelikult määrata käsureal argumente, et oma programmi, et sa põhifunktsioon, võtab nii teile kui kasutajale, kutsuda. Kui meil on tühine, mis tähendab, et sa võiks lihtsalt käivitada programmi otse ilma käsurea argumente. Igaüks selge, et? OKEI. Ja lõpuks, miks me vaeva teed see tagasipöördumine null asi siin? Miks me isegi on int main? Miks ei saa me lihtsalt void main void? Jah? Sihtrühm: Just nii, et me saame olla kindel, et programm on väljumisel edukalt, kui vastandina kui see oli nummerdatud. Ja me teame, et see on teistsugust viga. PROFESSOR: Jah, täpselt. See on lihtsalt väga tavalised asi, mida me teeme, on see, et lihtsalt lõpus oma programmi, lihtsalt veendumaks, et et oma põhifunktsiooni töötab korralikult, Oleme alati tahtnud teha vastutasuks null. Kuigi me võib tingimata ei näe, et trükitud pool. Sest nagu programmeerijad, sa tead, kui Teil on palju erinevaid ridu koodi ja sa ei tea, kus need on valesti, ja kui viga juhtub soovid veenduge, et saate selle vea. Ja nii tavaliselt, kui midagi läheb valesti me peame tagasi ühe lihtsalt veenduda, et me teame, et see on. Nii et kui te näete tagasi null, et tavaliselt tähendab, et teie programm on täideti edukalt. Hea? Cool. OK, teine ​​programm siin. Mõtle seda. Ja kui te poisid näha float, kutid ilmselt on hea idee, mida Ma olen umbes küsida. Nii et kui see programm täidab, nagu näete, Olen kuulutab float sees minu peamine funktsioon. Ma nimetades seda "vastata," ja ma panen mis võrdub ühe jagatud 10. Ma väljatrükk, et üks kümnendkohani et sularahaga. Ja siis ma tagasi nulli. Nii et kui täidesaatva programmi arvan, et tagasi ahne nüüd, Selle programmi prindib 0,0. Nagu me kõik teame, loodetavasti kõik tea, üks jagatud 10 ei ole 0.00, see on 0,1. Aga miks see programm mõtleb et 1 jagatud 10 prindib 0,1 teisi kui 0,1? Ma annan sulle poisid äkki nagu 30 sekundit lihtsalt kiiresti mõelda, et ja ma lähen tagasi programmi. OKEI. Igaüks taha anda talle süsti? Kolmes lausete või vähem, sest tavaliselt oleme läheb piirata kõik vastused kuni kolm lauset või vähem nii et sa ei saa lihtsalt Tuletab juhuslikult asju peale oma viktoriini. Jah, võta maha. Sihtrühm: Nii et ma arvan, et see asi nimega, nagu, [kuuldamatu] Nii võib esineda näiteks seal võiks olla, nagu, 0.09, et kui sa printida esimene kohaline oleks 0,0? PROFESSOR: Sule, mitte päris. Christabell? Sihtrühm: Sa jagamisel ühe ja 10 ja nad mõlemad täisarvud. Ja nii, et see läheb ladustada seda on täisarv. Ja nii lähima täisarvuni oleks 0,0. Ja nii see on 0,1. PROFESSOR: Jah, see on tõesti hea. See on õige vastus. Nii et see on väga segane kontseptsioon palju lapsi. Ja ma tõesti tahan veenduda, et seda võimendab igaühe peas. Nii, mida me kutsume ujuvad punkti ebatäpsus, kui põhjuseks, miks paljud oma programmides ahne ei tööta algselt oli, sest unustasid enamus oma muutuv. Mis Christabell ütles oli täiesti õige. Ujuk on oma olemuselt ebatäpne. Kuna arvutis, eks meil piiratud kogus bitti mälu saame kasutada esindama arvu. Nii näiteks seda CS50 ID on-- Ma arvan, et see on 64-bitine arvuti. Ujuk saab esindatud poolt piiratud kogus neid bitti. Ja nii 0,1 lõpmatu nullid, See on olnud 0,1 on, eks? Kuid me ei saa tegelikult salvestada et number meie arvuti. Me lihtsalt ei ole piisavalt mälu seda teha. Ja nii lähima ühtlustamise kohta Mis on mällu talletatud on tegelikult midagi 0.000 midagi, midagi, midagi, midagi. Kumb, kui sa kärbi see, ümardab allapoole 0,0. Ja nii see näide on vaid üks mis näitab, palju küsimusi meil, kui me oleme püüab valesti teha matemaatika heitmata kui teist täisarv. Nii lihtsalt olema ettevaatlikud seda juhtub. On viktoriinid, kui anname ploki koodi ja see on nagu, Mis prindib lõpus? Ja kui see on mingi suvaline väärtus teil poisid peaksid teadma, miks see juhtub. Jah? Sihtrühm: Lühenda on vabaneda kõik pärast teatavat? [Kuuldamatu] PROFESSOR: Jah, nii tegelikult see on tõesti halb näide, kuna 0,100 iganes tegelikult oleks tömp alla 0,1. Aga kui sa olid joosta see-- ma ei mäletan, sest eelmisel aastal nad jooksis ta teistsuguse programmi. Nad jooksid seda midagi, mida nimetatakse CS50 Appliance, mis erineb ID. See oli 32-bitine süsteem, ma arvan. Ja nii seal olid erinevad numbrid. Aga põhimõtteliselt, lihtsalt tean, et kogu kontseptsioon kärpimise ja kuidas see lihtsalt lõikab asjad ära. Ja kui see rounds-- Sihtrühm: Ilma ümardamisest. PROFESSOR: Täpselt. Jah. Cool. Hi, taga. Me elame üle mõned viktoriin läbivaatamise küsimusi. Hästi. Nii leiavad erinevat programmi siin. Ma annan teile poisid Paar minutit lugeda üle selle. See on midagi, mis oli väga hiljuti, et ma arvan, puhus palju sa poisid mõtetes. Aga me ei kavatse rääkida läbi selle jälle lihtsalt veenduge mõista seda täielikult. OKEI. OKEI. Igaüks on vaja rohkem aega, et loe läbi see kood? OKEI. Seega tundub mulle, et Selles programmis ma olen luua kaks stringi abil getString. Üks kutsutud s ja üks nn t. Ja kui nad võrdsed võrdub üksteisele see peaks printida "Sa sisestage sama asi. " Aga elsewise oleks printida, "Sa trükitud erinevaid asju, "eks? Tundub väga lihtne. Aga siiski, kui ma tegelikult proovida kirjutada selle programmi, tundub, et isegi siis, kui ma input täpselt sama stringid, see ikka prindib välja, "Sa trükitud erinevaid asju! " Kas keegi taha võtta tulistas miks see programm alati vastab, et sisendite on erinevad, isegi kui sõnad ise on samad? Nii et kui ma oleks input-- David armastus kasutada näiteks nagu ema, eks? Väiketähed M-O-M S, T võrdub väiketähed M-O-M. Kui ma jooksin seda läbi Selle koodiga, siis miks ta välja printida "tipitud erinevaid asju?" Kas keegi on vaja rohkem aeg mõelda sellele? OK, ma arvan, et me oleme head. Jah? Sihtrühm: OK, nii et see on midagi kus see salvestatakse mällu, eks? PROFESSOR: Yep. Sihtrühm: Kus see on nagu, kui see string s hoitakse mälus spot-- Ma leiutas see-- on null. PROFESSOR: Muidugi. Sihtrühm: Ja string t hoitakse mälus kohapeal jms, 167, ja seejärel null ei võrdu 167. PROFESSOR: Täpselt. OK, nii et pidage meeles, see uskumatu ilmutust selgitasime kutid Möödunud nädalal, et stringid ei ole tegelikult olemas? Kui me luua midagi, mida nimetatakse string me tegelikult luua midagi, mida nimetatakse char star. Mis kõik on on viit string või array tähemärki. Ja nii selles Näiteks, kui ma olid sisestada M-O-M tee et minu arvuti ei säilita seda on jooksul mälu kurakriips null, eks? Need neli märki, sümbolit, oleks salvestatud kusagil. Ja siis need neli tegelased, kurakriips null, hoitakse kuskil mujal, eks? Ma ei tea, kus aadressid on, et nad on kusagil minu arvutis. Aga ma ei tea täpselt, kus nad on. Kui ma luua string s, kõik, mis tegelikult on on kursor alustada selle string. Ja kui ma luua selle t väärtus, kõik, mis on viit siin. Ja nii, kui sa üritad võrdsustama ning vaadake et näha, kas s on võrdsete võrdub t, arvuti on tõesti lihtsalt tagasi sa aadress seda m ja aadress, mis m. Ja kuna nad on kaks üksikdetailiga andmeid mis on salvestatud kahes erinevas aadressid arvuti, Arvuti kunagi tunne neid on sama. Kas keegi taha anda tulistas, mida me peaks tegema, kui me tahtsime, et parandada seda ja on õige töötava programmi asemel? Mõtle, et paar sekundit. Mida me vajame, et valida saaksin selle programmi toimimiseks kuidas me tahame seda toimida? Jah, tahan võtke torkehaav at seda? Sihtrühm: Kas me püüame apparent pointer ja vaadata läbi massiivi? PROFESSOR: See on üks viis seda teha. Nii, mis su nimi oligi? Mul on kahju, meenutavad mulle. Zee: Zee. PROFESSOR: Jah, mis siis Zee soovitas absoluutselt tööd. Õigus? Võiksime apparent kursorit ja tegelikult minna ja juurdepääs Füüsiline andme sees siin. Ja me saame lihtsalt võrrelda kogu ekraani. Me ei saa öelda, OK, pointer, mulle mis sees siin. Oleks tagastada m. Ja ma ütleksin, pointer, mulle mis sees siin. Tagastab m. Kas need mängu? Jah. Siis me liigume edasi. Hoiame kontrollida kogu kaks stringid kogu tee kuni lõpuni ja vaata, kas need on võrdsed, Kui kõik väärtused on võrdsed. Ja kui kõik väärtused on võrdsed, siis me teame, stringid on tõsi. Absoluutselt, see on, kuidas me seda teeme? Kas keegi segi kõik see? Kogu kontseptsioon, kuidas stringid on tõesti ainult viiteid, ja kuidas nad tegelikult ei eksisteeri? Ja miks me vead meeldib, kuidas me seda saada? Sest ma garanteerin teile poisid, viiteid ja string eraldamise ja mälu ei kavatse tulla. Jah? Sihtrühm: [kuuldamatu] apparent seda, sa lihtsalt panna star [kuuldamatu] PROFESSOR: Right. Nii et derererence osuti vahendid minna, et aadress pointer ja saada andmeid, väärtus on. Ja kuidas seda teha on star pointer. Ärge ajage seda. Sihtrühm: [kuuldamatu]. PROFESSOR: Jah. Sihtrühm: Nii saate lihtsalt kirjutada Kui täht s võrdne võrdsete star t. PROFESSOR: Noh, ei. Ei. Sihtrühm: See ei ole piisavalt hea, eks? PROFESSOR: Ei ole, sest sa oled kontrollime ainult esimene täht. Sa oled ilmselt läheb vaja mingi loop mis itereerib läbi iga iseloomu nii stringe. Jah. Nii et kui sa tahad lihtsalt vaadata kui nad alustasid sama asja, saate teha siis, kui täht s on võrdne star t. Siis sa tead, et need vähemalt algas sama tegelane. Jah? Sihtrühm: Nii teed sa ei oleks nagu need sisestati loop või osuti? PROFESSOR: Jah. Päris palju just for loop. Pea meeles, David klassis mainitud vaba süntaktiline suhkur? Ja tal oli see väga segane asi star t pluss üks, kus see hõlmaks läbi ja seda kursorit liigutada? Lihtsam viis selleks see on lihtsalt t i. Nii et see on lihtsalt massiivi. Nii, et siis oleks jaoks loop, mis jooksis nullist i, kus i on pikkus string, siis võiks lihtsalt kirjutada, et selle asemel, et teeme Kogu pointer, viidates asi. Nii need asjad on täpselt samaväärne arvuti. Te ilmselt ei pead teadma, et aga see on hea, et lihtsalt selline on taga meelt. Lihtsalt tean, et arvuti tunneb erinevaid plokke koodi sama asi. Sest see on lihtsalt palju rohkem kasutaja sõbralik meile esitada see nagu see on massiivi. See on lihtsalt lihtsam. Sihtrühm: Nii et kasutage strlen meeldib, get-- PROFESSOR: Jah. Sihtrühm: OK. PROFESSOR: Sa võiksid kasuta strlen, või kui teil ei olnud strlen saate lihtsalt teha kuni kuni te tabanud kurakriips null nii. Kas teeks. Jah. Sihtrühm: Nii see on, et apparent iga üks märk, kui me tegelikult kirjalikult Selle koodiga hoiame võiks lihtsalt teha t sulgudes i Nagu tähe ees on? PROFESSOR: Jah, võrdub võrdsete s sulg i ja seejärel liikuma i alla kuni jõuad lõppu. Jah, see on see, mida sa teeksid. Ja ma tegelikult on järgmine näiteks siis, kui me tegelikult kirjuta strlen nii kutid liiki ja saad mängida seda natuke. Nii on igaühel selge lihtsalt mälu, stringid, vihjeid, kvaliteet aadressid? Mõned kõrgema mõisted, mida te tahe kindel vaja teada, viktoriin homme. Hästi. Väga hea. Yep. OK, nii et üks asi, mida me ka küsida Teile, kui me teeme igal aastal viktoriin, on Oletame, et olete unustanud (mis me ilmselt unustada seda teha kord aastas) kus päisefail strlen on deklareeritud. Ja nii on meil kirjutada seda ise. Siin on nimekiri suunised et me saame esitada teile poisid, kus sa saad eeldada, et S string ei ole null. Võite eeldada, et s on lõpetatakse längkriipsuga null. Nii et sa tead, et see, mida see saab lõppeda. Ja näiteks, et pikkus hello oleks viis. Nii et sa ei saa eeldada, et hello saab viie, H-E-L-L-O. Sa ei pea eeldama, et tagaküljel null moodustab pikkusest. See viimane asi siin, ei muretsema täisarv ülevoolu. Kas keegi mäletab Mis täisarv ülevoolu on? Sihtrühm: ulatuslikum pikkus [kuuldamatu]. PROFESSOR: Jah, võib seletada natuke, mida see tähendab? Sihtrühm: Niisiis, ma arvan, et see läheb tagasi et kärbitakse näiteks varem. Aga kui sul on lihtsalt nii palju numbreid mis lähevad kaugemale bittide arv et saate tegelikult määrata selle et see lihtsalt mingi ära lõigatud. PROFESSOR: Jah, nii tüüpiline arvuti, kui palju bitte meil on? Sihtrühm: 32? PROFESSOR: Jah, 32, eks. Ja nii see on, mida neli miljardit kaks miljardit? Neli miljardit kuni neli miljardit positiivsed täisarvud, eks? Kaks miljardit negatiivne, kaks miljardit positiivne, sõltub sellest, kuidas sa tahad seda teha. Ja nii põhimõtteliselt saame piisavalt täisarvud, mis võib ulatuda kuni kaks kuni 31. miinus 1, eks? Sest kui me tabanud kaks kuni 32., me ei ole nii palju mälu meie arvuti. Ja nii teoreetiliselt ma võiks tulla mitmeid see tähendab, et umbes kaks kuni 46.. See on suur perse number, kuid Teoreetiliselt võid. Ja nii täisarv ülevoolu on, kui sa püüad luua täisarvu, mis läheb kaugemale arvuti on võimeline ladustamiseks. Ja siis poisid Selles näites ei ole muretsema meist annab sulle hiiglane string, mis on kaks kuni 32. tähemärki pikk. See oleks tegelikult tähendab. Olgu, nii et ma lihtsalt annan kutid põhistruktuuri seda. Sa lähed, et luua funktsiooni nimetatakse int strlen, kus Pass, süsi star, või string, kursor string nimetatakse s. Hea küll, igaüks kopeerida, et maha. Cool. Oops-- muul viisil. Nii et see on selline nagu raskem tükk probleem, nii et ma annan sulle poisid võibolla viis kuni kuus minutit, et selline ajurünnak ja kirjutada see funktsioon välja. Sihtrühm: Me ei konto [kuuldamatu] me ei pea kasutama täisarv? PROFESSOR: Ei, sa ei pea. Ma annan sulle poisid vihje. Aega loop võib olla suureks abiks. Jah. Siin kommi. Candy on saadaval ka viktoriini, ma arvan. Nii kutid on kõik sugared homme. Kas i-- sul see. Sihtrühm: OK. PROFESSOR: Jah. Võib-olla 30 sekundit või nii. Olgu, kui sa oled ei teinud, ei muretse. Me liikuda selles koos. OKEI. Nii et ma lähen lihtsalt paigutus põhistruktuur see funktsioon siin. Int strlen. Esiteks, kas keegi taha öelda mulle, mida see int tähendab? Me peame selle funktsiooni. Sihtrühm: strlen [kuuldamatu]. PROFESSOR: Täpselt. Mida iganes juhtub siin, Me peame taastama täisarv. Ja nagu on ette nähtud spec, tahame return-- Mine siis poisid muudkui läheb. See kõik on hea. Söö kõik, et ma ei ole võtma tagasi, tegelikult. Int lihtsalt tähendab, et sa oled kavatse tagasi täisarv. Mis on see char star s? Mida see tähendab? Sihtrühm: Like, mida kuramuse sisend. PROFESSOR: Täpselt. Ja mis on peaaegu sama asi nagu char star? Sihtrühm: String? PROFESSOR: Täpselt. Nii et kõik me teeme on anda see kursor string. OKEI. Cool. Samuti ärge unustage, kui me unustame teile need sulgudesse, ärge unustage, et kirjutada neid ise. Sest teoreetiliselt oma koodi vale, kui te unustate kirjutada. Lihtsalt alati tähelepanu pöörata. Nagu vähe asju et sa ei märka kui sa programmeerimine sülearvuti, sest laptop see sinu jaoks? Ära unusta, sa käega kirjutama. Jah? Sihtrühm: Aga kuidas vale? Nagu, me saame kogu probleem valesti? PROFESSOR: Ei, ei. Ärge muretsege. See on tegelikult teoreetiliselt võimalik teil saada täielikku punkte küsimus isegi kui teie koodi ei jookse kunagi reaalses elus. Ma soovitan teil ei püüa teha, mis juhtub. Näiteks nagu siis, kui kõik see siin on õige, kuid te unustate koolon või sulg, koodi tegelikult ei tööta. Aga me võime olla armuline. Jah? Sihtrühm: Kas sa pead kommenteerima meie käekiri? PROFESSOR: Ei, ei, ei muret, et. No kommenteerides. Stiil peab olema hea. Nagu, ei Smush kõik ühel real. Me ei ole rahul , kui sa seda teha. Kas keegi taha mulle esimene rida? Hint, see on väga lihtne. Jah? Sihtrühm: keskmine, n võrdub nulliga. Lihtsalt luua counter. PROFESSOR: Nii et me tahame mõned omamoodi counter, eks? Ma lihtsalt nimetada see "lugema" huvides loetavust. Mida me tahame, et seada see võrdub? Sihtrühm: Zero. PROFESSOR: Yep. Semikooloniga. See on ka väga imelik joonistus semikooloniga. Just harjutada seda tehes. Nii et me tahame kõigepealt counter-tüüpi int. Kuna me tahame loota kuni kuidas palju tegelasi või tähed Selles string, eks? Väga lihtne esimene samm. OK, võibolla natuke keerulisem Nüüd, kuidas me seda teha? Kas keegi taha anna mulle koodirida et võib-olla aitab loop läbi iganes see on? Jah, vapper hing taga? Sihtrühm: OK, nii et kui punkti tärnid on jah, täht s, ei võrdu nulliga, siis midagi? PROFESSOR: See on tõesti väga lähedal. Tõesti lähedal. Nii et ma pöördun kaks asja, et. Esiteks, see ei ole täpselt null. Mis on? See on null terminaator mis on kurakriips null. Nii nad erinevad selle kohta, kuidas need on salvestatud. Nii et sa oled tõesti lähedal. Ja teiseks, me ei taha lihtsalt kursorit liigutada. Me tahame, et tegelikult juurdepääsu väärtusi, eks? Ja nii, kuidas me seda teeme? Väga lihtne. Ära mõtle suunanäitajaks, ei mõtle mälestusi. Mine tagasi nädalal kaks selle kursuse. Sihtrühm: [kuuldamatu]. PROFESSOR: Alates, mäletad? Mis on stringid? Kuidas nad salvestatakse mällu? Sihtrühm: Nad tõstetud. PROFESSOR: Nad on tõstetud. Niisiis, kuidas me juurde iga märgi sees? Sihtrühm: [kuuldamatu]. PROFESSOR: Täpselt. Nii while-- mis toimub sees siin? S - Sihtrühm: I. PROFESSOR: Oh, ma ei ole, seda teeb? Sihtrühm: Oh, loota? PROFESSOR: Me ei saa lihtsalt kasuta arv, ei saa me oleme? Sihtrühm: Vabandust, ma helistasin ta i. PROFESSOR: Jah, see on kõik hea. Meil on varieeruv siin see on juba deklareeritud meie counter. Miks me lihtsalt ei kasuta seda liikuda läbi samas loop? Kas see on mõtet? Niisiis, kui s count-- keegi ei taha mulle, mis juhtub pärast siin? Sihtrühm: See ei ole võrdne. PROFESSOR: ei võrdu, eks? See on paugu võrdne, hüüumärk võrdne, mida iganes sa poisid tahavad nimetame seda ei equal-- Sihtrühm: [kuuldamatu]. PROFESSOR: Jah. Mäleta ülakoma on süsi, jutumärkide on stringi. Ole ettevaatlik, kui kasutate neid. Nii et kui me vaatame läbi massiivi, viimane märk, me teame, et me ei taha seda kurakriips null. Niisiis, kui. Me ei ole lõpus stringi. Mida me tahame teha sees? Sihtrühm: Tahame lisada counter nii ta loeb pluss pluss? PROFESSOR: Täpselt. Nii et siin me teeme loe, loeb pluss pluss. Kadunud veel üks rida. Me oleme peaaegu kohal. Mida me unustades teha? Sihtrühm: Tulles null? PROFESSOR: Sa tahad tagasi nulli? Sihtrühm: Ei, tagasi strlen. Oodake. PROFESSOR: mis on salvestatud? Sihtrühm: krahv. Loe. PROFESSOR: Täpselt. Nii et siin me läheme tagasi loota. Sest see, mis me oleme siin teed ultimately-- meil on counter muutuja, mis on läheb juurdekasvu meie string. Me läheme edasi minema, hoida läheb, ümber ja ümber selle silmuse. Ja kuigi me pole otsa selle string, mis on null terminaator. Ja iga kord, kui me minna läbi see lisame meie counter. Ja me läheme edasi koos selle massiivi. Ja lõpuks, kui me tabas null terminaator me teame, oh, saame murda, tagastab arvu. Meil on strlen. Kas igaüks saada, kuidas see viidi ellu? Kuigi loops-- Ma tean, et me ei ole teinud liiga palju nendega kuid nad tavaliselt väga, väga kasulik, kui teil ei tea, mida sa peatumata tingimus on tingimata olema. Küsimus? Sihtrühm: Kas me kirjutame null kohta, samas seisukorras? PROFESSOR: Kuigi? Jah, nii see probleem oli mul teile poisid eeldada, et s ei ole null. Sest mäletan, Teoreetiliselt, kui ma sulle andsin osuti, mis oli liiga suur mälu, see annaks sulle null, eks? Seda operatsioonisüsteemi süsteem teeks. Nii et kui ma ei saa öelda, et eeldada, s oleks null, siis on vaja vaadata. Nii siin, siis oleks, kui s võrdub võrdub null, tagastab ühe. Midagi sellist. Sihtrühm: [kuuldamatu] null. PROFESSOR: OK, ma ütlen miks me ei saa seda teha. Kuna mäleta mälu, eks siin. Me läheme siit. Sul on hiiglane plokid mälu kõike võrgud et salvestada erinevaid väärtusi, eks? Ja nii kõik stringi on-- eest Näiteks, kui me oleme sisestada hello, oleks H-E-L-L-O kurakriips null, eks? Ja siis kes teab, nagu juhuslik seda, mis on siin pärast seda. Me ei tea tegelikult, mis seal on. Ja nii, kui sa olid teha asemel langkriipsude null, null, ei pruugi see olla null. Sest see lihtsalt võib tähendada mingi suvaline muid asju mis ei kuulu teie string. Ja nii teed, et me alati teada, et string lõpeb ei längkriipsuga null. Ja nii see on alati, kuidas me vaadake lõpus stringi. Null, kõik see tähendab, kui teil on olematu pointer, esiteks, või kui teie mälu on lihtsalt nii suur, et sa ei saa tagastada, siis see oleks null. Nii et ole ettevaatlik, kui eristavat vahe null ja kurakriips null. Jah. Igaüks OK seda? OKEI. Pidin kutid kirjutada strlen. Feasibly võiksime küsida ka kirjutad välja A I, pea meeles, et "Atwoa" või mis iganes tahate seda kutsuda? See funktsioon Vigenere ja Caesar, mis teisendab ASCII väärtus täisarv? See on ka tulla mineviku viktoriinid Funktsioonide oleme palunud kirjutada. Päris palju tahes funktsiooni et oled kasutanud ja on väga lihtne kirjutada ise, andurid meeldi on madalam, on ülemine, alandada, ülemise. Funktsioonid, mis teisendavad stringi väiketähed suurtäheks. Me kõik teame, kuidas seda teha, eks? See on päris lihtne. Just soovite veenduda, et teil can-- see on sama mõtte protsessi. Sa lihtsalt korrata läbi ja pöörad asjad. Sa kas loota või kui lülitad asju erinevalt. Ma suggest-- ma ei tea, kas me läheme küsida meelde, mida kapitali A või kapitali Z või väiketähed A või väiketähed z on ASCII, kuid pakun võibolla kirjalikult, et alla juhul, me teeme. Just nii kutid on alles. Nagu suur- A, mida, 197? Ja siis väiketähed on nagu 50 midagi. 65, yeah, et te lähete. Nii lihtsalt päris palju teada Nende vahe on 32. See on päris oluline. Jah. Kas ma olen hea selles küsimuses? OKEI. Sihtrühm: Võiksime teoreetiliselt kirjutada mõned Nende alla ka meie little-- PROFESSOR: Sa teoreetiliselt võiks lihtsalt kopeerida funktsiooni alla. See on tõsi. Sihtrühm: Ei [kuuldamatu]. PROFESSOR: Te on lehel. Te ei märkuse lehel. Sa võid selle tippida. Võite kirjutada. Seda saab teha mida iganes sa tahad sellega. Jah. Nii teoreetiliselt kui tahad, minna. Sihtrühm: [kuuldamatu] aga me tõesti ei pea meeles väärtust, saame lihtsalt kasutada kõrgema või väiksem funktsiooni, eks? PROFESSOR: Jah. Aga kui me andsime teile küsimus mis ütleb, et kirjutada ülemine, siis oleks vaja seda kirjutada. Nii kutid võib eeldada, et sa poisid on juurdepääs kõigile funktsioonidele, aga kui sa tahad kasutada kõrgema või väiksem, mida sa ka teha? Sihtrühm: [kuuldamatu] kasutada CS50 [kuuldamatu] PROFESSOR: Kas CS50.h? Ole ettevaatlik seal. Nii peaks ülemine, alandada, on ülemine, on väiksem, funktsioone, mis hõlmavad string manipuleerimise on kõik asuvad kas ASCII või sees matemaatika raamatukogu või sees string raamatukogu. Nii et kui te poisid kasutavad neid funktsioonid olla ettevaatlik meeles lisada, et päise kaudu. Nii et ehk ka midagi tahan lisada oma lehele, Mis on päis? Millised on raamatukogud olete kasutanud? Mis funktsioonid sees need raamatukogud? See on tähtis. Jah? Sihtrühm: Kas me lihtsalt politseinik välja ja teha hashtag läbi absoluutselt iga kirja oleme kunagi näinud nagu kõik küsimused? PROFESSOR: Sa võiksid. Ma ei tea, kuidas õnnelik me ei kavatse olla hinne et viktoriin, kui iga tükk koodi on kaks korda nii kaua kui see peaks olema. Ma ei tea, me võiksime startida punkti stiilis. Aga teoreetiliselt oma kood oleks õige. Te võiks politseinik välja ja lihtsalt hõlmata kõike. See on hea ka, yeah. Sihtrühm: [kuuldamatu]. PROFESSOR: Jah. Pakun ei tee seda küll. Jah. Sihtrühm: Cool. PROFESSOR: Hea küsimus. Sihtrühm: Nii, halvimal juhul. PROFESSOR: Halvimal juhul. Kui teil täiesti unustada, sa võiksid seda teha. Jah. Yep, kood on seal. Ma kasutasin n asemel loota, kuid sa tean, mida iganes ujukid oma paadiga. Sihtrühm: Oota, nii et me ei pea hashtag hulka, sest me oleme algusega kell int? PROFESSOR: Jah, ma lihtsalt eeldada, et meil paluti kirjutada funktsiooni. Kui sa tahad olla ohutu, siis võiks ilmselt pani selle sinna. Aga ma lihtsalt ei viitsinud, yeah. Ma isegi ei tea, kas sa vaja raamatukogu seda. Sest sa ei ole tõesti trükkimine välja midagi või midagi, eks? Jah, ma ei tea, kas sa pead raamatukogu. OKEI. See on ka natuke rohkem mööda read mälu manipuleerimist. Selline veidi keeruline. Mõtle sellele. Sul on funktsioon nimega funkts. Ma oleks võinud selle nimeks mis iganes, aga ma valin nime funkts. Mul on see üle minu peamine. Pea meeles, et sa tahad olla Funktsiooni pärast peamist, sa tahad teha kindel, et sa lisada prototüübi top. Aga sel juhul see oli nii lühike et ma tundsin, et ma võiks lihtsalt lisada see pealüliti kohal. Ma ei pea olema prototüüp, sest see on juba kirjutatud eespool. Nii ma teen oma põhifunktsiooni loob täisarv x võrdub 10. Ma helistan minu funkts funktsiooni, ja siis saab printida midagi. Ja siis see on tegelikult Mis funkts teeb. Te taha mõelda selle kaudu. Sest see on veidi keeruline. See on väga, väga keeruline, tegelikult. Mõtle läbi, mida see Programm oleks väljastades. Ma annan sulle poisid kaks minutit. Hea arutelusid? Sihtrühm: Jah. PROFESSOR: Jah. Olgu, nii et see on keeruline põhjusel. Ja see on põhjus, miks ma tahtsin tuua see, et kõigi tähelepanu. Kas keegi taha mulle soovitus, püüdes? Mis oleks selle välja printida? Täiesti tore, kui sa eksid. Jah? Sihtrühm: Ma arvan, et see on 100 ja siis 10 kahe eraldi read. PROFESSOR: Ja 10? Kas kellelgi on mingeid muid oletusi? Jah? Sihtrühm: Võib-olla vaid 10, sest funkts ei naasmist midagi? PROFESSOR: OK, nii et me on vist number üks on see, et vist number kaks on lihtsalt läheb välja printida 10. Kas kellelgi on mingeid muid oletusi? OKEI. Nii Läbigem seda, eks? Kui sa saad tükk kood, ei ole lihtsalt vaadata ja olla nagu, ah, et on nii palju asju! Ma olen nii segaduses! Like, rahune maha. Lihtsalt tean, et sa võiksid lihtsalt vaadata läbi koodi rida-realt. See on kõik see. See on nagu raamatu lugemine. Nii iga funktsiooni, me alati alustada peamine. Nii et me läheme alustada int main void, isegi programmi juba alavääristama, eks? Alusta peamistes tühine. Int x võrdub 10. Nii et ma lähen tühjendada. Ma juhtida mälu just nii poisid võivad sellist näha, mis toimub. Pea meeles, siin on meil stack? Siin on meil hunnik kusagil siin. Stack kasvab üles, eks? Ja jooksul korstnat, sa pead vooluvõrgust toimib ka kõik vooluvõrgust kohalikud muutujad. Nii et siin, int x võrdub 10. Meie peamine ülesanne me oleme luues muutuja nimega x. Me seade, mis võrdub 10. Siin on sul mõned x, ja sa oled seade, mis on võrdne 10, paremale, jooksul peamine. Igaüks hea? Funktsioon. Nüüd, meie peamiste funktsiooni, me kutsudes funktsiooni oleme kirjutatud eespool. Nii et me nüüd sisestage teine ​​funktsioon. Me läheme luua uus muutuja int x võrdub 100. Mis toimub siin pakis? Mis juhtub, kui helistate funktsiooni, mis loob uusi muutujaid? Mis juhtub siin pakis? Sihtrühm: [kuuldamatu] vaiad peal? PROFESSOR: Jah. Nii see tegelikult loob koopia. Ja see omamoodi vaiad peal. Mõtle stack-- virna raamatuid, virna midagi. Kuhjad peal, esimene aasta välja, kesta sisse, esimesena välja. Nii see läheb luua x siin. See läheb on kõik funcs muutujaid. Hea. Nüüd on meil kaks erinevat x on, et esindavad kaks väga erinevat asja. Siis lähed printida välja täisarv x. Nii saab printida 100, eks? Sest siin on see 100. Nii et esimene asi, et see läheb välja trükkida. Kuna see funktsioon tagastab midagi, nüüd selle funktsiooni, et rida peamine tehakse. Igaüks hea minuga nii palju? Nii et me nüüd läbi kahe välja kolm rida meie põhiülesanne. Nüüd me ei kavatse kolmandal real. Me läheme printf. Mis see on x, mis peamine? Mida see esindab? Mis väärtus on x nüüd? Sihtrühm: 100. PROFESSOR: See on 100? Sihtrühm: Ikka 10. PROFESSOR: Ikka 10. Jah. Sest mäletan jooksul Meie funkts, x võrdub 100. Aga kui me naasta meie peamine ülesanne, muutuja on salvestatud teise kohta meie stack. Nüüd peame minema tagasi Peamised korstnat, toiteplokk kohalikud muutujad. Ja siin x on võrdne 10. Ja nii me läheme välja printida 10. Nii ta oli täiesti õigus. Me läheme on väljund 100 ja 10. Jah? Sihtrühm: Kui malloc, on see hunnik või virna, mis on [kuuldamatu]? PROFESSOR: Kui malloc, te võtate mälu hunnik ja selle eraldamine. Nii et sa ei pea jama kõik see. Nii et ma arvan, et suurem Buffee Siin on midagi, mida nimetatakse ulatuse. Neile teist, kes olid läbivaatamise istungil eile õhtul, me rääkisime põgusalt seda. Ulatus määrab, kuidas ja kui teie muutujad olemas. Või millises raamid teha oma muutujad olemas. Päris palju rusikareegel üldiselt on oma variables-- kui loote neid sees lokkis braces-- need on olemas ainult sees need looksulg. Nii näiteks meie funktsioonina funkts, näete neid kahte traksid. Kui loote midagi sees on, võimalused on kõik, mida sa teed on luua pinu ja hoidmine, et seal. Sama asi on peamine. See on lihtsalt salvestatud sees peamine. Ka sa tahad olla väga, väga ettevaatlik siin. Kuna ulatus ka laenab ise erinevaid näiteid. Nii näiteks võtta loop, et int i võrdub 0. Ma alla, ma ei tea, 10. Ma pluss pluss. Ja sul koodi sees on, eks? Kuhu see muutuja, i, tegelikult ainult olemas? Ainult sees oma silmus. Nii et ma võin kihla vedada, et paljud teist poisid on ilmselt tekkinud see viga sa teed programme oma psets. Kui paljud kutid on püüdnud kasutada i väljaspool silmus ja oli viga? Nagu unreferenced täisarvud või midagi sellist? Põhjus, miks see juhtub on, sest siin oled luua midagi, et ainult eksisteerib teie jaoks silmus. Ja kui sa püüad seda kasutada, ma ei tegelikult olemas väljaspool seda. Nii et põhimõtteliselt arvuti öeldes, ma ei tea, mida sa räägid. Tean vaid, et ma olin siin, aga nüüd enam mitte. Nii et kui ma oleksin luua silmus sees, eks? Ja ma lähen luua uus, nagu int j, ja on seda teha mida iganes. Ja sul on kood sees et loop, j olemas ainult siin. Aga et ka eksisteerib i. Ja nii j olemas ainult selle jaoks silmus, Kuigi ma olemas kogu asi. Igaüks selge? Sama asi tingimisi avaldused Kui soovite luua midagi. Sama asi samas silmuseid, kui soovid luua midagi. See on midagi olla väga, väga ettevaatlik. Nii et see oli tõesti hea probleem selles mõttes, et ta näitas kahte asja. See näitas esimene, ulatuse. Ja see näitab, Samuti mälu eraldamise. Kuna kutid peaksid teadma, et funktsioonid kasvavad ülespoole pakis. Ja et kui helistate funktsioone, loote sisuliselt uue korstna mälu. See on väga erinev Mis võrgutoitega mälu. Jah. Huh! Igaüks OK on? See oli segane. Väga hea teemadel minna üle, sest sa oled ilmselt hakka mõned konksuga asju on viktoriini. Jah. Cool. Ma panen teile 100 üks line ja siis 10 teisele. Jah, väga hea. OK, nüüd kutid saavad võimalus olla TAS. Sa saad vastata kõigile armas kirju, et ma mõnikord. Nii, Dear Andi, näen ma arvan, midagi on läheb valesti, mu koostaja. Ma olen kindel, et minu kood on õige, aga ma saan laevastikuosi süü Iga kord, kui ma saan. Mis toimub? Palun aidake, palju armastust. Kui te poisid midagi sellist et kuidas sa vastaksid? Need on tegelikult väga levinud küsimusi küsime. Kas siis, kui anname teile stsenaarium, anname me Sinu parim oletus on, mis toimub. Igaüks on torkehaav at, mis toimub? Jah? Sihtrühm: Äkki dereferenced null, midagi kursorit osutab millelegi null. PROFESSOR: Jah, et tahaks olla näiteks siis, kui see juhtuks. Aga mis on suurem pilt mis siin toimub? Sihtrühm: Kas see üritad juurdepääsu mälu, et sa ei ole peaks olema juurdepääs? PROFESSOR: Täpselt. Nii mõelda seg süü, off piirid, piiratud ala mälu et sa ei tohiks liigutav. Nii päris palju, kui sa üritad to index-- nagu näiteks olete kuulutanud massiivi nullist üheksani. Aga sa proovige puudutada, et 10. väärtus, siis ei ole juurdepääsu sellele. Sest sa ei kuulutanud. Ja nii arvuti läheb vaadata, et oleks nagu, uh oh, sa üritad minna väljaspool piire indeks. Ma annan teile laevastikuosi süü. Mõtle, kui segment, eks? Ekstra segment, süü on kui üritate rikkuda midagi ja sa ei peaks seal olema. Segmenteerimine süü on igal sa proovige puudutada asju et sa ei tohiks liigutav. Nii levinumad näited on indeks. Muidugi, kui sa üritad puudutada, et oli null, et oleks ka töötada nii hästi. Kui kursor üritasin puudutada asju, mida ei tohiks puutuda, mis võiks toimida nii hästi. Enamik tavaliselt saate vaata seda massiivi. Igaüks hea? Sihtrühm: Nii et kui sa tahad juurdepääs 10. koht ja seal on vaid piir üheksa või midagi. PROFESSOR: Jah, täpselt. Enam vähem. Cool. Lugupeetud Andi. Nii meil need imeline asju nimetatakse kehvasti. Kui Merge sort-- nagu me Saag on näiteks siis, kui Taavet kogu asi class-- miks, Kui see on nii palju kiiremini kui mõne kehvasti, Miks me vaevu isegi teades mõne kehvasti? Mis on selle küsimuse küsid sa? Mis on kolm word-- Sihtrühm: Mis on kompromiss? PROFESSOR: Täpselt. Seda küsimust küsib. Mis on kompromiss Merge omamoodi salmid muu kehvasti? Sihtrühm: Võtab mälu, eks? PROFESSOR: Kas selgitada, et natuke rohkem? Esiteks olgem selgitada Merge kaupluse. Kuidas Merge omamoodi tööta? Sihtrühm: Nii see toimib jagades kõik pooleks ja siis paneb ta kokku ja ümberjaotamise see, et, nagu iga kord, kui ühendada komplekti. PROFESSOR: Päris palju. Nii et ma ei tõmmata see välja, kuid see võta mind viie minutiga seda välja tõmmata. Vaata tagasi sektsiooni slaidid kus me katta Merge omamoodi. Täpselt. Nii kuidas Merge omamoodi tööd on see jagab asjad poole, ja siis lihtsalt vaatab Esimene väärtusi nende kõigi ja sorteerib ainult. Pidevalt loob uusi massiivid ja paneb asjad rohkem korras. Ja nii kui see on tõesti kiiresti, sest it's-- sa tead, binaarne otsing on n log n. Loote nii palju erinevad massiivid, et sa oled kasutades tohutu mälu. Ja nii, kui see on kiirem, kompromiss siin on see, et te kasutate rohkem mälu. Ja nii, vihje, sorteerib ja otsingud kaeti palju sel aastal kui nad on olnud aastaid eelmise. Te peaksite nägema, et peegeldasid kohta viktoriin. Ma tahaksin kindlasti veeta aega läheb selle üle, mida kõik eri sorti on, kuidas Kahendotsingupuu, Kui lineaarne otsing tööd. Kuidas olla pseudokoodi koodi neid välja. Millised on käimas korda? Midagi töötab korda on väga lihtne kopeerida ette koridori märkus lehel õige? See on väga raske, kui sa oled keskel test ja sa pead mõtlema, et välja. Kopeeri see maha. Ma garanteerin teile oled läheb vaja seda teada. Millised on kompromisside? Halvimal juhul, parimal juhul stsenaariumid neile kõigile, väga tundma. Jah? Sihtrühm: Kas meil on vaja tea, kuidas koodi Merge omamoodi? Nagu, me peame mäleta kirjutan? PROFESSOR: Ma väga kahtlen selles, lihtsalt sest see on nagu üsna keeruline. Aga see ei pruugi olla võimatu, kui me paluda teil kasutada pseudokoodi välja. Jah. Yep, OK, üks rohkem. See võib olla tulla sa viimane tükk natuke. Jah? Kas kõik kuulsid? OK, nii et päris palju esimene kõik, mis tüüpi programmi Oleks annab teile väljund niimoodi? Pea meeles, me palusime teil õppida uut tüüpi silumine näitaja? Mis oli nimi on? Valgrindi, õigus See oli programm, kus võid helistada, et võiks jälgida kõiki mälu sa oled kasutades oma programmi ja toimub. Nii et kui sul on midagi, nagu, kindlasti kaotanud, 40 baiti üks plokk. Ilmselt sa ei ole meenutades, et vabastada see. Sest kui te kasutate baiti mälu, see tähendab, et olete külastatud et mälu, aga sa ei ole olnud võimalik tasuta. Nii et sa tahad teha kindel, et sa oled ka kasutades free-- see on funktsioon-- vaba kõiki mälu ümber jagada malloc. Cool. Nii et see klapp, ma pean selle üles. See on kõikjal palju loengud, on palju osa slaidid. Sa tõesti tahad teha kindel sa lihtsalt tead kõike seda. Kas teie märkus lehel või kui te tahad meeles pidada, julgelt. See on tõesti väga, väga tähtis. Ka väga hea küsimus, et me võime küsida. Miks on valik sort-- pilk Valik sort-- kõik runtimes on n ruudus. Sõltumata sellest, kuidas nimekirja tegemist sind, miks on Selection sort-- Ma annan sulle poisid 30 Teise mõtlema. Sest see on selline segane. See on seotud mõningase mõistelise mõtte. Miks joosta korda olema samad nii kõige suurema ja kõige stsenaariumi? Jah? Sihtrühm: Kuna valik omamoodi iga positsiooni või ruumi see väike massiiv asi või mis iganes. Nii et isegi parima stsenaariumi korral isegi kui see on täiesti järjestatud, see ikkagi olla nagu, OK, üks. Minu esimene koht Mul on üks. Ja läbida kõik neist. OK, üks on väikseim. Ja siis läheb jälle ja on nagu, OK, kaks on väikseim kõigist asjadest. Aga see on veel kontrollida iga ühe. PROFESSOR: Jah. Nii näiteks ütleme lihtsalt Meil on nimekiri juba sorteeritud, massiivi 04:59. Nii, et valik erinevaid on, et see läheb läbi, siis kontrolli neid kaks. Siis kontrollib neid kaks. Ja siis ta kontrollib, ja see kontrollib. See hoiab kontrollimise kõiki neid, olenemata sellest, kas või mitte see on tegelikult järjestatud. Sest see on lihtsalt Muide omamoodi toimib. Ja nii see küsimus on selline nagu kontseptuaalne küsimus, mida me küsime. Kus esimene, teil tean, mida Selection omamoodi on õige, et oleks võimalik vastata küsimusele. Sa pead aru saama, kontseptuaalselt, mis toimub. Ja siis võite taotleda seda ja arvan, OK olgem vaid ette kujutada, halvimal juhul. Nad on kõik järjekorras. Kuidas mõjutavad seda? Mis siis, kui see on ülenevas järjestuses? Kui see on juba järjestatud? Kuidas oleks, mis mõjutavad runtimes? Ja siis valik justkui märkad et see ei ole tegelikult oluline. Sest sa kontrollida kõiki väärtused, olenemata sellest, mis toimub. Ja nii häid asju meeles pidada. Miks mõned kehvasti erineda teistest ja kuidas kõige halvima stsenaariumi puhul mõjutaks neid kõiki. Ma lähen tõesti tabanud kehvasti sest see toimub viktoriin. Jah. OKEI. Seal on kuus minutit aega. Saan kolme minuti küsimusi. Võin ka logelema nagu 20 minutit pärast osa Kui soovite esitada küsimusi ka. Kas keegi on lihtsalt väga lühike Küsimuste ja kontseptuaalseid küsimusi nad ebaselgeks kohe? Jah? Sihtrühm: Kas sa räägid vähe natuke bitwise ettevõtjad? PROFESSOR: Jah. Nii bitwise operaatorid midagi, mida sa ilmselt Võib lihtsalt tahavad panna oma lehel. Nii quickly-- ma ei taha minna liiga süvitsi sest Harvard, oma läbivaatamine istungil käsitletud seda päris hästi. Bitikaupa operaator, seal on neist viis, eks? Seal on see, mis on x või funktsiooni, seal on ampersand, mis on ja. Toru, mis on või. Ja siis on kaks eri tüüpi nihked. Kui ma annan sulle kaks väärtusi, kui Ma annan teile, nagu üks ja üks. Mis oleks, et hinnata,? Kui ma annan teile õige ja tõsi, tõsi? Aga õige või vale? Ikka tõsi, eks? Sest seal on või. Me tõenäoliselt teile numbrid. Seega pidage meeles, üks võrdub tõsi, null võrdub vale. Ja me võiksime teile neid asju ja palun ütle meile, mis juhtub. Harvard katab selle esimese 10 minutit oma uuringus istungil tõesti, tõesti hästi. Nii kutid tahavad teha Vaadake kindlasti tagasi, et. Sihtrühm: Kas pisa5 saab olema viktoriini? PROFESSOR: Ei Ärge isegi vaadata pisa5 kohe. See on raske. Lihtsalt ei vaevu isegi vaadates pisa5. Kuna mõned vihjed ja ettepanekuid, ma soovitan teil alustada pisa5 niipea, kui test on läbi. See on kõige raskem nädalal, kuid siis poisid kandub see mäed raudteeveeremi roheline ja kutsikad ja see on hea. See klass saab olulise lihtsam pärast viiendat pset. Sihtrühm: Lahtiolekuajad on pühapäev, esmaspäev? PROFESSOR: Jah, nii tööaega hakkab Sunday, et esmaspäeval pset. Lahtiolekuajad täna sisuliselt oleks lihtsalt vaadata viktoriini. Kui keegi tahab tulla ja küsida TAS küsimus, me tuleme. Ma võtan võibolla veel üks küsimus kui kellelgi on küsimus? Jah? Sihtrühm: Kui sa oled määratlemisel sõlmed, [kuuldamatu] kui sa ütled sõlme täht ja siis järgmine, teeb arvuti automaatselt aru, et sa oled viidates teise osuti? PROFESSOR: Ei Sihtrühm: Sa pead linkida see [kuuldamatu]? PROFESSOR: Nii põhimõtteliselt struct sõlme on, mäletan, see on nagu loote sõlme ja siis on pointer nimetas tuleva. Kõik, mida sa teed on võttes struktuuri seal. Sa pead määrama et osuti. Nii et arvutid ei ole tea, mida ta teeb veel. Sul on tegelikult määrata seda, kui loote oma ahelloendid. Ja see, mida peamiselt pset 5 toimub. Nii ei ole muret ükskõik mis praegu. Sihtrühm: Nii et me ei pea keskenduda liigselt link nimekirja, just üldise kontseptsiooni? PROFESSOR: Just päris palju korstnad, järjekorrad, link nimekirjad, puud, hash tabeleid. Just võimalik teada, millised need on. Me ei kavatse küsida soovid midagi konkreetset sest me ei ole tõesti teinud pset, et see hõlmab mis tahes selle veel. Nii kahes viimases minutit enne Ma teid vabaks tappa see viktoriin. Päris palju, nagu, mõtle, kui palju kutid on tulnud selles klassis. Mäletan, kui nädalas kaks Selle klassi, mõned teist kulutada kolm tundi kirjutamiseks vett. Kui kaua see aega võtab teid poisid kirjutada vesi nüüd? 30 sekundit, äkki? Mõelge, kui palju kutid õppinud. CS on tõesti väga raske teema. Ei ole mingit kahtlust, et. On raske, sellepärast keegi uurib seda. See on lihtsalt raske. Ja see on täiesti korras. Ja ma olen tõesti uhke, et kõik teinud seda nii kaugele. Psets ei ole lihtne. Nad võtavad palju aega. Te ma ei küsi kunagi kirjutada Mängu 15. või Vigenere kohta pset. Pole vaja lihtsalt närvi sellest. Kõik testaamme siin on hinnata Sinu kontseptuaalne teadmisi, samuti nagu mõned oma põhioskusi kodeerimine. Katse eesmärk on tõesti raske. Nagu on see mõeldud teil ei saa 100. Samuti on mõeldud teile, et ilmselt ole võimalik lõpetada 75 minutit. Ja see on täiesti korras. Ma olen üliõpilane ise. Ma tean, ma vihkan seda, kui ma kõnnin välja olla viktoriin, shit. See oli tõesti raske. Tõenäoliselt, mida läheb happen-- ja see on täiesti trahvi, Ma ütlen teile poisid kohe. Vahend neid asju ei ole kõrge üldse. Ja neile, kes on saada, nagu, kolmekesi oma probleem komplekti, see ei tähenda, et sa oled hakka 60 protsenti selles klassis. Kui sa saad 60% kohta viktoriin, mis ei ole tähenda, et sa lähed saada D selles klassis. Näeme, eriti I jaoks Neile, minu osa, Ma näen, kui raske kutid töötavad. Ja ma saan jälgida seda. Te trahvi. Ei ole institutsionaalne mälu õnne lõpus semester. Kuna kõik Harvard lapsed räägivad nende sõbrad, oh, siis saad trahvi. Keegi ei ütle teile poisid, et siin. Nii et ma pean ütlema teile, poisid, mis siin. Te trahvi. Ma olen nii uhke kõik kutid. Test on raske. Õppida, ja hiljem lihtsalt see ära visata. Ole valmis midagi uut õppida. Ja süüa kommi. Me oleme on palju kommi. Saa hea une. Ärge magage, sest et oleksin väga halb. CS on palju loogikat. Kui te ei saa magada, sa ei saa toimida, ja aju ei saa toimida. Ja ma tulen siia järgmise 20 minutit, kui keegi tahab logelema. Te ei kavatse tappa. Edu.