जेसन Hirschhorn: आपका स्वागत है सप्ताह चार को, हर एक. हम हम में से एक व्यस्त सप्ताह आगे है. इस सप्ताह सोमवार को और बुधवार को पिछले हफ्ते, आप के लिए पेश किया गया है संकेत दिए गए हैं, और इसलिए उम्मीद है कि है अपने मन उड़ा, लेकिन उम्मीद है कि नहीं आप भी उलझन बनाया. यह है, तो हम में है कि खत्म हो जाएंगे खंड आज के रूप में अच्छी तरह से हम जा रहे हैं संकेत करने के लिए. हम ढेर पर जाने के लिए जा रहे हैं जो हम व्याख्यान में के बारे में बात की है पहले से ही है, और हम में संकेत करने के लिए जा रहे हैं बुधवार को और उससे आगे आने की बातें स्मृति प्रबंधन के मामले में. और अंत में, हम थोड़ा बात करने जा रहे हैं के बारे में स्टैनफोर्ड पोर्टेबल लैंग्वेज, तुम लोग कर रहे हैं पुस्तकालय है जो लागू करने के लिए इस सप्ताह का उपयोग समस्या निर्धारित किया है. मैं आप सभी को पिछले सप्ताह दिखाया - मैं फिर से इस स्लाइड अप करना चाहते थे इस की एक सूची है, क्योंकि उपलब्ध संसाधनों आप के लिए CS50. ये हम में से बाहर आप क्या दे रहे हैं बॉक्स, और इन अविश्वसनीय रूप से कर रहे हैं के लिए महत्वपूर्ण क्या अगली स्लाइड शो होगा. लेकिन हम अगली स्लाइड पर पाने से पहले, मैं फिर से इन पर जाने के लिए चाहते हैं. हर व्याख्यान के लिए, वहाँ रहे हैं लिया जाता है कि नोटों. यह व्याख्यान का एक डाइजेस्ट है, लेकिन यह भी कोड के टुकड़े और मददगार है युक्तियाँ और चालें. तो आप व्याख्यान की समीक्षा करना चाहते हैं - उम्मीद है कि आप व्याख्यान याद आती है, लेकिन नहीं था यदि आप, क्या आप यह rewatch चाहिए - लेकिन आप व्याख्यान की समीक्षा करना चाहते हैं, निश्चित रूप से उन की जाँच नोट्स व्याख्यान. स्रोत कोड ऑनलाइन भी है हर भाषण से. cs50.net/shorts, कम कर रहे हैं 6 से 12 मिनट के वीडियो में. तुम लोग उनमें से कई को देखा है. हम नहीं सौंपते हैं वीडियो भी कर रहे हैं तुम लेकिन हैं कि विषयों को कवर करने के लिए इस पाठ्यक्रम में व्याख्यान में शामिल किया गया. तो आप उन पर ताज़ा करने के लिए चाहते हैं विषयों, इन शॉर्ट्स की जाँच करते हैं. study.cs50.net प्राइमरों है विषयों की एक टन पर. यह वीडियो है. यह अभ्यास समस्याओं की है. यह एक बढ़िया स्रोत है. कोई प्रश्न आते हैं, लेकिन भी समय प्रश्नोत्तरी. एक जोड़े को और अधिक संसाधनों. में आदमी आदेश है आप कुछ देता है कि टर्मिनल एक विशेष सूचना के आधार पर समारोह या आदेश. गूगल, मेरी पसंदीदा संसाधन है - मेरी पसंदीदा संसाधनों में से एक. मेरा पसंदीदा संसाधन पिछले एक है, हम एक दूसरे में मिल जाएगा जो. Cs50.net/discuss है. यही कारण है कि हमारे कक्षाओं मंच है. कार्यालय समय सोमवार के माध्यम से कर रहे हैं गुरुवार, 8:00-11:00. ऑनलाइन कार्यालय समय भी कर रहे हैं विस्तार के छात्रों के लिए. और अंत में, अगर तुम्हें कुछ चाहिए, कोई प्रश्न, टिप्पणियाँ, या है चिंताओं, तुम हो मेरी जानकारी से संपर्क करें. मेरे साथ संपर्क में कृपया करें. मैं अगले बुधवार, की ओर संकेत किया तो के रूप में एक कल से हफ्ते अपना पहला है प्रश्नोत्तरी, क्विज शून्य, क्योंकि कंप्यूटर में हम शून्य पर गिनती शुरू विज्ञान. अधिक जानकारी के लिए प्रदान किया जाएगा कल व्याख्यान, और एक हाथ है कि करेंगे अधिक के साथ ऑनलाइन अंततः तैनात किया विशिष्ट विवरण, विशेष रूप से प्रश्नोत्तरी शून्य का स्थान. लेकिन यह अगले बुधवार जगह ले लेंगे बजाय व्याख्यान का. कोई व्याख्यान अगले सोमवार वहाँ यह एक छुट्टी है, क्योंकि. प्रश्नोत्तरी सामग्री के सभी को कवर किया जाएगा सप्ताह शून्य से सप्ताह में पांच को, इस सप्ताह के माध्यम से, के माध्यम से तो कल व्याख्यान. सामग्री व्याख्यान भी शामिल है. सामग्री वर्गों में शामिल हैं. सामग्री समस्या सेट शामिल है, और विशेष रूप से उन शुरुआत भागों आप चला रहे हैं, जहां समस्या सेट की पर कुछ पृष्ठभूमि जानकारी के माध्यम से आप को कवर करने के बारे में क्या कर रहे हैं. उन समस्या सेट के माध्यम से दिखते हैं. अगले, प्रश्नोत्तरी के साथ आप सभी की मदद करने के लिए यह एक छुट्टी है, भले ही सोमवार,, पाठ्यक्रम की मेजबानी करेगा एक पाठ्यक्रम व्यापक समीक्षा सत्र. पाठ्यक्रम व्यापक समीक्षा सत्र के वीडियो आप अगर ऑनलाइन पोस्ट कर दिया जाएगा इसे बनाने में सक्षम नहीं हैं. इसके अलावा, अनुभाग में अगले मंगलवार को हम प्रश्नोत्तरी के एक टन कर रहे हो जा रहे हैं समीक्षा करेंगे और उम्मीद है कि कुछ खेल रहे हैं खतरे के रूप में अच्छी तरह से, लेकिन हम करने जा रहे हैं आपके सभी का जवाब देने के ऊपर जा रहा हो सवाल है, लेकिन मैं के साथ आने के लिए जा रहा हूँ सहायक बहुत सारे सवाल और जानकारी के आधार परीक्षाएँ की 10 साल की हैं. मैं क्या है की एक बहुत अच्छा विचार है दिखाने के लिए जा रहा है और कैसे सवाल कर रहे हैं कहा जा जा रहा है, तो हम पर जायेंगे खंड में उन अगले मंगलवार. इसके अलावा, मैं इस स्लाइड नहीं डाली पिछले हफ्ते, लेकिन यह कुछ हम है पिछले हफ्ते किया था. यह हम एक बहुत से संपर्क किया है कि कैसे कोडिंग समस्याओं का हम किया था. मैं हमारे दृष्टिकोण बाहर गढ़ने करना चाहता था मदद कर सकते हैं कि कुछ सरल चरणों में एक कोडन समस्या को हल करने के साथ आप. पिछले सप्ताह याद रखें, हम द्विआधारी कोडित खोज, और पहली बात हम हम द्विआधारी खोज कोड चाहता था जब हम में के बारे में सोचा है हमारी यह कैसे काम प्रमुख हैं. हम कक्षा में एक तस्वीर खींचना, लेकिन नहीं था मैं कम देखने के लिए हर किसी से पूछा एक तस्वीर है था जो वीडियो, कैसे का प्रतिनिधित्व द्विआधारी खोज काम किया. पहले और हम वास्तव में क्या करना चाहता था कुछ समझने के लिए एक आकर्षण है अपने तर्क को समझने के लिए तस्वीर, यकीन है कि हम जानते हैं बनाने के लिए इस बात को कैसे काम करता है. हम अनुभाग में तुमने किया है कि अगले बात पिछले सप्ताह हमने हमारी मानसिक ले लिया गया था मॉडल, और हम इसे बदल दिया कुछ pseudocode में. Pseudocode, फिर, प्रोग्रामिंग की तरह शब्द वाक्यविन्यास, लेकिन नहीं सी कोड. सी. करने के लिए भी विशेष नहीं है कि हम सिर्फ लिया हमारी हम इस्तेमाल विचारों और अंग्रेजी ले लिया यह व्यक्त, और इसे बाहर लिखा था कार्यक्रम दिखने तरह से किसी प्रकार का. ताकि बस तर्क हिस्सा है. हम पहले हमारे तर्क का ख्याल रखा. हम इस कठिन प्रोग्रामिंग तोड़ दिया दो भागों में समस्या है, और हम लिया पहला तर्क भाग का ध्यान रखते हैं. और फिर हम से संपर्क वाक्यविन्यास हिस्सा. हम आकर्षित के बाद याद pseudocode, हम के कुछ हिस्सों को उठाया हम जानते थे कि pseudocode पर मैप उदाहरण के लिए सी में विशिष्ट तत्वों, छोरों के लिए, अगर शर्तों, या अधिक से अधिक से या ऑपरेटरों के बराबर. और अंत में, हमने किया आखिरी बात, हम किया था बहुत पिछले बात थी, वास्तव में सी में इस कार्यक्रम के लिए कोड हम इस प्रक्रिया के माध्यम से जाने के लिए जा रहे हैं एक अपेक्षाकृत बड़े में आज फिर से ऊपर ले जाएगा कि कोडिंग समस्या खंड की दूसरी छमाही के थोक, लेकिन मैं इस ढांचे रखना चाहता था यहाँ आप लोगों के लिए बाहर. यह हम आ गया है कि कैसे है वर्ग में समस्याओं, और कैसे शायद आप इन समस्याओं के करीब पहुंच गया है खंड के अपने खुद के बाहर पर. इसलिए मैं यहाँ यह ऊपर छोड़ने के लिए जा रहा हूँ और हम यह करने के लिए वापस उल्लेख करता हूँ जब हम आज बाद में कोडिंग और जाना कर रहे हैं योजनाबद्ध तरीके से इन चरणों के माध्यम से. अंत में, प्रतिक्रिया. तुम मेरे लिए किसी भी प्रतिक्रिया की है, वेबसाइट, इस स्लाइड के शीर्ष पर है sayat.me/cs50. मुझे कुछ राय दे. मैं कुछ शानदार प्रतिक्रिया मिली पिछले हफ्ते तुम लोगों से. आप वास्तव में इसे पसंद किया है कहा pseudocoding और हमने किया कोडन. इसके अलावा किसी ने मेरी एक अध्ययन करने के लिए एक लिंक दिया कि कि प्रतीक्षा दिखाया गया है अगर पूछने के बाद 3-7 सेकंड किसी को भी सवाल है इष्टतम है प्रतीक्षा करने के लिए समय है. तो अगर आप अपने stopwatches बाहर है, आज मैं सात कोशिश करते हैं और प्रतीक्षा करने के लिए जा रहा हूँ किसी को भी है, तो मैं पूछना सेकंड के बाद पर जाने से पहले किसी भी सवाल. हम आगे बढ़ना तो इससे पहले, किसी को भी करता है अब तक किसी भी प्रश्न हैं? नियंत्रण कक्ष मुझे सात सेकंड दे दी है. ठीक है, कोई भी किसी भी सवाल किया था, लेकिन यदि आप करते हैं उन्हें पूछने के लिए स्वतंत्र महसूस हो रहा है. सबसे पहले, इस सप्ताह हम कवर करने के लिए जा रहे हैं हम कम से कम संकेत दिया संकेत, के रूप में क्लास की शुरुआत में एजेंडा. आप व्याख्यान में देखा है सूचक. वे शायद आपके मन पिघल है. यह ठीक है, कि वे करने के लिए क्या किया है इससे पहले कि आप CS50 छात्रों के सैकड़ों. तो अगले 10 से 30 मिनट से अधिक, हम ये संकेत के माध्यम से जाने के लिए जा रहे हैं धीरे धीरे और व्यवस्थित. आप किसी भी किसी भी बिंदु पर हैं सवाल है, कृपया मुझे पूछो. मैं गारंटी है कि इस में अपने साथियों घर पर खंड और देख रहा है एक ही सटीक सवाल. हम पहले, पहले आम तौर पर बात करते हैं चर के बारे में, संकेत में गोता और हम है जो डेटा, पहले का उपयोग किया गया. इन बातों होने के अलावा एक स्लाइड पर, मैं जा रहा हूँ इन बाहर आकर्षित करने के लिए. इस स्लाइड में कहते हैं, स्मृति में डेटा है एक मूल्य और एक पते दोनों है, तो हम कर रहे हैं कुछ का प्रतिनिधित्व करने के लिए जा रहा स्मृति में. तुम्हें देखा है, जब पिछले सप्ताह याद रखें या सरणियों तैयार किया जा रहा है, हम आम तौर पर आकर्षित बक्से की श्रृंखला के रूप में उन्हें, तो हम करेंगे सिर्फ एक बॉक्स के रूप में एक चर आकर्षित स्मृति में कहीं. इस उदाहरण में यह बॉक्स, हम करेंगे एक्स यह कहते हैं, और यह एक मूल्य है. इस मामले में, हम आरंभ कर रहे हैं 50 के एक मूल्य के चर. आप भी करने के अलावा उस पर ध्यान देंगे बस मान, इस चर x एक है स्मृति में स्थान. वास्तव में, आप शायद कुछ हद तक कर रहे हैं के बारे में पता, मेमोरी है एक रिक्त स्थान की सीमित मात्रा में. अपने अंदर ही इतने सारे बॉक्स नहीं है आप चीजों को स्टोर कर सकते हैं, जहां कंप्यूटर. और बेहतर अभी तक, तो आप को पता है जहां बातें जमा हो जाती है, प्रत्येक बॉक्स एक है विशिष्ट पता, एक विशिष्ट संख्या जहां आप इसे पा सकते हैं. नए सब है वैसे ही जैसे उनके , विज्ञान केंद्र में पता मेलिंग स्मृति में हर बॉक्स है एक विशिष्ट पता. यदि आप उस पते पर जाते हैं वहाँ स्थित है क्या प्राप्त कर सकते हैं. मैं पूरी तरह से मनमाने ढंग से होने जा रहा हूँ इस चर का पता, लेकिन मैं कर रहा हूँ पता 123 है कहने जा रहा. अब, मैं सिर्फ 1-2-3 नहीं लिखा था. मैं 0x123 लिखा था. 0x हिस्सा इसका मतलब यह है हेक्साडेसिमल संख्या. और हम के बारे में बात करने के लिए नहीं जा रहे हैं हेक्साडेसिमल एक बहुत आज, लेकिन ध्यान दें कि हम स्मृति पते का उल्लेख है, हम हेक्साडेसिमल में उन्हें देखें. मैं एक के बारे में बात कर रहा हूँ तो जब भी पता है, मुझे लगता है कि 0x डाल देता हूँ, और वह है, सिर्फ 123 है एक कहावत हेक्साडेसिमल संख्या. यह बेस 16 में है. यह बेस 10 में नहीं है. किसी को भी किसी भी है सवाल अब तक? बिल्कुल सही. तो है कि एक चर है. हम पहले यह देखा है, लेकिन अब हम कर रहे हैं हुड के नीचे जाने के लिए और देखने के लिए शुरू वास्तव में क्या हो रहा है. तो, संकेत दिए. संकेत के बारे में अच्छी बात यह है कि है कि एक सामान्य चर के विपरीत कुछ मूल्य, कुछ पूर्णांक, कुछ चरित्र, शायद एक श्रृंखला की पात्रों हम एक के बारे में बात कर रहे हैं सरणी, एक सूचक है कि मूल्य है एक पते. स्क्रीन पर, हम int एक्स है हम पहले बनाए गए 50 के बराबर होती है. मैं पहले से ही है कि बॉक्स तैयार किया है. चलो यह भी एक बॉक्स आकर्षित करते हैं. बाप रे, ओह - यह होने जा रहा है. हम एक नया मार्कर की जरूरत है. बहुत बेहतर नहीं. इस - लेकिन हम इस बॉक्स कॉल करने के लिए जा रहे हैं चर सूचक कहा जाता है. सूचक भी एक पता है. यह एक अलग पते में है. यह एक अलग चर है. इस पर होने वाला नहीं है पहले एक के ऊपर. आप दो बातें करना नहीं ले सकते एक मेलबॉक्स के अंदर. आप प्रारंभिक लिख नहीं सकता एक है, तो हम पर जा रहे हैं यहां अलग पते. हम यह पता 456 देता हूँ. लेकिन सूचक के मूल्य एक होने जा रहा है पता है, और इस मामले में, यह हो रहा है एक्स चर के संबोधित करने की. तो अंदर सूचक, हम भंडारण कर रहे हैं पता 123. और मैं का उपयोग वाक्यविन्यास इसे लिखने के लिए - हम कर रहे हैं एक में वाक्य रचना के ऊपर जाने के लिए जा रहा दूसरा, लेकिन पता है कि इस पर वाक्यविन्यास स्लाइड आप का प्रयोग करेंगे वाक्यविन्यास है इस स्थिति स्थापित करने के लिए - हम वाक्यविन्यास को पाने से पहले, हालांकि, मैं सभी को स्पष्ट करना चाहता हूँ और यकीन है कि हर कोई समझता है कि बनाने चर से अलग संकेत उनके मूल्य के रूप में एक पता है, नहीं एक पूर्णांक या एक चार. अब तक तो अच्छा है? आम तौर पर भी, हम इन चित्रकारी कर रहे हैं जब बातें, मैं अभी नहीं जा रहा हूँ यहां पते आकर्षित. मैं इस से एक तीर ले जा रहा हूँ यह है कि अन्य चर के लिए बॉक्स भाव देने के लिए की ओर इशारा करते हैं कि अगर मैं अगर, पता 123 पर देखने के लिए गए थे मैं क्या लगता है इस सूचक का उपयोग करने के लिए गए थे यह मुझे मिल जाएगा करने के लिए इशारा कर रहा है यहाँ पर यह बॉक्स. मैं संख्या 50 हो जाएगी. हाँ, सवाल? छात्र: सूचक एक पते संग्रहीत करता है, तो कैसे हम सरणियों चुनते हैं, और int है स्टार, या एक चार तरह स्टार, या जो कुछ भी? जेसन Hirschhorn आप कर सकते हैं मध्य भाग दोहराने? मैं तुम्हें खो दिया. छात्र: तुम कैसे हो, सरणियों का चयन करते हैं एक पूर्णांक सितारा या चार सितारा, या पसंद जो भी हो, अगर यह हमेशा एक पते संग्रहीत करता है? जेसन Hirschhorn: अच्छा सवाल है. हम कैसे यह वास्तव में है क्या चुनूँ की ओर इशारा करते अगर यह हमेशा एक पते संग्रहीत करता है? तो बजाय लिखने INT सितारा अधिकार की यहां, मैं चार सितारा लिखा था, यह होगा की ओर इशारा करते - कि हम चाहते थे कि अगर हम लिखना होगा क्या है यह एक चरित्र को इंगित करने के लिए. गहरी, गहरी नीचे हैं और शून्य में दुनिया, कि INT, कि चार, नहीं करता वास्तव में बात. लेकिन सी के संदर्भ में, यह आप के लिए चाहता है के मामले में बहुत विशिष्ट हो आप की ओर इशारा कर रहे हैं बात के प्रकार. स्तर पर है, जिस पर हम प्रोग्रामिंग रहे हैं, हम लिखने जा रहे हैं बात के प्रकार हम इंगित करने के लिए कर रहे हैं यह हमेशा एक है, भले ही इस बॉक्स के अंदर पता. आप एक सवाल है? ठीक है. अब हम को देखने के लिए जा रहे हैं संकेत के लिए कुछ वाक्य रचना. इस स्लाइड पर पहली पंक्ति - INT सितारा, अंतरिक्ष, सूचक - initializes और बनाता है - initializes, बल्कि नहीं. , कुछ भी करने के लिए बराबर यह निर्धारित नहीं करता लेकिन यह इस सूचक बनाता है. तो मेरे चित्र के संदर्भ में - चलो इस तरफ करने के लिए चलते हैं - कि पहली पंक्ति, int सितारा सूचक, एक बॉक्स बनाता है. यह बॉक्स सूचक चर रहा है, और यह एक पते पर है. हम इसे एक अलग देता हूँ पते, 999. यही सब है कि रेखा करता है. हम पहले यह देखा है. अगर मैं थे कि, किसी भी समय की तरह है करने के लिए बस एक्स वहाँ INT लिखने, यह करना होगा एक ही सटीक बात, बना एक बॉक्स एक्स कहा जाता है. इस मामले में, हम दे रहे हैं यह एक अलग प्रकार की. तो यह एक पूर्णांक होना करने के लिए नहीं जा रहा है. यह एक पूर्णांक सितारा होने जा रहा है, और तो इस बॉक्स को थोड़ा सा हो जाएगा यह थे की तुलना में अलग करने के लिए बस उदाहरण के लिए एक चार, हो. घर का काम, याद कर रहे हैं, क्योंकि स्मृति में केवल एक बाइट. सूचक चार बाइट्स हैं. तो इस बॉक्स को एक छोटा सा दिखेगा अलग रूप में हम INT सितारा लिखने चार करने का विरोध किया. लेकिन उस के अलावा, हम बना रहे हैं एक बॉक्स, और यह एक विशिष्ट पते पर है. यही कारण है कि पहली पंक्ति करता है बस. कोड की दूसरी पंक्ति, int x बराबर होती है 50, फिर से एक पर एक और बॉक्स एक्स बनाता है अलग स्थान. हम अव्यवस्था 111 देता हूँ. और यह वास्तव में प्रारंभ कर रहा है के अलावा सूचक बॉक्स बनाने. हम इस बॉक्स के अंदर एक 50 डाल रहे हैं. कोड, सूचक की तीसरी लाइन पता एक्स के बराबर होती है. उस पते ऑपरेटर साधन एक बहुत विशिष्ट बात. हम सामने एम्परसेंड डाल देता है तो एक चर नाम की, हम दे कह रहे हैं कि चर का मुझे पता. मैं एम्परसेंड एक्स लिखना तो, जब कि में, मुझे एक्स का पता दे कह इस मामले, 111. हाँ? छात्र: यह स्वीकार्य होगा अगर हम इस बात का पता जानने के लिए होता है विशेष चर के लिए बस सूचक 0x111 के बराबर होती है कहना? जेसन Hirschhorn: तो अगर तुम्हें पता था कि इस 111 पर था, आप लिख सकता है सूचक एक्स इस हेक्साडेसिमल के बराबर होती है संख्या है, लेकिन मुझे लगता है कि आप एक तरह से नहीं देख सकते हैं कभी पता है यह क्या है, तो वह है होगा हम इस वाक्य रचना का उपयोग क्यों. लेकिन फिर, कि एम्परसेंड एक्स, एम्परसेंड मुझे इस बात का पता दे कह रहा है चर, और बस किसी भी बराबर की तरह साइन, कि भंडारण करता है कि मूल्य सूचक के अंदर. आपको लगता है कि एम्परसेंड देख तो जब भी, यह मेरे पते का दे रहा है लगता है इस बात को. एम्परसेंड एक्स मुझे दे रहा है इस एक्स बॉक्स का पता. फिर, हम एम्परसेंड सूचक था, मैं क्या मिलेगा? छात्र: सूचक का पता. जेसन Hirschhorn: पता सूचक की. विशेष रूप से क्या? छात्र: 0x999. जेसन Hirschhorn: 999. एम्परसेंड सूचक देना होगा मुझे इस मामले में 999. किसी के सामने एम्परसेंड चर आपको देता है कि चर का पता. बेशक, मैं सच के बारे में परवाह नहीं है इस सूचक के पते. मैं के बारे में बहुत अधिक परवाह इस चर का पता. अंत में, हम जा रहे हैं पिछले प्रतीक वास्तव में एक ही प्रतीक है, देखना है कि तारांकन. लेकिन यह अंतिम पंक्ति में, यह है अलग ढंग से एक बिट का उपयोग किया. सूचना है कि यह कैसे अंतिम पंक्ति में यह चर के बगल में है. यह प्रकार के बगल में था कि पहले, यह , हम इस प्रकार का हिस्सा बना रहे हैं किया गया था इस प्रकार के पूर्णांक सूचक, अब सितारा कुछ का मतलब अलग एक छोटा सा. यह मूल्य के इलाज के जाने का मतलब है - INT सूचक - की तरह इस चर में मूल्य का इलाज एक पता, उस पते पर जाना है, और मुझे लगता है कि मूल्य दे. इसलिए सितारा इलाज, फिर से, इसका मतलब एक पते के रूप में मूल्य और सूचक, के लिए जाना उस पते, और कहा कि मूल्य वापसी. इस मामले में, कि मूल्य, 50 है इसलिए इस लाइन पर 50 printf होगा. हाँ? हम उस पर ऐसा करने की कोशिश की तो अगर: छात्र एक के रूप में घोषित नहीं किया गया था कि कुछ सूचक, एक्स पर की तरह, और मूल्य, 50 है यह 50 पते पर जाने की कोशिश करेगा या यह सिर्फ हमें एक त्रुटि देना होगा? जेसन Hirschhorn: हम स्टार एक्स किया है, और, कि printf करने की कोशिश की क्या संकलक करते हैं, या क्या कार्यक्रम होगा यह चल रहा था जब ऐसा होगा, यह है एक पते की तरह 50 का इलाज करने के लिए जाना होगा अपने कार्यक्रम में 50 नंबर का पता. आम तौर पर, आप इन करने के लिए जा रहे हैं जब यादृच्छिक पते, आप नहीं जा रहे हैं एक पते जहां कुछ करने के लिए जाना वहाँ अच्छा है. आप वास्तव में एक बुरा करने के लिए जाने के लिए जा रहे हैं तुम जाने के लिए नहीं कर रहे हैं कि संबोधित करने के लिए, और अपने कार्यक्रम दुर्घटना के लिए जा रहा है. तो हाँ, आप बिल्कुल ठीक कह रहे हैं. यह एक ही सटीक बात करते हैं, लेकिन होता हम पतों पर जाने का प्रयास करते हैं कि हम के लिए नहीं कहा या हम नहीं है घोषित, या बस यादृच्छिक रहे हैं कि पते, हम लगभग हमेशा में हो मुसीबत और हमारे कार्यक्रम दुर्घटनाओं. कि आपके सवाल का जवाब? छात्र: हाँ, मुझे लगता मैं एक और एक है. आप अभी है ठंड और यह होगा तो अगर उस पते पर जाना, क्या है एक के रूप में एक सूचक की घोषणा की बात हम सिर्फ एक सूचक कह सकते हैं अगर सूचक एम्परसेंड बात बराबर होती है? और फिर इसे एक सार्थक तरह होगा पता, और हम सही, वहाँ जा सकता है? जेसन Hirschhorn आप कर सकते हैं सवाल दोहराने? छात्र: हम क्यों घोषित करने की क्या ज़रूरत है एक पूर्णांक स्टार के रूप में सूचक यह होगा अगर बस एक तरह के रूप में घोषित करने के लिए काम नियमित INT, यह अभी भी है क्योंकि हो सकता है कि एक बात है तो सही, dereferenced? जेसन Hirschhorn: तो क्यों हम कर रहे हैं एक पूर्णांक स्टार के रूप में यह घोषित करने के बजाय बस एक पूर्णांक और तरह से इसमें इस संख्या की बचत? छात्र: हाँ. जेसन Hirschhorn: क्योंकि हम चीजों का उपयोग करते हैं - बड़ा सवाल - हम प्रयोग कर रहे हैं, जब भी हम चीजों का उपयोग करते समय एक सूचक और हम करने जा रहे हैं अन्य संकेत की तरह कुछ, इलाज चीजें मैं नहीं जा रहा हूँ कि पर जा रहे हैं अब यह मदद करता है कि में जाने के लिए कार्यक्रम जानता है कि इस बात का सूचक है. यह कुछ में इसे दूसरे तरीके से इलाज करेंगे हमारे लिए अप्रासंगिक है कि अन्य तरीकों से, लेकिन यह है कि हम एक तरह इसका इस्तेमाल करने जा रहे हैं सूचक, हम हम करने जा रहे हैं कहना चाहिए एक संकेत के रूप में इस का उपयोग किया. तो यह है कि मूल रूप से है संकेत कैसे काम करते हैं. इसे और अधिक जटिल की तुलना में नहीं है यही नहीं, लेकिन दुर्भाग्य से, यह एक हो जाता है बहुत अधिक जटिल है जब हम इसे व्यवहार में लाना. अगला, हम क्या करने जा रहे हैं काफी बड़ा कुछ. इसके बजाय सिर्फ एक जोड़ी लाइनों फेंकने की ऑनलाइन कोड का, मैं डाल 4, 5, 6, 7, कोड की 8 9, 10 लाइनों. और न पर इन बाहर कोडिंग से अपने कंप्यूटर या इस कार्यक्रम चल रहा है अपने कंप्यूटर पर, मैं तुम्हें बाहर ले जाना चाहता हूँ कागज और एक पेंसिल या एक के एक पत्रक कलम, और चित्रा बाहर क्या की प्रत्येक इन कोड की लाइनों करना. से काम कर रहे, बाएँ स्तंभ के साथ आरंभ initializes जो नीचे करने के लिए शीर्ष वहाँ इन चर का एक बहुत कुछ है, और तब में कोड के प्रत्येक पंक्ति के माध्यम से जाना सही स्तंभ और आंकड़ा क्या होता है. मैं सबको तीन मिनट दे दूँगा अपने दम पर यह शुरुआत है, और फिर हम हूँ एक समूह के रूप में इस पर चलते हैं. चलो जा रही शुरू हो जाओ एक समूह के रूप में इस पर. आप खत्म नहीं किया है, तो यह ठीक है. मैं बाएं हाथ के साथ शुरू करने जा रहा हूँ स्तंभ की ओर, और फिर मैं जा रहा हूँ , यहाँ बहादुर तुम लोगों को आमंत्रित करने के लिए आप यहाँ आप के बीच में, अमल करने के लिए दाहिने हाथ की ओर कोड की एक पंक्ति स्तंभ, और फिर हम काम करेंगे हमारे रास्ते के माध्यम से. तो सबसे पहले, कोड, INT की है कि पहली पंक्ति एक्स 2 अल्पविराम Y 8 अल्पविराम Z बराबर , 12 के बराबर होती है तीन चर बनाता है. मैं एक पंक्ति पर यह सब किया था. यही कारण है कि बनाने के लिए एक आसान वाक्यविन्यास है की कई बातें एक लाइन पर एक ही प्रकार के. इसलिए हम तीन बक्से है. सब लोग, उन तीन देख सकते हैं या कि बहुत कम है? ठीक है. हम एक्स, वाई, जेड है. और एक्स में, हम 2 मिलता है. वाई में, हम 8 मिलता है. और जेड में, हम 12 मिलता है. अब तक सुंदर मानक. अगले हम एक और बना रहे हैं बॉक्स, एक और चर. यह एक int सूचक है. यह सूचक एक्स कहा जाता है. हम यहाँ पर कि आकर्षित करेंगे. और क्या हम भंडारण कर रहे हैं सूचक एक्स अंदर? छात्र: एक्स का पता. जेसन Hirschhorn: एक्स का पता. इस मामले में, मैं नहीं जानता एक्स का पता. यह कुछ भी हो सकता है, लेकिन मैं जा रहा हूँ इसे बनाने के लिए अब कुछ भी बना हमारे लिए आसान. हम 111 पर एक्स डाल देता हूँ. तो इस 0x111 हो जाता है, और हम दे देंगे यह सूचित करने के लिए एक अच्छा तीर यह एक्स की ओर इशारा करते है. इसी तरह, मैं सूचक है Y और सूचक जेड. वे मूल्यों मिलता है. हम इस 0x222, 0x333 दे दूँगा. उस पर हमारी प्रारंभिक सेटअप है स्तंभ के बाएं हाथ की ओर. हम तीन पूर्णांकों बनाया, और हम तीन संकेत बनाया. प्रत्येक सूचक के अंदर, हम पता बचाने तीन प्रारंभिक से एक की हम बनाया चर. अब, के दाहिने हाथ की ओर स्तंभ, हम उस तारांकन का उपयोग कर रहे हैं अलग तरीके की एक संख्या में प्रतीक, इसका इस्तेमाल करने के लिए नहीं कर रहे हैं जो सभी के लिए कुछ भिन्नता या जाने के लिए एक विशिष्ट पते और को वहाँ मूल्य वापसी. कोई मुझे बता सकते हैं कि क्या कोड की पहली पंक्ति है? किसी ने अपने हाथ बढ़ा जो अभी तक बात नहीं की है. आप? छात्र: 16 पर सेट करें जेड. जेसन Hirschhorn: यह 16 से Z सेट है. तो जेड एक्स बार y बराबर होती है. उस मामले में, यह सिर्फ गुणा है हम क्या कर रहे हैं. इसलिए Z, एक्स बार y बराबर होती है 2 गुना 8 16 है. बिल्कुल सही. इसलिए हम इस अद्यतन हूँ. जेड 16 के बराबर. कोड एक्स अंतरिक्ष की दूसरी पंक्ति सितारा अंतरिक्ष y बराबर होती है. कोड की है कि रेखा क्या करता है? जेफ. छात्र: एक्स एक्स बार y बराबर होती है? जेसन Hirschhorn: बिल्कुल सही. यही आशुलिपि संकेतन है एक्स के लिए एक्स बार y बराबर होती है. तुम्हें शायद बातें देखा है एक्स की तरह प्लस y बराबर होती है? कि एक्स एक्स प्लस y बराबर होती है. इस मामले में, हम कुछ एक कर रहे हैं अलग सा, एक्स एक्स बार y बराबर होती है. तो क्या मैं यहाँ अद्यतन करने की जरूरत है? छात्र: x 16 है. जेसन Hirschhorn: X 16 है. हरे रंग में परिवर्तन कर रहे हैं क्या हम इतनी दूर किया है. अगला, हम y बराबर सितारा सूचक एक्स है. किसी के माध्यम से मुझे चल सकता है क्या कोड की इस पंक्ति है? कोड की इस पंक्ति क्या करता है? शुरू से ही मुझे के माध्यम से चलो. छात्र: जो भी है सूचक एक्स लेता है जा रहा है कि मूल्य, की ओर इशारा उस ने कहा, और यह y में यह भंडार. जेसन Hirschhorn: उत्कृष्ट. मैं फिर से दोहराने के लिए जा रहा हूँ. आप एक शानदार काम किया है, लेकिन अभी हम कर सकते हैं यह जोर देना, कि स्टार के इलाज का मतलब जैसे कि चर में बात एक पते और इसे करने के लिए जाना. तो, एक तरह सूचक एक्स में बात इलाज पता है, यह करने के लिए जाना है, उस मान लेना 16, और फिर हम सिर्फ बचत कर रहे हैं यह चर y में. तो अब Y ओवरराइट हो जाता है, और यह अब 16 है. कोड, सितारा सूचक की अगली पंक्ति एक्स को रेखांकित एक्स बार y बराबर होती है. कोड की है कि रेखा क्या करता है? फिर, तुम यहाँ खो एक छोटा सा कर रहे हैं, दाईं से बाईं ओर यह मूल्यांकन. तो मोंडो, क्या सही है ऐसा कर के हाथ की ओर? छात्र: दाहिने हाथ की ओर बस में जो कुछ भी पलता बॉक्स एक्स और वाई है. जेसन Hirschhorn: और वह 16 है और 16 है, इसलिए कि बराबर क्या है? छात्र: 256. जेसन Hirschhorn: 256. और जहां हम 256 बचत कर रहे हैं? छात्र: आप जो कुछ भी यह बचत कर रहे हैं सूचक एक्स की ओर इशारा कर रहा है, जो एक्स बॉक्स है. तो अब एक्स 256 हो जाता है. जेसन Hirschhorn: तो सितारा, फिर, के लिए जाना का मतलब है. हम क्या सूचक को जाना एक्स की ओर इशारा कर रहा है. यह वहाँ एक्स की ओर इशारा करते, और है हम मूल्य 256 बचत कर रहे हैं. कि विशिष्ट एक के बारे में कोई सवाल? हम पर इस्तेमाल सितारा नहीं देखा है बाएं हाथ की ओर, अभी तक, की एक काम के ऑपरेटर. तो यह है कि कोड की चौथी लाइन है. कोड के पांचवें लाइन, कर सकते हैं किसी को जो अभी तक बात नहीं की है मुझे दे पांचवें कोड की पंक्ति, या चलना यह मेरे साथ के माध्यम से? एनी, यह क्या कर रहा है? छात्र: सूचक के मूल्य बदलें सूचक Y के मूल्य के लिए एक्स. जेसन Hirschhorn: यह है बिल्कुल सही. सूचक y का मूल्य इस पते है यहीं, और हम में है कि भंडारण कर रहे हैं चर सूचक एक्स. तो यह 222 हो जाता है. और मैं तीर स्थानांतरित करने के लिए जा रहा हूँ, , भी दर्शाता है कि यह अब एक अलग पता है. तो अब सूचक अंडरस्कोर X और सूचक अंडरस्कोर Y एक ही मूल्य है. यही कि रेखा क्या करता है. तो अनिवार्य रूप से, वे कर रहे हैं Y ओर इशारा करते हुए दोनों. अगर हम सिर्फ हमारे संकेत था, और हम वास्तव में चर पता नहीं था, हम एक्स खो दिया होता. लेकिन शुक्र है, हम एक्स बचा लिया इस समारोह में है, इसलिए हम अभी भी एक्स है जहां पता है. लेकिन हम उस समस्या आ रहा देखेंगे बाद में, कि हम पर कोई सूचक खो कुछ, हम वास्तव में पता नहीं हो सकता यह है या इसे ठीक करने में सक्षम हो सकें. लेकिन यह है कि भविष्य के लिए है. इसलिए अभी के लिए, कि बिल्कुल सही, एनी. और अंत में, कोड की है कि अंतिम पंक्ति. कोई मुझे क्या दे सकते हैं कोड की अंतिम पंक्ति है? हाँ? छात्र: इसमें क्या है पलता सूचक वाई, तो 16 गुना 16 - जेसन Hirschhorn: 16 नहीं सूचक y में. छात्र: खैर, यह उस पते पर चला जाता है, यह पाता है, और फिर पलता कि एक ही बात से - यह करता है सूचक Z, पलता साथ एक ही बात मूल्यों, और एक्स में यह भंडार. जेसन Hirschhorn: बिल्कुल सही. तो क्या मैं अद्यतन करने की जरूरत है? एक्स क्या होना चाहिए? छात्र: ऊपर छोड़ दिया, 256. जेसन Hirschhorn: और क्या मैं यह करने के लिए बदल सकता हूँ? क्षमा करें, हम वापस जाना होगा. छात्र: यह अभी भी एक ही होना चाहिए. जेसन Hirschhorn: हाँ, यह वास्तव में अभी भी 256 के बराबर होती है. लेकिन यह बिल्कुल सही है. चलो यह टूट. हम में, यहीं इस बात को देखेंगे कोष्ठक, सितारा सूचक वाई, कि के रूप में सूचक y में क्या व्यवहार करता है एक पता, कि करने के लिए चला जाता है पते, 16 लेता है. तो अब हम एक 16 है, और हम कर रहे हैं द्वारा कि गुणा Z में एक ही बात. एक 16 ले रही है, उस पते पर जा रहे हैं. 16 बार 16 256 है, और हम भंडारण कर रहे हैं एक्स की कि अंदर. एक्स पहले से ही करने के लिए होता है 256 के बराबर है, तो हम नहीं कर रहे हैं परिवर्तन करने के लिए जा रहा है. आप अभी इस फ़ाइल नहीं है लेकिन इस के लिए स्रोत कोड में पर ऑनलाइन पोस्ट कर दिया जाएगा जो अनुभाग cs50.net/sections, मैं सब लिखा है इस के ऊपर, क्या वास्तव में हम किया था. और मैं वास्तव में कुछ अन्य शामिल हम कर रहे हैं जो सही जानकारी यहाँ, एक सेकंड में के माध्यम से जाना जा रहा है. आप देख सकते हैं, जैसा कि हम इन आपरेशनों करना यहीं, और फिर बाहर प्रिंट विशिष्ट चर के परिणामस्वरूप मूल्य कि बदल दिया गया है. इस कोड को पहले ही लिखा गया है. मैं इस कोड को चलाने के लिए जा रहा हूँ. और अब के उत्पादन के माध्यम से चलते हैं. की शुरुआत में शुरू करते हैं. एक्स का मान 2 है बराबर होती है. यह समझ में बनाना चाहिए. कि क्या हम शुरू में था करने के लिए यह initialized. एक्स का पता इस पागल बात है. फिर, तथापि, हम देखते हैं, भले ही यह पहली पर एक छोटा सा पागल लग रहा है निरीक्षण, हम देखते हैं कि सही वहाँ 0x. यह एक षोडश आधारी संख्या है. और फिर हम सब के देख इस पागल सामान. वहाँ एक बी और एक एफ है, और यह भी एक सी वहाँ में. उन में से कोई भी माध्यम से शून्य सामान्य हो रहे हैं नौ अंक हैं, लेकिन क्योंकि हेक्साडेसिमल 16 आधार है, आप वास्तव में जरूरत अन्य प्रतीकों में से एक जोड़े को प्रत्येक अंक का प्रतिनिधित्व करते हैं. तो फिर, हम के बारे में बात करने के लिए नहीं जा रहे हैं हेक्साडेसिमल बहुत ज्यादा है, लेकिन पता कि आप हेक्साडेसिमल लिख रहे हैं जब संख्या, आप शून्य से कुछ भी देखेंगे 9 प्लस के माध्यम से बातें एक के माध्यम से च से. वे सब शून्य नहीं हो तो फिर भी नौ नंबर के माध्यम से, यह एक है संख्या, यह एक पता है. और उस में व्यक्त किया जा सकता है 10 आधार हम करना चाहते थे. यहीं सूचक एक्स का मान है यह भी एक षोडश आधारी संख्या, और क्या है इसके बारे में एक ही? इस संख्या के रूप में ही क्या है? एक्स का पता, है ना? सही यह ऊपर की रेखा, उन दो पते समान हैं, और वह है, हम उम्मीद करते हैं क्या. एक्स का पता है एक्स के लिए सूचक का मूल्य. अगला, हम का पता है सूचक एक्स, और वह है, फिर, कुछ यादृच्छिक संख्या. हम यह निरीक्षण करने के लिए जा रहे हैं, हम नोटिस यह एक बहुत है कि शेयर अन्य लोगों के रूप में एक ही नंबर. यह अलग है, लेकिन यह शेयरों एक ही नंबर की एक बहुत. बफर के बारे में बात कर याद अतिप्रवाह त्रुटियों? आप कर रहे हैं कि बातों पर लिख सकते हैं जब अगर तुम जाओ, स्मृति में आप के लिए बंद एक सरणी की सीमा से परे. फिर, हम के बारे में बात करने के लिए नहीं जा रहे हैं कि अब ठीक है, लेकिन आप उन लोगों के लिए जिज्ञासु, इन बातों को वास्तव में कर रहे हैं एक दूसरे के बहुत करीब है. इन बक्सों में बहुत करीब हैं स्मृति में एक दूसरे के लिए. और अंत में, सूचक अंक x मूल्य, और जाहिर है, यह 2 है. मुझे लगता है कि तारा किया. हम सूचक में पता पीछा एक्स शुरू में, और यह एक्स के एक मान दिया. अंत में, हम वास्तव में देखना हम अभी क्या किया. सबसे पहले जेड 16 है, तो एक्स 16 है, तो y 16 है. एक्स अंततः यहीं 256 हो जाता है. और फिर, एक्स नहीं बदला गया है कोड की है कि अंतिम पंक्ति से. यह एक 256 बनी हुई है. आप अपने दम पर यह दोहराना चाहते हैं एक बार फिर से, या के माध्यम से यह जाना, या मैं, अप इन मूल्यों के कुछ बदल पहले से ही इस कोड लिखा. आप कोड में परिवर्तन कर सकते हैं और कैसे उन परिवर्तनों को वास्तव में देखना वास्तविक जीवन में बाहर खेलते हैं. हम संकेत के साथ पर ले जाने से पहले करता है, किसी को भी किसी भी प्रश्न हैं? ठीक है. हर कोई एक हाथ ले, और कर सकते हैं हवा में इसे डाल, और - अपनी आँखें बंद करो - एक के रूप में हवा में अपने दाहिने हाथ डाल मुट्ठी, और, मुझे आगे बढ़ने की अनुमति एक अंगूठे दे नीचे, मध्य अंगूठे, कैसे आराम से आप अब तक संकेत के साथ कर रहे हैं. अपनी आँखें बंद करो. ठीक है. आप नीचे अपने हाथ डाल कर सकते हैं और अपनी आँखें खुली. धन्यवाद. हम पर स्थानांतरित करने के लिए जा रहे हैं. हम बात कर रखने के लिए जा रहे हैं संकेत दिए गए हैं, लेकिन हम बात करने जा रहे हैं कुछ देर बाद उनके बारे में एक अलग संदर्भ के. हम इस बारे में बात करने जा रहे हैं सरणियों और संकेत दिए. और पिछले सप्ताह याद मैं अपने दिमाग उड़ा दिया? किसी के दिमाग, वे छोड़ा यहां उन्हें जमीन पर. मैं फूंका पूरा यकीन था उस व्यक्ति के मन. यह एक बुरा मजाक था. [हंसी] जेसन Hirschhorn: मैं जा रहा हूँ उस पर काम करने के लिए. लेकिन वैसे भी, तार हमने पाया बाहर सरणियों थे. सारणियों वास्तव में संकेत दिए गए हैं. मुझे लगता है कि क्या मतलब है? खैर, हम छह में से एक सरणी बनाने अगर वर्ण, जो कोड की इस पंक्ति यहीं करता है - चार, सरणी, खुला वर्ग, छह, करीब ब्रैकेट, अर्धविराम - फिर, एक बनाता है छह पात्रों की सरणी. यह भरें. मैं यहीं की एक तस्वीर है. इन बक्सों में, हम है कि यह भरा देखना कुछ वर्ण और बातिल के साथ अंत में टर्मिनेटर. मुझे पसंद हैं, जहां और नीचे नीचे, यह है आप अपने ध्यान प्रत्यक्ष. बहुत पहले बॉक्स - हम पहले भी किया है. हम वास्तव में इस किया है हर समस्या में निर्धारित किया है. मैं बहुत पहले बॉक्स का उल्लेख कर सकते सरणी कोष्ठक शून्य के रूप में इस सरणी. हम एक लाख बार किया है कि. मैं वास्तव में उल्लेख कर सकते हैं एक ही बॉक्स एक और तरीका है. मैं सितारा सरणी के रूप में यह उल्लेख कर सकते हैं. सरणी, हम वास्तव में थे क्योंकि सरणी के बराबर होती है क्या बाहर प्रिंट, सरणी है एक पता, और इसके बारे में एक पता है इस सरणी में पहले बॉक्स. इसलिए कि सितारा ऑपरेटर क्या व्यवहार करता है एक पते के रूप में सरणी में संग्रहीत करने के लिए चला जाता है उस पते, और रिटर्न वहाँ मूल्य. स्टार सरणी बस की तरह F वापसी करेंगे सरणी कोष्ठक शून्य च देता है. फिर, हर जगह हम लिख रहे हैं सरणी कोष्ठक शून्य, सितारा सरणी होगा ठीक ऐसा ही किया है. वास्तव में, सरणी कोष्ठक शून्य है बस हमारे चीनी कोटिंग की वास्तव में क्या हुआ है. यह वास्तव सितारा सरणी अधिक है है सही तरीके से, सही यदि वहाँ एक है इस तरह, क्या है के बारे में सोचना वास्तव में क्या हो रहा. तो यह है कि सब कुछ ठीक है और अच्छा है, लेकिन यह शानदार हो जाता है, जहां यहाँ है. हम दूसरे चरित्र के लिए जाना यहां, यह शून्य. एक हे हो, लेकिन हम करेंगे चाहिए यह एक शून्य दे. हम पहले कि करने के लिए भेजा रहे हैं एक सरणी में दूसरे बॉक्स, सरणी के रूप में ब्रैकेट एक हम दोहराया गया है कि जब भी एक सरणी के माध्यम से. उल्लेख करने के लिए एक और रास्ता नहीं है यह, और कहा कि नीचे से नीचे है. उस स्टार, खुले कोष्ठक, सरणी प्लस 1, कोष्ठक बंद हुआ. सरणियों बाहर रखी हैं तो क्योंकि - इन बक्से सही दूसरे के बगल में सभी कर रहे हैं स्मृति में - सितारा सरणी पहले एक को जाता है. हम सरणी लेने के लिए जा रहे हैं तो अगर है कि पता है, यह करने के लिए 1 जोड़ें, और उसके लिए जाना कि नए पते, कि हो रहा है सही करने के लिए अगले बात हो मूल पता. हाँ? छात्र: तो सरणी था, के बजाय घर का काम किया जा रहा है, यह तो, ints होगा आप वेतन वृद्धि करने के लिए होगा 4 हर समय से? जेसन Hirschhorn: कि एक बड़ा सवाल है. तो मैं कर रहा हूँ, मुझे पहले कुछ आकर्षित करते हैं आपके सवाल का जवाब देने के लिए जा रहा है. वास्तव में स्क्रीन पर इस को आकर्षित करने के लिए करने के लिए हो रही है जल्दी से पहले अपने सवाल है, हम अपने सरणी है - और उस पर चला जाता है, लेकिन मैं केवल करने के लिए जा रहा हूँ लोगों की पहली जोड़ी पर ध्यान केंद्रित. स्मृति में, एक बॉक्स है हम बनाया है कि जब हम इस सरणी initialized. इस सरणी चर रहा है, और यह एक पता है. यह वास्तव में है, का पता है पहली बात, पहले बॉक्स. तो इस बॉक्स कहीं है. इन छह बक्से कहीं और कर रहे हैं. हम सरणी कोष्ठक शून्य करते हैं, हम कर रहे हैं यहाँ पहली बात पाने के लिए जा रहा है. हम सितारा सरणी करते हैं और जब हम जा रहे हैं ठीक ऐसा ही प्राप्त करने के लिए, मूल्य उस सरणी के लिए इशारा कर रहा है. हम सरणी कोष्ठक 1 करते हैं, तो हम जा रहे हैं दूसरे बॉक्स मिलता है, लेकिन यह भी करने के लिए, सूचक उन बाहर है क्योंकि कोष्ठक, पहले हम जोड़ने के लिए जा रहे हैं इस पते पर 1, और फिर हम जा रहे हैं उस का पालन करें और हमें देने के लिए दूसरे बॉक्स. और इतने पर और बहुत आगे है. 2 प्लस ऐरे इस के लिए 2 जोड़ने के लिए जा रहा है , यहां संबोधित फिर, पते, क्योंकि बस संख्या प्रतिनिधित्व कर रहे हैं हेक्साडेसिमल के रूप में, अक्सर. तो यह करने के लिए 2 जोड़ने के लिए, और उस का पालन करें आप के रूप में होना होता है जो तीसरे बॉक्स,, दो स्थानों दूर, देख सकते हैं पहले बॉक्स से. उम्मीद है, कि यह कम भ्रामक बनाया बल्कि अधिक भ्रमित से. लेकिन यह है कि इसे और अधिक भ्रमित कर दिया? फिर से, मैं करने के लिए ले जा रहा हूँ अपने एक सेकंड में प्रश्न. उस के लिए इसे और अधिक भ्रमित कर दिया किसी को भी, या किसी को भी किसी भी है इस विचार के बारे में सवाल संकेत के रूप में सरणियों की? बढ़िया. इसके अलावा यह शानदार होगा आप सवाल था. लेकिन आपके सवाल पर जाने से. प्रश्न स्मृति में पूर्णांकों था चार बाइट्स, तो चार बक्से ले. हम एक बाइट के रूप में एक बक्से का लगता है, पूर्णांकों चार बक्से ले. तो अब ये पूर्णांक हैं कहते हैं. यह ठीक है यहाँ एक int सरणी है. मैं कुछ बनाने के लिए जा रहा हूँ यादृच्छिक पतों. इस एक int सरणी था तो अगर, पहले एक एक 10 हो सकती है. क्योंकि अगले ओवर एक के चार बक्से पूर्णांकों चार बक्से बड़े हैं. इसलिए, 10, 11, 12, 13 को हो रहा है यह एक 14 होगा. यह एक एक 18 होगा. यह एक बहुत पर एक 22 होगा, और. तो फिर, घर का काम एक बाइट हैं. वे ठीक बगल में एक दूसरे से कर रहे हैं, हम बात कर रहे थे तो इस नक्शे पहले पूरी तरह से काम करता है. लेकिन अगर आप अभी तक लाया ints के मामले. खैर, मैं यह करने के लिए 1 गयी हैं, यह 11 के लिए जाना होगा. यह इस के बीच में होगी मैं वास्तव में यह पीछा अगर int विशेष रूप से उस तरह. मैं वास्तव में बॉक्स जा रहा था स्मृति में बॉक्स से. इस प्रकार के बारे में अच्छी बात सूचक गणित कार्यक्रम है तुम्हें क्या मतलब पता करने के लिए स्मार्ट. आप एक स्मृति को 1 जोड़ रहे हैं जब एक करने के लिए इशारा कर रहा है कि पता पूर्णांक, यह वास्तव में नहीं जा रहा है एक ब्लॉक से अधिक जोड़ने के लिए. यह अधिक चार ब्लॉकों जोड़ने के लिए जा रहा है. ऐसा लगता है कि संख्या पैमाने पर करने जा रहा है के लिए आप आकार खरीदते हैं. और इस कर्टिस के सवाल को वापस चला जाता है, क्यों हम int सितारा बल्कि करूँ चार सितारा से? अपने सवाल था? किसी ने कहा कि पहले, सही कहा? हम नहीं बल्कि चार से INT सितारा ऐसा क्यों यह नहीं पता करने के लिए जा रहा है स्टार क्या बात है? और कहा कि हमें इस के साथ मदद करने के लिए है सूचक गणित के प्रकार. हम एक चार सितारा के रूप में कुछ घोषणा लेकिन यह वास्तव में के माध्यम से हो रहा है हम 1 गयी जब पूर्णांकों, यह केवल होगा एक बॉक्स के ऊपर ले जाने के बजाय चार हम तार्किक उम्मीद इस पर ले जाने के लिए. तो फिर, सूचक गणित में, जब हम जैसे इन बातों को इलाज कर रहे हैं पते, फिर जोड़ने या घटाकर उन्हें और फिर उन्हें निम्नलिखित के लिए , स्मृति में क्या हो रहा है यह पता लगाने हम उन्हें जोड़ने के नंबर पर पहुंचा जाता है बात के प्रकार के आकार के द्वारा वे की ओर इशारा कर रहे हैं. वे एक पूर्णांक की ओर इशारा कर रहे हैं तो - मुझे लगता है मैं खुद को दोहरा रहा हूँ - वे एक पूर्णांक कर रहे हैं लेकिन, आप कर रहे हैं वास्तव में स्थानांतरित करने के लिए जा रहे चार हर बार से अधिक बक्से. वे एक चार हैं, तो आप कर रहे हैं एक बॉक्स ले जाने के लिए जा रहा है. वे आठ है, जो एक लंबे लंबे होते हैं बाइट्स, आप को स्थानांतरित करने के लिए जा रहे हैं आठ बक्से. जो भी आकार डेटा प्रकार, कौन जानता है? वास्तव में कोई बात नहीं हमारे उद्देश्यों के लिए. हम पता करने की जरूरत है कि सभी, वास्तव में है यहीं इस गणित, सिर्फ 1 जोड़ने हमें परवाह किए बिना दूसरे बॉक्स को मिलेगा बात की किस प्रकार में है कि दूसरे बॉक्स. मैं सवालों के कुछ प्रकार वहाँ आशा यहाँ, कि एक बहुत कुछ था क्योंकि, और मैं एक परिपूर्ण नहीं कर सकता समझा है कि पर काम. सच में? कोई सवाल? घर पर दर्शकों के लिए - हम वहाँ जाते हैं. छात्र: आप एक सरणी बनाने के लिए गए थे एक समारोह में, और आप यह चाहते हैं कुछ और है कि सरणी वापस, आप इसे कैसे लौटेंगे? जेसन Hirschhorn: उत्कृष्ट प्रश्न. तुम एक में एक सरणी बनाना चाहते थे तो अगर समारोह, और फिर उस सरणी वापस - तो हम एक सरणी बनाती हूँ कहूँगा मुख्य द्वारा कहा जाता है एक समारोह में. मुख्य इस इस समारोह कहता है, और समारोह तो, सरणी बनाता है मुख्य करने के लिए देता. अब हम कुछ देखा है इस से पहले के समान. जहां हम कुछ इसी तरह देखा है मुख्य तब सरणी बनाता है, और जहां समारोह यह manipulates? क्या हम पहले लिखा है कि जो कुछ किया है? छात्र: छंटनी? जेसन Hirschhorn: छंटनी जो कुछ किया गया है. 15 का खेल भी जो कुछ किया गया है. छँटाई में, हम सरणी में पारित कर दिया, सूखी घास का ढेर, और फिर हम से इसे हल विध्वंस अलग अद्यतन करने उस सरणी में भागों. इसलिए हम अपने मूल सरणी लिया - करने के लिए मानकों में से एक, याद छँटाई समारोह सरणी था - छात्र: एक वैश्विक सरणी नहीं है? जेसन Hirschhorn: ठीक है. हाँ, हम वहाँ वापस पाने के लिए जा रहे हैं. लेकिन उस में बनाया गया था - यह एक वैश्विक था, या यह था समारोह में बनाया? के लग रहे हैं. हम उस जवाब कर सकते हैं. यह एक वैश्विक सरणी नहीं है ऐसा लगता है. यह इस लाइन पर यहीं पैदा कर दी है फिर एक पूर्णांकों की सरणी, और यह बात है हमारे छँटाई समारोह को पारित कर दिया. तो यह एक वैश्विक सरणी नहीं है. इसे पारित कर दिया, मुख्य में बनाया है हमारे छँटाई समारोह के लिए. विध्वंस हमारे छँटाई समारोह यह अद्यतन, और यह देता है. हम शीर्ष पर देख सकते हैं, तरह - ओह, मेरे भगवान, माफ करना. छात्र: तरह सिर्फ चाहे रिटर्न या यह नहीं मिला? जेसन Hirschhorn: ठीक है. माफ़ कीजिए. क्रमबद्ध वास्तव में - चलो कि ऊपर खुला. क्रमबद्ध शून्य है. क्रमबद्ध कुछ भी वापस नहीं करता है क्योंकि सॉर्ट विध्वंस सरणी अद्यतन करता है, मूल सरणी. इसलिए कि हम पहले देखा है क्या है, लेकिन अपने सवाल था कि क्या अगर क्रमबद्ध करें वास्तव में सरणी बनाता है? छात्र: अद्यतन रिटर्न में देखें सरणी, या ऐसा कुछ. जेसन Hirschhorn: एक और बात यह है कि मुख्य बुलाया गया था किया जा सकता था समारोह. उस समारोह का काम एक बनाने के लिए है कुछ, की एक सरणी के सरणी फिर पूर्णांकों, और देने वाले सरणी यह ​​मुख्य करने के लिए बनाया है. हम बात कर रहे हैं जब से पहले देखा है तो के रूप में हम करने जा रहे हैं जो ढेर, के बारे में बाद में आज एक बिट के बारे में बात करते हैं, एक बार समारोह रिटर्न, था कि सब कुछ उस समारोह, सब के में बनाया अपने स्थानीय चर, चले जाओ. हम पहले गुंजाइश का विचार है कि देखा है. हम बना लिया है यही कारण है कि वैश्विक है चर कुछ समय, इस से बचने के लिए जब चीजें दूर जाने की समस्या उनके कार्यों वापसी. क्या आपको लगता है कि मामले में क्या होता है समारोह के रूप में नहीं सरणी पैदा होगा ढेर पर एक स्थानीय चर. यह एक अलग हिस्से में यह पैदा होगा कुछ बनने की अनुमति देता है कि स्मृति की कार्यों लौट आए हैं, तब भी जब बचाया और समारोह फ्रेम, फ्रेम ढेर, ढेर छोड़ दिया है. मैं कुछ का उपयोग करने के लिए जा रहा हूँ यहाँ शब्दावली. आप इस बारे में सुना नहीं जा रहे हैं कल, लेकिन उस क्षेत्र तक स्मृति ढेर कहा जाता है, और है मुझे लगता है कि में जाने के लिए नहीं करना चाहती. लेकिन उस समारोह फिर, क्या कर सकता है संभावित oversimplify करने, बनाने है में एक अलग स्थान में उस सरणी वास्तव में के लिए वहाँ रहता है कि स्मृति जब तक आप इसे वहाँ रहना चाहता हूँ के रूप में, और यह मुख्य एक संकेतक के लिए वापस दे दूँगा उस में सहेजी गई सरणी के लिए स्मृति के अन्य भाग. तो यह कहीं और कुछ बक्से में आता है कि नष्ट नहीं मिलता है फ़ंक्शन देता है और वापस मुख्य करने के लिए गुजरता बक्से की है कि सेट करने के लिए एक पता. यह शायद पर्याप्त एक पर्याप्त नहीं है आपके सवाल का जवाब है, लेकिन कि कल अधिक पता लगाया जाएगा तुम लोग बात करते हैं व्याख्यान में ढेर के बारे में. हम पर चलते हैं - ओह, मेरे भगवान! यह एक प्रकार की समुद्री मछली है! कि कैसे आराध्य है? भगवान! वे मेरे पसंदीदा जानवर हो, तो वे वास्तव में आराध्य हैं. मैं तीन डॉल्फिन भरवां पशु है. लेकिन मेरे बारे में पर्याप्त. आप अपने सभी कंप्यूटरों है आप के सामने खुला. यहाँ अपने कोडिंग काम है. हम pseudocode के साथ शुरू करने जा रहे हैं, हालांकि, इसलिए भी उत्साहित नहीं मिलता है. ले जाता है कि एक प्रोग्राम लिखने के लिए की जरूरत एक और केवल एक कमांड लाइन तर्क, और उस नंबर डॉल्फिन प्रशिक्षित किया जाना है. यह संख्या 0 से अधिक होना चाहिए. अगले आप अनुमति देने के लिए जा रहे हैं के लिए एक उम्र में प्रवेश के लिए ट्रेनर इन डॉल्फिन के प्रत्येक. प्रत्येक उम्र, फिर चाहिए 0 से अधिक होना. और इन उम्र के सभी चाहिए एक सरणी में संग्रहीत किया. एक उम्र प्राप्त करने के लिए, हालांकि, आप की जरूरत निम्नलिखित के साथ एक समारोह फोन प्रोटोटाइप - INT सितारा, अंतरिक्ष, getAge, कोष्ठक, शून्य, करीब कोष्ठकों, अर्धविराम. अंत में, मैं आपको बाहर मुद्रित करना चाहते हैं सबसे पुराना डॉल्फिन की उम्र. तो फिर, आप में लेखन शुरू करने से पहले कोड, कागज के एक पत्रक है या है अगर आप चाहते हैं खुला gedit, और लिखना इस के लिए कुछ pseudocode बाहर. तीन मिनट में, हम जा रहे हैं pseudocode पर जाने के लिए. आप एक और तीन मिनट के लिए होगा यह कोड, और फिर हम कोडिंग पर जायेंगे यह एक साथ. और आप कोई प्रश्न हैं, क्योंकि यह स्पष्ट नहीं है, अपना हाथ बढ़ा और मैं आसपास आता हूँ, और मैं खुश हूँ आपके सवाल का जवाब. लेकिन शुरू करने के लिए, तीन मिनट के लिए ले सुनिश्चित करें कि आप बनाने के लिए pseudocode लिखना इस समस्या के तर्क को समझते हैं. पर एक चाकू ले चलो एक समूह के रूप में pseudocode. मैं बोर्ड पर यह लिखने जा रहा हूँ आप मुझे pseudocode देने के रूप में. कौन देना चाहूंगा मुझे पहली पंक्ति? पहली पंक्ति के शायद सबसे आसान, इसलिए अगर तुम नहीं है अभी तक भाग लिया, यहाँ शुरू. Pseudocode की पहली पंक्ति क्या है. छात्र: पहली पंक्ति के लिए जाँच करने के लिए है आप प्राप्त कर उन तर्कों की संख्या. जेसन Hirschhorn: बिल्कुल सही. पहला, तर्कों की संख्या की जाँच करें बात हम क्या करने की जरूरत है. अगला? छात्र: जाँच करें कि उस आदेश, पहला तर्क, 0 से अधिक है? जेसन Hirschhorn: चेक कि पहले तर्क हाँ, 0 से अधिक है. अगला लाइन, आगे बढ़ो. छात्र: तो फिर तुम शायद करने के लिए चाहता हूँ में है कि कमांड लाइन तर्क की दुकान एक चर, या आप बस कर सकता अगले चरण पर जाएँ. जेसन Hirschhorn: हाँ, फिर से, हम करेंगे यहाँ एक स्ट्रिंग है, लेकिन हम चाहते हैं कि एक यह एक संख्या है पूर्णांक क्योंकि, इसलिए हम बनाने की जरूरत एक पूर्णांक में स्ट्रिंग. छात्र: एक्स, वाई. जेसन Hirschhorn: यह सही है. तो, हम उस लिखेंगे. स्ट्रिंग - वाह, कि मार्कर पर दिखेगा. यही कारण है कि हम जरूरत है दूसरी बात है ऐसा करने के लिए, स्ट्रिंग लेते हैं और एक पूर्णांक में बदल जाते हैं. आगे क्या है? छात्र: साथ ints की एक सरणी बनाएँ पहले आदेश पंक्ति का आकार तर्क है कि प्रोग्राम नहीं है? जेसन Hirschhorn: क्षमा करें? छात्र: बस ints की एक सरणी बनाने, और यह कमांड का आकार बना तुम मिल गया है कि लाइन तर्क. जेसन Hirschhorn: बनाएँ आकार की सरणी - हम, ARG करूँगा जो कुछ भी उस तर्क था. ठीक है? आगे क्या है? तो हम अनुमति, सरणी है एक में प्रवेश के लिए ट्रेनर प्रत्येक डॉल्फिन के लिए उम्र. एक उम्र पाने के लिए, एक समारोह फोन निम्नलिखित प्रोटोटाइप के साथ. इसलिए हम अपने सरणी है. हम क्या करने की जरूरत है? छात्र: n डॉल्फ़िन के लिए? जेसन Hirschhorn: ठीक है. मैं प्रत्येक के लिए लिखने जा रहा हूँ. प्रत्येक डॉल्फिन के लिए, क्या हम क्या करने की जरूरत है? आगे बढ़ो? छात्र: समारोह को बुलाओ. जेसन Hirschhorn: कॉल समारोह, ठीक है. छात्र: pseudocoding में, तुम चाहिए एक अलग में जैसे कार्यों को परिभाषित pseudocode के ब्लॉक? जेसन Hirschhorn: तो, हाँ. के pseudocode की एक अलग बॉक्स करते हैं यहाँ पर, getAge के लिए pseudocode. प्रत्येक डॉल्फिन के लिए तो इस समारोह में, हम getAge कहते हैं, और getAge कुछ देता है. तो हम कहाँ रखा जाना चाहिए हम लौट रहे हैं बात है? यह सही, एक int सूचक देता है? यही अनुसार, वापसी प्रकार है उस समारोह प्रोटोटाइप के लिए. तो हम कहाँ लगा रहे हैं कि int सूचक. छात्र: सरणी में. जेसन Hirschhorn: सरणी में. यह बढ़िया लगता है. GetAge बुलाओ, वापसी डाला सरणी में मान. एक दूसरे के लिए getAge हम रोक देते हैं. हम वापस करने के लिए आया हूँ. और मुझे लगता है कि आप शुरू दूँगा मुझे उस पर, मार्कस. लेकिन हम हर उम्र मिल गया है. हम सरणी में डाल दिया है. हम अंत में क्या करते हैं? हम कैसे मुख्य खत्म करते हैं? हम क्या करने की जरूरत पिछले बात क्या है? Alden? छात्र: हम उन्हें तरह सकता है, और फिर सबसे बड़ी मिल मुद्रित. जेसन Hirschhorn: हम कर सकते थे हां, उन्हें तरह. तो कैसे हम की तरह करते हैं? छात्र: हम बस की तरह हो सकता है - जेसन Hirschhorn: हम की जरूरत है हालांकि, यहां सॉर्ट करने के लिए? छात्र: मैं नहीं लगता है. जेसन Hirschhorn: ठीक है. आप इस से पहले किया था. पहला तरीका क्या था आप के लिए खोज लिखा था? छात्र: हम सिर्फ एक जाँच कर सकता है एक दूसरे के खिलाफ एक. जेसन Hirschhorn: चलो करते हैं. हर एक के माध्यम से और बस की खोज करने दें सबसे पुराना उम्र का ट्रैक रखने. क्या करते हैं तो सबसे पुराने के लिए खोज, और हम सबसे पुराने के साथ क्या करने की जरूरत है? छात्र: यह वापसी. क्षमा करें, यह बाहर प्रिंट. जेसन Hirschhorn: हम वहाँ जाते हैं. बिल्कुल सही. सबसे पुराना बाहर प्रिंट. ठीक है. मार्कस? छात्र: पर नज़र रखें सबसे पुराने आप उन्हें जोड़ने के रूप में? जेसन Hirschhorn: ठीक है, सबसे पुराना के लिए खोज करते हैं. इसलिए हम सबसे पुराने का ट्रैक रख सकता है हम वहाँ उन्हें जोड़ने के रूप में. में वापसी मान रखा, getAge बुलाओ अगर यह होता है तो सरणी, और देखो वर्तमान के सबसे पुराने एक, शायद बचा एक अलग चर में यह? उस के रूप में अच्छी तरह से काम करेगा. कि वास्तव में हमें एक को बचा सकता है यात्रा के लिए, लेकिन यह शानदार है. मैं इस छोड़ने के लिए जा रहा हूँ अब के लिए यहां क्लिक. लेकिन आप में करना चाहते हैं तो आपके कार्यान्वयन यह है कि कदम उठाना इसके अलावा, यह बहुत अच्छा होगा. मार्कस? यहाँ पर getAge कर देता है. माक्र्स: ठीक है. एक उम्र के लिए उपयोगकर्ता पूछो. जेसन Hirschhorn: पूछें एक उम्र के लिए उपयोगकर्ता. ठीक है. हर कोई देख सकता है? यहाँ पर? ठीक है, एक उम्र के लिए उपयोगकर्ता पूछना. चलते रहो, तुम यह मिल गया. माक्र्स: मुझे लगता है मैं वास्तव में क्यों नहीं मिलता अनुमान की तुलना में यह एक पूर्णांक सितारा लौटने के लिए बेहतर है बस एक पूर्णांक, तब की तरह बस यह स्टोर करने के लिए उम्र वापसी. जेसन Hirschhorn: यह जरूरी नहीं है बेहतर रिटर्न के लिए. यह बस के रूप में अच्छी तरह से में लौटने के लिए काम करना होगा लेकिन मैं आपको INT सितारा वापसी करना चाहते हैं. माक्र्स: ठीक है. मैं वास्तव में नहीं जानता कि क्या - जेसन Hirschhorn: ठीक है. किसी को भी किसी भी विचार है? हम एक ऐसे युग के लिए उपयोगकर्ता पूछना. हम एक पूर्णांक हो रही है. ठीक है. तो हम यहाँ क्यों रोक नहीं है. हम में हमारे अगले कदम पर जाने के लिए जा रहे हैं तर्क, देखने के लिए, पर इन बातों को मैप और तब तुम लोग पहले उस कोड होगा हिस्सा है, और अच्छी तरह से कोड है कि सभी एक साथ, लेकिन एक विशेष getAge. और हम क्या हो रहा है पता लगा लेंगे कि INT स्टार के साथ पर. लेकिन हम कूद से पहले हम ऐसा करने से पहले सी कोड में, किसी को बाहर बात कर सकते हैं वे हमारे pseudocode में देख कुछ बातें कि नियमित रूप से कोड पर मैप होगा? सी में? Pseudocode में तो कुछ बातें, कुछ शब्द आप कुछ खरोज आप देखते हैं, , आप कुछ देना है कि कुछ चीजों को देखने सी में इस कोड के बारे में कैसे संकेत? छात्र: पाश के लिए. जेसन Hirschhorn: कहाँ? छात्र:. डॉल्फिन "प्रत्येक के लिए" के लिए " जेसन Hirschhorn: ठीक है. हम वहाँ जाते हैं. हम वहाँ एक पाश मिल गया है. और क्या? मोंडो? छात्र: int करने के लिए स्ट्रिंग बात एक मैं के लिए किया जाएगा जेसन Hirschhorn: ठीक है. इसलिए हम पहले कि समारोह देखा है. हम देख अन्य सामान? छात्र: printf. जेसन Hirschhorn: बिल्कुल. न जाहिर है, लेकिन उम्मीद है कि हमारे पास printf के साथ अब कुछ परिचित. और क्या? हाँ? छात्र: एक सरणी पढ़ रही है सिर्फ एक सरणी की घोषणा? जेसन Hirschhorn: ठीक है. तो, आकार ARG की. यह सही है. मुझे लगता है कि लिखने के लिए क्या है पता नहीं है के रूप में है, लेकिन हाँ, एक की घोषणा. इसे बनाने के लिए एक और शब्द. हम यहाँ देख किसी भी अन्य बातें? हम जानते हैं संरचनाएं? क्या है कि रेखा के बारे में "खोज सबसे पुराना के लिए? "किस तरह का संरचना का उपयोग करें कि हो सकता है? Alden, आप यह सुझाव दिया. छात्र: बस खोज. सिर्फ एक पाश की तरह है. जेसन Hirschhorn: एक पाश. तो, वे खोज. तुम्हें शायद रैखिक के बारे में बात कर रहे हैं यहीं खोज, तो यह शायद है बस के माध्यम से जा रहा एक मानक पाश का उपयोग यही वजह है कि सब कुछ, कर्टिस हम डाल सकता सुझाव यह पिछले पाश में. हम देख किसी भी अन्य बातें? Args की संख्या की जाँच करें. कैसे हम कुछ जांच करते हैं? छात्र: अगर बयान. और जेसन Hirschhorn: यह है एक शर्त है. तो, तुम क्यों शुरू नहीं मिलता इस कार्यक्रम कोडिंग. आप यहाँ pseudocode है. लेखन और सी कोड में प्रारंभ करें. फिर, हम क्या है यह पता लगाने के लिए जा रहे हैं कि INT सितारा और के साथ चल रहा हम वास्तव में इस कार्यक्रम कैसे लिख सकता है यह अनुरूप है तो मैं आपके द्वारा दिए गए विनिर्देश. यदि आप चाहते हैं, हालांकि, शुरू बस INT शून्य पाने के साथ. यह सिर्फ एक पूर्णांक देता है. कि तुम जा पाने में मदद करता है. बस उस कोड. बस वापस प्रकार के रूप में यह कोड एक पूर्णांक के रूप में नहीं, एक पूर्णांक स्टार के रूप में. लेकिन फिर हम में बारी करने के लिए जा रहे हैं INT सितारा फिर तो हम के अनुरूप कर सकते हैं विनिर्देश. यह भी पता लगाने कैसे एक वास्तव में हो सकता है जेफ था पर मिल पहले के बारे में बात कर. इसलिए तीन से पांच मिनट ले इस कोड के लिए. हम के माध्यम से जाने के लिए जा रहे हैं एक साथ इस कोड. की कमी थी, तो मैं माफी माँगता हूँ इस के कुछ भागों पर स्पष्टता. लेकिन क्या हम सही में लग जा रहे हैं अब यह है कि मैं पहले से ही टाइप किया है सभी यह कैसा दिखेगा के लिए कोड हम सिर्फ एक लौट रहे हैं getAge साथ पूर्णांक. और हम उस कोड के माध्यम से जाना है, और हूँ तो हम कैसे कर सकते हैं हम पता करेंगे वास्तव में यह क्या था के साथ संरेखित करने के लिए मिलता है एक पूर्णांक सितारा लौटने के लिए हम में से पूछा. यहाँ कोड है. और फिर, मैं माफी माँगता हूँ हम नहीं कर सकते कि एक समूह के रूप में इस कोड बाहर है, लेकिन मैं चाहता हूँ यकीन है कि हम इसे माध्यम से प्राप्त करने के लिए. शीर्ष के लिए, हम अपने कार्य किया है प्रोटोटाइप, getAge. हम पहले देखा है. तो, पहले प्रकार लौटें मापदंडों तो, नाम है. यहाँ तक, हम शामिल कर रहे हैं तीन पुस्तकालयों. कोई मुझे बता सकते हैं कि क्या इस लाइन में 12 से करता है? तीव्र मानक live.h शामिल हैं? कि रेखा क्या करता है? मैं एक प्रश्नोत्तरी पर तुम्हें यह पूछने, और करने के लिए थे मैं तुम मुझे में जवाब देने को कहा दो वाक्य, आप क्या कहेंगे? छात्र: [सुनाई] आप सभी कार्यों का उपयोग करने की अनुमति देता है उस फ़ाइल में संग्रहीत. जेसन Hirschhorn: यह है एक अच्छा जवाब. यह है कि हैडर समारोह कार्यों का एक नंबर का प्रोटोटाइप, और आप उन में उपयोग करने के लिए जा रहे हैं अपने पुस्तकालय, यह इन कह रहा है कार्यों में मौजूद हैं. मैं और क्या मैं कर रहा हूँ अगर ऐसा करने की आवश्यकता है , कहते हैं, CS50 पुस्तकालय सहित? मैं और क्या करने की जरूरत है जब मैं अपने कार्यक्रम संकलन? छात्र: [सुनाई] शामिल यह पानी का छींटा एल का उपयोग कर. इसलिए हम उन CS50 पुस्तकालय में लिंक करने की आवश्यकता पानी का छींटा एल के साथ लिंक के लिए खड़ी है. पानी का छींटा एल CS50 वास्तविक लोगों में लिंक और शून्य, वास्तविक क्रियान्वयन का कहना है कि, स्ट्रिंग हो या INT मिलता है. तो फिर हम मुख्य में हैं. सुनिश्चित करें उपयोगकर्ता एक और केवल प्रवेश किया एक कमांड लाइन तर्क. बस हमारे pseudocode की तरह, हम हैं कि यहां की स्थिति है. उम्मीद है, आप लोग बहुत परिचित हैं इस लाइन के साथ और सक्षम करने के लिए बहुत जल्दी इस कोड लिखना argc जाँच. अगला, हम एक मैं लाइन करने के लिए कर रहे हैं कि. फिर, तुम से पहले देखा है. यह एक स्ट्रिंग परिवर्तित है एक पूर्णांक के लिए. मुझे क्या करना है और अगले ही पल मेरे पास है एक और अगर हालत. मुझे यकीन है कि वे एक सकारात्मक प्रवेश किया बना रहा हूँ प्रति डॉल्फिन की संख्या विनिर्देश, अगर जाँच डॉल्फिन के कम से कम 1 है. तो फिर, के इस पहले भाग कोड, इन तीन बातों - args की संख्या की जांच, एन अगर यह शून्य से अधिक है - आप इस कोड को एक बहुत कुछ लिखा है, उपयोगकर्ता इनपुट मान्य किया. आप के साथ बहुत परिचित होना चाहिए इस कोड लिखने और करने में सक्षम किया जा रहा है बहुत जल्दी यह लिखना. अगला, हम एक नई सरणी आरंभ कर रहे हैं. चीज़ें किस प्रकार हम कर रहे हैं इस सरणी में डाल? इस पहली प्रति पूर्णांकों तीन अक्षर. अगला, हम उम्र हो रही है, और एक सामान्य कर रहे हैं एक सरणी के माध्यम से पुनरावृति पाश के लिए, और हम इस समारोह getAge बुला रहे हैं, की वापसी मूल्य भंडारण सरणी में getAge. फिर, आप की तरह कोड लिखा है यह एक बहुत, बहुत पहले. उम्मीद है कि आप बीनना होगा कि एक बात अपने अतीत के माध्यम से जाने से इस क्विज के लिए समस्याओं का है कि का एक बहुत आप करने के लिए जारी करने के लिए जा रहे हैं आप पहले से ही किया है बातें कर रहे हैं. यह उन लोगों के देखने के लिए बहुत महत्वपूर्ण है आप नहीं जा रहे हैं पैटर्न इतना है कि में आप के लिए अपने काम सुपर कठिन बना मैं कभी नहीं किया सोच से भविष्य इस से पहले. इससे पहले कि आप यह सब के सब किया है. अगला, कोड के अपने अंतिम लाइनों. हम सबसे पुराने उम्र का ट्रैक रख रहे हैं, बस आप की तरह, प्रत्येक उम्र के माध्यम से जा रहा Alden, सुझाव दिया. और अगर मौजूदा बात की उम्र हम के माध्यम से पुनरावृति रहे हैं अधिक से अधिक है हम संग्रहीत है सबसे पुराना नंबर से, हम सबसे पुराना नंबर अपडेट करें. और अंत में अंत में, हम मुद्रित सबसे पुराना नंबर बाहर. फिर, तुम ऐसा पहले किया है. आप वास्तव में रेखीय खोज लिखा है. तुम्हें पता है कि लिखा है. यह थोड़ा अलग था. आप एक विशिष्ट संख्या के लिए देख रहे थे, सबसे बड़ी नहीं है, लेकिन इससे पहले कि आप इस कोड लिखा है. और अंत में, INT getAge में, आप पहले यह देखा है. हम पूछ मत, जबकि पाश है उपयोगकर्ता इनपुट के लिए यह जब तक एक निश्चित शर्त को पूरा करती है. और अंत में, हम सिर्फ लौट रहे कि पूर्णांक. इसलिए इस कोड के सभी तुम्हें देखा है पहले और पहले लिखा. यहाँ कुछ नया है. बेशक, मैं एक में इसे प्रस्तुत किया है अलग तरीका है, और मैं शायद बहुत था मेरे निर्देश के साथ भ्रमित, लेकिन इससे पहले कि आप यह देखा है. इस तर्क आप के लिए 100% सक्षम हो. और हम इस कार्यक्रम चलाते हैं वास्तव में जल्दी - मैं पहले से ही ऐसा है, तो इसे बनाया है हम. / ट्रेनर भाग लेंगे. क्या हुआ? छात्र: [सुनाई]. जेसन Hirschhorn: मैं नहीं था किसी भी तर्क दे. पांच डॉल्फिन को प्रशिक्षित करते हैं. यही कारण है, एक दो, तीन होगा चार, पांच साल की उम्र. और तुम सही यहाँ देख सकते हैं, यह सबसे पुराना आयु बाहर मुद्रित. तो चलो वापस जीएडिट में चलते हैं. लेकिन ज़ाहिर है, यह क्या नहीं था निर्देशन के लिए पूछ रहा था. यह प्रोटोटाइप पूछ रहा था. नहीं पूर्णांक में देता है, लेकिन INT सितारा में देता है. मैं वहाँ इसे बदलने के लिए जा रहा हूँ तो अगर मैं बेहतर प्रोटोटाइप में यहां यह नीचे बदल जाते हैं. और अब के माध्यम से काम करते हैं यहीं यह. के तल पर शुरू करते हैं. आयु एक पूर्णांक सितारा नहीं है. उम्र क्या प्रकार चर की है? छात्र: एक पूर्णांक. जेसन Hirschhorn: तो रेखा 63 साल की उम्र एक पूर्णांक नहीं होना चाहिए. यह एक पूर्णांक सितारा होना चाहिए. मैं यह कैसे एक पूर्णांक सितारा बनाते हैं? छात्र: [सुनाई]. जेसन Hirschhorn: वहाँ एक स्टार रखो. और अब हम यहाँ नीचे देखो. 67, getInt एक पूर्णांक देता है, और हम कर रहे हैं उम्र में उस पूर्णांक भंडारण. लेकिन हम एक ही उम्र के इलाज कर रहे हैं अब सूचक, कैसे हम की जरूरत है इस पंक्ति को अद्यतन करने के लिए? छात्र: एक सितारा रखो. जेसन Hirschhorn: रखो उम्र से पहले एक सितारा. कि तुम क्या कहा है? छात्र: हाँ. जेसन Hirschhorn: ठीक है. GetInt एक पूर्णांक देता है. हम करने के लिए दिए गए स्थान पर जाना चाहते हैं उम्र में हमें और वहाँ एक पूर्णांक डाल दिया. हम कोड की इस पंक्ति किया, तो हम जाना चाहते हैं वापस कर्टिस के बारे में बात कर रहा था क्या करने के लिए इससे पहले, कुछ पागल एक उम्र बचत पूर्णांक, शायद पूर्णांक 5. अंततः हम स्थान 5 पर जाने के लिए प्रयास करें स्मृति में है, और हम में से एक बहुत में मिल उस के लिए मुसीबत. तो हम उस स्टार की जरूरत वहाँ, और रेखा 69? फिर, यह स्मृति में उम्र है यहीं पता. तो कैसे हम इस पंक्ति को अद्यतन करने की जरूरत है? कोई और? कैसे हम इस पंक्ति को अद्यतन करने की जरूरत है? छात्र: वहाँ एक तारांकित रखो. जेसन Hirschhorn: बिल्कुल सही. सही वहाँ एक छोटा तारा जोड़ें. अब हम उठाई मूल्य प्राप्त हो रहे हैं उम्र के बजाय उम्र से करने के लिए. तो फिर, हम इस कोड को जाते हुए देखा था बिंदु को समाप्त करने के पूर्णांक से. सुंदर समान. हम उन सभी स्थानों के लिए देखने की जरूरत है हम उम्र की थी, और हम उन्हें बदलने की जरूरत एक छोटा सा हम नहीं करना चाहते क्योंकि परिवर्तन उम्र का पिटारा क्या उम्र के रूप में इतना की ओर इशारा करते है. और उम्र लौटने, यह सही है? यही कारण है, सही है क्योंकि उम्र एक int सूचक है. हाँ, सवाल? छात्र: हम int उम्र इसे रख सकते हैं भर में, और फिर अंत में, डाल उम्र के सामने एक एम्परसेंड? जेसन Hirschhorn: और इसका पता वापसी? यह एक अच्छा सवाल है. तुम ऐसा है, लेकिन के लिए ले जाने सकता कि एक दूसरे और जवाब में कि एक दूसरे में प्रश्न. बढ़िया प्रश्न. यहाँ तक, हम एक पूर्णांक बदल रहे हैं सूचक, बातों का क्या प्रकार है डॉल्फिन उम्र में यह भंडारण के? हम सही एक int सूचक लौट रहे हैं यहाँ, बात किस प्रकार का है डॉल्फिन उम्र में यह भंडारण के? इंटरनैशनल संकेत दिए, ताकि लाइन 37 INT सितारा होना चाहिए. यही कारण है कि इस सरणी की तरह है. यह अब और पूर्णांकों भंडारण नहीं है. यह INT संकेत के भंडारण है. और अंत में यहाँ नीचे, डॉल्फिन उम्र ब्रैकेट मैं, कि, हमें देने के लिए जा रहा है फिर से, और int सूचक. हम एक int सूचक नहीं करना चाहती. हम मूल्य की ओर इशारा करना चाहता हूँ कि int द्वारा करने के लिए. तो हसन, कैसे हम कर सकते हैं इस लाइन को बदलने? छात्र: एक सितारा डाला? जेसन Hirschhorn: बिल्कुल सही, सही वहाँ एक स्टार डाल दिया. वह हमें एक मूल्य दे देंगे. क्या रेखा 51 के बारे में? छात्र: एक और सितारा. जेसन Hirschhorn: एक और सितारा. यह बिल्कुल सही है. इसलिए हम इन, अब फिर से, इलाज कर रहे हैं संकेत int के रूप में बातें. छात्र: इसमें सारे उस पर एक समस्या है getAge, INT सितारा उम्र कभी नहीं दिया है ई स्थान? जेसन Hirschhorn: यह एक समस्या यह है कि INT सितारा उम्र एक कभी नहीं दिया है स्थान, और यह एक समान होने जा रहा है तुम क्या थे करने के लिए समस्या बस लौटने के साथ के बारे में बात एम्परसेंड उम्र और एक पूर्णांक के रूप में इसे रख. लेकिन जब मैं पहली बार इस कोड को चलाने के लिए चाहते हैं और देखो क्या होता है. ठीक है. तो चर उम्र unitialized है यहां इस्तेमाल किया. तो यह चर को प्रारंभ कहते हैं, " इस चेतावनी को चुप करने के लिए 'उम्र', 'और यह यह अशक्त देने से पता चलता है. चलो यह अशक्त दे देते हैं. इसलिए हम था चेतावनी से छुटकारा मिलना चाहिए. हम संकलन करने में सक्षम होना चाहिए. डॉल्फिन कितनी पुरानी है? के, 1 कहते हैं. Seg गलती. तो अब मैं GDB के माध्यम से जाना है, और मैं होगा पर GDB के माध्यम से जाने के लिए प्रोत्साहित करते हैं अपनी खुद की समझ से बाहर करने के लिए यह क्यों कार्यक्रम सिर्फ गलती SEG. मैं एक के रूप में इस छोड़ने के लिए नहीं जा रहा हूँ cliffhanger, हालांकि, और मैं जा रहा हूँ इस समारोह खुला. हम समझने के लिए जा रहे हैं क्यों इस कार्यक्रम SEG गलती. ढेर पर आप सभी, जब इतनी के रूप में एक समारोह एक ट्रे में जोड़ा जाता है, कहा जाता है लौकिक ढेर जहां स्थानीय चर जमा हो जाती है. एक समारोह देता है, उस ट्रे दूर हो जाता है. उन स्थानीय चर के रूप में अच्छी तरह से चले जाओ. इंटरनैशनल स्टार उम्र बातिल के बराबर होती है एक स्थानीय है चर कि ढेर फ्रेम में बचाया. इस समारोह से दूर चला जाता है, इस चर के रूप में अच्छी तरह से दूर हो जाता है. तो हम पते पर पारित जो कुछ भी की. हम उम्र पर पारित कर दिया. यह एक पता है, हम उस पर पारित किया. लेकिन अंततः, हम - क्षमा करें, मैं खुद से आगे हो रही है. इस कार्यक्रम वास्तव में गलती SEG क्यों उम्र इशारा कर रहा था क्योंकि इस मामले था , एक विशिष्ट स्थान है, जो अशक्त करने के लिए और अशक्त तुम नहीं हो एक स्थान है स्पर्श करने की अनुमति दी. और इसलिए हम इस लाइन लिखने की कोशिश की, जब कोड की उम्र के लिए जा रहा है और कर रही वहाँ कुछ, हम मुसीबत में है, हम गलती SEG और है कि जहां. फिर स्टार उम्र, उम्र क्योंकि अशक्त करने के लिए इशारा कर रहा है. हम एक बुरा क्षेत्र है जो, अशक्त करना चाहते हैं. हम वहाँ हमारे मामले में 1 getInt करने की कोशिश की हम गलती SEG और है कि जहां. लेकिन एक विकल्प के मामले, का कहना है कि कहना है कि हम यह एक वैध पता दिया था यहीं, bf4ac तरह, कुछ हम पहले देखा था. फिर भी, इस कार्यक्रम लौटे जब, हम एक समस्या में चला जाएगा क्योंकि उस पते दूर होता चला गया. स्थानीय चर पता दूर चला गया होगा. की ओर इशारा किया था जो उम्र नहीं होता अब और अस्तित्व में है. हम तय रास्ता है तुम्हें देखा है कुछ इससे पहले, malloc समारोह. और आप के लिए पेश किया गया है इससे पहले कि malloc समारोह. आप यह देखा है? Malloc आप कुछ स्मृति देता है जब दूर जाना नहीं है ढेर फ्रेम दूर हो जाता है. तो कोड की इस पंक्ति लिख - और मैं देने जा रहा हूँ अब के लिए आप के लिए यह - malloc. हम एक पूर्णांक भंडारण कर रहे हैं और जब से, हम कर रहे हैं पर्याप्त जगह malloc के लिए जा रहा. हम दे कहने जा रहे हैं आकार int की मुझे एक बॉक्स. Malloc एक पता देता है, और हम कर रहे हैं उम्र में उस पते की बचत. अब हम इस कार्यक्रम को चलाने के लिए जब - हम गलती SEG के लिए नहीं जा रहे हैं क्योंकि स्मृति के उन ब्लॉकों हम के माध्यम से मिला malloc गायब नहीं है जब ढेर फ्रेम गायब हो जाता है. हम चाहते हैं कि जब तक वे पर रहते हैं उनमें से छुटकारा पाने के लिए. और यह वापस अपने प्रश्न के लिए चला जाता है, पहले से जेफ,. कैसे मैं के अंदर चीजें बना सकता हूँ मेरी मैं बाद में उपयोग करना चाहते हैं कि कार्यों मुख्य में या विभिन्न कार्यों में? मैं malloc का उपयोग, और मैं पास चारों ओर उनके पते. यही है, बेशक, एक बहुत था बस अब कवर करने के लिए. तो, आप किसी भी है तो कृपया सवाल, दूर से पूछना. छात्र: तो malloc पर नहीं है तो, अब और ढेर? जेसन Hirschhorn: यह है बिल्कुल सही. बॉक्स malloc आपको दे रहा है ढेर पर नहीं है. यह इस दूसरे भाग में आप के लिए दे रहा है हम करने जा रहे हैं जो स्मृति की बुधवार को व्याख्यान में के बारे में बात करते हैं. नाम ढेर है, लेकिन मैं नहीं चाहता यह अन्य की तुलना के बारे में बहुत ज्यादा बात करने के लिए यह नहीं मिलता है कि यह अन्य जगह है समारोह दूर हो जाता है जब मिटा दिया. अन्य प्रश्न? छात्र: आप एक का उपयोग नहीं किया, तो मुझे लगता है कि अलग समारोह और तुम यह सब डाल कोड मुख्य में, अगर आप अभी भी malloc का उपयोग करने की आवश्यकता है? जेसन Hirschhorn: बड़ा सवाल है. यह शायद सबसे कुशल नहीं है इस कार्यक्रम के लेखन का तरीका. आप आसानी से यह कर, जबकि किया जा सकता था में पाश मुख्य और बचाया अपने आप को मुसीबत से एक पूरी बहुत कुछ. मैं की तरह यह करना चाहता था कारण मैं हर किसी के लिए चाहता था क्योंकि यह है कैसे मुख्य में देखने में सक्षम हो, हम की एक सरणी बना सकते हैं संकेत, संकेत int. हम उन संकेत हस्ताक्षर कर सकते कहीं और, यह अन्य में डाल के रूप में लंबे समय के रूप के लिए रहता है कि स्मृति के क्षेत्र हम यह रहने के लिए चाहते हैं, और फिर हम कर सकते हैं बाद में उन तक पहुँचने. उदाहरण के लिए, हम यहाँ खोजा उन के माध्यम से. हम अन्य कर सकता था उन्हें बातें. हम उन्हें मिल सकता था और औसत पाया. हम चीजों का एक बहुत कुछ किया जा सकता था. बात आप ट्रैक रख सकते हैं कि जा रहा है मुख्य माध्यम में कुछ बातें की एक सरणी, कहीं उन चीजों को बनाने के वरना, और फिर अभी भी उपयोग बाद में उन्हें. और इस विचार, क्या हम अब कर रहे हैं, भविष्य में एक बहुत ऊपर आ रहा है पी सेट और आप को हल करना चाहते हैं समस्याएं. हम इसे इस तरह से किया था यही कारण है कि यहां तक ​​कि हालांकि वैसे यह जटिल है एक इस संदर्भ में सा. छात्र: [सुनाई] आप सभी int उम्र के रूप में रख सकते हैं संकेत करने के लिए विरोध के रूप में वास्तविक मूल्यों, आप अब एम्परसेंड उम्र इस्तेमाल कर सकते हैं? जेसन Hirschhorn: क्षमा करें? छात्र: आप सितारों पर बाहर ले गए हैं बस सभी उम्र, और वापस किया अंत में एम्परसेंड उम्र,, यह काम करेगा? जेसन Hirschhorn: तो malloc एक पता देता है. छात्र: ठीक है, ठीक है. जेसन Hirschhorn: यह एक पता देता है, इतनी उम्र एक पूर्णांक हो गया है यह जा रहा है सूचक, क्योंकि एक पते में संग्रहित किया. हम छोड़ दिया छह मिनट है. मैं बात कर छोड़ करने के लिए जा रहा हूँ अब के लिए ढेर के बारे में. मैं तीन मिनट में जाने के लिए जा रहा हूँ एसपीएल, सबसे महत्वपूर्ण पर संक्षेप में मैं आप की जरूरत है बातें समस्या सेट के लिए जानते हैं. हालांकि, मैं यहाँ लाने से पहले, इस वजह हम पर समाप्त करने के लिए जा रहे हैं क्या है, दो अंतिम अनुस्मारक. एक, बेशक हम चीजों के माध्यम से चला गया बहुत जल्दी इस खंड में. मुझे लगता है कि गति के लिए माफी माँगता हूँ. आप के बारे में कोई प्रश्न हैं हम खत्म हो गया था कुछ, क्यों कुछ यह था जिस तरह से, या कुछ और काम मैं जितना मैं कर सकता स्पष्ट रूप से व्याख्या नहीं है , मुझे एक ईमेल या बात को गोली मार कृपया है मेरे लिए कक्षा के बाद, और मैं खुश हो जाएगा गहराई में अधिक आप को यह समझाने के लिए. तो बाहर तक पहुँचने तो कृपया आप प्रश्न हैं. फिर, प्रतिक्रिया वेबसाइट के रूप में अच्छी तरह से. अगर आपके पास कक्षा के बाद कुछ समय ले लो यह और मुझे कुछ प्रतिक्रिया दे. मुझे यह बहुत सराहना करते हैं. क्या आप कक्षा की शुरुआत में देखा था, के रूप में मैं उन्हें जवाब, उन के माध्यम से पढ़ा तुम एक प्रतिक्रिया चाहते हैं, और मैं आप दिल से उस लेते हो. यह मेरे लिए बहुत मायने रखता है. के बारे में बात करके क्लास खत्म करो आप के लिए जा रहे पुस्तकालय इस सप्ताह का उपयोग किया. तुम्हें शायद मैं क्या पसंद कोड देखा है ऊपर से पहले स्क्रीन पर है, GRect चप्पू newGRect, (एक्स के बराबर होती है, वाई, चौड़ाई, ऊंचाई). तुम लोग शायद पढ़ने के माध्यम से है कल्पना सुंदर लगा माध्यम से इस के साथ सहज है, लेकिन उन लोगों के लिए जो आप के लिए, कम सहज थे साथ ही दोस्तों, मैं इस पर फिर से जाना चाहते रेखा और इसे करने के लिए इसी तरह की है कि कैसे देखते हैं हम पहले का उपयोग किया है क्या. बस किसी भी चर के साथ जैसे - इस एक वस्तु है, लेकिन बस के साथ की तरह किसी भी चर, हम पहले प्रकार है और सबसे पहले यहीं, GRect. अगला हम वस्तु का नाम है, और अंत में हम समारोह है कि यह initializes, हमें देता है हम चाहते चप्पू. कभी कभी हम int एक्स 5 के बराबर होती है, लिखने और हम सीधे कुछ को प्रारंभ. कभी कभी हम स्ट्रिंग लिखने नाम स्ट्रिंग पाने के बराबर होती है. हम कुछ पाने के लिए एक समारोह का उपयोग और हम अपनी वापसी मान लेते हैं, और कि हमारे नए मूल्य है. तो हम पहले इस विचार को देखा है, जहां या आवश्यकता नहीं हो सकता है कि कार्यों इनपुट वास्तव में बात बना हमें, बजाय के लिए हमें इसे सीधे बनाने. इसलिए हम पहले इस कोड को देखा है. उम्मीद है, एक वस्तु के इस विचार, या में कम से कम एक वस्तु बनाने के रूप में नहीं है भारी तुम conceptualize कर सकते हैं यह बातें करने के लिए बस के रूप में बहुत समान हम पहले देखा है. हालांकि, के रूप में वस्तुओं के बारे में अच्छी बात चर से अलग है कि हम उनके साथ बातें कर सकते हैं. आप एक का रंग बदल नहीं सकते चर, लेकिन आप कर सकते हैं वास्तव में परिवर्तन एक वस्तु का रंग, या कम से कम एसपीएल में आप बदल सकते हैं अपनी वस्तुओं का रंग. आप में एक चर कदम नहीं कर सकते एक खिड़की है, लेकिन आप ले जा सकते हैं एक खिड़की में एक वस्तु. तुम एक वस्तु के स्थान मिल सकता है. आप वास्तव में एक नहीं मिल सकता है चर का स्थान. उस के बारे में अच्छी बात है इस पुस्तकालय में वस्तुओं. हालांकि, इन कार्यों कर सकते हैं एक तरह से भ्रमित हो. हम वास्तव में कार्यों में इस्तेमाल किया या नहीं किया है वस्तुओं से पहले है, इसलिए मैं यह महसूस किया गया करने के लिए एक सामान्य तरीके को समझने के लिए उपयोगी व्यक्त या वस्तुओं के साथ काम करते हैं, या वस्तुओं को समझते हैं. आप ध्यान देंगे और, जैसा कि मैं दो है यहाँ लिखा कार्यों, कार्यों , खिड़की जोड़ - आप पहले देखा है अल्पविराम चप्पू, और सेट रंग चप्पू अल्पविराम काला. इन दोनों मामलों में, हम एक समारोह है दो तर्क लेता है और कुछ भी करता है. इनमें से अब और अधिक सामान्य रूप से, सभी आपको लगता है कि लिखने के लिए जा रहे कार्यों वस्तुओं के साथ सौदा किया है एक जहां और एक क्या ले. एक जहाँ आप चाहते हैं वस्तु है इस में, कुछ करने के लिए मामले, एक खिड़की या पैनल. और क्या आप चाहते क्या है यह करने या इसे करने के लिए देने के लिए. आप रंग स्थापित कर रहे हैं जब कुछ है, जहां हैं आप रंग की स्थापना? चप्पू वस्तु के साथ. और आप क्या रंग स्थापित कर रहे हैं? काले. कार्ट में समारोह के साथ, जहां आप कुछ कर रहे हैं? खिड़की वस्तु के साथ. और आप इसे क्या दे रहे हैं? आप यह चप्पू दे रहे हैं. आप ध्यान देंगे कि कार्यों आप उपयोग, सेट रंग, सेट स्थान, एट वगैरह, वगैरह, सब इस पैटर्न का पालन करें. वे तुम्हें क्या करना चाहते हैं कुछ लेना कुछ, वस्तु आप चाहते करने के लिए कुछ, और आप करना चाहते हैं के लिए क्या क्या यह, या क्या आप चाहते हैं के साथ क्या बदल गया है, या क्या आप चाहते हैं जोड़ा, या विशिष्ट रंग आप इसे देखना चाहते हैं. या यह कोई मित्र नहीं है, तुम चाहते हो यह वगैरह, वगैरह, भरा बनाने. वैसे, एक बहुत संक्षिप्त चर्चा स्टैनफोर्ड की - यह क्या है? स्टैनफोर्ड प्रोग्रामिंग पुस्तकालय? पोर्टेबल लाइब्रेरी, यह सही है! , वर्ग धन्यवाद. स्टैनफोर्ड पोर्टेबल लाइब्रेरी. लेकिन फिर, एक बहुत अधिक जानकारी है समस्या सेट कल्पना में दी गई, लेकिन उम्मीद है कि यह है कि यह एक छोटा सा बना देता है , वस्तु समझने में आसान वे से संबंधित कर दिया गया है, खासकर के रूप में हमने देखा है और पहले किया है बातें. तो उस के साथ, कि सप्ताह चार है. के बारे में सीखने का आनंद ढेर कल. अच्छा अपने प्रश्नोत्तरी अगले सप्ताह पर भाग्य, लेकिन बेशक, मैं फिर से पहले देखेंगे, उम्मीद है कि खंड में अगले मंगलवार. लेकिन यह भी आप कोई प्रश्न हैं, टिप्पणियाँ, चिंताओं, स्वतंत्र महसूस कृपया बाहर तक पहुँचने के लिए. और कक्षा के बाद, मैं बाहर कदम होगा अगर आप अपनी समस्या के बारे में बात करना चाहता हूँ कुछ सवालों के सेट या है.