1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] Funkcijas ir sadaļas koda izmantotās plašākas programmas 2 00:00:09,640 --> 00:00:11,430 veikt konkrētu uzdevumu. 3 00:00:11,430 --> 00:00:15,060 Tās ir arī pazīstams kā procedūrām, subroutines un apakšprogrammās, 4 00:00:15,060 --> 00:00:18,320 jo tie tiešām ir tikai mini programmas ietvaros programmām. 5 00:00:18,320 --> 00:00:20,340 Pat ja jūs varētu būt pamanījuši, 6 00:00:20,340 --> 00:00:24,090 Jūs visvairāk noteikti ir izmantots funkciju jau ja esat ieprogrammēts C. 7 00:00:24,090 --> 00:00:26,770 Kad jūs rakstīt stuff uz ekrāna, izmantojot printf, 8 00:00:26,770 --> 00:00:29,380 jūs faktiski izmantojot funkciju sauc printf. 9 00:00:29,380 --> 00:00:33,760 Tāpat GetInt un GetString ir funkcijas, kas CS50 sniedz jums. 10 00:00:33,760 --> 00:00:37,750 Kā programmētāji, mēs izmantojam funkcijas vairāku iemeslu dēļ. 11 00:00:37,750 --> 00:00:41,240 >> Ņemot funkcijas veikt kopīgus uzdevumus, piemēram, rakstot uz ekrāna 12 00:00:41,240 --> 00:00:44,480 un pamudinot lietotājam sniegt ieguldījumu ietaupa mums laiku, kad programmēšana. 13 00:00:44,480 --> 00:00:47,510 Tas nav nepieciešams rakstīt kodu, lai darīt tās pašas lietas 14 00:00:47,510 --> 00:00:49,520 jo viņi jau ir izdarīts mums. 15 00:00:49,520 --> 00:00:54,580 Tas nav pat nepieciešams, lai mēs saprastu, kā tieši šie funkcijas darbojas iekšēji. 16 00:00:54,580 --> 00:00:58,880 Tā vietā, mēs vienkārši ir jāzina, kā izmantot vai zvanīt tos mūsu programmās. 17 00:00:58,880 --> 00:01:02,040 Tā ir arī noderīga, lai rakstītu funkcijas lielākām programmām 18 00:01:02,040 --> 00:01:04,330 pat ja jūs neesat plānošanu, kam citi tos izmantot, 19 00:01:04,330 --> 00:01:06,830 vienkārši sadalīt lielāku uzdevumu pie rokas. 20 00:01:06,830 --> 00:01:11,910 Tādā veidā, jūs piešķirtu struktūru jūsu kodu daudz, piemēram, jūs gribētu dot struktūru eseju, 21 00:01:11,910 --> 00:01:15,180 un ar patiešām lieliem projektiem aktivizēsiet vairākus cilvēkus 22 00:01:15,180 --> 00:01:16,730 strādāt uz dažādām daļām, tajā pašā laikā 23 00:01:16,730 --> 00:01:20,480 jo tas ir skaidrs, kur viena cilvēka darbs beidzas un otrs ir sākas. 24 00:01:20,480 --> 00:01:26,530 >> Funkcijas parasti darbojas uz 1 vai vairākus signālus, kas pazīstama kā argumentus vai parametriem, 25 00:01:26,530 --> 00:01:30,520 pārveidojot šos ievadīšanu izejas vērtību, kas pēc tam tiek atgriezta. 26 00:01:30,520 --> 00:01:34,950 Tomēr tas ir arī iespējams ir funkcijas, kas neizmanto nekādas ieejas argumentus 27 00:01:34,950 --> 00:01:36,400 un neatgriežas izejas. 28 00:01:36,400 --> 00:01:38,790 Labi, pietiek ar pūkainu sīkumi. 29 00:01:38,790 --> 00:01:41,790 Pieņemsim to apskatīt dažas reālās funkcijas C. 30 00:01:41,790 --> 00:01:45,570 >> Šeit mums ir funkciju sauc kvadrātveida ka, ticiet vai ne, 31 00:01:45,570 --> 00:01:47,570 aprēķina kvadrāta ieejas. 32 00:01:47,570 --> 00:01:49,490 Pieņemsim preparēt sintaksi tā. 33 00:01:49,490 --> 00:01:51,860 Pirmais vārds redzat funkciju, int, 34 00:01:51,860 --> 00:01:57,460 precizē atgriešanās veidu funkcijas, tas ir, C veida funkcija izlaidē. 35 00:01:57,460 --> 00:02:00,370 Šī funkcija būs izejas vērtību ar int. 36 00:02:00,370 --> 00:02:04,100 Nākamais vārds redzat ir nosaukums funkcijas, kvadrātveida šajā gadījumā. 37 00:02:04,100 --> 00:02:07,390 Nosaucot funkcijas pienācīgi ir īpaši svarīga 38 00:02:07,390 --> 00:02:11,260 jo tas ir iespējams, visvairāk redzams dokumentācija par to, ko funkcija dara. 39 00:02:11,260 --> 00:02:14,880 Tas varētu būt forši nosaukt šo funkciju Shazam vai booyah, 40 00:02:14,880 --> 00:02:18,340 bet tas nav pateikt mums kaut ko par to, ko funkcija dara. 41 00:02:18,340 --> 00:02:23,470 >> Pēc funkcijas nosaukums nāk izejvielas uz funkciju, minētie argumenti. 42 00:02:23,470 --> 00:02:26,380 Tie ir uzskaitīti iekšā kopu iekavām 43 00:02:26,380 --> 00:02:30,160 gan ar savu tipu un nosaukumu izmantot tiem, kas organismā funkciju. 44 00:02:30,160 --> 00:02:34,030 Kvadrātveida aizņem tikai 1 argumentu, int uz laukuma, 45 00:02:34,030 --> 00:02:36,160 ko es esmu nolēmis dot vārdu x. 46 00:02:36,160 --> 00:02:40,760 Tas beidzas funkcijas deklarāciju vai modeļa. 47 00:02:40,760 --> 00:02:43,320 Cirtaini bikšturi ap pārējo funkciju 48 00:02:43,320 --> 00:02:45,870 apzīmē sākumu un funkciju organismā beigas, 49 00:02:45,870 --> 00:02:48,320 definīcija funkcijas pati. 50 00:02:48,320 --> 00:02:50,300 Laukums ir diezgan vienkārša funkcija. 51 00:02:50,300 --> 00:02:54,100 Tas ir tikai got 1 līnija, jo viss, kas mums ir jādara, ir reizināt x ar sevi. 52 00:02:54,100 --> 00:02:59,250 Vārds atgriešanās precizē produkcijas vērtību un izraisa galu funkcijas. 53 00:02:59,250 --> 00:03:03,430 Lai izmantotu kvadrātveida funkciju, mums piegādāt atbilstošus ieguldījumus 54 00:03:03,430 --> 00:03:05,310 un tad sagūstīt produkciju. 55 00:03:05,310 --> 00:03:08,140 Šeit jūs redzēt pāris veidus, kā darīt to. 56 00:03:08,140 --> 00:03:13,600 Mēs varam iet ar neapstrādātu int, piemēram, 6, vai mēs varam iet uz mainīgo kā. 57 00:03:13,600 --> 00:03:15,700 Ņemiet vērā, ka katru reizi, kad mēs saucam kvadrāts, 58 00:03:15,700 --> 00:03:18,330 mēs uztveršanas produkciju mainīgo un pēc tam izdrukāt to. 59 00:03:18,330 --> 00:03:22,690 Tomēr, mums nav, lai saglabātu atgriešanās vērtību mainīgā un pēc tam izdrukāt. 60 00:03:22,690 --> 00:03:27,090 Mēs varētu vienkārši nosūtīt to tieši uz printf kā mēs, kad mēs laukums 10, 61 00:03:27,090 --> 00:03:30,580 bet tas nozīmē, ka mums nav pieejami atgriešanās vērtība nepārsniedz 10 kvadrātmetru 62 00:03:30,580 --> 00:03:32,230 citur kodu. 63 00:03:32,230 --> 00:03:34,890 Apskatīsim citu vienkāršu piemēru. 64 00:03:34,890 --> 00:03:38,750 >> Šoreiz mēs Apkopojot 2 pludiņus kopā, lai mēs varētu redzēt, ko funkcija izskatās 65 00:03:38,750 --> 00:03:41,220 kad tas ieguva 2 ieejas nevis tikai 1. 66 00:03:41,220 --> 00:03:43,950 Kā jūs varat redzēt, tas nav daudz atšķiras. 67 00:03:43,950 --> 00:03:47,330 Viss, kas mums jādara, ir pievienot gada 2 argumentu, peldēt nosaukts b, 68 00:03:47,330 --> 00:03:51,820 uz argumentu sarakstā izmantojot komatu, lai atdalītu to no pirmo argumentu, peldēt. 69 00:03:51,820 --> 00:03:55,550 Tātad, mūsu laukumā un summa funkcijas ir diezgan viegli saprast 70 00:03:55,550 --> 00:03:58,930 jo viņi līdzvērtīgu funkciju, ka jūs esat redzējis matemātikas klasē. 71 00:03:58,930 --> 00:04:01,610 Tagad, pieņemsim apskatīt funkciju, kas ir nedaudz atšķirīgs. 72 00:04:01,610 --> 00:04:04,620 Tai vietā, lai vērtību, tā izmaina stāvokli. 73 00:04:04,620 --> 00:04:07,260 Tas ir pazīstams kā ar blakus efektu. 74 00:04:07,260 --> 00:04:10,750 Šajā programmā, printf_fudd_style funkcija 75 00:04:10,750 --> 00:04:13,410 ir atgriešanās veidu, ka mēs neesam redzējuši pirms, anulēts. 76 00:04:13,410 --> 00:04:16,730 >> Neesošu tiek izmantots, lai teikt, ka funkcija neatgriežas neko. 77 00:04:16,730 --> 00:04:19,410 Nav neviena tipa tukšumā mainīgie, 78 00:04:19,410 --> 00:04:22,760 tādēļ, ja jūs mēģināt atgriezties kaut ko no funkcijas, piemēram printf_fudd_style, 79 00:04:22,760 --> 00:04:24,290 kompilators kliegt pie jums. 80 00:04:24,290 --> 00:04:29,390 Iekšā printf_fudd_style, mēs redzam, ka, kamēr funkcija joprojām veic uzdevumu, 81 00:04:29,390 --> 00:04:31,890 proti, pārejot visiem RS ar Ws, 82 00:04:31,890 --> 00:04:36,380 no funkcijas uzdevums ir mainīt stīgu un tam to izdrukāt uz ekrāna, 83 00:04:36,380 --> 00:04:39,400 mainot stāvokli programmu, nevis atgriežas rezultātu. 84 00:04:39,400 --> 00:04:43,700 Izmantojot šo funkciju, ir ļoti daudz, piemēram, izmantojot mūsu laukumu un summa funkcijas, 85 00:04:43,700 --> 00:04:46,950 izņemot mums nav saglabāt rezultātu mainīgo vai nodot to off uz citu funkciju 86 00:04:46,950 --> 00:04:49,520 jo nav rezultāts runāt. 87 00:04:49,520 --> 00:04:53,180 Tātad, kad mēs apkopot un palaist mūsu Elmer Fudd programmu, 88 00:04:53,180 --> 00:04:56,970 Jūs redzat, ka "Tu rascally trusis!" izpaužas pārveidots tiesības 89 00:04:56,970 --> 00:04:58,730 "Tu wascally wabbit!" 90 00:04:58,730 --> 00:05:02,250 >> Visbeidzot, tur ir 1 funkcija vērts apspriest 91 00:05:02,250 --> 00:05:06,810 jo jūs esat, izmantojot to katru C programmu esat kādreiz rakstīts, galvenais. 92 00:05:06,810 --> 00:05:09,450 Galvenais ir funkcija daudz tāpat kā jebkurš cits. 93 00:05:09,450 --> 00:05:13,580 Tas ir ieguvuši atgriešanās veidu, nosaukumu, ar argumentu sarakstu un iestādi. 94 00:05:13,580 --> 00:05:16,110 Atgriešanās veids galvenais ir vienmēr int, 95 00:05:16,110 --> 00:05:19,120 un tas int izmanto, lai sazinātos statusu programma, kad tā beidzas. 96 00:05:19,120 --> 00:05:23,360 >> Vai tas darbojas sekmīgi, vai tomēr tas galu agri kļūdas dēļ? 97 00:05:23,360 --> 00:05:26,390 Atgriežoties pie nulles norāda veiksmīgu palaist, 98 00:05:26,390 --> 00:05:29,510 un atgriežoties jebkuru nenulles vērtība norāda kļūda. 99 00:05:29,510 --> 00:05:31,950 Atkarībā no veida programmu jūs rakstāt, 100 00:05:31,950 --> 00:05:34,960 atgriežoties dažādus kodus dažādām kļūdām var būt noderīgi 101 00:05:34,960 --> 00:05:37,210 cilvēkiem, kuri izmanto savu programmu vēlāk. 102 00:05:37,210 --> 00:05:40,220 Galvenajos argumenti ir nedaudz sarežģītāk. 103 00:05:40,220 --> 00:05:42,150 >> Arguments sarakstā var būt vai nu tukšas, 104 00:05:42,150 --> 00:05:45,330 ko mēs norāda, rakstot tukšumu starp iekavās, 105 00:05:45,330 --> 00:05:50,220 vai sarakstā var būt 2 argumenti: starptautiskie un char * s masīvs. 106 00:05:50,220 --> 00:05:52,820 Tie tiek izmantoti, kad jūsu programma plāno izmantot 107 00:05:52,820 --> 00:05:56,490 argumenti pieņemts uz komandrindas, kad programma tiek izmantota. 108 00:05:56,490 --> 00:05:59,690 Int arguments parasti sauc argc, 109 00:05:59,690 --> 00:06:03,300 un tas ir vienāds garums char * masīvs, kas pazīstams kā argv. 110 00:06:03,300 --> 00:06:07,080 Argv satur komandrindas argumentus nodoti programmā. 111 00:06:07,080 --> 00:06:11,440 Citā sakot, mēs runājam par to, kā izmantot šos mainīgos sīkāk. 112 00:06:11,440 --> 00:06:15,220 Tagad, jūs varat justies brīvi, lai paziņot galvenais nu veidā. 113 00:06:15,220 --> 00:06:19,410 Es parasti izvēlas rakstīt to ārā pa īsāku ceļu, bez argumentiem, kad iespējams. 114 00:06:19,410 --> 00:06:22,230 >> Tagad, ka jūs zināt, kā rakstīt funkcijas, 115 00:06:22,230 --> 00:06:25,030 Jūs esat labi pa ceļam uz jaunattīstības lielāku, sarežģītākas programmas. 116 00:06:25,030 --> 00:06:29,740 Mans vārds ir Nate Hardison. Tas ir CS50.