[संगीत बजाना] ANDI PENG: इस CS50 है, और खंड के दो सप्ताह के लिए स्वागत करते हैं। यह वास्तव में सप्ताह है, जबकि वास्तव में हमारे class-- के दो, पहले हफ्ते हम अनुभाग को मिला है। हाथों के शो में, आप सभी के कितने पिछले सप्ताह सुपर अनुभाग के लिए आया था? ठीक है, वह ठीक है। ठीक है। आप में से कितने देखा सुपर खंड पिछले सप्ताह? ठीक। और तुम लोग ठीक किया समस्या पर एक सेट? इसलिए मुझे लगता है कि हम इसे लेने के लिए जा रहा हूँ वास्तव में बुद्धिमान बच्चों का एक झुंड इस वर्ग और बातों में ठीक हो जाएगा। ठीक। तो first-- सबसे पहले, हम तो बस संक्षेप में करने जा रहे हैं आज के लिए एजेंडे पर चलते हैं। हम कोर्स के लिए रसद के बारे में बात करेंगे। आप का एक बहुत शायद के बारे में प्रश्न हैं कैसे इस कोर्स में चलाने बातें। हम उन्हें जवाब देंगे। हम संक्षेप में करने जा रहे हैं मामले में छोरों खत्म हो जाना आप लोगों में से किसी भी सुपर खंड याद किया। हम ASCII मानचित्रण के बारे में बात करेंगे। हम सरणियों के बारे में बात करेंगे, काम करता है, कमांड लाइन तर्क। और अंत में, क्या तुम लोगों को शायद सभी सच के बारे में जानने के लिए यहां होना चाहते हैं, अपने pset2 है। हम कुछ अच्छी चाल होगा कि कैसे करना है के लिए और सुझाव दिए गए। ठीक। इसके अलावा, दूसरी बात, हमारे पास यहां कैंडी के बहुत सारे। कैंडी पसंद करती है जो किसी को भी, बस यहाँ आते हैं। कुछ ले लो। मैं एक गुच्छा है। हम कार्यालय में एक टन है। मैं सच में नहीं चाहता सभी दिन कैंडी खाने के लिए। तुम लोग, सभी कैंडी खाना चाहिए मैं आप लोगों के लिए इसे यहां लाया गया है। बस कैंडी खाते हैं। हर वर्ग कैंडी हो जाएगा। पहले तो, मैं कौन हूँ? मेरा नाम एंडी पेंग है। मैं येल में यहां CS50 के सिर टीए हूँ। और इसके अलावा में कि, मैं भी be-- होगा किसी को भी अपने चल like-- होता तो साथी से, अपने कंधे पर रोने के लिए। अगर आपके pset के कारण रात से पहले, आप, क्या हो रहा है पता नहीं है मुझे मारा। हम वगैरह, एक साथ सहानुभूति प्रकट करता हूँ। बस मैं एक के रूप में यहाँ हूँ पता है कि सामने लाइन के रूप में आप के लिए संसाधन मदद करने में तुम लोगों को यह पता लगाने कैसे CS50 में और उससे आगे की समस्याओं को हल करने के लिए। मेरा ईमेल andi.peng@yale.edu है। मैं भी एक व्यक्ति को बाहर भेज देंगे उस में मेरा फोन नंबर के साथ ईमेल कि इतने पर हर कोई नहीं इंटरनेट मेरा फोन नंबर देख सकते हैं। मुझे किसी भी समय फोन करने के लिए स्वतंत्र महसूस। सच में, मेरे फोन है आमतौर पर मेरे हाथ से जुड़ी। मैं जवाब नहीं हो सकता एक दो मिनट के भीतर। मैं एक दो घंटे के भीतर जवाब नहीं हो सकता है। लेकिन मुझे लगता है, तो आप कर सकते हैं गारंटी अगर तुम मुझे फोन कर सकते हैं, मुझे ई मेल मुझे पाठ, मैं 24 घंटे के भीतर जवाब देंगे। बार बार, मैंने पहले जवाब देंगे मैं समझता हूँ कि, क्योंकि हर किसी को कुछ समस्याओं का मिल गया है कि, और आप अपने जवाब चाहते हैं बहुत जल्दी उत्तर दिया जाना। हालांकि, अगर आप कहते हैं मुझे 30 मिनट पहले कारण गुरुवार है कि उस टुकड़े , एंडी, मेरी मदद की तरह हो night--, मैंने सोचा कि मैं दे सकता है started-- नहीं किया है आपको लगता है कि कंधे पर रोने के लिए। लेकिन इसके बारे में सोचने के लिए समय हो सकता है अगली बार ऐसा नहीं करने के लिए कैसे। ठीक। उफ़। मैं कैसे वापस जाना है? हम वहाँ चलें। तो इस कोर्स में, हम एक हैं हर किसी के लिए समर्थन की टन। बस के अलावा यहां वर्गों, जो आप हर हफ्ते 90 खर्च करने के लिए मिलता है मेरे साथ अद्भुत मिनट, हम भी कार्यालय समय है। आप में से कितने लोगों का पहले से ही है मदद के लिए कार्यालय समय के लिए किया गया? अच्छा है। यही कारण है, यह देखने के लिए वास्तव में अच्छा है क्योंकि हम 45 से अधिक TAS और सीए के एक कर्मचारी है यहाँ कर रहे हैं कि इस पाठ्यक्रम के लिए प्रशिक्षित अपने psets के साथ आप लोगों की मदद करने के लिए। सोमवार वे चैती में आयोजित कर रहे हैं यहां 17 हिल हाउस में कक्षा येल में। मंगलवार और गुरुवार, वे कॉमन्स में आयोजित कर रहे हैं। बहुत ज्यादा 11:00 हर काम करने के दिन 8:00। आओ, बाहर आते हैं। किसी भी समस्या है, कोई problem-- बस में पर आते हैं, और फिर हम उस के साथ तुम्हारी मदद करेंगे। दूसरे, कार्यालय समय के अलावा और वर्गों, हम भी शॉर्ट्स है। क्या कभी किसी के एक जोड़े को देखा है वीडियो में शॉर्ट्स या walkthroughs वेबसाइट पर? ठीक। तो वे वास्तव में, वास्तव में मददगार रहे हैं। हमारा प्यारा हार्वर्ड उत्पादन उस स्कूल पर वहाँ पर टीम उत्तर अप, वे फिल्माया गया है और उत्पादन किया है इन अविश्वसनीय पूर्वाभ्यास वीडियो। वे आप के माध्यम से कदम से कदम उठाने देंगे कैसे एक समस्या को हल करने के बारे में जाना। बार बार, आप के बारे में भ्रमित कर रहे हैं एक सरल अवधारणा है, एक विलक्षण अवधारणा, हम शायद है, क्योंकि एक नज़र रखना कहीं न कहीं हमारी वेबसाइट पर उस पर एक छोटे से। और यह आमतौर पर एक महान स्रोत है जब आप पहली बार कर रहे हैं के लिए देखने के लिए एक समस्या को कैसे संभाल करने पर खो दिया है। तीसरा, हम भी है study50 और reference50। इतने पर 50 अध्ययन वेबसाइट सिर्फ एक कड़ी है। यह मुझे लगता है, है, study.cs50.net या कुछ इस तरह का। इसे गूगल पर देखें। हम तैयार स्लाइड के बहुत सारे है। हम शॉर्ट्स के बहुत सारे है और सभी संकलित walkthroughs-- बातें बहुत अच्छा है और आप सभी लोगों के लिए साफ के माध्यम से ब्राउज़ करने के लिए, किसी भी अवधारणाओं को देखने आप के बारे में भ्रमित कर रहे हैं। यह शायद कवर होगी वहाँ study50 में खत्म हो गया। समान Reference50--। हम विभिन्न नोटों की एक बहुत कुछ है अपने निपटान के लिए आसानी से उपलब्ध है। और अंत में, हम क्या है CS50 चर्चा कहा जाता है, जिसमें एक मंच है, अगर रात से पहले आप अपनी समस्याओं कर रहे हैं, कहते हैं, आप में एक सवाल है। चर्चा CS50 में प्रवेश करें। अपने प्रश्न पोस्ट। और hundreds-- की तो एक साथियों की शायद, thousands-- ऑनलाइन क्लास लेने में प्रवेश करेंगे। और शायद किसी को प्राप्त कर सकते हैं एक प्रादेशिक सेना सकता से पहले अपने जवाब। यह अनिवार्य रूप से सिर्फ एक है ऑनलाइन मंच है कि हम कर सकते हैं सब हमारी समस्याओं पर चर्चा करने के लिए इस्तेमाल करते हैं। यह अच्छा है। ठीक। तो समस्या सेट। हम में के बारे में सही कर रहे हैं समस्या की मोटी दो सेट। हम में से बहुत पहले से ही है समस्या के माध्यम से संघर्ष एक निर्धारित किया है। हम पहले से ही शायद इंतजार कर पता है कि कल रात अपने pset क्या करने के लिए CS50 में करने के लिए सबसे चतुर बात नहीं है। टिप्स और अनिवार्य रूप से करने के लिए सुझावों सफलता पूरे कल्पना पढ़ रहे हैं। आप में से कितने पहले से ही है pset 2 के लिए कल्पना पढ़ा है? ठीक। यही कारण है कि एक ठोस राशि है। मैं तुम लोगों को शायद मान्यता प्राप्त है पता अब तक चश्मा वास्तव में लंबे होते हैं। वे वास्तव में लंबी, वास्तव में कर रहे हैं। यह हर पंक्ति को पढ़ने के लिए वास्तव में मुश्किल है शब्द से है कि ध्यान से शब्द की। तुम बस करने के लिए जहां हवा में घूमना चाहते हैं यह आप कुछ करने के लिए कहता है। मैं तुम्हें गारंटी कर सकते हैं, ऐसा नहीं करते। यदि आप ऐसा करते हैं, तो आप शायद रहे हैं कहीं न कहीं यह याद करने जा जहां यह आपको बताता है कैसे एक समस्या शुरू करने के लिए या यह नाम करने के लिए क्या आपको बताता है अपनी समस्या या यह आपको बताता है, यह शायद सबसे अच्छा तरीका है आपकी समस्या शुरू कर रही है। और फिर आप खो सकता हूँ। आप अपने पढ़ने के लिए प्रयास करते हैं आधे रास्ते के माध्यम से कल्पना, महत्वपूर्ण का एक बहुत आप नहीं कर रहे हैं कि में information-- वास्तव में उपयोग करने के लिए सक्षम होने के लिए जा रहा है। तो पूरी कल्पना पढ़ा। पूरे कल्पना को पढ़ने के लिए प्रयास करें आप अनुभाग के लिए आने से पहले, तो, क्योंकि जब हम pset के बारे में बात करते हैं, हम सब एक विचार हो सकता क्या हो रहा है की। दूसरे, यह एक अवधारणा है मैं संदर्भ के लिए पसंद करेंगे कि पाठ्यक्रम सेमेस्टर भर में एक बहुत। लेकिन अनिवार्य रूप से, ठीक है, आधे रास्ते में हमें पूरा? मुझे अपने टीए और जेसन के रूप में पाठ्यक्रम के रूप में अपने प्रोफेसर के रूप में प्रबंधक और Scaz और दाऊद अपने प्रोफेसर और सभी के रूप में इस पाठ्यक्रम में अन्य सुंदर tas, इस कोर्स में सहायकों हम अपनी पूरी कोशिश करेंगे आप सेट कर रहे हैं कि यह सुनिश्चित करने के लिए ऊपर इस कोर्स में सफल होने के लिए। हम अनुभाग का आयोजन करेगा। हम कार्यालय घंटे का आयोजन करेगा। हम आपके फोन का जवाब देना होगा कॉल, आपके ई-मेल का जवाब बनाने के लिए हम सब कुछ कर सकते सुनिश्चित करें कि आपके सवालों के जवाब दिए हैं। हालांकि, बहुत हमें बाहर की मदद करते हैं। आधे रास्ते में हमें मिलो। आप कार्यालय समय के लिए आते हैं नहीं, अनुभाग के लिए नहीं चला रहा है कोई आ रहा है, व्याख्यान भी देखा है विचार, मेरी मदद की तरह हो सकता है, पर क्या हो रहा है। मैं अच्छी तरह से, मैं माफी चाहता हूँ, की तरह होने जा रहा हूँ। यह उधार देने के लिए समय हो सकता है कि कंधे पर रोना मुझे यकीन नहीं है क्योंकि मैं आपकी मदद करने के लिए क्या कर सकते हैं आप कम से कम मदद करने की कोशिश नहीं करते हैं तो खुद के शुरुआत में एक छोटा सा। आधे रास्ते में हमें मिलो। तुम्हें पता है, कृपया आओ जवाब है और पाने के लिए तैयार सामग्री में संलग्न करने के लिए तैयार है। यह इतना बातें करता है इसमें शामिल हर किसी के लिए आसान है। हाँ, यह बहुत ज्यादा है। ग्रेडिंग। तो सिलेबस पर, यह बहुत है में गहराई से हम कैसे ग्रेड के बारे में। लेकिन अनिवार्य रूप से टूटने इस में अपने ग्रेड के 50% है psets, जो हो जाएगा क्योंकि है कि, सुंदर है जहां आप विशाल खर्च कर रहे हैं पर अपने पाठ्यक्रम समय के बहुमत। 40% परीक्षाएँ, और अपने अंतिम परियोजना 10% होगा। भर दो क्विज़ हो जाएगा सेमेस्टर के पाठ्यक्रम। मैं समय और तारीख रहे हैं लगता है यह भी पाठ्यक्रम पर सूचीबद्ध। तरीका यह है कि हम करेंगे अपने psets ग्रेडिंग किया हम अनिवार्य रूप से चार के लिए किया है हम प्रत्येक कक्षा के लिए आवंटित है कि मूल्यों। हम क्षेत्र के एक मूल्य है, शुद्धता, डिजाइन, और शैली। जैसा कि आप देख तो, उस की तरह है हमारी psets गणना के लिए सूत्र। तीन हम सबसे देना वजन, शुद्धता के लिए जाहिर है अपने कोच क्योंकि मामलों के लिए परीक्षण किया जाना चाहिए हम चाहते हैं कि इसके लिए परीक्षण करने के लिए। तुम लोग सब है अपने निपटान check50। यह एक बहुत ही उपयोगी कार्य है आप लोग सब कर सकते हैं कि हमारे सर्वरों के लिए अपने कोड को अपलोड, जहां हम आप के लिए यह जाँच करेगा। और अगर आप उन लोगों को देखा है frowny चेहरे, स्माइली चेहरे। वे वास्तव में, वास्तव में मददगार रहे हैं। नहीं करते कृपया कोशिश करता है कि जैसे छात्र उन्हें सारे सवालों के जवाब में hardcode करने के लिए। मैं निश्चित रूप से एक pset जहां देखा है किसी check50 के सभी मूल्यों को देखा और वे सिर्फ कड़ी मेहनत करता है, तो in-- कोडित यह संख्या इस संख्या में बाहर प्रिंट। उस नंबर हैं, तो उस नंबर का प्रिंट आउट। ऐसा मत करो। यहां तक ​​कि तकनीकी रूप से यद्यपि check50 सही है, के हल के लिए अपने रास्ते समस्या सही नहीं है। तो बस संयम से check50 का उपयोग करें। लेकिन यह भी सुनिश्चित करें कि आप यह कार्य कर रहा है कि कैसे समझते हैं, कार्यक्रम कार्य कर रहा है check50 के अलावा, हम हर परीक्षण नहीं कर सकता, क्योंकि check50 के संभावित मामले। हम उनमें से कुछ का परीक्षण करेंगे। डिजाइन अनिवार्य रूप से, कैसे अपने कोड में अच्छी तरह से बनाया गया है? आप कॉपी-चिपकाने एकाधिक कर रहे हैं कोड कई, कई बार की तर्ज। हो सकता है कि आप काफी नहीं है अपने कोड में सबसे अच्छा डिजाइन। शायद यह है कि पाश जोड़ने के लिए समय है। मूलतः, यहाँ यह सिर्फ सब है अपने कोड करने की कोशिश कर के बारे में, कुशलता के रूप में अपने कोड लिखने की कोशिश संभव है, ताकि अपने कार्यक्रम चलाता है के रूप में जितना जल्दी हो सके। अन्त में, हम शैली है। तो शैली एक की तरह है मनमाना, सापेक्ष शब्द। मुझे लगता है हम आधिकारिक तौर पर पता है कि CS50 के लिए एक शैली 50 गाइड, यह ओह, आपको बताता है, जहां आप यहां एक स्थान होना चाहिए। तुम चाहिए प्रारूप की तरह अपने कोड इस तरह से। आप इस तरह से चीजों को नाम चाहिए। मैं वास्तव में, असल में परवाह नहीं है, कैसे यदि आप अपने कोड शैली के लिए चयन बस के रूप में लंबे समय तक आप लगातार रहने के रूप में। उदाहरण के लिए, आप की तरह है अपने चार के बाद एक जगह छोड़ दें अपने चार पाश से पहले, बस हर समय करते हैं। एक तरह से यह मत करो। यह दूसरी बार ऐसा मत करो। आप घुंघराले रखना पसंद करते हैं ब्रेसिज़ अंतरिक्ष एक निश्चित तरीके से, बस हमेशा ऐसा तरीका है। एक तरह से कहीं न कहीं यह मत करो यहाँ और कहीं नहीं देखते। हम ग्रेडिंग कर रहे हैं, यह वास्तव में मुश्किल है मुझे पता नहीं कैसे हो, तो यदि आप अपने कोड स्वरूपण रहे बातें निराला और जगह से बाहर हैं। तुम सिर्फ लगातार यह रखना है, यह है अधिक से अधिक के रूप में मेरे लिए बहुत आसान अपने कोड को पढ़ने के लिए सक्षम होने के लिए। यह एक छात्र के रूप में आप के लिए बहुत आसान है अपने कोड के माध्यम से देखने के लिए सक्षम होने के लिए और साथ गलत क्या है यह देखने मुद्दों है क्यों यह स्लेश। शैली आसान चीजों में से एक है तुम लोगों को पूर्ण स्कोर पाने के लिए क्या कर सकते हैं। अनिवार्य रूप से, आप बस, तो परवाह है आप ध्यान से पांच मिनट का भुगतान हर हफ्ते अपने कोड के लिए, तुम चाहिए पूर्ण शैली अंक हो रही हो। अन्त में, हम क्या कहा जाता है है दायरे के गुणक। Scope-- मैं इसे एक बड़ी है पता विशेष रूप से इस वर्ग में शब्द,। लेकिन गुंजाइश है कि सभी साधन आप प्रयास कर रहे हैं वह यह है कि अपनी क्षमता के अनुसार psets। आप तीन बाहर में बारी है अपने चार समस्याओं की और भी प्रयास नहीं करते पिछले एक है, आप शायद रहे हैं गुंजाइश पर कुछ अंक खोने के लिए जा रहा है। आप बस समस्या शुरू, भले ही इसके माध्यम से चलने के लिए अपने सबसे अच्छा है। यह काम नहीं करता है, भले ही उस में बारी पता चलता है कि और यह दर्शाता है क्योंकि हमें करने के लिए आपको लगता है कि, कोशिश कर रहे हैं कि आप सेट समस्या का प्रयास अपनी क्षमता का सबसे अच्छा करने के लिए। और फिर हम आपको दे सकते हैं क्षेत्र के लिए पूरे अंक। स्कोप भी जब हम के लिए बहुत महत्वपूर्ण है सबसे कम pset स्कोर गिरावट के बारे में बात करते हैं। तो के पाठ्यक्रम पर सेमेस्टर, तुम लोग नौ psets है। और हम वास्तव में गिर जाएगा उन नौ में से कम से कम स्कोर, लेकिन आप पूरी गुंजाइश अंक है तभी। तो अगर आप एक अधूरी pset में बारी, दुर्भाग्य से, हम जानते हैं कि एक बूंद नहीं कर सकते हैं, अपने दायरे क्योंकि अंक पूरा नहीं किया गया। आप भयंकर सप्ताह है तो भी अगर आप मर रहे हैं और तुम बीमार हो जहां या अपने कुत्ते, अपनी बिल्ली, मरता और तुम होमवर्क के साथ अतिभारित रहे हैं, सिर्फ pset प्रयास। यह अपनी क्षमता का सबसे अच्छा करने के लिए करते हैं। यह काम नहीं करता है, यह बात नहीं है। बस में बदल जाते हैं। कम से कम हम दे सकते हैं आप प्रयास के लिए इशारा करते हैं। इस वर्ग में प्रयास के लिए एक। प्रयास के लिए कम से कम कम से कम स्कोर बूंद पर। इसलिए। कि यह बहुत सुंदर है। किसी को भी तो सवाल है अब तक कक्षा में हम कैसे ग्रेड पर? या इनमें से किसी भी? इनमें से कोई भी इतनी far-- वर्गों, कार्यालय समय? कूल। ठीक। तो यह एक विषय है कि कोई है एक सच के बारे में बात करना पसंद करता। मैं वास्तव में इसके बारे में बात करना पसंद नहीं है। तुम लोग वास्तव में नहीं करना चाहते मुझे इसके बारे में बात सुनने के लिए। लेकिन दुर्भाग्य से, हम सब इसके बारे में बात करनी है। डेविड 20 मिनट के एक बिताया इसके बारे में बात व्याख्यान। और उस विषय है शैक्षणिक ईमानदारी की। इसलिए हम सब यहाँ शायद लिखा है हमारे येल कैरियर में एक निबंध कुछ समय। हम शायद हम है, जहां एक बात मिल गया है हमारे निबंध plagiarize नहीं करने के लिए कहा गया, कि काम हमारा नहीं है क्योंकि। कंप्यूटर विज्ञान में, हम है अवधारणा की इसी तरह की। आप सबमिट करें कि सभी काम, आप लिखते हैं कि सभी कोड लिखा है कि आप कोड होना चाहिए। आप है कि कोड नहीं होना चाहिए कहीं और से नकल की। कोड नहीं होना चाहिए कि आप googled और में plopped गए हैं अगर यह काम करता है और आप सच में नहीं पता। आप की तरह की भावना है यह नहीं, बल्कि वास्तव में क्या कर रहा है। जब संदेह में, अनिवार्य रूप से, यह सिर्फ उचित हो रहा है। हमारे पाठ्यक्रम पर, हमारे पास चीजों की एक पूरी सूची हम के रूप में उचित देखना उचित नहीं बनाम। उदाहरण के लिए, उचित आप और आपका दोस्त है क्या सबसे अच्छा तरीका चर्चा कर जाना के बारे में तार्किक एक समस्या को सुलझाने। यही कारण है कि काफी उचित है। क्या उचित नहीं होगा अगर तुम है लोग, एक साथ मिला एक ही कोड टाइप किया और एक ही कोड में बदल गया। यही कारण है कि उचित नहीं है। एक ही बात है, एक निबंध की तरह। आप चर्चा करना चाहते हैं अपने दोस्त के साथ, हे, इस बारे में मैं लिखना चाहता हूँ क्या है। ये मैं चाहता हूँ कदम उठाए हैं महान, इसके बारे में लिखने के लिए ले। यह तो बहुत ही अच्छी बात है। एक दूसरे के साथ सहयोग करें। तुम लोगों को शुरू करते हैं एक ही बात है, लेखन एक ही पारी में बदल जाते हैं, कि कम से ठीक है। तो जब संदेह में, बस ऐसा नहीं करते हैं। यहाँ, हम CS50 में, हम लिपियों कि रन परीक्षण करने के लिए स्वचालित करने के लिए न केवल अपने कोड की सत्यता, लेकिन यह भी अपने कोड की विशिष्टता। इसलिए स्थिति में डाल मत करो के EXCOMM करने के लिए अपने मामले का उल्लेख करने के लिए कर रही है। चलो बस जाने, बस सब के लिए कृपया यह एक अद्भुत अनुभव करते हैं। हर कोई, बेहतर सीखता हम सब खुश हैं, और हम सभी के लिए स्थापित कर रहे हैं इस कोर्स में सफल होते हैं। बहुत कुछ है कि इस वर्ग के बारे में अद्वितीय मैं हर किसी को सच में करना चाहिए लगता है कि यह है कि हम पर ध्यान देना क्या अफसोस कहा जाता है हमारे पाठ्यक्रम में खंड। तो अनिवार्य रूप से 72 घंटे के भीतर, यदि क्या आप कुछ किया है विश्वास करते हैं तुम सच में यकीन था नहीं कर रहे हैं उचित, हमारे पास आते हैं कृपया। हम तुमसे वादा करता हूँ कि 72 घंटे के भीतर हम इस मामले में खुद को संभाल लेंगे एक उच्च का जिक्र किए बिना प्रशासन में अधिकार। तो तुम मेरे पास आते हैं और कहते हैं, एंडी, अरे, मैं माफी चाहता हूँ, लेकिन मैं एक दो लाइनें मेरे में लगता है कि वहाँ मैं एक तरह से googled कोड है कि कल रात को, ढेर के लिए बंद हो गया अतिप्रवाह, कॉपी और चिपकाया, और मैं वास्तव में, वास्तव में माफी चाहता हूँ उस बारे में, मुझे पता है। सिर्फ यह फोड़ा ऐसा नहीं करते कृपया और अभी मैं इसे पकड़ने की उम्मीद है। हम इसे पकड़ने के लिए होगा। बस मेरे पास आते हैं। मुझे 72 घंटे के भीतर जानते हैं। हम एक समाधान ढूँढ़ लेंगे। और हम हम का उल्लेख नहीं होगा वादा अनिवार्य रूप से विश्वविद्यालय के अधिकारियों। तो यह आपके हित में है बस सब के साथ ईमानदार होना पाठ्यक्रम में शामिल किया गया। ठीक। ठीक। तो अब, जल्दी से पहले मैं पर ले जाते हैं, किसी को भी करता है रसद के बारे में प्रश्न हैं कैसे पाठ्यक्रमों पर हम चलाने के लिए जा रहे हैं, कैसे वर्गों जा रहे हैं , इस बात का किसी को चलाने के लिए? ठीक। हाँ। दर्शकों: [अश्राव्य]? ANDI PENG: हाँ। ऐसा कर रहे हैं आप में से कितने quizzes-- सोमवार / बुधवार अनुभाग में? में आप में से कितने हैं मंगलवार / गुरुवार? ठीक है, तो यह यहाँ एक ठोस विभाजन है। तो हम चला कि रास्ता येल में यह है कि हम है अलग दो करने जा रहे हैं प्रत्येक section-- के लिए एक quizzes-- कि कक्षा के दौरान लिया जाएगा। मैं इसे अक्टूबर, अक्टूबर के अंत लगता है हफ्ते एक के रूप में ऐसा कुछ, प्रश्नोत्तरी की। हाँ, तो सिर्फ वर्ग के लिए आते हैं। कि सोमवार या बुधवार को आप प्रश्नोत्तरी ले जाऊँगा। कि मंगलवार या गुरुवार को आप एक अलग प्रश्नोत्तरी ले जाऊँगा। लेकिन एक ही सामग्री को कवर किया जाएगा। हाँ। अच्छा प्रश्न। हाँ। दर्शकों: हम कहाँ करना हमारे ग्रेड जाँच करने के लिए जाना है? ANDI PENG: हाँ। तो मैं बाहर एक भेज दिया जाएगा ई-मेल जो कुछ भी प्रत्येक सप्ताह क्विज़ graded-- कर रहे हैं या जब, क्षमा करें, psets वर्गीकृत कर रहे हैं। Psets आम तौर पर बदल रहे हैं दोपहर या शुक्रवार से में। इसलिए मुझे लगता है कि मैं वादा करता हूँ कि आप के लिए उन्हें वापस लाने के लिए प्रयास बाद शुक्रवार की दोपहर तक। जब भी मैं ग्रेड एक pset, मैं भेज देंगे ग्रेड किताब पर एक अधिसूचना बाहर कि आप अपने स्कोर में बताता है ऑनलाइन देखा जा सकता है। तो सही इस हफ्ते, मैं के बाद पिछले हफ्ते के psets ग्रेडिंग खत्म, तुम लोगों को एक ई-मेल प्राप्त होगा अधिसूचना, आप कह रही अरे यह तुम कहाँ है अपने ग्रेड देखने के लिए जाना। और तुम हर देख सकते हैं अपने ग्रेड के टूटने। आप टिप्पणी देख सकते हैं। ओह, जल्दी बात भी। महान में टिप्पणी अनुभाग पुस्तक जहां मैं शायद जाएगा मेरे समय ग्रेडिंग के बहुमत खर्च करते हैं। तो एक बात है कि जब वास्तव में महत्वपूर्ण तुम लोगों को देख रहे हैं अपने ग्रेड अपनी psets पर केवल नहीं लग रही है शारीरिक स्कोर पर लेकिन यह भी करने के लिए समय ले रही है वास्तव में मेरी टिप्पणी पढ़ा। अक्सर कि आप प्रतिक्रिया देता है यदि आप एक समस्या सुलझाने रहे हैं पर। तुम क्या करने की जरूरत है थोड़ा बेहतर कुछ, रचनात्मक आलोचना आमतौर पर है सबसे अच्छा उन टिप्पणियों खंड में दिए गए। तो, मैं जा रहा हूँ कृपया टिप्पणी लिखने के समय खर्च करने के लिए। , मैं वास्तव में खुशी होगी कृपया तुम लोगों को उन टिप्पणियों को पढ़ने चाहते हैं। ठीक। कूल। ठीक है। इसलिए हम बात कर शुरू करने जा रहे हैं और बस जल्दी से समीक्षा कर से सामग्री में से कुछ सप्ताह हम कर रहे हैं, बस इतना शून्य के लिए सही पेज पर इस सप्ताह की समस्याओं शुरुआत। तो, जबकि पाश में से एक है छोरों के तीन प्रकार की हम पहले भी इस वर्ग में भी चर्चा की। एक जबकि पाश अनिवार्य वाक्य रचना में लिखा है जहां, एक निश्चित शर्त है, जबकि यह सही है, बार-बार करते हैं? यहाँ इस ग्राफिक में इसके बारे में सोचो। आप एक पर शुरू करने के लिए जा रहे हैं अपने कोड में कुछ बिंदु। आप पाश हालत में प्रवेश करने जा रहे हैं if-- मैं know-- नहीं है एक्स एक से भी कम है। अगर यह सच है, तो आप जा रहे हैं पाश शरीर पर अमल करने की। और अगर आप कर रखने के लिए जा रहे हैं कि फिर से, फिर से, फिर से, यह एक क्यों है और अधिक से over-- जो है loop-- अपनी हालत हो जाता है जब तक गलत। इस तरह से, थोड़ी देर के पाश तो सरल तरीकों में से एक है हालत के किसी भी तरह लिखने के लिए कि और अधिक से अधिक और अधिक दोहराने की जरूरत है। बस जब भी सावधान रहना होगा आप पाश के किसी भी तरह लिख रहे हैं आप एक से बाहर निकलें शर्त के रूप में है कि अच्छी तरह से जो कुछ भी करने के लिए एक अद्यतन के रूप में यह अपने पाश बस नहीं है कि इतनी है पर और असीम रूप से अधिक रन। किसी भी मामले में, आप जा रहे हैं बनाना चाहते करने के लिए आप में से कुछ पहलू बदल रहे हैं अपने कोड या पाश के अंत में बस आप एक तरीका है कि यह सुनिश्चित करना हालत की दिशा में प्रगति की आप को समाप्त करने को पूरा करना चाहते हैं। कि हर किसी के लिए मतलब? हम सिर्फ होना नहीं करना चाहते हैं इस सर्पिल जहां में पकड़े गए हम चारों ओर और चारों ओर जाने के लिए और पाश तोड़ने के लिए कोई रास्ता नहीं है। और हर पाश अनिवार्य कर रही है कि का एक तरीका है। ठीक। आप में से दूसरे, कई मारियो अपने psets में शायद रोजगार के लिए किया था पाश के इस प्रकार के। यह एक Do पाश जबकि कहा जाता है। सब से पहले, किसी ने मुझे बता सकते हैं क्या एक मत के बीच का अंतर पाश और थोड़ी देर के पाश है, जबकि? हाँ। दर्शकों: पाश करते हैं, जबकि [अश्राव्य] पहली बार में चलाता है। ANDI PENG: हाँ, बिल्कुल। इसलिए एक मत पाश हमेशा करता है, जबकि जो कुछ भी कोष्ठक के अंदर, Do अंदर है वहाँ और उस हालत करता है the-- खेद के लिए जाँच से पहले, इससे पहले कि कोड करता है इस हालत के लिए जाँच। और यह हमारे लिए विशेष रूप से प्रासंगिक है यहां इस वर्ग में, सबसे अधिक बार क्योंकि हम शीघ्र करना चाहते करने जा रहे हैं इनपुट के कुछ प्रकार के लिए उपयोगकर्ता। और फिर, पर निर्भर करता है वे हमें दे इनपुट, तो हम ओह, करते हैं, मूल्यांकन कर सकते हैं हम फिर से उन्हें संकेत की जरूरत है? मारियो में तो, यदि उपयोगकर्ता तुम्हें दे दिया एक नकारात्मक ऊंचाई, उदाहरण के लिए, जब आप पहली बार शीघ्र करने के लिए जा रहे हैं और अंदर जो कुछ भी करते हैं। तो फिर तुम जबकि जांच करने के लिए जा रहे हैं। तुम्हें पता है, एक नकारात्मक है एक सकारात्मक संख्या कि है? यदि ऐसा नहीं है, मैं जा रहा हूँ पीठ और करते हैं और दोहराने दोहराने और दोहराने और वे जब तक दोहराएँ अंत में आप चाहते हैं कि एक नंबर दे, हम सब हमारे कोड में काम कर सकते हैं कि। इसके लिए बहुत महत्वपूर्ण है अनिवार्य रूप से किसी भी उपयोगकर्ता इनपुट। मैं किसी भी आप कर सकते हैं गारंटी एक pset जहां में समय हम निवेश करने के लिए आप से पूछना कोड के किसी भी तरह, हम कर रहे हैं शायद तुम्हें देने के लिए जा रहा हम कर रहे हैं, जिसमें एक परीक्षण के मामले जा रहा है कि अगर आप बुरा कुछ देना अपने कोड को तोड़ने की कोशिश करने के लिए जा रहा है। हम इनपुट एक करने के लिए आप से पूछना करने के लिए प्रयास करें, तो पूर्णांक, हम तो बस आप एक स्ट्रिंग दे सकता है और आपको लगता है कि संभालना होगा कैसे देखते हैं। हम एक ऐसे युग को रोजगार के लिए आप से पूछना है, हम आपको एक नकारात्मक नंबर दे सकता है आपको लगता है कि संभालना होगा देखने के लिए। बस आप लोगों के लिए परीक्षण कर रहे हैं सुनिश्चित करें जिन मामलों में आप सबसे अच्छा नहीं मिलता इनपुट, चलो बस कहना है। और लूप, जबकि एक मत बार बार सबसे अच्छा है तो अपने कोड डिजाइन करने के लिए रास्ता यह उस दायरे को पूरा करता हो। ठीक। ठीक। तो यह शायद सबसे अधिक है तीन में से जटिल पाश कि हम अब तक देखा है। और यह पहली बार में बहुत डरावना लगता है। लेकिन मैं तुम्हें गारंटी है कि तुम लोग एक बार पाश के लिए एक का उपयोग कैसे भांप लेना, यह सबसे उपयोगी चीजों में से एक है, अपने शस्त्रागार में सबसे उपयोगी उपकरण इस वर्ग में आगे बढ़ने के लिए। तो उदाहरण के लिए, खरोंच में, हम यह बहुत ही सरल ब्लॉक था लगता है कि सिर्फ कुछ इस दोहराने कहा समय की निश्चित संख्या के वाक्यांशों। वैसे, SAJ-- कि Scaz एंडी जेसन है। हम बार बार हमारे ईमेल SAJ साइन इन करें। हम SAJ कहते हैं, भ्रमित नहीं करते। यही कारण है कि सिर्फ हमें है। तो खरोंच में, हम करने के लिए सक्षम थे कहा कि एक ब्लॉक, मैं SAJ प्यार फिर से! 10 बार। बहुत आसान। उस के पीछे तर्क है एक बहुत, बहुत आसान है, है ना? जब मैं पहली बार पहले के माध्यम से जाना चाहता हूँ समय और कहा कि दूसरी बार देखना और बहुत आगे है, कि, तीसरी बार देखना और इतने पर, जब तक आप 10 के लिए मारा। और वैसे भी हम में कि प्रतिनिधित्व करेंगे कोड सिर्फ पाश के लिए एक सरल माध्यम है। के लिए तो, आप की घोषणा करने जा रहे हैं इस मामले में यहां अपने चर, एक पूर्णांक के साथ। हम इसे मैं नाम लिए जा रहे हैं। हम इसे 0 प्रारंभ करने के लिए जा रहे हैं। और रोक संस्करण है मैं होने जा रहा है कम से कम 10 है। और अद्यतन i ++ होने जा रहा है। और लूप के भीतर, यह जा रहा है अंत में यह तक अमल करने के लिए condition-- के अंत हिट जिसमें मामला है, यह पाश तोड़ने के लिए जा रहा है। सामान होना चाहिए कि आप लोग सभी तरह के पहले देखा है आपकी समस्या का एक सेट के लिए और क्या करना था। किसी को भी किसी भी सवाल है अब ठीक छोरों के लिए के बारे में? ठीक। अच्छा है। ठीक। तुम में से जो उन लोगों के लिए तो इस सप्ताह के लिए pset कल्पना पढ़ा हम रोजगार के लिए करने जा रहे हैं कि पता कुछ ASCII और ASCII तालिका कहा जाता है। तब दाऊद ने व्याख्यान में संक्षेप में खत्म हो गया था कैसे कंप्यूटर essentially-- सब कुछ में एक कंप्यूटर में इनकोडिंग है द्विआधारी, शून्य और लोगों में। और कंप्यूटरों में सक्षम हैं कि रास्ता इसके अलावा में विभिन्न मूल्यों की दुकान शून्य और लोगों को मानचित्रण के माध्यम से कर रहे हैं उन लोगों की संख्या अन्य अंक का प्रतिनिधित्व करने के लिए या अनिवार्य रूप से अन्य पात्रों। , एक तो इस मामले में यह सब करता table-- आस्की नंबरों के लिए नक्शे अक्षर, या घर का काम है। स्रोत कोड फ़ाइल में तो अपनी यह देखता computer--, अरे, शून्य और लोगों का एक गुच्छा, शून्य और लोगों, शून्य और लोगों। यही कारण है कि में संग्रहीत क्या है आपके कंप्यूटर के वास्तविक स्मृति। लेकिन हम मनुष्य के लिए चाहते हैं जब कंप्यूटर के साथ संवाद, हम उदाहरण के लिए कहते हैं, want--, मैं अपरकेस एक चाहते हैं, मैं किसी तरह की जरूरत के लिए जा रहा हूँ कंप्यूटर बताने का, ओह, मैं अपरकेस ए टाइप करते हैं, मेरा मतलब है बाइनरी में इस प्रतिनिधित्व। और इसलिए हम ऐसा रास्ता फेंक दिया जाता है एक मनमाने ढंग से बात एक ASCII तालिका कहा जाता है, जहां हम, मनुष्य के रूप में, के रूप में प्रोग्रामर, कुछ समय पहले, हम मनमाने ढंग से हम फैसला किया है कि इन नंबर आवंटित करने के लिए जा रहे थे इन पात्रों के लिए मान। तो तुम लोग इस ऑनलाइन गूगल कर सकते हैं। मैं यह करने के लिए एक लिंक अपने में लगता है कि वहाँ pset-- सिर्फ एक ASCII नक्शा मेज, आस्की मेज। यह सिर्फ द्विआधारी तब्दील पात्रों में संख्या। और यह बहुत ही होने जा रहा है आपकी समस्या सेट के लिए उपयोगी जब भी तुम चाहो कुछ भी है या आप यदि गणना निश्चित प्रदर्शित करना चाहते हैं अक्षर या पूर्णांकों या कुछ पात्रों में हेरफेर। यह बहुत ही होने जा रहा है महत्वपूर्ण है कि आप सभी एक ASCII तालिका नेविगेट करने के लिए कैसे पता है। उदाहरण के लिए, अपरकेस एक तो 65 नंबर का प्रतिनिधित्व करती है। और छोटे एक 97 का प्रतिनिधित्व करती है। तो यह है कि यह जानना महत्वपूर्ण है दो मूल्यों के बीच का अंतर 32 है। बार बार, तुम से बदलने की जरूरत है दूसरे के लिए एक, अंतर 32 है। आप की तरह कर रहे हैं और चिंता मत करो पहली बार में इस पर से उलझन में है। हम कैसे हम करेंगे पर जायेंगे वास्तविक कोड में इस रोजगार। ठीक। , बाहर लैपटॉप के साथ आप उन लोगों के लिए तो एक ASCII तालिका को खींचने के लिए स्वतंत्र महसूस हो, ये शायद होगा क्योंकि तुम लोगों को संदर्भित करने के लिए आवश्यकता होती है पात्रों क्या कर रहे हैं। ठीक। तो यह है कि कुछ जानते हुए भी वर्ण, कुछ नंबरों को मैप मैं सिर्फ पहली चलाने के लिए गए थे इस बात का लाइन, printf एक code-- एक शून्य से लोअरकेस अपरकेस ए किसी को भी करता है क्या होगा पर एक अनुमान है अब ठीक स्क्रीन के बाहर मुद्रण? सब से पहले तो, क्या करता है एक प्रतिनिधित्व लोअरकेस? क्या नंबर है कि ASCII तालिका में इनकोडिंग। क्षमा करें? दर्शकों: 97? ANDI PENG: 97, महान। और बड़े एक क्या है? दर्शकों: 65। ANDI PENG: तो 97 शून्य से 65 में क्या है? दर्शकों: 32। ANDI PENG: ठीक है। तो जा रहा है कि तुम लोग क्या सोचते हैं जब मैं इनपुट होता है कि कोड की लाइन मेरे कंप्यूटर में? दर्शकों: [अश्राव्य]। ANDI PENG क्षमा करें, बोलो। कोई चिंता नहीं। यह एक बहुत ही सुरक्षित है पर्यावरण, शून्य से कैमरा। हम सभी में कोई चिंता नहीं है-- जा रहे हैं। बस हम सब की तरह नाटक करने के लिए जा रहे हैं यह सिर्फ हमें इस कमरे में आराम कर रहा है। कोई चिंता नहीं। कोई सवाल भी बेवकूफी है। कोई जवाब एक बेवकूफ का जवाब है। मैं शायद गलतियों को बनाने के लिए जा रहा हूँ मेरे शिक्षण के पाठ्यक्रम में। सच में, दोस्तों, बस इसे बाहर जोर से बोलना। अपने आप में विश्वास है, आप जानते हैं? तो यह है कि क्या था? कौन है कि पिछले जवाब कहा? ठीक। कि अच्छा और साफ चिल्लाओ। दर्शकों: 32? ANDI PENG: 32। ठीक है, चलो इस कोड को चलाने और कि क्या होता है, तो देखते हैं। ठीक। तो के रूप में आप लोग कर सकते हैं प्रकार की , मैं ठेठ संकेतन देखना हम रोजगार होगा कैसे के लिए यहां स्थापित हमारे कंप्यूटर में कार्यक्रम के किसी भी तरह। हम अपने मुख्य समारोह है हमारा मुख्य समारोह के भीतर। मैं तो बस कॉपी करने के लिए जा रहा हूँ और कोड की इस पंक्ति पेस्ट करें। जब तुम लोगों को भी सावधान रहना कॉपी करने और कोड चिपका रहे हैं। कभी कभी कुछ ऑपरेटरों सही ढंग से खत्म पेस्ट नहीं है। उस मामले में, शून्य साइन वास्तव में एक पानी का छींटा था। और तो कंप्यूटर इसे लेने के लिए नहीं किया था। तो मैं वापस जाने के लिए किया था और शारीरिक रूप से कि फिर से लिखें। बस जब सावधान रहना होगा तुम लोगों को लगता है कि कर रहे हैं। ठीक। हम यहाँ इस चलाने के लिए जा रहे हैं। इसलिए हम अपने section2 में सीडी के लिए जा रहे हैं। मैं इस कार्यक्रम asciimath बुलाया है। हम किसी भी चलाते हैं तो, जब याद कार्यक्रम है, जब हम पहली बार यह संकलन करना चाहते हैं हमारे मेकअप के माध्यम से यह चल रहा है। और फिर हम वास्तव में चलाना चाहते हैं डॉट स्लेश कर रही द्वारा कार्यक्रम। इसलिए हम ./asciimath करने के लिए जा रहे हैं। ठीक है, वहाँ हम चले। और हम 32 से देखते हैं। बहुत बढ़िया। आप कैंडी के एक टुकड़े के लायक हो। आप के लिए कैंडी। माफ़ कीजिए। ठीक है। ठीक। तो हम यहाँ वापस हमारे उदाहरण के लिए जा सकते हैं। नहीं, आह। आह। ठीक। मैं सिर्फ यह पसंद है कि रखने के लिए जा रहा हूँ। ठीक। ठीक। तुम लोगों को देख सकते हैं, हम क्या कर सकते हैं बहुत ही रोचक बातें की बहुत सारी, बहुत ठंडी चीजों का एक बहुत कुछ है, का एक बहुत शामिल बहुत जटिल बातें ASCII वर्ण और संख्या। आप पांच लाइन के लिए नीचे पाने के बाद, कि साथ पालन करने के लिए बहुत कुछ है। हम जाने के लिए नहीं जा रहे हैं अनुभाग के माध्यम से। आप कर सकते हैं, तो करने के लिए स्वतंत्र महसूस, इसे कागज पर बाहर कारण पहले जब क्या हो रहा हो जाना चाहिए पर मूल्यों की आप इनपुट इस तरह के एक स्ट्रिंग। उदाहरण के लिए, कि अंतिम पंक्ति में, हम है z-- एक निश्चित number-- प्रतिनिधित्व करता है जो एक-- भी प्रतिनिधित्व करता है जो एक कुछ number-- प्लस 1 modulos 26 प्लस एक छोटे। तुम लोगों को पढ़ते रहते हैं इन के माध्यम से, आप एक पैटर्न में आ देख सकते हैं हम कैसे कोड जोड़ तोड़ कर रहे हैं। मैं अत्यधिक, अत्यधिक सुझाव है आप की धारा सब के बाद लोग आगे और इनपुट जाना आपके कंप्यूटर में उन सभी और किस तरह देखते हैं नंबरों बाहर आ रहे हैं और उन क्यों कर रहे हैं के माध्यम से तर्क क्योंकि आपके psets के लिए हो रहा है, यह वास्तव में महत्वपूर्ण हो जाएगा आप समझने के लिए क्यों कुछ बातें हो रही हैं। इन स्लाइड के सभी ऑनलाइन हो जाएगा। करने की कोशिश के बारे में तो कोई चिंता नहीं शारीरिक रूप से नोट नीचे कॉपी। सब कुछ ऑनलाइन। इस अनुभाग में ही ऑनलाइन हो जाएगा। मेरे सभी स्रोत कोड है कि मैं ऑनलाइन हो जाएगा चल रहा हूँ। हाँ। आप अभी भी एक सवाल है? दर्शकों: modulos क्या है? ANDI PENG: ठीक है। तो सापेक्ष जा रहा है कि एक ऑपरेटर है अपने लोगों के pset करने के लिए बहुत महत्वपूर्ण हो यहां। तो यह है कि ऑपरेटरों रास्ता सी में और प्रोग्रामिंग काम में आप क्या कहते हैं यह है कि विभाजन प्रतीक और मापांक प्रतीक है, जो सिर्फ प्रतिशत चिह्न की तरह है। सी, में तो तुम एक पूर्णांक करते हैं जब एक स्लेश के साथ एक पूर्णांक द्वारा विभाजित, सी में कटौती करना चाहते करने के लिए एक प्रवृत्ति है दशमलव अंक के सभी बंद, एक पूर्णांक चाहता है क्योंकि एक पूर्णांक के लिए बदलने के लिए। यह एक डबल होना चाहते करने के लिए नहीं जा रहा है यह सब होने के बाद दशमलव की एक गुच्छा के साथ। मैं 2 से विभाजित 3 करते हैं तो, यह जा रहा है 0.5 काट दिया और सिर्फ आप 1 देने के लिए। कुछ है कि ऐसा होना आप कर रहे हैं जब से बहुत सावधान प्रोग्रामिंग में गणित के किसी भी तरह कर रही है, नंबर आप मिल रहा है संख्या नहीं हो सकता आप सोच रहे थे कि, जिसमें क्यों गोलाई है आपके पिछले pset बहुत महत्वपूर्ण है। सापेक्ष आप शेष देता है। मैं 3 किया था, उदाहरण के लिए, यदि ऐसा है तो सापेक्ष 2-- तो 3 प्रतिशत चिह्न 2-- यह आपको लगता है कि के शेष देना होगा। तो 3 2 से विभाजित 1.5 है। यह 1 से 1 शेष है। यह आपको 1, देना होगा जो इस बात का शेष है। तो तुम लोग आगे बढ़ रहे हैं जब ASCII तालिका के माध्यम से, सापेक्ष खत्म किया जा रहा होगा बहुत महत्वपूर्ण है कि कुछ है, और हम उस पर बाद में चर्चा करेंगे। ठीक। इतनी सुंदर है कि कुछ है, बहुत नया और सुंदर अद्वितीय हम इस सप्ताह है पर चर्चा की है कि एक सरणी है क्या की अवधारणा। तो सरणी पहला है डेटा संरचना के प्रकार हम करने जा रहे हैं कि इस वर्ग में मुठभेड़। सभी डेटा संरचना है मनमाने ढंग से किसी प्रकार का, संरचना की तरह सचमुच बातें हम प्रोग्रामर बनाया है कि के रूप में, हम अपने कोड में डाल दिया है कि कि कोड के अन्य टुकड़े हो सकते हैं। इस अर्थ में, एक array-- तो एक फाइल कैबिनेट रूप में लगता है, आप अलग अलग खोलते हैं तो जहां अपने फाइल कैबिनेट की अलमारियों, आप अलग अलग चीजों का उपयोग कर सकते हैं। स्मृति में, एक सरणी सिर्फ कर रही है अपने कंप्यूटर पर एक ही बात है। आप अलग अलग blocks-- हम कर सकते हैं एक सरणी के indices-- उन्हें बुलाओ। यह सिर्फ एक ब्लॉक की तरह है स्मृति की एक शेल्फ हम भीतर बना लिया है कि अपने कंप्यूटर कि आप निवेश कर सकते हैं विभिन्न स्थानों में कुछ बातें। एक सरणी के साथ तो, आप हमेशा specify-- करना है आप एक घोषित करने निर्दिष्ट करने के लिए निम्न स्वरूप में सरणी। आप पहली बार करने जा रहे हैं डेटा प्रकार निर्दिष्ट आप सरणी का बनाना चाहते हैं। मैं पूर्णांक सरणी चाहते हैं, मैं अभी वहाँ पूर्णांक रखा जा रहा। मैं तारों की एक सरणी चाहते हैं, मैं वहाँ तार डाल करने के लिए जा रहा हूँ अपने सरणी का नाम है, और उसके बाद आप वर्ग कोष्ठक लिए जा रहे हैं। और वर्ग कोष्ठक के अंदर, आप कर रहे हैं अपने सरणी के आकार के लिए किया जा रहा। करने के लिए वास्तव में महत्वपूर्ण है कि कुछ सरणियों पैदा कर रही है, जब मन में रखना आप एक बनाने के बाद, कि सरणी, जो आकार को बदल नहीं सकते। यदि आप जानते हैं तो सही है कि अब आप, आकार 10 के एक सरणी है तुम्हें पता है मैं 10 कोशिकाओं के लिए जा रहा हूँ पता है कि इस सरणी के भीतर सूचकांकों के भीतर या 10, और यह कभी नहीं जा रहा है विस्तार या कम करने के लिए कोई फर्क नहीं पड़ता वहाँ क्या है, और है कि अंतरिक्ष की वर्तमान में सिर्फ 10 ब्लॉकों स्टोर कर सकते हैं कि आपकी स्मृति में आवंटित आप रख दिया है जो कुछ भी करने के लिए 10 बातें। तो इस तरह से, एक सरणी डेटा प्रकार, एक सरणी है कि डेटा संरचना हम करेंगे कुछ अन्य लोगों से बहुत अलग है इस पाठ्यक्रम में बाद में कवर किया। हाँ। उदाहरण के लिए, यदि आप चाहते थे आकार 3 की एक सरणी बनाने कि integer-- के निहित चर ओह, माफ करना, temperature-- की और तापमान की बेशक, एक पूर्णांक है। तो हम है जो, पूर्णांक पैदा होगा हम स्टोर करने के लिए क्या चाहते हैं के डेटा प्रकार। हम इस तापमान को फोन करने के लिए जा रहे हैं नामकरण के नामकरण की खातिर हम सब समझते हैं कि कुछ और। और हम वर्ग कोष्ठक लिए जा रहे हैं। और हम तीन नंबर चाहते हैं। इसलिए हम डाल करने के लिए जा रहे हैं इसके अंदर तीन। सच है कि कुछ मन में रखने के लिए महत्वपूर्ण सरणियों शून्य अनुक्रमित रहे हैं। इसका मतलब है कि आप सभी के लिए है कि 0 से सूचकांक के साथ शुरू करते हैं, और आप के माध्यम से ऊपर चला शून्य से 1 सरणी के आकार। यहाँ तो उदाहरण के लिए, हम आकार 3 की एक सरणी है। यह सक्षम होने के लिए जा रहा है तीन मूल्यों धारण करने के लिए। लेकिन संख्या कि themselves-- नंबर, सरणी, कि सूचकांक, सरणी, 2 के माध्यम से 0 कर रहे हैं। तो दोस्तों, जब वास्तव में, वास्तव में सावधान रहना आप सेट अपनी समस्याओं के माध्यम से जा रहे हैं और सरणी के किसी भी प्रकार का निर्माण, क्योंकि यह समय की एक बहुत वास्तव में, वास्तव में आसान भूल जाते हैं कि करने के लिए। मैं वास्तव में सूचकांक की जरूरत नहीं है 3 की, कि मैं वर्तमान में सिर्फ 2 का सूचकांक है। और तुम करने की कोशिश करता है, तो तीसरे सूचकांक का उपयोग, यह क्या हो रहा है अशक्त टर्मिनेटर बुलाया। यह वास्तव में करने के लिए नहीं जा रहा है सरणी में मौजूद हैं। और कंप्यूटर है कि पसंद करने के लिए नहीं जा रहा है। इसलिए जब भी सावधान रहना होगा आप सिर्फ बातों तक पहुँच रहे हैं क्या आपको याद है कि यह सुनिश्चित करने के लिए सरणियों हैं कि शून्य अनुक्रमित। ठीक। तो पहला उदाहरण है बस एक सरणी बनाने का एक तरीका है। मेरे पास दूसरा उदाहरण नीचे सिर्फ एक अलग तरीका है बनाने का एक ही डेटा क्या है हम सिर्फ inputted है कि संरचना। तो बजाय शारीरिक रूप से चल रहा है के माध्यम से और 0 से तापमान में डाल जो कुछ भी बराबर होती है, तापमान 1 जो भी हो, तापमान 2 के बराबर होती है जो भी हो, मैं तो बस वास्तव में कर सकता है सीधे एक लाइन में यह सब बनाने तापमान वर्ग कोष्ठक में बराबर होती है। और इस मामले में नोटिस, आप की जरूरत नहीं अपने सरणी है कि कैसे बड़े निर्दिष्ट करने के लिए, कंप्यूटर के लिए हो रहा है, क्योंकि के माध्यम से जाने के लिए और है कि वहाँ देखना उन सर्पाकार में तीन तत्वों। और यह ठीक है, पता करने के लिए हो रहा है मैं आकार 3 की एक सरणी की जरूरत है। आप करने की आवश्यकता नहीं जा रहे हैं इनपुट यह निम्नलिखित तरीके से। और यह भी कि, हाँ, उस तरह से। किसी को भी सवाल है हम सरणियों बनाने के बारे में कैसे या एक सरणी की संरचना कैसे काम करता है? हाँ। दर्शकों: [अश्राव्य]? ANDI PENG: हाँ, बिल्कुल। तो अगर आप की घोषणा और प्रारंभ करने के लिए गए थे एक सरणी निम्न विधि, जो दूसरा तरीका है, आप सिर्फ उन छोड़ सकते हैं। और कंप्यूटर यह स्वचालित रूप से जानता है कि कितने तत्वों की गिनती करने की जरूरत है उन सर्पाकार में, अलग हो रहे हैं अल्पविराम के द्वारा। यहाँ तो वे 65, 87, 30 में देखते हैं। तो कंप्यूटर, ओह, जानता है तीन पूर्णांकों नहीं है। मैं एक सरणी नाम बनाने के लिए जानते हैं इसमें तीन तत्वों के साथ तापमान। अच्छा प्रश्न। हाँ। दर्शकों: यह संभव बनाने के लिए नहीं है डेटा के विभिन्न प्रकार के साथ एक सरणी कि इसे में प्रवेश किया जा सकता है? उदाहरण के लिए, पूर्णांकों के साथ [सुनाई]? ANDI PENG: प्रयोजनों के लिए इस वर्ग की, नहीं, अब ठीक है। आप एक डेटा बनाते हैं एक सरणी की तरह संरचना, आप कह रहे हैं कंप्यूटर, अरे, मैं आप की जरूरत है इतना आवंटित करने के लिए मेरे हार्ड ड्राइव में स्मृति, प्रत्येक कोशिका एक साथ किया जा रहा बिट्स की निश्चित संख्या। हम सप्ताह में सीखा याद रखें शून्य है कि अलग अलग डेटा प्रकार के अलग अलग आकार है? उदाहरण के लिए, एक स्ट्रिंग तो एक अलग राशि है एक चार, की तुलना में अंतरिक्ष की जो अंतरिक्ष का एक अलग राशि है एक पूर्णांक से। और तो आप निर्दिष्ट और अगर तुम नहीं करते मिश्रण और चर किस प्रकार से मेल आप कंप्यूटर की है, जा रहा बहुत उलझन में हो। और यह पता करने के लिए नहीं जा रहा है कितना स्मृति तुम्हें देने के लिए। अधिकार के उद्देश्यों के लिए तो अब, कंप्यूटर ही कर सकते हैं एक सरणी में से एक प्रकार की पहचान। अच्छा प्रश्न। ठीक। इसलिए स्वाभाविक रूप से, हमारे पास दूसरा सवाल हम एक बना लिया है कि अब, ठीक है, है सरणी और हम इन सब बातों के रख दिया है सरणी में, हम कैसे कर रहे हैं इसे उपयोग करने में सक्षम होने के लिए जा रहे हैं? विशिष्ट संरचना तो यह है कि हम हमेशा के लिए एक सरणी का उपयोग पाश के लिए हमारी प्यारी है। हम हो जाएगा कि मैं तुम लोगों से वादा यहाँ इस आदमी का एक बहुत कुछ देख। अनिवार्य रूप से, किसी भी समय आप चाहते हैं निवेश करने के लिए एक सरणी में मानों या आप उन्हें उपयोग करना चाहते हैं, ऐसा करने के लिए सबसे अच्छा तरीका है, एक पाश के लिए है क्योंकि पाश के लिए एक में, आप आप कर रहे हैं कि कैसे कई बार पता सरणी के माध्यम से चलाने के लिए चाहते करने के लिए जा रहा है, आप एक बंद संस्करण है क्योंकि, है ना? और हर बार जब आप चलाने के माध्यम से, आप उपयोग कर सकते हैं सरणी का एक अलग तत्व। और यह भी, यह एक कारण है कि आम तौर पर होता है हम 0 मूल्य पर छोरों के लिए हमारी शुरुआत आप सरणियों का उपयोग करते समय, क्योंकि आप शून्य सूचकांक का उपयोग कर सकते हैं। और तो यह बहुत अच्छी तरह से समानताएं। तुम लोगों के लिए चाहते थे कि हो सकता है मैं 1 के बराबर होती है पूर्णांक के लिए लिखें। मैं कम से कम या 3 के बराबर है। लेकिन यह काफी के रूप में काम नहीं होता यहाँ अच्छी तरह से, क्योंकि आप केवल 0, 1, और 2 का तत्व है। और तो आप शुरू करने के लिए गए थे अपने तत्व 1, 2 में मैं, और 3, आप चला समाप्त करने के लिए जा रहे हैं अपने सरणी की सीमा से बाहर है, और बुरी बातें होने जा रहे हैं। इसलिए मुझे लगता है कि तुम लोग segue देखने की उम्मीद क्यों कि पहले की कक्षाओं में हम कैसे चलाने के लिए तुम लोगों को सिखा रहे थे और पाश के लिए हम थे कि रास्ते में एक प्रारूप। अब हम है, यह है क्योंकि सरणियों में transitioned, आप क्यों 0 उधार देता देख सकते हैं खुद को बहुत अच्छी तरह से करने के लिए पहुँचने। इसलिए हम चाहते हैं कि जिस तरह से मैं कर रहा हूँ that-- है सिर्फ खातिर इसे यहाँ बाहर मुद्रण यह बाहर मुद्रण की। लेकिन मैं अपने प्लेसहोल्डर, अल्पविराम है। और वास्तविक पहुँचने हिस्सा हो रहा है। सरणी के नाम तापमान बुलाया गया था। तो यह तापमान और है सरणी की मैं वें तत्व। पाश के लिए के माध्यम से चलाता है के रूप में तो, यह 0 में शुरू करने जा रहा है। इसे बाहर प्रिंट करने के लिए जा रहा है इस सरणी के 0 सूचकांक। तो फिर यह मुद्रित करने के लिए जा रहा है पहला तत्व बाहर। तो फिर यह मुद्रित करने के लिए जा रहा है दूसरा एक बाहर। और फिर हम तोड़ने के लिए जा रहे हैं। पर हर किसी को स्पष्ट है कि कैसे हो रहा है? अच्छा है। ठीक है। तो यहाँ हम एक तरह से है हम नहीं चाहते थे, तो कह रही कड़ी मेहनत से कोड के लिए प्रोग्रामर के रूप में मुझे in--। मैं वास्तव में शारीरिक रूप से नहीं करना चाहता था हर व्यक्ति तत्व में डाल दिया इस सरणी की। मैं बजाय करना चाहता था , उपयोगकर्ता इनपुट मूल्यों है ऐसा करने के लिए सबसे अच्छा तरीका क्या है? वैसे, यहाँ मैं बनाया है इस सुंदर समारोह, जिसमें मैं एक सरणी की घोषणा कर सकते हैं। चलो scores-- तो पूर्णांक बस हम बनाना चाहते कहना सभी 18 के ग्रेड आयोजन किया है कि एक सरणी यहाँ इस अनुभाग में छात्रों की। मुझे लगता है हम एक सा मिल गया है 18 से अधिक बच्चों को आज। लेकिन उदाहरण के लिए, चलो बस हम 18 था कल्पना करते हैं। मैं के साथ एक सरणी नाम स्कोर के पैदा होगा प्रकार int, स्कोर, क्योंकि निश्चित रूप से, संख्या रहे हैं। और मैं जा रहा हूँ वर्ग कोष्ठक में 18, क्योंकि है कि कितने छात्रों को मैं के स्कोर स्टोर करने में सक्षम होना चाहता हूँ। और वैसे भी मैं आबाद होता सरणी मैं था कि है के पाश के लिए एक के माध्यम से इसे चलाने के लिए बेशक, 0 मेरी 0 सूचकांक होने के साथ। और फिर से 18 की जा रही है मेरी क्योंकि वहाँ, संस्करण रोक सरणी में 18 तत्वों। और फिर मैं printf क्या करने जा रहा हूँ, दर्ज student-- बेकार बेकार बेकार के लिए स्कोर। किसी को भी मैं कर रहा हूँ यहाँ क्यों मुझे बता सकते हैं मैंने सोचा कि मैं प्लस 1 मुद्रण और नहीं? यह एक चाल की तरह है सवाल यह है, वास्तव में नहीं है। यह वास्तव में शारीरिक रूप से नहीं करता है कोड के चल प्रभावित करते हैं। हाँ। दर्शकों: [अश्राव्य] 0? ANDI PENG: हाँ, बिल्कुल। यह हे, कहने के लिए एक अजीब सा है, आप इस वर्ग में 0 छात्र रहे हैं। यह थोड़ा अजीब है। हमें तो, मनुष्य के रूप में, वास्तव में पसंद नहीं है कंप्यूटर कैसे लगता है के बारे में सोचना। तो भी में यद्यपि कंप्यूटर, यह मूल्यों के संचय है 0 वें सूचकांक, जब में हम मनुष्य हैं, हम वास्तव में नहीं है शून्य के रूप में खुद को संदर्भित करने के लिए पसंद है। इसलिए मैं सिर्फ इतना है कि मुद्रित करते हैं तो, मैं प्रिंट और जोड़ने के लिए जा रहा हूँ सिर्फ स्पष्टता के लिए 1। जब मैं प्रिंट तो, मैं जा रहा हूँ 18 के माध्यम से छात्रों को एक मुद्रित करने में सक्षम। यह वास्तव में प्रभावित नहीं करता कोड के चल किसी भी तरह से, जिस तरह से मैं मुद्रित। आप कर रहे हैं लेकिन जब सावधान रहना होगा वास्तव में सरणी तक पहुँचने। आप स्कोर जब मैं देखता हूँ, यहाँ नोटिस मैं वास्तव में हूँ 0 सूचकांक पहुँचने और नहीं 1 प्लस 0-- या 1 प्लस 1, इस मामले में, सूचकांक इसलिए कि यह वास्तव में स्पष्ट है। हर किसी को एक तरह से ठीक है पर है कैसे इस के माध्यम से चल रहा है और हर सूचकांक के साथ मैं हूँ सरणी में एक मूल्य डालने और 18 नंबर के साथ एक सरणी बनाने उपयोगकर्ता इनपुट के लिए जा रहा है कि? ठीक। कूल। ठीक। अब हम बहुत कुछ है कि में कदम के रूप में अच्छी तरह से सेट इस टुकड़े के लिए प्रासंगिक है। मैं व्याख्यान में पता है, David-- क्षमा करें, आप एक ही सवाल था? दर्शकों: आप इसे विस्तार कर सकते हैं? ANDI PENG: हाँ, तो मैंने कोशिश की। लेकिन मैं नहीं जानता। किसी कारण के लिए, यह PowerPoint के संस्करण वास्तव में काम नहीं कर रहा है अच्छी तरह से प्रदर्शन के साथ। तो हम बस जा रहे हैं इसे इस तरह से रखने के लिए। इन सभी ऑनलाइन अपलोड किया जाएगा। क्षमा करें दोस्तों। हाँ। ठीक। इसलिए हम भी तार हो सकता है। तो वास्तव में आप लोगों को मैं notice-- यदि रोब कि व्याख्यान में यह खत्म हो गया था पता है वह एक स्ट्रिंग वास्तव में है did-- कि पात्रों में से सिर्फ एक सरणी, आप इसके बारे में सोचते हैं, तो ठीक है? एक स्ट्रिंग एक नाम या एक है वाक्य या एक शब्द है, है ना? मैं नाम के एक स्ट्रिंग बनाने के लिए गए थे Andi-- बस अपना नाम, एक-एन-डी-मैं। तुम सिर्फ एक चर के रूप में उस के बारे में सोच। लेकिन वास्तव में, यह टूट रहा है वर्ण का सिर्फ एक सरणी में। तो यह एक चरित्र के लिए मिल गया है एक एक सरणी मूल्य में संग्रहीत। इसे में संग्रहीत n का एक चरित्र मिल गया है दूसरी सूचकांक और इतने पर और आगे। हम इस तरह से तो वास्तव में इस तरह का है संरचना के में सेट हमारे तार के लिए जगह है। यहाँ तो, मैं इनपुट के लिए गए थे शब्द "खाना" - तो स्ट्रिंग शब्द के बराबर होती है स्ट्रिंग मिलता है। मैं इनपुट के लिए गए थे शब्द ", खाने कि" कि मेरे कंप्यूटर तरह से शारीरिक रूप से है मेरी स्मृति में है कि स्ट्रिंग जमा कर रहा है। और मुझे लगता है कि के माध्यम से चलाने के लिए चाहते थे और मैं में के लिए बहुत out-- कि प्रिंट हम, व्याख्यान में, याद है, शून्य के बराबर होती है strlen कहा जाता है कि कवर किया कुछ, या स्ट्रिंग की लंबाई। मैं वास्तव में नहीं है क्योंकि सरणी है कि कैसे बड़े जानते जो कुछ भी उपयोगकर्ता के inputting-- की उदाहरण के लिए, मैं inputted शब्द ", खाने के लिए" और मुझे पता है कि ठीक है, तीन अक्षर लंबा है? इसलिए मुझे लगता है कि वहाँ एक तीन में डाल सकता है और सब कुछ ठीक हो जाएगा। लेकिन अपने उपयोगकर्ता इनपुट अगर कुछ कि मूल्यों का एक अलग संख्या है, क्या तुम सच में करने में सक्षम नहीं करने जा रहे हैं आप अपने कोड कार्यक्रम है कि जब पता है। तो हम परीक्षण के मामलों को संभाल कि रास्ते लगता है कि जैसे हम कुछ है कि है सिर्फ एक समारोह है, जो strlen बुलाया एक स्ट्रिंग है कि कितने समय तक आपको बताता है। तो शब्द का strlen। मेरे शब्द खाने के लिए है। n शब्द के strlen बराबर होती है। किसी को क्या लगता है कि मुझे बता सकते हैं मूल्य वास्तव में सही है? N क्या सही का प्रतिनिधित्व करता है, अब, इस उदाहरण में, अगर मैं था खाते हैं? दर्शकों: 3। ANDI PENG: 3, बिल्कुल। पूर्णांक मैं बराबर होती है तो के लिए हमारे पास शून्य, एन अनिवार्य रूप से, 3 के बराबर होती है। और मैं चला जा रहा है यह 3 आई ++ से भी कम है जब तक। और यह अनिवार्य जाना जा रहा है और के माध्यम से ही बात करते हैं। इसे बाहर प्रिंट करने के लिए जा रहा है हर मूल्य और तुम्हें दे ई-ए-टी। यह सिर्फ एक denoting है इसे लिखने का अलग तरीका है। यही कारण है कि बहुत उपयोगी होने जा रहा है। हाँ। दर्शकों: डालने का लाभ क्या है n कि अंदर strlen शब्द के बराबर होती है [अश्राव्य] पाश के लिए? ANDI PENG: हाँ। तो मैं कहता है-- थे, उदाहरण के लिए, अगर मैं थे तो उस करते हैं और करने के लिए मेरे कोड में, कि oop-- यह होगा do-- वास्तव में एक ही बात की तरह कर रही हो। हालांकि, जिस तरह डेविड समझाया कि यह व्याख्यान के दौरान, यदि आप में से किसी एक आदमी याद है, था, के रूप में है कि मनुष्य, प्रोग्रामर के रूप में, हम वास्तव में हमारे कार्यक्रम के लिए कोशिश कोड हमारे कंप्यूटर इतना है कि इसलिए, संभव के रूप में कम से कम काम करने के लिए कि हमारे कोड बहुत ही कुशल है। इसलिए मुझे लगता है कि वहाँ क्या था कि अगर मेरी के लिए पाश के माध्यम से क्या होगा मैं पहली बार एक घोषित होता है कि चर नामित मैं 0 होने जा रहा है। मैं, ओह, जांच करने के लिए जा रहा हूँ शब्द के strlen क्या है? ओह, strlen 3 है। तो मैं तीन से कम है? हाँ यही है। मैं दौड़ने जा रहा हूं। और फिर दूसरी बार चारों ओर वापस पाश, मैं मैं वेतन वृद्धि के लिए जा रहा हूँ। मैं एक होने जा रहा है। और मुझे लगता है, ओह, जांच करने के लिए जा रहा है लेकिन शब्द के strlen क्या है? ओह, यह तीन है। और, एक तरह से बेकार लग रहे हैं कि करता है आप पाश के माध्यम से चलाने के लिए हर समय, समारोह की जाँच करने के लिए, यहां तक ​​कि शब्द के strlen यद्यपि वास्तव में कभी नहीं बदलता है? तो यह एक कंप्यूटर के लिए अतिरिक्त बिजली है। आप चीजों के बारे में बात शुरू करते हैं अरबों और अरबों हैं कि और स्थानों के अरबों लंबे समय में, अपने कंप्यूटर की कल्पना शारीरिक रूप से के माध्यम से जाने के लिए होने और कि हर एक समय के सभी की जाँच करें। यही कारण है कि सिर्फ बनाने के लिए है दक्षता की खातिर, हम सिर्फ यह करने के लिए करते हैं क्योंकि हम ही कर रहे हैं इस तरह से समारोह बुला शुरुआत में एक बार, और हर बार है कि यह यह हो रहा है के माध्यम से चला जाता है मूल्य की दुकान के लिए 3 वहाँ, आप करते हैं कि नहीं लगातार हर बार की जांच के लिए है। हाँ। दर्शकों: क्षमा करें। बस [सुनाई]। आप int n strlen के बराबर होती है और डाल कर सकते हैं कि पाश के लिए बाहर से ऊपर भी? ANDI PENG: हाँ। तुम बिल्कुल ऐसा कर सकता है। हम यहाँ यह है कारण है क्योंकि पाश कार्यों के लिए जिस तरह से एक यह कहा जाता है जाता है कि एक इस अर्थ में स्थानीय चर आप कर रहे हैं कि सब कुछ पाश के लिए के अंदर बनाने केवल पाश के लिए के अंदर मौजूद है। तो चर मैं केवल उन कोष्ठक में मौजूद है। भी n की और यहाँ चर केवल उन कोष्ठक में मौजूद है। तो अगर आप की strlen उपयोग के लिए गए थे नीचे के नीचे कई बार शब्द, बिल्कुल ऐसा करने के लिए सबसे अच्छा तरीका शीर्ष इसे घोषित किया जाएगा इसलिए यदि आप एक बार ऐसा करने की जरूरत नहीं है। हाँ। दर्शकों: क्यों आप एक की क्या ज़रूरत है प्रतिशत के बाद नई लाइन आप सभी को रखना चाहते हैं, तो देखकर यह अलग करने के लिए अगले पत्र? ANDI PENG: ओह, मैं चाहता था प्रत्येक पंक्ति पर उन सब को मुद्रित। इससे कोई फर्क नहीं पड़ता। हाँ, यह एक स्वरूपण है। यही कारण है कि हालांकि, एक अच्छा सवाल है। मैं चाहता था कि यदि हाँ, मुद्रित करने के लिए यह सिर्फ एक लाइन पर सभी, मैं में पानी का छींटा नहीं होता। ठीक। हर कोई अच्छा है? ठीक। कूल। इसलिए मुझे लगता है कि मैं काफी बात की है लगता है। तुम लोग की बारी के माध्यम से चलाने के लिए कोड और यहाँ क्या गलत है मुझे बताओ। बग कहाँ है? आप देख सकते हैं, मैं एक घोषित किया है प्रकार स्ट्रिंग नामित वर्ग की नई सरणी। और मुझे लगता है, सैम inputted किया है इसे में जेस, और किम। और मैं बाहर मुद्रित करने के लिए प्रयास कर रहा हूँ सरणी के सभी तत्वों। यही कारण है कि कोई मुझे बता सकते हैं मुझे समस्याओं देने जा रहा है? मैं तुम लोगों को 10 दे दूँगा सेकंड इस बारे में सोचने के लिए। ठीक। हाँ? दर्शकों: वाम केंद्र है 3 के बराबर या [सुनाई]? ANDI PENG: ठीक है। तो यह वास्तव में कितनी बार है इस लूप के माध्यम से चलाने के लिए जा रहे हैं? दर्शकों: चार। ANDI PENG: बिल्कुल। यह चार बार के माध्यम से जा रहा है। इसके माध्यम से चलाने के लिए जा रहा है 0, 1, 2, और 3 में, उनके तत्व मैं है क्योंकि कम से कम या 3 के बराबर है। ऐसा लगता है कि 2 है जब रोकने के लिए नहीं जा रहा है। इसे रखने के लिए जा रहा है यह 3 हिट जब तक जा रहा है। हम जानते हैं, केवल तीन है हमारी वास्तविक सरणी में तत्वों। हम चौथे उपयोग करने की कोशिश तत्व या 3 के सूचकांक आप कहीं हिट करने के लिए जा रहे हैं स्मृति में मौजूद नहीं है। यह अशक्त टर्मिनेटर कहा जाता है। कुछ भी नहीं होने जा रहा है। आपका कंप्यूटर नहीं जा रहा है आप के साथ बहुत खुश होने के लिए। हाँ। किसी को भी सवाल है यही वजह है कि क्या हो रहा था पर? से बचने के लिए एक सामान्य क्षेत्र है। हाँ। दर्शकों: पहली बार नहीं है 2 के एक स्ट्रिंग है भी स्लाइड? ANDI PENG: नहीं तो अनिवार्य रूप से, जब आप एक सरणी बना रहे हैं, कि ब्रैकेट सही वहाँ, सभी number-- कि यह आप कैसे कह रहा है कई तत्वों मेरे पास है। यह वास्तव में नहीं कह रहा है मुझे कुछ भी की अनुक्रमित। तो इस मामले में, मुझे लगता है मैं चाहता हूँ पता तीन स्थानों के साथ लिखने के लिए, करने के लिए तीन शारीरिक स्थानों के साथ मैं पकड़ना चाहता हूँ जो कुछ भी पकड़। तीन नंबर नहीं है तो यही कारण है। हालांकि, अगर मैं चाहता था वास्तव में यह उपयोग करने के लिए, मैं कहना चाहता था, printf तब वर्ग ब्रैकेट संख्या, आप वास्तव में डाल करने के लिए जा रहे हैं वहाँ शारीरिक सूचकांक। हाँ, अच्छा सवाल है। दर्शकों: तो शारीरिक है सूचकांक माना जाता [सुनाई] हो सकता है? ANDI PENG: मैं माफी चाहता हूँ। आप थोड़ा और ऊपर बात कर सकते हैं? दर्शकों: तो शारीरिक सूचकांक है [अश्राव्य] बक्से में से प्रत्येक? [अश्राव्य]? ANDI PENG: हाँ। तो मैं यहीं वापस जाने के लिए जा रहा हूँ। यहीं के बारे में सोचो। हम आकार 3 के एक सरणी है। जैसे, तीन स्थानों पर नहीं है, यहाँ में शारीरिक प्लेसहोल्डर्स। लेकिन वे 0, 1, और 2 नामित कर रहे हैं। मैं उन्हें उपयोग करना चाहता था तो, अगर मैं उन तक पहुँच कि रास्ता मैं यहाँ में करना चाहता था जो कुछ भी printf है। आप मुद्रित करने के लिए होता है उस स्थान का नाम बाहर, उसके बाद कंप्यूटर क्योंकि ओह, मैं देखने की जरूरत है, जानता है 0 सूचकांक के लिए इस सरणी में। हाँ। लेकिन इसका आकार बदल नहीं है। आकार की परवाह किए बिना, 3 है आप उन्हें कैसे लेबल की। ठीक। हर कोई अच्छा है? दर्शकों: तो हर बार जब मैं [सुनाई]? ANDI PENG: ठीक है। तो इस मामले में, हम वास्तव में नहीं है पाठ्यक्रम में अभी इसे में मिलता है। लेकिन पता है कि मैं इस तरह एक string-- एक स्ट्रिंग अनिवार्य है, पहले कहा पात्रों में से एक सरणी। मैं एक सरणी बनाते हैं, तो तार की, मैं एक तरह से सरणी की एक सरणी है पात्रों की, है ना? इस मामले में तो, मैं क्योंकि तार की एक सरणी है आप निवेश करने के लिए एक बहुत लंबा शब्द थे, कि अभी भी केवल एक ही जगह ले लेता है कि एक स्ट्रिंग है, क्योंकि। लेकिन अगर तुम थे के बारे में सोचना उस सरणी के पात्रों, तो यह है कि एक बहुत अधिक ऊपर ले जा रहा है दूसरे शब्दों में से किसी से पात्रों कर रहे हैं। अभी के लिए वास्तव में महत्वपूर्ण नहीं। लेकिन वह सिर्फ आम तौर पर है यह कैसे काम कर रहा है। ठीक। तो यह है कि मैं आप कर दूँगा कुछ है सेमेस्टर के पाठ्यक्रम पर एक बहुत। मैं अपनी आवाज को आराम की जरूरत है। तुम लोग अपने आप को प्रोत्साहित करने की जरूरत है। आप का एक बहुत शायद सही अब सोने के लिए किया है। मैं यादृच्छिक समस्याओं inputting हूँ जहां हम एक वर्ग के रूप में या आप एक साथी के साथ आप के बगल में जा रहे हैं चर्चा कर एक दो मिनट खर्च करने के लिए हम हल करने के बारे में कैसे जाना होगा पर या इस जैसे एक कार्यक्रम बनाने। इसलिए अभी, हम चाहते हैं एक program-- बनाने के लिए हम यह कॉल करने के लिए जा रहे हैं upper.c-- कि धर्मान्तरित एक उच्च वर्ग के लिए एक छोटे शब्द string-- अपरकेस, माफ करना। वर्ड तार में, माफ करना, पर्याय बन गया है। मैं उन्हें बदलने के लिए जा रहा हूँ एक ही बात मतलब है। हाँ। कुछ मिनटों के लिए ले लो। यह होना जरूरी नहीं है किसी भी भाषा में लिखा है। बस स्यूडोकोड कोड में या तार्किक रूप से हम कैसे भी होगा एक ऐसी समस्या करने के बारे में जाना। हाँ। [पक्ष बातचीत] मैं भी तुम लोगों के can-- देखा कि मैं एक तरह से पहले से ही कार्यक्रम देखते हैं। मैं की मेरी कमी अनुमान प्रस्तुतकर्ता मोड एक समस्या है। लेकिन यह ठीक है। [पक्ष बातचीत] दोस्तों, कृपया, हाँ। कैंडी पाने के लिए आते हैं। कैंडी पाने के लिए आते हैं। दर्शकों: हाँ! [पक्ष बातचीत] ANDI PENG: इसके अलावा, हाँ, मैं कैंडी फेंकने शुरू करेंगे सवालों का जवाब नहीं है जो लोगों पर। आप सभी सवालों के जवाब देने चाहिए। या मैं लोगों को लगता है कौन सवालों का जवाब है। हाँ, दूसरी तरह के आसपास। [पक्ष बातचीत] दर्शकों: [अश्राव्य] ANDI PENG: हाँ। हाँ। [पक्ष बातचीत] ठीक है, दोस्तों। की तरह, 10 और सेकंड ले। [पक्ष बातचीत] दोस्तों, ठीक है। तो हम करने के लिए कोशिश कर रहा शुरू करने से पहले वास्तव में शारीरिक, कोड लिखने विकसित करने के लिए एक अच्छी आदत यह है कि हम कारण की पहली तरह करना चाहते हैं बाहर तार्किक हम इसे कैसे करना होगा। आपको यह सुनिश्चित करना चाहते हैं, इससे पहले कि आप शारीरिक रूप से कोड के लिए कोशिश कर रहा शुरू मारियो में, कि तुम बनाने सुनिश्चित करें कि आप अपने स्यूडोकोड है। यही कारण है कि आप के माध्यम से ले जा रहा है क्या आप ऐसा बनाने की जरूरत है जब आप शारीरिक रूप से, कि बाद में अपने प्रोग्राम लिखने, आप त्रुटियों को पकड़ने के लिए बेहतर करने में सक्षम हैं अपने कोड और उस जैसी बातों में। तो हम बस शुरू करने के लिए जा रहे हैं by-- अंग्रेजी में, स्यूडोकोड में, किसी को देने के लिए चाहता है मुझे एक सामान्य स्पष्टीकरण हम ऐसा करने के बारे में कैसे जाना होगा? हाँ। दर्शकों: [अश्राव्य]। ANDI PENG: यकीन है, कोई चिंता नहीं। दर्शकों: आप के लिए यह पूछने या पूछ सकता किसी को, स्ट्रिंग 1-- हाँ, स्ट्रिंग पाने के लिए और फिर-- ANDI PENG: हाँ, तो यह एक अच्छी शुरुआत है। मैं आप बात के रूप में, माफ करना, टाइपिंग शुरू करेंगे। So-- दर्शकों: --The लोअरकेस संख्या अधिक होती हैं, है ना? या छोटे अक्षरों उच्च संख्या है? ANDI PENG: बिल्कुल। दर्शकों: तो फिर हम घटाना जो कुछ भी [सुनाई] से 32। ANDI PENG: ग्रेट। तो हम किस तरह का एक सामान्य अर्थ है की कैसे इस समस्या के बारे में काम करने के लिए। हम किस तरह की सीख लिया है कि यह जानते हुए तार कि शारीरिक रास्ता स्मृति में जमा हो जाती है, पहले से ही आप क्या करते हैं आप शायद करने के लिए जा रहे हैं कि पता अपने कोड में लिखने के लिए है आदेश में स्ट्रिंग के माध्यम से स्थानांतरित करने के लिए? दर्शकों: पाश के लिए। ANDI PENG: पाश के लिए एक, बिल्कुल। अच्छा है। तो हम किस तरह का एक सामान्य है स्यूडोकोड नीचे लिखा उस तरह की दे रहा है आप कैसे पर नोटों समस्या को हल करने के बारे में ले जाया जाएगा। अब आप यह है कि, आप इसे बाद के लिए संदर्भित कर सकते हैं आप करने की कोशिश कर रहे हैं पर वास्तव में अपने कोड लिखें। इसलिए हम वास्तव में यहां जा सकते हैं। और मैं नामक एक समारोह मिल गया है upper.c-- वहाँ यह सिर्फ एक खाली टेम्पलेट की है- अब ठीक है तुम लोगों के लिए जा रहे हैं मुझे लिखने के लिए पर पता लगाने में मदद नहीं कोड की लाइन code-- की इस पंक्ति। यह कोड की कई लाइनों हो जाएगा। किसी भी प्रकार जब शुरू खाली pset की, क्या है मैं जरूरत है पहली बात ऐसा करने के लिए याद करने के लिए? दर्शकों: [अश्राव्य]। ANDI PENG: ग्रेट हाँ। शामिल करें। stdio.h। बार बार इस में से एक है सबसे आसान गलतियों लोग वे कर रहे हैं जब कर देगा लेखन, वे होगी एक शामिल करने के लिए भूल जाते हैं जरूरत है वे महत्वपूर्ण पुस्तकालय। इसलिए, यह कार्यालय समय है और आप पसंद कर रहे हैं मेरे कोड काम नहीं करता है तो मैं क्यों नहीं पता है। आप यह काम नहीं कर रहा है कि क्यों मुझे बता सकते हैं? हम आपको # शामिल था कहने के लिए जा रहे हैं? आप इसे # शामिल करना चाहिए। ठीक। तो हम यहाँ मानक आई / ओ मिल गया है। है कि केवल पुस्तकालय हम यहाँ की जरूरत के लिए जा रहे हैं? और क्या हम क्या करने जा रहे हैं? माफ़ कीजिए। किसी को सिर्फ इसे बाहर चीख? दर्शकों: [अश्राव्य]। ANDI PENG: वहाँ तुम जाओ। ठीक। और कैसे मैं किसी भी तरह से शुरू होने जाने के बारे में मुख्य समारोह के समारोह के लिए, किसी भी तरह हमारे कार्यक्रम के भीतर? मुख्य प्रवेश बिंदु। ठीक। मैं यहाँ अंदर क्या रखा है? आप क्या करना चाहते पहली बात क्या है? हम एक प्राप्त करना चाहते हैं उपयोगकर्ता से स्ट्रिंग, हम क्या करने जा रहे हैं इस पहली पंक्ति पर ऐसा करने के लिए? क्षमा करें, तुम लोगों को सिर्फ महसूस बात करने के लिए स्वतंत्र और जोर से। बस बाहर जो कुछ भी चिल्लाओ। दर्शकों: उपयोगकर्ता पूछें? ANDI PENG: हम यह कैसे करते हो? Ask-- मैं "उपयोगकर्ता पूछना" टाइप करने के लिए जा रहा हूँ? दर्शकों: printf। ANDI PENG: ठीक है। Printf। क्या मैं printf करना चाहते हैं? दर्शकों: कुछ में टाइप करें। ANDI PENG: उस तरह? मैं एक कंप्यूटर कर रहा हूँ जैसे लोग, नाटक। शारीरिक रूप से मुझे हर कदम बता मैं यहाँ में टाइप करने की जरूरत है? क्या मुझसे कुछ गलत हो रही है? मैं कुछ टाइप किया जाना चाहिए? दर्शकों: आप उद्धरण की जरूरत है। ANDI PENG: मैं उद्धरण की जरूरत है? ठीक। ठीक। दर्शकों: और फिर नई लाइन। अर्द्धविराम। ANDI PENG: अर्धविराम? ठीक। अच्छा। दर्शकों: और शायद यह निर्दिष्ट आप यह छोटे अक्षरों में चाहते हैं कि? ANDI PENG: ग्रेट। तुम लोग मुझ पर हंसते अर्धविराम डाल करने के लिए भूल। मैं कहीं तुम्हें गारंटी इस वर्ग के पाठ्यक्रम में, तुम डाल करने के लिए भूल जाओगे अर्धविराम, और यह निकालने के लिए आप तीन घंटे लगेंगे बाहर क्यों अपने कोड काम नहीं कर रहा है। यह हम सभी के लिए हुआ है। यह शायद आप को कुछ नहीं होगा। अर्धविराम का उपयोग करने का एक अच्छा आदत में जाओ। ठीक। दर्शकों: क्या आप चाहते हैं में बैकस्लैश करना है? ANDI PENG: यकीन है। आप में बैकस्लैश क्या करना चाहते हैं? दर्शकों: हाँ। ANDI PENG: ग्रेट। ठीक। अब मुझे आगे क्या करना है? दर्शकों: स्ट्रिंग जाओ। ANDI PENG: स्ट्रिंग जाओ। तो मैं क्या टाइप करते हैं? किसी ने? दर्शकों: स्ट्रिंग है। ANDI PENG: स्ट्रिंग है। दर्शकों: GetString। ANDI PENG: किसी ने, क्या आप मुझे बता सकते हैं कहाँ इस समारोह GetString से आ रहा है? दर्शकों: string.h। ANDI PENG: string.h? आप इसे स्ट्रिंग से लगता है? दर्शकों: [अश्राव्य]। ANDI PENG: वहाँ तुम जाओ। यह CS50.h. से है आप हमेशा जहां एक पर भ्रमित कर रहे हैं पुस्तकालय फाइल है या एक हेडर फाइल है, गूगल सचमुच, string.h और मैं आपको बता सकता हूँ सभी कार्य क्या हैं स्ट्रिंग में हैं। ठीक। तो अब मैं एक स्ट्रिंग बनाया है कि और मैं इसके लिए उपयोगकर्ता का संकेत है, मैं एक चर में यह संग्रहित किया है नाम है, अब मैं क्या करने की जरूरत है? दर्शकों: यह छोटे अक्षरों में अगर जाँच करें। ANDI PENG: क्षमा करें? दर्शकों: यह छोटे अक्षरों में अगर जाँच करें। ANDI PENG: ठीक है, चलो करते हैं। मैं ऐसा कैसे करूं? असल में, उद्देश्यों के लिए अब ठीक वर्ग की, हम सिर्फ करने के लिए जा रहे हैं कि सब कुछ मान कि हम इनपुट लोअरकेस में पहले से ही है। आप जाँच करना चाहते थे, तुम होगा सिर्फ एक सशर्त बयान जोड़ने जाँच की है कि, के माध्यम से भाग गया है कि हर एक सरणी तत्व अगर यह और जाँच निश्चित मूल्यों के बीच। मैं भूल क्या नंबर लोअरकेस के मूल्यों के हैं। आप ASCII मेज पर देख सकते हैं। लेकिन हाँ, यह वास्तव में एक अच्छी बात है। लेकिन अभी, हम सिर्फ करने के लिए जा रहे हैं कि सभी तारों मान हम इनपुट छोटे अक्षरों में हैं। ठीक। इसलिए मुझे लगता है के बारे में कैसे जाना होगा अगले इस समस्या है? दर्शकों: पाश के लिए। ANDI PENG: पाश के लिए? ठीक। क्या टाइप करने के लिए मुझे बताओ। दर्शकों: int के लिए मैं 0 के बराबर होती है। ANDI PENG: ठीक है। दर्शकों: ओह, वास्तव में, तो आप एक अल्पविराम करना और एन strlen बराबरी करते हैं। ANDI PENG: तो महत्वपूर्ण बात मुझे लगता है वह यहाँ देखा है कि लगता है कि हम int कहने के लिए नहीं किया है एन दूसरी बार हम ऐसा किया। बस के लिए एक में पता चला है कि आप की घोषणा कर रहे हैं जब पाश, आप वास्तव में के पूर्णांक की जरूरत नहीं दूसरी बार जब आप एक चर है। आप एन strlen कह सकते हैं। दर्शकों: एस के। ANDI PENG: एस। ठीक। दर्शकों: फिर एक अर्धविराम। ANDI PENG: यकीन है। दर्शकों: और फिर [सुनाई] एन। तो फिर मैं ++। ANDI PENG: ग्रेट। ठीक है। हम अंदर क्या करना चाहते हैं अब पाश के लिए इस बात का? हम के माध्यम से चलाने के लिए जा रहे हैं, तो याद रखें एक स्ट्रिंग और एक सरणी के माध्यम से चलाने हम इसे में चीजों की जांच करना चाहते हैं। हम क्या जरूरत के लिए जा रहे हैं? यह अब मुश्किल हिस्सा की तरह है। किसी को भी एक अनुमान है? ठीक। तो पहले, हम कैसे भी उपयोग करते हैं? कैसे करना है कि हम भी पहले की जांच या सरणी में एक तत्व का उपयोग? हम इसे कैसे करते हैं? हम ऐसा करने के लिए उपयोग संकेतन क्या है? इस सरणी का नाम क्या कहा जाता है? यह सही है, यह कहा जाता है? किसी भी स्ट्रिंग हमेशा एक सरणी है, याद रखें। तो चलो ब्रैकेट मैं, है ना? कि वर्तमान मूल्य है, क्योंकि या सूचकांक मूल्य हम जाँच कर रहे हैं। और हम उस बराबर सेट करने के लिए जा रहे हैं है-- हम सही, एक छोटे मूल्य चाहते हैं? हम जानते हैं कि चालू करना चाहते हैं lower-- क्षमा करें, हम एक अपरकेस चाहते हैं। हम लोअरकेस चालू करना चाहते हैं एक अपरकेस में मूल्य। और मैं माफी चाहता हूँ, इसलिए like--, आपका नाम क्या है? दर्शकों: हाइडी। ANDI PENG: क्षमा करें? दर्शकों: हाइडी। ANDI PENG: हाइडी। हाइडी की तरह कहा प्रारंभ में, हम शायद रहे हैं हम कर रहे हैं the-- की जरूरत जा शायद घटाना लिए किया जा रहा सही है, कि जो कुछ भी charc से 32? एक ASCII पर क्योंकि मेज, अंतर एक छोटा अक्षर के बीच और एक अपरकेस पत्र 32 है। हम यह कर रहे हैं तो, जब हम शायद रहे हैं ठीक है, 32 घटाना चाहते हैं करने के लिए जा रहे हैं? इसलिए हम मैं क्या करने जा रहे हैं। मैंने किया है कि क्यों हर कोई समझ है? अब ठीक है, क्योंकि हमारे सरणी में, हम 0 सूचकांक जाँच कर रहे हैं, है ना? और के 0 सूचकांक में स्ट्रिंग, कि पहले चरित्र है। और उस चरित्र हम जा रहे हैं यह लोअरकेस है कल्पना करने के लिए। हम यह अपरकेस बनाना चाहते हैं, हम अपने मूल्य से 32 घटाना है, हमारे ASCII में क्योंकि मेज, कि हम इसे कैसे मिलता है इसी के बगल में यह अपरकेस में आता है कि मूल्य। हर किसी कि समझ है? हाँ। दर्शकों को भी तुम सकता है एक minus-- लोअरकेस करना ANDI PENG: हाँ, तो वह है वास्तव में बहुत अच्छा है। मुझे लगता है कि वापस आने के लिए जा रहा हूँ सवाल है कि हम ऐसा करने के बाद। हाँ। और फिर मैं करना चाहते हैं , क्या हो रहा है यह देखने मैं शायद करने के लिए जा रहा हूँ , सही मुद्रित करना चाहते हैं? कोई मुझे बता क्या मैं यहाँ मुद्रित करना चाहते हैं। दर्शकों: printf प्रतिशत ग बैकस्लैश [सुनाई]। यही कारण है कि [सुनाई] मैं का मूल्य है। ANDI PENG: एस मैं माफी? दर्शकों: [अश्राव्य]। ANDI PENG: मैं नहीं जानता। आप क्या सोचते हैं? दर्शकों: ठीक है, मैं wouldn't-- मैं मैं bring-- नहीं होगा मैं इसे बाहर ले जाएगा अंदर, क्योंकि [सुनाई]। ANDI PENG: ओह, तुम जो कुछ किया होता? दर्शकों: हाँ। ANDI PENG: चलो यह रास्ता छोड़ दो यह है, और मैं क्यों बाद में समझाता हूँ। जब आप भी याद है, एक जगह धारक है, आप इसे आसपास कोष्ठक डाल करना चाहते हैं। ठीक है। तो यह यहाँ एक ठोस कार्य होना चाहिए। चलो यह चलाते हैं और यह compiles है देखते हैं। ऊपरी बनाओ। उह ओह। वह भी अच्छी नहीं लगती है। यह क्यों हो रहा है? किसी भी त्रुटि के साथ के रूप में, आप जाना चाहते हैं पीठ और पहली बार एक साथ शुरू, आम तौर पर एक त्रुटि का कारण बनता है क्योंकि इसे करने के बाद अन्य त्रुटियों के बहुत सारे। यहाँ हम upper.c देखें: 18: 25, जो बताता है मुझे इस कार्यक्रम में, upper.c नामित लाइन 18 पर, त्रुटि उलझाव की घोषणा कार्यों का पुस्तकालय प्रकार के साथ strlen unassigned-- ब्ला, मैं नहीं जानता उसके बाद क्या हो रहा है। सभी यह मुझे अभी है कह रहा है कुछ है कि strlen हो रहा है। और कंप्यूटर, क्योंकि उलझन में है यह पसंद है, मैं strlen है पता नहीं क्या कर रहा है? क्या है कि शायद करता है आप याद कर रहे हैं आप बता सकते हैं? दर्शकों: आप [सुनाई] याद आ रहे हैं। ANDI PENG: आप ठीक कह रहे हैं। बिल्कुल सही। यह बात तो यह है जहां यह सुनिश्चित करना महत्वपूर्ण कि आप में उपयोग हर समारोह में अपने कोड सही हेडर हो रही है बाकी पुस्तकालय के लिए फ़ाइल, या आप त्रुटियों के बहुत से प्राप्त करने के लिए जा रहे हैं और अपने कोड नहीं जा रहा है क्या हो रहा है पता करने के लिए। तो हम यहाँ स्ट्रिंग शामिल करने के लिए जा रहे हैं। अब हम ऊपरी संकलन करने के लिए प्रयास करते हैं। सही ढंग से संकलित करें। चलो इस कार्यक्रम चलाते हैं। इसलिए छोटे अक्षरों में कुछ लिखें। क्या तुम लोगों को टाइप करने के लिए करना चाहते हैं? कुछ प्रोत्साहित करें। ठीक है, चार्ली बस में चला गया। हम चार्ली का नाम टाइप करेंगे। छोटे अक्षरों में चार्ली। और उम्मीद है, उम्मीद है, यह है बाहर चिल्लाओ और थूक से बाहर जा रहा अपरकेस में चार्ली। वाह! हर किसी को समझ में कैसे होता है मुझे लगता है कि सुलझाने के बारे में चला गया? जिस तरह से है कि मैं कर सकता हूँ पूर्णांकों का उपयोग कर हेरफेर कुछ हल करने के लिए कि मैं तार में क्या करना चाहते हैं, वर्ण और पूर्णांकों कर सकते हैं क्योंकि एक ही तरीका है, क्योंकि में संदर्भित किया ASCII मानचित्रण की। यदि हां, तो अपनी बात को वापस जाने के लिए मैं 32 की बजाय यहां डाल करना चाहते थे अपरकेस एक बस की तरह एक छोटे घटा कि, कि, के रूप में अच्छी तरह से समान रूप से काम करेगा क्योंकि है कि बस सिर्फ उन दो मूल्यों के बीच का अंतर। मैं इस again-- चार्ली बनाना चाहते हैं। अरे नहीं। मुझे लगता है हम हाँ, गलत तरीके से चला गया लगता है? दर्शकों: [अश्राव्य] एक छोटे। ANDI PENG: वहाँ तुम जाओ। हाँ। और बाहर चार्ली spits। इसलिए सावधान रहना है जब आप मान घटाकर रहे एक है जो याद करने के लिए अन्य की तुलना में अधिक है। उदाहरण के लिए, यहाँ मैं भूल गया कि लोअरकेस एक वास्तव में है अपरकेस ए से बड़ा तो जब मैं उन्हें अन्य तरीके से घटाना करने की कोशिश की चारों ओर, मैं नकारात्मक 32 मिला है। और मेरे कंप्यूटर की तरह था, मुझे लगता है कि क्या है पता नहीं है। यह सिर्फ कुछ बेतरतीब संभावना है बहुत अच्छा नहीं है कि मूल्य। और तो आप कर रहे हैं कि यह सुनिश्चित कर लें सही लंबाई में घटाकर आप चाहते हैं चरित्र खोजने के लिए। ठीक। किसी को हम कैसे पर उलझन में है इस समारोह में लिखने के बारे में चला गया? ठीक। तो वास्तव में, एक समारोह के पहले ही पुस्तकालय बुलाया ctype.h में मौजूद है। पुस्तकालय के बुलाया ctype.h। इस समारोह में वास्तव में है पहले से ही आप के लिए लिखा है। यह ऊपरी करने के लिए कहा जाता है। और तो के प्रयोजनों के लिए इस pset, आप जा रहे हैं क्या तुम सच में उपयोग करना चाहते हैं कि खोजने के लिए निहित कार्यों का एक बहुत ctype पुस्तकालय के भीतर। , कम करने के लिए, ऊपरी ऊपरी है करने के लिए, है lower-- उन सभी कार्य कर रहे हैं तुम बहुत उपयोग करने में सक्षम हो जाएगा, बहुत जल्दी से अपने खुद के कोड में है कि इस करता है वास्तव में क्या करता। हम कैसे कन्वर्ट करने के बाहर लिखा था एक स्ट्रिंग अपरकेस। लेकिन यह वास्तव में कोड है किसी और को लिखा है कि और आप उपयोग कर सकते हैं एक अलग समारोह के माध्यम से। हाँ? दर्शकों: तो तुम सिर्फ वहाँ में एक की कॉपी और हर एक पत्र के लिए करते हैं? ANDI PENG: हाँ, मैं नहीं है क्योंकि एक के मूल्यों के बारे में परवाह है। मैं तो बस अंतर यह है कि परवाह उन दोनों के बीच सही, 32 है? छोटे अक्षरों के बीच का अंतर ख और बड़े बी भी 32 है। और सी के बीच का अंतर और बड़े सी हमेशा 32 है। मैं बस के बारे में परवाह है दोनों के बीच अंतर, पत्र के सभी क्योंकि ठीक है, एक ही पैटर्न का पालन करें? मुझे फर्क नहीं है, तो उनमें से एक के बीच, मैं जानता हूँ कि क्या फर्क उन सभी के बीच है। अच्छा प्रश्न। हाँ। हर कोई अच्छा है? ठीक। OOP। ठीक। तो एक अवधारणा है कि आप के रूप में बहुत उपयोगी होने जा रहा विकसित करने के लिए जारी अपने कोड इस विचार है कार्य या अमूर्त बनाने के। इसलिए अभी, हम सब बीजगणित ले लिया है। बीजगणित में, आप है कि वहाँ सिखाया जाता है इस अद्भुत बात एक समारोह में कहा जाता मशीन, जहां आप यदि नंबर के इनपुट को एक तरह का, यह इस अद्भुत समारोह के माध्यम से चलाता है और बाहर सही, एक अलग उत्पादन चबूतरे? कोड में, एक ही बात होता है समारोह के किसी भी प्रकार में। तो मैं शारीरिक रूप से कर सकता है मेरे कोड के मेरे शरीर में लिखने वास्तव में होता यह है कि एक मुख्य बयान जो कुछ कोड के शरीर से कर रही है। उस के बाहर लेकिन, मैं भी कर सकते हैं कई विभिन्न कार्यों लिखने कि कई अलग अलग बातें करते हैं। उदाहरण के लिए, हम पहले से ही है उनमें से कुछ का उपयोग शुरू कर दिया। Printf-- कि एक है समारोह है कि किसी और को पहले से ही लिखा है कि हम अपने कोड में कॉल कर सकते हैं। इस मामले में upper-- करने के लिए, upper-- एक अन्य समारोह है हम हम उस लिखा है हमारे कोड में कॉल कर सकते हैं। और इसलिए मैं क्यों ऐसा लगता है हम भी कार्य किया है? क्यों हम सिर्फ यह खटखटाने नहीं है सभी कोड का एक ही पंक्ति में? यह हर किसी के लिए यह आसान बनाता है। खैर, उस के पीछे तर्क संगठन, सब से पहले, है। यह जा रहा है वास्तव में गुस्सा है किसी के कोड के माध्यम से और printf की तरह एक समारोह। तुम लोगों को वास्तव में पता था कि क्या समारोह printf, लिखने के लिए entailed यह कोड के 1000 लाइनों की तरह, है। तो मैं चाहता था कि हर बार कुछ printf करने के लिए, मैं कोड के 1,000 लाइनें लिखना था कि, पढ़ने के लिए वास्तव में कष्टप्रद होगा है ना? हम तो बस है यही कारण है कि इस सार समारोह बनाया हम किसी को पहले से ही है कि वरना कहीं और लिखा है। और हर बार हम में इसका इस्तेमाल करने की जरूरत है हमारे कोड, हम सिर्फ printf कहना है। और कहा कि समारोह का उपयोग करने में सक्षम है किसी और हमारे कोड में लिखा है। यह आसान बनाता है organizationally कोड को पढ़ने के लिए। दूसरे, यह सरलीकरण है। यह हमारे पास कदम को सरल हमारी समस्या का समाधान करने के लिए लेने के लिए। Printf, printf की तरह काम करता है, ऊपरी करने के लिए की तरह कार्य करने के लिए हमें की अनुमति है कि सब बातें कर रहे हैं यह आसान है के इतना नीचे हमारे कोड को आसान बनाने में। और आखिरी बात reusability है। हम तथ्य यह है कि तो एक समारोह में कहा जाता है printf हम कई अलग अलग कॉल कर सकते हैं बार और इसे पुन: प्रयोज्य होने की अनुमति देता है। मैं printf लिखने के लिए गए थे, मैं केवल एक बार लिखें। यह केवल कि एक ही स्थान पर मौजूद है। मैं इसे फिर से करना चाहता था, तो मैं करूंगा कॉपी और है कि सभी पेस्ट है कोड की मेरी दूसरी लाइन में। हम एक समारोह बना है, तो यही कारण है कि कि, हमारे मुख्य के बाहर मौजूद हम बस पर कॉल कर सकते हैं यह और यह जब भी पुन: उपयोग हम तो यह एक बहुत आसान है कि जरूरत हमारे लिए लिखने के कार्यक्रमों के रूप में। तो जिस तरह से हम वास्तव में लिखना होगा कि एक समारोह सही, बहुत समान है? यह पहली बार की तरह है उदाहरण हम करेंगे जिसमें एक शैली पर एक समारोह लेने को देखने के हमारे int मुख्य शून्य से अलग। इस मामले में, यदि मैं चाहता था ठीक है, क्यू नामक एक समारोह लिखना? और यहाँ पूर्णांक मूल्य सब मुझे कह रहा है, मैं यह चाहता हूँ कि क्या मुझे पर लौटने के लिए कार्य करते हैं? मैं एक पूर्णांक घन के लिए चाहते हैं, मैं इनपुट के लिए चाहते करने जा रहा हूँ। इन मानकों हैं। मैं प्रकार पूर्णांक के एक मूल्य आदानों के लिए जा रहा हूँ। और मैं वापस जाने के लिए जा रहा हूँ पूर्णांक के एक अन्य प्रकार मूल्य। और यहाँ में, आप के रूप में सब मैं कर रहा हूँ, देख सकते हैं अपने इनपुट है जो कुछ cubing है मेरी उत्पादन के रूप में और यह लौटने। इतना सब इस समारोह में है करता है पूर्णांक के लिए किसी प्रकार लेता है। यह दो बार अपने आप में यह पलता इतना है कि यह प्रभाव में क्यूब्स। और फिर यह रिटर्न जो कुछ भी है कि उत्पादन है। तो इस मामले में, यह दो पंक्तियों का है हम अतिरिक्त लिखना था कि कोड। लेकिन हम फोन करना चाहता था, तो यह कई बार की बात है, यह एक है कि टाइप करने के लिए एक बहुत आसान है से घन में है कि यहीं लाइन कई बार के माध्यम से जाना है। तो तरीका है कि किसी भी अनिवार्य समारोह के किसी भी प्रकार के लिए स्वरूपण अस्तित्व के लिए जा रहा है यहाँ की तरह है। इसलिए हम समारोह का नाम दिया है। इस मामले में, यह घन कहा जाता है। और हम इसे घन क्योंकि नाम यह याद रखना आसान है। आप यह वर्ग नाम कर सकते हैं और यह वास्तव में cubed जा सकता है। कोई बात नहीं। आप कर रहे हैं कि सिर्फ एक नाम अपने कार्य बताए। यहाँ यह सही, पूर्णांक है, आप की जरूरत पैरामीटर के प्रकार। इसलिए इस समारोह में क्या करता है संचालित करने के क्रम में की जरूरत है? खैर, यह एक इनपुट की जरूरत है। मैं इनपुट यह नाम दिया है। क्या आप चाहते हैं जो कुछ भी यह नाम कर सकते हैं। लेकिन मैं int प्रकार के कुछ की जरूरत है। यह वास्तव में अमल करने के लिए जा रहा है यहां के अंदर जो कुछ भी है, समारोह के शरीर। और फिर वापसी प्रकार यहीं, इस int-- सब यह मुझे है कह रहा है इस समारोह है कि पूर्णांक में मुझे वापस करने के लिए जा रहा है। तो यह एक पूर्णांक में ले जा रहा है, और यह एक int आप वापस देने के लिए जा रहा है। हर किसी को समझ में कैसे करता है इस तरह के स्वरूपण काम करता है? कूल। ठीक। यह लगता है कि अगर इतने चिंतित मत हो अब एक छोटे से अमूर्त सही। इस बारे में हम बात करेंगे कि कुछ है। हम गहरे में डुबकी हूँ पर बाद में पाठ्यक्रम में। तरीका यह है कि उच्च स्तर के किसी भी तरह इन बातों को काम की अमूर्त है, स्मृति में, में है कि अपने कंप्यूटर, सब कुछ इस प्रकार में संग्रहित है ढेर की, मैं कहें। वहाँ शीर्ष पर हैं। मैं नहीं जानता कि आप यदि लोग है कि अच्छी तरह से देख सकते हैं। मैं में ज़ूम करने की कोशिश करेंगे। यहाँ शीर्ष पर, हम शारीरिक पाठ कंप्यूटर interpreting-- क्या है की सभी शून्य और लोगों कि हमारे कंप्यूटर के भीतर मौजूद हैं। और फिर हम initialized है डेटा और शुरू नहीं किया गया डेटा, क्या हम वैश्विक चर कहते हैं। मौजूद है कि चर तो सभी कार्यक्रमों के पार और अपने पूरे भर में, अनिवार्य रूप से, कोड। कोई चिंता नहीं है कि तुम लोग कर रहे हैं एक तरह से स्पष्ट नहीं है इस पर। यह सच में अभी बात नहीं करता है। और फिर हम क्या है एक ढेर में एक ढेर बुलाया। सचमुच के रूप में एक ढेर के बारे में सोचो सिर्फ बातें की एक ढेर की तरह, अलग से एक ढेर बातों के शीर्ष पर धकेल दिया जा रहा विभिन्न दुकान है कि एक-दूसरे की अपने कोड के भीतर चर और सिंटेक्स। और फिर यहाँ बहुत नीचे, हम पर्यावरण चर है तुम्हारे भीतर क्रियान्वित कर रहे हैं की कोड की सिर्फ अपने छोटे से लाइन। और हम बस ज़ूम करने के लिए जा रहे हैं वास्तविक ढेर भाग पर। अगर हम थे तो यहीं, ज़ूम करने के लिए ढेर के सिर्फ इस क्षेत्र पर, यह है जो ऐसा लग रहा है। और यह वास्तव में बहुत महत्वपूर्ण है तुम लोगों के कार्यों के बारे में जब बात करते हैं, क्योंकि सूचना है कि आपके कंप्यूटर की स्मृति चर जमा कर रहा है और कार्यों और दोनों के मापदंडों को अपने समारोह और अपने मुख्य चर अलग-अलग स्थानों में। इसलिए अभी, मुख्य है वास्तविक समारोह आप एक कोड में क्रियान्वित कर रहे हैं। आप उसके मापदंडों यहाँ संग्रहित है और उसके स्थानीय चर यहां संग्रहीत। स्थानीय चर बस किसी भी चर का अर्थ है कि केवल कि समारोह के भीतर मौजूद हैं। और यह की चोटी पर, आप इस किया है घन बुलाया अलग कार्य करते हैं। आपको लगता है कि मानकों को है है साथ ही उन स्थानीय लोगों के रूप में। कारण और आप कर सकते हैं वह यह है कि यहाँ क्या देख घन एक में लेता है जब ऐसा होता है अपने मुख्य समारोह से मूल्य वास्तव में यह है कि कॉपी है कि है। मैं घन करना चाहता था तो अगर 2 और 8 लौटने के लिए, कि 2 वास्तव में inputted है एक पैरामीटर के रूप में है और यह है आप इसे मौजूदा इतनी है कि पर नकल स्मृति में दो अलग-अलग स्थानों में। और तुम बहुत सावधान रहना होगा याद रखने पर जो उन में से एक आप वास्तव में जोड़ तोड़ कर रहे हैं। और क्या हुआ का एक उदाहरण कि बहुत, बहुत बुरा होगा यहीं मौजूद है। तो यहीं है, मैं मिल गया है, सिद्धांत में, यहीं एक कार्यक्रम, एक मुख्य समारोह मैं एक int घोषणा कर रहा हूँ कि एक्स 1 के बराबर होती है। मैं एक और पूर्णांक वाई 2 के बराबर होती घोषणा कर रहा हूँ। और फिर मैं चल रहा हूँ इस समारोह के माध्यम से मैं मान लेते हैं कि जहां कहा जाता स्वैप, यह दो मानों स्वैपिंग है। और फिर मैं जा रहा हूँ ठीक है, उन्हें बाहर प्रिंट? यही कारण है कि मैं इस कार्यक्रम क्या करना चाहते है। तो चलो नीचे आते हैं और एक नजर डालते हैं। मैं वास्तव में एक अलग लिखना तो अगर समारोह में, आप देख सकते हैं, हम यहाँ हमारी मुख्य समारोह है। और फिर हम हमारी है यहां दूसरी समारोह। शून्य स्वैप। शून्य सिर्फ यह है कि इसका मतलब है कुछ भी वापस नहीं जा रहा। समारोह का नाम है स्वैप कहा जाता है, और यह बात है सेवन दो चर, पूर्णांक एक और करने के लिए जा रहा अपने [अश्राव्य] समारोह से, ख int। तो अनिवार्य रूप से यहाँ में, हम कर रहे हैं इस समारोह में एक्स और वाई गुजर रहा है। और हम के लिए गए थे इसलिए हम चाहते है- बनाने ठीक है, एक अस्थायी मूल्य बनाने के लिए? हम एक करने के लिए कि आवंटित करने के लिए जा रहे हैं। और फिर एक अब बराबर ख जा रहा है। और बी वापस होने जा रहा है जहां अस्थायी मूल्य था, है जो एक, क्योंकि जब आप चीजों को स्वैप करना चाहता हूँ, तुम सिर्फ उन्हें स्वैप की तरह नहीं कर सकते हैं। आप एक बाहर रखना है यहां यह याद है, ताकि क्या वह है, क्योंकि एक बार आप एक स्वैप, आप भूल जाते हैं ठीक है, क्या है कि मूल मूल्य था? सिद्धांत रूप में, इस कार्यक्रम तो सही काम करना चाहिए? मैं स्वैप करना चाहता था दो, वे स्वैप चाहिए। तो चलो इसे चलाते हैं और यह काम करता है देखते हैं। तुम लोगों को देख सकते हैं, एक्स एक बार एक था और y एक बार 2 था। और मैं इसे बाहर प्रिंट, एक्स अभी भी 1 और वाई 2 है। हम्म, यह कार्यक्रम होना प्रतीत नहीं होता मैं यह काम करना चाहते हैं कि जिस तरह से काम कर रहा है। किसी को भी एक शॉट लेने के लिए चाहता है यह हो रहा था क्यों अनुमान लगा? यह रास्ता के साथ नहीं है कि अलग अलग बातें कर रहे हैं स्मृति में अलग-अलग स्थानों में संग्रहीत। ठीक। तो तुम लोग चिंता करने की जरूरत नहीं है अभी इस बारे में बहुत ज्यादा। लेकिन यह है कि घन के स्थानीय जानते चर ए और बी थे, हमारे यहाँ समारोह में, क्योंकि हम एक और ख घोषित किया है मौजूद है कि चर के रूप में घन के भीतर, उस समारोह। लेकिन अगर आप मानकों को देख सकते हैं कि यह यहां जमा किया जा रहा था में ले जा रहा है। लेकिन हम वास्तव में नहीं थे कुछ भी लौटने। हम वास्तव में एक्स और वाई बदलते नहीं थे। हम सिर्फ एक और ख बदल रहे थे। हम में एक्स और वाई की नकल की थी कुछ ए और बी कहा जाता है। लेकिन हम वास्तव में कभी नहीं एक्स और वाई खुद को चालाकी से। देखकर तुम लोग कर रहे कि कैसे हो रहा है? हम बस यह की नकल की है कि है से अधिक है, लेकिन हम वास्तव में नहीं रखा है वे स्मृति में थे, जहां का ट्रैक। और अब तो कंप्यूटर ओह, मैं, देख रहा है के माध्यम से इस बात को चलाने इस सुंदर समारोह। लेकिन एक्स और वाई एक्स और वाई अभी भी कर रहे हैं। कुछ भी नहीं हुआ है उन्हें इस तथ्य की वजह उन मानकों कि और स्थानीय चर एक अलग में जमा हो जाती है स्मृति में जगह है। और यह एक उच्च स्तर की है अवधारणा है कि हम करेंगे पाठ्यक्रम में बाद में देखने लगते हैं। लेकिन सिर्फ यह है कि पता है हो सकता है कि एक समस्या और हम पर तरीकों को पता लगा लेंगे कि पाठ्यक्रम में बाद में इस के साथ सौदा। ठीक। ठीक है। इसलिए पिछले अवधारणा हम कर रहे हैं वास्तव में कवर करने के लिए जा रहा कि उपयोगी होने जा रहा है pset इस सप्ताह के लिए क्या कहा जाता है कर रहे हैं कमांड लाइन तर्क। तो अपने व्याख्यान में रोब माध्यम से चला गया कैसे ये काम पर संक्षेप में की तरह। मूलतः जानते हैं कि जब आप लिख रहे हैं एक मुख्य समारोह की तरह जब हम अतीत में पहले कार्यों लिखा था हम int मुख्य शून्य था। और कारण है कि हम शून्य था हमारे कार्यक्रमों नहीं था क्योंकि था ठीक है, को चलाने के लिए इनपुट मूल्यों की जरूरत है? मैं मारियो दौड़ा, मैं की जरूरत नहीं थी वास्तव में सिर्फ कुछ में टाइप करने के लिए जब मैं मारियो भाग गया। मैं बाद में उपयोगकर्ता का संकेत हो सकता है। लेकिन यह हमेशा मामला नहीं होगा। उदाहरण के लिए, इस में सप्ताह की समस्या, सेट आप में, कि कहा जा करने के लिए जा रहे हैं अपने कार्यक्रम चलाने के अलावा, आप निवेश करने के लिए चाहते करने जा रहे हैं आप के रूप में सीधे में कुछ बातें अपने कार्यक्रम चला रहे हैं। इसलिए हम चाहते हैं कि जिस तरह से कहा जाता है एक कमांड लाइन तर्क है, जो एक तर्क की तरह है आप सीधे निवेश कर सकते हैं आप अपने कार्यक्रम को चलाने के लिए कोशिश कर रहे हैं के रूप में। तो इस के लिए संकेतन, यह बहुत जटिल लग रही है लेकिन यह सच नहीं है कि मुश्किल। तो पूर्णांक main-- कि सिर्फ अपने मुख्य कार्य है। Argc अल्पविराम स्ट्रिंग argv कोष्ठक में। तो कह रहा है कि यह सब है कि पूर्णांक argc-- सब है कि आप कह रही उन लोगों की संख्या हो रहा है कंप्यूटर की उम्मीद करनी चाहिए तर्क। सच तो यह है कि एक बात का ट्रैक रखने के लिए महत्वपूर्ण अपने कार्यक्रम के भौतिक नाम है उन तर्कों में से एक के रूप में गिना जाता है। मैं अपने कार्यक्रम है चाहता था तो अगर प्लस एक अतिरिक्त कमांड लाइन चलाने तर्क है, मैं वास्तव में हूँ दो के लिए जा। Argc वास्तव में दो होने जा रहा है। और फिर स्ट्रिंग argv bracket-- कर रही है कि सभी, यह मुझे एक दे रही है है कि तार की सरणी बस को प्रदर्शित करने और स्टोर करने के लिए क्या हो रहा है उन कमांड लाइन तर्क के सभी कर रहे हैं। तो उदाहरण के लिए, मैं यह करना चाहता था कार्यक्रम, ठीक है, outfile INFILE ./copy? यही कारण है कि सिर्फ एक ठेठ लिनक्स आदेश है। क्या वास्तव में argc है? कितने कमांड लाइन तर्क इस में वास्तव में देखते हैं? यह सब होता है की एक प्रतिलिपि बनाने है एक फाइल के नाम की एक INFILE और यह प्रतियां इसे में एक और फाइल, है ना? यही कारण है कि यह सब कर रही है। जैसा कि आप देख सकते हैं, मैं एक पंक्ति पर यह कर रहा हूँ वास्तव में इस कार्यक्रम की जरूरत के बिना। इस मामले में हमारे argc क्या है? हम कितने तर्क है तुम्हारे पास? दर्शकों: तीन? ANDI PENG: हम वास्तव में, तीन लोगों की है। तो यह करने के लिए बहुत सहज है अभी यह सिर्फ लगता है कि INFILE और outfile। लेकिन जानते हैं कि शारीरिक नाम कार्यक्रम आप एक के रूप में गिना जाता है चला रहे हैं। तो इस मामले में, argc वास्तव में तीन है। कैसे के बारे में, argv 0 क्या है? के सभी याद रखें कमांड लाइन तर्क तारों की एक सरणी में संग्रहीत किया गया। इसलिए मैं इसे उपयोग करने की कोशिश करते हैं, तो क्या ब्रैकेट 0 मुझे दे argv होगा? दर्शकों: [अश्राव्य]। ANDI PENG: बिल्कुल। यह मेरे डॉट देना होगा क्योंकि है कि, कॉपी स्लेश 0 तत्व, मेरी सरणी के पहले तत्व। क्या argv 1 के बारे में? दर्शकों: INFILE। ANDI PENG: INFILE, बिल्कुल। क्या argv 2 के बारे में? दर्शकों: outfile। ANDI PENG: outfile। अब यह थोड़ा मुश्किल है। आप लोग क्या सोचते हैं argv 3 मुझे दे दिया जा रहा है मुझे लगता है कि प्रिंट आउट करने की कोशिश की है? दर्शकों: [अश्राव्य]? ANDI PENG: यदि आप एक हाथ ऊपर है? हाँ। दर्शकों: एक वैकल्पिक। ANDI PENG: बिल्कुल। तो व्याख्यान में याद है कि हम एक दौड़ कुछ के अंत में है एक अशक्त टर्मिनेटर कहा जाता है? हम भी इस में मिल जाएगा आगे पर कक्षा में। लेकिन अंकन में पता चला है कि, जिस तरह से अपने कंप्यूटर यह अंत है कि जानता है सरणी की यह है कि एक अशक्त बुलाया कुछ डालता है टर्मिनेटर या एक पानी का छींटा शून्य। तो अगर आप argv 3 का उपयोग करने की कोशिश करते हैं, आप इस पानी का छींटा 0 हिट करने के लिए जा रहे हैं। यह एक चाल सवाल से भी अधिक है। क्या argv 4 के बारे में? तो यह पिछले अशक्त टर्मिनेटर है, हमारे सरणी की सीमा से पिछले। करने के लिए जा रहा है आप क्या सोचते हैं हम ऐसा करने की कोशिश में हुआ? दर्शकों: [अश्राव्य]? ANDI PENG: क्षमा करें? कि थोड़ा जोर से बोलो क्या? दर्शकों: [अश्राव्य]। ANDI PENG: हाँ। यही कारण है कि का नाम है आप सबसे अधिक संभावना मिलेगा क्षेत्र। लेकिन उस argv जानते 4-- कि आप का उपयोग करने की अनुमति देता है आपके कंप्यूटर में स्थानों स्मृति आपको लगता है कि वास्तव में क्योंकि, छू नहीं होना चाहिए अभी आप क्या argv पता है। आप इसे आकार 3 की एक सरणी है कि पता कि डॉट प्रतिलिपि, INFILE और outfile है। आप से परे है कि अब तक जाने की कोशिश आप अशक्त टर्मिनेटर पिछले रहे हैं कि, अपने कंप्यूटर शायद है argv 4 में संग्रहीत कुछ। और तुम सच में नहीं होना चाहिए , argv 4 में उपयोग की अनुमति दी आप एक फ़ाइल है क्योंकि कैबिनेट और आप ही कर रहे हैं उन तीन अलमारियों के लिए उपयोग की अनुमति दी। लेकिन आप जिस तरह से परे तक पहुँचने की कोशिश करता है, तो आप अनुमति दी जाती है जहां के शेल्फ, आप के साथ खिलवाड़ शुरू करने के लिए जा रहे हैं अपने कंप्यूटर की स्मृति में अन्य चीजें। यही कारण है कि बहुत, बहुत बुरा होने जा रहा है। तो बस इतना पता है कि। आपको लगता है कि बहुत सावधान रहना होगा सिर्फ बेतरतीब ढंग से शुरू नहीं करते एक सरणी में तत्वों पहुँचने कि आप बनाना चाहते थे कि क्या में नहीं थे। हाँ। ठीक। तो हम एक और क्या करने जा रहे हैं यहां टर्मिनल उदाहरण है। ठीक। जल्दी से व्याख्यान में रोब तो दूसरे दिन चला गया इस उदाहरण के माध्यम से, जहां वह था int मुख्य int argc स्ट्रिंग argv कोष्ठक, मैं कर रहा हूँ कि मुझे कह रहा है जो कमांड लाइन तर्क किया जा रहा। Argc के बराबर होती है, अगर वह है 2-- याद के बराबर होती है, बराबरी तुलना इसका मतलब बराबर होती है। यह 2 के बराबर होती है, तो मैं कर रहा हूँ हैलो मुद्रित करने के लिए जा रहा है, जो कुछ भी पहले सरणी का तत्व है। वरना प्रिंट, हैलो दुनिया। यह करने के लिए क्या हो रहा है अनिवार्य रूप से होता है? कोई बस में व्याख्या कर सकते हैं अंग्रेजी इस कार्यक्रम क्या कर रहा है? हाँ। दर्शकों: किसी को एक आदेश में टाइप और उनकी पहली और आखिरी नाम कहा, यह सिर्फ मुद्रित नहीं होगा एक और हैलो कहते हैं, पहला, जो कुछ भी अपने पहले नाम है। ANDI PENG: ठीक है, चलो इसे चलाते हैं। अगर मैं थे तो उदाहरण के लिए, बनाने के लिए इस फाइल को नमस्कार है-- नमस्कार कर तुम मुझे इनपुट करने के लिए क्या करना चाहते हैं है--? दर्शकों: पहला और आखिरी नाम। ANDI PENG: प्रथम और अंतिम नाम? रिक्त स्थान? दर्शकों: हाँ। ANDI PENG: किसी को बता सकते हैं मुझे अभी, argc क्या है? बस सही वहाँ? ऊप्स माफ़ करना। मुझे वापस जाओ। कितने कमांड लाइन तर्क तुम लोग वास्तव में नहीं देख सकते हैं are--। लेकिन मैं में ज़ूम करने की कोशिश करेंगे। मैं कोशिश कर रहा हूँ। हाँ, सही है, वहाँ तीन है? यह हैलो डॉट स्लेश है, यह Andi है, और यह पेंग है। तो तुम लोग इस में क्या सोचते हैं कार्यक्रम मुद्रण बाहर किया जा रहा है? ओह। मुझे माफ करें। गलत नाम। यह दुनिया नमस्ते, मुद्रण बाहर है। किसी को समझाने के लिए चाहता है यही वजह है कि क्या हो रहा है? हाँ? दर्शकों: [अश्राव्य]। ANDI PENG: बिल्कुल। तो यहाँ, सशर्त हैं argc 2 बराबर है, तो है। इतना ही मामले में है कि वहाँ दो कमांड लाइन तर्क। तब मैं मुद्रित करने के लिए जा रहा हूँ, हैलो, जो भी है। लेकिन बाकी है, मैं जा रहा हूँ बस, नमस्ते विश्व प्रिंट। तो किसी को चाहता है मुझे एक उदाहरण देने के लिए कैसे की मैं वास्तव में करने में सक्षम होगा यह argv 1 का मान मुद्रित करने के लिए मिलता है? मैं यहां निवेश करने के लिए क्या करना होगा? केवल एक ही बात है, सही? डॉट हैलो पहले से ही करने की वजह से पहला तर्क के रूप में गिना जाता है। मैं केवल एक ही अधिक है। मैं सिर्फ एंडी करते हैं तो नमस्कार डॉट। हैलो, एंडी। हर कोई समझ है यही वजह है कि क्या हो रहा है? हाँ। दर्शकों: तो बीच अंतरिक्ष आदेश line-- यह [सुनाई] है? ANDI PENG: नहीं एक कमांड लाइन में अंतरिक्ष इतना तर्क, एक्स, आपके कंप्यूटर को बताने के लिए मतलब यह है कि एक नया स्ट्रिंग की शुरुआत है। तो स्ट्रिंग argv यह भंडार here-- अपने आदेशों लाइन तर्क के सभी तार में। और तो कमांड लाइन में अंतरिक्ष , करता है कि सभी आपको बता है argument-- इस एक स्ट्रिंग के अंत में है और यह किसी अन्य के लिए पर स्थानांतरित करने के लिए समय है। हाँ। इस के लिए बहुत महत्वपूर्ण है अपने pset, आप कर रहे हैं, क्योंकि इन परीक्षण किया जा रहा है। तो किसी को भी करता है इस पर कोई सवाल? अच्छा ठीक है। हाँ? दर्शकों: तो कारण तुम होगा बजाय पूर्णांक तर्क कैल्क डाल जब आप चाहते हैं की [सुनाई] होगा करने के लिए अतिरिक्त जानकारी टाइप करने के लिए [अश्राव्य]? ANDI PENG: हाँ, बिल्कुल। कुछ कार्यक्रमों की आवश्यकता होगी इनपुट के लिए एक कमांड लाइन तर्क को उस में से गुजरता है और वह है कि का उपयोग करता है। हाँ। दर्शकों: तो क्या हुआ अगर [सुनाई]? ANDI PENG: ठीक है, मुझे लगता है कि क्या करना है मेरे कार्यक्रम में तो बदलने के लिए? दर्शकों को केवल 3। ANDI PENG: ऐसा क्यों है क्या हो, तुम्हें क्या लगता है? दर्शकों: [अश्राव्य] है। दर्शकों: आप के लिए होता है [अश्राव्य] 2 करने के लिए इसे बदल जाते हैं। दर्शकों: 1 और 2। ANDI PENG: 1 और 2, बिल्कुल। तो इस मामले में, तुम शायद होगा दो printf statements-- है चाहता हूँ argv 1 मुद्रित है कि एक और argv 2 मुद्रित कि एक। यहां. मैं वास्तव में असली जल्दी ऐसा कर सकते हैं। तुम वहाँ जाओ। ओह। काफी नहीं है तुम क्या चाहते थे। लेकिन चारों ओर तुम लोगों को गंदगी के साथ यदि स्वरूपण, यह बाहर आ जाएगा। हाँ। कूल। मुझे लगता है हम समय पर थोड़ा कम कर रहे हैं पता है। लेकिन मैं तो बस जल्दी से एक खर्च करने के लिए जा रहा हूँ helpful-- से गुजर रही दो मिनट दर्शकों: आप दो मिनट है। ANDI PENG: मैं दो मिनट है? धन्यवाद। कुछ जल्दी pset टिप्स। इस pset के लिए तो, मैं अत्यधिक की सिफारिश जैसा मैंने कहा, हर किसी को कल्पना को पढ़ने के लिए। आप तीन programs-- एक लिख सकता हूँ , caesar.c एक बुलाया, initials.c बुलाया एक कहा जाता vigenere.c। कुछ महत्वपूर्ण सुझाव है कि तुम लोगों को वास्तव में चाहते हैं इसलिए mind-- में रखने के लिए इस समारोह में नहीं है मैं कहना चाहूँगा के रूप में एक ट्रोइस, atoi-- बुलाया। अगर है कि यह स्पष्ट नहीं वास्तव में आप यह कैसे कह। लेकिन सभी यह है कि यह inputting है, क्या कर रहा है। यह एक पूर्णांक के लिए एक स्ट्रिंग धर्मान्तरित। तो एक मैं पूर्णांक के लिए ASCII का प्रतिनिधित्व करता है। यह सिर्फ आस्की परिवर्तित है मूल्यों मूल्यों पूर्णांक। तो, भंडार है कि सरणी argv याद अपने आदेशों के सभी arguments-- लाइन यह तार के रूप में उन सब को संग्रहीत करता है। और तो आप करने में सक्षम होना चाहते हैं उनमें से एक एक पूर्णांक हो गए हैं, आपके पास करने के लिए जा रहे हैं यहाँ इस मान का उपयोग करने के लिए। सापेक्ष, हम कवर की तरह पहले वर्ग में आज, आपके पास करने के लिए अनुमति देता है आप जो कुछ भी के शेष। तो अगर हम सच में, सच है सीज़र में बड़ी संख्या में, क्या हम अंत हो, तो Vigenere के एक स्ट्रिंग की? आप कैसे सक्षम होने के लिए जा रहे हैं उस के आसपास लपेटो करने के लिए पाने के लिए? मैं Z मारा और मैं चाहते हैं यह एक करने के लिए वापस जाने के लिए, कैसे मैं पाने के लिए जा रहा हूँ कि आसपास लपेटो करने के लिए? शायद का उपयोग करना चाहते हैं वहाँ कहीं सापेक्ष। दूसरे, आसपास ब्राउज़ अपने पुस्तकालय। ctype.h। यही कारण है कि हम एक नए पुस्तकालय है। आप वास्तव में, वास्तव में एक बहुत कुछ मिल जाएगा उपयोगी functions-- isupper, islower, toupper, tolower, isalpha, वगैरह। बहुत उपयोगी हो जाएगा कि सभी कार्यों आप यह पता लगाने की कोशिश कर रहे हैं, इस चरित्र एक छोटा अक्षर है? मैं इस कन्वर्ट कर कैसे एक अपरकेस करने के लिए स्ट्रिंग? ये सब बातें बहुत हो जाएगा अपने pset के लिए बहुत उपयोगी है। ठीक। कार्यालय समय आज रात 8:00 चैती कक्षा में 11:00 कल के रूप में अच्छी तरह से बुधवार और गुरुवार की रात के रूप में। कार्यालय समय कॉमन्स में हैं। अत्यधिक है कि आप लोगों का सुझाव सभी, अभी आरंभ आपको लगता है कि हो सकता है नहीं करना चाहते क्योंकि गुरुवार की रात समस्या है, जो बच्चे आपके pset प्रस्तुत करने और जैसे, मुझे क्या करना है पता नहीं है। मैं मैं खत्म, शुरू कर दिया, मैं प्रस्तुत की। अपने आप को कुछ कमरे देने के लिए प्रयास करें, कोड समस्याओं को हमेशा उत्पन्न हो सकती है क्योंकि। आपको यह सुनिश्चित करना चाहते हैं आप अपने आप को दे समय की एक बहुत सक्षम होने के लिए psets पूरा करने के लिए। कूल। मैं यहाँ चारों ओर लटका देंगे। दर्शकों: यह पहले से ही ऑनलाइन है? ANDI PENG: अगर यह मैं नहीं जानता पहले से ही ऑनलाइन है, लेकिन यह हो जाएगा। किसी को भी अगर मैं यहाँ के आसपास रखता हूँ पहले से ही किसी भी सवाल है। आने के लिए धन्यवाद।