Doug Lloyd: Tout dwat.
Se konsa, kounye a kite a atake yon reyèlman gwo sijè, fonksyon.
Se konsa, lwen nan kou a, tout nan pwogram ki nou ve yo te ekri
yo te ekri andedan nan prensipal la.
Yo ap pwogram trè senp.
Ou pa bezwen gen tout bagay sa yo branch ak bagay sa yo pral sou.
Nou ka jis anfòm li tout andedan nan prensipal ak li
pa jwenn fò anpil akablan yo.
Men, jan kou a ale sou yo ak sou jan ou kòmanse devlope pwogram
poukont yo, yo ap pwobableman pral yo kòmanse yo ka resevwa yon anpil plis pase 10
oswa 15 liy yo.
Ou ta ka jwenn dè santèn oswa dè milye oswa dè dizèn de milye nan liy nan kòd.
Lè li nan vrèman pa ki fou yon panse.
Kòm sa yo, li la pwobableman pa yon bon lide kenbe tout bagay andedan nan prensipal la.
Li ka jwenn yon ti kras difisil jwenn sa w ap chèche pou si ou fè sa.
>> Erezman, menm si C, ak bèl anpil chak lang programmation lòt ki
ta ka travay avèk, pèmèt nou yo ekri fonksyon.
Apre sa, mwen jis ale nan pran yon rapid sou kote isit la
mansyone ke fonksyon se yon sèl nan zòn nan syans òdinatè.
Epi ou pral wè anpil plis nan yo nan divès pwen nan tout kou a
epi si ou kontinye sou.
Kote ki gen nan yon anpil nan sinonim pou menm mo a.
Se konsa, nou rele fonksyon yo.
Men, ou ta ka tande yo tou refere yo kòm pwosedi,
oswa metòd, patikilyèman, si ou te janm fè nenpòt ki pwogram objè oryante
fè anvan epi yo pa enkyete si ou gen pa, pa
yon gwo deal-- men nan kontwòl kontab oryante lang
yo rele souvan metòd.
Pafwa yo ap rele subroutines.
Men, yo vrèman tout al gade nan menm lide nan de baz yo.
>> Ann wè sa ki lide sa a se.
Ki sa ki se yon fonksyon?
Oke yon fonksyon se reyèlman gen anyen plis pase yon bwat nwa.
Yon bwat nwa ki gen yon seri zewo oswa plis entrain ak yon pwodiksyon sèl.
Se konsa, pou egzanp, sa a ta kapab yon fonksyon.
Sa a se yon fonksyon rele fonksyone.
Apre sa, li pran twa entrain A, B, ak c.
Ak andedan ke bwat nwa, nou pa konnen ekzakteman ki sa li fè sa,
men li trete entrain yo nan kèk fason ak Lè sa a li
bay yon pwodiksyon sèl, nan ka sa a, z.
Koulye a, fè li yon ti kras mwens abstrè, nou
te kapab di ke petèt nou gen yon fonksyon rele
ajoute ke pran twa entrain A, B, ak c ak pwosesis pwodiksyon an nan kèk fason
andedan kazye a nwa ki pwodwi yon pwodiksyon sèl.
Se konsa, nan ka sa a, si ajoute pran 3, 6, ak 7.
Yon kote anndan an ajoute fonksyon, nou ta
atann yo dwe ajoute ansanm yo pwodwi pwodiksyon an, ki
se 3 plis 6 plis 7 oswa 16.
>> Menm jan an tou, ou gen yon fonksyon rele mult ki pran de entrain, A ak B,
trete yo nan kèk fason sa yo ki pwodiksyon an nan fonksyon an
se pwodwi a nan de entrain yo.
De entrain yo miltipliye ansanm.
4 ak 5 yo te pase nan mult, yon bagay k ap pase, pwodiksyon an nou espere
se 20.
Poukisa nou rele li yon bwat nwa?
Oke si nou pa ap ekri a fonksyon tèt nou, ki
nou te fè byen yon ti jan twò lwen CS50.
Nou te wè ekri an lèt detache f, pou egzanp, ki se yon fonksyon ke nou pa t 'ekri
tèt nou, men nou sèvi ak tout tan an.
Si nou pa ap ekri fonksyon yo tèt nou,
nou pa reyèlman bezwen konnen ki jan li a aktyèlman aplike anba kapo a.
>> Se konsa, pou egzanp nwa bwat I jis montre ou pou miltiplikasyon,
mult a, b ta ka defined-- ak sa a se jis
kèk pseudocode-- ta ka defini kòm pwodiksyon yon fwa b.
Sa fè sans, dwa.
Si nou gen yon fonksyon rele mult ki pran de entrain.
Nou ta espere ke pwodiksyon an ta gen de entrain yo miltipliye ansanm,
yon fwa b.
Men, mult ta ka tou aplike tankou sa a,
nou gen yon varyab vann san preskripsyon nan debarase mete andedan nan mult a 0.
Lè sa a, nou repete pwosesis sa a b fwa ajoute yon nan kontwa.
Pou egzanp, si nou miltipliye 3a pa 5b, nou te ka di mete vann san preskripsyon nan 0,
repete senk fwa, ajoute 3 a vann san preskripsyon.
Se konsa, nou kòmanse nan 0 ak Lè sa a, nou fè sa a senk fwa 3, 6, 9, 12, 15.
Li nan rezilta a menm. Nou toujou jwenn 3 fwa 5 jis
aplikasyon an se diferan.
>> Sa a ki sa nou vle di lè nou di yon bwat nwa.
Li jis vle di nou pa reyèlman sousye ki jan li aplike anba kapo machin lan
osi lontan ke pwodiksyon an se sa nou atann.
An reyalite, sa a, se yon pati nan kontra a pou yo sèvi ak fonksyon, patikilyèman
fonksyon ke lòt moun ekri.
Konpòtman an se toujou ale yo dwe tipik, kapab prevwa
ki baze sou non an nan fonksyon an.
Epi sa a, poukisa li vrèman enpòtan lè ou ekri fonksyon
oswa lè lòt moun ekri fonksyon ke ou ta ka sèvi ak,
ke moun fonksyon gen klè, non relativman evidan,
, epi yo byen dokimante.
Ki se sètènman ka la pou fonksyon tankou ekri an lèt detache f.
>> Se konsa, poukisa nou itilize fonksyon?
Oke m 'te di pi bonè kòm, si nou ekri tout nan kòd nou an andedan nan bagay prensipal
ka jwenn reyèlman ankonbran ak reyèlman konplike.
Fonksyon pèmèt nou kapasite nan yo òganize bagay sa yo ak kraze moute
yon pwoblèm konplike nan trè yon anpil plis dosil pati sub.
Fonksyon tou pèmèt nou senplifye pwosesis la kodaj.
Li se yon anpil pi fasil yo debug yon 10 fonksyon liy kont yon liy 100
fonksyon oswa yon fonksyon 1,000 liy.
Si nou gen sèlman yo dbug ti moso nan yon moman,
oswa ekri ti moso nan moman an, li fè ke eksperyans pwogram
yon anpil pi byen.
Trust m 'sou sa youn.
>> Anfen, si nou ekri fonksyon nou ka jam itilize moun ki pati divès kalite.
Fonksyon ka resikle.
Yo ka itilize nan yon pwogram oubyen yon lòt.
Ou te deja ekri fonksyon an, tout sa ou
bezwen fè se di ke pwogram ki kote yo jwenn ke fonksyon.
Nou te ap resiklaj epi itilize enprime f pou plis pase 40 ane.
Men, li te sèlman ekri yon sèl fwa.
Joli itil, dwat.
Tout dwa.
Se konsa, fonksyon yo se gwo.
Nou konnen sa.
Koulye a, kite la kòmanse ekri yo.
Se pou nou kòmanse resevwa yo nan pwogram nou yo.
Yo nan lòd yo fè sa, premye a bagay nou fè se deklare fonksyon an.
Lè ou deklare yon fonksyon ki sa w ap fondamantalman fè
ap di du a, hey, jis pou ou konnen,
Mwen pral yo dwe ekri yon fonksyon pita sou
ak isit la a ki sa li k ap pase yo sanble.
Rezon ki fè la pou sa a se paske konpilateur kapab
fè kèk bagay etranj si yo wè yon seri senbòl
yo ke yo pa ap abitye avèk yo.
Se konsa, nou jis bay du yon nan chèf moute, mwen kreye yon fonksyon
epi li k ap pase yo fè sa.
Deklarasyon Fonksyon jeneralman si w ap òganize kòd ou a nan yon fason
ke lòt moun yo pral kapab konprann epi fè pou sèvi ak,
jeneralman ou vle mete tout a deklarasyon fonksyon ou
nan tèt la anpil nan kòd ou a, dwa anvan ou kòmanse ekri prensipal menm.
Apre sa, yon bon, gen nan yon fòm trè estanda
ke chak deklarasyon fonksyon sa a.
Yo tout bèl anpil gade tankou sa a.
Gen twa pati nan yon fonksyon deklarasyon, kalite retou, non,
ak agiman lis.
>> Koulye a, kalite a retounen se ki kalite varyab pwodiksyon an volonte fonksyon.
Se konsa, pou egzanp, si nou panse tounen yon minit Anons sa pibliye depi nan de miltipliye nan
nimewo fonksyon, ki sa nou espere si nou anpil anpil pitit yon nonb antye relatif pa yon nonb antye relatif
pwodiksyon an yo pral pwobableman yon nonb antye relatif, dwa.
Miltipliye de nonm antye relatif ansanm, ou jwenn yon nonb antye relatif.
Se konsa, kalite nan retounen nan ki fonksyon ta dwe int.
Non se sa ou vle yo rele fonksyon ou yo.
Sa a se pwobableman pi piti enpòtan an yon pati nan deklarasyon an fonksyon,
an tèm de fonctionnalités.
Men, se aktyèlman pwobableman youn nan pati ki pi enpòtan
nan deklarasyon an fonksyon nan tèm pou konnen sa ki fonksyon an aktyèlman
fè.
Si ou non f fonksyon ou a oswa g oswa h oswa mistè oswa yon bagay tankou sa yo,
w ap pwobableman ale nan jwenn yon ti kras trebiche moute ap eseye
a sonje sa moun fonksyon fè.
Se konsa, li enpòtan yo bay ou non sans fonksyon an.
>> Anfen, lis agiman se lis la vigil separe
nan tout entrain yo nan fonksyon ou, chak nan ki te gen yon kalite ak yon non.
Se konsa, pa sèlman ou gen yo presize ki kalite varyab
pwodiksyon an volonte fonksyon, ou vle tou ou presize
ki kalite ak kalite varyab yo pral fonksyon dwe aksepte kòm entrain.
Se konsa, kite a fè yon egzanp isit la.
Se pou nou jis pran yon gade Yon yon sèl plis konkrè.
Se konsa, isit la nan yon egzanp sou yon fonksyon deklarasyon pou yon fonksyon ki
ta ajoute de nonm antye relatif yo ansanm.
Sòm la nan de nonm antye relatif ki pral gen yon nonb antye relatif kòm byen, menm jan nou jis
diskite.
Se konsa, kalite nan retou, isit la nan vèt, ta dwe int.
Sa jis di nou ke ajoute de antye ki pral, nan fen jounen an,
pwodiksyon, oswa krache l 'tounen soti nan nou, yon nonb antye relatif.
Bay sa fonksyon sa a fè nou vle bay li yon non ki gen sans.
Ajoute de antye sanble apwopriye, konsidere
nou ap pran de nonm antye relatif kòm entrain ak èspere ke pandan l ajoute yo ansanm.
Li ta kapab yon ti jan nan yon ankonbran non ak franchman sa a fonksyon
se pwobableman pa nesesè depi nou gen adisyon a
operatè, si ou sonje soti nan nou an diskisyon sou operatè yo, deja.
Men, kite a jis di pou dedomajman pou nan agiman ki fonksyon sa a se itil
e konsa nou pral rele li ajoute de antye.
Anfen, sa a fonksyon pran de entrain.
Chak nan ki se yon nonb antye relatif.
Se konsa, nou gen sa a vigil lis separe nan entrain.
Koulye a, nou jeneralman vle bay yon non nan chak nan yo
sa yo ke yo ka itilize nan fonksyon an.
Non yo yo pa fò anpil enpòtan.
>> Nan ka sa a, nou fè pa nesesèman gen nenpòt siyifikasyon tache ak yo.
Se konsa, nou ka jis rele yo a ak b.
Sa a totalman amann.
Si sepandan, ou jwenn tèt ou nan yon sitiyasyon
kote non yo nan varyab yo ta ka aktyèlman ap enpòtan,
ou ta ka vle rele yo yon lòt bagay pase a ak b
ba yo yon bagay ki pi senbolik ki gen sans.
Men, nan ka sa a, nou pa fè sa vrèman konnen nenpòt lòt bagay sou fonksyon an.
Nou jis vle ajoute de nonm antye relatif.
Se konsa, nou pral jis rele nonm antye relatif moun a ak b.
Sa a yon egzanp.
>> Poukisa nou pa ou pran yon dezyèm yo reflechi sou yon sèl sa a,
ki jan ou ta ekri yon fonksyon deklarasyon pou yon fonksyon ki
miltipliye de k ap flote nimewo pwen?
Ou sonje ki sa yon k ap flote Nimewo pwen se?
Ki sa ki ta sa a fonksyon deklarasyon sanble?
Mwen aktyèlman rekòmande pou ou pran yon poz videyo a isit la epi pran konbyen tan ou bezwen.
Reflechi sou ki sa sa a deklarasyon fonksyon ta dwe?
Ki sa ki ta kalite a retounen dwe ye?
Ki sa ki ta yon non sans ta dwe ye?
Ki sa ki ta entrain yo ta dwe ye?
Se konsa, poukisa pa ou pran yon poz videyo a isit la epi ekri-up yon deklarasyon fonksyon
pou yon fonksyon ki ta anpil anpil pitit de k ap flote nimewo pwen yo ansanm.
Nou swete ke ou Sarepta videyo a.
>> Se konsa, kite a pran yon gade nan yon egzanp nan yon sèl deklarasyon posib.
Flote mult de ril flote x, flote y.
Pwodwi a nan de nimewo pwen k ap flote,
ki sonje se ki jan nou reprezante chif reyèl
oswa nimewo ak valè desimal nan c, a pwal yon PO pwen k ap flote.
Lè ou anpil anpil pitit yon pa yon desimal desimal,
w ap pwobableman pral yo ka resevwa yon desimal.
Ou vle bay li yon non ki enpòtan.
Miltipliye de ril sanble amann.
Men, ou te kapab vrèman rele li mult de flote, oswa flote mult.
Nenpòt bagay tankou sa yo, osi lontan ke li te bay kèk siyifikasyon aktyèl nan sa
bwat nwa sa a te pral fè.
Epi ankò, nan ka sa a, nou pa fè sa sanble yo gen nenpòt siyifikasyon tache
nan non yo nan la varyab nou ap pase nan,
se konsa nou jis rele yo x ak y.
Koulye a, si ou rele yo yon bagay lòt bagay, sa a, se totalman amann.
An reyalite, si ou te fè deklarasyon sa a olye pou
lè l sèvi avèk double olye pou a flote, si ou sonje
ki double se yon diferan fason yo plis jisteman
presize nimewo reyèl oswa varyab pwen k ap flote.
Sa a totalman amann tou.
Swa youn nan moun ki ta dwe amann.
An reyalite, gen plizyè konbinezon diferan
nan fason yo deklare fonksyon sa a.
Men, sa yo, se de moun trè bon.
Nou te deklare yon fonksyon, sa a, se gwo.
Nou te di du a sa li se, ki sa nou ap ale nan dwe fè.
Koulye a, kite a aktyèlman ekri ke fonksyon.
Se pou yo bay li yon definisyon, se konsa ke andedan kazye a nwa
konpòtman previzib k ap pase.
An reyalite, nou ap miltipliye de reyèl nimewo ansanm, oswa nimewo ajoute
ansanm, oubyen w ap fè tou sa li se ki nou te mande fonksyon nou an fè.
>> Se konsa, an reyalite, se pou yo eseye ak defini anpil anpil pitit de ril ki nou jis
te pale osijè de yon dezyèm de sa.
Koulye a, nan konmansman an nan yon definisyon fonksyon
sanble prèske egzakteman menm bagay la tou kòm yon deklarasyon fonksyon.
Mwen gen tou de peyi yo isit la.
Nan tèt a se deklarasyon an fonksyon, kalite, non, vigil separe agiman
lis, virgules.
Virgules a endike ke ki se yon deklarasyon fonksyon.
Nan konmansman an nan fonksyon an definisyon sanble prèske egzakteman
menm, kalite, non an, vigil separe lis agiman, pa gen virgules,
louvri Curly atèl.
Louvri atèl a Curly, menm jan nou ve yo te fè ak prensipal yo,
vle di ke nou yo kounye a se kòmanse defini
sa k ap pase andedan kazye a nwa ki nou te deside rele mult de ril.
Isit la se youn fason yo aplike li.
Nou te kapab di, nou te ka deklare yon nouvo varyab nan kalite flote rele pwodwi
epi bay varyab sa nan valè x fwa y la.
Lè sa a, retounen pwodwi.
Ki sa ki vle di retounen isit la.
Oke retounen se yon fason a nou endike ke nan ki jan
nou ap pase pwodiksyon an tounen soti.
Se konsa, retounen yon bagay, se menm bagay la kòm, sa a se pwodiksyon an nan bwat la nwa.
Se konsa, sa a, se ki jan ou fè li.
Isit la nan yon lòt fason yo aplike li.
Nou te kapab jis retounen x fwa y.
x se yon flote.
y se yon flote.
Se konsa, x fwa y se tou yon flote.
Nou pa menm bezwen kreye yon lòt varyab.
Se konsa, sa a, se yon fason diferan yo aplike egzak menm ti bwat la nwa.
>> Koulye a, pran yon moman, pran yon poz videyo a ankò,
epi eseye epi defini ajoute de antye, ki se fonksyon nan lòt ke nou
te pale osijè de yon ti moman de sa.
Yon fwa ankò isit la, mwen te mete fonksyon an deklarasyon, e konsa virgules a,
ak yon atèl Curly louvri ak yon Curly fèmen
atèl yo endike kote nou ap ranpli nan sa ki nan ajoute de antye,
pou nou defini patikilye nan konpòtman andedan kazye a nwa.
Se konsa, pran yon poz videyo a.
Epi pran kòm anpil tan kòm ou bezwen eseye epi defini
yon aplikasyon nan ajoute de antye, tankou ke lè fonksyon an sorties yon valè,
li fè sa, an reyalite, retounen sòm total la nan de entrain yo.
Se konsa, jis tankou egzanp lan anvan, gen plizyè fason diferan
ke ou ta ka aplike ajoute de antye.
Isit la nan yon sèl.
Nan isit la nan zoranj Mwen te jis te gen kèk comments--
Mwen te jis te ajoute kèk kòmantè pou montre pou
sa k ap pase sou chak liy nan kòd.
Se konsa, mwen deklare yon varyab rele sòm nan kalite INT.
M 'ap di sòm egal a b plis.
Sa a kote nou ap aktyèlman fè travay nan ajoute yon ak b ansanm.
Apre sa, mwen retounen sòm.
Epi sa fè sans paske sòm se yon varyab nan kalite INT.
Ak sa ki nan done yo tape ke sa a fonksyon di m 'li pral pwodiksyon?
Int.
Se konsa, mwen retounen sòm, ki se yon nonb antye relatif varyab.
Epi sa fè sans bay sa nou te deklare ak defini fonksyon nou an
fè.
>> Koulye a, ou kapab tou defini fonksyon an fason sa a,
int sòm egal yon plis b-- sote ki premye étape-ak Lè sa a, retounen sòm.
Koulye a, ou te kapab gen tou aplike li nan fason sa a,
ki mwen trè pa rekòmande.
Sa a se move pou yon style bagay ak reyèlman move konsepsyon,
men li fè sa, an reyalite, travay.
Si ou pran kòd sa a, ki se int ajoute move sèpan dot c, epi sèvi ak li.
Li aktyèlman ajoute de nonm antye relatif yo ansanm.
Li se yon aplikasyon trè pòv nan konpòtman sa a an patikilye.
Men, li travay.
Se jis la a yo montre pwen a ke nou pa fè sa vrèman
swen sa k ap pase andedan ti bwat la nwa, osi lontan
kòm li gen pwodiksyon an ke nou atann.
Sa a se yon ti bwat mal fèt nwa.
Men, nan fen a jou a, li fè sa toujou pwodiksyon sòm total la nan yon b plis.
Tout dwa.
Se konsa, nou te deklare fonksyon.
Apre sa, nou te defini fonksyon.
Se konsa, sa ki nan vrèman bon.
Koulye a, kite la kòmanse yo sèvi ak fonksyon yo ke nou te deklare e nou te defini.
Yo rele yon fonksyon-li la aktyèlman bèl easy-- tout sa ou bezwen fè
se pase l agiman ki apwopriye, agiman nan kalite la done
ke li espere, ak Lè sa a, bay retounen nan
valè de ki fonksyon ak sa a men eskiz mele l
bay valè a retounen nan ki fonksyon nan yon bagay nan kalite ki kòrèk la.
>> Se konsa, kite a gen yon gade nan sa a an pratik nan yon dosye
rele koulevr 1 dot c, ki Mwen gen nan IDE CS50 mwen.
Se konsa, isit la se koulevr 1 dot c.
Nan kòmansman an ou wè mwen gen mwen gen ladan, liv enkli ladan yo,
estanda IO, ak CS50 dot h.
Lè sa a, mwen gen deklarasyon fonksyon m 'yo.
Sa a se kote mwen se di du a mwen se
ale nan dwe ekri yon fonksyon rele ajoute de antye.
Li nan ale nan pwodiksyon yon nonb antye relatif kalite varyab.
Sa a ki sa pati sa a se dwa isit la.
Lè sa a, mwen gen de entrain nan li yon ak b, chak nan ki se yon nonb antye relatif.
Anndan nan prensipal yo, mwen mande itilizatè a pou D 'lè li di, ban m' yon nonb antye relatif.
Apre sa, yo ap pouse bliye int, ki se yon fonksyon ki
se enkli nan bibliyotèk la CS50.
Apre sa, ki vin estoke nan x, yon varyab nonb antye relatif.
>> Apre sa, nou pouse yo pou yon lòt nonb antye relatif.
Nou jwenn yon lòt nonb antye relatif epi estoke ki nan y.
Lè sa a,, isit la sou liy 28, se kote nou fè apèl fonksyon nou an.
Nou ap di: int z egal ajoute 2 antye x vigil y.
Ou wè poukisa sa a fè sans?
x se yon nonb antye relatif ak kalite varyab y se yon varyab nonb antye relatif kalite.
Se konsa, sa a, se bon.
Ki fè sans ak sa fonksyon nou an deklarasyon sou liy 17 sanble.
Lis la vigil separe D ' espere de nonm antye relatif, se yon ak b.
Nan ka sa a, nou ka rele yo tou sa nou vle.
Li jis espere de nonm antye relatif.
Apre sa, x se yon nonb antye relatif ak y se yon nonb antye relatif.
Ki travay.
>> E nou konnen ke fonksyon ki pral nan pwodiksyon yon nonm antye relatif kòm byen.
Se konsa, nou ap estoke nan pwodiksyon nan fonksyon an,
ajoute de antye, nan yon nonb antye relatif kalite varyab, nou ap rele z.
Lè sa a, nou ka di, sòm total la nan mwen pousan ak pousan mwen se pousan mwen.
x, y ak z respektivman ranpli nan sa yo pousan mwen an.
Ki sa ki se definisyon an nan ajoute de antye sanble?
Li trè senp.
Li nan youn nan yo menm ki nou jis te wè yon dezyèm de sa,
int sòm egal yon sòm plis b retou.
Èske travay sa a?
Se pou yo sove dosye a.
Lè sa a, desann isit la sou tèminal m ' Mwen pral fè sèpan 1,
ak mwen klè ekran m 'yo.
Mwen pral rale nan paske mwen konnen li nan yon ti kras difisil yo wè.
>> Se konsa, nou konpile pwogram sa a kòm sèpan 1.
Se konsa, nou kapab fè dot koupe sèpan 1.
Ban m 'yon nonb antye relatif, 10.
Bay m 'yon lòt nonb antye relatif, 20.
Sòm la nan 10 ak 20 se 30.
Se konsa, nou te fè yon apèl fonksyon siksè.
Ou ka kouri fonksyon an ankò, negatif 10, 17 sòm de negatif 10 ak 17 se 7.
Fonksyon sa a ap travay.
Li te gen konpòtman an ke nou atann li yo.
Se konsa, nou te fè yon siksè fonksyon, definisyon, deklarasyon,
ak yon apèl fonksyon siksè.
Koup divès pwen sou fonksyon
anvan nou konkli seksyon sa a.
Sonje byen soti nan nou an diskisyon sou kalite done,
deja, ki fonksyon ka pafwa pran pa gen okenn entrain.
Si sa a, se ka a, nou deklare fonksyon an
tankou ke li gen yon lis agiman anile.
Ou sonje sa a pi fonksyon komen
nou te wè byen lwen tèlman ki pran yon anile lis agiman se?
Li nan prensipal la.
Sonje byen tou ke fonksyon pafwa pa aktyèlman gen yon pwodiksyon.
Nan ka sa a, nou deklare fonksyon an tankou ke li gen yon kalite retounen anile.
Se pou nou konkli seksyon sa a pa abòde yon pwoblèm pratik.
>> Se konsa, isit la nan pwoblèm nan mete deyò.
Mwen vle nou ekri yon fonksyon rele triyang ki valid.
Ki sa ki fonksyon sa a ta dwe fè se pran twa chif reyèl
ki reprezante longè yo nan twa a pati yo ki nan yon triyang kòm paramèt li yo,
oswa agiman li yo, li yo oswa entrain yon lòt seri sinonim
ke ou ta ka rankontre.
Sa a fonksyon ta dwe swa pwodiksyon vre oubyen fo
depann sou si moun twa longè yo kapab nan fè yon triyang.
Ou sonje kalite a done ki nou itilize yo endike vre oubyen fo?
Koulye a, ki jan ou aplike sa a?
Oke konnen gen yon koup nan règ konsènan triyang
ki aktyèlman itil nan konnen.
Yon triyang ka sèlman gen bò ak longè pozitif.
Ki fè sans.
W ap pwobableman di: du.
Bagay la lòt sonje menm si, se ke sòm total la
ki gen longè yo nan nenpòt ki de pati yo nan triyang lan
gen yo dwe pi gran pase nan longè nan twazyèm bò a.
Sa a aktyèlman vre.
Ou pa ka gen yon triyang nan kote sa 1, 2 ak 4, pou egzanp, paske 1 plis 2
pa janm pi grannèg pase 4.
Se konsa, sa yo se règ yo ki detèmine si wi ou non twa nan
entrain ka limajinè fòme yon triyang.
Se konsa, pran yon koup la minit ak deklare ak Lè sa a defini
sa a fonksyon rele valab triyang, sa yo ki li aktyèlman
gen konpòtman an espesifye isit la.
>> Li pral pwodiksyon vre si moun twa kote yo kapab nan comprenant yon triyang,
ak fo otreman Pare yo wè ki jan ou te fè?
Isit la nan yon sèl aplikasyon triyang a valab.
Li nan pa gen yon sèl la sèlman.
Yours ta ka varye yon ti kras.
Men, yon sèl sa a fè, an reyalite, gen konpòtman an ke nou atann.
Nou deklare fonksyon nou an nan la trè tèt, bouleen triyang valab
flote x flote y flote z.
Se konsa, ankò, sa a fonksyon pran twa chif reyèl
kòm agiman li yo, k ap flote varyab valè pwen,
ak sorties yon vre oubyen fo valè, ki se yon Boolean, sonje.
Se konsa, Se poutèt sa kalite a retounen se bouleen.
Lè sa a, nou defini fonksyon an.
Premye bagay nou fè se tcheke a asire w ke tout kote sa yo yo se pozitif.
Si x se mwens pase oswa egal a 0, oswa si y egal a 0,
oswa si z se mwens pase oswa egal a 0, ki pa ka pètèt gen yon triyang.
Yo pa gen kote ki pozitif.
Se konsa, nou ka retounen fo nan ke sitiyasyon.
Apre sa, nou tcheke a asire w ke chak pè entrain
gen plis pouvwa pase yon sèl nan twazyèm.
>> Se konsa, si x plis y se mwens pase oswa egal a z,
oswa si x plis z se mwens pase oswa egal a y,
oswa si y plis z se mwens pase oswa egal a x, ki tou pa kapab yon triyang ki valid.
Se konsa, nou retounen fo ankò.
Si nou sipoze nou te pase tou de nan chèk yo menm si, lè sa a nou ka retounen vre.
Paske moun twa kote yo kapab nan returning--
pou kreye yon triyang ki valid.
Epi sa a, li.
Ou te kounye a te deklare ak defini.
Epi ou ka kapab kounye a itilize ak rele fonksyon sa a.
Great travay.
Mwen se Doug Lloyd.
Sa a se CS50.