Prófessor: Svo dagskrá í þessari viku, ekki það mikið efni. En vonandi mjög, mjög gagnlegt og skiptir máli fyrir ykkur í þessari viku. En við erum að fara að eyða kannski 15, 20 mínútur bara fljótt að tala um tengil listanum. Link listar eru að fara að að falla á prófinu. Svo kannski það væri mjög gagnlegt að læra aðeins um hvað það er. Við erum að fara að eyða mikill Meirihluti kafla í dag að fara yfir quiz núll æfa vandamál. Og þá munum við spara kannski 20, 30 mínútur í lok fyrir hvaða langvarandi spurningum einhver hefur. Og þá, síðustu fimm mínútur, ég ætla að gefa dæla upp ræðu fyrir prófið. Þú krakkar vilja allt til að vera hér að. Vegna þess að það er að fara að vera góður tími. Allt í lagi, þannig að sumir efni á tengilinn listanum. Hvernig þeir eru yfirleitt byggð er Hefur þú það sem er kallað hnút, ekki satt? Þú hefur þetta kallast hnúður, sem eru structs. Ég ætla að fara yfir hvernig á að búa til hnút í næstu glæru. En í raun öll tengd listum er gögn sem hefur verið spenntur saman í gegnum ábendingum. Og svo kostur við höfum af því að nota tengdan lista yfir, kannski, eins og fylki, er sú staðreynd að í fjölda þú þarft eitt aðlægur blokk af minni allt á sama stað, einn eftir annað, að vera fær um að hafa það. En tengda listanum, þú gætir hafa af handahófi litla bita af minni allt tölvunni spenntur saman eftir ábendingum. Og á þennan hátt sem þú geta nálgast upplýsingar sem kemur á eftir Önnur, á eftir öðrum án þess að þurfa bara a gríðarstór klumpur af minni í tölvunni þinni einhvers staðar. Og svo er þetta eitt af helstu ástæður fyrir því að við notum tengilinn lista. Í öðru lagi, það er mjög auðvelt að virk búa á tengilinn lista vegna þess að í fylkinu, þegar þú lýsa fylki, þú ert með ákveðna setja gildi. Skulum segja að ég vildi að búa fjölbreytta 10 heiltölur. Ég skapa fjölbreytta 10 heiltölur, og það er það. Það er 10. Ég veit ekki hvað ég á að gera eftir það. Ef ég vildi gera það 11, getur ekki gert það. Ef ég vil gera það 9, getur ekki gert það. En á tengilinn lista, getur þú bætt við og eyða og setja þar sem þú vilt. Þú getur virk búa þinn uppbygging hér, gögn uppbygging. Og það gefur okkur mikið fleiri bætt sveigjanleika að við gerum ekki venjulega hafa með fylki. Einhver rugla á grunn Uppbygging hvernig tengill listi er eða hvers vegna við þurfum að nota einn yfir fjölda? Já, við munum fara yfir í smáatriðum hvernig á að í raun búa einn. En þetta er bara svona í almennum skilningi núna. Cool. Og svo fylki eru spenntur saman af þessum yndislegu litlu hluti kallast hnútar. Allt hnút er er gerð strúktúr. Mundu að struct er ef þú vildir til að búa til ákveðna tegund af breytu í C sem er ekki nú þegar til, þú, sem forritari, geta í raun að búa til það sjálfur. Og svo þessa tegund af gögnum uppbygging er kallað hnút, hefur í raun verið búin til af okkur, sem er ekki til innan C á eigin spýtur. Og hvernig sem þér búa einn er þú ert haus typedef strúktúr, sem segir þýðanda ég er um að búa til strúktúr. Við erum að fara nefndu það "hnút." Og inni við erum að fara að lýsa yfir breytu í, sem er að fara að geyma verðmæti. Og þá erum við líka að fara að hafa bendi kallað "næsta" sem bendir til annars hnút á tengilinn listanum. Og þá þú klára það burt bara með því að endurtaka hnút aftur svo þýðandinn veit, OK sem er í lok strúktúr mínum. Og svo á þennan hátt, við erum góður að búa sætur lítill array konar hlutur með gildi og með músina. Og þú getur tengt þá alla ásamt þeim ábendingum. Svo að þeir geta alls konar verið spenntur saman í keðju. Cool. Getur þú heyra að aðeins betri? Áhorfendur: Já. Prófessor: Allt í lagi. Svo leið að eins og þú krakkar geta sjá, dæmigerður tengill listi er byggð er þú ert með höfuð. Þú ert höfuð gildi sem er ekki að benda með öðrum músina. En það er að fara að benda á, eða tilvísun, annar hnút. Hnúturinn eftir er að fara að vísa í hnút eftir það, og svo framvegis og svo framvegis þar til þú högg að lokum enda tengilinn listann. Og þú bara ekki hafa músina þar. Og svo, hugsa eins, á keðju, eða jafnvel ef einhver ykkar krakkar gert, ég veit ekki, eins og með Fruit Loops þegar þú varst lítil. Þú vildi string þá saman og vera þá um háls þinn. Held að það sé nákvæmlega það sama. Þú hefur þessa litlu hluti sem þú getur band saman sem lið að einn eftir það, að einn eftir það, og svo framvegis og svo framvegis þar til þú hafa keðju á gögn uppbygging að þú getur notað hvernig sem þú vilt. Svo leið að þetta sem við myndi oftast sett inn eða eyða allir hnút frá tengil Listinn er mjög mismunandi eftir því hvar sem hnúturinn. Svo, til dæmis, vegna þess að ábendingum alltaf að benda á sérstakt virði, þegar þú eyðir eða setja hnút, þú vilt vera viss um að bendillinn er allt að benda á rétta hluti. Svo ef þú vildir hugsanlega setja nýja hnút með gildi einnar inni í raðaða tengil lista, vitum við öll hér frá myndinni sem er að fara að fara á milli höfuð og tvö, ekki satt? Vegna þess að einn passar þarna. En leiðin sem við myndum gera það er því fyrst dereferencing músina frá höfði og senda það til einn. En við komum inn í mikið vandamál hér. Getur einhver séð hvað vandamálið er ef við vorum að fyrsta dereference bendillinn frá höfuð til einn? Hvaða vandamál gætum við keyrt inn ef við reynum til að bæta við þetta að framan fylking okkar? Áhorfendur: [inaudible] Prófessor: Nákvæmlega. Svo hér höfum við músina sem var einu sinni benda frá höfði til tveggja. En ef þú fá losa af það músina, benda þú það að einn, við höfum nú ekki hugmynd hvar á að fara að finna tvo. Því eins og ég sagði áður, hefur þú got a risastór klumpur af minni í tölvunni þinni. Allir þessir hnútar gat handahófi interspersed í hvaða sæti í tölvunni þinni. Og þú veist ekki hvernig að fara að finna það. Og þannig að þú þarft að hafa ábendingum benda til allra hnúður í lokin. Eða annars ef þú óvart dereference einn án fyrsta úthlutunarskreflð gildi fyrst þú ert bara að fara að missa allt á eftir. Svo það sem við erum að fara að gera er, þú myndir fyrst langar að búa til bendilinn hnúturinn þú vilt setja inn. Benda það til þar sem þú langar að setja það til, og þá eftir að þú gæti bent höfuð aftur til einn. Er að skynsamleg að allir hér? Great. Hugsaðu um það eins og bara eins og keðju. Ef þú bætir við keðju, það er góður af leiðandi hvernig þú vilt fara um að setja það. OK, svo er að í raun miklu styttri en ég hélt að það væri, fimm mínútna Spiel á tengilinn listum. Bara svo að þið hafið það Grunnhugmyndin um hvað sem er. Hér höfum við dagskrá spurningakeppni núll. Ekki láta þetta hræða þig. Ég veit að það er mikið af upplýsingum. Það lítur mjög skelfilegt. Það er einnig mikið af, ég held, CSC konar kjörum. Hluti eins og sextánskur strengi, ábendingum, dynamic minni úthlutun eru mjög skelfilegur hljómandi hugtök. En við erum að fara að brjóta þær niður, gera sumir æfa vandamál svo að þið öll eru tilbúin fyrir þetta próf. Hversu margir af ykkur hafa þegar hafið nám? OK, vilt þú krakkar sennilega að byrja að byrja á því, vegna þess að prófið er á morgun. Eða fimmtudagur fyrir sum ykkar. Já, þannig að við erum að fara að fara yfir sumum æfa vandamál. Ef þú krakkar vilja allir að taka út blað, blýant. Við erum að fara að bara eyða Mikill meirihluti kafla í dag fara yfir nokkrar af að svo þið hafið hugmynd um hvað ég á að búast á spurningakeppni. OK. A par af skipulagningar Upplýsingar eins og heilbrigður, fyrir hver sem hefur ekki verið að þessi hlekkur þar, ef þú ferð að cs50.yale.edu, að framan þessa síðu það er tengill sem segir "Um Quiz Zero." Link tekur þig þar. Ef þú hefur ekki lesið hana, vinsamlegast lesið hana. Vegna þess að það segir þér mjög mikilvægt upplýsingar um spurningakeppni. Ég ætla að draga þetta út frá að bara vegna þess, líkamlega, ef þú krakkar vita ekki hvar að fara, munum við hafa vandamál. Og svo ef þinn síðasti í skilmálar með A að N, fara í lagaskóla salnum. Og ef síðustu byrjar þína með P til Ö, fara til Davies Auditorium. Og þetta gildir aðeins fyrir fólk í miðvikudagur kafla. Ef þú ert að taka prófið á Fimmtudagur, þú ferð SSS 114 þar fyrirlestur þinn venjulega er. Áhorfendur: [inaudible] Prófessor: O til Ö, ert þú að fara að fara í Davies salnum. Ég ætla að breyta því, ekki satt? Ó, já, ekki þú bara sjálfkrafa. Ó já, það er þú Christa. Já, slæmt minn. Yep, O Z, ætlar þú að fara að fara til Davies Auditorim. Ég ætla að laga þetta þegar ég hlaða. Já. Og þá einnig eitthvað mikilvægt að huga er að Miðvikudagur, ef þú ert opinberlega skráðir í miðvikudagur kafla, þú verður að taka prófið á miðvikudag. Og ef þú ert skráðir í fimmtudagur, þú verður að taka prófið á fimmtudaginn. Og það er á bekknum tíma. Þar held ég að það er eins og 1:00 til 02:15 á miðvikudögum og 2:30-03:45 á fimmtudögum. Ef þú ert irreconcilable átök, Afsakanir Dean eru það eina, því miður, við getum tekið. Vegna þess að við höfum haft Mikill meirihluti beiðna að skipta frá miðvikudegi til fimmtudags. Sem við getum ekki staðið nema við höfum ósk Dean. OK. Svo áður en við að byrja á par af æfa vandamál, Ég ætla bara að fara að fara yfir Góðar ábendingar Andy til að ná árangri. Strákar, þegar þú læra, þú virkilega langar að æfa að skrifa kóða handvirkt. Í fyrsta skipti sem ég alltaf tók CS próf, ég hafði ekki æfa skrifa kóðann með hendi áður og það var mjög átakanlegum á hversu erfitt það var. Þegar þið fæ ekki inn í venja að slá út allt, það kemur mjög náttúrulega að vera fær um að hafa autocompleted sviga og semikommum þar. Þegar þú skrifar það út af hendi, stundum er það mjög, mjög auðvelt að gleyma semíkommu, eða gleyma að loka krappi, eða gleyma að loka tvípunkt, eða eitthvað svoleiðis. Svo þegar þú skrifar kóðann af hendi, það er mjög mismunandi feel. Svo þú krakkar, þegar þú ert að vinna í gegnum sumir af the æfa vandamál, það væri gott að virkilega æfa í dag. Eða á morgun, hygg ég, ef þú ert taka prófið á fimmtudaginn. Í öðru lagi höfum við síðasta, eins og, virði átta ár af starfi Skyndipróf netinu. Quiz á þessu ári mun líklega vera mjög svipuð þeim öllum. Þeir eru mjög svipuð. Þú færð konar inn í stíl tegund af spurningum að við biðjum, tegund aðgerðir sem við munum skrifa það í, et cetera, et cetera. Svo taka æfa Skyndipróf, sérstaklega undir tímamörkunum. 75 mínútur að gera quiz er ekki mikið af tíma. Það er mjög, mjög lengi. Og svo þú krakkar virkilega að ganga úr skugga um að þú krakkar eru í vana að skrifa númer af hendi fljótt. Vegna þess að þú vilt ekki fyrsti tími til að sjá spurningakeppni þeirrar lengd vera á spurningakeppni þína. Þú krakkar vilja virkilega að ganga úr skugga um að þú æfa fyrirfram. Í fjórða lagi, þú vilt að endurskoða fyrirlestur og kafla skyggnur. Þú þarft ekki að leggja á minnið hluti. Reyndar, allir leyft a eitt blað af hvítum pappír athugasemdum, framan og aftan. Þú krakkar geta slegið eða skrifa. Ef þú finna sjálfur að þurfa að leggja á minnið eitthvað, setja það niður á þeim blaði. Ég tryggja þér, þú vilt ekki að vera fastur í the miðja af það spurningakeppni vera eins, ó já, hvað er afturkreistingur af þessu tagi á móti því tagi. Bara setja það niður og afrita það beint úr huga blaði þínu. Þá er hægt að raun bara að nota þinn heila til að hugsa um vandamál frekar en að þurfa að muna staðreyndir. Og svo í raun nýta hvaða sess upplýsingar að þú heldur að þú þarft að leggja á minnið, plop það niður á endurskoðun blaði. OK, einhverjar spurningar logistically varðandi prófið áður en við byrjum sumir quiz vandamál æfa? Já? Áhorfendur: Ég hef ekki haft tækifæri að líta á prófið [inaudible] en er það að fara að vera umsókn að mestu leyti, eða er það líka að fara að vera, eins, þekkingu spurningar? Prófessor: Það er mikið. Svo, á þann hátt að ég myndi lýst quiz is-- Ég setti saman sumir æfa vandamál sem ég dró úr öllum Skyndipróf. En þú munt sjá að það er tveir helstu tegundir af spurningum sem við biðjum þig. Eitt er mjög lágt smáatriði efni. Við munum gefa þér smá klumpur af kóða og segja, er það villa hér? Hvað myndi vera prenta út hér? Hvað mun þetta númer framleiða, et cetera. Svo mjög lágt upplýsingum upplýsingar. Og á bakhlið, munum við hafa mjög mikil þekkingarfyrirtæki spurningar. Getur þú útskýrt hvað á Munurinn á milli tvöfaldur leit og línuleg leit er? Hvers vegna viljum við nota einn yfir öðrum? Kannski, hvað er GDB? Hvers vegna viljum við að nota GDB? Meiri, meira grundvallaratriði skilningur spurningar. Svo þú munt sjá blöndu af tveir af þeim á spurningakeppni þína. Eitthvað annað áður en við fara beint inn í það? OK. Áhorfendur: Einn enn. Prófessor: Oh, einn. Sorry. Áhorfendur: Já, það er allt í lagi. Svo þú ert að segja 75 mínútur er of stutt, eins og það er ólíklegt að við munum klára? Eða, eins og, 75 mínútur er nákvæmlega eins mikill tími eins og við myndum þurfa ef við vorum viðeigandi tilbúinn? Prófessor: OK, þannig að quiz er krefjandi. Það er örugglega erfitt. Þú vilja finna sjálfur stutt á réttum tíma. Þú ert líklega að fara að lemja eins 10, 15 mínútur til að fara, og að vera eins, skít. Ég hef svo mikið eftir að gera. Og það er algerlega fínt. Allir að fara að finna til á sama hátt. Bara vera mjög meðvitaðir um hversu mikinn tíma þú hefur. Og svo er það þess vegna sem ég segi þér krakkar gera æfa Skyndipróf. Vegna þess að það gefur í raun mikið vit af hverju hún quiz er að fara að vera eins. Svo ef þú finnur þér að vera geta lokið starfi Skyndipróf í gott magn af tími, getur þú hraða sjálfur vel, þá munt þú ekki hafa a vandamál á miðvikudag eða fimmtudag. Cool. Svo ef allir wants-- ég held flestir hafa blöð af pappír út nú þegar. Ég ætla að í raun bara gefa þér sýnishorn spurningar, gefa ykkur, eins og, nokkrar mínútur til að gera þá. Og við munum fara yfir eins og a tegund hvað svör við þeim eru. Þannig að þetta er mjög dæmigerður snemma spurning sem við munum spyrja þig, bara að umbreyta tölur á milli mismunandi bækistöðvar. Tvöfaldur, eins og þú krakkar geta muna, er stöð tvö. Decimal er undirstaða 10, eða það sem við sem menn túlka venjulega. Sextándutölur stöð 16, sem er núll til níu auk gegnum F. Svo er fjórum tölur ég er þar biðja ykkur að umbreyta hér. Ég skal gefa þér eins, þriggja til fjórar mínútur til að hugsa um hvernig við myndum fara um að leysa þetta. Áhorfendur: Megum reiknivélar? Prófessor: Þú munt ekki þarf reiknivélar, já. Ég held undirstöðu viðbót, held ég, er allt þú krakkar vilja vera beðin um að gera. Og bara svo ég hef svona tilfinningu af þegar allir eru að gera, líta upp, bylgja, ég veit ekki, brosa, líta hamingjusamur ef þú ert búinn. Já. Kannski nokkrar fleiri mínútur. OK, við skulum koma með það í. Ég viljandi að fara að gefa ykkur minni tíma en þú þarft líklega að gera eitthvað af þessum vandamálum, einfaldlega vegna þess að ég vil vera viss um að við fáum í gegnum fullt af vandamálum. Svo engar áhyggjur ef þú hefur ekki hafa tækifæri til að klára. Algerlega OK svo lengi sem þú ert með hugmynd um hvernig á að fara um þetta. Svo skulum við fara á undan og gera fyrsta. Svo fyrst, er einhver að segja mér í tvöfaldur, hvað hver þessara tölustöfum tákna í skilmálar af gildi þeirra? Já? Áhorfendur: Tveir til máttur núll, tveir á móti einum. Prófessor: Nákvæmlega. So. Einmitt, svo yfirleitt þegar við erum í stöð 10 allt þetta samsvara eru, eins og, 10 til the undirstaða af núll, ekki satt? Það er staður einn þíns. Allt 10 er staður þinn er er 10 í veldinu einn. Þú 100 er staðurinn er 10 í krafti tveggja. Whatever stöð þú ert í er að fara að gera með nákvæmlega sama, bara með mismunandi basa. Svo tvöfaldur, allt sem er er undirstaða tveggja. Þú ert að fara að breyta öllum tölunum í tveimur til hvað máttur þess tölustaf. Og svo í þessum skilningi, við getur haft auðveldari leið af því að vera fær um að bæta upp eða saman allar tölurnar í röð að breyta í stöð 10. Svo er einhver að segja mér hvað Svarið við fyrri er í grunn tíu? Áhorfendur: Tveir, [inaudible] Prófessor: Já. Áhorfendur: 42. Prófessor: 42, þar sem þú ferð. Svo leið og við fengum þetta svar var með gera tvö í fyrsta, sem er tveggja. Plús tveir þriðju, sem er átta. Plús tveir til fimmta, sem er hvað er afgangs. Þú summa þá upp og það er 42. Er einhver ruglaður á hvernig við fengum það? Svo grunn viðbót, eins og Ég sagði, þú ættir að vera í lagi. Ef ekki, ja, við getum æfa það líka. En það er allt í lagi. Cool. Er einhver vilja til að gefa mér sem Svarið við annarri einn eins og heilbrigður? 50? Good. Einhver rugla um hvernig við fengum að annað hvort? Cool, ég ætla að svör á næstu glæru. Svo engar áhyggjur ef þú þarf að afrita hana niður. OK, svo er sextánskur dálítið trickier. en ég ætla að sýna ykkur flýtileið fyrir hvernig á að gera það. Svo sextánskur, eins og þú muna, allt það er að vera 16. Og vegna þess að við sem menn gera í raun ekki höfum 16 tölur til að tákna það, við förum frá núll til níu, sem fyrst okkar 10 gildi, og þá erum við ekki A gegnum F, sem eru næstu sex gildi. Og svo auðveldasta leiðin til að fara frá allir tvöfaldur fjöldi til sextánskur er að brjóta þá upp í helminga. Og svo allir tvöfaldur fjöldi við munum gefa þú munt sennilega þurfa átta tölustafir. Þú getur bara skemmt þá upp í miðjunni. Svo fyrsta one-- einn einn, eitt einn, einn, einn, eitt einn. Tegund hugsa það upp, þú veist, draga skástrik eða komma í milli þeirra. Og þú getur bara breyta beint hvað þetta er að fyrsta Fjöldi sextánskur, og hvað hér er að önnur af sextánskur. Svo man frá sameiginlegum merki, hvað sextánskur gildi byrja með? Áhorfendur: Zero. Prófessor: 0x. Þannig að við vitum að hvenær sem við biðjum þig að umbreyta allir tala til sextánskur, eða hvenær sem þú sérð eitthvað tala sem byrjar með 0x, þú veist að það er sextánskur gildi. Og þá þú ert að fara að vera beðin um að ákveða hvað þessir tveir tölustafir eru. Og hvernig þú gerir það, tallying upp að helmingur og tallying upp að helmingur. Þannig að í þessu dæmi, hvað væri einn, einn, einn, einn vera? Hvaða gildi myndi það vera? Það væri F, ekki satt? Sem myndi vera 15. Þannig að þetta væri F. One, einn, einn, einn hér er einnig F. Svo einn, einn, einn, einn, einn, einn, einn, einn í sextánskur, allt það er er 0xff. Vegna þess að þetta hálf fulltrúa F, gildi 15, og þetta hálf fulltrúa F, gildi 15. Vegna þess að muna, við erum telja frá núll til níu. A er eins og 10, B er eins og 11, sem F er 15. Er að skynsamleg að allir hvernig við fengum frá tvöfaldur til sextánskur? Áhorfendur: Og svo hvernig fengum við 15 frá einum, einn, einn, einn? Prófessor: Já, þetta er tvöfaldur, ekki satt? Ímyndaðu þér að þetta er bara tvöfaldur fjöldi. Þannig að þú þarft tvo til 0, sem er eitt. Áhorfendur: Oh, OK. Svo þú alls bara það út. Prófessor: Já, og þá þér alls bara út. Það er allt það er. Áhorfendur: OK. Prófessor: OK. Áhorfendur: Svo þú fara frá tvöfaldur í fjölda til sextánskur? Prófessor: Það er Auðveldasta leiðin til að gera það, já. Þú ert ekki að fara í fjölda því aukastaf aðeins hefur núll til níu. Við erum bara svona skipta þessu upp í tvo. Áhorfendur: [inaudible] nota aukastaf að finna það passar upp í sextánskur. Prófessor: Ég meina, þú ert tallying upp með grunn stærðfræði. Áhorfendur: Já. Prófessor: Já, ansi mikið. Það er dálítið ruglingslegt. En bara veit að þér Hægt er að skipta upp hvað þetta gildi er í aðeins helminga. Sjáðu, hvað er þetta í tvöfaldur? Hvað tala er það? Það er að fara að vera eitthvað frá núll til F. Hér er líka að fara að vera eitthvað frá núll til F. Og þá getur þú bara sett þessir tveir þarna. Áhorfendur: OK. Prófessor: Já. OK. Svo þú krakkar vilja til að reyna næsta einn þá? Núll, einn, núll einn, einn, núll, einn núll. Ég skal gefa ykkur eins og 30 sekúndur, þar sem þú sennilega ekki vita bragð að hvernig á að gera þetta fyrr. OK, einhver vilja til að fá þetta einn skot? 0X5A. Prófessor: 0X5A. 5a. Good. Þannig að þetta hér myndi be-- þú vilt að segja okkur hvernig þú fékkst það? First, hvernig fékkstu fimm? Áhorfendur: Vegna núll, einn, núll, einn er fimm. Prófessor: Er allir skilja hvers vegna núll, einn, núll, einn er fimm? Þú hefur fengið einn hér. Þú hefur ekkert í tvo til fyrst. Í tveimur til seinni, þér hafa einn sem er fjórir. Svo þú bæta fjórum plús sá, hefur þú fimm. Allir góður? OK. Og þá hvað þetta vera og hvers vegna? Hvað fjölda er A í samræmi við? Áhorfendur: 10. Prófessor: Og hvað þetta á stöð tvö? Áhorfendur: [inaudible] Prófessor: Nákvæmlega. Þannig að þetta annað gildi hér væri 0X5A. Allir góður á hvernig á að umbreyta? Það er mikið einfaldara en þú heldur það er. Ég vil bara vera viss þú veist góðar ábendingar og bragðarefur um hvernig á að gera það. Áhorfendur: Hvers vegna getur þú skipt bara það í miðjunni eins og þessi? Bara vera eins, OK, ég er bara að fara að sama um þetta fyrst [inaudible]? Prófessor: Vegna þess að það er í raun leið sextánskur gildi eru táknuð. 0x, sem í raun þýðir ekkert annað en að segja þér að það er sextánskur númer. Og þetta alltaf táknar Fyrstu fjórir tölustafir. Og þetta alltaf táknar síðustu fjórir tölustafir. Og svo þessar tvær tölur bara í samræmi við mismunandi bita. Áhorfendur: Þannig að við munum always-- Prófessor: Þú ert alltaf fara að fá átta gildi bita. Áhorfendur: Er það bara eins og hlutur hér eða að hlutur allan? Prófessor: Það er bara hlutur í tölvum, jebb. Áhorfendur: OK. Awesome. Prófessor: Einnig, svo í þessu dæmi við breytt frá tvöfaldur í fjölda, og frá tvöfaldur til sextánskur. Þú krakkar vilja til að ganga úr skugga um að þú einnig æfa fara á hinn veginn. Þannig að ef ég gaf þér 0xff, þú gætir draga það út í tvöfaldur, ekki satt? Þú breyta F í tvöfaldur, sem er einn, einn, einn, einn, umbreyta F til tvöfaldur, sem er einn, einn, einn, einn. Svo að við gætum beðið þig um að gera á hinn veginn. Svo aukastaf að tvöfaldur eða sextánskur að tvöfaldur. Svo þú vilt gera viss um að þú veist báða vegu. Við munum líklega spyrja þig a sambland af þessu tvennu. Já, hefur þú með spurningu? Ég get see-- þú ert góður? Áhorfendur: Já. Prófessor: OK. Er ég góður að eyða þessu? Great. Allt í lagi, þannig að svör eru hér ef einhver er forvitinn síðar og fá rugla. OK. Áhorfendur: Skiptir máli hvort við setjum bréf okkar í höfuðborg eða lágstafir? Prófessor: Það er vegna þess í sextánskur, samkvæmt venju, allir stafir eru hástafi. Svo A gegnum F eru að fara að vera hástafir. Ef þú setur lágstafir a, ég veit ekki ef við myndum endilega merkja það rangt. En fræðilega, það er ekki tæknilega hvernig þú átt að hafa það. Svo þeir ættu allir að vera hástafir. Já, góð spurning. OK. Önnur spurning. Hugleiddu þetta yndislega forrit hér. Ég spyrja, Ég kem aftur á þessu. Svo, í fyrsta lagi, hvað er inni í staðli io.h það er áhugaverð dagskrá? Í öðru lagi, hvað gerir ógilt signify í línu þrjú? Og í þriðja lagi hvað þýðir aftur núll frá Helstu, eins línu sex, almennt signify? Ef þú krakkar vilja til að skrifa þá niður, þar sem ég hef til að skipta aftur að renna bara svo þú getur séð kóðann. Þetta er dæmi um, eins, kannski meiri spurning þar sem við biðjum þig hvað á að þýða í áætluninni. Allir gott fyrir mig að fara aftur til renna? OK, flott. Svo ég ætla að gefa ykkur eins og kannski þrír mínútur til að líta á þetta eina raunverulegur fljótur. OK, svo þetta er eins nokkuð auðvelt, eðli. Er einhver að segja mér hvað er Fyrsta inni með kjötkássa þ.mt staðall io.h bókasafn okkar skrá? Hvers vegna þurfum við að bókasafn með fyrir þetta forrit? Hvað hér þurfum við það? Já? Áhorfendur: Er að þegar þú setur þessi printf? Prófessor: Nákvæmlega. Svo printf, hvenær þér taka inntak frá notanda og prenta eitthvað á skjánum, það er staðall inntak, úttak bókasafn. Hugsaðu um það sem way-- inntak, úttak. Þarf ég að hafa framleiðsla? Já. Þannig að ég veit að ég er alltaf að fara að þurfa Staðla i.o bókasafn. Svo er printf virka sem við þurfum að opna og hashtag innihalda staðall i.o bókasafn. OK. Í öðru lagi, það hvað er ógilt signify? Við höfum int helstu (tóm), hvað þýðir ógilt hér meina hér á línu þremur? Já, í bakinu. Áhorfendur: [inaudible] Prófessor: Nákvæmlega. Svo man, að við höfum lært byrja með pset okkar að þú getur í raun tilgreina stjórn lína rök að kerfið þitt, að þú Helsta hlutverk, tekur eins og þú, sem notandi, kalla það. Ef við höfum búið, sem þýðir að þú gæti bara að keyra forritið beint án stjórn lína rifrildi. Allir ljóst á það? OK. Og loks hvers vegna eigum við nennir að gera þetta aftur núll hlutur hér? Hvers vegna höfum við jafnvel int main? Hvers vegna getum við ekki bara ógilt aðalæð tóm? Já? Áhorfendur: Bara svo að við getum vera viss um að forritið er spennandi með góðum árangri, eins og öfugt við ef það var talið. Og við myndum vita að það er annars konar villa. Prófessor: Já, einmitt. Þetta er bara mjög hefðbundin hlutur sem við gerum, er að bara í lok program, bara til að ganga úr skugga um sem meginvirkni þinn er í gangi rétt, við viljum alltaf að gera aftur núll. Jafnvel þótt við getum endilega ekki séð að prenta hvar sem er. Því eins forritari, þú veist, ef þú ert með margar mismunandi línur af kóða og þú veist ekki hvar þetta eru að fara úrskeiðis, og ef villa kemur þú vilt ganga úr skugga um að þú færð þessi villa. Og svo yfirleitt ef eitthvað fer rangt við munum hafa aftur einu bara að ganga úr skugga um að við vitum að það er. Þannig að ef þú sérð aftur núll, sem oftast þýðir program er framkvæma með góðum árangri. Gott? Cool. OK, annað program hér. Íhuga að. Og ef þið sjáið fljóta, þú krakkar geta sennilega hafa góða hugmynd um hvað Ég er að fara að spyrja þig. Svo þegar þetta forrit keyrir, eins og þú geta sjá, Ég er að lýsa yfir fljóta inni meginvirkni minn. Ég nefndi það "svara" og ég er að setja miðaður við einn deilt með 10. Ég er að prenta út, að einn aukastaf staður, sem fljóta. Og þá er ég aftur á núlli. Svo þegar framkvæmd áætlunarinnar, hugsa til baka til gráðugur nú, þetta forrit prentar 0.0. Eins og við allur vita, vonandi við öll vita, einn deilt með 10 er ekki 0,00, það er 0,1. En að útskýra hvers vegna þetta forrit telur að 1 deilt með 10 framköllun 0,1 annarra en 0,1? Ég skal gefa þér krakkar kannski eins 30 sekúndur bara fljótt að hugsa um að og ég ætla að fara aftur til the program. OK. Einhver vilja til að gefa það skot? Í þremur setningum eða minna, því oftast við erum fara að takmarka öll svör að þremur setningum eða minna svo þú ert ekki bara að kasta handahófi hluti inná spurningakeppni þína. Já, taka skot. Áhorfendur: Þannig að ég held að það er þetta hlutur sem kallast, eins og [inaudible] Þannig að það gæti verið, til dæmis, það gæti verið, eins og, 0,09, að þar sem þú prenta fyrsta stafa, það væri að 0.0? Prófessor: Close, ekki alveg. Christabell? Áhorfendur: Þú ert að deila einn og 10, og þeir eru bæði heiltölur. Og svo hátt að það er að fara að geyma það er sem heiltala. Og svo næst heiltala væri 0,0. Og svo er það 0,1. Prófessor: Já, það er mjög gott. Það er rétt svar. Þannig að þetta er mjög ruglingslegt hugtak fyrir a einhver fjöldi af krökkum. Og ég vil virkilega að ganga úr skugga um að þetta er styrkt í höfðinu allra. Svo það sem við köllum fljótandi benda ónákvæmni, þar sem ástæða hvers vegna a einhver forrit í gráðugur virkaði ekki upphaflega var því þú gleymdir að kasta breytu þína. Svo hvað Christabell sagði var alveg rétt. A fljóta er í eðli sínu ónákvæm. Vegna þess að í tölvu, hægri, höfum við endanlegt magn af bitum af minni við getum notað til að tákna tölur. Svo, til dæmis, þetta CS50 ID is-- Ég held að það sé 64-bita tölva. A fljóta Aðeins er hægt að fulltrúa með endanlegt magn þessara bita. Og svo 0,1 með óendanlega núllum, sem er 0,1 er, ekki satt? En við getum í raun ekki geyma sem tala í tölvunni okkar. Við bara höfum ekki nóg minni til að gera það. Og svo næsta samræmingu hvað er geymt í minni er í raun eitthvað eins og 0.000 og eitthvað, eitthvað, eitthvað, eitthvað. Sem, þegar þú HÃ það, umferðir niður 0.0. Og svo þetta dæmi er bara ein sem sýnir fullt af málefnum við höfum þegar við erum reyna að rangt gera stærðfræði án steypu sem mismunandi heiltölu. Svo bara vera á varðbergi gagnvart því að það gerist. Á Skyndipróf, ef við gefum þér kóðanum og það er eins og, hvað prentar út á endanum? Og ef það er einhver hending þú krakkar ættu að vita hvers vegna það er að gerast. Já? Áhorfendur: Truncate er að losna við allt eftir að ákveðnum stað? [Inaudible] Prófessor: Já, svo í raun þetta er mjög slæmt dæmi, því 0.100 hvað raunverulega myndi HÃ niður í 0,1. En ef þú varst að keyra it-- ég ekki muna, vegna þess að á síðasta ári þeir hljóp það á mismunandi forrit. Þeir hljóp það í eitthvað sem kallast CS50 Appliance, sem er frábrugðið ID. Það var 32-bita kerfi, held ég. Og svo voru mismunandi tölur. En í raun, bara vita að allt hugtakið truncation og hvernig það sker bara það burt. Og svo ef það rounds-- Áhorfendur: Án námundun. Prófessor: Nákvæmlega. Já. Cool. Hi, í bakinu. Við erum bara að fara yfir nokkrar quiz svara ákveðnum spurningum. Allt í lagi. Þannig að íhuga annað forrit hér. Ég ætla að gefa ykkur a Tveimur mínútum að lesa yfir þetta. Þetta er eitthvað sem var fyrir mjög nýlega að ég held blés fullt af þér hugur krakkar er. En við erum að fara að tala í gegnum þetta aftur bara að tryggja að þú skilja það alveg. OK. OK. Einhver þarf meiri tíma til lesa í gegnum þennan kóða? OK. Svo virðist mér sem í þessari áætlun er ég skapa tvo strengi með því að nota GetString. Einn heitir s og hinn heitir ekki. Og ef þeir eru jafnir jafngildir við hvert annað, það ætti að prenta "Þú slá það sama. " En elsewise, myndi það prenta, "Þú slegið mismunandi hluti, "ekki satt? Virðist mjög, mjög einfalt. En hins vegar, ef ég reyndar reyna að skrifa þetta forrit, það virðist að jafnvel þegar ég inntak nákvæmlega sama strengi, það prentar enn út, "Þú slegið mismunandi hluti! " Er einhver að vilja taka skot á hvers vegna þetta forrit alltaf svarar að inntak eru mismunandi, jafnvel þegar orðin sjálf eru þau sömu? Svo ef ég væri að input-- David ást að nota dæmi eins og mamma, ekki satt? Lágstafir M-O-M fyrir S, T jafngildir lágstafir M-O-M. Ef ég hljóp þetta í gegnum að kóða, hvers vegna ætti það prenta út "þú gafst mismunandi hluti?" Hefur einhver þarf meira kominn tími til að hugsa um þetta? OK, ég held að við erum góð. Já? Áhorfendur: OK, svo það er eitthvað um að þar sem það er geymt í minni, ekki satt? Prófessor: Já. Áhorfendur: Þar sem það er eins og ef þetta band s er geymd við minni spot-- Ég er að finna upp this-- er núll. Prófessor: Jú. Áhorfendur: Og string T er geymt við minniseiningin, eins og, 167, og þá núll er ekki jafn 167. Prófessor: Nákvæmlega. OK, svo muna þetta ótrúlegur opinberun við útskýrði ykkur þetta síðustu viku, sem strengir í raun ekki til? Þegar við búa til eitthvað sem heitir band við erum í raun, skapa eitthvað sem heitir bleikju stjörnu. Sem allt það er er bendi til band eða fjölda stafir. Og svo í þessu dæmi, ef ég voru að inntak M-O-M the vegur að tölvan mín myndi geyma það er innan minni sviga núll, ekki satt? Þessir fjórir stafir, stafir, myndi vera geymt einhvers staðar. Og þá eru þessir fjórir stafir, sviga núll, eru geymd annars staðar, ekki satt? Ég hef ekki hugmynd um hvar heimilisföng eru, þeir eru einhvers staðar í tölvunni minni. En ég er ekki nákvæmlega vita hvar þeir eru. Þegar ég bý til band s, allt sem raunverulega er er bendi til byrja á þessum streng. Og þegar ég að búa til þessa t gildi, allt sem er bendi til hér. Og svo þegar þú ert að reyna að jafngilda og athuga til að sjá hvort s er jafngildir jafngildir t, the tölva er í raun bara að fara aftur á þú veffang þetta m og heimilisfang þess m. Og vegna þess að þeir eru tveir aðskilin stykki af gögnum sem eru geymd í tveimur mismunandi heimilisföng í tölvunni þinni, tölvan er aldrei að fara að þekkja þá eins og að vera sama. Er einhver vilja til að gefa skot á hvað við þyrfti að gera ef við vildum að leiðrétta þetta og hafa rétt hlaupandi program í staðinn? Hugsaðu um það í nokkra sekúndur. Hvað þurfum við að breyta til fá þetta forrit virkni eins og við viljum það til að virka? Já, langar að taka a stunga á það? Áhorfendur: Getum við reynum að dereference á bendillinn og athuga með array? Prófessor: Það er ein leið til að gera það. Svo, hvað er nafnið þitt aftur? Fyrirgefðu, minna mig. Zee: Zee. Prófessor: Já, svo hvað Zee bentu myndi alveg virka. Ekki satt? Við gátum dereference músina og í raun fara og aðgangur líkamleg gögn inni héðan. Og við getum bara bera allan skjáinn. Við getum sagt, OK, músina, gefa mér hvað er inni hér. Það myndi skila m. Og ég myndi segja, músina, gefa mér hvað er inni hér. Skila m. Gera slíkar leik? Já. Þá erum við að fara. Við höldum að haka við allt tvö strengir alla leið upp þar til í lok og sjá hvort þeir eru jafnir, ef öll mæld gildi eru jafnir. Og ef öll mæld gildi eru jafnir, þá vitum strengir eru sönn. Endilega, það er hvernig við myndum gera það? Hefur einhver rugla á einhverju af þessu? Í heild hugmynd um hvernig strengi eru í raun bara ábendingum, og hvernig þeir gera í raun ekki til? Og hvers vegna við fáum villur eins og the vegur við að fá það? Vegna þess að ég ábyrgð þú krakkar, ábendingum og band úthlutun og minni eru að fara að koma upp. Já? Áhorfendur: [inaudible] dereference það, þú setur bara stjörnuna [inaudible] Prófessor: Hægri. Svo til að derererence músina leið að fara á þetta netfang á músina og fá upplýsingar, gildi þar. Og leiðin til að gera það er stjarna músina. Ekki rugla ekki. Áhorfendur: [inaudible]. Prófessor: Já. Áhorfendur: Svo þú getur bara skrifað ef stjörnunnar s jafn jafngildir stjörnu T. Prófessor: Jæja, engin. Nei Áhorfendur: Það er ekki nógu gott, ekki satt? Prófessor: Það er ekki vegna þess að þú ert merkir aðeins fyrsta stafinn. Þú ert líklega að fara að þurfi einhvers konar lykkju sem iterates gegnum hvert einasta persóna í báðum strengi. Já. Svo ef þú vildir bara að athuga ef þeir byrjuðu með það sama, þú getur gert ef, stjarna s er jafnt stjörnu t. Þá veistu að minnsta kosti þeir byrjaði með sama staf. Já? Áhorfendur: Svo leið þú sem myndi vera eins embed for lykkju eða músina? Prófessor: Já. Nánast bara til hliðar. Mundu, David í bekknum getið frjálsa nokkur dæmi um setningarleg sykur? Og hann hafði þetta mjög ruglingslegt hlutur af stjörnu t plús einn, þar sem það myndi fella gegnum og það færa bendilinn? Því auðveldara leiðin til að gera þetta er bara ekki af i. Svo er það bara array. Leiðin sem þú vilt hafa fyrir lykkja sem hljóp frá núll til i, þar i er lengd þess sem er band, þú gætir bara skrifa að í stað þess að gera það allt bendi tilvísun hlutur. Svo þetta eru nákvæmlega jafngildar í tölvunni þinni. Þið verður sennilega ekki þarf að vita það, en það er gott að bara svona hafa í bak hugann. Bara veit að tölvan viðurkennir mismunandi blokkir af kóða sem sama. Vegna þess að þetta er bara miklu meira notandi vingjarnlegur fyrir okkur að kynna það eins og það er fylki. Það er bara auðveldara. Áhorfendur: Svo nota strlen að eins, get-- Prófessor: Já. Áhorfendur: OK. Prófessor: Þú gætir nota strlen eða, ef þú ekki hafa strlen þú getur bara gert upp þar til þú högg sviga núll fyrir bæði. Annaðhvort myndi vinna. Já. Áhorfendur: Svo það er að dereference hverjum einn staf ef við vorum í raun skrifa þennan kóða, við gæti bara gert t sviga i eins með stjörnunni fyrir framan það? Prófessor: Já, jafngildir jafngildir s krappi i, og þá halda áfram i niður þar til þú högg the enda. Já, það er það sem þú myndir gera. Og ég í raun hafa a næsta dæmi um þegar við í raun skrifa strlen svo þú krakkar vilja konar af fá að leika í kring með það aðeins. Svo er allir ljóst á bara minni, strengir, ábendingum, gæði heimilisföng? Sumir meiri hugtök sem þú Vilji fyrir víst þurfa að vita á spurningakeppni á morgun. Allt í lagi. Good. Jebb. OK, svo eitt sem við munum einnig spyrja þú, eins og við gerum á hverju ári á spurningakeppni, er, geri ráð fyrir að þú hafir gleymt (sem við virðumst gleyma að gera árlega) þar sem haus skrá strlen er lýst. Og svo við verðum að umrita það sjálf. Hér fyrir neðan er listi af leiðbeiningum að við getum kynna þér krakkar þar sem þú færð að gera ráð fyrir að s strengur verður ekki null. Þú getur gert ráð fyrir að s verður sagt með sviga núll. Svo þú veist það er það það er að fara að enda með. Og, til dæmis, að Lengd halló væri fimm. Svo er hægt að gera ráð fyrir að halló verða fimm, H-E-L-L-O. Þú þarft ekki að gera ráð fyrir að rass núll reikninga fyrir lengd. Þetta síðasta sem hér, ekki hafa áhyggjur af heiltölu flæða. Hefur einhver man hvað heiltala flæða er? Áhorfendur: gengur út á Lengd [inaudible]. Prófessor: Já, getur þú útskýrt svolítið, hvað þýðir það? Áhorfendur: Svo held ég að það fer aftur til stýft dæmi fyrr. En ef þú ert bara svo margar tölur að fara út fjölda bita að þú getur raunverulega tengja það að það muni bara svona skera burt. Prófessor: Já, svo á a dæmigerður tölva, hversu margir bitar höfum við? Áhorfendur: 32? Prófessor: Já, 32, ekki satt. Og svo er, að það, fjórir milljarðar, tveir milljarðar? Fjóra milljarða, allt að fjórum milljörðum jákvæðar heiltölur, ekki satt? Tveir milljarðar neikvæð, tveir milljarðar jákvæð, fer eftir því hvernig þú vilt gera það. Og svo í rauninni að við getum haft nóg heiltölur sem getur farið upp til tvo til 31. mínus 1, ekki satt? Vegna þess að þegar við högg tvo til 32., eigum við ekki hafa þessi mikið minni í tölvunni okkar. Og svo, fræðilega, ég gæti komið upp með a tala sem er, eins og, tvisvar til 46.. Það er a gríðarstór rass tala, en fræðilega þú gætir. Og svo heiltala flæða er ef þú reynir að búa heiltölu sem gengur út hvað tölvan þín er fær um að geyma. Og svo þú krakkar fyrir þetta dæmi hafa ekki að hafa áhyggjur af okkur að gefa þér risa band sem er tvisvar til 32. stafir lengi. Sem myndi vera virkilega meina. Allt í lagi, þannig að ég ætla bara að fara að gefa þið burðargrind þetta. Þú ert að fara að búa til virka heitir INT strlen þar a fara í, bleikju stjörnu, eða band, bendi á streng sem heitir s. Allt í lagi, allir afrita það niður. Cool. Oops-- önnur leið. Svo er þetta góður af eins og a erfiðara stykki af vandamálinu, þannig að ég ætla að gefa ykkur kannski fimm til sex mínútur til kyns brainstorm og skrifa þessa aðgerð út. Áhorfendur: Við gerum ekki reikningur fyrir [inaudible] við þurfum ekki að nota tölu? Prófessor: Nei, þú gerir það ekki. Ég skal gefa ykkur vísbendingu. A meðan lykkja getur verið mjög gagnlegt hér. Já. Hér er nammi. Candy mun einnig vera í boði fyrir próf, held ég. Svo þú krakkar vilja vera allt sykruðum upp á morgun. Getur I-- þú fékkst það. Áhorfendur: OK. Prófessor: Já. Kannski 30 sekúndur eða svo. Allt í lagi, ef þú ert ekki gert, engar áhyggjur. Við munum fara í gegnum þetta saman. OK. Þannig að ég ætla að bara skipulag sem undirstöðu uppbyggingu fyrir þessa aðgerð hér. Int strlen. First, er einhver langar að segja mér hvað það INT táknar? Við þurfum að hafa í þessa aðgerð. Áhorfendur: strlen [inaudible]. Prófessor: Nákvæmlega. Svo hvað gerist hér, við þurfum að skila heiltölu. Og eins og tilgreint er í sérstakur, við viljum að return-- Fara fyrir það krakkar, bara halda áfram. Það er allt gott. Borða það allt svo ég hef ekki að taka það til baka, reyndar. Int merkir bara að þú ert fara að vera aftur heiltölu. Hvað er þetta bleikju stjörnu s? Hvað þýðir það? Áhorfendur: Eins, hvað er að vera inntak í. Prófessor: Nákvæmlega. Og hvað er nánast sama og bleikju stjarna? Áhorfendur: String? Prófessor: Nákvæmlega. Svo er allt sem við erum að gera að gefa þetta bendi á streng. OK. Cool. Einnig, ekki gleyma, ef við gleymum að gefa þér þessar sviga, ekki gleyma að skrifa þau sjálfur. Vegna fræðilega, kóðinn er rangt ef þú gleymir að skrifa þá. Bara alltaf gaum. Eins, lítill hluti sem þú tekur ekki þegar þú ert að forritun á fartölvu, vegna fartölvuna gerir það fyrir þig? Ekki gleyma þegar þú ert að skrifa með höndunum. Já? Áhorfendur: En hvernig rangt? Eins fáum við allt vandamál rangt? Prófessor: Nei, nei. Ekki hafa áhyggjur. Það er í raun fræðilega mögulegt fyrir þig að fá fullt stig á spurningu jafnvel ef númerið þitt mun aldrei hlaupa í raunveruleikanum. Ég legg til að þú reynir ekki til að gera það gerast. Til dæmis, eins og ef allt það er hér er rétt, en þú gleymir tvípunkt eða krappi, númerið þitt mun ekki í raun að keyra. En við getum verið miskunnsöm. Já? Áhorfendur: Þarf að tjá sig um rithönd okkar? Prófessor: Nei, nei, nei áhyggjur um það. Engin athugasemd. Stíll ætti að vera góður. Eins og, ekki Smush ekki allt á einni línu. Við munum ekki vera hamingjusamur með þér ef þú gerir það. Er einhver vilja til að gefa mér fyrstu línu? Hint, það er mjög auðvelt. Já? Áhorfendur: Int, n jafngildir núll. Bara setja upp gegn. Prófessor: Svo við vilja sumir konar teljara, ekki satt? Ég ætla bara að fara að nefna það "telja" fyrir sakir sýnilegur. Hvað viljum við að setja það jafnt? Áhorfendur: Zero. Prófessor: Já. Semíkommu. Það er líka mjög undarlegt að teikna semikommum. Bara æfa að gera það. Þannig að við viljum fyrst að hafa teljari á int. Vegna þess að við viljum að telja upp hvernig margir stafir eða stafir eru í þessum streng, ekki satt? Mjög auðvelt fyrsta skref. OK, kannski aðeins flóknari nú, hvernig eigum við að fara að gera það? Er einhver vilja til að gefa mér línu af kóða sem kunna að vera fær um að hjálpa lykkju í gegnum hvað þetta er? Já, hugrakkur sál í bakið? Áhorfendur: OK, svo á meðan lið stjörnum, sem já, stjarnan s, er ekki jafn núlli, þá að gera eitthvað? Prófessor: Það er í raun, mjög nálægt. Mjög nálægt. Þannig að ég ætla að fara að takast tvennt með það. Fyrst af öllu, er það ekki einmitt núll. Hvað er það? Það er null Ljúka, sem er skástrik núll. Svo þeir eru mismunandi í Skilmálar hvernig þeir eru geymdar. Svo þú ert mjög nálægt. Og í öðru lagi, við viljum ekki bara færa bendilinn. Við viljum raunverulega aðgang að gildi, ekki satt? Og svo hvernig gerum við það? Mjög auðvelt. Ekki hugsa um ábendingum, ekki hugsa um minningar. Fara aftur í viku tvö á þessu námskeiði. Áhorfendur: [inaudible]. Prófessor: Eins, manstu? Hvað eru strengir? Hvernig eru þeir í minni? Áhorfendur: Þeir eru hækkaðir. Prófessor: Þeir eru hækkaðir. Svo hvernig gera við aðgang hver persóna inni? Áhorfendur: [inaudible]. Prófessor: Nákvæmlega. Svo hvað fer inni hér while--? S af - Áhorfendur: I. Prófessor: Oh, ég er ekki til, er það? Áhorfendur: Oh, telja? Prófessor: Við getum bara nota telja, getur ekki? Áhorfendur: Sorry, ég kallaði það ég. Prófessor: Já, það er allt gott. Við höfum breytu upp hér það er þegar verið lýst eins og gegn okkar. Svo hvers vegna eigum við ekki að nota bara sem að fara í gegnum while lykkju? Er að skynsamleg? Svo á meðan s af count-- er einhver vilja að gefa mér hvað gerist eftir hér? Áhorfendur: Það er ekki jöfn. Prófessor: Er ekki jafnir, ekki satt? Það er Bang jafngildir, upphrópunarmerki jafngildir, hvað sem þú krakkar vilja til að kalla það ekki equal-- Áhorfendur: [inaudible]. Prófessor: Já. Mundu einn vitna er fyrir bleikju, gæsalappa eru fyrir streng. Verið varkár þegar að nota þau. Svo þegar við erum að horfa í gegnum array verður síðasti stafur, við vitum að við viljum ekki það að vera skástrik núll. Svo á meðan. Við erum ekki í lok band. Hvað viljum við gera inni? Áhorfendur: Við viljum bæta við gegn svo það skiptir máli plús plús? Prófessor: Nákvæmlega. Svo hér erum við að fara að gera telja, telja plús plús. Vantar eina línu. Við erum næstum þarna. Hvað erum við að gleyma að gera? Áhorfendur: Reglulegur núll? Prófessor: Þú vilt að skila núll? Áhorfendur: Nei, aftur til strlen. Bíddu. Prófessor: Hver er geymt í? Áhorfendur: Count. Telja. Prófessor: Nákvæmlega. Svo hér erum við að fara að fara aftur telja. Vegna þess hvað við erum gera hér ultimately-- við höfum gegn breytu sem er að fara að hækka í band okkar. Við erum að fara að halda áfram, halda fara, í kring og kring í þessari lykkju. Og á meðan við erum ekki á enda þetta band, sem er null Ljúka. Og í hvert skipti sem við förum í gegnum það, við erum að bæta við borðið okkar. Og við erum að fara lengra eftir í þessu fylki. Og í lokin, þegar við högg núll Ljúka, við vitum, ó, við getum brjóta, skila telja. Við höfum strlen okkar. Er allir fá hvernig þetta var hrint í framkvæmd? Þó loops-- Ég veit að við höfum ekki gert of mikið með þeim, en þeir eru yfirleitt mjög gagnlegt ef þú veit ekki hvað þú ert að stoppa ástand endilega að vera. Spurning? Áhorfendur: Getum við skrifað null á meðan ástandi? Prófessor: Þó? Já, svo í þessu vandamáli sem ég átti þig krakkar gera ráð fyrir að s verður ekki null. Vegna muna, fræðilega, ef ég gaf þér bendi sem var of stór á minni, það myndi gefa þér null, ekki satt? Það er það sem rekstrartekjur kerfið myndi gera. Þannig að ef ég hef ekki sagt yður að gera ráð fyrir s væri null, þú þarft að athuga. Svo hér, myndir þú gera, ef s jafngildir jafngildir null, aftur einn. Eitthvað svoleiðis. Áhorfendur: [inaudible] núll. Prófessor: OK, ég segi þú hvers vegna við getum ekki gert það. Vegna þess að muna í minni, hægri, hér. Við munum fara hér. Þú hefur got risastór blokkir minni allt með grids að geyma mismunandi gildi, ekki satt? Og svo is-- allt band fyrir dæmi, ef við erum að inntak halló, það myndi vera H-E-L-L-O sviga núll, ekki satt? Og þá hver veit, eins og af handahófi hlutir sem eru hér á eftir henni. Við í raun ekki vita hvað er þarna. Og svo ef þú varst að gera í stað þess að sviga núll, null, það má ekki vera null. Vegna þess að það bara getur þýtt sumir handahófi annar hlutur sem tilheyra ekki í band. Og svo leið að við vitum alltaf að band endar er með sviga núll. Og svo er það alltaf hvernig við athuga að sjá fyrir endann á streng. Null, allt sem leið er ef þú ert með non-músina, fyrst af öllu, eða ef minni þitt er bara svo stór að þú getur ekki farið með hana, þá myndi það vera null. Svo vera mjög varkár þegar aðgreining munurinn null og sviga núll. Já. Allir í lagi með þetta? OK. Svo ég hafði ykkur skrifa út strlen. Álita við gætum líka spurt að skrifa út A til I, muna að "Atwoa" eða hvað þú krakkar vilja til að kalla það? Sem virka á Vigenère og Caesar, sem breytir ASCII gildi til heiltala? Það hefur einnig komið upp á undanförnum Skyndipróf aðgerðir sem við höfum beðið þig að skrifa. Nánast allir virka sem þú hefur notað og er mjög auðvelt að skrifa sjálfur, skynjara eins og er lægri, er efri, að lækka, að efri. Aðgerðir sem myndi breyta band frá lágstöfum í hástafi. Við vitum öll hvernig á að gera það, ekki satt? Það er nokkuð auðvelt. Langar bara að ganga úr skugga um að þú can-- það er sama hugsun aðferð. Þú iterate bara í gegnum og þú snúa hlutum. Þú annað hvort telja eða þegar þú kveikir hlutina öðruvísi. Ég myndi suggest-- I veit ekki hvort við erum að fara að biðja þig um að leggja á minnið hvað fjármagni eða höfuðborg Z, eða lágstafir A eða lágstafir z eru í ASCII, en ég myndi stinga kannski skrifa það niður ef við gerum. Bara svo þú krakkar hafa tilvísun. Eins hástafi A er, hvað, 197? Og þá er lágstafir eins 50 og eitthvað. 65, já, þar sem þú ferð. Svo bara ansi mikið vita munurinn á milli þeirra er 32. Það er mjög mikilvægt. Já. Er ég góður á þetta? OK. Áhorfendur: Við gætum fræðilega skrifa sumir af þessum niður eins vel á little-- okkar Prófessor: Þú fræðilega gæti bara afrita virka niður. Það er rétt. Áhorfendur: Ekki [inaudible]. Prófessor: Þú krakkar hafa blað. Þú krakkar hafa minnismiða lak. Þú getur slegið það. Þú getur skrifað það. Þú getur gert hvað sem þú vilt með það. Já. Svo fræðilega, ef þú vilt, fara til. Áhorfendur: [inaudible] en við gerum ekki raunverulega endilega að muna gildi, við getum bara nota til að efri eða lægri virka, ekki satt? Prófessor: Já. En ef við gaf þér spurningu sem segir skrifa efri, þá þyrfti að skrifa það. Svo þú krakkar gera ráð fyrir að þú krakkar hafa aðgang að öllum aðgerðum, en ef þú vilt nota til að efri eða lægri, hvað hefur þú einnig að gera? Áhorfendur: [inaudible] nota CS50 [inaudible] Prófessor: Er það CS50.h? Verið varkár þar. Svo að efri, að lækka, er efri, er lægra, aðgerðir sem fela í sér string meðferð eru allt annaðhvort innan ASCII eða innan stærðfræði bókasafn eða innan band bókasafn. Svo ef þið nota þær aðgerðir, vera varkár að muna að fela í sér að haus. Svo kannski líka eitthvað sem þú langar að fela í blaði þínu, hvað eru haus? Hvað eru bókasöfn þú hefur verið að nota? Hvaða aðgerðir eru innan þessara bókasafna? Það er mikilvægt. Já? Áhorfendur: Gætum við bara lögga út og gera hashtag gegnum algerlega Öll þau bréf sem við höfum nokkru sinni séð eins og á öllum spurningunum? Prófessor: Þú gafst. Ég veit ekki hversu ánægð við erum að fara að vera að einkunn sem quiz þegar hvert stykki af kóða er tvisvar sinnum eins lengi og það þarf að vera. Ég veit ekki, við gætum taka burt stig fyrir stíl. En fræðilega þitt númer væri rétt. Þú krakkar gætu lögga út og bara fela allt. Það er fínn líka, já. Áhorfendur: [inaudible]. Prófessor: Já. Ég myndi stinga upp á að gera það þó. Já. Áhorfendur: Cool. Prófessor: Góð spurning. Áhorfendur: Svo versta falli. Prófessor: The versta. Ef þú gleymir algerlega, þú gætir gert það. Já. Já, númerið er rétt þar. Ég notaði n stað telja en þér vita, hvað flýtur bát. Áhorfendur: Bíddu, þannig að við þyrfti ekki að hashtag eru vegna þess að við erum byrja á int? Prófessor: Já, ég ráð bara að við vorum beðin um að skrifa virka. Ef þú vildir vera örugg, þú gæti líklega setja það þar. En ég bara vissi ekki að nenna, já. Ég veit ekki einu sinni ef þú þurfa allir bókasafn fyrir þetta. Þar sem þú ert í raun ekki að prenta út neitt eða neitt, ekki satt? Já, ég veit ekki hvort þú þarft bókasafn. OK. Þetta er líka svolítið meira á línurnar minni meðferð. Þessi tegund af hluti erfiður. Hugsaðu um þetta. Þú ert með fall sem kallast Störf. Ég hefði getað nefnt það hvað, en ég valið að nefna það Störf. Ég hef það ofan main minn. Mundu, þú vilt hafa fall eftir Main, þú vilt vera viss um að þú fela í frumgerð af the toppur. En í þessu tilfelli var það svo stutt sem ég fann að ég gat bara fela það topp helsta. Ég þarf ekki að hafa frumgerð, vegna þess að það er nú þegar skrifað hér að ofan. Svo allt sem ég er að gera í meginvirkni mínu er að skapa heiltala x jafngildir 10. Ég ætla að hringja Störf virka mína, og þá prentun upp eitthvað. Og þá er það í raun hvað Func er að gera. Þú krakkar vilja til að hugsa um þetta. Vegna þess að það er dálítið erfiður. Það er mjög, mjög erfiður, reyndar. Hugsa um hvað þetta program væri outputting. Ég skal gefa ykkur tvær mínútur. Góðar samræður? Áhorfendur: Já. Prófessor: Já. Allt í lagi, þannig að þetta er erfiður fyrir ástæðu. Og þetta er ástæða þess að ég vildi koma þessu athygli allra. Er einhver vilja til að gefa mér tillaga, að gera tilraun? Hvað myndi þetta prentað út? Algerlega í lagi ef þú ert rangt. Já? Áhorfendur: Ég held að það er 100 og þá 10 á tveimur aðskildum línum. Prófessor: Og 10? Hefur einhver hefur einhverjar aðrar gátur? Já? Áhorfendur: Kannski bara 10 því Störf er ekki aftur neitt? Prófessor: OK, þannig að við hafa giska númer eitt er að giska númer tvö er bara að fara að prenta út 10. Hefur einhver hefur einhverjar aðrar gátur? OK. Svo skulum ganga í gegnum þetta, ekki satt? Alltaf þegar þú fá a stykki af kóða, ekki bara horfa á það og vera eins, Ah, það er svo mikið efni! Ég er svo ruglaður! Eins og að róa þig niður. Bara veit að þú gætir bara líta í gegnum kóða línu fyrir línu. Það er allt það er. Það er eins og að lesa bók. Svo með hvaða aðgerð, við byrjum alltaf á helstu. Þannig að við erum að fara að byrja á int main tóm, jafnvel program er þegar keyrt niður, hægri? Byrja á í helstu tóm. Int x jafngildir 10. Þannig að ég ætla að eyða þessu. Ég ætla að draga minni bara svo þú krakkar geta konar sjá hvað er að gerast. Mundu niður hér höfum stafla okkar? Hér höfum við okkar hrúga einhvers staðar hér. Stack vex upp, ekki satt? Og innan stafla, hefur þú mains eins vel og öll mains staðbundnar breytur. Svo hér, int x samsvara 10. Innan meginvirkni okkar erum við búa til breytu sem heitir x. Við erum að setja það jafnt og 10. Hér getur þú hefur fengið nokkrar x, og þú ert setja sem jafnt og 10, hægri, innan helstu. Allir góður? Virka. Svo nú, innan helstu okkar virka, við erum að kalla virka við höfum skrifað hér að ofan. Þannig að við erum nú að komast inn í annarri aðgerð. Við erum að fara að búa til annað breyta int x jafngildir 100. Hvað er að gerast hér á mánudaginn? Hvað gerist þegar þú hringir í fall sem býr til nýjar breytur? Hvað gerist hér á mánudaginn? Áhorfendur: [inaudible] hrúgur ofan? Prófessor: Já. Svo það skapar í raun afrit. Og það svona hrúgur á toppinn. Hugsaðu um stack-- stafla á bókum, stafla af neinu. Hrúgur ofan, fyrst í síðustu út, endast inn, fyrst út. Svo það er að fara að búa til x hér. Það er að fara að hafa allt funcs breytum. Great. Svo nú höfum við tvö mismunandi x er það tákna tvær mjög mismunandi hluti. Þá erum við að fara að prenta út tölunnar x. Svo skulum prenta 100, ekki satt? Vegna þess að hér hún er 100. Svo er það fyrsta sem að það er að fara að prenta út. Eins og þetta skilar engu, nú að virka, þessi lína í helstu er gert. Allir góður við mig svo langt? Þannig að við erum nú í gegnum tvo út af þrjár línur af meginvirkni okkar. Nú erum við að fara í þriðju línu. Við erum að fara að printf. Hvað er þetta x innan main? Hvað þýðir það tákna? Hvaða gildi x núna? Áhorfendur: 100. Prófessor: Það er 100? Áhorfendur: Enn 10. Prófessor: Enn 10. Já. Vegna muna, innan Störf okkar, x er jafnt 100. En ef við aftur til baka til meginvirkni okkar, þá breytu er geymt í mismunandi stað á mánudaginn okkar. Svo nú þurfum við að fara aftur til Helstu stafla, mains staðværar breytur. Og hér x er jafnt og 10,. Og svo erum við að fara að prenta út 10. Svo hún var alveg rétt. Við erum að fara að hafa framleiðsla 100 og 10. Já? Áhorfendur: Þegar þú malloc, er það hrúga eða stafla sem er [inaudible]? Prófessor: Þegar þú malloc, þú ert að taka minni frá hrúga og úthluta því. Svo að þú þarft ekki að skipta sér af einhverju af þessu. Svo ég giska á stærri takeaway hér er eitthvað sem kallast svigrúm. Fyrir þá sem voru á endurskoðun fundur í gærkvöldi, við ræddum stuttlega um þetta. Gildissvið skilgreinir hvernig og þegar breytur til. Eða innan hvaða ramma gera breytur til. Ansi mikið þumalputtaregla almennt er, variables-- þinn ef þú býrð þá inni hrokkið braces-- þeir eru aðeins innan þessara hrokkið axlabönd. Svo til dæmis á starfsemi okkar á Störf þú sérð þessa tvo axlabönd. Ef þú ert að búa eitthvað inni í honum, líkurnar eru þú ert að gera er búa stafla og geyma það þar. Sami hlutur í main. Það er bara geymt inni main. Einnig þú vilt vera mjög, mjög varkár hér. Vegna umfang lánar einnig sjálft að mismunandi dæmum. Svo til dæmis fyrir lykkja, fyrir INT i jafngildir 0. Ég er minna en, ég veit ekki, 10. Ég plús plús. Og þú hefur fengið kóðann inni af því, ekki satt? Hvar er þessi breyta, i, í raun aðeins til? Aðeins inni þinn fyrir lykkju. Svo ég veðja margir af ykkur hafa líklega upp þessa villu þegar þú ert að gera áætlanir í psets þínum. Hversu margir af ykkur hafa reynt að nota i utan fyrir lykkju og hafði villu? Eins og unreferenced heiltölur eða eitthvað svoleiðis? Ástæðan fyrir því að það gerist er því hér að þú ert að skapa eitthvað sem aðeins er innan þinn til hliðar. Og ef þú reynir að nota það, ég er ekki í raun fyrir hendi utan þess. Svo í rauninni tölva segja, ég veit ekki hvað þú ert að tala um. Allt sem ég veit er að gera ég var hér, en nú er ekki lengur. Svo ef ég væri að búa til fyrir lykkju inni, ekki satt? Og ég ætla að búa til annan, eins int j, og hafa það að gera hvað. Og þú ert með númerið inni af að lykkja j aðeins er til hér. En það er einnig til í i. Og svo, j aðeins er til innan þetta fyrir lykkju, en ég er til í heild hlutur. Allir ljóst? Sama með skilyrt yfirlýsingum ef þú vilt búa til neitt. Sama með meðan lykkjur ef þú vilt að búa til neitt. Það er eitthvað til að vera mjög, mjög varkár um. Þannig að þetta var mjög gott vandamál í skynja að það sýndi tvennt. Það sýndi fyrst, umfang. Og það sýndi einnig minni úthlutun. Þar sem þú krakkar ættu að vita að aðgerðir vaxa upp í stafla. Og að þegar þú hringir aðgerðir, þú ert að búa til í raun nýtt stafla af minni. Það er mjög mismunandi frá hvað mains minni þitt er. Já. Whew! Allir OK á það? Það var ruglingslegt. Mjög gott efni til að fara yfir, vegna þess að þú ert líklega fara að fá smá erfiður hlutir eins og að á spurningakeppni. Já. Cool. Ég mun setja þig fá 100 á einn línu og þá 10 hins vegar. Já, mjög gott. OK, nú þú krakkar vilja fá tækifæri til að vera TAS. Þú færð að svara öllum yndislegu tölvupóst sem ég fæ stundum. Svo, Dear Andi, ég sé að ég held að eitthvað sé fara rangt með þýðanda mínum. Ég er viss um að númerið mitt er rétt, en ég að halda að fá skiptingu kenna hvert skipti sem ég hlaupa. Hvað er í gangi? Vinsamlegast hjálpa, hellingur af ást. Ef þið fengið eitthvað eins að hvernig myndir þú bregðast við? Þetta eru í raun mjög algengt spurningar sem við spyrjum þig. Er ef við munum gefa þér atburðarás, munum við gefa okkur ágiskun á hvað er að gerast. Einhver hefur stunga á hvað er að gerast? Já? Áhorfendur: Kannski dereferenced á null, eitthvað eins og músina er að benda á eitthvað null. Prófessor: Já, það myndi vera dæmi um þegar það myndi gerast. En hvað er stærri mynd um hvað er að gerast hér? Áhorfendur: Er það sem þú ert að reyna til að fá aðgang minni sem þú ert ekki eiga að hafa aðgang að? Prófessor: Nákvæmlega. Svo hugsa um seg kenna, beinhvítt mörk, takmarkað svæði í minni sem þú ættir ekki að vera að snerta. Svo ansi mikið þegar þú ert að reyna að index-- eins og til dæmis, þú hefur lýst yfir array frá núll til níu. En þú reynir að snerta þessi 10th gildi, þú hefur ekki aðgang að því. Þar sem þú hefur ekki lýst því. Og svo tölvan er að fara að líta á sem eins og, Uh Oh, þú ert að reyna að fara utan marka vísitölu. Ég ætla að gefa þér a skiptingu kenna. Finnst eins og hluti, ekki satt? Auka hluti, að kenna er þegar þú reynir að brjóta eitthvað og þú ættir ekki að vera þar. Skiptingu kenna er hvenær þú reynir að snerta hluti sem þú ættir ekki að vera að snerta. Svo algeng dæmi eru vísitölu. Auðvitað, ef þú ert að reyna að snerta það var null, sem myndi einnig vinna eins og heilbrigður. Ef bendillinn þinn var að reyna að snerta hluti sem ætti ekki að snerta, sem gæti einnig vinna eins og heilbrigður. Flestir oftast þú munt sjá þetta í array. Allir góður? Áhorfendur: Svo ef þú vilt að fá aðgang að 10. lið og það er bara takmörk níu eða eitthvað. Prófessor: Já, einmitt. Ansi mikið. Cool. Dear Andi. Þannig að við höfum fengið þetta frábæra það heitir konar. Ef Sameina sort-- eins og við sá í dæmis þegar Davíð gjörði allt hlutur í class-- hvers vegna, ef það er svo miklu hraðar en einhverju öðru konar, Hvers vegna eigum við nennir jafnvel að vita einhverju öðru konar? Hvað er þetta spurning í raun að biðja þig? Hvað er þrír word-- Áhorfendur: Hvað er málamiðlun? Prófessor: Nákvæmlega. Það er það spurningin er að spyrja. Hvað er málamiðlun milli Mergesort vísur öðrum toga? Áhorfendur: Tekur minni, ekki satt? Prófessor: Ert þú útskýra að aðeins meira? Fyrst skulum útskýra Slá saman verslun. Hvernig virkar mergesort vinna? Áhorfendur: Svo það virkar með skipta öllu í tvennt og þá setja það saman og endurúthluta það í röð, eins og í hvert skipti sem þú sameina setur. Prófessor: Nánast. Svo ég get teiknað þetta út, en það myndi taka mér fimm mínútur til að draga það út. Horfðu aftur á kaflanum skyggnur þar sem við fjallað mergesort. Nákvæmlega. Svo leið mergesort verk er það skiptir það í tvennt, og þá lítur bara á Fyrstu gildin þeim öllum og flokkar bara það. Stöðugt skapar nýja fylki og setur hlutina meira og meira í því skyni. Og svo á meðan það er virkilega, virkilega hratt vegna it's-- þú veist, tvöfaldur leit er n log n. Þú ert að búa svo margir mismunandi fylki sem þú ert með a gríðarstór magn af minni. Og svo á meðan það er hraðar, viðskipti burt hér er að þú ert að nota meira minni. Og svo, vísbending, tegundir og leitar voru þaktir mikið meira á þessu ári en þeir hafa verið í mörg ár áður. Þú krakkar ættu að sjá að endurspeglast samræmis á spurningakeppni. Ég myndi örugglega eyða tíma í að fara yfir hvað öll mismunandi tegundir ert, hvernig Tvíundarleit, hvernig línuleg leit vinna. Hvernig á að kannski sauðakóðanum kóða þá út. Hvað eru í gangi sinnum? Eitthvað eins og hlaupandi tímum er mjög auðvelt að afrita niður á minnismiða blaði, ekki satt? Það er mjög erfitt þegar þú ert í miðju Prófið og þú verður að reikna það út. Afrita það niður. Ég tryggja þér að þú ert að fara að þurfa að vita það. Hvað eru trade-offs? Versta tilfelli, besta smyndir fyrir alla þá, mjög fá að vita. Já? Áhorfendur: Þurfum að vita hvernig á að kóða mergesort? Eins þurfum við að muna endurkvæma? Prófessor: Ég efast mjög það, bara vegna þess að það er eins og nokkuð flókið. En það má ekki vera infeasible ef við biðja þig um að nota sauðakóðanum það út. Já. Já, OK, eitt. Þetta kann að hafa komið upp í þú síðast stykki í bita. Já? Fannst öllum heyra að? OK, svo ansi mikið fyrsta allt, hvaða tegund af program væri að gefa þér framleiðsla eins og þetta? Mundu að við spurði þig að læra um Þessi nýja tegund af kembiforrit tól? Hvað hét hann? Valgrind, hægri Það var forrit þar þú gætir kalla það gæti halda utan um allar minni þú ert nota í forritinu og var að fara á. Þannig að ef þú hefur fengið eitthvað, eins og, örugglega misst, 40 bæti í einni blokk. Sennilega þú ert ekki muna að losa það. Vegna þess að ef þú ert að nota bæti af minni, sem þýðir að þú hefur aðgang að minni, en þú hefur ekki verið fær um að losa. Svo þú vilt gera viss um að þú ert líka nota free-- það er function-- að losa alla af minni endurúthlutað með malloc. Cool. Svo þessari mynd, ég hef það upp. Það er alls staðar í fullt af fyrirlestrar, í fullt af bálkum skyggnur. Þú vilt virkilega að ganga úr skugga um þú veist bara allt um þetta. Annaðhvort í huga blaði eða ef þú langar að leggja hann á minnið, ekki hika við að. Það er virkilega, virkilega, virkilega mikilvægt. Einnig mjög góð spurning að við gætum beðið. Hvers vegna er val sort-- líta á Val sort-- öllum runtimes eru n veldi. Óháð því hvernig listi kemur að þú sem, svo hvers vegna er Selection sort-- Ég skal gefa ykkur 30 Annað hugsa um þetta. Vegna þess að það er góður af ruglingslegt. Það felur í sér nokkur huglæg hugsun. Hvers vegna skyldu hlaupa sinnum að vera sú sama í bæði verstu og bestu smyndir? Já? Áhorfendur: Vegna Val tegund hver stöðu eða pláss í þessu litla fylki hlutur eða hvað sem er. Svo jafnvel í besta falli, jafnvel ef það er fullkomlega raðað, það væri enn að vera eins, OK, einn. Í fyrsta lagi ég hafa einn. Og fara í gegnum þær allar. OK, einn er minnsti. Og þá fer það aftur og er eins, OK, tveir er minnsti af öllum hlutum. En það hefur enn að athuga hvert og eitt. Prófessor: Já. Svo til dæmis, við skulum bara segja Við erum með lista, þegar raðað, fylki einn til fimm. Leiðin að Val tegundir er að það fer í gegnum, það fer þessar tvær. Þá fer það þessir tveir. Og þá fer það, og það eftirlit. Hún heldur stöðva þá alla, án tillits til þess hvort eða ekki það er í raun flokkaður. Vegna þess að það er einfaldlega hvernig tegund virkar. Og svo er þetta spurning góður af eins huglæg spurning sem við spyrjum. Þar fyrst, þú að vita hvað Selection konar er rétt, að vera fær um að svara spurningunni. Þú verður að vera fær um að skilja hugtök hvað er að gerast. Og þá er hægt að sækja um það og hugsa, OK skulum ímynda sér versta falli. Þeir eru allir í röð. Hvernig væri að hafa áhrif á það? Hvað ef það er hækkandi röð? Ef það er þegar raðað? Hvernig væri að hafa áhrif á runtimes? Og þá Val tegund, þú munt taka að það er í raun ekki máli. Þar sem þú ert að skoða allt gildi óháð því hvað er að gerast. Og svo gott að muna. Hvers vegna sumir konar mismunandi frá öðrum og hvernig best og versta veg hefði áhrif á þeim öllum. Ég ætla að virkilega ná í konar því sem verður á prófinu. Já. OK. Það er sex mínútur eftir. Ég get tekið þrjár mínútur af spurningum. Ég get líka hanga í kring fyrir eins og 20 mínútur eftir kafla ef þú vilt að spyrja spurninga eins og heilbrigður. Hjartarskinn einhver hafa bara virkilega stutt spurningar eða huglæg málefni þeir eru óljóst um núna? Já? Áhorfendur: Getur þú talað svolítið hluti um Bita rekstraraðila? Prófessor: Já. Svo Bita rekstraraðila eru eitthvað sem þú sennilega gætir bara að setja á blað þitt. Svo quickly-- Ég vil ekki að fara of mikið í kjölinn vegna Harvard, í umfjöllun sinni fundur, huldi það nokkuð vel. Bita rekstraraðila, það er fimm af þeim, ekki satt? Það er þetta, sem er x eða virka, það er merkið, sem er og. Pípa, sem er eða. Og þá hefur þú tvo mismunandi gerðir af vaktir. Ef ég gef þér tvö gildi, ef Ég gef þér, eins og, einn og einn. Hvað myndi það meta að? Ef ég gef þér satt og rétt, satt? Hvað um satt eða ósatt? Samt satt, ekki satt? Vegna þess að það er óákveðinn greinir í ensku eða. Við munum líklegast gefa þér númer. Svo man, einn jafngildir satt, núll jafngildir rangar. Og við gætum gefið þér þetta og biðja þig um að segja okkur hvað gerist. Harvard fjallar það í fyrsta 10 mínútur af rannsókn fundur þeirra virkilega, virkilega vel. Svo þú krakkar vilja til að gera viss um að líta aftur á það. Áhorfendur: Er pisa5 að fara að vera á spurningakeppni? Prófessor: Nei Ekki einu sinni líta á pisa5 núna. Það er erfitt. Bara ekki einu sinni nenna að horfa á pisa5. Hins vegar, eins og sumir vísbendingar og tillögur, ég myndi stinga upp á þú byrjar pisa5 eins fljótt og prófið er lokið. Þetta mun vera erfiðasta viku, en þá verður þú krakkar verði afgreitt það á fjöllunum á veltingur grænt og hvolpa, og það er allt í lagi. Þessi flokkur fær veruleg auðveldara eftir fimmta pset. Áhorfendur: Viðtalstími eru sunnudagur, mánudagur? Prófessor: Já, svo viðtalstímar mun Sunday til mánudags fyrir pset. Viðtalstími kvöld meginatriðum verður bara að vera skoðun fyrir próf. Ef einhver vill koma inn og biðja TAS spurning, munum við vera þar. Ég tek kannski eina spurningu ef einhver er með spurningu? Já? Áhorfendur: Þegar þú ert skilgreina hnúður, [inaudible] ef þú segir hnút stjörnuna og þá næstu, er tölvan sjálfkrafa skilja að þú ert að vísa til annars bendi? Prófessor: Nei Áhorfendur: Þú þarft að relink það [inaudible]? Prófessor: Svo í rauninni er struct í hnút er, muna, það er eins og þú að búa til hnút og þá verður þú músina heitir næst. Allt sem þú ert að gera er að hafa uppbygging þar. Þú þarft að tengja sem bendillinn einhvers staðar. Svo tölvur ekki vita hvað það er að gera enn. Þú þarft að raunverulega tengja það þegar þú ert að búa tengda listanum þínum. Og það er það sem fyrst og fremst pset 5 verður á. Svo engar áhyggjur eitthvað af því núna. Áhorfendur: Svo að við þurfum ekki að einblína of mikið á tengilinn lista, bara almenn hugmynd? Prófessor: Bara ansi mikið stafla, biðraðir, hlekkur listum, tré, kjötkássa matskeið. Bara að vera fær um að vita hvað þeir eru. Við erum ekki að fara að spyrja þú vilt neitt sérstaklega vegna þess að við höfum í raun ekki gert a pset að nær einhverju sem enn. Svo í síðustu tveimur mínútum áður Ég setja þig ókeypis að drepa þetta próf. Nánast eins, hugsa um hvernig langt þú krakkar hafa komið í þessum flokki. Ég man þegar viku tvö í þessum flokki, sumir af þú eyða þremur klukkustundum skrifa vatn. Hversu lengi það myndi taka þig krakkar að skrifa vatn núna? 30 sekúndur, kannski? Hugsaðu um hversu mikið þú krakkar hafa lært. CS er mjög, mjög erfitt efni. Það er enginn vafi um það. Það er erfitt, það er hvers vegna enginn rannsóknum. Það er bara erfitt. Og það er alveg í lagi. Og ég er virkilega stoltur af því að allir hafi gert það svona langt. Psets eru ekki auðvelt. Þeir taka a einhver fjöldi af tími. Þú krakkar, ég mun aldrei biðja þig um að skrifa leikurinn 15 eða Vigenère á pset. Engin þörf á að bara Freak út um það. Allt sem við erum að prófa hér er að meta huglæg þekkingu þína, eins og heilbrigður eins og sumir af helstu færni þína í erfðaskrá. Prófið er hannað til að vera mjög krefjandi. Eins er það hannað fyrir þig að ekki fá 100. Það er einnig hannað fyrir þig að sennilega ekki vera fær um að ljúka í 75 mínútur. Og það er algerlega fínt. Ég er nemandi sjálfur. Ég veit, ég hata það þegar ég geng út af spurningakeppni vera eins, skít. Það var mjög erfitt. Sennilega hvað er að fara að happen-- og það er algerlega fínt, Ég ætla að segja ykkur núna. Leiðir á þessum hlutum eru ekki mikil á öllum. Og fyrir þá sem hafa verið að fá, eins og, Threes á vandamál setur þínum, það þýðir ekki að þú ert að fara að fá 60 prósent í þessum flokki. Ef þú færð 60% á quiz, sem er ekki að þú ert að fara að fá D í þessum flokki. Við sjáum, sérstaklega ég, fyrir þessir af þú í kafla mínum, Ég sé hversu erfitt þú krakkar eru allir að vinna. Og ég halda utan um það. Þú krakkar vilja vera fínn. Það er engin stofnana minni hamingja í lok misseris. Því að allir Harvard krakkarnir eru að segja vinir þeirra, ó, þú munt vera fínn. Enginn er að segja ykkur það hér. Svo ég verð að segja ykkur það hér. Þú krakkar vilja vera fínn. Ég er svo stolt af ykkur öllum krakkar. Prófið verður erfitt. Læra fyrir það, og síðan bara henda því í burtu. Fá tilbúinn til að læra nýja hluti. Og borða nammi. Við höfum höfum fullt af sælgæti. Fá góðan nætursvefn. Ekki ekki sofið, vegna sem myndi vera mjög slæmt. CS er mikið af rökfræði. Ef þú sefur ekki, getur þú ekki að virka, og heilinn getur ekki virka. Og ég ætla að vera hér næstu 20 mínútur ef einhver vill hanga í kring. Þið eru að fara að drepa hana. Gangi þér vel.