Doug LLOYD: Kull dritt. Allura issa ejja jindirizzaw suġġett verament kbir, il-funzjonijiet. S'issa fil-kors, l- programmi li aħna kont qed miktub ġew miktuba ġewwa tal ewlenija. Huma qed programmi pretty sempliċi. Inti ma għandekx bżonn li jkollhom dawn kollha fergħat u affarijiet għaddejjin. Nistgħu biss tajbin kollha ġewwa ta 'prinċipali u ma jiksbu terriblement kbira. Iżda bħala l-kors tmur fuq u kif inti tibda tiżviluppa programmi b'mod indipendenti, dawn qed probabbilment se biex tibda tikseb ħafna aktar minn 10 jew 15 linji. Inti tista 'tikseb mijiet jew eluf jew għexieren ta 'eluf ta' linji ta 'kodiċi. U huwa verament mhux li crazy maħsub. Bħala tali, huwa probabbilment ma tkunx idea tajba li jżomm kollox ġewwa ta prinċipali. Hija tista 'tikseb ftit diffiċli li ssib dak li qed tfittex jekk inti tagħmel dan. Fortunatament, għalkemm C, u pretty ħafna kull lingwa ta 'programmar oħra li jista 'jaħdem ma', tippermetti ahna jiktbu funzjonijiet. U jien biss se tieħu quick aside hawn li wieħed isemmi li l-funzjonijiet hija qasam tax-xjenza tal-kompjuter. U tkun taf tara ħafna aktar minnhom fil punti varji madwar il-kors u jekk inti tkompli fuq. Fejn hemm ħafna ta ' sinonimi għall-istess kelma. Allura aħna sejħa tal-funzjonijiet. Iżda int tista 'wkoll tismagħhom imsejħa proċeduri, jew metodi, partikolarment, jekk inti stajt qatt jsir ebda programmazzjoni oġġett orjentati lejn before-- u tinkwetax jekk int ma, mhux a deal-- big iżda lingwi orjentata verifika huma spiss imsejħa metodi. Xi drabi dawn qed jissejjaħ subroutines. Imma dawn verament kollha jirreferu l-istess idea bażika. Ejja naraw dak li dik l-idea hija. X'inhu funzjoni? Well funzjoni huwa verament xejn aktar minn kaxxa s-sewda. A kaxxa s-sewda li għandha sett ta 'żero jew inputs aktar u ħruġ uniku. Hekk per eżempju, dan jista 'jkun funzjoni. Din hija funzjoni msejħa funzjonijiet. U li tieħu tliet inputs a, b, u ċ. U ġewwa il-kaxxa s-sewda, aħna ma nafx eżattament dak li tagħmel, iżda proċessi l-inputs b'xi mod u mbagħad tagħti ħruġ uniku, f'dan il-każ, z. Issa li jagħmilha ftit inqas astratt, aħna jista 'jgħid li forsi aħna għandhom funzjoni msejħa jżidu li jieħu tliet inputs A, B, u c u proċessi l-output b'xi mod ġewwa l-kaxxa s-sewda li jipproduċi ħruġ uniku. Allura f'dan il-każ, jekk żid jieħu 3, 6, u 7. X'imkien ġewwa l- żid funzjoni, nixtiequ tistenna li jingħaddu flimkien biex jipproduċu l-output, li hija ta '3 plus 6 plus 7 jew 16. Bl-istess mod, inti għandek funzjoni msejħa mult li tieħu żewġ inputs, A u B, proċessi, b'xi mod, bħal li l-output tal-funzjoni huwa l-prodott taż-żewġ inputs. Iż-żewġ inputs immultiplikat flimkien. 4 u 5 jiġu mgħoddija fis mult, jiġri xi ħaġa, l-output nistennew hija ta '20. Għalfejn nagħmlu sejħa hija ta 'kaxxa sewda? Ukoll jekk aħna ma tikteb l- funzjonijiet nfusna, li aħna ghamilt pjuttost ftit s'issa CS50. Rajna istampar f, per eżempju, li hija funzjoni li aħna ma jiktbu nfusna, imma aħna jużaw il-ħin kollu. Jekk aħna ma miktub il-funzjonijiet nfusna, aħna ma verament bżonn ikunu jafu kif huwa fil-fatt implimentati taħt il-barnuża. Għalhekk, per eżempju l-kaxxa s-sewda I biss wera you for multiplikazzjoni, qafas finanzjarju multi a, b jista 'jkun defined-- u dan huwa biss xi pseudocode-- jista 'jkun definita bħala produzzjoni drabi b. Li jagħmel sens, id-dritt. Jekk għandna funzjoni msejħa mult li jieħu żewġ inputs. Nistgħu nistennew li l-output kieku jkunu iż-żewġ inputs immultiplikat flimkien, il-darba b. Imma mult tista 'wkoll tkun implimentat bħal dan, għandna varjabbli kontra nikseb stabbiliti ġewwa tal mult għal 0. U allura aħna irrepeti dan il-proċess b ħinijiet żid mal counter. Per eżempju, jekk aħna immoltiplika 3a mill 5b, nistgħu ngħidu stabbiliti kontra 0, irrepeti ħames darbiet, żid 3 li jużaw. Allura nibdew f'0 u mbagħad nagħmlu dan ħames darbiet 3, 6, 9, 12, 15. Huwa l-istess riżultat. Aħna xorta jiksbu 3 darbiet 5 biss l-implimentazzjoni hija differenti. Dak hu li rridu nfissru meta ngħidu kaxxa s-sewda. Dan ifisser biss li aħna ma verament kura kif huwa implimentat taħt il-barnuża sakemm l-output huwa dak li nistennew. Fil-fatt, li l-parti tal-kuntratt ta 'użu funzjonijiet, partikolarment funzjonijiet li oħrajn jiktbu. L-imġiba huwa dejjem se biex ikun tipiku, imprevedibbli ibbażata fuq l-isem tal-funzjoni. U hu għalhekk li huwa verament importanti meta tikteb funzjonijiet jew meta n-nies oħra jiktbu funzjonijiet li inti tista 'tuża, li dawk il-funzjonijiet għandhom , ismijiet relattivament ovvji ċari, u huma dokumentati tajjeb. Liema hija ċertament il-każ għall-funzjoni bħal print f. Allura għaliex nużaw funzjonijiet? Well kif għidt qabel, jekk aħna tikteb kollha tal-kodiċi tagħna ġewwa ta 'affarijiet ewlenin jistgħu jiksbu verament diffiċli u verament kkumplikata. Funzjonijiet inessu l-abbiltà biex jorganizzaw l-affarijiet u ikissru problema kkumplikata ħafna fis ħafna partijiet sub aktar maniġġabbli. Funzjonijiet jippermettu wkoll li ahna jissimplifikaw il-proċess ta 'kodifikazzjoni. Huwa ħafna aktar faċli biex debug 10 funzjoni linja versus linja 100 funzjoni jew funzjoni 1000 linja. Jekk aħna biss għandek debug biċċiet żgħar kull darba, jew jikteb biċċiet żgħar fil-ħin, jagħmel li l-esperjenza ta 'programmazzjoni ħafna aħjar. Trust me fuq li wieħed. Fl-aħħar nett, jekk aħna tikteb funzjonijiet aħna jistgħux jerġgħu dawk il-partijiet varji. Funzjonijiet jistgħu jiġu riċiklati. Dawn jistgħu jintużaw fil programm wieħed jew ieħor. You ħadthom diġà bil-miktub il-funzjoni, kull ma għandek trid tagħmel hu li tgħid li programm fejn isibu dik il-funzjoni. Imxejna ġiet riċiklaġġ u l-użu print f għal aktar minn 40 sena. Iżda kien biss bil-miktub darba. Pretty utli, id-dritt. Kull dritt. Allura funzjonijiet huma kbar. Aħna nafu li. Issa ejja tibda bil-miktub tagħhom. Nibdew jkollna tagħhom fiċ programmi tagħna. Sabiex tagħmel dan, l-ewwel Ħaġa li nagħmlu huwa jiddikjara l-funzjoni. Meta inti tiddikjara funzjoni dak li qed bażikament tagħmel huwa javżak il kompilatur, ħej, biss sabiex inti taf, I am ser jkun miktub funzjoni aktar tard u hawn hu dak li għaddej biex look like. Ir-raġuni għal dan hija minħabba kompilaturi jista jagħmlu xi affarijiet stramb jekk jaraw sett ta 'simboli li dawn mhux qed familjari magħhom. Allura aħna biss jagħtu l-kumpilatur a kapijiet up, jien ħolqien ta 'funzjoni u li għaddej biex tagħmel dan. Dikjarazzjonijiet Funzjoni ġeneralment jekk int torganizza kodiċi tiegħek b'mod li oħrajn se jkunu jistgħu jifhmu u li jagħmlu użu ta ', inti ġeneralment tixtieq li tqiegħed kollha ta 'dikjarazzjonijiet funzjoni tiegħek fuq nett tal-kodiċi tiegħek, id-dritt qabel tibda bil-miktub prinċipali anki. U konvenjenti, hemm formola standard ħafna li kull dikjarazzjoni funzjoni ġej. Tħares dawn kollha pretty ħafna bħal dan. Hemm tliet partijiet għal funzjoni dikjarazzjoni, it-tip ta 'ritorn, l-isem, u l-argument lista. Issa t-tip ta 'ritorn hija dwar liema tip ta' varjabbli l-funzjoni rieda output. Għalhekk, per eżempju, jekk naħsbu lura minuta ilu għall-multiplikazzjoni żewġ numri funzjoni, dak li nistennew jekk aħna immoltiplika integer minn numru sħiħ il-produzzjoni jkun probabbilment integer, id-dritt. Multiplikat żewġ numri interi flimkien, ikollok integer. Allura l-tip ritorn ta 'dak funzjoni tkun int. Isem huwa dak li trid sejħa funzjoni tiegħek. Din hija probabbilment l-inqas importanti parti tad-dikjarazzjoni funzjoni, f'termini ta 'funzjonalità. Iżda huwa attwalment probabilment waħda mill-aktar partijiet importanti tad-dikjarazzjoni funzjoni f'dak li jirrigwarda li wieħed ikun jaf x'inhi l-funzjoni fil-fatt ma. Jekk inti isem funzjoni f tiegħek jew g jew h jew misteru jew xi ħaġa bħal dik, int probabilment se tikseb ftit tripped jippruvaw biex tiftakar dak dawk il-funzjonijiet do. Allura huwa importanti li tagħti tiegħek ismijiet sinifikanti funzjoni tal. Fl-aħħar nett, il-lista argument huwa il-lista virgola separati ta 'l-inputs għall-funzjoni tiegħek, kull wieħed minnhom għandu tip u l-isem. Allura mhux biss do ikollok tispeċifika liema tip ta 'varjabbli il-funzjoni se output, inti tixtieq ukoll li jiġi speċifikat liema tip u t-tipi ta 'varjabbli l- funzjoni se taċċetta bħala inputs. Mela ejja nagħmlu eżempju hawn. Ejja ħu ħarsa fi wieħed aktar konkreta. Allura hawnhekk eżempju ta 'funzjoni Dikjarazzjoni għal funzjoni li jżid żewġ numri interi flimkien. Is-somma ta 'żewġ numri interi se tkun numru sħiħ kif ukoll, kif aħna biss diskussi. U għalhekk it-tip ta 'ritorn, hawn fl-aħdar, tkun int. Li biss tgħidilna li jiżdiedu żewġ ints se, fl-aħħar tal-ġurnata, output, jew bżiq lura out għalina, integer. Minħabba dak li din il-funzjoni ma we tixtieq li tagħtiha isem sinifikanti. Żid żewġ ints jidher xieraq, meta wieħed iqis aħna qed jittieħdu żewġ numri interi bħala inputs u nisperaw żżid flimkien. Jista 'jkun daqsxejn ta' ineffiċjenti isem u franchement din il-funzjoni probabbilment ma jkunx meħtieġ peress li għandna ż-żieda operatur, jekk inti recall minn tagħna diskussjoni ta 'operaturi, qabel. Imma ejja biss jgħidu għall-finijiet ta ' argument li din il-funzjoni huwa utli u hekk aħna ser sejħa hija żżid żewġ ints. Fl-aħħarnett, din il-funzjoni jieħu żewġ inputs. Kull wieħed minnhom huwa integer. Allura aħna għandna dan virgola Lista separati ta 'inputs. Issa aħna ġeneralment tixtieq li tagħti isem lil kull wieħed minnhom sabiex ikunu jistgħu jintużaw fi ħdan il-funzjoni. L-ismijiet mhumiex terriblement importanti. F'dan il-każ, aħna ma neċessarjament tagħmel sens marbuta magħhom. Allura nistgħu biss jsejħulhom au b. C'est totalment multa. Jekk madankollu, inti ssib ruħek f'sitwazzjoni fejn l-ismijiet tal-varjabbli jistgħu attwalment ikunu importanti, inti tista 'tixtieq li jsejħu lilhom xi ħaġa oħra għajr au b biex jagħtihom xi ħaġa aktar simbolikament sinifikanti. Iżda f'dan il-każ, aħna ma verament jafu xi ħaġa oħra dwar il-funzjoni. Aħna biss trid iżżid żewġ interi. Allura aħna ser biss sejħa dawk interi au b. C'est eżempju wieħed. Għaliex ma inti tieħu t-tieni biex jaħsbu dwar dan wieħed, kif tista 'tikteb funzjoni Dikjarazzjoni għal funzjoni li timmultiplika żewġ f'wiċċ l-ilma punt numri? Do you remember dak f'wiċċ l-ilma numru punt hu? Xi jkun din il-funzjoni dikjarazzjoni look like? I attwalment nirrikkmandawlek nieqaf l-video hawn u tieħu kemm żmien għandek bżonn. Aħseb dwar dak li dan dikjarazzjoni funzjoni tkun? X'għandu it-tip ta 'ritorn tkun? X'għandu isem sinifikanti jkun? X'se jkunu l-inputs jkun? Allura għaliex ma inti nieqaf l-video hawn u write-up dikjarazzjoni funzjoni għal funzjoni li jimmultiplikaw żewġ numri punt f'wiċċ l-ilma flimkien. Nisperaw inti waqfa qasira tal-video. Mela ejja tagħti ħarsa lejn eżempju ta 'dikjarazzjoni waħda possibbli. Float mult żewġ reals float x, y float. Il-prodott ta 'żewġ f'wiċċ l-ilma punt numri, li jfakkru huma kif aħna jirrappreżentaw in-numri reali jew numri b'valuri deċimali fi c, se jkun hemm numru b'punt li jvarja. Meta inti immoltiplika a deċimali minn deċimali, int probabilment se tikseb deċimali. Inti tixtieq li tagħtiha isem rilevanti. Immoltiplika żewġ reals jidher multa. Imma int tista 'verament sejħa hija mult żewġ sufruni, jew sufruni mult. Xi ħaġa bħal dik, sakemm taw xi sens attwali li dak din il-kaxxa s-sewda kienet se tagħmel. U għal darb'oħra, f'dan il-każ, aħna ma tidhirx li għandha xi tifsira mehmuża għall-ismijiet ta 'l- varjabbli aħna qed tgħaddi fil, hekk aħna biss jsejħulhom xuy. Issa jekk inti jsejħulhom ħaġa inkella, li l-totalment multa. Fil-fatt, jekk inti ma din id-dikjarazzjoni minflok użu jirdoppja minflok tal sufruni, jekk inti recall li jirdoppja huma differenti mod biex b'mod aktar preċiż tispeċifika in-numri reali jew f'wiċċ l-ilma varjabbli punt. C'est totalment multa wisq. Kwalunkwe waħda minn dawn tkun multa. Fil-fatt, hemm diversi kombinazzjonijiet differenti ta 'modi biex tiddikjara din il-funzjoni. Iżda dawn huma żewġ dawk pjuttost tajba. Imxejna ddikjarat funzjoni, li l-kbir. Imxejna qal lill-kumpilatur dak li huwa, dak li aħna qed tmur biex tagħmel. Issa ejja fil-fatt tikteb dik il-funzjoni. Ejja tagħtiha definizzjoni, sabiex ġewwa l-kaxxa s-sewda imġieba prevedibbli qed jiġri. Fil-fatt, aħna qed ikattru żewġ reali numri flimkien, jew numri żżid flimkien, jew tagħmel kwalunkwe huwa li staqsejna funzjoni tagħna biex jagħmlu. Allura fil-fatt, ejja ipprova u jiddefinixxu immoltiplika żewġ reals li aħna biss tkellem dwar it-tieni ilu. Issa l-bidu ta ' definizzjoni funzjoni jistenna kważi eżattament l-istess bħala dikjarazzjoni funzjoni. I jkollhom tnejn minnhom hawnhekk. Fil-quċċata hija d-dikjarazzjoni funzjoni, tip, l-isem, comma separati argument lista, virgola. Il-virgola jindika li li hija dikjarazzjoni funzjoni. Il-bidu tal-funzjoni definizzjoni jistenna kważi eżattament l-istess, tip, isem, comma separati lista argument, l-ebda virgola, miftuħa kaboċċi Brace. Il Brace kaboċċi miftuħ, hekk kif aħna kont qed tagħmel mal prinċipali, ifisser li aħna issa jibdew jiddefinixxu dak li jiġri ġewwa l-kaxxa s-sewda li aħna iddeċidejt li jsejjaħ mult żewġ reals. Hawnhekk huwa mod wieħed biex jimplimentawh. Nistgħu ngħidu, nistgħu tiddikjara ġdida varjabbli tal float imsejħa tip ta 'prodott u tassenja dak il-varjabbli il-y valur x darbiet. U mbagħad jirritornaw prodott. Xi jfisser ritorn medja hawn. Ukoll ritorn huwa l-mod aħna jindikaw li kif aħna qed tgħaddi l-output lura out. Allura ritorn xi ħaġa, huwa l-istess bħal, dan huwa l-output tal-kaxxa s-sewda. Allura li kif inti tagħmel dan. Hawn mod ieħor biex jimplimentawha. Nistgħu biss jirritorna x-ħinijiet y. x hija float. y hija float. Allura x drabi y hija wkoll float. Aħna ma anki ħtieġa li joħolqu varjabbli ieħor. Allura dak mod differenti biex jimplimenta l-kaxxa s-sewda eżatt istess. Issa tieħu mument, nieqaf l-video darb'oħra, u jippruvaw u jiddefinixxi jiżdiedu żewġ ints, li hija l-funzjoni oħra li aħna tkellem dwar mument ilu. Għal darb'oħra hawn, stajt tpoġġi l-funzjoni dikjarazzjoni, u għalhekk il-virgola, u Brace kaboċċi miftuħa u kaboċċi magħluqa Brace biex tindika fejn aħna se jimlew fil-kontenut ta jiżdiedu żewġ ints, sabiex niddefinixxu l partikulari imġieba ġewwa l-kaxxa s-sewda. Allura nieqaf-video. U jieħdu ħin kemm għandek bżonn biex tipprova u tiddefinixxi implimentazzjoni ta żid żewġ ints, bħal li meta l-funzjoni outputs valur, dan huwa minnu, fil-fatt, ir-ritorn is-somma taż-żewġ inputs. Hekk biss bħall-eżempju preċedenti, hemm diversi modi differenti li inti tista 'timplimenta jiżdiedu żewġ ints. Hawn wieħed. Fil hawn fl-oranġjo stajt biss kellhom xi comments-- Stajt biss miżjud xi kummenti li jindikaw dak li qed jiġri fuq kull linja tal-kodiċi. So I tiddikjara varjabbli imsejħa somma ta 'int tip. I say somma ugwali plus b. Li meta aħna qed fil-fatt jagħmlu il-ħidma żżid aub flimkien. U I-ritorn somma. U li jagħmel sens għaliex somma hija varjabbli ta 'int tip. U x'hemm id-dejta tip li dan funzjoni jgħidlekx me li għaddej biex output? Int. Hekk jien jirritornaw somma, li huwa varjabbli numru sħiħ. U li jagħmel sens mogħti dak li konna dikjarata u definit funzjoni tagħna tagħmel. Issa inti tista 'wkoll tiddefinixxi il-funzjoni b'dan il-mod, int somma ugwali plus b-- skip li step-- ewwel u mbagħad, jirritornaw somma. Issa inti jista 'jkollhom ukoll implimentat dan il-mod, li I ħafna ma jirrakkomandaw. Dan huwa stil ħażin għal wieħed ħaġa u d-disinn tassew ħżiena, iżda ma, fil-fatt, ix-xogħol. Jekk tieħu dan il-kodiċi, li huwa int żid bad aġent li jżid dot c, u jużawh. Hija fil-fatt ma jżid żewġ numri interi flimkien. Huwa implimentazzjoni fqira ħafna ta 'din l-imġiba partikolari. Iżda dan jaħdem. Huwa biss hawnhekk biex juru il-punt li aħna ma verament kura dak li jiġri ġewwa l-kaxxa s-sewda, sakemm kif għamlet il-output li nistennew. Dan huwa kaxxa sewda imfassla ħażin. Iżda fl-aħħar il-jum, dan ma output xorta somma ta 'plus b. Kull dritt. Allura konna ddikjarat funzjonijiet. U konna definiti funzjoni. Allura dak verament tajba. Issa ejja tibda tuża l-funzjonijiet li konna dikjarata u konna definiti. Li jsejjaħ function-- huwa attwalment pretty easy-- kull ma għandek bżonn tagħmel huwa tgħaddiha argumenti xierqa, argumenti tat-tip tad-data illi tistenna, u imbagħad tassenja r-ritorn valur ta 'dik il-funzjoni u this-- skuża me-- jassenja l-valur tar-ritorn tal-funzjoni għal xi ħaġa tat-tip korrett. Mela ejja jkollhom ħarsa lejn dan fil-prattika fil-fajl imsejħa aġent li jżid 1 dot, c li I jkollhom fil IDE CS50 tiegħi. Allura hawnhekk huwa aġent li jżid 1 dot c. Fil-bidu tara Għandi tiegħi jinkludi, lira jinkludu, standard IO, u CS50 dot h. U mbagħad I jkollhom dikjarazzjoni funzjoni tiegħi. Dan huwa fejn jien javżak l kompilatur jien ser ikunu kitba ta ' funzjoni msejħa jiżdiedu żewġ ints. Huwa ser output varjabbli tip numru sħiħ. Dak hu li din il-parti huwa dritt hawn. U mbagħad I għandhom żewġ inputs għal dan a u b, li kull wieħed minnhom huwa integer. Ġewwa ta 'prinċipali, Nitlob lill-utent għall input billi qal, tagħti me numru sħiħ. U huma imħeġġa li tinsa int, li huwa funzjoni li hija inkluża fil-librerija CS50. U li gets maħżuna fil x, varjabbli numru sħiħ. Imbagħad aħna fil-pront għall-eqreb numru sħiħ ieħor. Nikbru numru sħiħ ieħor u jaħżnu dik fil y. U mbagħad, hawn fuq il-linja 28, huwa fejn nagħmlu sejħa funzjoni tagħna. Aħna qed jgħidu, ugwali z Int żid 2 ints x comma y. Inti tara għaliex dan jagħmel sens? x hija varjabbli tip integer u y hija varjabbli tip integer. Allura li tajjeb. Li jagħmel sens ma 'dak funzjoni tagħna Dikjarazzjoni fuq il-linja 17 qisu. Il-lista input virgola separati jistenna żewġ numri interi, au b. F'dak il-każ, nistgħu sejħa minnhom xi rridu. Hija biss jistenna żewġ numri interi. U x huwa integer u y huwa integer. Li xogħlijiet. U nafu li l-funzjoni li qed jiġri għall-produzzjoni AN interi ukoll. U hekk aħna qed jaħżnu l output tal-funzjoni, żid żewġ ints, fi tip integer varjabbli, li aħna qed titlob z. U allura nistgħu ngħidu, is-somma ta ' mija iu mija i huwa mija i. x, y u z rispettivament timla i tal dawk fil-mija. X'inhu l-definizzjoni ta ' żid żewġ ints look like? Huwa pjuttost sempliċi. Huwa wieħed mill-dawk we biss raw it-tieni ilu, somma int huwa ugwali għal somma plus b ritorn. Taħdem din? Ejja tiffranka l-fajl. U mbagħad stabbiliti hawn fuq tagħmir terminali tiegħi Jien ser tagħmel aġent li jżid 1, u I ċara iskrin tiegħi. Jien ser zoom għaliex naf huwa ftit diffiċli biex tara. Allura aħna jiġbor dan il-programm kif aġent li jżid 1. Allura nistgħu nagħmlu dot slash aġent li jżid 1. Agħti me integer, 10. Agħti me numru sħiħ ieħor, 20. Is-somma ta '10 u 20 hija 30. Allura għamilna sejħa funzjoni ta 'suċċess. Inti tista 'taħdem il-funzjoni darb'oħra, negattivi 10, 17 somma ta negattiva 10 u 17 hija ta '7. Din il-funzjoni jaħdem. Hija għandha l-imġiba li nistennew li. U hekk aħna ħadna suċċess funzjoni, id-definizzjoni, id-dikjarazzjoni, u sejħa funzjoni ta 'suċċess. Koppja mixxellanji punti dwar funzjonijiet qabel aħna nikkonkludu din it-taqsima. Recall minn tagħna diskussjoni ta 'tipi ta' data, qabel, li l-funzjonijiet jista 'xi kultant jieħu l-ebda inputs. Jekk dan huwa l-każ, aħna jiddikjara l-funzjoni bħala li lista argument bla effett. Tiftakar dak l- aktar funzjoni komuni Rajna s'issa li jieħu argument lista vojt hu? Huwa prinċipali. Ifakkar ukoll li l-funzjoni kultant ma attwalment jkollhom output. F'dak il-każ, aħna niddikjaraw il-funzjoni bħala li tip ritorn bla effett. Ejja jikkonkludu din it-taqsima billi indirizzar problema prattika. Allura hawnhekk-problema stabbiliti. Nixtieq li tikteb funzjoni imsejħa trijanglu valida. Liema din il-funzjoni għandha tagħmel huwa jieħu tliet numri reali li jirrappreżentaw l-tulijiet tat-tliet naħat ta 'trijangolu bħala parametri tagħha, jew argumenti tagħha, jew tagħha inputs-- sett ieħor ta 'sinonimi li inti tista 'tiltaqa'. Din il-funzjoni għandha jew output vera jew falza skond jekk dawk it-tliet tulijiet huma kapaċi li tagħti trijanglu. Do you remember-tip ta 'dejta li aħna użati biex jindikaw vera jew falza? Issa kif taħseb li jimplimentaw dan? Ukoll jafu hemm koppja ta 'regoli dwar trijangoli li huma attwalment utli li tkun taf. A trijanglu tista 'biss ikollha naħat b'tul pożittiv. Li jagħmel sens. Inti probabbilment tgħid, duh. Il-ħaġa oħra li wieħed jinnota għalkemm, hi li s-somma tat-tulijiet ta 'kwalunkwe żewġ naħat tat-trijangolu għandu jkun akbar mill- tul tal-ġenb terzi. Li l-fatt veru. Ma jistax ikollok trijangolu ta ġnub 1, 2 u 4, per eżempju, għaliex 1 plus 2 ma tkunx akbar minn 4. Għalhekk dawn huma r-regoli li tiddetermina jekk il tlieta jew le inputs jistgħu konċepibbli jiffurmaw trijanglu. Sabiex jieħdu ftit minuti u tiddikjara u mbagħad jiddefinixxu din il-funzjoni tissejjaħ validu trijanglu, b'tali mod li fil-fatt għandu l-imġieba speċifikat hawn. Se output minnu jekk dawk it-tliet naħat huma kapaċi li jinkludi trijanglu, u falza inkella Lesti biex tara kif għamilt? Hawn wieħed ta 'implimentazzjoni trijangolu tal valida. Huwa mhux l-uniku wieħed. Dejjem tista 'tvarja xi ftit. Iżda dan wieħed ma, fil-fatt, ikollu l-imġieba li nistennew. Aħna niddikjaraw funzjoni tagħna fil- ħafna top, BOOL trijanglu validu float x float float y z. Għalhekk għal darb'oħra, din il-funzjoni jieħu tliet numri reali kif argumenti tagħha, galleġġjanti varjabbli tal-valur punt, u outputs vera jew falza valur, li huwa Boolean, irtirar. Allura hu għalhekk li t-tip ritorn hija BOOL. Imbagħad aħna jiddefinixxu l-funzjoni. L-ewwel ħaġa li għandna nagħmlu huwa jivverifika sabiex ikun żgur li kollha tal-ġnub huma pożittivi. Jekk x hija inqas minn jew ugwali għal 0, jew jekk y hija ugwali għal 0, jew jekk z hija inqas minn jew ugwali għal 0, li ma jistgħux possibilment tkun trijanglu. Huma m'għandhomx aspetti pożittivi. U hekk aħna tista 'tmur lura falza f'dik is-sitwazzjoni. Sussegwentement, aħna jivverifika sabiex ikun żgur li kull par ta 'inputs huwa akbar mit-tielet wieħed. Mela jekk x plus y hija inqas minn jew ugwali għal z, jew jekk x plus z hija inqas minn jew ugwali għal y, jew jekk y plus z hija inqas minn jew ugwali għal x, li wkoll ma tistax tkun trijanglu valida. Allura nerġgħu lura falza mill-ġdid. Jekk wieħed jassumi aħna għadda kemm tal-kontrolli għalkemm, allura nistgħu jirritornaw vera. Minħabba dawn it-tliet naħat huma kapaċi returning-- tal-ħolqien ta trijangolu valida. U li hu. You ħadthom issa ddikjarata u definiti. U inti tista 'tkun kapaċi li issa użu u sejħa din il-funzjoni. Xogħol tajba. Jien Doug Lloyd. Dan huwa CS50.