1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] Funtzioak kodea programaren barruan handiago bat erabiltzen da atal 2 00:00:09,640 --> 00:00:11,430 ataza jakin bat egiteko. 3 00:00:11,430 --> 00:00:15,060 Prozedurak, subrutinak, eta subprograms gisa ere ezagutzen dira. 4 00:00:15,060 --> 00:00:18,320 benetan programen barruan programa mini geroztik. 5 00:00:18,320 --> 00:00:20,340 Nahiz eta agian ez duzu nabaritu, 6 00:00:20,340 --> 00:00:24,090 gehien behin betiko funtzio dagoeneko erabiltzen dituzun C. programatu bada 7 00:00:24,090 --> 00:00:26,770 Noiz stuff idazteko pantailan printf erabiliz, 8 00:00:26,770 --> 00:00:29,380 benetan ari zaren printf izeneko funtzio bat erabiliz. 9 00:00:29,380 --> 00:00:33,760 Era berean, GetInt eta GetString funtzioak CS50 duzula eskaintzen dira. 10 00:00:33,760 --> 00:00:37,750 Programatzaile bezala erabiltzen dugu, funtzio-arrazoiak direla-zenbaki bat. 11 00:00:37,750 --> 00:00:41,240 >> Ohiko zereginak burutzeko pantailan idazten bezalako funtzioak edukitzea 12 00:00:41,240 --> 00:00:44,480 eta sarrera erabiltzaileari galdetu denbora aurrezten gurekin programazioa. 13 00:00:44,480 --> 00:00:47,510 Ez da kodea idazteko gauza horiek egin ahal izateko beharrezkoak diren 14 00:00:47,510 --> 00:00:49,520 Gurekin egin dira dagoeneko geroztik. 15 00:00:49,520 --> 00:00:54,580 Ez da, nahiz eta, zehazki nola funtzio horiek barrutik lan gurekin ulertu ahal izateko beharrezkoak diren. 16 00:00:54,580 --> 00:00:58,880 Horren ordez, besterik ez dugu nola erabili edo deitu gure programa ezagutzeko. 17 00:00:58,880 --> 00:01:02,040 Gainera, lagungarria programa zabalago baten barruan funtzioak idazteko 18 00:01:02,040 --> 00:01:04,330 nahiz eta ez zaren beste batzuk erabili behar izan plangintza 19 00:01:04,330 --> 00:01:06,830 besterik ez zatitzeko esku zeregin handiagoa. 20 00:01:06,830 --> 00:01:11,910 Horrela, egitura ematen duzu zure kodea askoz bezalako egitura saiakera bat eman dituzu, 21 00:01:11,910 --> 00:01:15,180 eta proiektu benetan handiak hainbat pertsonak 22 00:01:15,180 --> 00:01:16,730 zati ezberdinetan, aldi berean, lan 23 00:01:16,730 --> 00:01:20,480 begi bistakoa da geroztik non pertsona bat lana eta ondorioz, eta beste bat hasten da. 24 00:01:20,480 --> 00:01:26,530 >> Funtzioak normalean 1 edo gehiago inputak, argumentuak edo parametro gisa ezagutzen dira, 25 00:01:26,530 --> 00:01:30,520 Sarrerek horiek eraldatzeko irteera balio hori gero itzuli. 26 00:01:30,520 --> 00:01:34,950 Hala ere, posible erabili sarrerako argumenturik onartzen ez duten funtzioak izan 27 00:01:34,950 --> 00:01:36,400 eta ez itzultzeko irteera bat. 28 00:01:36,400 --> 00:01:38,790 Ados, Fluffy stuff nahikoa. 29 00:01:38,790 --> 00:01:41,790 Ikus dezagun C. benetako funtzio batzuetara begirada bat 30 00:01:41,790 --> 00:01:45,570 >> Hemen izeneko plaza, sinetsi edo ez funtzio bat dugu, 31 00:01:45,570 --> 00:01:47,570 sarrerako plazan computes. 32 00:01:47,570 --> 00:01:49,490 Dezagun dissect sintaxia. 33 00:01:49,490 --> 00:01:51,860 Funtzioa ikusten duzun lehen hitza, int, 34 00:01:51,860 --> 00:01:57,460 funtzioa itzulera mota zehazten du, hau da, C motako funtzioa irteera. 35 00:01:57,460 --> 00:02:00,370 Funtzio hau mota int balio bat bistaratu da. 36 00:02:00,370 --> 00:02:04,100 Hurrengo hitza ikusten duzun funtzioaren izena, kasu honetan karratua da. 37 00:02:04,100 --> 00:02:07,390 Funtzioak izendatzea egokia da bereziki garrantzitsua da 38 00:02:07,390 --> 00:02:11,260 funtzioa duenaren dokumentazioa ikusgai da ziurrenik geroztik. 39 00:02:11,260 --> 00:02:14,880 Cool funtzioa shazam hau edo booyah izendatzeko, 40 00:02:14,880 --> 00:02:18,340 baina horrek ez luke esan digu funtzioa duenaren buruz ezer. 41 00:02:18,340 --> 00:02:23,470 >> Funtzio-izena etorri input funtzioa, argumentuak jarraituz. 42 00:02:23,470 --> 00:02:26,380 Parentesi multzo baten barruan agertzen dira 43 00:02:26,380 --> 00:02:30,160 bai bere mota eta funtzioa gorputz barneko horiek erabiltzeko izena. 44 00:02:30,160 --> 00:02:34,030 Plaza argumentu 1, int hartzen plazan, 45 00:02:34,030 --> 00:02:36,160 x izena emateko erabaki dut. 46 00:02:36,160 --> 00:02:40,760 Funtzioa aitorpena edo prototipoa amaitu da. 47 00:02:40,760 --> 00:02:43,320 Funtzioa gainerako inguruko kizkur giltza 48 00:02:43,320 --> 00:02:45,870 adierazteko funtzio-gorputzaren hasieran eta amaieran, 49 00:02:45,870 --> 00:02:48,320 funtzioa bera definizioa. 50 00:02:48,320 --> 00:02:50,300 Pretty simple funtzio bat da plazan. 51 00:02:50,300 --> 00:02:54,100 Bakarra lortu lerro 1, biderkatu x berak egin behar dugu geroztik. 52 00:02:54,100 --> 00:02:59,250 Hitza itzulera irteera balioa zehazten eta funtzioaren amaieran abiarazle. 53 00:02:59,250 --> 00:03:03,430 Karratu funtzioa erabiltzeko, input egokiak eman behar dugu 54 00:03:03,430 --> 00:03:05,310 eta kapturatu irteera. 55 00:03:05,310 --> 00:03:08,140 Hemen, egiten modu pare bat ikusiko duzu. 56 00:03:08,140 --> 00:03:13,600 Raw int batean gainditu ahal izango dugu, 6. Bezala, edo bezalako aldagai bat pasatzeko aukera izango dugu. 57 00:03:13,600 --> 00:03:15,700 Kontuan izan, aldi bakoitzean karratu deitzen diogu, 58 00:03:15,700 --> 00:03:18,330 aldagai batean irteera harrapatu dugu, eta, ondoren, inprimatu. 59 00:03:18,330 --> 00:03:22,690 Hala eta guztiz ere, ez dugu itzulera-balioa aldagai batean gorde eta gero inprimatzeko. 60 00:03:22,690 --> 00:03:27,090 Besterik ez izan dugu bidali zuzenean printf egiten dugun bezala dugunean plaza 10, 61 00:03:27,090 --> 00:03:30,580 baina hori ez dugu 10 plaza balioa bueltan sarbidea esan nahi du 62 00:03:30,580 --> 00:03:32,230 beste nonbait kodea. 63 00:03:32,230 --> 00:03:34,890 Dezagun beste adibide erraz bilatzeko. 64 00:03:34,890 --> 00:03:38,750 >> Oraingo honetan, 2 karroza laburbildu dugu elkarrekin, beraz, zer funtzio baten itxura ikusi ahal izango dugun 65 00:03:38,750 --> 00:03:41,220 denean lortu besterik ez 1 ordez 2 input. 66 00:03:41,220 --> 00:03:43,950 Ikusten duzun bezala, ez da askoz ere desberdinak. 67 00:03:43,950 --> 00:03:47,330 Guztiak egiten dugu 2. Argumentua, izeneko b mugikor bat gehitu, 68 00:03:47,330 --> 00:03:51,820 koma baten bidez bereizteko lehen argumentua argumentu zerrenda, karroza. 69 00:03:51,820 --> 00:03:55,550 Beraz, gure plaza eta batura funtzio nahiko erraz ulertzeko 70 00:03:55,550 --> 00:03:58,930 Oraindik dutelako duzula math klasean ikusi aurretik funtzio baliokidea. 71 00:03:58,930 --> 00:04:01,610 Orain, apur bat desberdina da, funtzio bat begiratu. 72 00:04:01,610 --> 00:04:04,620 Balio bat itzuli ordez, egoera bat aldatzen da. 73 00:04:04,620 --> 00:04:07,260 Hau da, albo-efektu bat izatea bezala ezagutzen da. 74 00:04:07,260 --> 00:04:10,750 Programa honetan, printf_fudd_style funtzioa 75 00:04:10,750 --> 00:04:13,410 itzulera mota bat ikusi ez dugun, void aurretik. 76 00:04:13,410 --> 00:04:16,730 >> Void erabiltzen da funtzio bat ez du ezer esan. 77 00:04:16,730 --> 00:04:19,410 Mota void aldagai ez daude, 78 00:04:19,410 --> 00:04:22,760 beraz, bada zerbait itzuli printf_fudd_style bezalako funtzio bat saiatu behar baduzu, 79 00:04:22,760 --> 00:04:24,290 konpilatzailea izango duzu Yell. 80 00:04:24,290 --> 00:04:29,390 Printf_fudd_style Barnealdean, berriz, funtzionatzen duten, oraindik ere lan egiten ikusiko dugu, 81 00:04:29,390 --> 00:04:31,890 hain zuzen ere, Rs guztiak modura Ws 82 00:04:31,890 --> 00:04:36,380 funtzioaren puntu kate aldatu da, eta, ondoren, inprimatu pantailan, 83 00:04:36,380 --> 00:04:39,400 Programaren egoera aldatu emaitza itzuli ordez. 84 00:04:39,400 --> 00:04:43,700 Funtzio hau erabiltzea oso gure plaza eta batura funtzioak erabiliz bezalakoa da, 85 00:04:43,700 --> 00:04:46,950 aldagai batean gorde emaitza ez dugu izan ezik edo gainditu off beste funtzio 86 00:04:46,950 --> 00:04:49,520 emaitza ez hitz egiten da. 87 00:04:49,520 --> 00:04:53,180 Beraz, konpilatu eta exekutatu dugu gure Elmer Fudd programa, 88 00:04:53,180 --> 00:04:56,970 "rabbit rascally duzu!" ikusiko duzu lortzen eskubidea eraldatu 89 00:04:56,970 --> 00:04:58,730 "Wabbit wascally duzu!" 90 00:04:58,730 --> 00:05:02,250 >> Azkenik, 1 eztabaidatzen merezi funtzioa 91 00:05:02,250 --> 00:05:06,810 Nik geroztik egin da inoiz idatzi duzun bakoitzean C programa erabiliz, nagusia. 92 00:05:06,810 --> 00:05:09,450 Main askoz ere beste edozein bezalako funtzio bat da. 93 00:05:09,450 --> 00:05:13,580 Handia lortu bueltan mota, izena, argumentuak zerrenda bat, eta gorputz bat. 94 00:05:13,580 --> 00:05:16,110 Nagusia itzulera mota da beti int 95 00:05:16,110 --> 00:05:19,120 eta int hau programaren egoera komunikatzeko erabiltzen denean bukatzen da. 96 00:05:19,120 --> 00:05:23,360 >> Ez behar bezala exekutatu, edo ez hasieran amaituko errore bat delako? 97 00:05:23,360 --> 00:05:26,390 Zero Itzulera run arrakasta adierazten du, 98 00:05:26,390 --> 00:05:29,510 eta ez-zero balioa edozein itzuli errore bat adierazten du. 99 00:05:29,510 --> 00:05:31,950 Programa mota idazten ari zaren arabera, 100 00:05:31,950 --> 00:05:34,960 kodeak ezberdinak itzuli akats hainbat lagungarri izan daiteke 101 00:05:34,960 --> 00:05:37,210 zure programa erabiltzen duten pertsonen beranduago. 102 00:05:37,210 --> 00:05:40,220 Sare argumentu apur bat zailagoa da. 103 00:05:40,220 --> 00:05:42,150 >> Argumentu zerrenda hutsik izan daitezke, 104 00:05:42,150 --> 00:05:45,330 adierazi void idatziz parentesi arteko 105 00:05:45,330 --> 00:05:50,220 int eta char * s array bat: edo zerrenda 2 argumentu izan ditzake. 106 00:05:50,220 --> 00:05:52,820 Hauek erabiltzen dira, zure programa nahi erabili 107 00:05:52,820 --> 00:05:56,490 komando-lerroan gainditu argumentuak programa deitutakoan denean. 108 00:05:56,490 --> 00:05:59,690 Int argumentua da normalean izeneko argc 109 00:05:59,690 --> 00:06:03,300 eta berdintasuna char * array luzera, argv gisa ezaguna da. 110 00:06:03,300 --> 00:06:07,080 Argv badu programa horretan komando-lerroa gainditu argumentuak. 111 00:06:07,080 --> 00:06:11,440 Laburrak beste, aldagai horiek nola erabili xehetasun gehiago buruz hitz egin dugu. 112 00:06:11,440 --> 00:06:15,220 Oraingoz, sentitzen free nagusia modu bai deklaratu ahal izango dituzu. 113 00:06:15,220 --> 00:06:19,410 Normalean aukeratu dut idazteko modu laburragoak, ez dute argumenturik, ahal denean. 114 00:06:19,410 --> 00:06:22,230 >> Orain nola egiten diren badakiela funtzioak idazteko, 115 00:06:22,230 --> 00:06:25,030 ondo Oraindik duzu zure handiagoak, konplexuagoak programak garatzeko bidean. 116 00:06:25,030 --> 00:06:29,740 Nire izena Nate Hardison da. Hau CS50 da.