DOUG LLOYD: zote haki.
Hivyo sasa hebu kukabiliana na mada kweli kubwa, kazi.
Hadi sasa katika mwendo, kila mipango ambayo sisi tumekuwa kuandika
vimeandikwa ndani ya kuu.
Wao ni mipango pretty rahisi.
Huna haja ya kuwa na haya yote matawi na mambo kinachoendelea.
Tunaweza tu fit yote ndani ya kuu na
haina kupata sana balaa.
Lakini kama kozi unaendelea na kama wewe kuanza kuendeleza mipango
kujitegemea, wao pengine wewe kwenda kuanza kwa kupata kura zaidi ya 10
au mistari 15.
Unaweza kupata mamia au maelfu au maelfu ya mstari wa kanuni.
Na ni kweli si kwamba mambo mawazo.
Kama vile, ni pengine si wazo nzuri kuweka kila kitu ndani ya kuu.
Inaweza kupata ngumu kidogo kupata nini wewe kutafuta kwa kama wewe kufanya hivyo.
>> Kwa bahati nzuri, ingawa C, na pretty much kila mmoja lugha ya programu kwamba
inaweza kufanya kazi kwa, inaruhusu sisi kuandika kazi.
Na mimi nina kwenda tu kwa kuchukua haraka kando hapa
kutaja kwamba kazi ni eneo moja ya sayansi ya kompyuta.
Na utaona watu wengi zaidi miongoni mwao katika maeneo mbalimbali katika mwenendo
na kama wewe kuendelea.
Ambapo kuna mengi ya visawe kwa neno moja.
Hivyo tunatoa wito kazi.
Lakini unaweza pia kuwasikia inajulikana kama taratibu,
au mbinu, hasa, kama wameweza milele amefanya kitu oriented programu yoyote
kabla, na msiwe na wasiwasi kama una si, si
deal-- kubwa lakini katika Lugha ukaguzi oriented
ni mara nyingi aitwaye mbinu.
Wakati mwingine wao ni kuitwa subroutines.
Lakini kwa kweli zote rejea kwa hiyo wazo la msingi.
>> Hebu kuona nini wazo kwamba ni.
Ni kazi gani?
Vizuri kazi ni kweli kitu zaidi kuliko sanduku nyeusi.
Sanduku nyeusi ambayo ina seti ya sifuri au pembejeo zaidi na pato moja.
Hivyo kwa mfano, hii inaweza kuwa kazi.
Hii ni kazi kuitwa func.
Na inachukua pembejeo tatu, b, na c.
Na ndani ya kwamba sanduku nyeusi, sisi sijui nini hasa itakuwa hivyo,
lakini taratibu pembejeo katika baadhi ya njia na kisha
inatoa pato moja, katika kesi hii, z.
Sasa kwa kufanya hivyo kidogo chini ya kufikirika, sisi
naweza kusema kwamba labda sisi na kazi kuitwa
kuongeza kwamba inachukua pembejeo tatu, b, na c na michakato pato katika baadhi ya njia
ndani ya boksi nyeusi kwa kuzalisha pato moja.
Hivyo katika kesi hii, kama kuongeza inachukua 3, 6, na 7.
Mahali fulani ndani kuongeza kazi, tunataka
wao wanatarajia kuongezwa kwa pamoja kuzalisha pato, ambayo
ni pamoja na 3 6 pamoja na 7 au 16.
>> Vile vile, una kazi kuitwa mult kwamba inachukua pembejeo mbili, a na b,
michakato yao kwa njia baadhi kama kwamba pato la kazi
ni matokeo ya pembejeo hizo mbili.
Pembejeo mbili kuyagawa kwa pamoja.
4 na 5 kuwa alipita katika mult, kitu kinachotokea, pato tunatarajia
ni 20.
Kwa nini sisi kuiita sanduku nyeusi?
Vizuri kama sisi si kuandika kazi zake wenyewe, ambayo
tumefanya kidogo kabisa hadi sasa cs50.
Tumeona magazeti f, kwa mfano, ambayo ni kazi ambayo hatukuwa kuandika
sisi wenyewe, lakini hatuwezi kutumia muda wote.
Kama sisi si kuandika kazi wenyewe,
sisi si kweli wanahitaji kujua jinsi ni kweli kutekelezwa chini ya kofia.
>> Hivyo kwa mfano nyeusi sanduku mimi tu ilionyesha wewe kwa kuzidisha,
Mult, b inaweza kuwa defined-- na hii ni
baadhi pseudocode inaweza kuwa kuelezwa kama mara pato a b.
Hiyo mantiki, haki.
Kama tuna kazi kuitwa mult kwamba inachukua pembejeo hizo mbili.
Tungetarajia kuwa pato ingekuwa kuwa pembejeo mbili kuyagawa kwa pamoja,
mara b.
Lakini mult pia inaweza kuwa kutekelezwa kama hii,
tuna kutofautiana kinyume na kupata kuweka ndani ya mult kwa 0.
Na kisha sisi kurudia utaratibu huu b nyakati kuongeza kukabiliana.
Kwa mfano, kama sisi kuzidisha 3a na 5b, tunaweza kusema kuweka kinyume na 0,
kurudia mara tano, kuongeza 3 kwa kukabiliana.
Hivyo sisi kuanza saa 0 na kisha sisi kufanya hii mara tano 3, 6, 9, 12, 15.
Ni matokeo hayo. Sisi bado kupata 3 mara 5 tu
utekelezaji ni tofauti.
>> Hiyo ni nini maana sisi wakati tunasema sanduku nyeusi.
Ni tu ina maana sisi si kweli huduma jinsi gani kutekelezwa chini ya kofia
muda mrefu kama pato ni mategemeo yetu.
Kwa kweli, hiyo ni sehemu ya mkataba ya kutumia kazi, hasa
kazi ambayo watu wengine kuandika.
Tabia ni daima kwenda kuwa kawaida, haitabiriki
kulingana na jina la kazi.
Na hii ndiyo maana ni kweli muhimu wakati wewe kuandika kazi
au wakati watu wengine kuandika kazi ambayo unaweza kutumia,
kuwa kazi hizo na wazi, kiasi dhahiri majina,
na ni vizuri kumbukumbu.
Ambayo ni hakika kesi kwa kazi kama magazeti f.
>> Hivyo kwa nini sisi kutumia kazi?
Naam kama nilivyosema awali, kama sisi kuandika wote wa kificho wetu ndani ya vitu kuu
unaweza kupata kweli mbaya na kwa kweli ngumu.
Kazi kuruhusu sisi uwezo kuandaa mambo na kuvunja
Tatizo ngumu sana katika mengi zaidi manageable sehemu ndogo.
Kazi pia kuruhusu sisi kurahisisha mchakato coding.
Ni rahisi sana kwa Debug 10 mstari kazi dhidi ya 100 mstari
kazi au 1,000 mstari kazi.
Kama sisi tu na utatuzi vipande vidogo wakati huo,
au kuandika vipande vidogo wakati huo, inafanya kuwa uzoefu wa programu
mengi zaidi.
Matumaini yangu juu ya kwamba moja.
>> Mwisho, kama sisi kuandika kazi sisi kutumia tena sehemu hizo mbalimbali.
Kazi inaweza kuwa recycled.
Wao inaweza kutumika katika Mpango moja au nyingine.
Umefanya tayari imeandikwa kazi, wote
unahitaji kufanya ni kuwaambia mpango huo ambapo kupata kazi hiyo.
Tumekuwa kusindika na kutumia magazeti f kwa zaidi ya miaka 40.
Lakini ilikuwa tu imeandikwa mara moja.
Pretty muhimu, haki.
Sawa.
Hivyo kazi ni kubwa.
Tunajua kwamba.
Sasa hebu kuanza kuandika yao.
Hebu kuanza kupata yao katika mipango yetu.
Ili kufanya hivyo, kwanza Jambo sisi kufanya ni kutangaza kazi.
Wakati kutangaza kazi nini wewe kimsingi kufanya
ni kuwaambia compiler, hey, ili tu kujua,
Mimi ni kwenda kuwa kuandika kazi baadaye
na hapa ni nini ni kwenda kuangalia kama.
Sababu hii ni kwa sababu compilers Unaweza
kufanya baadhi ya mambo weird kama wao kuona seti ya alama
kwamba wao ni wala ukoo na.
Hivyo sisi kutoa tu compiler a anaongoza, mimi nina kujenga kazi
na ni kwenda kufanya hivyo.
Kazi maazimio ujumla ikiwa wewe ni kuandaa kanuni yako kwa njia
kwamba wengine wataweza kuelewa na kufanya matumizi ya,
wewe ujumla wanataka kuweka yote ya kazi yako maazimio
katika sana juu ya kanuni yako, haki kabla ya kuanza kuandika kuu hata.
Na kwa urahisi, kuna fomu ya kiwango sana
kwamba kila tamko kazi ifuatavyo.
Wote pretty much kuangalia kama hii.
Kuna sehemu tatu kwa kazi tamko, aina ya kurudi, jina,
na hoja orodha.
>> Sasa ni aina ya kurudi ni aina gani ya kutofautiana kazi mapenzi pato.
Hivyo kwa mfano, kama tunafikiri nyuma dakika iliyopita kwa kuzidisha mbili
nambari kazi, je, sisi kutarajia kama sisi kuzidisha integer na integer
pato itakuwa pengine integer, haki.
Kuyagawa integers mbili pamoja, unaweza kupata integer.
Hivyo aina ya kurudi kwamba kazi itakuwa int.
Jina ni nini unataka kuwaita kazi yako.
Hii pengine ni angalau muhimu sehemu ya kazi tamko,
katika masuala ya utendaji.
Lakini ni kweli pengine ni moja ya sehemu muhimu
ya kazi tamko katika suala ya kujua nini kazi kweli
gani.
Kama wewe jina kazi yako f au g au h au siri au kitu kama hicho,
pengine wewe kwenda kupata kidogo tripped up kujaribu
kukumbuka nini kazi hizo kufanya.
Hivyo ni muhimu kutoa yako maana majina ya kazi ya.
>> Mwisho, orodha Hoja ni comma kutengwa orodha
ya pembejeo zote kwa kazi yako, ambayo kila mmoja ina aina na jina.
Hivyo si tu kufanya una kutaja ni aina gani ya kutofautiana
kazi mapenzi pato, wewe pia wanataka bayana
aina ya vigezo ni aina gani na kazi itakuwa kukubali kama pembejeo.
Basi hebu kufanya mfano hapa.
Hebu tu kuangalia saa moja thabiti zaidi.
Hivyo hapa ni mfano wa kazi Tamko kwa kazi ambayo
ataongeza integers mbili pamoja.
Jumla ya integers mbili ni kwenda kuwa integer pia, kama sisi tu
kujadiliwa.
Na hivyo aina ya kurudi, hapa katika kijani, itakuwa int.
Hiyo anatueleza kwamba kuongeza ints mbili tu ni kwenda, mwisho wa siku,
pato, au mate nyuma nje kwa sisi, integer.
Kutokana na kile kazi hii haina sisi wanataka kuwapa jina maana.
Kuongeza ints mbili inaonekana sahihi, kwa kuzingatia
sisi ni kuchukua integers mbili kama pembejeo na hopefully kuongeza yao pamoja.
Ni inaweza kuwa kidogo ya usumbufu jina na kusema ukweli kazi hii
pengine ni si lazima kwa kuwa tuna Mbali
operator, kama unakumbuka kutoka wetu mjadala wa waendeshaji, hapo awali.
Lakini hebu sema tu kwa ajili ya hoja kuwa kazi hii ni muhimu
na hivyo tutaweza simu yake kuongeza ints mbili.
Mwisho, kazi hii inachukua pembejeo hizo mbili.
Kila mmoja ni integer.
Hivyo tuna koma huu kutengwa orodha ya pembejeo.
Sasa sisi ujumla wanataka kutoa jina kwa kila mmoja wao
ili waweze kutumiwa ndani ya kazi.
Majina yao ni si sana muhimu.
>> Katika kesi hiyo, sisi si lazima maana yoyote masharti yao.
Ili tuweze tu kuwaita na b.
Hiyo ni kabisa faini.
Kama hata hivyo, unakuta mwenyewe katika hali
ambapo majina ya vigezo ili kweli kuwa muhimu,
unaweza kutaka kuwaita kitu kingine zaidi na b
kwa kuwapa kitu zaidi mfano maana.
Lakini katika kesi hii, sisi si kweli kujua kitu kingine chochote kuhusu kazi.
Sisi tu wanataka kuongeza integers mbili.
Hivyo tutaweza wito tu wale integers a na b.
Hiyo ni mfano mmoja.
>> Mbona wewe kuchukua pili kufikiri juu ya hili,
jinsi gani unaweza kuandika kazi Tamko kwa kazi ambayo
hulizidisha mbili yaliyo hatua namba?
Je, unakumbuka kile a hatua yaliyo idadi ni?
Ingekuwa kazi hii nini Tamko kuangalia kama?
Mimi kwa kweli kupendekeza pause video hapa na kuchukua muda kiasi gani unahitaji.
Fikiria juu ya nini hii kazi tamko itakuwa?
Kitu gani aina ya kurudi kuwa?
Kitu gani jina maana kuwa?
Kitu gani pembejeo kuwa?
Hivyo kwa nini wewe pause video hapa na kuandika-up kazi tamko
kwa kazi ambayo ingeweza kuzidisha mbili yaliyo hatua nambari pamoja.
Hopefully paused video.
>> Basi hebu tuangalie mfano ya tamko moja iwezekanavyo.
Kuelea mult reals mbili kuelea x, y kuelea.
Bidhaa ya mbili yaliyo idadi hatua,
ambayo wanakumbuka ni jinsi sisi kuwakilisha idadi halisi
au namba na maadili alisema katika c, ni kwenda kuwa hatua yaliyo idadi.
Wakati kuzidisha alisema na alisema,
pengine wewe kwenda kupata alisema.
Unataka kuwapa jina sahihi.
Kuzidisha reals mbili inaonekana faini.
Lakini unaweza kweli kuiita mult ikifungwa mbili, au ikifungwa mult.
Kitu kama hicho, kwa muda mrefu kama alitoa wengine maana halisi ya kile
hii sanduku nyeusi alikuwa anaenda kufanya.
Na tena, katika kesi hii, hatufanyi wanaonekana kuwa na maana yoyote masharti
kwa majina ya vigezo sisi ni kupita katika,
hivyo sisi tu kuwaita x na y.
Sasa kama wewe kuwaita kitu mwingine, hiyo ni kabisa faini.
Kwa kweli, kama alivyofanya tamko hili badala
kutumia mara mbili badala ya ikifungwa, kama unakumbuka
kuwa mara mbili ni tofauti njia ya usahihi
kutaja idadi halisi au hatua yaliyo vigezo.
Hiyo ni kabisa faini pia.
Aidha mmoja wa wale itakuwa nzuri.
Kwa kweli, kuna kadhaa michanganyiko tofauti
njia ya kutangaza kazi hii.
Lakini haya ni wawili ndio nzuri sana.
Tumekuwa alitangaza kazi, hiyo ni kubwa.
Tumekuwa aliiambia compiler nini ni nini tunakwenda kufanya.
Sasa hebu kweli kuandika kazi hiyo.
Hebu kuwapa ufafanuzi, ili ndani ya boksi nyeusi
tabia kutabirika kinachotokea.
Kwa kweli, sisi ni kuzidisha mbili halisi nambari pamoja, au namba kuongeza
pamoja, au kufanya chochote ni kwamba sisi aliuliza kazi yetu ya kufanya.
>> Hivyo kwa kweli, hebu jaribu na kufafanua kuzidisha reals mawili ambayo sisi tu
kuongelea pili iliyopita.
Sasa mwanzoni mwa ufafanuzi kazi
inaonekana karibu sawa kama kazi tamko hilo.
Nina wote wawili hapa.
Juu ni kazi tamko, aina, jina, comma kutengwa hoja
orodha, semicolon.
Semicolon inaonyesha kwamba kuwa ni kazi tamko.
Mwanzo wa kazi ufafanuzi inaonekana karibu hasa
huo huo, aina, jina, comma kutengwa orodha hoja, hakuna semicolon,
kufungua curly brace.
Wazi curly brace, kama vile tumekuwa kufanya na kuu,
maana yake ni kwamba sasa tuko mwanzo kufafanua
nini kinatokea ndani ya boksi nyeusi kwamba tumekuwa aliamua kuita mult reals mbili.
Hapa ni njia mojawapo ya kutekeleza.
Tunaweza kusema, tunaweza kutangaza mpya kutofautiana wa aina kuelea inaitwa bidhaa
na kuwapa kwamba kutofautiana kwa mara thamani x y.
Na kisha kurudi bidhaa.
Je kurudi maana hapa.
Vizuri kurudi ni njia sisi zinaonyesha kwamba ni jinsi gani
sisi ni kupita pato nyuma nje.
Hivyo kurudi kitu, ni sawa na, hii ni matokeo ya sanduku nyeusi.
Hivyo hiyo ni jinsi ya kufanya hivyo.
Hapa ni njia nyingine ya kutekeleza.
Tunaweza tu kurudi mara x y.
x ni kuelea.
y ni kuelea.
Hivyo x mara y pia ni kuelea.
Hatuwezi hata haja ya kujenga mwingine kutofautiana.
Hivyo hiyo ni njia tofauti kwa kutekeleza exact nyeusi sanduku.
>> Sasa kuchukua muda, pause video tena,
na kujaribu na kufafanua kuongeza ints mbili, ambayo ni kazi nyingine ambazo sisi
kuongelea wakati iliyopita.
Tena hapa, nimekuwa kuweka kazi tamko, na hivyo semicolon,
na wazi curly brace na kufungwa curly
Brace zinaonyesha ambapo tutakuwa kujaza katika maudhui ya kuongeza ints mbili,
ili tuweze kufafanua hasa Tabia ndani ya boksi nyeusi.
Hivyo pause video.
Na kuchukua muda mwingi kama unahitaji kujaribu na kufafanua
utekelezaji wa kuongeza ints mbili, kama kwamba wakati kazi matokeo thamani,
ni gani, kwa kweli, kurudi Jumla ya pembejeo hizo mbili.
Hivyo tu kama mfano uliopita, kuna njia kadhaa tofauti
kwamba unaweza kutekeleza kuongeza ints mbili.
Hapa ni moja.
Katika hapa katika machungwa nimekuwa tu alikuwa na baadhi ya comments--
Nimekuwa tu aliongeza baadhi maoni zinaonyesha
nini kinatokea kwenye kila mstari wa kanuni.
Hivyo mimi kutangaza kutofautiana kuitwa jumla ya aina int.
Nasema Jumla sawa na pamoja b.
Hiyo ambapo sisi ni kweli kufanya kazi na kuongeza na b pamoja.
Na mimi kurudi jibu.
Na kwamba inafanya hisia kwa sababu Jumla ni kutofautiana wa aina int.
Na nini data aina kwamba hii kazi anasema mimi ni kwenda pato?
Int.
Hivyo mimi nina kurudi kiasi, ambayo ni integer kutofautiana.
Na kwamba inafanya hisia kutokana na kile tumekuwa alitangaza na kuelezwa kazi yetu
cha kufanya.
>> Sasa unaweza pia kufafanua kazi kwa njia hii,
int Jumla sawa na pamoja na b-- ruka kwamba kwanza step-- na kisha, kurudi jibu.
Sasa unaweza kuwa na pia kutekelezwa kwa njia hii,
ambayo mimi sana si kupendekeza.
Hii ni style mbaya kwa moja Jambo na kubuni ni mbaya,
lakini haina, kwa kweli, kazi.
Kama wewe kuchukua kanuni hii, ambayo ni int kuongeza mbaya fira nukta c, na matumizi yake.
Ni kweli haina kuongeza mbili integers pamoja.
Ni utekelezaji maskini sana ya tabia fulani.
Lakini haina kazi.
Ni tu hapa kuonyesha hatua hiyo sisi si kweli
huduma nini kinatokea ndani ya sanduku nyeusi, kwa muda mrefu
kama ina pato kwamba tunatarajia.
Hii ni hafifu iliyoundwa sanduku nyeusi.
Lakini mwishoni mwa siku, ni gani bado pato Jumla ya pamoja b.
Sawa.
Hivyo tumekuwa alitangaza utendaji.
Na tumekuwa inavyoelezwa kazi.
Hivyo hiyo ni nzuri kwa kweli.
Sasa hebu kuanza kutumia kazi kwamba tumekuwa alitangaza na tumekuwa inavyoelezwa.
Kuwaita function-- ni kweli pretty easy-- wote unahitaji kufanya
ni kupita hoja sahihi, hoja za aina data
kwamba anatarajia, na kisha kuwapa kurudi
thamani ya kazi ambayo na udhuru Haya ME
kuwapa thamani ya kurudi kwa kazi ambayo na kitu cha aina sahihi.
>> Basi hebu kuwa na kuangalia hii kwa vitendo katika faili
aitwaye fira 1 nukta c, ambayo Nina katika cs50 yangu IDE.
Hivyo hapa ni fira 1 nukta c.
Mwanzoni mwa mnionavyo yangu ni pamoja na, chupa ni pamoja na,
kiwango cha IO, na cs50 nukta h.
Na kisha mimi kuwa na kazi yangu tamko hilo.
Hii ni pale ambapo mimi nina kuwaambia compiler mimi nina
kwenda kuwa kuandika kazi kuitwa kuongeza ints mbili.
Ni kwenda pato an integer aina kutofautiana.
Hiyo ni nini sehemu hii ni haki hapa.
Na kisha mimi na pembejeo mbili hiyo na b, ambayo kila mmoja ni integer.
Ndani ya kuu, mimi kuuliza mtumiaji kwa ajili pembejeo kwa kusema, nipe integer.
Nao ni ilisababisha kusahau int, ambayo ni kazi ambayo
ni pamoja na katika maktaba cs50.
Na kwamba anapata kuhifadhiwa katika x, integer kutofautiana.
>> Kisha sisi kuwashawishi kwa integer mwingine.
Sisi kupata integer nyingine na kuhifadhi kwamba katika y.
Na kisha, hapa kwenye mstari 28, ni ambapo sisi kufanya kazi yetu wito.
Tunasema, int z sawa kuongeza 2 ints x comma y.
Je, unaweza kuona nini hii hufanya akili?
x ni aina integer kutofautiana na y ni aina integer kutofautiana.
Hivyo hiyo ni nzuri.
Hiyo mantiki kwa nini kazi yetu tamko juu ya mstari 17 inaonekana kama.
Comma kutengwa pembejeo orodha anatarajia integers mbili, a na b.
Katika kesi hiyo, tunaweza kuwaita nao chochote tunataka.
Ni tu anatarajia integers mbili.
Na x ni integer na y ni integer.
Kwamba kazi.
>> Na tunajua kazi hiyo ni kwenda pato integers pia.
Na hivyo sisi ni hifadhi pato la kazi,
kuongeza ints mbili, katika aina integer kutofautiana, ambayo sisi ni wito z.
Na kisha tunaweza kusema, jumla ya asilimia i na asilimia i ni asilimia i.
x, y na z mtiririko kujaza katika wale asilimia i ya.
Ni nini maana ya kile kuongeza ints mbili kuangalia kama?
Ni pretty rahisi.
Ni mmoja wa wale sisi tu kuona pili iliyopita,
int Jumla sawa na pamoja na b kurudi jibu.
Gani kazi hii?
Hebu kuokoa faili.
Na kisha chini hapa juu ya wastaafu yangu Mimi nina kwenda kufanya fira 1,
na mimi wazi screen yangu.
Mimi nina kwenda kuvuta kwa sababu najua ni kidogo vigumu kuona.
>> Kwa hiyo sisi kukusanya mpango huu kama fira 1.
Hivyo tunaweza kufanya dot slash fira 1.
Nipe integer, 10.
Nipe integer mwingine, 20.
Jumla ya 10 na 20 ni 30.
Hivyo tukiwa na mafanikio kazi simu.
Unaweza kukimbia kazi tena, hasi 10, 17 Jumla ya hasi 10 na 17 ni 7.
Kazi hii kazi.
Ina tabia kwamba sisi kutarajia kwa.
Na hivyo tumekuwa alifanya mafanikio kazi, ufafanuzi, tamko,
na mafanikio kazi simu.
Wanandoa miscellaneous pointi kuhusu kazi
kabla ya sisi kuhitimisha sehemu hii.
Kumbuka kutoka wetu mjadala wa aina data,
hapo awali, kwamba kazi wakati mwingine kuchukua hakuna pembejeo.
Kama hiyo kesi, sisi kutangaza kazi
kama kuwa na orodha hoja batili.
Je, unakumbuka kile kazi ya kawaida
tumeona hadi sasa kwamba inachukua utupu hoja orodha ni?
Ni kuu.
Kumbuka pia kwamba wakati mwingine kazi si kweli kuwa pato.
Katika kesi hiyo, sisi kutangaza kazi kama kuwa na aina batili kurudi.
Hebu kuhitimisha sehemu hii kwa kukabiliana na tatizo mazoezi.
>> Hivyo hapa ni tatizo kuweka nje.
Mimi nataka wewe kuandika kazi aitwaye halali pembe tatu.
Nini kazi hii ni lazima kufanya ni kuchukua tatu idadi halisi
kwamba kuwakilisha urefu wa tatu pande mbili za pembe kama vigezo wake,
au hoja yake, au wake inputs-- mwingine seti ya visawe
kwamba unaweza kukutana.
Kazi hii lazima ama pato kweli au uongo
kutegemea kama wale umbali wa tatu ni uwezo wa kufanya pembe tatu.
Unakumbuka aina data kwamba sisi kutumika kuonyesha kweli au uongo?
Sasa ni jinsi gani unaweza kutekeleza hili?
Vizuri kujua kuna wanandoa ya sheria kuhusu pembetatu
ambazo ni muhimu kujua kweli.
Pembe tatu inaweza tu kuwa Pande na urefu chanya.
Kwamba inafanya hisia.
Pengine wewe kusema, duh.
Jambo jingine kutambua ingawa, ni kwamba jumla
ya urefu wa yeyote pande mbili za pembe tatu
ina kuwa kubwa kuliko urefu wa upande wa tatu.
Hiyo ni kweli kweli.
Huwezi kuwa na pembe ya pande 1, 2 na 4, kwa mfano, kwa sababu 1 plus 2
si mkuu zaidi kuliko 4.
Basi hizo sheria kwamba au kuamua kama si tatu
pembejeo unaweza conceivably kuunda pembe tatu.
Hivyo kuchukua dakika kadhaa na kutangaza na kisha kufafanua
kazi hii inaitwa halali pembe tatu, kama kwamba ni kweli
ina tabia maalum hapa.
>> Itakuwa pato kweli kama pande zile tatu wana uwezo wa inahusu pembe tatu,
na uongo vinginevyo Tayari kuona jinsi gani alifanya?
Hapa ni utekelezaji moja ya halali pembe tatu.
Siyo mmoja tu.
Wako ili kutofautiana kidogo.
Lakini hii mtu gani, kwa kweli, na tabia ambayo tunatarajia.
Sisi kutangaza kazi zetu katika juu sana, bool halali pembe tatu
kuelea x kuelea y kuelea z.
Hivyo tena, kazi hii inachukua tatu idadi halisi
kama hoja yake, yaliyo thamani hatua vigezo,
na matokeo ya kweli au uongo thamani, ambayo ni Boolean, kukumbuka.
Hivyo ndiyo sababu ni aina ya kurudi bool.
Kisha sisi kufafanua kazi.
Jambo la kwanza sisi kufanya ni kuangalia kuhakikisha kwamba wote wa pande ni mazuri.
Kama x ni chini ya au sawa 0, au kama y ni sawa na 0,
au kama z ni chini ya au sawa na 0, kwamba hawawezi kuwa pembe tatu.
Hawana pande chanya.
Na ili tuweze kurudi uongo katika hali hiyo.
Next, sisi kuangalia kuhakikisha kwamba kila jozi wa pembejeo
ni mkubwa kuliko theluthi moja.
>> Hivyo kama x plus y ni chini kuliko au sawa na z,
au kama x plus z ni chini kuliko au sawa na y,
au kama y pamoja na z ni chini ya au sawa na x, kwamba pia hawezi kuwa pembe tatu halali.
Hivyo sisi kurudi uongo tena.
Kutokana sisi kupita wote wawili wa hundi ingawa, basi tunaweza kurudi kweli.
Kwa sababu pande hizo tatu wana uwezo wa returning--
ya kujenga pembe tatu halali.
Na hiyo ni yake.
Umefanya sasa alitangaza na kuelezwa.
Na unaweza kuwa na uwezo wa sasa kutumia na kuwaita kazi hii.
Kazi kubwa.
Mimi nina Doug Lloyd.
Hii ni cs50.