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 वे भी प्रक्रियाओं, सबरूटीन्स, और subprograms के रूप में जाना जाता है, 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 जब आप printf का उपयोग कर स्क्रीन सामान लिखने 8 00:00:26,770 --> 00:00:29,380 आप वास्तव में एक printf बुलाया समारोह का उपयोग कर रहे हैं. 9 00:00:29,380 --> 00:00:33,760 इसी तरह, GetInt और GetString कार्य करता है कि CS50 आप के लिए प्रदान कर रहे हैं. 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 इनपुट के वर्ग computes. 32 00:01:47,570 --> 00:01:49,490 चलो यह के वाक्यविन्यास काटना. 33 00:01:49,490 --> 00:01:51,860 पहला शब्द आप समारोह में देख, int 34 00:01:51,860 --> 00:01:57,460 समारोह का रिटर्न प्रकार निर्दिष्ट है कि समारोह के उत्पादन के सी प्रकार. 35 00:01:57,460 --> 00:02:00,370 इस समारोह प्रकार int के साथ एक मूल्य का उत्पादन होगा. 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 यह नाम इस समारोह में shazam या booyah शांत हो सकता है, 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 तर्क, int लेता है, 45 00:02:34,030 --> 00:02:36,160 जो मैं नाम x देने का फैसला किया. 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 हम एक कच्चे int में पारित करने के लिए, 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 हम सिर्फ यह सीधे भेज सकते हैं printf के लिए के रूप में हम करते हैं जब हम 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 जब यह सिर्फ 1 के बजाय 2 जानकारी मिल गया है. 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 इस कार्यक्रम में, printf_fudd_style समारोह 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 इसलिए यदि आप कुछ printf_fudd_style तरह एक समारोह से लौटने की कोशिश करो, 79 00:04:22,760 --> 00:04:24,290 संकलक तुम पर चिल्लाना होगा. 80 00:04:24,290 --> 00:04:29,390 Printf_fudd_style अंदर, हम देखते हैं कि जब समारोह अभी भी एक काम करता है, 81 00:04:29,390 --> 00:04:31,890 अर्थात्, Ws सभी रुपये स्विचन, 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 "आप wascally wabbit!" 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 मुख्य का रिटर्न प्रकार हमेशा एक int है, 95 00:05:16,110 --> 00:05:19,120 और इस int के लिए कार्यक्रम की स्थिति संवाद जब यह खत्म करने के लिए प्रयोग किया जाता है. 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 एक int और: चार * एस के एक सरणी या सूची 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 int तर्क आम तौर पर argc कहा जाता है, 109 00:05:59,690 --> 00:06:03,300 और यह चार * सरणी के बराबर लंबाई, argv के रूप में जाना जाता है. 110 00:06:03,300 --> 00:06:07,080 Argv कमांड लाइन कार्यक्रम में पारित तर्क शामिल हैं. 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 मेरा नाम नैट Hardison है. यह CS50 है.