ALLISON BUCHHOLTZ-AU: Haai, almal.
Welkom by artikel.
Vandag is net gaan al quiz te wees hersien vir jou toets op Woensdag.
Ek hoop almal onthou dat hulle het 'n quiz op Woensdag.
En as jy nie, wel, nou het jy herinner.
So Woensdag maak seker jy wys vir die klas of ander hotel as
nodig.
Julle gaan awesome wees.
Dit gaan groot wees.
En ek gaan alles wat ek kan doen te help vandag voor te berei vir jou toets
nou.
En ook in die geval dat jy nie weet nie, daar is 'n kursus wye oorsig sessie
vandag by 07:00 in Noordwes laboratoriums kamer B103.
Jy kan my nie weer sien vir 'n encore as Ek sal deel van daardie hersiening sessie lei
ook.
So as jy kan nie genoeg van my kry nou, kan jy weer kom vanaand.
>> Alle reg, sodat die eerste dinge eerste.
Slegs 'n paar quiz wenke voordat ons eintlik duik in resensies.
So as enige eksamen praktyk sal beslis help jou uit.
Daar is eksamens van die verlede ses of sewe jaar op daar,
so dit is 'n baie van die praktyk materiaal vir julle te hê.
En in die feit, vandag is eintlik net gaan om te gaan oor enige onderwerpe
dat jy ouens het vrae oor sowel as jy deur die praktyk probleme
uit quiz nul.
So ek sal gooi quiz nul van verlede jaar hier,
en ons kan deur enige probleme werk dat jy ouens wil.
>> So oefen.
Jy gaan om te begin om dit te doen vandag.
Kode op papier.
So ja, as almal kon eintlik kry uit
papier, sal dit wonderlik wees, omdat jy nie
gaan jou rekenaar op die te hê eksamen en uit te skryf kode per hand
is dikwels baie moeiliker as jy kan verwag.
Jy gebruik om net sien en dit te tik,
en jy het jou vertaler te help om uit wanneer jy foute,
maar jy kry nie wat op die eksamen.
So dit is baie belangrik om werklik in staat wees om die kode uit te skryf,
en dat die spier-geheue te doen dit met die hand sal regtig help.
>> So kry ons 'n bietjie nader.
Dis Maandag.
Jou eksamen op Woensdag.
Maar as jy tyd het, beslis een
van die eksamens van die afgelope jaar of die jaar voor onder die tydsbeperking
van 'n uur en 'n half.
Net klop 'n uur en 'n half van die tyd,
sit jouself af, en werk net deur die probleme
asof jy eintlik neem dit, want 'n mens
van die grootste dinge wat ons hoor oor die vasvrae is dat hulle baie lank.
Dit is 'n baie van die materiaal.
Daar is 'n baie vrae, en die meeste mense kan nie voltooi nie.
Ek weet dat ek nie heeltemal klaar nie my vasvrae toe ek die klas.
>> Op daardie noot, as 'n minder gemaklik artikel,
verstaan ​​dat hierdie kursus is bedoel om voorsiening te maak vir mense van alle vlakke.
Die hele rede waarom ons het jy verdeel minder gemaklik, iewers tussen,
en meer gemaklik is om te soort maak dit meer regverdig nie.
En as jy is minder gemaklik, dit is nie nodig per se om alles te kry.
Soos as jy kry alles, sou jy waarskynlik
wees in die meer gemaklik afdeling.
So natuurlik klop nie self tot te hard as jy kan nie klaar is met die eksamen.
Neem dit van my, ek het dit nie gedoen nie.
Ek is nog steeds 'n concentrator.
Ek is nog steeds help om die kursus aanbied.
Jy sal goed wees.
Alle regte.
En laastens, gaan slaap.
Dit is duidelik dat met enige eksamen ons altyd sê dit.
Vetmesting die aand voor en nie om enige slaap
doen not-- miskien as wat vir jou werk, gaan vir dit.
Maar vir die oorgrote meerderheid van die mense, om slaap,
laat jou brein rus en te herstel voor kom in vir die eksamen
sal regtig help.
Ook sal daar byna sekerlik lekkergoed by die eksamen,
sodat jy het om vorentoe te kyk.
Julle gaan groot te doen nie.
Dit gaan goed wees.
En nou in die volgende uur en 'n half het ek sal probeer en prep jy as die beste as ek kan.
>> So ek het skyfies van basies alle afdelings tot nou.
Ek gaan nie om te gaan deur almal van hulle, want dit is nie
haalbaar is in 'n uur en 'n half asook as jy deur die praktyk probleme.
So in plaas Ek het 'n lys van onderwerpe.
Dit is al die dinge wat wat ons kan te toets wat jy op.
As daar enigiets wat werklik spring uit
wat jy wil oor gaan, dat jy wil my om oor te gaan konseptueel,
Ek kan probeer en gee jy 'n oorsig daar.
Of as jy wil reg om te spring in te doen die praktyk probleme saam,
ons kan dit doen.
Dit is aan julle.
Daar is nie so baie van jou.
So dit is wat julle wil doen.
Ek wil die mees te wees nuttig teenoor julle ouens.
So ek sal jou laat kyk net.
>> Publiek: Een ding is die grafiek dat ons hou
sê oor die stapel en die hoop.
Net die hele idee agter dat en wat dit beteken.
ALLISON BUCHHOLTZ-AU: Ja, OK.
Dit is al die pad by die einde, so laat my blaai deur.
>> Publiek: Ons het nie doen dit nou, maar wat ook al.
>> ALLISON BUCHHOLTZ-AU: Was daar anything-- hierdie een.
Is hierdie soort van vae vir mense?
Publiek: Ja, ek tweede dat.
En ons kan ook nie buffer oorloop?
ALLISON BUCHHOLTZ-AU: buffer oorloop?
OK.
So buffer oorloop is mooi maklik om net te praat.
Dit is basies buffer jy dink oor sommige verskeidenheid geheue wat jy het, reg?
Ons tipies praat oor buffer oorloop wanneer
jy nie die nagaan hoeveel die gebruiker om in, reg?
En die idee is met buffer oorloop is
hulle besig is om in die verre te veel data vir die ruimte
dat jy vir hulle toegeken het, reg?
>> So as jy sê, gee my 'n paar boodskap, ons is
die veronderstelling dat hulle gaan om te gee ons 'n redelike lengte boodskap.
Miskien 'n paar lyne, noem maar op.
Sodat ons nie te gaan nie.
Instede daarvan het hulle ons voed in 'n hele boek dit is 'n boodskap
en dit oorloop die bedrag van ruimte wat ons vir hierdie toegeken het.
En wat gebeur is dit dalk oorskryf plekke wat dit is nie veronderstel.
>> So ek weet Professor Malan gesê iets oor buffer oorloop aanvalle.
So dit is waar die gebruiker sal insette sommige groot hoeveelheid data in die hoop
dat hy oor skryf verlede die einde van jou buffer
en vervang something-- Ek wonder Ek het ons die skyfies in hier.
Ek dink nie ons het diegene skyfies hier.
Maar basies wat hy oor skryf 'n gedeelte van die geheue
wat hom toelaat om toegang om dele van jou rekenaar
dat jy nie wil nie normaalweg toegang het.
>> Grootste ding met buffer oorloop is net
om te verstaan ​​dat dit gebeur wanneer jy nie
nagaan hoeveel jou gebruiker om in.
As jy nie soort beveiliging teen daardie.
En op sy eenvoudigste ding, dit is net jou gebruikers
skryf 'n massiewe bedrag van data in 'n poging
'n paar sekuriteit te vervang gedeelte van jou geheue.
Dit is al wat dit is.
>> So dit hier, stapel en hoop.
Basies al is dit net 'n voorstelling van die geheue
en waar dinge gestoor word.
Dit is regtig soort al wat jy hoef te weet.
Die grootste dinge wat wat jy nodig het om te weet is
that-- laat my sien of daar is 'n better-- hier.
So, dit is die stapel hier.
>> So stapel te doen het met al jou funksies
dat jy 'n beroep op enige gegewe tyd.
En wat is belangrik om te onthou gaan af van verlede week met malloc
is dat jy regtig nie nodige beheer daaroor.
Dit hang alles af wanneer sekere funksies uit te voer.
En toe hulle die uitvoering van hulle het wat is stapel rame genoem
wat gaan hier aan.
>> Sodat dit al die soort van gebeur sonder enige werklike insette van jou.
Jy skryf jou program, en jy laat dit loop,
en die stapel soort neem sorg van homself as dit moet.
So as in die belangrikste wat jy bel kubus, wat hier verby sal word.
Dit sal 'n raam te skep.
Maar daar is niks wat jy uitdruklik doen stapel raam anders as om te skep
skryf die funksie om te begin, OK?
>> Wat is 'n soort van onder jou beheer is die hoop met malloc.
So wanneer jy malloc iets, jy neem geheue van die hoop.
En dit is die geheue wat jy het, vir 'n gebrek aan 'n beter woord,
eksplisiete beheer oor, want onthou met malloc
dit is basies daar totdat jy anders sê.
Vir dié van julle wat gekyk artikel verlede week,
dit is daar tot jou vertel dit om weg te gaan.
Dit sal ook daar wees, tensy anders vertel nie.
So het die hoop is net iets jy kan dink as geheue
dat jy beheer oor.
En dit is net die twee verskillende groot dinge.
>> Anders as dit, moet jy nie te veel te bekommer oor stapel en hoop
vrae of tipies meer net as jy 'n plaaslike parameters
of 'n funksie sou dit wees op die stapel of die hoop.
Dit is duidelik dat in hierdie geval dit sou die stapel wees.
As jy mallocing iets, Waar is dit vandaan?
Die hoop.
As jy kyk na die praktyk vasvrae, diegene is oor die algemeen die tipe vrae
wat hulle het.
>> Jy hoef nie bekommerd te wees te veel daaroor.
Jy kry in meer uitdruklik oor stapel en hoop
later op of in ander CS klasse.
So net 'n soort van 'n algemene idee van wat dit is
sal goed wees, wat ek net soort van het deurgegaan.
Enige ander onderwerpe?
Ja?
>> Publiek: Kan jy gaan oor wysers weer regtig vinnig?
ALLISON BUCHHOLTZ-AU: riglyne?
Jy wil konseptuele nie oorsig van wysers
of beoefen jy met riglyne?
Publiek: Soort van soos die sintaksis.
ALLISON BUCHHOLTZ-AU: Die sintaksis?
Ja.
OK, ons is daar om.
Ja, so dit is net 'n soort van iets wanneer jy 'n rekursiewe funksie,
elke keer dat rekursiewe funksie genoem, is dit net voeg ander stapel raam.
Pretty much 'n voorbeeld van hoe jy dit doen nie regtig
beheer oor die rame op jou stapel.
>> OK, wysers.
Alle reg, sodat die skep van wysers.
Onthou, dit is net tik ster.
So watter tipe van data wat jy gaan word verwys na.
So dit sou 'n verwysing na 'n int wees.
Dit sou 'n verwysing na 'n kar wees.
Dit sou 'n verwysing na 'n float wees.
So dit is basies wat jy wil om dit te word, gewys het,
ster is hoe jy die wyser verklaar, OK?
>> Maar dan natuurlik kry 'n bietjie lastig wanneer jy wyser
of jy het die ster wat ook al.
So die groot verskil is wanneer jy declaring--
so ons het some-- so Dit neem 'n paar int ster.
So dit is 'n muis roep x na 'n int, reg?
So onthou wat dit beteken is dit 'n beroep die stelsel x.
En dit gaan het 'n paar adres, reg?
So laat ons net sê dit is ons adres.
Wysers hou adresse.
So, wat hierdie sê is dat op hierdie plek, is ons stoor 'n int.
>> So 'n ander manier waarop ons kan dink dit is dat dit 'n paar int.
Ons het nie regtig opgedra om dit te niks nie, maar dit is net 'n int.
So ons kan doen is as ons nie die ster x gelyk 5, dit word 'n 5, OK?
Dit sê gaan na watter x is wys op, so gaan na hierdie adres
en maak dit gelyk aan 5.
So ons ken 5 na hierdie adres, reg?
>> En dan as jy dit doen, Dit gee ons die adres van.
Dit is die adres van operateur.
So, wat is die adres van x?
Ons weet nie.
Ons het nog nie toegeken is dit 'n adres.
Ons kan sê dit is some-- nou is ons het dit 'n adres, so die adres is 4.
En eintlik as ons gaan deur iets soos hierdie, soort van wat ons gedoen het.
So werk deur here-- vind ek dit help as jy trek uit wysers.
As jy op jou eksamen, het ek raai teken bokse.
>> So die eerste een, int x is gelyk aan 5.
Dit beteken net ons het 'n paar plaas in die geheue wat 5, reg?
En ons tafel hier vir ons sê dat dit by adres 0x04.
En dan maak ons ​​'n paar muis.
So laat breek dit neer op 'n tyd.
So dit skep 'n paar boks na 'n int, reg?
Dit gaan om vas te hou sommige adres van 'n IT.
So dit is 'n muis.
En dit kryt is baie klein.
So ons het 'n paar wyser hier.
En ons tafel vertel ons dit is adres is 0x08.
Cool.
En ons is die toeken dit aan die adres van x.
>> Onthou, wysers hou adresse, OK?
So as ons wil x te hou, het ons ' die adres operateur, te gebruik wat
is die teken, die adres te kry van x, wat in hierdie geval, 0x04.
En dan as ons ' sommige int kopie, dit net
skep 'n ander vak wat hou 'n int genoem kopie.
En as ons ken dit toe aan this-- so dit is die verwysing nie.
So dit sê gaan na wat ookal adres wyser hou.
Wyser hou hierdie adres, so ons wil gaan hier,
en ons sê, OK, wat is in dit?
Dit is 5.
So kopie word 5.
Sin maak?
>> Wat as ek probeer om te wys om dit te net Wijzer.
Wat doen wyser eintlik gelyk?
Dit sou net wees wat wyser bevat, reg?
En dan wat as ek dit gedoen het?
Wat sou nou kopie?
>> Publiek: 0x08.
ALLISON BUCHHOLTZ-AU: Yep, die adres van ons wyser.
Enige deel van dat moet word weer verduidelik?
Cool.
Daar is beslis 'n baie pret probleem op quiz een
dat ons kan oor daardie gee jou meer praktyk.
Die ouens van verlede week kan vertel dit was nie so sleg nie.
Ons het deur 'n hele grafiek, en almal het groot.
>> OK, so dit is oorsig van sintaksis van wysers.
Grootste ding is om te verstaan ​​hoe om hulle te skep, doen die verwysing,
en adres van, OK?
Cool.
Enige ander onderwerpe voor ons duik in die praktyk.
Ook as ons gaan deur die praktyk probleme
en daar is iets wat jy wil 'n opknappingskursusse op, kan ons dit ook doen.
Jy iets nie?
>> Publiek: Structs en gekoppel lyste.
ALLISON BUCHHOLTZ-AU: Structs en geskakelde lyste, OK.
So structs.
Ons het eintlik gaan dit vanaand oor ook.
OK, so structs.
Structs is basies net 'n manier om vir jou te hou
verskeie waardes van die verskillende tipes.
So met 'n verskeidenheid ons ingeperk tot een data tipe.
Ons verskeidenheid het óf net getalle nie, of net karakters, of net dryf.
>> Maar miskien moet jy bevat meer as dit.
Miskien moet jy hold-- indien jy praat oor 'n student,
jy gaan hul huis te hê, hul ID-nommer, hul ouderdom, waar hulle woon,
reg?
En al daardie is verskillende vorme van tipes.
So kan jy nie stoor diegene al in 'n skikking.
>> So, wat jy kan doen is om jou kan 'n struct, skep wat
jy kan dink as jou eie persoonlike data tipe.
So in plaas van net om SY en in plaas van net 'dryf,
jy kan 'n tipe student het dat het al hierdie velde in.
So die manier waarop ons inisialiseer ons structs is-- eintlik
sedert my skryf is verskriklik, ons gaan om die oorgang na tik.
Woo.
>> OK, so as ons 'n struct-- te skep Ek gaan net na dit hier af.
Ignoreer die belangrikste in watter wat ons later sal gebruik.
So die manier waarop jy wil te doen dit is met typedef struct.
En laat ons net noem hierdie student want dit is wat ek is met behulp van.
OK, so beteken typedef jy definisie van 'n nuwe soort, OK?
Daar is nuanses in wanneer jy dit doen net 'n struct teenoor 'n typedef struct.
Vir alle praktiese doeleindes, julle is net
gaan om te aanvaar hulle is ongeveer dieselfde en net
gebruik typedef struct vir nou.
Dit sal manier om meer duidelik te raak in jou volgende P stel wat die verskille is,
maar ek dink nie jy hoef te bekommerd wees oor wat nou.
Ek sou veel eerder jy weet hoe om een ​​te skep,
toegang tot, en wys [? waarde. ?]
>> 'N nuwe soort van struct, en ons noem dit student.
So, nadat ons klaar is die skep van hierdie, vir alle praktiese doeleindes,
jy sal hê om 'n tipe genoem student.
En jy kan dink dit net so 'n tipe soos 'n int, of 'n vlot, of 'n kar.
Dis net 'n ander soort, OK?
>> So in hierdie een, wat het ons?
Ons het dalk 'n naam.
So miskien ons wil 'n string naam.
En ons het dalk 'n int dit is 'n ID.
En ons het mekaar in dis telefoonnommer.
En ons het some-- laat ons sien.
Wat anders kan ons wees?
Ons sal 'n paar string by sy huis.
Al die dinge wat 'n student.
>> So dit skep 'n struct nou.
So, hoe kan ons 'n student?
As ons 'n paar veranderlike wat gaan hier praat oor Walker,
sodat ons have-- ons is net gaan hierdie Walker te bel.
Hy het 'n tipe.
Wat is jou tipe?
Publiek: Student.
ALLISON BUCHHOLTZ-AU: Student.
So dit skep net 'n voorwerp wat jy kan dink aan wat al hierdie dinge.
Jy het net 'n stapper student.
So nou moet ons in staat wees om al hierdie te wys, reg?
So nie almal onthou hoe ons toegang binne 'n struct?
Publiek: tydperk.
ALLISON BUCHHOLTZ-AU: Tydperk Presies.
So as ons wil toewys hom 'n naam, kan ons dit doen.
Dit is duidelik dat dit sou be-- hierdie deel hier sou
wees binne belangrikste, so eintlik laat my dit doen.
Verklaar dit bo belangrikste sodat dat ons dit kan gebruik om binne belangrikste.
So nou wil ek dit ID te doen, en ons sal net doen 'n paar daar,
en dan sal ons 'n huis wys.
Bam.
Cool.
>> So nou moet ons ooit nodig het om toegang niks later on-- miskien we--
As ons ooit nodig het om iets te bekom, Laat ons net 'n int kopie ID.
En ek wil kopieer Walker se ID in hierdie.
Hoe kan ek dit doen?
Jy moet toegang tot binne die stapper struct te [? gaan dit?] [? E?].
En op dieselfde manier dat ons opgedra dit hier, hoe
kan ons toegang is dit wanneer ons wil gee wat waarde tot iets anders?
Publiek: Walker.id.
ALLISON BUCHHOLTZ-AU: Ja, presies.
So dit is pretty much al wat jy nodig het om te weet vir structs.
Jy hoef net te dink hulle as 'n ander veranderlike.
Basies 'n skep jou eie veranderlike tipe, OK?
Jy gebruik dit om te verklaar veranderlikes in enige manier.
Hier Walker is nog 'n veranderlike.
Dit het net 'n tipe student nou plaas van 'n tipe int, of 'n string-tipe,
of 'n tipe char.
As daar was 'n maklike manier om te praat oor gelas, dit is letterlik net 'n
skep jou eie data tipe wat jy kan groep
al die verskillende soort van data saam.
Doen wat sin maak?
OK.
Dit en toegang met kolle.
Pretty much alles wat jy nodig het.
>> OK, waar het my PowerPoint gaan?
Hier is dit.
Wel, dit is vreemd.
Ha.
OK, cool.
Enige ander dinge of doen ons wil kop uit te oefen?
Oefen?
OK.
Awesome.
Ek gaan om dit te stop.
Indien dit in enige stadium tydens praktyk vrae,
Ek is bly om te blaas en gaan deur dinge.
So ek het quiz nul hier.
As jy ouens wil trek dit op jou rekenaar,
net soos neem vyf minute om te blaai deur.
Miskien kies 'n paar top vrae wat jy wil om te gaan.
As jy ouens nie kan besluit nie, sal ons net stadig begin werk deur hulle,
maar ek is seker daar gaan 'n paar te wees vrae wat jy is veral
gretig om te praat oor en my deur te werk met julle almal.
So gaan net voort en neem vyf minute.
Blaai deur.
En dit is die toets van 2013.
>> Publiek: Zero?
>> ALLISON BUCHHOLTZ-AU: Ja, quiz nul.
Ons is nie besig quiz een dinge.
Ons sal dit doen in 'n paar weke.
Ook vir dié van julle wat kom laat, ons het lekkergoed,
doen jy ouens wil lekkergoed?
>> Publiek: Seker.
>> ALLISON BUCHHOLTZ-AU: Ek is net gaan om te slaag.
Hey, as jy ouens kry hier vroeg, kry jy meer lekkergoed.
Dit is fyn.
Ben, wil jy lekkergoed?
Jy wil 'n paar van hierdie?
Daar is ook Snickers indien iemand wil Snickers.
Ek sal hulle hier en hier verlaat.
Voel vry.
Het jy nie wil hê?
Publiek: All stel.
Dankie.
>> ALLISON BUCHHOLTZ-AU: En ek het 'n lekker hopie daar aan die begin.
Julle kry die toets te neem en Ek kry 'n quiz gradering party te hê.
Dit is chaos.
900 eksamens.
Dit gaan soveel pret te wees.
Gaan groot wees.
Ek is redelik seker dit is een van die grootste personeel binding
nagte van die jaar.
Het iemand gedoen quiz nul uit verlede jaar nog uit nuuskierigheid?
>> Publiek: Dele van dit.
>> ALLISON BUCHHOLTZ-AU: Deel van dit, OK.
Het jy vrae oor enige van hulle?
Publiek: Ek het reeds na kantoorure.
Dankie al is.
ALLISON BUCHHOLTZ-AU: Wel, hopelik dit is nog steeds soort nuttig.
Wanneer het jy gaan kantoorure vir wat?
Publiek: My TF vanmiddag moes hulle.
ALLISON BUCHHOLTZ-AU: Oh.
Wie is jou TF?
Publiek: Fred [? Wujaya?].
ALLISON BUCHHOLTZ-AU: Daar is so baie TFS.
So baie.
Alle regte.
Iemand enige te begin wat ek kan neerskryf wat ons wil om te werk aan?
Ek neem aan die wysers een met die tafel.
Gaan vir dit.
>> Publiek: Miskien die skakelaar een.
ALLISON BUCHHOLTZ-AU: So nommer 12?
Ek neem nommer 8 en 9 is waarskynlik kinders wil mense oor te gaan.
>> Publiek: En 10 en 11.
>> ALLISON BUCHHOLTZ-AU: En julle weet jy 'n bladsy van note, reg?
>> Publiek: Ja, ja, wat ons toegelaat om dit te sit.
>> ALLISON BUCHHOLTZ-AU: Jy mag enigiets wat jy wil om te sit.
En dit kan getik word.
Sover ek onthou, was ons s'n getik.
>> Publiek: Jy kan dit doen rug en albei kante?
>> ALLISON BUCHHOLTZ-AU: Ja, beide kante.
So iets soos die hoop en [? agterkant?] hoop, jou loop
tye.
Nuttig.
Miskien bietjie dinge oor wysers om jou te herinner.
Sintaksis vir dinge.
Met net soos 'n geraamte program kan wees super nuttig.
Ek weet dat ek altyd vergeet presies wat Ek was veronderstel om te skryf vir int main,
omdat ek altyd net kopieer plak van my vorige P stel
of dit is reeds daar, so Ek het nooit regtig geskryf het,
so wat kan wees super nuttig.
>> OK, so hoekom doen ons nie begin met nommer 8 dan?
Alle regte.
OK.
So kyk na die program hieronder.
So natuurlik toe ons sien wysers, is dit waarskynlik
'n goeie idee om te begin teken, reg?
Ek wil weet waar al my groot stukke van die kryt het.
Dit is 'n soort van irriterende.
>> So het ons hier 'n paar ruil funksie wat gaan om te neem in twee wysers.
So in hierdie geval, hulle eintlik moet wees skakel
dinge teenoor ons oorspronklike ruil funksie wat slegs in kopieë het.
So wat dit gaan doen is-- laat ons begin met die belangrikste,
want dit is waar 1.
>> So ons het 'n paar int x 1.
Ons het 'n paar y dit is gelyk aan 2.
En dan het ons het 'n paar ruil wat gaan die te neem.
En laat ons sien wat doen ons hier het.
En in ons table-- Oh Boy.
Hoe gaan ek dit doen?
Ek gaan my tafel te trek hier.
Skaars maak dit daar.
Skaars maak dit.
1, 2, 3, 4, 5, 6, 7.
En hulle gee vir ons dat 1 1 en 1 2.
Cool.
Awesome.
So 3.
En daar is [? 'n 1.?]
>> Alle regte.
En dan die adres van x is 0x123.
En y is Ox127.
Cool.
Alle regte.
Ek wil julle ouens werk op hierdie vir net like-- werk dit
met die mense rondom jou.
Ek wens ek het gesê dat terwyl ek die opstel.
Werk op dit.
Probeer en werk aan dit deur julle vir 'n paar minute,
en dan sal Ek werk op dit met jou.
Want die enigste manier waarop jy regtig gaan om te leer, is deur dit self te doen.
Geen sorge.
Sterkte.
>> OK, hoekom doen ons nie stadig begin werk deur middel van hierdie.
So almal kry nadat lyn een x is 1.
Na lyn twee, x en y is 1 en 2, reg?
Cool.
So lyn drie is waar dinge interessant van die kursus.
>> So wat ons hier gedoen is ons nou verruil.
Ons sê dat x en y het die punte, of hulle het die adres van x en y,
reg?
So in hierdie geval, drie, Wat is die waarde van 'n?
'n geslaag is in, is gegee die waarde van die adres van x, reg?
>> Publiek: 1?
>> ALLISON BUCHHOLTZ-AU: So het ons voeg dit by die x?
Wat is X se adres?
>> Publiek: 0x123.
>> ALLISON BUCHHOLTZ-AU: Presies.
Maar wat is 'n eintlik verwys na?
As ons dereference n, watter waarde sou dit vir ons gee.
Publiek: 1.
ALLISON BUCHHOLTZ-AU: Dit sou gee ons 1, want wat
ons sê is gaan na hierdie adres, vertel ons wat die waarde is.
So, wat sou B te wees?
>> Publiek: 0x127.
ALLISON BUCHHOLTZ-AU: Presies.
So dit is die adres van y.
En dan wat [? dereference? ?]
Publiek: 2.
ALLISON BUCHHOLTZ-AU: OK, so nou vier.
Ons het 'n is equal-- goed Nou het ons gedoen int temp is gelyk aan die ster van 'n.
So watter veranderinge?
Daar is net een ding dat veranderinge hier.
Wat is dit?
>> Publiek: Temp.
ALLISON BUCHHOLTZ-AU: Die temp.
Sodat ons kan herskryf al hierdie.
'N Goeie strategie vir hierdie is net uitzoeken
watter veranderinge, omdat die meeste daar is net een ding wat
gaan verander op enige gegewe punt, OK?
Dus het ons opgedra temp.
>> Nou ons volgende punt, vyf, ons het ster het 'n gelyke b ster.
So, wat verander nou?
>> Publiek: Ster '.
>> ALLISON BUCHHOLTZ-AU: Ster ', so alles bly dieselfde.
En wat beteken ster 'n gelyke?
>> Publiek: 2.
ALLISON BUCHHOLTZ-AU: 2.
Pragtige.
Awesome.
OK, en dan nou het ons ' begin b is gelyk aan temp.
Dus is die enigste ding wat verander is ster b.
Alles bly dieselfde.
En wat is ster b gelyk nou?
En jy het voltooi die tabel.
Want nou aan die einde, as ons sê x en y, ons weet dat in hierdie point--
Ons weet dat wanneer ons veranderinge van die ster 'n 2,
wat dit gedoen het, is dit gesê OK, by spreek 0x123 hier, verander dit.
Nou was dit 2.
En dan op hierdie punt, ons gesê OK, gaan b ster.
So gaan na die adres 0x127 en maak dit 'n 1.
So nou aan die einde toe ons eintlik terug vir hoof,
ons eintlik dat x gelyk is aan 2 en y is gelyk aan 1.
Almal goed met dit?
OK, cool.
Nommer 9.
Julle werk op hierdie.
Ek gaan om 'n raad sodat ons kan trek deur dit.
Dit sal 'n ontploffing wees.
Die groot tafels kan wees regtig skrikwekkend, ek weet.
Maar as jy net neem hulle een ry by 'n tyd, hulle kry 'n baie minder skrikwekkend.
Alle regte.
>> So jy weet dat dit sal hê deurgegaan belangrikste eerste, reg?
Initialisatie x en y en dan probeer om hulle te ruil.
So selfs ruil bo, werklike manier om dit gaan, is dat ons gaan deur middel van hoof,
en dan is dit 'n beroep up te ruil, alles reg?
Sodat almal weet dat.
>> So watter een wil jy ouens wil om te begin met?
Is daar iemand regtig seker oor een van hierdie?
Of selfs gedeeltelik seker?
Hoekom het ons nie begin met x?
Wat dink ons ​​x is?
>> Publiek: 1.
ALLISON BUCHHOLTZ-AU: 1.
So waarom dan is 2.
En dit is omdat die groot onderskeid hier
is dat ons net verbygaande kopieë in, reg?
Ons is nie verby verwysing.
So selfs aan die einde van hierdie program x en y
dieselfde gebly het, omdat hulle is net kopieë in die ruil-funksie.
Hulle het nie werklik verander nie, reg?
>> So, wat oor 'n, b, en temp?
>> Publiek: a b.
>> ALLISON BUCHHOLTZ-AU: a b.
So in hierdie geval, 'n was x, wat is 1, reg?
So hier is, laat ons wandel deur dit.
So aan die begin, 'n en b is 1 en 2 en ongedefinieerde.
So oorspronklik temp kry opgedra aan 'n, so temp is 1.
'n is gelyk aan B, So kry ons 2, en b is gelyk aan temp.
Nou kry ons 1.
>> Publiek: In die vorige een dit verruil ampersand x en y ampersand.
Wat presies beteken dit?
ALLISON BUCHHOLTZ-AU: So dit beteken dat jy verby verwysing.
So dit beteken dat jy eintlik verby in die adresse van waar
x en y gestoor word.
Publiek: Maar jy is nie uitruiling die adres.
ALLISON BUCHHOLTZ-AU: Jy is nie uitruiling die adresse.
Jy uitruiling wat is binne-in hulle.
Soos wat is op die adres, en dit is hoekom dit werk.
Versus in hierdie program hier wat jy doen is jy skep kopieë.
So jy het x en y wat bestaan as hul eie veranderlikes hier.
Maar dan wanneer jy slaag hulle in ruil, is dit
asof jy skep hierdie hele ander stel.
Sodat jy nooit werklik raak x en y.
>> Publiek: As ampersand x is wat op die Die adres van x, wat sou ster x wees?
>> ALLISON BUCHHOLTZ-AU: Ampersand x is wat is op Die adres van x, dan goed star--,
in hierdie geval, x is nie 'n wyser.
Publiek: O, OK.
So jy doen dit net want dit is nie 'n wyser.
ALLISON BUCHHOLTZ-AU: Right.
Jy kan net ster van doen iets wat 'n wyser.
Miskien kan jy dit doen om dinge wat is nie, maar die saamstel dat jy
doen gek dinge sou gebeur.
En ek is nie presies seker wat sal gebeur.
Jy kan altyd die adres van iets,
Maar jy kan nie dereference iets wat nie 'n wyser.
As dit sin maak, dit is 'n goeie onderskeid te hê.
>> So nie te sleg nie, reg?
Die tafels is hopelik om effens minder skrikwekkend.
Alle regte.
Ag, die pret kinders.
So nou, die skryf van jou eie kode.
So ek gaan om jou te laat ouens werk oor hierdie vir ongeveer vier minute,
en dan kan ons praat oor maniere om dit te benader.
Voel vry om te praat met mense rondom jou.
Ook is dit interessant.
Dit is soos 'n al die meisies artikel nou.
Mooi opwindend.
Behalwe vir Chang.
Maar Chang is nie regtig deel van artikel.
Awesome.
Volmaak.
So ek gee jou 'n paar wenke.
In die geval waar jy meer as een karakter, waar
jy iets anders soos 123 of 1000 iets,
jy moet in staat wees om te loop deur en sit elkeen van daardie.
So is daar 'n paar maniere waarop jy dit kan doen,
maar jy gaan beslis te hê 'n lus vir iewers in daar te loop
deur hulle, wat soort van soos die bonus
met selfs as jy bel strlen, wat is 'n soort van hou van O
Miskien het jy wil die lengte te gebruik van die string in een of ander manier.
>> Alle regte.
So wat julle dink kan wees een van die eerste dinge wat ons wil doen?
Daar is 'n paar gevalle in hier ons nodig het om verantwoording te doen nie, reg?
Of ons het iets wat null.
Wat het ons?
Gevalle.
Nul.
Ons het die geval dat dit iets anders as 09, reg?
So kom ons sê dit het briewe.
Of ons die geval is dit geldig is.
Drie gevalle te dink.
So watter een dink jy kan wees die maklikste een om te sorg van die eerste?
Publiek: null.
ALLISON BUCHHOLTZ-AU: Die saak is van nul.
So, wat sou ons doen?
Publiek: [onhoorbaar].
ALLISON BUCHHOLTZ-AU: Ja.
En wat doen wat ek wil doen?
>> Publiek: Terug 0.
>> ALLISON BUCHHOLTZ-AU: Presies.
Awesome.
OK.
So nou die geval dat dit briewe en die geval dat dit geldig is.
Ons kan eintlik sorg van hierdie binne een lus, OK?
So 'n manier it-- om te doen wat kan wees 'n eenvoudige manier om te kyk of dit geldig is.
Ons wil hê om te gaan deur elke letter en doen wat?
>> Publiek: kyk of dit in--
>> ALLISON BUCHHOLTZ-AU: Right, kan jy As dit is tussen 0 en 9, reg?
En dan in die geval dat dit geldig is, ons is
gaan aan die einde iterating deur ons string anyways, reg?
So waarom nie ons probeer kombineer hulle in een.
Ons gaan Itereer deur middel van tou, en as ons
doen, gaan ons eerste doen 'n tjek om te sien of die brief
of as daardie karakter is geldig.
As dit is, gaan ons die uit te voer operasie wat ons nodig het om dit te omskep.
Anders sal dit terugkeer 0, reg?
>> So voordat ons dit doen, ons waarskynlik wil sommige veranderlike
dat ons kan terugkeer aan die einde wat gaan ons werklike waarde te wees.
So ons gaan inisialiseer 'n bietjie waarde van 0.
En dit is net hoe ons begin.
So ek gaan om ontslae te raak van hierdie.
So, hoe gaan ons Itereer deur middel van hierdie string.
Publiek: Vir lus.
ALLISON BUCHHOLTZ-AU: 'n lus vir.
So, wat is ons vir?
>> Publiek: Ek is 0.
ALLISON BUCHHOLTZ-AU: MM-hm.
En wat is ons iterating tot?
>> Publiek: str lengte van s.
>> ALLISON BUCHHOLTZ-AU: OK, nou onthou daar is 'n beter manier. [Onhoorbaar].
>> Publiek: Ja, ons kan doen n gelyk.
ALLISON BUCHHOLTZ-AU: Presies.
>> Publiek: Ek is minder as n.
ALLISON BUCHHOLTZ-AU: En hoekom sou ons wil om dit te doen?
Onthou jy die rede?
Publiek: Ons het om dit te herbereken.
ALLISON BUCHHOLTZ-AU: Becasue hierdie manier kan jy net om te StrLen keer bereken.
As jy dit doen ek is minder as strlen s, dit is, beteken dit rekent
die lengte elke keer loop jy die lus,
Dit is nie 'n groot koste van energie, maar dit is
beter praktyk om te probeer en dinge soos wat dit doen een keer.
Tensy miskien het jy 'n gek string dit is besig om op elke iterasie.
Maar as dit is dieselfde bly, stoor dit.
Alle regte.
En dan het ek plus plus.
Awesome.
Ons is op pad.
Publiek: Baie vinnig.
Eerste, so kom ons sê ons het net Het ek minder as strlen van s,
hulle ons gradering op die ontwerp op alle of net korrektheid?
Hulle is nie.
Ons is die gradering op korrektheid vir vasvrae sover ek weet.
Ek kan nie 'n volle op waarborg nie, maar vir die grootste deel,
oorgrote meerderheid is korrektheid, omdat jy onder 'n baie tyd beperking.
Ontwerp beteken gewoonlik jy tyd het om te dink
oor die elegansie van jou situasie.
>> OK, so ons is deur iterating.
So ons moet óf gaan om te sien of hierdie karakter is geldig
of as ons kan doen om ons normale [? A tot I?] funksie.
Ons kan bekommerd wees oor wat wat in 'n tweede.
So hoekom doen ons nie take-- As iemand kan dink
oor 'n manier om te kyk om te sien of dit geldig is.
Ons weet dit gaan wees sommige indien toestand, reg?
En onthou dit is in ASCII, so Hoe kan
ons sien as dit nie 0,1, 2, 3, 4, 5, 6, 7, 8 of 9.
Publiek: As alfa.
>> ALLISON BUCHHOLTZ-AU: So as sou Alpha Laat ons net weet of dit 'n brief.
En as hulle vir ons 'n simbool, dit is nog nie heeltemal gaan om seker te maak.
So as jy trek jou ASCII tafel, ons weet dat 0 tot 9
in een segment.
Vertel my die getalle wat hulle stem ooreen met, indien moontlik.
Publiek: 40.
>> ALLISON BUCHHOLTZ-AU: So het die reeks is soos 40--
Publiek: Miskien.
48-57.
Ek is nie seker nie.
>> ALLISON BUCHHOLTZ-AU: 40-57?
>> Publiek: 48, dink ek.
ALLISON BUCHHOLTZ-AU: 48-57.
So ons weet dat die ASCII symbols-- indien die ASCII waarde is nie
tussen 48 en 57, dit is nie geldig nie, reg?
So kan ons gebruik om dit te ons voordeel moontlik?
Hoe gaan ons te kry hierdie brief, eerste af?
Hoe moet ons die toegang tot hierdie hierdie karakter?
>> Publiek: s bracket i.
>> ALLISON BUCHHOLTZ-AU: MM-hm.
Omdat ons kan dink snare as skikkings, onthou.
So, wat wil ons sê?
Ons wil om te sê as dit is-- Ek gee jou 'n wenk.
Dit is 'n minder as.
Wat om te dink jy is dit moet minder wees as?
Publiek: 57?
>> ALLISON BUCHHOLTZ-AU: 47, reg?
Maar dit het ook verteenwoordig wat as jy 'n 0 in 'n enkele [? speke?], want dit is
die karakter 0.
Jy kan ook sit 47.
Met die ASCII tabel, soos jy sien, is net iets
jy moet op jou quiz blad.
>> So as dit die geval is, is dit 'n minder as 0-- nie noodwendig en.
Dit is net nie gaan minder as of meer as 9.
So kan jy vul die laaste vir my?
So of s van i is wat, Rhea?
>> GEHOOR: Meer as 9.
>> ALLISON BUCHHOLTZ-AU: Daar.
Maak dit sin maak almal, hoe ons daar gekom het?
Hierdie probleme, hulle is soos wanneer jy sien die oplossings, is dit soos O, OK.
En dit is die rede waarom die praktyk sal jou help.
OK, so ons terugkeer 0.
Pragtige.
Alle regte.
Anders doen wat ons wil doen?
Dit is die interessante deel waar dit is 'n bietjie meer
soos wiskunde teenoor CS in my opinie.
Is daar iemand het 'n idee van hoe ons dit doen?
So die belangrikste ding om te besef, is die eerste karakter
ons neem gaan wees die hoogste orde syfer, reg?
So as ons kyk na die omskakeling 123, die eerste keer dat ons Itereer
gaan wees 1, maar ons moet wat aan 100 teen die einde, reg?
So een ding wat jy kan doen, is dat met elke daaropvolgende syfer
jy neem, jou waarde vermenigvuldig met 10, sodat teen die tyd dat jy aan die einde,
Alles is verskuif bo, reg?
>> Dus is die eerste keer dat jy dit, jy het 1 as jou waarde.
Tweede keer as jy dit gebruik, het jy vermenigvuldig jou waarde met 10.
Dit sal werk dit so dat dit nou 10, en jy op jou volgende waarde toevoeg.
En dan moet jy vermenigvuldig met 10 en voeg op jou volgende waarde.
En dit is die rede waarom hulle sê hierdie is veel meer soos die toets
'n wiskunde algoritme versus CS, maar ek afdwaal.
Ek het nie die vasvrae skryf nie.
>> So een ding wat ons kan doen is om ons sê waarde tye gelyk aan 10.
So dit gaan skuif jou syfer een keer elke keer.
En dan wil ons net om by te voeg.
Ons wil by te voeg in watter Ons het net gekry het, reg?
So hoe ons eintlik sit nie ons ASCII karakter in die aantal
wat dit verteenwoordig?
>> So weet ons dat 0 is gelyk aan 47, reg?
So as 0 is 47, wat sou ons moet dit te doen
om werklik te maak dit 'n int van 0?
>> Publiek: Dit is 48.
ALLISON BUCHHOLTZ-AU: 48?
Jammer.
Ons wil trek 48, reg?
Onthou ASCII wiskunde?
Ons kan hulle net te behandel soos normale getalle.
As jy behandel hulle soos getalle, raak hulle getalle effektief.
So as ons 's van i, wat laat sê in hierdie geval is gelyk aan 0.
So s van wat ek in hierdie geval sou die ASCII-- wees
die ASCII int want dit sou wees 47.
Sodat ons kan subtract-- of 48.
Jy kan dit doen, is een manier.
Is daar iemand weet van 'n beter manier waarop ons kan doen 48?
Ons het net gesê 0 is-- gaan in die ASCII jy kan quote 0 doen.
So doen dit soort maak sin hoe dit werk?
>> Publiek: Op hierdie punt, is die waarde 0 want selfs as jy dit vermenigvuldig met 10,
jy begin met 'n nul, so moet dit aangeskakel word?
>> ALLISON BUCHHOLTZ-AU: So in hierdie geval, jy dit wil vermeerder voordat jy voeg,
want in hierdie geval, ja, dit sou nog be-- my wyser ontbreek.
Die waarde in hierdie geval, die eerste tyd loop ons dit sal nul wees.
So jy net voeg op daardie eerste syfer.
Wat belangrik is, is die volgende keer jy Itereer, jy wil om dit te skuif op
voordat jy voeg jou volgende syfer op.
Is dit duidelik vir jou?
OK.
>> Soms gaan jy kry weird meer Mathy dinge.
As jy die meeste van het hierdie, jy nog steeds gaan
te get-- jy gaan baie goed doen.
Gedeeltelike krediet is 'n baie groot ding op CS50 vasvrae.
So skryf wat jy weet.
As jy het alles behalwe vir hier, is jy
nog gaan doen baie goed die probleem.
Omdat jy wat, OK, ek het amper leer ken.
Ek weet wat ek nodig het om deur te Itereer.
Ek weet wat ek nodig het om te kyk vir.
Ek het net nie heeltemal kry hoe om dit te omskep.
Jy gaan OK wees.
Ja, jy gaan verloor 'n paar punte,
maar jy gaan nog 'n te kry goeie aantal punte vir iets
soos dat as jy ontbreek die twee lyne.
Ek wil wees soos OK, hierdie persoon weet wat hulle doen.
Wiskunde is hard.
So ek sou sê jy wil goed wees.
>> OK, so julle ouens gereed te probeer strlen met wysers nou
dat jy ouens is wyser meesters?
So ek sal jou laat ouens werk op dat vir 'n bietjie.
As iemand moet 'n opknappingskursus.
So jy wil wyser te gebruik rekenkundige, en dan as s is van nul,
jou implementering moet terugkeer 0.
Dinge soos hierdie wat maak jy regtig gelukkig om net strlen noem
aan die einde van die dag.
Ek dink hierdie een dalk 'n bietjie makliker as die laaste een, wat
is goed.
Ek gee julle nog 'n minuut, en dan sal ons deur dit te werk.
En dan kry ons om te gaan na skakel.
>> OK, gereed ouens?
Miskien 'n bietjie.
Daarom het ek jou gegee twee opsies, reg?
Óf gaan vir nul en terugkeer 0 as dit is, of eintlik bereken die lengte.
So wat wil skryf gaan vir nul?
Gaan vir dit.
>> Publiek: As hakies s gelyk is gelyk aan nul terugkeer 0.
ALLISON BUCHHOLTZ-AU: Pragtige.
Ek is lief vir wanneer die helfte van jou probleem is net die nagaan vir null.
Ek weet met julle laaste week was ek soos n tjek vir nul
letterlik elke keer.
OK, so--
>> Publiek: As terugkeer 0 is net een lyn, nie steeds moet ons die krulhakie?
>> ALLISON BUCHHOLTZ-AU: Jy doen nie tegnies moet hulle so lank jy konsekwent.
Dit is goeie praktyk net te kry in die gewoonte
van die gebruik van krullerige draadjies, maar tegnies nie.
Jy hoef dit nie vir 'n lyn.
Ons het net geneig om dit aan te beveel vir mense besig is om te program.
>> So nou wat kan ons hier wil doen?
So nou weet ons dat ons string geldig is.
Ons wil bereken die lengte hou.
Wat is waarskynlik die eerste ding wat ons wil doen?
>> Publiek: Skep 'n int dit is die lengte.
ALLISON BUCHHOLTZ-AU: Presies.
Publiek: En ons wil om dit te stel aan?
ALLISON BUCHHOLTZ-AU: 0.
Volmaak.
Alle regte.
Nou wat wil om te doen?
Dit is regtig die grootste deel van dit.
Gaan vir dit.
>> Publiek: So jy waarskynlik nie 'n lus.
En dan sedert wanneer jy s bel jy om die adres van die eerste ding,
jy sal begin met i gelyk aan 0.
En dan so lank as x plus ek is nie terug streep 0.
ALLISON BUCHHOLTZ-AU: Die nul Terminator.
Publiek: Die nul Terminator.
En een lengte wat jy byvoeg.
>> ALLISON BUCHHOLTZ-AU: Ja.
OK, so laat draai wat in 'n baie konkrete kode.
Maar dit is die perfekte idee.
Dit is presies wat ons doen.
Ons gaan iterating wees deur met die muis.
So wat ons wil doen is in plaas van 'n int
hier, want ons is verwys nie na 'n IT.
Ons verwys na die begin van 'n string, wat begin om 'n paar adres,
reg?
>> Daarom wil ons 'n wyser.
So ons gaan 'n paar kar ster te hê, want dit stem ooreen met ons s, reg?
So dit is 'n punt wat ons initializing aan die begin van die string, OK?
So laat ons net noem dit i.
As dit is die begin van die string, wat gaan dit aan toegeskryf word?
Nie 0.
Ons wil dit die wees begin van ons string.
Wat verteenwoordig die begin van ons string wat aan ons gegee is?
>> Publiek: Net s.
>> ALLISON BUCHHOLTZ-AU: s.
So dit skep 'n paar nuwe wyser wat verteenwoordig die begin van ons string, OK?
Nog 'n manier om te dink dit is soos hier is ons verskeidenheid.
Dit is ons string, s.
So kom ons sê dit is die eerste plek, en dit is 0x4.
04.
Dit is ons s, wat beweer dat die adres.
En ons het net 'n ander een wat geroep is geskep i wat verwys net na dieselfde ding.
So hulle is albei net wys aan die begin van ons string.
Dit is net 'n grafiese voorstelling.
>> So nou wat ons wil doen, is om ons wil Itereer
ons toestand vir iterating deur ons string.
Nou inkopies.
Het om te shop, ouens.
Is wat ons wil opdatering te hou totdat ons by die nul terminator, reg?
So wat kan dit lyk?
Wil ons i, of wil ons star i is die vraag?
Is die nul terminator 'n adres of iets geleë op 'n adres?
Geleë op 'n adres, reg?
>> Dus moet ons dereference ookal hier, want dit is net 'n paar adres.
Om werklik aan die begin ons moet dereference hierdie
sodat ons eintlik kry Wat is in die eerste plek.
So as ons dit doen ster i, wat ons nie dit wil gelyk?
Publiek: Terug streep?
>> ALLISON BUCHHOLTZ-AU: Daar.
Maak dit sin maak vir almal?
Ons moet gaan in ons string en maak seker dat dit nie die einde nie.
En dan kan ons net werk soos hierdie.
Normale opdatering.
So lank as wat dit is Met, wat moet ons doen?
>> Publiek: Duur plus plus.
>> ALLISON BUCHHOLTZ-AU: MM-hm.
En dan na die lus beëindig, wat wil ons om terug te keer?
Publiek: lengte?
ALLISON BUCHHOLTZ-AU: Duur.
Daar gaan jy.
Dit is duidelik dat die vleis van hierdie een word die begrip van hierdie lus.
Nie almal kry hoe dit gewerk?
Ek is bly om te gaan oor dit weer.
>> Publiek: Die tweede deel, sodat die ster i daar,
dit is die adres van die first--
ALLISON BUCHHOLTZ-AU: Dit is nie die adres.
Dit is wat op.
Publiek: Dit is eintlik daar.
ALLISON BUCHHOLTZ-AU: Dit is wat eintlik daar.
So, dit is saying-- laat my dit beter te maak.
So, dit is 0x04, en ek gaan net om te sê ek gaan dit my naam te maak.
OK.
Ja, ek weet ek het quiz review vanaand.
Baie van die quiz oorsig.
So kom ons sê hierdie string is my naam, Allison.
Bietjie slordig, maar dit is daar.
En s verteenwoordig die plek van waar die string begin,
so ek gaan om dit te maak real-- dit is die adres van 'n,
waar die string begin, reg?
>> So wat ons hier doen, is om ons wil gebruik verwysings na Itereer deur.
So skep ons 'n paar wyser, i, wat ook gelyk is aan die begin van die string.
En op elke punt, ons wil voort te gaan deur middel van die skikking
hier totdat ons getref die nul terminator.
So het ons altyd wil om te kyk wat is by elk van hierdie adresse.
>> Sodat ons dereference i, sodat die eerste keer dat ons dit wat ons doen
sê, OK, wat is op adres 0x04?
Dit is 'n a.
OK, ons is goed.
Inkrement lengte.
Beweeg na die volgende een.
So i-- onthou wenke verhoog deur die grootte van wat hulle te wys op.
So in hierdie geval, want dit is 'n kar, sal dit werk vir een.
So nou gaan ons kyk na 5, wat beteken dit gaan oor hier.
So sê OK, gaan na 0x05.
Wat is daar?
Dit is 'n l.
En dit sal aanhou om dit te doen totdat dit treffers hierdie een.
En dit sê OK, wat in watter adres dit is?
Die nul terminator, OK.
Uitgang.
En net terug lengte.
Omdat jy nodig het wat eintlik op die adres, en nie die adres self.
>> Daar is baie min plekke waar jy eintlik nodig het om die adres.
Die meeste van die tyd wanneer jy gebruik die en dit is
wanneer jy is in die eerste toeken van 'n muis of wanneer
jy verby dit in 'n ander funksie.
OK, almal goed daar?
Soort?
OK.
>> Sodat dit lyk asof ons het sowat 12 minute oor,
so ons sal gaan na Miskien is ons laaste probleem
en dan is daar 'n konsepte wat kom
In die tussentyd kan ons vinnig gaan oor dat.
>> So skakel ratte is die laaste probleem hier, skakel state.
So jou werk is om dit te herskryf sodat dit optree dieselfde
maar nie skakelaars gebruik.
Kalk hande.
So enige vrae oor hierdie van die kolf af?
Geen?
OK.
Nie almal verstaan ​​dat indien die geval nie iets nadat dit,
dit beteken dat dit volg die volgende stap?
So geval 1 en 2 in hierdie geval doen presies dieselfde ding.
Soms is 'n punt van verwarring.
>> Alle regte.
Iemand enige idees?
Ja?
>> Publiek: sodat jy kan net doen as state.
>> ALLISON BUCHHOLTZ-AU: MM-hm.
So, wat is ons eerste een?
>> Publiek: As n gelyk gelyk aan 1, en die 2 lyne vir of N gelykes
gelyk 2, dan druk klein.
En dan kan jy doen anders as?
Of jy kan net nie 'n as?
>> ALLISON BUCHHOLTZ-AU: Jy kan dit doen anders as?
>> Publiek: Sal dit saak as jy doen as?
ALLISON BUCHHOLTZ-AU: So is dit nie.
Doen anyone-- so, jy sal dieselfde uitset te kry
as jy net ifs versus gebruik as jy anders ifs.
Kan julle dink van die rede Hoekom wil jy dalk 'n ander te gebruik
As teenoor 'n baie ifs?
Moet met doeltreffendheid.
Ja?
>> Publiek: Dit sal nagaan al die ifs elke keer.
>> ALLISON BUCHHOLTZ-AU: So selfs as tref dit die eerste een,
dit sou gaan check elke ander een.
So jy wil as anders ifs te gebruik in gevalle waar slegs een van hulle sal ooit toe te pas.
So wedersydse uitsluiting is wat ons geneig is om te sê.
As jy 'n klomp van die ifs, beteken dit dat ons dalk meer as een van hulle
sake, en miskien meer as een van hulle waar kan wees nie.
En jy wil hulle albei uit te voer as hulle ware.
As jy net een van hulle te werk in hierdie wedersyds eksklusiewe gevalle
jy wil gebruik anders as, omdat Dit het alles te doen met doeltreffendheid.
Jou kode is net beter ontwerp As dit voldoen aan hierdie praktyk.
So in hierdie geval sal ons 'n ander as.
En dit sou wees?
>> Publiek: N gelyk gelyk aan 3.
ALLISON BUCHHOLTZ-AU: Perfect.
Druk medium.
En dan in ons laaste geval, wat het ons?
Anders anders as?
Publiek: anders.
>> ALLISON BUCHHOLTZ-AU: Het ons want-- Jy wil anders as omdat ons konkrete gevalle.
Dit is nie soort van 'n vangs al.
As jy het 'n standaard in 'n switch-- onthou in skakelaars kan jy geval het,
en dan moet jy verstek.
As jy het 'n standaard, dit is soort van jou anders verklaring daar.
Maar as dit net gevalle Dit beteken dat jy
om te kyk om te sien of dit is elkeen van daardie.
So in hierdie geval, sou dit die 4 of 5.
Ons wil 'n afdruk af.
Dit is 'n groot.
En daar gaan jy.
En dit sou jou program.
>> So in hierdie geval as ons het 'n standaard iets,
Ons wil 'n ander in wat dit wou hê dat ons te doen het.
So dit is 'n goeie onderskeid om te weet, te verstaan.
Wat help dit met skakelaars vir jou?
Volmaak.
Alle regte.
>> Ons het sowat agt minute oor.
Het jy ouens het enige ander hoë vlak konsepte?
Vrae in die algemeen?
Ja?
>> Publiek: Ek het 'n vraag oor een van hulle
dit was omtrent die ewekansige aantal kragopwekker op quiz nul.
ALLISON BUCHHOLTZ-AU: O, wat 'n mens.
Dat 'n mens is 'n ander een waar dit is meer wiskunde than-- ja.
Die oplossing vir al wat ek toe that-- Ek sien dit, ek is soos wat is dit.
>> Publiek: Dit was nommer 7.
>> ALLISON BUCHHOLTZ-AU: Dit is vreemd in my opinie.
So basies wat jy wil hê drand48, te gebruik wat
sal jy 'n paar te gee getal tussen 0 en 1.
En jy wil om dit te gebruik sodat dat jy een of ander manier kry a--
en dit is baie meer van 'n wiskunde probleem vir my as ek dink 'n CS probleem.
>> Die manier wat jy doen it-- en soms sal dit net soos dit.
Weereens, dit is die gevalle waar dit is soort
van soos skryf wat jy kan en gedeeltelike krediet.
So as ons wil 'n terugkeer, Ons weet dat ons
gaan word met behulp drand48 in een of ander manier, reg?
So hoekom ons nie net stip dat af.
Ons gebruik dit op 'n manier.
Die manier waarop hulle julle ouens gebruik dit
soos hierdie, wat ek sal probeer verduidelik.
>> So basies wat hier gebeur is, want dit is tussen 0 en 1,
wat jy doen is jy vermenigvuldig deur- dit is baie duidelik 'n wiskunde vraag.
Net vol disclaimer, dit is heeltemal 'n wiskunde vraag.
Wat jy doen is as gevolg van 0 en 1 en jy
dit wil binne wees hierdie reeks, wat jy eintlik
uit te vind hoe groot die reeks is, en dan
jy basies skaal dit op, en dit is wat dit is om te doen.
>> b minus 'n gee jou die reeks, die verskil tussen die getalle.
Jy kan vermenigvuldig tussen 0 en 1, en dan voeg 'n regverdige
beteken dat jou skaal dit sodat dit tussen A en B,
wat ek nie regtig wil hierdie probleem.
Soos ek gesê het, hierdie quiz bedoel in te sluit
mense wat minder gemaklik, iewers tussen,
en meer gemaklik.
So as hulle dit so dat dit iets
dat almal by die minder gemaklike plek sou kry,
ons sou te veel mense scoring vervolmaak,
en die meer gemaklik verveeld sou wees.
>> Sodat hulle altyd hierdie soort brein teaser vrae
wat bedoel is om 'n bietjie moeiliker wees dat neem 'n paar kreatiewe denke.
Wanneer jy hulle sien, Moet nie te gestonk.
Ek sou beslis sê flip deur jou quiz eerste.
Pak die probleme dat jy weet jy kan,
want daar is geen nut om vas op 'n probleem wanneer daar drie
of vier of vyf op die bladsy na wat jy maklik kan doen.
>> Publiek: Hoekom presies doen jy vermenigvuldig dit met die reeks?
>> ALLISON BUCHHOLTZ-AU: Jy vermenigvuldig die reeks wat jy know-- dit is soos hoeveel na 'n
wil jy hê?
So jy kan dink, omdat dit gee 'n getal tussen 0 en 1,
jy kan dink dat dit as 'n persentasie.
So dit is basies sê as ons ' ons nommer lyn hier, 'n is hier,
en b is hier.
Jy is soos hoeveel verby 'is dit?
Is al wat ons doen.
So jy net te vra vir die persentasie van hierdie reeks, wat
is wat dit vir jou gee.
En dan moet jy basies net skaal dit deur die toevoeging van 'n.
Dit is 'n wiskunde brein teaser.
>> As daar enige laaste minuut advies, ek sou sê flip deur die vrae,
uit te vind watter jy weet dat soos, ag ek dit.
Byna seker hulle gaan wees om vrae wat jy nie sal weet
of dat jy gaan tyd te hê Want so getref jou sterkpunte, OK?
Julle gaan groot.
Daar is 'n baie vrae vir 'n rede,
sodat jy genoeg tyd het om soort van die geleentheid
aan te toon wat jy regtig goed is.
Dus is dit OK as jy nie goed in alles.
Speel op jou sterk punte.
Ja?
>> Publiek: So is dit gaan terug iets wat afgekap?
Ja, dit sal nie, want drand opbrengste tussen 0 en 1.
Dit sal 'n int terugkeer, want dit sal afkap
wanneer ons 'n of vermenigvuldig nie.
Cool.
Enige laaste minuut vrae?
>> Julle gaan groot te doen nie.
Jy gaan heerlik wees.
En selfs as dit nie, sal daar wees lekkergoed hier volgende week.
En Ek sal is lief vir jou.
Ek sal is lief vir julle, ongeag.
Alle reg, almal, baie geluk.
Het jy 'n goeie tyd.
Jy gaan goed wees.
En weet jy wat?
In twee dae gaan dit te wees oor, terwyl ek
twee midterms op Donderdag, sodat ten minste julle sal gedoen word.
Alle reg, ek sien julle ouens volgende week.