1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] Функције су делови кода се користе у оквиру ширег програма 2 00:00:09,640 --> 00:00:11,430 да изврши одређени задатак. 3 00:00:11,430 --> 00:00:15,060 Они су такође познати као процедуре, потпрограме и потпрогра, 4 00:00:15,060 --> 00:00:18,320 јер су заиста само мали програми у оквиру програма. 5 00:00:18,320 --> 00:00:20,340 Иако можда нисте приметили, 6 00:00:20,340 --> 00:00:24,090 свакако сте користили функције већ ако сте програмирали у Ц 7 00:00:24,090 --> 00:00:26,770 Када пишете ствари на екрану помоћу иф, 8 00:00:26,770 --> 00:00:29,380 сте заправо користите функцију зове инт. 9 00:00:29,380 --> 00:00:33,760 Исто тако, ГетИнт и ГетСтринг су функције које обезбеђује ЦС50 за вас. 10 00:00:33,760 --> 00:00:37,750 Као програмера, ми користимо функције за неколико разлога. 11 00:00:37,750 --> 00:00:41,240 >> Имајући функције обављају уобичајене задатке као што пише на екрану 12 00:00:41,240 --> 00:00:44,480 и навело корисника за унос нам штеди време када програмирања. 13 00:00:44,480 --> 00:00:47,510 Није потребно да пишете код да те исте ствари 14 00:00:47,510 --> 00:00:49,520 јер они су већ урадили за нас. 15 00:00:49,520 --> 00:00:54,580 То чак није ни потребно да разумемо како тачно те функције раде интерно. 16 00:00:54,580 --> 00:00:58,880 Уместо тога, ми само треба да знате како да користите или да их позивате у нашим програмима. 17 00:00:58,880 --> 00:01:02,040 Такође је корисно да пишем функције у већим програмима 18 00:01:02,040 --> 00:01:04,330 чак и ако не планирате да их други користе, 19 00:01:04,330 --> 00:01:06,830 само да поделе већи задатак при руци. 20 00:01:06,830 --> 00:01:11,910 На овај начин, можете дати структуру кода налик ћеш дати структуру есеју, 21 00:01:11,910 --> 00:01:15,180 и стварно великих пројеката активирате више људи 22 00:01:15,180 --> 00:01:16,730 да раде на различитим деловима у исто време 23 00:01:16,730 --> 00:01:20,480 јер је јасно где једна особа рад завршава, а други је почиње. 24 00:01:20,480 --> 00:01:26,530 >> Функције обично раде на 1 или више улаза, познатих као аргументи или параметрима, 25 00:01:26,530 --> 00:01:30,520 претварајући те инпуте у излазном вредности која се затим вратио. 26 00:01:30,520 --> 00:01:34,950 Међутим, такође је могуће да имају функције које не користе никакве аргументе за унос 27 00:01:34,950 --> 00:01:36,400 и не врати излаз. 28 00:01:36,400 --> 00:01:38,790 Ок, доста са паперјаст ствари. 29 00:01:38,790 --> 00:01:41,790 Хајде да погледамо неке реалне функције у Ц. 30 00:01:41,790 --> 00:01:45,570 >> Овде имамо функцију која се зове Трг који, веровали или не, 31 00:01:45,570 --> 00:01:47,570 израчунава квадрат улаза. 32 00:01:47,570 --> 00:01:49,490 Хајде да сецира синтаксу њега. 33 00:01:49,490 --> 00:01:51,860 Прва реч коју видите у функцији, инт, 34 00:01:51,860 --> 00:01:57,460 прецизира повратни тип функције, што значи да је Ц тип излаза функцији је. 35 00:01:57,460 --> 00:02:00,370 Ова функција ће избацити вредност са типа инт. 36 00:02:00,370 --> 00:02:04,100 Следећа реч коју видите је име функције, квадрат у овом случају. 37 00:02:04,100 --> 00:02:07,390 Именовање функције на одговарајући начин посебно је важно 38 00:02:07,390 --> 00:02:11,260 јер је вероватно највидљивији документација о томе шта је функција ради. 39 00:02:11,260 --> 00:02:14,880 Било би кул да именујете ову функцију Схазам или Бооиах, 40 00:02:14,880 --> 00:02:18,340 али то не би нам ништа рећи о томе шта је функција ради. 41 00:02:18,340 --> 00:02:23,470 >> Након име функције долазе улазе у функцији, аргументи. 42 00:02:23,470 --> 00:02:26,380 Они су наведени у скупу заграда 43 00:02:26,380 --> 00:02:30,160 и са њиховом типу и име коришћења за њих у телу функције. 44 00:02:30,160 --> 00:02:34,030 Трг траје само 1 аргумент, Инт на тргу, 45 00:02:34,030 --> 00:02:36,160 који сам одлучио да дам к име. 46 00:02:36,160 --> 00:02:40,760 Овај завршава функцију изјаву или прототипа. 47 00:02:40,760 --> 00:02:43,320 Витичасте заграде окружују остатак функције 48 00:02:43,320 --> 00:02:45,870 означавају почетак и крај тела функције, 49 00:02:45,870 --> 00:02:48,320 дефиниција самог функције. 50 00:02:48,320 --> 00:02:50,300 Трг је прилично једноставна функција. 51 00:02:50,300 --> 00:02:54,100 То је добио само 1 линију, јер сви морамо да урадимо је да помножите к по себи. 52 00:02:54,100 --> 00:02:59,250 Реч повратак наводи излазне вредности и изазива крај функције. 53 00:02:59,250 --> 00:03:03,430 Да бисте користили функцију квадратни, морамо да доставимо одговарајуће инпуте 54 00:03:03,430 --> 00:03:05,310 и онда ухвати излаз. 55 00:03:05,310 --> 00:03:08,140 Овде можете видети неколико начина да ради. 56 00:03:08,140 --> 00:03:13,600 Можемо проћи у сировом инт, као и 6, или можемо проћи у променљивој као. 57 00:03:13,600 --> 00:03:15,700 Имајте на уму да сваки пут кад зовем квадрат, 58 00:03:15,700 --> 00:03:18,330 смо ухватили излаз у променљивој, а затим одштампате га. 59 00:03:18,330 --> 00:03:22,690 Међутим, ми не треба да складиштите повратну вредност у променљиву, а затим штампа. 60 00:03:22,690 --> 00:03:27,090 Ми смо само могли да шаљете директно иф што радимо када трг 10, 61 00:03:27,090 --> 00:03:30,580 али то не значи да ми немамо приступ враћене вредности квадрата 10 62 00:03:30,580 --> 00:03:32,230 другде у коду. 63 00:03:32,230 --> 00:03:34,890 Хајде да погледамо другу једноставан пример. 64 00:03:34,890 --> 00:03:38,750 >> Овај пут ћемо сумирати 2 Флоатс заједно, тако да можемо да видимо шта функција изгледа 65 00:03:38,750 --> 00:03:41,220 када је добио 2 улаза уместо само 1. 66 00:03:41,220 --> 00:03:43,950 Као што можете видети, то није много другачије. 67 00:03:43,950 --> 00:03:47,330 Све што урадите је да додате у 2. аргументу, пливајући под називом б 68 00:03:47,330 --> 00:03:51,820 на листи аргумената помоћу зарез да га одвоји од првог аргумента, плутају. 69 00:03:51,820 --> 00:03:55,550 Дакле, наш квадрат и СУМ функције су прилично лако разумети 70 00:03:55,550 --> 00:03:58,930 зато што су еквивалентна функција које сте видели раније у цасу математике. 71 00:03:58,930 --> 00:04:01,610 Сада, хајде да погледамо на функцији која је мало другачија. 72 00:04:01,610 --> 00:04:04,620 Уместо да се врати неку вредност, она мења стање. 73 00:04:04,620 --> 00:04:07,260 Ово је познато као да је пропратни ефекат. 74 00:04:07,260 --> 00:04:10,750 У овом програму, принтф_фудд_стиле функција 75 00:04:10,750 --> 00:04:13,410 има повратни тип који нисмо видели, празнина. 76 00:04:13,410 --> 00:04:16,730 >> Празнина се користи да каже да функција не врати ништа. 77 00:04:16,730 --> 00:04:19,410 Не постоје променљиве типа празнини, 78 00:04:19,410 --> 00:04:22,760 па ако покушате да се врати нешто од функције као принтф_фудд_стиле, 79 00:04:22,760 --> 00:04:24,290 компајлер ће викати на тебе. 80 00:04:24,290 --> 00:04:29,390 Унутра принтф_фудд_стиле, видимо да, иако и даље обавља функцију задатак, 81 00:04:29,390 --> 00:04:31,890 наиме, пребацивање свих РС ВС, 82 00:04:31,890 --> 00:04:36,380 тачка функције је да модификујете ниску, а затим одштампате га на екрану, 83 00:04:36,380 --> 00:04:39,400 мења стање програма уместо враћања резултат. 84 00:04:39,400 --> 00:04:43,700 Користећи ову функцију је веома налик користећи наш квадрат збира функције, 85 00:04:43,700 --> 00:04:46,950 осим што не складишти резултат у променљивој или да га искључите на другу функцију 86 00:04:46,950 --> 00:04:49,520 јер не постоји резултат који говори. 87 00:04:49,520 --> 00:04:53,180 Дакле, када смо компајлирати и покренути наш Елмер Давеж програм, 88 00:04:53,180 --> 00:04:56,970 видиш да "Ти раскалашно зец!" добија право да трансформише 89 00:04:56,970 --> 00:04:58,730 "Ти васцалли Ваббит!" 90 00:04:58,730 --> 00:05:02,250 >> Коначно, ту је још 1 функција вредело разговарати 91 00:05:02,250 --> 00:05:06,810 пошто сте га користите у сваком Ц програму сте икада написан, главни. 92 00:05:06,810 --> 00:05:09,450 Главни је функција много као и свака друга. 93 00:05:09,450 --> 00:05:13,580 Има повратни тип, назив, листу аргумената, а тело. 94 00:05:13,580 --> 00:05:16,110 Повратак тип маин увек инт 95 00:05:16,110 --> 00:05:19,120 и то инт се користи за комуникацију статус програма када се заврши. 96 00:05:19,120 --> 00:05:23,360 >> Да ли је успешно води, или је рано завршили због грешке? 97 00:05:23,360 --> 00:05:26,390 Враћање на нулу указује на успешну серију, 98 00:05:26,390 --> 00:05:29,510 и враћање било не-нула вредности указује на грешку. 99 00:05:29,510 --> 00:05:31,950 У зависности од врсте програма који пишете, 100 00:05:31,950 --> 00:05:34,960 враћају различите шифре за различите грешке могу бити од помоћи 101 00:05:34,960 --> 00:05:37,210 за људе који користе свој програм касније. 102 00:05:37,210 --> 00:05:40,220 Маинс аргументи су мало компликованије. 103 00:05:40,220 --> 00:05:42,150 >> Аргумент листа може да буде празно, 104 00:05:42,150 --> 00:05:45,330 које указују писањем празнину између заградама, 105 00:05:45,330 --> 00:05:50,220 или листа може имати 2 аргумента: инт и низ цхар * с. 106 00:05:50,220 --> 00:05:52,820 Они се користе када ваш програм намерава да користи 107 00:05:52,820 --> 00:05:56,490 аргументи донет на командној линији када програм позивају. 108 00:05:56,490 --> 00:05:59,690 Инт аргумент је обично назива аргц, 109 00:05:59,690 --> 00:06:03,300 и то је једнака дужина цхар * низ, познатији као аргв. 110 00:06:03,300 --> 00:06:07,080 Аргв садржи аргументе командне линије прешао у програму. 111 00:06:07,080 --> 00:06:11,440 У другом Укратко, ми ћемо разговарати о томе како да користите ове променљиве у више детаља. 112 00:06:11,440 --> 00:06:15,220 За сада, можете слободно да се изјасне главни било начин. 113 00:06:15,220 --> 00:06:19,410 Ја обично изаберу да га напишем на краћи пут, без аргумената, када је то могуће. 114 00:06:19,410 --> 00:06:22,230 >> Сада када знате како да напишете функције, 115 00:06:22,230 --> 00:06:25,030 Ви добро сте на путу развијања веће, сложеније програме. 116 00:06:25,030 --> 00:06:29,740 Моје име је Нејт Хардисон. Ово је ЦС50.