>> SPIKA 1: zote haki.
Karibu tena.
Hii ni Wiki Mbili ya CS50, na tuna hivi sasa wamekuwa kutumia kazi lakini
kiasi kikubwa kuchukuliwa yao kwa nafasi.
Tumekuwa kutumika printf ambayo ina upande wa athari za uchapishaji
mambo kwenye screen.
Tumekuwa kutumika kupata-int, kupata kuelea.
>> Lakini nini kama kweli wanataka kujenga kazi yako mwenyewe, kama baadhi ya
unaweza kuwa tayari imeanza kufanya kwa ajili Tatizo Set Moja, ingawa
si madhubuti inahitajika?
Naam, hebu kwenda mbele na kupitia upya kwamba tatizo la kuuliza tu kwa mtumiaji
majina yao na uchapishaji kitu juu ya screen, lakini jaribu nje ya sababu baadhi ya
ya ufanano kwamba tumekuwa kuonekana katika kanuni yetu hivi sasa.
Hivyo kwa kuwa mimi maana zifuatazo.
>> Mimi nina kwenda mbele na kujenga mpango mpya, kuwaita tu
ni hello.c kama kawaida.
Mimi nina kwenda mbele na kutoa mwenyewe ni pamoja na kiwango io.h kwa juu.
Mimi naenda pia kutoa mwenyewe preemptively maktaba CS50 ili
Mimi si kupata yelled saa na mkusanyaji.
Na sasa mimi nina kwenda mbele na kutangaza int, kuu, utupu.
>> Na kisha katika hapa, hii ni wapi nataka kuanza outsource utendaji kwa
baadhi ya kazi nyingine kwamba Mimi mwenyewe ni kwenda kuandika lakini hiyo haina
sasa zipo.
Kwa mfano, tuseme kwamba nilitaka kuandika kazi kwamba inaruhusu mimi
magazeti nje hello, comma, na kisha jina baadhi ya mtumiaji.
Kuliko kuendelea kufanya printf hello,% s, si ingekuwa nzuri kama
kulikuwa tu kazi kuitwa si printf lakini jina magazeti?
>> Hivyo kwa maneno mengine, nataka kuwa na uwezo wa kuandika mpango kwamba haina kidogo
kitu kama hiki.
Kwanza, mimi nina kwenda kusema printf yako jina, na hivyo kusababisha mtumiaji
nipe jina lake, na kisha mimi nina kwenda kutumia kamba ya ukoo kwa
kutangaza kamba.
Nipe kutofautiana wa kamba aina, simu yake, na kwamba kuhifadhi katika
kusababisha ya wito wa kupata kamba.
Lakini sasa katika kipindi cha wiki, mimi ingekuwa kiasi fulani tediously kufanyika hello,% s / n.
>> Na kwa maneno mengine, tumeona hii mfano rundo la nyakati, na ni
yasiyo na maana kwa sababu kuna mfano moja tu mstari wa kanuni hivyo ni kweli si
kubwa mpango wa kuweka kuandika tena.
Lakini tuseme kwamba hii mstari wa kanuni kweli walikuwa kuwa mzigo, na
siyo moja mstari wa kanuni lakini ni 10 mstari wa kanuni wiki kadhaa kuanzia sasa,
na wewe ni kupata tu amechoka ya kuiga na pasting au
retyping kwamba kanuni hiyo.
Je, si ni kuwa nzuri badala ya kufanya printf hello,% s na kadhalika,
si ingekuwa nzuri kama kulikuwa tu kazi kuitwa magazeti jina kwamba
inachukua hoja -
kwa maneno mengine, inachukua pembejeo -
na kisha semicolon.
Hivyo kazi kwamba, sivyo kuwa nzuri kama kwamba kuwepo?
Basi mimi bila kuwa na wasiwasi kuhusu nini printf ni, nini% s na wote wa
haya matatizo makubwa ambayo ni si yote ya kuvutia.
Wao ni muhimu.
>> Hivyo magazeti jina, kwa bahati mbaya, hakuwa zuliwa baadhi ya 40 pamoja na miaka iliyopita.
Hakuna mtu walidhani kuandika.
Lakini hiyo ni uzuri wa kuwa na programu lugha, kama katika
Mwanzo unaweza kufafanua vitalu desturi, hivyo katika C na lugha yoyote zaidi, unaweza
kufafanua utendaji yako mwenyewe, unaweza unaweza kufafanua majukumu yako mwenyewe.
Hivyo hata kama sisi kupata kuu na moja kwa moja kwa ajili ya bure, tunaweza kutangaza
kazi yetu wenyewe.
>> Hivyo nina kwenda kufanya baadhi ya chumba hadi hapa juu juu, na mimi nina kwenda kutangaza yangu
mwenyewe kazi hiyo ni kwenda kuangalia ajabu kidogo mwanzoni lakini tutaweza kuja
nyuma ya hii kabla ya muda mrefu.
Mimi nina kwenda kusema batili, na hivyo kuonyesha kazi hii haina
kitu, ina athari upande, lakini ni haina kurudi kitu kwangu katika
njia ile kupata int au kupata kamba yenyewe gani.
Na mimi naenda kuwapa kazi huu jina ya jina magazeti, na mimi nina kwenda
bayana kwamba guy hii ni kwenda kuchukua kamba, na mimi nina kwenda kuwaita kwamba
kamba jina.
Mimi naweza kuiita kitu nataka, lakini mimi unataka kanuni yangu kuwa binafsi kumbukumbu.
Kwa maneno mengine, kama moja ya ungekuwa na kufungua faili hii na kusoma, unaweza
aina ya tuambia ya kwamba jina pembejeo nini jukumu ni walidhani kucheza.
>> Na sasa chini ya kwamba, mimi naenda kufungua curly brace na kufungwa curly brace,
na hivyo taarifa nimekuwa ikifuatiwa huo mfano juu ya mistari minne kupitia saba kama
Nimekuwa zifuatazo kwa ajili ya wiki nzuri pamoja na sasa kati, wanasema, mistari tisa na
14 ambayo kutunga kuu.
Kwa maneno mengine, magazeti jina ni kazi nyingine.
Sasa, mkusanyaji si kwenda kujua kuwaita jambo hili moja kwa moja
kwa sababu mimi literally tu zuliwa yake, lakini itakuwa kujua bado kuwaita kuu
moja kwa moja, na kisha bila shaka katika mstari 13, Mimi wito kazi yangu mwenyewe.
Na kwa sababu nimekuwa alitangaza kwamba kazi hadi kwenye mstari nne kabla kuu,
hii ni kwenda kufundisha mkusanyaji nini quote, unquote, "magazeti ya jina"
ina maana na nini anatakiwa kufanya.
Hivyo mimi nina aina ya kutoa ni desturi mpya kuzuia katika mazingira ya, kusema, Scratch.
>> Hivyo katika hapa, siwezi kuweka kwamba kawaida sana au mara kwa mara mfano wa kanuni ya mimi kuendelea
kuandika katika darasa, printf % S hello,% s / n ", -
je, nataka kuweka hapa?
S?
Hivyo nataka kuweka jina katika muktadha huu.
Hivyo taarifa kidogo ya dichotomy hapa.
Kwa sababu mimi kutangaza kazi yangu mwenyewe na mimi kuwa kiasi fulani kiholela kuitwa
ni magazeti jina, na kwa sababu nimekuwa maalum katika mabano kuwa hii
kazi inachukua moja hoja, aina ya ambayo ni kamba - hivyo ni neno
au maneno au kitu kama hicho - na Mimi nina wito kwamba jina hoja, kwamba
maana kutofautiana tu kwamba katika upeo, ili kuzungumza, ni jina.
>> S tu lipo kati ya yale mawili curly braces, bila shaka?
Vizuri kweli, kama tu mstari wa 10 kupitia 14, hivyo kama tu Jumatatu hawawezi kutumia
S, lakini ninachoweza kufanya ni kupita S katika jina magazeti.
Magazeti jina tu hivyo hutokea kuwapa pak, kisawe, jina la utani,
kuiita jina, na sasa kutumia katika mstari huu.
Hivyo sasa napenda kuokoa hii, zoom nje.
>> Hebu kwenda mbele na kufanya hello.
Inaonekana nzuri.
Hakuwa mate nje ya makosa yoyote. . / Hodi kuingia.
Nini jina langu?
Daudi.
Hujambo na Daudi.
Hivyo si kusisimua kwamba wote, lakini nadhani tu sasa.
Sasa una kwamba kiungo hicho kama tulivyofanya katika Scratch
kufanya kazi zetu wenyewe.
>> Lakini kuna ni kidogo ya gotcha.
Tuseme kwamba sikuwa kweli mawazo hii kwa njia na mimi kwa kweli bila
kweli kufikiri juu yake aliandika kwamba kazi ya chini hapa.
Anahisi kikamilifu busara.
Katika Scratch kuna dhana hakuna ya eneo katika maandiko yako.
Unaweza kuweka moja hadi hapa, mmoja hapa juu, moja hadi hapa, na ili kuanza
kuangalia messy kidogo kama huna kuweka nje vizuri, lakini haina
jambo ambapo kimwili scripts walikuwa kwenye screen.
Kwa bahati mbaya katika C - na hii ni tofauti na lugha kama Java na chatu
na wengine kwamba unaweza kuwa na mazoea na - kwa bahati mbaya katika C, ili gani
jambo kwa sababu ya kuangalia nini kutokea sasa.
>> kazi default kwamba kinaendelea kutekeleza, ni wa kweli, kuu.
Kuu ni kwenda kuwaita jina kwenye magazeti line nane, lakini kwa bahati mbaya,
mkusanyaji si hata kujua kwamba jina magazeti ipo mpaka anapata kwa mstari 11,
ambayo kwa bahati mbaya ni kwenda kuwa kuchelewa mno.
Basi hebu kufanya kufanya hello.
Na sasa damn, makosa mawili yanayotokana.
Hivyo sasa napenda kitabu juu kwa sana kwanza, kama sisi lazima daima kufanya, na
taarifa kwamba ni kunguruma saa yangu, "Thabiti tamko la kazi
magazeti jina. "
>> Hivyo tumeona ujumbe huu kabla, thabiti ya tangazo la kazi.
Lini sisi kuonekana kuwa aina ya kosa?
Wakati mimi hawakuwa ni pamoja na maktaba.
Kama Nimesahau cs50.h na napenda kupata yelled saa kwa ajili ya kupata kamba au kupata int.
Lakini katika kesi hii, magazeti kazi jina si katika maktaba, haki?
Ni halisi katika faili hii, hivyo nini kweli tatizo?
>> Vizuri kwa bahati mbaya katika C, inachukua wewe hivyo incredibly halisi kwamba kama wewe
wanataka kazi kuitwa magazeti jina kwa zipo, aidha una kutekeleza
kwamba kazi saa ya juu sana ya yako kanuni ili ni kupatikana kwa kupunguza
kazi, lakini kusema ukweli, kwamba inakuwa sloppy haraka sana.
Binafsi, mimi kama kuweka kuu ya kwanza kwa sababu basi ni wazi sana jambo hili
mpango gani katika mtazamo wa kwanza.
Na pamoja, unaweza kupata ndani ya kona weird kesi ambapo kama x anataka kuwaita
y lakini y kukiita x, wewe tu kimwili hawawezi kweli kuweka moja
juu ya wengine.
>> Lakini zinageuka katika C, tunaweza kutatua sana tu.
Mimi naenda kuweka kidogo kidogo ya nafasi hapa juu, na mimi nina kwenda tu
preemptively, angalau kwa kiasi fulani redundantly, kwenda kufundisha
mkusanyaji kuwa kuna kazi kuitwa magazeti jina, inachukua kamba,
na mimi naenda kuwaita ni jina semicolon.
>> Hivyo hii sasa katika mstari nne, ambayo sisi hawajaona kabla, ni tamko
ya jina magazeti kazi, lakini ni tu ahadi kwamba kazi hii itakuwa
hatimaye kuelezwa, hatimaye kutekelezwa.
Hii sasa siwezi kuondoka peke yake kwa sababu sasa hii ni ufafanuzi,
utekelezaji, aina ya maili ya mwisho ya utekelezaji wa hii
hasa kazi.
Hivyo kusema ukweli ni wajinga, ni annoying, lakini hii ni njia C ni, na ni
kwa sababu inachukua wewe sana halisi na, kama kompyuta kusema ukweli lazima,
tu haina nini hasa kuwaambia ni kufanya, na ili kuagiza ni muhimu.
>> Hivyo kuendelea kuwa katika akili na tena, kuanza taarifa kujirudia kwa chati.
Ni tabia mbaya wewe, kama wewe si tayari, kuanza kukutana na ujumbe
kama hii katika mtazamo wa kwanza wanaonekana kabisa fumbo, lakini kama wewe kuanza
kuangalia kwa maneno haya muhimu kama "Thabiti tamko," kutaja ya
kazi katika kesi hii - na kusema ukweli, wewe wakati mwingine hata kupata kijani kidogo
karoti ishara kwamba anakwambia ambapo suala pengine ni -
unaweza kuanza kufanya kazi kwa njia yako kwa njia ya bado ghaibu kosa ujumbe.
Maswali yoyote juu ya kuandika yako mwenyewe kazi kwa njia hii?
>> Hebu kufanya kitu ambacho zaidi kidogo ya kulazimisha.
Badala tu ya kufanya kitu ambayo ina athari upande wa uchapishaji, napenda kwenda
mbele na kuokoa faili mpya, na tutaweza wito huu positive.c, hata kama ni
kwenda kuwa tofauti kidogo dhidi ya wakati wa mwisho.
Na wakati huu, nataka tena kutekeleza mara ya mwisho ya positive.C mfano, ambayo
ni nguvu ya mtumiaji kutoa mimi sifuri.
Lakini nilikuwa kutumia kupata int mara ya mwisho.
Je, si ni kuwa nzuri kama kuna kazi kuitwa kupata int chanya
kwamba mimi naweza tu outsource hii kipande ya utendaji na?
Hivyo tofauti hapa ni tutaweza kutekeleza kupata int chanya, lakini tofauti na
magazeti jina ambalo alikuwa na athari upande - ni hakurudi kitu kwangu kama
idadi au kamba -
kupata int chanya, bila shaka, kwenda kurudi, hopefully, int chanya.
>> Basi hebu kufanya hili.
Pamoja cs50.h, pamoja na kiwango io.h.
Int utupu kuu.
Na sasa katika hapa, mimi nina kwenda mbele na hebu sema int, simu yake n, sawa na
kupata int chanya.
Na kama tu kupata int tayari ipo sababu wafanyakazi aliandika, mimi naenda
kwa kudhani kwa muda kwamba kupata int chanya lipo, na sasa mimi naenda
kwenda mbele na kusema printf, shukrani kwa ajili ya% i / n ", n.
>> Hivyo sasa kama mimi kukusanya mpango huu, nini kinaenda kutokea katika terminal yangu
dirisha chini ya screen?
Mimi nina kwenda pengine kupata kwamba huo kosa kama kabla.
Basi hebu jaribu hii.
Kufanya chanya.
Na tena, thabiti tamko ya kazi, kupata int chanya.
Ili tuweze kutatua hili katika michache ya njia.
Mimi nina kwenda kushika ni rahisi na wa haki kuweka tamko wangu hapa juu na kupata
chanya int.
Mimi haja saini kinachojulikana.
saini tu inahusu kwa aesthetics ya
mstari wa kwanza wa mpango.
Hivyo kile lazima kupata chanya int kurudi?
>> Hivyo int.
I mean walau, ingekuwa kurudi kitu kama int chanya, lakini kwamba
haipo.
Tumekuwa si kuonekana kwamba kati ya data zetu aina, hivyo tuna kukabiliana na
ukweli kwamba tuna wachache sana data aina ya kazi.
Lakini tunaweza kurudi int na tu kuamini kwamba itakuwa chanya.
Ni kwenda kuitwa kupata int chanya.
>> Na sasa vipi kuhusu hoja yake?
Gani kuchukua mchango wowote?
Je, ni haja yoyote ya pembejeo?
Hivyo haina haja ya kujua katika kitu chochote mapema.
Kupata kamba hana, kupata int hana.
Printf gani - ni mahitaji ya kuwa na baadhi ya pembejeo kupita ndani yake - na jina magazeti
zinahitajika baadhi ya pembejeo, lakini kupata int chanya hana.
Hivyo nina kwenda kupanga kuwaambia utupu mkusanyaji.
Utupu ni kukosekana kwa kitu kingine chochote.
Hivyo utupu njia kitu kinaenda ndani ya ya wale mabano, semicolon.
>> Na sasa chini ya faili yangu - na tena, Mimi tu kuwa aina ya anal
hapa kuweka kuu saa ya juu, ambayo ni mazoezi mazuri kwa sababu njia hii,
wakati wowote wewe au mtu mwingine kufungua faili yako,
utendaji ni haki pale.
Unaweza kupiga mbizi katika kutoka moja ya mraba.
Hivyo sasa mimi naenda duplicate hii, kupata chanya int batili, lakini nina
kwenda hit semicolon sasa.
Mimi naenda kufungua braces curly, na sasa mimi haja ya kukopa
baadhi ya mawazo kutoka Jumatatu.
>> Hivyo kama unakumbuka, sisi alifanya kitu kama kufanya yafuatayo wakati
kitu ilikuwa kweli.
Na nini mimi?
Mimi alifanya kitu kama kutoa mimi integer chanya,
kidogo kidogo ya haraka.
Mimi naweza kutumia maneno yoyote nataka.
Na kisha mimi kutumika nini?
Int n sawa na kupata int, hakuna hoja yake.
>> Na taarifa tofauti.
Wakati wewe piga kazi, wakati matumizi ya kazi, huna kuweka katika utupu.
Wewe tu kufanya hivyo wakati akitangaza kazi, akifundisha mkusanyaji nini
ni lazima kutarajia.
Hivyo huna haja ya kuweka utupu mwenyewe hapo.
>> Na sasa nini ilikuwa hali yangu?
Naam, n si sawa na chanya, lakini hiyo ni Pseudo-code.
Hivyo ni jinsi gani mimi kueleza hii zaidi cleanly?
Hivyo chini ya au sawa na sifuri.
Hivyo tena, taarifa unaweza kufanya kidogo kuliko au sawa na.
Hata kama ni mbili tofauti alama, unaweza kufanya hivyo kwa
keyboard yako kama vile.
>> Lakini bado kuna mdudu kwamba Mimi Star juu wakati wa mwisho pia.
Mimi kutangaza -
hasa.
Mimi na kutangaza n nje ya kitanzi.
Hivyo mimi haja ya kuweka n hapa juu, na mimi si wanataka tena kutangaza hapa
nisije kupata kutofautiana mpya.
Mimi nataka tu hawawajui thamani katika hapa.
>> Na sasa mimi nina si kabisa kufanyika hapa.
Hebu kupata mbele ya mwenyewe na kujifanya mimi nina kufanyika.
Kufanya chanya, na sasa kuna makosa mpya.
Kudhibiti unafikia mwisho wa mashirika yasiyo ya utupu kazi.
Hivyo ujumbe mpya kosa, lakini kama aina ya tease mbali kila aina ya maneno, ni
pengine anadokeza nini kibaya.
>> Kudhibiti.
Kudhibiti tu ina maana kwa utaratibu wa shughuli katika mpango.
kompyuta ni katika kudhibiti na kitu potoka.
Hivyo kufikia mwisho wa kazi si batili.
Nini kazi ni inaonekana akimaanisha?
Nini kazi ni mashirika yasiyo ya utupu?
Hivyo kupata int chanya, na kidogo utata katika vizuri kwamba,
ni aina ya utupu.
Ina vipimo ya batili kwa wake hoja, lakini matokeo yake ni kwenda
kuwa ya n aina.
Hivyo neno upande wa kushoto ni kinachojulikana kurudi aina.
neno juu ya ndani hapa ni hoja sifuri au zaidi
kwamba kazi inachukua.
>> Hivyo nini mimi haja ya kufanya nini?
Katika hatua hii kanuni yangu, line 21 ambapo haraka blinking sasa ni, mimi
kuwa int chanya ndani ya ya kutofautiana kuitwa n.
Jinsi gani mimi kuwapa nyuma kuu?
Literally.
Kurudi n semicolon.
>> Hivyo tu kama Colton akarudi kipande cha karatasi na jibu kwangu na kuacha
kwamba kipande cha karatasi katika nyeusi kidogo sanduku juu ya meza, kwa kufanya hivyo katika
kanuni, wewe literally kuandika tu, kurudi n, na ni kama kwamba walikuwa Colton
kuwapatia mimi kitu kimwili nyuma.
Katika kesi hiyo, kinachotokea ni kupata int chanya ni kwenda mkono nyuma
nini labda chanya integer kwa nani?
Ambapo haina thamani kwamba kuishia?
Kwamba mwisho juu katika variable hii, n, na kisha sisi kuendelea na line tisa.
>> Hivyo kwa maneno mengine, katika utaratibu wa shughuli, mpango huu kuanza
utekelezaji, na mkusanyaji anatambua, oh, unataka maktaba?
Hebu kwenda kunyakua chochote ni ndani ya kwamba.
Oh, unataka kiwango IO maktaba?
Hebu kwenda kunyakua chochote ni ndani ya kwamba.
Je mkusanyaji kusema yenyewe wakati hits nne mstari?
Oh, wewe aliahidi kutekeleza kazi kuitwa kupata chanya, lakini
tutaweza kupata nyuma na kwamba baadaye, kitu pamoja na wale mistari.
>> Int utupu kuu tu ina maana hapa ni guts ya mpango wangu.
Line saba ni brace curly.
Line nane ni kusema juu ya kushoto, kutoa mimi bits 32 kwa integer, simu yake n.
Upande wa kulia, ni akisema kupata int chanya.
Sasa pause hebu kwamba hadithi kwa sababu sasa Mimi si kusonga mshale yangu chini.
Mshale yangu sasa inakwenda chini hapa kwa sababu sasa kupata int chanya executes.
N int ya kutangazwa.
Kufanya yafuatayo.
Printf anitiaye sifuri.
>> Kupata int kutoka kwa mtumiaji, kuhifadhi katika n, na labda kufanya hivyo tena na tena.
Kitanzi Hii ina maana kwamba kanuni hii ili nitafanya juu na chini kama hii tena
na tena, lakini wakati mtumiaji hatimaye inashirikiana na anitiaye chanya
int, mimi hit line 21, ambapo kiwango simu ni mitupu nyuma, na ambayo moja
lazima mimi kuonyesha sasa?
Tisa.
Udhibiti, hivyo kusema, anarudi kwa line tisa.
Hiyo line kwamba sasa katika malipo.
>> Hivyo kwamba ni ya kinachotokea kila wakati huu chini ya Hood, lakini
wakati tumekuwa kutumika kazi kama printf au hata kupata kamba kwamba mtu mwingine
aliandika kwa ajili yenu, kudhibiti mara kuwa mitupu kanuni mbali na mtu mwingine mstari
na mstari kwa mstari.
Ni tu hatukuweza kuona na sisi hakuweza kweli depict katika hii
mpango kwa sababu ni katika baadhi ya wengine faili kwenye gari ngumu
unbeknownst kwetu.
Basi hebu kweli kukusanya na kukimbia hii sasa.
>> Kufanya chanya.
Kukusanya, hiyo ni maendeleo.
. / Chanya.
Nipe sifuri.
Hebu kuwa vigumu.
Hasi 1.
Sifuri.
Hebu kuwapa 50.
Shukrani kwa ajili ya 50, na hivyo kudhibiti sasa akarudi.
Maswali yoyote, basi, juu ya hilo?
Yeah?
>> [Inaudible].
>> Kusema tena.
Oh, nzuri swali.
Hivyo unaweza taarifa sambamba hapa kwamba Mimi nina aina ya kukata kona juu.
Katika mstari wa 12, mimi kusema, kupata int chanya anarudi int, lakini kwa huo
mantiki, sasa anasimama kwa kufikiri kwamba katika line sita, mimi kusema kwamba kuu anarudi
int, lakini tuna nini sisi kamwe alikuwa katika mojawapo ya mipango yetu?
Tumekuwa kamwe alikuwa kutaja ya hii muhimu neno kurudi.
>> Hivyo zinageuka kuwa katika C, angalau version ya hiyo kwamba sisi ni kutumia
kufanywa katika 1999, kitaalam, hii ni yanatokea kwa wewe moja kwa moja.
Wowote kutekeleza mpango na wewe kutekeleza kazi kuitwa kuu,
kwamba kazi ya kurudi sifuri na default kama huna kusema vinginevyo,
na sifuri ni mkataba.
ulimwengu anarudi sifuri hivyo kuonyesha kwamba wote ni vizuri,
ufanisi na kuacha yetu na bilioni nne inawezekana mambo ambayo inaweza kwenda
hivyo vibaya kwamba kama sisi kurudi moja, kwamba wapate yanamaanisha kificho kwamba maana hii
Jambo potoka.
Tungeweza kurudi mbili, ambayo ina maana ya jambo hili nyingine potoka.
Tungeweza kurudi bilioni nne, ambayo maana jambo hili nyingine potoka.
>> Na kama wewe sasa kufikiri juu yako mwenyewe PC au Mac, unaweza kukumbuka kuwa
wakati mwingine wewe kupata ujumbe wa makosa cryptic kutoka programu ya kwamba wewe ni
kutumia, na wakati mwingine ina binadamu kirafiki maelezo, lakini kuna
mara nyingi kanuni au idadi kwenye screen?
Kama hii haina kuja akili, tu kuweka jicho nje kwa ajili yake.
Hiyo ni kawaida nini hawa namba ni akimaanisha.
Wao ni pamoja na katika Microsoft Word na programu nyingine ili kwamba kama wewe faili
mdudu ripoti na kampuni, unaweza kuwaambia, oh, I got makosa ya simu 45.
Na baadhi ya nyuma programu katika kampuni wanaweza kuangalia kuwa hadi katika yake
kanuni na kusema, oh, hiyo ni kwa sababu mimi alifanya hii mdudu na kwamba sababu ya mtumiaji
got ujumbe huu.
>> Lakini kusema ukweli, ni kidogo tu bughudha na tedious kidogo
kuhitimisha kwamba, angalau juu yetu michache ya kwanza ya mipango, hivyo tumekuwa
wamekuwa omitting yake.
Lakini wakati huu wote kila mmoja wenu kazi kuu ina siri alikuwa na haya ya
line moja kwa moja aliongeza kwa ajili yenu na mkusanyaji, tu na mkataba wa
kuokoa baadhi ya wakati.
>> [Inaudible].
>> Huna haja kwa pamoja katika kuu.
Hiyo ni sawa.
Huna haja ya pamoja ni kama walikuwa utekelezaji wa kazi kama hii.
Vinginevyo gorofa kazi nje bila kazi.
Lakini katika kuu, siyo lazima.
Katika wiki moja au mbili, tutaweza kuanza kupata katika tabia kwamba mara tunataka kuanza
akionyesha makosa.
Nzuri kwa kweli swali.
>> Hivyo haraka matusi mapumziko kutaja kwamba Ijumaa hii, sisi si kuwa baada ya chakula cha mchana
per se, lakini tutaweza kuwa baada ya chakula cha jioni na baadhi ya wanafunzi na wafanyakazi.
Kama Ningependa kujiunga na sisi, kujisikia bure kwenda cs50.net/rsvp.
6:00 Ijumaa hii.
Nafasi ni, kama siku zote, mdogo, lakini tutaweza kuendelea kufanya haya juu ya karibu
kila wiki msingi kama nafasi anaendesha nje wiki hii.
>> Hivyo cliffhanger kwamba sisi kushoto mbali juu ya Jumatatu ilikuwa kwamba masharti unaweza kweli
kuwa indexed ndani, ambayo ina maana wewe unaweza kupata katika tabia ya kwanza,
pili tabia, tabia ya tatu na kadhalika, kwa sababu unaweza
ufanisi kufikiri wa kamba, kama hello, kama kuwa katika kesi hii tano
barua ndani ya masanduku.
Na unaweza kupata katika kila moja ya hizo masanduku na kile syntax hatukufanya
kuanzisha Jumatatu?
Wale mabano mraba kwenye keyboard yako.
Kwamba tu maana ya kwenda mahali sifuri.
>> Sisi kuanza kuhesabu saa sifuri, hivyo bracket sifuri kunaashiria h, bracket moja
kunaashiria e, na kadhalika.
Na hivyo wakati wote wakati tumekuwa kutumia masharti na kuandika katika "hello"
na "dunia" na mambo mengine katika screen, imekuwa ni kuhifadhiwa
katika masanduku kama hii.
Na kuchukua nadhani.
Nini kila sanduku kuwakilisha kimwili ndani ya kompyuta yako?
>> [Inaudible].
>> Pole?
>> Wahusika.
>> Hivyo tabia, hakika katika kesi ya masharti, na tabia ni tu
nane bits au mmoja Byte.
Hivyo pengine ni angalau bila kufafanua ukoo na ukweli kwamba yako
kompyuta ina kumbukumbu.
Ina aina mbili za kumbukumbu angalau.
Moja ni disk ngumu ambapo wewe ila mambo ya kudumu, na kwamba
kawaida kubwa hivyo unaweza kuwa na sinema na muziki na kadhalika.
>> Basi una aina nyingine ya kumbukumbu kuitwa RAM, R-A-M, Random Access
Kumbukumbu, na hii ni aina ya kumbukumbu kuwa ni kutumika wakati kompyuta yako ni
mbio lakini kama wewe kupoteza nguvu au yako betri akifa, kitu ambayo imehifadhiwa
katika RAM kutoweka kama kupoteza nguvu kabisa kwa sababu si
kuendelea.
Wewe kawaida kuwa, siku hizi, GIG yake, wawili gigs, labda zaidi.
Na kichwa cha RAM ni kwamba ni kiasi gani sana, kwa kasi zaidi kuliko disks ngumu
au hata hali imara anatoa siku hizi, lakini ni kawaida ghali zaidi ili
una chini ya hiyo.
>> Hivyo mazungumzo ya leo kweli inahusu na RAM, kwamba aina ya kumbukumbu kwamba
ipo tu wakati kuna nguvu kuwa kulishwa ndani ya kompyuta yako.
Hivyo wakati wewe aina katika H-E-L-L-O, Kuingia kwenye keyboard, H ni kwenda katika moja
Byte ya RAM, E ni kwenda katika mwingine Byte ya RAM, kama ni
mapumziko ya neno.
Hivyo kukumbuka kile tulikuwa na uwezo kufanya mara ya mwisho ilikuwa hii.
Hebu kwenda mbele na kufungua faili kwamba sisi kuitwa string.c, na kukumbuka
kwamba inaonekana kidogo kitu kama hiki.
Hebu kweli unaendelea nyuma na kubadili ni nini hasa ilikuwa inaonekana kama,
urefu wa kamba s.
>> Hivyo kuangalia mpango hapa.
Sisi ni pamoja na maktaba CS50 hivyo kwamba tunaweza kutumia kupata kamba.
Sisi ni pamoja io.h kiwango ili tuweze kutumia printf.
Kwa nini sisi ni pamoja string.h?
Hii ilikuwa mpya juu ya Jumatatu.
Basi tulitaka kamba urefu.
Str leng.
Watu aliamua miaka iliyopita, hebu tu kuwa succinct.
Badala ya kuiita "string urefu," hebu kuiita "str leng" na basi
dunia kwamba takwimu nje, na hivyo kwamba ni nini sisi kupata na string.h.
>> Hii ni ukoo.
Hii ni ukoo.
Hii ni kidogo mpya.
Katika mstari wa 22 - na tutaweza kurudi na hii, lakini kwa sasa najua -
na wewe tu kujua hii kutokana na kuwa na kusoma nyaraka au kama
wewe alijua C tayari -
kupata kamba wakati mwingine unaweza screw up.
Kama mtumiaji ni kweli ushindani au uncooperative na yeye tu
haina aina kitu katika keyboard au aina sana katika keyboard kwamba
ni overwhelms kumbukumbu ya kompyuta, katika nadharia, kupata kamba inaweza kurudi
kitu kingine zaidi ya kamba ya wahusika.
Ni inaweza kurudi thamani maalum iitwayo NULL katika mechi zote, N-U-L-L, na hii ni
tu kinachojulikana sentinel thamani.
Ni thamani maalum kwamba kunaashiria kitu mbaya kilichotokea katika kesi hii.
Ni kukosekana kwa kamba.
>> Hivyo null mimi nina kuangalia kwa tu hivyo kwamba, muda mrefu hadithi fupi, na str leng
majukumu mengine kwamba kuja na C, kama wanatarajia kamba lakini wewe kupita yao
kukosekana kwa kamba, kama wewe kupita yao null, kompyuta au mpango
tu ajali ya wazi.
Itakuwa hutegemea.
Itakuwa kutupa juu ya baadhi ya ujumbe wa kosa.
Mambo mabaya kutokea.
Hivyo hata kama hii bado ni si vizuri defined -
hii kufanya maana zaidi katika wiki au mbili - katika mstari 22, hii ni
mfano wa kuangalia binafsi kujihami kosa tu katika kesi moja wakati nje ya
milioni kitu kitaenda vibaya, saa angalau mpango wangu si kukwama.
>> Hivyo kama s haina sawa na kitu mbaya, Nina hii kwa kitanzi, na hii ilikuwa
ambapo tulikuwa na kwamba wengine mpya kipande cha syntax.
Nina kwa kitanzi iterating kutoka sifuri juu hadi urefu wa s.
Na kisha hapa, mimi nilikuwa nje ya uchapishaji s bracket i, lakini kwa nini mimi kutumia% c yote ya
ghafla badala ya% s hata ingawa s ni kamba?
Ni tabia, haki?
S ni kamba, lakini s kitu bracket, s mabano i ambapo i ni sifuri
au moja au mbili, kwamba ni mtu binafsi tabia katika kamba, na hivyo kwa
kwamba, printf anahitaji kuwa na taarifa kwamba ni kweli tabia ya kutarajia.
>> Na kisha kukumbuka, nini hii mpango wa kweli kufanya?
>> Kuchapishwa nje katika nguzo.
>> Yeah, hasa.
Ni tu kuchapishwa neno kwamba mimi aina katika safu, tabia moja kwa kila mstari.
Basi hebu angalia hii tena.
Hivyo kufanya kamba.
Imekusanywa OK. . / Kamba.
Hebu aina katika H-E-L-L-O, Ingieni, na kweli mimi kupata, moja kwa kila mstari.
>> Hivyo basi mimi kufanya moja optimization hapa.
Kama unafikiri kuhusu hilo, hasa kama umefanya iliyowekwa mbele, kuna
arguably uzembe katika mstari 24.
Kwa maneno mengine, siyo lazima kubuni bora.
Moja kwa moja, angalau mara moja kukumbuka kile str leng ni, lakini ni
kufanya kitu bubu uwezekano.
Nini kinaweza kuwa ni nani?
>> [Inaudible].
>> Hasa.
Ni kuangalia kwa urefu wa s kila wakati hata kama
H-E-L-L-O daima kwenda kuwa tano wahusika.
Kila wakati kwa njia ya kitanzi hii, tano si kubadilisha.
Nipate incrementing i, lakini kile ni urefu wa s juu ya kila
iteration ya kitanzi hii?
Ni tano, ni tano, ni tano, na lakini hata hivyo mimi kuuliza hii
swali tena na tena na tena.
Sasa kusema ukweli, kompyuta ni hivyo damn haraka, hakuna mtu kwenda taarifa
tofauti katika kesi hii, lakini aina hii ya maskini kubuni maamuzi unaweza
kuanza na kuongeza hadi kama mkusanyaji yenyewe haina kujaribu kurekebisha hii kwa ajili yenu ambayo
ni kawaida hakutaka, saa angalau katika appliance.
>> Hivyo nina kwenda kufanya hili.
Mimi nina kwenda kuongeza koma baada ya kutofautiana yangu ya kwanza, i.
Mimi naenda kutoa mwenyewe mwingine kutofautiana, wito ni n, tu kwa
mkataba kwa idadi, na kisha mimi nina kwenda hawawajui n thamani ya kamba
urefu wa s.
Na basi mimi nina kwenda na mabadiliko ya hali yangu kwa kuwa na nini?
Mimi nina kwenda na mabadiliko ya hali yangu kwa wakati i ni chini ya n.
>> Hivyo sasa, mara ngapi mimi kuangalia urefu wa s?
Mara moja, lakini ni sawa na kuangalia i dhidi ya n tena na tena kwa sababu sasa wale
maadili ni kweli si kubadilisha.
Sasa kwa ajili ya sasa, tu kujua kwamba wakati wowote piga kazi, kuna kidogo ya
Rudia, haitoshi kwa tamaa wewe kweli kutoka milele kutumia kazi, lakini
hakika wakati kuna mstari wa kanuni kama kwamba - na mistari ya kupata
kuvutia zaidi kabla ya muda mrefu - ambapo kuna nafasi ya kufikiri, kama mimi
aina hii ya kanuni, wangapi mara itakuwa ni kutekeleza?
Itabidi kuanza kuona baada ya muda utendaji wa programu yako unaweza
Hakika mabadiliko.
>> Kwa kweli, moja ya tatizo seti tumekuwa kufanyika katika kipindi cha miaka inahusisha
kutekeleza, kama unaweza kukumbuka kutoka wiki sifuri, kusahihisha Spell, lakini
Spell kusahihisha hiyo iliyoundwa na kusaidia kamusi ya 150,000 pamoja na
maneno kwamba sisi kukupa guys.
Wewe ingekuwa kuandika kificho kwamba mizigo maneno hayo ndani ya RAM, hivyo katika
masanduku kama tuliona juu ya screen wakati iliyopita, na kisha kwa haraka iwezekanavyo
unaweza, unahitaji kuwa na uwezo wa kujibu swali la fomu, ni neno hili
misspelled?
Ni neno hili misspelled?
>> Na katika kitu kama kwamba kile tumekuwa kufanyika katika kipindi cha miaka ni akageuka ndani,
angalau kwa opt-katika misingi ya hiari, ushindani wa kila aina, ambapo
wanafunzi ambao kutumia RAM chini na chini muda, wachache CPU mizunguko, kuishia
bubbling hadi juu ya kidogo kiongozi wa bodi au cheo kwamba sisi kuweka kwenye
Mzee bila shaka ya kama tumekuwa kufanyika katika miaka ya nyuma.
Hivyo tena, kabisa hiari, lakini hii anaongea na fursa ya kubuni
kwamba ni mbele kwa mara sisi kuanza kujenga atop baadhi ya haya
msingi ujenzi wa vitalu.
>> Hivyo basi mimi kwenda nyuma ya mchoro huu kwa muda tu na yatangaza kidogo
kitu zaidi.
Kweli hii ni kamba, na tumekuwa kuchukuliwa faida ya maktaba chache,
kiwango io.h ambayo ina -
>> Printf.
>> Printf, miongoni mwa mambo mengine.
cs50.h, ambayo ina kupata int na kupata kamba na kadhalika, string.h, ambayo
alikuwa str leng.
Lakini zinageuka kuna jingine.
Kusema ukweli, kuna kura na kura ya header files kwamba kutangaza kazi
kwa ajili ya maktaba, lakini hii ni ctype.h kweli kwenda kuwa fulani
faida kwa sababu mimi naenda kwa kwenda mbele na kutekeleza moja
nyingine ya mpango hapa.
>> Hebu kwenda mbele na kufungua kitu Mimi aliandika mapema kuitwa
capitalize.c, na hebu kuchukua kuangalia jinsi hii matendo.
Taarifa kwamba mimi nina kutumia, katika toleo hili ya hayo, tatu ukoo files.
Taarifa kwamba katika mstari 18, mimi nina kupata mstari wa maandishi.
Ilani katika mstari 21, mimi nina wakidai kwamba kanuni zifuatazo ni kwenda
capitalize s, chochote mtumiaji typed katika, na jinsi mimi kufanya hivyo?
Naam, mimi nina kuchukua -
somo la kujifunza kutoka wakati wa mwisho -
Mimi kutangaza i na n na iterating juu ya wahusika katika kamba.
Na kisha ni nini hii block ya kanuni ya 24 kupitia katika mstari 27
kufanya katika suala layman?
>> Herufi za chini ya mbili nyuma.
>> Hasa.
Kama s mabano i - hivyo kama i-th tabia ya s, ambayo ni mahususi
Char katika kamba, ni mkubwa kuliko au sawa na Herufi za chini na -
kukumbuka kuwa Ampersand mara mbili tumeni na -
na tabia hiyo, s mabano i, ni kidogo kuliko au sawa na Herufi za chini z,
kwamba maana yake ni b au au au c nukta nukta nukta au z, ambayo ina maana
ni lowercase.
Nini nataka kufanya katika kesi hiyo?
Naam, siwezi kufanya hivyo kwa kiasi fulani isiyoeleweka kirahisi, lakini
hebu tease hii mbali.
>> Mimi naenda kuwaita printf, prints% c sababu nataka kikachapishwa hii
tabia kwenye screen.
Mimi kisha kwenda kuchukua s mabano i, i-th katika tabia, na kwa nini basi
Mimi kufanya hila hii kidogo hapa, Herufi za chini bala mji mkuu wa A?
Kile ni kwamba kwenda kutoa mimi, kwa ujumla kuzungumza?
>> [Inaudible].
>> Hasa.
Mimi si kweli kukumbuka -
ilikuwa ni 65 kwa ajili ya mji mkuu wa A. mimi si kweli kukumbuka kile Herufi za chini ni,
lakini hakuna jambo.
kompyuta anajua.
Hivyo kwa kusema, Herufi za chini bala mji mkuu wa A, ni weird kuwa
subtracting moja Char kutoka mwingine, lakini kile ni chars chini ya Hood?
Wao ni idadi tu.
Hivyo chochote wale idadi ni, basi kompyuta kumbuka ni
kuliko mimi binadamu.
>> Herufi za chini hivyo mji mkuu bala ni anaenda kunipa tofauti.
Hutokea kwa kuwa 32, na kwamba itakuwa kesi kwa b lowercase na mji mkuu wa B
na kadhalika.
Anakaa thabiti, nashiriki.
Hivyo mimi nina kimsingi akisema, kuchukua Herufi za chini ya mbili, Ondoa mbali kwamba
kiwango tofauti, na kwamba bracket ufanisi mabadiliko s i kutoka
Herufi za chini, bila shaka, uppercase, bila wangu kweli ya kuwa na kufikiri
kuhusu au kumbuka, nini walikuwa wale idadi kuongelea wakati nane
kujitolea alikuja juu ya hatua?
Sasa wakati huo huo, katika mwingine, kama si barua lowercase kama ilivyopangwa
na mstari wa 24, magazeti ya nje tu.
Mimi nataka tu kugusa wahusika kuwa walikuwa
kweli awali Herufi za chini.
>> Basi hebu angalia hii.
Kufanya capitalize.
Imekusanywa, OK.
. / Capitalize.
Na napenda aina katika H-E-L-L-O katika lowercase, kuingia.
Na taarifa kwamba ni waongofu katika herufi kubwa.
Basi mimi kufanya hili tena na neno tofauti.
Vipi kuhusu D-A-V-I-D na D ya kwanza mtaji kama jina kawaida ni?
Kuingia.
Taarifa bado ni sahihi.
Ni tu outputted kwamba kwanza D bila kubadilika kupitia kwamba mwingine kujenga.
>> Hivyo kuendelea katika akili, basi, michache ya mambo hapa.
Moja, kama wewe milele unataka kuangalia mbili hali ya mara moja, unaweza na wao
pamoja kama sisi alitabiri.
Unaweza kulinganisha wahusika kwa njia hii na ufanisi kutibu wahusika kama
idadi, lakini kusema ukweli, hii ni hivyo damn cryptic Mimi kamwe kwenda kukumbuka
jinsi ya kuja na hii kutoka mwanzo bila sababu kwa njia hiyo kwa kabisa
muda kidogo.
>> Je, si ni kuwa nzuri kama mtu huko nje aliandika kazi kuitwa ni
kupunguza kwamba anaweza kujibu kwa ajili yangu kweli au uongo, tabia hii ni lowercase?
Vizuri nashiriki, mtu aliandika ctype.h alifanya hasa kwamba.
Hebu kwenda hapa na kuongeza ctype kwa c aina, na sasa napenda kwenda chini hapa na
rewrite mstari huu kama ifuatavyo.
>> Hivyo kama ni kuitwa ni ya chini, mimi kudai, s bracket i, basi mimi naenda kufuta
hizi mistari mbili kabisa.
Hivyo sasa mtu mwingine, nina matumaini, aliandika kazi kuitwa ni ya chini, na ni
zamu nje walivyofanya na wao alitangaza ni ndani ya ctype.h.
Na sasa mimi naenda kuondoka mstari 27 peke yake, mimi naenda kuondoka mstari 31
peke yake, lakini taarifa jinsi gani mimi wameweza minskat juu ya kanuni yangu.
Ni sasa safi.
Ni chini vigumu kuangalia njia kwa sababu sasa kazi, zaidi ya hayo, ni
hivyo ajabu aitwaye tu anafanya nini anasema.
>> Hivyo sasa mimi naenda kuokoa hii.
Mimi nina kwenda kuvuta nje.
Na kama katika Scratch unaweza kuwa na Booleans, Boolean maadili kweli au
uongo, kwamba ni nini hasa ni kupunguza mapato kwa ufanisi.
Hebu recompile.
Hebu re-run.
Na sasa hebu jaribu tena, H-E-L-L-O, kuingia.
Hiyo ni nzuri sana.
Na kujaribu tena, kuhakikisha mimi hakuwa parafujo kitu juu.
Kwamba ni mtaji vilevile.
>> Lakini hii si nzuri ya kutosha kwa sababu chochote ambacho kwamba mimi nina kamwe kwenda
kukumbuka isipokuwa mimi kazi kwa njia hiyo kweli makini juu, kusema, karatasi ni
mstari huu damn.
Je, si ni kuwa nzuri kama kulikuwa na kazi kuitwa kwa juu?
Vizuri zinageuka kuna ni katika ctype.h pia.
Mimi nina kwenda mbele na aina yake -
basi mimi kuleta kwamba line nyuma.
Badala ya hii hapa, napenda kwenda mbele na kusema, mbadala kwa ajili ya c%
matokeo ya wito wa kazi huu kwa juu juu ya tabia i-th wa s.
Na sasa ni kupata taarifa kidogo uwiano.
Nina kuweka wimbo wa ngapi mabano nimekuwa kufunguliwa na kufungwa.
>> Hivyo sasa ni hata safi.
Sasa mpango huu ni kupata bora na bora iliyoundwa arguably sababu ni
kiasi, zaidi someka lakini ni hakuna hebu kusahihisha.
Kufanya capitalize.
. / Capitalize.
H-E-L-L-O. Hebu kukimbia tena, D-A-V-I-D. OK, hivyo bado tuko katika
nzuri sura.
>> Lakini sasa kwa juu.
Napendekeza kwamba kuna moja zaidi ustaarabu tunaweza kufanya kwamba itakuwa
mzuri kweli, kwamba inaweza kweli kaza juu ya kanuni hii na kwa kweli kutupatia tano
kati ya tano kwa ajili ya kubuni, kwa mfano.
Nini itakuwa nzuri ya kujikwamua?
Naam, kuangalia jinsi ya damn muda mrefu hii block ya kanuni ni kufanya kitu rahisi.
>> Sasa kama kando, kama unaweza kuwa na kuonekana katika sehemu super hii iliyopita
mwishoni mwa wiki, huna haja madhubuti curly braces wakati wewe tu na moja
mstari wa kanuni, hata kama sisi mapendekezo kushika yao ili kwamba inafanya mengi
wazi zaidi, kama katika Scratch ya U-umbo vitalu, nini ndani ya tawi.
Lakini bila kuwa nzuri kama ya juu, wakipewa pembejeo zake, akageuka ndani
uppercase kama siyo, na kile ingekuwa kuwa ya ajabu katika kesi kinyume kama
ni tayari uppercase?
Tu kupita kwa njia ya na kuondoka peke yake.
>> Hivyo labda ni gani kwamba.
Mimi naweza kujaribu na tu matumaini kwamba hana, lakini napenda
kuanzisha jambo moja nyingine.
Badala ya kutumia hii terminal kujengwa katika dirisha chini hapa, kukumbuka kwamba
hii mraba nyeusi icon inakupa kubwa terminal dirisha kwamba naweza full
screen kama nataka?
Hivyo zinageuka wao ni aina ya oddly jina lake, lakini kuna mambo haya kuitwa
mtu kurasa, kurasa mwongozo, mtu kwa ajili ya muda mfupi, na mimi wanaweza kupata haya kwa
kuandika mtu -
je, nataka na aina?
Mtu juu.
>> Na sasa taarifa kama kuna kazi ndani ya kompyuta, katika
kesi hii appliance, ambayo ni haki mfumo wa uendeshaji Linux, ni kwenda
kunipa kuweka kiasi fulani fumbo la pato, lakini utapata juu ya wakati huo
daima ni formatted pretty much vivyo hivyo kuanza kupata kutumika yake.
Taarifa juu ya juu, na inaonekana ni sawa nyaraka
kwa ajili ya kupunguza.
Mtu aliandika kinawafyeka baadhi pembe na kuweka yote kwenye ukurasa mmoja.
Kusudi mambo haya 'katika maisha ni kubadili
barua kwa juu au lowercase.
>> Taarifa kwamba chini ya Synopsis, ukurasa wa mtu ni kufundisha mimi nini faili nina
kwa pamoja kwa kutumia neno hili.
Ni kunipa saini kwa ajili ya haya kazi, wawili kati yao, hata
ingawa sisi sasa hivi tu huduma ya juu moja.
Hapa sasa ni maelezo.
Kwa juu waongofu mbili c uppercase kama inawezekana.
>> Bado si kwamba mazingatio, lakini napenda sasa kuangalia chini ya thamani ya kurudi, jambo
hiyo ni mitupu nyuma.
Hivyo thamani akarudi ni ile ya waongofu mbili au c kama
uongofu hakuwa iwezekanavyo.
Je, ni c?
>> tabia ya awali.
>> tabia ya awali na tunajua kwamba kwa mara nyingine tena, anakwenda
Synopsis, na yeyote aliandika hii kazi tu aliamua kwamba pembejeo
na kwa ya juu na ya chini ni tu kiholela kwenda kuitwa c.
Wangeweza kuitwa ni zaidi ya kitu wanataka, lakini wao kuitunza
rahisi kama c.
Hivyo nimekuwa ushauri ukurasa mtu.
Hii hukumu reassures kwangu kwamba kama siyo barua lowercase, ni
kwenda tu nipe nyuma c, ambayo ni kamilifu, ambayo ina maana mimi wanaweza kujikwamua
hali yangu mwingine.
>> Hivyo basi mimi kwenda nyuma gedit, na sasa napenda tu kufanya hivyo.
Mimi nina kwenda nakala kauli yangu printf.
Mimi nina kwenda mbele na haki ndani ya kwa ajili ya magazeti kitanzi kwamba nje, na kupata
kuondoa ya sasa hii yote kama kujenga.
Ilikuwa si wazo mbaya, na ilikuwa ni ya kiasi sahihi na thabiti na
kila kitu tumekuwa unahubiriwa, lakini si tu muhimu.
Haraka kama wewe kutambua baadhi ya maktaba kazi ipo kwamba mtu mwingine
aliandika, au labda wewe aliandika mahali pengine katika faili, unaweza kutumia na kwa kweli
kuanza kaza juu ya kanuni.
>> Na wakati mimi kusema mambo kama mtindo mzuri, ukweli kwamba mtu huyu aitwaye
kazi ya juu, au hapo awali ni chini ni ajabu muhimu kwa sababu
wao uko sana maelezo.
Wewe si unataka kuwaita kazi yako x na y na z, ambayo
sana, kiasi kidogo maana.
Maswali yoyote juu ya mfululizo kwamba ya maboresho?
>> Hivyo inatosha kusema moja ya takeaways ni hata kama tatizo lako mwenyewe
kuweka - labda tatizo kuweka moja, lakini hakika P kuweka mbili na kuendelea, hata
wakati wao uko sahihi siyo lazima maana wao ni kamilifu tu
bado au hasa vizuri iliyoundwa.
Hiyo ni mhimili mwingine kuanza kufikiri juu.
Hivyo hii ilikuwa ndani ya kamba ya yako kumbukumbu ya kompyuta, lakini kama una
nzima rundo la wahusika kama H-E-L-L-O ndani ya RAM, na tuseme
kwamba katika mpango wako kuwaita kupata kamba mara nyingi kama kwamba wewe
kuwaita kupata kamba mara moja, basi kuwaita kupata kamba tena.
Vizuri, nini kinaendelea kutokea baada ya muda?
>> Kwa maneno mengine, kama una mstari wa kanuni, pamoja na nje ya mazingira, kama
kamba s anapata -
hebu kufanya hii.
Kamba jina sawa na kupata kamba.
Hivyo tuseme kuwa mstari wa kanuni ni maana kuuliza mtumiaji kwa ajili ya jina lake.
Line hii ya pili ya kanuni ni maana ya kuuliza mtumiaji kwa ajili ya shule yake, na
line hii ya pili, na kadhalika.
Tuseme kwamba sisi kuendelea kuuliza mtumiaji kwa ajili ya mwingine na
mwingine na mwingine kamba.
Wao ni kwenda kukaa katika kumbukumbu wakati huo huo.
Moja si kwenda clobber mengine.
Shule si overwrite mengine.
Lakini pale ambapo kufanya wao wote kuishia katika kumbukumbu?
>> Naam, kama sisi kuanza kuteka kwenye screen, ambayo tunaweza kutumia neno hili
hapa kama ubao, kama hii nyeusi Mstatili inawakilisha kompyuta yangu
kumbukumbu, mimi nina kwenda kiholela kuanza kugawa hivyo hadi katika viwanja kidogo,
kila mmoja ambayo inawakilisha moja Byte ya kumbukumbu.
Kusema ukweli, kama una gigabyte ya RAM siku hizi, una ka bilioni
ya kumbukumbu katika kompyuta yako, hivyo bilioni ya mraba haya.
Hivyo inatosha kusema, hii si kweli kwa wadogo.
>> Lakini tunaweza kuweka kuchora yote haya wazi si kuongeza viwanja, na hii
pamoja inawakilisha kompyuta yangu ya kumbukumbu.
Sasa tutaweza tu kufanya dot, dot, dot.
Hivyo kwa maneno mengine, wakati mimi sasa kuchochea mtumiaji kwa kamba wa kupata kunipa
kamba, nini kitatokea?
Kama mtumiaji aina katika "hello," kwamba mwisho hadi katika H-E-L-L-O. Lakini tuseme
mtumiaji basi aina katika -
kweli, mimi lazima kuwa na kosa hujambo kwa sababu sisi ni kuuliza
yao kwa majina yao.
Basi hebu kwenda nyuma kama naweza kufanya hili.
>> Hivyo kama mimi aina katika D-A-V-I-D kwa ajili ya jina langu, lakini kukumbuka kuwa mstari wa pili wa
kanuni ilikuwa kupata kamba tena kupata shule zao.
Ambapo ni neno kwamba mtumiaji aina katika kwenda ijayo?
Vizuri, labda ni kwenda na kwenda katika H-A-R-V-A-R-D. Hivyo hata ingawa nimekuwa
inayotolewa ni kama safu mbili, hii ni kundi zima la ka katika yako
kompyuta RAM.
Kuna tatizo sasa kwa sababu sasa kama mimi nina kutumia RAM katika hii nzuri sana
lakini aina ya njia wasiojua, nini unaweza si inaonekana kutofautisha?
Ambapo moja huanza na ambapo moja mwisho, haki?
Wao ni aina ya blurring pamoja.
>> Hivyo zinageuka kompyuta haina kufanya hivyo.
Basi mimi kwa kweli kitabu nyuma katika wakati wachache wahusika, na badala ya Harvard
kwenda mara baada ya jina la mtumiaji, mtumiaji kweli anapata, nyuma ya
pazia, tabia maalum kuingizwa kwa
kompyuta kwa ajili yake.
/ 0, inayojulikana kama tabia nul annoyingly kuitwa N-U-L, si
N-U-L-L, lakini kuandika ni kama / 0.
Ni tu kila bits sifuri ni alama katika kati ya neno la kwanza kwamba mtumiaji
typed na ya pili.
>> Hivyo Harvard kweli sasa inaishia kama hii mlolongo wa wahusika
na moja zaidi / 0.
Hivyo kwa maneno mengine, kwa kuwa na hizi sentinel maadili, nane contiguous sifuri
bits, sasa unaweza kuanza kutofautisha tabia moja kutoka nyingine.
Hivyo wakati huu wote kile "hello" ni kweli "hello" na / 0, na
wakati huo huo, kuna nguvu vizuri sana kuwa kidogo kabisa zaidi RAM
ndani ya kompyuta.
>> Basi mimi kufanya jambo moja nyingine sasa.
Ni zinageuka kuwa yote ya mraba haya tumekuwa kuchora, wao, ndiyo,
masharti, lakini kwa ujumla zaidi, mambo haya ni ya arrays.
safu ni tu chunk ya kumbukumbu hiyo ni nyuma kwa nyuma kwa nyuma kwa nyuma,
na kwa kawaida wewe kutumia safu kwa njia hii ya nukuu za mraba mabano.
Hivyo sisi ni kwenda kuona haya kabisa kidogo baada ya muda, lakini napenda kwenda mbele na
kufungua, hebu simu yake ya milele.
Na taarifa ya nini tunaweza kufanya na hizi mbinu hiyo, kidogo
kidogo zaidi syntax hapa.
>> Hivyo katika mstari wa 17 wa mpango huu - kweli, basi mimi kuendesha programu ya kwanza
hivyo tunaweza kuona nini jambo hili gani.
Hebu piga kufanya nyakati kukusanya mpango huu.
. / Milele.
Jinsi watu wengi katika chumba?
Kuiita tatu.
Umri wa mtu wa kwanza?
18, 19, na 20.
Na sasa kiasi fulani ridiculously, mimi tu kuwa alifanya mpango kwamba wale wenye umri
watu watatu.
>> Hivyo kuna nafasi wazi kwa baadhi ya hesabu ya furaha hapa.
Nashiriki, math ni sahihi.
18 akaenda 19, 19 akaenda hadi 20 na kadhalika.
Lakini nini kweli maana ya kuwa unaonyesha hapa ni jinsi sisi ni kuhifadhi
wale watu watatu wa milele.
Hebu kuvuta saa nini kinachoendelea hapa.
>> Hivyo kwanza, hizi kwanza mistari michache lazima kuwa kupata pretty ukoo.
Mimi tu na kusababisha mtumiaji kwa ajili ya idadi ya watu katika chumba.
Basi mimi nina kutumia kupata int na kufanya wakati kwa kufanya hivyo tena na tena na tena.
Tumeona kwamba mfano kabla, lakini mstari 27 ni mpya na kweli kabisa
muhimu, na watakuwa inazidi muhimu.
Taarifa kwamba nini tofauti katika mstari wa 27 ni kwamba mimi kuonekana kuwa kutangaza
int umri kuitwa, lakini kusubiri.
Siyo tu int milele.
Kuna haya mabano mraba, ndani ya ambayo ni n.
>> Hivyo n mabano katika muktadha huu, si ndani ya kauli printf hapa lakini
katika mstari huu pekee 27, mstari huu ni akisema, nipe n ints, ambayo kila mmoja
ni ya int aina.
Hivyo hii ni ndoo, hivyo kusema, ya, katika kesi hii, tatu integers nyuma
nyuma kwa nyuma ili mimi kwa ufanisi wana vigezo tatu.
mbadala, kwa kuwa wazi, itakuwa hii.
>> Kama nilitaka mwanafunzi wa kwanza umri, mimi ili kufanya hii.
Kama nilitaka mwanafunzi wa pili umri mimi ili kufanya hii.
Kama nilitaka mwanafunzi wa tatu umri, mimi ili kufanya hii.
Na mungu apishe tunahitaji kila mtu umri katika chumba hii -
I mean, hii ni heck ya mengi ya nakala, kuweka tena na tena na tena.
Na pamoja na mara moja mimi kukusanya mpango huu, ikiwa mwanafunzi mwingine anatembea katika zaidi ya nje
ya mlango kwamba, sasa namba yangu ya vigezo ni sahihi.
>> Basi nini kizuri kuhusu safu ni kama haraka kama wewe kuanza hisia mwenyewe
kuiga na pasting, ni tabia mbaya kwamba si njia bora.
safu ni nguvu uwezekano.
Sijui mapema jinsi watu wengi ni kwenda kuwa katika chumba,
lakini najua mimi haja n yao, na mimi itabidi kufikiri n wakati unakuja.
Line hii ya maadili ya sasa ina maana, nipe chunk ya kumbukumbu kwamba inaonekana kama hii
ambapo idadi ya masanduku ya juu ya screen ni hutegemea n kwamba
mtumiaji typed in
>> Hivyo sasa mapumziko ya mpango huu ni kweli pretty sawa na kile sisi
tu alivyofanya na wahusika.
Ilani Mimi kwa kitanzi kuanzia katika mstari 30.
Hivyo haki baada ya mimi kupata safu, mimi iterate kutoka y sawa na sifuri juu hadi n.
Mimi tu kuwa hii printf mazingatio ujumbe kwa kusema tu, nipe umri
ya mtu #% i, hivyo namba moja, namba mbili, namba tatu.
Na kwa nini mimi kufanya hili?
Kusema ukweli, binadamu wanapendelea kuhesabu kutoka moja juu juu ambapo kompyuta wanasayansi,
sifuri juu juu.
kompyuta wanasayansi si kwenda kutumia aina hii ya mpango, hivyo sisi ni
kwenda tu kuanza kuhesabu saa moja kama watu wa kawaida.
>> Na sasa katika mstari 33, taarifa kidogo tofauti kipande cha syntax.
umri i-th katika kwamba kutofautiana wa aina safu ni kwenda kupata int.
Na sasa mwisho, hii ni hesabu chini hapa.
Niliamua katika kitanzi tofauti kudai baadhi ya wakati unapita, na sasa katika hii
kitanzi tofauti, hizi mistari nitafanya.
>> mwaka kuanzia sasa, mtu i itakuwa i umri wa miaka, lakini taarifa hii si
kutofautiana i.
Hii sasa ni% i kwa int.
Na taarifa kama placeholder kwanza, mimi kuziba katika i pamoja na 1, hivyo sisi kuhesabu kama
kawaida mtu.
Na kisha kwa ajili ya thamani ya umri wao, kwa i na umri wa miaka, mimi kuchukua umri bracket
i - na kwa nini mimi kufanya pamoja na moja hapa?
Wao tu wenye umri.
Ni uchaguzi wangu kijinga ya mipango.
Wao tu wenye umri wa mwaka mmoja.
Mimi naweza aina katika idadi yoyote kwamba Mimi kweli wanataka huko.
>> Basi nini kweli yote ya umuhimu hapa?
Naam, napenda kwa kweli kitabu nyuma zaidi ya hapa na kuchora picha
ya kile uongo mbele.
Nini tutaweza kufanya na wetu ujao Tatizo Set mbili ni dabbling katika
ulimwengu wa cryptography.
Hivyo hii ni kamba ya wahusika, hivyo mlolongo wa chars nyingi, na nini
gani hii kusema?
Siyo katika toleo online ya slides.
>> Hivyo mimi kudai kwamba hii ni sawa na hii, kijinga tangazo kutoka miaka mingi
iliyopita kuwa ili kweli kukumbuka moja ya asili yake.
Hivyo hii ni mfano wa encryption au cryptography.
Ni zinageuka kuwa kama unataka kweli kutuma habari au kushiriki
habari na mtu salama, kama ujumbe kama hii, unaweza
kinyang'anyiro barua.
Lakini kwa kawaida, maneno ni si scrambled nasibu.
Wao ni permuted katika baadhi ya njia au iliyopita katika baadhi ya njia ili - oops.
Hiyo ni spoiler furaha kwa wakati ujao.
>> Hivyo unaweza ramani ni nini inaonekana O na Ilani B. kwamba mistari hadi
mtaji-busara.
Inavyoonekana r inakuwa e.
Inavyoonekana F-H-E-R inakuwa S-U-R-E. Hivyo zinageuka kuna ramani, na katika
hii kesi kuna kijinga pretty ramani kama kuna mtu ana figured nje?
Hii ni kitu kinachoitwa Kuoza 13, Mzunguko 13.
Ni stupidest ya encryption taratibu kwa sababu ni literally tu
anaongeza 13 kwa kila moja ya barua, kijinga kwa maana kwamba kama wewe tu
kuwa na kidogo ya muda wa bure juu ya mikono yako na penseli, au wewe tu nadhani ni
kupitia katika kichwa yako, unaweza kujaribu kila nyongeza inawezekana - moja, mbili,
tatu, dot, dot, nukta 25 tu mzunguko wa alfabeti nzima, na
hatimaye, itabidi kufikiri nini ujumbe huu ni.
Hivyo kama wewe alifanya kitu kama hiki katika darasa la shule ya kupita ujumbe kwa yako
bora rafiki, kama shule yako daraja mwalimu tu kusoma kwa njia ya
ujumbe na brute kulazimishwa ufumbuzi, unaweza kuwa na kujipatia
Jibu na kwamba.
>> Sasa bila shaka, katika ulimwengu wa kweli, cryptography ni ya kisasa zaidi.
Hii ni kijisehemu cha maandishi kutoka mfumo wa kompyuta ambayo ina majina ya watumiaji na
nywila, kama karibu wote ya sisi kufanya, na hii ni nini password yako ili
kuangalia kama kama kuhifadhiwa kwenye bidii yako gari lakini katika hali ya uliosimbwa.
Hii si tu mzunguko wa barua, B ni A na B ni C. Hii ni
kisasa zaidi, lakini inatumia nini ujumla inayojulikana kama ufunguo wa siri
cryptography.
Picha hii anasema yafuatayo hadithi na icons wachache.
>> Upande wa kushoto, tuna nini Tutamwita Nakala wazi.
Katika dunia ya cryptography, wazi Nakala tu ni ujumbe wa awali
imeandikwa kwa Kiingereza au Kifaransa au lugha yoyote ile.
Kama unataka encrypt, tutaweza kupitisha ni pictorially kupitia kufuli, hivyo
baadhi ya aina ya ya algorithm, baadhi ya kazi au mpango kwamba mtu aliandika
kwamba scrambles barua hopefully zaidi kuliko tu complicatedly akiongeza 13
kwa kila mmoja wao.
>> Nini kupata nje ya mchakato wa kuwa katika katikati kuna inaitwa cyphertext.
Hivyo aina ya neno sexy.
Ni tu ina maana ni encrypted toleo la Nakala wazi.
Na kama tu una kwamba siri moja, 13 au bala 13, ni wewe na uwezo wa
decrypt ujumbe kama hiyo.
>> Hivyo katika Tatizo Kuweka Mbili, miongoni mwa mambo itabidi kufanya kama katika Hacker
Toleo, utakuwa na kuandika kanuni na ufa nywila haya, kuhesabia
walikuwa nini na jinsi wao walikuwa encrypted, ingawa sisi kufanya kukupa kidogo
ya uongozi njiani.
Katika toleo la, sisi kuanzisha michache ya ciphers, fiche
taratibu, na mtu mmoja aitwaye Kaisari, mmoja kuitwa Vigenere, kwamba bado ni
mzunguko ciphers ambapo inakuwa kitu, B inakuwa kitu, lakini
una kufanya hivyo programmatically sababu kuna hakika kuwa siri
muhimu ya kushiriki ambayo ni kawaida ya simu au Keyword kwamba tu
mtumaji na mpokeaji wa haya ujumbe wanapaswa kuelewa.
>> Sasa, hii kweli ina incarnations katika ulimwengu halisi.
Hii, kwa mfano, ni kidogo yatima Annie ya siri avkodare pete, na wewe
kweli anaweza kutekeleza haya mzunguko ciphers -
inakuwa kitu, B inakuwa kitu fulani - na michache ya magurudumu,
mmoja upande wa nje, moja juu ya ndani vile kwamba kama mzunguko gurudumu au
pete, unaweza kweli kujipanga barua na barua tofauti,
kupata kanuni ya siri.
Na hivyo kama cliffhanger kwa leo, nilifikiri nini ningependa kufanya ni kidogo ya
Throwback kwamba kama kurejea kwenye TV Desemba 24, unaweza kuangalia
movie ad nauseum kwa Masaa 24 mfululizo.
Lakini kwa leo, mimi itabidi kufungua it up hapa na kutupa dakika mbili tu ya
pedagogically husika Krismasi Story na wenzake mdogo aitwaye Ralphie.
>> [Video avspelning]
>> -Ijulikane kwa wote na sundry kwamba Parker Ralph ni hili kuteuliwa
mwanachama wa Little Yatima Annie siri mduara na ni haki ya kila
heshima na faida zinazotokea lazimishwa.
>> -Saini, Little Yatima Annie.
Countersigned, Pierre Andre katika wino.
Heshima na faida tayari katika umri wa miaka tisa.
>> [SHOUTING ILIYO RADIO]
>> Kuja juu, hebu kupata tarehe na hayo.
Sihitaji jazz kwamba wote kuhusu smugglers na maharamia.
>> -Sikiliza kesho usiku kwa ajili ya kumaliza adventure ya nyeusi
pirate meli.
Sasa, ni wakati kwa siri Annie ya Ujumbe kwa wanachama wewe
ya mduara siri.
Kumbuka, watoto.
Wanachama tu wa Circle Annie ya siri unaweza Decode Annie ya siri ya ujumbe.
Kumbuka, Annie ni kulingana na wewe.
Kuweka pini yako B2.
Hapa ni ujumbe.
12, 11, 2 -
>> -I am katika mkutano yangu ya kwanza ya siri.
>> -25, 14, 11, 18, 16 -
>> -Pierre ilikuwa katika usiku wa leo kubwa sauti.
Mimi naweza kumwambia ujumbe kwamba usiku wa leo alikuwa kweli muhimu.
>> -3, 25.
Hiyo ni ujumbe kutoka Annie mwenyewe.
Kumbuka, usimwambie mtu yeyote.
>> -90 Sekunde baadaye, mimi niko katika chumba tu katika nyumba ambapo kijana wa tisa
wanaweza kukaa katika faragha na Decode.
Aha, B. nilikwenda ijayo.
E. neno la kwanza ni "kuwa." S. Alikuwa anakuja rahisi sasa.
U. 25.
Hiyo ni R.
>> -Haya, Ralphie.
I gotta go.
>> -I'll kuwa haki ya chini, Ma.
Gee whiz.
>> -T. O. Kuwa na uhakika wa.
Kuwa na uhakika wa nini?
Nini ilikuwa Yatima Kidogo Annie anajaribu kusema nini?
Kuwa na uhakika wa nini?
>> -Ralphie, Randy ina got kwenda.
Je, tafadhali kuja nje?
>> -All kulia, Ma.
Mimi itakuwa haki ya nje.
>> -Mimi nilikuwa kupata karibu na sasa.
mvutano ilikuwa ya kutisha.
Ilikuwa ni nini?
Hatima ya dunia inaweza hutegemea katika mizani.
>> -Ralphie, Randy gotta go.
>> -I'll kuwa haki ya nje kwa ajili ya kelele kubwa.
>> -Karibu huko.
Vidole yangu akaruka.
Mawazo yangu yalikuwa ni mtego chuma.
Kila pore vibrated.
Ilikuwa karibu wazi.
Ndiyo, ndiyo, ndiyo, ndiyo, ndiyo.
>> -Kuwa na uhakika na kunywa Ovaltine yako.
Ovaltine?
kibiashara crummy?
Mwana wa bitch.
>> [MWISHO video avspelning]
>> SPIKA 1: Hii ni CS50, na kwamba itakuwa Tatizo Set Mbili.
Kuona wewe wiki ijayo.
>> SPIKA 2: Wakati ujao CS50, hii hutokea.
>> SPIKA 1: Hivyo moja ya mada hatuna inaonekana katika hivi sasa ni
kwamba kazi ya kuyatumia.
Sasa, pointer kazi ni tu anwani ya umma
kazi, lakini kama ilivyo -
mwana wa -