>> [Halisi kucheza]
>> DAVID Malan: zote haki.
Karibu tena.
Hii ni CS50, na hii ni Wiki moja, inaendelea.
Hivyo moja ya sababu tumekuwa kupita kuzunguka teknolojia kama vile
Google kioo ni kwamba wao kuja na kitu inayojulikana kama API,
Maombi Programming Interface.
Na nini maana ya hii ni kwamba pamoja na haki files na pamoja na haki ya
nyaraka, unaweza kweli kuandika programu kwa ajili ya vifaa hata kama hizi.
>> Na hivyo kile akilini tuna kuelekea semesters mwisho ni, kama mradi
kuwashirikisha, kusema, Google kioo ili rufaa, tutaweza kuona nini tunaweza kufanya katika
suala la hooking ninyi mahakamani na baadhi ya loaner vifaa kama vile
hadharani-kupatikana API ili uweze kweli kuanza kujenga programu
kwamba anaendesha kioo huo Google.
>> Kifaa kingine kwamba sisi tumekuwa kucheza na ya marehemu kwamba sisi mawazo yanaweza kuwa
furaha katika mwisho wa muhula ni hii kitu kidogo hapa.
Ni wito Leap Motion, na kile wewe ni juu ya kuona ni ya kitaalam
tangazo kwa ajili ya kifaa, lakini haina kusema nini hasa hii ya
kifaa ni uwezo wa.
Na hayo, pia, huja na API kupitia ambayo unaweza kuandika programu ya
udhibiti wa kompyuta yako mwenyewe kwa njia kabisa kama filamu hii dakika moja hapa.
>> [Video avspelning]
>> [MWISHO video avspelning]
>> Hivyo sasa hivi, kifaa hiki hutokea kwa kutekelezwa kama USB kidogo
kontakt kwamba unaweza kuziba katika yako kompyuta, lakini napenda kushangazwa
ikiwa kabla ya muda mrefu tuna aina hii ya teknolojia katika kundi la pili ya PC
na Macs hivyo kwamba unaweza, kwa hakika, kiutendaji na hivyo katika
namna kama hiyo.
Kwa kweli, nilifikiri nini ningependa kufanya, pia, ni Mimi vunjwa hadi maandamano kidogo
mpango wa kuja na programu hii.
Hivyo nimekuwa kuweka chombo hicho kidogo mbele ya laptop yangu.
>> Na kama unaweza kuona, tayari anatambua kwamba mkono wangu ni pale
udhibiti wake.
Na hii ya maombi yote gani ni swimmingly kidogo mambo kama haya.
Lakini unaweza kuona kwamba, kwa hakika, Nina vidole tano huko.
Kama tunaweza kupata kufanya yote 10, unaweza kufikiria piano nadhifu
maombi au kama.
Hivyo kama wewe Ningependa kuja baada ya darasa leo na kucheza na kwamba kama
vizuri, wewe ni kuwakaribisha.
Hivyo zaidi juu ya kwamba kuelekea mwisho wa muhula wa.
>> Hivyo michache ya utawala matangazo.
Moja, kufanya sehemu kwa Ijumaa hii saa sita mchana saa cs60.net/section.
Kwamba ni juu ya URL ya shaka Mzee pia.
Wakati huo huo, ingawa, supersections itakuwa ya kwanza Jumapili hii.
Supersections ni jambo ya wakati mmoja, kwa sababu inachukua sisi baadhi muda wa kufanya kazi
nje ambaye katika ambayo sehemu na wapi.
>> Basi Jumapili hii ijayo, kutakuwa na moja sehemu kwa ajili ya wale chini ya starehe,
sehemu moja kwa ajili ya wale vizuri zaidi.
Na wale wa wewe mahali fulani katika kati ni kuwakaribisha kwenda
ama au wote wawili, au wala.
Wote hawa itakuwa zingine.
Wao utakuwa katika ukumbi kubwa kuliko sehemu ya kawaida itakuwa in
Lakini lengo hapa ni kuwaandaa kwa baadhi ya faraja na tatizo kuweka moja,
na C, na appliance CS50, hii mwishoni mwa wiki, hata kabla ya wewe kujua wako
rasmi sehemu ya kazi.
Hivyo itabidi kukutana TF yako na yako ndogo kundi la sectionmates katika kuhusu
wiki wakati.
>> Masaa ya ofisi, wakati huo huo, wamekuwa kinachoendelea.
Kufanya kuchukua faida yao usiku wa leo au kesho usiku kama ungependa.
Tatizo kuweka 0 ni kutokana siku ya Ijumaa.
Hii ni siku ya baadaye kuliko mara kwa mara-uliopangwa kufanyika Alhamisi.
Lakini pamoja na tatizo kuweka 1, utaona kuwa ni pamoja na baadhi ya joto-up
mazoezi na ambayo wewe mwenyewe inaweza kupanua yako
Alhamisi tarehe ya mwisho ya Ijumaa.
Tatizo kuweka 1, wakati huo huo, itakuwa ya kwanza kwenye tovuti ya kozi ya hii kuja
Ijumaa, kama Ningependa kwa curl up na kama mimi alifanya hivyo mara moja juu ya muda marehemu
Ijumaa usiku katika chumba yako.
>> Hivyo cs50.net/appliance ni mahali ambapo unaweza kupata appliance CS50
kwamba sisi kuanza kutumia Jumatatu.
Tutaweza kutumia ni kidogo zaidi leo.
Lakini wengine uhakika kwamba tatizo kuweka 1 vipimo kutembea wewe kupitia
just hatua unahitaji kupata kwamba juu na kukimbia.
Hivyo msiwe na wasiwasi juu ya kufanya hivyo kabla ya Pset 1 kama wewe d badala si.
>> Wote haki.
Hivyo sisi inaonekana Jumatatu katika kanuni ya chanzo, lakini katika mazingira ya mpya
programu lugha, yaani C. Na C, tofauti Scratch, si graphical.
Siyo Puzzle vipande vipande.
Ni zaidi ya Kiingereza-kama syntax.
Na kuna michache ya hatua zinazohusika katika kweli kuandika na kukimbia
mpango katika C, kwa sababu badala ya chanzo kanuni kama hii, unahitaji kitu
kuitwa mkusanyaji.
Na katika suala layman, nini haina mkusanyaji kufanya kwa ajili yetu?
Yeah.
>> MWANAFUNZI: Ni waongofu kanuni kwamba kuandika kwa sekunde 0 na 1s.
>> DAVID Malan: Good.
Hivyo waongofu kificho kwamba tunaweza kuandika sekunde 0 na 1s.
Ni waongofu kinachojulikana chanzo kanuni na kitu kificho, mwisho ya ambayo inaonekana
kitu kidogo kama hii.
Na ni CPU yako, akili ya ndani ya kompyuta yako, kwamba kwa sababu ya
watu ambao wameumbwa kwa wale kompyuta, kujua nini wale Utaratibu
wa maana sekunde 0 na 1s.
>> Labda maana magazeti.
Labda maana yake ni kuongeza.
Labda maana yake ni kutoa.
Labda maana yake ni kuonyesha graphic.
Kuna chati predefined ya bits kwamba dunia imeamua maana
baadhi ya mambo.
Lakini kwa sehemu kubwa katika kozi hii, tutaweza kazi katika ngazi ya juu, na
tutaweza kuchukua nafasi ya kwamba kuna kuwepo mambo kama watunzi kwamba unaweza
kufanya chanzo chetu kanuni kazi katika njia ya sisi nia.
>> Hivyo mpango tuliandika kwanza wiki iliyopita na kisha wakaanza bandari, hivyo
kuongea, na miaka ya nyuma C hii Jumatatu, ilikuwa hii.
Wakati bendera ya kijani clicked, kusema hello.
Hii ilikuwa, bila shaka, imeandikwa katika Scratch.
Na mimi alidai kuwa sawa mpango katika C inaonekana kidogo
kitu kama hiki.
>> Hivyo kile Nilidhani tunatarajia kufanya saa ya kwanza ni, hebu tease mbali kile inaonekana, kwa mara ya kwanza
mtazamo, admittedly, kama haki arcane syntax, lakini utasikia kuanza kwa taarifa
chati kabisa haraka.
Nini tutaweza pia kufanya leo ni kutoa wewe na mfano wa akili kwa baadhi ya
kisheria, baadhi constructs kiwango katika programu.
Na kisha tutaweza kweli kupata mikono yetu chafu na baadhi ya mifano kama vile.
>> Hivyo kwa wale wa wewe vizuri zaidi, kutambua kwamba wiki hii na kisha ya pili
wiki vizuri sana kuwa kidogo ya mapitio.
Lakini hasa wakati toleo hacker ya tatizo kuweka 1 huenda nje ya
tovuti ya kozi ya juu ya Ijumaa, mimi nadhani utapata kwamba hata kama wewe kujaza
baadhi ya nafasi zilizoachwa wazi juu ya wiki moja au mbili, itabidi kuanza kupata milele zaidi
changamoto na kukutana mpya na karibu zaidi mambo.
>> Basi hebu tease mpango huu mbali mistari michache wakati huo.
Saa ya juu sana, tuna nini kitaalam inaitwa
Preprocessor maelekezo.
Hii ni mstari wa kanuni kwamba anasema ni pamoja na yaliyomo ya faili,
kuitwa kiwango I / N, kiwango pembejeo - au, pole, kiwango I / O, kiwango
pembejeo / pato,. h, ndani ya ya mpango wangu mwenyewe.
>> Hivyo kwa maneno mengine, kama mimi aliandika hii mpango kwa mhariri rahisi Nakala kama
gedit, sawa rahisi ya kitu kama Microsoft Word, kwamba
mafundisho, pamoja # stdio.h, ni tu kwenda kuwaambia mkusanyaji, kunyakua
yaliyomo ya faili kwamba nyingine, stdio.h, na kuweka haki yao hapa.
>> Sasa, kwa nini mimi huduma?
Nini sisi kudai ni ndani ya faili hili kuitwa stdio.h, ambayo ni kuhifadhiwa
mahali fulani kwenye gari yangu ngumu, au katika hii kesi, mahali fulani katika appliance CS50?
Mtu mwingine kuweka pale kwa ajili yangu.
Lakini nini ndani yake?
>> Yeah, hivyo ni tamko la kazi kuitwa printf.
Hivyo printf anakumbuka kazi ambayo maonyesho ya maneno na na wahusika
idadi ya juu ya screen kwa amri yangu.
Lakini sikuweza kuandika.
CS50 hawakuwa kuandika.
Mtu miaka iliyopita aliandika, na wao kimsingi alitupa kichocheo kwa ajili yake
katika faili iitwayo stdio.h.
Hivyo kwamba mstari wa kwanza tu anatoa mimi kupata kwa kazi ambayo mtu mwingine
aliandika miaka iliyopita, kati ya ambayo ni printf.
>> Sasa, line ijayo mimi naenda kukitikisa yangu mkono katika, angalau hadi wiki ijayo.
Lakini kwa sasa, tunajua kwamba int kuu (utupu) ni kimsingi sawa na hii
njano puzzle kipande wakati kijani bendera clicked.
dunia, miaka iliyopita, aliamua kwamba kama wewe ni kuandika mpango
lugha inayoitwa C, kuanza mpango wako na line
kwamba inaonekana kama kwamba.
Katika tu kuhusu muda wa wiki, kutakuwa na kufanya maana kile int ni, nini ni batili.
Lakini kwa sasa, tu kufikiria ni kama hii kipande ya njano puzzle.
>> Sasa ijayo, tuna brace curly ikifuatiwa na mwingine brace karibu curly,
hivyo kusema.
Na tutaweza kuona haya katika programu katika C, kama vile
JavaScript na PHP.
Na hawa tu kurejelea kuhusiana mistari ya kificho.
wazi curly brace kimsingi anasema, inakuja kanuni fulani.
Na kufungwa curly brace, ambayo ni angled katika upande mwingine, tu
njia, hiyo ni kwa ajili ya kanuni husika.
>> Hivyo mstari Juicy katika hii kwanza mpango ni ya mwisho, printf,
quote-unquote, hello dunia.
Na mimi kuitwa kitu kati ya quotes nini mara ya mwisho?
Hivyo ni kamba.
Na kamba ni techie mrefu kwa ajili ya mlolongo wa
wahusika, neno, maneno.
Hata barua moja inaweza kuwa mara mbili alinukuliwa.
Lakini ni mlolongo wa sifuri au zaidi wahusika.
>> Backslash-n, ingawa, inaonekana ajabu kidogo.
Lakini tu maana kitu rahisi kwa kompyuta.
Nini backslash-n?
Mpya line.
Hivyo kwamba tu mlolongo maalum ya wahusika kuwa dunia imeamua
njia kuweka kuvunja line haki pale, sababu mkusanyaji itakuwa kweli kupata
kuchanganyikiwa, kwa kawaida, kama wewe, sana vyema, lakini kimakosa, tu
kuanza kupiga Kuingia kuweka mpya mistari katika kanuni yako.
Unahitaji kuwa zaidi kidogo ya wazi na backslash-n.
>> Na tutaweza kuona kuna wachache vile wengine chati kwa herufi maalum.
Kwa mfano, kama alitaka basi yako akili tanga kwa kesi kona,
tuseme kwamba nilitaka magazeti mara mbili quote juu ya screen kwa
sababu yoyote, ambayo wanaonekana kuwa kidogo tatizo, haki?
Kwa sababu kama mimi kuweka quote mbili katika katikati ya "dunia hello,," kwa ajili ya chochote
sababu, kwa nini kwamba wanaonekana uwezekano wa tatizo?
Inavunja kamba.
>> mkusanyaji ni mpango.
mpango kama mkusanyaji ni kwenda tu kusoma kanuni yako juu hadi chini,
kushoto na kulia.
Na kama anaona tatu quotes mbili badala wa wawili, siyo kwenda kujua
kama wewe maana kwamba kitu kwa upande wa kushoto lazima kamba, au kitu
haki, au jambo zima.
Ni utata, na hivyo kile kawaida mkusanyaji bila kufanya ni kituko nje,
na kukupa baadhi ya ujumbe wa kosa, na kufanya wewe kukabiliana na tatizo.
>> Hivyo kutokana na kwamba backslash-n maana mpya line, gani silika yako sasa
kuanza kuwa kama alitaka ni pamoja na kitu ajabu kama mara mbili
quote ndani ya hii vinginevyo-alinukuliwa kamba?
Backslash-mbili kunukuu.
Na hivyo tutaweza kuona hii aina ya muundo pia.
>> Kama unataka kufanya kitu kidogo ajabu, utapata kwamba
ufumbuzi mara nyingi kufuata muundo, na backslash
inaashiria mlolongo kutoroka.
Na ni njia tu kitu maalum kwamba tunahitaji kuwakilisha katika
njia tofauti.
Kama kwa jinsi gani unaweza kuwakilisha backslash, vizuri, tutaweza
kuja nyuma na kwamba.
Lakini jibu, pia, ni kweli kidogo dhahiri.
>> Basi hebu sasa kuanzisha baadhi ya wengine programu constructs
ulizoziona katika Scratch.
Ve pengine kuchukuliwa kwa nafasi tayari kama umefanya tayari dived katika
tatizo kuweka 0.
Lakini hebu sasa kuanzisha syntax katika C kwa ajili ya haya vinginevyo haki angavu
mawazo, angalau baadhi yao.
>> Hivyo hii dhana ya hali au tawi, ambapo awali sisi
kuwakilishwa kwa kificho kwamba inaonekana kama hii juu ya kushoto katika Scratch -
kama x ni chini ya y, kisha kusema hivyo -
badala yake sasa katika C - basi mimi hone katika juu ya kesi rahisi -
tuko tu kwenda kusema, kama, kufungua mabano, kitu ni kweli -
Kujieleza Boolean ni kwenda ambapo nilivyosema hali -
mabano karibu, basi nini ndani ya wale braces curly.
>> Hivyo hapa, pia, braces curly ni aina ya kama ya Scratch
U-umbo puzzle vipande vipande.
Je, nini ndani braces hizi curly.
Katika kesi hiyo, kufyeka kufyeka.
Na taarifa hii ni mbele kufyeka, si backslash.
Mbele kufyeka, mbele kufyeka, kwa wale ambao wameweza iliyowekwa
kabla, tu ina maana -
ni tu maoni.
maoni ni si line wa kanuni, per se.
Ni mstari wa Kiingereza kwamba wewe, binadamu, wameandika kwa mwenyewe
labda kuwakumbusha kufanya kitu, kwa kuelezea kwa mwenyewe, na kuelezea kwa
mtu mwingine, nini code yako ni kufanya.
Ni tu maoni ya kina.
>> Sasa, bila shaka, tunaweza kuwa na njia mbili uma katika barabara tu kwa kufanya hivyo,
njia tatu uma katika barabara kwa kufanya hii, na kama wewe kuendelea hii
muundo, unaweza kuwa na nne ya njia, tano-njia, sita-njia uma katika barabara kama
unahitaji kushughulikia, kwa hakika, kwamba wengi masharti.
Na kisha taarifa parallelism hapa -
kama (hali), mwingine kama (hali), na moja tu kwamba ni kidogo
ajabu ni ya mwisho, ambayo ni kwamba tu mwingine.
Lakini tena, hii ni sawa, conceptually, kwa kile ambacho tumefanya
tayari, ingawa syntax mapenzi kuchukua kidogo kidogo kupata kutumika.
>> Sasa, katika mfano huu, kuna baadhi nyingine ya ajabu syntax.
Tunaona printf tena, mabano wazi, na karibu mabano.
Na ndani ya kuna kamba alinukuliwa.
mabano, katika mazingira ya printf, kwenda upande wa kushoto
na haki ya nini?
Je, sisi kueleza kwamba alinukuliwa kamba kama zaidi kwa ujumla?
>> Hivyo ni hoja.
Wakati wowote una kazi, kama printf, na kisha paren wazi na
karibu paren na kitu ndani ya hivyo, kama ni kamba, au
integer, au kitu kingine chochote, jambo katika kati ya mabano wale inaitwa
Hoja.
>> Na hoja tu mvuto kazi ya tabia.
Katika kesi hiyo, ni pretty wazi jinsi.
x <y ni nini kuwa kupita katika, hivyo kusema, kama hoja.
Na printf ni kwenda magazeti hasa kwamba.
Kwa sababu hakika, miaka iliyopita mtu ambao kutekelezwa printf hakuwa na wazo
nini sisi binadamu waandamizi walikuwa kwenda kutumia printf kwa.
Hivyo ndiyo sababu hoja zipo, kwa kuathiri tabia baada ya kazi
kuandikwa.
>> Sasa, Boolean kujieleza.
Tumeona katika hizi kabla Scratch.
Zinageuka katika C unaweza pia "au" pamoja, ili kuongea.
Baa mbili wima ina maana kwamba hii block wa kanuni, hii kufanya hivyo, mapenzi
nitafanya kama hali ya kwanza ni ya kweli au hali ya pili ni ya kweli.
Na hata ingawa unaweza kuwa na kosa hii katika Scratch, unaweza kweli
kufanya hivyo katika Scratch, Na unaweza pia kueleza mwenyewe tofauti -
kama hali ya kwanza na ya pili hali ni ya kweli, basi nini
ndani ya braces curly.
>> Na tu kama kando, sababu ni Ampersand mara mbili na mara mbili
wima bar, tutaweza kuona hatimaye kwamba moja wima bar na
Ampersand moja kweli kuwa tofauti maana katika C. Hivyo kwa sasa,
kwamba kurudia ya alama ni kukusudia.
>> Basi hebu kuanzisha, kwa ufupi, hii kidogo nyingine ya syntax.
Hii haina kabisa kubeba zaidi ya Mwanzo, lakini mimi kudai kwamba naweza
kutekeleza dhana ya kama mwingine, kama mwingine, kama mwingine, kama taarifa mwingine kwa kutumia
kitu kinachoitwa taarifa ya kubadili.
Na sababu tu hii kweli ipo ni tu kukupa, programu,
tofauti kidogo njia ya kutatua baadhi ya tatizo, hata kama ni mantiki
haina kukupa uwezo yoyote mpya.
>> Kwa kuwa mimi maana hii.
Wakati kusema kubadili, na kisha nafasi, na kisha jozi ya mabano, ndani ya
ambayo huenda kujieleza -
na hii inaweza kuwa ni kidogo zisizo dhahiri mara ya kwanza, lakini hii si hoja,
kitaalam, kwa sababu ya kubadili si kazi.
Hivyo kwa sasa, tu kudhani kwamba sisi ni kutumia mabano katika maeneo mbalimbali
kwa sababu mbalimbali.
>> Hivyo kubadili juu ya kujieleza maana siwezi kuweka ndani variable ya wale
mabano ambapo anasema kujieleza.
Na kisha kama kwamba kutofautiana -
tuseme ni kuitwa x, na ni tu integer -
Siwezi kisha enumerate katika slide yangu hapa kitu kama hiki.
Kama x ni kutofautiana yangu, na mimi wanataka kufanya kitu kama x
sawa na 1, siwezi kufanya hivyo.
>> Kama mimi badala yake wanataka kufanya kitu ikiwa ni x 2, siwezi kufanya hivyo.
Mwingine, kama nataka kufanya kitu kingine kabisa, naweza kuwa na kesi default katika
kesi ambayo mimi jambo hili mengine.
Hivyo kwa mantiki hiyo, ni sawa na kama x sawa sawa na 1, mwingine kama mwingine,
lakini mimi kutaja hii sasa kwa sababu tu tutaweza kuona tena.
Lakini kwa sasa, tu kujua kwamba ipo.
>> Wote haki.
Hivyo hawa michache ya mwisho ni kidogo zaidi tata katika mtazamo wa kwanza, lakini hawana
kitu haki moja kwa moja.
kwa kitanzi katika C ni chunk ya kificho kwamba tu hana kitu tena na
tena na tena.
Na tu annoying kitu juu yake ni kwamba ni kwamba ni kidogo cryptic
kueleza mwenyewe katika hii mzunguko muundo, lakini dunia ya sanifu
njia zifuatazo.
>> Wakati matumizi kwa kitanzi, nimepata jozi ya mabano tena.
Na taarifa semicolons mbili huko.
Wale semicolons mbili tofauti tatu mbalimbali ndani ya maneno
mabano.
Moja ni initializations kinachojulikana.
Moja ni hali ya kinachojulikana.
Na moja ni updates kinachojulikana.
>> Inaonekana katika abstract, hii ni kabisa yasiyo dhahiri, hivyo hebu angalia
katika mfano halisi.
Katika Scratch tulikuwa na kuzuia kurudia.
Na kuzuia hii alisema kurudia mara 10, kusema "Hello, ulimwengu." Hebu kudai kwa
sasa, na tutaweza kurudi na hii, na hii, pia, kupata zaidi ya ukoo kwa
wewe kabla ya muda mrefu, C sawa kanuni inaweza kuwa alisema kuwa hii -
kwa kauli na nafasi, jozi ya mabano, taarifa semicolons katika
huko, ambayo tofauti tofauti tatu mambo, initialization,
hali, na update.
>> Na kuchukua nadhani nini kwanza ni kufanya.
Int i = 0.
Katika suala layman mbaya, ni nini kwamba kufanya kwa ajili yetu, pengine?
Hivyo yeah.
Ni kutangaza variable kuitwa i, na ni kutoa ni nini thamani?
0.
Hivyo ni kujenga variable kuitwa i, hifadhi 0 thamani ndani yake.
Hiyo ni initialization kinachojulikana.
>> Haki zote, sasa mimi alidai mbele ya kwamba jambo katikati, i
<10, ni sharti.
Hivyo kile ni kufanya?
Naam, kile kitanzi kwa gani wakati mpango na kwa kitanzi ni kukimbia, ni
kila wakati anaendesha kwa njia ya kompyuta hii kitanzi, juu hadi chini, juu ya
chini, kama nyie alifanya wakati kuhesabu wenyewe na kukaa chini,
tena na tena na tena, kompyuta ni kwenda
kuangalia kwamba hali hiyo.
Na kama i ni chini ya 10, hivyo itabidi kufanya hivyo tena.
Kama i ni chini ya 10, hivyo itabidi kufanya hivyo tena.
Kama i ni chini ya kumi, hivyo itabidi kufanya hivyo tena.
Ili kwamba inaonekana zinaonyesha kwamba hopefully i ni kubadilisha.
Vinginevyo, tunatarajia kuwa kitanzi usio.
Na kwa kweli, i ni kubadilisha, kwa sababu Jambo la mwisho baada ya semicolon kuna
ni syntax kiasi fulani fumbo ya i + +.
Lakini wale ambao tumefanya hii kabla, kwamba tu ina maana
kabisa tu nini?
>> WANAFUNZI: [INTERPOSING SAUTI].
>> DAVID Malan: Kuongeza 1 kwa i.
Increment i.
Hivyo tuliona puzzle Scratch kipande kwa ajili ya kwamba, kwa kweli.
Hakuwa na kuangalia kama i + +, lakini kwamba tu njia, rahisi kabisa, increment
thamani i na 1 kila wakati kufanya hili.
Hivyo literally, unaanza initializing i kwa 0.
Wewe kisha kuangalia hali yako.
Ni 0 chini ya 10?
Ndiyo.
Sisi kwenda njia ya kitanzi.
>> Kilichofuata kudai ya kompyuta kwenda kufanya ni itakavyo
na increment i.
Hivyo i sasa ni 1.
Ni hundi ya hali hiyo.
Ni 1 chini ya 10?
Bila shaka.
Hivyo haina tena.
Basi ni nyongeza i + + kwa 2.
Ni 2 chini ya 10?
Ndiyo.
Na tena na tena na tena.
Na hatimaye, kwa sababu ya plus-plussing, sisi kupata i sawa na 10.
Ni 10 chini ya 10?
Naam, ni wazi si.
Na kwamba ni hatua ambayo kwa kitanzi tu ataacha.
Na kama una zaidi ya kanuni juu ya screen chini chini, kompyuta
mapato ya kuendesha kwamba kanuni badala yake.
>> Hivyo tena, hata ingawa hii ni ya kwenda kuangalia na kuhisi ajabu kidogo katika
kwanza, hakika kwa wale ambao hawajawahi iliyowekwa kabla,
literally inapunguza conceptually kwa nini vinginevyo sana
moja kwa moja puzzle kipande katika Scratch.
>> Haki zote, mimi aliahidi kwamba kuna d kuwa wengine milinganisho katika Scratch.
Kuna moja hii pia.
Na tuliona wakati huu kwa ufupi mwisho.
Lakini kumbuka milele kuzuia katika Scratch?
Ni tu haina kitu milele?
Mimi alidai kwamba unaweza kutekeleza hii kwa njia hii.
Na unaweza kweli kutekeleza hili katika kundi la njia tofauti.
>> Lakini ni kitanzi wakati tu tofauti njia katika C ya kuonyesha mwenyewe.
Mwisho wa siku, huwezi kufanya kitu chochote na kitanzi wakati kwamba wewe
hawawezi na kwa kitanzi.
Hivyo ni mwisho wa siku functionally sawa.
Lakini utapata kueleza mwenyewe tofauti kidogo katika
njia zifuatazo.
>> Na kitanzi wakati, ni nini katika mabano kuwa ni checked tena na
tena na tena.
Na haraka kama kujieleza kwamba ni ya uongo, kisha ataacha kitanzi utekelezaji,
na kompyuta kuendelea na kukimbia chochote nyingine kanuni wewe
kuwa katika faili yako.
>> Lakini nini kuvutia hapa ni kwamba mimi halisi typed kweli.
Na kweli ni aina ya thamani Boolean, thamani ya kweli au uongo.
Hivyo inaweza kweli milele kuwa uongo kama nimekuwa halisi
ngumu-coded kwenye mpango wangu?
Hivyo hakuna.
Ni ajabu kidogo kwamba mimi hii.
Lakini ni kweli ni kweli.
Hakuna plus-plussing.
Hakuna matumizi ya vigezo katika hapa.
Hivyo kwa sababu mimi ngumu-coded wakati kweli, hii kitanzi ni daima kwenda kutathmini
tena na tena na tena.
>> Hivyo mara ngapi ni ulimwengu hujambo kwenda magazeti juu ya screen?
Milele.
idadi ya usio wa nyakati mpaka betri akifa au baadhi ya nje nyingine
tukio kinachotokea.
Hivyo hii ni pengine si mpango bora kuandika, kwa sababu kama mtumiaji
kamwe hawezi kuacha mpango wako, ni pengine si nini lengo.
>> Lakini wakati mwingine, mipango ya lazima kuwa kitanzi usio.
Kwa mfano, kama kompyuta yako ina saa ya juu yake, ni hakika itakuwa
nzuri kama saa yako haina kuweka uppdatering yenyewe milele, angalau mara moja
pili au mara moja au dakika kitu kama hicho.
Hivyo hata usio mizunguko kufanya kuwa na nafasi zao.
>> Wote haki.
Mwisho, hii moja.
Na hii ni moja ya tofauti kidogo functionally, na tutaweza kurudi
pengine hii katika pset 1.
Lakini kuna aina nyingine ya kitanzi kuitwa kufanya wakati kitanzi.
Na tofauti tu hapa kati ya kufanya wakati kitanzi na, kusema, kitanzi wakati,
ni kwamba hali ni checked si kabla ya kutekeleza kanuni, lakini baada ya
nitafanya kanuni.
Hivyo saa ya juu kwa wakati kitanzi, ambapo kufanya wakati
hundi hiyo kwa chini.
>> Na hii ina maana ya kwamba kitanzi wakati itakuwa kawaida nitafanya zaidi ya mara
au wachache kuliko nyakati kitanzi wakati?
Zaidi uwezekano wa nyakati, kwa sababu kufanya kitanzi wakati ni wazi akisema kufanya hivyo,
tu baada ya uhakika ambayo wewe kuangalia ikiwa ndani ya hali ya
mabano ni kweli.
>> Hivyo tutaweza kuona hili tena pengine katika pset 1.
Kama wewe milele unataka kufanya kitu katika angalau mara moja na kisha labda baadhi ya zaidi
mara, hii ni nzuri kujenga kutumia.
Lakini kitanzi wakati, kwa kulinganisha, mapenzi kuangalia hali yake ya kwanza.
Na kwamba ni kwa ajili ya mizunguko katika C, je, wakati, wakati, na kwa ajili ya matanzi.
Na tena, ramani pretty nicely nyuma kwa Scratch, isipokuwa moja hii haina
kabisa na Analog huo katika Scratch.
>> Naam, vipi kuhusu, sasa, vigezo?
Hivyo hii ni jinsi mimi alitangaza kutofautiana syntactically siku nyingine.
Mimi nilikuwa na int, ambayo mimi alidai ni integer.
Mimi basi alikuwa variable kuitwa counter, na kisha semicolon.
Hivyo ni nini hii mstari wa kanuni kufanya?
Hii ni, kabisa tu, kutangaza kutofautiana -
yaani, kuomba kompyuta, nipe kumbukumbu ya baadhi, nipe bits baadhi - katika
ambayo naweza kuhifadhi nini?
int.
Na semicolon tu ina maana mwisho wa mstari wa kanuni.
>> Sasa, mstari wa pili pengine ni pretty guessable.
Je, ni kukabiliana = 0; kufanya?
Ni kumshirikisha 0 kukabiliana.
Na hivyo hili ni jambo nyingine kwamba ni kidogo annoying
dhidi ya, kusema, algebra.
Ambapo katika algebra, ishara sawa maana sawa, hapa katika C, sawa
ishara ina maana zoezi.
Hivyo ina maana kuweka nini juu ya haki ya katika nini juu ya kushoto.
Na tutaweza kuona mwingine alama, sawa na sawa, wakati tunataka kweli mtihani
kwa ubora, kwa kiasi fulani annoyingly.
>> Lakini hii ni kidogo ufanisi.
Ni aina ya annoying kwamba nina kutangaza kutofautiana na
kisha kuwapa thamani.
Hivyo C kweli unatuwezesha kurahisisha hii na tu kufanya hivyo wote mara moja.
Unaweza kutangaza kutofautiana upande wa kushoto.
Bado unaweza kufanya kazi kwenye haki kwa kuweka kwamba ishara sawa katika
katikati.
Hivyo mwisho wa siku, hizi mbili ni sawa, lakini mtu huyu, kusema ukweli,
pengine ni tabia bora ya kupata katika tu kwa sababu ni kidogo kidogo
kanuni, ni rahisi kidogo kusoma, na ni haki tightens hadi
kanuni yako, hivyo kusema.
>> Maswali yoyote hivi sasa juu ya tanzi, juu ya vigezo, juu ya hali, juu ya
Booleans, aidha kitaalam au conceptually?
Wote haki.
Hivyo sasa hii moja ijayo anapata kidogo zaidi ya kuvutia.
Na huu ni mfano mimi kuweka mwisho wakati huo tu ramani mfano Scratch
juu ya C.
>> Hivyo kazi.
Katika suala layman, nini kazi?
Got kuwa bolder na jibu lako.
Nini kazi?
>> MWANAFUNZI: Je kitu.
>> DAVID Malan: Ni nini hiyo?
>> MWANAFUNZI: Je kitu.
>> DAVID Malan: Je kitu.
OK.
Tutaweza kuanza huko.
Hivyo kazi hana kitu.
Hivyo ni kipande cha kificho kwamba ni kimsingi kutekelezwa mahali popote kwamba
kweli haina kitu.
Sasa, nini kuvutia kuhusu kazi ni kwamba inaweza kuchukua pembejeo,
na inaweza kuzalisha pato.
Na hebu ni kweli kuchukua kuangalia hii.
>> Hivyo mtu nyuma ya pazia ilikuwa makusudi wakati iliyopita.
Hapa tuna meza.
Lakini tuseme kwamba hii kweli inawakilisha sanduku kubwa.
Hivyo hii ni kinachojulikana nyeusi sanduku.
Na kwa ujumla, katika kubuni, katika kompyuta sayansi, nyeusi masanduku tu rejea
vipande vya utendaji kwamba mtu imetekeleza, na huna
lazima kujua au huduma jinsi ni kutekelezwa chini ya Hood.
Wewe tu huduma ya kwamba hii sanduku nyeusi, ambayo tutaweza sasa kuanza wito
kazi, hana kitu.
>> Hivyo, kwa mfano, kama hii sanduku nyeusi kwenye hatua hapa inawakilisha printf,
kazi, najua kutoka mifano uliopita kwamba printf inachukua moja au zaidi
hoja, na ya kwanza ya wale hoja lazima kamba, kama
"Hello, ulimwengu." Naam, kama mimi ni mtu kuandika mpango, na mimi nataka
kutumia printf, mimi, kwa mfano, ili kuchukua kipande cha karatasi tupu hapa na
nyeusi marker na kuandika juu yake -
Mimi misspelled "dunia" -
H-E-L-L-O.
>> Hivyo mimi itabidi kuchukua marker yangu nyeusi na mimi itabidi kuandika, kama kubwa na legibly kama naweza juu ya
hii kipande cha karatasi, "hello, dunia," Na sasa mimi kudai hii ni hoja yangu.
Hii ni kamba kuwakilishwa na kipande cha karatasi nyeupe.
Na pembejeo yangu sasa kwa kazi printf ni kwenda kuwa hii.
Hivyo mimi wito printf, kupita kwamba hoja kama pembejeo kwa hilo.
>> Na sasa, sijui jinsi ya mtu ambaye aliandika printf alifanya hivyo miaka iliyopita, lakini
Najua kutoka nyaraka wake kwamba madhumuni yake katika maisha ni kuchapa
kutoa ni kama pembejeo.
Na hivyo, hata kama hii utekelezaji ni unbeknownst kwangu
chini ya Hood, sasa Mimi naona, oh, ni kufanyika.
Ni kitu kuchapishwa kwenye screen.
Na sasa kudhibiti wa mpango, kama kuna walikuwa zaidi ya mstari wa kanuni, bila
sasa kurudi kwangu.
Na hivyo ukweli kwamba Colton -
kubariki moyo wake, ni mafichoni hapa chini meza mbele yenu wote -
ni makusudi kwa kuwa mimi sijui na mimi hawajali jinsi printf ni
kutekelezwa.
Mimi tu kujua, tena, kutoka yake nyaraka, kile yake na jinsi mimi
am wanatakiwa kuitumia.
>> Sasa, kukumbuka kwamba printf inaweza kupata kidogo kisasa zaidi.
Tena, sisi ni kuzungumza tu kuhusu sawa ya Sema kuzuia Scratch ya.
Lakini mimi pia alifanya hivyo wakati wa mwisho.
Nilitaka kufanya mpango wangu hujambo kidogo nguvu zaidi na si tu kwa bidii
kanuni ya kitu kama "dunia", na dhahiri si ngumu kanuni kitu
holela kama D-A-V-I-D katika mpango.
Nilitaka kuuliza mtumiaji kwa ajili yake jina, na kisha kufanya kitu na
kwamba kamba kwamba wao kutoa.
>> Hivyo kuna kitu kidogo tofauti hapa. printf, wakati iliyopita,
gani, kwa kweli, kufanya kitu, lakini hakurudi kitu kwangu.
Haki?
Colton hakuwa mkono mimi kitu nyuma, hakuna kipande cha karatasi.
Kulikuwa tu athari upande.
Yangu kutoa "hello, ulimwengu" kama hoja ya Colton ilisababisha
upande athari ya neno, baadhi ya maneno, kuonekana kwenye screen.
>> GetString, ingawa, ni kidogo tofauti. GetString pia ni
kazi, lakini anarudi baadhi ya thamani.
Haina tu na aesthetic upande athari.
Ni kweli anatoa mimi, mtu wito au kutumia kazi,
kitu nyuma.
Hivyo katika kesi hii, ni GetString kuitwa na GetString wazi
paren, karibu paren.
Haina GetString, kwa hiyo, kuchukua hoja yoyote au pembejeo?
Hakuna, inaonekana si.
Madhumuni yake katika maisha ni tu kupata kamba.
Inahitaji hakuna undani zaidi kuliko hiyo.
Hivyo basi mimi kwenda mbele na kujifanya kuwa, tena, hii sanduku nyeusi si printf,
lakini GetString, na basi mimi, mtu kuandika mpango huu, simu au kutumia
GetString na kuandika tu G-E-T-S-T-R-I-N-G, wazi paren, karibu
paren, GetString.
>> Sasa, mimi hawana wazo jinsi ya wafanyakazi CS50 kutekelezwa GetString, lakini Mimi najua kuwa
kama mimi kusubiri muda wa kutosha, itakuwa kufanya yake ya Jambo chini ya Hood, labda kwa kutumia
baadhi ya vigezo, labda kwa kutumia baadhi ya hali, labda kwa kutumia baadhi ya mizunguko,
labda kwa kutumia baadhi ya majukumu, labda kwa kutumia -
tu kujaribu duka - labda kwa kutumia baadhi nyingine ya programu makala.
Lakini kama mimi kusubiri muda wa kutosha - katika hali halisi, katika kompyuta, hii hutokea
super haraka -
kama mimi kusubiri muda wa kutosha, hii kazi GetString ni kwenda kupata kamba
kutoka kwa mtumiaji, ambaye ni labda kuandika nje kwenye keyboard zao, na
basi, wakati wewe GetString ni kufanyika kupata wale wahusika kutoka kwa mtumiaji
na kuzihifadhi katika kamba, kwamba kazi, GetString, ni kwenda na
tayari kwa ajili yangu baadhi ya pato ambayo mimi ni kwenda kutafuta kwa njia ya
zoezi operator.
>> Na kama mimi kwenda, kwa hakika, katika pato hapa, Obosi ina ukarimu
walishiriki, bila kujua hili katika mapema, kwa kuandika jina lake kwenye hii
kutofautiana, ambayo ni anayewakilisha kamba.
Sasa, operator zoezi ina maana, hata ingawa hii wanaweza kujisikia kidogo
kutokuwa na maana, mimi kwa kweli kufanya haja kufanya nakala yangu mwenyewe ya hii.
Kwa sababu kwa upande wa kushoto upande - whoops! -
taarifa kwamba mimi kimsingi kuwa na kamba jina upande wa kushoto.
Hivyo mimi nina pia kwenda kufanya nakala yangu mwenyewe ya hii.
Na hii ni kidogo ya uongo nyeupe, kwa sababu tutaweza kuona katika wiki moja au mbili ya
wakati huo masharti ni kweli si nini wao kuonekana kuwa.
>> Lakini kwa sasa, hapa ni thamani ya kurudi.
Hapa ni nakala yangu mwenyewe ya baada ya kutumia operator zoezi.
Na sasa, je, nataka kufanya ijayo?
Sasa tuna pili ya mistari miwili ya kificho.
Hivyo mimi sasa nataka kuita printf.
Hebu kujifanya kuwa sasa nyeusi sanduku ni nyuma tena kwa kuwa
printf na si GetString.
>> Printf wakati huu ni kwenda kuchukua hoja ngapi?
Ili kuangalia, ni kama mbili.
Kuna mbili koma huko, lakini moja ya koma wale, ni
ndani ya quotes.
Hivyo hoja ya kwanza ni halisi kwenda kuwa hii.
H-E-L-L-O, comma, asilimia s, backslash-n.
Na sasa mimi nina kutoa si mmoja hoja, lakini hoja mbili kwa printf.
>> Na nini printf wanatakiwa kufanya na hizi pembejeo mbili baada ya mimi kupita yao katika
kama hoja?
Ni walidhani kuchukua ya pili ya yao, ambayo mimi kuitwa jina, hivyo
pili kipande cha karatasi niliandika nje wakati iliyopita inaitwa jina.
Ni kwenda kuziba ya thamani ndani ya ya kwamba kutofautiana katika placeholder,
% S, ili, tena, katika muda tu ya muda, tutaona athari upande wa
aliwaita printf, ambapo sasa sisi kuona si "hello, dunia," lakini "hello,
Obosi ".
>> Hivyo duru kubwa ya makofi kwa wote kujitolea wetu, tu mmoja ambaye alijua
hii itakuwa kinachotokea.
Wote haki.
Hivyo, pengine, rahisi kama hayo ilikuwa, hakika, kama wewe ni tayari ukoo
na vile, hopefully kamwe kusahau kwamba Visual fulani wa jinsi
utendaji kazi.
>> Hivyo kuna zaidi kuliko tu GetString.
Ndani ya maktaba CS50, kuna nzima rundo la kazi, ambayo yote
ni mtaji tu kufanya wazi kwamba sisi aliandika kazi hizi.
Kwa kawaida, katika C, karibu kila mengine kazi utasikia kutumia ni Herufi za chini.
Lakini sisi makusudi kutumia herufi kubwa tu kufanya wazi kwamba hawa
ni magurudumu mafunzo ya aina yake kuwa tutaweza kutumia kwa ajili ya wiki chache tu kwamba
kurahisisha mchakato wa kupata pembejeo kutoka kwa mtumiaji.
>> Maktaba CS50 haina kufanya kitu chochote kwamba ninyi hakuweza kufanya na
tu kwa kutumia kanuni kutoka C oldschool vitabu vya kiada.
Lakini tena, sisi matumizi yao kama mafunzo magurudumu ya aina kwa michache tu ya
wiki ili tuweze kujikwamua utata kwamba utasikia hivi karibuni kuelewa
mwenyewe ya kufanya kitu kama kiasi moja kwa moja kama kupata
pembejeo kutoka kwa mtumiaji.
>> Basi jua ya kwamba itabidi kupata kwa GetChar, GetDouble -
mara mbili.
Dude - na kisha GetFloat.
Nini kuelea?
Hebu kuanza huko.
>> MWANAFUNZI: [inaudible].
>> DAVID Malan: Yeah.
Ni idadi na uhakika decimal.
Hivyo ambapo int ni integer, ambayo ni idadi tu na 0 kupitia 9,
baadhi ya idadi ya marudio yake, kuelea ni kitu
na uhakika decimal.
Na mbili, wakati huo huo, pia ni simu na uhakika decimal, lakini zaidi
idadi baada ya decimal uhakika, uwezekano.
>> Hivyo tutaweza kupata nyuma hii kabla ya muda mrefu.
Lakini kwa kawaida, kila aina hii ya data, kila aina hii ya vigezo
kwamba maktaba kama yetu wanaweza kurudi yenu, kutumia idadi mbalimbali ya bits kwa
kuhifadhi habari.
Kwa kawaida, Char, ambayo ina maana ya tabia moja, anatumia bits 8.
Na kwamba ni kweli sambamba na wetu Byte ya kujitolea wiki iliyopita ambao
alikuja na kuwakilishwa moja Ascii tabia kwa wakati.
Hivyo Char ni 8 bits.
>> kuelea hutokea kwa kuwa 32 bits, kawaida.
Na mbili, kama unaweza nadhani, ni kweli 64 bits, ambayo ni ya haki zaidi,
ambayo ina maana unaweza kuwa kubwa idadi au usahihi zaidi.
Lakini tena, zaidi juu ya kwamba wakati mwingine.
GetLongLong, wakati huo huo, ingawa stupidly jina lake, ni kweli tu
integer hiyo ni mara mbili kubwa, mara mbili kama muda mrefu, uwezekano, kama kawaida
integer, 64 bits badala ya 32.
Na GetString tumekuwa kutumia.
>> Lakini zinageuka, katika maktaba CS50, ambayo ni kutekelezwa, kama tutaweza kuona, katika
fomu ya files mbili, moja ambayo inaitwa cs50.h, ina mbili nyingine
data aina ndani yake.
Booleans hazipo katika C. Unaweza kuiga yao kwa kutumia tu sekunde 0 na 1s
katika programu yako.
Lakini sisi katika maktaba CS50 tumemuumba alama ya "kweli" na "uongo"
kuwakilisha 1 na 0 hivyo huna kuwa na kitu ngumu kanuni
halisi kama 1 na 0.
Lakini tutaweza kuona wale tena.
>> Kamba, pia, haipo.
Na kwamba sababu mimi zilizotajwa ni kidogo ya uongo nyeupe kwa sasa.
Lakini tutaweza peel nyuma kwamba safu kabla ya muda mrefu.
Lakini kwa sasa, kamba ni mlolongo wa wahusika.
>> Wakati huo huo, katika C, wewe kweli kuwa na data za aina mbalimbali.
Taarifa hizi ni lowercase.
Hivyo kazi wewe aliona wakati iliyopita ni kazi zilizoandikwa na CS50 kwamba
atarudi wewe thamani kwamba iko katika moja ya makundi haya.
>> kudanganya wanandoa shuka tu kupanda mbegu hapa. printf si tu
kuchukua s% kama placeholders.
Inachukua% d kwa integers decimal, au% i ingekuwa kazi vizuri.
F% ni yaliyo kumweka maadili. % C ni kwa Char, kama unataka tu kuziba moja
tabia katika kamba preformatted kama tumekuwa kufanya, unaweza kutumia% c.
>> Na kisha, kwa kiasi fulani annoyingly,% LLD ni kwa muda mrefu, kwa muda mrefu integer decimal,
ambayo ina maana kama unahitaji kweli kubwa ya simu na wewe ni kutumia kitu
kuitwa muda mrefu, ambayo tutaweza kuja nyuma katika pset, unaweza kutumia% LLD kwa
kuwaambia printf, kuziba katika kweli kubwa integer hapa kwa njia ya pili yake au
baadhi ya hoja nyingine.
>> Na Mwisho, mimi aliahidi kwamba kuna wachache kutoroka nyingine
Utaratibu kwamba printf mkono.
Tumeona backslash-n.
Backslash-r upate kuona.
Ni aina ya kitu zamani shule.
Kama umewahi kutumika miaka typewriter halisi iliyopita na wewe vunjwa juu dance
ambayo si tu kuzungushwa gurudumu hoja ya lineup, pia wakiongozwa
jambo zima njia yote ya nyuma juu ya kushoto, vizuri, backslash-r tu
kimsingi hatua mshale nyuma kwa mwanzo wa mstari
bila ya kusonga ni chini.
Lakini tena, zaidi juu ya kwamba, pengine, katika siku zijazo.
>> Backslash-quote, backslash-mbili quote, backslash-backslash ni
ufumbuzi wa kitendawili kidogo kidogo Mimi alluded mapema.
Na backslash-0 ni kweli kuvutia kabisa.
Lakini tutaweza kurudi kwamba kabla ya muda mrefu.
>> Hivyo basi mimi kwenda katika, sasa, CS50 appliance, na hebu kweli kufanya
haraka joto juu na moja ya mifano hatukuwa tayari na kisha kuondoka na
kitu kidogo ngumu zaidi.
Hivyo kama mimi kufungua mpango wangu kuitwa gedit -
hii ni mhariri wangu graphical.
Na siwezi kufanya hivyo -
basi mimi karibu kwamba dirisha pale -
kwa njia ya ikoni hii hapa chini, gedit, katika sehemu ya chini-kushoto
kona karibu na orodha.
>> Mimi nina kwenda mbele na mapema, na ila huu mfano katika, kusema, Yohana
Harvard wa folder.
Folder John Harvard ni tu nyumbani kwake directory ambapo wote wa files yake wanaishi
na default.
Na mimi nina kwenda kuokoa hii kama faili inayoitwa hujambo-0.c.
Na nimekuwa waliochaguliwa hii jina tu hivyo yanaendana na kanuni ya sampuli ya
tovuti ya shaka na katika YouTube videos online.
>> Hivyo sasa mimi naenda kuanza kuandika mpango wangu wa kwanza.
Hebu kuvuta kwa legibility.
Na mimi nina kwenda mbele na kusema int kuu utupu, ambayo ni tu kama kwamba
njano puzzle kipande kwamba kuanza mpango.
Mimi nimepokea katika tabia juu ya miaka ya ufunguzi brace yangu curly, basi
pia kufunga yake na kisha kurejea ambapo nataka kuweka kanuni wangu, kama
kwa sababu mimi husaidia kuweka kila kitu uwiano, hasa kama yangu
mpango anapata muda mrefu.
>> Na sasa, katika hapa, mimi nina kwenda mbele na kusema, printf, kunukuu unquote,
hujambo dunia, backslash-n, karibu quote, karibu mabano, semicolon.
Hivyo mimi nina kurudia tu kila kitu tumekuwa imekuwa kuchukua kwa nafasi hivi sasa.
Sasa mimi nina kwenda kuvuta nje.
>> Na hii dirisha terminal chini hapa, nini Mimi ni kuruhusiwa kufanya katika hii nyeusi
na nyeupe dirisha?
Naweza kutumia kwa?
Hivyo hii ni pale ambapo mimi kukimbia amri na ambapo naweza kukusanya mambo.
Na mimi nina kwenda kushika ni rahisi.
Mimi naenda kutumia mpango inayoitwa Tengeneza, ambayo si ya
kitaalam mkusanyaji.
mkusanyaji ya kuitwa Clang, lakini tutaweza kuja nyuma na kwamba katika
wiki moja au mbili wakati wa.
>> Kwa sasa, mimi tu kwenda aina kufanya hujambo-0, Lakini wale ambao walikuwa
kulinganisha katika akili yako nini mimi tu typed kwa kile lazima kuwa typed anaweza
kujua kwamba mimi tayari kitu kibaya hapa.
Sasa, kuna wazi baadhi ya makosa.
Kabla ya hata kuangalia nini hao, yoyote mawazo kama yale sikuwa sahihi?
>> WANAFUNZI: [INTERPOSING SAUTI].
>> DAVID Malan: Yeah.
Mimi kukosa header maktaba faili.
Yoyote ya hizi files. H walioitwa header files, na wao pamoja
ni mali ya mambo kuitwa maktaba.
Maktaba ni tu chunks ya maadili ya kwamba watu wengine aliandika.
Hivyo [standard? i]? maktaba ni ukusanyaji wa files zenye kanuni
kwamba watu wengine aliandika.
>> Hivyo mimi kukosa kwamba.
Hivyo kwa nini mimi kupata kosa?
Vizuri, basi mimi kitabu nyuma hadi katika terminal dirisha langu hapa.
Na kwa bahati mbaya, katika C, kama katika mengi ya programu lugha, hasa
kama ni ya kila mwezi na wewe, kosa ujumbe ni sahihi, lakini wao ni pia
kabisa fumbo.
Na makosa hapa, katika nyekundu, ni "Inamuunga kutangaza maktaba kazi
printf na aina, "na kisha vitabu mstari wa pili, "int const Char *,
... "Ni tu anapata kweli balaa haraka.
>> Lakini nini unapaswa kuanza kufanya, kama, tena, mpya ya haya yote, ni tu
kuanza kuangalia kwa maneno.
Wazi, mimi wanaweza kuelewa nusu ya maneno Mimi nina kuona bado tu.
Wewe, ingawa, katika muda wa wiki.
Lakini naona printf.
Na kwamba lazima kuanza, kabla ya muda mrefu, kwa jog kumbukumbu yako, haki ya wote, printf.
Kitu mbaya na printf.
Je, mimi Spell ni makosa?
Hapana, haina kuangalia kama - oh.
Siwezi kutumia isipokuwa mimi kufundisha mkusanyaji kwamba ipo.
Na hivyo, tena, kwenda na silika yako, hata kama wewe si kweli kuelewa
halisi kosa ujumbe.
>> Na hakika, suluhisho hapa ni tu pamoja na kuwa saa ya juu ya faili
kama kwamba, resaving faili yangu na Kudhibiti-S au menu Picha.
Na kama mimi sasa kwenda nyuma chini hapa, Mimi naenda wazi hii.
Kudhibiti-L ni njia tu nzuri kwa wazi screen.
Na basi mimi nina kwenda aina "kufanya hujambo 0 "Ingieni, na sasa mimi bado kuona
cryptic mlolongo wa ishara, lakini tutaweza kuja nyuma na kwamba.
Hiyo ni nini kufanya ni kufanya kwa ajili yenu.
Ni automatiki mchakato wa kuchukua amri haki annoying kuwashirikisha
Clang, mkusanyaji halisi.
Lakini ukweli kwamba mimi got makosa maana hakuna kwamba jambo hili wanapaswa kufanya kazi.
>> Hivyo mimi nina sasa kwenda kufanya - basi mimi kuvuta tena -
./hello-0 Kuingia, na kwa kweli, naona "Hello, ulimwengu." Basi hebu sasa kuimarisha
hii milele hivyo kidogo tu ya kuiga hatua sisi lengo.
Mimi nina kwenda rename hii na Ila Kama hello1.c.
Na sasa mimi nina kwenda kutangaza kutofautiana kuitwa jina, hivyo kamba jina,
na mimi naenda kuweka ndani yake thamani ya kunukuu unquote-
D-A-V-I-D karibu-quote semicolon.
Na sasa mimi nina kwenda kuchukua nafasi ya "dunia" na kile placeholder kwa kamba?
% S.
>> Na sasa, jinsi hoja nyingi lazima printf kuchukua muda huu?
Hivyo mbili.
Hivyo mimi kwenda nje ya quotes.
Ninapoandika "jina" baada ya comma.
Lakini mimi tumefanya kitu mwingine vibaya wakati huu.
Lakini hebu kudhani kwamba mimi si kutambua kwamba bado.
Hebu kwenda hapa.
>> Na taarifa, pia, nina kupata kidogo kuchoka ya kuandika "kufanya hujambo 0" kila
wakati, "kufanya" na yote hii.
Hivyo, ni zamu nje, katika Linus unaweza mara nyingi hit arrow Up juu yako
keyboard, na unaweza kweli kitabu njia zote za amri kwamba nimepata
kunyongwa uliopita tu sasa.
Hivyo kama mimi kufanya hivyo, Up, Up, kuna kufanya hujambo 0.
Sitaki kwamba.
Mimi nataka tu kwamba mabadiliko ya hujambo 1 wakati huu, kuingia.
Hatimaye, kwamba mapenzi kuokoa baadhi ya wakati.
>> Wote haki.
Kwa bahati mbaya, kuna ni makosa.
Hivyo basi mimi kitabu juu.
Hii inaonekana kama kweli mimi kutumbuliwa mpango huu.
I mean, mungu wangu, ni mistari miwili ya kificho, na yake ya 10 mistari ya makosa.
Lakini kuangalia moja ya juu kwanza.
Matumizi ya kamba Undeclared kitambulisho.
Je, mimi maana ya kiwango i n?
Hakuna sikuweza.
Mimi maana ya kamba.
>> Lakini pale ambapo ni kutofautiana kamba aina alitangaza, DD sisi kusema?
Hivyo ni katika CS50 maktaba.
Hivyo hana inatosha, katika hizi kwanza michache ya wiki, tu kutumia
nini C anatupa.
Mimi pia kwenda juu hapa, na mimi inaweza kuweka juu au chini, lakini mimi itabidi
kuweka tu herufi kuweka mambo utaratibu mzuri.
Mimi nina kwenda pamoja cs50.h, ambayo ni kabla ya imewekwa kwa
wewe juu ya appliance CS50.
Na ni wazi chanzo, hivyo hata watu juu ya internet unaweza kutumia kwenye zao
mwenyewe kompyuta.
Lakini inakuja na appliance CS50.
>> Hivyo sasa napenda kurudi nyuma na recompile hii na kufanya hodi 1.
Damn it.
Bado mwingine makosa.
Hebu kitabu juu ya kwanza, ingawa.
Moja hii ni tata kidogo.
Multi-tabia tabia ya mara kwa mara.
Hiyo si kusaidia yangu.
Lakini sikia, Clang ni angalau kidogo kidogo heshima, ambapo pamoja na kidogo
kijani kareti ishara, ni kusema hapa ni pale ambapo mimi Star up.
Kwa nini ni akizungumzia, na kwamba kidogo kijani mshale, kwa quote moja ijayo
kwa jina langu?
>> Hivyo hii ni moja ya mambo ya wewe tu kupata kutumika, hasa kama wewe tumekuwa
programu katika Python, au JavaScript, au lugha nyingine ambapo hii undani
haijalishi.
Katika C, haina jambo.
Kama wewe ni kutangaza kamba, ambayo ni mlolongo wa wahusika 0 au zaidi,
wewe kweli lazima kutumia quotes mbili.
Hivyo mimi kweli haja ya kubadili hii nyuma kufungua quote, karibu quote, na
maradufu quotes.
Enda quotes kufanya kuwa na nafasi zao, lakini tu wakati unatumia mtu binafsi
chars, lakini zaidi juu ya kwamba wakati mwingine.
Kwa sasa, quotes mara mbili ni muhimu.
>> Hivyo sasa, basi mimi kwenda nyuma terminal yangu dirisha, kufanya hodi 1.
Na ambaye ni ujasiri?
Ni mpango huu sasa kwenda kukusanya kwa usahihi?
OK.
Hivyo sisi watatu wanafikiri hii.
Wote haki.
Kuingia.
Na ni kweli alifanya.
Hivyo hakuna makosa wakati huu, hata ingawa mpango huu wamezipata kidogo
ngumu zaidi.
Kama mimi sasa kufanya dot kufyeka hujambo 1, Ingieni, ni kwenda kusema "hello, Daudi."
>> Lakini hebu kufanya iteration tatu ya hii, ambapo
mpango ni kweli nguvu.
Hebu kwenda mbele na mabadiliko ya faili jina, tu kwa uthabiti na
files itabidi inapatikana na wewe baadaye online.
Kuingia.
Na sasa mimi nina kwenda katika na si kuhifadhi "Daudi" ngumu coded hapa.
Ningefanya nini kwa sana tu kuboresha mpango huu?
>> Mimi naweza kuita GetString.
Inaweza kuwa ni kidogo zisizo dhahiri nini kuhusu kutokea, hivyo mimi nina kwenda
kwa kweli kuongeza line nyingine, printf, na kusema jina, koloni, karibu quote, tu
kutoa mtumiaji wa haraka kwenye screen.
Na sasa mimi nina kwenda hapa, na mimi nina kwenda kutumia keyboard yangu njia ya mkato.
Mimi nina kwenda Up, Up, na mabadiliko ya hujambo hujambo 1 hadi 2, kuingia.
Na nashiriki, mimi nina kufanya maendeleo.
>> Na sasa mimi nina kwenda hadi dot kufyeka hujambo na
mabadiliko ya kwamba hadi 2, kuingia.
Na sasa mpango wangu -
Mimi itabidi kuvuta - ni kupata kidogo prettier.
Jina ni kwenda kuwa, hebu sema Rob wakati huu, Ingieni, hello, Rob.
Tunaweza kufanya hivyo tena.
Jina, Lauren, kuingia.
Jina, Yusufu, kuingia.
Jina, hebu jaribu kuwa vigumu, kuingia.
Eh.
Ni kweli mdudu.
Hivyo ni mbaya tu kidogo.
Hivyo labda tunaweza kutatua katika siku zijazo, si sasa.
>> Lakini jinsi gani wewe instinctively kwenda juu ya kushughulikia
kuwa changamoto hasa?
Ni tu inaonekana kijinga.
Jinsi gani unaweza kuepuka mambo kuangalia kijinga?
Hivyo tunaweza kufanya, OK, nikasikia wanandoa wa mambo, hali na kitanzi.
Tunaweza kutumia, moja, hali, kuangalia kile ni urefu wa kamba
mtumiaji alitupa?
Na kama ni 0, ni tu quote unquote, wao tu hit Enter, basi
labda mimi lazima yell saa yao na kuchochea tena.
Lakini jinsi gani kuwachochea tena?
Naam, mimi pia kusikia kitanzi, na mimi naweza kufanya hivyo tena na tena na tena
kusababisha mtumiaji kwa ajili ya kitu kimoja.
>> Naam, hebu kufanya moja nyingine mfano kutumia tofauti
kazi katika maktaba CS50.
Hebu karibu faili hii.
Hebu kujenga mwezi mmoja.
Na mimi itabidi kuiita adder.c, kwa sababu tu ni rahisi kufanya hesabu rahisi,
hata kama hii itakuwa kabisa aghali na nini unaweza kufanya
na yoyote ya kompyuta ya kisasa.
>> Lakini napenda kwenda mbele sasa na -
Mimi kujifunza somo yangu ya mwisho wakati - ni pamoja na cs50.h, ni pamoja na stdio.h, int
kuu batili, ambayo, kwa sasa, mimi itabidi tu kuchukua imani kipofu, lakini tutaweza kudhani
kwamba kuelewa nini kwamba maana yake kabla ya muda mrefu.
Na mimi nina kwenda kusema kitu kama "nipe int."
>> Na sasa, jinsi gani mimi kupata int?
Nataka hatimaye kutangaza kutofautiana kuitwa x ya int aina na
kuhifadhi katika ni integer kutoka kwa mtumiaji.
Ili kwamba ilikuwa funda.
Lakini kama mtu anataka kupendekeza, jinsi mimi kutangaza integer kuitwa x?
Int x.
>> Hivyo ni kweli ni rahisi.
Nipe int.
Kuiita x.
Sasa mimi kutumia operator zoezi.
Na jinsi gani mimi kuhifadhi kutoka kushoto thamani ya mtumiaji?
Sitaki kuwaita GetString, ni wazi, lakini badala ya GetInt.
Hoja yoyote?
No
Hivyo ni wazi paren, karibu paren mara moja, na kisha
semicolon mwisho line.
>> Sasa basi mimi kufanya hii tena.
Nipe mwingine int.
Wakati huu mimi itabidi kufanya int, hebu simu yake y, sawa GetInt.
Na sasa napenda kufanya kitu super-rahisi kama math baadhi.
Hivyo printf, Jumla ya% d ni placeholder kwa int.
Na% d, kipindi, backslash-n.
>> Wote haki.
Hivyo kwamba ni kweli si math.
Lakini kama mimi nataka kusema Jumla ya hii thamani pamoja na thamani hii ni sawa na hii
nyingine thamani, jinsi hoja nyingi katika taarifa lazima mimi kuwa kutoa printf,
hatimaye?
Hivyo nne, haki?
Hii kamba na kisha maadili ya tatu.
Hivyo x ni ya kwanza nataka kuwa plugged kwanza d%.
y ni kwenda kuwa ijayo.
>> Na sasa mimi aina ya nataka kusema z, lakini z haipo.
Lakini si kwamba mpango kubwa.
Sababu ungefanya nini kisilika, hasa kama alikuwa
graphing calculator, je, aina?
Vipi kuhusu x pamoja y?
Hivyo si kutofautiana halisi.
Ni tu jumla ya mbili nyingine vigezo.
Na kwamba ni kikamilifu halali.
C hakika anaelewa rahisi hesabu kama hii.
>> Semicolon, kuokoa.
Sasa basi mimi kwenda chini hapa na aina kufanya fira, kuingia.
Hakuna makosa, hivyo kwamba ni maendeleo pia.
Aina ya fira.
Na mwingine njia ya mkato keyboard, kama kuanza kupata kuchoka
na amri yote -
kama kuanza kuandika amri, kama dot kufyeka ad, na hiyo ambapo wako
boredom mateke katika, unaweza kawaida hit Tab kuwa na kompyuta kumaliza
kupumzika ya maneno kwa ajili ya wewe kama si nini utata waje baada ya tangazo.
>> Hivyo basi mimi kwenda mbele sasa na bonyeza Enter.
Nipe int, 1, 2, na nashiriki, ni 3.
Lakini kama siku zote, kupima mipango haipaswi kupunguza kwa
tu kujaribu mara moja.
Hebu jaribu kesi kona, kama hasi 1, nipe 1, na kwamba mmoja
hundi ya nje vilevile.
Na mimi pengine wanataka kufanya baadhi ya zaidi ukali kupima, lakini nina pretty
starehe na ambapo hiyo ni saa.
>> Naam, sasa hebu jaribu mpango mwingine kwamba wakati huu anatumia
kidogo ya syntax mengine.
Hebu kuunda faili mpya.
Mimi nitakuita hii conditions0.c kwa Mpya juu na baadhi online sampuli kificho.
Na napenda kwenda mbele na kufanya pamoja cs50.h, ni pamoja na
stdio.h, katika utupu kuu -
OK.
Kuna sisi kwenda.
Tuna boilerplate yetu ya kiwango.
>> Na mara hii mimi nina kwenda kusema printf, "Ningependa int, tafadhali," tu
kufanya haraka kidogo zaidi ya kirafiki.
Na sasa nataka kupata int kutoka kwa mtumiaji.
Mimi nina kwenda kwa simu yake n wakati huu, kama tu sababu n inaonekana kama idadi.
GetInt, na sasa, je, Nataka kufanya na hayo?
Naam, kama n ni - na mimi itabidi kuvuta -
ikiwa n ni mkubwa kuliko 0, nataka kufanya yafuatayo -
printf "Wewe ilichukua idadi chanya." Mwingine, mimi nina kwenda aina printf "Wewe
ilichukua hasi
simu ". Wote haki.
Hivyo mpango huu, hata kama mimi alifanya hivyo haraka, inaonekana haki syntactically.
Hebu jaribu hii.
Kufanya hali 0.
Inaonekana kukimbia.
Hali 0, kuingia.
Hebu kuwapa int ya 50.
Mimi ilichukua idadi chanya.
Hebu jaribu tena.
Hali 0.
Hasi 50.
Mimi ilichukua ya simu hasi.
>> Lakini sasa, napenda kuchukua nini tutaweza kuweka wito kesi kona, ambayo ni zaidi
kesi ya kuvutia ambayo unafikiri anaweza kukupa baadhi ya matatizo, 0.
Sasa, mimi nina uhakika pretty hii ni moja ya kesi kona hizo ambapo sifuri ni
wala chanya wala hasi, hivyo yangu mpango, ingawa katika syntactically
kusahihisha - inaandaa, ni anaendesha - sio mantiki sahihi.
Basi nini kurekebisha rahisi hapa kama nataka kuchunguza, kama nataka kushughulikia n
sawa na 0 tofauti?
>> Hivyo kama ni sawa n 0, basi nataka kusema kitu kama printf "Wewe ilichukua 0."
Hebu jaribu hii sasa.
Hebu nirejee nyuma hapa, wazi dirisha yangu, na recompile.
Hm.
Kosa moja kuzalisha.
Lakini mimi unataka kuangalia ikiwa n sawa na 0.
>> Hivyo tena, jambo lingine kijinga kupata kutumika, ni ishara sawa
operator zoezi.
Hivyo hii ni kweli ni kosa kwa kuwa, kitaalam, hata kama mkusanyaji
kulindwa mimi kutoka mwenyewe, tunatarajia kitaalam kuwa kuiga 0 ndani n, ambayo
ni nini nataka.
Nataka mtihani kwa usawa na ni sawa sawa.
Na hivyo kuwa sasa anaweza kuwa ufumbuzi yangu bora.
>> Hebu kweli resave hii kama, kusema, conditions1, kuwa mpya na kuboreshwa.
Hivyo sasa kama mimi recompile hii, ingekuwa kufanya hali -
whoops - kufanya conditions1 dot kufyeka conditions1, Ingieni, "Ningependa int,
tafadhali ". mimi nina kwenda mbele na aina 50.
Bado ni nzuri.
Hasi 50, bado ni nzuri.
0, na ni kweli, wanaona kwamba mimi ilichukua 0.
>> Basi nini zaidi naweza kufanya sasa na hili?
Naam, hakika tunaweza kufanya inazidi tata mambo.
Lakini nini Ningependa kupendekeza ni kwamba sisi kuishia kwenye kumbuka hii hapa.
Kama sisi vuta hadi hii, utaona, pengine, cartoon favorite wenu
hadi leo waweza kamwe wameelewa.
Na kwamba ni juu ya ubora wa kicheko unapaswa kupata kwa utani CS.
Hivyo kwamba ni kuhusu haki.
>> Lakini zaidi compellingly, mimi nilifikiri d kutupatia teaser kidogo kwa ajili ya Jumatatu.
Hivyo tumekuwa kuanza kutumia integers.
Tumekuwa inajulikana ikifungwa.
Tumekuwa hata inajulikana mara mbili, ambayo, tena, kukupa namba
baada ya pointi decimal.
>> Lakini zinageuka ikifungwa kwamba na mara mbili, na, kwa kweli, kompyuta,
Kimsingi, hawezi kueleza baadhi ya maadili ya usahihi.
Tunajua kutoka madarasa math kwamba unaweza kuwa na idadi yoyote ya idadi baada ya
decimal uhakika.
Na unaweza hata kuweka bar wima kusema haya kwenda juu milele.
>> Kwa bahati mbaya, unaweza si kweli kufanya hivyo katika kompyuta.
Na hivyo kona kesi kutokea.
Kwa mfano, tuseme wewe ni kufanya kitu kifedha.
Wewe ni kufanya hisabati na asilimia, na
na dola na senti.
Na wale senti hawana lazima line up.
Naam, zinageuka kuwa namba sehemu ya pennies unaweza kuanza na kuongeza hadi wakati
inatokana na mfumo wa kompyuta katika namna kwamba wajanja
binadamu wanaweza kuchukua faida.
>> Na wale ambao hawajaona, ningependa kama kukupa teaser 30-pili ya
filamu ya ajabu inajulikana kama nafasi Ofisi ya Rais, ambayo itakuwa rangi picha ya
tatizo tutakuwa kukabiliana jambo la kwanza siku ya Jumatatu.
Kama tunaweza kuongeza kiasi kidogo kidogo, nitakupa 30
Nafasi ya sekunde ya Ofisi.
>> [Video avspelning]
>> -I mean, wewe, na si kuonyesha juu na wewe kupata kushika kazi yako.
>> -Kweli, mimi nina kuwa kukuzwa.
>> -Mimi naweza mpango virusi d mpasuko kwamba mahali mbali muda kubwa.
>> -Naam, jinsi gani kazi?
>> -Kila wakati kuna shughuli za benki ambapo maslahi ni computed, na kuna
ni maelfu siku, kompyuta mwisho juu na namba sehemu hii ya asilimia.
>> -Lakini mimi si kwenda kufanya kitu chochote kinyume cha sheria.
>> -Haramu?
Samir, hii ya Kaskazini ni.
>> -Sisi kuapa kwa Mungu.
>> -Kama hakuna mtu anajua kuhusu hili lakini sisi, wote haki?
Wanafamilia, hakuna rafiki wa kike, hakuna.
>> -Bila shaka.
>> -Alikubali.
>> -Don 't wasiwasi, mtu.
Mimi si kumwambia mtu yeyote ama.
>> [MWISHO video avspelning]
>> DAVID Malan: Hivyo hii, basi, ni CS50, kwamba alikuwa Ofisi Space, na itakuwa kila
kufanya maana siku ya Jumatatu.
Tazama wewe hapo.
>> NARRATOR: CS50 ijayo, Rob anpassar kuwa mbali
Harvard chakula mpango.