1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] Föll eru hlutar notaður innan stærri áætlun 2 00:00:09,640 --> 00:00:11,430 að framkvæma ákveðna verkefni. 3 00:00:11,430 --> 00:00:15,060 Þeir eru einnig þekkt sem málsmeðferð, subroutines og subprograms, 4 00:00:15,060 --> 00:00:18,320 þar sem þeir eru í raun bara lítill forrit innan áætlana. 5 00:00:18,320 --> 00:00:20,340 Jafnvel þó þú might ekki hafa tekið eftir, 6 00:00:20,340 --> 00:00:24,090 þú flestar ákveðið að hafa notað virka þegar ef þú hefur forritað í C. 7 00:00:24,090 --> 00:00:26,770 Þegar þú skrifar efni á skjáinn með printf, 8 00:00:26,770 --> 00:00:29,380 þú ert í raun að nota aðgerð sem heitir printf. 9 00:00:29,380 --> 00:00:33,760 Sömuleiðis eru GetInt og GetString aðgerðir sem CS50 er kveðið á um þig. 10 00:00:33,760 --> 00:00:37,750 Sem forritari, notum við aðgerðir fyrir af ýmsum ástæðum. 11 00:00:37,750 --> 00:00:41,240 >> Having aðgerðir til að framkvæma sameiginleg verkefni eins og að skrifa á skjáinn 12 00:00:41,240 --> 00:00:44,480 og vekur notandi til inntak sparar okkur tíma þegar forritun. 13 00:00:44,480 --> 00:00:47,510 Það er ekki nauðsynlegt að skrifa kóða til að gera sömu hluti 14 00:00:47,510 --> 00:00:49,520 þar sem þeir eru nú þegar gert fyrir okkur. 15 00:00:49,520 --> 00:00:54,580 Það er ekki einu sinni nauðsynlegt fyrir okkur að skilja nákvæmlega hvernig þeir virka vinna innan. 16 00:00:54,580 --> 00:00:58,880 Þess í stað höfum við bara að vita hvernig á að nota eða hringja í þá í áætlunum okkar. 17 00:00:58,880 --> 00:01:02,040 Það er einnig gagnlegt að skrifa aðgerðir í stærri verkefnum 18 00:01:02,040 --> 00:01:04,330 jafnvel ef þú ert ekki ætlar að láta aðra nota þau, 19 00:01:04,330 --> 00:01:06,830 bara til þess að skipta upp stærri verkefni á hendi. 20 00:01:06,830 --> 00:01:11,910 This vegur, þú gefur uppbyggingu á númerið þitt mikið eins og þú vilt koma skipulagi ritgerð, 21 00:01:11,910 --> 00:01:15,180 og með mjög stór verkefni þú virkjar margar fólk 22 00:01:15,180 --> 00:01:16,730 til að vinna á mismunandi stöðum á sama tíma 23 00:01:16,730 --> 00:01:20,480 þar sem það er ljóst hvar verk eins manns endar og annar er hefst. 24 00:01:20,480 --> 00:01:26,530 >> Aðgerðir starfa venjulega á 1 eða fleiri aðföngum, sem kallast rök eða breytum, 25 00:01:26,530 --> 00:01:30,520 umbreyta þeim aðföngum inn í framleiðsla gildi sem er þá aftur. 26 00:01:30,520 --> 00:01:34,950 Hins vegar er það líka hægt að hafa aðgerðir sem ekki nota allir inntak rök 27 00:01:34,950 --> 00:01:36,400 og ekki aftur framleiðsla. 28 00:01:36,400 --> 00:01:38,790 Jæja, nóg með dúnkenndur efni. 29 00:01:38,790 --> 00:01:41,790 Við skulum taka a líta á alvöru aðgerðum í C. 30 00:01:41,790 --> 00:01:45,570 >> Hér höfum við fall kallast ferningur að trúa því eða ekki, 31 00:01:45,570 --> 00:01:47,570 reiknar veldi af inntak. 32 00:01:47,570 --> 00:01:49,490 Við skulum kryfja setningafræði þess. 33 00:01:49,490 --> 00:01:51,860 Fyrsta orðið sem þú sérð í aðgerð, int, 34 00:01:51,860 --> 00:01:57,460 skilgreinir afturhvarfstag fallsins, þ.e. C tegund framleiðslu aðgerðina á. 35 00:01:57,460 --> 00:02:00,370 Þessi aðgerð mun framleiðsla gildi með int. 36 00:02:00,370 --> 00:02:04,100 Næsta orð sem þú sérð er nafn af the virka, ferningur í þessu tilfelli. 37 00:02:04,100 --> 00:02:07,390 Nöfn virka á viðeigandi hátt er sérstaklega mikilvægt 38 00:02:07,390 --> 00:02:11,260 þar sem það er líklega mest áberandi gögn um það sem virka ekki. 39 00:02:11,260 --> 00:02:14,880 Það gæti verið sniðugt að nefna þetta virka Shazam eða booyah, 40 00:02:14,880 --> 00:02:18,340 en það vildi ekki segja okkur neitt um það sem virka ekki. 41 00:02:18,340 --> 00:02:23,470 >> Eftir aðgerðina nafn koma inntak að aðgerðinni, rök. 42 00:02:23,470 --> 00:02:26,380 Þau eru skráð inni a setja sviga 43 00:02:26,380 --> 00:02:30,160 bæði gerð þeirra og heiti til nota fyrir þá í meginmál virka. 44 00:02:30,160 --> 00:02:34,030 Square tekur bara 1 rök, sem int til ferningur, 45 00:02:34,030 --> 00:02:36,160 sem ég hef ákveðið að gefa nafn x. 46 00:02:36,160 --> 00:02:40,760 Þetta endar virka yfirlýsingu eða frumgerð. 47 00:02:40,760 --> 00:02:43,320 The hrokkið axlabönd kringum restina af virka 48 00:02:43,320 --> 00:02:45,870 tákna upphaf og lok virka líkamans, 49 00:02:45,870 --> 00:02:48,320 skilgreiningu fallsins sig. 50 00:02:48,320 --> 00:02:50,300 Square er mjög einföld aðgerð. 51 00:02:50,300 --> 00:02:54,100 Það er aðeins fengið 1 línu, þar sem allt sem við þurfum að gera er að margfalda x með sjálfu sér. 52 00:02:54,100 --> 00:02:59,250 Orðið aftur skilgreinir framleiðsla gildi og kallar á enda virka. 53 00:02:59,250 --> 00:03:03,430 Til að nota veldi virka, þurfum við að veita viðeigandi inntak 54 00:03:03,430 --> 00:03:05,310 og þá fanga framleiðsla. 55 00:03:05,310 --> 00:03:08,140 Hér sérðu nokkrar leiðir til að gera það. 56 00:03:08,140 --> 00:03:13,600 Við getum fara í hrár int, eins og 6, eða við getum framhjá á breytu eins og a. 57 00:03:13,600 --> 00:03:15,700 Athugaðu að í hvert sinn sem við köllum veldi, 58 00:03:15,700 --> 00:03:18,330 við fanga framleiðsla í breytu og þá prenta það. 59 00:03:18,330 --> 00:03:22,690 Hins vegar höfum við ekki að geyma aftur gildi í breytu og þá prenta. 60 00:03:22,690 --> 00:03:27,090 Við gætum bara sent það beint til printf eins og við gerum þegar við Square 10, 61 00:03:27,090 --> 00:03:30,580 en það þýðir að við höfum ekki aðgang að skilagildi Square 10 62 00:03:30,580 --> 00:03:32,230 annars staðar í kóðann. 63 00:03:32,230 --> 00:03:34,890 Við skulum líta á annað einfalt dæmi. 64 00:03:34,890 --> 00:03:38,750 >> Í þetta sinn munum við summa 2 fljóta saman svo að við getum séð hvaða fall lítur út 65 00:03:38,750 --> 00:03:41,220 þegar hún fékk 2 inntak í staðinn af réttlátur 1. 66 00:03:41,220 --> 00:03:43,950 Eins og þú geta sjá, það er ekki mikið öðruvísi. 67 00:03:43,950 --> 00:03:47,330 Allt sem við gerum er að bæta í 2. rifrildi, sem fljóta hét b, 68 00:03:47,330 --> 00:03:51,820 að þau rök lista með kommu til að aðgreina það frá fyrsta rifrildi, fljóta a. 69 00:03:51,820 --> 00:03:55,550 Svo eru veldi okkar og summan virka nokkuð auðvelt að skilja 70 00:03:55,550 --> 00:03:58,930 vegna þess að þeir eru jafngildir aðgerðir sem þú hefur séð áður í bekknum stærðfræði. 71 00:03:58,930 --> 00:04:01,610 Nú, við skulum líta á fall sem er örlítið öðruvísi. 72 00:04:01,610 --> 00:04:04,620 Í stað þess að skila gildi, breytir það ástand. 73 00:04:04,620 --> 00:04:07,260 Þetta er þekkt sem hafa hlið áhrif. 74 00:04:07,260 --> 00:04:10,750 Í þessari áætlun er printf_fudd_style virka 75 00:04:10,750 --> 00:04:13,410 hefur aftur gerð sem við höfum ekki séð áður, ógilt. 76 00:04:13,410 --> 00:04:16,730 >> Ógildur er notað til að segja að fall ekki aftur neitt. 77 00:04:16,730 --> 00:04:19,410 Það eru engar breytur í tóm gerð, 78 00:04:19,410 --> 00:04:22,760 þannig að ef þú reynir að fara eitthvað frá aðgerð eins printf_fudd_style, 79 00:04:22,760 --> 00:04:24,290 þýðanda mun öskra á þig. 80 00:04:24,290 --> 00:04:29,390 Inni printf_fudd_style, sjáum við að þó að virka samt framkvæma verkefni, 81 00:04:29,390 --> 00:04:31,890 nefnilega, að skipta öllum Rs til WS, 82 00:04:31,890 --> 00:04:36,380 að benda á virka er að breyta band og þá prenta það út á skjánum, 83 00:04:36,380 --> 00:04:39,400 breyta stöðu áætlunarinnar í stað þess að skila niðurstöðu. 84 00:04:39,400 --> 00:04:43,700 Notkun þessa aðgerð er mjög mikill eins og með veldi okkar og summa virka, 85 00:04:43,700 --> 00:04:46,950 nema að við geymum ekki í för með sér breytu eða gefa það burt í annan valkost 86 00:04:46,950 --> 00:04:49,520 þar sem það er ekki vegna að tala um. 87 00:04:49,520 --> 00:04:53,180 Svo, þegar við saman og keyra okkar Elmer Fudd program, 88 00:04:53,180 --> 00:04:56,970 þú sérð að "Þú rascally kanína!" fær umbreytt rétt til 89 00:04:56,970 --> 00:04:58,730 "Þú wabbit wascally!" 90 00:04:58,730 --> 00:05:02,250 >> Að lokum, það er 1 fleiri virka þess virði að ræða 91 00:05:02,250 --> 00:05:06,810 fyrst þú hefur verið að nota það í öllum C forrit sem þú hefur alltaf skrifað, helstu. 92 00:05:06,810 --> 00:05:09,450 Main er virka eins og hver annar. 93 00:05:09,450 --> 00:05:13,580 Það er got a endurkoma nafni rakalista og líkama. 94 00:05:13,580 --> 00:05:16,110 Afrakstur tegund af Main eru alltaf int, 95 00:05:16,110 --> 00:05:19,120 og þetta int er notuð til að miðla stöðu áætlunarinnar þegar það lýkur. 96 00:05:19,120 --> 00:05:23,360 >> Gerði það hlaupa með góðum árangri, eða gerði það enda snemma vegna villu? 97 00:05:23,360 --> 00:05:26,390 Reglulegur núlli sýnir vel rekið, 98 00:05:26,390 --> 00:05:29,510 og aftur allir non-núll gildi táknar villu. 99 00:05:29,510 --> 00:05:31,950 Það fer eftir hvers konar forrit sem þú ert að skrifa, 100 00:05:31,950 --> 00:05:34,960 aftur mismunandi kóða fyrir mismunandi villur geta vera hjálpsamur 101 00:05:34,960 --> 00:05:37,210 fyrir fólk sem nota program síðar. 102 00:05:37,210 --> 00:05:40,220 Mains rök eru svolítið flóknara. 103 00:05:40,220 --> 00:05:42,150 >> The rök listi getur annað hvort að vera tóm, 104 00:05:42,150 --> 00:05:45,330 sem við kynna með því að skrifa ógild á milli sviga, 105 00:05:45,330 --> 00:05:50,220 eða lista getur haft 2 rök: int og fylki af char * s. 106 00:05:50,220 --> 00:05:52,820 Þau eru notuð þegar program hyggst nota 107 00:05:52,820 --> 00:05:56,490 rök samþykkt um stjórn lína þegar forritið er beitt. 108 00:05:56,490 --> 00:05:59,690 The int rök er oftast kallaður argc, 109 00:05:59,690 --> 00:06:03,300 og það er jöfn lengd char * array, þekktur sem argv. 110 00:06:03,300 --> 00:06:07,080 Argv inniheldur stjórn lína rök lentu í áætluninni. 111 00:06:07,080 --> 00:06:11,440 Í öðru stuttu máli munum við tala um hvernig á að nota þessar breytur nánar. 112 00:06:11,440 --> 00:06:15,220 Fyrir nú, getur þú ekki hika við að lýsa helstu annar hvor vegur. 113 00:06:15,220 --> 00:06:19,410 Ég vel yfirleitt að skrifa það út styttri leið, og engin rök, þegar mögulegt er. 114 00:06:19,410 --> 00:06:22,230 >> Nú þegar þú veist hvernig á að skrifa virka, 115 00:06:22,230 --> 00:06:25,030 þú ert komin vel á leið þinni til að þróa stærri og flóknari forrit. 116 00:06:25,030 --> 00:06:29,740 Ég heiti Nate Hardison. Þetta er CS50.