1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG LLOYD: Allt í lagi. 3 00:00:05,580 --> 00:00:08,877 Svo nú skulum takast a mjög stórt atriði, virka. 4 00:00:08,877 --> 00:00:11,460 Svo langt í námskeiðinu, allt forrit sem við höfum verið að skrifa 5 00:00:11,460 --> 00:00:12,969 hafa verið skrifuð inni main. 6 00:00:12,969 --> 00:00:14,260 Þeir eru ansi einföld forrit. 7 00:00:14,260 --> 00:00:16,940 Þú þarft ekki að hafa öll þessi Útibú og hlutirnir gerast. 8 00:00:16,940 --> 00:00:18,773 Við getum bara passa það allt inni helstu og það 9 00:00:18,773 --> 00:00:20,407 ekki fá hræðilega yfirþyrmandi. 10 00:00:20,407 --> 00:00:22,990 En eins og að sjálfsögðu fer á og eins og þú byrjar að þróa forrit 11 00:00:22,990 --> 00:00:26,260 sjálfstætt, þeir eru líklega að fara að byrja að fá mikið meira en 10 12 00:00:26,260 --> 00:00:27,200 eða 15 línur. 13 00:00:27,200 --> 00:00:31,400 Þú gætir fengið hundruð eða þúsundir eða tugir þúsunda lína af kóða. 14 00:00:31,400 --> 00:00:34,690 Og það er í raun ekki að brjálaður hugsun. 15 00:00:34,690 --> 00:00:39,720 Eins og svo, það er líklega ekki góð hugmynd að halda öllu inni í main. 16 00:00:39,720 --> 00:00:43,240 Það er hægt að fá smá erfitt að finna það sem þú ert að leita að, ef þú gerir það. 17 00:00:43,240 --> 00:00:47,040 >> Sem betur fer, þó C, og ansi mikið annað hvert forritunarmál sem 18 00:00:47,040 --> 00:00:50,386 gæti virkað með, leyfir okkur að skrifa virka. 19 00:00:50,386 --> 00:00:52,260 Og ég ætla bara að fara að taka fljótur til hliðar hér 20 00:00:52,260 --> 00:00:54,971 að nefna að virka er eitt svæði tölvunarfræði. 21 00:00:54,971 --> 00:00:57,970 Og þú munt sjá margar fleiri af þeim á ýmis atriði um námskeiðið 22 00:00:57,970 --> 00:00:59,290 og ef þú heldur áfram á. 23 00:00:59,290 --> 00:01:02,280 Þar sem það er mikið af samheiti fyrir sama orð. 24 00:01:02,280 --> 00:01:03,390 Svo við köllum aðgerðir. 25 00:01:03,390 --> 00:01:05,980 En þú gætir einnig heyra þær nefndur málsmeðferð, 26 00:01:05,980 --> 00:01:09,570 eða aðferðir, sérstaklega ef þú hefur einhvern tíma gert einhverjar Object oriented Forritun 27 00:01:09,570 --> 00:01:11,950 before-- og ekki hafa áhyggjur ef þú ert ekki, ekki 28 00:01:11,950 --> 00:01:14,280 stór deal-- en í endurskoðun stilla tungumál 29 00:01:14,280 --> 00:01:16,129 eru oft kallaðir aðferðir. 30 00:01:16,129 --> 00:01:17,670 Stundum þeir eru kallaðir subroutines. 31 00:01:17,670 --> 00:01:20,690 En þeir í raun allt vísa við sama grunnhugmynd. 32 00:01:20,690 --> 00:01:22,480 >> Við skulum sjá hvað þessi hugmynd er. 33 00:01:22,480 --> 00:01:23,310 Hvað er fall? 34 00:01:23,310 --> 00:01:26,470 Jæja fall er í raun ekkert annað en svarta kassanum. 35 00:01:26,470 --> 00:01:31,430 A svartur kassi sem hefur sett af núll eða meira inntak og einn framleiðsla. 36 00:01:31,430 --> 00:01:33,420 Svo til dæmis, þetta gæti verið fall. 37 00:01:33,420 --> 00:01:35,510 Þetta er fall sem heitir Störf. 38 00:01:35,510 --> 00:01:39,330 Og það tekur þrjá inntak a, b, og c. 39 00:01:39,330 --> 00:01:42,580 Og inni að svartur kassi, við veit ekki nákvæmlega hvað það gerir, 40 00:01:42,580 --> 00:01:45,100 en það ferli inntak á einhvern hátt og þá 41 00:01:45,100 --> 00:01:48,680 gefur einn framleiðsla, í þessu tilfelli, z. 42 00:01:48,680 --> 00:01:50,504 Nú að gera það svolítið minna ágrip, við 43 00:01:50,504 --> 00:01:52,420 Segja má að kannski við hafa fall sem kallast 44 00:01:52,420 --> 00:01:58,750 Bæta sem tekur þrjár inntak a, b, og c og ferli framleiðsla á einhvern hátt 45 00:01:58,750 --> 00:02:01,010 inni svarta kassanum til framleiða eitt úttak. 46 00:02:01,010 --> 00:02:05,190 Þannig að í þessu tilfelli, ef bæta tekur 3, 6, og 7. 47 00:02:05,190 --> 00:02:07,020 Einhvers staðar inni í bæta virka, við gerðum 48 00:02:07,020 --> 00:02:09,750 búast við þá til að bæta saman til að framleiða framleiðsla, sem 49 00:02:09,750 --> 00:02:13,220 er 3 plús 6 plús 7 eða 16. 50 00:02:13,220 --> 00:02:17,940 >> Á sama hátt, þú ert með virka kallast Mult sem tekur tvær inntak, a og b, 51 00:02:17,940 --> 00:02:21,070 ferli þeim á einhvern hátt eins að framleiðsla á virka 52 00:02:21,070 --> 00:02:22,920 er vara af tveimur inntak. 53 00:02:22,920 --> 00:02:25,080 Tveir inntak margfaldað saman. 54 00:02:25,080 --> 00:02:29,150 4 og 5 sem lentu í Mult, eitthvað gerist, framleiðsla við væntum 55 00:02:29,150 --> 00:02:31,090 er 20. 56 00:02:31,090 --> 00:02:32,507 Hvers vegna eigum við að kalla það svartur kassi? 57 00:02:32,507 --> 00:02:34,840 Jæja, ef við erum ekki að skrifa virka sjálf, sem 58 00:02:34,840 --> 00:02:36,869 við höfum gert töluvert svo langt cs50. 59 00:02:36,869 --> 00:02:39,910 Við höfum séð prenta f, til dæmis, sem er fall sem við vissum ekki að skrifa 60 00:02:39,910 --> 00:02:42,305 okkur, en við notum allan tímann. 61 00:02:42,305 --> 00:02:44,180 Ef við erum ekki að skrifa aðgerðir okkur, 62 00:02:44,180 --> 00:02:48,450 við gerum ekki raunverulega þörf til vita hvernig það er í raun til framkvæmda undir hetta. 63 00:02:48,450 --> 00:02:51,710 >> Svo til dæmis svartur kassi I bara sýndi þér fyrir margföldun, 64 00:02:51,710 --> 00:02:53,740 mult A, B gæti verið defined-- og þetta er bara 65 00:02:53,740 --> 00:02:57,902 sumir pseudocode-- gæti verið skilgreind sem framleiðsla sinnum b. 66 00:02:57,902 --> 00:02:58,860 Að skynsamleg, ekki satt. 67 00:02:58,860 --> 00:03:01,370 Ef við höfum fall sem kallast Mult sem tekur tvær inntak. 68 00:03:01,370 --> 00:03:04,750 Við væntum þess að framleiðsla myndi vera tveir inngangar margfaldað saman, 69 00:03:04,750 --> 00:03:06,240 sinnum b. 70 00:03:06,240 --> 00:03:09,170 En Mult gæti líka verið framkvæmda eins og þetta, 71 00:03:09,170 --> 00:03:13,150 við höfum gegn breytu til fá sett inni Mult 0. 72 00:03:13,150 --> 00:03:18,000 Og þá erum við að endurtaka þetta ferli b sinnum bæta við borðið. 73 00:03:18,000 --> 00:03:24,270 Til dæmis, ef við margföldum 3a með 5b, getum við sagt að setja í bága við 0, 74 00:03:24,270 --> 00:03:27,700 endurtaka fimm sinnum, bæta 3 til borðið. 75 00:03:27,700 --> 00:03:34,490 Svo við byrjum á 0 og þá erum við að gera þetta fimm sinnum 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Það er sama niðurstaðan. Við enn fá 3 sinnum 5 bara 77 00:03:37,500 --> 00:03:39,500 framkvæmd er öðruvísi. 78 00:03:39,500 --> 00:03:41,490 >> Það er það sem er átt við þegar við segjum svartan kassa. 79 00:03:41,490 --> 00:03:44,406 Það þýðir bara að við ekki alveg sama hvernig það er hrint í framkvæmd undir hetta 80 00:03:44,406 --> 00:03:46,170 svo lengi sem framleiðsla er það sem við búast. 81 00:03:46,170 --> 00:03:49,045 Í raun, það er hluti af samningnum að nota aðgerðir, sérstaklega 82 00:03:49,045 --> 00:03:50,630 aðgerðir sem aðrir skrifa. 83 00:03:50,630 --> 00:03:53,980 Hegðun er alltaf að fara að vera dæmigert, óútreiknanlegur 84 00:03:53,980 --> 00:03:55,420 byggt á nafn fallsins. 85 00:03:55,420 --> 00:03:57,500 Og það er hvers vegna það er mjög mikilvægt þegar þú skrifar aðgerðir 86 00:03:57,500 --> 00:04:00,020 eða þegar aðrir skrifa aðgerðir sem þú gætir notað, 87 00:04:00,020 --> 00:04:03,590 að þau virka með skýr, tiltölulega augljós nöfn, 88 00:04:03,590 --> 00:04:04,990 og eru vel skjalfest. 89 00:04:04,990 --> 00:04:08,560 Sem er vissulega raunin fyrir virka eins prenta f. 90 00:04:08,560 --> 00:04:09,860 >> Svo hvers vegna ekki að nota virka? 91 00:04:09,860 --> 00:04:14,220 Jæja eins og ég sagði áðan, ef við skrifum allt númerið okkar inni á helstu hlutum 92 00:04:14,220 --> 00:04:17,120 hægt að fá mjög fyrirferðarmikill og mjög flókið. 93 00:04:17,120 --> 00:04:19,980 Störf leyfa okkur möguleika að skipuleggja hlutina og brjóta upp 94 00:04:19,980 --> 00:04:24,540 mjög flókið vandamál í a einhver fjöldi fleiri viðráðanleg undir hlutum. 95 00:04:24,540 --> 00:04:28,130 Aðgerðir einnig leyfa okkur að einfalda kóðun ferli. 96 00:04:28,130 --> 00:04:33,080 Það er mun auðveldara að kemba 10 lína virka móti 100 línu 97 00:04:33,080 --> 00:04:35,890 virka eða 1000 lína virka. 98 00:04:35,890 --> 00:04:38,400 Ef við höfum aðeins að kemba lítil stykki í einu, 99 00:04:38,400 --> 00:04:42,110 eða skrifa litla bita á þeim tíma, það gerir þá forritun reynsla 100 00:04:42,110 --> 00:04:43,070 mikið betri. 101 00:04:43,070 --> 00:04:44,910 Treystu mér á þetta. 102 00:04:44,910 --> 00:04:48,400 >> Loks, ef við skrifum aðgerðir við getur endurnýta þá ýmsum hlutum. 103 00:04:48,400 --> 00:04:49,880 Aðgerðir er hægt að endurvinna. 104 00:04:49,880 --> 00:04:51,880 Þau er hægt að nota í eitt forrit eða annað. 105 00:04:51,880 --> 00:04:53,713 Þú hefur nú þegar skrifað virka, allt sem þú 106 00:04:53,713 --> 00:04:56,530 þarft að gera er að segja þessi forrit hvar á að finna að virka. 107 00:04:56,530 --> 00:04:59,680 Við höfum verið að endurvinnslu og notkun prenta f yfir 40 ár. 108 00:04:59,680 --> 00:05:02,150 En það var bara skrifað eina skipti. 109 00:05:02,150 --> 00:05:04,270 Laglegur gagnlegur, ekki satt. 110 00:05:04,270 --> 00:05:04,830 Allt í lagi. 111 00:05:04,830 --> 00:05:06,040 Svo aðgerðir eru frábær. 112 00:05:06,040 --> 00:05:06,860 Við vitum að. 113 00:05:06,860 --> 00:05:08,700 Nú skulum byrja að skrifa þá. 114 00:05:08,700 --> 00:05:10,830 Við skulum byrja að fá þá í áætlunum okkar. 115 00:05:10,830 --> 00:05:13,869 Til að gera það, í fyrsta sem við gerum er að lýsa virkni. 116 00:05:13,869 --> 00:05:16,160 Þegar þú lýsa virka hvað þú ert í rauninni að gera 117 00:05:16,160 --> 00:05:18,900 er að segja þýðanda, hey, bara svo þú veist, 118 00:05:18,900 --> 00:05:20,850 Ég er að fara að vera að skrifa fall síðar 119 00:05:20,850 --> 00:05:22,987 og hér er það sem það er að fara að líta út. 120 00:05:22,987 --> 00:05:24,820 Ástæðan fyrir þessu er vegna vistþýðendur getur 121 00:05:24,820 --> 00:05:27,900 gera nokkrar undarlegt hluti ef þeir sjá setja tákn 122 00:05:27,900 --> 00:05:29,560 að þeir eru ekki þekki. 123 00:05:29,560 --> 00:05:33,000 Þannig að við gefum bara þýðanda A heads up, ég er að stofna virka 124 00:05:33,000 --> 00:05:35,492 og það er að fara að gera þetta. 125 00:05:35,492 --> 00:05:38,450 Hlutverk yfirlýsingar almennt ef þú ert að skipuleggja kóðann þinn á þann hátt 126 00:05:38,450 --> 00:05:41,872 sem aðrir vilja vera fær til að skilja og nýta, 127 00:05:41,872 --> 00:05:44,330 þú vilja almennt að setja alla af virka yfirlýsingum þínum 128 00:05:44,330 --> 00:05:48,220 á the mjög toppur af kóðanum þínum, ekki satt áður en þú byrjar að skrifa helsta jafnvel. 129 00:05:48,220 --> 00:05:50,770 Og þægilegan, það er mjög staðlað eyðublað 130 00:05:50,770 --> 00:05:53,500 að sérhver virka yfirlýsingu segir. 131 00:05:53,500 --> 00:05:56,090 Þeir allir ansi mikið líta svona út. 132 00:05:56,090 --> 00:06:01,440 Það eru þrír hlutir til falls yfirlýsing, endurkoma, nafn, 133 00:06:01,440 --> 00:06:03,420 og rök lista. 134 00:06:03,420 --> 00:06:07,180 >> Nú er aftur gerð hvers konar breyta virka mun framleiðsla. 135 00:06:07,180 --> 00:06:10,710 Svo til dæmis, ef við hugsum til baka mínútu síðan til að margfalda tvo 136 00:06:10,710 --> 00:06:15,690 tölur virka, hvað gerum við ráð ef við margföldum heiltölu með heiltölu 137 00:06:15,690 --> 00:06:18,502 framleiðsla mun vera sennilega heiltala, ekki satt. 138 00:06:18,502 --> 00:06:20,710 Margfaldað tvær heiltölur saman, þú færð heiltölu. 139 00:06:20,710 --> 00:06:24,167 Svo aftur gerð af því virka væri Int. 140 00:06:24,167 --> 00:06:26,000 Nafnið er það sem þú vilt að hringja virka. 141 00:06:26,000 --> 00:06:29,330 Þetta er líklega síst mikilvægt hluti af virka yfirlýsingu, 142 00:06:29,330 --> 00:06:30,827 í skilmálar af virkni. 143 00:06:30,827 --> 00:06:33,160 En er í raun sennilega einn af mikilvægustu hlutum 144 00:06:33,160 --> 00:06:36,243 Fallið yfirlýsing skv að vita hvaða hlutverk raun 145 00:06:36,243 --> 00:06:37,120 gerir. 146 00:06:37,120 --> 00:06:40,474 Ef þú nafn fallsins f eða g eða H eða ráðgáta eða eitthvað svoleiðis, 147 00:06:40,474 --> 00:06:42,765 þú ert líklega að fara að fá smá skemmtiferðamaður upp að reyna 148 00:06:42,765 --> 00:06:44,650 að muna hvað þau virka gera. 149 00:06:44,650 --> 00:06:47,880 Svo það er mikilvægt að gefa þinn þroskandi nöfn fallsins. 150 00:06:47,880 --> 00:06:51,030 >> Loks rök listi er sem komma skiptur listi 151 00:06:51,030 --> 00:06:55,260 af öllum aðföngum til fallinu þínu, sem hver um sig er með tegund og nafn. 152 00:06:55,260 --> 00:06:57,840 Svo ekki bara þú þarft að tilgreina hvaða tegund af breytu 153 00:06:57,840 --> 00:07:00,760 virka mun framleiðsla, þú vilt einnig að tilgreina 154 00:07:00,760 --> 00:07:07,694 hvaða tegund og gerð breytur virka verður að samþykkja sem aðföng. 155 00:07:07,694 --> 00:07:08,860 Svo skulum gera dæmi hér. 156 00:07:08,860 --> 00:07:10,220 Við skulum bara taka a líta á áþreifanlegri einn. 157 00:07:10,220 --> 00:07:13,130 Svo er hér dæmi um virka Yfirlýsing fyrir aðgerð sem 158 00:07:13,130 --> 00:07:14,925 myndi bæta við tveimur heiltölur saman. 159 00:07:14,925 --> 00:07:17,800 Summa tvær heiltölur er að fara að vera heiltala eins vel, eins og við bara 160 00:07:17,800 --> 00:07:18,450 rædd. 161 00:07:18,450 --> 00:07:21,610 Og svo aftur gerð, hér í grænu, væri Int. 162 00:07:21,610 --> 00:07:25,190 Sem segir okkur bara að bæta við tveimur ints er að fara að, í lok dagsins, 163 00:07:25,190 --> 00:07:28,799 framleiðsla, eða spýta það aftur út til okkar, heiltala. 164 00:07:28,799 --> 00:07:31,590 Í ljósi hvað þessi aðgerð er vér vilja til að gefa það a þýðingarmikill nafn. 165 00:07:31,590 --> 00:07:33,630 Bæta við tveimur ints virðist við á, miðað 166 00:07:33,630 --> 00:07:37,574 við erum að taka tvær heiltölur sem aðföng og vonandi að bæta þeim saman. 167 00:07:37,574 --> 00:07:40,240 Það gæti verið hluti af a fyrirferðarmikill nafn og hreinskilnislega þessi aðgerð 168 00:07:40,240 --> 00:07:42,430 Líklega þarf ekki að þar sem við höfum viðbót 169 00:07:42,430 --> 00:07:46,310 rekstraraðila, ef þú manst frá okkar umfjöllun um rekstraraðila, áður. 170 00:07:46,310 --> 00:07:49,650 En við skulum bara segja að fyrir sakir rök að þessi aðgerð er gagnleg 171 00:07:49,650 --> 00:07:52,860 og svo við munum kalla það að bæta við tveimur ints. 172 00:07:52,860 --> 00:07:55,230 Loks þessi aðgerð tekur tvær inntak. 173 00:07:55,230 --> 00:07:56,960 Sem hver um sig er heiltala. 174 00:07:56,960 --> 00:07:59,900 Þannig að við höfum þetta komma skiptur listi af aðföngum. 175 00:07:59,900 --> 00:08:02,830 Nú viljum almennt að gefa nafn til að hvert þeirra 176 00:08:02,830 --> 00:08:05,070 þannig að þeir hægt er að nota innan fallsins. 177 00:08:05,070 --> 00:08:07,180 Nöfn eru ekki hræðilega mikilvægt. 178 00:08:07,180 --> 00:08:11,400 >> Í þessu tilfelli, er það ekki endilega hafa allir merkingu fylgir þeim. 179 00:08:11,400 --> 00:08:13,140 Svo við getum bara kalla þá og b. 180 00:08:13,140 --> 00:08:14,257 Það er algerlega fínt. 181 00:08:14,257 --> 00:08:16,090 Ef hins vegar þú finnur sjálfur í aðstöðu 182 00:08:16,090 --> 00:08:19,497 þar sem nöfn breyturnar gæti reyndar verið mikilvægt, 183 00:08:19,497 --> 00:08:21,830 þú might vilja til að kalla þá eitthvað annað en a og b 184 00:08:21,830 --> 00:08:24,701 að gefa þeim eitthvað meira táknrænt þroskandi. 185 00:08:24,701 --> 00:08:27,700 En í þessu tilfelli, er það ekki í raun vita neitt annað um aðgerðina. 186 00:08:27,700 --> 00:08:29,320 Við viljum bara að bæta við tveimur heiltölur. 187 00:08:29,320 --> 00:08:32,429 Þannig að við munum bara hringja þá sem heilar tölur a og b. 188 00:08:32,429 --> 00:08:33,990 Það er eitt dæmi. 189 00:08:33,990 --> 00:08:36,287 >> Hvers vegna ertu ekki að taka annað að hugsa um þetta einn, 190 00:08:36,287 --> 00:08:38,870 hvernig væri að þú skrifa fall Yfirlýsing fyrir aðgerð sem 191 00:08:38,870 --> 00:08:42,940 Margfaldar tveir fleytitölu tölur? 192 00:08:42,940 --> 00:08:45,910 Manstu hvað fleytitölu tala er? 193 00:08:45,910 --> 00:08:48,120 Hvað myndi þetta virka Yfirlýsing líta út? 194 00:08:48,120 --> 00:08:53,330 Ég mæli reyndar gert hlé á vídeó hér og taka hversu miklum tíma þú þarft. 195 00:08:53,330 --> 00:08:55,521 Hugsa um hvað þetta virka yfirlýsingu væri? 196 00:08:55,521 --> 00:08:56,770 Hvað myndi aftur gerð að vera? 197 00:08:56,770 --> 00:08:58,103 Hvað myndi þroskandi nafn vera? 198 00:08:58,103 --> 00:08:59,580 Hvað myndi aðföngin vera? 199 00:08:59,580 --> 00:09:03,190 Svo hvers vegna ertu ekki að gera hlé á vídeó hér og skrifa-upp virka yfirlýsingu 200 00:09:03,190 --> 00:09:07,640 fyrir aðgerð sem myndi margfalda tvær fleytitölur saman. 201 00:09:07,640 --> 00:09:09,330 Vonandi þú bið vídeó. 202 00:09:09,330 --> 00:09:12,950 >> Svo skulum taka a líta á dæmi af mögulegri yfirlýsingu. 203 00:09:12,950 --> 00:09:17,340 Fljóta Mult tveir reals fljóta x, fljóta y. 204 00:09:17,340 --> 00:09:19,090 The lyf með tveimur fleytitölu tölur, 205 00:09:19,090 --> 00:09:21,710 sem muna eru hvernig við tákna rauntölur 206 00:09:21,710 --> 00:09:26,770 eða tölur með aukastafi í c, er að fara til vera a fleytitölu númer. 207 00:09:26,770 --> 00:09:28,570 Þegar þú margfaldar a aukastaf með aukastaf, 208 00:09:28,570 --> 00:09:30,460 þú ert líklega að fara að fá aukastaf. 209 00:09:30,460 --> 00:09:31,960 Þú vilt gefa það viðeigandi nafn. 210 00:09:31,960 --> 00:09:33,810 Margfalda tvær reals virðist í lagi. 211 00:09:33,810 --> 00:09:36,620 En þú gætir í raun kalla það Mult tveir fljóta, eða Mult fljóta. 212 00:09:36,620 --> 00:09:39,540 Eitthvað svoleiðis, svo lengi sem það gaf sumir raunverulegur merkingu hvað 213 00:09:39,540 --> 00:09:41,469 þetta svartur kassi var að fara að gera. 214 00:09:41,469 --> 00:09:44,260 Og aftur, í þessu tilfelli, er það ekki virðast hafa einhverja merkingu fest 215 00:09:44,260 --> 00:09:46,390 nöfnum sem breytur sem við erum liggur í, 216 00:09:46,390 --> 00:09:48,645 þannig að við köllum þá x og y. 217 00:09:48,645 --> 00:09:51,020 Nú ef þú kallar þá eitthvað annars, það er algerlega fínt. 218 00:09:51,020 --> 00:09:53,310 Í staðreynd, ef þú gerðir Þessi yfirlýsing stað 219 00:09:53,310 --> 00:09:55,450 nota tvöfaldar stað af fljóta, ef þú manst 220 00:09:55,450 --> 00:09:59,100 sem tvöfaldar eru mismunandi leið til að meiri nákvæmni 221 00:09:59,100 --> 00:10:02,330 tilgreina rauntölur eða fleytitölu breytur. 222 00:10:02,330 --> 00:10:03,620 Það er algerlega fínt líka. 223 00:10:03,620 --> 00:10:04,670 Annaðhvort einn af þeim væri í lagi. 224 00:10:04,670 --> 00:10:06,711 Í staðreynd, there ert nokkrir mismunandi samsetningar 225 00:10:06,711 --> 00:10:08,410 um leiðir til að lýsa þessu hlutverki. 226 00:10:08,410 --> 00:10:10,884 En þetta eru tveir mjög góðar. 227 00:10:10,884 --> 00:10:12,550 Við höfum lýst virka, það er frábært. 228 00:10:12,550 --> 00:10:15,700 Við höfum sagt þýðanda hvað það er, hvað við erum að fara að vera að gera. 229 00:10:15,700 --> 00:10:17,630 Nú skulum skrifa reyndar að virka. 230 00:10:17,630 --> 00:10:20,750 Við skulum gefa það a skilgreiningu, þannig að inni í svarta kassanum 231 00:10:20,750 --> 00:10:22,840 fyrirsjáanleg hegðun er að gerast. 232 00:10:22,840 --> 00:10:26,270 Í raun erum við að margfalda tvær alvöru tölur saman, eða bæta númer 233 00:10:26,270 --> 00:10:29,760 saman, eða gera hvað sem það er að við spurði fallið að gera. 234 00:10:29,760 --> 00:10:32,780 >> Svo í raun, við skulum reyna að skilgreina margfalda tvær reals sem við bara 235 00:10:32,780 --> 00:10:35,350 talaði um annað síðan. 236 00:10:35,350 --> 00:10:38,560 Nú í byrjun fall skilgreining 237 00:10:38,560 --> 00:10:41,720 lítur nánast nákvæmlega það sama sem fall yfirlýsingu. 238 00:10:41,720 --> 00:10:43,170 Ég hef bæði hér. 239 00:10:43,170 --> 00:10:47,770 Efst er virka yfirlýsingu, gerð, nafn, kommu aðskilin rök 240 00:10:47,770 --> 00:10:49,410 lista, semíkommu. 241 00:10:49,410 --> 00:10:53,800 Semíkommu sýnir að sem er virka yfirlýsingu. 242 00:10:53,800 --> 00:10:57,060 Upphaf virka skilgreining lítur næstum nákvæmlega 243 00:10:57,060 --> 00:11:03,790 sama, gerð, nafn, kommu aðskilin rök lista, engin semíkommu, 244 00:11:03,790 --> 00:11:05,206 opna hrokkið Brace. 245 00:11:05,206 --> 00:11:07,580 The opinn hrokkið Brace, rétt eins og við höfum verið að gera með main, 246 00:11:07,580 --> 00:11:09,540 þýðir að við erum nú farin að skilgreina 247 00:11:09,540 --> 00:11:14,567 hvað gerist inni í svarta kassanum sem við höfum ákveðið að kalla Mult tvær reals. 248 00:11:14,567 --> 00:11:15,900 Hér er ein leið til að framkvæma það. 249 00:11:15,900 --> 00:11:20,370 Við gætum sagt, að við gætum lýsa nýja af taginu fljóta kallað vöru 250 00:11:20,370 --> 00:11:24,020 og úthluta þá breytu á gildið x sinnum y. 251 00:11:24,020 --> 00:11:27,306 Og síðan aftur vöru. 252 00:11:27,306 --> 00:11:28,430 Hvað þýðir aftur meina hér. 253 00:11:28,430 --> 00:11:31,090 Jæja aftur er leiðin við kynna það er hvernig 254 00:11:31,090 --> 00:11:33,400 við erum liggur framleiðsla aftur út. 255 00:11:33,400 --> 00:11:38,160 Svo aftur eitthvað, er það sama og, þetta er framleiðsla á svarta kassanum. 256 00:11:38,160 --> 00:11:40,732 Svo er það hvernig þú gerir það. 257 00:11:40,732 --> 00:11:42,190 Hér er önnur leið til að framkvæma það. 258 00:11:42,190 --> 00:11:45,050 Við gætum bara aftur x sinnum y. 259 00:11:45,050 --> 00:11:45,870 x er fljóta. 260 00:11:45,870 --> 00:11:46,660 Y er fljóta. 261 00:11:46,660 --> 00:11:48,490 Svo x sinnum Y er einnig fljóta. 262 00:11:48,490 --> 00:11:50,750 Við gerum ekki einu sinni að búa til annan breytu. 263 00:11:50,750 --> 00:11:56,750 Svo er það önnur leið til að framkvæma nákvæmlega sama svarta kassann. 264 00:11:56,750 --> 00:11:58,570 >> Nú taka a augnablik, gera hlé á vídeó aftur, 265 00:11:58,570 --> 00:12:01,680 og reyna að skilgreina bæta við tveimur ints, sem er önnur virka sem við 266 00:12:01,680 --> 00:12:03,090 talaði um áðan. 267 00:12:03,090 --> 00:12:06,440 Aftur hér, hef ég sett aðgerðina yfirlýsingu, og svo semíkommu, 268 00:12:06,440 --> 00:12:08,420 og opinn hrokkið Brace og lokað hrokkið 269 00:12:08,420 --> 00:12:12,080 Brace að kynna þar sem við munum fylla í innihald bæta við tveimur ints, 270 00:12:12,080 --> 00:12:15,530 svo að við skilgreina sérstaklega hegðun inni í svarta kassanum. 271 00:12:15,530 --> 00:12:16,380 Svo gera hlé á vídeó. 272 00:12:16,380 --> 00:12:18,790 Og taka eins mikinn tíma og þú þarft að reyna og skilgreina 273 00:12:18,790 --> 00:12:25,040 framkvæmd af bæta við tveimur ints, svo að þegar aðgerð framleiðsla gildi, 274 00:12:25,040 --> 00:12:29,209 það er í raun, aftur summan af tveimur inntak. 275 00:12:29,209 --> 00:12:32,000 Svo bara eins og fyrra dæmi, það eru nokkrar mismunandi leiðir 276 00:12:32,000 --> 00:12:34,210 að þú gætir framkvæma bæta við tveimur ints. 277 00:12:34,210 --> 00:12:35,130 Hér er ein. 278 00:12:35,130 --> 00:12:37,172 Hér í appelsínugulu ég hef bara haft nokkrar comments-- 279 00:12:37,172 --> 00:12:38,880 Ég hef bara bætt við nokkrum athugasemdir til kynna 280 00:12:38,880 --> 00:12:41,400 hvað er að gerast á hverri línu af kóða. 281 00:12:41,400 --> 00:12:45,430 Svo ég lýsa breytu heitir Summa int. 282 00:12:45,430 --> 00:12:47,279 Ég segi Summa jafngildir plús b. 283 00:12:47,279 --> 00:12:50,070 Það er þar sem við erum í raun að gera vinna að bæta a og b saman. 284 00:12:50,070 --> 00:12:51,850 Og ég aftur summa. 285 00:12:51,850 --> 00:12:56,460 Og það er skynsamlegt af því Summa er af taginu int. 286 00:12:56,460 --> 00:13:00,180 Og hvað er gögn tegund sem þetta virka segir mér það er að fara að framleiðsla? 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Þannig að ég ætla að skila summa, sem er heiltala breytilegt. 289 00:13:03,072 --> 00:13:06,030 Og það er vit gefið það sem við höfum lýst og skilgreint hlutverk okkar 290 00:13:06,030 --> 00:13:07,320 að gera. 291 00:13:07,320 --> 00:13:09,700 >> Nú er einnig hægt að skilgreina virka með þessum hætti, 292 00:13:09,700 --> 00:13:15,260 INT Summa jafngildir plús b-- sleppa að Fyrsta step-- og þá aftur summa. 293 00:13:15,260 --> 00:13:17,760 Nú þú gætir hafa einnig framkvæmda það með þessum hætti, 294 00:13:17,760 --> 00:13:19,180 sem ég mjög mæla ekki. 295 00:13:19,180 --> 00:13:22,540 Þetta er slæmt stíl fyrir einn hlutur og mjög slæmt hönnun, 296 00:13:22,540 --> 00:13:24,420 en það er í raun, vinna. 297 00:13:24,420 --> 00:13:30,199 Ef þú tekur þessa kóða, sem er INT bæta slæmt naðra punktur c, og nota það. 298 00:13:30,199 --> 00:13:31,990 Það raunverulega hjartarskinn bæta tvær heiltölur saman. 299 00:13:31,990 --> 00:13:37,632 Það er mjög léleg framkvæmd á þessari tilteknu hegðun. 300 00:13:37,632 --> 00:13:38,340 En það virkar. 301 00:13:38,340 --> 00:13:41,200 Það er bara hér til að sýna lið sem við gerum í raun ekki 302 00:13:41,200 --> 00:13:44,530 sama hvað gerist inni svartur kassi, svo framarlega 303 00:13:44,530 --> 00:13:46,510 eins og það hefur framleiðsla sem við væntum. 304 00:13:46,510 --> 00:13:48,870 Þetta er illa hannað svartur kassi. 305 00:13:48,870 --> 00:13:53,801 En í lok dagsins, er það samt framleiðsla sem summan af a auk b. 306 00:13:53,801 --> 00:13:54,300 Allt í lagi. 307 00:13:54,300 --> 00:13:56,320 Þannig að við höfum lýst aðgerðir. 308 00:13:56,320 --> 00:13:57,490 Og við höfum skilgreint hlutverk. 309 00:13:57,490 --> 00:13:58,540 Svo er það mjög gott. 310 00:13:58,540 --> 00:14:03,020 Nú skulum byrja að nota aðgerðirnar sem við höfum lýst og við höfum skilgreint. 311 00:14:03,020 --> 00:14:05,960 Til að hringja í function-- það er í raun laglegur easy-- allt sem þú þarft að gera 312 00:14:05,960 --> 00:14:09,070 er gefa það viðeigandi rök, rök gögn gerð 313 00:14:09,070 --> 00:14:11,600 að hann telur, og þá úthluta aftur 314 00:14:11,600 --> 00:14:15,190 gildi að virka og this-- afsökun me-- 315 00:14:15,190 --> 00:14:19,390 úthluta skilagildi að virka að eitthvað af réttri gerð. 316 00:14:19,390 --> 00:14:22,410 >> Svo skulum við hafa a líta á þetta í raun í skrá 317 00:14:22,410 --> 00:14:27,730 kallaði Naðr 1 punktur c, sem Ég hef í CS50 IDE mínu. 318 00:14:27,730 --> 00:14:31,042 Svo hér er naðra 1 punktur c. 319 00:14:31,042 --> 00:14:33,500 Í upphafi þú sérð að ég hef mín inniheldur, pund eru, 320 00:14:33,500 --> 00:14:35,460 staðall IO, og cs50 punktur klst. 321 00:14:35,460 --> 00:14:37,700 Og þá hef ég yfirlýsingu virka mína. 322 00:14:37,700 --> 00:14:39,570 Þetta er þar sem ég er segja þýðanda ég er 323 00:14:39,570 --> 00:14:42,850 að fara að skrifa á virka kallað bæta við tveimur ints. 324 00:14:42,850 --> 00:14:45,780 Það er að fara að framleiðsla An heiltala tegund breytu. 325 00:14:45,780 --> 00:14:47,360 Það er það sem þessi hluti er hérna. 326 00:14:47,360 --> 00:14:51,950 Og þá hef ég tvær inntak við það og b, sem hver um sig er heiltala. 327 00:14:51,950 --> 00:14:58,250 Inni helstu spyr ég notandann inntak með því að segja, gefa mér heila tölu. 328 00:14:58,250 --> 00:15:01,040 Og þeir eru beðinn um að gleyma Int, sem er fall sem 329 00:15:01,040 --> 00:15:03,240 er innifalinn í CS50 bókasafn. 330 00:15:03,240 --> 00:15:07,660 Og það fær geymd í X, heiltala breytu. 331 00:15:07,660 --> 00:15:09,886 >> Þá erum við að hvetja þá til annars heiltölu. 332 00:15:09,886 --> 00:15:13,070 Við fáum annað heiltala og geyma það í y. 333 00:15:13,070 --> 00:15:17,990 Og þá, hér á línu 28, er þar sem við að gera virka kalla okkar. 334 00:15:17,990 --> 00:15:23,770 Við erum að segja, int z jafn bæta við 2 ints x komma y. 335 00:15:23,770 --> 00:15:25,980 Ert þú sjá hvers vegna þetta er skynsamlegt? 336 00:15:25,980 --> 00:15:29,710 x er heiltala tegund breyta og y er heiltala tegund breytu. 337 00:15:29,710 --> 00:15:31,220 Svo er það gott. 338 00:15:31,220 --> 00:15:34,570 Að skynsamleg með hvaða starfsemi okkar yfirlýsing á línu 17 lítur út. 339 00:15:34,570 --> 00:15:38,300 The kommu aðskilin inntak lista ráð tvær heiltölur a og b. 340 00:15:38,300 --> 00:15:40,300 Í því tilviki, getum við kalla þá hvað við viljum. 341 00:15:40,300 --> 00:15:42,300 Það gerir ráð fyrir bara tvær heiltölur. 342 00:15:42,300 --> 00:15:44,930 Og x er heiltala og y er heiltala. 343 00:15:44,930 --> 00:15:45,640 Sem virkar. 344 00:15:45,640 --> 00:15:48,680 >> Og við vitum að virka er að fara til framleiðsla An heilar tölur eins vel. 345 00:15:48,680 --> 00:15:51,290 Og svo við erum að geyma í framleiðsla virka, 346 00:15:51,290 --> 00:15:56,050 bæta við tveimur ints, í heiltölu tegund breyta, sem við köllum z. 347 00:15:56,050 --> 00:16:01,980 Og þá getum við sagt, summan af prósent i og prósent i er prósent i. 348 00:16:01,980 --> 00:16:06,210 X, Y og Z í sömu röð fylla í þeim prósent ég er. 349 00:16:06,210 --> 00:16:08,334 Hvað er skilgreining á Bæta við tveimur ints líta út? 350 00:16:08,334 --> 00:16:09,125 Það er frekar einfalt. 351 00:16:09,125 --> 00:16:11,270 Það er eitt af þeim sem við bara sá annað síðan, 352 00:16:11,270 --> 00:16:14,390 INT Summa jafngildir plús b aftur summa. 353 00:16:14,390 --> 00:16:15,420 Virkar þetta? 354 00:16:15,420 --> 00:16:17,270 Skulum vista skrána. 355 00:16:17,270 --> 00:16:22,080 Og niður hér á flugstöðinni minn Ég ætla að gera adder 1, 356 00:16:22,080 --> 00:16:23,000 og ég hreinsa skjáinn minn. 357 00:16:23,000 --> 00:16:25,791 Ég ætla að stækka vegna þess að ég veit það er svolítið erfitt að sjá. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Þannig að við saman þetta forrit sem naðra 1. 360 00:16:33,770 --> 00:16:37,910 Þannig að við getum gert punktur rista adder 1. 361 00:16:37,910 --> 00:16:40,060 Gefðu mér heiltölu, 10. 362 00:16:40,060 --> 00:16:42,380 Gefa mér annað heiltala, 20. 363 00:16:42,380 --> 00:16:45,200 Summa 10 og 20 er 30. 364 00:16:45,200 --> 00:16:47,615 Svo við gert vel virka símtalinu. 365 00:16:47,615 --> 00:16:55,820 Þú getur keyrt virka aftur, neikvæð 10, 17 Summa neikvæðra 10 og 17 er 7. 366 00:16:55,820 --> 00:16:57,120 Þessi aðgerð virkar. 367 00:16:57,120 --> 00:16:59,240 Það hefur hegðun að við gerum ráð fyrir því að. 368 00:16:59,240 --> 00:17:03,610 Og svo við höfum gert vel virka, skilgreining, yfirlýsingu, 369 00:17:03,610 --> 00:17:07,288 og vel virka símtalinu. 370 00:17:07,288 --> 00:17:09,079 Par ýmislegt punktar um virka 371 00:17:09,079 --> 00:17:10,611 áður en við ljúka þessum kafla. 372 00:17:10,611 --> 00:17:12,319 Muna frá okkar umfjöllun um tegundir gagna, 373 00:17:12,319 --> 00:17:16,109 áður, sem virka getur stundum tekið engin inntak. 374 00:17:16,109 --> 00:17:17,930 Ef það er málið, við lýsa virka 375 00:17:17,930 --> 00:17:19,788 sem hafa rök ógild lista. 376 00:17:19,788 --> 00:17:21,579 Manstu hvað við Algengustu virka 377 00:17:21,579 --> 00:17:25,036 við höfum séð hingað til sem tekur ógilt rök listi er? 378 00:17:25,036 --> 00:17:27,300 Það er helsta. 379 00:17:27,300 --> 00:17:30,850 Muna líka að virka stundum í raun ekki hafa framleiðsla. 380 00:17:30,850 --> 00:17:34,210 Í því tilviki, lýsum við aðgerðina sem hafa ógilt aftur gerð. 381 00:17:34,210 --> 00:17:37,880 Skulum ljúka þessum kafla með takast æfa vandamál. 382 00:17:37,880 --> 00:17:39,900 >> Svo hér er vandamálið sett fram. 383 00:17:39,900 --> 00:17:43,630 Ég vil að þú að skrifa fall kallað gild þríhyrningur. 384 00:17:43,630 --> 00:17:47,410 Hvað þessi aðgerð ætti að gera er að taka þrjú rauntölur 385 00:17:47,410 --> 00:17:51,930 sem tákna lengdir af þremur hliðar þríhyrnings sem breytur hennar, 386 00:17:51,930 --> 00:17:54,550 eða rök hennar, eða þess inputs-- annað samheiti 387 00:17:54,550 --> 00:17:57,340 sem þú gætir fundur. 388 00:17:57,340 --> 00:18:01,120 Þessi aðgerð ætti annaðhvort framleiðsla satt eða ósatt 389 00:18:01,120 --> 00:18:04,960 eftir því hvort þessum þremur lengdum eru fær um að gera þríhyrning. 390 00:18:04,960 --> 00:18:09,930 Manstu gögn tegund sem við notuðum til að gefa til kynna satt eða ósatt? 391 00:18:09,930 --> 00:18:11,436 Nú hvernig þú framkvæma þetta? 392 00:18:11,436 --> 00:18:13,810 Vel vita there ert a par reglur um þríhyrninga 393 00:18:13,810 --> 00:18:15,480 sem eru í raun gott að vita. 394 00:18:15,480 --> 00:18:18,292 A þríhyrningur getur aðeins hafa hliðar með jákvæðum lengd. 395 00:18:18,292 --> 00:18:19,000 Sem vit. 396 00:18:19,000 --> 00:18:21,432 Þú ert líklega að segja, duh. 397 00:18:21,432 --> 00:18:23,390 The annar hlutur að hafa í huga þó er, að summa 398 00:18:23,390 --> 00:18:25,484 af langs eftir allir tvær hliðar á þríhyrningi 399 00:18:25,484 --> 00:18:27,650 þarf að vera meiri en lengd þriðja hlið. 400 00:18:27,650 --> 00:18:28,690 Það er í raun satt. 401 00:18:28,690 --> 00:18:34,150 Þú getur ekki hafa þríhyrning af hliðum 1, 2 og 4, til dæmis, vegna þess að 1 plús 2 402 00:18:34,150 --> 00:18:36,270 er ekki meiri en 4. 403 00:18:36,270 --> 00:18:38,870 Svo þeir eru reglur sem ákvarða hvort eða ekki þrír 404 00:18:38,870 --> 00:18:42,740 inntak getur hugsanlega mynda þríhyrning. 405 00:18:42,740 --> 00:18:46,360 Svo taka a par af mínúta og lýsa og þá skilgreina 406 00:18:46,360 --> 00:18:49,810 þessi aðgerð kallað gild þríhyrningur, svo að það er í raun 407 00:18:49,810 --> 00:18:51,650 hefur hegðun sem hér er tilgreindur. 408 00:18:51,650 --> 00:18:57,030 >> Það mun framleiðsla satt ef þeim þremur hliðum eru fær um samanstendur þríhyrning, 409 00:18:57,030 --> 00:19:01,950 og falskur annars Tilbúinn til að sjá hvernig þú gerðir? 410 00:19:01,950 --> 00:19:04,650 Hér er ein útfærsla gildra þríhyrningur. 411 00:19:04,650 --> 00:19:05,770 Það er ekki sú eina. 412 00:19:05,770 --> 00:19:07,770 Kveðja gæti verið örlítið. 413 00:19:07,770 --> 00:19:11,040 En þetta er, í raun hafa hegðun sem við búast. 414 00:19:11,040 --> 00:19:14,450 Við lýsum fallið í síðasta mjög toppur, bool gilt þríhyrningsins 415 00:19:14,450 --> 00:19:16,630 fljóta x fljóta Y fljóta z. 416 00:19:16,630 --> 00:19:18,930 Svo aftur, þessi aðgerð tekur þrjár rauntölur 417 00:19:18,930 --> 00:19:22,280 sem rök hennar, fljótandi benda gildi breytur, 418 00:19:22,280 --> 00:19:26,510 og framleiðsla sannur eða falskur gildi, sem er Boolean, muna. 419 00:19:26,510 --> 00:19:28,660 Svo er það hvers vegna aftur gerð er bool. 420 00:19:28,660 --> 00:19:30,016 Þá erum við að skilgreina hlutverk. 421 00:19:30,016 --> 00:19:33,140 Fyrsta sem við gerum er að athuga að tryggja að allar hliðum eru jákvæð. 422 00:19:33,140 --> 00:19:37,010 Ef x er stærra en eða jafnt og 0, eða, ef Y er jafnt og 0, 423 00:19:37,010 --> 00:19:41,050 eða ef Z er minna en eða jafnt og 0, sem getur ekki hugsanlega verið þríhyrningur. 424 00:19:41,050 --> 00:19:42,380 Þeir hafa ekki jákvæðar hliðar. 425 00:19:42,380 --> 00:19:45,790 Og svo við getum skila rangar í þeirri stöðu. 426 00:19:45,790 --> 00:19:49,010 Næst skaltu athuga við að tryggja að sérhver par af aðföngum 427 00:19:49,010 --> 00:19:51,830 er meiri en þeim þriðja. 428 00:19:51,830 --> 00:19:54,530 >> Svo ef x plús y er minna en eða jafnt og z, 429 00:19:54,530 --> 00:19:57,060 eða ef x plús z er minna en eða jafnt og Y, 430 00:19:57,060 --> 00:20:01,730 eða ef Y plús z er minna en eða jafnt og x, sem einnig geta ekki vera gilt þríhyrningur. 431 00:20:01,730 --> 00:20:03,800 Þannig að við return false aftur. 432 00:20:03,800 --> 00:20:06,900 Að því gefnu að við samþykkt bæði af eftirlits þó, þá getum við aftur satt. 433 00:20:06,900 --> 00:20:09,440 Vegna þessara þriggja aðila eru fær um returning-- 434 00:20:09,440 --> 00:20:11,647 að búa til gilt þríhyrningsins. 435 00:20:11,647 --> 00:20:12,230 Og það er það. 436 00:20:12,230 --> 00:20:13,830 Þú hefur nú lýst og skilgreint. 437 00:20:13,830 --> 00:20:17,330 Og þú getur verið fær um að nú nota og kalla þessa aðgerð. 438 00:20:17,330 --> 00:20:19,470 Vel gert. 439 00:20:19,470 --> 00:20:20,650 Ég er Doug Lloyd. 440 00:20:20,650 --> 00:20:22,820 Þetta er CS50. 441 00:20:22,820 --> 00:20:24,340