1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG Lloyd: Selvä. 3 00:00:05,580 --> 00:00:08,877 Joten nyt Katsotaanpa puuttua todella iso aihe, toimintoja. 4 00:00:08,877 --> 00:00:11,460 Toistaiseksi Tietenkin kaikki ohjelmia, jotka olemme kirjallisesti 5 00:00:11,460 --> 00:00:12,969 on kirjoitettu sisällä tärkein. 6 00:00:12,969 --> 00:00:14,260 Ne ovat melko yksinkertaisia ​​ohjelmia. 7 00:00:14,260 --> 00:00:16,940 Sinun ei tarvitse olla kaikki nämä oksat ja asioita tapahtuu. 8 00:00:16,940 --> 00:00:18,773 Voimme vain sovi kaiken sisällä tärkein ja se 9 00:00:18,773 --> 00:00:20,407 ei saa hirveän ylivoimainen. 10 00:00:20,407 --> 00:00:22,990 Mutta koska kurssi jatkuu ja kun alkaa kehittää ohjelmia 11 00:00:22,990 --> 00:00:26,260 itsenäisesti, he luultavasti alkaa saada paljon enemmän kuin 10 12 00:00:26,260 --> 00:00:27,200 tai 15 riviä. 13 00:00:27,200 --> 00:00:31,400 Saatat saada satoja tai tuhansia tai kymmeniä tuhansia rivejä koodia. 14 00:00:31,400 --> 00:00:34,690 Ja se todellakaan ole että hullu ajatus. 15 00:00:34,690 --> 00:00:39,720 Sellaisena se on luultavasti ole hyvä ajatus pitää kaiken sisällä tärkein. 16 00:00:39,720 --> 00:00:43,240 Se voi saada hieman vaikea löytää mitä etsit, jos teet sen. 17 00:00:43,240 --> 00:00:47,040 >> Onneksi, vaikka C, ja melko paljon joka toinen ohjelmointikieli, joka 18 00:00:47,040 --> 00:00:50,386 saattaisi toimia kanssa, mahdollistaa meitä kirjoittaa toimintoja. 19 00:00:50,386 --> 00:00:52,260 Ja olen juuri menossa ottaa nopeasti syrjään täällä 20 00:00:52,260 --> 00:00:54,971 mainita, että toiminnot on yksi alue tietotekniikassa. 21 00:00:54,971 --> 00:00:57,970 Ja näet paljon enemmän niitä eri kohdissa koko kurssin 22 00:00:57,970 --> 00:00:59,290 ja jos jatkaa. 23 00:00:59,290 --> 00:01:02,280 Missä on paljon synonyymejä saman sanan. 24 00:01:02,280 --> 00:01:03,390 Joten me kutsumme toimintoja. 25 00:01:03,390 --> 00:01:05,980 Mutta saatat myös kuulla niitä kutsutaan menettelyjä, 26 00:01:05,980 --> 00:01:09,570 tai menetelmiä, erityisesti, jos olet koskaan tehnyt mitään olio-ohjelmoinnin 27 00:01:09,570 --> 00:01:11,950 before-- ja älä huoli jos et ole, ei 28 00:01:11,950 --> 00:01:14,280 iso deal-- mutta tilintarkastus suuntautunut kielet 29 00:01:14,280 --> 00:01:16,129 ovat usein kutsutaan menetelmiä. 30 00:01:16,129 --> 00:01:17,670 Joskus he alarutiineihin. 31 00:01:17,670 --> 00:01:20,690 Mutta he oikeastaan ​​kaikki viittaavat samaan perusidea. 32 00:01:20,690 --> 00:01:22,480 >> Katsotaan, mitä se ajatus on. 33 00:01:22,480 --> 00:01:23,310 Mikä on funktio? 34 00:01:23,310 --> 00:01:26,470 No toiminto on todella mitään muuta kuin musta laatikko. 35 00:01:26,470 --> 00:01:31,430 Musta laatikko, joka on joukko nolla tai enemmän tuloa ja yksi lähtö. 36 00:01:31,430 --> 00:01:33,420 Niinpä esimerkiksi, tämä saattaa olla funktio. 37 00:01:33,420 --> 00:01:35,510 Tämä on toiminto nimeltään func. 38 00:01:35,510 --> 00:01:39,330 Ja se kestää kolme tuloa, b ja c. 39 00:01:39,330 --> 00:01:42,580 Ja sisällä että musta laatikko, me en tiedä mitä se tekee, 40 00:01:42,580 --> 00:01:45,100 mutta se käsittelee tulot jollakin tavalla ja sitten se 41 00:01:45,100 --> 00:01:48,680 antaa yhden lähtö, tässä tapauksessa z. 42 00:01:48,680 --> 00:01:50,504 Nyt tehdä hieman vähemmän abstrakti, me 43 00:01:50,504 --> 00:01:52,420 Voisi sanoa, että ehkä me on toiminto nimeltään 44 00:01:52,420 --> 00:01:58,750 lisätä, että kestää kolme tuloa, b, ja C ja käsittelee tuotanto jollain tavalla 45 00:01:58,750 --> 00:02:01,010 sisällä musta laatikko tuottaa yksi lähtö. 46 00:02:01,010 --> 00:02:05,190 Joten tässä tapauksessa, jos lisätä kestää 3, 6, ja 7. 47 00:02:05,190 --> 00:02:07,020 Jossain sisällä lisätä toiminto, olisimme 48 00:02:07,020 --> 00:02:09,750 odottaa niiden laskea yhteen tuotoksen tuottamiseen, joka 49 00:02:09,750 --> 00:02:13,220 on 3 + 6 + 7 tai 16. 50 00:02:13,220 --> 00:02:17,940 >> Samoin sinulla on toiminto nimeltään Enemmän joka ottaa kaksi tuloa, ja b, 51 00:02:17,940 --> 00:02:21,070 käsittelee niitä jollakin tavalla niin että lähtö toiminnon 52 00:02:21,070 --> 00:02:22,920 on tuote, kaksi tuloa. 53 00:02:22,920 --> 00:02:25,080 Kaksi tuloa kerrotaan keskenään. 54 00:02:25,080 --> 00:02:29,150 4 ja 5 johdetaan mult, jotain tapahtuu, lähtö odotamme 55 00:02:29,150 --> 00:02:31,090 on 20. 56 00:02:31,090 --> 00:02:32,507 Miksi me kutsumme sitä musta laatikko? 57 00:02:32,507 --> 00:02:34,840 No jos emme ole kirjallisesti toimii itse, joka 58 00:02:34,840 --> 00:02:36,869 olemme tehneet melko vähän toistaiseksi CS50. 59 00:02:36,869 --> 00:02:39,910 Olemme nähneet tulostaa f, esimerkiksi, joka on toiminto, joka emme kirjoita 60 00:02:39,910 --> 00:02:42,305 itseämme, mutta emme käytä koko ajan. 61 00:02:42,305 --> 00:02:44,180 Jos emme ole kirjallisesti toiminnot itse, 62 00:02:44,180 --> 00:02:48,450 emme todellakaan tarvitse tietää, miten se on tosiasiallisesti toteutettu konepellin alle. 63 00:02:48,450 --> 00:02:51,710 >> Niinpä esimerkiksi musta laatikko I vain osoitti teitä kertomalla, 64 00:02:51,710 --> 00:02:53,740 Enemmän, b voi olla defined-- ja tämä on vain 65 00:02:53,740 --> 00:02:57,902 jotkut pseudocode-- voisi olla määritellään lähtö kertaa b. 66 00:02:57,902 --> 00:02:58,860 Että järkeä, oikea. 67 00:02:58,860 --> 00:03:01,370 Jos meillä on toiminto nimeltään Enemmän, joka ottaa kaksi tuloa. 68 00:03:01,370 --> 00:03:04,750 Odotamme, että lähtö olisi olla kaksi tuloa kerrotaan yhdessä, 69 00:03:04,750 --> 00:03:06,240 kertaa b. 70 00:03:06,240 --> 00:03:09,170 Mutta Enemmän voisi olla myös toteutetaan näin, 71 00:03:09,170 --> 00:03:13,150 meillä on laskuri muuttuja saada asettaa sisällä mult 0. 72 00:03:13,150 --> 00:03:18,000 Ja sitten me toista tämä prosessi b kertaa lisätä lähteä vastahyökkäykseen. 73 00:03:18,000 --> 00:03:24,270 Esimerkiksi, jos kerromme 3a 5b, voisimme sanoa asetettu laskurin 0, 74 00:03:24,270 --> 00:03:27,700 toista viisi kertaa, lisätä 3 laskuri. 75 00:03:27,700 --> 00:03:34,490 Joten me alkavat 0 ja sitten teemme tämä viisi kertaa 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Se on sama tulos. Me silti 3 kertaa 5 vain 77 00:03:37,500 --> 00:03:39,500 täytäntöönpano on erilainen. 78 00:03:39,500 --> 00:03:41,490 >> Sitähän me tarkoitamme kun sanomme musta laatikko. 79 00:03:41,490 --> 00:03:44,406 Se vain tarkoittaa, emme välitä miten se toteutetaan huppu 80 00:03:44,406 --> 00:03:46,170 kunhan tuotanto on mitä odotamme. 81 00:03:46,170 --> 00:03:49,045 Itse asiassa, se on osa sopimusta käyttää toimintojen, erityisesti 82 00:03:49,045 --> 00:03:50,630 toiminnot toiset kirjoittaa. 83 00:03:50,630 --> 00:03:53,980 Käyttäytyminen on aina menossa tyypilliseksi, arvaamaton 84 00:03:53,980 --> 00:03:55,420 perustuu funktion nimi. 85 00:03:55,420 --> 00:03:57,500 Ja siksi se on todella tärkeää, kun kirjoittaa toiminnot 86 00:03:57,500 --> 00:04:00,020 tai kun muut ihmiset kirjoittaa toiminnot voit käyttää, 87 00:04:00,020 --> 00:04:03,590 että nämä tehtävät ovat kirkas, suhteellisen ilmeinen nimet, 88 00:04:03,590 --> 00:04:04,990 ja ovat hyvin dokumentoitu. 89 00:04:04,990 --> 00:04:08,560 Joka on varmasti totta funktion kuten tulostaa f. 90 00:04:08,560 --> 00:04:09,860 >> Miksi käytämme toimintoja? 91 00:04:09,860 --> 00:04:14,220 No kuten sanoin aikaisemmin, jos kirjoitamme kaikki meidän koodin sisällä tärkeimmistä asioista 92 00:04:14,220 --> 00:04:17,120 voi saada todella hankalaa ja todella monimutkainen. 93 00:04:17,120 --> 00:04:19,980 Toiminnot mahdollistavat meille mahdollisuuden organisoida asioita ja hajottaa 94 00:04:19,980 --> 00:04:24,540 hyvin monimutkainen ongelma tulee paljon helpommin hallittavissa osa osat. 95 00:04:24,540 --> 00:04:28,130 Toiminnot myös antaa meille mahdollisuuden yksinkertaistaa koodaus prosessi. 96 00:04:28,130 --> 00:04:33,080 Se on paljon helpompaa debug 10 -linjatoiminnosta vs. 100 linja 97 00:04:33,080 --> 00:04:35,890 toiminto tai 1000 -linjatoiminnosta. 98 00:04:35,890 --> 00:04:38,400 Jos meillä on vain debug pienet palaset kerrallaan, 99 00:04:38,400 --> 00:04:42,110 tai kirjoittaa pieniä paloja tuolloin, se tekee, että kokemusta ohjelmoinnista 100 00:04:42,110 --> 00:04:43,070 paljon parempi. 101 00:04:43,070 --> 00:04:44,910 Luota minuun, että yksi. 102 00:04:44,910 --> 00:04:48,400 >> Lopuksi, jos me kirjoittaa toimintoja me voidaan käyttää uudelleen näitä eri osia. 103 00:04:48,400 --> 00:04:49,880 Toiminnot voidaan kierrättää. 104 00:04:49,880 --> 00:04:51,880 Niitä voidaan käyttää yhden ohjelman tai toiseen. 105 00:04:51,880 --> 00:04:53,713 Olet jo kirjoittanut toiminto, kaikki te 106 00:04:53,713 --> 00:04:56,530 tarvitsee vain kertoa, että ohjelma mistä löytää tämän tehtävän. 107 00:04:56,530 --> 00:04:59,680 Olemme kierrätys ja käyttämällä tulostaa f yli 40 vuotta. 108 00:04:59,680 --> 00:05:02,150 Mutta se oli vain kirjoittanut yhden kerran. 109 00:05:02,150 --> 00:05:04,270 Melko hyödyllinen, oikea. 110 00:05:04,270 --> 00:05:04,830 Selvä. 111 00:05:04,830 --> 00:05:06,040 Joten toiminnot ovat suuria. 112 00:05:06,040 --> 00:05:06,860 Tiedämme, että. 113 00:05:06,860 --> 00:05:08,700 Nyt alkaa kirjoittaa ne. 114 00:05:08,700 --> 00:05:10,830 Katsotaanpa alkaa saada heidät meidän ohjelmia. 115 00:05:10,830 --> 00:05:13,869 Voidakseen tehdä niin, ensimmäinen mitä teemme on julistaa toiminto. 116 00:05:13,869 --> 00:05:16,160 Kun julistaa toiminto mitä olet pohjimmiltaan teet 117 00:05:16,160 --> 00:05:18,900 kertoo kääntäjä, Hei, juuri niin tiedät, 118 00:05:18,900 --> 00:05:20,850 Aion olla kirjallisesti toiminto myöhemmin 119 00:05:20,850 --> 00:05:22,987 ja tässä mitä se tulee näyttämään. 120 00:05:22,987 --> 00:05:24,820 Syynä tähän on koska kääntäjät voivat 121 00:05:24,820 --> 00:05:27,900 tehdä outoja asioita, jos he näkevät joukko symboleja 122 00:05:27,900 --> 00:05:29,560 että he eivät tunne. 123 00:05:29,560 --> 00:05:33,000 Joten me vain antaa kääntäjä heads up, Olen luomassa toiminto 124 00:05:33,000 --> 00:05:35,492 ja se aikoo tehdä tämän. 125 00:05:35,492 --> 00:05:38,450 Toiminto ilmoitusten yleensä jos olet järjestää koodia tavalla 126 00:05:38,450 --> 00:05:41,872 että muut pystyvät ymmärtää ja käyttää, 127 00:05:41,872 --> 00:05:44,330 haluat yleensä laittaa kaikki teidän toiminto ilmoitusten 128 00:05:44,330 --> 00:05:48,220 yläreunassa oman koodin, oikea ennen kuin aloitat kirjoittamisen tärkein jopa. 129 00:05:48,220 --> 00:05:50,770 Ja kätevästi, siellä erittäin vakiolomake 130 00:05:50,770 --> 00:05:53,500 että jokainen toiminto Julistus. 131 00:05:53,500 --> 00:05:56,090 He kaikki melko paljon näyttää tältä. 132 00:05:56,090 --> 00:06:01,440 On kolme osaa toiminnon ilmoitus, paluu tyyppi, nimi, 133 00:06:01,440 --> 00:06:03,420 ja argumentti lista. 134 00:06:03,420 --> 00:06:07,180 >> Nyt palautuva on, millaista muuttuja toiminto ulostulo. 135 00:06:07,180 --> 00:06:10,710 Niinpä esimerkiksi, jos ajattelemme takaisin minuutti sitten kertomalla kaksi 136 00:06:10,710 --> 00:06:15,690 numerot toiminto, mitä on odotettavissa, jos kerromme kokonaisluvun kokonaisluku 137 00:06:15,690 --> 00:06:18,502 tuotos on luultavasti kokonaisluku, oikea. 138 00:06:18,502 --> 00:06:20,710 Kerrottuna kahdella luvulla yhdessä, saat kokonaisluku. 139 00:06:20,710 --> 00:06:24,167 Joten palautuva kyseisen toiminto olisi int. 140 00:06:24,167 --> 00:06:26,000 Nimi on mitä haluat soittaa toiminto. 141 00:06:26,000 --> 00:06:29,330 Tämä on luultavasti vähiten tärkeä osa toimintaa ilmoituksen, 142 00:06:29,330 --> 00:06:30,827 kannalta toiminnallisuus. 143 00:06:30,827 --> 00:06:33,160 Mutta on todellisuudessa luultavasti yksi tärkeimmistä osista 144 00:06:33,160 --> 00:06:36,243 funktion mukaisen selityksen tietää mitä -toiminto itse asiassa 145 00:06:36,243 --> 00:06:37,120 tekee. 146 00:06:37,120 --> 00:06:40,474 Jos nimeät f tai g tai h tai mysteeri tai jotain, 147 00:06:40,474 --> 00:06:42,765 olet todennäköisesti menossa hieman lauennut ylös yrittää 148 00:06:42,765 --> 00:06:44,650 muistaa, mitä nämä toiminnot tekevät. 149 00:06:44,650 --> 00:06:47,880 Joten on tärkeää antaa toiminto merkityksellistä nimiä. 150 00:06:47,880 --> 00:06:51,030 >> Lopuksi parametrilistaus on pilkulla erotettuna luettelo 151 00:06:51,030 --> 00:06:55,260 kaikista panoksia teidän toiminto, joista kukin on tyyppi ja nimi. 152 00:06:55,260 --> 00:06:57,840 Joten ei vain sinun täytyy tarkenna, millaisia ​​muuttuja 153 00:06:57,840 --> 00:07:00,760 toiminto ulostulo, haluat myös määrittää 154 00:07:00,760 --> 00:07:07,694 millaista ja tyypit muuttujien toiminto hyväksyä tuloina. 155 00:07:07,694 --> 00:07:08,860 Tehdäänpä esimerkki tästä. 156 00:07:08,860 --> 00:07:10,220 Haluan vain katsomaan klo konkreettisempia yksi. 157 00:07:10,220 --> 00:07:13,130 Joten tässä on esimerkki funktio ilmoitus toiminto 158 00:07:13,130 --> 00:07:14,925 Lisään kaksi kokonaislukua yhteen. 159 00:07:14,925 --> 00:07:17,800 Summa kahden kokonaisluvun on menossa olla kokonaisluku niin hyvin, koska olemme juuri 160 00:07:17,800 --> 00:07:18,450 keskusteltiin. 161 00:07:18,450 --> 00:07:21,610 Ja niin palautuva, täällä vihreä, olisi int. 162 00:07:21,610 --> 00:07:25,190 Se vain kertoo, että lisätä kaksi ints on menossa, lopussa päivä, 163 00:07:25,190 --> 00:07:28,799 lähtö, tai sylkeä sen takaisin ulos meille, kokonaisluku. 164 00:07:28,799 --> 00:07:31,590 Koska mitä tämä toiminto tekee me haluat antaa sille kuvaava nimi. 165 00:07:31,590 --> 00:07:33,630 Lisää kaksi ints näyttää tarkoituksenmukaista, kun otetaan huomioon 166 00:07:33,630 --> 00:07:37,574 viemme kaksi kokonaislukua panoksina ja toivottavasti lisäämällä ne yhteen. 167 00:07:37,574 --> 00:07:40,240 Se voi olla hieman hankalaa nimi ja rehellisesti tämä toiminto 168 00:07:40,240 --> 00:07:42,430 ei todennäköisesti ole tarpeen koska meillä on lisäksi 169 00:07:42,430 --> 00:07:46,310 operaattori, jos muistatte meidän keskustelua toimijoiden aiemmin. 170 00:07:46,310 --> 00:07:49,650 Mutta haluan vain sanoa vuoksi väitettä, jonka mukaan tämä toiminto on hyödyllinen 171 00:07:49,650 --> 00:07:52,860 ja niin me kutsumme sitä lisätä kaksi ints. 172 00:07:52,860 --> 00:07:55,230 Lopuksi, tämä toiminto kestää kaksi tuloa. 173 00:07:55,230 --> 00:07:56,960 Joista kukin on kokonaisluku. 174 00:07:56,960 --> 00:07:59,900 Joten meillä on tämä pilkku erotettu lista panoksia. 175 00:07:59,900 --> 00:08:02,830 Nyt me yleensä haluamme antaa nimen kullekin niistä 176 00:08:02,830 --> 00:08:05,070 niin, että niitä voidaan käyttää sisällä toiminto. 177 00:08:05,070 --> 00:08:07,180 Nimet eivät ole kovin tärkeitä. 178 00:08:07,180 --> 00:08:11,400 >> Tässä tapauksessa emme välttämättä ole merkitystä niihin liitetyt. 179 00:08:11,400 --> 00:08:13,140 Joten voimme vain soittaa heille ja b. 180 00:08:13,140 --> 00:08:14,257 Se on täysin hieno. 181 00:08:14,257 --> 00:08:16,090 Jos kuitenkin huomaat itsesi tilanteeseen 182 00:08:16,090 --> 00:08:19,497 jossa muuttujien nimet saattaisi olla tärkeä, 183 00:08:19,497 --> 00:08:21,830 saatat haluta soittaa heille jotain muuta kuin a ja b 184 00:08:21,830 --> 00:08:24,701 antaa heille jotain enemmän symbolisesti mielekäs. 185 00:08:24,701 --> 00:08:27,700 Mutta tässä tapauksessa, emme oikeastaan tiedä mitään muuta toimintoa. 186 00:08:27,700 --> 00:08:29,320 Haluamme vain lisätä kaksi kokonaislukua. 187 00:08:29,320 --> 00:08:32,429 Joten me vain soittaa ne kokonaislukuja ja b. 188 00:08:32,429 --> 00:08:33,990 Se on yksi esimerkki. 189 00:08:33,990 --> 00:08:36,287 >> Miksi et ota toinen ajatella tämä, 190 00:08:36,287 --> 00:08:38,870 miten te kirjoittaa toiminto ilmoitus toiminto 191 00:08:38,870 --> 00:08:42,940 monikertaiseksi kaksi liukulukuja? 192 00:08:42,940 --> 00:08:45,910 Muistatko, mitä liukuluku on? 193 00:08:45,910 --> 00:08:48,120 Mitä tämä toiminto ilmoitus näyttää? 194 00:08:48,120 --> 00:08:53,330 Olen itse suosittelen keskeyttää video täällä ja vie kuinka paljon aikaa tarvitset. 195 00:08:53,330 --> 00:08:55,521 Ajattele, mitä tämä toiminto ilmoitus olisi? 196 00:08:55,521 --> 00:08:56,770 Mitä palautuva olla? 197 00:08:56,770 --> 00:08:58,103 Mikä olisi mielekäs nimi on? 198 00:08:58,103 --> 00:08:59,580 Mitä panoksia on? 199 00:08:59,580 --> 00:09:03,190 Joten miksi et keskeytä video tästä ja kirjoittaa-up toiminto ilmoitus 200 00:09:03,190 --> 00:09:07,640 sillä toiminto, joka moninkertaistaa kaksi liukuluvuilla yhdessä. 201 00:09:07,640 --> 00:09:09,330 Toivottavasti keskeytetään videon. 202 00:09:09,330 --> 00:09:12,950 >> Joten katsomaan esimerkki yhdestä mahdollisesta ilmoituksen. 203 00:09:12,950 --> 00:09:17,340 Float mult kaksi realia kellua x, float y. 204 00:09:17,340 --> 00:09:19,090 Tuote Kahden liukulukuja, 205 00:09:19,090 --> 00:09:21,710 jotka muistuttavat ovat miten me edustavat reaalilukuja 206 00:09:21,710 --> 00:09:26,770 tai numerot desimaalin arvoja C, tulee olemaan liukuluku. 207 00:09:26,770 --> 00:09:28,570 Kun kerrot desimaalin jota desimaalin, 208 00:09:28,570 --> 00:09:30,460 olet luultavasti menossa saada desimaalin. 209 00:09:30,460 --> 00:09:31,960 Haluat antaa sille asiaa nimi. 210 00:09:31,960 --> 00:09:33,810 Kerrotaan kaksi realin näyttää hieno. 211 00:09:33,810 --> 00:09:36,620 Mutta voit todella kutsua mult kaksi kellukkeet, tai mult kelluu. 212 00:09:36,620 --> 00:09:39,540 Mitään sellaista, kunhan se antoi joitakin todellisia merkityksen mitä 213 00:09:39,540 --> 00:09:41,469 tämä musta laatikko aikoi tehdä. 214 00:09:41,469 --> 00:09:44,260 Ja taas, tässä tapauksessa, emme näytä olevan mitään merkitystä liitteenä 215 00:09:44,260 --> 00:09:46,390 nimien muuttujat olemme ohimennen, 216 00:09:46,390 --> 00:09:48,645 joten me vain soittaa heille x ja y. 217 00:09:48,645 --> 00:09:51,020 Nyt jos soittaa heille jotain muuten, se on täysin hieno. 218 00:09:51,020 --> 00:09:53,310 Itse asiassa, jos et tämä vakuutus sijaan 219 00:09:53,310 --> 00:09:55,450 käyttäen tuplaa sijasta kellukkeet, jos muistatte 220 00:09:55,450 --> 00:09:59,100 että nelinpelin ovat eri tapa tarkemmin 221 00:09:59,100 --> 00:10:02,330 Määritä todellinen numeroita tai liukuluku muuttujia. 222 00:10:02,330 --> 00:10:03,620 Se on täysin hieno liian. 223 00:10:03,620 --> 00:10:04,670 Joko yksi näistä olisi hienoa. 224 00:10:04,670 --> 00:10:06,711 Itse asiassa on olemassa useita erilaisia ​​yhdistelmiä 225 00:10:06,711 --> 00:10:08,410 tapoja julistaa tätä toimintoa. 226 00:10:08,410 --> 00:10:10,884 Mutta nämä ovat kaksi melko hyviä. 227 00:10:10,884 --> 00:10:12,550 Olemme julisti toiminto, se on hienoa. 228 00:10:12,550 --> 00:10:15,700 Me olemme kertoneet kääntäjä mitä se on, mitä aiomme tehdä. 229 00:10:15,700 --> 00:10:17,630 Nyt todella kirjoittaa, että toiminto. 230 00:10:17,630 --> 00:10:20,750 Annetaan sen määritelmä, niin että sisällä musta laatikko 231 00:10:20,750 --> 00:10:22,840 ennustettavissa käyttäytyminen tapahtuu. 232 00:10:22,840 --> 00:10:26,270 Itse asiassa, olemme kertomalla kaksi todellista numerot yhteen, tai lisäämällä numeroita 233 00:10:26,270 --> 00:10:29,760 yhdessä, tai tekee mitä se on että pyysimme meidän toiminto tehdä. 234 00:10:29,760 --> 00:10:32,780 >> Joten itse asiassa yritetään ja määritellä moninkertaistaa kaksi realin jota vain 235 00:10:32,780 --> 00:10:35,350 puhui hetki sitten. 236 00:10:35,350 --> 00:10:38,560 Nyt alussa funktion määritelmän 237 00:10:38,560 --> 00:10:41,720 näyttää lähes täsmälleen sama funktiona ilmoitus. 238 00:10:41,720 --> 00:10:43,170 Minulla on molemmat täällä. 239 00:10:43,170 --> 00:10:47,770 Ylimpänä on toiminto ilmoitus, tyyppi, nimi, pilkulla erotettuna väite 240 00:10:47,770 --> 00:10:49,410 lista, puolipiste. 241 00:10:49,410 --> 00:10:53,800 Puolipiste osoittaa, että että on tehtävä ilmoitus. 242 00:10:53,800 --> 00:10:57,060 Alussa toiminnon määritelmä näyttää melkein täsmälleen 243 00:10:57,060 --> 00:11:03,790 sama, tyyppi, nimi, pilkulla erotettuna argumenttilista, ei puolipiste, 244 00:11:03,790 --> 00:11:05,206 Avaa kihara ahdin. 245 00:11:05,206 --> 00:11:07,580 Avoin kihara ahdin, kuten olemme tehneet tärkeimpien, 246 00:11:07,580 --> 00:11:09,540 tarkoittaa, että olemme nyt alkaa määritellä 247 00:11:09,540 --> 00:11:14,567 mitä tapahtuu sisällä musta laatikko, joka olemme päättäneet kutsua mult kaksi reals. 248 00:11:14,567 --> 00:11:15,900 Tässä on yksi tapa toteuttaa se. 249 00:11:15,900 --> 00:11:20,370 Voisimme sanoa, voisimme ilmoittaa uusi tyyppisenä muuttujana float kutsutaan tuote 250 00:11:20,370 --> 00:11:24,020 ja määrittää, että muuttuva arvoon x kertaa y. 251 00:11:24,020 --> 00:11:27,306 Ja palata sitten tuote. 252 00:11:27,306 --> 00:11:28,430 Mitä paluu tarkoittaa tässä. 253 00:11:28,430 --> 00:11:31,090 No paluu on tapa me osoittavat, että Näin 254 00:11:31,090 --> 00:11:33,400 olemme kulkee lähtö takaisin ulos. 255 00:11:33,400 --> 00:11:38,160 Joten palata jotain, on sama kuin, tämä on lähtö musta laatikko. 256 00:11:38,160 --> 00:11:40,732 Niin, että miten teet sen. 257 00:11:40,732 --> 00:11:42,190 Tässä on toinen tapa toteuttaa se. 258 00:11:42,190 --> 00:11:45,050 Voisimme vain palata x kertaa y. 259 00:11:45,050 --> 00:11:45,870 x on float. 260 00:11:45,870 --> 00:11:46,660 y on float. 261 00:11:46,660 --> 00:11:48,490 Joten X kertaa Y on myös float. 262 00:11:48,490 --> 00:11:50,750 Emme edes tarvitse luoda uuden muuttujan. 263 00:11:50,750 --> 00:11:56,750 Niin se on eri tavalla toteuttaa täsmälleen sama musta laatikko. 264 00:11:56,750 --> 00:11:58,570 >> Nyt hetki, pysäyttää videon uudelleen, 265 00:11:58,570 --> 00:12:01,680 ja yrittää määritellä lisätä kaksi ints, joka on muu toiminto, että me 266 00:12:01,680 --> 00:12:03,090 puhui hetki sitten. 267 00:12:03,090 --> 00:12:06,440 Jälleen täällä, olen koonnut toiminto ilmoitus, ja niin puolipiste, 268 00:12:06,440 --> 00:12:08,420 ja avoin kihara ahdin ja suljettu kihara 269 00:12:08,420 --> 00:12:12,080 ahdin ilmoittamaan, missä me täyttää sisällössä lisätä kaksi ints, 270 00:12:12,080 --> 00:12:15,530 niin että me määrittelemme erityisesti käyttäytyminen sisällä musta laatikko. 271 00:12:15,530 --> 00:12:16,380 Joten pysäyttää videon. 272 00:12:16,380 --> 00:12:18,790 Ja ottaa niin paljon aikaa kuin sinun täytyy yrittää ja määritellä 273 00:12:18,790 --> 00:12:25,040 täytäntöönpano lisätä kaksi ints, kuten että kun toiminto ulos arvon, 274 00:12:25,040 --> 00:12:29,209 se itse asiassa vastineeksi summa kaksi tuloa. 275 00:12:29,209 --> 00:12:32,000 Joten kuten edellisessä esimerkissä, on olemassa useita eri tapoja 276 00:12:32,000 --> 00:12:34,210 että voisit toteuttaa lisätä kaksi ints. 277 00:12:34,210 --> 00:12:35,130 Tässä yksi. 278 00:12:35,130 --> 00:12:37,172 Täällä oranssi Olen vain oli joitakin comments-- 279 00:12:37,172 --> 00:12:38,880 Olen juuri lisännyt kommentit osoittamaan 280 00:12:38,880 --> 00:12:41,400 mitä tapahtuu jokaisen rivin koodia. 281 00:12:41,400 --> 00:12:45,430 Joten Julistan muuttuja nimeltään summa tyyppiä int. 282 00:12:45,430 --> 00:12:47,279 Sanon summa on plus b. 283 00:12:47,279 --> 00:12:50,070 Siellä olemme todella tekee työ lisäämällä ja b yhdessä. 284 00:12:50,070 --> 00:12:51,850 Ja palaan summa. 285 00:12:51,850 --> 00:12:56,460 Ja että on järkevää, koska summa on muuttuja tyyppiä int. 286 00:12:56,460 --> 00:13:00,180 Ja mikä on tietojen tyyppi, että tämä toiminto kertoo minulle se tulee lähtö? 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Joten olen palaamassa summa, joka on kokonaisluku muuttuja. 289 00:13:03,072 --> 00:13:06,030 Ja että on järkevää antanut mitä olemme ilmoitetut ja määritelleet toiminto 290 00:13:06,030 --> 00:13:07,320 tehdä. 291 00:13:07,320 --> 00:13:09,700 >> Nyt voit myös määritellä toiminto tällä tavalla, 292 00:13:09,700 --> 00:13:15,260 int summa on plus b-- ohittaa tämän ensin step-- ja sitten palata summa. 293 00:13:15,260 --> 00:13:17,760 Nyt sinulla voisi olla myös toteutetaan näin, 294 00:13:17,760 --> 00:13:19,180 jotka olen erittäin ei suositella. 295 00:13:19,180 --> 00:13:22,540 Tämä on huono tyyli yhden asia ja todella huono suunnittelu, 296 00:13:22,540 --> 00:13:24,420 mutta se ei itse asiassa työtä. 297 00:13:24,420 --> 00:13:30,199 Jos otat tämän koodin, joka on int lisätä huono lisätoiminto piste C, ja käyttää sitä. 298 00:13:30,199 --> 00:13:31,990 Se itse asiassa ei lisätä kaksi kokonaislukua yhteen. 299 00:13:31,990 --> 00:13:37,632 Se on erittäin huono täytäntöönpano tämän nimenomaisen käyttäytymistä. 300 00:13:37,632 --> 00:13:38,340 Mutta se ei toimi. 301 00:13:38,340 --> 00:13:41,200 Se on vain täällä havainnollistaa pisteeseen, että emme oikeastaan 302 00:13:41,200 --> 00:13:44,530 välitä mitä tapahtuu sisällä musta laatikko, kunhan 303 00:13:44,530 --> 00:13:46,510 koska sillä on ulostulo, joka odotamme. 304 00:13:46,510 --> 00:13:48,870 Tämä on huonosti suunniteltu musta laatikko. 305 00:13:48,870 --> 00:13:53,801 Mutta lopussa päivä, se ei edelleen lähtö summa plus b. 306 00:13:53,801 --> 00:13:54,300 Selvä. 307 00:13:54,300 --> 00:13:56,320 Joten olemme julistettu toimintoja. 308 00:13:56,320 --> 00:13:57,490 Ja olemme funktion. 309 00:13:57,490 --> 00:13:58,540 Niin se on todella hyvä. 310 00:13:58,540 --> 00:14:03,020 Nyt alkavat käyttää toimintoja että olemme ilmoitettu ja olemme määritelty. 311 00:14:03,020 --> 00:14:05,960 Kutsua function-- se on todella melko easy-- kaikki sinun ei tarvitse tehdä 312 00:14:05,960 --> 00:14:09,070 on välittää aiheelliseksi argumentteja, väitteet tietotyyppi 313 00:14:09,070 --> 00:14:11,600 että se odottaa, ja määritä paluu 314 00:14:11,600 --> 00:14:15,190 arvo tämän tehtävän ja this-- tekosyy me-- 315 00:14:15,190 --> 00:14:19,390 antaa palauttaa arvo tämän funktion jotain oikeaa tyyppiä. 316 00:14:19,390 --> 00:14:22,410 >> Joten vilkaista tämä käytännössä tiedostoon 317 00:14:22,410 --> 00:14:27,730 nimeltään summain 1 piste C, joka Minulla on CS50 IDE. 318 00:14:27,730 --> 00:14:31,042 Joten tässä on summain 1 piste C. 319 00:14:31,042 --> 00:14:33,500 Alussa näet minulla on minun kuuluu, punta ovat, 320 00:14:33,500 --> 00:14:35,460 standardi IO, ja CS50 piste h. 321 00:14:35,460 --> 00:14:37,700 Ja sitten minulla on toiminto ilmoituksen. 322 00:14:37,700 --> 00:14:39,570 Tässä minä olen kertoo kääntäjä olen 323 00:14:39,570 --> 00:14:42,850 aiotaan kirjallisesti toiminto nimeltään lisätä kaksi ints. 324 00:14:42,850 --> 00:14:45,780 Se tulee lähtö kokonaisluku tyyppi muuttuja. 325 00:14:45,780 --> 00:14:47,360 Sitähän tämä osa on täällä. 326 00:14:47,360 --> 00:14:51,950 Ja sitten minulla on kaksi panoksia se ja b, joista kukin on kokonaisluku. 327 00:14:51,950 --> 00:14:58,250 Sisältä tärkein, pyydän käyttäjältä tulo sanomalla, anna minulle kokonaisluku. 328 00:14:58,250 --> 00:15:01,040 Ja he kehotetaan unohtaa int, joka on toiminto, joka 329 00:15:01,040 --> 00:15:03,240 sisältyy CS50 kirjastossa. 330 00:15:03,240 --> 00:15:07,660 Ja että saa tallennetut X, kokonaisluku muuttuja. 331 00:15:07,660 --> 00:15:09,886 >> Sitten pyytää heitä vielä kokonaisluku. 332 00:15:09,886 --> 00:15:13,070 Saamme toinen kokonaisluku ja tallentaa että y. 333 00:15:13,070 --> 00:15:17,990 Ja sitten, täällä putken 28, on jossa teemme funktiokutsua. 334 00:15:17,990 --> 00:15:23,770 Sanomme, int z tasavertaisten lisätään 2 ints x pilkku y. 335 00:15:23,770 --> 00:15:25,980 Näettekö, miksi tämä on järkevää? 336 00:15:25,980 --> 00:15:29,710 x on kokonaisluku tyyppi vaihtelee ja y on kokonaisluku tyyppiä muuttuja. 337 00:15:29,710 --> 00:15:31,220 Niin se on hyvä. 338 00:15:31,220 --> 00:15:34,570 Että järkeä mitä meidän toiminto julistus linjalla 17 näyttää. 339 00:15:34,570 --> 00:15:38,300 Pilkulla erotettuna tulo lista odottaa kaksi kokonaislukua, ja b. 340 00:15:38,300 --> 00:15:40,300 Siinä tapauksessa, voimme soittaa ne mitä haluamme. 341 00:15:40,300 --> 00:15:42,300 Se vain odottaa kaksi kokonaislukua. 342 00:15:42,300 --> 00:15:44,930 Ja x on kokonaisluku, ja y on kokonaisluku. 343 00:15:44,930 --> 00:15:45,640 Joka toimii. 344 00:15:45,640 --> 00:15:48,680 >> Ja me tiedämme, että toiminto on menossa lähtöön kokonaislukuja samoin. 345 00:15:48,680 --> 00:15:51,290 Ja niin me tallentamiseen lähtö-toiminto, 346 00:15:51,290 --> 00:15:56,050 lisätä kaksi ints, vuonna kokonaisluku tyyppi muuttuja, jota soitat z. 347 00:15:56,050 --> 00:16:01,980 Ja sitten voimme sanoa, summa prosenttia i ja prosenttia i on prosenttia i. 348 00:16:01,980 --> 00:16:06,210 x, y ja z vastaavasti täyttämällä ne prosenttia I n. 349 00:16:06,210 --> 00:16:08,334 Mikä on määritelmä lisätä kaksi ints näyttää? 350 00:16:08,334 --> 00:16:09,125 Se on melko yksinkertainen. 351 00:16:09,125 --> 00:16:11,270 Se on yksi niistä me juuri näin toinen sitten, 352 00:16:11,270 --> 00:16:14,390 int summa on plus b tuottoa summa. 353 00:16:14,390 --> 00:16:15,420 Tämä toimii? 354 00:16:15,420 --> 00:16:17,270 Katsotaanpa tallentaa tiedoston. 355 00:16:17,270 --> 00:16:22,080 Ja sitten täällä minun terminaali Aion tehdä summaimen 1, 356 00:16:22,080 --> 00:16:23,000 ja voin tyhjentää näytön. 357 00:16:23,000 --> 00:16:25,791 Aion zoomata koska tiedän se on hieman vaikea nähdä. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Joten meidän kääntää tämä ohjelma lisätoiminto 1. 360 00:16:33,770 --> 00:16:37,910 Joten voimme tehdä piste slash lisätoiminto 1. 361 00:16:37,910 --> 00:16:40,060 Anna minulle kokonaisluku, 10. 362 00:16:40,060 --> 00:16:42,380 Anna minulle toinen kokonaisluku, 20. 363 00:16:42,380 --> 00:16:45,200 Summa 10 ja 20 on 30. 364 00:16:45,200 --> 00:16:47,615 Joten teimme onnistuneen funktiokutsu. 365 00:16:47,615 --> 00:16:55,820 Voit suorittaa toiminnon uudelleen, negatiivinen 10, 17 summa negatiivinen 10 ja 17 on 7. 366 00:16:55,820 --> 00:16:57,120 Tämä toiminto toimii. 367 00:16:57,120 --> 00:16:59,240 Se on käyttäytymisen että odotamme sen. 368 00:16:59,240 --> 00:17:03,610 Ja niin olemme tehneet onnistuneen toiminto, määritelmä, ilmoitus, 369 00:17:03,610 --> 00:17:07,288 ja onnistunut funktiokutsuna. 370 00:17:07,288 --> 00:17:09,079 Pari sekalaiset huomautusta toimintoja 371 00:17:09,079 --> 00:17:10,611 ennen päätämme tässä jaksossa. 372 00:17:10,611 --> 00:17:12,319 Recall meidän keskustelua tietotyyppejä, 373 00:17:12,319 --> 00:17:16,109 aiemmin, että toiminnot voi joskus ottaa mitään tuloa. 374 00:17:16,109 --> 00:17:17,930 Jos näin on, me julistaa toiminto 375 00:17:17,930 --> 00:17:19,788 olevan mitätön argumenttilistan. 376 00:17:19,788 --> 00:17:21,579 Muistatteko mitä Yleisin toiminto 377 00:17:21,579 --> 00:17:25,036 olemme nähneet niin pitkälle, että otetaan void parametrilistaus on? 378 00:17:25,036 --> 00:17:27,300 Se on tärkein. 379 00:17:27,300 --> 00:17:30,850 Muistuttaa myös, että toiminto joskus ei oikeastaan ​​ole tuotos. 380 00:17:30,850 --> 00:17:34,210 Siinä tapauksessa me julistamme toiminto olevan mitätön palautuva. 381 00:17:34,210 --> 00:17:37,880 Katsotaanpa Lopuksi tässä jaksossa puuttumalla käytännön ongelma. 382 00:17:37,880 --> 00:17:39,900 >> Joten tässä on ongelma säädettyihin. 383 00:17:39,900 --> 00:17:43,630 Haluan sinun kirjoittaa toiminto nimeltään voimassa kolmio. 384 00:17:43,630 --> 00:17:47,410 Mitä tämä toiminto pitäisi tehdä on otettava kolme todellinen määrä 385 00:17:47,410 --> 00:17:51,930 jotka edustavat pituudet kolmesta puolin kolmio sen parametrit, 386 00:17:51,930 --> 00:17:54,550 tai sen perusteluja, tai sen inputs-- toinen joukko synonyymejä 387 00:17:54,550 --> 00:17:57,340 että saatat kohdata. 388 00:17:57,340 --> 00:18:01,120 Tämä toiminto pitäisi joko lähtö tosi tai epätosi 389 00:18:01,120 --> 00:18:04,960 riippuen siitä, onko nämä kolme pituutta pystyvät tekemään kolmiota. 390 00:18:04,960 --> 00:18:09,930 Muistatko tietotyyppi että me käytetään osoittamaan totta vai tarua? 391 00:18:09,930 --> 00:18:11,436 Nyt miten toteuttaa tämän? 392 00:18:11,436 --> 00:18:13,810 Hyvin tiedätte on pari koskevia sääntöjä kolmiot 393 00:18:13,810 --> 00:18:15,480 jotka ovat todella hyödyllistä tietää. 394 00:18:15,480 --> 00:18:18,292 Kolmio voi olla vain puolin positiivinen pituus. 395 00:18:18,292 --> 00:18:19,000 Tuossa on järkeä. 396 00:18:19,000 --> 00:18:21,432 Olet luultavasti sanovat, Höh. 397 00:18:21,432 --> 00:18:23,390 Toinen asia huomata kuitenkin se, että summa 398 00:18:23,390 --> 00:18:25,484 pituuksien tahansa kaksi puolta kolmion 399 00:18:25,484 --> 00:18:27,650 on oltava suurempi kuin pituus kolmas sivu. 400 00:18:27,650 --> 00:18:28,690 Se on todella totta. 401 00:18:28,690 --> 00:18:34,150 Et voi olla kolmion sivut 1, 2 ja 4, esimerkiksi, koska 1 ja 2 402 00:18:34,150 --> 00:18:36,270 ei ole suurempi kuin 4. 403 00:18:36,270 --> 00:18:38,870 Joten ne ovat sääntöjä, määrittää, onko kolmen 404 00:18:38,870 --> 00:18:42,740 Tulot voidaan mahdollisesti muodostavat kolmion. 405 00:18:42,740 --> 00:18:46,360 Joten kestää muutaman minuutin ja julistaa ja sitten määritellä 406 00:18:46,360 --> 00:18:49,810 tämä toiminto nimeltään voimassa kolmio, niin että se todella 407 00:18:49,810 --> 00:18:51,650 on käyttäytymistä tässä määritetty. 408 00:18:51,650 --> 00:18:57,030 >> Se lähtö totta, jos nämä kolme sivua pystyvät, joka käsittää kolmion, 409 00:18:57,030 --> 00:19:01,950 ja väärä muuten Valmis näkemään miten teit? 410 00:19:01,950 --> 00:19:04,650 Tässä on yksi täytäntöönpanon voimassa kolmio. 411 00:19:04,650 --> 00:19:05,770 Se ei ole ainoa. 412 00:19:05,770 --> 00:19:07,770 Sinun saattaa vaihdella hieman. 413 00:19:07,770 --> 00:19:11,040 Mutta tämä ei itse asiassa ole käyttäytyminen että odotamme. 414 00:19:11,040 --> 00:19:14,450 Ilmaisemme toiminto hyvin alkuun, bool voimassa kolmio 415 00:19:14,450 --> 00:19:16,630 float x float y float z. 416 00:19:16,630 --> 00:19:18,930 Joten jälleen, tämä toiminto kestää kolme todellinen määrä 417 00:19:18,930 --> 00:19:22,280 kuten sen argumentit, kelluva pistearvo muuttujia, 418 00:19:22,280 --> 00:19:26,510 ja antaa tosi tai epätosi arvo, joka on Boolen, muistaa. 419 00:19:26,510 --> 00:19:28,660 Joten siksi palautuva on bool. 420 00:19:28,660 --> 00:19:30,016 Sitten määritellä toiminnon. 421 00:19:30,016 --> 00:19:33,140 Ensimmäinen asia teemme on varmista että kaikki osapuolet ovat positiivisia. 422 00:19:33,140 --> 00:19:37,010 Jos x on pienempi kuin tai yhtä suuri kuin 0, tai jos y on yhtä suuri kuin 0, 423 00:19:37,010 --> 00:19:41,050 tai jos z on pienempi kuin tai yhtä suuri kuin 0, että ei voi olla kolmio. 424 00:19:41,050 --> 00:19:42,380 Heillä ei ole myönteisiä puolia. 425 00:19:42,380 --> 00:19:45,790 Ja jotta voimme palata väärä siinä tilanteessa. 426 00:19:45,790 --> 00:19:49,010 Seuraavaksi varmista että jokainen pari tuotantopanosten 427 00:19:49,010 --> 00:19:51,830 on suurempi kuin kolmas. 428 00:19:51,830 --> 00:19:54,530 >> Joten jos x plus y on vähemmän tai yhtä suuri kuin z, 429 00:19:54,530 --> 00:19:57,060 tai jos x plus z on vähemmän kuin tai yhtä suuri kuin y, 430 00:19:57,060 --> 00:20:01,730 tai jos y ja z on pienempi kuin tai yhtä suuri kuin X, että myös ei voi olla pätevä kolmio. 431 00:20:01,730 --> 00:20:03,800 Joten palaamme false uudelleen. 432 00:20:03,800 --> 00:20:06,900 Olettaen saimme molemmat tarkastusten vaikka, niin voimme palata totta. 433 00:20:06,900 --> 00:20:09,440 Koska nämä kolme sivua pystyvät returning-- 434 00:20:09,440 --> 00:20:11,647 luodaan voimassa oleva kolmio. 435 00:20:11,647 --> 00:20:12,230 Ja se on siinä. 436 00:20:12,230 --> 00:20:13,830 Olet nyt ilmoittanut ja määritellyt. 437 00:20:13,830 --> 00:20:17,330 Ja saatat pystyä nyt käyttää ja kutsuvat tätä toimintoa. 438 00:20:17,330 --> 00:20:19,470 Hyvää työtä. 439 00:20:19,470 --> 00:20:20,650 Olen Doug Lloyd. 440 00:20:20,650 --> 00:20:22,820 Tämä on CS50. 441 00:20:22,820 --> 00:20:24,340