1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] Funzjonijiet huma sezzjonijiet ta 'kodiċi użati fi programm akbar 2 00:00:09,640 --> 00:00:11,430 biex twettaq xogħol partikolari. 3 00:00:11,430 --> 00:00:15,060 Huma magħrufa wkoll bħala proċeduri, subroutines, u subprograms, 4 00:00:15,060 --> 00:00:18,320 peress li verament huma biss programmi mini fi ħdan programmi. 5 00:00:18,320 --> 00:00:20,340 Anke jekk inti tista 'ma ndunat, 6 00:00:20,340 --> 00:00:24,090 inti aktar definittivament użajt funzjonijiet diġà jekk inti stajt programmati C. 7 00:00:24,090 --> 00:00:26,770 Meta inti tikteb Jittieħed għall-iskrin bl-użu printf, 8 00:00:26,770 --> 00:00:29,380 int fil-fatt tuża l-funzjoni msejħa printf. 9 00:00:29,380 --> 00:00:33,760 Bl-istess mod, GetInt u GetString huma funzjonijiet li CS50 jipprovdi għalik. 10 00:00:33,760 --> 00:00:37,750 Kif programmaturi, nużaw il-funzjonijiet għal numru ta 'raġunijiet. 11 00:00:37,750 --> 00:00:41,240 >> Wara funzjonijiet li jwettaq kompiti komuni bħall-kitba għall-iskrin 12 00:00:41,240 --> 00:00:44,480 u tħeġġeġ l-utent għall-input jiffranka us ħin meta jipprogrammaw. 13 00:00:44,480 --> 00:00:47,510 Mhuwiex meħtieġ li jikteb il-kodiċi li tagħmel dawk l-affarijiet l-istess 14 00:00:47,510 --> 00:00:49,520 peress li dawn qed diġà sar għalina. 15 00:00:49,520 --> 00:00:54,580 Huwa lanqas neċessarja għalina biex nifhmu eżattament kif dawn il-funzjonijiet tax-xogħol internament. 16 00:00:54,580 --> 00:00:58,880 Minflok, aħna biss għandek tkun taf kif tuża jew jsejħulhom fil-programmi tagħna. 17 00:00:58,880 --> 00:01:02,040 Huwa wkoll utli li tikteb funzjonijiet programmi akbar 18 00:01:02,040 --> 00:01:04,330 anki jekk int ma tippjana li fuq ħaddieħor jużawhom, 19 00:01:04,330 --> 00:01:06,830 biss biex jaqsmu l-kompitu akbar fil-idejn. 20 00:01:06,830 --> 00:01:11,910 Dan il-mod, inti tagħti l-istruttura għall-kodiċi tiegħek ferm simili youd tagħti struttura lill esej, 21 00:01:11,910 --> 00:01:15,180 u ma 'proġetti verament kbar inti jippermettu lin-nies multipli 22 00:01:15,180 --> 00:01:16,730 biex jaħdmu fuq partijiet differenti fl-istess ħin 23 00:01:16,730 --> 00:01:20,480 peress li huwa ċar fejn ix-xogħol persuna waħda jispiċċa u ieħor l jibda. 24 00:01:20,480 --> 00:01:26,530 >> Funzjonijiet tipikament joperaw fuq 1 jew aktar inputs, magħrufa bħala l-argumenti jew il-parametri, 25 00:01:26,530 --> 00:01:30,520 trasformazzjoni dawk l-inputs fis b'valur ta 'produzzjoni li huwa mbagħad lura. 26 00:01:30,520 --> 00:01:34,950 Madankollu, huwa wkoll possibbli li jkollhom funzjonijiet li ma jużawx l-ebda argument ta 'input 27 00:01:34,950 --> 00:01:36,400 u ma jirritornawx output. 28 00:01:36,400 --> 00:01:38,790 Okay, biżżejjed ma 'l-għalf fluffy. 29 00:01:38,790 --> 00:01:41,790 Ejja tagħti ħarsa lejn xi funzjonijiet reali fil C. 30 00:01:41,790 --> 00:01:45,570 >> Hawnhekk għandna funzjoni msejħa kwadru li, jemmnu jew le, 31 00:01:45,570 --> 00:01:47,570 jikkalkula l-kwadru ta 'l-input. 32 00:01:47,570 --> 00:01:49,490 Ejja dissect-sintassi ta 'dan. 33 00:01:49,490 --> 00:01:51,860 L-ewwel kelma li tara fil-funzjoni, int, 34 00:01:51,860 --> 00:01:57,460 jispeċifika t-tip ritorn tal-funzjoni, jiġifieri, it-tip Ċ ta 'l-output tal-funzjoni tal-. 35 00:01:57,460 --> 00:02:00,370 Din il-funzjoni se output valur ma int tip. 36 00:02:00,370 --> 00:02:04,100 Il-kelma li jmiss tara huwa l-isem tal-funzjoni, kwadru f'dan il-każ. 37 00:02:04,100 --> 00:02:07,390 Naming funzjonijiet kif suppost huwa partikolarment importanti 38 00:02:07,390 --> 00:02:11,260 peress li huwa probabbilment l-aktar viżibbli dokumentazzjoni ta 'dak il-funzjoni ma. 39 00:02:11,260 --> 00:02:14,880 Jista 'jkun jibred biex insemmu din il-funzjoni Shazam jew Booyah, 40 00:02:14,880 --> 00:02:18,340 iżda li ma tgħidilna xejn dwar dak li l-funzjoni ma. 41 00:02:18,340 --> 00:02:23,470 >> Wara l-isem funzjoni jaslu l-inputs għall-funzjoni, l-argumenti. 42 00:02:23,470 --> 00:02:26,380 Dawn huma elenkati ġewwa sett ta 'parentesi 43 00:02:26,380 --> 00:02:30,160 kemm ma tip tagħhom u l-isem li juża għalihom fil-korp tal-funzjoni. 44 00:02:30,160 --> 00:02:34,030 Pjazza jieħu biss 1 argument, l-int biex kwadru, 45 00:02:34,030 --> 00:02:36,160 li stajt iddeċieda li jagħti l-isem x. 46 00:02:36,160 --> 00:02:40,760 Dan jispiċċa d-dikjarazzjoni funzjoni jew prototip. 47 00:02:40,760 --> 00:02:43,320 Il-ċineg kaboċċi madwar il-bqija tal-funzjoni 48 00:02:43,320 --> 00:02:45,870 jindikaw il-bidu u t-tmiem tal-ġisem funzjoni, 49 00:02:45,870 --> 00:02:48,320 id-definizzjoni tal-funzjoni stess. 50 00:02:48,320 --> 00:02:50,300 Pjazza hija funzjoni pjuttost sempliċi. 51 00:02:50,300 --> 00:02:54,100 Huwa biss ltqajna linja 1, peress li kollha għandna nagħmlu huwa timmultiplika x minnu stess. 52 00:02:54,100 --> 00:02:59,250 Ir-ritorn kelma jispeċifika l-valur tal-produzzjoni u jqajjem it-tmiem tal-funzjoni. 53 00:02:59,250 --> 00:03:03,430 Biex tuża l-funzjoni kwadru, għandna bżonn li jipprovdu l-inputs xierqa 54 00:03:03,430 --> 00:03:05,310 u mbagħad jaqbdu l-output. 55 00:03:05,310 --> 00:03:08,140 Hawnhekk, inti tara koppja ta 'modi ta' kif isir dan. 56 00:03:08,140 --> 00:03:13,600 Aħna jista 'jgħaddi fil-int prima, bħall 6, jew nistgħu jgħaddu fil-varjabbli bħal. 57 00:03:13,600 --> 00:03:15,700 Innota li kull darba li aħna sejħa kwadru, 58 00:03:15,700 --> 00:03:18,330 aħna jaqbdu l-output fil-varjabbli u mbagħad jistampaw. 59 00:03:18,330 --> 00:03:22,690 Madankollu, aħna ma jkollhom jaħżnu l-valur tar-ritorn fil-varjabbli u mbagħad jistampaw. 60 00:03:22,690 --> 00:03:27,090 Nistgħu biss jibgħat direttament lill printf kif nagħmlu meta aħna kwadru 10, 61 00:03:27,090 --> 00:03:30,580 iżda dan ma jfissirx li aħna ma jkollhomx aċċess għall-valur tar-ritorn tal-kwadru 10 62 00:03:30,580 --> 00:03:32,230 x'imkien ieħor fil-kodiċi. 63 00:03:32,230 --> 00:03:34,890 Ejja nħarsu lejn eżempju ieħor sempliċi. 64 00:03:34,890 --> 00:03:38,750 >> Din id-darba, aħna ser qosor 2 sufruni flimkien sabiex inkunu tista tara dak funzjoni Dehra 65 00:03:38,750 --> 00:03:41,220 meta huwa ltqajna 2 inputs minflok biss 1. 66 00:03:41,220 --> 00:03:43,950 Kif tistgħu taraw, mhuwiex wisq differenti. 67 00:03:43,950 --> 00:03:47,330 Kollha għandna tagħmel hu li żżid fil-argument 2, float jismu b, 68 00:03:47,330 --> 00:03:51,820 mal-lista argument tuża virgola li jkun separat mill-ewwel argument, float a. 69 00:03:51,820 --> 00:03:55,550 Allura, pjazza tagħna u l-funzjonijiet somma huma pjuttost faċli li wieħed jifhem 70 00:03:55,550 --> 00:03:58,930 għaliex qed ekwivalenti għal funzjonijiet li inti stajt tidher qabel fil-klassi matematika. 71 00:03:58,930 --> 00:04:01,610 Issa, ejja nħarsu lejn funzjoni li hija kemmxejn differenti. 72 00:04:01,610 --> 00:04:04,620 Minflok jirritornaw valur, jimmodifika stat. 73 00:04:04,620 --> 00:04:07,260 Dan huwa magħruf bħala li għandu effett sekondarju. 74 00:04:07,260 --> 00:04:10,750 F'dan il-programm, il-funzjoni printf_fudd_style 75 00:04:10,750 --> 00:04:13,410 għandha tip-ritorn li ma rajniex qabel, nulla. 76 00:04:13,410 --> 00:04:16,730 >> Null huwa użat biex ngħid li l-funzjoni ma ritorn xejn. 77 00:04:16,730 --> 00:04:19,410 M'hemm l-ebda fatturi varjabbli tat null tip, 78 00:04:19,410 --> 00:04:22,760 hekk jekk inti tipprova li jirritornaw xi ħaġa minn funzjoni simili printf_fudd_style, 79 00:04:22,760 --> 00:04:24,290 l-kumpilatur se Yell fi inti. 80 00:04:24,290 --> 00:04:29,390 Ġewwa printf_fudd_style, naraw li filwaqt li l-funzjoni xorta jwettaq kompitu, 81 00:04:29,390 --> 00:04:31,890 jiġifieri, il-qlib kollha Rs li Ws, 82 00:04:31,890 --> 00:04:36,380 il-punt tal-funzjoni huwa li jimmodifika l-sekwenza u mbagħad ipprintjaha fuq l-iskrin, 83 00:04:36,380 --> 00:04:39,400 jinbidlu l-istat tal-programm minflok jirritornaw riżultat. 84 00:04:39,400 --> 00:04:43,700 Bl-użu din il-funzjoni hija simili ħafna bl-użu pjazza tagħna u l-funzjonijiet somma, 85 00:04:43,700 --> 00:04:46,950 ħlief aħna ma taħżen-riżultat ta 'varjabbli jew tgħaddiha off għall-ieħor funzjoni 86 00:04:46,950 --> 00:04:49,520 peress li m'hemm l-ebda riżultat li wieħed jitkellem. 87 00:04:49,520 --> 00:04:53,180 Allura, meta aħna tiġbor u tmexxi Elmer Fudd programm tagħna, 88 00:04:53,180 --> 00:04:56,970 tara li "Inti rascally fenek!" gets trasformat dritt li 89 00:04:56,970 --> 00:04:58,730 "Inti wascally Wabbit!" 90 00:04:58,730 --> 00:05:02,250 >> Fl-aħħarnett, hemm il-funzjoni 1 aktar jiswew tiddiskuti 91 00:05:02,250 --> 00:05:06,810 peress li inti kont qed tuża huwa f'kull program C inti stajt qatt bil-miktub, prinċipali. 92 00:05:06,810 --> 00:05:09,450 Main hija funzjoni ħafna bħal kull oħra. 93 00:05:09,450 --> 00:05:13,580 Huwa ltqajna tip ritorn, isem, lista ta 'argumenti, u korp. 94 00:05:13,580 --> 00:05:16,110 It-tip ritorn ta 'ewlieni huwa dejjem int, 95 00:05:16,110 --> 00:05:19,120 u dan int huwa użat biex jikkomunikaw l-istatus tal-programm meta jispiċċa. 96 00:05:19,120 --> 00:05:23,360 >> Ma kien run b'suċċess, jew ma kien tmiem bikri minħabba żball? 97 00:05:23,360 --> 00:05:26,390 Jirritornaw lejn żero jindika run ta 'suċċess, 98 00:05:26,390 --> 00:05:29,510 u jirritorna kull valur mhux żero jindika żball. 99 00:05:29,510 --> 00:05:31,950 Skond it-tip ta 'programm int bil-miktub, 100 00:05:31,950 --> 00:05:34,960 jirritornaw kodiċijiet differenti għal żbalji differenti jista 'jkun utli 101 00:05:34,960 --> 00:05:37,210 għall-persuni li jużaw il-programm tiegħek aktar tard. 102 00:05:37,210 --> 00:05:40,220 Argumenti tal-mejn huma ftit aktar kumplikata. 103 00:05:40,220 --> 00:05:42,150 >> Il-lista argument jista 'jew tkun vojta, 104 00:05:42,150 --> 00:05:45,330 li aħna tindika bil-kitba nulli fl bejn il-parentesi, 105 00:05:45,330 --> 00:05:50,220 jew il-lista tista 'jkollha 2 argumenti: l-int u firxa ta' * char i. 106 00:05:50,220 --> 00:05:52,820 Dawn huma użati meta program tiegħek biħsiebha tuża 107 00:05:52,820 --> 00:05:56,490 argumenti għadda fuq il-linja tal-kmand meta l-programm huwa nvokat. 108 00:05:56,490 --> 00:05:59,690 L-argument int huwa tipikament tissejjaħ argc, 109 00:05:59,690 --> 00:06:03,300 u huwa ugwali it-tul ta 'l-array * char, magħrufa bħala ARGV. 110 00:06:03,300 --> 00:06:07,080 ARGV fih l-argumenti kmand tal-linja għadda fil-programm. 111 00:06:07,080 --> 00:06:11,440 F'każ ieħor qosor, aħna ser nitkellmu dwar kif jużaw dawn il-varjabbli f'aktar dettall. 112 00:06:11,440 --> 00:06:15,220 Għal issa, inti tista 'tħossok liberu li tiddikjara prinċipali jew mod. 113 00:06:15,220 --> 00:06:19,410 I tipikament jagħżlu li jiktbu l-mod iqsar, bl-ebda argumenti, meta possibbli. 114 00:06:19,410 --> 00:06:22,230 >> Issa li taf kif jiktbu funzjonijiet, 115 00:06:22,230 --> 00:06:25,030 int sew fit-triq tiegħek biex jiżviluppaw akbar, il-programmi aktar kumplessi. 116 00:06:25,030 --> 00:06:29,740 Jisimni Nate Hardison. Dan huwa CS50.