1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG Lloyd: Në rregull. 3 00:00:05,580 --> 00:00:08,877 Pra, tani le të trajtuar një Tema me të vërtetë e madhe, funksionet. 4 00:00:08,877 --> 00:00:11,460 Deri më tani në kurs, të gjitha programe të cilat ne kemi qenë shkruar 5 00:00:11,460 --> 00:00:12,969 janë shkruar brenda kryesor. 6 00:00:12,969 --> 00:00:14,260 Ata janë programe shumë e thjeshtë. 7 00:00:14,260 --> 00:00:16,940 Ju nuk duhet të ketë të gjitha këto degët dhe gjëra në vazhdim e sipër. 8 00:00:16,940 --> 00:00:18,773 Ne mund të përshtatet vetëm të gjitha brenda kryesor dhe ajo 9 00:00:18,773 --> 00:00:20,407 nuk ka marrë tmerrësisht e madhe. 10 00:00:20,407 --> 00:00:22,990 Por si kurs vazhdon dhe si ju të fillojnë të zhvillojnë programe 11 00:00:22,990 --> 00:00:26,260 në mënyrë të pavarur, ata ndoshta do për të filluar për të marrë shumë më tepër se 10 12 00:00:26,260 --> 00:00:27,200 ose 15 rreshta. 13 00:00:27,200 --> 00:00:31,400 Ju mund të merrni qindra e mijëra apo dhjetëra mijëra rreshta të kodit. 14 00:00:31,400 --> 00:00:34,690 Dhe kjo nuk është e vërtetë se i çmendur një mendim. 15 00:00:34,690 --> 00:00:39,720 Si e tillë, kjo ndoshta nuk është një ide e mirë për të mbajtur çdo gjë brenda e kryesore. 16 00:00:39,720 --> 00:00:43,240 Ajo mund të merrni një pak e vështirë për të gjetur atë që ju po kërkoni në qoftë se ju bëni atë. 17 00:00:43,240 --> 00:00:47,040 >> Për fat të mirë, edhe pse C, dhe shumë e shumë çdo gjuhë tjetër programimi që 18 00:00:47,040 --> 00:00:50,386 mund të punojnë me të, lejon na për të shkruar funksione. 19 00:00:50,386 --> 00:00:52,260 Dhe unë jam vetëm do të të marrë një të shpejtë mënjanë këtu 20 00:00:52,260 --> 00:00:54,971 të përmendet se funksionon është një fushë e shkencave kompjuterike. 21 00:00:54,971 --> 00:00:57,970 Dhe ju do të shihni shumë më tepër prej tyre në pika të ndryshme gjatë gjithë kursit 22 00:00:57,970 --> 00:00:59,290 dhe në qoftë se ju vazhdoni në. 23 00:00:59,290 --> 00:01:02,280 Ku ka një shumë të sinonime për të njëjtën fjalë. 24 00:01:02,280 --> 00:01:03,390 Pra, ne e quajmë funksionet. 25 00:01:03,390 --> 00:01:05,980 Por ju gjithashtu mund të dëgjojnë ata të referuara si procedurat, 26 00:01:05,980 --> 00:01:09,570 ose metoda, veçanërisht, në qoftë se ju keni ndonjëherë bërë ndonjë programimit të orientuar objekt 27 00:01:09,570 --> 00:01:11,950 më herët, dhe mos u bëni merak në qoftë se ju nuk e, nuk kanë 28 00:01:11,950 --> 00:01:14,280 një deal-- i madh, por në Gjuhë të auditimit të orientuar 29 00:01:14,280 --> 00:01:16,129 janë quajtur shpesh metoda. 30 00:01:16,129 --> 00:01:17,670 Ndonjëherë ata janë quajtur nënprocedurat. 31 00:01:17,670 --> 00:01:20,690 Por ata me të vërtetë të gjithë i referohen në të njëjtën ide themelore. 32 00:01:20,690 --> 00:01:22,480 >> Le të shohim se çfarë ideja është. 33 00:01:22,480 --> 00:01:23,310 Çfarë është një funksion? 34 00:01:23,310 --> 00:01:26,470 Edhe një funksion është me të vërtetë asgjë më shumë se një kuti e zezë. 35 00:01:26,470 --> 00:01:31,430 Një kuti që i zi ka një grup të zero ose më shumë inputet dhe një dalje të vetme. 36 00:01:31,430 --> 00:01:33,420 Kështu për shembull, kjo mund të jetë një funksion. 37 00:01:33,420 --> 00:01:35,510 Ky është një funksion i quajtur funk. 38 00:01:35,510 --> 00:01:39,330 Dhe kjo merr tre inputeve a, b, dhe c. 39 00:01:39,330 --> 00:01:42,580 Dhe brenda atë kuti e zezë, ne nuk e di saktësisht se çfarë e bën atë, 40 00:01:42,580 --> 00:01:45,100 por ajo përpunon inpute në një farë mënyre dhe pastaj ajo 41 00:01:45,100 --> 00:01:48,680 jep një dalje të vetme, në këtë rast, z. 42 00:01:48,680 --> 00:01:50,504 Tani për ta bërë atë një pak më pak abstrakte, ne 43 00:01:50,504 --> 00:01:52,420 mund të them se ndoshta ne kanë një funksion të quajtur 44 00:01:52,420 --> 00:01:58,750 shtoj se merr tre inputeve a, b, dhe c dhe proceset e prodhimit në një farë mënyre 45 00:01:58,750 --> 00:02:01,010 brenda kutinë e zezë të prodhojnë një dalje të vetme. 46 00:02:01,010 --> 00:02:05,190 Pra, në këtë rast, në qoftë se shtoni merr 3, 6, dhe 7. 47 00:02:05,190 --> 00:02:07,020 Diku brenda shtoni funksion, ne do 48 00:02:07,020 --> 00:02:09,750 presim që ato të shtohen së bashku për të prodhuar prodhimit, e cila 49 00:02:09,750 --> 00:02:13,220 është 3 plus 6 plus 7 ose 16. 50 00:02:13,220 --> 00:02:17,940 >> Në mënyrë të ngjashme, ju keni një funksion të quajtur mult që merr dy inpute, a dhe b, 51 00:02:17,940 --> 00:02:21,070 përpunon ato në një farë mënyrë të tillë se prodhimi i funksionit 52 00:02:21,070 --> 00:02:22,920 është produkt i dy inputeve. 53 00:02:22,920 --> 00:02:25,080 Të dy inputeve shumëzuar së bashku. 54 00:02:25,080 --> 00:02:29,150 4 dhe 5 duke kaluar në mult, diçka ndodh, e prodhimit ne presim 55 00:02:29,150 --> 00:02:31,090 është 20. 56 00:02:31,090 --> 00:02:32,507 Përse ne e quajmë atë një kuti e zezë? 57 00:02:32,507 --> 00:02:34,840 E pra në qoftë se ne nuk jemi të shkruar funksionon veten, e cila 58 00:02:34,840 --> 00:02:36,869 ne kemi bërë mjaft pak deri tani CS50. 59 00:02:36,869 --> 00:02:39,910 Ne kemi parë të shtypura f, për shembull, të cilat është një funksion që nuk e ka shkruar 60 00:02:39,910 --> 00:02:42,305 veten, por ne e përdorim gjatë gjithë kohës. 61 00:02:42,305 --> 00:02:44,180 Në qoftë se ne nuk jemi të shkruar funksionet veten tonë, 62 00:02:44,180 --> 00:02:48,450 ne nuk duhet të vërtetë të dini se si është në fakt zbatohet nën kapuç. 63 00:02:48,450 --> 00:02:51,710 >> Kështu për shembull kuti e zezë I vetëm ju tregoi për shumëzim, 64 00:02:51,710 --> 00:02:53,740 mult a, b mund të jetë defined-- dhe kjo është vetëm 65 00:02:53,740 --> 00:02:57,902 disa pseudocode-- mund të jetë përkufizohet si prodhimi një herë b. 66 00:02:57,902 --> 00:02:58,860 Që ka kuptim, apo jo. 67 00:02:58,860 --> 00:03:01,370 Në qoftë se ne kemi një funksion të quajtur mult që merr dy inpute. 68 00:03:01,370 --> 00:03:04,750 Ne do të presim se prodhimi do të të jenë të dy inputeve shumëzuar së bashku, 69 00:03:04,750 --> 00:03:06,240 një herë b. 70 00:03:06,240 --> 00:03:09,170 Por mult mund të jetë zbatuar si kjo, 71 00:03:09,170 --> 00:03:13,150 ne kemi një kundër variabël të të vendosur brenda mult në 0. 72 00:03:13,150 --> 00:03:18,000 Dhe pastaj ne përsëris këtë proces b herë shtoni në banak. 73 00:03:18,000 --> 00:03:24,270 Për shembull, nëse ne shumohen 3a nga 5b, mund të themi vendosur në kundërshtim me 0, 74 00:03:24,270 --> 00:03:27,700 përsëritur pesë herë, shtoni 3 në banak. 75 00:03:27,700 --> 00:03:34,490 Pra, ne të fillojë në 0 dhe pastaj ne të bëjmë këtë pesë herë 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Është i njëjti rezultat. Ne ende të marrë 3 herë 5 vetëm 77 00:03:37,500 --> 00:03:39,500 zbatimi është i ndryshëm. 78 00:03:39,500 --> 00:03:41,490 >> Kjo është ajo që ne do të thotë kur themi një kuti të zezë. 79 00:03:41,490 --> 00:03:44,406 Kjo thjesht do të thotë që ne nuk e kujdesit të vërtetë se si është zbatuar nën kapuç 80 00:03:44,406 --> 00:03:46,170 për sa kohë që prodhimi është ajo që ne presim. 81 00:03:46,170 --> 00:03:49,045 Në fakt, kjo është pjesë e kontratës e duke përdorur funksionet, në veçanti 82 00:03:49,045 --> 00:03:50,630 Funksionet që të tjerët shkruajnë. 83 00:03:50,630 --> 00:03:53,980 Sjellja është gjithmonë do të jetë tipike, të paparashikueshme 84 00:03:53,980 --> 00:03:55,420 bazuar në emri i funksionit. 85 00:03:55,420 --> 00:03:57,500 Dhe kjo është arsyeja pse ajo është me të vërtetë e rëndësishme kur ju shkruani funksionet 86 00:03:57,500 --> 00:04:00,020 ose kur njerëzit e tjerë shkruajnë funksionet që ju mund të përdorni, 87 00:04:00,020 --> 00:04:03,590 se ato funksione kanë , emrat e qartë relativisht të dukshme, 88 00:04:03,590 --> 00:04:04,990 dhe janë të dokumentuara mirë. 89 00:04:04,990 --> 00:04:08,560 E cila është sigurisht rasti për funksionin si të shtypura f. 90 00:04:08,560 --> 00:04:09,860 >> Pra, pse nuk kemi përdorim funksione? 91 00:04:09,860 --> 00:04:14,220 Edhe siç thashë më parë, në qoftë se kemi shkruar të gjithë e kodit tonë brenda gjërat kryesore 92 00:04:14,220 --> 00:04:17,120 mund të merrni të vërtetë të rëndë dhe me të vërtetë e komplikuar. 93 00:04:17,120 --> 00:04:19,980 Funksionet na lejojë mundësinë për të organizuar gjërat dhe të prishur 94 00:04:19,980 --> 00:04:24,540 një problem shumë i komplikuar në shumë pjesë më shumë i dëgjueshëm nën. 95 00:04:24,540 --> 00:04:28,130 Funksionet gjithashtu na lejojë të lehtësuar procesin e kodimit. 96 00:04:28,130 --> 00:04:33,080 Kjo është një shumë më e lehtë për të korrigjoj një 10 Funksioni linjë kundrejt një linjë 100 97 00:04:33,080 --> 00:04:35,890 Funksioni ose një funksion 1000 linjë. 98 00:04:35,890 --> 00:04:38,400 Në qoftë se ne kemi vetëm të korrigjoj copa të vogla në një kohë, 99 00:04:38,400 --> 00:04:42,110 ose shkruani copa të vogla në atë kohë, kjo e bën këtë përvojë programimit 100 00:04:42,110 --> 00:04:43,070 shumë më mirë. 101 00:04:43,070 --> 00:04:44,910 Trust mua për këtë një të tillë. 102 00:04:44,910 --> 00:04:48,400 >> Së fundi, në qoftë se kemi shkruar funksione ne mund të ripërdorimin ato pjesë të ndryshme. 103 00:04:48,400 --> 00:04:49,880 Funksionet mund të riciklohen. 104 00:04:49,880 --> 00:04:51,880 Ato mund të përdoren në një program apo një tjetër. 105 00:04:51,880 --> 00:04:53,713 Ju keni shkruar tashmë funksioni, të gjithë ju 106 00:04:53,713 --> 00:04:56,530 duhet të bëni është të tregoni atë program ku mund të gjeni atë funksion. 107 00:04:56,530 --> 00:04:59,680 Ne kemi qenë të riciklimit dhe duke përdorur shtypura f për mbi 40 vjet. 108 00:04:59,680 --> 00:05:02,150 Por ajo ishte shkruar vetëm një herë. 109 00:05:02,150 --> 00:05:04,270 Shumë e dobishme, e drejtë. 110 00:05:04,270 --> 00:05:04,830 Në rregull. 111 00:05:04,830 --> 00:05:06,040 Pra, funksionet janë të mëdha. 112 00:05:06,040 --> 00:05:06,860 Ne e dimë se. 113 00:05:06,860 --> 00:05:08,700 Tani le të filloj të shkruaj ato. 114 00:05:08,700 --> 00:05:10,830 Le të fillojë duke marrë ata në programet tona. 115 00:05:10,830 --> 00:05:13,869 Në mënyrë që të bëjë këtë, i pari gjë që ne bëjmë është të deklarojë funksionin. 116 00:05:13,869 --> 00:05:16,160 Kur ju të deklarojë një funksion çfarë jeni duke bërë në thelb 117 00:05:16,160 --> 00:05:18,900 është thënë përpiluesit, hej, vetëm kështu që ju e dini, 118 00:05:18,900 --> 00:05:20,850 Unë jam duke shkuar për të shkruar një funksion më vonë 119 00:05:20,850 --> 00:05:22,987 dhe këtu është ajo që ajo do të duken si. 120 00:05:22,987 --> 00:05:24,820 Arsyeja për këtë është sepse hartuesit mund 121 00:05:24,820 --> 00:05:27,900 të bëjë disa gjëra të çuditshme në qoftë se ata shohin një grup të simboleve 122 00:05:27,900 --> 00:05:29,560 se ata nuk jeni të njohur me të. 123 00:05:29,560 --> 00:05:33,000 Pra, ne vetëm të japë përpilues â kokat lart, unë jam duke krijuar një funksion 124 00:05:33,000 --> 00:05:35,492 dhe kjo do të bëjë këtë. 125 00:05:35,492 --> 00:05:38,450 Deklaratat Funksioni përgjithësi, nëse ju jeni organizimin kodin tuaj në një mënyrë të 126 00:05:38,450 --> 00:05:41,872 që të tjerët do të jenë në gjendje të të kuptojnë dhe të përdorni, 127 00:05:41,872 --> 00:05:44,330 ju zakonisht dëshironi të vënë të gjitha i deklaratave tuaja funksion 128 00:05:44,330 --> 00:05:48,220 në krye të kodit tuaj, e drejtë përpara se të filloni të shkruani kryesor edhe. 129 00:05:48,220 --> 00:05:50,770 Dhe të përshtatshme, nuk ka një formë shumë standarde 130 00:05:50,770 --> 00:05:53,500 se çdo deklaratë funksion më poshtë. 131 00:05:53,500 --> 00:05:56,090 Ata të gjithë pretty much të duket si ky. 132 00:05:56,090 --> 00:06:01,440 Ka tri pjesë në një funksion Deklarata, lloj kthimi, emri, 133 00:06:01,440 --> 00:06:03,420 dhe lista argumenti. 134 00:06:03,420 --> 00:06:07,180 >> Tani lloji kthimi është se çfarë lloj i variabël prodhimi funksion do. 135 00:06:07,180 --> 00:06:10,710 Kështu për shembull, në qoftë se ne mendojmë prapa një minutë më parë të shumëzuar dy 136 00:06:10,710 --> 00:06:15,690 Numrat funksion, çfarë të presim nëse ne shumohen një numër të plotë nga një numër i plotë 137 00:06:15,690 --> 00:06:18,502 prodhimi do të jetë ndoshta një numër të plotë, të drejtë. 138 00:06:18,502 --> 00:06:20,710 Shumëzuar dy numra të plotë së bashku, ju të merrni një numër të plotë. 139 00:06:20,710 --> 00:06:24,167 Pra, llojin e kthimit që Funksioni do të int. 140 00:06:24,167 --> 00:06:26,000 Emri është ajo që ju dëshironi për të thirrur funksionin tuaj. 141 00:06:26,000 --> 00:06:29,330 Kjo është ndoshta më pak i rëndësishëm pjesë e deklaratës funksionit, 142 00:06:29,330 --> 00:06:30,827 në kuptimin e funksionalitetit. 143 00:06:30,827 --> 00:06:33,160 Por në fakt është ndoshta një nga pjesët më të rëndësishme 144 00:06:33,160 --> 00:06:36,243 i deklaratës funksionit në aspektin e ditur se çfarë funksioni në të vërtetë 145 00:06:36,243 --> 00:06:37,120 bën. 146 00:06:37,120 --> 00:06:40,474 Nëse ju emrit të funksionit tuaj f apo g ose h ose mister ose diçka të tillë, 147 00:06:40,474 --> 00:06:42,765 ju jeni me siguri do të merrni pak morën lart duke u përpjekur 148 00:06:42,765 --> 00:06:44,650 për të kujtuar se çfarë bëjnë ato funksione. 149 00:06:44,650 --> 00:06:47,880 Pra, është e rëndësishme për të dhënë tuaj emra kuptimplotë Funksionit së. 150 00:06:47,880 --> 00:06:51,030 >> Së fundi, lista argument është presja ndara lista 151 00:06:51,030 --> 00:06:55,260 e të gjitha inputeve në funksion tuaj, ku secili prej tyre ka një lloji dhe një emri. 152 00:06:55,260 --> 00:06:57,840 Pra, jo vetëm që ju keni për të të specifikojë se çfarë lloji i variablit 153 00:06:57,840 --> 00:07:00,760 prodhimi funksion do, ju gjithashtu duan të specifikojë 154 00:07:00,760 --> 00:07:07,694 çfarë lloji dhe llojet e variablave të funksion do të jetë pranuar si inpute. 155 00:07:07,694 --> 00:07:08,860 Pra, le të bëjmë një shembull këtu. 156 00:07:08,860 --> 00:07:10,220 Le të marrin një vështrim në një më konkrete. 157 00:07:10,220 --> 00:07:13,130 Kështu që këtu është një shembull i një funksioni Deklarata për një funksion që 158 00:07:13,130 --> 00:07:14,925 do të shtojë dy integers së bashku. 159 00:07:14,925 --> 00:07:17,800 Shuma e dy numrave të plotë do të të jetë një numër të plotë, si dhe, si ne vetëm 160 00:07:17,800 --> 00:07:18,450 diskutuar. 161 00:07:18,450 --> 00:07:21,610 Dhe kështu lloji kthimi, këtu në të gjelbër, do të int. 162 00:07:21,610 --> 00:07:25,190 Kjo vetëm na se shtoni dy ints tregon do të, në fund të ditës, 163 00:07:25,190 --> 00:07:28,799 prodhimit, ose fol prapa jashtë për ne, një numër të plotë. 164 00:07:28,799 --> 00:07:31,590 Duke pasur parasysh se çfarë e bën këtë funksion ne doni të jepni një emër kuptimplotë. 165 00:07:31,590 --> 00:07:33,630 Shtoni dy ints duket përshtatshme, duke marrë parasysh 166 00:07:33,630 --> 00:07:37,574 ne jemi duke marrë dy integers si inpute dhe shpresojmë se duke shtuar ato së bashku. 167 00:07:37,574 --> 00:07:40,240 Kjo mund të jetë pak e një rëndë Emri dhe sinqerisht ky funksion 168 00:07:40,240 --> 00:07:42,430 ndoshta nuk është e nevojshme pasi ne kemi shtimin 169 00:07:42,430 --> 00:07:46,310 operator, nëse ju kujtohet nga tonë Diskutimi i operatorëve, më parë. 170 00:07:46,310 --> 00:07:49,650 Por le të them vetëm për hir të Argumenti se ky funksion është i dobishëm 171 00:07:49,650 --> 00:07:52,860 dhe kështu që ne do të thërrasë atë shtoni dy ints. 172 00:07:52,860 --> 00:07:55,230 Së fundi, ky funksion merr dy inpute. 173 00:07:55,230 --> 00:07:56,960 Secili prej të cilëve është një numër i plotë. 174 00:07:56,960 --> 00:07:59,900 Pra, ne kemi këtë presje Lista e ndara të inputeve. 175 00:07:59,900 --> 00:08:02,830 Tani ne përgjithësi duam të jepni një emër për secilin prej tyre 176 00:08:02,830 --> 00:08:05,070 në mënyrë që ata mund të përdoret brenda funksionit. 177 00:08:05,070 --> 00:08:07,180 Emrat nuk janë tmerrësisht të rëndësishme. 178 00:08:07,180 --> 00:08:11,400 >> Në këtë rast, ne nuk domosdoshmërisht të ketë ndonjë kuptim bashkangjitur me ta. 179 00:08:11,400 --> 00:08:13,140 Pra, ne vetëm mund të telefononi ata a dhe b. 180 00:08:13,140 --> 00:08:14,257 Kjo është krejtësisht në rregull. 181 00:08:14,257 --> 00:08:16,090 Nëse megjithatë, ju gjeni veten në një situatë 182 00:08:16,090 --> 00:08:19,497 ku emrat e variablave në fakt mund të jetë e rëndësishme, 183 00:08:19,497 --> 00:08:21,830 ju mund të dëshironi të telefononi ata diçka tjetër se a dhe b 184 00:08:21,830 --> 00:08:24,701 për t'i dhënë atyre diçka më shumë simbolikisht kuptimplotë. 185 00:08:24,701 --> 00:08:27,700 Por në këtë rast, ne nuk të vërtetë di ndonjë gjë tjetër për funksionin. 186 00:08:27,700 --> 00:08:29,320 Ne vetëm duam të shtoni dy numra të plotë. 187 00:08:29,320 --> 00:08:32,429 Pra, ne do të vetëm thirrje ato numra te plote a dhe b. 188 00:08:32,429 --> 00:08:33,990 Kjo është një shembull. 189 00:08:33,990 --> 00:08:36,287 >> Pse nuk keni marrë një të dytë për të menduar për këtë, 190 00:08:36,287 --> 00:08:38,870 si do ju shkruani një funksion Deklarata për një funksion që 191 00:08:38,870 --> 00:08:42,940 shumëfishon dy numra lundrues point? 192 00:08:42,940 --> 00:08:45,910 A ju kujtohet se çfarë është një lundrues numër pikë është? 193 00:08:45,910 --> 00:08:48,120 Çfarë do të këtë funksion Deklarata duken si? 194 00:08:48,120 --> 00:08:53,330 Unë në fakt ju rekomandojmë që të bëj një pauzë video këtu dhe për të marrë se sa kohë ju nevojitet. 195 00:08:53,330 --> 00:08:55,521 Mendoni për atë që kjo Deklarata funksion do të jetë? 196 00:08:55,521 --> 00:08:56,770 Çfarë do të jetë lloji kthimi? 197 00:08:56,770 --> 00:08:58,103 Çfarë do një emër kuptimplotë të jetë? 198 00:08:58,103 --> 00:08:59,580 Çfarë do të jetë inputet? 199 00:08:59,580 --> 00:09:03,190 Pra, pse nuk ju pauzë video të këtu dhe shkruaj-up një deklaratë funksion 200 00:09:03,190 --> 00:09:07,640 për një funksion që do të shumohen Dy lundrues numra pikë së bashku. 201 00:09:07,640 --> 00:09:09,330 Shpresojmë që ju bëri një pauzë video. 202 00:09:09,330 --> 00:09:12,950 >> Pra, le të marrin një vështrim në një shembull e një deklarate të mundshëm. 203 00:09:12,950 --> 00:09:17,340 Noton dy reals mult noton x, y noton. 204 00:09:17,340 --> 00:09:19,090 Produkti i dy lundrues numrat pikë, 205 00:09:19,090 --> 00:09:21,710 të cilat janë të kujtojnë se si ne përfaqësojnë numrat reale 206 00:09:21,710 --> 00:09:26,770 ose numrat me vlera dhjetore në C, do të jetë një numër lundrues pikë. 207 00:09:26,770 --> 00:09:28,570 Kur ju shumohen një dhjetor me një decimal të, 208 00:09:28,570 --> 00:09:30,460 ju jeni me siguri do të merrni një decimal. 209 00:09:30,460 --> 00:09:31,960 Ju dëshironi të jepni një emër përkatës. 210 00:09:31,960 --> 00:09:33,810 Multiply dy reals duket gjobë. 211 00:09:33,810 --> 00:09:36,620 Por ju mund të vërtetë të telefononi atë Dy gjithandej mult, ose gjithandej mult. 212 00:09:36,620 --> 00:09:39,540 Diçka të tillë, për aq kohë sa dha disa kuptimin e vërtetë për atë që 213 00:09:39,540 --> 00:09:41,469 kjo kuti e zezë ishte duke shkuar për të bërë. 214 00:09:41,469 --> 00:09:44,260 Dhe përsëri, në këtë rast, ne nuk bëjmë duket të ketë ndonjë kuptim bashkangjitur 215 00:09:44,260 --> 00:09:46,390 për emrat e të Variablat ne jemi duke kaluar në, 216 00:09:46,390 --> 00:09:48,645 kështu që ne vetëm thirrje atyre x dhe y. 217 00:09:48,645 --> 00:09:51,020 Tani në qoftë se ju e quani ata diçka tjetër, kjo është krejtësisht në rregull. 218 00:09:51,020 --> 00:09:53,310 Në fakt, në qoftë se keni kryer kjo deklaratë në vend 219 00:09:53,310 --> 00:09:55,450 duke përdorur dyshe vend e gjithandej, në qoftë se ju kujtohet 220 00:09:55,450 --> 00:09:59,100 se dyshe janë një tjetër mënyrë për të më saktësisht 221 00:09:59,100 --> 00:10:02,330 specifikoni numrat reale ose lundrues variablave pikë. 222 00:10:02,330 --> 00:10:03,620 Kjo është krejtësisht në rregull shumë. 223 00:10:03,620 --> 00:10:04,670 Ose një nga ata që do të jetë mirë. 224 00:10:04,670 --> 00:10:06,711 Në fakt, ka disa kombinime të ndryshme 225 00:10:06,711 --> 00:10:08,410 mënyra për të deklaruar këtë funksion. 226 00:10:08,410 --> 00:10:10,884 Por këto janë dy të mjaft të mirë. 227 00:10:10,884 --> 00:10:12,550 Ne kemi deklaruar një funksion, që është e madhe. 228 00:10:12,550 --> 00:10:15,700 Ne e kemi thënë përpiluesit atë që është, ajo që ne jemi duke shkuar për të bërë. 229 00:10:15,700 --> 00:10:17,630 Tani le të vërtetë të shkruajë atë funksion. 230 00:10:17,630 --> 00:10:20,750 Le t'i jepte një përkufizim, në mënyrë që brenda kutisë zi 231 00:10:20,750 --> 00:10:22,840 Sjellja e parashikueshme po ndodh. 232 00:10:22,840 --> 00:10:26,270 Në fakt, ne jemi shumëzuar dy të vërtetë numra së bashku, ose numrat e shtuar 233 00:10:26,270 --> 00:10:29,760 së bashku, ose duke bërë çfarëdo qoftë ajo është që kemi kërkuar funksionin tonë për të bërë. 234 00:10:29,760 --> 00:10:32,780 >> Pra, në fakt, le të përpiqemi dhe të përcaktojë shumohen dy reals të cilat ne vetëm 235 00:10:32,780 --> 00:10:35,350 foli për një të dytë më parë. 236 00:10:35,350 --> 00:10:38,560 Tani fillimi i një përkufizim funksion 237 00:10:38,560 --> 00:10:41,720 duket pothuajse saktësisht të njëjtën si një deklaratë funksion. 238 00:10:41,720 --> 00:10:43,170 Unë kam dy prej tyre këtu. 239 00:10:43,170 --> 00:10:47,770 Në krye është deklarata funksioni, llojin, emrin, nda me presje argumenti 240 00:10:47,770 --> 00:10:49,410 lista, pikëpresje. 241 00:10:49,410 --> 00:10:53,800 Pikëpresje tregon se që është një deklaratë funksion. 242 00:10:53,800 --> 00:10:57,060 Fillimi i funksionit përkufizim duket pothuajse tamam 243 00:10:57,060 --> 00:11:03,790 të njëjtën gjë, llojin, emrin, nda me presje Lista Argumenti, nuk ka pikëpresje, 244 00:11:03,790 --> 00:11:05,206 hapur mbajtëse kaçurrel. 245 00:11:05,206 --> 00:11:07,580 Mbajtëse hapur kaçurrel, ashtu si ne kemi qenë duke bërë me kryesor, 246 00:11:07,580 --> 00:11:09,540 do të thotë se ne jemi tani duke filluar për të përcaktuar 247 00:11:09,540 --> 00:11:14,567 çfarë ndodh brenda kutinë e zezë që ne kemi vendosur për të thirrur dy reals mult. 248 00:11:14,567 --> 00:11:15,900 Këtu është një mënyrë për ta zbatuar atë. 249 00:11:15,900 --> 00:11:20,370 Ne mund të themi, ne mund të deklarojë një të ri variabël i tipit noton quajtur produktin 250 00:11:20,370 --> 00:11:24,020 dhe të caktojë se ndryshueshme me vlerën x herë y. 251 00:11:24,020 --> 00:11:27,306 Dhe pastaj të kthehen produkt. 252 00:11:27,306 --> 00:11:28,430 Çfarë do të thotë kthimi këtu. 253 00:11:28,430 --> 00:11:31,090 Edhe kthimi është mënyra ne tregojnë se është si 254 00:11:31,090 --> 00:11:33,400 ne jemi duke kaluar prodhimi mbështetur jashtë. 255 00:11:33,400 --> 00:11:38,160 Pra kthehen diçka, është e njëjtë si, kjo është prodhimi i kutia e zezë. 256 00:11:38,160 --> 00:11:40,732 Pra, kjo është se si ju bëni atë. 257 00:11:40,732 --> 00:11:42,190 Këtu është një mënyrë tjetër për ta zbatuar atë. 258 00:11:42,190 --> 00:11:45,050 Ne vetëm mund të kthehet x herë y. 259 00:11:45,050 --> 00:11:45,870 x është një noton. 260 00:11:45,870 --> 00:11:46,660 y është një pluskues. 261 00:11:46,660 --> 00:11:48,490 Pra, x herë y është gjithashtu një noton. 262 00:11:48,490 --> 00:11:50,750 Ne nuk kemi nevojë as për të krijojë një tjetër ndryshore. 263 00:11:50,750 --> 00:11:56,750 Pra, kjo është një mënyrë të ndryshme për të zbatojë kutinë e saktë të njëjtën e zezë. 264 00:11:56,750 --> 00:11:58,570 >> Tani të marrë një moment, pauzë video përsëri, 265 00:11:58,570 --> 00:12:01,680 dhe të përpiqen dhe të përcaktojë shtoni dy ints, i cili është funksioni tjetër që 266 00:12:01,680 --> 00:12:03,090 foli për një moment më parë. 267 00:12:03,090 --> 00:12:06,440 Përsëri këtu, unë kam vënë funksionin Deklarata, dhe kështu pikëpresje, 268 00:12:06,440 --> 00:12:08,420 dhe një mbajtëse të hapur kaçurrel dhe një kaçurrel mbyllur 269 00:12:08,420 --> 00:12:12,080 mbajtëse për të treguar se ku ne do të mbushë në përmbajtjen e shtoni dy ints, 270 00:12:12,080 --> 00:12:15,530 kështu që ne define veçanti Sjellja brenda kutinë e zezë. 271 00:12:15,530 --> 00:12:16,380 Pra pauzë video. 272 00:12:16,380 --> 00:12:18,790 Dhe të marrë sa më shumë kohë ju duhet të përpiqen dhe të përcaktojë 273 00:12:18,790 --> 00:12:25,040 një zbatim i shtoni dy ints, të tilla se kur funksioni nxjerr një vlerë, 274 00:12:25,040 --> 00:12:29,209 e bën atë, në fakt, kthimi shuma e dy inputeve. 275 00:12:29,209 --> 00:12:32,000 Pra, ashtu si shembullin e mëparshëm, ka disa mënyra të ndryshme 276 00:12:32,000 --> 00:12:34,210 që ju të mund të zbatojë shtoni dy ints. 277 00:12:34,210 --> 00:12:35,130 Këtu është një. 278 00:12:35,130 --> 00:12:37,172 Në këtu në portokalli kam vetëm kishte disa comments-- 279 00:12:37,172 --> 00:12:38,880 Unë kam shtuar vetëm disa Komente për të treguar 280 00:12:38,880 --> 00:12:41,400 çfarë po ndodh në secilën linjë të kodit. 281 00:12:41,400 --> 00:12:45,430 Kështu që unë deklaroj një ndryshore quhet shuma e tipit int. 282 00:12:45,430 --> 00:12:47,279 Unë them shuma e barabartë me një plus b. 283 00:12:47,279 --> 00:12:50,070 Kjo është ajo ku ne jemi të vërtetë duke bërë puna duke shtuar një dhe b së bashku. 284 00:12:50,070 --> 00:12:51,850 Dhe kthehem shumë. 285 00:12:51,850 --> 00:12:56,460 Dhe kjo ka kuptim, sepse shuma është një variabël i tipit int. 286 00:12:56,460 --> 00:13:00,180 Dhe çfarë është të dhënat e tipit që ky Funksioni më thotë se do të prodhimit? 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Kështu që unë jam kthyer shumën, e cila eshte nje numer i plote i ndryshueshëm. 289 00:13:03,072 --> 00:13:06,030 Dhe kjo ka kuptim duke pasur parasysh atë që ne kemi shpallur dhe përcaktuar funksionin tonë 290 00:13:06,030 --> 00:13:07,320 për të bërë. 291 00:13:07,320 --> 00:13:09,700 >> Tani ju mund të përcaktojë funksioni në këtë mënyrë, 292 00:13:09,700 --> 00:13:15,260 int shuma e barabartë me një plus b-- kaloni atë së pari step-- dhe pastaj, shumë kthehen. 293 00:13:15,260 --> 00:13:17,760 Tani ju mund të ketë edhe zbatuar në këtë mënyrë, 294 00:13:17,760 --> 00:13:19,180 që I highly nuk e rekomandojmë. 295 00:13:19,180 --> 00:13:22,540 Ky është stili i keq për një gjë dhe dizajn të vërtetë e keqe, 296 00:13:22,540 --> 00:13:24,420 por e bën atë, në fakt, punë. 297 00:13:24,420 --> 00:13:30,199 Nëse ju merrni këtë kod, i cili është int shtoni keq nepërkë dot c, dhe e përdorin atë. 298 00:13:30,199 --> 00:13:31,990 Ajo në fakt ka shtuar dy integers së bashku. 299 00:13:31,990 --> 00:13:37,632 Kjo është një zbatim shumë të varfër i kësaj sjellje të veçantë. 300 00:13:37,632 --> 00:13:38,340 Por ajo funksionon. 301 00:13:38,340 --> 00:13:41,200 Është vetëm këtu për të ilustruar pika që ne nuk të vërtetë 302 00:13:41,200 --> 00:13:44,530 intereson se çfarë ndodh brenda kutia e zezë, për aq kohë 303 00:13:44,530 --> 00:13:46,510 pasi ajo ka dalje që ne presim. 304 00:13:46,510 --> 00:13:48,870 Kjo është një kuti dizajnuar dobët e zezë. 305 00:13:48,870 --> 00:13:53,801 Por në fund një ditë, ajo bën Prodhimi ende shuma e një plus b. 306 00:13:53,801 --> 00:13:54,300 Në rregull. 307 00:13:54,300 --> 00:13:56,320 Pra, ne kemi deklaruar funksione. 308 00:13:56,320 --> 00:13:57,490 Dhe ne kemi përcaktuar funksionin. 309 00:13:57,490 --> 00:13:58,540 Pra, kjo është me të vërtetë mirë. 310 00:13:58,540 --> 00:14:03,020 Tani le të fillojnë të përdorin funksionet që ne kemi deklaruar dhe kemi përcaktuar. 311 00:14:03,020 --> 00:14:05,960 Për t'i telefonuar një function-- është e vërtetë goxha easy-- të gjithë ju duhet të bëni 312 00:14:05,960 --> 00:14:09,070 është të kalojë atë argumentet e duhura, Argumentet e tipit të të dhënave 313 00:14:09,070 --> 00:14:11,600 se ajo pret, dhe pastaj të caktojë kthimin 314 00:14:11,600 --> 00:14:15,190 Vlera e atë funksion dhe this-- justifikim me-- 315 00:14:15,190 --> 00:14:19,390 të caktojë vlerën e kthimit e atë funksion për diçka të tipit saktë. 316 00:14:19,390 --> 00:14:22,410 >> Pra, le të kemi një vështrim në kjo në praktikë në një skedar 317 00:14:22,410 --> 00:14:27,730 quajtur nepërkë 1 pikë c, e cila Unë kam në IDE time CS50. 318 00:14:27,730 --> 00:14:31,042 Kështu që këtu është nepërkë 1 dot c. 319 00:14:31,042 --> 00:14:33,500 Në fillim ju shihni se unë kam im përfshin, mina përfshijnë, 320 00:14:33,500 --> 00:14:35,460 standarde IO, dhe CS50 dot h. 321 00:14:35,460 --> 00:14:37,700 Dhe atëherë unë kam deklaratën time funksion. 322 00:14:37,700 --> 00:14:39,570 Kjo është ajo ku unë jam thënë përpiluesit unë jam 323 00:14:39,570 --> 00:14:42,850 do të jetë me shkrim një Funksioni i quajtur shtoni dy ints. 324 00:14:42,850 --> 00:14:45,780 Ajo do të REZULTATI Një variabël të tipit integer. 325 00:14:45,780 --> 00:14:47,360 Kjo është ajo që kjo pjesë është e drejtë këtu. 326 00:14:47,360 --> 00:14:51,950 Dhe atëherë unë kam dy inpute në të një dhe b, secila prej të cilave është një numër i plotë. 327 00:14:51,950 --> 00:14:58,250 Brenda kryesor, unë kërkojë nga shfrytëzuesi për të dhëna duke thënë, më jepni një numër të plotë. 328 00:14:58,250 --> 00:15:01,040 Dhe ata janë të nxitet për ta harroj int, e cila është një funksion që 329 00:15:01,040 --> 00:15:03,240 është përfshirë në bibliotekë CS50. 330 00:15:03,240 --> 00:15:07,660 Dhe që merr ruajtur në x, një variable integer. 331 00:15:07,660 --> 00:15:09,886 >> Pastaj ne të shkaktonte ato për një numër të plotë. 332 00:15:09,886 --> 00:15:13,070 Ne kemi marrë një numër i plotë dhe dyqan se në y. 333 00:15:13,070 --> 00:15:17,990 Dhe pastaj, këtu on line 28, është ku ne kemi bërë thirrjen tonë funksion. 334 00:15:17,990 --> 00:15:23,770 Ne jemi duke thënë, është e barabartë int z shtoni 2 ints x presje y. 335 00:15:23,770 --> 00:15:25,980 A e shihni se pse kjo ka kuptim? 336 00:15:25,980 --> 00:15:29,710 x është një numër i plotë dhe variable type y është një numër i plotë variable tipi. 337 00:15:29,710 --> 00:15:31,220 Pra, kjo është e mirë. 338 00:15:31,220 --> 00:15:34,570 Që e bëjnë kuptim me atë funksion tonë Deklarata on line 17 duket si. 339 00:15:34,570 --> 00:15:38,300 Presja ndara Lista input pret dy numra të plotë, a dhe b. 340 00:15:38,300 --> 00:15:40,300 Në këtë rast, ne mund ta quajmë ata çdo gjë që ne duam. 341 00:15:40,300 --> 00:15:42,300 Ajo thjesht pret dy integers. 342 00:15:42,300 --> 00:15:44,930 Dhe x është një numër i plotë dhe y është një numër i plotë. 343 00:15:44,930 --> 00:15:45,640 Që punon. 344 00:15:45,640 --> 00:15:48,680 >> Dhe ne e dimë se funksioni do të prodhimit një integers si. 345 00:15:48,680 --> 00:15:51,290 Dhe kështu që ne jemi ruajtjen e të Prodhimin e funksionit, 346 00:15:51,290 --> 00:15:56,050 shtoni dy ints, në një lloj integer ndryshueshme, të cilat ne jemi duke bërë thirrje z. 347 00:15:56,050 --> 00:16:01,980 Dhe atëherë mund të themi, shuma e për qind i dhe qind për qind i është i. 348 00:16:01,980 --> 00:16:06,210 x, y dhe z respektivisht plotësuar ato për qind unë së. 349 00:16:06,210 --> 00:16:08,334 Cili është përkufizimi i shtoni dy Ints duken si? 350 00:16:08,334 --> 00:16:09,125 Është shumë e thjeshtë. 351 00:16:09,125 --> 00:16:11,270 Kjo është një nga ato që vetëm e pa një të dytë më parë, 352 00:16:11,270 --> 00:16:14,390 shuma int barabartë me një shumë plus kthimin b. 353 00:16:14,390 --> 00:16:15,420 E bën këtë punë? 354 00:16:15,420 --> 00:16:17,270 Le të ruajtur kartelën. 355 00:16:17,270 --> 00:16:22,080 Dhe pastaj këtu poshtë në terminalin e mia Unë jam duke shkuar për të bërë adder 1, 356 00:16:22,080 --> 00:16:23,000 dhe me i fshirë ekranin tim. 357 00:16:23,000 --> 00:16:25,791 Unë jam duke shkuar për të zoom në, sepse unë e di kjo është pak e vështirë për të parë. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Pra, ne hartojnë këtë program si kuçedër 1. 360 00:16:33,770 --> 00:16:37,910 Pra, ne mund të bëjmë dot slash nëpërkë 1. 361 00:16:37,910 --> 00:16:40,060 Më jepni një numër të plotë, 10. 362 00:16:40,060 --> 00:16:42,380 Më jep një numër i plotë, 20. 363 00:16:42,380 --> 00:16:45,200 Shuma e 10 dhe 20 është 30. 364 00:16:45,200 --> 00:16:47,615 Pra, kemi bërë një telefonatë të suksesshme funksion. 365 00:16:47,615 --> 00:16:55,820 Ju mund të kandidojë funksionin përsëri, negative 10, 17 shuma e negativ 10 dhe 17 është 7. 366 00:16:55,820 --> 00:16:57,120 Ky funksion punon. 367 00:16:57,120 --> 00:16:59,240 Ajo ka sjellje që ne presim që ajo të. 368 00:16:59,240 --> 00:17:03,610 Dhe kështu që ne kemi bërë një të suksesshëm funksion, përkufizim, deklarata, 369 00:17:03,610 --> 00:17:07,288 dhe një telefonatë e suksesshme funksion. 370 00:17:07,288 --> 00:17:09,079 Çifti Ndryshme pikë për funksionet 371 00:17:09,079 --> 00:17:10,611 para se të përfundojmë këtë seksion. 372 00:17:10,611 --> 00:17:12,319 Kujtojnë nga tonë Diskutimi i llojeve të të dhënave, 373 00:17:12,319 --> 00:17:16,109 më parë, që funksionon nganjëherë mund të marrë asnjë inputeve. 374 00:17:16,109 --> 00:17:17,930 Në qoftë se është rasti, ne deklaroj funksionin 375 00:17:17,930 --> 00:17:19,788 si paturit e një liste argumenti i pavlefshëm. 376 00:17:19,788 --> 00:17:21,579 A ju kujtohet çfarë Funksioni më i zakonshëm 377 00:17:21,579 --> 00:17:25,036 ne kemi parë deri më tani që merr një listë argument i pavlefshëm është? 378 00:17:25,036 --> 00:17:27,300 Kjo është kryesore. 379 00:17:27,300 --> 00:17:30,850 Kujtojnë gjithashtu se funksioni nganjëherë në fakt nuk kemi një prodhim. 380 00:17:30,850 --> 00:17:34,210 Në këtë rast, ne shpallim funksionin si të paturit e një lloj kthimi i pavlefshëm. 381 00:17:34,210 --> 00:17:37,880 Le të përfundojmë këtë pjesë duke trajtimit të problemit praktikë. 382 00:17:37,880 --> 00:17:39,900 >> Kështu që këtu është problemi paraqitura. 383 00:17:39,900 --> 00:17:43,630 Unë dua që ju të shkruani një funksion quhet trekëndësh i vlefshëm. 384 00:17:43,630 --> 00:17:47,410 Çfarë ky funksion duhet të bëjë është marrë tre numrave reale 385 00:17:47,410 --> 00:17:51,930 që përfaqësojnë gjatesite e tre anët e një trekëndësh si parametrat e tij, 386 00:17:51,930 --> 00:17:54,550 ose argumentet e tij, apo të saj inputs-- një sërë sinonimet 387 00:17:54,550 --> 00:17:57,340 që ju mund të hasni. 388 00:17:57,340 --> 00:18:01,120 Ky funksion duhet ose prodhimit vërtetë apo e rreme 389 00:18:01,120 --> 00:18:04,960 varësi të faktit nëse këto tre gjatësisë janë të afta për të bërë një trekëndëshi. 390 00:18:04,960 --> 00:18:09,930 A ju kujtohet llojin e të dhënave që kemi përdorur për të treguar vërtetë apo e rreme? 391 00:18:09,930 --> 00:18:11,436 Tani si mendoni ju të zbatojë këtë? 392 00:18:11,436 --> 00:18:13,810 Edhe e dini ka disa e rregullave në lidhje me trekëndëshat 393 00:18:13,810 --> 00:18:15,480 që janë në të vërtetë e dobishme të dinë. 394 00:18:15,480 --> 00:18:18,292 Një trekëndësh mund të ketë vetëm anët me gjatësi pozitiv. 395 00:18:18,292 --> 00:18:19,000 Kjo ka kuptim. 396 00:18:19,000 --> 00:18:21,432 Ju ndoshta jeni duke thënë, duh. 397 00:18:21,432 --> 00:18:23,390 Gjë tjetër të theksohet megjithatë, është se shuma 398 00:18:23,390 --> 00:18:25,484 e gjatësisë së ndonjë dy anët e trekëndëshit 399 00:18:25,484 --> 00:18:27,650 duhet të jetë më i madh se gjatësia e anës trete. 400 00:18:27,650 --> 00:18:28,690 Kjo është në fakt e vërtetë. 401 00:18:28,690 --> 00:18:34,150 Ju nuk mund të ketë një trekëndësh të palëve 1, 2 dhe 4, për shembull, për shkak se 1 plus 2 402 00:18:34,150 --> 00:18:36,270 nuk është më i madh se 4. 403 00:18:36,270 --> 00:18:38,870 Pra, këto janë rregullat që përcaktuar se nëse apo jo tre 404 00:18:38,870 --> 00:18:42,740 inputeve mund të mendohet të formojnë një trekëndësh. 405 00:18:42,740 --> 00:18:46,360 Pra, të marrë disa minuta dhe të deklarojë dhe pastaj të përcaktojë 406 00:18:46,360 --> 00:18:49,810 ky funksion i quajtur të vlefshme trekëndësh, të tilla se ai në fakt 407 00:18:49,810 --> 00:18:51,650 ka sjelljen e specifikuar këtu. 408 00:18:51,650 --> 00:18:57,030 >> Ajo do të prodhimit e vërtetë në qoftë se këto tre anët janë të afta të përbërë nga një trekëndëshi, 409 00:18:57,030 --> 00:19:01,950 dhe të rreme ndryshe Gatshme për të parë se si ju e bëri? 410 00:19:01,950 --> 00:19:04,650 Këtu është një zbatim trekëndësh i vlefshëm. 411 00:19:04,650 --> 00:19:05,770 Kjo nuk është e vetmja. 412 00:19:05,770 --> 00:19:07,770 Juaji mund të ndryshojnë pak. 413 00:19:07,770 --> 00:19:11,040 Por kjo e bën, në fakt, kanë sjellja që ne presim. 414 00:19:11,040 --> 00:19:14,450 Ne deklarojmë funksionin tonë në shumë të lartë, bool trekëndësh vlefshme 415 00:19:14,450 --> 00:19:16,630 noton noton x y noton z. 416 00:19:16,630 --> 00:19:18,930 Pra, përsëri, ky funksion merr tre numrave reale 417 00:19:18,930 --> 00:19:22,280 si argumente të saj, lundrues variabla me vlerë pikë, 418 00:19:22,280 --> 00:19:26,510 dhe nxjerr një e vërtetë apo e rreme vlera, e cila është një Boolean, risjell. 419 00:19:26,510 --> 00:19:28,660 Pra, kjo është arsyeja pse lloji kthimi është bool. 420 00:19:28,660 --> 00:19:30,016 Pastaj ne saktësimit të funksionit. 421 00:19:30,016 --> 00:19:33,140 Gjëja e parë që bëni është të kontrolloni për t'u siguruar se të gjithë anët janë pozitive. 422 00:19:33,140 --> 00:19:37,010 Nëse x është më e vogël se ose e barabartë me 0, y, ose nëse është e barabartë me 0, 423 00:19:37,010 --> 00:19:41,050 ose kur z është më e vogël se ose e barabartë me 0, që nuk mund të jetë një trekëndësh. 424 00:19:41,050 --> 00:19:42,380 Ata nuk kanë anët pozitive. 425 00:19:42,380 --> 00:19:45,790 Dhe kështu që ne mund të kthehen rreme në atë situatë. 426 00:19:45,790 --> 00:19:49,010 Tjetra, ne kontrolloni për t'u siguruar që çdo palë e inputeve 427 00:19:49,010 --> 00:19:51,830 është më i madh se ai i trete. 428 00:19:51,830 --> 00:19:54,530 >> Pra, nëse x plus y është më pak se ose e barabartë me z, 429 00:19:54,530 --> 00:19:57,060 ose kur x plus z është më pak se ose e barabartë me y, 430 00:19:57,060 --> 00:20:01,730 ose nese y plus z është më e vogël se ose e barabartë me x, që gjithashtu nuk mund të jetë një trekëndësh i vlefshëm. 431 00:20:01,730 --> 00:20:03,800 Pra, ne kthimit të rreme përsëri. 432 00:20:03,800 --> 00:20:06,900 Duke supozuar se kemi kaluar dy kontrollet Megjithatë, atëherë ne mund të kthehen vërtetë. 433 00:20:06,900 --> 00:20:09,440 Sepse këto tre anët janë në gjendje të returning-- 434 00:20:09,440 --> 00:20:11,647 për krijimin e një trekëndësh të vlefshme. 435 00:20:11,647 --> 00:20:12,230 Dhe kjo është ajo. 436 00:20:12,230 --> 00:20:13,830 Ju keni deklaruar tani dhe të përcaktuara. 437 00:20:13,830 --> 00:20:17,330 Dhe ju mund të jetë në gjendje për tani përdorin dhe e quajmë këtë funksion. 438 00:20:17,330 --> 00:20:19,470 Punë e mrekullueshme. 439 00:20:19,470 --> 00:20:20,650 Unë jam Doug Lloyd. 440 00:20:20,650 --> 00:20:22,820 Kjo është CS50. 441 00:20:22,820 --> 00:20:24,340