>> TANÁR: Tehát a napirendet ezen a héten, nem sok cucc.
De remélhetőleg igen, nagyon hasznos és az érintett srácok ezen a héten.
De megyünk költeni talán 15, 20 perc csak gyorsan beszél
A link listát.
Linklisták fognak fedezi a kvízt.
Így talán nem lenne nagyon hasznos tanulni egy kicsit arról, hogy mi is az.
>> Megyünk tölteni a hatalmas többsége a mai szakaszt
megy át kvíz nulla gyakorlatban problémákat.
És akkor majd mentse talán 20, 30 perc végén minden lappangó kérdések
valakinek van.
>> És akkor, az utolsó Öt perc, megyek
hogy egy szivattyú fel beszédében a kvíz.
Srácok minden akar lenni ide.
Mert lesz egy jó ideje.
>> Rendben, így néhány anyag linkre listán.
Hogyan Ők jellemzően strukturált van Van egy úgynevezett node, ugye?
Van ezek a dolgok úgynevezett csomópontok, amelyek struktúrákat.
Én megyek át, hogyan lehet létrehozni Egy csomópont a következő dia.
De lényegében az összes kapcsolódó A listák olyan adat, amelyet
már összefűzve keresztül mutatók.
>> És így az az előnye van Az egy láncolt lista fölött,
talán, mint egy tömb, a az a tény, hogy egy tömbben
szükség van egy összefüggő blokk memória minden ugyanazon a helyen, egy
a másik után, hogy képes, hogy az.
Mivel a láncolt lista, amit lehetett véletlenszerű kis bit memória
az egész számítógépen felfűzve össze mutatók.
>> És így Önnek információkhoz férhet hozzá,
hogy jön egymás után egyéb, a másik után
anélkül, csak egy hatalmas darab memória számítógép valahol.
És így ez az egyik fő oka annak, hogy használata link listája.
>> Másodszor, ez nagyon egyszerű, hogy dinamikusan átméretezi a kapcsolatot a listán, mert a tömb,
ha egy tömböt, Van egy bizonyos beállított értéket.
Mondjuk akartam létrehozni, egy sor 10 egészek.
Én létre egy sor 10 egészek, és ennyi.
Ez 10.
Nem tudom, mit tegyek ezután.
Ha akartam, hogy ez 11, nem tudom megtenni.
Ha akarom, hogy ez a 9., nem teheti meg.
>> Míg egy linket listát, felveheti és törölni, és helyezze, ahol csak akar.
Dinamikusan lakik a strukturálják itt, az adatok szerkezetét.
És ez ad nekünk egy csomó több hozzáadott rugalmasság
hogy általában nem Van tömbök.
>> Bárki zavaros az alapvető szerkezete milyen kapcsolat lista
vagy miért van, hogy az egyik több mint egy tömb?
Igen, megyünk át részletesen hogyan kell ténylegesen létre egyet.
De ez csak egyfajta Az általános értelemben most.
Hűvös.
És így tömböket összefűzve Ezen a szép kis dolog
úgynevezett csomópontok.
Minden olyan csomópont egy olyan típusú struktúra.
Ne feledje, a struktúra van, ha akart hogy hozzon létre egy bizonyos típusú változó
C, amelyre még nincs létezik, akkor, mint programozó,
valóban létre, hogy magad.
>> És így az ilyen típusú adatok szerkezet az úgynevezett egy csomópont,
ténylegesen általunk készített, hogy nem áll fenn a C önmagában.
És az is, hogy hozzon létre egy olyan van,
fejlécében typedef struct, amely azt mondja, a fordító vagyok
mintegy létrehozni egy struct.
>> Megyünk a nevét "node".
És belül megyünk arra, hogy egy változó,
ami megy értéket tárolnak.
És akkor mi is lesz a már egy mutató az úgynevezett "jövő"
hogy pont a következő csomópont a linket listán.
És akkor azt befejezed ki mellett csak ismétlődő csomópont ismét úgy
A fordító tudja, OK itt a vége az én struktúra.
>> És így ezen a módon, mi vagyunk a fajta létrehozásának egy aranyos kis tömb
fajta dolog egy érték és mutatóval.
És akkor linket mindet valamint azok a mutatók.
Hogy így minden fajta lehet felfűzve együtt egy láncban.
>> Hűvös.
Hallod, hogy egy kicsit jobban?
>> Közönség: Igen.
>> Tanár: Rendben.
Tehát az is, hogy, ahogy ti is látni, Egy tipikus linket lista felépítése
az, hogy van egy vezetője.
Megvan a fejét érték, amely nem fogtak bármely más mutató.
De ez meg fog mutatni, vagy hivatkozás, egy másik csomópont.
A csomópont után fog hivatkozni a csomópont után, és így tovább és így tovább
amíg meg végül hit A végén a link lista.
És ha csak nem lesz egy mutató van.
>> És igen, gondolom, mint, egy láncon, vagy akár Ha bármely srácok tette, nem tudom,
mint a Fruit Loops amikor kicsi voltál.
Tennéd karakterlánc őket együtt és viseld a nyaka köré.
Szerintem ez pontosan ugyanaz a dolog.
Van ilyen kis dolgot, amit lehet string együtt, hogy pont az egyik
után, hogy az egymás után , és így tovább és így tovább
amíg van egy lánc egy adatstruktúra
amelyek segítségével viszont tetszik.
>> Tehát az is, hogy ez a mi lenne jellemzően beszúrása vagy törlése
minden csomópont egy linket lista nagyon eltérő
attól függően, hogy hol, hogy csomópont.
Tehát, például azért, mert mutatók mindig
mutatott egy bizonyos értéket, Ha törölni vagy beszúrni egy csomópont,
azt szeretnénk, hogy győződjön meg arról, hogy a mutató A minden mutatva a helyes dolgokat.
>> Tehát, ha akarta potenciálisan helyezze új csomópont értéke egy
belsejében egy rendezett kapcsolat listát, mindannyian tudjuk itt
a képen, hogy fog menj be a fej és a két, ugye?
Mert egy jól illik oda.
De a mód, ahogyan ezt tenné ez az első dereferencing a mutató
fej-küldő, hogy az egyik.
>> De mi jön be a probléma itt.
Tud valaki, hogy mi a probléma van, ha mi voltunk az első hivatkozás feloldási
A mutató tetőtől egyet?
Milyen probléma lehet befut, ha megpróbáljuk adni ezt az első a mi tömb?
>> Közönség: [hallható]
Professzor: Pontosan.
Tehát itt van egy mutató volt Egyszer mutatott a fejét, hogy kettő.
De ha megszabadulni, hogy a mutató, pont ez az egyik,
most nincs ötletem hová menjen, hogy két.
Mert mint már mondtam, hogy van egy óriás darab memória a számítógép.
Mindezek csomópontokat véletlenszerűen tarkított
minden helyen a számítógép.
És nem tudom, hogyan hogy megy a megállapítás, hogy.
>> És így meg kell, hogy a mutatók mutatva minden csomópont a végén.
Különben, ha véletlenül követéssel, egyik
nélkül jelölne érték az első, te
csak fog veszíteni mindent utána.
>> Szóval mi megyünk tennie, akkor az első
szeretnénk létrehozni egy mutatót A csomópont beszúrni kívánt.
Pont ez, ahol szeretné szúrni azt,
majd később neked is pont fejét az egyik.
>> Van ennek értelme itt mindenki?
Nagy.
Gondold azt, hogy olyan, mint egy lánc.
Ha hozzá egy láncot, ez egyfajta ösztönös
hogyan mennék behelyezésével, hogy.
>> OK, így valójában sokkal rövidebb, mint gondoltam volna,
egy öt perces duma a linklisták.
Csak, hogy a srácok a alapgondolata, hogy mi az.
>> Itt van napirenden kvíz nulla.
Ne hagyd, hogy ez megfélemlíteni.
Tudom, hogy ez a sok információ.
Úgy néz ki, nagyon ijesztő.
Ez is egy csomó, én úgy gondolja, CSC típusú kifejezések.
Dolgok, mint hexadecimális húrok, mutatók, dinamikus memóriaterületekből
Nagyon ijesztő hangzású kifejezéseket.
>> De mi lesz megtörni őket le, hogy némi gyakorlattal problémák
úgy, hogy a srácok minden készek ehhez a vizsgálathoz.
Hányan vagytok srácok Már elkezdtem tanulni?
>> OK, srácok valószínűleg szeretne kezdeni a kezdetekhez
azon, hogy az adott teszt holnap.
Vagy csütörtökön néhányan.
Igen, így fogunk menni több mint egy kis gyakorlás problémákat.
Ha a srácok minden akarják venni ki egy papírlapot, egy ceruza.
Megyünk csak töltik a túlnyomó többsége a mai szakaszt
megy át bizonyos, hogy így a srácok egy ötlet, mire számíthat a kvízt.
>> OKÉ.
Pár logisztikai részletek is, bárki számára
aki nem volt, hogy ez a kapcsolat létezik, ha elmész cs50.yale.edu, az első
Ezen az oldalon van egy link hogy azt mondja: "A kvíz Zero."
Link visz oda.
Ha még nem olvastad, kérlek olvasd el.
Mert azt mondja, nagyon fontos információkat a kvízt.
>> Megyek húzza ezt ki hogy csak azért, mert fizikailag,
ha a srácok nem tudja, hol menni, mi lesz probléma.
És így ha az utolsó szempontjából val N, menjen a jogi egyetemre nézőtér.
És ha az utolsó kezdődik P Z, menjen Davies Auditorium.
És ez csak akkor érvényes a az emberek a szerda részt.
>> Ha figyelembe a kvíz Csütörtök, elmész SSS 114
ahol az előadásán tipikusan.
Közönség: [hallható]
Professzor: O Z-ig, fogsz menni a Davies nézőtér.
Én meg fog változni, nem?
>> Ó, igen, csak nem automatikus.
>> Ja, hogy te Christa.
Igen, az én hibám.
Ja, O Z-ig, fogsz menni Davies Auditorim.
Megyek erősít ez egyszer feltölteni.
Igen.
>> És akkor még valami Fontos szem előtt
az, hogy szerdán ha hivatalosan Beiratkozott a szerdai szakaszt,
el kell vinni a kvíz szerdán.
És ha beiratkozott, csütörtök el kell vinni a kvíz csütörtökön.
És ez alatt órakeret.
Hol, azt hiszem, ez olyan, mint a 01:00 02:15 szerdán és 2:30-03:45
csütörtökönként.
>> Ha van kibékíthetetlen konfliktusok, Dean kifogásokat az egyetlen dolog,
Sajnos, nem tudjuk figyelembe.
Mivel már volt egy túlnyomó többsége kérések
váltani szerdától csütörtökig.
Amit nem tudunk eleget, kivéve, ha van egy Dean kérésére.
>> OKÉ.
Szóval mielőtt elkezdjük a Pár gyakorlatban problémákat,
Csak megyek, hogy menjen át Andy hasznos tippeket a siker érdekében.
Srácok, ha tanulmány, hogy tényleg akar gyakorolni kódot írni kézzel.
Az első alkalommal, amit valaha vett egy CS kvíz, én nem
gyakorlatot kódot írni kézzel előtt, és ez rendkívül
Megdöbbentő, hogy milyen nehéz volt.
>> Ha nektek nem kap a szokása gépelési ki mindent,
Ami nagyon természetes, hogy képes volna automatikusan és
konzolok és pontosvessző van.
Amikor írsz ki kézzel, néha
Nagyon, nagyon könnyű elfelejteni pontosvessző, vagy elfelejti, hogy lezárja a konzol,
vagy elfelejti, hogy lezárja a vastagbél, vagy valami ilyesmi.
>> Tehát ha írsz kódot kézzel, ez egy nagyon más érzés.
Szóval srácok, ha dolgozik néhány, a gyakorlatban problémákat,
ez jó, hogy tényleg gyakorlatban ma.
Vagy holnap, azt hiszem, ha figyelembe véve a kvíz csütörtökön.
>> Másodszor, az utolsó, mint, Nyolc évnyi gyakorlat
kvízek interneten.
Az idei kvíz valószínűleg Nagyon, nagyon hasonlít mindet.
Ezek mind nagyon hasonlóak.
Ön milyen bejutni a stílus a típusú kérdés
kérünk, hogy milyen típusú funkciókat fogunk írni, hogy,
satöbbi, satöbbi.
>> Tehát hogy a gyakorlatban vetélkedők, Különösen szoros határidőre.
75 perc alatt megtenni a teszt nem sok időt.
Ez nagyon, nagyon hosszú.
És így srácok igazán akar hogy megbizonyosodjon arról, hogy a srácok
az a szokása, írásban kódot kézzel gyorsan.
Mert nem akarom az első ideje, hogy egy kvízt, amely ilyen hosszúságú
lennie a kvíz.
Titeket tényleg szeretnénk, hogy győződjön meg arról, hogy gyakorlatban előre.
>> Negyedszer, azt szeretnénk, hogy vizsgálja felül a Előadás és szekció diák.
Nem kell megjegyeznie a dolgokat.
Igazából, mindenki tette a Egy fehér lapot jegyzetek,
eleje és hátulja.
Ti is írja, vagy írjon.
Ha azon kapod magad szüksége, hogy memorizálni semmit, letette azt a lapot.
>> Garantálom neked, nem akarod, hogy beszorult a közepén, hogy a kvíz
is, mint, oh yeah, mi a futásidejű efféle versus efféle.
Csak tedd le, és másold egyenesen a megjegyzés lapot.
Akkor valójában csak használja a agy gondolkodni a problémák
ahelyett, hogy felidézni tényeket.
És így igazán kihasználni A minden rést részletek
hogy úgy gondolja, meg kell megjegyeznünk, puff le a felülvizsgálati lapot.
>> OK, bármilyen kérdése logisztikailag kapcsolatos kvíz
mielőtt elkezdjük néhány kvíz problémák gyakorolni?
Igen?
>> Közönség: Még nem volt esélye hogy nézd meg a kvíz [hallhatatlan]
de ez lesz alkalmazása többnyire,
Vagy van még lesz, mint a nyelvtudás kérdése?
>> Professzor: Ez egy csomó.
Szóval, ahogy én tenné le a kvíz
is-- én raktam össze Némi gyakorlat problémák
hogy húztam az összes vetélkedők.
De látni fogod, hogy van két fő típusú kérdéseket fogunk feltenni Önnek.
>> Az egyik egy nagyon alacsony szinten részlete cucc.
Adunk egy kis kódrészletet és azt mondják, van itt egy olyan problémára?
Mi lenne kinyomtatásával itt?
Mit fog ez a kód termelni, satöbbi.
Szóval nagyon alacsony szintű információk részleteit.
>> És a másik oldalon, akkor nagyon magas szintű tudás alapú kérdésekre.
Meg tudod magyarázni, mi a különbség egy bináris keresés
és lineáris keresés?
Miért akarnánk használja a másik felett?
Talán, mi a GDB?
Miért akarjuk használni GDB?
Magasabb szintű, az alapvető megértés kérdéseket.
Így látni fogod keveréke ők ketten a kvíz.
>> Még valami, mielőtt azt egyenesen bele?
OKÉ.
Közönség: Még egy.
Tanár: Ó, még egy.
Bocsánat.
>> Közönség: Igen, minden rendben.
Szóval azt mondod, 75 perc van Túl rövid, mint nem valószínű,
hogy mi lesz befejezni?
Vagy, mint, 75 perc Pontosan annyi időt
ahogy kellene, ha mi voltunk megfelelően előkészített?
TANÁR: OK, így az kvízjáték kihívást jelent.
Ez határozottan kihívást.
Meg fogja találni magát rövid idő alatt.
Akkor valószínűleg fog ütni, mint 10, 15 perccel a vége előtt, és hogy tetszik, szar.
Én már olyan sok maradt meg.
És ez teljesen rendben van.
Mindenki fogja érezni ugyanúgy.
>> Csak nagyon is tudatában van hogy mennyi idő van.
És ez az, amiért azt mondom, srácok a gyakorlatban vetélkedők.
Mert tényleg ad egy nagy értelme amit a teszt lesz, mint.
Tehát, ha találsz magadnak, hogy képes befejezte a gyakorlatban
vetélkedők egy jó adag idő, akkor idŒbeosztást is,
akkor nem lesz probléma szerdán vagy csütörtökön.
>> Hűvös.
Tehát, ha mindenki wants-- Azt hiszem, a legtöbb ember papírlap
ki már.
Megyek lényegében csak Önnek minta kérdéseket,
adni nektek, mint egy Néhány perc alatt megtenni őket.
És megyünk át, mint egy osztály mi a választ közülük.
>> Tehát ez egy nagyon tipikus korai kérdés fogunk
kérdezni, konvertáló szám közötti eltérő alapokon.
Bináris, mint ti is Emlékezzünk, az alap kettő.
Tizedes alap 10, vagy mi mint az emberek általában értelmezik.
Hexadecimális van 16 alap, amely a nulla a kilenc, valamint az A-tól F-
>> Szóval van négy szám vagyok kérve srácok átalakítani itt.
Adok tetszik, három- Négy perc átgondolni, hogyan
mi lenne járni megoldásában.
>> Közönség: Megengedi számológépek?
>> Tanár: Nem fogsz kell számológépek, igen.
Azt hiszem, az alapvető kívül, azt hiszem, ez Minden srácok fogják kérni, hogy tegye.
>> És csak azért, hogy ilyen van értelme Az, amikor mindenki kész, felnéz,
hullám, nem tudom, mosolyogni, nézd boldog, ha kész.
Igen.
Talán még egy pár percig.
>> Oké, hogy azt.
Én szándékosan fog adni nektek kevesebb idő
mint akkor valószínűleg kell némi ezeket a problémákat,
egyszerűen azért, mert azt akarom, hogy megbizonyosodjon arról, hogy átjutunk egy csomó probléma.
Így nem gond, ha nem Van egy esélyt, hogy befejezze.
Teljesen rendben van, amíg van egy ötlet, hogyan szeretné ezt.
Szóval menjünk előre, és nem az első.
>> Tehát az első, nem mindenki akarja mondani, bináris, mit mindegyik számjegy
képviseli szempontjából értéküket?
Igen?
>> Közönség: Két, hogy a teljesítmény nulla, 2-1.
Professzor: Pontosan.
Na.
>> Jobb, így jellemzően mikor vagyunk bázis 10
Mindezen képviselt, mint, 10 hogy az alap a nulla, ugye?
Ez az ön egyik lakása.
Minden 10-es hely van 10 hogy a hatalom egy.
Akkor 100 helye 10 hogy a hatalom a kettő.
>> Bármi bázis te megy köze pontosan ugyanaz a dolog,
csak egy másik alap.
Tehát bináris, minden, ami a bázis kettő.
Fogsz alakítani az összes számjegy két, bármilyen hatalom
A számjegy.
És így ebben az értelemben, mi lehet egy könnyebb út
hogy képes összeadja vagy összeadják a számokat, hogy
átalakulhat bázis 10.
>> Tehát nem mindenki akarja mondani, hogy mi a válasz az első egy van a bázis tíz?
>> Közönség: Két, [hallhatatlan]
Tanár: Igen.
Közönség: 42.
TANÁR: 42, tessék.
Szóval, ahogy kaptuk ezt a válasz az volt a csinál két első, ami két.
Plusz két harmadik, amely nyolc.
Plusz két ötödik, amelyek van bármi marad.
Összefoglalni őket, és ez 42.
>> Van valaki zavaros, hogyan jutottunk, hogy?
Tehát az alapvető kívül, mint Azt mondtam, akkor minden rendben lesz.
Ha nem, nos, mi lehet gyakorolni, hogy túl.
De ez rendben is van.
Hűvös.
>> Tudja valaki akar adni nekem a válaszolni, hogy a második is?
>> 50?
Jó.
Bárki világos, hogy mi mi van, hogy vagy?
Cool, én is a válaszok a következő dia.
Így nem gond, ha be kell másolni le.
>> OK, így hexadecimális egy kicsit trükkösebb.
de fogok mutatni nektek egy parancsikont, hogyan kell csinálni.
Tehát hexadecimális, ahogy emlékszem, az összes ez lesz 16.
És mert mi, emberek valójában nem Jelenleg 16 szám képviseli, hogy
megyünk a nullától kilencig, amely az első 10 értékeket, és akkor mi A-tól F,
amelyek a következő hat értékeket.
>> És így a legegyszerűbb módja annak, hogy megy minden bináris számot hexadecimális
hogy megtörjük őket a félidőt.
És így minden bináris szám odaadjuk akkor valószínűleg nyolc számjegy.
Tudod csak megtörni őket a közepén.
>> Tehát az első one-- egy egy, Egy egy, egy, egy, egy egy.
Fajta hiszem, tudod, felhívni perjel vagy vessző közöttük.
És ha csak átalakítani közvetlenül bármilyen
ez az, hogy az első számú hexadecimális,
és ami itt a A második hexadecimális.
>> Úgy emlékszem, a közönséges jelölést, Mit hexadecimális értékek kezdeni?
>> Közönség: Zero.
>> Professzor: 0X.
Tehát tudjuk, hogy minden alkalommal azt kérjük, megtérít minden olyan számot hexadecimális,
vagy bármikor, amikor lát kezdődő számot 0X,
Tudja, hogy ez egy hexadecimális érték.
>> És akkor fogsz kérni, hogy meghatározni, hogy mi ez a két számjegy.
És ahogy te teszed, tallying fel hogy a fél és tallying fel, hogy fél.
Tehát ebben a példában, mi lenne egy, egy, egy, egy lenni?
Milyen értéke lenne az?
Ez lenne F, ugye?
Ez lenne 15.
>> Szóval ez lenne F. One, Egy, egy, egy itt is
F. Tehát egy, egy, egy, egy, egy, egy, egy, Egy hexadecimális, mind ez a 0XFF.
Mivel ez a fele képviselteti magát F, az értéke 15,
és ez a fele képviselteti magát F, az érték 15.
Mert emlékszem, mi vagyunk számolás nullától kilencig.
Egy olyan, mint 10, B jelentése, mint a 11, F 15.
>> Van ennek értelme, hogy mindenki mennyire től kapott bináris hexadecimális?
>> Közönség: És igen, hogyan jutottunk el 15-re az egy, egy, egy, egy?
Tanár: Igen, ez a kettes, igaz?
Képzeld el, hogy ez csak egy bináris szám.
Szóval van két a nulladik, amely az egyik.
Közönség: Ó, oké.
Szóval csak teljes ki.
>> Tanár: Igen, és akkor csak teljes, hogy ki.
Ez minden van.
>> Közönség: OK.
>> Professzor: OK.
>> Közönség: Szóval megy a bináris decimális hexadecimális?
>> Professzor: Ez a legegyszerűbb módja ennek, igen.
Nem fogsz decimális, mert tizedes csak nullától kilencig.
Mi csak egyfajta bontással ezt fel két.
>> Közönség: [hallható] a tizedes találni
amit összeillik, hogy hexadecimális.
TANÁR: Úgy értem, te tallying felhasználásával alapvető matematikai.
Közönség: Igen.
Tanár: Igen, nagyjából.
Ez egy kicsit zavaró.
De csak tudom, hogy te oszthatjuk fel, amit
ez az érték a csak félidőt.
Nézd, mi ez a bináris?
Milyen szám ez?
Ez lesz valamit nulláról F.
>> Itt is lesz valamit nulláról F.
És akkor csak fel E két pont ott.
>> Közönség: OK.
Tanár: Igen.
OKÉ.
Szóval akartok próbálja meg a következőt akkor?
Nulla, egy nulla, egy, egy, nulla, egy nulla.
Adok nektek, mint 30 másodperc, mert valószínűleg nem tudja
A trükk, hogy hogyan kell ezt csinálni korábban.
>> OK, bárki szeretné, hogy ez egy lövés?
>> 0X5A.
Professzor: 0X5A.
5a.
Jó.
Szóval ez itt lenne be-- szeretne hogy mondja el, hogyan jutott ez?
Először is, hogyan került az öt?
>> Közönség: Mert nulla, egy, nulla, az egyik öt.
>> Tanár: Mindenkinek érti miért nulla, egy, nulla, egy az öt?
Van itt valaki.
Nincs semmi a két első.
Két második, akkor Van egy, ami négy.
Szóval hozzá a négy plusz Az egyik, hogy van öt.
Mindenki jó?
OKÉ.
És akkor mi lesz ez, és miért?
Milyen szám viszont egy felel meg?
>> Közönség: 10.
>> Tanár: És mi ez a bázis kettő?
Közönség: [hallható]
Professzor: Pontosan.
Tehát ez a második érték itt lenne 0X5A.
>> Mindenki jó, hogyan kell átalakítani?
Ez sokkal egyszerűbb, mint gondolnád van.
Csak azt akarom, hogy győződjön meg arról, Tudja hasznos tippek
és trükkök, hogyan kell csinálni.
>> Közönség: Miért csak osztott hogy a közepén, mint ez?
Csak olyan, mint, OK, én csak akkor fog törődnek ezek első [hallhatatlan]?
>> Professzor: Mert ez valójában a módon hexadecimális értékek szerepelnek.
0X, hogy valójában azt jelenti, nem más, mint mondja,
hogy ez egy hexadecimális szám.
És ez mindig jelent Az első négy számjegy.
És ez mindig jelent Az utolsó négy számjegye.
És így ez a két számjegy csak felelnek meg a különböző bitek.
>> Közönség: Így lesz always--
>> Professzor: Te mindig lesz, hogy nyolc értéket bit.
>> Közönség: Ez olyan, mint egy dolog, Itt vagy, hogy egy dolog az egész?
Professzor: Ez csak egy dolog a számítógépek, aha.
Közönség: OK.
Fantasztikus.
>> TANÁR: Is, ezért a fenti példában mi átalakított bináris decimális,
és bináris hexadecimális.
Akartok győződjön meg róla is gyakorolni megy a másik irányba.
Tehát, ha én adtam neked 0XFF, akkor felhívni, hogy ki bináris, ugye?
>> Konvertálni F bináris, amely egy, egy, egy, egy,
átalakítani F kettes, amelyek egy, egy, egy, egy.
>> Szóval mi is kérem, hogy fordítva.
Tehát decimális bináris, vagy hexadecimális bináris.
Tehát azt szeretnénk, hogy győződjön Biztosan tudom, mindkét irányban.
Majd talán kérdezni a kettő kombinációjával.
>> Igen, van egy kérdésem?
Én see-- te jó?
Közönség: Igen.
Professzor: OK.
Jó vagyok, hogy töröljék el ezt?
Nagy.
>> Rendben, tehát választ itt, ha valaki Különös, később és összezavarodnak.
OKÉ.
>> Közönség: Számít, ha teszünk a betűk Capitol vagy kisbetűs?
>> TANÁR: igen, mert hexadecimális, megállapodás szerint,
az összes karakter nagybetűs.
Tehát A-tól F lesz nagybetűs.
Ha tesz egy kisbetűs egy, nem tudom, ha lenne feltétlenül jelölje meg rossz.
De elméletileg, ez technikailag nem
hogyan kéne, hogy van ez.
Tehát ezeket mind nagybetűs.
Igen, jó kérdés.
>> OKÉ.
Második kérdés.
Tekintsük ezt a szép program itt.
Megkérdezem a kérdést, Visszajövök ezt.
>> Szóval, először is, mi van benne a szabványos io.h ez az érdeke, hogy a program?
Másodszor, mit void jelentik a sorban három?
És a harmadik, mit visszatérő nulla-re fő, a soros hathengeres, általában jelentenek?
Ha a srácok szeretnék írni azoknak le, mivel én visszaváltani
A dia csak így lehet látni kódot.
Ez egy példa a, mint például, talán egy magasabb szintű kérdés, ahol azt kérjük,
milyen dolgok jelentik a programban.
>> Mindenki jó nekem, hogy menj vissza a dia?
OK, hűvös.
Ezért adok nektek, mint talán három perc nézni ezt egy gyorsan.
>> OK, így ez az ember, mint a viszonylag egyszerű, koncepcionálisan.
Akar valaki mondja meg, mi van első belső hash beleértve
A standard io.h könyvtár fájl?
Miért van szükség, hogy a könyvtár tartalmazza a program?
Mi itt van szükségünk lesz?
>> Igen?
>> Közönség: az, hogy amikor teszel, hogy printf?
>> Professzor: Pontosan.
Tehát printf, bármikor hogy egy bemenet a felhasználótól
és valami mást a képernyőn, ez
a standard input, output könyvtárában.
Gondolj arra, hogy, hogy way-- bemenet, kimenet.
>> Muszáj egy kimenet?
Igen.
Szóval tudom, hogy én mindig megy szükség van a szabványosítása i.o könyvtár.
>> Tehát printf az a funkció, amellyel meg kell elérni
és hashtaget tartalmaznia szabvány i.o könyvtár.
OKÉ.
>> Másodszor, mit void jelentenek?
Megvan a int main (void), mit jelent érvényteleníti itt értem itt a sorban három?
Igen, a hátsó.
>> Közönség: [hallható]
>> Professzor: Pontosan.
Jól jegyezd meg, amit megtanultunk kiindulva, PSET
hogy ténylegesen adja parancssorból
érvek, hogy a programot, hogy Fő feladata, úgy, ahogy a felhasználó,
hívd.
Ha van üres, az azt jelenti, hogy Lehet, hogy csak a program futtatásához közvetlenül
nélkül parancssori paramétereket.
Mindenki tisztában, hogy?
OKÉ.
>> És végül miért zavar csinál ez a visszatérés nulla dolog itt?
Miért is kell nekünk egy int main?
Miért nem lehet már csak void main void?
Igen?
Közönség: Csak hogy tudjuk győződjön meg róla, hogy a program
kilépő sikeresen, mint szemben, ha azt számlálva.
És akkor tudjuk, hogy ez egy másfajta hiba.
>> Tanár: Igen, pontosan.
Ez csak egy nagyon hagyományos dolog, amit csinálunk,
az, hogy csak a végén a programot, csak azért, hogy győződjön meg arról,
hogy a fő funkciója megfelelően működik,
mi mindig szeretnénk csinálni visszatérő nulla.
Még akkor is, szükségszerűen Nem látom, hogy a nyomtatott sehol.
>> Mivel a programozók, tudod, ha Van sok különböző sornyi kódot
és nem tudod, hol ezek rosszul megy,
és ha hiba történik szeretne győződjön meg arról, hogy van ez a hiba.
És így jellemzően ha valami balul baj lesz egy visszatérését egy csak
hogy győződjön meg arról, tudjuk, hogy ez.
Tehát, ha látni vissza zero, jellemzően
azt jelenti, hogy a program végrehajtása sikerült.
Jó?
Hűvös.
>> OK, második program itt.
Fontolja meg, hogy.
És ha ti látni lebegnek, srácok valószínűleg
Van egy jó ötlete, mit Én azon vagyok, hogy kérdezni.
>> Tehát amikor ezt a programot végrehajtja, mint látható,
Én nyilvánító úszó belül a fő funkciója.
Én megnevezné "választ", és én beállítás hogy egyenlő egy osztva 10.
Én kinyomtatásával, hogy az egyik tizedes pontossággal, hogy lebegnek.
És akkor én visszatér nulla.
>> Tehát, ha a program végrehajtásához, gondoljon vissza a kapzsi most,
Ez a program kinyomtatja 0.0.
Mint tudjuk, remélhetőleg mindannyian Tudja, egy osztva 10 nem 0,00,
ez 0,1.
De miért ez a program azt hiszi, hogy 1 osztva 10 nyomatok 0.1 Más
mint 0,1?
Adok nektek talán, mint 30 másodpercig csak gyorsan gondolkodni, hogy
és megyek vissza a program.
>> OKÉ.
Bárki akar adni neki egy esélyt?
Három mondatban vagy kisebb, mert általában vagyunk
lesz, hogy korlátozzák az összes választ a három mondat, vagy kevesebb
így nem csak kérődzik véletlenszerű dolgokat rá a kvíz.
>> Ja, hogy a lövés.
>> Közönség: Szóval azt hiszem, itt van ez a nevezett dolog, mint, [hallhatatlan]
Így lehet, például, ott lehet, mint, 0,09,
hogy hol nyomtassa ki az első számjegy, akkor az lenne, hogy 0,0?
>> TANÁR: Close, nem egészen.
Christabell?
>> Közönség: Te elosztjuk egy és 10, és mindketten egész számok.
És így az is, hogy ez lesz tárolni ez, mint egy egész szám.
És így a legközelebbi egész értékre lenne 0.0.
És ez az 0.1.
Tanár: Igen, ez nagyon jó.
Ez a helyes válasz.
Tehát ez egy nagyon zavaros koncepció egy csomó gyerek.
És azt szeretné, hogy győződjön meg arról, hogy Ezt az állítást mindenki feje.
>> Szóval mit nevezünk úszó pont pontatlanság,
ahol az oka annak, hogy sok a programok kapzsi
nem működött kezdetben azért volt, mert elfelejtette leadni a változó.
Tehát mi Christabell mondta teljesen igaza volt.
>> Az úszó eredendően pontatlan.
Mivel a számítógép, igaz, van véges mennyiségű bit memória
tudjuk használni, hogy a számoknak.
Tehát, például, ez CS50 ID is-- Azt hiszem, ez egy 64 bites számítógépen.
>> Az úszó csak képviselt egy véges mennyiségű ezeket a biteket.
És így 0,1 végtelen nullák, Ez volt 0,1, ugye?
De nem tudjuk ténylegesen készlet ez a szám a mi számítógép.
Mi csak nincs elég memória megtenni.
>> És így a legközelebbi közelítéséről mi a memóriában tárolt valójában
olyasmi, mint 0.000 valamit, valami, valami, valami.
Ami, ha egyszer csonkolni ez kerekíti le 0.0.
>> És így ez a példa csak egy amely bizonyítja, rengeteg kérdések
van, amikor mi vagyunk próbál helytelenül nem matematikai
anélkül, öntés, mint egy különböző egész.
Szóval, csak legyen óvatos, hogy ez történik.
>> A vetélkedők, ha kapsz egy kódtömb és ez olyan, mint,
mi kiírja a végén?
És ha ez néhány véletlenszerű értéket srácok tudnia kell, hogy miért történik.
Igen?
>> Közönség: Truncate van megszabadulni mindent egy bizonyos pont után?
[NEM HALLHATÓ]
Tanár: Igen, így valójában ez egy nagyon rossz példa,
mert 0.100 bármilyen ténylegesen lenne csonkolni le 0.1.
De ha úgy döntesz, hogy fut it-- én nem emlékszem, mert tavaly ők
futott be a programot.
Úgy futott, hogy az úgynevezett A CS50 Appliance, amely
eltér a ID.
Ez egy 32 bites rendszer, azt hiszem.
És így nem volt más számokat.
>> De alapvetően, csak tudom, hogy Az egész koncepció csonkolás
és hogyan, csak vágja a dolgokat le.
És így ha rounds--
>> Közönség: kerekítés nélkül.
>> Professzor: Pontosan.
Igen.
Hűvös.
>> Szia, a hátsó.
Mi csak megy át néhány kvíz kérdések felülvizsgálata.
>> Minden rendben.
Szóval fontolja meg egy másik program itt.
Én adok nektek egy pár percig, hogy olvassa át ezt.
Ez olyan dolog, hogy volt egy nagyon Nemrég azt hiszem, fújt sok van
srácok fejében.
De mi beszélni fogunk ezen keresztül ismét csak
győződjön meg róla, értem teljesen.
OKÉ.
Bárki több időre van szüksége olvassa el ezt a kódot?
OKÉ.
>> Tehát úgy tűnik számomra, hogy Ebben a programban vagyok
ami két húrok segítségével getString.
Az egyik az úgynevezett s és egy úgynevezett t.
És ha ők egyenlő megegyezik egymással,
Meg kell nyomtatni "Te írja ugyanezt. "
>> De elsewise, akkor nyomtassa ki, "Te gépelt különböző dolog ", ugye?
Úgy tűnik, nagyon, nagyon egyszerű.
De, ha azonban én valójában Megpróbálok írni ezt a programot,
úgy tűnik, hogy még ha én input pontosan ugyanazt a húrok,
Még mindig kiírja: "Te gépelt különböző dolog! "
Akar valaki, hogy egy lövés, miért ez a program mindig
válaszolja, hogy a bemenetek különböző, még
amikor maguk a szavak ugyanazok?
>> Tehát, ha én is input-- David szerelem hogy egy példát, mint anya, ugye?
Kisbetűs M-O-M S, T egyenlő kisbetűs M-O-M.
Ha futottam át ezt a hogy a kód, miért lenne
kinyomtatni "beírt különböző dolog?"
>> Tudja valaki több kell ideje ezen gondolkodni?
OK, azt hiszem, jó.
Igen?
>> Közönség: OK, így valamit ahol ez a memóriában tárolt, ugye?
>> Tanár: Igen.
>> Közönség: Hol ez olyan, mint, ha ez a s karakterlánc tárolja a memóriában spot--
Én feltalálás this-- nulla.
TANÁR: Persze.
Közönség: És húr t tárolják, Memory Spot,
mint, 167, majd nulla nem egyenlő 167.
>> Professzor: Pontosan.
OK, úgy emlékszem, ezt a hihetetlen Jelenések könyvében kifejtette, hogy a srácok
a múlt héten, hogy a húrok nem igazán létezik?
Amikor alkotunk valamit az úgynevezett karakterlánc vagyunk, a valóságban,
létrehozni valamit úgynevezett char csillag.
Melyik is ez egy mutató, egy string vagy egy sor karakter.
>> És így ebben a példában, ha én volt, hogy bemeneti M-O-M az utat
hogy a számítógép lenne tárolja azt emlékezetben backslash nulla, ugye?
Ez a négy karakter, karakter, kellene tárolni valahol.
>> És akkor ez a négy karakterek backslash nulla,
tárolják valahol máshol, nem igaz?
Fogalmam sincs, ahol a címek , ők valahol a gépemen.
De én nem tudom pontosan, hol vannak.
>> Amikor egy sztring s minden, ami igazán
egy mutató a kezdeni az ezt a fonalat.
És amikor létre ezt a t értéket, minden, ami egy pointert itt.
És így, ha akarsz egyenlőségjelet tenni és ellenőrizni
hogy ha s az egyenlők megegyezik T, a számítógép
tényleg csak visszatér Ön a címe ennek m
és a címe, hogy m.
És azért, mert ők két különálló darab adatok
tárolt két különböző címeket a számítógép,
A számítógép sosem fog ismeri fel őket, hogy a ugyanaz.
Akar valaki hogy a lövés, amit mi
kellett volna tennie, ha azt akartuk, hogy helyes ezt, és van egy korrekt futó program
helyette?
Gondolj bele, hogy egy pár másodpercig.
Mire van szükségünk, hogy változtatni kell ezt a programot működése
ahogy mi akarjuk, hogy működjön?
>> Igen, akarom, hogy a stab rajta?
>> Közönség: Lehet igyekszünk dereference a mutatót, és ellenőrizze a tömb?
Professzor: Ez az egyik módja annak, hogy csináld.
Szóval, mi a neved?
Sajnálom, emlékeztessen.
>> Zee: Zee.
Tanár: Igen, igen, mi Zee javasolt lenne feltétlenül működik.
Jobbra?
Mi lehetett a mutató hivatkozás feloldási és ténylegesen el is hozzáférést
A fizikai adatok belsejében van.
És mi csak összehasonlítani az egész képernyőt.
>> Elmondhatjuk, OK, mutató, adj mi van benne itt.
Ez visszaadnia m.
És azt mondanám, mutató, adj mi van benne itt.
Visszaadnia m.
Az Ön által említett mérkőzésen?
Igen.
Aztán megyünk tovább.
>> Mi folyamatosan ellenőrzi a teljes két húrok egészen a végéig
és nézd meg, azok egyenlő, ha az összes kapott érték egyenlő.
És ha az összes kapott érték egyenlő, akkor tudjuk, hogy a húrok igazak.
Persze, ez hogyan is kellene csinálni?
>> Tudja valaki zavaros bármelyikét ez?
Az egész koncepció, hogyan húrok tényleg csak mutatók,
és hogyan nem igazán létezik?
És miért kapunk hibák mint ahogy mi lehet ez?
Mert garantálom nektek, pointerek és vonós elosztása és a memória
fognak jönni.
>> Igen?
>> Közönség: [hallható] hivatkozás feloldási ez, csak hogy egy csillag [hallhatatlan]
TANÁR: Így van.
Tehát, hogy egy mutató segítségével derererence hogy bemenjek a címe a mutató
és beszerezni az adatokat, az érték ott.
És így kell csinálni, hogy a csillagos mutató.
Ne tévesszük össze ezt.
>> Közönség: [hallható].
>> Tanár: Igen.
Közönség: Tehát most is felírhatjuk Ha csillagos s egyenlő az egyenlők csillagos t.
>> Tanár: Hát, nem.
Nem.
>> Közönség: Ez nem elég jó, nem?
>> Tanár: Nem, mert te csak megnézni az első levél.
Valószínűleg fog szükség van valamiféle hurok
végigmegy minden egyes karakter mindkét szálakat.
Igen.
Tehát, ha akartam, hogy csak nézze meg, ha kezdődött ugyanaz a dolog,
amit tehetünk, ha csillagos s egyenlő csillagos t.
Akkor tudod, hogy ezek legalább kezdődött ugyanazt a karaktert.
>> Igen?
>> Közönség: Tehát az utat akkor lenne
mint egy beágyazott hurok vagy mutató?
Tanár: Igen.
Nagyjából csak egy ciklusban.
Ne feledje, David osztályban említett A szabad szintaktikai cukor?
És volt ez a nagyon zavaró dolog csillagos t
plusz egy, ha bővülne keresztül, és ez a mutató mozgatásakor?
Az egyszerűbb módja ez csak t i.
>> Tehát csak egy tömb.
Az út, ha volna egy részére hurok futott nulláról i, ahol
i a hossza a húr, akkor is csak
írja, hogy ahelyett, hogy a egész mutató hivatkozás dolog.
Szóval ezek a dolgok pontosan egyenértékű a számítógépen.
>> Srácok valószínűleg nem tudniuk kell, hogy
de jó, hogy csak ilyen Van hátul a fejedben.
Csak tudni, hogy a számítógép felismeri a különböző blokkok kód
mint ugyanaz a dolog.
Mivel ez csak sokkal felhasználóbarátabb barát nekünk bemutatni el, mintha
egy tömbben.
Ez csak könnyebb.
>> Közönség: Így használja strlen, hogy tetszik, get--
Tanár: Igen.
Közönség: OK.
TANÁR: te is használja strlen vagy, ha
Nem volt strlen tudod csak csinálni akár amíg eléred backslash nulla mindkét fél számára.
Vagy működne.
Igen.
Közönség: Szóval ez a hivatkozás feloldási minden egyetlen karakter, ha mi volt valójában
írom ezt a kódot, akkor Lehet, hogy csak nem t zárójelben i
Szeretem a csillag előtte?
>> Tanár: Igen, egyenlő az egyenlők s konzol i, majd folyamatosan halad i
le fel, amíg eléred a végén.
Igen, ez mit tenne.
És én valóban van egy következő Például az, amikor tényleg
levelet strlen így a srácok a fajta Az, hogy játszani vele egy kicsit.
>> Szóval mindenki tisztában mindössze memória, vonósok, mutatók, minőségi címeket?
Néhány magasabb szintű fogalmak, hogy akarat biztosan kell tudni a kvíz
holnap.
>> Minden rendben.
Jó.
Igen.
OK, így egy dolog, hogy mi is kérni Ön, mint mi minden évben egy kvíz, van,
Feltételezem, hogy elfelejtette (amely úgy tűnik, hogy felejtsük el, hogy nem évente)
ahol header fájlt strlen nyilvánítják.
És így van, hogy változtattak rajta magunkat.
>> Íme egy lista irányelvek hogy mi is jelen van
srácok, ahol kapsz azt feltételezni, hogy s string nem lesz null.
Akkor feltételezhető, hogy ok lesz megszűnik egy backslash nulla.
Szóval tudom, hogy az, amit ez lesz a vége a.
>> És, például, hogy a hossza helló lenne öt.
Szóval lehet feltételezni, hogy helló lesz öt, H-E-L-L-O.
Nem kell feltételezni, hogy a hátoldalon nulla számlák hosszát.
>> Ez az utolsó dolog itt, nem aggódni egész túlcsordulás.
Tudja valaki emlékszik mi egész túlcsordulás van?
>> Közönség: túlmutat a hossza [hallhatatlan].
>> Tanár: Igen, meg tudja magyarázni egy kicsit, mit jelent ez?
>> Közönség: Szóval, azt hiszem, ez megy vissza A csonkolása például korábban.
De ha csak annyi szám amelyek túlmutatnak a bitek száma
hogy ténylegesen hozzárendelés hogy ez csak egyfajta vágva.
Tanár: Igen, egy tipikus számítógép, hány bit van?
Közönség: 32?
Tanár: Igen, 32, jobbra.
És ez az, hogy mi, négy milliárd kétmilliárd?
Négy milliárd, legfeljebb négy milliárd pozitív egész szám, ugye?
Két milliárd negatív, kétmilliárd pozitív,
attól függ, hogyan szeretné csinálni.
>> És így alapvetően mi lehet Elég egészek, hogy mehet fel
két a 31. mínusz 1, ugye?
Mert ha egyszer hit két a 32., mi nem
Van, hogy mennyi memória van a számítógéphez.
>> És így, elvileg, én tudott felér egy számot
azaz mint a két a 46..
Ez egy hatalmas seggű szám, de elméletileg tudna.
És így egész túlcsordulás van, ha megpróbál hozzon létre egy egész szám, amely meghaladja
A számítógép képes tárolni.
>> És így a srácok számára ez a példa nem rendelkeznek
aggódni minket így egy óriás húr, amely két a 32. karakter
hosszú.
Ez lenne igazán értem.
>> Rendben, én csak fog adni srácok az alap szerkezete.
Fogsz létre nevű függvény int strlen, ahol
belépőkártyát, egy char csillag, vagy string, mutató a húr nevezett s.
>> Rendben, mindenki másolja le.
Hűvös.
Oops-- más út.
>> Tehát ez olyan, mint egy nehezebb darab probléma,
ezért adok nektek talán öt- Hat perccel a fajta elmezavar
és írd ezt a funkciót ki.
>> Közönség: Mi nem figyelembe [hallható],
nincs kezelhető egész?
>> Tanár: Nem, nem.
Adok nektek egy tippet.
A while ciklus igen hasznosak lehetnek itt.
Igen.
Íme
cukorka.
Candy is elérhető lesz A kvíz, azt hiszem.
Szóval ti lesz minden, cukrozott holnap.
Lehet én-- megvan.
>> Közönség: OK.
Tanár: Igen.
>> Talán még 30 másodpercig, vagy úgy.
>> Rendben, ha nem történik meg, nincs gond.
Fogunk lépni ezen keresztül együtt.
OKÉ.
Szóval megyek, csak az elrendezés a alapvető szerkezetét, ez a funkció itt.
Int strlen.
Először is, nem mindenki akar mondani hogy ez mit jelent int?
Azt kell, hogy ebben a funkcióban.
>> Közönség: STRLEN [hallható].
Professzor: Pontosan.
Szóval bármi is történik itt, vissza kell térnünk egy egész szám.
És ahogy azt a spec, szeretnénk return--
Hajrá fiúk, csak menj tovább.
Minden rendben van.
Egyél minden úgyhogy nincs hogy vegye vissza, valóban.
Az int csak azt jelenti, hogy te fog visszatérni egész.
>> Mi ez char csillagos ek?
Az mit jelent?
>> Közönség: Tetszik, mi a bemenetre a.
Professzor: Pontosan.
És mi szinte a ugyanaz, mint a char csillag?
Közönség: karakterlánc?
Professzor: Pontosan.
Tehát minden csinálunk, ha feladjuk ez egy mutató a húr.
OKÉ.
Hűvös.
>> Továbbá, ne felejtsd el, ha elfelejtjük hogy az Ön ezeket a konzolokat,
ne felejtsük el, hogy írjon nekik magad.
Mert elméletileg, hogy a kódod helytelen, ha elfelejti, hogy írjon nekik.
Csak mindig figyelni.
Mint, apró dolgok hogy nem veszi észre
amikor programot írsz a laptop, mert a laptop nem az Ön számára?
Ne felejtsd el, ha írsz kézzel.
Igen?
>> Közönség: De hogyan helytelen?
Mint, tudjuk, hogy az egész probléma baj?
>> Tanár: Nem, nem.
Ne aggódj.
Ez valójában elméletileg lehetséges Ön számára, hogy teljes pontot a kérdés
akkor is, ha a kód soha nem fogy a való életben.
Azt javaslom, hogy ne próbálja hogy ez megtörténjen.
Például, mint ha minden ez itt is igaz,
de elfelejtette a kettőspont vagy zárójel a kód valójában nem fog futni.
De lehet, hogy irgalmas.
>> Igen?
>> Közönség: Van, hogy véleményezzék a kézírás?
>> Tanár: Nem, nem, nem aggódik, hogy.
Nem kommentálja.
Stílus legyen jó.
Tetszik, nem Smush mindent egy sorban.
Mi nem leszünk boldogok veled, ha ezt teszed.
>> Akar valaki hogy nekem az első sorban?
Tipp, ez nagyon egyszerű.
>> Igen?
>> Közönség: Közepes, n értéke nulla.
Csak létre számláló.
Professzor: Tehát szeretnénk néhány egyfajta ellen, igaz?
Csak megyek az új név "számít" Az olvashatóság kedvéért.
Mit akarunk beállítani, egyenlő?
>> Közönség: Zero.
Tanár: Igen.
Pontosvessző.
Az is nagyon furcsa rajz pontosvessző.
Csak gyakorlat csinálja.
>> Így szeretnénk először egy számláló int típusú.
Mert azt akarjuk számolni, hol tartottam sok szöveggel és betűk
ebben a húr, ugye?
Nagyon könnyű az első lépést.
>> Oké, talán egy kicsit bonyolultabb Most, hogy fogunk megtenni?
Akar valaki add nekem a kódsort
hogy lehet, hogy segít a hurok keresztül Akármi is ez?
>> Ja, bátor vállalkozás a hátsó?
>> Közönség: OK, így amíg pont csillagok, a Yeah, csillag s,
nem nulla, akkor valamit tenni?
Professzor: Ez nagyon, nagyon közel.
Nagyon közel.
Így fogok foglalkozni Két dolog ezzel.
Először is, ez nem éppen nulla.
Mi az?
Ez a null terminátor, ami backslash nulla.
Tehát ők másképp tekintve, hogy ők tárolják.
Így már igazán közel.
>> És másodszor, nem akarjuk, hogy csak mozgatni a mutatót.
Azt akarjuk, hogy ténylegesen elérheti az értékeket, ugye?
És igen, hogyan csináljuk ezt?
Nagyon könnyű.
Ne gondolj mutatók, ne gondolj emlékek.
Menj vissza a héten két ilyen tanfolyam.
>> Közönség: [hallható].
TANÁR: Mivel, nem emlékszel?
Mik azok a húrok?
Miben memóriában tárolt?
>> Közönség: Ők emelte.
>> Professzor: felnőnek.
Szóval hogyan férünk hozzá minden karakter benne?
>> Közönség: [hallható].
Professzor: Pontosan.
Tehát while-- mi megy benne van?
S -
>> Közönség: I.
>> Tanár: Ó, én nem létezik, ugye?
>> Közönség: Ó, gróf?
>> Tanár: Mi is csak Használja száma, nem igaz?
>> Közönség: Bocs, én nevezte i.
>> Tanár: Igen, ez mind jó.
Van egy változót itt ez már leadták, mint a mi számláló.
Szóval miért nem csak használni, hogy mozoghat a while ciklus?
Ennek van értelme?
>> Tehát miközben s count-- Akar valaki hogy nekem mi történik, miután itt?
Közönség: Ez nem egyenlő.
Tanár: Nem egyenlő, ugye?
Ez a Bang egyenlő, felkiáltójel egyenlő,
amit akartok nevezni nem equal--
>> Közönség: [hallható].
>> Tanár: Igen.
Emlékezz aposztróf van egy char, idézőjelek között van egy húr.
Legyen óvatos, amikor használja őket.
Tehát, ha keresünk keresztül a tömb, az utolsó karakter,
tudjuk, nem akarjuk hogy legyen backslash nulla.
>> Tehát míg.
Nem vagyunk a végén a húr.
Mit akarunk csinálni benne?
>> Közönség: Szeretnénk felvenni a számláló, így ez számít plus plus?
Professzor: Pontosan.
Tehát itt fogunk csinálni számolni, gróf plus plus.
Hiányzik még egy sort.
Már majdnem ott vagyunk.
Mit fogunk megfeledkezve csinálni?
>> Közönség: Visszatérő nulla?
>> Professzor: vissza akar térni a nulla?
>> Közönség: Nem, visszatérve strlen.
Várj csak.
TANÁR: Melyik tárolják?
Közönség: gróf.
Gróf.
Professzor: Pontosan.
Tehát itt fogunk visszatérni száma.
>> Mert mi vagyunk csinálsz itt ultimately--
van egy számláló változó, ami megy a növedék keresztül húr.
Fogunk tartani fog, tartsa megy, körbe-körbe ebben a körben.
És amíg nem vagyunk a végén ezt húr, amely a null terminátor.
>> És minden alkalommal megyünk keresztül, ez, mi hozzátéve, hogy a számláló.
És megyünk tovább végig ebben a tömbben.
És a végén, ha egyszer megüt a null terminátor,
Tudjuk, ó, mi lehet megtörni, visszatér a gróf.
Megvan a strlen.
>> Mindenki kap, hogyan ezt végrehajtani?
Míg loops-- Tudom mi nem tett túl sokat velük,
de ők általában Nagyon, nagyon hasznos, ha
Nem tudom, miről megállás állapotban feltétlenül kell, hogy legyen.
>> Kérdés?
>> Közönség: Tudunk levelet null A közben állapotban van?
>> Professzor: Miközben?
Igen, ez a probléma volt akkor srácok azt feltételezik, hogy ok nem lehet üres.
Mert emlékszem, Elméletileg, ha én adtam neked
egy mutatót, hogy túl nagy volt a memória, ez megadja a null, ugye?
Ez az, amit az operációs rendszer tenne.
>> Tehát ha én nem mondtam el, hogy vállalja s volnának, akkor ellenőrizni kell.
Tehát itt, azt írnánk, ha s egyenlő egyenlő null, vissza egyet.
Valami hasonló.
Közönség: [hallható] nulla.
TANÁR: OK, elmondom akkor miért nem tehetem.
Mert emlékszem a memóriában, igaz, itt.
Elmegyünk innen.
>> Megvan óriás tömbök A memória minden ráccsal
hogy a bolt különböző értékeket, ugye?
És így az egész egy string is-- számára Például, ha azt akarjuk, hogy adja hello,
lenne H-E-L-L-O backslash nulla, ugye?
És akkor ki tudja, mint a véletlenszerűen dolgokat, amelyek után itt is.
>> Valójában nem tudom, mi van ott.
És így ha azt írjuk, hogy helyett backslash nulla,
null, akkor nem lehet üres.
Mert ez csak azt jelentheti, néhány véletlenszerű egyebek
amelyek nem tartoznak a húr.
És így az is, hogy mindig tudjuk, hogy egy string vége van egy backslash nulla.
És úgy, hogy mindig, hogyan ellenőrizze, hogy a végén egy húr.
>> Null, minden azt jelenti, ha van egy nem létező mutatót, először is,
vagy ha a memória csak olyan nagy, hogy nem tud visszatérni, akkor ez lenne null.
Szóval nagyon óvatos differenciáló a különbség a null
és a backslash nulla.
Igen.
>> Mindenki rendben van ez?
OKÉ.
>> Szóval volt srácok írjon ki strlen.
Ténylegesen mi is kérni írsz ki-I, ne feledjük, hogy "Atwoa"
vagy amit akartok nevezni?
Ez a funkció a Vigenère és Caesar, hogy
átalakítja az ASCII érték egész?
Ez azt is jött ki a múlt vetélkedők A funkciók, amit kértem, hogy írjon.
>> Elég sok minden funkcióját hogy már használt, és
Nagyon könnyű írni magát, érzékelők tetszik alacsonyabb,
a felső, alacsonyabb, a felső.
Funkciók, hogy konvertálja a stringet kisbetűs nagybetűs.
Mindannyian tudjuk, hogyan kell csinálni, nem?
Ez elég könnyű.
Csak azt akarom, hogy megbizonyosodjon arról, hogy can-- ez ugyanaz a gondolkodási folyamat.
Te csak halad végig és bekapcsolja a dolgokat.
Vagy számít, vagy ha bekapcsolja a dolgokat másként.
>> Azt suggest-- I nem tudom, hogy mi lesz
megkérdezni, hogy memorizálni, amit a tőke egy vagy tőke Z, vagy kisbetűs A vagy kisbetűs
z az ASCII, de én azt javaslom Talán írásban rögzített esetben
mi csináljuk.
Csak, hogy a srácok egy hivatkozást.
Mint nagybetűs Egy az, hogy mi, 197?
És akkor kisbetűs mint 50 valamit.
65, igen, tessék.
Szóval, csak nagyjából tudja a különbség köztük 32.
Ez elég fontos.
Igen.
Jó vagyok ebben?
OKÉ.
>> Közönség: Mi lehetett Elméletileg írni néhány
Ezen csökkenhet is a mi little--
>> Tanár: Akkor elméletileg Lehet, hogy csak másolja a funkció le.
Az igaz.
>> Közönség: Nem [hallható].
>> Professzor: Srácok, egy lapon.
Srácok van egy jegyzet lapot.
Akkor írja meg.
Akkor írd meg.
Azt csinálsz, amit akarsz vele.
Igen.
Tehát elméletileg, ha akarsz, menj.
>> Közönség: [hallható] de nem igazán
feltétlenül meg kell emlékezni az érték, mi csak
Használja a felső vagy kisebb funkciót, ugye?
Tanár: Igen.
De ha kaptatok egy kérdést hogy azt mondja, írjon felső,
akkor lenne szükség, hogy írja meg.
Szóval ti is azt feltételezik, hogy srácok van, hogy az összes funkciót,
de ha szeretné használni a felső, vagy alacsonyabb, mit is kell csinálni?
>> Közönség: [hallható] Használja CS50 [hallhatatlan]
>> Tanár: Van-e CS50.h?
Legyen óvatos ott.
>> Tehát a felső, alacsonyabb, a felső, alacsonyabb,
funkciók, mely magában foglalja húr manipulációval
mindezt akár az ASCII vagy a matematikai könyvtár
vagy a húr könyvtárban.
Tehát, ha a srácok használja a fenti funkciók, legyen óvatos, hogy ne feledje,
tartalmazza, hogy a fejléc.
Így talán még valami, amit szeretnénk felvenni a lapot,
mik a fejléc?
Melyek a könyvtárak van már használja?
Milyen funkciók belül azok a könyvtárak?
Ez fontos.
>> Igen?
>> Közönség: tudnánk csak zsarut, és nem hashtaget
az abszolút minden levél, amit valaha
láttam, mint az összes kérdésre?
>> TANÁR: te is.
Nem tudom, milyen boldog mi lesz fokozatúra
hogy kvíz, amikor minden kódrészletet kétszer olyan hosszú, mint azt kell lennie.
Nem tudom, talán felszállni egy pontot stílusban.
De elméletileg a kód lenne helyes.
Ti is zsaru, és Csak tartalmazzák mindent.
Ez rendben is, igen.
Közönség: [hallható].
Tanár: Igen.
Azt javaslom, ne csinálja mégis.
Igen.
Közönség: Cool.
Professzor: Jó kérdés.
Közönség: Szóval, a legrosszabb forgatókönyv.
Professzor: A legrosszabb esetben.
Ha teljesen elfelejteni, meg tudná csinálni.
Igen.
>> Ja, kód ott van.
Régebben n helyett száma, de akkor tudom, bármi úszik a hajó.
Közönség: Várj, ezért nem kell Hashtag
közé, mert mi vagyunk kezdve az int?
>> Tanár: Igen, csak feltételezhető, hogy akkor arra kérték, hogy írjon a funkciót.
Ha akarta, hogy biztonságos, akkor valószínűleg tedd oda.
De én csak nem zavarta, igen.
>> Én nem is tudom, ha szükséged könyvtár erre.
Mert nem igazán nyomtatás ki semmit, vagy ilyesmi, ugye?
Ja, nem tudom, ha Szüksége van egy könyvtár.
>> OKÉ.
Ez is egy kicsit többet mentén A vonalak memória manipulálása.
Ez a fajta kicsit trükkös.
Gondolj bele.
Van egy funkció úgynevezett funkcionális.
Tudtam volna elnevezte függetlenül, de úgy döntök, hogy nevezd meg a FUNC.
Megvan a fent én fő.
Ne feledje, azt szeretné, hogy függvényében, miután a fő,
azt szeretnénk, hogy győződjön meg róla, többek között a prototípust a tetején.
>> De ebben az esetben volt olyan rövid hogy úgy éreztem, hogy én is csak
tartalmazza azt tetején a fő.
Nem kell, hogy a prototípus, mert ez már fent leírt.
Tehát minden, amit csinálsz a fő funkciója teremt egész x = 10.
Hívom funk funkciót, majd a nyomtatás valamit.
>> És akkor ez ténylegesen mi funk csinál.
Kértek, hogy gondolja át ezt.
Mert ez egy kicsit trükkös.
Ez nagyon, nagyon trükkös, valóban.
Gondold át, mi ez programban lenne kimenetre.
Adok nektek két percig.
>> Jó viták?
>> Közönség: Igen.
>> Tanár: Igen.
Rendben, tehát ez trükkös oka.
És ez az, amiért el akartam hozni ezt mindenki figyelmét.
Akar valaki adjon nekem egy javaslat, egy kísérlet?
Milyen lenne ez kinyomtatni?
Teljesen rendben van, ha tévedsz.
Igen?
>> Közönség: Azt hiszem, ez 100 és majd 10-es két külön vonalat.
>> Tanár: És a 10?
Van valakinek bármilyen más találgatások?
Igen?
>> Közönség: Talán csak azért, mert 10 funk nem tér vissza semmit?
>> TANÁR: OK, így még kitalálni számú
az, hogy a találgatás kettes számú csak úgy, hogy nyomtassa ki 10.
Van valakinek bármilyen más találgatások?
OKÉ.
Szóval menjünk át ezt, ugye?
Ha kapsz egy darab kódot, Nem csak nézd meg, és mint a
ah, ez annyi cuccot!
Annyira össze vagyok zavarodva!
Mint, nyugodj meg lefelé.
Csak tudom, hogy akkor csak nézd át kódot sorról sorra.
Ez minden van.
Ez olyan, mint egy könyvet olvasott.
>> Tehát minden funkciót, mindig kezdődik fő.
Szóval megyünk kezdődik int main semmis,
még a program Már lerobbant, nem igaz?
Kezdjük a fő- semmis.
Int x = 10.
>> Így fogok törölni ezt.
Megyek, hogy felhívja a memória csak így srácok egyfajta látja, mi történik.
>> Emlékezz itt lent van a mi verem?
Akár itt van a mi kupac valahol itt.
Stack felnő, ugye?
És a verem, akkor a hálózati funkció, valamint
az összes hálózati lokális változók.
>> Tehát itt, int x értéke 10.
A mi fő funkciója vagyunk ami egy változó nevű x.
Mi beállítás, ami egyenlő 10.
Itt van néhány x, és te beállítás, ami egyenlő 10, jobbra,
belüli fő.
Mindenki jó?
>> Funkció.
Tehát most, a mi fő funkciót, akkor hívsz
A funkció is írtam fent.
Úgyhogy most be a második funkciót.
Fogunk létrehozni egy másik változó int x = 100.
Mi történik itt a verem?
Mi történik, ha hívja a függvényt, amely létrehozza az új változókat?
Mi történik itt a verem?
>> Közönség: [hallható] halom tetején?
Tanár: Igen.
Tehát tulajdonképpen létrehoz egy példányt.
És ez a fajta halom tetejére.
Gondoljunk csak a stack-- egy halom A könyvek, egy rakás semmit.
Cölöpök a tetején, először tavaly ki, tart, first out.
>> Szóval ez létre fog hozni egy x ide.
>> Hogy megy, hogy Az összes funcs változók.
Nagy.
Tehát most van két különböző x 's hogy képviselik két nagyon különböző dolog.
Aztán megyünk nyomtatni ki a egész szám x.
Úgyhogy nyomtatni 100, ugye?
Mert itt van ez a 100.
Szóval ez az első dolog, hogy ez meg fog kinyomtatni.
Mivel a függvény visszatérési semmit, Most, hogy a funkció, hogy a vonal a fő
történik.
Mindenki jó nekem eddig?
>> Úgyhogy most a kettő a három sor a fő funkciója.
Most megyünk a harmadik sorban.
Megyünk a printf.
Mi ez x belüli fő?
Mit jelent, hogy képviselje?
>> Milyen értéke van x most?
>> Közönség: 100.
>> Professzor: Ez 100?
Közönség: Még 10.
TANÁR: Még mindig 10.
Igen.
Mert emlékszem, belül a funk, x = 100.
De ha visszatér a mi fő funkciója,
hogy a változót a tárolt más helyen a mi verem.
>> Tehát most meg kell, hogy menjen vissza a Fő verem, hálózati helyi változók.
És itt x egyenlő 10.
És így fogunk kinyomtatni 10.
>> Így hát teljesen igaza volt.
Megyünk van kimenete 100 és 10.
Igen?
Közönség: Ha malloc, ez a halom, vagy a verem, hogy a [hallhatatlan]?
Professzor: Ha malloc, szedi memória a kupac
és azt kiutalták.
Úgy, hogy nem kell hogy szórakozz ezek közül bármelyik.
Szóval azt hiszem, a nagyobb elvihető Itt van egy úgynevezett hatálya.
>> Azoknak, akik ott voltak a A felülvizsgálati ülésén tegnap este,
beszélgettünk röviden erről.
Scope határozza meg, hogyan és amikor a változók léteznek.
Vagy belül, amit keretek nem a változók léteznek.
>> Elég sok a szabály általánosan van, a variables-- ha létre őket
belsejében göndör braces-- léteznek csak belül azokat a zárójelek segítségével.
>> Így például a mi függvényében funk, látod a két merevítőt.
Ha létrehoz semmit belsejébe,
esélye van minden, amit csinálsz ami egy köteg és tárolása, hogy ott van.
Ugyanaz a fő.
Ez csak tárolt fő.
>> Szintén akarsz lenni Nagyon, nagyon óvatos itt.
Mivel hatálya is kölcsönöz Maga a különböző példákat.
Így például a hurok, az int i értéke 0.
Én nem éri, nem tudom, 10.
Én plus plus.
És neked kód belsejében is, ugye?
>> Honnan ez a változó, i, valójában csak létezik?
Csak belsejét a hurok.
Szóval Fogadok sok srácok valószínűleg találkozott ez a hiba, ha
csinálsz programokat a psets.
Hányan vagytok próbálta használni i kívül egy ciklusban, és volt egy hiba?
Mint egy hivatkozás nélküli egészek vagy valami ilyesmi?
>> Az ok, hogy miért történik azért van, mert itt vagytok
teremt valamit, hogy csak belül létezik a for ciklus.
És ha megpróbálod használni, akkor nem valóban léteznek azon kívül.
Tehát alapvetően egy számítógép mondván: Én Nem tudom, miről beszél.
Csak azt tudom, hogy én voltam itt, de most már nem.
>> Tehát, ha én is létrehozni A hurok belsejében, ugye?
És fogok létrehozni egy másik, mint int j, és azt csinálja, amit.
És van egy kód belsejében A hurkot, j csak itt létezik.
De ez azt is létezik az i.
És így j csak akkor létezik ezen belül a hurok,
mivel i létezik az egészet.
>> Mindenki tiszta?
Ugyanaz a feltételes állítások Ha szeretne létrehozni valamit.
Ugyanaz a while, ha szeretne létrehozni valamit.
Ez olyasmi, hogy Nagyon, nagyon óvatos.
Tehát ez egy nagyon jó probléma a értelemben, hogy bizonyította két dolgot.
Azt bizonyította először, hatályát.
És azt is igazolta, is memóriafoglalási.
Mert ti tudni kell, hogy funkciók nőnek felfelé a verem.
És, hogy amikor telefonál funkciók, te létre
lényegében egy új köteg memória.
Ez nagyon különbözik a mi a hálózati memória.
Igen.
Tyűha!
Mindenki OK, hogy?
Ez volt zavaró.
Nagyon jó téma, hogy menjen át, mert akkor valószínűleg
lesz egy kis trükkös ilyesmi a kvíz.
Igen.
Hűvös.
Teszek kapsz 100 egy sort, majd 10 a másikon.
Igen, nagyon jó.
>> OK, most ti kap az esélye, hogy a TA-k.
Kapsz megválaszolni a szép e-maileket, hogy néha kap.
>> Szóval, Kedves Andi, látom Azt hiszem, valami rosszul megy az én fordítóval.
Biztos vagyok benne, hogy a kód helyes, de kapok szegmens hiba
minden alkalommal futok.
Mi történik?
Kérem, segítsen, sok-sok szeretettel.
>> Ha srácok valami ilyesmi hogy hogyan reagál?
Ezek valóban nagyon gyakori kérdésekre kérünk Öntől.
Van, ha, akkor adunk Önnek egy forgatókönyv, akkor nekünk
a legjobb kitalálni, mi folyik itt.
Bárki, aki a stab a mi folyik itt?
Igen?
>> Közönség: Talán másolunk a null, olyasmi, mint a mutató
mutat valamit null.
Tanár: Igen, ez lenne a Például az, amikor ez fog történni.
De mi a nagyobb képet A mi folyik itt?
Közönség: Vajon akarsz eléréséhez memóriát, hogy te nem
állítólag van hozzáférése?
Professzor: Pontosan.
Szóval szerintem egy seg hiba, egy off korlátok, tiltott terület a memóriában
hogy ne legyen megható.
>> Szóval elég sok, ha akarsz hogy index-- mint például
már bejelentett egy tömb nullától kilencig.
De próbálja megérinteni, hogy 10. értéket, akkor nem férhet hozzá, hogy.
Mivel nem nyilvánította.
És így a számítógép megy nézni, hogy tetszik,
Ajjaj, akarsz menni határain kívül egy index.
Megyek, hogy az Ön szegmens hiba.
>> Gondoljunk például szegmens, ugye?
Egy extra szegmens, a hiba amikor megpróbálja áttörni valamit
és akkor nem kellene ott lennie.
Szegmentációs hiba bármikor megpróbálja megérinteni a dolgokat
hogy ne legyen megható.
>> Tehát közös példák az index.
Természetesen, ha akarsz megérinteni, hogy volt null,
hogy is működik olyan jól.
Ha a mutatót próbálta érintse a dolgokat, hogy ne érjen,
hogy is működik olyan jól.
Legjellemzőbben azt is megtudhatod látja ezt egy tömbben.
Mindenki jó?
>> Közönség: Tehát, ha szeretné eléréséhez a 10. pont
és már csak egy határ kilenc, vagy valami.
>> Tanár: Igen, pontosan.
Eléggé.
Hűvös.
>> Kedves Andi.
Tehát van ezen a csodálatos dolgokat az úgynevezett fajta.
Ha Merge sort-- mint mi fűrészt például amikor
Tett Dávid az egész dolog class-- miért,
Ha ez így sokkal gyorsabb, mint a bármely más fajta,
miért is zavarja, tudva, bármely más fajta?
>> Mi ez a kérdés valójában kérdezem?
Mi a három word--
Közönség: Mi a kompromisszum?
Professzor: Pontosan.
Ez az, amit a kérdés kérdezi.
Mi a kompromisszumot Merge sort versek minden más fajta?
>> Közönség: úgy memória, ugye?
>> Tanár: Van megmagyarázni, hogy egy kicsit?
Először hadd magyarázza Merge boltban.
Hogyan Merge sort működik?
>> Közönség: Így működik elosztjuk mindent fele
majd üzembe össze újraosztása, annak érdekében,
mint minden alkalommal, amikor egyesíteni a készletek.
Professzor: Elég sok.
Szóval levonhatjuk ezt ki, de jó lenne vigyél öt percet, hogy dolgozzon ki.
Tekint vissza a szekció diák ahol fedett Merge sort.
Pontosan.
>> Tehát ahogy Merge rendezési munkálatok ez osztja a dolgokat fele,
és akkor csak nézi a első értékeit mindegyik
és rendezi csak ennyi.
Folyamatosan teremt új tömbök és hozza a dolgokat egyre érdekében.
És így amíg ez nagyon, nagyon gyorsan, mert it's-- tudod,
bináris kereső n log n.
Te létre olyan sok különböző tömböket, hogy te
segítségével hatalmas mennyiségű memóriát.
És így amíg ez gyorsabb, a kompromisszumot Itt van, hogy az Ön által használt memóriát.
>> És igen, célzás, rendezi és keresések fedte sokkal több ebben az évben
mint az elmúlt években a korábbi.
Srácok kell látni, hogy tükröződik megfelelően a kvízt.
Azt határozottan időt fog alatt, amit minden fajtájára
vannak, milyen bináris keresés, hogyan lineáris keresés munkát.
Hogyan talán pszeudokódja kódot ki azokat.
Melyek a futási idők?
Valami, mint a futás alkalommal nagyon egyszerűen másolja le rá egy megjegyzés lapot,
jobbra?
>> Nagyon nehéz, ha éppen a közepén a vizsgálat
és van, hogy kitaláljuk, hogy ki.
Másolja le.
Én garantálom, hogy te lesz szüksége, hogy tudja, hogy.
Melyek a kompromisszum?
Legrosszabb esetben, a legjobb forgatókönyv mindannyiuk számára, nagyon megismerni.
Igen?
>> Közönség: Kell, hogy tudja, hogyan kell a kódot Merge sort?
Tetszik, meg kell emlékszik a rekurzív?
>> Tanár: Én nagyon kétlem, csak mert olyan, mintha meglehetősen bonyolult.
De ez nem lehet megvalósíthatatlan, ha Kérjük, hogy használja pszeudokódja ki.
Igen.
>> Ja, OK, még egy.
Ez érkezhet fel Ön utolsó darab egy kicsit.
Igen?
Vajon mindenki hallani?
>> OK, így elég sok első Az összes, milyen típusú program
lenne így egy kimeneti mint ez?
Emlékezz arra kértük, hogy megtudjuk, az új típusú hibakereső eszköz?
Mi volt a neve ez?
Valgrind, jobb
>> Ez volt a program, ahol a nevezhetjük, ami
nyomon követni az összes emlékét te használja a programot, és folyik.
Tehát, ha van valami, mint, határozottan elvesztette, 40 bájt egyben.
Valószínűleg te nem eszébe jutott, hogy kiszabadítsa.
Mert ha használja bájt memóriát, ez azt jelenti, hogy már elérhető, hogy az emlékezet,
de nem tudták kiszabadítani.
Tehát azt szeretnénk, hogy győződjön arról, hogy te is
segítségével free-- ez egy function-- bocsássa szabadon
A memória újraoszthatta malloc.
>> Hűvös.
Szóval ez a csúszda, én is azt.
Ez mindenütt a sok előadások, a sok részén diák.
Szeretné, hogy győződjön meg arról, csak tudod mindezt.
Vagy a feljegyzésben lap vagy ha szeretnénk megjegyezni, nyugodtan.
Ez nagyon, nagyon, nagyon fontos.
>> Szintén nagyon jó kérdés, hogy mi lehet kérni.
Miért kiválasztása sort-- pillantást Válogatás sort-- összes runtimes
vannak n faragva.
Függetlenül attól, hogy a lista jön Ön, mint, miért van Válogatás sort--
Adok nektek 30 második gondol erről.
Mivel ez a fajta zavaró.
Ez magában foglalja bizonyos fogalmi gondolkodás.
Miért a futási idő kell egyeznie mind a legrosszabb és a legjobb forgatókönyv?
>> Igen?
>> Közönség: Mivel Selection sort egyes pozíció vagy helyet ebben a kis tömb
a dolog, vagy bármi.
Tehát még a legjobb forgatókönyv esetén, még ha ez tökéletesen rendezett,
az is szükséges, hogy legyen, mint, OK, egy.
Az én első helyen van az egyik.
És végig mindet.
OK, az egyik legkisebb.
És akkor megy újra és olyan, mint, OK, két
a legkisebb az összes dolog.
De még mindig van, hogy ellenőrizze minden egyes embert.
Tanár: Igen.
Így például, mondjuk, Van egy lista, már válogatni,
tömb 1-5.
Az hogy Selection fajta az, hogy megy keresztül, ellenőrzi ezek.
Ezután ellenőrzi a kettő között.
És akkor ellenőrzi, és kivár.
Tartja ellenőrzése mindet, függetlenül attól, hogy vagy nem
mert tulajdonképpen ez válogatni.
Mert ez egyszerűen ahogy az a fajta működik.
>> És így ez a kérdés olyan, mint fogalmi kérdést fogunk feltenni.
Ahol először, hogy mit Selection sort
van, igaz, hogy képes válaszolni a kérdésre.
Meg kell tudni, hogy megértsük koncepcionálisan mi folyik itt.
És akkor lehet alkalmazni, és azt hisszük, OK nézzük csak elképzelni legrosszabb forgatókönyv.
Mind csökkenő sorrendben.
Hogyan lenne ez befolyásolja ez?
>> Mi van, ha ez növekvő sorrendben?
Ha már válogatni?
Hogyan érintő runtimes?
És akkor Selection sort, észre fogod venni, hogy nem a ténylegesen számít.
Mert ellenőrizte, hogy mindent értékeket, függetlenül attól, hogy mi történik.
>> És olyan jó dolog, hogy emlékezzen.
Miért bizonyos fajtái különböznek másoktól és hogyan lehet a legjobban és a legrosszabb forgatókönyveket
érintené mindet.
>> Megyek valóban elérje a fajta mert ez lesz a teszt.
Igen.
OKÉ.
Van hat perc van hátra.
Tudom hogy három perccel a kérdésekre.
Én is kószál mint 20 perc szakasz után
Ha azt szeretnénk, hogy kérdéseket tegyenek fel is.
Tudja valaki csak meg igazán rövid kérdése vagy koncepcionális kérdések
ők nem tisztázott most?
Igen?
>> Közönség: Tudsz beszélni egy kicsit kicsit bitműveletek?
>> Tanár: Igen.
Tehát bitenkénti operátorok valami, akkor valószínűleg
Lehet, csak azt, hogy vedd fel a lapra.
Szóval quickly-- Nem akarok hogy menjen túl sok mélység
mert Harvard, hogy felülvizsgálja ülésen, betakarta elég jól.
Bitenkénti üzemben, ott öten, igaz?
>> Van ez, ami x vagy funkció, van jelet, ami a és.
Pipe, amely a vagy.
És akkor már a két különböző műszakban.
>> Ha adok neked két érték, ha Adok neked, mint, egy meg egy.
Mi lenne, hogy értékelje a?
Ha adok neked igaz és igaz, igaz?
Mi a helyzet, igaz vagy hamis?
Továbbra is igaz, ugye?
Mert van egy vagy.
Majd nagy valószínűséggel kapsz számokat.
Jól jegyezd meg, egy egyenlő Igaz, nulla egyenlő hamis.
És lehet, hogy Önnek ezeket a dolgokat és kérjük, hogy mondja el, mi történik.
Harvard fedi azt követő első 10 perc a tanulmány ülésén
nagyon, nagyon jól.
Szóval ti szeretnénk, hogy győződjön Biztosan tekint vissza, hogy.
>> Közönség: Van pisa5 lesz a kvíz?
Tanár: Nem.
Ne is nézd meg pisa5 most.
Nehéz.
Csak nem is zavarja nézi pisa5.
>> Azonban, mint néhány tanácsot és javaslatokat, azt
Javaslom, hogy elkezd pisa5 amint a teszt vége.
Ez lesz a legnehezebb héten, de aztán a srácok
majd átadta azt a dombok A hullámzó zöld és a kölykök,
és ez jó.
>> Ez az osztály kap jelentős könnyebb után az ötödik PSET.
KÖZÖNSÉG: Munkaidő a vasárnap, hétfő?
Tanár: Igen, tehát munkaidőn lesz A vasárnap hétfőn a PSET.
Munkaidőben ma lényegében csak úgy lesz a beszámolót a teszt.
Ha valaki be akar jönni, és kérje A TA a kérdés, mi ott leszünk.
>> Elviszem talán még egy kérdés ha valaki egy kérdést?
Igen?
Közönség: Ha csomópontok meghatározására, [hallhatatlan]
ha azt mondod csomópont csillagot, majd a következő, nem a számítógép automatikusan
értesültünk, hogy hogy egy másik mutatót?
>> Tanár: Nem.
>> Közönség: Meg kell újracsatolása hogy [hallhatatlan]?
>> Professzor: Tehát alapvetően a struktúra egy csomópont, emlékszem,
ez olyan, mint létrehozni a csomópontot és akkor van egy mutatót nevezzük következő.
Minden, amit csinálsz, amelynek A szerkezet van.
Meg kell rendelni Ez a mutató valahol.
Tehát a számítógépek nem tudom, mit csinál még.
Meg kell, hogy valóban rendelni, ha te létre a láncolt lista.
És ez az, ami elsősorban PSET 5 lesz.
Így nem aggódik sem, hogy most.
>> Közönség: Tehát nem kell túlságosan az összeköttetés lista, csak a
Az általános felfogás?
>> Professzor: Csak elég sok halom, sorok, linklisták, fák, hash táblák.
Csak, hogy tudja, mik azok.
Nem fogunk kérni tetszik valami konkrét
mert nem igazán történt egy PSET, hogy a borító sem, hogy még.
>> Tehát az utolsó két percig, mielőtt Én meg szabad ölni ezt a kvízt.
Elég sokat, mint, gondolkodni, hogyan amennyire srácok jöttek ebbe az osztályba.
>> Emlékszem, amikor a héten két Ennek az osztálynak, néhányan
eltölteni három órát írásban vizet.
Mennyi ideig tartana, akkor srácok, hogy írjon a víz most?
30 másodperc, talán?
Gondolni, hogy mennyi srácok tanultak.
CS egy nagyon, nagyon nehéz téma.
Nincs kétségem.
Nehéz, hogy ezért senki nem tanul meg.
Ez csak nehéz.
És ez teljesen rendben van.
>> És nagyon büszke vagyok, hogy mindenki tette, hogy ilyen messzire.
Psets nem könnyű.
Vesznek egy csomó időt.
Srácok, soha nem fogom kérni, hogy írjon A játék 15 vagy Vigenère a PSET.
Nem kell, hogy csak kiborulni róla.
Minden, amit tesztelünk itt az, hogy értékelje a fogalmi tudás, valamint
mint néhány alapvető készségek kódolás.
A vizsgálat célja, hogy igazán nagy kihívást jelent.
Mint, hogy úgy tervezték, az Ön számára, nem fog 100.
Emellett úgy van kialakítva, hogy valószínűleg nem tudja befejezni a 75 perc.
És ez teljesen rendben van.
Diák vagyok magamra.
Tudom, utálom, amikor sétálok ki a kvízt, mint, szar.
Hogy nagyon nehéz volt.
Valószínűleg mi fog happen-- és ez teljesen rendben van,
Én mondom nektek most.
Az eszközöket a következő dolgokat nem magas egyáltalán.
>> És azok számára, akik már egyre hasonlóan,
hármasával a problémát készletek, ez nem jelenti azt, hogy
lesz, hogy 60 százalékkal ebben az osztályban.
Ha kapsz 60% -os kvíz, amely nem
jelenti fogsz kap egy D ebben az osztályban.
Látjuk, különösen azt, a Azoknak, én részén,
Látom, hogy milyen nehéz a srácok minden dolgozó.
És tudom nyomon követni e.
>> Srácok rendben lesz.
Nincs intézményi emlékére boldogságot végén a félév.
Mert minden Harvard gyerekek mondanak a barátok, ó, minden rendben lesz.
Senki sem mondja nektek, hogy itt.
Tehát el kell mondanom nektek, hogy itt.
>> Srácok rendben lesz.
Nagyon büszke vagyok az összes srácok.
A teszt nehéz lesz.
Tanulmányozza azt, és utána Csak dobd el.
Készülj fel, hogy új dolgokat tanulni.
És enni édességet.
Már sok-sok édességet.
>> Kap egy jó éjszakai alvás.
Ne nem alszik, mert hogy lenne igazán rossz.
CS egy csomó logika.
Ha nem alszik, akkor nem tud működni, és az agy nem tud működni.
És én itt leszek a következő 20 perc, ha valaki azt akarja, hogy kószál.
Srácok fognak megölni.
Sok szerencsét.