[वीडियो प्लेबैक] गणितीय के ए विजय और यांत्रिक कौशल इस महान नए स्वचालित है हार्वर्ड विश्वविद्यालय में कैलकुलेटर। गणित के क्षेत्र में जटिल समस्याओं कोडित रूप में मशीन के माध्यम से रखा टेप पर सही ढंग से एक में हल कर रहे हैं समय के मिनट के अंश आवश्यक मानव गणना के लिए। के सभी रूपों में तेजी लाने के लिए बनाया गया गणितीय और वैज्ञानिक अनुसंधान, विशाल यांत्रिक मस्तिष्क के लिए काम करेंगे संयुक्त राज्य अमेरिका नौसेना युद्ध के अंत तक। [अंत प्लेबैक] डेविड जे मालन: यह CS50 है। पिछले एक जादुई था जगह है, लेकिन आप है, तो कभी कि डिवाइस क्या सोच रहा हार्वर्ड विज्ञान केंद्र में, यह वास्तव में है का हिस्सा है हार्वर्ड मार्क मैं, और यह बात है अब वहाँ प्रदर्शन पर पिछले कई वर्षों के लिए। और आप देखेंगे क्या समस्या सेट में एम्बेडेड एक पर्दे के पीछे एक नज़र है उस डिवाइस, किया था, और करता है पर क्या में है, जो प्रोफेसर हैरी लुईस से यहां कंप्यूटर विज्ञान विभाग। सिर्फ एक बिट में उस पर इतनी अधिक। लेकिन आज हम संक्रमण के लिए शुरू पिछले हफ्ते से यह करने के लिए, और हम उल्लेख लाती हूँ यहां एक तस्वीर के कि वास्तव में काफी प्रसिद्ध है। किसी को क्या पता है कि यह क्या है यहाँ स्क्रीन पर है? कम से कम मिथक के अनुसार। हाँ। दर्शकों: पहला वायरस। डेविड जे मालन: तो यह माना जाता था एक कंप्यूटर में बहुत पहले वास्तविक बग। अब वास्तविकता में शब्द बग, एक कार्यक्रम में एक गलती के लिए, कुछ के लिए हमारे साथ रहा है भौतिक दुनिया में समय, और यह पहले की गई थी प्रलेखित बार जहां कोई वास्तव में मार्क के बाहर एक बड़े कीट साहसपूर्ण द्वितीय कंप्यूटर, बांधने की मशीन में डाल दिया और फिर यह रिकॉर्ड पहली ज्ञात बग के रूप में वास्तव में शारीरिक रूप से पाया गया है। तो इस प्रकार दर्ज किया गया था आज के विद्या में है। पिछले से सब कुछ सप्ताह ऑनलाइन उपलब्ध है। उस विशेष संसाधनों में आप कर सकते हैं जरूरी नहीं कि विशेष रूप से, नोटिस व्यक्ति में यहां आने वाले हैं। इसलिए शिक्षण साथियों में से एक हर साल के नोटों की एक विहित सेट बनाता है, इसलिए आप को बनाए रखने की जरूरत नहीं है अपने सिर के नीचे, की कोशिश कर रहा सबसे कुछ टाइप करने के लिए उस वर्ग में यहाँ हो सकता है। तो उन का एहसास है कि [तथाकथित? Scribd?] नोटों निश्चित रूप से स्लाइड, ऑनलाइन कर रहे हैं और हम कक्षा में उपयोग करने वाले स्रोत कोड। हम पूर्ण पाठ टेप बनाने उपलब्ध के रूप में अच्छी तरह से। आप थोड़ा कुछ याद तो अगर अवधि, और एक छोटे से इसे देखना चाहता हूँ और अधिक आसानी से, कि सभी को पता है इस बात का खोजा ऑनलाइन है। के रूप में अच्छी तरह के रूप में के रूप में अच्छी तरह से walkthroughs। दरअसल, आज हम को देखने के लिए शुरू एक निचले स्तर प्रोग्रामिंग भाषा, जल्द ही हमें करने के लिए जाना जाने सी के रूप में है, और यह बहुत आसान है प्रकार के कुछ ही बाद खो जाना क्षणों समय, और आश्चर्य की तो प्रकार हम वास्तव में कुछ और करने के लिए कैसे मिल गया सरल से जटिल उदाहरण है। और इसलिए हम चेरी हूँ एहसास वर्ग कुछ के दौरान लेने प्रतिनिधि उदाहरण के लिए, लेकिन इतना अधिक भी एहसास है कि आप काम कर सकते हैं तो ऑनलाइन उपलब्ध , अपनी गति से यह माध्यम से हालांकि आप सबसे अधिक आराम कर रहे हैं। लेकिन हम से दूर छोड़ दिया सिर्फ इस थे कि कार्यक्रम। इसलिए मैं हरे रंग का झंडा, क्लिक करें और इस कार्यक्रम क्या करता है? हैलो, दुनिया, कहते हैं। यह बिल्ली का कहना है कि बनाता है हैलो उसकी छोटी सी दुनिया में शीर्ष बाएं हाथ की ओर स्क्रैच का यूजर इंटरफेस की। लेकिन हम लागू करने के लिए शुरू कर दिया कुछ शब्दावली पिछले सप्ताह। और हां, इस तरह से बातें हम क्या कहा जाता है? इस के लिए सामान्य शब्द क्या हो सकता है? हाँ। एक विधि या एक बयान। बेशक, यह एक कार्रवाई है। इसे करें। और फिर भी वहाँ थे खरोंच करने के लिए अन्य आकार, इन तथाकथित इसके अलावा बयान, वे भी थे हम क्या कहा जाता है, जो इस तरह से बातें? हाँ। तो एक पाश। और इस मामले में, इस बात को दोहराता है, जाहिर है, 10 बार। एक हमेशा के लिए ब्लॉक नहीं है। दूसरों की एक जोड़ी है। और आज हम कैसे को देखने के लिए जा रहे हैं एक और अधिक आधुनिक दुनिया के लिए यह अनुवाद, यह भले ही, अगर तुम जाएगा पहली नज़र में दिखाई जा रही बहुत अधिक रहस्यमय हो। लेकिन उन वास्तव में छोरों थे। और फिर हम की तरह बातें इस आकार की थी जो इस, और अनिवार्य रूप से सवाल पूछा। और हम के रूप में क्या इन करने के लिए भेजा? दर्शकों: बूलियन अभिव्यक्ति। डेविड जे मालन: हाँ। बूलियन अभिव्यक्ति। कुछ यह है कि या तो सही है या झूठी, हाँ या नहीं, एक या शून्य, लेकिन आप दुनिया को देखना चाहते हैं। लेकिन हम उन बूलियन बुलाया भाव, और हम उन्हें प्लग स्थिति, या शाखाओं में। और की दुनिया में स्क्रैच, सब कुछ अच्छी तरह से अपने आकार के मामले में इंटरलॉक, यह ऐसा करने के लिए तार्किक समझ में आता है, लेकिन तुम सिर्फ पर रोक के लिए नहीं है सशर्त एक बात कर रही है, आप एक लौकिक हो सकता है सड़क में कांटा और इस या यदि है कि या तो ऐसा हालत सच है या नहीं। और फिर, जैसा कि आप देखेंगे आप पहले से ही नहीं है, आप घोंसला इन ब्लॉकों भी कर सकते हैं। तो स्क्रैच आकार को भरने के लिए बढ़ता है आप इसे में डालने के लिए चाहते हो सकता है कि, ताकि आप वास्तव में व्यक्त कर सकते हैं सबसे आप क्या करना चाहते हो सकता है कि किसी भी तर्क। घोषणा के अब कुछ शब्द दोनों यहाँ और न्यू हेवन के लिए। तो सेक्शनिंग आज शुरू होता है। इस के लिए यूआरएल पाठ्यक्रम पर है वेबसाइट, अपरिचित उन लोगों के लिए। धारा एक होना होगा मौका एक साथ पाने के लिए एक बहुत अधिक अंतरंग माहौल में [से? सैंडर्स?], की अनुमति देता है एक साथ 10 से 20 सहपाठियों के साथ अलग पटरियों पर साथी अध्यापन, और विभिन्न ज्ञान प्राप्त किया, अगर तुम इतने चुनें। दरअसल पाठ्यक्रम प्रदान करता है विभिन्न वर्गों कम आराम से उन लोगों के लिए है, और अधिक आरामदायक, और बीच में कहीं, और यहाँ अंगूठे की भूमिका है, कोई औपचारिक परिभाषा नहीं है, लेकिन आप कम आराम कर रहे हैं, आप की तरह इसे जानते हैं। आप के बारे में थोड़ा निडर हो वापस, शायद, पैर कदम के विचार कक्षा में, या दिखा खंड के बीच एक में करने के लिए। क्या आप के बाद से प्रोग्रामिंग किया गया है और अधिक आरामदायक, छह साल के थे शायद आप को। और यह एक टॉस अप की तरह है, तो कि वास्तव में क्या बीच में है मतलब के लिए होती है। अब, इस बीच में, एक वर्ग इस आकार के लिए, यह खंड करने के लिए हमें काफी कुछ समय लगता है हर किसी को है, इसलिए हम तथाकथित है, सुपर वर्गों, ऊपर आने वाले इस सप्ताह के अंत में और अगले हफ्ते की शुरुआत, इसलिए पाठ्यक्रम की वेबसाइट पर एक नज़र रखना पाठ्यक्रम चौड़ा कर रहे हैं कि उन लोगों के लिए, और भी उन लोगों के लिए फिल्माया जो उन्हें नहीं बना सकते। और वर्गों के लिए खुद को शुरू कर देंगे सप्ताह में CS50 शून्य सूचकांक के तीन। समस्या 0 पहले से ही है सेट पाठ्यक्रम की वेबसाइट पर। और अगर आप किसी का एहसास है कि नौ देर दिनों इस सेमेस्टर। तो यह पिछले से एक उन्नयन है साल, हम पाँच देर दिन था जब। तो अगर आप सोच रहे हैं, हम नौ समस्या सेट है। आप नौ देर दिनों, जिनमें से प्रत्येक की है आप केवल पर प्रति सप्ताह एक खर्च कर सकते हैं। यही कारण है कि प्रभावी ढंग से सभी बनाता है समस्या की वजह से शुक्रवार सेट, लेकिन लक्ष्य एक छोटे डाल दिया है मनोवैज्ञानिक दबाव का एक सा आप पर लाने के लिए प्रयास करने के लिए गुरुवार को बातों में आप जल्द ही पता चल जाएगा, क्योंकि बेहतर या बदतर है, अधिकांश के लिए सॉफ्टवेयर की दुनिया में सब कुछ समाप्त हो जाती है बहुत लंबे समय तक आप आशा से ले रही है। तो यह एक तरह से करने पर विचार मदद करने के लिए अवसर की खुद गुरुवार को लक्षित करने के लिए लेकिन, हाँ, उस में आराम ले सब कुछ शुक्रवार की वजह से है। और आप उन पर प्रस्तुत करता है, तो गुरुवार, यह बढ़िया है। कोई बोनस अंक या अतिरिक्त नहीं है कि समय सीमा तय की बैठक के लिए ऋण। यह केवल एक बैसाखी के होने का मतलब है। और कार्यालय समय, दोनों यहाँ और न्यू हेवेन में, व्यक्ति में, आप करना चाहते हैं तो हमारे पाठ्यक्रमों में से किसी के साथ मिलना सहायता के लिए साथियों और कैस अध्यापन। ठीक है। तो अब, चलो इस और अधिक वास्तविक बनाने दें। और एक पल के लिए इसे शुरू करने जा रहा है एक छोटे से अधिक रहस्यमय मिलता है, लेकिन बहुत करने के लिए जल्दी से शुक्रवार को और अगले सप्ताह हम होगा इतना अधिक करने के लिए सक्षम हम इस प्रकार अब तक खरोंच में कर सकता है। इसलिए हम पिछले कोड की शुरुआत की सप्ताह, pictoral यद्यपि। यह पहेली टुकड़े था। और हम यह है कि औपचारिक रूप स्रोत कोड में कुछ कहा, लेकिन तरह लग रही थी होगा? खैर, यह एक छोटे से देखा कुछ इस तरह। और, वास्तव में, बस की तरह करने के लिए हम इस के साथ जा सकते हैं, जहां तंग। मैं आगे जाने के लिए जा रहा हूँ और यहां एक खिड़की खोल, और मैं सिर्फ नए फ़ाइल का चयन करने के लिए जा रहा हूँ। और मैं इस फ़ाइल को बचाने के लिए जा रहा हूँ हैलो डॉट सी की तरह कुछ के रूप में। की है कि चुनाव पर अधिक बस एक पल में शब्द। और यह कैसे किसी को हो सकता है एक प्रोग्राम लिखने के बारे में जाना। मानक आई / ओ डॉट ज, मुख्य पूर्णांक शामिल करीब है, शून्य, और फिर खुले घुंघराले ब्रेस घुंघराले गले लगा, printf हैलो अल्पविराम दुनिया, बैकस्लैश एन, अर्धविराम, सहेजें, किया। ठीक। मैं अपनी पहली लिखा है कार्यक्रम है, लेकिन यह हो रहा है अविश्वसनीय रूप से underwhelmed होना करने के लिए जब वास्तव में मैं क्योंकि जाहिर है, इस कार्यक्रम को चलाने, पहले लिखित रूप से नमस्कार करना, और फिर नमस्ते स्लेश, और हम करेंगे डॉट बहुत अधिक विस्तार में इस माध्यम से जाना एक पल में, कि यह सब होता है। किसी भी खिड़कियां खुली पॉप नहीं है। यह कुछ भी नहीं है विशेष रूप से फैंसी। यह सब होता है मैं इसे क्या कहा है करते हैं, लेकिन हम कैसे मिलता है? और कैसे हम उस पर निर्माण करते हैं? ठीक है, चलो कुछ परिचय यहां विभिन्न अवधारणाओं। एक तो, हम शुरू करने जा रहे हैं एक संकलक नामक एक प्रोग्राम का उपयोग। एक संकलक, मैक ओएस, विंडोज के लिए मौजूद है लिनक्स ऑपरेटिंग सिस्टम के किसी भी संख्या, और हम जल्द ही करने के लिए परिचय देंगे हम का उपयोग किया जाएगा कि पर्यावरण, लेकिन एक संकलक सिर्फ एक सामान्य है सॉफ्टवेयर के एक टुकड़े के लिए अवधि उस स्रोत कोड लेता है और इसमें से वस्तु कोड पैदा करता है। दूसरे शब्दों में, अगर आप इनपुट अपने स्रोत के रूप में है कोड, मैं सिर्फ टाइप क्या ऐसा कुछ है, यह अंततः वस्तु कोड पैदा करता है। और ऑब्जेक्ट कोड सिर्फ सच है यह outputs कह का एक अच्छा तरीका शून्य की और एक के। दूसरे शब्दों में, स्रोत यह भले ही कोड, एक छोटे से रहस्यमय देखने के लिए जा रहा है, और एक छोटे से कम अनुकूल पहली नज़र में स्क्रैच से, यह कम से कम कुछ है हम इंसानों को समझ सकते हैं कि। यह एक तरह से लग रहा है और लगता है जैसे अंग्रेजी, भले ही यह बहुत ही संक्षिप्त है। शून्य में प्रोग्रामिंग जबकि और किसी की, हमारे पूर्वजों करना था, के रूप में कुछ साल पहले नहीं था, एक विशेष रूप से मज़ा चुनौती। और फिर भी, यह क्या है कंप्यूटर अभी भी समझता है। तो संकलक से हमें हो जाता है स्रोत कोड कोड आपत्ति करने के लिए। इसके साथ एक फ़ाइल खोलने की तरह है संकलक, और आप इसे बचाने के लिए जब, आप उन शून्य और लोगों को मिलता है। तो हम कैसे करना देखेंगे बस एक पल में है। लेकिन अब चलो एक प्रदान करने की कोशिश पिछले हफ्ते और इस बीच पुल, के रूप में भी तो हम लटका मिलता है कि घुंघराले ब्रेसिज़ जैसी चीजों पर, और अर्धविराम, और कोष्ठक, और इन बौद्धिक रूप से दिलचस्प के सभी प्रोग्रामिंग के पहलुओं, कि बहुत जाहिर है जल्दी पर लोगों को यात्रा विचारों के सभी महसूस करते हैं कि आज, पिछले के रूप में वही कर रहे हैं। इसलिए पिछले है, हम इस उदाहरण देखा यहाँ, नमस्ते विश्व कार्यक्रम। हम चाहते हैं, तो ठीक है, आज से शुरू कि एक ही कार्यक्रम को लागू करने के लिए, यह एक लग रहा है इस तरह छोटे से कुछ। और हम लंबे समय क्या पूर्णांक से पहले समझाता हूँ मुख्य, और शून्य, और यह सब और है, लेकिन कम से कम मैं यहाँ देखें पहले से ही परिचित नमस्ते विश्व। जैसे इस बीच, बातें समारोह कहते हैं, हैलो बहुत आसानी से एक होने जा रहा है इस तरह बहुत ही सरल बयान। Printf नमस्ते विश्व के साथ कुछ एक बैकस्लैश के साथ, उद्धरण, अर्धविराम के साथ है, लेकिन उस पर और अधिक आने वाला है। लूप्स, इस बीच, यह है कि एक पाश है, जाहिर है, हमेशा के लिए दुनिया हैलो कहते हैं, और यह एक लग रहा है पिछले की तुलना में weirder थोड़ा, लेकिन मैं कुछ कहना है, तो जैसे, यह सच है, जबकि मैं तो हैलो दुनिया से बाहर प्रिंट कर सकते हैं फिर और फिर और फिर और फिर। और तब के रूप में आप की तरह कर सकते हैं यहाँ अनुमान करने के लिए शुरू, का उपयोग कर के इस सम्मेलन घुंघराले ब्रेसिज़ प्रकार है के गले लगाते तरह वहाँ कोड का इंडेंट लाइन। कोड की printf लाइन बहुत पसंद है ऊपर पीले रंग की पहेली टुकड़ा। इसलिए हम हमेशा के लिए कहने के लिए नहीं जा रहे हैं, हम, जबकि सच कहने के लिए जा रहे हैं वह सिर्फ एक बिट में है यही कारण है लेकिन हम देखेंगे। इस बीच, हम इस तरह एक पाश है, जहां आप एक परिमित कुछ दोहराने संख्या के समय, यह एक बहुत यह है एक छोटे से लेने के लिए जा इस्तेमाल किया जा रहा करने के लिए, लेकिन यह पूर्णांक के लिए कहने जा रहा है मुझे लगता है मैं ++,, मैं कम से कम 10 शून्य हो जाता है और फिर printf फिर से। लेकिन पैटर्न होने के लिए वहाँ जा रहा है। और परिचित आप उन लोगों के लिए एपी कंप्यूटर विज्ञान, या जावा के साथ, या अन्य भाषाओं के किसी भी संख्या, लगभग इन सभी निर्माणों की इस प्रकार अब तक ज्यादातर परिचित दिखना चाहिए। तो चर। तो यहाँ एक सरल स्क्रैच अंश है कि शून्य करने के लिए काउंटर नामक एक चर सेट और फिर हमेशा के लिए काउंटर कहते हैं, और तो यह एक करके काउंटर बदल जाता है। तो यह शून्य के साथ शुरू होता है और उसके बाद एक, दो, तीन। खैर, कैसे हम में परिचय है कि हो सकता है इस नई भाषा इसी तरह एक छोटे से? इंट काउंटर के बराबर होती है सच है, जबकि शून्य, जो पहले से है कि एक ही विचार है हमेशा के लिए कुछ करने की, और मैं सिर्फ printf करने के लिए जा रहा हूँ। और अब यह थोड़ा अजीब हो रही है प्रतिशत रहा, पर उस पर और अधिक आने के लिए, लेकिन इन विचारों को वही कर रहे हैं। हम अभी का पालन किया है कंप्यूटर है कि वाक्य रचना हम में से मांग करने जा रहा है। बूलियन अभिव्यक्ति की तरह कुछ एसएक्स कम वाई से, वाई से या एक्स कम, और जेड की तुलना में कम वाई। यह एक छोटे से कुछ देखने के लिए जा रहा है इस तरह, सिर्फ कोष्ठकों के साथ जैसे अच्छे उपाय के लिए गणित में करने के लिए बस सुनिश्चित करें कि कार्रवाई के आदेश हम इरादा के रूप में है। और अब, की स्थिति। तो y से कम एक्स, का कहना है कि यदि एक्स कम है वाई से, एक्स वाई से अधिक है और अगर, अन्यथा, एक्स वाई से अधिक है कहना तार्किक रूप से, एक्स वाई के बराबर होना चाहिए। तो अगर आप लागू हो सकता है स्क्रैच में कुछ इस तरह, या आप लागू हो सकता है इस वाक्य रचना में यह। और फिर, सर्पाकार प्रकार के हैं पहेली के रूप में हमें एक ही आकार देने टुकड़े, लेकिन वाक्य रचना, अब, शायद है कुछ पैटर्न का पालन करने के लिए शुरू। तो, क्या यह हमें यहाँ देता है? इसलिए हम वापस तो हमारी मुख्य कार्यक्रम में रहे हैं। वास्तव में, चलो अब, इसके साथ कुछ करना। तो इस में बहुत पहले हम तेज शामिल देखना लाइन, मानक मैं / हे, डॉट एच, और तो कुछ अजीब कोण कि नीचे कोष्ठक। मुख्य प्रवेश बिंदु शून्य, और फिर printf हैलो दुनिया। तो बस एक कदम उठाना। पहले क्रमादेशित कभी नहीं कोई है जो, कम से कम इन लाइनों में से एक समझा। शायद कुछ का उपयोग पिछले सप्ताह के शब्दजाल। Printf उदाहरण के लिए, क्या है? हाँ। दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। यह एक समारोह है, या एक बयान है, पिछले हफ्ते की शब्दावली से। और यह एक कार्रवाई है कि कुछ कर रही है। अब इस समारोह में, या इस बयान करता है, यह इनपुट किसी तरह का लेने के लिए दिखाई देते हैं? और क्या भावना यह करता है यदि हां, तो इनपुट लेने के लिए लग रहे हो? इनपुट, मैं उस से क्या मतलब है? हाँ। दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। तो कुछ पहेली टुकड़े बाहर खरोंच जहां आप इसे parametrize कर सकते हैं। तुम दोहराने बता सकता है दोहराने के लिए कितनी बार ब्लॉक, इसलिए इस बात का एक इनपुट था प्रकार, और सिर्फ खरोंच की तरह एक छोटे सफेद प्लेसहोल्डर था आप में टाइप करेंगे संख्या के लिए, इसलिए हम इस में प्रयोग करते हैं पाठ दुनिया कोष्ठकों हमें उस गोल आकार देने के लिए जिसमें हम अपने इनपुट प्लग कर सकते हैं। सब के बाद, दसियों साल के पहले जब सी नामक इस भाषा, कोई भी आविष्कार किया गया था , यह हम में से एक है प्रत्याशित इन कुछ साल बाद, हम चाहते हैं हैलो कहते हैं कि एक समारोह चाहते हैं। है ना? एक अगर वहाँ थे यह अच्छा होगा पहेली टुकड़ा है, या एक महत्वपूर्ण शब्द, कि कि, हैलो कहा जाता है सचमुच सिर्फ हैलो कहते हैं। लेकिन हम जानते हैं कि जरूरत नहीं है। हम बहुत कम कुछ हो सकता है एक सामान्य प्रिंट की तरह स्तर, इनपुट लेता है कि आदेश, हम जो चाहते हैं और प्रिंट। तो पैटर्न अब नोटिस कि उभरने के लिए शुरू कर देंगे। ओपन कोष्ठक, बंद कोष्ठक है जाहिरा तौर पर इनपुट को गले लगाते, और फिर मैं डबल देखना दोनों सिरों पर उद्धरण। अजीब बैकस्लैश अभी भी नहीं है एन, लेकिन उम्मीद है कि अब आप कम से कम उस कल्पना करने के लिए शुरू कर सकते हैं printf इनपुट के कुछ फार्म में ले जा रहा है। के रूप में के रूप में उपयोगकर्ता के अनुकूल नहीं खरोंच, लेकिन यह सिर्फ है जैसे वहाँ कुछ मूल्य में खामियों को दूर कर रही है। ठीक है, अब वास्तव में चलो इस के साथ कुछ करो। तो आप में से कुछ से पता कर सकते हैं पहले वर्ग खरीदारी कर रहे है, दोस्तों के साथ बातें कि कई वर्षों के लिए हम कुछ कहा इस्तेमाल किया CS50 उपकरण। यह एक तकनीक का वर्णन एक शब्द था आभासी मशीन कहा जाता है, जो सॉफ्टवेयर का एक टुकड़ा है कि अपने पूर्ववर्तियों बंद डाउनलोड होगा मुक्त करने के लिए पाठ्यक्रम की वेबसाइट। उन्होंने यह भी एक नि: शुल्क टुकड़ा डाउनलोड होगा एक हाइपरविजर नामक सॉफ्टवेयर का, VMware तरह कहा जाता है कुछ, VirtualBox, या किसी भी नंबर या अन्य उपकरणों की, और मैक या पीसी पर उनकी या जो कुछ भी कंप्यूटर वे पिछले साल किया था और पिछले कुछ वर्षों में, वे एक आइकन पर क्लिक करें दोगुना होगा इस सॉफ्टवेयर को चलाने के लिए हाइपरविजर बुलाया। और फिर उस कार्यक्रम के अंदर वे CS50 उपकरण खुला होगा। और प्रभाव था कि कि क्या तुम्हारा एक पूर्ववर्ती मैक ओएस या चल रहा था विंडोज, वह या तो वह बाद में पर एक नया विंडो था उनकी स्क्रीन CS50 के पर्यावरण चल रहा है। तो एक आभासी मशीन आप एक चलाने देता है किसी अन्य के अंदर ऑपरेटिंग सिस्टम, और कहा कि हम किया था कि वास्तव में क्या है। निश्चित रूप से हम में से ज्यादातर के दौरान कहा जाता है एक ऑपरेटिंग सिस्टम का उपयोग लिनक्स, विशेष रूप से लिनक्स, और इस के पिछले कुछ वर्षों में एक बहुत अच्छा तरीका है पाठ्यक्रम में यकीन है कि हर कोई कर रही है सिर्फ एक ही माहौल था। और अगर आप किसी भी तरह का उपयोग कर सकते हैं आप वास्तव में चाहते हैं कि कंप्यूटर। Downsides के बीच में, हालांकि, थे यह दो गीगाबाइट की तरह था इस बात को डाउनलोड करने के लिए। यह जरूरी अच्छी तरह पर सुपर काम नहीं किया जिनके कंप्यूटर में है कि लोगों को शायद ही एक टमटम था या ऐसा करने की रैम, या नहीं सीपीयू की गति से भी कई गीगाहर्ट्ज़, और इसलिए इस साल के लिए इस और अन्य कारणों से, हम संक्रमण कर दिया गया है यह पर्यावरण के लिए। है जो तथाकथित CS50 आईडीई, खुला स्रोत सॉफ्टवेयर पर आधारित है, और एक समर्थित मंच एक कंपनी Cloud9 कहा जाता है कि कि, यूरोप में समर्थन करता है हमें अनिवार्य रूप से करने की अनुमति देता कि सटीक एक ही वातावरण में के रूप में पिछले साल, लेकिन तथाकथित बादल में। तो बादल क्या है? तुम्हें शायद क्लिक किया है अपने मैक या पीसी पर अपनी आइकन। बादल क्या है? हाँ? थोड़ा जोर से। हाँ। यह कंप्यूटर का एक गुच्छा है कहीं और डाटा स्टोर करने और चलाने कि सॉफ्टवेयर और पसंद है। तो यह सिर्फ शब्द डे के लिए वास्तव में है [वर्णन करने का विधिवत? rentable?] कहीं और रहते हैं कि कंप्यूटर। आपको लगता है कि अपने आप को, जरूरी ही नहीं है। तो जब आपके डेटा, या अपने कार्यक्रमों, बादल में हैं यह सिर्फ यह किसी और पर है इसका मतलब है अन्यत्र किसी और के कंप्यूटर, और नहीं, सबसे अधिक संभावना है, पर अपने शारीरिक लैपटॉप या डेस्कटॉप। और इतना है कि CS50 आईडीई अब क्या है। इसके बाद आप एक निश्चित करने के लिए जाना होगा आप लागू करेगा कि यूआरएल करने के लिए, समस्या में बाद में इस, 1 सेट सप्ताह, कि तब, पर, में प्रवेश करने देंगे आप इस माहौल दे। और भी बहुत तरह स्क्रैच था एक इसमें शामिल कुछ अलग पैनलों, इसलिए CS50 के आईडीई कि वास्तव में होता है। यहाँ शीर्ष बाएँ हाथ की तरफ, आप कर रहे हैं एक परिचित फ़ाइल ब्राउज़र को देखने के लिए जा रहा है। फ़ाइलों के किसी भी तो यह है कि आप इस माहौल में डाल सिर्फ वहाँ सूचीबद्ध होने के लिए जा रहे हैं। फ़ाइलों और फ़ोल्डरों। यहीं शीर्ष पर, आप एक जगह देखने जा रहे हैं जहां आप वास्तव में अपने कोड लिख सकते हैं। प्रारंभ में सी में, बाद में PHP और जावास्क्रिप्ट में शब्द, और, शायद फाइनल के लिए परियोजनाओं, रूबी या जावा या अजगर या भाषाओं के किसी भी संख्या में हैं इस माहौल में समर्थन किया। यह सब बंधे नहीं है विशेष रूप से CS50 करने के लिए। और फिर यहाँ नीचे कोने में, विशेष रूप से और अधिक आरामदायक उन लोगों के लिए, आपके पास कुछ है टर्मिनल विंडो कहा जाता है। और इस टर्मिनल विंडो की अनुमति देता है आप किसी भी आदेश पर अमल करने के लिए कि आप इस बादल के माहौल में चाहते हैं। यह आपको स्थापित करने के लिए अनुमति देता है किसी भी अतिरिक्त सॉफ्टवेयर आप तथाकथित है क्योंकि आप चाहते हैं कि जड़, या प्रशासक विशेषाधिकारों। तो दूसरे शब्दों में, यहां तक ​​कि हालांकि इस अंतत: बादल में मेजबानी की है, और हम भले ही कुछ हद तक यह सरल बनाया डिफ़ॉल्ट रूप से, सचमुच शुरू करने, दान Armendariz, और डिनो के लिए धन्यवाद, और अधिक से अधिक CS50 की टीम पर दान ब्राडली कई महीनों के अतीत, एक कम आराम का एक बहुत है कि खाल मोड शुरू में भ्रामक distractions। करने के लिए वहाँ मौजूद है सब कुछ एक ठेठ कंप्यूटर प्रणाली का प्रतिनिधित्व आप असली दुनिया में उपयोग हो सकता है। तो क्या इस सब का मतलब है, और हम वास्तव में इसके साथ क्या कर सकता है? वास्तव में एक कार्यक्रम में एक तिरछी नज़र रखना। इसलिए मैं खोलने के लिए जा रहा हूँ यहां वास्तविक पर्यावरण, जो सिर्फ हमारे क्रोम है फ़ायरफ़ॉक्स हो सकता है जो ब्राउज़र, इंटरनेट एक्सप्लोरर हो सकता है, या कुछ अन्य ब्राउज़र के रूप में अच्छी तरह से। यह पूर्ण पल के लिए यहाँ की जांच की है। और मैं वास्तव में तंग करना चाहते हैं इसके अलावा इस कार्यक्रम क्या था। तो चलो ऊपर zooming द्वारा, एक नजर डालते हैं मैंने क्या किया पर, ऊपर, और कैसे मैं यहाँ मिल गया। तो यहाँ सटीक उन है कोड का एक ही लाइनों। इसलिए इस बयान है, आप पहले उल्लेख किया है। हैलो कहते हैं कि समारोह। घुंघराले ब्रेसिज़, पर लाइन चार और लाइन छह, आवृत की संभवतः तरह लाइन है कि यह करने के लिए सहयोगी मेरे कार्यक्रम का सार के साथ। तो वास्तव में, इस कीवर्ड मुख्य, कि, लाइन तीन पर वहाँ ऊपर है आप बराबर के रूप में उस के बारे में सोच सकते हैं हरे रंग का झंडा क्लिक किया है कि जब से, स्क्रैच में ब्लॉक। कि हम यहाँ है सब है तो, जब है हरे रंग का झंडा, प्रिंट क्लिक किया है, या कहते हैं हैलो वर्ल्ड। लेकिन, अब एक अनुमान ले जाने क्या इस दिशा में पहला, अधिक रहस्यमय लाइन है। तीव्र, खुले कोणीय शामिल ब्रैकेट, मानक आई / ओ डॉट ज, कोणीय कोष्ठक बंद करें। शायद क्या कर रहा है कि, खासकर जब आप प्रोग्राम किया गया है अगर कुछ अन्य भाषा में पहले। हाँ? दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। बिल्कुल सही। तो यह आप के लिए एक का उपयोग करने के लिए दे रहा है पुस्तकालय, इसलिए कार्यों की बात करने के लिए। और कार्यों की एक पुस्तकालय है कार्यों कि किसी और को या तो हाल ही में लिखा था, या कुछ समय पहले, इतना है कि आप इस कार्य को दोहराने की जरूरत नहीं है। उदाहरण के लिए, हम नहीं करते 2015 में, पता है, कि डालता कोड लिखने के लिए कैसे अपनी स्क्रीन पर एक चरित्र। किसी और कि लगा है printf समारोह के साथ बाहर मैं सार की तरह कर सकते हैं ताकि उस से दूर, या परत के शीर्ष पर उसके कोड, और अब बस लेने के लिए किसी भी प्रोग्राम है कि मैं लिखने के लिए दी स्क्रीन के लिए कुछ प्रिंट कर सकते हैं। तो एक कदम में वहाँ इस पहली पंक्ति तथाकथित हेडर फाइल शामिल मानक पुस्तकालय के लिए। तो, में भाषा हम अब जो काम कर रहे हैं एक मानक पुस्तकालय था कार्यों के बहुत से। Printf उनमें से एक है, और कि कोड की पहली पंक्ति इसका मतलब मेरे लिए पहुँच दे इतना है कि उन कार्यों, मैं कि इस कार्य को दोहराने की जरूरत नहीं है। अब चलो नीचे खिड़की के पास जाओ और मैं पहले किया था कि वास्तव में क्या करते हैं। एक पल पहले, मैं जब था कोड के माध्यम से whizzing, पहली बार के लिए इसे बाहर टाइपिंग, मैं बहुत जल्दी टाइप किया, नमस्कार करते हैं। सब के बारे में आपको लगता होगा कि क्या था? मैं क्या कर रहा था? हाँ? कोई बात नहीं। यह ठीक है। हाँ। दर्शकों: यह संकलन। डेविड जे मालन: हाँ। यह सिर्फ यह संकलन किया गया था। है ना? यहां तक ​​कि यह पूरी तरह से अपरिचित है, तो आप के लिए, जैसे कि यह बहुत अंग्रेजी है। यह निश्चित रूप से शून्य नहीं है और लोगों को है, तो भी मैं कि तथाकथित के माध्यम से इसे चलाने की जरूरत कार्यक्रम, एक संकलक, कि हो रहा है इनपुट के रूप में ले और उत्पादन का उत्पादन करने के लिए। और कम से कम अब के लिए, में इस लिनक्स पर्यावरण, लेकिन यह शर्त नहीं है हम शुरू करेंगे जहां सिर्फ यह है, आप आम तौर पर के साथ बातचीत इस तरह के कंप्यूटर सिस्टम एक तथाकथित कमांड लाइन से। एक निमिष के साथ तो शीघ्र और अपने कीबोर्ड, और इतना नहीं अपने माउस, और नहीं इतना खिड़कियों और माउस और मेनू, बल्कि सब कुछ शाब्दिक है। और यह पहली बार में, का मानना ​​है कि भले ही नज़र, शायद, एक कदम पीछे की तरह, यह वास्तव में एक बहुत अधिक है शक्तिशाली और अर्थपूर्ण रास्ते एक कंप्यूटर को नियंत्रित करने का विशेष रूप से आप के रूप में, अपने आप को, और अधिक हो कम से आरामदायक। इसे आप एक बहुत कुछ करने की अनुमति देने के लिए जा रहा है बस क्या माइक्रोसॉफ्ट की तुलना में अधिक बातें या एप्पल तुम्हारे साथ क्या करने की अनुमति देता है उनकी चित्रमय ऑपरेटिंग सिस्टम। इसलिए मुझे लगता है, अब, दर्ज मारा कुछ भी नहीं इस समय होता है जाहिरा तौर पर क्योंकि कार्यक्रम हैलो तारीख पर निर्भर है। और कमांड क्या था मैं उस के बाद भाग गया? डॉट हैलो, हैलो और दुनिया स्लेश। अब हम एक कदम आगे ले जाने बस एक पल के लिए वापस। यह हैलो सिर्फ एक है कर पता चला है कि एक कार्यक्रम के संकलन की सरल तरीका है। चलो बस परिचय शब्दजाल का एक टुकड़ा, लेकिन फिर दूर स्थानांतरित ऐसा नहीं है के बाद से, यह से सब है कि दिलचस्प आज के उद्देश्यों के लिए। हम प्रयोग शुरू करने जा रहे संकलक सी भाषा के लिए, बजना कहा जाता है। और यह सिर्फ चला है कि एक कार्यक्रम है जैसे हम वहाँ कमांड लाइन में किया था। और इसलिए मैं करना चाहते हैं एक कार्यक्रम के संकलन कि मैं हैलो डॉट नामक एक फाइल में लिखा है, ग, मैं सचमुच सिर्फ बजना हैलो सी प्रकार दर्ज करें। अजीब बात है, ऐतिहासिक कारणों के लिए, मैं निर्दिष्ट नहीं करते हैं तो प्रोग्राम का नाम मैं नहीं जानता कि अगर मैं, उत्पादन करना चाहते हैं कि उन शून्य के लिए एक फ़ाइल नाम निर्दिष्ट और लोगों को एक बहुत ही अजीब सम्मेलन में अपनाया गया था साल पहले यह एक की तरह महसूस किया, जहां समय पर अच्छा जवाब है, कुएं के बस मनमाने ढंग से कहते हैं पहली बार इस कार्यक्रम में हम एक डॉट बाहर संकलन। एक वर्णमाला में पहले आता है। बाहर है, यह उत्पादन है। इसलिए हम कार्यक्रम भेंट करेंगे एक डॉट बाहर डिफ़ॉल्ट रूप से। मैं करना चाहते हैं और क्योंकि वह ठीक है आधारित इस पाठ में कार्यक्रम चलाने के लिए पर्यावरण, मैं सिर्फ टाइप डॉट बाहर एक डॉट स्लेश दर्ज करें। और यह बिल्कुल के रूप में पहले चला जाएगा। तो चलो असली तेजी से कि देखते हैं। मैं करने के लिए वापस जाना है तो मेरा CS50 आईडीई में स्रोत कोड, और मैं इसके बजाय इस करते हैं, बजना हैलो खाट ग दर्ज, नोटिस कुछ भी नहीं होने जा रहा है, लेकिन लगभग हमेशा में इस लिनक्स पर्यावरण, बुरा कुछ भी नहीं है कि ऐसा लगता है जब कुछ अच्छा वास्तव में क्या हुआ इसका मतलब है। यदि आपको कोई त्रुटि नहीं दिख रहा है संदेश, सब शायद अच्छी तरह से है। अब मैं क्या करता है, तो और वास्तव में, डॉट एक डॉट स्लेश बाहर मैं अपने ही कार्यक्रम चलाने की है, दर्ज करें। मैं अभी भी नमस्कार कार्यक्रम है पहले से क्योंकि वास्तव में, यह है तो बहुत अच्छे सिर्फ होने जा रहा बनाने के बजाय को याद टाइप के इन मंत्र आदेशों, लेकिन चलो देखते हैं कि हम कैसे बहरहाल, इस पर सुधार हो सकता है। तो, यह आदेश है कोड संकलन करने के लिए। इस चलाने के लिए आदेश है उसके बाद कोड संकलित। मैं कैसे एक फ़ाइल नाम निर्दिष्ट कर सकते हैं? खैर चलो बस परिचय शब्दजाल का एक और टुकड़ा। आप इस में हो पाठ आधारित पर्यावरण, आप निर्दिष्ट करना चाहते करने जा रहे हैं कमांड लाइन तर्क बुलाया बातें। जो बात की सिर्फ एक अच्छा तरीका है, प्रॉम्प्ट पर दूसरे शब्दों कि के व्यवहार tweak जो कुछ भी कार्यक्रम आप चला रहे हैं। मैं कर रहा हूँ तो विशेष कार्यक्रम नाम बजना टाइप करके चल रहे हैं, बजना बुलाया कार्यक्रम है। तो यह है या पुराने स्कूल डबल क्लिक करने के बराबर माइक्रोसॉफ्ट वर्ड या पर कुछ कार्यक्रम के आइकन। मैं बजाय सिर्फ अपने नाम टाइप कर रहा हूँ लेकिन आदेश के इस संस्करण में, मैं तो पानी का छींटा ओ जगह है हैलो अंतरिक्ष हैलो डॉट ग। आप कभी नहीं किया है तो भी अगर इससे पहले इस दुनिया में खेला जाता है, सिर्फ एक अनुमान ले क्या पानी का छींटा ओ हैलो क्या करता है? या फिर क्या यह करने के लिए बजना बताओ? हाँ। दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। यह बस हो फ़ाइल का उत्पादन सेट हैलो बजाय बाहर एक डॉट sillier की। और, वास्तव में, हम इस कोशिश करते हैं। सबसे पहले, मैं अब तो अगर आर एम नमस्कार, चलो यह करते हैं। यही कारण है कि हटाने है। और इसे हटाने कहने जा रहा है नियमित रूप से फ़ाइल हैलो, जो अनावश्यक रूप से रहस्यमय है, लेकिन यह सिर्फ इसका मतलब है आप फ़ाइल को नष्ट करना चाहते हैं, और मैं हाँ के लिए y टाइप करें। आप शीर्ष पर glancing थे और, अगर नोटिस छोड़ दिया है, यह वहाँ से गायब था। मुझे अब बजना पानी का छींटा ओ करते हैं, और मैं, हैलो आगे जाना है और क्या करने जा रहा हूँ सभी टोपियां में, हैलो डॉट ग। अब, मैं डॉट स्लेश करते हैं हैलो, आप क्या उम्मीद करेंगे? हो सकता है कि यह संवेदनशील मामला है। हो सकता है कि ऐसा नहीं है। चलो देखते हैं। ऐसी कोई फ़ाइल या डायरेक्टरी नहीं है। और हम किस तरह के द्वारा धोखा दे सकती है सिर्फ ऊपर छोड़ दिया पर देख रहे हैं। क्या मैं स्पष्ट रूप से किया था कार्यक्रम के रूप में बचाने के लिए? नमस्कार सभी टोपियां। तो वास्तव में, कि जा रहा है अंतर पड़ना। तो अब दुनिया नमस्ते वापस आ गया है। अब यह सब ठीक है और अच्छा है और सभी बहुत दिमाग सुन्न, मिल की तरह करने के लिए इन में फंस गया जानकारी के लिए, लेकिन उन्हें समझ अच्छा है। इन तेजी से बाहर टाइपिंग लंबे समय मंत्र विशेष रूप से नहीं किया जा रहा है दुनिया में मज़ा है, इसलिए लोग , एक अन्य कार्यक्रम का आविष्कार कुछ साल पहले कहा जाता है, , करना है कि काफी बस आप मेकअप टाइप करने के लिए अनुमति देता है, प्रोग्राम का नाम आप बनाना चाहते हैं, और बनाने उस में लग जाएगा कि में स्मार्ट है वर्तमान फ़ोल्डर, निर्देशिका, उर्फ और आप एक फ़ाइल है हैलो डॉट सी कहा जाता है, कि यह संकलन होगा फाइल है हैलो नामक एक कार्यक्रम में आप के लिए। तो यह एक बहुत आसान तरीका है अधिक गुप्त आदेशों कर रही है कि हम पहले भी किया था। और हम पूर्व विन्यस्त है आईडीई CS50 पता करने के लिए यह पानी का छींटा ओ और एक नंबर का क्या करना चाहिए कि अन्य झंडे, या कमांड लाइन तर्क, हम लंबे समय से पहले देखेंगे कि। लेकिन अब वास्तव में करते हैं अधिक दिलचस्प कुछ। बस सभी नमस्ते विश्व बाहर टाइपिंग समय है कि सभी बाध्यकारी नहीं है। तो मुझे आगे और बदल जाना इस कार्यक्रम और नमस्ते डेविड कहते हैं। अब मैं यहाँ नीचे जाने के लिए जा रहा हूँ। मुझे आगे जाना है और नमस्ते कर क्या करने जा रहा हूँ। और फिर अब आप देख रहे हैं सुनिश्चित करें कि आप लंबे समय तक नहीं दिखा रहा है यह है कि आदेशों के अनुक्रम हम पूर्व विन्यस्त किया है क्योंकि कर रही है यह उस तरह है, लेकिन हम अब के लिए चिंता की जरूरत नहीं क्या यह है कि यह है के अलावा अन्य कर रहा है संकलन डॉट हैलो, हैलो दुनिया स्लेश। क्या गलत है? हाँ। दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। तो, noobie गलती। मैं इस सुपर सूक्ष्म है नोटिस लेकिन यहाँ तारांकित, टैब में, बस आप इसे बचाया नहीं किया है इसका मतलब है, ब्राउज़र और अन्य कार्यक्रमों और कभी कभी यह करते हैं। तो नियंत्रण है या आदेश इसे बचाने के लिए करना चाहिए। अब मुझे आगे चलते हैं और इस कार्यक्रम को फिर से चला रहे हैं। कंपाइल। ठीक है, तो यह एक बहु कदम प्रक्रिया है। जिनमें से कोई भी नहीं, विशेष रूप से जटिल है लेकिन किसी भी समय हम फ़ाइल को बदलने हम जिसके परिणामस्वरूप परिवर्तन करने की जरूरत है शून्य और लोगों, और डॉट स्लेश नमस्कार। वाह। तो यह बहुत underwhelming है कि हम सिर्फ यह पता छपी। एक की बातें कर दूं अब, अधिक गतिशील थोड़ा। खैर यह पसंद है कि पता चला है, स्क्रैच, सी चर का समर्थन करता है। और यह आप चाहते हैं, तो पता चला है भंडार है कि एक चर के लिए है, हम पसंद नहीं एक नंबर आम तौर पर, स्क्रैच के साथ किया था लेकिन एक शब्द की तरह है, या एक मुहावरा है, या एक नाम है, आप एक चर निर्दिष्ट कर सकते हैं प्रकार स्ट्रिंग की हो। तो हम में से अधिक देखेंगे बस एक पल में इन, लेकिन यह है कि सी पता चला है, और यह जैसी भाषाओं का एक बहुत, चर का बहुत विशिष्ट प्रकार के हैं। यह बस, बीजगणित की तरह नहीं है आप एक एक्स, एक वाई, जेड और मिलता है, जहां और उन लोगों के बस हमेशा से रहे हैं एक प्रोग्रामिंग भाषा में संख्या, आप कर सकते हैं, नंबर स्टोर कर सकते हैं व्यक्तिगत चरित्र की दुकान है, आप कर सकते थे, पूरे शब्द की दुकान सकता है , पूरे छवियों, पूरे ध्वनि फ़ाइलों को स्टोर और जैसे। तो हम क्या निर्दिष्ट करने की आवश्यकता हमारे चर के प्रकार है। और सम्मेलन से मैं फोन करने के लिए जा रहा हूँ मेरी यह संक्षिप्त है, सिर्फ इसलिए चर, और एस स्ट्रिंग के लिए खड़ा है। और फिर मैं स्टोर करने के लिए जा रहा हूँ इस चर के अंदर, सिर्फ खरोंच के साथ की तरह मैं सेट ब्लॉक का उपयोग करते हैं, मैं का उपयोग करने के लिए जा रहा हूँ सी में असाइनमेंट ऑपरेटर, जो अच्छी तरह से पर्याप्त बराबर है हस्ताक्षर, लेकिन बराबर चिह्न इस करता है। यह सही में से कुछ चलता रहता है अभिव्यक्ति की बाएं हाथ की ओर। तो मैंने क्या किया है, में स्पष्ट होना लाइन पांच, मैं एक चर घोषित किया गया है। मैं मुझे दे, कंप्यूटर बता दिया है एक चर के लिए स्मृति, यह कहते हैं, और मैं जा रहा हूँ कि पहले से पता इसमें एक स्ट्रिंग डाल सकता। और एक स्ट्रिंग सिर्फ एक है पात्रों के अनुक्रम। यह एक शब्द है, या एक मुहावरा है, या पैरा है, लेकिन यह पात्रों में से एक दृश्य है। यह संख्या नहीं है। क्या स्ट्रिंग मैं करने जा रहा हूँ कि चर में डाल रही हो? खैर, जाहिरा तौर पर बोली गंदें शब्द बोलना, "हन्ना"। अब उभर रहा है कि पैटर्न नोटिस। एक बाएं हाथ की अभिव्यक्ति है। एक दाहिने हाथ की अभिव्यक्ति है, बराबर चिह्न से अलग कर दिया। और बस, तो एक अनुमान ले फिर भी अपरिचित, अर्धविराम क्या कर रहा है के साथ। यह मुमकिन है कि हमारे लिए क्या कर रहा है? हाँ? दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। यह सिर्फ लाइन को समाप्त कर रहा है। है ना? कंप्यूटर दो टूक होना चाहते हैं सचमुच, क्या करना है, बताया। मूंगफली का मक्खन की तरह और जेली सैंडविच उदाहरण के लिए, आप निर्दिष्ट नहीं करते हैं तो वास्तव में आप का इरादा क्या है, यह निर्णय या त्रुटि के लिए छोड़ा जा सकता है। अर्धविराम, इसका मतलब है कि इस आदेश के लिए यह बात है। यह सुपर सटीक किया जा रहा है, और यह है एक बहुत आसान बात बंद छोड़ने के लिए। तो अब इस कार्यक्रम के लिए प्रतीत नहीं होता मैं जब तक किसी भी अलग तरह से बर्ताव किया इसे और अधिक गतिशील बनाने। तो बजाय कठिन मेरी ही सकता है नाम है, मुझे एक प्लेसहोल्डर मूल्य डाल दिया। और यह पता चला है कि, और मैं यह जानता हूँ प्रलेखन पढ़ा होने से, और कहा कि साल के लिए समारोह का इस्तेमाल printf गतिशील होने के लिए डिजाइन किया गया था। आप पहले से पता करने की जरूरत नहीं है आप इसे में डाल करने के लिए क्या चाहते हैं शब्द। आप के बजाय एक हो सकता है प्रतिशत है, जैसे प्लेसहोल्डर, जो बताया जा रहा है कंप्यूटर, यहाँ एक स्ट्रिंग डाल दिया। स्ट्रिंग जो हम वहाँ डाल करने के लिए करना चाहते हैं? इन दोनों के बीच पता चला है कि याद जो कोष्ठकों, हदबंदी एक समारोह के लिए इनपुट, अगर आपके पास अल्पविराम, यहाँ चीजों की सूची अलग हम वास्तव में कई में पारित एक समारोह के लिए आदानों। तो बस कुछ खरोंच की तरह ब्लॉक, तुम नहीं हो सकता के लिए उन लोगों के साथ खेला जाता है, अपनी परियोजनाओं को अभी तक या बिल्कुल, कुछ खरोंच ब्लॉकों दो आदानों की है। दो सफेद बक्से आप कर सकते हैं संख्या या शब्दों में लिखें। इतनी सी की तरह कार्य करता है के लिए दो आदानों ले सकते हैं कि printf। और फिर, इस अल्पविराम उन्हें अलग किया जाता है। इसलिए अंग्रेजी में है, फिर भी अगर आप पहले क्रमादेशित कभी नहीं किया है उस तर्क printf एक समारोह है से, दो आदानों लेता है, जिनमें से एक एक प्लेसहोल्डर, आप क्या उम्मीद करेंगे है printf इस इनपुट के साथ क्या हो रहा है? यह हैलो कहने के लिए जा रहा है हन्ना, उम्मीद है। तो हम इसे बचाने की जरूरत है यह करने के लिए। मैं बाहर ज़ूम करने के लिए जा रहा हूँ। मैं यहाँ वापस नीचे जाने के लिए जा रहा हूँ और नमस्ते प्रवेश कर, कहते हैं। ओह। कुछ गलत हो रहा है, और वास्तव में यह काफी भारी है। मैं कोड के छह लाइनों है और त्रुटियों की 12 लाइनों की तरह। तो, यह करने के लिए तत्पर हैं। तो यहाँ क्या हो रहा है? तो यहाँ अंगूठे का सबसे अच्छा शासन, आप बाहर शुरू कर रहे हैं, खासकर जब से विचलित नहीं मिलता तल पर सामान। वास्तव में, मैं बहुत जानबूझ अभी तक स्क्रोल बहुत बार, एक कंप्यूटर है, क्योंकि एक डिवाइस की नहीं है कि सभी उज्ज्वल। यह उलझन में मिल रहा है। यह एक बात देखता है कि यह समझ में नहीं आता यह अन्य गलती हो सकती है के रूप में गलत कोड की लाइनों, भले ही वे पूरी तरह से ठीक हो रहे हैं। तो तुम हमेशा काम करना चाहते हैं त्रुटियों के माध्यम से नीचे ऊपर। और बेशक यह है पल में सुपर रहस्यमय। त्रुटि, अघोषित का उपयोग पहचानकर्ता स्ट्रिंग। मैं में मानक मतलब था? नहीं, मैं स्ट्रिंग का मतलब है। और यह हो सकता है यह एक टाइपो है, पर इशारा कर रहा है। की तरह की तरह, जादू-जाँच के लिए एक में बहुत geeky रास्ता है, लेकिन यहाँ कारण और आप इस पता चल जाएगा सिर्फ अभ्यास से है यह कि स्ट्रिंग पता चला है कि वास्तव में सी में मौजूद नहीं है, सी एक विशेष रूप से पुरानी भाषा है, और यह बहुत कम स्तर है, और यह सुविधाओं की एक बहुत कुछ नहीं करता तुम बड़े हो गए हो सकता है कि अगर आपके पास है, वास्तव में, प्रोग्राम के साथ जावा में, आप में से कुछ के रूप में, लेकिन आप इसे नई चीजों को सिखा सकते हैं। और वास्तव में, हम इस CS50 किया है, यहां तक ​​कि सेमेस्टर के अंत तक हालांकि, इन प्रशिक्षण पहियों के सभी दूर ले जाया गया है, हम इन में क्या करते हैं सप्ताह के पहले दो शुरू में हम भी है आप CS50 डॉट ज शामिल हैं। जो एक हेडर फाइल है। भविष्य में उस पर और अधिक। यह कार्य शामिल है कि एक फ़ाइल है कि हम आप के लिए लिखा है। और उन कार्यों में से एक है इनपुट प्राप्त करने के लिए कार्य करता है उपयोगकर्ता, तार की तरह है, और से नंबर, और वास्तविक संख्या, और अधिक। लेकिन यह भी कुछ शॉर्टकट है। यह एक डेटा प्रकार के रूप में एक बूलियन परिभाषित करता है। सी सही है या गलत नहीं है। लेकिन हम इसके बारे में धारणा दे सकते हैं सच है या इस पुस्तकालय के माध्यम से गलत। और यह भी एक स्ट्रिंग के पास नहीं है हम इस पंक्ति में शामिल हैं जब तक में बनाया। तो कोड की इस पंक्ति में बताता है संकलक, हे, बजना, देखो एक पूरे के लिए इस फाइल में कोड का गुच्छा कि CS50 इतना है कि लिखा गया है इस फ़ाइल का उपयोग कर किसी को भी के लिए दी ले जा सकते हैं सुविधाओं वे जोड़ दिया है। तो अब मुझे आगे चलते हैं और स्क्रीन साफ, और उत्सुक है, तो मैं सिर्फ नियंत्रण कह रहा हूँ एल हर बार, स्क्रीन को साफ करने के लिए या आप स्पष्ट टाइप कर सकते हैं। मैं तो बस अब आगे जाने के लिए जा रहा हूँ और प्रकार नमस्कार करते हैं, और सब कुछ ठीक है। फिर भी एक रहस्यमय उत्पादन है, लेकिन यह एक गलत संदेश नहीं है। मैं डॉट करना अब अगर हैलो स्लेश, और एक के रूप में एक तरफ, डॉट स्लेश सबसे करने के लिए अपरिचित है। यह सिर्फ डॉट मतलब वर्तमान निर्देशिका। यदि आप कभी भी उपयोग किया है तो अगर डॉस, या लिनक्स, या यूनिक्स यदि आप कुछ किया हो सकता है सीडी डॉट डॉट, जहां की तरह डॉट डॉट में पीछे की ओर जाने का मतलब समय, या पीछे की ओर जाना है, या उच्च ऊपर अपनी निर्देशिका में। डॉट बस में देखने का अर्थ है वर्तमान निर्देशिका। मैं यहीं है, जो हैलो चाहते हैं। और वास्तव में, अब यह हन्ना हैलो कहते हैं। और मैं इसे फिर से बदलते हैं मारिया के लिए, फिर कंपाइल यह हैलो, डॉट स्लेश करना होगा हैलो, कार्यक्रम बदलता रहता है। लेकिन यह अभी भी एक है सुंदर बेवकूफ कार्यक्रम। मैं इस कार्यक्रम के लिए जहाज के लिए चाहते हैं, या एक दोस्त को दे, या मारिया या हन्ना को दे उस बात के लिए, वह ठीक है। मैं उन दोनों के लिए अनुकूलित कर सकते हैं लेकिन यह कभी नहीं गतिशील होने जा रहा है। यह संकलित है, एक बार वे इसे बदल नहीं सकते नीचे उन शून्य और लोगों में। इसलिए हम कुछ चालाक क्या किया? क्या होगा अगर, बजाय कड़ी मेहनत से कोडिंग की कार्यक्रम इस व्यक्ति के नाम में, हम बस क्या मिलता है मांग पर स्ट्रिंग? तो दूसरे शब्दों में, मुझे यह करते हैं। मैं इस कार्यक्रम कंपाइल करने के लिए जा रहा हूँ। और मुझे अब नीचे में ज़ूम। हैलो डॉट स्लेश नमस्कार करें। अब कुछ नहीं हो रहा है। हम एक त्वरित स्वयंसेवक मिल सकता है कुछ कर दिखाना? आ जाओ। आपका नाम क्या है? Pancho: पान्चो। डेविड जे मालन: Pacho? आ जाओ। आप यहाँ ऊपर हो जाने के बाद, यह है बहुत underwhelming होने जा रहा, लेकिन इसे और अधिक दिलचस्प है मुझ से यह लिखकर। आप आगे जाना है और टाइप करने के लिए चाहते हैं, तो आपके नाम, मैं तो बस आप के लिए यह कार्यक्रम बनाया है। बस अपने नाम लिखें। दर्ज करें। कमाल है। ठीक है, बहुत बहुत धन्यवाद। Pancho: आपका बहुत-बहुत धन्यवाद। डेविड जे मालन: ठीक है। [वाहवाही] यही कारण है कि बहुत दयालु था। हेयर यू गो। हमने क्या किया? तो हम अंत में, कम से कम, इस कार्यक्रम गतिशील बनाया है। अब यह निश्चित रूप से अब भी है डिजाइन underwhelming से, लेकिन हम अंत में क्षमता है अब ज्यादा अग्रिम में कोड लिखने के लिए printf के लेखकों की तरह, और फिर गतिशील हम कर रहे हैं इनपुट के आधार पर लिए अनुकूल सौंप दिया है, या तो प्रोग्रामर द्वारा, या मानव द्वारा जो वास्तव में है कार्यक्रम के साथ बातचीत। इसलिए कोशिश करते हैं अब वास्तव में चलो कुछ अन्य निर्माणों ऐसा करने के लिए हम कार्यक्रम नहीं बना सकते और अगर देखना खुद को और अधिक परिष्कृत। तो चलो आगे और इसके बजाय के चलते खरोंच से यह एक लेखन, मैं आज के रूप में जाना जा रहा हूँ स्रोत कोड, और इस सब पाठ्यक्रम के पर उपलब्ध है वेबसाइट, और आप खींचें और ड्रॉप कर सकते हैं अपने स्वयं के वातावरण में समस्या एक बार शुक्रवार आना सेट 1 आप देता है निर्देश है, या आप सकता है कमांड लाइन के रूप में यह करना खैर, पी में आने के लिए, लेकिन अधिक एक निर्धारित किया है। चलो इस कार्यक्रम में क्या देखते हैं यहां योजक डॉट ग, कहा जाता है। अब मैं पहले से ही टिप्पणी की है यह है, लेकिन इसमें नया क्या है? पहली नज़र में, क्या लाइन कोड के बिल्कुल नया है? शायद नहीं मूलरूप अब अपरिचित। दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ, इसलिए पूर्णांक एक्स एन मिल के बराबर होती है। हम इस बात का कोई कभी नहीं देखा इससे पहले, लेकिन पूर्णांक शायद है किस तरह का के लिए प्रतीक चर, [? से?] एक पूर्णांक। तो पूर्णांक के लिए int। यह सिर्फ अधिक किया जा रहा है संक्षिप्त। एक्स सिर्फ मनमाना है। एक्स और वाई और जेड अभी भी कर रहे हैं नंबरों के लिए बहुत उचित है, लेकिन आम तौर पर हम एक बार शब्दों का प्रयोग करेंगे हमारे कार्यक्रमों को और अधिक जटिल हो। ज़ाहिर है, पूर्णांक जाओ, मिल स्ट्रिंग की तरह ज्यादा है, शायद पाने के लिए जा रहा है उपयोगकर्ता से एक पूर्णांक, और फिर हम करने जा रहे हैं वाई के साथ ही काम करते हैं। और जाहिर है, भले ही इस अंतिम पंक्ति, 24, और अधिक जटिल लग रहा है यह इस बात का योग कहने जा रहा है और कहा कि यह दूसरी बात है। और नोटिस प्रतिशत मैं शायद क्या इंगित करती है? क्या भूमिका प्रतिशत करता है मैं जाहिरा तौर पर सेवा करते हैं? यह सिर्फ प्लेसहोल्डर्स है। है ना? प्रतिशत है, स्ट्रिंग के लिए था प्रतिशत मैं पूर्णांक के लिए है। प्रतिशत च होने जा रहा है बिंदु मान, तैर के लिए जो एक दशमलव बिंदु के साथ सिर्फ एक संख्या है। दूसरे शब्दों में, एक वास्तविक संख्या। तो चलो वास्तव में इस संकलन करते असली तेजी से कार्यक्रम और योजक कर सकता हूँ। वूप्स। अच्छा मौका। तो यह सब समय है, यहाँ मेरे उपयोगकर्ता नोटिस इस खाते jharvard है के लिए नाम है। मैं, उर्फ ​​CS50 आईडीई में IDE50 हूँ। और अब यहाँ नीले रंग में, एक उल्लेख है, लेकिन मैं कहाँ हूँ के पर्यावरण, से। और वास्तव में, मैं चोटी पर चढ़ ज़ूम यहाँ, मैं एक IDE50 है कि नोटिस और मुझे लगता है अगर आप एक तरह से इस शब्द को देखने पक्ष को कार्यक्षेत्र अपने सिर को बारी। संक्षेप में, तथ्य यह है कि मैं टिल्ड स्लेश कार्यक्षेत्र देख रहा हूँ इसका मतलब है कि इस पाठ में आधारित कमान पर्यावरण, मैं का पाठ बराबर में हूँ यहाँ यह हुआ फ़ोल्डर आलेखीय। इसलिए मैं डॉट स्लेश करने के लिए जब योजक, यह कोई नियम कह रहा है लक्ष्य योजक बंद करने के लिए। मुझे लगता है कि इसका मतलब क्या है पता नहीं है लेकिन यह किसी कारण के लिए बुरा है। ऐसी कोई फ़ाइल या डायरेक्टरी नहीं है और भी अधिक स्पष्ट है। जहां यह तो है? मैं क्लिक किया, जहां पर आधारित पिछले फ़ाइल को खोलने के लिए। जहां यह हो सकता है? यह स्रोत में शायद है एक डब्ल्यू, बुधवार के लिए, और मुझे लगता है, वास्तव में, यह देख सकते हैं मुझे लगता है कि ऊपर खुला है। वहाँ योजक डॉट सी है, लेकिन में इस पाठ आधारित वातावरण, फिर, मैं सुपर स्पष्ट होना चाहिए। मैं में निर्देशिका बदलना चाहते हैं स्रोत एक बुधवार, मैं टाइप करने की जरूरत है, सीडी अंतरिक्ष स्रोत एक बुधवार अब दर्ज करें और करने के लिए मेरे शीघ्र परिवर्तन मुझे एक दृश्य संकेत दे मैं कहीं और, वास्तव में, कर रहा हूँ मेरे वातावरण में, लेकिन अब मैं कर सकता हूँ कर सकते हैं योजक, यह काम करने लगता है, डॉट ने मुझे एक पूर्णांक दे, योजक स्लेश। एक। दो। एक और दो का योग तीन है। लेकिन मैं सहयोग नहीं करते हैं, तो के पूर्णांक करता मिलता है देखते हैं क्या। मुझे एक पूर्णांक दीजिए। नहीं। पुन: प्रयास करें। ठीक। जुर्माना। 50। 50। ठीक है। तो यह अंत में सहयोग। और उस में से कुछ है कार्यक्षमता कि इन कार्यों आप के लिए बनाया गया है सकते हैं। कार्यान्वयन के अंदर तो के पूर्णांक, क्या प्रोग्रामिंग प्राप्त में शायद नहीं है पिछले हफ्ते से निर्माण फिर से प्रयास के इस व्यवहार को देखते मजबूर करने के लिए, पुन: प्रयास करें, पुन: प्रयास करें? हाँ, वहाँ शायद पाश किसी तरह का। यह वाक्य रचना से लग रहा है स्क्रैच के ब्लॉक से अलग, लेकिन लगता है कि वास्तव में है क्या फाइल के अंदर है। और कुछ ही सप्ताह का समय में हम करेंगे वास्तव में CS50 पुस्तकालय को देखो के रूप में अंदर क्या है, लेकिन वहाँ है ठीक है कि थोप एक पाश। चलो, एक मूर्ख छोटी खेलते हैं यहाँ इस फाइल के साथ खेल। स्थिति शून्य डॉट ग। हम सिर्फ आम तौर पर करने के लिए जा रहे हैं शून्य पर गिनती शुरू। और मैं पिछले स्क्रॉल रखना शीर्ष पर कुछ सामान। नीले यहाँ में, सभी के साथ सीमांकन इन सितारों और स्लैश की, कार्यक्रम आप में से जो इससे पहले, वह क्या है? क्यों हम इस पर लंघन रहते हो? क्या? दर्शकों: यह एक टिप्पणी है। डेविड जे मालन: हाँ। यह सिर्फ एक टिप्पणी है। यह मनुष्य के लिए एक टिप्पणी है पढ़ने के लिए, हमारे मामले में, कि फ़ाइल का नाम हमें बताता है क्या , जो इसे लिखा है, और यह क्या करता है इसलिए तुम नहीं है कि कोड के माध्यम से पढ़ने के लिए इस फ़ाइल के बारे में क्या जानते हैं। यह सिर्फ एक विवरण दिया गया है, लेकिन कार्यात्मक यह अप्रासंगिक है। और मैं भी से इसे हटा सकते हैं मेरी फाइल और यह कोई प्रभाव पड़ता है। रसदार लाइनों इन कर रहे हैं यहां दो प्रथम, अब। int मुख्य शून्य के बराबर है हरे रंग का झंडा क्लिक किया हमारे जब से, तो हम उस होना छोड़ने के लिए जा रहे हैं आज के लिए, और हम वापस आ जाएगा, अंत में, के रूप में क्या पूर्णांक और शून्य, अब कर रहे हैं, लेकिन मैंने क्या किया नोटिस यहाँ भी, आप भी कर सकते हैं आप लाइन में एक है, तो अगर आपके पास, टिप्पणी एक आप साझा करना चाहते सोचा कोड की एक विशेष लाइन के बारे में, सी में सम्मेलन स्लेश करने के लिए है स्लेश, और फिर कुछ संक्षिप्त शब्दों में, नहीं एक पूर्ण वाक्य, आम तौर पर नहीं एक पैराग्राफ, कि बस आप को बताते हैं, या अपने टीएफ, या अन्य पाठकों या सहयोगियों, अपने कोड क्या कर रहा है। तो बजाय देखने के लिए है की तुलना और इस पर लाइनों से अनुमान नौ और 10 में, क्या है इस लाइन आठ में, कर रही है मैं सिर्फ एक टिप्पणी करने के लिए दे एक पूर्णांक के लिए उपयोगकर्ता से पूछते हैं, तब मैं भी मुश्किल लगता है की जरूरत नहीं है के बारे में क्या लाइनों नौ और 10 हैं। मैं सिर्फ इतना है कि क्या पता है कि सामूहिक रूप से वे क्या कर रहे हैं। कैसे? वैसे, यहाँ शीघ्र है। यहाँ पूर्णांक की हो रही है। और पिछले पर आधारित व्यवहार, इसे पाने के पूर्णांक की तरह लगता है सुनिश्चित करें कि करने के लिए काफी चालाक है मानव सहयोग और यह देता है पूर्णांक। लेकिन अब हम देखते हैं। और इस स्क्रैच की याद ताजा करती है। मैं मैं कर रहा हूँ का दावा है कि कर रहा हूँ उपयोगकर्ता के इनपुट का विश्लेषण, लेकिन कुछ हद तक गलत। और जाहिरा तौर पर सी में इस कैसे हम एक और अगर एक्सप्रेस, एक शाखा, एक सड़क में कांटा, लेकिन मुझे लगता है कुछ हद तक गलत कहते हैं। इस कार्यक्रम में बग क्या है? के बारे में आगे पीछे? हाँ। दर्शकों: [अश्राव्य] शून्य। डेविड जे मालन: हाँ। मैं शून्य में टाइप करते हैं तो, चलो पर विचार करते हैं वास्तव में यह मामला है, या कोने मामला है, अगर आप करें तो। मैं, शून्य में टाइप करते हैं तो की है, जो ब्लॉकों जाहिरा तौर पर यह हड़पने के लिए जा रहा है? यदि वरना? वरना, और यह कहने के लिए जा रहा है, आप एक नकारात्मक संख्या उठाया। और वास्तव में, शून्य नहीं माना जाता है सकारात्मक या नकारात्मक हो, और इतनी है कि ग़लती से होगा। यही कारण है कि एक बग होगा। तो कैसे हम इसे ठीक कर सकते हैं? पहले क्रमादेशित कभी नहीं किया है, जो किसी को? क्या तुम चाहते हो-- दर्शकों: [अश्राव्य] डेविड जे मालन: वापस लेना? दर्शकों: [अश्राव्य] डेविड जे मालन: ओह, तुम्हारे पास है? पहले क्रमादेशित कभी नहीं किया है, जो किसी को। पर अपने हाथ की कोशिश करना चाहते हैं इस लाल शर्ट में? आ जाओ। आप बुरा न मानो अरे हाँ, ऊपर पर आते हैं। तो प्रोग्राम किया कभी नहीं होने इससे पहले, तुम्हारा नाम क्या है? लॉरेन: लॉरेन। डेविड जे मालन: लॉरेन, सब ठीक है। इसलिए हमारे लिए इस बग को ठीक। आप शायद, सी नहीं देखा है, और शायद कोई अन्य भाषा। इसलिए हमारे लिए यह कार्यक्रम तय कर लो। फिर से मिलकर अच्छा लगा। कोई दबाव नहीं। लॉरेन: हाँ। डेविड जे मालन: लेकिन फिर, यदि इस जुआ, योजना के अनुसार चला जाता है takeaway यहाँ होगा शुरू करने के लिए, बस फिर से हो सकता है, पैटर्न को नोटिस और मौजूदा वाक्य रचना से अनुमान आप को व्यक्त कर सकता है और कैसे अपने आप को, श्लेष के क्रम में, इरादा कुछ अतिरिक्त परिदृश्य पर कब्जा करने के लिए। इसलिए हम अगर और कह रहे हैं। printf, अच्छा है। और CS50 के साथ नोटिस आईडीई, और frankly-- आईडीई एकीकृत के लिए खड़ा है विकास पर्यावरण। यह कह रही है की सिर्फ एक अच्छा तरीका है आप इस कार्यक्रम में मदद करता है कि एक कार्यक्रम। यह जैसे उपयोगकर्ता के अनुकूल बातें करता है आप एक कोष्टक टाइप करते हैं, यह स्वतः ही आप अन्य देता है। अनुमान आप कर रहे हैं कि किया जा रहा है अंततः है कि टाइप करने के लिए चाहते करने के लिए जा रहा है, और यह भी उद्धरण के साथ करता है। तो मैं लाइन 23 की तरह। वहाँ रास्ते से 99%। किसी ने एक टिप के साथ झंकार करना चाहते हैं? मैं दर्शकों से अर्धविराम सुना। अच्छा। तो यह है कि कि पूरा करता है। और अब, मैं सिर्फ एक छोटे से है रेखा 21 के साथ आतंक। हम यह कैसे व्यक्त करने के लिए करना चाहते हैं? क्या सवाल हम करना चाहते हैं तुम्हें क्या लगता है, पूछने के लिए? तो पहले हम सवाल पूछा, n शून्य से अधिक है, तो यह करते हैं। वरना, ऐसा करते हो। तो हम एक का चयन करने की जरूरत है सवाल यहां पूछने के लिए। दर्शकों: [अश्राव्य] डेविड जे मालन: अच्छा। N शून्य के बराबर होती है तो अगर। बहुत बढ़िया। तो चलो यहाँ हम रोक देते हैं। इस बहादुरी के लिए बहुत बहुत धन्यवाद। मुझे आप एक छोटे से अच्छी तरह से लायक दे शायद वहाँ तनाव गेंद,। इसलिए हम लगभग वहाँ रहे हैं। वास्तव में, लॉरेन, अगर आप ऐसा नहीं मन, मुझे एक यहाँ tweak कर देना अभी भी साथ लगातार हो हम खरोंच में क्या देखा, क्या मैं लाइनों के साथ करना चाहते हैं 21 और 24, बस फिर आधारित हम खरोंच में यह कैसे किया पर, शायद? दर्शकों: यह ऊपर ले जाएँ। डेविड जे मालन: हाँ, यह ऊपर ले जाएँ। तो और हालत, तीसरे, या चौथे या पांचवें, या अंतिम शाखा, वास्तव में बाद में आना चाहिए, और कहा कि, अभी सम्मेलन से है सिर्फ अगर तुम जाएगा क्योंकि। इसलिए मैं इस ट्वीक बनाने की जरूरत है। और मैं अपने खड़ा करने की जरूरत यहाँ वापस घुंघराले ब्रेस। और अब, इस कार्यक्रम के संकलन होगा। हम इतने करीब हो, लेकिन वहाँ है एक बहुत, बहुत सूक्ष्म बग। चलिए देखते हैं क्या होता है। सबसे पहले, मुझे आगे जाना है और बाहर ज़ूम। मैं आगे जाने के लिए जा रहा हूँ और हालत शून्य बनाने लिखें। ओह, मैं झूठ बोला था। अब संकलक है वास्तव में बहुत चालाक। और मैं वास्तव में समझ में नहीं आता यह त्रुटि संदेश है। एक काम के परिणाम का उपयोग कोष्ठकों के बिना एक शर्त के रूप में, जाहिरा तौर पर खराब है। लेकिन इसका क्या मतलब है? खैर फिर, पैटर्न की तलाश , हम पहले देखा है कि कोड में वास्तव में कर रही लाइन 17 क्या है, यहां तक ​​कि लॉरेन थोड़ा इरादा यद्यपि अन्यथा? हाँ। दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। तो जाहिर है, बराबर चिह्न याद हम पहले यह प्रयोग किया है, के रूप में नहीं के बराबर होती है। सही से इसका कार्यभार छोड़ दिया है, करने के लिए। इसलिए इस समय 17 लाइन एक शर्त है, और यह है कोष्ठकों के अंदर कोड को क्रियान्वित करने, लेकिन लगता है कि कोड को निष्पादित करता है, जब क्या शून्य के मूल्य के लिए हो रहा है? क्या एन के मूल्य के लिए हो रहा है? शून्य बनना। N शून्य होता जा रहा है तो, अगर और फिर, पिछले हफ्ते के अनुसार, हम आम तौर पर उस शून्य कहना गलत है, और एक सत्य है, हाँ या ना में से एक है और कोई शून्य है। इसलिए सही और गलत, एक और 0। रेखा 17 के रूप में एन किया गया है , मान 0 दी शून्य सच है? नहीं। परिभाषा के अनुसार, शून्य गलत है। यही कारण है कि हम कर रहे हैं सम्मेलन आगे बढ़ने से जुड़े हुए जा रहा है। इतना होगा लाइनों 18, 19, और 20 कभी तार्किक रूप से, अब लागू होती है? वे नहीं कर सकते। तो हम सवाल पूछा लेकिन काफी नहीं है ठीक, और जब तक आप यह पता नहीं होता आप, सी में समाधान इसे देखा है आप को व्यक्त करना चाहते हैं जब है समानता, आप के बराबर होती है कहना। तो बराबर चिह्न पहले से ही इस्तेमाल किया गया था काम से, सही से छोड़ दिया करने के लिए। बराबरी का अर्थ है बराबर होती है। और तुम सच में अपने मन चाहते हैं जावास्क्रिप्ट और पीएचपी में, आमादा हो, वहाँ के बराबर होती है, जो बराबर कुल मिलाकर कुछ और ही मतलब है, लेकिन हम लंबे समय से पहले उस के लिए मिल जाएगा। तो यह एक सरल तय है, लेकिन एहसास इस गलती के लिए सुपर आसान, और फिर आश्चर्य और संघर्ष मिनट के लिए है, न कि एक घंटे में अगर, क्यों अपने कोड है नहीं मैं इरादा रूप में क्रियान्वित? आपको बता नहीं था क्योंकि यह यह ठीक है कि तुम क्या मतलब है। तो यह है कि लगभग था सही है, यह और बहुत अच्छा था हम इन दो छोटे भर में ठोकर खाई है कि बातें करते हैं, हम उन्हें ठीक अब क्योंकि अगर और मैं हालत शून्य बना कर डॉट, हालत शून्य स्लेश मैं एक पूर्णांक कृपया चाहते हैं। चलो देखते हैं। नहीं। ऐसा लगता है कि मुझे ऐसा करने के लिए मजबूर करने के लिए जा रहा है। तो 42। मैं एक सकारात्मक संख्या उठाया। तो अब कैसे मैं साबित करना सही इस कार्यक्रम? आप एक गणितज्ञ रहे हैं, तुम नहीं कर सकते वास्तव में परीक्षण और त्रुटि से यह साबित होता है, है ना? आप से न सिर्फ सबूत कर सकते हैं उदाहरण के लिए, लेकिन कम से कम एक प्रोग्रामर के रूप में हम नहीं कर रहे अब के लिए साबित करने की कोशिश करने के लिए जा रहा यह वास्तव में है कि सही है, लेकिन मैं शायद चाहिए कुछ प्रतिनिधि मामलों का परीक्षण करें। मैं 42 का परीक्षण किया है। मैं 43 परीक्षण कर सकता है। मैं 44 परीक्षण कर सकता है। टेस्ट 45। है ना? लेकिन मुझे लगता है कि यह एक बहुत लंबे समय से कर सकता है। कुछ और क्या होगा दिलचस्प मामलों की कोशिश करने के लिए? दर्शकों: [अश्राव्य] शून्य। डेविड जे मालन: तो शून्य। निश्चित रूप से। और अच्छा है, हम इसे इस समय मिल गया है लॉरेन के नए कोड के लिए धन्यवाद। कोशिश करने के लिए एक और अच्छी बात क्या है? दर्शकों: नकारात्मक है। डेविड जे मालन: नकारात्मक एक है, और शायद एक छोटे से बड़ा कुछ है, तो शायद 42 नकारात्मक, लेकिन सामान्य तौर पर, जब अपने कार्यक्रमों का परीक्षण आगे बढ़ रहा है, आप कर रहे हैं सोचने के लिए चाहते हो जा खुद के लिए, की तरह क्या मौलिक अलग मामलों रहे हैं। और मैं एक नकारात्मक मामले कहने की हिम्मत, एक सकारात्मक मामला है, और एक शून्य मामले बहुत ज्यादा इन बाहर दौर। चलो इस यद्यपि का एक संस्करण पर नजर डालते हैं। शर्तों में से एक। यह, यहाँ एक सही समाधान है आप ऑनलाइन दो और देखेंगे तो यह है कि, आप के माध्यम से चलना Walkthroughs, आम तौर पर होगा इन चरणबद्ध जब तक वेतन वृद्धि हम बिल्कुल सही दृष्टिकोण मिलता है। हम पूछना चाहता था, तो क्या दो सवाल एक बार में? मुझे बजाय इस को खोलें। कारणों के लिए गैर-स्विच, हम एक और समय देखेंगे। क्या वाक्य रचना से यहां नया क्या है? मैं वर्तमान में एक खेल खेल रहा हूँ जहां कंप्यूटर बता रहा है मुझे, मुझे एक पूर्णांक देना एक और 10 के बीच, और फिर मैं उपयोगकर्ता के इनपुट पहचानने हूँ। अंग्रेजी में, के आधार पर आप यहाँ देख कोड नीले रंग में, इस कार्यक्रम के लिए क्या कर रही है? दर्शकों: [अश्राव्य] उठाया एक छोटे या बड़े संख्या। डेविड जे मालन: हाँ। यह सिर्फ है कि क्या निर्णय देने वाला है मैं एक बड़ा, या मध्यम उठाया, या छोटी संख्या एक बहुत पर आधारित छोटे, मध्यम की मनमानी परिभाषा और यहाँ बड़ी है, लेकिन नोटिस नया है कि वाक्य रचना यह है। पूर्णांक के बराबर या कोई कम से कम नहीं है साइन इन करें, या अधिक या हस्ताक्षर करने के लिए बराबर, जहां एक दूसरे के ऊपर है कि आप माइक्रोसॉफ्ट वर्ड की तरह में व्यक्त कर सकते हैं। एक प्रोग्रामिंग भाषा में तो तुम आम तौर पर सिर्फ दो अक्षरों करते हैं, एक के बाद एक। और यह शायद क्या करता है , एम्परसेंड एम्परसेंड प्रतिनिधित्व करते हैं। दर्शकों: [अश्राव्य] डेविड जे मालन: हाँ। यह सिर्फ मतलब है और इसकी वजह यह सी के लेखकों पता चला है कि एक भी एम्परसेंड इस्तेमाल किया, जो आप सोच सकते हैं धारणा के लिए सही होगा और, पहले से ही प्रयोग किया जाता है इसलिए एम्परसेंड एम्परसेंड वास्तव में हम वास्तव में चाहते मामले कब्जा। तो चलो अब दो बातें भर में ठोकर करते हैं। मुझे आगे जाना है और एक को खोलें। एक छोटी सी चिंता की बात है कि कुछ। अस्पष्टता डॉट ग। मुझे यहां दो बातें परिचय। हम क्या कर सकते हैं कि एक, नोटिस गणित, के रूप में बस के रूप में जब पहले हम साथ साथ दो नंबर, एक्स और वाई के लिए किया था। इस कार्यक्रम के जाहिरा तौर पर क्या कर रहा है? मैं इसे अभी तक कोई टिप्पणी नहीं की गए हैं और मैं प्रतिशत च शुरू की है, लेकिन मैं जल्दी से पहले कहा था प्रतिशत च चल बिन्दु इसका मतलब वास्तविक संख्या है, जो मूल्य,। एक दशमलव के साथ कुछ कोई पूर्णांक नहीं है जो बात,। आप इस कार्यक्रम है क्या लगता है स्क्रीन पर मुझे दिखाने के लिए कोशिश कर रहा? हाँ? दर्शकों: 10 के ऊपर एक का नतीजा है। डेविड जे मालन: हाँ। क्या 10 से विभाजित एक का नतीजा है। ठीक है, क्योंकि तुम सब शायद है 10 से अधिक एक है कि जानते हुए भी बड़े हो गए क्या है? हाँ, यह सिर्फ 1/10 या 0.1 है। है ना? तो चलो इस वास्तव में है क्या देखते हैं। तो मुझे आगे जाना है और इस बचा ले। मुझे यहाँ नीचे चलते हैं। अस्पष्टता डॉट स्लेश बनाओ अस्पष्टता, और नोटिस भी है, एक लिनक्स वातावरण में, तुम नहीं करते अस्पष्टता बाहर प्रकार और ले जाना है दिन भर। यह आम तौर पर, आप टैब मारा, तो यह आप के लिए अपने विचार खत्म हो जाएगा, हैं कि शब्दों के आधार पर वर्तमान निर्देशिका में उपलब्ध है। ठीक। तो अगर आप सही थे। 10 से विभाजित एक, वास्तव में, 0.1 है। लेकिन मैं एक छोटे से उत्सुक हूँ। और यह printf पता चला है कुछ सुविधाओं का समर्थन आप अधिक से अधिक निर्दिष्ट कर सकते हैं जिससे दशमलव अंक की डिफ़ॉल्ट संख्या। तो मैं 10 दशमलव देखना चाहते हैं मैं प्रतिशत कर सकते हैं अंक, प्लेसहोल्डर प्रतीक के लिए, डॉट 10 के लिए, मुझे 10 दशमलव अंक दे, और फिर अभी भी चल बिन्दु मूल्य, और, एक अलग रूप में, इस बैकस्लैश n क्या है जाहिरा तौर पर हम उपयोग कर रखना? यह एक है पता चला है एक नई लाइन के लिए प्रतीक। यह बहुत स्पष्ट तरीका है कंप्यूटर के लिए कह रही है, अगले करने के लिए कर्सर ले जाने के आप के बाद लाइन कर रहे हैं। और हम क्या होता देखेंगे हम ऐसा नहीं करते। मुझे अस्पष्टता बनाने कंपाइल करने दें। अब अस्पष्टता स्लेश डॉट। ठीक। अभी भी सही। एक 10 से विभाजित। अब मैं जा रहा हूँ एक थोड़ा उत्सुक है, यद्यपि। क्या मैं 20 दशमलव नजर डालें तो बताते हैं, फिर कंपाइल करने, फिर से दौड़ना, और एक तरफ के लिए के रूप में गति, तुम भी उपयोग कर सकते हैं अपने ऊपर और करने के लिए तीर नीचे अपने इतिहास के माध्यम से पुस्तक, इसलिए आप को बनाए रखने की जरूरत नहीं है इन आदेशों के पुन: लिखने, दर्ज करें। हं। मैं ग्रेड स्कूल में सीखना है कि नहीं था। ठीक है, तो मुझे जाने बाहर 29 स्थानों की तरह देखते हैं। हो सकता है कि यह सिर्फ एक अस्थायी है। हो सकता है कि मेरे कंप्यूटर अजीब अभिनय है। यह ठीक है, एक बात नहीं है? यह deterministically कुछ कर रही है। तो अस्पष्टता बनाते हैं। ठीक है, कि गड़बड़ है। तो क्या चल रहा है? तो जाहिरा तौर पर अपने शिक्षक झूठ बोल रहा है इस समय सभी के लिए आप के लिए हम लंबे समय से पहले देखेंगे कि कारणों से। लेकिन एक अन्य कार्यक्रम के साथ खत्म हो। यह एक छोटे से प्रोग्राम है किसी को, कुछ साल पहले लिखा था और यह वास्तव में एक प्रतियोगिता का हिस्सा है। कोई भी वास्तव में कोड लिखते इस तरह से है, और यदि आप करते हैं, इस शैलीगत एक समस्या है। लेकिन लोगों को डींग मारने का अधिकार के लिए ऐसा करते हैं। सबसे भ्रमित लिखने के लिए देख कार्यक्रम कि फिर भी दिलचस्प कुछ भी करता है। और टिप्पणी मुझे लगता है हम पर छोड़ दें लगा आज, कोल्टन हमें यहाँ से खेलता है, इससे पहले इस कार्यक्रम को चलाने के लिए है, यहां तक ​​कि बस का उपयोग करने में है, जो इस पाठ-आधारित में सी पर्यावरण, हमें इस देता है। Dammit। [हँसी] समर्थन करना। [अश्राव्य] सी पानी का छींटा एल एम। आप जादुई देखने के लिए जा रहे हैं हम लंबे समय से पहले देखेंगे कि जादू। [अश्राव्य] ठीक है। और अब आप भी कर सकते हैं इस तरह बातें करते हैं। यह बात है। CS50 हम के लिए शुक्रवार को आप देखेंगे। [संगीत बजाना] [वाहवाही]