डौग लॉयड: ठीक है।
तो अब एक से निपटने वास्तव में बड़ा विषय है, कार्य करता है।
अब तक पाठ्यक्रम में, सब हम लिख रहे हैं कि कार्यक्रमों
मुख्य के अंदर लिखा गया है।
वे बहुत साधारण प्रोग्राम कर रहे हैं।
आप इन सब की जरूरत नहीं है शाखाओं और बातों पर जा रहा है।
हम सिर्फ यह सब फिट कर सकते हैं मुख्य के अंदर और यह
बहुत भारी नहीं मिलता है।
लेकिन निश्चित रूप में चला जाता है और आप कार्यक्रम विकसित करने के लिए शुरू के रूप में
स्वतंत्र रूप से, वे शायद जा रहे हैं 10 की तुलना में बहुत अधिक पाने के लिए शुरू करने के लिए
या 15 लाइनों।
आप सैकड़ों या हजारों मिल सकता है या दसियों कोड की लाइनों के हजारों की।
और यह सच नहीं है एक सोचा था कि पागल।
जैसे, यह शायद एक अच्छा विचार नहीं है मुख्य के अंदर सब कुछ रखने के लिए।
यह पता लगाने के लिए थोड़ा मुश्किल प्राप्त कर सकते हैं क्या आप यदि आप ऐसा करने के लिए देख रहे हैं।
>> सौभाग्य से, सी, हालांकि, और बहुत ज्यादा हर दूसरे प्रोग्रामिंग भाषा है कि
साथ काम हो सकता है, की अनुमति देता है हमें कार्यों लिखने के लिए।
और मैं सिर्फ करने के लिए जा रहा हूँ एक तरफ यहाँ एक त्वरित लेने के लिए
कार्यों का उल्लेख है कि कंप्यूटर विज्ञान के एक क्षेत्र।
और तुम पर उनमें से कई अधिक देखेंगे कोर्स के दौरान विभिन्न बिंदुओं
और आप पर जारी है।
जहां एक बहुत की है वहाँ एक ही शब्द के लिए समानार्थी शब्द।
इसलिए हम कार्यों कहते हैं।
लेकिन आप भी उन्हें सुन सकते हैं प्रक्रियाओं के रूप में जाना जाता है,
या तरीकों, विशेष रूप से, आप है, तो कभी किसी भी वस्तु उन्मुख प्रोग्रामिंग किया
before-- और चिंता मत करो अगर तुम नहीं, नहीं है तो
एक बड़ा deal-- लेकिन में लेखा परीक्षा उन्मुख भाषाओं
अक्सर कहा जाता तरीके हैं।
कभी कभी वे सबरूटीन्स कहते हैं।
लेकिन वे वास्तव में सभी के लिए देखें एक ही मूल विचार करने के लिए।
>> का यह विचार है कि क्या देखते हैं।
एक समारोह में क्या है?
वैसे एक समारोह वास्तव में है एक ब्लैक बॉक्स से ज्यादा कुछ नहीं।
शून्य का एक सेट है कि एक ब्लैक बॉक्स अधिक जानकारी और एक ही उत्पादन या।
तो उदाहरण के लिए, इस एक समारोह हो सकता है।
इस समारोह में बुलाया एक समारोह है।
और यह तीन आदानों ए, बी, और सी लेता है।
और कहा कि ब्लैक बॉक्स के अंदर है, हम यह होता है कि क्या वास्तव में नहीं पता है,
लेकिन यह जानकारी संसाधित करता है किसी तरह से और फिर इसे
इस मामले में एक ही उत्पादन, जेड देता है।
अब यह एक छोटे से बनाने के लिए कम सार है, हम
हम चाहते हैं कि शायद कह सकते हैं कहा जाता है एक समारोह है
कि तीन आदानों ए, बी लेता जोड़ने के लिए, और सी और किसी तरह से उत्पादन प्रक्रियाओं
ब्लैक बॉक्स के लिए अंदर एक ही उत्पादन का उत्पादन।
इस मामले में, तो अगर जोड़ने के 3, 6, और 7 लेता है।
कहीं न कहीं अंदर समारोह जोड़ने के लिए, हम करेंगे
उम्मीद उन्हें एक साथ जोड़े जाने के लिए उत्पादन, उत्पादन करने के लिए जो
3 प्लस 6 प्लस 7 या 16 है।
>> इसी तरह, आप नामक एक समारोह है दो आदानों, ए और बी लेता है कि mult,
किसी तरह ऐसे में उन प्रक्रियाओं उस समारोह का उत्पादन
दो आदानों का उत्पाद है।
दो आदानों एक साथ गुणा।
4 और 5, mult में पारित किया जा रहा कुछ है, हम उम्मीद करते हैं उत्पादन होता है
20 है।
क्यों हम यह एक ब्लैक बॉक्स कहते हैं?
खैर, हम नहीं लिख रहे हैं, तो अपने आप को जो कार्य
हम काफी एक बिट अब तक CS50 किया है।
हम, उदाहरण के लिए, प्रिंट च देखा है जो हम नहीं लिखा था कि एक समारोह है
अपने आप को, लेकिन हम सब समय का उपयोग करते हैं।
हम नहीं लिख रहे हैं कार्यों खुद को,
यह है कि कैसे हम वास्तव में पता करने की जरूरत नहीं है वास्तव में हुड के तहत लागू किया है।
>> तो उदाहरण के ब्लैक बॉक्स के लिए मैं बस, गुणा के लिए आप से पता चला
एक mult, ख हो सकता है defined-- और यह सिर्फ है
कुछ pseudocode-- हो सकता है उत्पादन एक बार ख के रूप में परिभाषित किया।
कि मतलब, सही है।
हम नामक एक समारोह है, तो दो आदानों लेता है कि mult।
हम उम्मीद करेंगे उत्पादन होता है कि होना दो आदानों, एक साथ गुणा
एक बार बी।
लेकिन mult भी हो सकता है इस तरह से कार्यान्वित किया,
हम एक काउंटर चर करने के लिए है 0 करने के लिए mult के अंदर तैयार हो जाओ।
और फिर हम इस प्रक्रिया को दोहराने ख बार मुकाबला करने के लिए एक जोड़ें।
उदाहरण के लिए, हम से 3 ए गुणा 5 ब, हम 0 करने के लिए काउंटर सेट कह सकते हैं,
पांच बार दोहराने काउंटर करने के लिए 3 जोड़ें।
इसलिए हम 0 पर शुरू करने और फिर हम करते हैं इस पांच बार 3, 6, 9, 12, 15।
यह एक ही परिणाम है। हम अभी भी मिल 3 से 5 बार बस
कार्यान्वयन अलग है।
>> यही कारण है कि हम क्या मतलब है हम एक ब्लैक बॉक्स का कहना है कि जब।
यह सिर्फ हम वास्तव में परवाह नहीं है इसका मतलब यह हुड के तहत कार्यान्वित किया है कि कैसे
के रूप में लंबे समय तक उत्पादन हम क्या उम्मीद के रूप में है।
वास्तव में, कि अनुबंध का हिस्सा है की विशेष रूप से, कार्यों का उपयोग
दूसरों लिखने कि कार्य करता है।
व्यवहार हमेशा जा रहा है अप्रत्याशित, ठेठ होने के लिए
समारोह के नाम पर आधारित है।
यह सच है और यही कारण है महत्वपूर्ण है कि आप कार्यों लिखने जब
या जब अन्य लोगों को लिखने आप का उपयोग हो सकता है कि काम करता है,
उन कार्यों है कि स्पष्ट है, अपेक्षाकृत स्पष्ट नाम,
और अच्छी तरह से प्रलेखित रहे हैं।
जो निश्चित रूप से मामला है प्रिंट च जैसे समारोह के लिए।
>> तो क्यों न हम कार्यों का उपयोग करते हैं?
वैसे मुझे लगता है कि हम लिखते हैं, पहले कहा मुख्य बातों के अंदर हमारे कोड के सभी
वास्तव में बोझिल प्राप्त कर सकते हैं और वास्तव में जटिल है।
कार्य हमें क्षमता की अनुमति चीजों को व्यवस्थित करने और तोड़ने के लिए
एक बहुत ही जटिल समस्या में एक बहुत अधिक प्रबंधनीय उप भागों।
कार्य भी करने के लिए हमें की अनुमति कोडिंग प्रक्रिया को आसान बनाने में।
यह एक 10 डिबग करने के लिए एक बहुत आसान है एक 100 लाइन बनाम लाइन समारोह
समारोह या 1,000 लाइन समारोह।
हम केवल डिबग करने के लिए है, तो एक समय में छोटे टुकड़े,
या, समय पर छोटे-छोटे टुकड़ों में लिखने यह है कि प्रोग्रामिंग अनुभव करता है
कहीं बेहतर।
उसके बारे में मुझ पर भरोसा करें।
>> अन्त में, हम कार्यों लिखने यदि हम उन विभिन्न भागों का पुन: उपयोग कर सकते हैं।
कार्य से साफ किया जा सकता है।
वे में इस्तेमाल किया जा सकता एक प्रोग्राम या कोई अन्य।
आप पहले से ही लिखा है समारोह, तुम सब
कि कार्यक्रम बता क्या करने की जरूरत है जहां कि समारोह खोजने के लिए।
हम रीसाइक्लिंग और उपयोग किया गया है के लिए 40 साल से अधिक च प्रिंट।
लेकिन यह केवल एक बार लिखा गया था।
बहुत उपयोगी, सही है।
ठीक है।
इसलिए कार्यों महान हैं।
हम जानते हैं कि।
अब देखते हैं कि उन्हें लेखन शुरू करते हैं।
हो रही शुरू करते हैं उन्हें हमारे कार्यक्रमों में।
आदेश में, पहले ऐसा करने के लिए हम क्या बात समारोह की घोषणा है।
आप एक समारोह की घोषणा करते हैं क्या आप मूल रूप से कर रहे हैं
संकलक कह रही है, अरे, तुम बस इतना पता है,
मैं लिख होने जा रहा हूँ पर बाद में एक समारोह
और यहाँ यह की तरह देखने के लिए क्या हो रहा है।
इस का कारण है compilers कर सकते हैं क्योंकि
यदि कुछ अजीब बातें करते हैं वे प्रतीकों का एक सेट देखना
वे से परिचित नहीं हैं कि।
तो हम बस संकलक दे सिर, मैं एक समारोह पैदा कर रहा हूँ
और यह यह करने के लिए जा रहा है।
समारोह घोषणाओं आम तौर पर यदि आप एक तरह से अपने कोड का आयोजन कर रहे
दूसरों के लिए सक्षम हो जाएगा कि समझने के लिए और का उपयोग करना,
आप आम तौर पर सभी डाल करना चाहते हैं अपने समारोह घोषणाओं की
अपने कोड के ऊपर से ही, सही आप भी मुख्य लेखन शुरू करने से पहले।
और आसानी से, वहाँ है एक बहुत ही मानक फार्म
हर समारोह घोषणा है कि इस प्रकार।
वे सब बहुत ज्यादा इस तरह दिखेगा।
तीन भागों में एक समारोह के लिए कर रहे हैं घोषणा, वापसी प्रकार, नाम,
और तर्क सूची।
>> अब वापसी प्रकार किस तरह का है चर समारोह उत्पादन होगा।
तो उदाहरण के लिए, यदि हम वापस एक थिंक दो गुणा करने के लिए पहले मिनट
नंबरों समारोह, अगर हम क्या उम्मीद करते हैं हम एक पूर्णांक द्वारा एक पूर्णांक गुणा
उत्पादन होगा शायद एक पूर्णांक, सही है।
गुणा दो पूर्णांकों साथ में, आप एक पूर्णांक मिलता है।
इस बात का रिटर्न प्रकार तो समारोह पूर्णांक होगा।
नाम आप क्या चाहते है अपने कार्य को कॉल करने के लिए।
यह शायद कम से कम महत्वपूर्ण है समारोह घोषणा का हिस्सा है,
कार्यक्षमता के संदर्भ में।
लेकिन वास्तव में शायद एक है सबसे महत्वपूर्ण भागों में
मामले में समारोह घोषणा की जानने के समारोह वास्तव में क्या
करता है।
आप अपने कार्य या च जी के नाम हैं या एच या रहस्य या ऐसा कुछ,
आप शायद पाने के लिए जा रहे हैं एक छोटी सी कोशिश कर गच्चा
उन कार्यों क्या कर याद करने के लिए।
तो इसे देने के लिए महत्वपूर्ण है अपने समारोह के सार्थक नाम।
>> अन्त में, तर्क सूची है अल्पविराम अलग सूची
अपने कार्य करने के लिए सभी आदानों की, जिनमें से प्रत्येक एक प्रकार है और एक नाम है।
इतना ही नहीं, आप की क्या ज़रूरत है चर की किस प्रकार निर्दिष्ट
समारोह उत्पादन होगा, आप भी निर्दिष्ट करना चाहते हैं
किस प्रकार और चर के प्रकार समारोह जानकारी के रूप में स्वीकार किया जाएगा।
तो चलो यहाँ एक उदाहरण करते हैं।
चलो बस एक नज़र रखना एक और अधिक ठोस एक पर।
तो यहाँ एक समारोह का एक उदाहरण है एक समारोह के लिए घोषणा कि
एक साथ दो पूर्णांकों जोड़ना होगा।
दो पूर्णांकों का योग करने के लिए जा रहा है एक पूर्णांक के रूप में अच्छी तरह से हो कि हम बस के रूप में
पर चर्चा की।
और तो वापसी प्रकार, यहां हरे रंग में, पूर्णांक होगा।
यही कारण है कि सिर्फ दो ints जोड़ने हमें बताता है कि दिन के अंत में, करने के लिए जा रहा है,
उत्पादन, या इसे वापस थूक हमें बाहर, एक पूर्णांक।
इस समारोह में हम क्या करता है, यह देखते हुए यह एक सार्थक नाम देना चाहते हैं।
दो ints लगता जोड़ें उपयुक्त हो, पर विचार
हम सामग्री के रूप में दो पूर्णांकों ले जा रहे हैं और उम्मीद है कि उन्हें एक साथ जोड़ने।
यह एक बोझिल का एक सा हो सकता है नाम और स्पष्ट रूप से इस समारोह
शायद जरूरी नहीं है हम इसके बाद से
ऑपरेटर आप से याद करते हैं, तो हमारे पहले से ऑपरेटरों की चर्चा।
लेकिन चलो बस की खातिर हम कहते हैं इस समारोह में उपयोगी है कि तर्क
और इसलिए हम इसे दो ints जोड़ने फोन करता हूँ।
अन्त में, इस समारोह में दो आदानों लेता है।
जिनमें से प्रत्येक एक पूर्णांक है।
इसलिए हम इस अल्पविराम है आदानों की अलग सूची।
अब हम आम तौर पर करना चाहते हैं उनमें से प्रत्येक को एक नाम देना
वे इस्तेमाल किया जा सकता है, ताकि समारोह के भीतर।
नामों बहुत महत्वपूर्ण नहीं हैं।
>> इस मामले में, हम जरूरी नहीं है उनमें से जुड़े किसी भी अर्थ नहीं है।
तो हम बस एक और ख उन्हें फोन कर सकते हैं।
यही कारण है कि पूरी तरह से ठीक है।
यदि फिर भी, आप पाते हैं एक स्थिति में अपने आप को
जहां चर के नाम वास्तव में महत्वपूर्ण हो सकता है,
आप उन्हें फोन करना चाहते हो सकता है ए और बी के अलावा अन्य कुछ
उन्हें और अधिक कुछ देना प्रतीकात्मक सार्थक।
लेकिन इस मामले में, हम वास्तव में नहीं है समारोह के बारे में सब कुछ पता है।
हम सिर्फ दो पूर्णांकों जोड़ना चाहते हैं।
तो हम सिर्फ फोन करता हूँ उन पूर्णांकों ए और बी।
यही कारण है कि एक उदाहरण है।
>> आप एक दूसरे से नहीं लेते क्यों इस एक के बारे में सोचना,
कैसे आप एक समारोह में लिखना होगा एक समारोह के लिए घोषणा कि
दो चल बिन्दु संख्या गुणा?
आप क्या एक याद है चल बिन्दु संख्या है?
क्या इस समारोह होगा घोषणा की तरह लग रही है?
मैं वास्तव में आप वीडियो को थामने की सिफारिश यहाँ और आप की जरूरत है कि कितना समय लगेगा।
क्या इस बारे में सोचो समारोह घोषणा हो सकता है?
वापसी प्रकार क्या होगा?
एक सार्थक नाम क्या होगा?
आदानों क्या होगा?
तो क्यों आप यहाँ वीडियो को थामने के लिए नहीं है और लिखने-अप एक समारोह घोषणा
गुणा होता है कि एक समारोह के लिए एक साथ दो चल बिन्दु संख्या।
उम्मीद है कि आप वीडियो रुका हुआ है।
>> तो चलो एक उदाहरण पर एक नजर डालते हैं एक संभावित घोषणा की।
Mult दो reals, नाव Y एक्स फ्लोट फ्लोट।
दो के उत्पाद दशमलव संख्याएं,
जो याद कैसे कर रहे हैं हम वास्तविक संख्या का प्रतिनिधित्व
या सी में दशमलव मूल्यों के साथ नंबर, एक चल बिन्दु संख्या में होने जा रहा है।
आप एक गुणा जब एक दशमलव द्वारा दशमलव,
आप शायद एक दशमलव पाने के लिए जा रहे हैं।
आप इसे एक प्रासंगिक नाम देना चाहते हैं।
दो reals गुणा ठीक लगता है।
लेकिन अगर आप वास्तव में यह कह सकते हैं mult दो मंगाई, या mult मंगाई।
यह के रूप में के रूप में लंबे समय तक ऐसा कुछ भी, करने के लिए कुछ वास्तविक अर्थ क्या दिया
इस ब्लैक बॉक्स करने जा रहा था।
और फिर, इस मामले में, हम नहीं करते कोई अर्थ संलग्न करने लगते हैं
के नाम करने के लिए हम में से गुजर रहे हैं चर,
तो हम सिर्फ उन्हें एक्स और वाई कहते हैं।
आप उन्हें कुछ फोन अब अगर वरना, कि पूरी तरह से ठीक है।
वास्तव में, अगर तुम किया इस घोषणा के बजाय
बजाय युगल का उपयोग कर यदि आपको याद है की, तैरता
युगल एक अलग हैं जिस तरह से करने के लिए और अधिक ठीक
वास्तविक संख्या को निर्दिष्ट या बिंदु चर चल।
वह भी पूरी तरह से ठीक है।
या तो उन में से एक ठीक हो जाएगा।
वास्तव में, वहाँ कई हैं विभिन्न संयोजनों
तरीके से इस समारोह की घोषणा करने के लिए।
लेकिन इन दो बहुत अच्छा कर रहे हैं।
हम जानते हैं कि बहुत अच्छी बात है, एक समारोह में घोषित किया है।
हम क्या यह संकलक बता दिया है हम क्या कर रही हो जा रहे है।
अब देखते हैं कि वास्तव में उस समारोह लिख दें।
चलो इसे एक परिभाषा दे, तो यह है कि ब्लैक बॉक्स के अंदर
उम्मीद के मुताबिक व्यवहार हो रहा है।
वास्तव में, हम दो असली बढ़ रहे हैं एक साथ नंबर, या संख्याएँ जोड़ना
एक साथ, या जो भी कर रही है कि हम क्या करने के लिए हमारे समारोह में पूछा।
>> वास्तव में तो, चलो कोशिश करते हैं और परिभाषित करते हैं दो reals गुणा जो हम सिर्फ
एक दूसरे के बारे में पहले बात की थी।
की अब शुरुआत एक समारोह परिभाषा
लगभग वैसा ही लग रहा है एक समारोह में घोषणा के रूप में।
मैं यहाँ उन दोनों के लिए है।
शीर्ष पर समारोह घोषणा है, प्रकार, नाम, अल्पविराम से अलग तर्क
सूची, अर्धविराम।
अर्धविराम इंगित करता है कि कि एक समारोह में घोषणा है।
समारोह की शुरुआत परिभाषा लगभग ठीक लग रहा है
एक ही, प्रकार, नाम, अल्पविराम से अलग तर्क सूची, कोई अर्धविराम,
घुंघराले ब्रेस खुला।
खुले घुंघराले गले लगा, बस के रूप में हम मुख्य साथ कर दिया गया है
हम अब कर रहे हैं कि इसका मतलब है परिभाषित करने के लिए शुरुआत
क्या ब्लैक बॉक्स के अंदर होता है कि हम mult दो reals बुलाने का फैसला किया है।
यहां इसे लागू करने के लिए एक ही रास्ता है।
हम एक नया घोषित कर सकता है, कह सकते हैं प्रकार नाव बुलाया उत्पाद के चर
और कहा कि चर आवंटित मूल्य एक्स बार y करने के लिए।
और फिर उत्पाद वापसी।
वापसी यहाँ क्या मतलब है।
खैर वापसी रास्ता है हम जानते हैं कि कैसे है का संकेत
हम उत्पादन बाहर वापस गुजर रहे हैं।
इसलिए जैसे ही है, कुछ वापस, इस ब्लैक बॉक्स का उत्पादन होता है।
आप इसे कैसे करते हैं तो वह है।
यहां इसे लागू करने के लिए एक और तरीका है।
हम बस y एक्स बार लौट सकता है।
एक्स एक नाव है।
y एक नाव है।
बार एक्स तो y भी एक नाव है।
हम भी करने की जरूरत नहीं है एक और चर पैदा करते हैं।
तो यह है कि एक अलग तरह से करने के लिए है ठीक उसी ब्लैक बॉक्स को लागू करने।
>> अब एक क्षण ले, फिर वीडियो को थामने,
और, दो ints जोड़ने के लिए प्रयास करें और परिभाषित जो अन्य समारोह है कि हम
एक पल पहले के बारे में बात की थी।
यहाँ फिर से, मैं इस समारोह में डाल दिया है घोषणा, और इसलिए अर्धविराम,
और एक खुले घुंघराले ब्रेस और एक बंद घुंघराले
हम भरना होगा जहां ब्रेस इंगित करने के लिए की सामग्री में, दो ints जोड़ने
हम विशेष रूप से परिभाषित है, ताकि ब्लैक बॉक्स के अंदर व्यवहार।
तो वीडियो को थामने।
और के रूप में ज्यादा समय ले लो आप कोशिश करते हैं और परिभाषित करने की जरूरत
के एक कार्यान्वयन दो ints जोड़ने के लिए, इस तरह के उस समारोह एक मूल्य outputs जब,
यह वास्तव में, करता है, वापसी दो आदानों की राशि।
तो सिर्फ पिछले उदाहरण की तरह, कई अलग अलग तरीके हैं
आप लागू कर सकता है कि दो ints जोड़ें।
यहां एक है।
यहां नारंगी में में मैं बस कुछ comments-- था
मैं बस कुछ जोड़ दिया है टिप्पणियों से संकेत मिलता है
क्या कोड के प्रत्येक लाइन पर हो रहा है।
तो मैं एक चर घोषित int प्रकार का योग कहा जाता है।
मैं योग एक प्लस बी के बराबर होती है कहना।
हम वास्तव में कर रहे हैं कि जहां काम एक जोड़ने और एक साथ बी।
और मैं योग वापसी।
और उस अर्थ क्योंकि बनाता है योग प्रकार पूर्णांक के एक चर रहा है।
और डेटा यह है कि प्रकार क्या है समारोह में यह उत्पादन करने के लिए जा रहा है मुझसे कहता है?
इंट।
इसलिए मुझे लगता है, योग लौट रहा हूँ जो एक पूर्णांक चर रहा है।
और उस अर्थ है कि हम क्या किया है दिया बनाता है घोषित और हमारे समारोह में परिभाषित
ऐसा करने के लिए।
>> अब आप भी परिभाषित कर सकते हैं समारोह में इस तरह से,
पूर्णांक राशि है कि छोड़ b-- एक से अधिक के बराबर होती है step-- पहले और उसके बाद, योग वापसी।
अब आप भी हो सकता था यह इस तरह से कार्यान्वित
जो मैं अत्यधिक की सिफारिश नहीं है।
इस एक के लिए बुरा शैली है बात और वास्तव में बुरा डिजाइन,
लेकिन यह तथ्य है, काम करती है।
आप पूर्णांक है जो इस कोड, ले, तो बुरा योजक डॉट ग जोड़ने के लिए, और इसका इस्तेमाल।
यह वास्तव में जोड़ नहीं है एक साथ दो पूर्णांकों।
यह एक बहुत ही गरीब कार्यान्वयन है इस विशेष व्यवहार की।
लेकिन यह काम करता है।
इसे उदाहरण देकर स्पष्ट करने के लिए बस यहाँ है हम वास्तव में नहीं है कि बिंदु
अंदर होता है परवाह लंबे समय के रूप में ब्लैक बॉक्स,
यह हम उम्मीद करते हैं कि उत्पादन किया है के रूप में।
यह एक खराब डिजाइन ब्लैक बॉक्स है।
लेकिन अंत में दिन, यह करता है अभी भी उत्पादन एक प्लस बी की राशि।
ठीक है।
इसलिए हम कार्यों की घोषणा की है।
और हम समारोह में परिभाषित किया गया है।
तो यह है कि वास्तव में अच्छा है।
अब के कार्यों का उपयोग करने के लिए शुरू करते हैं कि हम घोषित कर दिया है और हम परिभाषित किया है।
यह वास्तव में एक function-- कॉल करने के लिए आप सब करने की ज़रूरत सुंदर easy--
उचित तर्क इसे पारित है, डेटा प्रकार के तर्कों
यह उम्मीद है कि, और उसके बाद वापसी आवंटित
उस समारोह का मूल्य और है- बहाना me--
उस समारोह की मान आवंटित सही प्रकार के बारे में कुछ करने के लिए।
>> तो चलो पर एक नज़र है एक फ़ाइल में इस में अभ्यास
कहा जाता योजक 1 डॉट सी, जो मैं अपने CS50 आईडीई में है।
तो यहाँ योजक 1 डॉट सी है।
शुरुआत में आप मेरे पास देखना मेरी भी शामिल है, पौंड, शामिल
मानक कब, और CS50 डॉट एच।
और फिर मैं अपने समारोह घोषणा की है।
मैं कर रहा हूँ, जहां यह है मैं कर रहा हूँ संकलक कह रही
एक लेखन किया जा रहा कहा जाता समारोह दो ints जोड़ें।
यह उत्पादन एक करने के लिए जा रहा है पूर्णांक प्रकार चर।
यही कारण है कि इस भाग यहीं क्या है।
और फिर मैं यह एक करने के लिए दो आदानों है और बी, जिनमें से प्रत्येक एक पूर्णांक है।
मुख्य के अंदर, मैं के लिए उपयोगकर्ता पूछने कह कर इनपुट, मुझे एक पूर्णांक दे।
और वे भूल जाने के लिए प्रेरित कर रहे हैं एक समारोह है जो पूर्णांक, कि
CS50 पुस्तकालय में शामिल है।
और उस में जमा हो जाता है एक्स, एक पूर्णांक चर।
>> तो फिर हम एक और पूर्णांक के लिए उन्हें संकेत।
हम एक और पूर्णांक मिल और y में उस दुकान।
और फिर, यहाँ लाइन पर 28 है, जहां हम अपने समारोह फोन करना।
हम, पूर्णांक Z बराबरी कह रहे हैं 2 ints एक्स अल्पविराम Y जोड़ें।
यह समझ में आता क्यों आप देखते हैं?
एक्स एक पूर्णांक प्रकार चर रहा है और Y एक पूर्णांक प्रकार चर रहा है।
तो यह अच्छी बात है।
क्या हमारे समारोह के साथ कि मतलब लाइन 17 पर घोषणा की तरह लग रहा है।
अल्पविराम से अलग इनपुट सूची दो पूर्णांकों, ए और बी की उम्मीद है।
उस मामले में, हम कॉल कर सकते हैं उन्हें जो कुछ भी हम चाहते हैं।
यह सिर्फ दो पूर्णांकों की उम्मीद है।
और एक्स एक पूर्णांक है और y एक पूर्णांक है।
यह काम करता है।
>> और हम उस समारोह जा रहा है पता उत्पादन करने के लिए एक पूर्णांक के रूप में अच्छी तरह से।
और इसलिए हम भंडारण कर रहे हैं समारोह के उत्पादन,
एक पूर्णांक प्रकार में, दो ints जोड़ने चर, हम जेड बुला रहे हैं।
और फिर हम की राशि कह सकते हैं प्रतिशत मैं और प्रतिशत मैं मैं प्रतिशत है।
एक्स, वाई और जेड क्रमशः उन प्रतिशत मैं के दशक में भरता रहा।
की परिभाषा क्या है दो ints की तरह लग जोड़ सकते हैं?
यह बहुत आसान है।
यह लोगों में से एक है हम बस, एक दूसरी पहले देखा था
पूर्णांक राशि एक प्लस बी वापसी राशि के बराबर होती है।
यह काम करता है?
फाइल को बचाने करते हैं।
और फिर नीचे यहाँ अपने टर्मिनल पर मैं योजक 1 बनाने के लिए जा रहा हूँ
और मैं अपने स्क्रीन साफ।
मैं क्योंकि मुझे पता है में ज़ूम करने के लिए जा रहा हूँ यह देखने के लिए थोड़ा मुश्किल है।
>> इसलिए हम योजक 1 के रूप में इस कार्यक्रम को संकलित।
इसलिए हम डॉट स्लेश योजक 1 कर सकते हैं।
10 मुझे एक पूर्णांक दीजिए।
20 मुझे एक और पूर्णांक दीजिए।
10 और 20 का योग 30 है।
इसलिए हम एक सफल समारोह फोन कर दिया।
आप नकारात्मक फिर से समारोह चला सकते हैं 10, नकारात्मक 10 और 17 के 17 योग 7 है।
इस समारोह में काम करता है।
यह व्यवहार किया है हम यह उम्मीद है कि।
और इसलिए हम एक सफल बनाया है समारोह, परिभाषा, घोषणा,
और एक सफल समारोह कॉल।
युगल विविध कार्यों के बारे में अंक
हम इस खंड समाप्त करने से पहले।
से याद है हमारे डेटा प्रकार की चर्चा है,
इससे पहले, कार्यों कि कभी कभी कोई आदानों ले जा सकते हैं।
यदि यह मामला है, हम समारोह की घोषणा
एक शून्य तर्क सूची होने के रूप में।
आप क्या याद है सबसे आम समारोह
हम अब तक लेता है कि देखा है एक शून्य तर्क सूची है?
यह मुख्य है।
कभी-कभी यह भी है कि समारोह में याद करते हैं वास्तव में एक उत्पादन की जरूरत नहीं है।
उस मामले में, हम समारोह की घोषणा एक शून्य वापसी प्रकार होने के रूप में।
के द्वारा इस खंड समाप्त करना चाहूंगा एक अभ्यास समस्या से निपटने।
>> तो यहाँ से बाहर रखी समस्या है।
मैं तुम्हें एक समारोह लिखना चाहते हैं वैध त्रिकोण कहा जाता है।
इस समारोह में क्या करना चाहिए तीन वास्तविक संख्या ले जाता है
कि तीन की लंबाई का प्रतिनिधित्व उसके मापदंडों के रूप में दोनों पक्षों के त्रिकोण,
या अपने तर्क, या अपने समानार्थी शब्दों का एक और सेट inputs--
आप मुठभेड़ हो सकता है कि।
यह कार्य करना चाहिए उत्पादन या तो सही है या गलत
के आधार पर उन तीन लंबाई है कि क्या एक त्रिकोण बनाने में सक्षम हैं।
आप डेटा प्रकार याद है कि हम सही है या गलत संकेत किया?
अब आप यह कैसे लागू करते हैं?
वैसे एक जोड़े हैं पता है त्रिकोण के संबंध में नियमों की
कि वास्तव में पता करने के लिए उपयोगी होते हैं।
एक त्रिकोण ही हो सकता है सकारात्मक लंबाई के साथ पक्षों।
यह समझ आता है।
तुम्हें शायद ओह, कह रहे हैं।
दूसरी बात यह नोट करने के लिए हालांकि, योग यह है कि
किसी की लंबाई की त्रिकोण के दो पहलू
अधिक से अधिक हो गया है तीसरे पक्ष की लंबाई।
यही कारण है कि वास्तव में सच है।
आप पक्षों 1 के एक त्रिकोण नहीं हो सकता उदाहरण के लिए 2 और 4, 1 प्लस 2 क्योंकि
4 से अधिक नहीं है।
उन तो नियम हैं कि निर्धारित तीन या नहीं,
आदानों क़यास एक त्रिकोण बना सकते हैं।
इसलिए मिनट के एक जोड़े को ले और घोषणा और फिर परिभाषित
वैध नामक इस समारोह त्रिकोण है, इस तरह यह है कि वास्तव में
यहाँ निर्दिष्ट व्यवहार किया है।
>> यह होगा उत्पादन सच उन तीन पक्षों यदि एक त्रिकोण शामिल करने में सक्षम हैं
और झूठे अन्यथा आप कैसे किया देखने के लिए तैयार हैं?
यहाँ एक कार्यान्वयन है के वैध त्रिकोण।
यह केवल एक ही नहीं है।
तुम्हारा थोड़ा भिन्न हो सकता है।
लेकिन यह एक तथ्य में है, करता है, हम उम्मीद करते हैं कि व्यवहार।
हम पर हमारे समारोह की घोषणा बहुत ऊपर है, वैध त्रिकोण bool
एक्स नाव Y नाव Z तैरने लगते हैं।
तो फिर, इस समारोह तीन वास्तविक संख्या लेता है
अपने तर्क के रूप में, चल बिंदु मान चर,
और एक सही है या गलत outputs एक बूलियन, याद है, जिसमें मूल्य,।
वापसी प्रकार बूल है तो यही कारण है।
तो फिर हम समारोह को परिभाषित।
हम ऐसा पहली बात तो सुनिश्चित करने के लिए जाँच है कि पक्षों के सभी सकारात्मक रहे हैं।
एक्स से कम या बराबर है 0 करने के लिए, या वाई 0 के बराबर है,
या जेड, कम से कम या शून्य के बराबर है कि संभवतः एक त्रिकोण नहीं हो सकता।
वे सकारात्मक पक्षों की जरूरत नहीं है।
और इसलिए हम वापसी कर सकते हैं उस स्थिति में गलत।
अगला, हम सुनिश्चित करने के लिए जाँच कि आदानों की हर जोड़ी
एक तिहाई से अधिक है।
>> तो एक्स प्लस y कम है तो Z करने के लिए या बराबर,
या एक्स प्लस Z कम है तो Y से अधिक या बराबर है,
या y प्लस Z यदि कम से कम या बराबर है एक्स, वह भी एक वैध त्रिकोण नहीं हो सकता।
तो हम फिर से वापसी झूठी।
मान लिया जाये कि हम चेकों के दोनों पारित हालांकि, उसके बाद हम सच वापसी कर सकते हैं।
उन तीन पक्षों क्योंकि returning-- करने में सक्षम हैं
एक वैध त्रिकोण बनाने की।
और यह बात है।
अब आप की घोषणा की और से परिभाषित किया है।
और अब आप करने में सक्षम हो सकता है का उपयोग करें और इस समारोह में कहते हैं।
अच्छा काम।
मैं डौग लॉयड हूँ।
इस CS50 है।