[Powered by Google Translate] DAVID J. Malan: zote haki, hii ni CS50, na hii ni
kuanza ya wiki mbili.
Asante.
Hebu tuanze hapa kwa simu.
Mimi nina kuhusu piga 617-BUG-CS50.
CS50: Hii ni CS50.
Kwa Boy Shuttle, vyombo vya habari 1.
Kuanza juu, waandishi wa 9.
DAVID J. Malan: Hivyo alisema kwa Shuttle Boy, vyombo vya habari 1.
Hivyo sisi ni kwenda kwa vyombo vya habari 1.
CS50: Nini asili yako?
Kwa Quad, vyombo vya habari 1.
Mather, vyombo vya habari 2.
Boylston, vyombo vya habari 3.
Lamont, vyombo vya habari 4.
Wanachama Hall, vyombo vya habari 5.
Kuanza juu, waandishi wa 0.
DAVID J. Malan: Tutaweza waandishi 1 kwa quad.
CS50: shuttle Ifwatayo majani dakika hii, saa 1:10, na
kisha saa 1:20, 1:30, 1:40.
Hii ni CS50.
>> DAVID J. Malan: Hivyo hii ni sauti ya CS50.
Na ni mfano wa aina ya miradi ya mwisho, kwa
mfano, unaweza bite mbali kuelekea
mwisho wa muhula.
Kwa mfano, shuttleboy.cs50.net kwamba ipo -
kweli mradi kwamba mimi kwanza aliandika baada ya kuchukua CS51
nyuma nilipokuwa shahada ya kwanza.
Na msukumo hapa ilikuwa nyuma basi, wote walikuwa na alikuwa
kuchapishwa shuttle bus ratiba, na kulikuwa hakuna
dhana ya kuangalia mambo juu online.
Na hivyo mimi aina ya njiwa katika wiki moja, akamwaga kupitia
kuchapishwa ratiba, na ported kwa programu ya kompyuta.
Wakati huo, programu ya kompyuta kilichotokea kwa kuandikwa
katika C. Na kweli mbio hivyo kwa kuandika Boy Shuttle katika
blinking kuchochea kama tumekuwa kufanya hivyo sasa.
Lakini zaidi ya miaka, ni tolewa katika papo
ujumbe BoT.
Ni tolewa hivi karibuni zaidi katika tovuti hii, katika
SMS-msingi chombo, kama vile katika chombo hiki sauti-msingi.
Na hii ni ya ladha katika aina ya mambo ambayo unaweza
kufanya wewe mwenyewe na mwisho wa muhula.
>> Kwa mfano, kuna, toleo SMS ya Boy Shuttle hutokea
kufanya kazi kama ifuatavyo.
Kama, juu ya kiini simu yako, kutuma ujumbe wa maandishi kwa 41,411 na
kisha kutuma maalum ishara sboy, kwa Boy Shuttle,
ikifuatiwa na B na, ambapo ni asili na B ni
marudio -
kwa mfano, Boylston Space Quad -
nini unapaswa kupata nyuma ndani ya sekunde chache ni Nakala
ujumbe kutoka Boy Shuttle ninakuambia kwa uhakika wakati
ijayo shuttles chache ni, kutoka uhakika kwamba anaenda kwamba
uhakika B.
Na huu ni mfano zaidi ya jumla ya nini inayojulikana kama
kutumia API.
>> Hivyo kwa mfano, hii hapa ni tu shuttleboy.cs50.net,
halisi ya mtandao msingi mwili wa hii.
Lakini data kwamba inasisitiza programu hii na nyingine kwamba CS50
maendeleo ina wote ni wazi kwa kila mtu hapa katika fomu
wa APIs, maombi ya programu interfaces.
Na kwamba ni njia tu ya dhana ya kusema kwamba watu kama sisi juu ya
Internet na wengine alitumia muda kujenga
programu kwamba unaweza kutumia ili kunyakua data kutoka kwetu na
kisha kujenga maombi yako mwenyewe juu
ya kwamba kuweka data.
Hivyo kwa mfano, hii Boy Shuttle API ukurasa hapa, ambayo
hutokea kwa kuwa katika mwongozo CS50, kimsingi nyaraka
jinsi gani unaweza kwenda juu ya kuomba servrar CS50 kwa data.
Kwa mfano, kama wewe ni ukoo na CSV files, comma
kutengwa maadili, hizi ni tu aina ya haraka na chafu
Excel-kama files.
Hivyo unaweza kuuliza Shuttle Boy kwa wote wa data juu ya yote ya
nyumba zao na kuratibu GPS, na utapata
nyuma, kimsingi, spreadsheet kama kwamba
basi unaweza kusoma katika mpango wa yako mwenyewe na kisha
kutoa matokeo, kama Shuttle Boy yenyewe
kinachotokea kwa kuwa kufanya.
Kwa wale zaidi ya ukoo, wa kisasa zaidi data uwakilishi
pamoja JSON, JavaScript Object nukuu.
Kitu atakuja nyuma yenu kuelekea
mwisho wa muhula.
>> Lakini tena, hii ni moja tu ya kadhaa ya APIs CS50 ya mwenyewe.
Na jambo la kusisimua ni sasa, siku hizi, Facebook na
Twitter na Google na pretty much kila tovuti maarufu nje
kuna ina aina fulani ya API, ambayo ina maana kama wewe kusoma
nyaraka kwenye tovuti yao, ishara kwa ajili ya
akaunti, basi unaweza kuanza kuandika programu juu ya
chochote zana au data kwamba kampuni huko hutoa.
Na hivyo mmoja wa wenzake yetu wenyewe mafundisho miaka michache nyuma
aliandika toleo la Mac ya hili.
Hivyo katika kiungo yenye jina la Mac hapa juu kushoto, unaweza kweli
download Mac OS widget kwamba anaendesha Mac yako mwenyewe kufanya
huo aina ya mambo.
Hivyo ni wote kuhusu kujenga juu ya seti data kama hizi.
Lakini zaidi juu ya kwamba upande wa mwisho wa muhula.
>> Hivyo hebu kupiga mbizi katika haraka ya kweli, na mdudu, tu aina ya kupata
mambo moto juu leo, na kufikiri nyuma katika baadhi ya
mambo tuliyoyaangalia wiki iliyopita.
Hasa, napenda kwenda mbele na kuvuta, kusema,
mfano huu hapa.
Buggy1.c, hii inapatikana kwenye tovuti ya shaka ikiwa wewe d
kama shusha ni na poke kuzunguka mwenyewe.
Lakini hebu zoom katika hapa katika mpango huu uungwana mfupi, na tu
recap super-haraka wa baadhi ya vitalu ya msingi jengo
kweli sisi ni kwenda kuanza tu kuchukua kwa nafasi.
>> Hivyo mambo ya bluu, katika mistari ya 1 kwa 9, ni tu
Softball maswali.
Basi hizi ni baadhi tu ya maoni.
Hawana maana kazi.
Lakini wao ni maoni katika maana ya kwamba wao ni maelezo kwamba
Mimi, binadamu, alifanya mwenyewe ili kwamba katika hotuba na baada ya
hotuba, kweli mimi kukumbuka nini mpango huu
gani bila ya kuwa na kusoma kupitia line hiyo kwa mstari na
recreating historia katika akili yangu.
Tena, ikiwa mimi mkono mpango huu kwa mtu mwingine kama
wewe, ni wazi sana na wewe, kwa sababu ya maoni kama hii,
nini mpango ni kweli kufanya, au angalau kile
mpango walidhani kuwa kufanya.
Kama au ni sahihi ni suala jingine kabisa.
Sasa, katika C, pamoja na maoni mbalimbali ya mstari, kukumbuka kuwa kwenye mstari
moja hapa ni ishara uchawi, / *.
Ina maana hiyo inakuja mwanzo wa maoni.
Na kitu kingine mambo mpaka kufikia Terminator mwisho,
ambayo ni * /, kinyume.
Hivyo ukweli kwamba nina-80 baadhi nyota isiyo ya kawaida hapa kutoka
kushoto na kulia ni kweli tu undani aesthetic.
Ina maana hakuna kazi.
>> Sasa vipi kuhusu mstari 11?
Je, hii kufanya katika suala layman?
Nini hiyo?
Watazamaji: Ni pamoja na kiwango.
DAVID J. Malan: OK, nzuri.
Hivyo ni pamoja na maktaba stdio.h.
Hiyo ni nini maana ya kwamba?
Naam, ndani ya faili kwamba, stdio.h, ni rundo zima la
kazi maazimio -
kwamba ni, kificho kwamba mtu mwingine aliandika.
Na mfano kamili wa kazi hiyo alitangaza katika
stdio.h ni -
ambayo favorite kwa sasa?
Hivyo printf, mmoja wa wale wa kawaida kutumia, hakika
mapema, kutoka maktaba ambayo ni huko.
Kama mimi kuwatenga kwamba mstari wa kanuni, Clang ni kwenda yell
saa yangu kitu kuhusu kutumia alama Undeclared.
Kitu Undeclared pengine ni Keyword, kwa sababu
hatuna taarifa compiler nini printf inaonekana
kama isipokuwa sisi ni pamoja na kuwa mstari.
Na zaidi chini ya ardhi, kwa kweli, nini mstari kwamba ni kusema ni
kufungua faili, stdio.h, popote ni juu ya server
ngumu kuendesha gari, au appliance vigumu kuendesha gari, na nakala-kuweka ni
haki pale katika faili wangu, bila wangu
baada ya kufanya kwamba manually.
>> Sasa, mara sisi kupata chini hapa kuu, kabla ya muda mrefu tutaweza kuanza
teasing mbali kile int na kile utupu ni.
Lakini kwa sasa, hebu angalia mistari mitatu
ndani ya 15 kupitia kwa 17.
Hii hapa mimi kudai kama Buggy.
Line 7 katika maoni yangu anasema "Je magazeti 10
asterisks lakini haina ". nini hii si magazeti, kwa kweli,
10 vile nyota?
Watazamaji: [inaudible].
DAVID J. Malan: Hasa.
Hivyo taarifa kwamba sisi ni mapya kwa kuhesabu kutoka 0.
Na hii ni kweli mkataba katika programu na
sayansi ya kompyuta kwa ujumla zaidi, kuanzia kuhesabu
kutoka 0 badala ya 1.
Na hii kweli tu hupata kutokana na ukweli kwamba, kwa
mfano, wakati tulikuwa watu nane juu ya hatua, wakati
hakuna mtu kuinua mikono yao, walikuwa
zeros ufanisi wote.
Na hivyo ni aina tu ya mkataba kompyuta hivyo,
hiyo, kwa kuanza kuhesabu kutoka 0.
Kama kwamba ni idadi ya chini unaweza kuwakilisha katika binary.
>> Hivyo hapa tumekuwa kuanza initializing i kwa 0.
Tumekuwa kuweka i sawa na 0.
Lakini basi mimi alifanya hii kosa hapa, akisema i ni chini ya au
sawa na 10.
Lakini kama unadhani kwamba kupitia, kama mimi kuanza saa 0 na kisha nitamwendea
hadi 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, mimi nina kweli kwenda
magazeti nje nyota 11 kwa screen, kwa sababu mimi tumeenda juu
kwa na kuwa sawa na 10.
Hivyo fix rahisi hapa basi ni nini?
Watazamaji: [inaudible].
DAVID J. Malan: Just kubadilisha kwa chini ya.
Kama kweli unataka, unaweza kufanya hivyo.
Lakini kwa ujumla, kwamba ni kipaji juu.
Na hivyo kuanza kuhesabu kutoka 0 ni tu kitu unapaswa
kawaida kupata kutumika.
Sasa, nini kuhusu hii ya kujenga nzima katika yenyewe?
Hii mstari 15 demarks kwa kitanzi.
Hivyo kwa si kazi.
Ni tu taarifa.
Ni kujenga looping, kama tulivyoona katika Scratch.
Na ina sehemu tatu.
Ona kwamba kuna sehemu ya kwanza ya
kushoto wa semicolon.
Kuna sehemu ya katikati katika kati ya semicolons mbili.
Na kisha kuna sehemu kulia kwa haki
ya semicolon pili.
Sasa, kwanza wa haya ni nini?
Watazamaji: [inaudible].
DAVID J. Malan: Nyuma huko?
Yeah?
Watazamaji: initialization.
>> DAVID J. Malan: initialization.
Basi nini maana ya hii?
Sisi wametangaza variable kuitwa i.
Ni ya int aina, kwa sababu nimekuwa maalum int i.
Na mimi nina initializing i kwa thamani ya 0.
Basi nini hii kwa kweli kusema?
Ni kwa ufanisi akisema kwa kompyuta hey, nipe kutosha
kumbukumbu, ya kutosha RAM, fit idadi, na kisha kuweka
idadi 0 katika kwamba chunk ya RAM.
Na kama kando, jinsi kubwa ni int kawaida, angalau ndani ya
wa appliance?
Watazamaji: 32 kidogo.
DAVID J. Malan: 32 bits.
Hivyo kwamba maana nipe bits 32, inayojulikana kama ka 4,
na kuweka 0 thamani ndani yake, ambayo ni pretty rahisi kwa sababu
tu maana ya kuweka bits wote 0.
>> Hivyo sasa, sehemu ya pili hapa ni hali hiyo.
Na hali, kama jina linavyosema, ni nini ni checked
tena na tena na tena ya kama ni kweli au uongo.
Hivyo hii ni kusema tu kufanya mistari ifuatayo ya maadili -
yaani mstari 16, kwa sababu hiyo ni moja tu indented
chini -
hivyo muda mrefu kama i ni chini ya 10.
Na baada ya kila iteration kupitia kitanzi hii, kufanya
incrementation, ambayo katika kesi hii ni i + +.
Sasa, haina kuwa i + +.
Ni inaweza kuwa i -.
Lakini kama mimi alifanya hili, nini tabia kwenda
kuwa na mpango huu?
Watazamaji: Ni kwenda kuwa kitanzi usio.
DAVID J. Malan: Ni kwenda kuwa baadhi ya aina ya kitanzi usio,
isipokuwa sisi kupata bahati baada ya 2 hasi bilioni au hivyo.
Labda mambo litamalizika kote, tu na asili ya finite
idadi ya bits kwamba tumetenga kwa int.
Lakini ni hakika ya kwenda iterate mbali zaidi ya 10 na
hakika zaidi ya mara 11 hapa.
>> Na sasa, tu kama kando, kutambua kwamba i + + na i -
ni kweli tu kisintaksia sukari.
Ni tu shorthand nukuu kwa nini zaidi kidogo
waziwazi imeandikwa kama ifuatavyo:
i = i + 1.
Hiyo ni sawa na i + +.
Ni aina tu ya inaonekana prettier kusema i + +.
Ni zaidi succinct, zaidi someka.
Na hivyo watu wengi kuwa badala.
Lakini hii ni kufanana functionally kwa
nini sisi tu kuona.
Hivyo katika muda mfupi, kurekebisha haraka hapa ni tu kusema iterate i
kutoka 0 njia yote hadi chini ya 10.
Na kisha tutaweza kweli kupata nyota 10.
>> Basi hebu jaribu hii.
Hebu kufungua terminal chini.
Hebu kwenda katika saraka ya kwamba hii ni in
Na mimi naenda kukusanya ni manually na Clang kwa sasa.
Na mimi naenda kukusanya hii kama buggy1.c, Ingiza.
Na sasa buggy1, ni kwa nini kuna hakuna vile faili au directory
kuitwa buggy1?
Watazamaji: [inaudible].
DAVID J. Malan: Yeah.
Hivyo ni kweli kuitwa a.out.
Hivyo kukumbuka kama wewe kukimbia tu Clang, ambapo Clang ni
compiler, na huna taja jina unataka
kutoa kwa mpango wako, ni kwenda default kwa a.out.
Hivyo kweli, kama ninafanya ls -
oops.
Na mimi didn't - suala nyeusi-na-nyeupe baadhi ya
wewe wanakabiliwa imekuwa fasta.
Lakini basi mimi kufanya hili.
Kuna tuna a.out upande wa mkono wa kushoto huko.
Hivyo inabidi kukimbia a.out badala ya buggy1.
>> Hivyo basi mimi kwenda mbele na kufanya hili.
. / A.out, Ingiza.
Na mimi inaonekana hawakuwa kufanya nini?
Watazamaji: Hifadhi.
DAVID J. Malan: Ila faili yangu.
Hivyo kwamba ni kwa urahisi kutatuliwa kwa kupiga Document S, au kwenda kwa
Picha, Ila, kama katika programu nyingi.
Hebu kwenda chini hapa, wazi screen, kukimbia tena.
Na bado kuna mdudu.
Hivyo ni nini kinaendelea -
Watazamaji: You hawakuwa kukusanya.
DAVID J. Malan: Ah, nzuri.
Sikuweza kukusanya yake.
Kama idiot, mimi nina kuangalia code kuona nini kibaya.
Hivyo Clang buggy1.c, sasa a.out.
Na phew, kuokolewa.
>> Hivyo inaonekana kidogo ugly sababu hakuna mstari mpya
mahali popote katika mpango.
Lakini tena, kwamba tu undani aesthetic.
Na angalau kama sisi kuhesabu wale nje, tunapaswa
sasa kuona nyota 10 vile.
Naam, nini kuhusu mfano huu wa pili joto-up?
Hivyo katika buggy2, mimi kudai kwamba toleo hili, pia, magazeti
10 nyota, moja kwa kila mstari.
Hivyo wakati huu, nina tabia newline, tu kufanya
mambo kidogo prettier.
Lakini badala nini mimi kupata ni hii.
Hivyo basi mimi kufanya Clang buggy2.c, Ingiza.
Sasa ni mara ya pili wakamwita a.out.
Kuingia.
Mimi tu kuona moja mpya line, tu sana mwisho mpya line kwamba
hatua ya haraka yangu line ijayo.
Na bado wazi nimekuwa uchapishaji *, basi line mpya,
*, Kisha mstari mpya.
Lakini nini mdudu hapa?
Yeah?
Watazamaji: [inaudible].
>> DAVID J. Malan: Hasa.
Hivyo tofauti na baadhi ya lugha, kama Chatu, ambapo anatengeneza
kweli ina maana kazi, katika
Lugha kama C -
kama tutaweza kuona, PHP, JavaScript -
indentation ni kweli tu kwa faida ya binadamu '.
Hivyo ukweli kwamba nimepata indented mstari 16 na 17 inaonekana kubwa,
lakini hauna maana kazi hapa.
Kama mimi nataka wote mistari na nitafanya kama sehemu ya kwa
kitanzi, basi mimi lazima uambatanishe yao katika braces curly kwa kufanya hivi.
Unaweza tu kukata kona na omit braces curly ikiwa
nini kesi?
Watazamaji: Just mstari mmoja.
DAVID J. Malan: Just mstari mmoja.
Basi hiyo ni tu aina ya aina nzuri ya undani syntax ili
wewe si kupoteza muda kuandika mistari mitatu, wawili ambao ni
curly braces, tu kuandika line moja ya maadili.
Lakini kama una mistari miwili au zaidi, sisi
kweli haja ya kufanya hili.
>> Hivyo sasa napenda kuokoa hii.
Hebu kwenda mbele na kuendesha upya Clang.
Basi mimi rerun a.out, na sasa mimi kupata yao moja kwa kila mstari.
Sasa, a.out tena ni aina ya jina bubu kwa mpango.
Nawezaje kumweleza Clang kwa kweli nipe jina la faili
hiyo ni zaidi user-kirafiki, kama buggy2 yenyewe?
kidogo zaidi kwa uwazi?
Watazamaji: [inaudible].
DAVID J. Malan: OK, hivyo mimi kweli anaweza kuchukua sana
user-kirafiki mkato na kuandika tu kufanya buggy2.
Mimi si kutaja c. Katika kesi hii, na hit Enter.
Na nini kufanya hivyo ni kwa ajili yangu inaandaa buggy2.c na
kuuliza Clang ya kufanya hivyo.
Hasa, ni wito Clang, ni anaendesha Clang kutumia njia zaidi
amri-line hoja au swichi kuliko mimi kwa kweli wanahitaji.
Katika wakati, tutaweza kuja nyuma kwa nini yote haya mbalimbali
cryptic misemo hyphenated maana yake.
Lakini kwa sasa, hiyo tu kuniokoa shida ya
kuwa na kukumbuka na kuwa na aina nje watu
mbalimbali hyphenated misemo.
Na suala la mafanikio ya hatimaye ni
kwamba sasa nina buggy2.
Kama mimi nataka kufanya hili mwenyewe, ingawa, mimi
wanaweza badala kufanya hili -
Clang-o buggy2 na kisha buggy2.c.
Na kwamba vile vile nipe faili inayoitwa buggy2.
>> Hivyo katika muda mfupi, Clang ni compiler.
Matokeo ni chombo tu user-kirafiki kwamba tutaweza kuwa na kutumia zaidi
na zaidi, kwa sababu tu ya kuanza
kurahisisha mambo kwa ajili yetu.
Na sisi kurudi 0, Mwisho.
Kwa sasa, kwa sababu tu, lakini tutaweza kuanza teasing kwamba sehemu
leo na siku ya Jumatano.
Maswali yoyote juu ya yoyote ya hii?
Yeah?
Watazamaji: [inaudible]
ls katika quotes huko?
DAVID J. Malan: OK.
Wakati mimi typed ls katika quotes, kwamba alikuwa mimi kufanya baadhi ya uchawi
nyuma ya pazia ya kurekebisha mdudu.
I forgot, kama tumekuwa kuwaambia wengi wenu juu ya
mjadala wa bodi, kufanya -
tutaweza kufanya hili sasa - Sudo yum-y update appliance50.
Whoops, kwamba hiyo ni haki yameandikwa.
Hivyo appliance ni kama mfumo wa uendeshaji.
Ni mbio hii ya mfumo wa uendeshaji kuitwa Fedora.
Na sasa kwa sababu ya uhusiano wangu polepole internet, nimekuwa
kweli hosed yake.
Hivyo mbio Sudo yum update, kama sisi kukuambia kwa nini katika
tatizo kuweka, kimsingi ni kama mbio updates moja kwa moja
Mac OS au Windows.
Na sababu kwa ajili ya kuendesha hii mwanzoni kabisa mwa
tatizo kuweka ni kwa sababu wakati sisi aliumba appliance, mimi
messed up, na mimi ajali alifanya yote ya programu yako kuangalia
nyeusi kwenye screen nyeusi, ambayo ni kwa nini wewe si kuona wao
na default.
Lakini toleo la karibuni la appliance fixes hii.
Na mimi itabidi kurekebisha wakati wa mapumziko mara moja nina Internet
uppkoppling.
>> Hivyo quotes tu ngozi makosa yangu, sana kwa ujasiri,
inaonekana.
Maswali mengine?
Ndiyo?
Watazamaji: Wapi kufanya kuja kutoka?
[Inaudible]
DAVID J. Malan: Good swali.
Wapi kufanya kuja kutoka?
Ni mpango wa Linux ambalo limekuwepo kwa miaka mingi, ya muda mrefu
kabla CS50.
Na inakuja na mfumo wa uendeshaji kama Fedora.
Ni haina kuja kutoka maktaba CS50.
Kwa kweli, mambo tu kwamba kuja kutoka maktaba CS50
hivi sasa, kwamba tumekuwa kuonekana, ni GetString, GetInt, wote wa
wale Kupata kazi, na kamba neno, na baadhi
kiwango, neno bool.
Lakini tutaweza tease kwamba mbali wakati sisi kupiga mbizi katika CS50
appliance yenyewe.
>> Hivyo ndiyo, swali moja zaidi hapa.
Watazamaji: Wakati wewe alisema kufanya na kisha Buggy, jinsi gani
kompyuta kujua [inaudible]?
DAVID J. Malan: Good swali.
Hivyo wakati wewe kukimbia tu kufanya buggy1 au kufanya buggy2, jinsi
haina kufanya kujua?
Hivyo kwa default, ikiwa unapoandika kufanya buggy1, kufanya inaonekana kwa
faili inayoitwa buggy1.c.
Na kisha executes amri Clang sahihi,
hivyo kuu pato default faili inayoitwa a.out.
Kwa kweli, kama sisi kuangalia nini kufanya, nini -
hebu acha hii.
Kama sisi kuangalia nini kufanya ilikuwa kweli kufanya, kufanya buggy2,
ni tayari hadi sasa.
Hivyo basi mimi kuondoa amri rm,
mpango niliandika kabla.
Typing Y-E-S kuthibitisha kwamba mimi nataka kuondoa hiyo.
Kama mimi sasa kufanya kufanya, taarifa kwamba katika mstari huu kwa muda mrefu sana,
kuna jambo hili jana hapa,-o buggy2.
Kufanya yote ni kufanya ni kupita kwamba hoja, ili kuzungumza, kwa
Clang, ili mimi hawana aina yake mwenyewe.
>> Haki ya wote, hivyo michache ya haraka ya utawala
matangazo.
Hivyo kwa sehemu, ambayo ilianza rasmi hii kuja
Jumapili, wewe daima utasikia wanataka kuleta, kama
una moja, mbali.
Kama huna mbali, wala kuwafikia kwangu kwa
kuacha barua pepe yangu.
Na tutaweza takwimu nje workflow.
Nini ujumla utapata katika sehemu ni kwamba uko sehemu
dhana, sehemu mikono juu.
Tutaweza hasa matumizi ya sehemu ya maswali, sehemu ya
tatizo la wiki kuweka, kutembea kwa baadhi ya
dhana vifaa kutoka mihadhara.
Na kwamba wote katika kuweka sasa tatizo.
Na tutaweza pia kupiga mbizi katika baadhi ya shughuli mikono juu, wakati mwingine
ambayo inatakiwa iwasilishwe, wakati mwingine ya
ambayo si.
Kwa mfano, wiki hii kwanza, wao ni maana tu kama
joto-up mazoezi.
Na utapata kwamba wale matatizo ni kweli tu.
Wao ni maana ya kuwa haki ndogo, lakini si lazima
trivial mipango ya kuandika, ambayo si lazima
kusisimua katika na wenyewe lakini ni nzuri fursa ya
mazoezi na syntax, na kazi mpya, katika faraja ya
sehemu ambapo unaweza kuwa na wachache wa wanafunzi wako sasa kama
vizuri kama TF yako.
>> Na nini tutaweza kufanya juu ya muda ni kutumia zana iitwayo CS50 Spaces,
ambapo badala ya kutumia Appliance CS50, wewe itabidi
badala kwenda kwenye ukurasa wa mtandao katika browser, ambapo utasikia kuwa na uwezo
kuandika code katika dirisha browser wakati sehemu.
Na kisha kama wewe opt katika, mafundisho yako wenzake wanaweza kuonyesha
chochote ni uko kuandika juu ya screen yako katika browser yako
dirisha juu mbele ya darasa, iwe anonymously au
hadharani, ili yeye au yeye anaweza kisha kutembea kwa njia na
wanafunzi wako nini alifanya vizuri, nini hawakufanya vizuri.
Na tena, wengine uhakika wote wa hii inaweza nicely anonymized.
Lakini utakuwa fursa nzuri kwa zaidi
interactivity kuliko kitu kama hotuba inaruhusu.
>> Wakati huo huo, sisi itabidi mambo haya kuitwa super
sehemu, ambayo ni hiari lakini ni wazi kwa kila mtu katika
darasa, ili unaweza kufanya hivyo zaidi kwa pamoja kwa ajili
tatizo kuweka moja.
Hapa ni ratiba.
Hii pia ni posted kwenye homepage katika cs50.net.
Ona kwamba kutakuwa hacker maalum
moja kesho mchana.
Na sisi filamu moja leo na kesho na moja baada ya wale
online ndani ya masaa 24.
Hivyo kama huwezi kufanya lolote juu ya nyakati hizi, wasiwe na wasiwasi.
Na tena, ratiba ni online sasa katika cs50.net.
>> Katika suala la sectioning yenyewe, unapaswa kuwa na kujipatia
email likimwelekeza wewe kwenda kwenye ukurasa wa kozi ya kupata
nje ya sehemu yako.
Kama maisha yamebadilika na unahitaji kubadilisha sehemu yako,
si tatizo.
Nenda nyuma URL huo, cs50.net/section, umoja,
na wewe utakuwa kujaza fomu sawa ili uweze
kisha utupe mapendekezo yako.
Na sisi kufuatilia na mwisho wa wiki kama kwa nini tunaweza
malazi.
Wiki iliyopita, wanakumbuka kwamba sisi mapendekezo kutumia CS50 Diskutera,
majadiliano kozi ya chombo, katika hotuba.
Hivyo tulikuwa maswali 40 ambayo waliulizwa na
akajibu wakati mihadhara.
Hivyo ilionekana kazi vizuri, hivyo tutaweza kuendelea
kujaribu kufanya hili.
Kama, wakati wa hotuba, wewe si tu kujisikia vizuri kuinua
mkono wako, si tatizo.
Nenda cs50.net/discuss, baada ya hapo, na moja ya mafundisho yetu
wenzako ama kujibu ni umeme au kuongeza zao
mkono kwa niaba yako anonymously kuuliza, kutegemea
juu ya asili ya swali.
Na katika suala ya maoni, kwa ujumla psets itakuwa
akarudi ndani ya wiki.
Kwa sababu inachukua muda kidogo kwa ajili ya sehemu ya kufikia
Msawazo, pset kwanza, 0 na 1, itakuwa kidogo
kuchelewa kama mambo kukaa chini.
Lakini mada kwa kuwa katika wiki ijayo.
>> Haki ya wote, hivyo basi mimi kuweka yangu kubwa
sauti kwa muda tu.
Hivyo hii ni kweli hali ya hewa ya kuvutia kuwa
kuwa na mjadala huu, nini na mambo yote mengine
kinachoendelea juu ya chuo kufuatia kuhusiana.
Lakini CS50 ina shaka alikuwa na historia yake ya hasa hili
mada, katika kadri kila mwaka, kozi hii, kwa ajili ya wengi
miaka, Ad-Bodi takribani 3% ya darasa.
Mwaka huu wa hivi karibuni, 2011, CS50 Ad-boarded wanafunzi 35.
Hii si, nadhani, kutokana na ukosefu wa uwazi.
Kutambua kwamba katika mtaala shaka, kuna ukurasa wa
maelezo kuelezea ambapo mistari ni.
Kauli hiyo hiyo ni unaorudiwa juu ya kila mmoja
tatizo seti kwenye ukurasa mmoja.
>> Basi, mimi kutaja hii leo kweli tu kufanya
folks kukumbuka ya hii.
Na tumekuwa alijaribu vitu tofauti.
Na nilifikiri nini tunataka kufanya leo ni tu kuchukua muda
kweli kuangalia baadhi ya matukio ya siku za nyuma kwamba wamekuja.
Badala ya kuweka haya kama chafu siri kidogo, kwa kweli
kumweka nje nini wanafunzi wamefanya na jinsi sisi wanaona
ni kweli nini na motisha makuu ni kwa ajili ya
hata baada ya mazungumzo haya.
Hivyo kwa kuwa alisema, line kimsingi ni hii -
kwa muhtasari, wewe ni welcome, wewe ni moyo, kwa
kuzungumza na wanafunzi.
Hiyo ni lengo zima la kuwa na haya shirikishi
masaa ya ofisi katika Annenberg na kuwahimiza watu kwa
mradi wa mwisho wa kufanya kazi pamoja.
Lakini line ni inayotolewa linapokuja wakati kwa kweli kuandika
ufumbuzi yako ya mwisho.
Akizungumza katika lugha ya Kiingereza, kabisa faini, akizungumza katika code Pseudo,
kabisa faini.
Emailing classmate pset yako, kuruhusu watu kuangalia juu ya
screen kama mikono kuendelea kuandika,
juu ya mstari kama vizuri.
Je kuangalia kwa muhtasari kwa mistari fulani.
>> Lakini tu kwa kuchora picha ya jinsi hii ni bahati mbaya
ukweli, kutambua kwamba kuna tovuti huko nje kwamba
kuwa na ufumbuzi kutoka darasa hili na wengi madarasa mengine.
ukweli kwamba wewe au baadhi 3% ya wewe kujua kwamba hii ipo
ina maana kwamba sisi kujua kwamba hii ipo.
ukweli kwamba kuna tovuti kama hii ambapo
wanaweza kulipa mtu kweli kufanya tatizo seti yako - hii ilikuwa
kesi halisi waliopanda mwaka jana.
Hii ni tovuti inayoitwa odesk.com.
Na Tim ilikuwa jina la mtu hapa ambaye alikuwa posting juu ya
hii tovuti na aliuliza mtu kufanya pset wake 7 katika
hii kesi fulani.
Naam, ni odesk.com sana Google-uwezo, na sisi pia ni
nzuri sana katika googling.
Hapa pia, kuna maeneo - na huyu 'badala
mauaji, shahiri.
[Kicheko]
DAVID J. Malan: Kitu funny kuhusu tovuti hii ni kama
kusoma ukurasa Kuhusu, wao majadiliano kuhusu ushirika wao
utamaduni na jinsi huduma kwa wateja ni zao namba moja
kipaumbele, ili kuhakikisha kuwa kazi yako kupata
akageuka katika wakati muafaka.
>> Lakini kwa uhakika wote, tena, ukweli kwamba maeneo haya
zipo, kutambua sisi, pia, ni Mjuzi wa
hizi aina ya maeneo.
Na kukupa hisia ya kile hutengeneza hii ujumla
inachukua, sisi ujumla hawana kashfa kubwa ambapo watu
ni kushirikiana juu ya aina yoyote ya kiasi kikubwa, lakini badala
ni haya wakati marehemu-usiku wa udhaifu, ambapo una hivyo
mengi ya kufanya, ni 04:00, wewe ni nimechoka, na wewe
kufikiri mwenyewe, vizuri, basi mimi tu kuangalia yangu
roommate au code ya rafiki yangu au kama.
Na madhihirisho ya hii kwa bahati mbaya kuhusisha Mwanafunzi
kitu kama hiki na kuwasilisha Mwanafunzi kuwasilisha B
kitu kama hii, ambayo kwa hakika, katika kompyuta
sayansi darasa, ni rahisi kwa inashangaza wanasayansi wa kompyuta
kuchunguza na programu.
Hii ni dhana ya kawaida mwingine, ambapo wameweza aina ya
ikifanya kazi pamoja ya mtu, labda kuzungumza katika
Kiingereza, faini tu, pseudocode.
Lakini basi inakuja wakati kwa kweli kuwasilisha, na psets
tu kupata kubadilishana kupitia barua pepe au Dropbox au kama.
Lakini katika jaribio la kufanya hivyo chini dhahiri kwamba hii ni
kilichotokea, basi hii ni nini in.
Hii pia, haina safari hadi vipande kuandikwa vizuri ya
programu kama tuna kweli kuchunguza
hizi aina ya mambo.
Na kwa kweli kile sisi kufanya ni kukimbia programu ambayo inalinganishwa yote ya
mwaka huu maoni dhidi ya wote wa zamani wa mwaka
mawasilisho, dhidi ya kila kitu sisi kupatikana kwenye
Internet, dhidi ya kila tovuti ya kazi huko nje.
Ni wote sana automatiska.
Na hivyo sisi kufanya kweli hii katika haki kubwa kwa% 97 ambao
ni kweli kazi punda zao mbali kwa hii na nyingine
madarasa na kuweka katika yote ya juhudi kwamba ili kazi
hatimaye kuwasilisha ni wao wenyewe.
Na siwezi kwenda kwa muda mrefu.
>> Hizi ni baadhi tu wachache wa kesi ya mwaka jana.
wanafunzi wachache in hizi files identically kwa pset 2,
pset 3, 4 pset, pset 5, 6 pset, pset 9.
Katika kesi hiyo, hii ilikuwa jaribio 0 na mwaka jana, ambapo wawili
wanafunzi in identically sentensi hii miongoni mwa wengi
wengine, "ombi la aina -" dot, dot, dot.
Hivyo hata katika darasa ya 600 gani sisi kuchunguza hii
juu ya in Quizzes.
Hivyo katika muda mfupi, hii - kusema ukweli, I hate kuwa aina hii ya
mazungumzo - lakini hii ni kweli juhudi za makusudi
mwaka huu ili kujaribu gari chini ya idadi hiyo.
Kwa sababu hata kama sisi kusema haya kila aina ya mambo
mwaka, nadhani ukweli wa kuwa wakikaa juu yake kwa ajili ya wachache
zaidi ya sekunde kuliko kawaida na kweli tu kusema
kwamba kile inaweza kuonekana kama, eh, si mpango kubwa vile, angalau
kufikiri nyuma wakati fulani, katika haki kwa
mwenyewe na kwa wanafunzi wako hapa.
Hivyo kama umewahi kuwa na maswali yoyote kama ambapo mstari
ni, tafadhali tu kuwafikia mimi binafsi.
Lakini jibu ni daima, kabisa alisisitiza katika
dakika ya mwisho ya fedha katika siku ya marehemu.
Au kama ni suala la kutokuwa na siku marehemu,
uaminifu, email yangu binafsi.
Tutaweza takwimu kitu nje.
Tafadhali usiweke muda wako hapa katika Harvard katika hatari.
>> Sasa, nilifikiri tunatakiwa uzito mood, hivyo mimi
pamoja na hii kama slide ijayo.
[Kicheko]
DAVID J. Malan: Tovuti hii ilikuwa kubwa.
Mimi kwa kweli got kidogo aliwasihi.
Kuna moja hii.
Na kisha moja hii ilikuwa ajabu.
Sawa, hivyo kufikiria kwamba kitten marehemu wakati wa usiku wakati wa kufanya
wale maamuzi.
Haki ya wote, hivyo nyuma ya furaha zaidi na chini kubwa stuff, kama
masharti.
>> Haki zote, hivyo sisi aliyesema ufupi kuhusu hizi.
Hii ni kitu ambacho pengine familiar kabisa kutoka
ulimwengu wa Scratch.
Na katika ulimwengu wa Scratch, tuna hitaji hili wakati mwingine kwa
kwenda kufanya uma katika barabara.
Ama kufanya hivi au hivi au jambo hili kingine hapa.
Na wakati tunataka kufanya hivyo, tunaweza kutumia, katika C sasa, hii ikiwa
mwingine kujenga.
Na kisha hapa tuna misemo Boolean.
Kwa mfano, Boolean maneno hapa, tunaweza AU
pamoja, kwa maana kwamba tuna hali hii AU
kwamba hali hiyo.
Tunaweza NA pamoja, kwa maana kwamba tunataka
kuangalia hali hii na kwamba hali hiyo.
Na hapa tuna kauli kubadili sasa, ambayo si hivyo
sawa syntactically kwa aina wale wa hali, lakini
inaruhusu sisi kufanya sawa ikiwa, mwingine kama, mwingine kama, mwingine
ikiwa, na kama kwa kifupi enumerating yao kesi kwa kesi
na kesi kwa kesi.
Hivyo tuliona wale wakati wa mwisho.
Na kisha sisi kuanza kugusa juu ya mambo kama matanzi.
Tuliona moja ya hizi muda tu iliyopita.
Lakini kuna hizi nyingine constructs looping.
>> Kwa mfano, hii moja hapa.
Hivyo wakati (hali), jambo hili tena na tena.
Hivyo kimsingi, nini inaonekana kuwa tofauti kati ya hii
kwa kitanzi na hii kitanzi wakati hapa?
Hii kwa kitanzi na hii kitanzi wakati.
Yeah?
Nini hiyo?
Watazamaji: [inaudible].
DAVID J. Malan: Good.
Hivyo wakati katika hali kwa kitanzi, kuna uwazi
zaidi syntax.
Kuna initialization hii, kuna update hii.
Katika kitanzi wakati, kuna tu hali hii.
Hivyo inaonekana kuwa ni kidogo ikilinganishwa chini dhidi ya
kitanzi, ambayo ina maana kama tunataka kuwa na vigezo na tunataka
kuwa na incrementation, sisi kweli kuwa
jambo hili sisi wenyewe.
>> Hivyo basi mimi kwenda mbele na kufungua gedit.
Hebu kubadili juu ya appliance.
Na hebu tu kufanya haraka kidogo mfano kwamba
hutofautisha kati ya hawa kutoka nyingine.
Na katika nyuma ya akili yangu hapa, mimi lazima kusema jambo moja.
Mimi hasa zilizotajwa Tim jina.
Tim kweli alikuwa mtu kwamba mwanafunzi alijaribu kutafuta kufanya
kazi zao za nyumbani kwa ajili yao.
Sisi hatukuwa na Tim katika sehemu fulani.
Hivyo kutambua, nisije kufichuliwa mwanafunzi, ilikuwa si mwanafunzi.
Ilikuwa mtu random kwenye mtandao kufanya mambo
kwa mwaka wakala mwisho.
Hivyo tunaona kwamba, pia.
Hivyo katika kesi hii hapa, napenda kwenda mbele na
kufungua faili mpya.
Picha, Mpya.
Hii inanipa tab hapa.
Hebu kwenda mbele na ila ni kama loop.c.
Hebu kwenda na bonyeza Hifadhi.
Na kisha chini hapa, hebu kwenda mbele na kuanza kuandika
# Pamoja .
Hebu zoom in
Sasa tutaweza kufanya kuu int (utupu).
Sasa basi mimi kwenda mbele na kufanya kwa ajili ya (i = 0 int; i <
oh, 10; i + +).
Na sasa mimi nina kwenda mbele na kufanya magazeti nyota kwamba mimi
ilivyokuwa.
Na kisha mwisho wa mpango huu, sisi ni kwenda tu
magazeti line mpya, hivyo tu kwamba haraka yangu
haina kuangalia wote messy.
kurudi 0.
Wanaonekana syntactically sahihi?
Hadi sasa.
Basi hebu angalia.
>> Hivyo basi mimi zoom, nendeni terminal dirisha yangu.
Na napenda kwenda mbele na kukimbia kitanzi, kwa sababu mimi kuitwa hii
Jambo loop.c.
Hivyo kufanya kitanzi.
Inaonekana kukusanya OK.
Hebu kukimbia kitanzi, na sasa Ingiza.
Na inaonekana kuwa kuchapishwa nyota 10.
Basi hebu tu kubadilisha hii kwa kitanzi wakati na kuona nini
aina ya masuala sisi safari juu.
Hivyo badala ya hii, napenda kwenda katika hapa na kusema wakati i ni
chini ya 10 -
basi mimi kujikwamua kwa kitanzi.
OK, hivyo sisi kuwa wanandoa wa matatizo tayari.
Hivyo hali ni sawa, lakini mimi nina wazi kukosa
initialization.
Mimi kukosa incrementation.
Hivyo kile lazima compiler uwezekano niambie wakati mimi kujaribu
kukusanya mpango huu?
Yeah?
Watazamaji: [inaudible].
>> DAVID J. Malan: Good.
Hivyo ni kwenda kusema kitu kama Undeclared - katika hili
kesi, kutofautiana i.
Na kwa kweli, matumizi ya kitambulisho Undeclared i.
Na hivyo hii ni tofauti na lugha kama PHP na
Chatu na Ruby, ambayo baadhi ya unaweza kuwa familiar,
ambapo unaweza aina tu ya kuanza kutumia vigezo
willy-nilly na si kuwa na wasiwasi juu ya kuzitangaza
wazi daima.
Katika C na katika lugha kama Java na C + +, una kuwa
super wazi.
Na kama unataka variable kuitwa i, una uniambie
aina gani ya kutofautiana ni.
Hivyo sisi itawabidi kurekebisha hii kama ifuatavyo.
Mimi naenda kuwa kwenda hapa na aina int i, kwa hiyo,
Mimi umetangaza variable kuitwa i.
Sasa, nimekuwa skipped hatua moja.
Nimekuwa wazi si initialized, lakini hebu angalia kama kwamba katika
hufanya Clang angalau kuacha kulalamika.
Hivyo basi mimi remake mpango huu.
>> Haki zote, sasa ni tu kulalamika
kwa sababu mbalimbali.
"Variable 'i' ni uninitialized wakati kutumika hapa." Haki ya wote, hivyo
kwamba ni pretty wazi.
Initialized njia tu kuiandaa sawa na thamani.
Na tumekuwa si kufanyika kwamba, hivyo basi mimi kujaribu sawa 0.
Sasa hebu jaribu hii tena na tena kukimbia Clang.
Imekusanywa wakati huu.
Na mimi nina kuhusu kwa kukimbia.
Lakini kubwa ya zamani kitanzi usio, kwa sababu mimi tumefanya
initialization, nimekuwa kufanyika hali, lakini sijawahi kufanyika
aina yoyote ya incrementation.
Hivyo ni jinsi gani naweza kufanya incrementation?
Naam, katika kitanzi wakati, anahisi kama mimi naenda kuwa
kufanya hivyo ndani ya kitanzi, kwa sababu kiasi kama kwanza
wiki ya mifano ya kufanya constructs looping, kama na
soksi na kwa hesabu binafsi, tulikuwa na kufanya
kitu mwishoni sana, kama kwenda nyuma ya mstari unaofuata.
Nini kama mimi kwenda mbele na kufanya hili i + + hapa?
Hebu hata kukusanya hii.
Catch mimi tayari.
Nini mbaya hapa?
Watazamaji: [inaudible].
>> DAVID J. Malan: Hivyo ni dhahiri si int.
Ni i.
Na braces curly, kama kabla,
indentation haitoshi.
Hivyo sasa mimi hii kujenga.
Hivyo wakati i ni chini ya 10, magazeti ya nyota,
kisha increment i.
Na njia wakati kitanzi matendo kwamba haraka kama wewe hit
chini ya kitanzi, ambayo katika kesi hii inaonekana kama mstari wa 10,
itakavyo kwenda nyuma ya mstari 6, ambapo kiwango
sharti kuwa checked tena.
Na kama i bado ni chini ya 10, tutaweza kufanya mistari 8 na
kisha 9, basi tutaweza hit 10, na kwenda nyuma ya 6, tena na
tena na tena na tena, hivyo muda mrefu kama i ni chini ya 10.
Hivyo hebu kuendesha upya kufanya hapa.
>> Okay, tumekuwa compiled sawa.
Hebu re-kukimbia kitanzi.
Na sasa ni kweli inaonekana kazi.
Hivyo pluses na minuses hapa?
Naam, hivyo kuna kweli si wote wa PLO -
cute.
Haki wote, kwamba ilikuwa - ah, kwamba ilikuwa ajali.
Haki zote, hivyo hebu kurejea kwa kitanzi.
Hivyo kwa matanzi ni nzuri kwa sababu wao ni super wazi.
Na hata kama wao ni kidogo clunky kuandika, ni
nguvu sana na inaruhusu kufanya
nyingi mambo mara moja.
Wakati matanzi hawaonekani kuwa na kiasi kubwa ya thamani tu
lakini, kwa sababu anahisi kama sisi tu kufanya kazi zaidi.
Tuna kuweka initialization hapa juu,
update chini hapa, na tunahitaji kukumbuka kufanya yote.
Hivyo tutaweza kuona katika wakati kuwa wakati matanzi kweli kuwakopesha
wenyewe tu mazingira tofauti, tofauti data
miundo kama orodha na meza hash, mambo tutaweza kupata
katikati ya muhula.
Lakini kwa sasa, kujua kwamba kuna aina hii ya tatu inajulikana kama do-
wakati kitanzi.
Na tumeona hii kwa ufupi.
Na hii inaweza kuwa na manufaa kwa super pset 1.
Wakati wowote unataka kufanya kitu fulani na kisha kuangalia kama
user kushirikiana, na kama hakuwa, kufanya hivyo tena, kufanya-
wakati kitanzi kunafaa kwa kuwa aina ya mantiki.
Kwa sababu kama kuagiza kutoka juu hadi chini hapa unaonyesha,
je, ina maana halisi kufanya hili.
Na kufanya hivyo tena na tena, nini kinaweza kuwa ni nani?
Labda maana wito GetInt au GetString na kisha
kuangalia thamani ya GetInt au GetString na kisha yelling
saa mtumiaji kama wao si kushirikiana kwa kuwauliza
tena na tena na tena.
Ambapo unataka kufanya kitu mara moja,
kisha kuangalia baadhi ya hali.
>> Basi hebu jaribu hii.
Hebu kweli mabadiliko ya hii sasa kwa kitanzi do-wakati.
Na mimi nina kwenda mbele na kufanya yafuatayo.
Hivyo kufanya yafuatayo.
Hebu kufanya int i = GetInt (); lakini hebu kwanza kuwaambia mtumiaji
nini cha kufanya.
Hivyo tofauti kidogo wakati huu.
"Nipe int".
Hivyo mimi itabidi kutumia printf kwa ajili hiyo.
Na sasa mimi nina kwenda chini hapa, na mimi naenda kufanya hii
wakati i ni, hebu sema, kubwa kuliko -
hebu angalia, i ni, hebu sema, chini ya 0, au i ni
zaidi ya 10.
Kwa maneno mengine, nataka namba 1-9, tu
kiholela.
Basi, mimi nina kutumia pamoja Boolean kujieleza hapa
kuhakikisha kwamba i ni chini ya 0 au zaidi ya 10, ambapo
kesi Nitafanya hivi kitanzi hapa tena.
Hivyo tena, kufanya hili -
wakati i ni chini ya 0 au i ni mkubwa kuliko 10.
>> Hivyo sasa hebu kwenda mbele na kufanya hivyo mara moja tumefanya kwamba.
Hebu tu kufanya haraka sanity hundi.
printf ("Asante, i ni% d", i).
Hivyo mpango huu rahisi anauliza mtumiaji kwa int,
hufanya uhakika ni ndani ya baadhi mbalimbali, 1-9 jumuishi,
na kisha shukrani mtumiaji kwa kuwakumbusha nini wao tu
typed katika, kama hundi kidogo sanity.
Lakini hebu angalia kama hii kazi kama ilivyokusudiwa.
Hebu kwenda kichwa chini hapa na kuendesha upya kufanya kitanzi.
Hmm.
"Matumizi ya kitambulisho Undeclared 'i'". Hiyo ni ya ajabu.
Nilidhani sisi kutatuliwa kwamba.
Same dalili lakini code tofauti.
Yeah?
Watazamaji: [inaudible] ndani ya wawili, tuna
[Inaudible].
>> DAVID J. Malan: Hasa.
Hivyo hii kweli unatuongoza mada inayojulikana kama wigo.
Ni zinageuka kuwa C, tena, ni kweli inachukua wewe literally.
Na kama wewe kufanya kitu kama hii ambapo wewe kutangaza int
na kisha hawawajui ni baadhi ya thamani, lakini wewe kufanya hivyo ndani ya
jozi ya braces curly, nini C gani ni inadhaniwa kuwa wewe
nataka tu bits wale 32 inayojulikana kama i kuwepo ndani ya
muktadha wa braces wale curly, ndani ya muktadha ya mistari
6 kupitia 9. Hivyo i ni alitangaza, na ni kwa ajili
thamani katika mstari wa 8, lakini kwa haraka kama wewe kupata nje ya
mstari 9 chini brace curly, i ni tena katika
upeo, hivyo kusema.
S-C-O-P-E. Ni tena katika muktadha sahihi.
Hivyo sasa hakuna i, hivyo ni kama ingawa tulikuwa hata
amekiri kuwa ni wakati wote.
>> Basi nini fix kisha kwa ajili ya kitu kama hii, kama
Sababu ni kwamba i ni alitangaza ndani ya braces curly, ambayo
inaonekana mbaya?
Hapa?
Watazamaji: [inaudible].
DAVID J. Malan: Yeah.
Hivyo tunaweza initialize ni nje.
Hivyo basi mimi kwenda mbele na kufuta sehemu tamko ambapo
Mimi kutaja aina, na napenda kufanya hivyo hapa.
Hivyo katika mstari 5, sasa anasema "Nipe int." Simu yake i.
Angalia katika mstari 9, sitaki kufanya hivyo, kwa sababu mimi
tayari wana bits 32.
Sitaki kuuliza kompyuta kwa ajili ya
tofauti 32 bits.
Nataka kutumia hizo hizo bits 32.
Na sasa kwa sababu i ni alitangaza katika mstari 5, bado legit
kutumia katika mstari 11 na line 12.
>> Hivyo basi mimi kujaribu recompile hii na kuona
ikiwa Clang ataacha kunguruma.
kufanya kitanzi.
Hivyo sasa ni "thabiti tamko la kazi
'GetInt' ni batili katika C99 ". Nini ni kwamba?
Yeah?
Watazamaji: [inaudible].
DAVID J. Malan: Yeah.
Hivyo sasa kwamba mimi nina kweli kwa kutumia GetInt, hii si kitu
kwamba tu kuja na C. Hii inakuja kutoka CS50.
Hivyo tunahitaji hii hapa.
Na napenda kurejea chini haraka
hapa na kuendesha upya kufanya.
Okay, hatimaye.
Sasa tumekuwa kutatuliwa kwamba na makosa mengine.
Hebu sasa kukimbia kitanzi na kuona nini kinatokea.
"Nipe int." Nitapatia ni 11.
Nitapatia ni -1.
Mimi nitakupa hiyo foo.
Mimi itabidi kuwapa 5.
Na sasa ni kweli kazi.
Lakini haraka iliyopita kwa sababu hapa.
Kwa nini alifanya hivyo wanasema retry moja ya nyakati hizi lakini nipe
int nyingine mara tatu?
Kwa nini ni tabia tofauti?
Watazamaji: Nikatoa ni kamba.
DAVID J. Malan: Samahani?
Watazamaji: Wewe akampa kamba.
DAVID J. Malan: Yeah.
Hivyo sisi akampa string katika jaribio hili la tatu,
wakati mimi typed foo.
Foo ni kamba.
Ni wazi si int.
Na njia ambayo CS50 imetekeleza GetInt ni kwamba sisi
wala kuangalia kama kitu fulani ni chini ya 0 au zaidi ya 10
kwa ajili yenu, kwa sababu ni jinsi gani sisi kujua mapema ni aina gani ya
int unataka?
Lakini tunaweza minimally kuangalia kwenu, mtumiaji angalau
aina integer?
Na kama hakuwa, sisi yell katika user kwa kuandika "retry" juu ya
screen.
>> Hivyo basi, tuna mpango wa hiyo looping. Sawa.
Sasa, ambayo kati ya hayo ni aina ya kujenga bora zaidi?
Hivyo hii ni wapi mambo kuanza kupata messy kidogo,
ukweli kwamba una kukumbuka kutangaza variable hapa
kama unataka kutumia ndani ya baadhi ya
curly braces na nje.
Lakini hata kama hii inaonekana kidogo cryptic kwa mara ya kwanza
mtazamo, tu tena, kumbuka mantiki rahisi.
Ili kutumia kitu chochote katika C, kama ni kazi au
ni kutofautiana, una kwa pamoja kama ni kazi
katika maktaba baadhi, au unahitaji kuyatangaza.
Lakini sasa unahitaji kuwa na ziada kukumbuka ya ukweli kwamba
wewe ni kutangaza katika wigo wa kulia.
Wewe si kuweka pia kukazwa ndani ya mabano.
>> Hivyo basi mimi kwa kweli unaendelea nyuma.
Kama sisi kurudi nyuma kwa yetu kwa mfano kutoka mapema, na mimi kwenda
nyuma kwa int, int i = 0; i <10; i + +, na mimi
kufanya nyota printf, kama hivi, na kisha Paren karibu, na sasa
printf i ni sasa -
kulingana na mantiki hiyo hiyo, itakuwaje wakati mimi kujaribu
kukusanya mpango huu?
Watazamaji: batili kitambulisho.
DAVID J. Malan: Hivyo ni mwingine kitambulisho batili,
Undeclared kitambulisho.
Sasa, sababu ni tofauti kidogo.
Kuna ni wazi hakuna braces curly hapa, lakini sawa
wazo, hadithi hiyo ya upeo inatumika.
Kama una alitangaza variable kama i ndani ya
kwa kitanzi, hata kama si wazi imeandikwa curly
braces, kufikiri wao kiakili kama bado kuwa pale, ambayo
kesi i ni halali tu ndani ya kwa kitanzi.
Si halali mara moja kupata line ya pili, ambayo katika
kesi hii ni sasa 10.
Hivyo tu masuala machache ya upeo na kama.
Haki zote, maswali yoyote?
>> Haki zote, hivyo hii ni aina ya mpango trivial kidogo,
uchapishaji tu nyota ndogo ndogo.
Lakini hebu angalia kama wewe kumbuka hii wimbo hapa.
Hii ni wimbo incredibly annoying watoto wangeimba juu ya
basi la shule na kama.
Lakini nini ni nzuri juu yake ni kwamba hii ina cyclicity,
ambapo ni "99 chupa ya bia juu ya ukuta,
99 chupa ya bia.
Kuchukua moja chini, kupita ni kuzunguka, chupa 98 za bia juu ya
ukuta ". Na kisha akarudisha wimbo 97, kisha 96, basi
95, kisha 94, njia yote chini 0 kama kweli got kwamba
mbali juu ya basi.
Hivyo hii ni programu nzuri ya aina ya kutekeleza, kwa sababu yangu
Mungu, kama unaweza tu kutekeleza hili na wachache
mstari wa kanuni, unaweza mate nje lyrics nzima na hii
wimbo kabisa haraka.
Lakini njiani, tunaweza kuanza kwa sasa tease mbali baadhi
ya haya ya msingi constructs looping na sasa pia
kuanzisha kazi ya kwamba sisi kuandika wenyewe, kurudi maadili
kwamba sisi kupita kote.
Lakini kwanza, kwa nini sio sisi kwenda mbele na kuchukua yetu dakika tano
kuvunja hapa?
Na wakati sisi kupata nyuma, sisi kuimba wimbo huu.
>> Haki zote, hivyo sisi ni nyuma.
Na wakati mimi kusema sisi sasa kuimba wimbo huu, I mean
programmatically, si kwa maneno.
Hivyo hapa tuna beer1.c, ambayo ni moja ya utekelezaji wa hii
hasa wimbo.
Na tu kuwa wazi, kwa wale unfamiliar na kile
jambo hili inaonekana kama, napenda kwenda mbele
na kufanya beer1, Ingiza.
Sasa basi mimi kukimbia beer1, na kile tutaweza kuona - ni wangapi chupa
ya bia kutakuwa?
Mimi itabidi aina katika 99, kama wimbo anasema.
Kuingia.
Na sasa kama sisi kitabu kupitia -
oops - kama sisi kitabu kupitia haya yote, tutaweza kuona kwamba
hii kweli alifanya kuimba wimbo mzima.
Subiri dakika.
Bar yangu kitabu kidogo messed up.
Hebu kutumia dirisha kubwa.
Hivyo beer1, 99, kuna sisi kwenda.
Hivyo hapa tuna wimbo mzima, kuimba kwa kasi zaidi na
kompyuta kuliko wangeweza kwa sisi.
Hivyo taarifa, ingawa, asili mzunguko hapa.
Ni anasema 99, kisha 99, basi, "kuchukua moja chini, kupita
kote, "basi 98.
Na sasa ni kurudiwa tena na tena.
>> Hivyo hii ni fursa nzuri kwa kweli baadhi ya aina ya
looping kujenga.
Ona kwamba mimi nina aina ya kukata kona hapa.
Ona kwamba mimi kusema "chupa ya bia 98 juu ya ukuta,
97 chupa ya bia juu ya ukuta, "na kwamba ilikuwa tu hivyo
kwamba wakati sisi kupata chupa moja ya bia, sina
na wasiwasi kuhusu sarufi ya Kiingereza.
Lakini tunaweza pia kurekebisha hili kwa kidogo ya kama
hali, labda.
Kama idadi hii ni umoja, kwenda mbele na kusema "chupa",
vinginevyo kama ni wingi, kusema "chupa".
Lakini kwa sasa, mimi nina kabisa kukata kona.
Basi hebu angalia kile tulichopata hapa.
Hivyo sisi tumepewa baadhi ya comments saa ya juu.
Mimi pamoja na maktaba hizi mbili, kama
tumekuwa kawaida imekuwa.
Na sasa basi mimi kitabu chini kwanza
halisi mstari wa kanuni.
Line 17 mateke mbali kuu.
Line 21 na 20 ina ngapi chupa ya bia kutakuwa?
Na kisha mimi wito GetInt.
Na sasa mimi kuwa na kidogo ya hundi sanity.
>> Hivyo hii ni mkataba kwamba tutaweza sasa kuanza kupitisha kwa
zaidi strikt kuangalia pembejeo mtumiaji.
Wakati mwingine wewe tu hawataki kuwachochea tena
na tena na tena.
Kama mtumiaji screws up na haina kushirikiana, faini.
Quit na si tu kukabiliana nao.
Na hivyo ndiyo nini mimi kufanya hapa.
Kama n ni chini ya 1, mimi tu kwenda yell katika user,
"Samahani, kwamba hakutakuwa na maana." Na kisha mimi naenda
kiholela kurudi 1.
Hivyo tena, hii ni mkataba kupata kutumika.
Kwa sasa, kuchukua ni juu ya imani.
Lakini hadi sasa, tumekuwa daima kurudi 0, kwa sababu
tumekuwa alisema kurudi 0 inaashiria nini?
Watazamaji: Mafanikio.
DAVID J. Malan: Mafanikio, kwamba ni yote.
Hivyo sasa kwamba sisi ni hatimaye kuanza kufikiri juu ya
yasiyo ya mafanikio -
kwa maneno mengine, kesi kona, hali ya ufisadi -
sasa mimi kuwa na usambazaji usio, au angalau bilioni nne
inawezekana mambo ambayo yanaweza kwenda vibaya katika mipango yangu.
Na naweza kuanza assigning yao namba ya mtu binafsi.
Sasa, kwa ujumla yatosha tu kurudi
kitu kingine zaidi ya 0.
Hivyo sisi ni kwenda tu kurudi 1 kwa sasa.
Lakini sababu ya kurudisha 1 ni kwamba haraka kama wewe kurudi
1, nadhani nini kinatokea kwa mapumziko ya mpango wa?
Ni ataacha.
Hiyo ni.
Hivyo ukweli kwamba mimi nina kurudi 1 ni ufanisi
Mkato wa umeme utekelezaji mpango huu ili kwamba
kitu chini ya mstari wa 27 itaendelea kutekeleza.
Haraka kama anarudi kuu, kwamba ni yake.
>> Haki ya wote, hivyo kama mtumiaji gani kushirikiana na sisi kufikia mstari 30
kwa sababu wao typed katika idadi halali, hapa ni yangu
utekelezaji wa wimbo huu.
Basi, mimi kwanza magazeti nje tabia newline, tu kwa
aesthetics.
Mimi sasa kwa kitanzi.
Na taarifa mimi nina kufanya mambo katika kidogo
mwelekeo tofauti.
Sina kufanya chini ya, sijui kufanya + +.
Naweza kusema badala initialize variable i, kuweka sawa kwa
n, idadi ya mtumiaji typed katika, basi kufanya yafuatayo, hivyo
muda mrefu kama i ni mkubwa kuliko 0, kisha i -
mara moja ya kumaliza moja iteration ya kitanzi hii.
Hivyo tunaweza kuhesabu chini ya kutumia kwa kitanzi kama vizuri.
Sasa, hii ni kiasi pretty wiki moja ya mambo sasa, pamoja na printf.
Hivyo magazeti "% d chupa ya bia juu ya ukuta." Print "% d
chupa ya bia. "" Chukua moja chini, kupita ni kuzunguka. "Print
"% D chupa ya bia juu ya ukuta." Hivyo ni bado% d, lakini
taarifa kwamba hoja printf ni kubadilisha.
Baada ya comma, nina i, kwa sababu mimi nataka kusema 99.
Baada ya comma hii, nina i, kwa sababu mimi nataka kusema 99.
Baada ya comma hii, nina i - 1, kwa sababu nataka kusema 98 katika
hii iteration kwanza, na kadhalika.
Na sasa hapa chini, mimi tu na baadhi ya kijinga kidogo remark.
Na kisha mstari 42, mimi kurudi 0 na mkataba, akionyesha kwamba
kila kitu ni sawa.
>> Basi nini kama mimi goofed?
Nini kinaweza makosa ya kawaida hapa kuwa?
Naam, nini kama mimi ajali alisema vizuri, sijui wanataka kuhesabu
chini ya 0, nataka 0 chupa ya bia juu ya ukuta?
Kwa hiyo nasema, i ni mkubwa kuliko au sawa na 0.
Nini kinaendelea kuwa dalili kwamba mimi sasa kuona kama mimi recompile
beer1 na kukimbia?
Watazamaji: Hasi.
DAVID J. Malan: Yeah, ni gonna kwenda hasi.
Hili ni kosa mbali-na-moja, incredibly
makosa ya kawaida ya kufanya.
Hebu kweli kwenda nyuma ya dirisha terminal na kufanya hivyo
hapa, ili tuweze kuona zaidi kwa wakati.
Kuingia, chupa 99 ya bia.
Karibu, lakini sisi akaenda milele hivyo kidogo mbali sana.
Sisi kuimba wimbo mbali mno chini, kwamba vile sisi sasa hit
hasi idadi.
Hivyo haina kabisa kazi.
>> Haki ya wote, hivyo tunaweza urahisi fix kwamba kwa kurejea
njia mara moja mara.
Lakini nini ni baadhi fursa kwa sasa
kuboresha?
Vizuri, basi mimi kufungua beer2.c na kitabu hapa chini na kuchukua
kuangalia toleo hili.
Nini jambo la kwanza kwamba anaruka nje saa wewe kama tofauti
katika toleo hili hapa?
Watazamaji: [inaudible].
DAVID J. Malan: Yeah, hivyo hakuna zaidi i, kwa sababu ilitokea
mimi unajua nini, Mimi nauliza mtumiaji kwa ajili ya n, na basi mimi nina
kuweka i sawa na n, na kisha mimi nina i kubadilisha, lakini nina kamwe
kugusa n tena.
Basi nini heck ilikuwa pa wewe kugawa mwingine 32
bits kuitwa i tu ili niweze kuwa na variable tofauti?
Hivyo katika kesi hii, mimi aina ya kutambuliwa kwamba unnecessary
kubuni kipengele.
Na mimi sasa kwenda kusema wakati n, ni mkubwa kuliko 0, kwenda
mbele na magazeti wimbo huo, kupita n kwa printf kama
pili hoja, na n - 1 kama hoja ya pili chini hapa.
Na kisha juu ya kila iteration ya kitanzi hii, kwenda mbele na tu
pungufu n yenyewe.
Sasa, functionally, mpango huu
ni kwenda kuwa kufanana.
Kama mimi aina katika 99, n kuanza saa 99.
Mimi pungufu, pungufu, pungufu, pungufu.
Mimi naenda kupata njia yote chini "Moja chupa ya bia
ukuta, chupa moja ya bia.
Kuchukua moja chini, kupita ni kuzunguka.
0 chupa ya bia juu ya ukuta. "Mwisho, kwa sababu sikuwa na
kupata hali sahihi.
Ni kubwa kuliko 0.
Sikuweza kufanya hili kosa.
>> Hivyo ambayo ni bora zaidi, toleo moja au toleo mbili?
Hivyo nikasikia rundo la manung'uniko kwa mbili.
Mbona mbili?
Nini hiyo?
Watazamaji: [inaudible].
DAVID J. Malan: Oh, sawa.
Hivyo itakuwa si kwenda chini ya 0, lakini kumbuka katika toleo moja,
awali ya toleo sahihi hawakuwa kwenda chini 0 aidha.
Basi kumbuka kwamba hii ni toleo sahihi.
Hivyo basi ni angalau kulinganisha matoleo mawili sahihi.
Nini hoja katika neema ya toleo
mbili kuwa, mmm, bora?
Yeah?
Watazamaji: Ni anatumia nafasi chini.
DAVID J. Malan: Okay, hivyo anatumia nafasi chini, sawa?
Wakati toleo moja kutumika bits 32 kwa n, na kisha mwingine
32 bits kwa i.
Toleo mbili tu anatumia bits 32 kwa n, hivyo kwamba
inaonekana kuwa plus.
Nyengine mawazo?
Je, mtu yeyote wanataka wanasema katika neema ya mtu mmoja?
Yeah?
Watazamaji: Una kutumia line ziada ya maadili kwa n -.
>> DAVID J. Malan: Okay, uhakika.
Basi hiyo ni haki.
Hivyo hii tu, angalau kwangu -
I mean, hii kwa kweli anahisi messier kidogo, ukweli kwamba
Siwezi aina ya kurejelea wote wa mantiki yangu katika moja
nzuri line, kwa kitanzi, kama kwa kitanzi unaweza.
Hapa, mimi aina ya kuwa na tack juu ya hii n -
mwishoni mwa kitanzi, kwa sababu
ni mantiki muhimu.
Lakini ni aina ya rubs yangu njia sahihi, kwa sababu tu
inaonekana tofauti na mantiki ya juu hapa, ingawa,
tena, ni muhimu.
Nyengine mawazo?
Yeah?
Watazamaji: [inaudible].
>> DAVID J. Malan: Yeah.
Basi nini kama wewe badala yake, mwisho wa wimbo, alitaka
magazeti nje tena jina la wimbo?
Kama "Shukrani kwa ajili ya kucheza chupa ya bia 99", au kitu
silly kama hayo?
Lakini uhakika ni, alitaka kupata thamani ya awali.
ukweli kwamba ve mutated au iliyopita n juu ya kila
iteration na kwa hiyo wameharibu thamani yake ya awali
maana wewe tu hawezi kufanya kwamba mwishoni.
Sasa, arguably, sisi wazi hawataki kufanya
kwamba katika mpango huu.
Hivyo ambaye anajali?
Lakini hiyo ni hatua halali sana.
Na kwa kuwa waaminifu, kuna kweli hakuna moja
haki kujibu hapa.
Wao ni sahihi zote kwa usawa.
Mimi naweza kuwa wanaamini ama njia.
Mimi kusema kwamba, kwa ujumla, ni kanuni nzuri kama wewe
aliuliza mtumiaji kwa thamani baadhi na wewe kuhifadhiwa katika variable
kama n, tu aina ya juu ya kanuni, pengine nzuri
kuendelea kuwa karibu.
Na yoyote data unataka mutate tena na tena, tu
kutoa mwenyewe nakala ya variable kwamba, ili tu kuwa wewe
kupata awali.
Wewe ni matumizi ya 32 bits zaidi, lakini ukweli ni huu
kompyuta ina, kama, gigabytes mbili ya RAM siku hizi,
na sisi ni juu ya quibbling bits 32?
Kweli si kama mpango kubwa.
Na hata kwenye kifaa hiki hapa, na nusu GIG au
gigabyte ya RAM, 32 bits dhidi bits 64,
si kama mpango kubwa.
Hakika leo, ni kwenda kuwa njia kuzidiwa na ukubwa
wa programu yenyewe, ambayo ni kwenda kuwa mia kadhaa
kilobytes, kama si megabaiti chache, siku hizi.
>> Hivyo busara wasiwasi, hakuna haki ya mmoja jibu.
Lakini angalau wale ni mawazo kwamba lazima kuanza
kupitia mawazo yako?
Kwa sababu katika pset 0, ingawa kwa kweli sisi tu inatarajiwa
usahihi, au angalau Kuyakana mende mbalimbali kwamba
unaweza kuwa wamekutana, kama sisi kusonga mbele, design ni
kwenda kuwa jingine muhimu, wote wa kuandika code
na pia kutathmini wetu code.
Na hivyo angalau kutoa mawazo ya mambo kama hayo.
Na kwa sababu tu kitu kazi haina maana ni vizuri,
haina maana ni vizuri iliyoundwa.
Na kwamba ni moja ya mambo wenzake mafundisho na
tatizo seti itatusaidia tease sehemu ya muda.
>> Naam, nini kuhusu, hebu sema, toleo hili hapa?
Hebu kufanya kitu kidogo sexy hapa katika wakati huu.
Kwanza napenda kujikwamua hii.
Na sasa hebu kurekebisha hili suala grammatical.
Hivyo katika toleo hili, nataka kurekebisha sarufi hivyo kwamba,
badala ya kusema tu s parenthetical, kama "chupa"
au "chupa" -
Sitaki kukata kona -
Mimi pia nataka dynamically magazeti nje neno "chupa"
au "chupa", na hivyo kutumia placeholders haya% s leo.
Hivyo mimi haja ya masharti kuangalia nini ni thamani ya i.
Na kama ni 1, nataka kusema "chupa", na kama kitu ni
kingine, mimi nataka kusema "chupa". Basi hebu jaribu kufanya kazi hii.
Hivyo kama i == 1, basi mimi kwenda mbele na kutangaza -
Nahitaji kamba, hivyo basi mimi kufanya S1 kamba, kwa sababu ni
kwanza string najali hivi sasa.
Mimi naenda kusema "chupa". Na kisha, hebu angalia, kamba
S2 - na mimi itabidi kueleza wapi nitakacho katika wakati -
"Chupa." Hivyo kukumbuka kwamba, katika wimbo huu, tunahitaji kuwa na uwezo
na magazeti mambo, mbili tofauti maneno uwezekano.
Hivyo kama sisi kuangalia nyuma hapa, taarifa kwamba wakati sisi kupata
mfano huu hapa, "chupa mbili za bia juu ya ukuta,
chupa mbili za bia, chukua mtu mmoja chini, kupita kote ", nataka
line hii ya nne sasa kusema "chupa moja ya bia
ukuta "Kwa hiyo mimi haja ya kuamua., je, mimi nataka kusema" chupa "au
"Chupa"? Hivyo nina kwenda kwa kiholela kusema, haki ya wote,
Mimi naenda sasa kutangaza variable S1 aitwaye, kamba
moja, kwamba ni kwenda kupata plugged katika hapa na pia hapa,
kwa sababu wale maneno ni daima kufanana, kwa sababu tu ya
asili ya wimbo.
Na mimi naenda kuwaita S2 chochote neno nataka
hatimaye itaonekana chini hapa.
Sasa, literally, 99 mara nje ya 100, ni kwenda kuwa
sawa katika wawili wa kesi hizo, kwa sababu 3 ni wingi, 2 ni
wingi, 4 ni wingi.
Lakini katika kesi hii kona, ambapo sisi kupata 2 na kisha 1, au
hata 1 na kisha 0, nahitaji mantiki hii.
Hivyo nina kutumia muda katika code yangu kupata haki hiyo.
Hivyo kama mimi kufanya hili, kama i == 1, kisha kuweka S1 sawa na "chupa"
na S2 sawa na "chupa", kwa sababu hii itakuwa kwa 1
chupa, na hii itakuwa kwa chupa 0.
Na hii hapa, nini hii kuwakilisha?
Tu kuwa wazi.
Hii ni maoni.
Hivyo ukweli kwamba unaweza kuwa na maoni moja-line ina maana
unaweza kutoa maoni yako code kama hii, lakini mwingine kawaida
dhana, pia, ni kwamba kama una maneno super-fupi kwamba
unataka kuweka mwenyewe na ni tu zaidi someka kuweka
haki mwishoni mwa mstari wa kanuni, unaweza
kabisa kufanya kitu kama hiki.
>> Hivyo sasa nini kama mimi kufanya hili? Mwingine kama i si sawa na 1.
Hivyo bang sawa -
uhakika Moderators inajulikana kama "bang".
Hivyo bang = 1.
Hivyo kama i si sawa na 1, je, mimi badala wanataka kufanya?
Naam, neno la kwanza nataka kuwa nini?
Hivyo string 1 unapaswa kuwa "chupa" kwa chupa wingi,
na kisha hii itakuwa wingi "chupa" pia, kwa sasa.
Na tutaweza kuona kama kweli hii anapata yetu kwa
ambapo tunataka kwenda.
Hivyo sasa kama mimi kitabu chini hapa, taarifa kwamba mimi nina plugging katika
si tu i, lakini S1.
Mimi nina plugging katika i na S1.
Na kisha chini hapa, mimi nina minus 1, ambayo ni sawa kama
kabla, lakini S2.
Kwa maneno mengine, nataka neno la Kiingereza na mabadiliko ya msingi
juu ya mantiki hii.
Sasa, kuna baadhi tayari matatizo katika kanuni hii.
Nini ni kuvunjwa tayari nje ya lango hapa?
Yeah?
Watazamaji: [inaudible].
>> DAVID J. Malan: Hasa.
Hivyo nimekuwa tayari vunja somo la wigo.
Hivyo nimekuwa alitangaza S1 na S2, lakini nimekuwa amefanya hivyo ndani ya
curly braces, ambayo ina maana yeah, code hii kazi juu
mpaka mstari 42, lakini haraka kama mimi hit mstari 43, nadhani nini hakuna
tena ipo?
Naam, nadhani nini tena katika upeo - wala S1 au S2.
Hivyo tuna kurekebisha hii.
Hivyo basi mimi kufuta maazimio.
Na mimi itabidi kuondoka majina kutofautiana na kufuta hii hapa
na kufuta hii hapa.
Na katika kile mistari lazima kweli mimi kutangaza mambo haya?
Watazamaji: [inaudible].
DAVID J. Malan: Yeah, hivyo pengine
haki ya juu hapa, 33-ish.
Hivyo string S1 na kisha string S2.
Na zinageuka, siwezi kufanya hivyo.
Kama wewe ni kutangaza vigezo wawili wa aina hiyo,
unaweza kweli tu kutumia comma na kufanya hivyo katika C. zote
haki, hivyo sasa nina vigezo mbili -
S1 na S2.
Mimi nina kumshirikisha yao katika maadili haya
hali ya hapa, au hapa.
Na kisha mimi nina kutumia yao chini chini.
Ni kwa kiasi gani hii sasa kwenda kufanya kazi?
>> Naam, ni bado Buggy kidogo, lakini hebu ni angalau kuona
jinsi mbali tumekuwa wamezipata.
Hivyo basi mimi kwenda mbele na kufanya beer3.
Je, hii ni beer3?
Yep, hii ni beer3.
Na sasa napenda kwenda mbele na kukimbia beer3.
399 99.
Pengine tunaweza ruka wengi wao.
Na hapa chini, kuangalia kwamba.
"Moja chupa ya bia juu ya ukuta, chupa moja ya bia, kuchukua
moja chini, kupita ni kuzunguka, chupa ya bia 0 juu ya ukuta. "
Lakini mimi nina kuchora wako makini na nusu tu ya ufumbuzi.
Aina ya Star up hapa.
Hivyo inaonekana kuwa kesi kona kujitokeza wakati i sawa na yale
mbili maadili?
Watazamaji: 2, 1.
DAVID J. Malan: 2 na 1.
Siyo 1 na si 1.
Ni kweli tu hizi mbili za mwisho stanza ya wimbo huu.
Basi je, mimi badala wanataka kufanya?
Hivyo mimi wanaonekana kuwa hawakupata kesi ambapo kama i ni == kwa 1,
basi neno la kwanza ni "chupa", lakini neno pili
ni "chupa". Lakini hapa, nataka kubadili hili kuwa == 2.
Na kama hii ni kesi, je, nataka
neno la kwanza kwa kuwa?
Watazamaji: "chupa".
DAVID J. Malan: "chupa", hivyo kwa chupa mbili.
Na kisha neno hili hapa inapaswa kuwa -
Watazamaji: "Bottle".
DAVID J. Malan: "Bottle", umoja.
>> Haki zote, hebu zoom nje, kwenda nyuma zaidi ya hapa, re-run kufanya,
re-kukimbia beer3, aina 99 tena.
Sawa, "Mkato kosa (msingi kutupwa)."
Nimefanya nini kibaya?
Watazamaji: Huna thamani [inaudible].
DAVID J. Malan: Ah, bora uhakika.
Haki ya wote, hivyo nini makosa hapa?
Hivyo kosa segmentation, na sisi ni kweli kwenda kuona
hii kabisa mara chache katika siku zijazo, kwa makusudi.
Lakini kwa sasa, ni nini hii kwa kweli ina maana gani?
kosa segmentation karibu daima ina maana kwamba
namna fulani walijaribu kupata kumbukumbu, RAM katika kompyuta yako,
kwamba huna mwenyewe, kwa kuwa si kweli aliuliza
mfumo wa uendeshaji kwa.
Hivyo katika kesi hii, taarifa ya kile nimepata kufanyika, ambayo ni
kiujanja kwa mantiki yangu.
Mimi kupewa S1 na S2 thamani kama i sawa na 1.
Nimekuwa pia kufanyika kwamba kama i sawa na 2.
Lakini mimi si kufanyika katika idadi ya usio wa wengine
uwezekano -
hasa, 3 au 4 au nukta nukta nukta 99.
Hivyo moja kwa fix hii inaweza tu kuwa wacha
na hali ya mwingine.
Na kuniachia katika hapa na kusema S1 sawa -
nini iwe hapa?
Watazamaji: [inaudible].
>> DAVID J. Malan: "chupa", kwa sababu katika kesi ya kawaida,
ni tu kitu kimoja.
Hivyo ni sawa quote, unquote, "chupa." Hivyo kwa wingi
chupa, na kisha hapa juu kwa wingi chupa.
Sawa, hivyo sasa napenda kwenda nyuma terminal dirisha yangu,
recompile, re-kukimbia.
99.
Whew.
Na hebu kufanya haraka sanity hundi.
Kitaalam, tunatarajia wanataka kusoma yote haya ili kuhakikisha
ni sahihi, lakini hebu tuangalie
angalau wakosaji maalumu.
3 chupa, chupa 2, chupa 2, 1
chupa, chupa 1, chupa 0.
Sisi wanaonekana kuwa angalau fasta kwa sasa.
Lakini samaki hapa ni kwamba mungu gani kubwa fujo hii ni
tu kutatua kijinga
moja-tabia grammatical undani.
Hivyo kuna aina ya sababu mimi kukata kona hii
awali, kwa sababu ni haki kabisa annoying kuwa na
kuandika hii code sana.
Lakini zinageuka kuwa kuna kidogo zaidi kifahari njia ya
akielezea exact kitu.
Na tunaweza kufanya hili kama ifuatavyo.
>> Hebu kuondoka kwenye screen kwa wakati na
kuanzisha kitu inayojulikana kama operator ternary.
Hii ni aina ya mjengo moja tu hiyo ilimaanisha kufanya wetu
anaishi sexier kidogo, kama alivyoahidi.
Na mimi naenda kufanya hii kama ifuatavyo.
Nipe string kuitwa S1, na napenda
hawawajui ni kama ifuatavyo.
(I == 1)?
"Chupa", vinginevyo "chupa". Kamba S2 anapata (i == 2)?
"Chupa", vinginevyo "chupa".
Basi nini basi ni tofauti hapa?
Hizi mistari miwili ya kificho, na Mimi wanasema, unaweza
kuchukua nafasi hii fujo nzima.
Hivyo naita fujo, kwa sababu tu ya aina ya rubs yangu
makosa njia ambayo ni hivyo wengi mstari wa kanuni.
Si vibaya.
Ni si mbaya design.
Kama, hii ni sahihi na kikamilifu kikamilifu faini.
Lakini coding anapata tedious kama una kueleza mwenyewe hivyo
damn hasa tena na tena na tena na rahisi
scenario kama hii.
Hivyo C ana shortcuts baadhi, kama hii.
Hivyo hii kimsingi ni kusema kutangaza string kuitwa S1 na
hawawajui ni aidha thamani hii au thamani hii kama i ni == -
sorry, mimi lazima kusema hii wazi zaidi.
Kutangaza S1 variable, hawawajui ni thamani hii kama hii ni kweli.
Vinginevyo, hawawajui ni thamani hii.
Hivyo kwa maneno mengine, hii ni aina ya njia moja-line ya
akisema ikiwa kingine lakini kufanya zoezi njiani.
Hivyo kama i ni 1, kisha kwenda mbele na wito huu "chupa". Na
basi hii kingine, simu yake "chupa". Wakati huo huo, S2,
pili neno kwamba tunahitaji define, kama i sawa na 2, tutaweza
kuweka S2 na "chupa". Vinginevyo, kuweka kwa "chupa". Na nini
hii ina maana sasa ni siwezi kwenda kwa njia hii na kufuta yote ya
wale mstari wa kanuni.
Na wakati mimi kusema, kiasi fulani ridiculously, kwamba hii ni sasa
sexier, ni sexier katika aina ya hisia Stylistic.
ukweli kwamba functionally, kanuni hii ni kweli kwenda
kufanya exact kitu.
Na hata ingawa inaweza kuangalia kidogo cryptic kwa mara ya kwanza
mtazamo, kwa sababu tumekuwa si kuonekana hii ya kujenga mbele, mimi d
wanasema kuwa ni hatimaye kwenda kuwa hivyo zaidi
someka na rahisi sana kwa sisi binadamu kwa aina ya
kuelewa, kwa sababu sasa unaweza kusoma tu
code wote kwenye mstari mmoja.
Ni sawa bado katika roho na kama, ambapo hii ni
hali na basi hii ni nini ndani ikiwa na hii
ni nini ndani ya mwingine.
Lakini tunaweza kufanya hivyo tu zaidi elegantly.
>> Na kama mimi sasa kurejea terminal yangu, baada ya kufutwa wote
wa wale mistari na badala yao tu wale wawili,
recompile, re-kukimbia chupa ya bia na 99, taarifa kwamba yangu
sarufi ni, kwa kweli, bado sahihi.
Hivyo tena, kitu kuanza.
2 chupa ya bia, 1 chupa ya bia.
Looks haki.
Yeah.
Hivyo kuna tuna mengi zaidi succinct ufumbuzi.
Hivyo hii, pia, kama wewe kupata zaidi starehe na C, si
lazima kwa pset kwanza au hata wa pili, lakini
kutambua kwamba hawa constructs wanaweza kuruhusu sisi kufanya mambo milele
zaidi elegantly.
Sasa hebu kufanya moja nyingine kitu hapa.
Hebu kwenda mbele na kufungua return1.c.
Sasa hebu kuanza kutatua tatizo jingine katika njia ambayo
inaruhusu sisi kuandika kisasa zaidi code.
>> Hivyo hapa ni rahisi kidogo mpango ambao lengo katika maisha
ni increment maadili.
Na kweli, hebu kuchukua hatua nyuma.
Hebu kufanya hili manually.
Basi mimi kufanya ni pamoja na int kuu (utupu).
Na napenda kuwaita hii increment.c.
Na nini nataka kufanya?
Mimi nina kwenda mbele na kusema kitu kama -
itakuwa sisi kupiga namba moja -
int x.
Hivyo x int anapata 2; x printf ni% d, mstari wa mwezi, x.
Hivyo mimi nina kuandika haraka, lakini aina ya mambo ya ukoo sasa.
Kisha mimi naenda kufanya x + +.
Kisha mimi naenda magazeti kwamba hukumu hiyo tena.
Na kisha mimi naenda kurudi 0 tu kuacha mpango.
Haki zote, hivyo hii ni programu ambayo
nyongeza idadi.
Ni kwanza kwenda initialize kitu 2, na kisha ni
kwenda increment hiyo na magazeti tena.
>> Hivyo hebu kukimbia increment, incredibly rahisi mpango.
Lakini tuseme sasa kwamba mimi nataka mchemraba thamani, hivyo kufanya
kitu fulani holela.
Na mimi kwa kweli wanataka kufanya x anapata mchemraba yake.
Hivyo mimi naweza kutumia kile kinachoitwa kazi pow, lakini mimi si
kweli kujua kwamba ni ambapo bado.
Hivyo nina kwenda kufanya njia hii ya kizamani.
x mara hii ni sawa na x mara x mara x.
Hivyo nina cubing thamani, kuzidisha ni kwa yenyewe tena
na tena na tena, ili tuweze kupata nguvu
ya 3 katika kesi hii.
Hivyo sasa idadi mimi lazima magazeti lazima, kama tutaweza kuona
hapa - kufanya increment, hivyo ni kweli si kweli increment
tena, lakini tutaweza kuondoka jina peke yake -
2 na kisha 8.
Sasa, tuna mwanzo wa fursa kwa finslipades
hapa, ambapo jambo hili cubing ya kuzidisha idadi
na yenyewe kwa yenyewe kwa yenyewe anahisi kama hii inaweza tu kuwa
muhimu kuwa kama kazi, kiasi kama mtu aliamua
miaka iliyopita - unajua, aina ya manufaa kama mmoja wetu anakaa chini
na anaandika printf ili wengine wa dunia unaweza kutumia,
kwa nini sio sisi kukaa chini na kuandika kazi kuitwa mchemraba
kwamba hana huu cubing kwa ajili yetu ili sisi hawana manually
kutekeleza dhana ya maadili cubing hapa?
>> Basi mfano rahisi, lakini hebu kwenda mbele na kutumia hii ni kama
fursa ya kuandika kazi zetu wenyewe.
Hivyo hivi sasa, tumekuwa tu kutumika kuu, na tumekuwa kutumika nyingine
watu kazi, lakini hatuna imeandikwa yetu wenyewe.
Hivyo hapa sisi kwenda.
Mimi nina kwenda mbele na kuandika kazi kuitwa mchemraba.
Na mimi naenda kuwa ni kuchukua pembejeo.
Hivyo mchango wake ni kwenda kuwa integer.
Na kile ni kwenda kufanya?
Ni kwenda kutangaza pato int = pembejeo mara pembejeo
mara pembejeo.
Na kisha itakuja kurudi kwamba pato.
Na kisha mimi kuwa maalum sasa.
Kazi hii ni ya kwenda na kurudi int.
Hivyo hapa basi ni jinsi wewe d kuandika yako majukumu wenyewe.
Wewe kwanza kuamua nini jina la yako
kazi kwenda kuwa.
Na kwa ujumla, kitu maelezo ni nzuri, hivyo mimi itabidi
kuiita mchemraba.
Basi una bayana nini ni kwenda na kurudi, nini
matokeo yake itakuwa.
Na hatuna chaguzi kwamba wengi bado.
Int, char, kuelea, bool, kamba.
Kwa sasa, mimi naenda kwa fimbo na int, kwa sababu mimi nataka
kurudi integer.
Basi una bayana nini pembejeo yake, kama yapo, ni.
Na kama mchemraba inachukua hoja, inachukua kitu kati ya
mabano, una kutoa hoja kwamba jina ili
unaweza kuiita kitu kama wewe ni kutekeleza au kuandika
kazi hii, na una kuwapa aina, ambayo katika hii
kesi ni kwenda kuwa int.
Hivyo katika muda mfupi, mchemraba ni kazi ambayo inachukua integer
kama pembejeo na anarudi integer kama pato.
>> Hivyo ni nini kufanya na pembejeo kwamba?
Naam, katika mstari wa 14, mimi kutangaza variable kuitwa pato, na mimi
hawawajui ni thamani, mara pembejeo pembejeo mara pembejeo.
Na kisha mimi kurudi pato.
Hivyo ni jinsi gani mimi kutumia hii basi?
Nini mimi kubadili wahusika hawa yalionyesha kwenye mstari
7 kwa kuwa, unafikiri?
Watazamaji: [inaudible].
DAVID J. Malan: Yeah, hivyo mchemraba wa x.
Hivyo x ni kutofautiana, maana yake ana baadhi ya thamani.
Bahati nzuri, ni ya aina integer.
Na kwa sababu x ni int, kwamba maana siwezi kupita katika mchemraba.
Na hata kama mimi nina kuu thamani ya x kwa thamani
ya x mchemraba, kama ilivyokuwa hivi sasa, wakati wowote
kuwa ishara sawa na mstari wa kanuni, stuff juu ya haki
anapata kunyongwa na kisha anapata kwa ajili ya
thamani upande wa kushoto.
Hivyo utaratibu wa shughuli ni kama tunataka matumaini.
Hivyo gani kazi hii?
Vizuri, basi mimi kwenda chini hapa.
Hebu kufungua terminal yangu dirisha.
Hebu kufanya kufanya increment, Ingiza.
"Kinachojitokeza tamko la 'mchemraba' kazi ni batili katika
C99 ". Kama kando, C99 inahusu C lugha kama ilivyokuwa
inavyoelezwa katika 1999, ambayo ilikuwa update juu ya toleo kutoka
1989, ambayo ni update juu ya awali.
Basi hiyo ni njia kwamba wote.
>> Hivyo ni nini maana ya kwamba "thabiti tamko la
'mchemraba' kazi ni batili? "Ni haki hapa.
Ni haki pale katika mstari 12.
Watazamaji: [inaudible].
DAVID J. Malan: Nini hiyo?
Watazamaji: Ni si kabla.
DAVID J. Malan: Ni si kabla.
Hivyo hii ni kitu.
C ni aina ya kijinga, au C compilers ni aina ya kijinga.
Wao kwa kweli kufanya kile tu wewe kuwaambia cha kufanya.
Na wao, hasa, tu kusoma code yako juu hadi chini,
kushoto na kulia.
Hivyo kama mkusanyaji, Clang, ni kusoma code yako, mstari 1, ni
takwimu nje jinsi ya kufanya hili.
Oh, hapa inakuja kuu.
Okay, basi mimi kwenda mbele na kutangaza x kutofautiana.
Hebu magazeti kitu.
Line 7, nini heck ni mchemraba?
Ni si alitangaza katika stdio.h.
Ni haina kuja na C. Mimi sijui nini cha kufanya.
Na hivyo Clang tu Bails na quits na ujumbe kuwa kosa.
Hivyo tunaweza kurekebisha hii katika michache ya njia.
Tunaweza kufundisha Clang nini mchemraba ni kwa kuwa tu kusonga ambapo
tamko ni.
Hivyo mimi na kata na pasted ni atop kuu.
Sasa kutambua kwamba kwa sababu tu ni kuu tena kwanza, ni
bado kunyongwa kwa default.
Kuu ni kuu.
Ni kazi default jina.
Haijalishi ambapo ni katika faili.
Lakini angalau sasa Clang ameona mchemraba kabla mimi matumizi yake.
Basi hebu angalia kama Clang ni furaha sasa.
Matokeo increment, haikuwa kukusanya wakati huu.
>> Hebu kukimbia increment.
Na hakika, inaonekana kuwa kazi.
Sasa, unaweza kuja na matukio ambapo hatimaye
siyo upembuzi yakinifu na kuweka kila kazi
juu ya kila kazi nyingine.
Utasikia kukwama katika kitanzi hii usio na ukweli wowote,
ambapo guy hii anataka kuwa hapa lakini hii
guy mahitaji ya kuwa huko.
Hivyo kwamba haifanyi kazi.
Hivyo nashiriki, C lina ufumbuzi zaidi ya kifahari.
Mimi naenda kuweka hii nyuma ambapo ilikuwa, kwa sababu tu mimi
wanapendelea, kama suala la kanuni, kwamba kuu zote kuwa
saa ya juu, kwa sababu ni nzuri tu na kuona nini mpango huu
gani na default.
Na kile Mimi naenda kufanya hapa ni kutangaza kile kinachoitwa
mfano.
Mimi naenda re-kutangaza mchemraba wangu kazi kwa literally
kuiga na pasting.
Kweli, kwamba si halisi.
Hivyo literally kuiga na pasting line 15
juu juu ya mstari 6.
Haijalishi nini mstari huu mwisho juu juu.
Hutokea kwa kuwa kwenye mstari 4.
Lakini haina kuwa kabla kuu.
Lakini taarifa tofauti.
Line ncha 4 kwa semicolon, ambayo ina maana hey,
Clang, kuchukua neno langu kwa ajili yake kuwa kuna kazi
kuitwa mchemraba kwamba inachukua int na anarudi int.
Lakini mimi nina gonna kukuambia nini ni bado.
Tu kujua kwamba mimi ahadi kukuambia hatimaye.
Na hakika, sasa ni sawa kwamba hii ni chini chini.
>> Hivyo hii kwa ujumla ni vizuri, kwa sababu kisha saa ya juu ya
faili yako, unaweza tu kumkasirisha mbali, haraka-moto, mstari mmoja
kila, nini majina ya kazi yako ni, nini wao
pembejeo ni, nini matokeo ya kazi zao ni.
Na kuwa wazi zaidi, pembejeo kwa ujumla maana yake hoja au
parameter, sawa.
Pato maana kurudi thamani, ni nini
mkono nyuma yangu.
Hivyo katika kesi hii hapa, mchemraba ametangazwa saa ya juu, lakini
defined, inayojulikana kama kutekelezwa, chini.
Hivyo sasa hebu rudi hapa na kuendesha upya hii.
Hivyo sasa napenda kwenda mbele na kuendesha upya kufanya, re-run increment.
Na sasa inaonekana kufanya kazi nzuri tu.
Hivyo sasa tunaweza kwenda mbele na sababu nje kitu kama
bia mfano katika toleo hii ya nne.
Hivyo basi mimi kitabu chini hapa.
Na taarifa kwamba mimi aina ya alichukua somo hili moyo tu sasa.
ukweli kwamba mimi alikuwa akiimba Stanza sawa tena na
tena na tena, sawa chorus line katika wimbo, waliona
like nini si mimi sababu ya kwamba nje katika kazi?
Na kwa kweli, hii inapaswa kuwa moja ya motisha.
Licha ya ukweli kwamba mtu mwingine katika dunia kutaka
kutumia kazi Cube -
hiyo ni sababu nzuri ya sababu kitu nje na kuandika yako
mwenyewe desturi kazi -
kama kuna chunk ya maadili katika mpango wako kwamba tu hufanya
dhana hisia, kwamba aina ya kutaka kuwapa
jina - kama katika kesi hii chorus, -
basi unaweza vile vile kuandika kwamba kama kazi tofauti.
Huna kuandika kila kitu katika kuu ikiwa ni tu
anahisi safi ili kujitenga nje na kuwapa jina.
>> Hivyo katika kesi hii hapa, taarifa kwamba mimi kuwa na maoni atop
kazi hii ya kwamba tu anaimba kuhusu
maalum ya idadi ya chupa.
Ona hapa kwamba mimi si haja ya simu hizi
mambo ya pembejeo na mazao.
Kwa kweli, wakati huo mimi tu kuitwa pembejeo yangu b kwa chupa.
Na ilani hapa, utupu anapendekeza nini?
Hiyo chorus -
Watazamaji: Je, si kurudi.
DAVID J. Malan: Je, si kurudi thamani.
Na kwa kweli, kazi hawana kurudi maadili.
Wanaweza tu kufanya kitu.
Wanaweza kuwa na kile kinachojulikana madhara, ambayo katika hii
kesi ni tu rundo zima la uchapishaji kwenye screen.
Hivyo taarifa kwamba kanuni hii hapa, mimi literally tu aliiba kutoka
mfano uliopita.
Tofauti tu ni badala ya kutumia i kama yangu
variable, mimi nina sasa kutumia b kama variable yangu.
Hivyo nina b chini hapa, nina b chini hapa, nina b
bala 1 chini hapa.
Lakini code ni sawa.
Lakini tu kuonyesha jinsi sasa tunaweza kutumia hii, basi mimi kwenda
mbele na kweli mabadiliko ya hii kuwa kwa kitanzi.
kwa (int i = n; i> n; i -).
>> Hivyo nimekuwa kuibiwa kwamba kutoka mfano wetu uliopita.
Hapo awali, ni katika mstari 37 kwamba napenda kuanza
kuimba wimbo huu annoying.
Lakini badala yake, mimi nina kwenda tu sasa kuwaita chorus ya i.
Done.
Hivyo sasa katika kila iteration ya kitanzi hii, mimi wito nyingine
kazi, chorus, kwamba mimi kilichotokea kwa kuandika.
Haikuandikwa na mtu mwingine miaka iliyopita.
Lakini chorus, wakati huo huo, anatumia printf na magazeti
nje hizi mistari minne.
Lakini ukweli kwamba mimi nina wito chorus tena na tena katika
kitanzi ina maana kwamba mimi nina kwenda kupata, mwishoni sana,
exact wimbo kama nina hivi sasa.
Hivyo katika muda mfupi, sasa kama mimi kuangalia nyuma katika code yangu, hata ingawa
functionally hii ni sawa, taarifa kwamba ni
mapya ya kupata hata zaidi someka.
Mimi si hasa kujua jinsi GetInt
ni kutekelezwa.
Kusema ukweli, sijui jinsi chorus ni kutekelezwa.
Lakini haijalishi kwangu.
Mimi sijali, kwa sababu sasa mimi unaweza aina ya, kama binadamu, kusoma
hii chini kutoka juu hadi.
Na kwa sababu kazi ni jina lake kutokana na yale waliyo
kufanya, code yangu inazidi someka.
Na kama mipango yetu kupata magumu zaidi -
na mwisho wa muhula, wewe utakuwa kuandika mamia ya mistari
ya maadili katika lugha kama PHP na JavaScript na kama -
utapata kwamba ni rahisi sana kuliko kuweka wimbo wa
nini umefanya kosa.
Na wakati wa kuanza kushirikiana na marafiki au
washirika au wafanyakazi wenzao, wewe utakuwa na uwezo wa kuandika zaidi
mkubwa mipango kwa kuanza mazoezi haya ya msingi
jengo vitalu.
>> Hivyo kwa kuwa alisema, kwa nini sio sisi kuiita siku?
Na sisi kuona juu ya Jumatano.
[Applause]