[संगीत बजाना] स्पीकर 1: यह CS50 है और इस सप्ताह दो की शुरुआत है। तो, चलो कुछ सही में गोता जाने तो यह है कि बात करने के लिए छोटी गाड़ी है। तो, यहाँ पर CS50 आईडीई है और मैं इस लानत screen-- अग्रिम में की खिंचाई यह। बिगड़ने की चेतावनी। ठीक है। मैं यहाँ इस स्क्रीन के ऊपर खींच लिया है जो एक बहुत ही सरल कार्यक्रम है। हम नीचे स्क्रॉल, तो सबसे यह सिर्फ टिप्पणी नहीं की, लेकिन यहां लाइनों में 13 के माध्यम से 17 हम एक कार्यक्रम है। यह है, तो इसका मतलब है, जो वाक्य रचना से वैध है मैं यह संकलन और चलेंगे, यह संकलन लेकिन यह छोटी गाड़ी है। इस कार्यक्रम टिप्पणियों में दावा है शीर्ष तक यह 10 सितारों प्रिंट चाहिए कि लेकिन यह नहीं है। और अपने अनुभव के आधार पर, या जल्द ही सी के साथ अनुभव हो सकता है, आप तार्किक विचार कर सकते हैं यह वास्तव में, छोटी गाड़ी है क्यों? हाँ? दर्शकों: यह शून्य से 10 के लिए चला जाता है। यही कारण है कि 11 पुनरावृत्तियों है। स्पीकर 1: हाँ। इसलिए, यह शून्य से हो रहा है 10 के माध्यम से ऊपर और समान, ज़ाहिर है, जो 11 पुनरावृत्तियों है। इसलिए, यह जा रहा है प्रिंट, वास्तव में, 11 सितारों। तो, कंप्यूटर विज्ञान सम्मेलन सबसे प्रोग्रामिंग भाषाओं में बस के लिए, वास्तव में, शून्य पर गिनती शुरू, लेकिन करने के लिए नहीं बल्कि के माध्यम से गिनती आप वास्तव में के बारे में परवाह है कि मूल्य। अब, यह एक बात है कि एक छोटे से इस्तेमाल किया जा रहा लेता है और डिजाइन भी खरोंच, के रूप में है गैर प्रोग्रामर या गैर कंप्यूटर के लिए वैज्ञानिकों और बच्चों के लिए मोटे तौर पर, के लिए डिज़ाइन किया गया है आप एक बार में आम तौर पर गिनती शुरू। और वह ठीक है। आप बिल्कुल गिनती शुरू कर सकते हैं एक में है कि अधिक सहज है यदि। और करने के लिए और 10 के माध्यम से गिनती, लेकिन आप इस सप्ताह विशेष रूप से महसूस करेंगे और उस से परे सिर्फ इतना प्रोग्रामिंग में बहुत सी बातें 0 पहली बार है कि मान आप गिनती के साथ जो अंकों, आप इसे आसानी से मिल जा रहे हैं कि अभी प्रारंभिक की इस आदत में शामिल होने के लिए शून्य से और मूल्य तक की गिनती आप से अभी देखभाल के बारे में जाओ। तो, कि है कि तय की है। हम से भी कम समय बदल गया है या की तुलना में अभी कम से कम करने के बराबर होती है। पर एक नज़र रखना यहाँ एक दूसरा उदाहरण है। तो, इस कार्यक्रम में भी दावा है कि इसकी यह प्रिंट चाहिए कि शीर्ष टिप्पणियों दस सितारों, लेकिन यह नहीं है। यहाँ बग क्या है? तो, what-- और क्षमा करें, बात समझ सकता है। 10 सितारों। प्रति पंक्ति, लेकिन यह नहीं है। तो, वास्तव में, मुझे आगे जाना है और संकलन करते यह एक छोटे से कम है, क्योंकि यह एक कि वर्णन के आधार पर साफ है। मुझे हमारी स्रोत निर्देशिका में चलते हैं। छोटी गाड़ी एक डॉट स्लेश, छोटी गाड़ी एक बनाओ। ठीक है, मैं 11 सितारों, जो देखते हैं , अभी भी समस्याग्रस्त है लेकिन वे एक लाइन में भी सभी कर रहे हैं। यहां मुद्दा क्या है? हाँ। दर्शकों: [अश्राव्य]। स्पीकर 1: हाँ। तो यह एक सूक्ष्मता कि आप कर सकते है मुझे का संक्षिप्त उल्लेख बनाने को याद करते हैं। यहाँ तक सब कुछ दिखता है, हालांकि सुंदर, और यह अच्छी तरह इंडेंट है, और यह एक तरह से स्क्रैच की तरह लग रहा है 16 और 17 हैं कि लाइन में, दरअसल, पाश के लिए है कि नीचे खिसका हुआ। यही बात मायने नहीं रखती है। कंप्यूटर नहीं करता है पता है या सफेद स्थान को देखते हैं। व्हाइट अंतरिक्ष बस के लिए है हमें शैलीगत, मनुष्य। जब आप कंप्यूटर को पता नहीं वास्तव में सर्पाकार, जो होगा, इस समस्या को ठीक। तो, हम वास्तव में चला गया और स्पष्ट रूप से इन सर्पाकार में डाल दिया उस के द्वारा इस समस्या को ठीक होगा संकलक को स्पष्ट कर रही है मैं वास्तव में अमल करना चाहते हैं कि फिर से कोड की दो लाइनों, और फिर, और फिर। लेकिन मौलिक स्पष्टीकरण क्या है? है ना? हम कड़ाई की जरूरत नहीं घुंघराले, हर समय ब्रेसेस यह शायद सबसे अच्छा है, भले ही अभ्यास है कि वैसे भी आदत में शामिल होने के लिए यहां तक ​​कि यह दो कहते हैं, हालांकि अपने कोड के लिए अक्षर। क्यों? दर्शकों: [अश्राव्य]? स्पीकर 1: हाँ इतना है कि पूरी तरह एक और समाधान। है ना? पहली नज़र में आप नहीं है, खासकर यदि वास्तव में क्या हो रहा है की सराहना करते हैं। खैर, निश्चित रूप से हम कर सकते थे सिर्फ एक बार में दो बातें करते हैं और अभी पूरी तरह समस्या से बचने के। और कहा कि, अब ठीक है, लेकिन आज के प्रयोजनों के लिए क्या बग के लिए विवरण है? क्यों एक पंक्ति पर उन सभी सितारों थे? हाँ? दर्शकों: यह है, तो लगता है कि आप कोड की एक पंक्ति है आप उन लोगों के बिना यह कर सकते हैं। स्पीकर 1: बिल्कुल। यह सिर्फ एक मानव परंपरा है। लोगों को यह एक एहसास है कि छोटे से परेशान या थकाऊ सभी सर्पाकार डाल दिया है आप सब करना चाहते हैं, तो समय की कोड की एक पंक्ति पर अमल है। तो, मनुष्य का फैसला कुछ यह ठीक है कि पहले का समय है। आप अपने पाश के सभी डाल करना चाहते हैं इस तरह सिर्फ इतना है कि एक पंक्ति पर, कि एक साथ ठीक है अंत में अर्धविराम। लेकिन आप केवल एक ही तरह के कर सकते हैं घुंघराले ब्रेसिज़ के बिना लाइन। तो, जब CS50 शैली गाइड , के लिए बात करेंगे के रूप में आप आम तौर पर देखेंगे कि यह अच्छी आदत है आप कर रहे हैं जब तक इस में शामिल होने के लिए काफी सहज भटक सम्मेलनों के इन प्रकार से और अपनी खुद की बात कर रही है। तो जब तक आप लगातार स्वयं कर रहे हैं के रूप में। और हम के बारे में अधिक बात करेंगे बाद में आज एक छोटा सा शैली। तो, मुझे एक अन्य कार्यक्रम को खोलते हैं। बेशक, हम चाहिए के रूप में अच्छी तरह से है कि 10 तय कर लो। मुझे आगे चलते हैं और एक असली लिखना मैं फोन करता हूँ कि जल्दी कार्यक्रम, हम कहते हैं, पाश सी तो, पाश सी डॉट डॉट और लूप डॉट सी में मैं जा रहा हूँ मानक मैं शामिल / हे डॉट एच मुख्य शून्य int। और अब चलो बस वास्तव में, एक पाश, करते हैं। तो, 4 पूर्णांक मैं शून्य हो जाता है। मैं 50, कहते हैं, की तुलना में कम है। मैं प्लस, प्लस। और फिर यहाँ में चलो आगे बढ़ो और एफ प्रिंट करूं और फिर मैं मैं मुद्रित करना चाहते हैं और एक नई लाइन, अर्धविराम। और यह सब प्रिंट चाहिए शून्य से संख्या 50 तक? कुछ सिर हिलाते हैं। कुछ नं। पहले से ही बग क्या है? मैं बनाया आसान गलती क्या है? हाँ। दर्शकों: [अश्राव्य]। स्पीकर 1: हाँ। तो भी यह लग रहा है, हालांकि यह है कि मैं क्या इरादा है जैसे, मैं यह भी है कि याद सिर्फ एक ASCII चरित्र। तो, अगर मैं कहूँ, प्रिंट "मैं" यह सचमुच हो रहा है अगर, तो मैं मुद्रित करने के लिए मैं प्लग-इन करने के लिए एक प्लेसहोल्डर चाहते हैं मूल्य मैं वास्तव में यह करने की जरूरत और फिर प्लग में गतिशील मैं के लिए मूल्य। अन्यथा मैं सिर्फ करने के लिए जा रहा हूँ स्क्रीन पर 50 मैं मिलता है। तो, मुझे आगे जाना है और इस लूप बनाने, इसे चलाने के लिए, और, वास्तव में, हम सब की है 49 के माध्यम से रास्ता। मैं समय में वापस स्क्रॉल और अगर मैं देख रहा हूँ शुरुआत में संख्या शून्य। खैर, मैं एक तरह से क्या बिगाड़ तो क्या होगा? क्या अगर मैं यह नहीं? बस मैं नहीं सोच रहा हूँ क्योंकि। इस कार्यक्रम क्या है। एक बार संकलित और फिर से चलाने, तार्किक रूप से ऐसा करने के लिए जा रहे हैं? दर्शकों: कुछ नहीं। स्पीकर 1: कुछ नहीं। ऐसा क्यों? दर्शकों: मैं शून्य के लिए बनाया गया है। तो, हालत झूठी है। स्पीकर 1: हाँ, बिल्कुल। सभी कोड वाक्य रचना, सही है। यह इस संकलन होगा कोड चलाया जाएगा, लेकिन यह नहीं है उपयोगी कुछ भी करने जा रहा मैं हस्ताक्षर करना है क्योंकि मैं शून्य करने के लिए। हम तो मैं 50 से अधिक है, की जांच? जाहिर है, नहीं, ऐसा नहीं है। तो पाश में सभी कार्यान्वित कभी नहीं। क्या हम कुछ करते हैं एक छोटे से अधिक लापरवाह? हम int की तरह करते हैं, तो मैं शून्य क्या हो जाता है। और अब मुझे समय का उपयोग करते हैं एक और शर्त थी जो पाश,। मैं कहता हूँ, और जब मैं अधिक से अधिक है, जबकि या शून्य के बराबर है, और फिर यहाँ में मैं पाश बनाने, आगे बढ़ो और फ़ाइल सहेजें। और मैं इसे चलाने के बारे में हूँ। क्या मैं यह देखने के लिए जा रहा हूँ थोड़ी देर के पाश के साथ समय? हाँ। दर्शकों: एक अनंत लूप? स्पीकर 1: एक अनंत लूप? हाँ, और क्यों? दर्शकों: यह हमेशा शून्य है क्योंकि। स्पीकर 1: हाँ। तो, मैं शून्य के रूप में प्रारंभ किया है। बेशक मैं हमेशा अधिक से अधिक है से या एक परिणाम के रूप में शून्य के बराबर है। तो, मैं बस करने के लिए जा रहा हूँ असीम देखते हैं। और अब, इस बार ऊपर आ गया है या दो बार पाठ्यक्रम के सिर करने के लिए। क्या जब आप होता है एक अनंत लूप है? दर्शकों: नियंत्रण सी स्पीकर 1: हाँ। तो नियंत्रण सी अंत में जवाब देंगे। दुर्भाग्य से, हम बाहर छपा है लाखों और पहले से ही शून्य के लाखों और इसलिए कंप्यूटर है एक तरह से मेरे आगे हो गया। तो, इसे नजरअंदाज करने जा रहा है मुझे एक छोटा सा के लिए। लेकिन अगर आप बस नियंत्रण सी में कुछ मारा अपने मैक या पीसी कीबोर्ड पर कई बार, अंत में यह है, वास्तव में, को समाप्त करना चाहिए। और अगर नहीं, तो हम आपको कुछ दिखाता हूँ लंबे समय जहां आप पहले तकनीक वास्तव में जबरन कार्यक्रमों को मार सकता है, ज्यादा विंडोज और मैक ओएस में की तरह, अगर जरूरत हो। लेकिन कुछ और कोशिश करते हैं। वास्तव में मैं है वेतन वृद्धि करते हैं यह अभी भी अनंत हो रहा है? मुझे इस चलाते हैं। और अब आप की तरह कर सकते हैं क्या हो रहा है देखते हैं। यह भी एक अनंत लूप है। लेकिन यह एक चाल सवाल का एक सा है। यह हमेशा के लिए संख्या मुद्रित करने के लिए जा रहा है? दर्शकों: नहीं स्पीकर 1: नहीं क्यों? मैं यहाँ पर कुछ नग सुना। हाँ Someone--। दर्शकों: आप पर्याप्त नहीं है बिट्स वास्तव में जा रहा रखने के लिए। स्पीकर 1: ठीक है। इसलिए मैं पर्याप्त नहीं है बिट्स जा रहा रखने के लिए। तो, क्या होने जा रहा है? यह बस को रोकने के लिए जा रहा है? दर्शकों: कुछ बिंदु पर यह the-- बंद हो जाएगा स्पीकर 1: यह बंद हो जाएगा पाश नीचे, लेकिन क्यों? पर क्या होने जा रहा है अपनी सीमाओं के बहुत अंत? हाँ? दर्शकों: यह चक्र होगा वापस ऋणात्मक संख्याओं के लिए। स्पीकर 1: ऋणात्मक संख्याओं के लिए, या हम सिर्फ सकारात्मक इलाज कर रहे थे, शून्य से कम से कम। तो हाँ, बिल्कुल। हम चाहते हैं कि पिछली बार देखा था याद है कि आप यदि , अपने बिट एक भी कई बार वेतन वृद्धि और आप अतिप्रवाह वहाँ पहले अपने पूर्णांक की क्षमता या डेटा प्रकार आप कर रहे हैं, जो कुछ भी है आसपास लपेटो करने के लिए जा रहा है, शायद, दो ऋणात्मक संख्याओं। या आपको लगता है कि निर्दिष्ट किया है, तो अपने सीमा ही, सकारात्मक होना चाहिए आप क्या कर सकते हैं, जो है, लेकिन हम अभी तक कि नहीं देखा है आप कम से कम वापस शून्य पर खत्म हो सकता है। हालांकि, वास्तव में हाँ। इस मामले में, नकारात्मक संख्या है, जो मामले में लूप को समाप्त करने के लिए जा रहा है मैं नहीं है, क्योंकि वास्तव में, इससे बड़ा या इसके बराबर शून्य यह नकारात्मक है। तो, दुर्भाग्य से, कैसे जब तक हम इंतजार करना होगा? अभी हम करने वाले हैं क्या, 2 लाख से ish? हम 2 अरब की तरह हैं हम इंतजार करने के लिए जा रहे हैं जब तक हम वास्तव में यह लक्षण देख सकते हैं। लेकिन हम एक छोटे से तेजी से इसे देख सकते हैं हम बीच में कर सकते हैं, तो चलो देखते हैं maybe--। चलो। यहाँ तक कि मेनू धीरे से प्रदर्शित कर रहे हैं। ठीक है। तो, हम लंबे समय से पहले वापस करने के लिए आया हूँ। यह पिल्लों यह लानत time-- एक अच्छी बात है। यह कुछ घोषणाओं के लिए एक अच्छा समय है। तो, अगर आप की तरह हो सकता है अगर YHack में संलग्न करने के लिए, एक घटना है, जो किया जा रहा है येल में हमारे मित्रों द्वारा प्रायोजित। और, वास्तव में, कुछ के पाठ्यक्रम की येल में TFS इस के साथ शामिल हैं। YHack एक अंतरराष्ट्रीय है हैक एक thon द्वारा आयोजित और आयोजित येल में, 1500 को एक साथ लाने दिमाग हैकर्स और सभी क्रिएटिव की तरह दुनिया भर में। इस ब्याज की है, यहाँ एक नज़र रखना। इस पर भी संक्षेप में है स्क्रीन, आज की स्लाइड्स पर एक नज़र रखना yhack.org के लिए URL के लिए। तो, यह भी कुछ जल्दी घोषणाओं। तो, आधिकारिक तौर पर वर्गों शुरू कर देंगे अगले सप्ताह दोनों यहाँ और न्यू हैवन। तुम एक हो रही होगी ध्यान रखें ईमेल बाद में इस सप्ताह के अंत में सबसे अधिक संभावना है। इसमें लंबा समय लगता है अनुभाग के लिए CS50 के लिए, में दिए गए सभी लोग वर्ग और हर किसी के आसपास घूम रहा है। और यह सब टीचिंग फैलो ' कार्यक्रम भी अभी भी solidifying हैं, लेकिन एक ईमेल के लिए और की जरूरत है, तो देखते रहें , आप फिर से धारा सकते हो वहाँ के बाद। Study.cs50.net। तो, अगर आप एक निरंतर सहभागी रहे हैं, भले वर्गों में, लगभग सभी महसूस करते हैं कि संसाधनों की हम वर्गों में उपयोग CS50 पर सार्वजनिक रूप से उपलब्ध हैं यहाँ इस यूआरएल पर अध्ययन। तो, अगर आप कभी भी समीक्षा फिर से करना चाहते हैं तो , या आगे पठित धारा से सामग्री, या आप इसे कुछ सप्ताह नहीं कर सकते हैं, कि नमूना स्लाइड का एहसास है, और समस्याओं, और परिभाषाओं, और अधिक के रूप में अच्छी तरह से सभी देखते हैं। कार्यालय घंटे, आज फिर से शुरू और कल, बुधवार, और गुरुवार को पाठ्यक्रम की जाँच कार्यक्रम के लिए वेबसाइट। और यह भी, अब की शुरूआत आज CS50 चर्चा है। तो, अगर आप के लिए प्रश्न है, जब एक दूसरे को या पाठ्यक्रम के कर्मचारियों के लिए, और आम तौर पर काम कर रहे हैं कुछ समस्या सेट पर, तुम जरूरी नहीं है एहसास आप अगले मानव के लिए बारी है। कोई भी ऐसा नहीं है, तो आप कर सकते हैं हमें और सहपाठियों को बाहर तक पहुँचने ऑनलाइन CS50 के माध्यम से चर्चा करें। तो, यह एक चर्चा है पाठ्यक्रम के लिए बोर्ड, और यह एहसास है कि शायद सबसे अच्छा है जब आप शुरू करने के लिए जगह कार्यालय समय के सवाल जब बाहर विशेष रूप से। लंच भी इस सप्ताह से शुरू होगा। आग और बर्फ पर [अश्राव्य] न्यू हेवन में। पाठ्यक्रम के पर एक नज़र रखना आदेश में वेबसाइट RSVP करने के लिए। पहले आओ, पहले उस के लिए काम करते हैं। आप इस सप्ताह में नहीं मिलता है हम इन सबसे हर शुक्रवार करूँगा अवधि के दौरान। ठीक है, और अब ग्रेडिंग के बारे में एक शब्द भी नहीं। हम इस समस्या दर्ज खासकर के रूप में , इस सप्ताह के बाहर है, जो एक सेट और इस समस्या को दो और उसके बाद निर्धारित किया है। हम कैसे पी सेट के मूल्यांकन के बारे में जाना है और उसके गुणवत्ता का मूल्यांकन? इसलिए, यह हम में उपयोग करने वाले चार कुल्हाड़ियों है CS50, और वे यहां इन चार हो रहे हैं। एक अंकीय पर कब्जा जो घेरा, पी सेट की अभी कितना आधार आप से निपटने की थी। यह मोटे तौर पर के साथ मेल खाती है प्रयास है, और यह कब्जा करने का हमारा तरीका है आप कोशिश आधा पी थी , पी सेट के सभी निर्धारित किया है। यह सही पाने के लिए एक आसान एक है यदि आप करते हैं पर स्कोर, वास्तव में, पी सेट के हर पहलू का प्रयास करें। इसलिए इस बात का ध्यान रखें। शुद्धता कि वास्तव में है। विशिष्टता के रूप में अपने कोड का काम करता है और 'कर्मचारी नमूना समाधान के रूप में अपने कोड का सुझाव है कि वास्तव में, काम करना चाहिए। आप इसे नहीं मिले हैं, तो 50 चेक अभी तक, पी में है एक विनिर्देश सेट और आम तौर पर होगा आप हां / नहीं जवाब दे चाहे के रूप में अपने कोड सही है। कम से कम अब तक हम जा रहे हैं के रूप में यह परीक्षण के आधार पर मूल्यांकन करने के लिए हम चाहते हैं कि इस कार्यक्रम के भीतर चलने वाले। डिजाइन और अधिक व्यक्तिपरक है। यह कैसे अच्छी तरह से लिखा अपने कोड है। और यह कुछ ऐसा है कि आप समय के साथ कम से बेहतर मिलेगा और यह कुछ है कि हम करेंगे है पर अधिक गुणात्मक प्रतिक्रिया प्रदान करते हैं। और डिजाइन के द्वारा मैं हो सकता है लंबे समय से पहले मतलब आप कुछ पी में परीक्षा हो सकती है loopingly कुछ करने के लिए सेट, लेकिन हो सकता है तीन या चार, या करने के लिए पांच नेस्टेड सामने छोरों या नेस्ट, जबकि छोरों। यही कारण है कि आम तौर पर ऐसा करना चाहिए आप चापलूसी बनाने के लिए शुरू और आम तौर पर होगा माना बुरा डिजाइन। और अगर आप कक्षा में देखना शुरू करेंगे और बातें करने का वर्ग अच्छे तरीके से बाहर, बातें करने का बुरा तरीकों कि सब सही हो सकता है, लेकिन नहीं हो सकता है जरूरी अच्छी तरह से बनाया गया है। एक निबंध लिखने की तरह। आप एक पर शब्दों को डाल करने में सक्षम हो सकता है व्याकरण की दृष्टि से सही हैं कि पेज, निबंध या लेकिन वे कर रहे हैं थीसिस बस है पूरी तरह से बेतुका या unpersuasive। और इतना है कि में अनुरूप हो सकता है बुरा या अच्छा डिजाइन की लिखित दुनिया। और शैली भी काफी व्यक्तिपरक है। लेकिन कम से कम हम स्थिरता की उम्मीद है। यह कैसे सुंदर अपने कोड है। चीजों को अच्छी तरह से इंडेंट रहे हैं? आपके चर अच्छी तरह से नाम हैं / सभी कर रहे हैं अपने कोष्ठकों और सर्पाकार की वे किया जाना चाहिए के रूप में गठबंधन? हम के रूप में एक CS50 शैली गाइड की क्या ज़रूरत है समस्या सेट पर बात करेंगे। वे और अधिक आराम कर रहे हैं उस से भटका करने का स्वागत तो जब तक आप स्वयं संगत कर रहे हैं के रूप में। और यह भी एक सबक है हम अनुभाग में सुदृढ़ करेंगे। तो, इस सब के एक छोटे से अगर था तेज, एहसास पी सेट और वर्गों लंबे समय से पहले और अधिक गहराई में जाना होगा। लेकिन आम तौर पर हमारे पास CS50 के लिए बहुत कुछ बाल्टी। स्कोर के पैमाने पर आम तौर पर कर रहे हैं 02:59, या 04:59 के। हम literally-- कर रहे हैं और मैं नहीं कह सकता पहले सप्ताह में यह पर्याप्त। तीन अच्छा है। तो, भले ही, हाँ, तीन बाहर पांच में से सामान्य रूप से, गणितीय, 60 प्रतिशत या एक डी शून्य की तरह हो सकता है। तीन, वास्तव में, अच्छा है। और, वास्तव में, हम उम्मीद करते हैं कक्षा में सबसे अधिक छात्रों को आसपास के कार्यकाल शुरू करने के लिए twos, और threes, और चौके लगाए। शायद इतने नहीं Fives। नहीं भी कई लोगों को। लेकिन आम तौर पर में शुरू करने के लिए वक्र में है कि मिठाई स्थान इसलिए समय की प्रगति के रूप में है कि, कमरे के लिए वास्तव में नहीं है, ऊपरी प्रगति के लिए और अवसरों। तो, 60% के साथ तीन समानता नहीं करते। यह बहुत अधिक सार है कि अधिक से है। हम गणना के साथ जो सूत्र इस प्रकार के रूप ग्रेड भारित है। शुद्धता सबसे लायक है। डिजाइन एक छोटे से कम के लायक है। शैली एक छोटे से कम के लायक है। और यह आम तौर पर समय की राशि कब्जा कि प्रत्येक में हो जाता इन कुल्हाड़ियों के सिर्फ सही। शैली, सुपर आसान है सुपर जल्दी होना चाहिए, लेकिन यह एक आसान आदत है के बारे में आलसी पाने के लिए। शुद्धता ले सकता है आप समय की सबसे। कुछ बग पराक्रम नीचे का पीछा , कि अतिरिक्त घंटे या उससे अधिक ले और हां, तो स्कोरिंग अंततः है कि कब्जा। और हां, अब एक और अधिक गंभीर शब्द। CS50 है के बाद से भेद, बेहतर करने के लिए या बुरा, होने का शायद बेहतर परिचित शैक्षिक के मुद्दों के साथ सबसे अधिक किसी भी अन्य पाठ्यक्रम से ईमानदारी। और वास्तव में, यह मेरी जानकारी में नहीं है कि हम, दुर्भाग्य से, अधिक छात्रों को भेजने अनुशासनात्मक उद्देश्यों के लिए एक परिणाम के रूप में हर साल। तो, पूर्ण के हित में प्रकटीकरण, संक्षेप में बात करते हैं CS50 में चला जाता है, और क्या आप के बारे में क्या करते हैं, कर सकते हैं और क्या आप के प्रति जागरूक किया जा सकता है। तो, यहाँ 2007 के बाद से, जब मैं निश्चित रूप से विरासत में मिला विज्ञापन बोर्ड मामलों की संख्या है। विज्ञापन बोर्ड हार्वर्ड अनुशासनात्मक है शरीर, या अब साहब वकील जो करने के मामलों में जब संदर्भित कर रहे हैं छात्रों जाहिर है कि हम कुछ करते सिलेबस अनुचित मानता है। कोई वास्तविक पैटर्न नहीं है यहाँ, मैं कहूँगा। यह खत्म उतार चढ़ाव होता रहता साल, लेकिन आम तौर पर इस की संख्या है संदर्भित कर रहे हैं कि मामले हैं। छात्रों की संख्या इसमें शामिल कर रहे हैं? यह भी बदलता रहता है। के लिए आम तौर पर, पिछले साल हार्वर्ड में उदाहरण के लिए, 29 छात्र इतनी बात करने के लिए विज्ञापन में सवार थे। उन्हें वर्तमान छात्रों के 29, उन्हें पूर्व के छात्रों के दो, कौन सहयोग कर रहे थे कुछ अनहोनी रास्ते में। और फिर के मामले में प्रतिशत, यह आमतौर पर लगभग 3% है वर्ग की है कि, दुर्भाग्य से, फैसले के इन प्रकार बनाता है। तो, पिछले साल यह 3.5% थी CS50 के छात्र शरीर की तो यह है कि बात करने के लिए विज्ञापन में सवार था। तो इन सबका क्या मतलब है? और हम वास्तव में क्या करते हैं? तो, पूर्ण प्रकटीकरण के लिए, हम बिल्कुल, कंप्यूटर वैज्ञानिकों के रूप में, हमारे निपटान पर सॉफ्टवेयर उपकरण है और यह निष्पक्षता में हमारे लिए बहुत आसान है, नहीं कर रहे हैं जो की है कि अन्य सहपाठियों इन लाइनों को पार तुलना पार करने के लिए हर प्रस्तुत हर खिलाफ इस साल पिछले आठ साल के लिए प्रस्तुत करना। सॉफ्टवेयर इस करता है। और अंत में यह है तय है कि मानव आंखों कुछ का उल्लेख करने के लिए किया जाए या नहीं आगे अधिनिर्णय के लिए बात है, लेकिन सॉफ्टवेयर निश्चित रूप से मदद करता है। और यह स्पष्ट रूप से, मैं क्यों लगता है कि हम CS50 में इतनी बड़ी संख्या है। यह CS50 क्योंकि नहीं है छात्रों को या सीएस छात्रों को और अधिक आम तौर पर किसी भी कम ईमानदार हैं किसी भी अन्य छात्रों की तुलना में, यह सिर्फ हमारे पास उपकरण और तकनीक जिसके साथ यह पहली पास लेने के लिए। लेकिन हम नजर रखने के लिए करते हैं इन सब बातों के पर के रूप में अच्छी तरह से, फिर से, के हित में डाला जा रहा है कि काम को पहचानने वर्ग की एक सुपर बहुमत से में। और हां की नीति शैक्षणिक ईमानदारी पर, यह पैराग्राफ का एक गुच्छा है, भले ही गोलियों की एक गुच्छा के साथ लंबे समय तक यह बात है, उम्मीद है कि काफी पठनीय हैं वास्तव में उचित होना करने के लिए नीचे फोड़ा करता है। और अंगूठे का सबसे अच्छा शासन है कि हम पाठ्यक्रम के भीतर की पेशकश इस सार है सभी का काम है कि आप अपने ही होना चाहिए इस कोर्स के लिए सबमिट करें। और वास्तव में, में लगभग उन सभी की मामलों अनुशासनात्मक कार्रवाई के लिए भेजा यह क्योंकि कुछ छात्र देर से था रात को आम तौर पर अपने या अपने कोड बदल दिया एकमुश्त एक सहपाठी के लिए खत्म हो, जो तब इसे अपनाया अपनी संपूर्णता में या काफी तत्संबंधी। लेकिन वास्तव में, यह ठीक है। और वास्तव में, कार्यालय में कागज के घंटे, फिसल जाता है आप कार्यालय से आया है, तो आप सौंप दिया गया है घंटे पिछले सप्ताह के रूप में ज्यादा प्रोत्साहित करती है। तुम बिल्कुल रहे स्वागत और प्रोत्साहित सहपाठियों के साथ समस्या सेट पर चर्चा की। ठोकरें खाते हुए जब एक दूसरे की मदद करने के लिए। लेकिन आम तौर पर अंगूठे का नियम होना चाहिए यह हो सकता है, "अगर आप मदद के लिए पूछ रहे हैं, आप दूसरों को अपने कोड दिखा सकते हैं, लेकिन आप उनकी नहीं देख सकता है। " तो, दूसरे शब्दों में, मैं कर रहा हूँ कुछ पी सेट के साथ संघर्ष और मैं वहाँ बैठा हूँ हॉल भोजन, या पुस्तकालय में, या कक्षा में कुछ गलती खोजने की कोशिश कर रहा मैं निश्चित रूप से दिखा सकते हैं मेरा स्क्रीन पर अपने कोड व्यक्ति के बगल में बैठे लिए मेरे लिए, निश्चित रूप से स्टाफ, लेकिन यह भी एक सहपाठी। लेकिन समाधान है कि यदि मेरे सहपाठी, ओह, है प्रदान करता है यहां सिर्फ पर एक नज़र रखना क्या मैं रेखा के पार कि, किया था। और मुझे लगता है कि आम तौर पर कहते हैं कि हिम्मत करेगा ज्यादातर लोगों के लिए एक उचित बात बहुत आसानी से की लाइन हाजिर करने के लिए। और हां, तो सिलेबस देखना अधिक विस्तार के लिए। अधिक की है और अब एक विवादास्पद पहलुओं CS50 सिलेबस का मैं जितना मैंने सोचा था कि यहाँ निष्कर्ष में से बात करेंगे तथाकथित अफसोस खंड है। तो, यहाँ सब ठीक प्रिंट है। लेकिन सामान्य तौर पर हमने देखा है पिछले 8 साल से अधिक से अधिक वास्तव में, लगभग सभी की CS50 है, जो कि शैक्षिक बेईमानी के मामलों सिर्फ गरीबों का परिणाम रहा है रात में देर से निर्णय लेने की। तनाव, परिणाम का नतीजा खाने की कमी की वजह से, नींद की कमी, भी कई पी सेट, बहुत सारे समय सीमा भी कई प्रतिबद्धताओं। एक 2:00 में इमारत तनाव, 3:00 पूर्वाह्न, एक समय सीमा मंडराने के साथ 04:00,। इन मामलों में ज्यादातर छात्र सिर्फ बुरा निर्णय किया है वे बहुत अच्छी तरह से पछतावा हो सकता है कि अगली सुबह मिनट बाद यदि नहीं, लेकिन पिछले साल जब तक वहाँ था कोई रिलीज वाल्व कि इन छात्रों सकता है वास्तव में वास्तव में पता करने के लिए ऊपर खुला होने का बिना डर ​​पर समस्या सिर कुल मिलाकर कॉलेज से हटा दिया गया। और, वास्तव में, हम शुरू की इस बात का पछतावा खंड पिछले साल, जो कहते हैं कि भीतर यदि 72 घंटे, तीन दिन, कुछ लाइन पार की पाठ्यक्रम में निर्धारित आप पाठ्यक्रम में से एक के लिए आगे आना सिर और हम इसके बारे में एक चैट करना होगा। वहाँ अभी भी हो रहे हैं कुछ क्या करने के लिए परिणाम के विपरीत इसके विपरीत करने की सूचना दी गई। कुछ परिणाम अभी भी नहीं है कि , निश्चित रूप से कार्रवाई है आम तौर पर एक पी सेट zeroing या कुछ अन्य कार्रवाई करने, लेकिन हम वास्तव में, होगा यह अपने आप को संभाल और नहीं यह अधिक परिणाम थे संदर्भ लें और अधिक गंभीर हो सकता है। और, वास्तव में क्या हुआ, साझा करने के लिए पिछले साल, आठ साल में, और अब , इस पाठ्यक्रम को पढ़ाने के नौ साल और विभिन्न knobs के साथ छेड़छाड़ के बाद, अतीत में विभिन्न नंबर डायल मोड़ शैक्षणिक ईमानदारी पर कई वर्षों से, और डेटा कोई स्पष्ट प्रति देखकर यहां तक ​​कि इस तरह के भाषणों का प्रभाव, इस सबसे अच्छी बात यह नीचे हाथ था हम शैक्षणिक दृष्टि से शुरू की है में आठ साल से साथ CS50 में इन लाइनों। 19 छात्रों को आगे आए इस खंड में पिछले वर्ष के तहत। हम कोई कार्रवाई नहीं लिया उन छात्रों में से सात, वे थे कि निर्धारित अनावश्यक रूप से चिंतित है। वे वास्तव में हैं, नहीं था एक लाइन पार, लेकिन यह एक अच्छा चैट फिर भी किया गया था। हम स्कोर का 11 चुना कि प्रस्तुत किया गया। और एक मामले में हमने पूछा एक छात्र सेट एक समस्या क्या करना है। लेकिन अधिक सम्मोहक, ईमानदारी से, इन 19 चैट के साथ, जो मैं जिस तरह से अधिक था उनमें से प्रत्येक के हो जाने की उम्मीद हो सकता है एक के लिए 10 मिनट घंटे का समय भी लाया के बारे में मुद्दों के एक नंबर करने के लिए प्रकाश पारिवारिक मुद्दों, दोस्त मुद्दों, मानसिक स्वास्थ्य के मुद्दों हम तो लगे कि, छात्र का आशीर्वाद, निवासी के साथ डीन, या दोस्तों, या किसी भी दूसरे नंबर समर्थन संसाधनों की। तो यह है कि यह अब तक एक के द्वारा किया गया हमारे समय का सबसे अच्छा उपयोग करता है की और सबसे अच्छी उपायों में से एक। साथ ही कहा, यह कोई था पता लगाने की दर पर इनपुट शैक्षिक बेईमानी की अधिक आम तौर पर। और मैं कहता हूँ, इस सबसेट की हिम्मत छात्रों को पिछले वर्ष की एक जनसांख्यिकीय था कि हम पहले से पहले पहचान कभी नहीं और इससे पहले के साथ जुड़े हुए कभी नहीं किया था। और हां, तो इन थे अद्भुत सफलता की कहानियां वे प्रकाश में लाया गया है, भले ही इष्टतम परिस्थितियों से भी कम समय में। तो, यह ध्यान में रखना के रूप में आप, शायद, कुछ गरीब निर्णय खुद देर रात में, सहारा इतने लंबे समय है कि वहाँ उस स्थिति में छात्र के रूप में ऊपर के मालिक हैं और आगे आना हम कर सकते हैं, इसलिए है कि चैट की तरह है और इसके साथ सौदा एक तरह से है कि शिक्षा है, और उसके बाद हम अगले दिन हमारे पीछे डाल सकता है। आगे की हलचल के बिना तो, ले लो इस बातचीत के किनारे से दूर, पिल्लों है ऊपर हैं कारण बस एक पल के लिए बर्फ तोड़ने के लिए। और दुर्भाग्य से, वे सब सो रहे हैं, लेकिन माना जा रहा था कि क्या यहाँ होने था हर किसी को चाहिए था भय और एक तरह से आराम करने के लिए कि बहुत भारी बातचीत के बाद। लेकिन जाहिरा तौर पर मैं डाल पिल्लों को सोने के लिए। लेकिन अगर आप CS50 के लिए जाना है वेबसाइट स्लेश पिल्ले, आप दिन भर उन्हें देख सकते हैं। विशेष रूप से शायद 02:00, या 03:00, या रात में 4:00 वहाँ एक छोटे से तनाव से राहत देखने के लिए। तो यह है कि पिल्लों स्लेश है। ठीक है। नहीं यह मजाक था? ठीक। तो, वापस कुछ कंप्यूटर के लिए विज्ञान, यदि मैं हो सकता है। तो, हम शुरू कर दिया है कि पिछले समय को याद करते हैं सिर्फ मुख्य पर नहीं देख जो डिफ़ॉल्ट समारोह, जब था हरे रंग का झंडा, बराबर क्लिक किया लेकिन हम भी संक्षेप में शुरू कर दिया हमारे अपने कार्यों में से कुछ लेखन। इन कार्यों का और इस प्रकार अब तक कोई भी विशेष रूप से बड़ा या भावपूर्ण किया गया है। आप उन बड़े में मिल जाएगा कार्यों शायद, पी 2 सेट, पी, 3 सेट निश्चित रूप से पी 4 और आगे की स्थापना की। अभी अपने कार्यक्रमों की सबसे अधिक है, निश्चित रूप से उन सभी को, पी के लिए तो नहीं सेट एक मुख्य में पूरी तरह से किया जा सकता है। अपने कार्यक्रम केवल है तो पांच लाइनों, 10 लाइनों, यहां तक ​​कि 20 लाइनें लंबी, पूरी तरह से इसे लिखने के लिए उचित सभी मुख्य में नहीं है और जटिल खत्म करने के लिए अपने कोड, लेकिन हम आज क्या कर रहे हैं और आगे भी करने की कोशिश कर रहा है कुछ अच्छे डिजाइन तकनीकों का परिचय इसलिए कि अपने कोड और अधिक हो जाता है जटिल और समस्याओं के रूप में आप कठिन हो हल करना चाहते हैं और अधिक दिलचस्प तुम्हारे पास है, की तरह, अपने toolbox में उपकरणों के साथ जो उन लोगों के लिए अच्छा डिजाइन समाधान के लिए। तो, चलो पर एक त्वरित देखो वापस ले चलो मेरे पिछले सप्ताह से इस कार्यक्रम जो था कार्यों शून्य डॉट सी और काफी बस, सूचना है कि, यह दो के साथ इस तरह दिखता है कार्य, मुख्य और प्रिंट नाम। और वापस या शायद सोच आज रिवर्स इंजीनियरिंग, शुरू करने के लिए प्रेरणा क्या था रेखा कहा जाता है 28 में एक समारोह में, नाम छापें? या इस में का एक उदाहरण क्या था एक सिद्धांत या उपलब्धि की दृष्टि से, अगर आप। कुछ अफवाहें। क्या? हाँ तो कार्यात्मक अपघटन कहने का अच्छा तरीका की तरह है, अपने कार्यक्रम विघटित अपने घटक भागों में और उसके बाद उन हिस्सों का उपयोग एक पूरी करने के लिए इकट्ठा। तो, वह भी बस की तरह है पहले से ही एक कौर की, लेकिन यह शायद यह भी एक है कुछ का बेहतर उदाहरण सिर्फ अमूर्त बुलाया। है ना? अमूर्त एक होने जा रहा है CS50 में आवर्ती विषयों की और भी कंप्यूटर विज्ञान अधिक आम तौर पर यह है के बाद से आप हल कर सकते हैं, जिसके साथ एक तकनीक समस्याओं को और अधिक प्रभावी ढंग से आप क्योंकि अधिक समाधान लिख सकते हैं intuitively और एक तरह से है कि तराजू और अन्य लोगों द्वारा समझा जा सकता है। उससे मेरा मतलब क्या है? तो, यकीनन इसे और अधिक पठनीय है इस तरह एक कार्यक्रम को देखने के लिए, हालांकि यह सुपर कम। आप लाइन 22 पर जब देखते हैं कि वहाँ का कहा जाता है एक समारोह, प्रिंट नाम। अकेले उस नाम यह क्या करता है कहते हैं। उस समारोह में जाहिरा तौर पर लेता है इसकी कोष्ठकों के बीच इनपुट, और जाहिरा तौर पर कुछ भी करता है, संभवतः नाम प्रिंट। और हां, यहां तक ​​कि हम हालांकि बिल्कुल हो सकता था हम था, जो एक सप्ताह पहले किया था क्या किया बस, कोड के इस वास्तविक लाइन ले इस से छुटकारा पाने के लिए, और मिल सब एक साथ इस से छुटकारा, हम एक तरह से दूर अनमना एक नाम के मुद्रण की धारणा। आप प्रिंट डेफ का उपयोग कर रहे हैं तो मुझे परवाह नहीं है। यदि आपके पास एक मुझे परवाह नहीं है प्रतिशत एस और ये एक बैकस्लैश एन अविश्वसनीय रूप से रहस्यमय विवरण हैं। मैं एक के रूप में के बारे में परवाह नहीं है क्या प्रोग्रामर एक नाम मुद्रण है। और हां, तो किस तरह से बेहतर है कि ऐसा करने के लिए एक समारोह में, प्रिंट नाम बुला द्वारा की तुलना में? और हां, तो मंशा है कि एक था इस तरह से कुछ करने के लिए। कोड और अधिक पठनीय बनाने, अधिक पुन: प्रयोज्य, और भी स्वयं वर्णनात्मक। अब, एक नजर डालते हैं एक अन्य उदाहरण में, जो, कार्यों में से एक था जो हम यहाँ पर था। तो, यह एक शायद इससे भी ज्यादा है सम्मोहक है, क्योंकि इस मामले में, मैं सिर्फ एक पूर्णांक प्राप्त करना चाहते हैं नहीं है। मैं एक सकारात्मक पूर्णांक प्राप्त करना चाहते हैं। और यह एक सकारात्मक पाने के लिए बाहर जाता है आप आगे बढ़ने का एक गुच्छा क्या करना है int। है ना? यह एक साधारण एक लाइन नहीं है प्रिंट नाम था की तरह कहते हैं, जो बेशक कम मजबूर है। एक सकारात्मक पूर्णांक प्राप्त करने के लिए, logically-- मुझे इस छिपाने के लिए वापस नीचे स्क्रॉल। आपके पास करने के लिए क्या है? सभी उपकरण की तरह हम इस समय कर रहे हैं स्टैंडर्ड से प्रिंट डेफ की तरह बातें पुस्तकालय और भी CS50 पुस्तकालय से हम, इंट प्राप्त किया है, और फ्लोट जाओ लांग लांग, तार मिल जाओ, लेकिन केवल एक, सार्थक, अब ठीक इंट प्राप्त है। तो, केवल उपकरण अगर आपके पास अपने उपकरण बॉक्स में इंट प्राप्त है, हम लागू करने के बारे में जाना है कैसे यह सकारात्मक पूर्णांक पाने के लिए? दर्शकों: एक लॉग बनाएँ और जाँच पर कि क्या वे दे दिया है कि इनपुट सकारात्मक था या नहीं। स्पीकर 1: बिल्कुल सही। बिल्कुल सही। हम में है एक अन्य उपकरण हमारे एक या दो सप्ताह पहले से टूलबॉक्स सिर्फ पाशन निर्माण है। और हां, हाँ, हम एक समय का उपयोग करते हैं पाश, या पाश, जबकि एक करते हैं, या एक सामने हम शायद दूर हो सकता है पाश किसी न किसी रूप में उन में से किसी के साथ। हम मिल की धारणा को लागू कर सकते हैं बस जाओ इंट का उपयोग करके सकारात्मक पूर्णांक, और फिर बस यह फोन रख फिर और उपयोगकर्ता को तंग रखना जब तक वह या वास्तव में वह हम क्या चाहते हैं हमें देता है। और हां, अब यह प्रक्रिया की अमूर्त का एक सकारात्मक पूर्णांक हो रही है कहा जाता है एक समारोह में जाओ सकारात्मक इंट एक छोटे से अधिक है सम्मोहक यह देखो, क्योंकि। इन 10 प्लस की तरह हैं कोड की लाइनों कि एक सकारात्मक पूर्णांक प्राप्त करने में शामिल रहे हैं, और मैं वास्तव में आप इसे कैसे करते हैं परवाह नहीं है। मुझे परवाह आप सभी यह है कि इसे करते हैं, और इसलिए मैं कर सकते हैं एक के पीछे छिपे हुए इन सभी विवरण कहा जाता है कि समारोह पूर्णांक सकारात्मक हो जाओ, दरअसल, पाश, जबकि इस करते। और वाक्य रचना के लिए पिछले सप्ताह देखना वहाँ, लेकिन यह सिर्फ एन वाणी, और इसे बाहर प्रिंट उपयोगकर्ता के लिए अनुदेश। यह इंटरनैशनल जाओ कहता है और फिर यह जाँच करता है इस हालत फिर से, और फिर, और उपयोगकर्ता के सहयोग फिर से जब तक। तो अब, कुछ विवेक जाँच करता है। शायद परिचित लोगों के लिए कुछ प्रोग्रामिंग के साथ, एन घोषित किया जाता है, क्यों, मैं क्यों बनाऊँ पाश करते हैं, जबकि एन के बाहर? क्यों यह लाइन पर है 29 और नहीं उदाहरण के लिए जैसे 33, पर। दर्शकों: जब आप क्योंकि तरह, यह बाहर यह घोषणा अधिक, बड़ा scope-- की स्पीकर 1: अच्छा। दर्शकों: चार प्रकार आप की घोषणा करता है, तो यह लूप के अंदर, [सुनाई] यह इसके बारे में पता नहीं है। स्पीकर 1: बिल्कुल। मैं simplify-- कर सकते हैं यह गुंजाइश का एक मुद्दा है। और गुंजाइश संदर्भ में करने के लिए संदर्भित करता है जो एक चर मौजूद है या प्रयोग करने योग्य है। और यहाँ अंगूठे का अच्छा नियम यह है कि आम तौर पर आप की घोषणा या बनाते समय एक चर आप ही अंदर इसका इस्तेमाल कर सकते हैं निकटतम की सर्पाकार को गले लगाते। तो उसका क्या मतलब हुआ? मैं इसके बजाय, इस पूर्ववत और साथ जाओ एक छोटे से सरल लगता है कि कुछ और। है ना? रेखा 32 सिर्फ मेरे लिए अब क्लीनर लग रहा है। मैं कम से दोनों बातें कर रहा हूँ और फिर एक बार बताए बाएं हाथ को दाहिने हाथ। अब समस्या पर आधारित दायरे से उस परिभाषा कि एन लाइनों में इस्तेमाल किया जा सकता है 31 और इस लूप के अंदर 32, लेकिन जहां कि परिभाषा से यह प्रयोग नहीं किया जा सकता है? लाइन में क्या? हाँ। दर्शकों: 35। स्पीकर 1: 35। निश्चित रूप से नहीं 35। और यह भी कि कहाँ? दर्शकों: 34। स्पीकर 1: यहां तक ​​कि 34 है क्योंकि यह समस्याग्रस्त घुंघराले ब्रेसिज़ के बाहर। और तो वास्तव में, चलो देखते हैं क्या होता। है ना? यह एक छोटे से लग सकता है सहज ज्ञान युक्त या, नहीं हो सकता है लेकिन हम देखते हैं क्या संकलक जब कहना है हम आज के स्रोत निर्देशिका में चलते हैं। समारोह एक बनाओ। हे भगवान। खैर, मैं अंत में समाप्त , कि जिस तरह से। ठीक है। और इस मुद्दे को यहाँ क्या हो रहा है? देखने में बहुत रहस्यमय। लेकिन यहाँ मैं typed-- क्या है समारोह एक बनाते हैं। यहाँ बनाने के लिए प्रेरित किया है, जो वास्तव में है संकलक बजना का उपयोग कर उन झंडे से कुछ के साथ हम लंबे समय से पहले फिर देखेंगे कि। और फिर, हमेशा देखो पहली त्रुटि पर, यह सिर्फ एक व्यापक हो सकता है क्योंकि अन्य लाइनों पर व्यर्थ प्रभाव। तो क्या इसका मतलब यह है कि समस्या समारोह 1.c. में है यह लाइन 32 पर है। और यह स्तंभ, या चरित्र, 13 पर है। इसलिए जब अपने पाठ संपादक है कि कर सकते हैं मुद्दा है, जहां आप की पहचान में मदद। मैं ऊपर स्क्रॉल यदि हां, तो लाइन 32 क्या है? यही कारण है कि वास्तव में यह एक है कि पहले से ही प्रकाश डाला है सही here-- अप्रयुक्त चर एन। लेकिन यह अप्रयुक्त नहीं है। मैं इसका उपयोग कर रहा हूं। लेकिन संकलक, क्योंकि भ्रमित यह केवल इस दायरे के अंदर मौजूद है। और इसलिए मैं इसे यहाँ का उपयोग नहीं कर सकते हैं। मैं इसे यहाँ का उपयोग नहीं कर सकते हैं। और संकलक, इसलिए, यहां तक ​​कि मैं कोशिश कर रहा हूँ कि कोई परवाह नहीं है। यह अप्रयुक्त हो रहा है इसकी वास्तविक दायरे के भीतर। इसलिए हम ऐसा करके दायरे को व्यापक कर सकते हैं वास्तव में हम क्या शुरू with-- एन int। और यह नहीं है, भले ही शायद, के रूप में सुंदर लग रही है, और हम एक अतिरिक्त लाइन ले जा रहे हैं यहाँ, अब यह हर जगह के दायरे में है। तो चलो फिर से कोशिश करते हैं। तो समारोह एक बनाते हैं। अच्छा लगा। और अब मैं अगर मैं समारोह चलाते हैं एक, 10 नकारात्मक दे दें नकारात्मक 1, 0, 1, और यह वास्तव में काम करता है। तो यहाँ एक और उपाय है। आपको पता है कि? मैं वास्तव में इस के साथ क्या कुश्ती हूँ तो क्या होगा? मैं नहीं जानता कि जहां एन जाने के लिए माना जाता है। आपको पता है कि? मैं सिर्फ यह डाल करने के लिए जा रहा हूँ सब यहाँ मेरी फाइल के शीर्ष पर रास्ता। यही नहीं, आपको क्या लगता है क्या होगा? हाँ? दर्शकों: [अश्राव्य]। स्पीकर 1: हाँ। तो मैं तो बात है, यह वैश्विक बनाया है। आप एक चर है, तो उस के बाहर है की अनुमति दी है कि अपने कार्यों के सभी, और कोड, संकलन चाहिए और n अब मिल में न केवल सुलभ हो जाएगा , लेकिन यह भी main-- में सकारात्मक पूर्णांक जो क्योंकि वहाँ एक छोटी सी चिंता की बात है मुख्य में पहले से ही एक एन, ताकि अधिक सिर्फ एक moment-- में उस पर लेकिन यह बुरा डिजाइन पर विचार किया जाएगा। ठीक है। आप के लिए सहारा है तो कुछ ओह, मैं हूँ, की तरह बस यहाँ क्योंकि इसे डाल कोड संकलन के लिए लगता है आम तौर पर सबसे अच्छा व्यवहार नहीं है। बल्कि आप चुनना चाहते हैं सबसेसंकरेमें संभव गुंजाइश अपने चर के लिए, जो मतलब होगा हमारे प्रारंभिक डिजाइन, के साथ जा रहा है, जो यहीं है। अब एक अलग रूप में, आप के लिए किया है, तो यहाँ चर हूबहू-नामक एक, रास्ते ग है- संभालना होगा यह भी often-- ऐसा नहीं होगा, हालांकि यह अभी भी है यहाँ में पूरी तरह से ठीक है। लेकिन लाइन में N की इस परिभाषा 22 वैश्विक एक छाया जाएगा। तो यह एक के भीतर काम करेंगे मुख्य, और वैश्विक एक आप में कर रहे हैं जब वास्तव में लागू होगी सकारात्मक पूर्णांक लेकिन उस पर अधिक मिलता है एक और समय है, लेकिन अभी उत्सुक लोगों के लिए। तो संक्षेप में, हम यहाँ यह तय कर लो। अब देखते हैं कि दो अन्य टुकड़े के अलावा तंग करते हैं हम कोड में से एक अंतिम पंक्ति को देखने से पहले इस कार्यक्रम में। सकारात्मक पूर्णांक प्राप्त करें। के बाएं हाथ की तरफ अपने शब्द शब्द पूर्णांक है। कि तुम्हें क्या लगता है क्या दर्शाता है? इस प्रकार अब तक हम ज्यादातर शून्य देखा है। हाँ? दर्शकों: यह की तरह है आप के बारे में पूछ रहे हैं कि चर। स्पीकर 1: हाँ यह की तरह है, मुझे जाने दो नहीं चर कहते हैं, लेकिन मूल्य के प्रकार कि मैं के लिए वापस पूछ रहा हूँ। और वास्तव में, यह है कि यहां सहज ज्ञान युक्त, उम्मीद है। है ना? आप एक प्राप्त करना चाहते हैं सकारात्मक पूर्णांक, यह आप क्या है जैसे function-- चाहते हैं हमारे पिछले हफ्ते से स्वयंसेवकों एक टुकड़ा तुम वापस करने के लिए हाथ उस पर एक पूर्णांक के साथ एक कागज का? और इसलिए हम निर्दिष्ट किया है कि इस समारोह के तथाकथित वापसी प्रकार सकारात्मक पूर्णांक मिलता है। हम यह नहीं चाहते थे कि अगर आप शून्य कहते हैं, कुछ भी वापस। यदि आप चाहते हैं कि यह वापस करने के लिए एक स्ट्रिंग, आप स्ट्रिंग कहते हैं। यदि आप चाहते हैं कि यह वापस करने के लिए एक नाव, आप नाव कहते हैं। लेकिन यहाँ भी लागू होता है कि केवल एक ही तार्किक रूप से, मैं पाने के पूर्णांक का उपयोग कर रहा है, क्योंकि मैं करने के लिए इसे सीमित कर रहा हूँ, भले ही सकारात्मक मूल्यों, एक पूर्णांक के वापस जाने के लिए है। तो इसके विपरीत, इसका मतलब क्या है कि कोष्ठकों में एक शून्य है? कोष्ठकों क्या करें आम तौर पर परिभाषित? हाँ? दर्शकों: यह समारोह का मतलब है वास्तव में यह नहीं हो रही है। स्पीकर 1: यह समारोह का मतलब है वास्तव में क्या नहीं हो रही है? दर्शकों: एक इनपुट। स्पीकर 1: जो भी एक इनपुट,। तो वास्तव में, यदि कोष्टक यहाँ आप शून्य निर्दिष्ट लगता है कि सिर्फ मैं किसी भी इनपुट नहीं करना चाहते हैं इसका मतलब है। मैं इस समस्या अपने आप के साथ सौदा होगा। और वास्तव में, आप के लिए नहीं है सकारात्मक पूर्णांक कुछ भी प्राप्त बताओ। तुम बस कहना सकारात्मक पूर्णांक मिलता है, और कहा कि समारोह से दूर जाने के लिए और अपने काम करेंगे। लेकिन मैं एक छोटी सी चाल हो गया है यहां इस पूरे समय खेल कर दिया गया इस कोड का संकलन करता है सुनिश्चित करने के लिए। कि सकारात्मक मिलता int-- नोटिस पूर्णांक void-- लाइन 27 पर है। लेकिन कुछ मालूम होता है अजीब कारण के लिए यह लाइन 16 पर यहां भी है। और सिर्फ अच्छे उपाय के लिए मैं दोहराता हूँ यह तो यह पूरी तरह से समान है। और मैंने कहा है प्रोटोटाइप के साथ एक छोटे से एक-लाइन टिप्पणी। क्या मैं उस को नष्ट करता है, तो होता है, और अब समारोह 1, में प्रवेश कर फिर से चलाएँ। वूप्स। एक मिनट रुकिए। मेरी टैब कहाँ है? है ना? समर्थन करना। समारोह 1 बनाओ। हम वहाँ चलें। ठीक। इसे ठीक से बचाया नहीं किया था। तो, मैं एक छोटे से लगता है कि वहाँ यहाँ बग मैं नहीं हूँ जहां इस समय टैब नाम देखकर। तो यहां पर क्या हो रहा है? प्रकार्य की अस्प्ष्ट घोषणा सकारात्मक पूर्णांक मिल C99 में अमान्य है। तो फिर भ्रमित। तो इस संकेत क्या है? खैर, यह पता चला है कि सी सुंदर बेवकूफ है। खैर, यह प्रोग्रामिंग है भाषा, या यों कहें संकलक है। यह केवल तुम क्या है जानता है यह पढ़ाया जाता है, और यह केवल है कुछ पता चल रहा इससे पहले कि आप यह सिखाया है। दूसरे शब्दों में, में पल में मुख्य, मैं कर रहा हूँ एक समारोह कॉल करने के लिए कोशिश कर रहा है कहा जाता सकारात्मक पूर्णांक मिलता है। लेकिन संकलक नहीं जा रहा है कि सकारात्मक पूर्णांक मिल को नोटिस लाइन 26 तक मौजूद है। और तो संकलक क्या करता है बस त्रुटियों के रूप में जल्द ही यह 17 लाइन के लिए हो जाता है, अंतर्निहित घोषणा कह के सकारात्मक पूर्णांक, जो मिलता है कहने का सिर्फ एक अच्छा तरीका है, मैं नहीं सकारात्मक पूर्णांक अभी बाकी है क्या पता है। जावा जैसे अन्य भाषाओं और पायथन और रूबी आगे लग सकता है। सी नहीं करता है। और तो जिस तरह से हम ठीक करने इस दो तरीकों में से एक है। या तो एक समस्या है, तो लगता है कि मिल सकारात्मक पूर्णांक, इससे पहले नहीं देखा गया है खैर, मुझे बस इसे शीर्ष पर चलते हैं। यही कारण है कि इस समस्या को ठीक होगा। लेकिन आम तौर पर, यह है माना बेहतर तकनीक बहुत पर अपने मुख्य समारोह डाल करने के लिए एक मानव अपने कोड को पढ़ने के लिए इतना है कि शीर्ष , कार्यक्रम क्या करता है जानता है मुख्य सब दफन नहीं है क्योंकि नीचे या बीच में रास्ता। यह बहुत शीर्ष पर है। तो यह है कि आदर्श महसूस नहीं करता है। और अगर आप वास्तव में प्राप्त कर सकते हैं स्थितियों में जहां एक समारोह कहता है एक और कहता है जो एक और, आप एक मुद्दा में प्राप्त कर सकते हैं जहां न तो तार्किक रूप से, एक दूसरे के ऊपर जा सकते हैं। यह संभव ही नहीं है। और तो जिस तरह से काम करने के लिए इस बस लेने के लिए है चारों ओर समारोह के हस्ताक्षर है, तो speak-- को यह declared-- है जहां पहली पंक्ति और बस कॉपी, पर यह पेस्ट घुंघराले braces-- के साथ शीर्ष, लेकिन नहीं सिर्फ एक अर्धविराम। यह एक छोटा सा संकेत की तरह है क्या आ रहा है की। और वास्तव में, इस समय के सभी जब हम मानक io.h की तरह चीजों को देखा है और CS50.h, इसी तरह, में उन डॉट ज फ़ाइलें वहाँ अन्य प्रोटोटाइप हैं। और हम लंबे समय से पहले देखेंगे। तो संक्षेप में, आप एक प्रोग्राम है जब कई कार्यों के साथ एक फ़ाइल में मुख्य इसके अलावा, आप लगभग उन्हें हमेशा की घोषणा करना चाहते हैं सिर्फ अपने पहले के माध्यम से अर्धविराम द्वारा पीछा लाइन, फ़ाइल के ऊपर से ही। यही कारण है कि सभी को एक बार एक बहुत कुछ था। कोई प्रश्न? कोई प्रश्न? ठीक है। तो फिर आगे बढ़ने चलो खांसी की तरह कुछ करने के लिए। ओह। कितना सही। ठीक है। खाँसी। यहाँ तो एक सी है एक कार्यक्रम के कार्यान्वयन हम में दूसरे दिन किया स्क्रैच कि बहुत आसानी से बस खांसी, सर्दी, खांसी, सर्दी, खांसी कहते हैं। ठीक है। और अगर कोई कुछ कहा दिन पहले वहाँ है कि पहले से ही इस कोड की सफाई का एक तरीका है। ठीक है? जैसे ही आप नकल कर रहे हैं के रूप में और शायद बुरा डिजाइन चिपकाने। कम से कम एक बार हम चार या पांच को मिलता है या 20 खांसी, यह बुरा व्यवहार लगता है। हम सिर्फ चिपकाने प्रति रखें। स्पष्ट समाधान क्या है इस कार्यक्रम को साफ करने के लिए? दर्शकों: लूप। स्पीकर 1: हाँ। तो एक पाश का उपयोग करें। और हम थोड़ी देर के लिए लूप का उपयोग कर सकते हैं पाश, तरीकों में से किसी भी संख्या। और वास्तव में, कि क्या हो रहा है हम यहाँ संस्करण में करते हैं। मैं बजाय इसे फिर से लिखे गए हैं cough.c के संस्करण में एक के लिए लूप के भीतर सिर्फ खांसी हो। ठीक है, लेकिन वहाँ एक शुरुआत की तरह करने के लिए अब अवसर अधिक की तरह इस एक छोटे से डिजाइन करने के लिए सबक हम एक पल पहले सिखाया मैं चाहता था कि लगता है- जो है खांसी नामक एक समारोह बनाने के लिए, चलो बस एक पल के लिए विचार करते हैं क्या यह की तरह लग रहा है। मैं कुछ करना चाहते हैं तो मैं बस जरूरत है, खाँसी समारोह के अंदर प्रिंट च का उपयोग करने के लिए। और वास्तव में मैं कर रहा हूँ। और वास्तव में, यह सब समय, किसी भी समय आप कर रहे हैं के लिए कुछ मुद्रण स्क्रीन, एक प्रोग्रामर एक पक्ष प्रभाव है कि कहेंगे। यह मेरे सौंपने नहीं है किसी को वापस एक मूल्य। यह मुझे कुछ कार्रवाई ले जा रहा है कि नेत्रहीन स्पष्ट हो सकती है। लेकिन इस समारोह में खांसी, यह वापस करता है अपनी पहली पंक्ति के आधार पर कुछ भी? नहीं, इसकी वापसी प्रकार क्योंकि बस, जिसका मतलब शून्य है यह मुझे वापस कुछ भी नहीं सौंपने है। यह कुछ कर रही हो सकता है नेत्रहीन, लेकिन यह मुझे सौंपने नहीं है पिछले हफ्ते की तरह कागज का एक टुकड़ा वापस। यह किसी भी निवेश की जरूरत है? नहीं। और इसलिए यह यहाँ भी शून्य है। तो यह भी तरह का है इस समस्या को खत्म-इंजीनियरिंग। है ना? मैं और अधिक कार्यक्रम बनाया है कोड के जटिल है, और अधिक लाइनों, मैं किसी भी यह नहीं किया है अधिक कार्य है, लेकिन इस एक कदम पत्थर होगा, शायद, के लिए एक व्यापक और अधिक जटिल कोड के साथ प्रसंग। लेकिन इस बारे में क्या? मैं तो बस पर क्या glancing done-- है इस टिप्पणी को देख के बिना क्या है file-- के ऊपर से ही मैं मौलिक मेरी खाँसी के साथ यहाँ किया अलग है कि कार्यान्वयन? हाँ, पीठ में? दर्शकों: आप कर सकते हैं ताकि यह सुनिश्चित करें एक चरित्र को बंद कर दिया है। स्पीकर 1: हाँ। तो इस तरह से अच्छा लगता है। है ना? यह करने के लिए एक सुविधा जोड़ने की तरह है आपके कार्यक्रम या इस मामले में अपने कार्य,। यह अभी भी कुछ नहीं लौटाता है। यह एक दृश्य पक्ष प्रभाव हो सकता है यह प्रिंट च बुला रहा है क्योंकि। लेकिन अब मैं parametrized है समारोह, जो मैं ले लिया निर्दिष्ट किया है का मतलब int प्रकार के इनपुट और, एन इसे कहते हैं लेकिन मुझे लगता है मैं चाहता हूँ कि कुछ भी कह सकते हैं। वास्तव में, यह सिर्फ किया जा सकता है बार और भी अधिक स्पष्ट हो। और फिर मैं बस यहाँ यह बदल सकता है। लेकिन मुद्दा यह है कि कैसे मैं यह है कि है इनपुट लेता है कि एक समारोह बना। और अगर आप flipping से याद करते हैं एक में शायद ऑनलाइन के माध्यम से वॉक-थ्रू की, चौथे और अंतिम खांसी उदाहरण के लिए, आप यहाँ नोटिस हूँ मैं सामान्यीकरण नहीं किया है अनमना की मेरी कोड further-- तरह इसे आगे। खांसी और छींक की तरह, दोनों कर रहे हैं के बारे में कुछ कह रहा है या बनाने की तरह ध्वनि की किसी तरह। बचाने के लिए होगा स्क्रैच ब्लॉक इसी। और मैं इस संस्करण में किया था तो क्या हुआ, जो हम पर बस नज़र कर सकते हैं , खांसी, बस, [खाँसी] कहावत की तरह है खांसी, और इस बीच, छींकने है कह की तरह, [Achoo]। और इसलिए मैं सामान्यीकरण नहीं किया है उन का कार्यान्वयन अब लागू करने से इस सामान्य समारोह, दिलचस्प है, जो कहते हैं, आज के उद्देश्यों के लिए केवल अभी भी यह क्योंकि एक प्रकार की वापसी नहीं है। लेकिन यह कितने आदानों के लिए है? दर्शकों: दो। स्पीकर 1: दो। और इसलिए यदि आप चाहते हैं दो तर्क में लेते हैं, सिर्फ एक अल्पविराम के साथ उन्हें अलग। और तुम तो करना चाहते हैं उस समारोह फोन है, नोटिस आपको लगता है कि बस , गंदें शब्द बोलना, बोली, कहते हैं फोन पहला तर्क के लिए, आम एन, दूसरा तर्क के लिए। तो फिर, हम तो बस अब है इमारत ब्लॉकों हम वास्तव में कर सकते हैं कि इतने हमारे अपने कार्यों में से कुछ को लागू करने। ठीक है। इन पर कोई सवाल? तो अब एक परत है, इसलिए यदि वापस छील करते हैं। और लक्ष्य के अंत में, अगले सप्ताह की समस्या सेट है cryptogrophy-- पर होने जा रहा है जानकारी पांव मार करने की कला। और विशेष रूप से, के बारे में जानकारी आप एन्क्रिप्ट या डिक्रिप्ट होगा पाठ होने जा रहा है। निमंत्रणों की और इसलिए उस तरह सवाल अच्छी तरह से आज की तरह, क्या हुड के नीचे चल रहा है सप्ताह शून्य से आस्की परे पाठ के साथ, और कैसे वास्तव में हम कर सकते हैं यह हेरफेर करने के लिए शुरू कर दिया? तो यहाँ Zamyla का नाम है। और पाठ में, कि inputted किया जा सकता है मिल स्ट्रिंग समारोह की तरह में। आप एक देखोगे और अब शुरू है- जेड-ए-एम-वाई-एल एक-- तरह स्ट्रिंग प्रत्येक के रूप में हालांकि इसके बारे में सोच शुरू उन पात्रों के के एक बॉक्स में है इसकी खुद। और वास्तव में, एक सप्ताह में या तो है समय, इन बक्सों में से प्रत्येक बहुत विशेष रूप से प्रतिनिधित्व करने के लिए जा रहा है स्मृति का एक टुकड़ा memory-- के एक ब्लॉक। तो इन पत्रों में से प्रत्येक, अंत में, 8 बिट का प्रतिनिधित्व करेंगे। और हम वास्तव में क्या हो रहा है देखेंगे अपने कंप्यूटर में हुड के नीचे। लेकिन नहीं करने के लिए यह काफ़ी है सिर्फ Zamyla को देखने के लिए की जिससे प्रत्येक इस लेंस के माध्यम से इन पत्रों को अपने स्वयं के बॉक्स में है। और अच्छी तरह से पर्याप्त सी में हम कर सकते हैं सीधे इन बक्सों में से प्रत्येक का उपयोग। जब आप पहली बार प्राप्त करना चाहते हैं तो उसके नाम का पत्र, सी में सुपर आसान आप पिछले प्राप्त करना चाहते हैं पत्र, सुपर आसान के रूप में अच्छी तरह से नई वाक्य रचना के एक टुकड़े के साथ। इसलिए मैं CS50 में आगे जाने के लिए जा रहा हूँ आईडीई और स्ट्रिंग शून्य डॉट सी ऊपर खुला और यहाँ इस उदाहरण में, देखते हैं नई चीजों की एक जोड़ी पर जा रहे हैं। तो पहली पंक्ति 19 में, हम है इस before-- मिल स्ट्रिंग देखा। तो बस एक त्वरित मानसिक स्वास्थ्य की जांच के रूप में, किसी को मौखिक रूप से ऊपर की पेशकश कर सकता है, तो की एक आम आदमी की स्पष्टीकरण क्या लाइन 19 में चल रहा है। बस में इस अनुवाद की तरह अंग्रेजी कि CS50 में एक रूममेट नहीं समझ सकता है। हाँ। दर्शकों: उपयोगकर्ता इनपुट एक है स्ट्रिंग एक चर एस में यह दुकान और। स्पीकर 1: अच्छा। उपयोगकर्ता इनपुट एक स्ट्रिंग है और एक चर एस में यह दुकान। यह बहुत अच्छा है। दाएँ हाथ पर तो पक्ष, हम मिल स्ट्रिंग कहते हैं। यही कारण है कि एक मान देता है जो कि नियत नहीं मिला दाएँ हाथ की ओर से बाएं हाथ के लिए है कि एक चर बुलाया रों में पक्ष एक स्ट्रिंग स्टोर करने के लिए बनाया गया है। बिल्कुल सही। तो अब प्रति 22 लाइन लाइन 21 में टिप्पणी, जाहिर है कि स्ट्रिंग प्रिंट प्रति पंक्ति एक चरित्र। पर कैसे? तो सब से पहले, हम मैं करने के लिए 0 से प्रारंभ। और फिर हम कैसे करने के लिए मिलता है Zamyla के नाम का अंत? खैर, के अंत में Zamyla का नाम, मैं कर सकता मैन्युअल के अंतिम चरित्र में टाइप उसकी किसी भी तरह का नाम, या यह की संख्या। है ना? हम वापस here-- जेड-ए-एम-L-- जाना है वाई-एल एक-- तो मैं में टाइप कर सकते हैं। के सूचकांक क्या है Zamyla के अंतिम पत्र? यदि यह है कि 0-- एक तरह से बोल रहा हूँ programmer-- 0, 1, 2, 3, 4, 5, मैं तो वास्तव में अंतिम पत्र heard-- Zamyla के नाम में छठे है, लेकिन हम 0 से गिनती करते हैं, यह संख्या 5 होने जा रहा है। यहाँ तो मन में रखो। एक समारोह में वहाँ से बाहर बदल जाता है सी strlen कहा जाता है, और दिन में वापस और अभी भी इस दिन के लिए, प्रोग्रामर का एक बहुत के लिए नामों सिंक करने के लिए चुनते हैं उनकी शब्दों की तरह है कि ध्वनि कार्यों वे कहने की कोशिश कर रहे हैं। तो strlen स्ट्रिंग की लंबाई है। और तो क्या स्ट्रिंग लंबाई का होगा Zamyla इनपुट है जब एस वापसी? दर्शकों: पांच। स्पीकर 1: जेड-ए-एम-वाई-एल। छह। है ना? Zamyla के नाम की लंबाई क्या है? है ना? और सिर्फ वास्तविकता में, छह पत्र। है ना? और इतना है कि हमारे पाश के लिए क्या मतलब है? हम से जाने के लिए जा रहे हैं छह अप करने के लिए 0, जो हमें पांच पुनरावृत्तियों देने जा रहा है। हम प्रत्येक यात्रा पर क्या करते हैं? खैर, प्रतिशत सी, किसी को दूसरे दिन अनुमान लगाया है, क्या के लिए एक प्लेसहोल्डर का अर्थ है? दर्शकों: चार। स्पीकर 1: बस एक चार। इसलिए एक भी character-- नहीं एक स्ट्रिंग की तरह कई पात्रों। और फिर यहाँ नई लाइन है हम बाहर मुद्रण मिल गया है। और फिर यहाँ नई वाक्य रचना है। आप मैं वें बाहर मुद्रित करना चाहते हैं स्ट्रिंग एस में चरित्र, तो बात है, आप बस कह सकते हैं स्ट्रिंग एस का नाम है, और फिर वर्ग कोष्ठक खुला, और फिर एक के साथ मैं, वर्ग कोष्ठक बंद कर दिया बीच में। और यह है कि एक तरह से अच्छा है यह एक तरह से एक वर्ग की तरह लग रहा है सिर्फ चौकों की तरह Zamyla की जिसमें पात्रों वहाँ उस तस्वीर पर मौजूद हैं। मैं वास्तव में इस चलाते हैं तो अब, चलो देखते हैं क्या होता। स्ट्रिंग 0 डॉट स्लेश बनाओ स्ट्रिंग 0, और फिर मैं कर रहा हूँ Zamyla के नाम में टाइप करने के लिए जा रहा है। मैं नहीं था क्योंकि कोई संकेत नहीं है, प्रिंट च उपयोग करें, लेकिन वह ठीक है। मैं बस पता है क्या करना। और वास्तव में, यह बाहर प्रिंट Zamyla का नाम, प्रति पंक्ति एक। अब चलो थोड़ा लापरवाह हो जाने दो। मुझे नहीं पता था कि मान लीजिए के बारे में strlen और मुझे लगा, सब ठीक है, कोई भी एक किया जा रहा है 50 पात्रों की तरह से भी बड़ा नाम है। आगे बढ़ते हैं और इस कंपाइल चलो और यह फिर से दौड़ना, और फिर Zamyla में टाइप फिर से। तार्किक रूप से, क्या है कार्यक्रम मुद्रित करने का प्रयास करने के लिए जा रहे हैं? जेड-ए-एम-वाई-एल-ए तो जैसे 45 स्मृति की अज्ञात बाइट्स। और वास्तव में, हम वापस आ गया हूँ स्मृति के इस विचार करने के लिए। लेकिन सिर्फ तार्किक रूप से, यदि Zamyla का नाम, लंबे समय तक यह है चित्र के अनुसार यहाँ, हम क्या कह रहे हैं मुद्रण रखने के लिए, मुद्रण रखना है, रखना मुद्रण, मुद्रण रखने के लिए, मुद्रण रखना 50 वीं चरित्र के लिए सभी तरह, जो होने जा रहा है जो जानता है। तो चलो वास्तव में एक नजर डालते हैं। के Zamyla में टाइप करते हैं। दिलचस्प है। हम भाग्यशाली है। सफेद स्थान का सिर्फ एक पूरी गुच्छा। ओह। एक कायरता चरित्र नहीं है। यह एक अजीब सवाल की तरह की तरह लग रहा है वहाँ निशान, लेकिन Zamyla का नाम नहीं है। वास्तव में लापरवाह मिलता है। हम 500 प्रिंट आउट के बारे में कैसे अज्ञात में ब्लॉक? आगे बढ़ते हैं और इस कर दूं के रूप में अच्छी तरह से और उसके बाद फिर से चलाने के। और हम इसका, क्योंकि पूर्ण स्क्रीन चलो हम और अधिक स्थान को देखने की जरूरत है। Zamyla। फिर भाग्यशाली है। हम और अधिक लापरवाह मिल हिम्मत कैसे हुई? चलो अधिक लापरवाह मिलता है। 50,000 अक्षर। यह सबसे निश्चित रूप से एक अच्छा विचार नहीं है। ठीक है। स्ट्रिंग 0 बनाओ। यह हमारी आखिरी डेमो हो जाएगा। Zamyla। ऊ। ऊ। ठीक। तो मेरी स्मृति, सच में अभी खाली है जो वास्तव में एक तरह से सुविधाजनक है। मैं सब ठीक है-- पाने के लिए कोशिश कर रहा हूँ। और अब मैं सिर्फ लापरवाह पाने के लिए जा रहा हूँ। 500,000। पूर्ण स्क्रीन की यह जाने Make--। दर्ज करें। Zamyla। हम वहाँ चलें। मुझे पता नहीं है कि क्या है है, लेकिन यह बुरा लग रहा है। ठीक है। और वास्तव में, जल्द ही, आप के बीच रहे हैं कार्यालय समय में भाग्यशाली कुछ और इस समस्या में, आप एक सेट बहुत अच्छी तरह से इस मुठभेड़ हो सकता है। विभाजन गलती वास्तव में है एक अच्छी तरह से परिभाषित अर्थ है। यह गलती किसी तरह का मतलब है स्मृति का एक खंड से संबंधित। और आम आदमी की दृष्टि में, यह हम छुआ इसका मतलब memory-- हम अपने कंप्यूटर में रैम इस्तेमाल किया मैं करने के लिए उपयोग किया है नहीं करना चाहिए। और कहा कि दोनों क्या है शक्तिशाली और भी खतरनाक सी के बारे में आपको लगता है कि वास्तव में है निरंकुश उपयोग किया है अपने कार्यक्रम की स्मृति की सम्पूर्णता के लिए या बाइट्स या राम, और अधिक विशेष। तो भी Zamyla के नाम यद्यपि सिर्फ छह वर्ण लंबा है मैं अभी भी कहीं भी जा सकते हैं स्मृति में मैं चाहता हूँ। और एक तरफ, आप है मानो कभी कुछ लेख पढ़ा कुछ के बारे में पिछले कुछ वर्षों में सर्वर या कुछ कार्यक्रम फटा या काट दिया हो रही है कि कुछ का लिया लाभ एक बफर अतिप्रवाह बुलाया हम वास्तव में हूँ कि शोषण वह है, कुछ ही हफ्तों में के बारे में बात आम तौर पर किसी भी तरह चकरा देनेवाला की चर्चा करते हुए अच्छी तरह से जा रहा में एक कंप्यूटर स्मृति की सीमाओं से परे यह होना चाहिए कि, और रसदार कुछ पाने कि memory-- में पासवर्ड, शायद, एक रास्ता कुछ सीरियल नंबर को धोखा देने की जाँच करें, या आम तौर पर सक्षम बस कंप्यूटर निष्पादित कर रहा है चाल के लिए इरादा नहीं था कि कोड। लेकिन वापस करने के लिए आते हैं बस एक पल के लिए वास्तविकता इस कार्यक्रम था जहां strlen के साथ लागू किया, और यहाँ एक बात को परिचय। इन शीर्ष तीन लाइनों के बीच नया क्या है? तो स्ट्रिंग डॉट एच। यह कहा जाता है इस पुस्तकालय नहीं है, पता चला है स्ट्रिंग डॉट एच, या स्ट्रिंग लाइब्रेरी, जिसका हेडर फाइल, तो बात है, मुझे देता है कि स्ट्रिंग डॉट ज रहा है इस strlen समारोह के लिए उपयोग। मुझे लगता है कि न आना, तो संकलक है किसी न किसी रूप में मुझ पर चिल्लाना करने के लिए जा रहा है। लेकिन क्या आप जानते हैं? अब देखते हैं कि वास्तव में सूक्ष्म मिलता है। लाइन 22 में, कुछ प्रकार है के inefficient-- बुरी तरह से बनाया गया है, कोड के इस लाइन के बारे में arguably--। कैसे वापस सोचो के लिए लूप लागू कर रहे हैं और क्या कदम फिर से हो और फिर और आरंभ again--, हालत, कोड है कि मार डाला, तो वेतन वृद्धि हो जाता है या बदलने के लिए, तो हालत, तो फिर कोड, तो परिवर्तन, हालत है, तो कोड, तो बहुत आगे परिवर्तन, और। तो क्या एक छोटे से हो सकता है चिंता की बात है या खराब यहाँ किया? हाँ, नीले रंग में। दर्शकों: strlen है कई, कई बार फोन किया था। स्पीकर 1: हाँ। कहा जाता है तो strlen कई बार, लेकिन क्या है Zamyla के नाम की लंबाई पहली बार पाश निष्पादित करता है? दर्शकों: छह। स्पीकर 1: छह। खैर, उसके नाम की लंबाई क्या है कोड निष्पादित दूसरी बार? दर्शकों: छह। स्पीकर 1: ठीक है। यह अभी भी छह है। है ना? Zarla का नाम नहीं है मैं देख रहा हूँ, भले ही बदल गया उसके नाम के अक्षरों का ही हिस्सा है। और तो वास्तव में मैं प्रभावी ढंग से कर रहा हूँ कि यह सवाल पूछ रहा है, क्या है Zamyla की लंबाई, लंबाई क्या है Zamyla की, Zamyla की लंबाई क्या है, छह अलग अलग समय, या सात भी, सिर्फ मूर्ख है कि जवाब है कि अपरिवर्तनीय है, क्योंकि। और तो क्या मैं वास्तव में कर सकता है स्ट्रिंग एक में है- करना है मैं यहाँ एक मामूली बेहतर संस्करण है। There-- whoops-- स्ट्रिंग दो मेरे पास है एक मामूली बेहतर संस्करण जिसमें मैं बजाय सिर्फ है- करना मैं एक अल्पविराम के साथ भी, 0 करने के लिए मैं प्रारंभ कर कहा जाता है एक दूसरे चर घोषित N-- मैं फिर पूर्णांक कहने के लिए नहीं है। मैं वास्तव में नहीं करना चाहिए। लेकिन मैं n कहते हैं। और फिर मैं n करने से प्रारंभ इतना है कि n के strlen, अब कितनी बार strlen करता कुल में मार डाला? सिर्फ एक बार। और तो यह है कि हम क्या मतलब है पहले बेहतर डिजाइन के बारे में। वास्तव में आपके कोड सही है, एक बार वापस जा रहे हैं और सोच के माध्यम से, मैं के रूप में छोटे का उपयोग कर रहा हूँ स्मृति के रूप में या कुछ सेकंड कंप्यूटर समय की या मिसे के रूप में कुछ समस्या को लागू करने के लिए संभव है? और मैं स्क्रॉल करने के लिए जा रहा हूँ अप और सिर्फ उल्लेख यह उल्लेख है कि वहाँ इस संस्करण में अशक्त की, लेकिन हम लंबे समय से पहले वापस करने के लिए आया हूँ। अब क्योंकि, चलो एक नज़र रखना जहां पर यह हमें ले जा रहा है। एक तो, यह पता चला है कि हम क्षमता है कि अब व्यक्तिगत चरित्र को देखने के लिए, हम कुछ उत्तोलन कर सकते हैं हफ्ते 0 से कि बहुत रहस्यमय था और समय पर शुष्क की तरह। लेकिन अब, और विशेष रूप से जब हम एक सप्ताह में क्रिप्टोग्राफी करने के लिए मिलता है, यह बहुत शक्तिशाली होने जा रहा है। यह कुछ के साथ पता चला है कि डेटा types-- ints और मंगाई और घर का काम और तार और उनमें से कुछ बातें अन्य बहुत आसानी से एक और करने के लिए परिवर्तित किया जा सकता है। उदाहरण के लिए, जब हमने बात की आस्की के बारे में कुछ समय ago-- यहाँ है राजधानी पत्र ए एम के माध्यम से, डॉट, डॉट, dot-- हम एक मानचित्रण है कि वहाँ कहा इन पत्रों और संख्याओं के बीच। और वास्तव में, यह सच है के रूप में अच्छी तरह से छोटे अक्षरों के लिए। छोटे अक्षर की एक 97 है, राजधानी में एक 65 है। और ASCII में एक संख्या है, वहाँ जो सिर्फ इस मानचित्रण है उन अन्य पत्र के सभी के लिए प्रणाली। तो उसका क्या मतलब हुआ? खैर, मैं आगे और खुले जाने के लिए जा रहा हूँ कहा जाता वास्तविक जल्दी से कुछ ऊपर टिप्पणी है, जिनमें से अधिकांश आस्की 0,। और फिर ऑनलाइन आप हमेशा कर सकते हैं टिप्पणी के माध्यम से नज़र। और एक नज़र रखना क्या यह करने के लिए जा रहा है। तो यह एक मुख्य समारोह मिल गया है। मैं बस के लिए संख्या कड़ी मेहनत से कोडित है अब, क्योंकि मुझे लगता है मैं क्या कर रहा हूँ। मैं यहाँ क्या देखना चाहते हैं पता है। और मैं 65 के लिए मैं initialized है। और मैं गिन रहा हूँ 26 के माध्यम से पत्र कुल। और मैं क्या करने के लिए जा रहा हूँ एक समय में एक पंक्ति मुद्रित आप व्याख्या कर सकते हैं, तो इस लाइन पर प्रकाश डाला? क्या मुद्रित हो जाता है? हाँ। दर्शकों: यदि आप जा रहे हैं पत्र मुद्रित करने के लिए कि के नक्शे से मेल खाती है पत्र मूल्य और पूर्णांक मूल्य है? स्पीकर 1: बिल्कुल। मैं पत्र मुद्रित करने के लिए जा रहा हूँ पूर्णांक मान, इसी लिए और इसके विपरीत, के रूप में इस प्रकार है। वैसे यह कोई है, पहले कहा था एक चार के लिए सिर्फ एक प्लेसहोल्डर है। यह अभी भी है। यह, ज़ाहिर है, एक प्लेसहोल्डर है एक नई लाइन एक int-- नहीं करने के लिए। और अब, मेरी पहली मूल्य नोटिस कि मुझे लगता है कि प्लेसहोल्डर के लिए में plugging हूँ सिर्फ मैं मैं कह रहा हूँ नहीं है, कोष्ठक में, चार मैं, जो प्रारंभिक चार है संकलक कह रहा है, मैं इलाज नहीं यह एक संख्या है, जो है क्या के रूप में। एक वास्तविक चरित्र के रूप में समझो। दूसरा मूल्य जबकि मैं plugging हूँ in-- I-- सिर्फ एक संख्या होना चाहिए। इसलिए मैं इस program-- संकलन इसलिए इस आस्की 0 बनाना है, डॉट स्लेश आस्की 0-- मैं बस मिल यह काम थोड़ा चार्ट कि मुझे संभव के सभी शो यह लगता है कि बिना मैपिंग के माध्यम से या अपने दम पर यह पता लगा। और मैं यह भी बाहर मुद्रण कर रहा हूँ छोटे अक्षरों को नोटिस, बाद में कुछ लाइनों, क्योंकि मैं भी इस मैपिंग बाहर प्रिंट के रूप में अच्छी तरह से, बस के लिए है जो आप समझते हैं कि एक बार कहने नीचे क्या हो रहा है डाकू, आप कर सकते हैं स्वचालित रूप से आगे और पीछे परिवर्तित। और वास्तव में, आप में से यदि कोई हो कभी ग्रेड स्कूल में ऐसा किया या किसी के बारे में सुना mythically एक नोट लेने और करने के लिए इसे पारित उसकी या कक्षा में उसके दोस्त, लेकिन आप तले ए बी हो जाता तरह से पत्र, और बी सी, या कुछ और हो जाता है है कि अधिक से अधिक जटिल है, अच्छी तरह से, आप के बारे में कैसे जाना होगा एक बच्चे के रूप में है कि लागू करने? ठीक है, तुम बस की तरह पता है ए बी हो जाता है, बी सी हो जाता है, लेकिन गणितीय, उस बच्चे क्या कर रहा था? क्या आप प्रत्येक अक्षर के लिए जोड़ रहे थे? प्रभावी ढंग से, 1। आप बी के लिए एक बदलाव तो, जब कि एक तरह से 65-66 बदलने की तरह, जो गणितीय सिर्फ 1 जोड़ने का मतलब है। और तो आप को लागू करने के लिए गए थे उस छोटे से भ्रामक तकनीक कोड में अपने शिक्षक के लिए, आप कि सिर्फ वही कर सकता है एक साथ एक ही अक्षर जोड़कर। इतने लंबे समय से पहले, हम कर रहे हैं हम देखते हैं कि कैसे करने के लिए जा रहा वास्तव में उस का लाभ ले सकते हैं सही मायने में हाथापाई और खोलना जानकारी। बीच में, हम शुरू कर दिया है कि पता है कुछ अन्य पुस्तकालयों को पेश करने के लिए स्ट्रिंग एक आज here--। और एक बहुत ही उपयोगी साइट उम्मीद है कि आप मिल जाएगा , reference.cs50.net जो कहा जाता है शिक्षण स्टाफ को एक साथ रखा है, यदि आप चाहते हैं कि इतने कैसे strlen कार्यों को देखने के लिए, आप टाइपिंग शुरू कर सकते हैं समारोह का नाम, क्लिक वहाँ strlen, और उसके बाद एक कम आराम से स्पष्टीकरण दिखाई जा रही है। या फिर आप सरकारी चाहते हैं लिनक्स आधारित विवरण, आप और अधिक आराम से क्लिक कर सकते हैं शीर्ष सही है, और यह कम से एक ही जानकारी पेश करेंगे, लेकिन और अधिक जटिल संदर्भ में। यही कारण है कि करने के लिए एक उपयोगी संसाधन है वास्तव में सब कुछ करता है क्या पता है। हम करने जा रहे हैं अगली बार Ovaltine पर एक नज़र रखना और अधिक है, और अपने आप को परिचय क्रिप्टोग्राफी की दुनिया के लिए। तब से पहले, हम देखेंगे आप बाद में इस सप्ताह। और अब, कोल्टन ओग्डेन। बुधवार को आपसे मिलुंगा। [संगीत बजाना] [संगीत बजाना] स्पीकर 1: क्या [आवाज़] तुम क्या कर रहे हैं? स्पीकर 1: मैं अपने मिठाई खा रहा हूँ? आप इसे कैसे खाते हैं? आपके हाथों? [संगीत बजाना]