>> [TÓNLIST spila]
>> ANDI Peng: Þetta er CS50, og velkomið að viku tvö kafla.
Þetta er í raun á meðan viku tveir class-- okkar í raun,
fyrstu viku sem við höfum haft kafla.
Sýning af höndum, hversu margir af ykkur öllum kom til frábær lið síðustu viku?
OK, það er allt í lagi.
Það er allt í lagi.
Hversu margir af þú horfði frábær kafla síðustu viku?
OK.
Og þú krakkar gerði fínt á vandamálinu setja einn?
Þannig að ég ætla að taka það sem við höfum fullt af mjög greindur krakka
í þessum flokki og það verður allt í lagi.
OK.
Svo first--
>> Fyrst, við erum bara að fara að stuttlega fara yfir dagskrá í dag.
Við munum tala um námskeið skipulagning.
A einhver fjöldi af þú sennilega hefur einhverjar spurningar varðandi
hvernig hlutirnir keyra í þessu námskeiði.
Við munum svara þeim.
Við erum að fara að stuttlega fara yfir lykkjur í tilfelli
eitthvað af ykkur ungfrú frábær kafla.
Við munum tala um ASCII kortlagning.
Við munum tala um fylki, aðgerðir, stjórn lína rifrildi.
Og að lokum, hvað þú krakkar sennilega allir virkilega að vera hér til að fræðast um,
er pset2 þitt.
Við munum hafa sumir ágætur bragðarefur og ábendingar um hvernig á að gera það.
>> OK.
Einnig, í öðru lagi, höfum við hellingur af sælgæti hér.
Einhver sem hefur gaman nammi, bara koma upp hér.
Grípa sumir.
Ég er með fullt.
Við hafa a tonn á skrifstofunni.
Ég í raun ekki vilja að borða nammi allan daginn.
Þú krakkar ættu að borða allt nammi, vegna þess að ég færði það hér fyrir ykkur.
Bara borða nammi.
Það verður nammi hvert kafla.
>> Svo fyrst, hver er ég?
Mitt nafn er Andi Peng.
Ég er yfirmaður TA CS50 hér í Yale.
Og auk þess sem mun ég einnig be--
ef einhver myndi like-- gangi félagi, öxl til að gráta á.
Ef kvöldið áður vegna pset þinnar, þú hefur ekki hugmynd um hvað er að gerast,
lamdir mig upp.
Við munum commiserate saman, et cetera.
Bara veit að ég er hér sem úrræði fyrir þig sem fremstu víglínu
í að hjálpa ykkur að reikna út hvernig til að leysa vandamál í CS50 og víðar.
>> Netfangið mitt er andi.peng@yale.edu.
Ég líka að senda út mann tölvupóst með símanúmeri minn í það
svo að ekki allir á Netið getur séð símanúmerið mitt.
Feel frjáls til að hringja í mig hvenær sem er.
Í alvöru, síminn minn er venjulega fest við hönd mína.
Ég kann ekki að svara innan nokkra mínútna.
Ég kann ekki að svara innan fárra klukkustunda.
En ég get ábyrgst að þú, ef þú að senda mér netpóst, ef þú kallar mig,
texta mig, mun ég svara innan 24 klst.
Oftsinnis, mun ég svara fyrir að vegna þess að ég skil
að allir fékk nokkur vandamál, og þú vilt svörin
til að svara mjög fljótt.
>> Hins vegar, ef þú kallar me 30 mínútum fyrir
þessi stykki sem er vegna Fimmtudagur night-- vera eins, Andi, hjálpa mér,
Ég hef ekki started-- ég gæti gefið þú sem öxl að gráta á.
En það kann að vera tími til að hugsa um hvernig á að ekki gera það næst.
OK.
Oops.
Hvernig fer ég aftur?
Það sem við förum.
>> Svo í þessu námskeiði höfum við tonn af stuðningi við alla.
Auk þess að aðeins kafla hér, sem þér
í hverri viku fá að eyða 90 dásamlegt mínútur með mér,
Við höfum einnig skrifstofutíma.
Hversu margir af ykkur hafa þegar verið að skrifstofutíma um hjálp?
Great.
Það er mjög gott að sjá, vegna þess að við hafa starfsfólk yfir 45 Tas og VS
þjálfaðir fyrir þetta námskeið sem eru hér fyrir að hjálpa ykkur með psets þínum.
>> Mánudaga þeir eru haldnir í Teal Salurinn í 17 Hill House hér
í Yale.
Þriðjudaga og fimmtudaga, þeir eru haldnir í Commons.
08:00 til 11:00 nánast alla virka daga.
Komdu inn, koma út.
Allir vandamál, engin problem-- bara koma á í,
og þá munum við hjálpa þér út með það.
>> Í öðru lagi, í viðbót við skrifstofutíma og hlutar, höfum við einnig stuttur.
Hefur einhver séð nokkra af stuttbuxur eða walkthroughs í myndbönd
á heimasíðu?
OK.
Svo þeir eru í raun, mjög gagnlegt.
Yndisleg Harvard framleiðslu okkar lið þarna á þeim skóla
norðan, þeir hafa tekið og framleitt Þetta ótrúlegur Walkthrough myndbönd.
>> Þeir ætla að taka þig skref fyrir skref í gegnum hvernig á að fara um að leysa vandamál.
Oftsinnis, ef þú ert óviss um einfalt hugtak, eintölu hugtak,
taka a líta, því að við höfum sennilega stutt á það einhvers staðar á heimasíðu okkar.
Og það er yfirleitt mikill úrræði að leita þegar þú ert fyrst
glataður á hvernig á að höndla vandamál.
>> Í þriðja lagi höfum við einnig study50 og reference50.
Svo læra 50 á website er bara hlekkur.
Það er, held ég, study.cs50.net eða eitthvað svoleiðis.
Bara Google það.
Við höfum fullt af glærur.
Við höfum fullt af stuttbuxur og walkthroughs-- það allt tekið saman
mjög gott og snyrtilegur fyrir ykkur öllum að fletta í gegnum, sjá neina hugmyndir
sem þú ert óviss um.
Það myndi líklega falla þarna í study50.
>> Reference50-- svipuð.
Við höfum mikið af ýmsum athugasemdum staðar fyrir ráðstöfunar.
Og loks, höfum við það sem er kallað CS50 Ræðið,
vettvangur þar sem, ef kvöldið áður þú ert að gera vandamál, segja,
þú ert með spurningu.
Skráðu þig inn á CS50 Ræðið.
Birta spurninguna.
Og svo einn af hundreds-- kannski, thousands-- jafnaldra
taka þennan flokk á netinu mun skrá þig inn.
Og kannski einhver getur fengið svarið áður en TA dós.
Það er í raun bara á netinu vettvangur sem við getum öll
nota til að ræða vandamál okkar.
Það er flott.
>> OK.
Svo setur vandamál.
Við erum að fara rétt í þykkt Heimadæmi tvö.
A einhver fjöldi af okkur hafa nú þegar barist í gegnum vandamál setja einn.
Við vitum nú þegar að kannski að bíða fyrir í gærkvöldi til að gera pset þinn
er ekki smartest hlutur til gera í CS50.
>> Ábendingar og ábendingar raun fyrir Árangur er lesa alla sérstakur.
Hversu margir af þú ert nú þegar lesa sérstakur fyrir pset 2?
OK.
Það er solid magn.
Ég veit að þú krakkar hafa sennilega viðurkennt nú sérstakur eru mjög lengi.
Þeir eru mjög, mjög langur.
>> Það er mjög erfitt að lesa hverja línu þess vandlega orð með orði.
Þú vilt bara Lögð hvar það segir þér að gera eitthvað.
Ég get ábyrgst að þú, ekki gera það.
Ef þú gerir það, þú ert líklega að missa eitthvað
þar sem það segir þér hvernig á að byrja a vandamál
eða það segir þér hvað á að nafn vandamálið eða það segir þér,
þetta er líklega besta leiðin að byrja að gera vandamál þitt.
Og þá verður þú að vera glataður.
>> Þegar þú reynir að lesa þinn sérstakur hálfa leið í gegnum,
a einhver fjöldi af the mikilvægur information-- í að þú ert ekki
að fara að vera fær til raunverulega aðgang.
Svo lesa alla sérstakur.
Reyndu að lesa alla sérstakur áður en þú kemur að hluta,
því þá, þegar við tala um pset,
við getum öll haft hugmynd um hvað er að gerast.
>> Í öðru lagi, þetta er hugtak að ég vil vísa
mikið um námskeið önn.
En í raun, hitta okkur hálfa leið, ekki satt?
Me, sem ta og Jason sem auðvitað framkvæmdastjóri og Scaz sem prófessor þinn
og David sem prófessor og allt önnur yndislegu TAS á þessu námskeiði,
aðstoðarmenn í þessu course-- við munum gera okkar besta
til að tryggja að þú ert að stilla upp til að ná árangri í þessu námskeiði.
Við munum halda kafla.
Við munum halda skrifstofutíma.
Við munum svara símanum símtöl, svara tölvupóstinn,
gera allt sem við getum til að gera viss spurningum þínum er svarað.
>> Hins vegar hjálpa okkur út líka.
Hitta okkur á miðri leið.
Ef þú kemur til skrifstofutíma hafa ekki farið kafla, ekki
hafa séð fyrirlestra, hafa engin hugmynd um hvað er að gerast, eins og, hjálpa mér.
Ég ætla að vera eins og vel, ég er hryggur.
Það kann að vera tími til að lána sem öxl að gráta á,
vegna þess að ég er ekki viss hvað ég get gert til að hjálpa þér
ef þú reynir ekki að minnsta kosti hjálp sjálfur svolítið í upphafi.
Hitta okkur á miðri leið.
Þú veist, vinsamlegast koma tilbúinn til að svara og fá
tilbúinn til að taka þátt í því efni.
Það gerir það svo miklu auðveldara fyrir alla sem taka þátt.
Já, það er ansi mikið það.
>> Flokkun.
Svo á kennsluáætlun, það er nokkuð í-dýpt um hvernig við einkunn.
En í raun, sundurliðun í þessu er 50% af gráðu þína
verður psets, sem er yndislegt, því það er
þar sem þú ert að eyða mikill Meirihluti auðvitað tíma þínum í.
Skyndipróf 40%, og þitt Lokaverkefni verður 10%.
Það verða tvær Skyndipróf allan að sjálfsögðu á önn.
Ég held að tíma og dagsetningar eru einnig skráð á kennsluáætlun.
>> Leiðin sem við munum að yfirferð psets þína
er að við höfum í raun fjórir gildi sem við gefum hvern bekk.
Við höfum gildi umfangi, rétttrúnaður, hönnun, og stíl.
Svo eins og þú sérð, það er góður af okkar Formúlan fyrir útreikning psets.
Þrír við gefum mest þyngd að réttmæti,
því augljóslega þjálfara skal prófa í þeim tilvikum
að við viljum það til að prófa fyrir.
>> Þú krakkar hafa allir check50 ráðstöfunar.
Það er mjög gagnlegur virka að þið getur allt
hlaða kóða til netþjóna okkar, þar sem við munum athuga það fyrir þig.
Og þú hefur séð þá frowny andlit, broskalla andlit.
Þeir eru mjög, mjög gagnlegt.
Vinsamlegast ekki vera nemandi sem eins tilraunir
að hardcode í öllum svörum við þeim.
Ég hef ákveðið séð pset hvar einhver sá allt gildi check50
og þeir dulmáli bara erfitt in-- ef þessi tala, prenta út þetta númer.
Ef þessi tala er að prenta út það númer.
Ekki gera það.
>> Jafnvel þótt tæknilega check50 er rétt,
leið til að leysa í Vandamálið er ekki rétt.
Svo bara nota check50 sparlega.
En einnig að tryggja að þú skilja hvernig það er að virka,
forritið er að virka í viðbót við check50,
vegna þess að við getum ekki próf á hverjum hægt að ræða check50.
Við munum vera að prófa nokkrar af þeim.
>> Hönnun er í raun, hvernig vel hönnuð er númerið þitt?
Ef þú ert að afrita og líma margfeldi línur af kóða margir, mörgum sinnum.
Kannski þú ert ekki alveg bestu hönnun í kóðann þinn.
Kannski er kominn tími til að bæta við að lykkja.
Í meginatriðum, hér er það bara allt um að reyna að gera númerið þitt,
reyna að skrifa kóðann þinn á eins skilvirkan hátt og auðið er svo að forritið keyrir
eins fljótt og auðið er.
>> Loks höfum við stíl.
Svo er stíll góður af handahófskennt, huglægt hugtak.
Ég veit að við höfum opinberlega stíl 50 leiðarvísir fyrir CS50,
þar sem það segir þér, ó, þér ætti að hafa pláss hér.
Þú ættir konar snið númerið þitt með þessum hætti.
Þú ættir að nefna hlutina með þessum hætti.
>> Ég er ekki alveg sama, í sjálfu sér, hvernig þú velur að stíll númerið þitt,
bara svo lengi sem þú vera í samræmi.
Til dæmis, ef þú vilt að hafðu bil eftir fjögurra þitt
áður fjórum lykkja, bara gera það í hvert skipti.
Ekki góður af að gera það.
Ekki gera það ekki öðrum tímum.
Ef þú vilt halda Curly axlabönd pláss á vissan hátt,
bara alltaf að gera það þannig.
Ekki góður af að gera það einhvers staðar hér og einhvers staðar ekki þar.
Þegar við erum að flokka, það er mjög erfitt
ef ég hef ekki hugmynd um hvernig þú ert að forsníða númerið þitt,
hlutirnir eru wacky og af stað.
Ef þú heldur bara það samræmi, það er miklu auðveldara fyrir mig sem meiri
að vera fær um að lesa kóðann þinn.
Það er miklu auðveldara fyrir þig sem nemanda að vera fær um að líta í gegnum kóðann þinn
og sjá hvað er rangt við það rista hvers vegna það er mál.
Stíll er einn af the auðveldlega það þú krakkar geta gert til að fá fullt skora.
Í meginatriðum, ef þér þykir vænt bara, ef þú borgar fimm mínútur af athygli
að númerið þitt í hverri viku, þú ættir vera að fá fullt stig stíl.
>> Loks höfum við það sem er kallað margfaldað umfangs.
Scope-- Ég veit að það er stór orð, sérstaklega í þessum flokki.
En umfang, allt sem leiðir er að þú ert að reyna
að psets eftir bestu getu þína.
Ef þú kveikir á þremur af fjórum vandamálum þínum
og ekki einu sinni reyna að seinast, ert þú sennilega
að fara að missa nokkur stig á umfangi.
>> Jafnvel ef þú byrjar bara vandamál, gera þitt besta til að ganga í gegnum það.
Jafnvel ef það virkar ekki, snúa það í, því sem sýnir og sannar
að okkur að þú ert að reyna, að þú reynt vandamálið sett
eftir bestu getu þína.
Og þá getum við gefið þér fullur stig fyrir umfangi.
>> Svigrúm er einnig mjög mikilvægt að þegar við tala um lægsta pset skora falla.
Svo á meðan að önn, hafa ykkur níu psets.
Og við munum í raun að sleppa Lægsta skor úr þeim níu,
en aðeins ef þú ert með fullt stig umfang.
>> Þannig að ef þú kveikir í ófullnægjandi pset, Því miður getum við ekki falla sem einn,
vegna umfangs þinn atriði voru ekki lokið.
Svo jafnvel ef þú ert ansi viku þar sem þú ert að deyja og þú ert veikur
eða þinn hundur deyr, kötturinn þinn deyr, og þú ert mikið með heimavinnu,
bara reyna að pset.
Gera það eftir bestu getu þína.
Ef það virkar ekki, það skiptir ekki máli.
Bara kveikja í.
Að minnsta kosti getum við gefið þú bendir á viðleitni.
>> A fyrir viðleitni í þessum flokki.
Að minnsta kosti Lægsta skor falla fyrir viðleitni.
Svo já.
Það er ansi mikið það.
Hjartarskinn einhver hafa spurningar þannig langt á hvernig við bekk í bekknum?
Eða eitthvað af þessu?
Eitthvað af þessu svo far-- köflum, skrifstofa klst?
Cool.
OK.
>> Þannig að þetta er efni sem ekki hefur gaman virkilega að tala um.
Ég í raun ekki eins og að tala um það.
Þið gera ekki raunverulega vilja að heyra mig tala um það.
En því miður, við öll að tala um það.
David var 20 mínútur á fyrirlestur að tala um það.
Og það er efni akademískra heiðarleika.
>> Þannig að við höfum öll hér sennilega skrifuð ritgerð einhvern tíma í Yale ferli okkar.
Við höfum sennilega fengið fyrirlestur þar sem við höfum verið sagt að ekki plagiarize ritgerð okkar,
því að vinna er ekki okkar.
Í tölvunarfræði, höfum við sams konar hugtak.
Öll vinna sem þú sendir inn, allt kóða sem þú skrifar
ætti að vera númer sem þú hefur skrifað.
Ætti ekki að vera kóðann sem þú hefur afritað frá einhvers staðar annars.
Ætti ekki að vera númer sem þú hefur googled og plopped í
og þú í raun ekki vita ef það virkar.
Þú ert góður af tilfinningu hvað það er að gera, en í raun ekki.
Hvenær í vafa, fyrst og fremst, það er bara sanngjarnt.
Á námsskrá okkar, höfum við a heild listi af hlutum
við sjáum sem sanngjarnt móti ekki sanngjarnt.
>> Til dæmis, eðlileg er þú og vinur þinn
ræða hvað er besta leiðin til að fara um rökrétt að leysa vandamál.
Það er nokkuð sanngjarnt.
Það myndi ekki vera sanngjarnt er ef þú krakkar komu saman, slegið inn sama kóða,
og sneri í sama kóða.
Það er ekki sanngjarnt.
Sami hlutur, eins konar ritgerð.
Ef þú vilt ræða með vini þínum, hey,
þetta er það sem ég vil skrifa um.
Þetta eru skrefin sem ég vil taka að skrifa um það, frábært.
Það er dásamlegt.
Vinsamlegast vinna með hvert öðru.
Ef þið byrja skrifa það sama,
snúa í sömu ritgerð, sem er minna lagi.
Svo þegar þú ert í vafa, bara gera það ekki.
>> Hér í CS50, hafa forskriftir að við sem hlaupa til gera sjálfvirkan til að prófa
ekki aðeins rétt á númerið þitt, en einnig sérstöðu kóðann þinn.
Svo vinsamlegast ekki setja okkur í stöðu þess að þurfa að vísa máli til EXCOMM.
Vinsamlegast bara fyrir alla, við skulum bara gera þetta dásamlegur reynsla.
Allir læra betur, við erum öll hamingjusamari,
og við erum öll sett upp til að ná árangri í þessu námskeiði.
Eitthvað sem er mjög sérstakt þessum flokki
að ég held að allir ættu að raunverulega borga eftirtekt til er að við höfum
það sem er kallað eftirsjá ákvæði í námskrá okkar.
Svo í raun, innan 72 klukkustunda, ef þú telur að þú hafir gert eitthvað
þú ert ekki alveg viss var við á, skaltu koma til okkar.
Við lofum þér að innan 72 klukkustunda við munum fjalla um málið sjálf
án þess að vísa til hærri yfirvald á sviði stjórnsýslu.
>> Svo ef þú kemur til mín og segja: Andi, hey, ég er mjög leitt,
en ég held að það er nokkrar línur í mínum númer í gærkvöldi að ég konar googled,
fékk burt af Stack Flæða, afrita og líma,
og ég er virkilega, virkilega miður um að láta mig vita.
Vinsamlegast ekki bara láta það Fester og bara vona að ég grípa það.
Við munum grípa það.
Bara koma til mín.
Láttu mig vita innan 72 klukkustunda.
Við finnum út lausn.
Og við loforð um að við munum ekki vísa til háskóla yfirvöld í meginatriðum.
Svo það er í besta áhuga þinn bara að vera heiðarlegur við alla
þátt í námskeiðinu.
>> OK.
OK.
Svo nú, fljótt áður Ég flyt á, er einhver
hefur einhverjar spurningar varðandi flutninga á hvernig námskeið við erum að fara að hlaupa,
hvernig kafla eru að fara að hlaupa, eitthvað af því?
OK.
Já.
>> Áhorfendur: [inaudible]?
ANDI Peng: Já.
Svo quizzes-- hvernig margir af þú ert í Monday / Miðvikudagur kafla?
Hversu margir af þú ert í Tuesday / fimmtudagur?
OK, svo það er a solid hættu hér.
Svo leið að við að keyra það í Yale er að við
eru að fara að hafa tvo aðskilda quizzes-- einn fyrir hvern section-- sem
verður tekið á bekknum.
Ég held að það er október, í lok október, eitthvað svoleiðis, sem viku eitt
af spurningakeppni.
Já, svo bara koma að bekknum.
Á þeim mánudag eða miðvikudag, þú munt taka prófið.
Á þeim þriðjudag eða fimmtudag, þú munt taka aðra quiz.
En sama efni verður fjallað.
Já.
Góð spurning.
Já.
>> Áhorfendur: Hvar eigum við fara að athuga einkunnir okkar?
>> ANDI Peng: Já.
Svo ég mun vera að senda út E-mail hvað hverri viku
þegar Skyndipróf eru graded-- eða, Því miður, þegar psets er farið.
Psets eru yfirleitt snúið í eftir hádegi eða föstudegi.
Svo ég lofa að ég mun reyna að fá þá til baka til þín
með því að hádegi af eftirfarandi föstudegi.
>> Alltaf þegar ég einkunn í pset, mun ég senda út tilkynningu á bekk bókinni
það segir þér skora Hægt er að skoða á netinu.
Svo rétt í þessari viku, eftir að ég klára einkunnagjöf psets síðustu viku,
þú krakkar vilja fá tölvupóst tilkynning að segja þér,
hey þetta er þar sem þú fara að skoða einkunnum þínum.
Og þú getur séð á hverjum sundurliðun einkunnum þínum.
Þú getur séð ummæli.
Oh, fljótur hlutur einnig.
Kommentunum í the mikill Bókin er þar sem ég ætla sennilega
eyða meirihluta af tíma einkunnagjöf mína.
Svo það er einn hlutur mjög mikilvægt þegar
þú krakkar ert að skoða einkunna þínar á psets þínum
er ekki aðeins að leita á líkamlegri skora
en einnig að taka tíma til að raunverulega lesa athugasemdir mínar.
>> Oft sem gefur þér endurgjöf eftir því hvernig þú ert að leysa vandamál.
Ef þú þarft að gera eitthvað svolítið betur,
uppbyggjandi gagnrýni yfirleitt er Besta gefið í þeim athugasemd hluti.
Svo vinsamlegast, vinsamlegast, ég ætla að eyða tíma í að skrifa athugasemdir.
Vinsamlegast, myndi ég raunverulega þakka það ef þið myndi lesa þær athugasemdir.
OK.
Cool.
>> Allt í lagi.
Þannig að við erum að fara að byrja að tala og bara að skoða fljótt
sumir af efni frá viku núll bara þannig að við erum
á hægri síðu fyrir farin vandamál þessari viku.
Svo á meðan lykkja er einn af þremur gerðum af lykkjum
við ræddum fyrr í þessum flokki.
>> A meðan lykkja raun er skrifað í setningafræði
þar sem, á meðan ákveðnum skilyrðum, gera þetta ítrekað, ekki satt?
Hugsaðu um það með þessum grafík hér.
Þú ert að fara að byrja á a í kóðanum þínum ákveðnum stað.
Þú ert að fara að slá inn lykkja ástand if-- Ég know-- ekki x er minna en einn.
>> Ef það er satt, þú ert að fara að framkvæma lykkja líkamann.
Og þú ert að fara að halda að gera sem aftur, aftur, aftur,
yfir og over-- sem er hvers vegna það er loop-- þar ástand þitt verður
rangar.
Svo á þennan hátt, while lykkju er einn af þeim einfaldari leiðir til
að skrifa hvers konar ástandi sem þarf að endurtaka aftur og aftur og aftur.
Réttlátur vera varkár þegar þú ert að skrifa hvers konar lykkju
að þú hefur útgang ástand sem og uppfærslu á hvað það
er svo að lykkja þinn styður ekki bara hlaupa aftur og aftur óendanlega.
Í öllum tilvikum, þú ert að fara til að vilja ganga úr skugga um
sem þú ert að breyta eitthvað í númerið þitt eða í lok lykkju
bara til að vera viss um að þú hafa a vegur að komast nær þeim ástandi
sem þú vilt að hitta til enda.
Er að skynsamleg að allir?
Við bara viljum ekki að vera lent í þessu spíral hvar
við fara í kring og kring og það er engin leið til að brjóta hliðar.
Og sérhver lykkja raun hefur leið til að gera það.
OK.
>> Í öðru lagi, margir af þú í Mario psets þínum
sennilega þurft að ráða þessi tegund af lykkju.
Það er kallað do while lykkju.
Fyrst af öllu, getur einhver sagt mér hvað munurinn á milli do
meðan lykkja og á meðan lykkja er?
Já.
>> Áhorfendur: The do while lykkju keyrir í fyrstu [inaudible].
>> ANDI Peng: Já, einmitt.
Svo do while lykkju alltaf það gjörir er inni í do, inni í sviga
það og gerir það ástand áður en að haka fyrir the-- hryggur,
er þessi númer áður stöðva fyrir ástandi.
Og þetta er sérstaklega viðeigandi fyrir okkur hér í þessum flokki, af því að flestum tímum
við erum að fara að vilja til að hvetja notandi fyrir einhvers konar inntak.
Og þá, eftir inntak þeir gefa okkur,
þá getum við metið, ó, við þurfum að hvetja þá aftur?
>> Svo í Mario, ef notandinn gaf þér neikvæð hæð, til dæmis,
þú ert að fara að fyrsta hvetja og gera hvað sem er inni.
Síðan sem þú ert að fara að athuga á meðan.
Þú veist, er neikvæð 1, er að jákvæð tala?
Ef það er ekki, ég ætla að fara aftur og endurtaka gera og endurtaka
og endurtaka og endurtaka þar til þeir að lokum gefa þér númer sem þú vilt,
að við getum öll ráða í númerið okkar.
Það er mjög mikilvægt fyrir í raun hvaða notandi inntak.
Ég get ábyrgst að þú allir tími í pset hvar
við biðjum þig að inntak hvers konar kóða, við erum
líklega að fara að gefa þér að ræða próf sem við erum
að fara að gefa þér eitthvað slæmt það er ætla að reyna að brjóta kóðann.
>> Ef við reynum að biðja þig um að inntak An heiltala, getum við bara gefa þér band
og sjá hvernig þú myndir höndla það.
Ef við biðjum þig um að ráða í aldur, vér megum gefa þér neikvæð tala
til að sjá hvernig þú myndir höndla það.
Bara ganga úr skugga um að þú krakkar eru að prófa fyrir tilvik þar sem þú færð ekki besta
inntak, við skulum bara segja.
Og gera á meðan lykkja er oftsinnis besta
leið til að hanna þinn svo að hann uppfylli þessi umfang.
OK.
>> OK.
Svo er þetta líklega flókið lykkja út af þremur
sem við höfum litið á hingað til.
Og það virðist mjög ógnvekjandi í fyrstu.
En ég ábyrgst að þú, þegar þú krakkar fá the hanga af hvernig á að nota fyrir lykkju,
það er einn af the gagnlegur hlutur, gagnlegur verkfæraskúr í vopnabúr þinn
fyrir áfram í þessum flokki.
>> Svo til dæmis, í grunni, við höfðum þetta mjög einfalt blokk
sem bara sagt endurtaka þetta víst frasar ákveðinn fjölda skipta.
Við the vegur, SAJ-- það er Scaz Andi Jason.
Við undirrita oftsinnis tölvupóst Saj okkar.
Ef við segjum saj, ekki vera að rugla.
Það er bara okkur.
>> Svo í grunni, við varúlfur fær til að hafa blokk þessi, endurtaka ég elska Saj!
10 sinnum.
Mjög einfalt.
The rökfræði á bak við það er mjög, mjög einfalt, ekki satt?
Ég vil fyrst fara í gegnum fyrsta tími og séð að í annað sinn
og séð að þriðja sinn svo framvegis og svo framvegis, þar til þú högg að 10.
>> Og hvernig við viljum tákna að í númerið er bara í gegnum einfalt fyrir lykkju.
Svo að, þú ert að fara að lýsa því yfir breytu hér, í þessu tilfelli,
með int.
Við erum að fara að nefna það að ég.
Við erum að fara að frumstilla hana 0.
Og stífla útgáfa er að fara að vera ég er minna en 10.
Og uppfærsla er að fara að vera ég ++.
>> Og innan í lykkju, það er að fara að framkvæma þar til að lokum það
hits enda condition-- sem ræða, það er að fara að brjóta hliðar.
Það ætti að vera efni sem þú krakkar hafa alls konar séð áður
og þurfti að gera fyrir vandamálið setja einn.
Hefur einhver hefur einhverjar spurningar um fyrir lykkjur núna?
OK.
Great.
>> OK.
Svo fyrir þá sem hafa lesa pset sérstakur fyrir þessa viku
vita að við erum að fara að þurfa að ráða eitthvað sem kallast ASCII og ASCII töflunni.
Og Davíð í fyrirlestri fór yfir stuttlega hvernig tölvur essentially-- allt
er umrita í dulmál í tölvu í tvöfaldur, í núll og sjálfur.
Og hvernig sem tölvur eru fær að geyma mismunandi gildi í viðbót
að núll og sjálfur eru með kortleggja þær tölur til að tákna aðrar tölustafi
eða í raun aðra stafi.
>> Svo í þessu tilfelli, sem ASCII table-- allt það gerir
er kort stafi eða stafir, á númerum.
Svo frumkóða skrá í computer-- það sér þinn,
hey, fullt af núllum og sjálfur, núll og sjálfur, núll og sjálfur.
Það er það geymt í Raunveruleg minni tölvunnar.
>> En þegar við mennirnir viljum samskipti við tölvuna,
Við want-- segja, til dæmis, ef ég vil hástafi A,
Ég ætla að þurfa einhverja leið að segja tölvuna, ó,
þegar ég slá hástafi A, ég meina Þessi framsetning í tvöfaldur.
>> Og svo leiðin sem við gerum sem er kastaði handahófskennt hlutur kallast ASCII töflu,
þar sem við, eins og menn, sem forritari, sumir tími síðan,
við ákváðum geðþótta að vér voru að fara að úthluta fjölda
gildi þessum persónum.
>> Svo þú krakkar geta google þetta á netinu.
Ég held að það er tengill á það í þinn pset-- bara ASCII kort borð, ASCII
borð.
Það þýðir bara tvöfaldur tölur í stafi.
Og það er að fara að vera mjög gagnlegt fyrir Heimadæmi þinn
þegar þú vilt reikna neitt eða ef þú
vilt birta viss stafir eða heiltölur
eða vinna ákveðnar persónur.
Það er að fara að vera mjög mikilvægt að þið öll
vita hvernig á að vafra á ASCII töflunni.
>> Svo til dæmis, hástafi A er táknuð með fjölda 65.
Og lágstafir a er táknuð með 97.
Svo það er mikilvægt að vita að munur á milli tveggja gilda
er 32.
Oftsinnis, ef þú þarft að umbreyta frá hver við annan, munurinn er 32.
Og ekki hafa áhyggjur ef þú ert góður af ruglaður á þessu í fyrstu.
Við munum fara yfir hvernig við gerðum ráða þetta í raun kóða.
>> OK.
Svo fyrir þá með fartölvur út, ekki hika við að draga upp ASCII töflu,
vegna þess að þetta mun líklega þurfa krakkar að vísa
hvað persónurnar eru.
OK.
>> Svo að vita að ákveðin Stafir Map tiltekin númer,
ef ég væri að keyra bara fyrsta lína af að code-- printf A,
lágstafir a, mínus hástafir A. Er einhver
hafa giska á hvað væri prenta út á skjánum núna?
>> Svo fyrst af öllu, hvað þýðir lágstafir a tákna?
Hvað tala er að kóðuð í ASCII töflunni.
Sorry?
>> Áhorfendur: 97?
>> ANDI Peng: 97, frábært.
Og hvað er hástafi A?
>> Áhorfendur: 65.
>> ANDI Peng: Svo er það 97 mínus 65?
>> Áhorfendur: 32.
ANDI Peng: OK.
Svo hvaða gera þú krakkar hugsa er að fara að gerast þegar ég inntak þessi lína af kóða
í tölvunni minni?
>> Áhorfendur: [inaudible].
ANDI Peng: Því miður, tala upp.
Engar áhyggjur.
Þetta er mjög öruggt umhverfi, mínus myndavél.
Við erum öll að fara to-- engar áhyggjur.
Bara að við erum öll að fara að láta eins og það er bara okkur kælingu í þessu herbergi.
Engar áhyggjur.
Engin spurning er of heimskur.
Ekkert svar er heimskulegt svar.
Ég er líklega að fara að gera mistök í tengslum við kennslu mína.
Í alvöru, strákar, bara blurt það út.
Vertu öruggur í þig, þú veist?
Svo hvað var það?
Hver sagði að á síðasta svar?
OK.
Hrópa að gott og skýrt.
>> Áhorfendur: 32?
>> ANDI Peng: 32.
OK, við skulum keyra þennan kóða og sjá hvort það er það sem gerist.
OK.
Svo eins og þú krakkar geta konar sjá, dæmigerð tákn sem ég hef
sett upp hér fyrir hvernig við myndum ráða hvers konar forrit í tölvunni okkar.
Við höfum meginhlutverki okkar innan meginvirkni okkar.
Ég ætla bara að fara að afrita og líma þessa línu af kóða.
Einnig að vera varkár þegar þú krakkar ert að afrita og líma kóðann.
Stundum ákveðin rekstraraðila ekki líma yfir rétt.
Í því tilviki er mínus merki var reyndar þjóta.
Og þannig að tölvan hafi ekki tekið það upp.
Svo ég þurfti að fara til baka og líkamlega retype það.
Réttlátur vera varkár þegar þið eru að gera það.
>> OK.
Við erum að fara að keyra þetta hér.
Þannig að við erum að fara að cd í section2 okkar.
Ég hef kallað þetta forrit asciimath.
Svo man, þegar við hlaupum allir program, við viljum fyrst taka saman það
með því að keyra það í gegnum gera okkar.
Og þá viljum við í raun að keyra forritið með því að gera punktur-skástrik.
Þannig að við erum að fara að ./asciimath.
>> Rétt, það sem við förum.
Og við sjáum 32.
Vel gert.
Þú eiga skilið stykki af sælgæti.
Nammi fyrir þig.
Sorry.
Allt í lagi.
OK.
Svo við getum farið aftur til okkar dæmi hér.
Aah, nr.
Aah.
OK.
Ég ætla bara að fara að halda því þannig.
OK.
Svo eins og þú krakkar geta séð, getum við gert hellingur af mjög áhugaverðum hlutum,
a einhver fjöldi af mjög flottum hlutum, a einhver fjöldi af mjög flókið það felur
ASCII stafi og tölur.
Þegar þú færð niður til að stilla fimm, það er mikið til að fylgja eftir.
Við erum ekki að fara að fara gegnum kafla.
Feel frjáls til að, ef þú getur, rökrætt það út á pappír
fyrst á hvað ætti að vera að gerast þegar þú inntak svo band af gildum.
Til dæmis, í þeirri síðustu línu, höfum við z-- sem táknar ákveðna number--
a-- sem einnig táknar ákveðin number-- plus 1 modulos 26
auk lágstafir a.
>> Ef þú krakkar halda lestur gegnum þetta, þér
má sjá mynstur koma upp í hvernig við erum að notfæra kóðann.
Ég mjög, mjög benda eftir bálkum ykkur öllum
krakkar fara á undan og inntak þá allt í tölvunni þinni
og sjá hvers konar tölur eru að koma út
og hugsið um hvers vegna þeir eru gerast, vegna þess að fyrir psets þínum
það verður mjög mikilvægt fyrir þig að skilja
hvers vegna ákveðin hlutir eru að gerast.
Öll þessi skyggnur verður á netinu.
Svo engar áhyggjur um að reyna að líkamlega afrita niður minnispunkta.
Netinu allt er.
Þessi hluti sjálft verður á netinu.
Allt mitt kóðann sem Ég er að keyra mun vera online.
Já.
Vissir þú ert enn með spurningu?
Áhorfendur: Hvað er modulos?
ANDI Peng: OK.
Svo er Modulo rekstraraðili sem er að fara að vera ansi mikilvægt að pset þinna krakkar fékk
hér.
Svo leið að rekstraraðilar í C og í forritun vinna
er að þú hafir það sem er kallað deild tákn og stuðull tákn,
sem er bara eins og prósent skilti.
>> Svo í C, þegar þú gerir heiltala deilt með heiltölu með skástriki,
C hefur tilhneigingu til að vilja skera burt öllum aukastafa,
vegna þess að heil tala vill að breyta til heiltala.
Það er ekki að fara til að vilja vera tvöfaldur með fullt af brotum allt eftir því.
>> Svo ef ég 3 deilt með 2, það er að fara til að skera burt 0.5 og bara gefa þér 1.
Svo það er eitthvað til að vera mjög varkár um þegar þú ert
gera hvers konar stærðfræði í forritun, er að tölurnar sem þú færð
mega ekki vera tölurnar sem þú varst að hugsa,
sem er ástæðan lokið máli mínu í þínum Síðast pset er svo mikilvægt.
>> Modulo gefur þér afganginn.
Svo til dæmis, ef ég gerði 3 Modulo 2-- svo 3 prósent skilti 2--
það myndi gefa þér afganginn af því.
Svo 3 deilt með 2 er 1,5.
Það er 1 afgangurinn af 1.
Það myndi gefa þér 1, sem er afgangurinn af því.
>> Svo þegar þú krakkar eru að flytja gegnum ASCII töflunni,
Modulo mun á endanum vera eitthvað sem er mjög mikilvægt,
og við munum fjalla um það síðar.
>> OK.
Svo eitthvað sem er nokkuð, frekar ný og nokkuð einstakt
sem við höfum rætt í þessari viku er hugtakið hvað array er.
Svo er fyrsta array tegund af gögn uppbygging
sem við erum að fara að lenda í þessum flokki.
Öll gögn uppbygging er er einhvers konar handahófskennt,
bókstaflega hluti eins uppbyggingu að við sem forritarar hafa búið til,
sem við höfum sett í númerið okkar sem geta innihaldið önnur stykki af kóða.
>> Svo í þessum skilningi, sem array-- hugsa um það sem skrá skáp,
þar sem ef þú opnar annað hillur á skrá skáp,
þú getur fengið aðgang að mismunandi hluti.
Í minni, fylki er bara að gera sama á tölvunni þinni.
Þú getur haft mismunandi blocks-- vér kalla þá indices-- af fjölda.
Það er bara eins og blokk, hillu minni
sem við höfum búið í þinn tölva sem þú getur inntak
ákveðin atriði í mismunandi rými.
>> Svo með fjölda, þú alltaf að specify--
Þú verður að gefa að lýsa yfir array á eftirfarandi sniði.
Þú ert að fara að fyrst tilgreina gögn tegund
sem þú vilt búa í fylkinu.
Ef ég vil fjölda heiltalna, Ég ætla að setja int þarna.
Ef ég vil fjölbreytta strengi, Ég ætla að setja strengi þar,
nafn array, og þá þú ert að fara að hafa hornklofa.
Og inni í hornklofum, þú ert fara að hafa stærð fylkisins þinn.
>> Eitthvað sem er mjög mikilvægt að hafa í huga þegar þú býrð fylki er
að þegar þú búa til array, sem stærð getur ekki breytt.
Svo ef þú veist að núna þú ert með fjölbreytta stærð 10,
þú veist að ég er að fara að hafa 10 frumur innan eða 10 vísitölum innan þessu fylki,
og það er aldrei að fara til að auka eða minnka
sama hvað, og að það er nú bara 10 blokkir af plássi
úthlutað í minni sem getur geymt allt að 10 hluti af hvað sem þú hefur sett.
>> Svo á þennan hátt, fylki gögn tegund, gögn uppbygging sem er fylki
er mjög mismunandi frá nokkrum öðrum munum vera nær seinna í þessu námskeiði.
Já.
Til dæmis, ef þú vildir búa til array af stærð 3 sem
sem eru breytur integer-- Ó, fyrirgefðu, á temperature--
og hiti, af Auðvitað er heiltala.
>> Svo við myndum búa int, sem er gögn tegund af því sem við viljum geyma.
Við erum að fara að kalla þetta hitastig fyrir sakir flokkunarkerfi nafngiftir
eitthvað sem við öll skiljum.
Og við erum að fara að hafa hornklofa.
Og við viljum þrjár tölur.
Þannig að við erum að fara að setja þrír inni af því.
>> Eitthvað sem er í raun mikilvægt að hafa í huga
er að fylki eru núll verðtryggð.
Allt sem þýðir að þú byrja með vísitölu 0,
og þú keyrir upp í gegnum Stærð fylkisins mínus 1.
Svo til dæmis hér, við hafa fjölbreytta stærð 3.
Það er að fara að vera fær um að halda þrjú gildi.
En tölurnar themselves-- sem númer array, sem vísitalan,
array, eru 0 í gegnum 2.
Svo krakkar, vera mjög, mjög varlega þegar þú ert að fara í gegnum vandamál þín eru settar
og skapa hvers konar fylking, vegna þess að mikið af sinnum það er
virkilega, virkilega auðvelt að gleyma því.
Ég í raun ekki í vísitölunni 3, sem ég nú bara
hafa vísitölu 2.
Og ef þú reynir að aðgang þriðja vísitölu,
það er að fara að vera það sem er kallað null Ljúka.
Það er ekki að fara að raunverulega eru í fylkinu.
Og tölvan er ekki að fara að eins og það.
Svo vera varkár þegar þú ert að nálgast hlutina bara
til að tryggja að þú manst sem fylki eru núll-verðtryggð.
>> OK.
Svo er fyrsta dæmið bara ein leið til að búa til array.
Annað dæmi sem ég hef hér er bara sérstakt leið
um að skapa það sem er sömu gögn mannvirki sem við höfum bara inputted.
Svo í stað þess líkamlega að keyra gegnum og setja í hitastiginu 0
jafngildir hvað, hiti 1 jafngildir hvað, hiti 2 er
hvað, gæti ég í raun bara beint að búa það allt í einni línu
í hita hornklofa jafngildir.
>> Og takið eftir í þessu tilfelli, þú þarft ekki að tilgreina hversu stór fylking er,
vegna þess að tölvan er að fara að fara í gegnum og sjá að það er
þrír þættir í þessara hrokkið axlabönd.
Og það er að fara að vita, OK, Ég þarf fjölbreytta stærð 3.
Þú ert ekki að fara að þurfa að inntak það á eftirfarandi hátt.
>> Og einnig, já, þannig.
Hjartarskinn einhver hafa spurningar um hvernig við tökum fylki
eða hvernig uppbygging fjölda virkar?
Já.
>> Áhorfendur: [inaudible]?
ANDI Peng: Já, einmitt.
Svo ef þú varst að lýsa og frumstilla An array eftirfarandi aðferð,
sem er önnur leið, þú getur bara láta þá.
Og tölvan sjálfkrafa veit að það
þarf til að telja hversu margir þættir eru í þeim hrokkið axlabönd, aðskilin
með kommum.
>> Svo hér þeir sjá 65, 87, 30.
Þannig að tölvan veit, ó, það er þrjár heiltölur.
Ég veit að búa til nafn fylkisins hiti með þremur þáttum í það.
Góð spurning.
Já.
>> Áhorfendur: Er ekki hægt að búa til fylki með mismunandi gerðir af gögnum
sem hægt væri að færa inn í það?
Til dæmis með heiltölur [inaudible]?
ANDI Peng: Að því er varðar í þessum bekk, nei, núna.
Þegar þú býrð til gögn uppbygging eins og fylki,
þú ert að segja að tölva, hey, ég þarfnast þín
að úthluta svona mikið minni í harða diskinum mínum,
með hver klefi vera ákveðinn fjölda bita.
>> Mundu að við lærðum í viku núll að mismunandi gögn
tegundir hafa mismunandi stærðir?
Svo til dæmis, a band er mismunandi upphæð
pláss en bleikju sem er mismunandi pláss
frá heiltala.
Og svo ef þú tilgreinir ekki og þú blanda og passa hvers konar breytur
þú þarft, the tölva ' að fara að vera mjög ruglaður.
Og það er ekki að fara að vita hversu mikið minni til að gefa þér.
Svo í þeim tilgangi að hægri nú, tölvur geta aðeins
viðurkenna eina tegund af fylki.
Góð spurning.
OK.
>> Svo náttúrulega er Önnur spurning sem við höfum
er vel, nú að við höfum búið til array og við höfum sett alla þessa hluti
í fylkinu, hvernig eigum við að fara að vera fær um að nálgast það?
Svo dæmigerður skipulag sem við alltaf aðgang fylki er yndisleg okkar til hliðar.
Ég lofa ykkur að við munum vera að sjá mikið af þessum náungi hér.
>> Í meginatriðum, hvenær sem þú vilt að inntak gildi í fylkinu
eða ef þú vilt fá aðgang að þeim, sem Besta leiðin til að gera það er fyrir lykkju,
vegna þess að í for lykkju, þú vita hversu oft þú ert
fara til að vilja hlaupa í gegnum fylking, vegna þess að þú ert með stöðva útgáfu, ekki satt?
Og í hvert skipti sem þú keyrir í gegnum, getur þú fengið aðgang
annað þáttur í fylkinu.
>> Og einnig, þetta er ástæðan fyrir því að yfirleitt við byrjum okkar fyrir lykkjur á 0 virði,
vegna þess að þegar þú skoðar fylki, þú getur fengið aðgang að núll vísitölu.
Og svo fylgdi það mjög vel.
Þið kann að hafa langað til að skrifa int i er 1.
I er minni en eða jafnt og 3.
>> En það myndi ekki virka alveg eins vel hér, vegna þess að þú aðeins
hafa þætti 0, 1 og 2.
Og svo ef þú varst að byrja í I Á Element 1, 2, og 3,
þú ert að fara að enda í gangi út af mörk array þinn,
og slæmir hlutir eru að fara að gerast.
>> Svo ég vona að þú krakkar sjá Segue af hverju í fyrri flokkum
við vorum að kenna ykkur hvernig á að keyra og snið fyrir lykkju á leið að við værum.
Það er vegna þess, nú að við höfum færðum inn fylki,
þú getur séð hvers vegna 0 lánar sjálft mjög vel til að fá aðgang.
>> Svo leið og við gerum það er that-- ég bara prenta það út hér fyrir sakir
af prentun það út.
En ég hef staðgenglinum mína, komma.
Og í raun aðgangur hluti er að gerast.
The nafn af the array var kallað hitastig.
Svo það er hiti og i-ta þáttur í fylkinu.
>> Svo sem fyrir lykkju liggur í gegnum, það er að fara að byrja á 0.
Það er að fara að prenta út 0 Vísitala þessu fylki.
Þá er að fara að prenta út fyrstu frumefni.
Þá er að fara að prenta út seinni.
Og þá erum við að fara að brjóta.
Er allir á hreinu hvernig það er að gerast?
Great.
>> Allt í lagi.
Svo hér höfum við leið segja, ef við vildum ekki
á harða-kóða in-- mig sem forritari.
Ég vildi ekki að í raun líkamlega setja í sérhver einstaklingur þáttur
af þessu fylki.
Ef ég vildi í staðinn hafa notandi inntak gildi,
hvað er besta leiðin til að gera það?
>> Jæja, hér er ég hef búið þetta yndislega virka,
þar sem ég get lýst fylki.
Svo INT scores-- skulum bara segja að við viljum gera
fylki sem haldin einkunnina alla 18 nemenda hér í þessum kafla.
Ég held að við höfum fengið smá meira en 18 börn í dag.
En fyrir sakir dæmis er, við skulum gera ráð bara að við þurftum 18.
Ég myndi búa til nafn array frammistöðu með int, vegna stigafjölda, að sjálfsögðu,
eru tölur.
Og ég ætla að hafa 18 í hornklofum,
því það er hversu margir nemendur I langar að vera fær um að geyma skora á.
>> Og hvernig ég vil byggja array er að ég myndi
keyra það í gegnum a for lykkju, af Auðvitað, með 0 er 0 Vísitala minn.
Og þá með 18 vera minn hætt útgáfu, því það er
18 þættir í array.
Og þá er ég að fara að gera printf, Enter skora fyrir student-- BLA blaðrið.
>> Getur einhver sagt mér hvers vegna hér er ég prentun i plús 1 og ekki ég?
Það er góður af a bragð spurning, í raun ekki.
Það er í raun ekki líkamlega haft áhrif á gangi af kóða.
Já.
>> Áhorfendur: [inaudible] 0?
ANDI Peng: Já, einmitt.
Það er dálítið óþægilega að segja, hey, þú ert 0 nemandi í þessum flokki.
Það er dálítið undarlegt.
Svo okkur, eins og menn, í raun ekki eins að hugsa um hvernig tölvur hugsa.
Svo jafnvel þótt í tölva, það er að geyma gildi
í 0-ta vísitölu, þegar við erum menn, við gerum ekki raunverulega
eins og til að vísa til okkar sjálfra sem núll.
Svo þegar ég prenta bara að Ég ætla að prenta og bæta
1 bara fyrir sakir skýrleika.
Svo þegar ég prenta, ég ætla að vera hægt að prenta nemendum 1 til 18.
Það er í raun ekki áhrif hlaup kóða
á nokkurn hátt, eins og ég prenta.
>> En vera varkár þegar þú ert reyndar aðgang að array.
Þegar þú sérð skora i, eftir hér ég er reyndar
aðgang að 0th vísitölu og ekki 1 plus 0-- eða 1 plús 1,
í þessu tilfelli, Index svo að það er í raun ljóst.
Er allir góður af lagi á hvernig þetta er í gangi í gegnum
og með hverjum vísitölu ég setja gildi í fylkinu
og búa til fylki með 18 tölur sem notandinn er að fara að inntak?
OK.
Cool.
>> OK.
Við snúum okkur í eitthvað sem er nokkuð viðeigandi fyrir þetta verk sett eins og heilbrigður.
Ég veit í fyrirlestri, David-- Því miður, þú hafði spurningu?
>> Áhorfendur: Getur þú stækka það?
>> ANDI Peng: Já, svo ég reyndi.
En ég veit ekki.
Fyrir sumir ástæða, þetta útgáfa af PowerPoint
er í raun ekki að virka vel með skjánum.
Þannig að við erum bara að fara að halda því svona.
Allt þetta verður hlaðið netinu.
Því miður, krakkar.
Já.
OK.
>> Þannig að við getum einnig hafa strengi.
Svo ef þið í raun notice-- I veit Rob fór yfir þetta í þeirri fyrirlestri
að hann did-- band er í raun bara fylki af stöfum,
ef þú hugsar um það, ekki satt?
A band er nafn eða setning eða orð, ekki satt?
>> Ef ég væri að búa til band sem heitir Andi-- bara nafn mitt, A-N-D-I.
Þú hugsa um það sem bara einni breytistærð.
En í raun, það er brotið niður inn bara fjölda stafir.
Svo það er got a eðli a geyma í array gildi.
Það er got a eðli N geymdar í Annað vísitölu og svo framvegis og svo framvegis.
>> Þannig að á þann hátt, við reyndar hafa svona
uppbyggingu sett í staður fyrir strengi okkar.
Svo hér, ef ég væri að inntak í Orðið "borða" - svo jafnt string orð
fá band.
Ef ég væri að inntak orðið "borða" sem er líkamlega leiðin að tölvan mín
er að geyma þessi band í minni mínu.
>> Og ef ég vildi keyra í gegnum það og prenta það out-- svo fyrir í i
jafngildir núll, muna, í fyrirlestri, við fjallað eitthvað sem heitir strlen,
eða lengd strengsins.
Því ég í raun ekki vita hversu stór fylki er
af hvaða inputting-- notanda
>> Til dæmis, inputted I orðið "borða" og ég veit
sem er þrisvar stafir að lengd, ekki satt?
Svo ég gæti sett í þremur þar og allt verður í lagi.
En ef notandi inntak eitthvað þinn það er mismunandi fjöldi gildum,
þú ert að fara að ekki vera fær til raunverulega veit að þegar þú program kóðann þinn.
>> Svo leið að við tökum próf tilvikum svona er að við höfum eitthvað
heitir strlen, sem er bara fall sem segir þér hversu lengi band er.
Svo strlen á orðinu.
Orð mitt er að borða.
n jafngildir strlen á orðinu.
Getur einhver sagt mér hvað það gildi í raun er þarna?
Hvað þýðir n fulltrúi rétt nú, í þessu dæmi, ef ég hefði borðað?
>> Áhorfendur: 3.
>> ANDI Peng: 3, nákvæmlega.
Þannig að við höfum fyrir int i jafngildir núll, n jafngildir 3, í raun.
Og ég er að fara að keyra þar til það er minna en 3i ++.
Og það er að fara að í raun fara gegnum og gera það sama.
Það er að fara að prenta út hvert gildi og gefa þér
E-A-T. Það er bara gefur til kynna a öðruvísi leið til að skrifa það.
Það er að fara að vera mjög hjálpsamur.
Já.
Áhorfendur: Hvað er um kosti þess að setja sem n jafngildir strlen orð inni að
fyrir lykkju [inaudible]?
ANDI Peng: Já.
Svo ef ég væri to-- segja, til dæmis, ef ég væri að gera það og þá
do-- oop-- að í númerið mitt, það myndi í raun verið að gera eins og sama.
Hins vegar leið sem David útskýrði það á fyrirlestri, ef einhver af ykkur
muna, var það, sem menn, sem forritari,
við reynum virkilega að forrita okkar kóða svo að tölvan okkar er
að vinna haldið í lágmarki, svo að númerið okkar er mjög duglegur.
>> Þannig að ef ég hefði að það, hvað myndi gerast í gegnum fyrir lykkju mitt
er að ég myndi fyrst að lýsa a breyta nafni ég er að fara að vera 0.
Ég er að fara að athuga, ó, hvað er strlen af ​​orði?
Ó, strlen er 3.
Svo er ég minna en þremur?
Já það er.
Ég ætla að keyra.
>> Og þá í annað sinn til baka í kring lykkja, ég ætla að hækka i.
ég er að fara að vera einn.
Og ég er að fara að athuga, ó, en hvað er strlen á orðinu?
Ó, það er þrír.
Og gerir það virðast eins konar eyðslusamur, hvert skipti sem þú keyrir í gegnum lykkjuna,
að haka við virka, jafnvel þótt strlen af ​​orðinu
aldrei breytist?
>> Svo það er auka vald fyrir tölvu.
Þegar þú byrjar að tala um hluti sem eru billjón og milljarða
og milljarða af stöðum lengi, ímynda tölvuna
þurfa að líkamlega að fara í gegnum og athuga öll þessi hvert einasta skipti.
Það er ástæðan fyrir, að gera bara fyrir sakir hagkvæmni,
Við hafa tilhneigingu til að bara að gera þetta, vegna þess að þetta leiðin sem við erum aðeins
hringja í virka einu sinni í upphafi,
og að hvert skipti sem það fer í gegnum það er að fara
að geyma verðmæti 3 það, að þú ert ekki
þarft að stöðugt að athuga í hvert skipti.
Já.
>> Áhorfendur: Sorry.
Bara [inaudible].
Gætirðu ekki int n jafngildir strlen og setja að ofan utan til hliðar
einnig?
ANDI Peng: Já.
Þú gætir gert það, algerlega.
Ástæðan að við höfum það hér er vegna þess að leiðin fyrir lykkju verk
er að það er kallað staðbundin breytu í þeim skilningi
að allt sem þú ert búa inni til hliðar
aðeins til inni til hliðar.
>> Svo breytan ég bara er í þessum sviga.
Og hér eru breytur n einnig aðeins til í þeim sviga.
Svo ef þú værir að nota strlen af Bæta mörgum sinnum niðri,
algerlega besta leiðin til að gera það væri að lýsa það upp á toppinn
svo þú þarft ekki að gera það einu sinni.
Já.
Áhorfendur: Hvers vegna gera þú hafa a Ný lína eftir prósent
sjá hvort þú vilt að setja alla bréf hliðina á henni aðskilin?
>> ANDI Peng: Oh, ég vildi að að prenta þær allar á hverri línu.
Það skiptir ekki máli.
Já, það er formatting.
Það er góð spurning, þó.
Já, ef ég vildi prenta það allt á bara einni línu,
Ég myndi ekki hafa bandstrik í.
OK.
Allir góður?
OK.
Cool.
>> Þannig að ég held að ég hafi talað nóg.
Snúa ykkur að hlaupa í gegnum númer og segja mér hvað er rangt hérna.
Hvar er villan?
Svo eins og þú geta sjá, ég hef lýst yfir Ný array af taginu String heitir bekknum.
Og ég hef inputted Sam, Jess, og Kim í það.
Og ég er að reyna að prenta út allir þættir array.
Getur einhver sagt mér hvers vegna þetta er að fara að gefa mér vandamál?
Ég skal gefa ykkur 10 sekúndur til að hugsa um þetta.
>> OK.
Já?
>> Áhorfendur: Er vinstri miðju Jafnt og 3 eða [inaudible]?
ANDI Peng: Hægri.
Svo hversu oft þetta er í raun að fara að keyra í gegnum þessa lykkju?
>> Áhorfendur: Four.
>> ANDI Peng: Einmitt.
Það er að fara að í gegnum fjórum sinnum.
Það er að fara að keyra í gegnum á 0, 1, 2, og 3,
því þáttur þeirra er ég er minna en eða jafnt og 3.
Það er ekki að fara að hætta þegar það er 2.
Það er að fara að halda fara þar til hann lendir í 3.
Og eins og við vitum, það er aðeins þrír þættir í raun array okkar.
>> Ef við reynum að nálgast fjórða þáttur eða vísitölu 3,
þú ert að fara að lemja eitthvað í minni sem er ekki til.
Það er kallað null Ljúka.
Ekkert að fara að vera þar.
Tölvan þín er ekki að fara að vera mjög ánægð með þig.
Já.
Hjartarskinn einhver hafa spurningar á hverju sem var að gerast?
Það er sameiginlegt svæði til að forðast.
Já.
>> Áhorfendur: Er ekki í fyrsta renna einnig hafa a band af 2?
ANDI Peng: Nei
Svo í raun, þegar þú ert að gera fylki,
sem krappi rétt það, sem number-- allt
það er að segja þér er hvernig margir þættir sem ég hef.
Það er ekki í raun að segja mér Vísitölur neitt.
Þannig að í þessu tilfelli, ég veit að ég vil til að skrifa með þremur stöðum,
með þremur líkamlega stöðum til halda hvað sem ég vil halda.
Svo er það hvers vegna númer þrjú er.
Hins vegar, ef ég vildi að í raun að opna það,
ef ég vildi segja, printf bekknum krappi tala, þá
þú ert að fara að raunverulega setja líkamlega vísitalan þar.
Já, góð spurning.
>> Áhorfendur: Svo er líkamlegt Vísitala átti að vera [inaudible]?
ANDI Peng: Fyrirgefðu.
Getur þú tala upp hluti?
>> Áhorfendur: Svo er líkamlegt vísitölu [Inaudible] hvert kassa?
[Inaudible]?
>> ANDI Peng: Já.
Þannig að ég ætla að fara aftur til hérna.
Hugsaðu um hérna.
Við höfum fjölbreytta stærð 3.
Það er þremur stöðum, eins og, líkamlega tákn í hér.
En þeir eru heitir 0, 1 og 2.
Þannig að ef ég vildi fá aðgang að þeim, leiðin sem ég nálgast þær
er printf af hvað ég vildi hérna.
Þú þyrftir að prenta út nafn þess,
Því þá í tölvunni veit, ó, ég þarf að líta
í þessu fylki fyrir 0th vísitölunni.
Já.
En stærð þess breytist ekki.
Stærð er 3, án tillits til um hvernig þú merkja þær.
OK.
Allir góður?
Áhorfendur: Svo í hvert sinn sem ég [inaudible]?
ANDI Peng: OK.
Þannig að í þessu tilfelli, er það ekki í raun komast inn í það núna í námskeiðinu.
En veit að string-- eins og ég sagði áður, band er í raun
An array af stöfum.
Svo ef ég búa til array af strengjum, ég konar
hafa fjölda array stafi, ekki satt?
>> Þannig að í þessu tilfelli, vegna þess að ég hafa fjölbreytta strengi,
ef þú varst að slá inn mjög lengi orð, sem enn tekur aðeins eitt rými,
því það er einn strengur.
En ef þú varst að hugsa um persónum því fylki,
þá er að taka upp a einhver fjöldi fleiri stafir en einhverju öðru orðum
eru.
Ekki mjög mikilvægt fyrir núna.
En það er bara almennt hvernig það er að vinna.
>> OK.
Svo er þetta eitthvað sem ég ætla að láta þig gera mikið á meðan á önn.
Ég þarf að hvíla röddina.
Þú krakkar þurfa að örva ykkur.
A einhver fjöldi af þú sennilega að sofa núna.
Ég er inputting handahófi vandamál þar sem við í bekknum eða þú
með maka við hliðina á þér er að fara að eyða nokkrum mínútum að ræða
um hvernig við myndum fara um að leysa eða búa til forrit eins og þetta.
>> Svo núna, viljum við til að búa til program--
við erum að fara að kalla það upper.c-- sem breytir
lágstafir orð til efri-flokki string-- hástafi, því miður.
Bæta í strengi, því miður, er samheiti.
Ég ætla að breyta þeim að meina það sama.
>> Já.
Taktu nokkrar mínútur.
Það þarf ekki að vera skrifað á hvaða tungumáli.
Bara í sauðakóða kóða eða rökrétt hvernig við gerðum jafnvel
fara að gera slík vandamál.
Já.
>> [SIDE Samtal]
>> Ég tók eftir líka að þið can-- Ég svona sé nú þegar forritið.
Ég giska skortur minn á kynnirinn háttur er vandamál.
En það er allt í lagi.
>> [SIDE Samtal]
Já, takk, strákar.
Koma fá nammi.
>> Áhorfendur: Já!
>> [SIDE Samtal]
ANDI Peng: Einnig, já, Ég ætla að byrja að henda nammi
á fólk sem svara ekki spurningum.
Svo þú ættir alla svara spurningum.
Eða ég geri ráð fyrir fólk sem svara spurningum.
Já, hinn veginn.
>> [SIDE Samtal]
Áhorfendur: [inaudible]
>> ANDI Peng: Já.
Já.
>> [SIDE Samtal]
>> Allt í lagi, krakkar.
Taka eins, 10 fleiri sekúndur.
>> [SIDE Samtal]
>> OK, krakkar.
Svo áður en við byrjum að reyna að í raun líkamlega skrifa kóðann,
góð lífsvenja er að við viljum fyrsta konar ástæðu
út rökrétt hvernig við myndum gera það.
Þú vilt tryggja, áður en þú líkamlega
byrja að reyna að kóða í Mario, sem þú gerir
viss um að þú hefur sauðakóðanum þína.
Sem er að taka þig í gegnum það sem þú þarft til að búa svo
að þegar þér líkamlega skrifa program síðar,
þú ert betur í stakk búnir til að veiða villur í kóðanum þínum og svoleiðis.
>> Þannig að við erum að fara að bara að byrja by-- á ensku, í sauðakóða,
er einhver vilja til að gefa mér almenn skýring
um hvernig við myndum fara að gera þetta?
Já.
>> Áhorfendur: [inaudible].
ANDI Peng: Jú, engar áhyggjur.
Áhorfendur: Getur þú biðja hana eða spyrja einhver að fá band 1-- já, band,
og svo--
>> ANDI Peng: Já, þannig að þetta er góð byrjun.
Ég ætla að byrja að skrifa, því miður, eins og þú talar.
So--
>> Áhorfendur: --The lágstafir tölur eru hærri, ekki satt?
Eða að lágstöfum hafa hár tölur?
ANDI Peng: Einmitt.
Áhorfendur: Svo þá við drögum 32 frá hvað [inaudible].
>> ANDI Peng: Great.
Svo þurfum við almenna tilfinningu um hvernig á að vinna um þetta vandamál.
Vitandi að við höfum konar lært líkamlega þannig að strengir
eru geymd í minni, Hvað finnst þér þegar
veit að þú ert að fara að líklega að skrifa í kóðanum þínum
í því skyni að fara í gegnum streng?
>> Áhorfendur: Fyrir lykkju.
ANDI Peng: A til hliðar, einmitt.
Great.
Svo þurfum við almenn sauðakóðanum skrifað niður
þannig gefur þú bendir á hvernig þú
myndi færa um að leysa vandann.
Nú þegar þú hefur þetta, þér getur vísað henni til seinna
þegar þú ert að reyna að í raun skrifa kóðann þinn.
Þannig að við getum í raun að fara hér.
Og ég hef fengið fall sem kallast upper.c-- það is-- það á bara tóman sniðmáti
núna að þið eru að fara að hjálpa mér að reikna út um hvernig á að skrifa
þessi lína af code-- ekki línu af kóða.
Það verður margar línur af kóða.
>> Þegar byrjað hvers konar af auðu pset, hvað er
það fyrsta sem ég þarf að muna að gera?
>> Áhorfendur: [inaudible].
>> ANDI Peng: Great Já.
Eru.
stdio.h.
Oftsinnis er þetta einn af flestum auðvelt mistök fólk
mun gera þegar þeir eru skrifa, er að þeir
gleyma að fela mikilvægt safn þeir þurfa.
Þannig að ef það er viðtalstímar og þú ert eins og, Ég veit ekki hvers vegna númerið mitt virkar ekki.
Getur þú sagt mér hvers vegna það er ekki að virka?
Við erum að fara að segja fékkstu #include?
Þú ættir #include það.
OK.
>> Þannig að við höfum fengið staðalinn I / O hér.
Er að eina bókasafn við erum að fara að þurfa hér?
Hvað erum við að fara að gera?
Sorry.
Einhver bara öskra það út?
>> Áhorfendur: [inaudible].
ANDI Peng: Það sem þú ferð.
OK.
Og hvernig fer ég um að byrja hvers konar af virka, hvers konar meginvirkni
innan áætlunar okkar?
Int helstu.
OK.
Hvað á ég að setja inn hér?
Hvað er það fyrsta sem þú vilt gera?
Ef við viljum fá a band frá notanda,
hvað erum við að fara að hafa að gera á þessari fyrstu línu?
Því miður, þú krakkar finnst bara frjáls til að tala upp og hávær.
Bara hrópa út hvað sem er.
>> Áhorfendur: Spurðu notanda?
ANDI Peng: Hvernig gerum við það?
Ask-- er ég að fara að skrifa "að spyrja notandann"?
>> Áhorfendur: Printf.
>> ANDI Peng: OK.
Printf.
Hvað vil ég að printf?
>> Áhorfendur: Type í eitthvað.
>> ANDI Peng: Eins og að?
Krakkar, láta eins og ég er tölva.
Líkamlega segja mér hvert skref sem ég þarf að slá inn hér?
Er ég að gera eitthvað rangt?
Ætti ég að hafa slegið eitthvað?
>> Áhorfendur: Þú þarft tilvitnanir.
>> ANDI Peng: Ég þarf vitna?
OK.
>> Áhorfendur: Og svo nýja línu.
Semíkommu.
ANDI Peng: semíkommu?
OK.
Good.
>> Áhorfendur: Og kannski tilgreina að þú vilt það í lágstafir?
>> ANDI Peng: Great.
Þú krakkar hlæja að mér að gleyma að setja semíkommu.
Ég tryggja þér eitthvað í tengslum við þennan flokk,
þú munt gleyma að setja semíkommu, og það
mun taka þér þrjár klukkustundir að reikna út hvers vegna númerið þitt er ekki að virka.
Það hefur gerst að allir af okkur.
Það mun líklega gerast við þig.
Komast í góð venja að nota semikommum.
OK.
>> Áhorfendur: Viltu að gera sviga í?
>> ANDI Peng: Jú.
Viltu gera sviga?
>> Áhorfendur: Já.
>> ANDI Peng: Great.
OK.
Hvað á ég að gera næst?
>> Áhorfendur: Fá band.
ANDI Peng: Fá band.
Svo hvað ég slá?
Einhver?
>> Áhorfendur: String s.
>> ANDI Peng: String s.
Áhorfendur: GetString.
ANDI Peng: Somebody, getur þú sagt mér hvar
þessi aðgerð GetString er að koma frá?
>> Áhorfendur: String.h.
>> ANDI Peng: String.h?
Þú heldur að það sé frá string.h?
>> Áhorfendur: [inaudible].
>> ANDI Peng: Það sem þú ferð.
Það er frá cs50.h.
Ef þú ert alltaf að rugla um hvar a bókasafn skrá er eða haus skrá er,
Google bókstaflega string.h, og ég skal segja þér
hvað eru allar aðgerðir sem eru í string.h.
OK.
>> Svo nú er að ég hef búið til band og ég hef hvetja notandann fyrir það,
Ég hef geymt það í breytu heitir s, hvað þarf ég að gera núna?
>> Áhorfendur: Athugaðu hvort það er í lágstöfum.
ANDI Peng: Sorry?
Áhorfendur: Athugaðu hvort það er í lágstöfum.
ANDI Peng: Allt í lagi, við skulum gera það.
Hvernig geri ég það?
Reyndar, að því er í bekknum núna,
við erum bara að fara að ráð fyrir að allt
að við inntak er nú þegar í lágstöfum.
Ef þú vildi athuga, þú myndir bara bæta skilyrt yfirlýsingu
sem hakað sem rann í gegnum hvert einasta array þáttur
og athugað hvort það er milli ákveðinna gilda.
Ég gleymi því fjöldi af gildum lágstafir eru.
Þú getur litið upp á ASCII töflunni.
En já, það er mjög góður punktur.
En núna, við erum bara að fara að ráð fyrir að allar strengi við inntak
eru í lágstöfum.
OK.
>> Svo hvernig myndi ég fara um þetta vandamál næst?
Áhorfendur: Fyrir lykkju.
ANDI Peng: Fyrir lykkju?
OK.
Segðu mér hvað ég á að slá.
>> Áhorfendur: Fyrir int i jafngildir 0.
>> ANDI Peng: OK.
>> Áhorfendur: Oh, reyndar, þá þér gera upp kommu og gera n jafngildir strlen.
>> ANDI Peng: Svo mikilvægt að ég held að hún er eftir hér
er að við vildum ekki að segja int n í annað sinn sem við gerðum þetta.
Bara veit að í a lykkja þegar þú ert að lýsa,
þú í raun þarft ekki int af í annað sinn sem þú gerir breytu.
Þú getur sagt n strlen.
>> Áhorfendur: Of s.
>> ANDI Peng: s.
OK.
>> Áhorfendur: Þá semíkommu.
>> ANDI Peng: Jú.
>> Áhorfendur: Og svo [inaudible] n.
Þá ég ++.
>> ANDI Peng: Great.
Allt í lagi.
Hvað viljum við inni þetta fyrir lykkju núna?
Mundu, ef við erum að fara að keyra í gegnum a band og hlaupa í gegnum fylki,
við viljum að athuga það í henni.
Hvað erum við að fara að þurfa?
Þetta er góður af erfiður hluti núna.
Einhver með giska?
>> OK.
Svo fyrst, hvernig eigum við að nálgast jafnvel?
Hvernig eigum við að jafnvel athuga fyrst eða aðgang stak í fylkinu?
Hvernig gerum við það?
Hvað er rithátturinn sem við notum til að gera það?
Hvað er nafnið á þessu fylki kallast?
Það heitir s, ekki satt?
>> Mundu, allir band er alltaf array.
Svo s krappi i, ekki satt?
Vegna þess að það er núverandi gildi eða vísitölu við erum að athuga.
Og við erum að fara að setja það jafn to-- við viljum lágstafir gildi, ekki satt?
Við viljum snúa að lower-- Afsakið, viljum við hástafi.
Við viljum snúa lágstafir gildi inn í hástafi.
Og svo like-- Fyrirgefðu, hvað heitir þú?
>> Áhorfendur: Heidi.
>> ANDI Peng: Sorry?
>> Áhorfendur: Heidi.
>> ANDI Peng: Heidi.
Eins Heidi sagði upphaflega, við erum líklega
að fara að þurfa the-- við erum líklega að fara að þurfa að draga
32 frá hvaða charc sem er, ekki satt?
Því á ASCII borð, munurinn
milli lágstafir bréf og hástafi bréf er 32.
Svo þegar við erum að gera þetta, við erum líklega fara til að vilja draga 32, ekki satt?
>> Þannig að við erum að fara að gera s i.
Þurfa allir að skilja hvers vegna ég gerði það?
Vegna þess að núna, í fylking okkar, við erum að haka við 0th vísitölu, ekki satt?
Og í 0th vísitölu band, það er í fyrsta staf.
Og það eðli sem við erum að fara að gera ráð fyrir að það er lágstafir.
Ef við viljum gera það hástafi, við að draga 32 frá gildi þess,
vegna þess að í ASCII okkar borð, það er hvernig við fáum það
til næsta samsvarandi gildi sem gerir það hástafir.
Þurfa allir að skilja það?
Já.
>> Áhorfendur: Gætirðu líka ekki lágstafir a minus--
>> ANDI Peng: Já, svo er það reyndar mjög gott.
Ég ætla að koma aftur til að spurning eftir að við að gera þetta.
Já.
Og þá ef ég vil sjá hvað er að gerast,
Ég er líklega að fara að langar að prenta, ekki satt?
Einhver sagt mér hvað Ég vil að prenta hér.
>> Áhorfendur: printf prósent c sviga [inaudible].
Það er gildi [inaudible] s i.
>> ANDI Peng: s i, því miður?
Áhorfendur: [inaudible].
ANDI Peng: Ég veit það ekki.
Hvað finnst þér?
>> Áhorfendur: Jæja, wouldn't-- I Ég held ég myndi ekki bring--
Ég myndi taka það út inni, vegna þess að [inaudible].
ANDI Peng: Ó, þú hefði gert það?
Áhorfendur: Já.
ANDI Peng: Við skulum láta það hvernig það er, og ég skal útskýra hvers vegna síðar.
Mundu að jafnvel þegar þú hafa stað handhafa,
þú vilt setja sviga kringum það.
Allt í lagi.
Þannig að þetta ætti að vera solid virka hér.
Skulum hlaupa það og sjá hvort það safnar.
Gera efri.
Uh-ó.
Það lítur ekki of gott.
Hvers vegna er þetta að gerast?
Eins og með hvaða villa, þú vilt fara til baka og byrja með fyrsta,
því yfirleitt einn villa orsökum hellingur af öðrum villum eftir það.
Hér sjáum við upper.c: 18: 25, sem segir mig í þessari áætlun heitir upper.c,
á línu 18, villa óbeint lýsa bókasafn virka strlen með gerð
unassigned-- bla, ég veit það ekki hvað er að gerast eftir það.
>> Allt það er að segja mér núna er að eitthvað er að gerast á strlen.
Og tölvan er að rugla saman, vegna þess að Það er eins og ég veit ekki hvað strlen er?
Hvað gerir það líklega segja þér að þú ert að missa?
>> Áhorfendur: Þú ert vantar [inaudible].
>> ANDI Peng: Það er rétt.
Nákvæmlega.
Svo er þetta þar sem það er mikilvægt að tryggja
að sérhver aðgerð sem þú notar í þinn númer er að hafa rétta haus
skrá fyrir safnið, eða annars þú ert að fara að fá fullt af villum
og númerið þitt er ekki að fara að vita hvað er að gerast.
Þannig að við erum að fara að fela string.h hér.
>> Nú þegar við reynum að safna saman efri.
Safna saman á réttan hátt.
Skulum keyra þetta forrit.
Svo skrifar eitthvað í lágstöfum.
Hvað þú krakkar vilja til að slá?
Hrópa út eitthvað.
Allt í lagi, Charly gekk inn.
Við munum slá nafn Charly er.
>> Charly í lágstöfum.
Og vonandi, vonandi, þetta er fara að hrópa út og spýta út
Charly í hástafi.
Yay!
er allir skilja hvernig Ég gekk um að leysa það?
Leiðin sem ég get vinna með heiltölur
til að leysa eitthvað sem Ég vil gera í strengi,
vegna stafir og heiltölur getur að vísa á sama hátt vegna þess að
af ASCII kortlagning.
>> Svo til að fara aftur til lið þitt, ef ég langaði að setja hér í stað þess 32
hástafir A mínus lágstafir a bara eins að það myndi vinna jafn vel,
því það er einfaldlega bara Munurinn á milli þessara tveggja gilda.
Ef ég vil gera þetta again-- Charly.
Ó nei.
Ég held að við fórum á rangan hátt, já?
>> Áhorfendur: [inaudible] lágstafir a.
>> ANDI Peng: Það sem þú ferð.
Jebb.
Og út spits charly.
Svo vera varkár þegar þú ert að draga gildi
að muna hver einn er meiri en hinn.
Til dæmis, hér ég gleymdi sem lágstafir a er í raun
meiri en hástafi A. Svo þegar ég reyndi að draga þá í hina áttina
um, fékk ég neikvæð 32.
Og tölvan mín var eins, Ég veit ekki hvað það er.
Það er líkur bara sumir af handahófi gildi sem er ekki mjög gott.
Og svo að tryggja að þú ert að draga í réttri lengd
að finna táknið sem þú vilt.
OK.
Er einhver rugla um hvernig við fór um að skrifa þessa aðgerð?
OK.
Svo í raun, fall þegar er í bókasafninu sem heitir ctype.h.
Kallað ctype.h safnsins.
Þessi aðgerð er í raun þegar skrifað fyrir þig.
Það er kallað að efri.
>> Og svo í þeim tilgangi að þetta pset, ætlar þú að fara
að finna að þú viljir virkilega að nota a einhver fjöldi af the virka sem
innan ctype bókasafninu.
Til efri, að lækka, er efri, er lower-- þá eru allar aðgerðir
að þú verður fær um að nota mjög, mjög fljótt í eigin kóðann þinn sem
er einmitt það sem þetta gerir.
Við skrifaði út hvernig á að umbreyta band til hástafi.
En þetta er í raun númer að einhver annar hefur skrifað
og að þú getur fengið aðgang að um mismunandi föllum.
Já?
>> Áhorfendur: Svo þú afrita bara er þarna og gera það fyrir hvert einasta bréf?
>> ANDI Peng: Já, vegna þess að ég er ekki sama um gildum a.
Ég hugsa bara að munurinn milli þeirra er 32, ekki satt?
Munurinn á milli lágstafir b og hástafir B er einnig 32.
Og munurinn á milli c og hástafir C er alltaf 32.
>> Ég er bara að hugsa um að munur á milli tveggja,
vegna þess að allar stafina fylgja sama mynstri, ekki satt?
Ef ég hef muninn milli einn af þeim,
Ég veit hvað munurinn á milli allra þeirra er.
Góð spurning.
Já.
Allir góður?
OK.
OOP.
>> OK.
Svo það er önnur hugmynd að fara að vera mjög gagnlegur eins og þú
halda áfram að þróa kóðinn er þessi hugmynd
um að skapa störf eða abstrakt.
Svo núna, við höfum öll tekið algebru.
Í algebru, þú ert kennt að það er þetta dásamlegur hlutur sem kallast fall
vél, þar sem ef þú inntak einn svoleiðis númer,
það rennur í gegnum þessa frábæru virka og út birtist mismunandi framleiðsla, ekki satt?
Í kóða, það sama gerist í hvers konar starfsemi.
>> Svo ég gat líkamlega skrifa í líkama mínum númerið mitt
helsta yfirlýsing sem raunverulega gerir hvað líkami kóða er að gera.
En utan þess, get ég líka skrifa margar mismunandi aðgerðir
að gera marga mismunandi hluti.
Til dæmis, við höfum nú þegar byrjaði að nota sumir af þeim.
Printf-- sem er fall sem einhver annar
hefur þegar skrifað að við getum hringt í númerið okkar.
Til að upper-- í þessu tilfelli, upper-- er annar virka
við höfum skrifað að við getur hringt í númerið okkar.
Og svo ég giska á hvers vegna við höfum jafnvel aðgerðir?
Hvers vegna eigum við ekki að plop bara það allt í sömu línu af kóða?
Það gerir það auðvelt fyrir alla.
>> Jæja, reasoning á bak við það er fyrst af öllu, stofnun.
Það er mjög pirrandi að fara í gegnum kóðann einhver er
og ein aðgerð eins printf.
Ef þið í raun vissi hvað virka printf fólst að skrifa,
það er, eins og, 1000 línur af kóða.
>> Ef hvert skipti sem ég vildi að printf eitthvað,
Ég þurfti að skrifa 1.000 línur af kóða, sem myndi vera mjög pirrandi að lesa,
ekki satt?
Það er þess vegna sem við höfum bara búið til þessa abstrakt virka
sem við höfum nú þegar einhver annar hefur skrifað annars staðar.
Og í hvert skipti sem við þurfum að nota það í númer okkar, höfum við bara að segja printf.
Og sem er fær um að nota aðgerðina einhver annar hefur skrifað í kóða.
Það gerir það auðveldara skipulagslega að lesa kóðann.
>> Í öðru lagi, það er einföldun.
Það einfaldar skrefunum sem við höfum að taka til að leysa vandamál okkar.
Printf, virka eins printf, virka eins og að efri
eru allt hlutir sem leyfa okkur að einfalda kóðann okkar niður svo það er auðveldara.
Og síðasta sem er reusability.
>> Svo sú staðreynd að við höfum fall sem heitir printf
sem við getum kalla margar mismunandi sinnum og gerir það að vera einnota.
Ef ég væri að skrifa printf, Ég skrifa bara einu sinni.
Það er aðeins á þeim einum stað.
Ef ég vildi gera það aftur, myndi ég að afrita og líma allt sem
í annarri línu mínu kóða.
Þess vegna ef við búa til fall sem er til staðar utan helstu okkar,
við getum bara ákalla það og endurnýta það þegar
við þurfum svo að það er mun auðveldara fyrir okkur sem forrit til að skrifa.
>> Svo leið að við myndum í raun skrifa fall er mjög svipuð, ekki satt?
Þetta er góður af fyrsta dæmi þar sem við munum
sjá virka taka á stíl öðruvísi en int helstu tóm okkar.
Í þessu tilfelli, ef ég vildi skrifa fall sem kallast q, ekki satt?
>> Og int gildi hér er allt að segja mér,
hvað mig langar þetta virka til að koma aftur til mín?
Ef ég vil að teningur heiltölu, Ég ætla að vilja inntak.
Þetta eru breytur.
Ég ætla að inntak gildi af taginu int.
Og ég ætla að fara aftur annars konar gildi int.
Og hér, eins og þú geta sjá, allt sem ég er að gera
er cubing hvað inntak mitt er sem framleiðsla minn og skila þeim aftur.
>> Svo er allt þetta virka er tekur einhverskonar heiltölu.
Það fjölgar það af sjálfu sér tvisvar þannig að það teningur í gildi.
Og þá skilar það hvað sem framleiðsla er.
Þannig að í þessu tilfelli, er það tvær línur af númer sem við þurftum að skrifa aukalega.
En ef við vildum að hringja á þetta mörgum sinnum,
það er mun auðveldara að slá að einn lína hérna sem er í teningur en
að fara í gegnum mörgum sinnum.
>> Svo leið sem í raun allir formatting fyrir hvers konar aðgerð
er að fara að vera til er eins og hér.
Þannig að við höfum fallið nafn.
Í þessu tilfelli, það er kallað teningur.
Og við nafn það teningur vegna þess það er auðvelt að muna.
Þú getur kallað það veldi og það geta raunverulega vera cubed.
Skiptir ekki máli.
Bara nafn sem þú ert framselja virka.
>> Þetta hérna, int, er tegund breytu sem þú þarft.
Svo er það þessi aðgerð þarf til þess að starfa?
Jæja, það þarf inntak.
Ég nefndi það inntak.
Þú getur kallað það hvað sem þú vilt.
En ég þarf eitthvað int.
Það er að fara að raunverulega framkvæma hvað er inni hér,
líkami virka.
Og þá aftur gerð hérna, þetta int--
allt það er að segja mér er að þessi aðgerð er
að fara að skila mér í int.
Svo það er að fara að taka í int, og það er að fara að gefa þér aftur int.
Þurfa allir að skilja hvernig formatting af þessu tagi virkar?
Cool.
>> OK.
Svo ekki vera áhyggjufullur ef þetta virðist smá ágrip núna.
Þetta er eitthvað sem við munum tala um.
Við munum kafa í dýpri síðar í námskeiðinu.
Leiðin að hvers konar hærra stigi abstrakt af þessum hlutum vinnu
er að í minni, í tölvan, allt
er geymt í þessa tegund staflans, skal ég segja.
>> Svo þarna efst.
Ég veit ekki hvort þú krakkar geta séð það vel.
Ég ætla að reyna að stækka.
Hér efst, við hafa líkamlega texta
um hvað tölvan er interpreting-- allar núll og sjálfur að
eru innan í tölvuna okkar.
Og þá höfum við það að frumstilla gögn og forsniðinn gögn,
það sem við köllum alþjóðlegum breytur.
Svo breytum sem eru fyrir hendi í öllum forritum
og yfir allt þitt, meginatriðum, númer.
Engar áhyggjur ef þið eru konar óljóst um þetta.
Það skiptir ekki máli núna.
>> Og þá höfum við það sem er kallað hrúga í stafla.
Hugsaðu um reykháf bókstaflega eins bara eins og stafla af hlutum,
stafla af mismunandi það ýtt ofan
hvert öðru að geyma ýmsa breytur og setningafræði innan kóðann þinn.
Og þá er hér á mjög neðst, við höfum umhverfisbreytur
af því sem þú ert að framkvæma innan bara smá línu af kóða.
>> Og við erum bara að fara að stækka í á the raunverulegur stafla hluta.
Svo hérna, ef við vorum að stækka í á bara þessu svæði á stafla,
þetta er það sem það lítur út.
Og þetta er í raun mjög mikilvægt þegar þú krakkar tala um aðgerðir,
vegna tilkynningu um að minni tölvunnar
er að geyma þær breytur og aðgerðir
og breytur bæði þinn virka og helstu breytur þínar
á mismunandi stöðum.
>> Svo núna, helstu er í raun virka
að þú ert að framkvæma í kóða.
Þú breytur hennar geymd hér og staðbundnar breytur hennar geymd hér.
Staðbundin breytu þýðir bara hvaða breytu sem eru aðeins innan þess virka.
Og ofan á það, þú hefur þetta sérstakt fall sem kallast teningur.
Þú ert það er breytur auk þeirra heimamenn.
>> Og ástæða þess að þú getur sjá hér er að það
gerist þegar teningur tekur í gildi frá meginvirkni þinni
er að í raun er það að afrita það yfir.
Þannig að ef ég vildi teningur 2 og aftur 8, sem 2
er í raun inputted sem viðfang og það er
afrita yfir svo að þú hafir það núverandi í tveimur mismunandi stöðum í minni.
Og þú verður að vera mjög varkár á minningu sem einn af þeim
þú ert í raun að notfæra.
Og dæmi um það sem gerðist sem myndi vera mjög, mjög slæmt
er til hérna.
>> Svo hérna, ég hef fengið, í orði, a program hérna, a aðalæð virka
að ég er að lýsa int x er 1.
Ég er að lýsa yfir annan INT Y jafngildir 2.
Og þá er ég að keyra hana gegnum þessa aðgerð
kallað skipti, þar sem ég geri ráð fyrir að það er að skipta um tvö gildi.
Og þá er ég að fara að prenta þær út, ekki satt?
Það er það sem ég vil að þetta forrit til að gera.
>> Svo skulum koma ofan, taka a útlit.
Þannig að ef ég skrifa reyndar öðruvísi virka, eins og þú geta sjá,
við höfum meginhlutverki okkar hér.
Og þá höfum við okkar Annað hlutverk hér.
Void skipti.
Void þýðir bara að það er ekki að fara að fara aftur eitthvað.
Fallið nafn er kallað skipti, og það er
fara að inntaka tveimur breytum, int a og int b, frá [inaudible] virka.
>> Svo í raun hér, við erum liggur x og y inn í þessa aðgerð.
Og ef við vorum að búa this-- þannig að við viljum
að búa til tímabundna gildi, ekki satt?
Við erum að fara að úthluta sem að a.
Og þá er að fara að hafa jafna b.
Og b er að fara að vera aftur þar sem afleysingamanneskja gildi var,
sem er, vegna þess að þegar þú vilt skipta hlutum,
þú getur ekki bara eins og skipta á þeim.
>> Þú þarft að halda einn út hér svo að það man
hvað það er, því þegar þú skipta einn, þú gleymir
hvað það upprunalega gildi var, ekki satt?
Svo í kenningu, þessari áætlun ætti að vinna, ekki satt?
Ef ég vildi skipta á tveir, þeir ættu að skipta.
Svo skulum hlaupa það og sjá hvort það virkar.
>> Svo eins og þú krakkar geta sjá, x var einu sinni 1 og y var einu sinni 2.
Og ef ég prenta það út, x er enn 1 og Y er 2.
Hmm, þetta forrit virðist ekki vera vinna á þann hátt að ég vil að það virki.
Er einhver vilja til að taka skot á giska hvers vegna þetta var að gerast?
Það hefur að gera með hvernig að mismunandi hlutir eru
geymd í mismunandi stöðum í minni.
>> OK.
Svo þú krakkar þarft ekki að hafa áhyggjur of mikið um þetta núna.
En veit að teningur er staðbundin breytur voru og b,
vegna þess að hér í starfsemi okkar, við höfum lýst yfir og b
sem þeim breytum sem eru fyrir hendi innan teningur, sem virka.
En eins og þú sérð, breytur sem það tekur í voru að geymd hér.
En við vorum ekki í raun aftur neitt.
Við vorum í raun ekki breyta x og y.
Við vorum bara að breyta a og b.
>> Við höfðum afritað x og y inn eitthvað sem kallast a og b.
En við aldrei handleika X og Y sjálfir.
Eru þið að sjá hvernig það er að gerast?
Er að við höfum einfaldlega afritað hana yfir, en við höfum í raun ekki haldið
utan um hvar þeir voru í minni.
>> Og svo nú í tölvunni er að leita, ó, ég hef
keyra þetta í gegnum þetta yndislega virka.
En X og Y eru enn x og y.
Ekkert hefur gerst við þá vegna þess
að þeim breytum og staðbundnar breytur
eru geymd í annarri setja í minni.
Og þetta er meiri-stigi hugtak sem við munum
byrja að sjá síðar í námskeiðinu.
En bara veit að þetta er vandamál sem getur gerst
og að við munum reikna út leiðir um hvernig á að takast á við þetta seinna í námskeiðinu.
OK.
Allt í lagi.
Svo síðasta hugtak sem við erum virkilega að fara að ná
það er að fara til að vera gagnlegt fyrir pset þessari viku
eru það sem kallast stjórn lína rifrildi.
Svo Rob í fyrirlestri sínum fór í gegnum konar stuttlega um hvernig þessar vinnu.
Í meginatriðum vita að þegar þú ert að skrifa
eins og meginvirkni, þegar við skrifaði aðgerðir áður í fortíðinni,
við höfðum int helstu tóm.
Og ástæðan að við þurftum ógilt það var því áætlanir okkar gerðu ekki
þarf að inntak gildi að keyra, ekki satt?
Þegar ég hljóp Mario, gerði ég ekki þurfa að í raun réttlátur tegund í eitthvað
þegar ég hljóp Mario.
Ég gæti hvetja notandann síðar.
En það mun ekki alltaf vera raunin.
>> Til dæmis, í þessum viku vandamál setur,
þú ert að fara að vera beðin að í auk þess að keyra forritið þitt,
þú ert að fara að vilja til að inntak ákveðin atriði í beint eins og þú
hlaupa program.
Svo leið og við gerum það er kallað a stjórn lína rifrildi, sem
er eins og rifrildi þú getur inntak beint
eins og þú ert að reyna að keyra forritið þitt.
>> Svo merki fyrir þetta, það er frekar flókið-útlit,
en það er í raun ekki að erfitt. Svo INT main--
það er bara aðal virka.
Í argc kommu, string argv sviga.
Svo er allt það er að segja að þetta INT argc-- allt sem er að segja þér
er að þeir eru fjöldi rök tölvan ætti von á.
>> Svo eitt sem er mjög mikilvægt að halda utan um
er líkamlegt nafn program telja sem einn af þessum rifrildum.
Þannig að ef ég vildi hafa forritið mitt hlaupa og einn til viðbótar stjórn lína
rök, ég er reyndar fara að hafa tvö.
Argc er í raun að fara að vera tvö.
Og þá string argv bracket-- allt sem er að gera,
það er að gefa mér að array af strengjum sem er
að fara að bara að sýna og geyma það allar þessar stjórn lína rifrildi eru.
>> Svo til dæmis, ef ég vildi hafa þetta program, ./copy INFILE OUTFILE, ekki satt?
Það er bara dæmigerður Linux stjórn.
Hvað raunverulega er argc?
Hversu margir stjórn lína rifrildi eru það í raun í þessu?
Allt þetta gerir er að gera afrit af An INFILE á nafni einni skrá
og það afrit það inn aðra skrá, ekki satt?
Það er allt þetta er að gera.
Eins og þú geta sjá, ég er að gera það á einni línu án þess í raun að þurfa forritið.
>> Hvað er argc okkar í þessu tilfelli?
Hversu margir rök höfum við?
Áhorfendur: Three?
ANDI Peng: Við höfum þrjú, nákvæmlega.
Svo það er mjög leiðandi til bara held að það er bara
sem INFILE og OUTFILE.
En veit að líkamlegt nafn af forritið sem þú ert að keyra telja sem einn.
Þannig að í þessu tilfelli, argc er í raun þrjár.
Hvernig væri, hvað er argv 0?
Mundu, allt í stjórn lína rifrildi
voru geymd í fylki af strengjum.
Svo ef ég reyni að opna það, hvað myndi argv krappi 0 gefa mér?
>> Áhorfendur: [inaudible].
ANDI Peng: Einmitt.
Það myndi gefa mér punktur rista eintak, því það er
sem 0 frumefni, Fyrsti þátturinn af array minn.
Hvað um argv 1?
>> Áhorfendur: INFILE.
ANDI Peng: INFILE, nákvæmlega.
Hvað um argv 2?
Áhorfendur: OUTFILE.
ANDI Peng: OUTFILE.
Þetta er dálítið erfiður núna.
Hvað finnst þér krakkar hugsa argv 3 er að fara að vera að gefa mér
ef ég reyndi að prenta það út?
>> Áhorfendur: [inaudible]?
>> ANDI Peng: Vissir þú að hafa höndina upp?
Já.
>> Áhorfendur: An val.
>> ANDI Peng: Einmitt.
Svo muna í fyrirlestri sem við hafa í lok keppninni eitthvað
kallað null Ljúka?
Við munum fá inn í þetta líka frekar á í bekknum.
En veit að í merki, hvernig tölvan þín
veit að það er endir fylkisins er að það
setur eitthvað sem kallast a null Ljúka eða þjóta núll.
>> Þannig að ef þú reynir að opna argv 3, þú ert að fara til að ná þessu þjóta 0.
Þetta er jafnvel meira af bragð spurningu.
Hvað um argv 4?
Svo er þetta síðasta null Ljúka, framhjá mörk array okkar.
Hvað finnst þér er að fara að gerast þegar við reynum að gera það?
>> Áhorfendur: [inaudible]?
ANDI Peng: Sorry?
Segja að hluti hávær?
>> Áhorfendur: [inaudible].
ANDI Peng: Já.
Það er nafn sem svæði sem þú munt líklegast fá.
En veit að argv 4-- sem gerir þér kleift að opna
stöðum í Computer þíns minni að þú virkilega
ætti ekki að vera að snerta, því núna veistu hvað argv er.
Þú veist að það er fylki af stærð 3 sem hefur punktur afrita, INFILE og OUTFILE.
>> Ef þú reynir að fara svo langt út að að þú ert framhjá null Terminator,
tölvan þín hefur sennilega geymd eitthvað í argv 4.
Og þú í raun ætti ekki að vera fær aðgang argv 4,
vegna þess að þú ert með skrá skáp og þú ert eini
heimill aðgangur að þeim þremur hillum.
En ef þú reynir að ná langt umfram hillu þar sem þú mátt,
þú ert að fara að byrja að fíflast með aðrir hlutir í minni tölvunnar.
Það er að fara að vera mjög, mjög slæmt.
Svo bara veit það.
Vera mjög varkár að þú ekki bara af handahófi byrja
aðgang þætti í array sem voru ekki á því sem þú vildir að búa til.
Jebb.
>> OK.
Þannig að við erum að fara að gera annað flugstöðinni dæmi hér.
OK.
Svo Rob fljótt í fyrirlestri um daginn fór
Með þessu dæmi, þar sem hann hafði int helstu INT argc string argv
sviga, sem er að segja mér að ég er fara að hafa stjórn lína rifrildi.
>> Hann hefur, ef argc jafngildir jafngildir 2-- muna,
jafngildir jafngildir þýðir samanburð.
Ef það er jafnt 2, þá er ég að fara að prenta halló,
hvað fyrsta þáttur í fylkinu er.
Else prenta, halló heimur.
Hvað er þetta að fara að gerast í raun?
Getur einhver bara að útskýra í English hvað þetta forrit er að gera?
Já.
>> Áhorfendur: Ef einhver tegund í stjórn og fyrsta og síðasta nafn sitt,
það mun ekki bara prenta fyrsti og segja, halló,
hvað fyrsta nafnið þitt er.
>> ANDI Peng: OK, við skulum hlaupa það.
Svo til dæmis, ef ég væri að gera þessi skrá gera halló to-- halló
to-- hvað viltu að ég að inntak?
>> Áhorfendur: Fyrsta og síðasta nafn.
>> ANDI Peng: Fyrsta og síðasta nafn?
Spaces?
>> Áhorfendur: Já.
>> ANDI Peng: Getur einhver sagt mér núna, hvað er argc?
Bara þarna?
Oops, því miður.
Leyfðu mér að fara aftur.
Hversu margir stjórn lína rifrildi are-- þú krakkar geta í raun ekki séð.
En ég ætla að reyna að stækka.
Ég er að reyna.
Já, það er þrír, ekki satt?
Það er punktur rista halló, það er Andi, og það er Peng.
>> Svo hvaða gera þú krakkar hugsa þetta Námið er að fara að prenta út?
Oh.
Ó fyrirgefðu.
Rangt nafn.
Það er að prenta út, halló heimur.
Er einhver vilja til að útskýra hvers vegna það er að gerast?
Já?
>> Áhorfendur: [inaudible].
ANDI Peng: Einmitt.
Svo hér eru skilyrt er, ef argc jafngildir jafngildir 2.
Svo aðeins í tilviki að það er tveir stjórn lína rifrildi.
Þá er ég að fara að prenta, halló, hvað sem það er.
En annars, ég ætla að prenta bara, halló heimur.
Svo er einhver vill að gefa mér dæmi
um hvernig ég vildi vera fær til raunverulega fá það til að prenta gildi argv 1?
>> Hvað myndi ég þurfa að inntak hér?
Aðeins einn hlutur, ekki satt?
Vegna þess að punktur halló þegar telja sem fyrsta rifrildi.
Ég hef bara eitt.
Svo punktur halló ef ég bara Andi.
Halló, Andi.
Þurfa allir að skilja hvers vegna það er að gerast?
Já.
>> Áhorfendur: Svo pláss milli stjórn line-- er [inaudible]?
ANDI Peng: Nei
Þannig að pláss í stjórn lína rök, x, að segja tölvuna
að þetta er upphafið á nýjum streng.
Svo string argv here-- það geymir allar skipanir þínar lína rifrildi
í strengi.
Og svo pláss í stjórn lína argument-- allt sem gerir er að segja þér,
þetta er í lok af streng og það er kominn tími til að fara til annars.
>> Já.
Þetta er mjög mikilvægt fyrir pset þinn, því að þú ert
fara að prófa þetta.
Svo er einhver hafa einhverjar spurningar um þetta?
OK, flott.
Já?
>> Áhorfendur: Svo ástæðan þér myndi setja heiltala rök Calc staðinn
af [inaudible] væri þegar þú vilt að slá frekari upplýsingar
[Inaudible]?
>> ANDI Peng: Já, einmitt.
Sum forrit munu þurfa að inntak a stjórn lína rifrildi
að það fer í og ​​sem notar það.
Já.
Áhorfendur: Svo hvað ef [inaudible]?
>> ANDI Peng: Jæja, hvað hef ég að breyta þá í áætlun mína?
>> Áhorfendur: Bara 3.
>> ANDI Peng: Hvers vegna er það gerast, finnst þér?
>> Áhorfendur: Vegna [inaudible].
>> Áhorfendur: Þú vilt verða að breyta því í 2 [inaudible].
>> Áhorfendur: 1 og 2.
ANDI Peng: 1 og 2, nákvæmlega.
Þannig að í þessu tilfelli, þú vildi sennilega vilja hafa tvær printf statements--
eitt sem prentuð argv 1 og sá sem prentuð argv 2.
Hér.
Ég get í raun gert það raunverulegur fljótur.
Þar sem þú ferð.
Oh.
Ekki alveg það sem þú vildir.
En ef þið sóðaskapur í kring með að forsníða, það mun koma út.
Já.
Cool.
Ég veit að við erum svolítið stuttur á tíma.
En ég ætla bara að fara að fljótt eyða Tveimur mínútum að fara í gegnum helpful--
Áhorfendur: Þú hefur tvær mínútur.
ANDI Peng: Ég hef tvær mínútur?
Þakka þér fyrir.
Sumir fljótur pset ábendingar.
Svo fyrir þetta pset, þá mæli ég mjög, eins og ég sagði, allir að lesa sérstakur.
Þú munt vera að skrifa þrjár programs-- einn kallaði initials.c, einn heitir caesar.c,
einn heitir vigenere.c.
Sumir Mikilvægur Kenndur að þið virkilega vilja
að halda í mind-- svo það er þessi aðgerð
kallaði atoi-- eins og ég segi, a Trois.
Óljóst hvort það er í raun hvernig þú segir það.
En allt það er að gera, það er inputting.
Það breytir streng til int.
Svo táknar ASCII til i heiltölu.
Það er bara að umbreyta ASCII gildi að heiltölugildi.
Svo man argv, array að verslanir öll boðum þínum línu arguments--
það geymir þá alla eins og strengi.
Og svo ef þú vilt vera fær um að hafa einn af þeim verða heiltala,
þú ert að fara að hafa nota þetta gildi hér.
>> Modulo, eins og við falla fyrr í bekknum í dag,
gerir þér kleift að hafa Afgangurinn af hvað sem þú hefur.
Svo ef við höfum virkilega, virkilega stór númer í keisaranum,
hvað ef við höfum enda úr röð af Vigenère?
Hvernig ætlar þú að vera fær um að fá það til að vefja utan um?
Ef ég högg z og ég vil það að fara aftur til a,
hvernig á ég að fara að fá sem að vefja í kring?
Væntanlega vilja nota Modulo þarna einhvers staðar.
>> Í öðru lagi, að skoða í kringum bókasafnið þitt. ctype.h.
Það er nýtt bókasafn við höfum.
Þú munt finna mikið af virkilega, virkilega gagnlegt functions-- isupper, islower,
toupper, tolower, isalpha, et cetera.
Allar aðgerðir sem mun vera mjög gagnlegur þegar þú ert að reyna að reikna út,
er þetta eðli lágstafir bréf?
Hvernig get ég umbreyta þetta band við hástafi?
Allt þetta mun vera mjög, mjög gagnlegt fyrir pset þinn.
OK.
>> Viðtalstími í kvöld eru 8:00 til 11:00 í TEAL skólastofunni morgun
auk miðvikudag og fimmtudag.
Viðtalstími eru í Commons.
Mjög benda ykkur allt að byrja strax,
vegna þess að þú vilt ekki að vera að krakki sem fimmtudagskvöld hefur vandamál
senda pset og er eins, ég veit ekki hvað ég á að gera.
Ég byrjaði, ég kláraði, lögð ég.
Reyndu að gefa þér smá pláss, vegna þess að í númerið vandamál alltaf eiga sér stað.
Þú vilt tryggja að sem þú gefur þér
a einhver fjöldi af tími til að vera fær um að ljúka psets.
Cool.
Ég hanga í kring hér.
>> Áhorfendur: Er þetta á netinu nú þegar?
ANDI Peng: Ég veit ekki hvort það er á netinu nú þegar, en það mun vera.
Ég hanga í kring hér ef einhver hefur einhverjar spurningar nú þegar.
Takk fyrir að koma.