>> [Music kucheza]
DAVID Malan: Hello, kila mtu.
Hii ni supersection CS50.
Sehemu kupewa si kuanza kwa wiki nyingine.
Na hivyo leo, mimi niko hapa with--
>> MARIA: Maria.
DAVID Malan: --to kweli tuangalie tatizo
kuweka moja, kozi wiki ya kwanza ya nyenzo,
kupata wewe oriented na CS50 IDE, kidogo ya Linux, mfumo wa uendeshaji hiyo ni
mbio juu ya IDE, ikiwa ni pamoja na kuangalia baadhi ya mpito
kutoka Scratch kwa C kuongoza hadi tatizo kuweka moja.
>> Hivyo bila wasiwasi zaidi, katika tatizo kuweka moja,
wewe ni kwenda kuwa kuletwa kwa CS50 IDE, ambayo
ni programu hii ya mtandao msingi mazingira ambayo sisi kutumia ili
kuandika mipango.
Imekuwa ni iliyoundwa na kuangalia sana kukumbusha ya kompyuta ya kawaida
mfumo wa uendeshaji mbio mfumo uitwao Linux.
Lakini ni katika kile kinachoitwa wingu, ambayo ina maana kila mtu katika darasa
Unaweza kweli kuwa yake akaunti mwenyewe na matumizi yake, pia.
>> Kwa hiyo wengi pengine kamwe kutumika Linux mazingira kabla au labda
hata mstari amri mazingira.
Na mstari amri mazingira ni tofauti.
Ni wote textual.
Ni amri zote keyboard.
Na ni hakuna kipanya, hakuna icons, mazungumzo madirisha hapana, hapana menus.
Ni rena asilia.
Hivyo kwa mara ya kwanza, ni namna anahisi kama hatua ya
nyuma katika suala la sophistication.
Lakini kuishia kuwa mengi nguvu zaidi, kwa hakika,
kwa kompyuta mwanasayansi, hatimaye.
>> Hivyo hebu tuangalie.
Mimi hapa katika CS50.io, kupitia ambayo unaweza kuingia katika CS50 IDE.
Na kiasi kama katika Scratch, kuna maeneo matatu ya msingi ya screen hii.
Hivyo upande wa mkono wa kushoto, tuna nini itakuwa browser faili.
Na kuna folder hili katika juu, ambayo ni sasa hivi tupu
tangu mimi got kuondoa wangu wote mafaili kabla supersection.
Na hapo ndipo tutaweza kuokoa files C kwamba sisi kuandika.
Kulia juu, tuna mahali ambapo wote wa kificho yetu kinaendelea kupata kuandikwa.
Na hakika, kama mimi bonyeza pamoja na hayo, hii ni kwenda basi mimi kuchagua New faili.
Na hapa naweza kuanza kuandika C kificho au, kweli, idadi yoyote ya lugha nyingine.
>> Na kisha chini ambapo ni anasema jharvard @ ide50-- na yako mapenzi
kusema kitu kidogo different-- kilichokuwa hii inaitwa?
Terminal dirisha.
Naam.
Hivyo dirisha terminal ni kinachojulikana mstari amri
interface kupitia ambayo unaweza kuingiliana kwa msingi mfumo wa uendeshaji.
Na kwa sasa, tunakwenda kufanya matumizi kidogo sana ya Haya
tu kukusanya, kuangalia ujumbe wa makosa kwamba sisi kuona,
na kuendesha mipango yetu.
Lakini hatimaye, tunakwenda kufanya hivyo zaidi, kama vile.
Na unaweza hata kufunga programu na kusimamia workspace yako
ndani ya CS50 IDE, kama vile.
Lakini zaidi juu ya kwamba wakati mwingine.
>> Basi hebu kwenda mbele na kuandika mpango rahisi sana tu
kupitia kujipima nguvu ya hello.c, ambayo ni labda
rahisi mpango tunaweza kuandika.
Nimekuwa tayari imefungua tabo mpya.
Mimi nina kwenda kwenda mbele na kusema ni pamoja na kiwango io.h.
Kisha int kuu (utupu).
Na kisha printf ("hello, ulimwengu" backslash n, kunukuu karibu,
mabano karibu, na semicolon.
>> Sawa.
Hivyo sasa taarifa dirisha yangu ni untitled.
Hivyo mimi nina haraka sana kwenda kwenda hadi faili, Hifadhi.
Na ni muhimu kwamba Natoa wito huu si "hello."
Hivyo makosa ya kawaida sana, hasa katika tatizo kuweka moja,
ni kuwaita ajali tu yako programu ya "maji" au "tamaa" au "Mario"
au "mikopo" au kama.
Lakini kwa kweli wanataka kufanya kuhakikisha kuwa faili ugani
kwa sababu hii ni njia pekee ambayo compiler na pia kificho mhariri
anajua kwamba uko kweli kuandika C kificho.
Hivyo basi mimi kwenda mbele na bonyeza Hifadhi.
>> Na sasa, pia, nini CS50 IDE amefanya kwa ajili yetu ni pia ni
syntax yalionyesha kila kitu.
Hivyo ni alifanya kila kitu colorful sana.
Na lengo zima la hiyo siyo kazi.
Ni tu kuteka macho yangu vipande conceptually mbalimbali
ya mpango huu.
Basi hebu kwenda mbele na kukusanya hii.
Na siwezi kukusanya hii katika michache ya njia.
Na katika wiki moja, njia umri wa kwenda shule tulivyofanya
ilikuwa literally katika amri line-- "Clang hello.c."
Na kisha mimi hit Enter.
Na kitu inaonekana kutokea katika dirisha wastaafu.
Lakini nini alifanya mabadiliko katika IDE?
Ambapo, tena, IDE tu ina maana Integrated Maendeleo ya Mazingira.
Ni njia dhana ya kusema maendeleo haya shirikishi
mazingira kwa ajili ya kuendeleza programu.
Hivyo nini mabadiliko katika UI?
Ni kitu gani taarifa hiyo ni tofauti, Maria?
>> MARIA: Mimi niliona kitu chini ya IDE50 folder hapa.
>> DAVID Malan: Yeah.
Hivyo hapa, si tu kufanya tuna "hello.c."
Sisi pia kuwa "a.out," ambayo ni aina ya jina bubu kwa mpango.
Lakini kwa kweli, ni jina default kwa Mpango wakati wewe tu kukusanya code yako
na usimwambie compiler nini faili pato.
Hivyo kama nataka kukimbia hii, mimi haja ya kuwaambia compiler--
au tuseme, mimi haja ya kuwaambia workspace kwamba mimi
wanataka kuendesha programu inayoitwa "a.out."
Kuingia.
Na kuna "hello, dunia. "sasa" ./ ".
ni kweli muhimu.
Hata kama kawaida sisi tu kuandika majina ya amri,
wakati ni mpango wameweza Imeandikwa, huna nataka kusema "./"
kwa sababu hiyo waziwazi anaelezea Linux kwamba unataka kuendesha programu inayoitwa
"a.out" hiyo ni katika hili, ambapo nukta ina maana hii directory kwamba mimi nina sasa
katika, ambayo hufanyika kuwa aitwaye workspace, "a.out.
Kwa sababu kama mimi tu alisema "a.out," kuingia, Mimi nina kwenda kupata "a.out amri si
kupatikana "kwa sababu computer-- kwa sababu mimi zuliwa "a.out,"
hakuwa na kuja na computer-- hajui wapi kuangalia kwa ajili yake,
hata kama ni haki chini ya pua yangu, hivyo kusema.
SAWA.
Hivyo tunaweza kubadili hali hii kwa kuwa "Clang-o hujambo hello.c."
Na kama mimi hit Enter, mpango gani hii ni kwenda pato kwa ajili yangu?
Nini jina la faili?
Yeah, katika nyuma.
Hiyo ni sawa. "Habari."
Hivyo "hello" ni kwenda kuwa jina la mpango
kwa sababu tumekuwa kutumika kinachojulikana mstari amri hoja, ambayo ni tu
njia ya kubadili tabia ya compiler kwa kweli pato
maalum faili jina.
Na hakika, kama mimi kuvuta nje na kuangalia juu hapa,
sasa nina si tu "a.out" na "hello.c" lakini pia "hello," vilevile.
Hivyo sasa siwezi kufanya "./hello," kuingia.
Na kuna "hello, ulimwengu."
Lakini lastly-- na hii sasa kuwa mkataba
tunatumia katika muhula, typically--
ni unaweza pia tu kusema "kufanya hello."
Na hakika, ni kusema ni juu tarehe sababu tayari ipo.
Hebu kwenda mbele na kuondoa, na rm amri, wote "a.out" -
na kusema "kuondoa mara kwa mara faili a.out?"
Hiyo ina maana tu, ni wewe uhakika unataka kufuta?
Mimi nina kwenda kusema ndiyo.
Na kisha mimi nina kwenda kuondoa "hello" lakini si "hello.c."
Mimi nina kwenda kusema "ndiyo" waziwazi, lakini "y" inatosha, kama vile.
>> Na sasa taarifa kama mimi aina ls-- ambayo, kukumbuka,
ina maana list-- ni orodha yote ya mafaili kwenye folda yangu.
Na hakika, kama mimi kuvuta nje na kuangalia juu kushoto,
ni unathibitisha kwamba nini katika folda hii, hata
ingawa ni kinachoitwa kama IDE50 hapa na si workspace, ni tu "hello.c."
Hivyo sasa chini hapa, kama mimi Je, "kufanya hello," kuingia,
sasa naona amri kwa muda mrefu lakini amri ya kisasa zaidi kwamba itakuja
kuwa na manufaa katika wiki ijayo.
Na sasa siwezi kusema "./hello."
>> Basi hebu kuchukua ziara ya haraka baadhi ya Linux wengine amri.
Kisha kwa nini sio sisi kuchukua hatua nyuma na kwa kweli kuangalia C zaidi
ujumla, kipindi cha mpito kutoka Scratch kwa C, na kisha kuhitimisha kwa kuangalia
Tatizo la kwanza katika kuweka katika C. zote haki.
Hivyo mimi nina kwenda mbele na tu safi up workspace yangu na Kudhibiti-L tu
kuweka screen nadhifu.
Lakini hiyo haina kazi athari vinginevyo.
>> Kumbuka kwamba tumeona amri kadhaa sasa.
Hivyo tumeona Clang, ambayo kwa ujumla wewe hautakuwa na kutekeleza manually tena.
Tutaweza badala yake kutumia kufanya.
Lakini pia tuliona ls, ambayo inaonyesha orodha ya files katika saraka yangu.
Na sasa kwa nini ni there-- kuna mawili mafaili sasa, "hello" na "hello.c."
Kwa nini kuna nyota au kinyota baada ya "hello"?
Je, kuwa yanamaanisha, kwa kuzingatia juu ya yale tuliona katika wiki moja?
Je, unafikiri?
Je nyota yanamaanisha?
>> MARIA: For-- mpango "hello"?
DAVID Malan: "Habari *".
Naam.
Oh ndio?
Loo, kutekelezwa.
Hiyo ni sawa.
Hivyo kwamba maana yake ni kwamba "hello" ni kutekelezwa.
Hivyo kweli, kwamba ni kwa nini Siwezi kufanya "./hello."
Sawa.
Hivyo kile kingine naweza kufanya katika hapa?
Naam, ni zamu nje naweza pia kujenga directories.
Hivyo basi mimi kwenda mbele na kujenga, Kwa mfano, "pset1" directory.
Na tatizo kuweka vipimo itakuwa na wewe kufanya hasa hili,
hivyo huna kukumbuka leo.
Lakini "mkdir pset1" inaonekana kuwa na athari hakuna.
Lakini tena, hakuna ujumbe wa kosa kwa ujumla ni jambo jema.
Hivyo kama mimi aina "ls" now-- ah, sasa Nina faili la kutekelezwa aitwaye
"hello," C faili inayoitwa "hello.c."
Na kisha kufyeka trailing, hivyo kusema, maana yake ni kwamba hii ni directory.
>> Hivyo kweli, sasa nataka kufungua.
Na mimi si mara mbili click juu yake kama katika GUI, mazingira graphical.
Mimi badala kusema "cd pset1."
Kuingia.
Hakuna kitu ya kuvutia inaonekana kuwa kilichotokea isipokuwa haraka mdogo wangu
here-- hii ni njia Linux ya kuwakumbusha nami pale nilipo, ili kile folder ni wazi.
Ni kuwaambia tu mimi wazi kinyume na graphically.
Na kama mimi aina "ls," kwa nini mimi kuona mwingine kuchochea mara moja, unafikiri,
wakati mimi orodha ya yaliyomo ya pset1?
MARIA: Pengine hawana kuwa na kitu chochote katika huko.
DAVID Malan: Yeah.
Hivyo basi tuna si wazi kuumba kitu chochote katika huko
kwa sababu mimi tu kuundwa directory.
Sasa, kama mimi alitaka kujenga file-- kwa Mathalani, mimi naweza kuunda faili mpya.
Na kisha mimi naweza kwenda Ila na ila ni kama,
kama, "mario.c" kama wewe ni kufanya toleo la pset moja ya kiwango.
Na kisha, kama yoyote ya Mac au PC, tu kuchagua folder "pset1, Hifadhi.
Na sasa faili ni tupu.
Lakini hebu kuvuta tena kwa mara ya pili.
Hebu kufanya ls hapa.
Sasa tunaona "mario.c".
>> Hivyo kuna wachache amri nyingine ambazo ni thamani ya kuweka akilini zaidi time--
wazi, au Kudhibiti-L ni nini nimekuwa wamekuwa kupiga; mkdir tumeona;
rm tumeona, kama vile, ambayo ni kwa ajili ya kuondoa au kufuta faili.
Jihadharini unaweza also-- na kama ukiangalia katika tutorials online, itabidi Rm -rf
Ni njia ya kawaida sana ya kusema kufuta folda kwamba ina mambo ndani yake.
Tu kuwa super, super makini.
-rf ina maana recursively kufuta chochote ni
wewe ni kujaribu kufuta na kwa nguvu kufuta.
Hivyo kujirudia njia ikiwa ni pamoja na folder folder na folder na folder,
kufuta yote ya yao.
Na kwa nguvu ina maana hawana hata kuuliza mimi ndiyo au hapana, mimi nipo uhakika?
Hivyo ni njia super hatari ya kufuta kura ya mambo haraka.
Lakini mara nyingi beware-- pia anafanya intrepid mwanafunzi ajali kufuta, kusema, pset
moja, kwa mfano.
>> MARIA: Na kama wao tu kufanya r, wao wanaenda
kuwauliza kuhusu kila faili moja.
>> DAVID Malan: Ni lipi lililo kiasi annoying.
>> MARIA: Naam.
>> DAVID Malan: Hivyo ndiyo sababu hivyo wengi wetu, binafsi pamoja,
am katika tabia ya kutumia -rf.
Lakini ni hatari.
Hivyo mnunuzi Jihadharini.
Na kisha mv ni aina ya kuvutia aitwaye.
Hivyo hii ni amri ya hoja, ambayo anahisi kidogo weird
kwa sababu unaweza kweli kuitumia hoja files kutoka sehemu moja hadi nyingine.
Kwa mfano, tuseme kwamba mimi messed up.
Tuseme kwamba mimi umba faili mpya kwa pset.
Na mimi kuokolewa kama "greedy.c."
Lakini nadhani ajali ila ni katika IDE50-- hivyo katika workspace yangu yenyewe
na si katika pset1.
>> Unaweza kuona kama kiasi juu kushoto.
Kuna "greedy.c." Ndiyo
Na kuna ufumbuzi chache.
Hivyo moja, naweza kutumia super user-kirafiki njia
ya tu akawatoa na kuacha ni.
Na kwamba ingekuwa kweli kurekebisha tatizo hili.
Lakini leo hii, sisi ni kujaribu kuangalia njia zaidi arcane, lakini kwa nguvu
ya kufanya hivyo.
Hivyo basi mimi kuchukua "ls" katika pset1.
Na mimi tu kuona "mario.c."
Hebu kwenda mbele na kufanya "cd ..".
Hivyo CD tena ni mabadiliko directory.
".." Maana yake nini, ingawa?
Mara ya mwisho mimi alisema "cd pset1 "kwenda katika pset1.
Hivyo wakati mimi kusema "cd ..", je, Mimi kufanya?
Nyuma.
Naam.
>> Hivyo ni kwenda kwa kile kinachoitwa mzazi.
Kwenda ngazi moja hadi, kama exiting nje ya folder.
Hivyo kuingia.
Na hakika, kuangalia nini alifanya.
Ni wakiongozwa mimi tu katika workspace badala ya ndani pset1, ambayo ni katika workspace.
Na sasa kama mimi aina "ls", kuna rundo zima la mambo ya ajabu.
Katika kuna "greedy.c".
Hivyo sasa napenda kutumia mv literally hoja "greedy.c" katika pset1.
Na hivyo mengi ya Linux amri kazi hasa kama hii.
Wao kuchukua hakuna hoja au wao kuchukua moja Hoja au wao kuchukua mbili mstari amri
hoja na kadhalika.
Na katika kesi hii, ni halisi kufanya nini
inasema, angalau succinctly-- hoja ya greedy.c ndani ya pset1.
Kuingia.
Kitu inaonekana kutokea.
Lakini kama mimi kufanya ls tena, tamaa ni gone.
Na kama mimi kufanya "cd pset1", kuingia, na kisha ls tena, sasa ni katika mahali pa haki.
Kama kando, ikiwa kwa baadhi reason-- hasa
kama una vipindi kuunganishwa mtandao
au wewe ni kutembea karibu chuo na Laptop yako mfuniko
kufungwa na kisha kufungua it up tena na workspace yako
Inaonekana kwa kiasi fulani nje ya Sync, hakuna mpango mkubwa.
Reload tu kisakuzi chako dirisha, na ni lazima
resync ili mkono wa kushoto browser faili inaonekana hasa
kama dirisha wastaafu.
Wasiwe na wasiwasi.
Wakati katika shaka, upya ukurasa, hivyo muda mrefu kama umehifadhi mafaili tayari.
SAWA.
Hivyo mv pia inaweza kutumika rename files.
Na hebu tuangalie hii amri ya mwisho hapa.
Hivyo suppose-- na hii ni super kawaida, pia, mapema.
Baadhi ya wanafunzi mara kwa mara kuunda faili kuitwa, hebu say-- nini mtu mwingine?
Kama "WATER.C."
Hivyo mimi itabidi yell, kwa hakuna sababu, katika mechi zote.
Lakini hii si jina sahihi kwa file
kama tu kwa sababu tatizo letu kuweka vipimo Sikuwaambieni
kuokoa faili kama wote kofia "WATER.C."
Badala yake, tunatarajia "water.c" katika lowercase.
Na, kwa kweli, hii ni tatizo kwa sababu check50,
Mpango wewe ni kwenda kukutana katika tatizo
kuweka moja kuwa moja kwa moja vipimo usahihi wa kanuni yako
ni kwenda yell saa wewe kama hawawezi kupata "water.c" katika lowercase wote.
>> Kwa hiyo mimi haja ya kurekebisha hii.
Njia nyingi tofauti kwa kufanya hivyo, kwanza ambayo
itakuwa Udhibiti-click au haki-click jina la faili na kubadili tu Rename.
Kabisa faini ya kufanya hivyo.
Lakini tena, leo, hebu kufanya hivyo kidogo fancier.
Hebu kutumia mv kubadili "WATER.C" na "water.c."
Hivyo unaweza pia kutumia hoja ya kwanza kubadili jina hilo kwa hoja ya pili
kama hoja ya pili ni si, katika kweli, folder au jina directory.
>> Sawa.
Na Mwisho, trick-- kidogo hivyo mimi nina katika workspace yangu directory kwa sasa.
Kama mimi wanataka kupata katika pset moja, Mimi hakika unaweza aina "cd pset1."
Lakini ni hivyo nyeti kwa aina ya "pset1" au tena majina ya faili au directory majina
bado.
Hivyo mara nyingi sana katika Linux, nini unaweza kufanya ni kuanza kuandika "PSE"
na tu kupata kuchoka, kugonga Tab, na basi kompyuta takwimu ni nje kwa ajili yenu.
Super manufaa kwa kupata katika tabia hiyo.
Kupata tu ni kama una faili nyingi au folders kuanzia
na herufi "p" au "ps," unaweza kuwa
aina chache zaidi kabla kompyuta anajua nini cha kufanya.
>> MARIA: Tunapenda njia za mkato.
>> DAVID Malan: Hii mapenzi kuokoa muda sana.
Na pia, kama sisi alisema katika hotuba, wewe Unaweza kitabu juu katika historia, juu na chini,
kupata hivi karibuni kunyongwa amri, kama vile.
Sawa.
Hivyo sasa, hebu kugeuka usikivu wetu nyuma kwa mpango rahisi, hello dunia.
Hivyo tumekuwa compiled hii hasa.
Na sasa kwa nini sio sisi kuchukua Kuangalia aina ya data
na kisha mpito kutoka baadhi sambamba Scratch vitalu C.
MARIA: Ajabu.
Hivyo sasa kwamba umefanya kuanza kuandika mipango katika C,
tunakwenda kuanza kuzungumza kuhusu aina ya data na vigezo.
Hivyo baadhi ya aina data kwamba wanataka kujua kuanzia sasa
ni wale ambao ni yalionyesha katika bluu.
Hivyo tuna int kwanza, ambayo inasimamia kwa integer.
Na kwamba ana integers, kama wewe anaweza kuwa guessed-- hivyo 1, 2, 3,
na integers nyingine yoyote kwamba unaweza kufikiria.
>> DAVID Malan: Na pia hasi.
>> MARIA: Na pia ndio hasi, yep.
Na 0.
Basi tuna ikifungwa, ambayo ni yaliyo idadi uhakika.
Hivyo hiyo ni namba zote halisi ambazo zina pointi alisema.
Hivyo 5.0, 5.2, na hata zaidi tarakimu baada uhakika decimal,
pamoja, na pia hasi ndio.
Basi tuna char ambayo ni tabia.
Hivyo nadhani kuongelea huu katika hotuba leo.
Lakini tuna barua, kwa example-- A, B, C-- ambayo yanaweza kuhifadhiwa kama Char.
Lakini basi tuna alama nyingi zaidi ambayo yanaweza kuhifadhiwa kama Char.
Na wale ni kuhifadhiwa kama ASCII.
>> Na kisha tuna bool, ambayo ni Booleans.
Na wale kutathmini kwa kweli au Uongo au 1 na 0, mtawalia.
DAVID Malan: Na kukumbuka kwamba bool linatokana na maktaba CS50.
Hivyo si kujengwa ndani C, lakini ni super muhimu
kuwa na dhana ya kweli na uongo.
Na hata kama wewe Huenda think-- ukweli na furaha.
Bool kitaalam mahitaji bits ngapi, kweli, kuwakilisha Kweli dhidi ya uongo?
Jinsi wengi bits unafikiri ungependa haja, maximally?
Naam, moja tu.
Hivyo zinageuka kuwa C hawezi kukupa moja tu kidogo.
Kitengo ndogo ya hatua unaweza kupata ni nane.
Hivyo ni fujo kidogo wao uko kutumia Byte nzima, au bits nane,
kuiwakilisha Kweli au uongo.
Lakini hiyo ni njia tu ni kutekelezwa katika C na maktaba CS50.
MARIA: Na kisha wale ambao tuko si kwenda kuzungumza kuhusu kama sana
haki now-- mara mbili, hiyo ni kwa ikifungwa kubwa.
Muda mrefu muda mrefu na mfupi ni pia kwa integers.
DAVID Malan: Kwa hakika.
Katika toleo hacker ya pset moja, sisi kweli matumizi ya muda mrefu kwa muda mrefu.
Lakini kwa toleo la kawaida, ni lazima kuwa muhimu.
MARIA: Moto.
SAWA.
Hivyo operators-- unapaswa kuwa pengine ukoo na zaidi ya haya.
Aidha, +; kutoa, -.
Kwa kuzidisha, tuna *.
Hivyo si X kwamba sisi kawaida kutumia.
Idara, tuna backslash.
Na modulo ni alama yetu ya mwisho kwamba sisi ni kwenda kuzungumza kuhusu hivi sasa.
Ni alama ambayo inaruhusu sisi kuchukua salio ya mgawanyiko.
Hivyo kama tuna 4% 2, 4 umegawanyika na 2 ni 2 na salio ya 0.
Hivyo 4% 2 ni 0.
4% 3 ni 1.
4% 5 ni 4, kama unaweza kuwa guessed.
Na kumbukeni kutumia yote haya waendeshaji kutumia sheria PEMDAS.
>> DAVID Malan: Hivyo kuwa wazi, kama wewe kufanya 4% 2, kwa nini ni kwamba 0, hasa?
>> MARIA: Kwa sababu 4 kugawanywa na 2 ni 2 na salio ya 0.
Hivyo modulo inatupa kwamba salio kama kinyume na matokeo ya mgawanyiko.
DAVID Malan: Na hakika, nini tutaweza kupata hii muhimu
kwa ni kwamba katika baadhi ya matatizo hiyo ni si lazima moja,
kama unataka kuwa athari za kuzuia mwenyewe
kwa mbalimbali ya idadi kama 0 kupitia kitu,
unaweza kutumia modulo kufungia mapema kuliko kama bilioni 2
au bilioni 4 thamani kwamba tumekuwa aliyesema kuhusu katika hotuba.
>> MARIA: Naam.
Na hata katika "tamaa" tupate.
DAVID Malan: Ndiyo, katika tatizo kuweka moja, kama vile.
MARIA: Yeah, ni nzuri.
DAVID Malan: Good ladha.
MARIA: Sorry.
Boolean expressions-- hivyo kwa waendeshaji Boolean,
sisi ni kwenda kuzungumza kuhusu zote ya hizi kwamba unaweza kuona hapa.
Hivyo sasa hivi, tuna mbili ishara sawa waliotajwa kwa usawa.
Basi hizo kwa kulinganisha.
Hadi sasa, tumekuwa tu kuonekana moja sawa na ishara.
Hapo ndipo sisi kuwapa thamani ya kutofautiana.
Hivyo kama tumeona int n = 5, kisha tumekuwa kupewa 5 kwa n kutofautiana.
Lakini kama tunataka kutumia == kwa kulinganisha, tunaweza kuangalia kama n == 5.
Na kama n == 5, kisha hiyo ni kweli.
>> Waendeshaji hivyo Boolean kuruhusu sisi, kimsingi,
kutathmini Boolean Maneno ya Kweli au Si kweli.
Hivyo si equals-- tuna alama ya kushangaa na usawa.
Hivyo tunaweza pia kuangalia kama n haina sawa 5-- hivyo n! = 5.
Chini ya, chini ya au sawa na, kubwa kuliko, zaidi au sawa na,
na kisha tuna mantiki NA na mantiki AU.
Na wale kuruhusu sisi kutathmini nyingi Boolean maneno pamoja
kimsingi kuja pamoja kama moja nzima Boolean kujieleza.
Hivyo kama tunataka kupata idadi, kusema, ambayo ni kubwa kuliko 5 lakini chini ya 15
wakati huo huo, tunataka kutumia mantiki NA operator ili kuona kama n ni
kubwa kuliko 5 && n chini ya 15.
DAVID Malan: Na hapa, pia, ni kweli rahisi
mapema kwa ajali tu kutumia ampersand moja
au moja wima bar.
Na pengine compiler mapenzi yell saa wewe kwa sababu wao kweli
kuwa na maana tofauti sana.
Kwa wale wadadisi, wao uko kutumika kwa ajili ya shughuli bitwise,
kazi ya bits mtu binafsi.
Lakini wewe kufanya unataka jozi wao hapa.
Na super muhimu ni kwamba Wa kwanza, ishara sawa,
ambayo ni alama usawa kama kinyume na zoezi operator.
>> MARIA: Na bar wima ni ziko kati ya Futa na marejeo.
DAVID Malan: Ndiyo.
Juu ya kawaida ya Marekani keyboard.
>> MARIA: Yep.
Basi hebu tuzame kwenye masharti kauli.
Katika Scratch, wameweza tayari kuona, pengine,
kama kauli kwamba kuruhusu kuangalia kama kitu fulani ni kweli, basi
kufanya kitu kingine.
Hivyo unaweza kuwa alitaka kuangalia kama sprite yako ni
kugusa baadhi sprite mwingine au mpaka wa screen yako.
Na kisha unaweza kuwa alitaka kumaliza mchezo au kufanya kitu kingine.
Hivyo syntax kwa kuwa ni "kama (hali)."
Hivyo kama sprite yako ni kugusa kitu, basi ni ndani ya braces curly.
>> Basi tuna ikiwa-kingine kauli.
Kingine inaruhusu sisi kufanya kitu kama hali kwamba sisi
kuangalia kwa katika mwanzo si kweli.
Hivyo kama sprite ni kugusa mpaka kufanya hivyo, mwingine kufanya kitu kingine.
Hivyo vinginevyo kufanya kitu kingine.
Basi tuna mfano mfupi kwa hili.
Hivyo kama (military_time <12), sisi wanataka printf "Habari za asubuhi!"
Mwingine tunakwenda printf "Habari za jioni!"
Basic mfano.
>> DAVID Malan: Mwema.
>> MARIA: Moto.
Hivyo basi, tuna kauli kubadili.
Kubadili kauli kwa ujumla can kuruhusu sisi kufanya mengi ya kitu kimoja
kwamba sisi tu kuongelea kuhusu na kama kauli.
Kwa mfano, sasa hivi tuna mkuu fomu ya taarifa kubadili
ambayo inaruhusu sisi kuchukua kutofautiana kuitwa n
na kulinganisha kwa mengi ya maadili tofauti, ambayo sisi hapa
wametoa wito constant1, constant2.
Tunaweza kuwa na mengi zaidi.
Na wale walioitwa kesi.
>> Hivyo kama tuna kubadili statement-- na matendo huu
tu kwa integers-- tuna kutofautiana katika kesi hii ndiyo n.
Kama n kutofautiana ni sawa na constant1, sisi
nitafanya baadhi snippet ya maadili ya au kitu ambacho tunataka kufanya.
Na kisha tunataka kuvunja.
Hivyo mapumziko ina maana kwamba Kauli kubadili
kuacha utekelezaji ikiwa n ni sawa na constant1,
na kisha mpango wako utaendelea.
Itakuwa kujinasua kutoka katika kubadili kauli na itabidi
kuendelea kufanya kitu kingine.
>> Hata hivyo, n haina sawa constant1, basi kesi kwa constant2
kuchunguzwa.
Hivyo kama n sawa na constant2, kwamba wengine snippet ya maadili ya itatekelezwa.
Na kisha kutakuwa na kuvunja kama kwamba ni sawa na hiyo.
Na kisha tunaweza kuwa also-- si lazima, though-- kesi ya msingi,
ambayo itafanyika ikiwa n haina sawa yoyote ya kesi kwa kuwa waliotajwa.
Na katika kesi ya msingi, sisi pia hawana haja ya mapumziko lazima
kwa sababu kauli kubadili watajua kwamba inahitaji mwisho baada ya chaguo-msingi
kesi kama hiyo kesi.
>> DAVID Malan: Lakini stylistically, sisi daima kuiweka katika huko.
>> MARIA: Naam.
>> DAVID Malan: Yeah.
Hivyo hasa wakati mapya nje, hasa kama miongoni mwa wale chini
vizuri, napenda binafsi tu kupendekeza fimbo na ikiwa
na ikiwa-elses na kama-kingine-kama-elses na kadhalika kama tu
kwa sababu wao ni mdogo moja kwa moja zaidi.
Hii ni optimization nzuri, au wakati mwingine hata aesthetically ni
hufanya kificho someka zaidi.
Na kwa kweli, pengine katikati ya muhula tutaona tatizo
kuweka ambapo ni tu inaonekana zaidi na rahisi kusoma kwa binadamu
kwa kutumia kauli kubadili.
Lakini msiwe na wasiwasi juu clinging hii mapema mno.
>> MARIA: Naam.
Kama una mengi ya kama kauli, inaweza tu kuwa someka sana.
Ni wanaweza kuwa haraka sana kwa wewe kwenda kwa njia hiyo.
Hivyo kubadili kauli wanaweza kuwa muhimu sana, pia.
Na pia, do not remember-- hawana kusahau kuweka mapumziko katika huko.
>> DAVID Malan: Je, si kumbuka hii.
>> MARIA: Kwa sababu basi unaweza kuanguka kupitia kutoka kesi moja hadi jingine.
Basi hebu kusema kwamba kesi constant1 hawakuwa na taarifa mapumziko ndani yake.
Kisha tupate kuanguka kwa njia ya ndani ya kesi constant2.
Na hatutaki kufanya hivyo ikiwa tumekuwa tayari kufikiwa kesi constant1
na ni sawa na n.
>> Hivyo, kwa mfano, kama tuna kutofautiana n kwamba lina idadi darasani,
na tunataka kuona nini kwamba tabaka la is-- ikiwa n sawa na 50,
tunakwenda magazeti "CS50 ni Kuanzishwa kwa Sayansi ya Kompyuta I. "
Kisha tunakwenda kuvunja.
Na hiyo ni yake.
Hata hivyo, n ni sawa hadi 51, tunakwenda
magazeti "CS51 ni Kuanzishwa kwa Sayansi ya Kompyuta II. "
Kisha, tena, tunakwenda kuvunja.
Hata hivyo, kama kisha sisi kuweka 124, 61, yoyote idadi mengine ambayo unaweza kufikiria,
au mpango si kwenda kutambua kwamba.
Hivyo ni kwenda kusema, "Samahani, mimi nina si ukoo na darasa hilo. "
Na itakuja kuvunja.
DAVID Malan: Hivyo unaweza kweli kuona the ikiwa, mwingine kama, mwingine wazo hapa.
Ni syntax tofauti tu kwa akielezea halisi wazo moja.
>> MARIA: Hasa.
Sasa tuna waendeshaji yetu ternary.
Waendeshaji hivyo ternary na tatu parts-- hali,
kitu cha kufanya ikiwa hali hiyo ni kweli,
na kisha kitu cha kufanya kama hali hiyo ni ya uongo.
Hivyo unaweza kuona, kimsingi, syntax ya kwamba hapa.
Tuna alama swali, na kisha the-- je, sisi wito huu?
DAVID Malan: matumbo.
MARIA: Colon.
Asante.
Pole.
Basi hebu tuangalie mfano wetu kuona kama tunaweza kufanya maana ya Haya
class_num == 50.
Hivyo hapa tunaona Boolean operator yetu == ambayo inalinganishwa class_num kutofautiana
50.
Maduka hivyo class_num integer.
Na kama hiyo integer sawa 50, basi tuko
kwenda kuhifadhi "Daudi Malan" ndani ya profesa kamba.
Kama darasa idadi hana sawa 50, "Yule Daudi Malan"
ni kwenda kuwa profesa.
>> DAVID Malan: Asante.
Na hivyo hii inaonekana sawa na nini, unaweza kusema, katika mtazamo wa kwanza?
>> MARIA: Kwangu mimi inaonekana kama-kingine kama kauli.
>> DAVID Malan: Yeah.
Na kwa kweli, hii ni aina ya pretty mjengo moja,
hivyo kusema, kwa ajili ya utekelezaji hasa mantiki ya kama-kingine
lakini kufanya kila kitu katika hatua moja.
>> MARIA: Hasa.
Naam.
Hivyo kama-kingine kauli nguvu kuchukua nafasi kubwa mno.
Wapate kuwa muda mrefu sana kwa kitu rahisi kama hii.
Hivyo hii inaweza kuwa sana succinct na nzuri sana.
Hivyo sasa tunakwenda katika kuangalia utekelezaji kitu tena na tena,
hivyo kuangalia kwa hali mara nyingi
na kisha kuendelea kufanya kitu wakati hali hiyo ni kweli.
Hivyo hii inatuleta vizuri katika wakati matanzi.
>> Kwa upande wa kushoto, tuna wakati wetu wa kwanza kitanzi.
Hivyo wakati kitu ni kweli, kufanya kitu tena na tena.
Ili kuhakikisha taarifa kwamba yetu hali hapa ni Ilisahihishwa kwa juu.
Ambapo pamoja na loop-- yetu ya pili tunatoa wito kwamba do-wakati loop-- sisi kufanya kitu,
kisha sisi kuangalia kwa hali hiyo.
Na kama hali hiyo inaendelea kuwa kweli,
sisi kurudi nyuma na kufanya kitu tena.
Hivyo Tofauti kubwa ni ambapo hali ni checked kwa.
Na kanuni kamwe kuwa kunyongwa kama hali si
kweli na kitanzi wakati.
Ambapo pamoja na kufanya-wakati kitanzi, tuna kificho
kwamba ni lazima ifanyike angalau mara moja.
Na kisha wakati hali inaendelea kuwa kweli,
tunaweza kurudi nyuma na iterate tena ndani.
Hivyo kwa nini unafikiri tunataka kutumia a do-wakati kitanzi juu ya kitanzi wakati?
Kulia.
Hivyo kama tunataka kuchochea user kwa aina fulani ya pembejeo,
kama tunataka kuwaomba kuingia jina yao,
tunataka angalau waombe mara moja.
Na kama hawana kuingia jina kwamba, sisi siyo
kwenda kuwauliza tena kwa sababu sisi tayari kujua hilo.
Lakini kama hawana kuingia majina yao, au kama
kuingia kitu ambacho ni wazi si jina,
sisi bado wanataka kuendelea kuwauliza kwa jina lao.
>> DAVID Malan: Na katika hotuba tulikuwa moja kama hii kwa kupata chanya int
mfano, ambapo kuna kitu kuangalia kwa mara ya kwanza kwa sababu una hata
wamezipata int.
Hivyo tunataka kufanya Haya kupata int kutoka user--
kisha kuangalia ni, pengine, tena na tena na tena.
>> MARIA: Hasa.
Kwa loops-- sawa.
Kwa mizunguko unaweza kuruhusu sisi kufanya karibu kila halisi kitu kimoja, kama vile.
Ni kweli halisi kitu kimoja.
Hivyo kuna kitu kwamba unaweza kufanya na kwa mizunguko
kwamba bila kuwa na uwezo cha kufanya na wakati matanzi.
Lakini kwa mizunguko inaweza kuonekana kidogo kidogo ngumu zaidi syntactically
kwa sababu wana sehemu tatu ndani ya kile
Ilikuwa kabla tu hali na wakati matanzi.
Hivyo sehemu ya kwanza kwamba wewe bahari, kushoto-wengi, tuna "int dwarves = 0."
Hivyo hii ni mahali ambapo sisi initialize variable yetu.
>> Basi tuna semicolon na "dwarves <7."
Hivyo hii ni mahali ambapo nje hali kweli ni.
Hivyo kwamba ni nini tunataka kuwa kuweka tu katika wakati loop--
"wakati dwarves <7."
Hapa, kwamba huenda katika katikati ya kwa kitanzi yetu.
Hivyo "dwaves <7."
Na kisha sehemu yetu ya mwisho ni "dwarves ++," ambayo ni ambapo sisi update kutofautiana yetu.
Kwa hiyo, jambo muhimu kutambua ni kwamba hii
ni kwenda kwenda kwa njia hii kwa kitanzi mara saba na kutekeleza mara saba.
Hivyo tuna saba dwarves, na wao uko wote
kwenda kusema, "Mimi niko hapa kuwasaidia, Snow White "
kwa sababu wao wako tayari kuwasaidia Snow White.
>> Pamoja wakati tanzi, sisi ingekuwa amefanya initialization na uboreshaji
si ndani ya hali, tena, lakini ama kabla au ndani ya kitanzi wakati
kuhakikisha kwamba we-- kwa sababu sisi daima haja sehemu hizo.
Hivyo ili kuhakikisha kuwa tuna nao, tunataka wameweza bado aliongeza yao
juu ya, si tu ndani ya mabano.
>> DAVID Malan: Na hivyo inaonekana like-- katika hotuba, kwa mfano,
Mimi karibu kila mara kutumia, kama, i na n na vigezo pretty boring.
Inaonekana kama unaweza kutumia zaidi cleverly aitwaye vigezo, pia.
>> MARIA: Yeah, ni kweli nzuri sana kutumia vigezo kidogo zaidi maelezo
kwa sababu hasa kama mtu mwingine ni kusoma code-- yako labda wewe ni grader
au kama wewe ni kushirikiana na somebody--
unataka kuhakikisha kwamba wao kuelewa nini unafanya.
>> SAWA.
Hivyo hii ni kitu funky-- sana kwa kitanzi ndani ya kwa kitanzi.
Sijui kama tumeona hii kabla.
Pengine si.
Lakini tunaweza kweli kuwa Haya hivyo loops badala ya mizunguko.
Hivyo haina mtu yeyote wanataka labda kutembea yangu kwa njia ya nini kinaendelea hapa?
DAVID Malan: Mimi itabidi kuchukua kumchoma.
MARIA: Moto.
DAVID Malan: Sawa.
Hivyo, spoiler-- tunataka magazeti mambo hiyo ni katika chini mkono wa kulia kona
huko.
>> MARIA: Haki.
Ndio ndio.
>> DAVID Malan: Hivyo tumekuwa tu kuweka kwamba pato sampuli huko.
Hivyo siwezi kudai kutoka topmost kitanzi kwamba wewe ni
iterating juu ya safu yttersta kitanzi, hivyo kusema.
Na wewe ni iterating juu nguzo na ndani kabisa kitanzi.
Na shirikishi, hii lazima hopefully hufanya akili
kwa sababu kwa asili ya kila mpango tumeona
kabla, printf, ambayo ni kazi sisi ni kutumia, hatimaye,
ina uwezo wa magazeti mambo nje kimsingi mstari kwa mstari.
Kama, mara moja umefanya outputted mstari mpya, kuna
hakuna mara dufu nyuma na uchapishaji kitu juu katika screen, angalau
si kwa kutumia printf kama hii.
>> Na hivyo katika suala hilo, inafanya maana hiyo yttersta kitanzi
lazima akimaanisha mistari kwa sababu kwa kila kutolewa mstari,
wewe ni kwenda kutaka magazeti nje XXXXX, na kisha
hoja juu ya mstari unaofuata, XXXXX.
Hivyo safu kuja kwanza.
Na kisha ndani ya kila mstari, magazeti nguzo.
Kama alijaribu kufanya hivyo kinyume, ingekuwa pengine si
kuja nje kama unakusudia.
>> MARIA: Naam.
Sisi tu hawakuweza kurudi safu ya awali na printf.
>> DAVID Malan: Na nini kuvutia kwa mazungumzo ya leo kuhusu wigo,
kweli, ni kwamba mstari ni int hiyo ni alitangaza katika juu kabisa kitanzi.
Lakini taarifa kwamba ni bado ndani ya, hivyo kusema,
braces curly kwamba mara moja kufuata,
hata kama ni si kitaalam ndani ya braces wale curly.
Hivyo mstari ni katika wigo kwa ukamilifu wa snippet ya kificho,
wote ndani ya nje kwa kitanzi na ndani ya ndani kwa kitanzi.
Lakini kwa kulinganisha, ambapo ni safu katika wigo?
Kutofautiana safu?
Yeah, tu katika ndani ya kitanzi.
Na hiyo ni sawa kwa sababu hatuna kupata ni nje ya braces curly wake.
Wote sisi kufanya ni magazeti nje mpya mstari mwishoni sana huko.
Hivyo kwamba kwa kweli ni sawa.
>> Hivyo hii ina athari, inaonekana kama, ya kufanya safu tatu na nguzo nne.
>> MARIA: Haki.
Hivyo kwanza sisi kwenda kwa njia ya mstari wetu wa kwanza.
Na tu katika mstari wetu wa kwanza, tunafanya nguzo nne ndani ya safu ya kwanza.
Hivyo sisi magazeti nje wanne X.
Na kisha tunaweza kujinasua kwa kitanzi, tangu tumekuwa tayari kuchapishwa nne X.
Na sisi magazeti mstari mpya.
Na kisha sisi kwenda kwa njia ya sawa mchakato kwa safu mbili zaidi
kufanya jumla ya tatu.
>> DAVID Malan: Na ni thamani kubainisha ni tu artifact ya maandishi, ukweli
kwamba sampuli pato kuonekana sana mirefu,
kana kwamba kuna zaidi safu ya nguzo.
Lakini ni kwa sababu tu X ni mirefu kuliko ilivyo kote.
Hayo ni yote yale yanayotokea huko, pamoja na nafasi nyeupe kati ya mistari.
>> MARIA: Haki.
Baridi.
DAVID Malan: zote haki.
Hivyo haraka kuangalia tatizo kuweka moja, kuchukua maswali yoyote, na kisha kuahirisha?
Sawa.
Hivyo katika tatizo kuweka moja, kuna tatu changamoto za msingi, hatimaye.
Lakini kwanza, utapata kwamba tatizo kuweka
vipimo, kama ilivyo kwa wengi psets hii kuanguka, ni kwenda kutembea wewe
kupitia chache joto-up mazoezi, kumweka wewe nje rasilimali chache
kwamba wanaweza au si tumeona tayari.
Kwa mfano, CS50 ina Suite ya kaptula,
ambayo ni video fupi, si tofauti na hii, lakini hiyo
ni mada sana specific-- labda dakika tano,
Dakika 10 katika urefu juu ya mizunguko au juu ya hali ya juu ya algorithms au
au baadaye zaidi mada ya juu, kama vile.
Na sisi ujumla kupachika wale katika tatizo
seti ili wanafunzi na rasilimali ambazo
kufanya mapitio ya vifaa kwamba wanaweza kuwa tayari kuja katika hotuba au sehemu.
Lakini njia hii ni umakini zaidi na zaidi fingertips yao.
>> Sisi pia huwa na kuiweka katika tatizo seti mambo kuitwa walkthroughs.
Hivyo karibu wote wa mifano nifanye nini katika hotuba, juu ya hatua hapa, sisi pia
kuwa na risasi juu ya kamera katika kuendeleza polepole zaidi,
walkthrough ionekane zaidi na mimi kwenye mbali yangu ya kwamba kanuni, mstari kwa mstari
ili darasani, tutaweza mara nyingi skim kwa njia kitu au mtu
Itakuwa interject na kujibu swali.
Lakini siyo lazima kuzama katika kwa kila mtu katika watazamaji.
Hivyo utapata kificho walkthroughs kwa zaidi ya mifano
tuyafanyayo hapa katika hotuba ili uweze wanaweza kutembea kwa njia hiyo kwa kasi yako mwenyewe
na rewind au kufunga mbele au ruka kabisa, kama Ningependa.
>> Kuna mara nyingi ni chache maswali kujipima nguvu kwamba
kuuliza wewe kutatua ya kuimarisha nyenzo hii
na kuhakikisha kuwa uko comfy kabla kuendelea na mapumziko ya pset.
Na kisha, bila shaka, kuna pset yenyewe.
Na moja ya mambo sisi sana kwa makusudi
kufanya katika CS50 ni karibu kila uninteresting au kielimu uninteresting
hatua mitambo kwamba unaweza kuwa na kufanya
ni karibu kila mara vizuri sana kumbukumbu.
Katika kipindi cha muda mrefu, tutaweza kuanza kuuliza maswali zaidi ya kejeli
kama unakumbuka jinsi ya kufanya hivi au hivi?
Lakini kwa ujumla, utapata kwamba tatizo seti kupata wewe
kupitia mashine kitu ili
kuvutia, changamoto akili ni hatimaye kushoto na wewe mwanafunzi.
>> Kwa kuwa alisema, Zamyla, ambaye sisi naendelea akimaanisha leo katika hotuba,
ni moja ya wafanyakazi wetu wa muda mrefu mwanachama ambaye pia ana walkthroughs
juu ya matatizo maalum pset kama Mario na tamaa, ingawa si maji mwaka huu.
Na ni katika wale walkthroughs kwamba yeye mara nyingi
inatoa baadhi ya vidokezo na tricks kwa jinsi ya kuendelea, kamwe kuwaambia
hasa nini cha kufanya, lakini rather-- kama hali,
kama wewe will-- kutoa angalau michache ya mawazo ili ni juu yako,
hatimaye, kuamua jinsi ya kuzitumia.
>> MARIA: aina ya kama ngazi ya juu uelewa wa mantiki ya kile
sisi ni kuuliza wewe kufanya.
>> DAVID Malan: Hasa.
Na, kwa kweli, Zamyla ya walkthroughs ni maana
kujibu mara nyingi aliuliza swali la wapi
kufanya mimi alianza, hasa wakati specifikationer haya kwa muda mrefu ni
ngumu kidogo kutokana na maandishi yote na picha za kuwa wana ndani yao.
>> Hivyo water.c, utapata baada ya umefanya kukamilika yake,
ni kweli kiasi moja kwa moja.
Kabisa ni rundo ya wewe kwenda bang
vichwa vyenu dhidi ya ukuta kujaribu kufikiri kwa nini siyo kuandaa
au kwa nini siyo mbio usahihi.
Lakini mara wewe ni kosa na hali hiyo na mara moja umefanya
alitumia muda kumenyana na yoyote ya mende kwamba unaweza kuwa,
utapata kwamba ni mfupi sana mpango huo.
Ni kifanyike katika chache tu mstari wa kanuni, ambao wengi
tumeona hapa katika hotuba tayari, kama wewe kukusanyika haki ujenzi wa vitalu.
>> Na kama tunashauri hapa, ni kwenda kuuliza
bayana dakika ngapi mtu ni kuchukua oga juu ya chuo.
Sisi bayana katika tatizo kuweka kiwango cha mtiririko wa maji
katika, kama, chini ya kuoga mtiririko kichwa, kiasi kama Seinfeld kipande cha
tuliona jana au kinyume yake.
Na kisha wewe tu na kufanya kidogo ya math,
really-- hesabu kwa kutumia C kuwaambia sisi ni wangapi, takribani, chupa za maji
ni kwamba sawa na kama tuko kuchukua oga n dakika.
>> Sasa, katika mario.c, hii ni kwenda kuwa mpango kidogo tena.
Ni bado si kwenda kuwa hii kwa muda mrefu.
Mistari michache tu tena kuliko water.c.
Lakini itakuja kuwa na nafasi recreate umri wa shule Mario
piramidi kutoka Super Mario Brothers au baadhi ya kufuatilia juu ya.
Siyo kwenda kuangalia kama prettier au kama rangi kama kwamba moja huko.
Sisi ni kwenda tu kutumia hashtags kidogo kama sisi hapa kwenye screen
kutumia maandishi ASCII.
Lakini itakuwa takriban wazo moja.
Na itakuja kuwa zoezi kwamba katika mtazamo wa kwanza
Inaonekana pretty simple-- tu magazeti piramidi rahisi.
Lakini kuna sifa wanandoa hapa ambayo ni ya kuvutia.
Taarifa kwamba makali rightmost ya piramidi kweli ina upana mbili.
Hivyo kuna mbili sawa urefu nguzo, ambayo
inafanya zinahitaji kidogo kidogo ya fikra kufanya
kuhakikisha kupata kwamba hasa haki, kama kinyume na tu kikamilifu angled
mstari.
Hivyo hiyo ni kidogo ya kesi kona lakini mechi mchezo halisi.
>> Na pia ni yasiyo ya wazi kwa mara ya kwanza mtazamo jinsi ya magazeti nafasi nyeupe.
Hivyo wakati mimi kuangalia sampuli here-- pato
na pia ni katika spec-- ni aina ya inaonekana kama mstatili,
lakini diagonal ya Mstatili imekuwa kung'olewa mbali,
na ni tu nafasi nyeupe, hivyo kusema.
Na hivyo aliomba mara nyingi swali hapa ni siku zote, vizuri,
jinsi gani mimi hoja hashtags zaidi ya haki?
Au jinsi gani mimi magazeti nafasi tupu?
Na ni kweli rahisi kuliko wanafunzi wengi kufikiri.
Sawa?
Unaweza takriban ni kuibua na tu kupiga nafasi bar mara moja au mbili
au mara tatu.
>> Na hivyo hata kama kwa printf sisi karibu Daima magazeti nje kamba au int
au neno kama "hello, dunia "au mfululizo wa maneno,
unaweza pia tu magazeti kunukuu, nafasi, unquote.
Na kwamba kwa kweli kutoa wewe nafasi nyeupe huko.
Hivyo kuendelea kuwa katika akili na hawana overthink hii.
Wewe kweli na kuamua mstari kwa mstari kwa mstari,
si tofauti na mfano wako wakati iliyopita, ni wangapi kati ya wale
nguzo inapaswa kuwa nafasi nyeupe na jinsi wengi wao wanapaswa kuwa hashtags.
Itachukua muda kidogo, lakini ni hatimaye mantiki puzzle ya kila aina.
>> MARIA: Naam.
Lakini mantiki ya kwenda mstari kwa mstari ni kwenda kuwa muhimu sana hapa.
DAVID Malan: Yeah.
Nadhani sampuli kificho wewe gave-- hata ingawa haikuwa mpango kamili.
Bado unahitaji int kuu na tena utupu na # ni pamoja na stdio.h,
mengi ya mambo kutoka hotuba.
Lakini ujenzi wa vitalu wanaonekana kuwa huko.
Na kisha mwisho ni kitu zaidi kidogo algorithmic.
Hivyo ni zinageuka kuwa wakati wowote kwenda katika CVS au ghala yoyote urahisi
na mtu mikono yenu kwa bili cashier au kama sarafu mabadiliko,
zinageuka kuwa wao, binadamu, kama au wao kujua au la,
pengine kwa kutumia nini aitwaye algorithm tamaa,
ambapo kama wewe ni deni lake, kusema, $ 21 katika mabadiliko kwa sababu kwa sababu fulani
wewe kununua kitu ghali sana na muswada kubwa sana katika CVS,
itakuwa ni kweli annoying kama cashier alitoa wewe single 21 au, mbaya
bado, mengi yote ya sarafu.
Badala yake, ni nini mtu timamu ni pengine ni kwenda kufanya ni wao wanaenda
kunyakua $ 20- $ na kisha 1-bili, na mkono wewe bili mbili tu katika kesi hiyo.
MARIA: Kwa hiyo wao ni kutafuta ili kupunguza mabadiliko ambayo wao kutoa nyuma yenu.
DAVID Malan: Hasa.
Na mpango huo na sarafu, kama vile.
Kama wewe ni deni lake, wanasema, $ 0.50, hopefully wewe hawataki 50 pennies.
Wewe badala wanataka wawili robo, kwa mfano.
Sasa, hii haina kudhani kwamba cashier ina
kutosha ya kila dhehebu kwamba yeye au yeye kutaka kukupa.
Lakini hatuwezi kuruhusu kudhani kama kiasi katika tatizo hilo.
Na lengo, hatimaye, ni kwa kutekeleza katika C kificho algorithm tamaa.
Hivyo mtumiaji anaruhusiwa aina katika kiasi gani
mabadiliko yeye au yeye zinadaiwa na dola na senti, baadhi ya aina ya hatua yaliyo
thamani pengine.
Na kisha una kufanya hesabu na kufikiri algorithmically, vizuri,
jinsi wengi sarafu naweza kutoa wewe ya chini kukupa
hasa kwamba kiasi cha mabadiliko.
Lakini kuna kwenda kuwa chache sehemu gumu hapa, sawa?
Kama kuna zima kutokuwa sahihi suala hilo.
MARIA: Hasa.
Hatua hivyo yaliyo maadili na kutokuwa sahihi.
Je, sisi majadiliano juu ya hili katika hotuba leo?
>> DAVID Malan: Sisi alifanya Mara ya mwisho katika hotuba.
Kuongelea kutokuwa sahihi.
Na wewe hawataki kudanganya mtumiaji ni kiasi gani cha badiliko yeye au yeye zinadaiwa.
Na hivyo walkthrough, katika tatizo kuweka vipimo,
kutoa baadhi ya mawazo, hatimaye, kama kwa jinsi gani unaweza kukabiliana na wale kutokuwa sahihi
makosa, uwezekano.
Ni zaweza kuepukwa, kwa hakika, kwa pembejeo tunazungumzia.
Na, kwa kweli, pennies-- labda tutaweza kuahirisha kwa Zamyla,
Nadhani, kwa mbinu huko.
Hivyo hatimaye, utapata maendeleo ya matatizo ya wiki hii,
kwanza ambayo ni pretty ndogo, kisha kati, kubwa basi kidogo.
Lakini wote kutumia jengo vitalu kutoka wiki hii iliyopita,
kutoka supersection hii, tatizo kuweka vipimo
unaweka katika rasilimali wasiohesabika.
Lakini bado, kama wakati wote wanajitahidi, hasa miongoni mwa wale chini ya starehe
na hakuna historia ya awali, kuja masaa ya ofisi
juu ya Jumatatu na Jumanne na Jumatano na Alhamisi.
Kwenda CS50 Jadili kupitia tovuti kozi ya,
kupitia ambayo unaweza kuzungumza pamoja na wafanyakazi na wanafunzi.
>> Lakini hatimaye, nadhani Ushauri bora ni kuanza tu mapema.
Si ni aina ya darasa kwamba lazima kuanzia psets Jumatano
usiku, au mbaya Alhamisi usiku.
>> MARIA: Ushauri wangu bora ni kwa wameanza na Jumatatu.
DAVID Malan: Jumatatu.
Hivyo kama wewe si kuanza already-- hakuna.
Lakini hata kama si Jumatatu, kisha Jumanne.
Mapema bora.
Na hiyo ndiyo sababu Bila shaka ina siku nyingi marehemu ni
kukupa kidogo ya shinikizo kisaikolojia
kuanza mapema lakini bado basi mambo yatakuwa wakati mambo kuchukua muda mrefu
kuliko wewe kutarajia.
>> MARIA: Na unataka kufanya matumizi ya masaa ya ofisi kama vile unaweza, pia.
>> DAVID Malan: Maswali yoyote?
Sawa.
Naam, kwa nini sio sisi kuahirisha hapa?