आरओबी बोडेन: यह है अधिक आरामदायक अनुभाग, लेकिन यह है कि इसका मतलब यह नहीं है कि आप अगर आप और अधिक आरामदायक नहीं कर रहे हैं की तरह लग रहा है आप यहाँ बातें नहीं सीख जाएगा. तो चलो शुरू हो जाओ. आप स्लाइड क्या है सही चीजों में जा रहा है. मैं बस के बारे में सही अब इसे लेने के लिए कर रहा हूँ? लैपटॉप स्विचिंग. 

एलीसन: आप नहीं करना चाहते , रोब अपने आप को परिचय? 

आरओबी बोडेन: ओह, मैं रोब हूँ. यह मेरा पांचवां साल TF हैैं CS50 है. 

GABRIEL: मैं गेब्रियल हूँ. मैं CS50 के सिर TF हूँ. मैं पिछले साल और इस साल TF था. एलीसन: और मैं एलिसन हूँ, और इस अपने दूसरे वर्ष TF हैैं CS50 है. 

आरओबी बोडेन: सब ठीक है, तो बाईं तरफ इस बात को, उम्मीद है कि आप इसे पहले देखा है. अगर तुम नहीं, क्योंकि खुद के लिए इसे डाउनलोड, आप व्याख्यान में यह देखा जाना चाहिए. तो इस CS50 उपकरण है, और वह कुछ हद तक इसके बारे में कोई विवरण के किया व्याख्यान में. लेकिन मूल रूप से यह सिर्फ तुम हो एक ऑपरेटिंग चल रहे हैं अपने ऑपरेटिंग भीतर प्रणाली सिस्टम हम आपको दे सकते हैं ताकि जरूरत के बिना कार्यक्रमों ओह यह है, चिंता करने की दोनों विंडोज पर काम करने के लिए जा रहा और आप के मैक, या अगर कुछ पहले से ही, लिनक्स लिनक्स का उपयोग कर रहे हैं. यह सिर्फ यह माना जाता है एक आम खेल हो क्षेत्र तो हर कोई है एक ही सटीक वातावरण. 

अगर तुम नहीं है तो पहले से ही इस डाउनलोड आप कर रहे हैं, क्योंकि आप इसे डाउनलोड करना चाहिए समस्या सेट के लिए इसकी आवश्यकता के लिए जा रहा. और यह एक दो गीगाबाइट है यह कुछ समय लग सकता है, ताकि डाउनलोड. हार्वर्ड पर यह तेजी से जाना होगा. तो CS50 उपकरण. 

अब शुरुआत में, हम करने जा रहे हैं कमांड लाइन का सिर्फ एक गुच्छा के बारे में बात सामान, और इतना है कि, मैं काम कर मतलब यहाँ पर इस छोटे से वातावरण में. और सभी चीजों की नोटिस मैं अभी यहीं कहना आप के अंदर कर रहे हैं काम करने के लिए जा रहे हैं उपकरण के अंदर एक टर्मिनल, या आप के अंदर कर रहे हैं एडिट टर्मिनल विंडो उपकरण के अंदर. तो उन वातावरण समान हैं. 

लेकिन मैं एक तिहाई मार्ग जाने के लिए जा रहा हूँ. और यहाँ यह नीचे नोटिस यहीं थोड़ा आईपी पता. तो आप के लिए नहीं है ऐसा करते हैं, लेकिन इस आईपी address-- अब सिवाय I-- अगर यह इस बात से अवरुद्ध है. ठीक है, इतना है कि आईपी पते एक टर्मिनल में अधिक here-- तो इस टर्मिनल से अधिक यहाँ अपने मैक में एक टर्मिनल है. तो यह वर्तमान में कोई रास्ता नहीं है पर सभी उपकरणों के साथ जुड़े. आप विंडोज पर हैं, तो आप कर रहे हैं कुछ डाउनलोड करने की आवश्यकता के लिए जा रहा विशेष रूप से इस बात के लिए, विशेष रूप से लोग पोटीन, पी-यू-टी-टी-वाई का उपयोग करते हैं. 

तो मैं क्या करने जा रहा हूँ प्रकार है एसएसएच और फिर उस आईपी पता. वैसे, यह आईपी पते पर jharvard. तो 192.168.24.220. यह डरावना संदेश, इसे अनदेखा. बस हाँ टाइप करें. यह एक बॉक्स में CS50 है. यह अपने पासवर्ड के लिए पूछता है. 

और इसलिए इन संदर्भों जहां का एक बहुत में यह [अश्राव्य], पासवर्ड के लिए पूछता है. हम सवाल जहां का एक बहुत कुछ मिल गया है यह वास्तव में टाइपिंग नहीं है कहते हैं. यह आप के अक्षर दिखाई नहीं देता पासवर्ड आप लिखते हैं, अगर कुछ भी, एक सुरक्षा सुविधा के लिए, क्योंकि अगर किसी को अपने कंधे पर देख रहा है और वे स्टार सितारा देखना तारा तारा, वे तो पता है कि आपका पासवर्ड चार वर्ण है. तो विचार यह पूछेंगे है अपना पासवर्ड, प्रकार के लिए आप. यह दिखाने के लिए नहीं जा रहा है आप अक्षर, लेकिन यह वास्तव में उन्हें स्वीकार कर रहा है. इस मामले में, किसी भी समय आप कभी एक पासवर्ड शीघ्र देखना उपकरणों के साथ काम, पासवर्ड क्रिमसन होने जा रहा है. तो लाल. 

और अब यहाँ इस के अंदर अपने मैक में है कि खिड़की, मैं मूल रूप से चल रहा है एक ही सटीक देखें एक टर्मिनल के अंदर के रूप में उपकरण में. तो आप ऐसा करने के लिए नहीं है. आप आप सब कुछ कर सकते हैं उपकरण के अंदर चाहता हूँ. मैं लगभग वास्तव में ऐसा कभी नहीं उपकरण में कुछ भी. मैं लगभग हमेशा है कि अब कम से कम और मैं उपकरण में एसएसएच काम कर रहा हूँ. 

कुछ भी अगर, आप अगर एक धीमी कंप्यूटर है आप एक अंतर नोटिस सकता है. मैं पसंद करते हैं क्योंकि मैं यह करना इस टर्मिनल विंडो. यह जैसे कुछ विशेषताएं है मैं खिड़की विभाजित कर सकते हैं, और अब मैं में SSH कर सकते हैं उपकरण के माध्यम से. मैं दो एसएसएच एक ही बार में हो रहा है मिल गया. अपने कंप्यूटर विशेष रूप से धीमी है और तुम, उपकरण में काम कर रहे हैं और आप इस एहसास वास्तव में laggy, जो भी हो. बहुत तेजी से हो जाता है आप में एसएसएच-एड कर रहे हैं. लेकिन अन्यथा आप किसी भी तरह से काम कर सकते हैं. 

दर्शक: एसएसएच क्या मतलब है? 

आरओबी बोडेन: सुरक्षित गोले, ऐसा कुछ? एसएसएच क्या मतलब है? GABRIEL: सुरक्षित खोल. एलीसन: यह सिर्फ सुरक्षित खोल रहा है. आरओबी बोडेन: सुरक्षित खोल. यह है you-- कि एक प्रोटोकॉल है एक सुरक्षित प्रोटोकॉल, ताकि एन्क्रिप्टेड. लोग नेटवर्क जासूसी नहीं कर सकते हैं और आप कुछ भी करने के लिए कह रहे हैं क्या देखना आप के लिए एसएसएच-एड कर रहे हैं. और वास्तव में, पुराने में CS50 के दिन, 2009 में तो मैं एक नए, रास्ता था जब कि आप CS50 समस्या सेट पर काम आप कुछ सर्वर के लिए एसएसएच-एड था कि हम आप तक पहुँच दे दी और आप वहाँ पर काम किया. तो आप यह नहीं था ग्राफिकल उपकरण. आप एडिट नहीं था. आप इन सब बातों को भी नहीं था कि आप इस बात नेत्रहीन और क्लिक सकता है. आप इस इंटरफेस में काम किया था. मैं इस इंटरफेस में काम करना पसंद करते हैं. हम जा रहे हैं तो हिस्सा अभी के लिए जा रहा की एक गुच्छा रहे हैं आपको चाहिए कि आदेशों के रूप में साथ परिचित पाने के लिए शुरू आप कोर्स में साथ चलते हैं. और ईमानदारी से, आप एक बार उन्हें आदत हो, यह करने के लिए इतना तेज है इस माहौल में काम करते हैं यह खोजक के साथ काम करने के लिए है, की तुलना खींचने और चीजों पर क्लिक. 

तो यहाँ हम कर रहे हैं. अब मैं सिर्फ एसएसएच-एड में, और इसलिए डिफ़ॉल्ट आप location-- कक्षा में इन आदेशों की कुछ देखा लेकिन हम उन्हें फिर से सब कुछ खत्म हो जायेंगे. हम कर रहे हैं डिफ़ॉल्ट स्थान में घर निर्देशिका है. और निर्देशिका, बस फ़ोल्डर के लिए एक और शब्द. तो हम घर निर्देशिका में हैं. फाइलों की सूची, रास लिखें इस निर्देशिका में. जाहिर है मैं पहले एक blah.c बनाया. तो हम एक डेस्कटॉप निर्देशिका है. आप वाक्य रचना हाइलाइटिंग नोटिस? हल्के नीले प्रकाश डाला इंगित करता है एक निर्देशिका और सीधे सफेद सिर्फ एक सादे फ़ाइल को इंगित करता है. तो वहाँ के लिए जा रहे हैं आप देख कुछ अन्य रंग. एक निष्पादन योग्य फ़ाइल शायद जा रहा है उस तरह हरे या कुछ और हो. ठीक है, तो हम घर निर्देशिका में हैं. 

अब मैं एक अलग में जाना चाहते हैं निर्देशिका, सीडी मैं चाहता आदेश है. तो क्या आप फिर निर्देशिका बदलने के लिए, और निर्देशिका का नाम पारित आप में जाना चाहते हैं. तो यहाँ हम चार विकल्प हैं. मैं डाउनलोड में जा सकते हैं, और अब हम देखते हैं यहां यह इस प्रारंभिक अद्यतन किया गया है मैं ~ / डाउनलोड में हूँ कहने के लिए. 

तो टिल्ड क्या है? इसके लिए एक आशुलिपि है अपने घर निर्देशिका. तो आप लगभग सब कुछ करने जा रहा है अपने घर निर्देशिका के लिए सम्मान के साथ हो, और पीडब्ल्यूडी सिर्फ एक आदेश है मैं एक साल में एक बार उपयोग करने वाले अभी वर्तमान निर्देशिका प्रिंट. और इसलिए आप यहां देखते हैं कि ~ / डाउनलोड सच का निराकरण / घर / jharvard / डाउनलोड करने के लिए. तो / घर / jharvard मेरे घर निर्देशिका है. 

तो हम सीडी डॉट डॉट सकते हैं. अब डॉट डॉट एक विशेष निर्देशिका है कि हमेशा एक निर्देशिका अप करने के लिए संदर्भित करता है. मैं ~ / डाउनलोड में हूँ, तो सीडी डॉट तो डॉट टिल्ड करने के लिए मुझे लाने जा रही है. हम सीडी डॉट डॉट क्या लगता है अब मुझे लाने के लिए जा रहा है? यह / घर के लिए मुझे लाता हूँ. तो प्रिंट कार्य निर्देशिका द्वारा टिल्ड, मैं अब / घर / jharvard में हूँ. उस से एक निर्देशिका, अब यह घर / यहाँ कहते हैं. 

सीडी डॉट डॉट अब. अब मैं रूट निर्देशिका में हूँ, और आप इसे फिर से नहीं कर सकते हैं. तुम बस में रहना होगा हमेशा के लिए रूट निर्देशिका. रूट निर्देशिका की एक पूरी गुच्छा है आप में देखना चाहता हूँ कि अगर, बातें, आप ऐसा कर सकते हैं. उदाहरण के लिए, मैं जाना बिन में, कि शामिल इस तरह लोकसभा के रूप में इन सभी बायनेरिज़, और सीडी, और उन सब बातों के. तो इन आदेशों करने की जरूरत है सिस्टम में कहीं न कहीं मौजूद हैं, और यह / बिन निर्देशिका में है. लेकिन आप लगभग सब कुछ है अपने घर निर्देशिका से होने जा रहा. और किसी भी तर्क के बिना सीडी, आप सीडी ~, की जरूरत नहीं है कह सकते हैं. सीडी आप लाने जा रही है वापस अपने घर निर्देशिका के लिए. 

एक पिछले एक. सीडी - करने के लिए आप को वापस लाने के लिए जा रहा है आप में थे कि पिछले निर्देशिका. तो मैं सिर्फ एक पंक्ति में दो बार cd'd तो मेरा पिछले निर्देशिका घर निर्देशिका था. मैं अब बिन स्लेश, और करने के लिए जाओ के ऊपर और उपयोगकर्ता में चलते हैं. उपयोगकर्ता का शेयर. 'उपयोगकर्ता साझा करने के लिए चलते हैं. अब मैं उपयोगकर्ता शेयर में अब हूँ. सीडी - वापस बिन में. तो यह विशेष रूप से उपयोगी हो जाता है आप have-- और जब यह टॉगल करेंगे. उपयोगकर्ता वापस शेयर, बिन, शेयर बिन तो. 

तो यह उपयोगी हो जाता है. तुम अपने आप को कई होने मिल सकता है कई कई नेस्टेड निर्देशिका. और अगर आप कुछ करना चाहते हैं एक ऊपरी निर्देशिका में असली जल्दी. आपको लगता है कि निर्देशिका में जाना है, बनाने की तरह है कि परिवर्तन और सामान, और अब आप जाना चाहते हैं वापस आप कहाँ थे. सीडी -. मैं हमेशा निराश हूँ मैं जाने के लिए होता है जब उस निर्देशिका मैं करने के लिए में काम करना चाहता था. मैंने किया था जब मैं हमेशा निराश हो बजाय एक कदम के दो चरणों में यह, कि उस सीडी क्योंकि इसका मतलब है - जा रहा है कि मध्यवर्ती स्थान में लाने के लिए बजाय मैं जाना चाहता हूँ जहाँ की. 

इसलिए हम सभी सूची फाइलों को देखने. हम अब तक के आसपास पाने के लिए पता. तो अब की फाइल संपादन के बारे में बात करते हैं. इस कोर्स में तो, आप कर रहे हैं लगभग हमेशा एडिट उपयोग करने की उम्मीद है. यदि आप चाहते हैं, आप अगले कदम ले जा सकते हैं और एक कमांड लाइन पाठ सीखना शुरू संपादक. तो विभिन्न विकल्प मौजूद हैं. 

और लोगों को शायद रहे हैं कि आप के लिए प्रासंगिक होने जा रहा, हम नैनो, विम, और emacs है. इसलिए नैनो शुरुआती है कमांड लाइन पाठ संपादक. इसलिए नैनो पर चलते हैं blah.c मैं पहले बनाया. यह सिर्फ इस मानक सी फाइल है. और आप सामान की एक पूरी गुच्छा देखना स्क्रीन के नीचे चल रहा है, और जाहिरा तौर पर blah.c इस सी कोड शामिल हैं. 

इस विशेष संपादक में तो क्या यह bottom-- पर कह रहा है अब इस कैरट प्रतीक, हम इस ^ जी, ^ एक्स, ^ ओ देखें. तो यह है कि लगभग सभी में आप देखते हैं कि संदर्भ, आप में कि कैरट प्रतीक देख सकते हैं पोट अतिप्रवाह पर ऑनलाइन अन्य स्थानों, ऐसा कुछ. यह लगभग हमेशा नियंत्रित करने के लिए संदर्भित करता है. तो मैं करना चाहता हूँ बाहर निकलने के लिए नियंत्रण एक्स कंट्रोल एक्स, बाहर निकलता है. और मैं अपने तीर का उपयोग कर सकते हैं चाबियाँ चारों ओर ले जाने के लिए. मैं बिंदु और आसानी से क्लिक नहीं कर सकते हैं नोटिस. आप अपने तीर का उपयोग जरूरत चाबियाँ चारों ओर ले जाने के लिए. वहाँ एक सेटिंग हो सकता है बिंदु और क्लिक करें. 

लेकिन हम कुछ परिवर्तन कर दें. अब नियंत्रण एक्स बाहर निकलें जाने के लिए. यह संशोधित बफर सेव कहने जा रहा है. अब हाँ के लिए शीघ्र, वाई, एन कोई लिए. रद्द कंट्रोल सी. मैं सिर्फ हाँ कहता हूँ. लिखने के लिए नाम दर्ज करें. डिफ़ॉल्ट फ़ाइल है यह पहले से ही है कि. हिट दर्ज करें. ठीक. अब मैं सिर्फ इतना है कि फ़ाइल संपादित किया है, इसे बचाया, और यह बदल गया है. 

इसलिए नैनो के लिए सबसे आसान है पाठ संपादक के लिए इस्तेमाल किया हो. विकल्प विम और Emacs हैं. उन उच्च स्तर पाठ संपादक हैं कि एक बहुत तेजी से सीखने की अवस्था है. इसलिए मेरी निजी पसंद विम है. और यह विकल्प की एक विस्तृत विविधता है. और अगर आप इस्तेमाल किया जाना एक बार यह करने के लिए, आप कभी नहीं हूँ किसी अन्य के लिए जाना चाहता हूँ पाठ संपादक आप क्योंकि बस बहुत सारी बातें है इन में आप के लिए उपलब्ध, लेकिन यह एक बहुत लेता है लंबे समय जानने के लिए. तो शायद तुम सिर्फ बल चाहते हैं अपने आप को अभी, इसे करने के लिए इस्तेमाल किया जाना लेकिन मैं यह इसके लायक है कहेंगे. लेकिन यह कठिन है. 

और फिर Emacs. मैं हमेशा Emacs में संघर्ष क्योंकि मैं बिल्कुल कुछ भी नहीं करने के लिए पता. जाहिर है कि Emacs डिफ़ॉल्ट रूप से नहीं है उपकरण पर स्थापित. हम शायद कि जोड़ना होगा एक मूलभूत अधिष्ठापन के रूप में. आप में से एक सीख एक बार विम या Emacs, वहाँ करने के लिए कोई बाध्यकारी कारण कभी, अन्य सीखना लेकिन यह एक पूरी तरह से अलग शैली है. ठीक है तो उस पाठ फाइल संपादन है. 

दर्शक: आप फंस गए थे, तो विम में अब ठीक है, कैसे करना we-- 

आरओबी बोडेन: कर रहे हैं विम में कई मोड, और पूरे कर रहे हैं विम सीखने पर ट्यूटोरियल. तो तुम हो हो अगर क्रम में डालने मोड में जो आप कर सकते हैं, टेक्स्ट टाइप करने के लिए कि विभिन्न तरीकों से दर्ज, आप डालने मोड में मिलता है कि कैसे, लेकिन मैं है. या में कोई विशेष से बाहर निकलना आप में कर रहे हैं कि मोड, बस भाग जाते हैं. और तुम बस पाने के लिए भागने पार्टी की योजना बनाई किसी भी नीडिंत मोड अपने में से बाहर. बस ठीक है, अब मैं वापस सामान्य मोड में हूँ. 

और तो सामान्य मोड में, एक पेट के. आप यह तल पर दिखाई दे. और फिर क्यू. आप परिवर्तन किए हैं तो क्यू छोड़ देंगे, जो I-- मैं परिवर्तन किए हैं? मैं जाहिरा तौर पर परिवर्तन किए हैं. आप परिवर्तन किए हैं, यह होगी आप एक विस्मयादिबोधक चिह्न डाल सकता है. मैं एक धमाके यह कॉल करने के लिए जा रहा हूँ. तो आप एक प्रतिबंध के लिए रख सकते हैं बस कुछ भी कर बिना छोड़ दिया, या पेट के WQ बचाने के लिए और छोड़ दिया जाएगा. डब्ल्यू सामान्य में तो लिखना है. तो फ़ाइल लिखें. मैं लिखने के लिए और छोड़ सकते हैं. या आप बस हो सकता था QX स्लैम, क्यू बैंग बस परवाह किए बिना वहाँ से बाहर निकलना आपके द्वारा किए गए कि किसी भी परिवर्तन की. 

सब ठीक है, तो अब चलो go-- हम फाइल बना सकते हैं. फ़ाइलों को हटाने शुरू करते हैं. और मैं सिर्फ एक में फेंक देंगे त्वरित नया आदेश, स्पर्श. तो foo स्पर्श. टच बार. बाज स्पर्श करें. मैं रास, अब हम देखते हैं उन फ़ाइलों कि मौजूद. वे पूरी तरह से खाली कर रहे हैं. तो स्पर्श बस एक आसान है एक के रास्ते, [अश्राव्य]. दो, तकनीकी रूप से अभी यह बताने की यह, यह timestamps के अद्यतन करता है. तो आप बना सकते हैं कि किसी भी फाइल है एक टाइमस्टैम्प इसके साथ जुड़े. तो बाज पर बनाया गया था 16:21 सितम्बर 14. यह अगर हां, तो अब 16:22 है मैं फिर से बाज स्पर्श, हम देखते हैं कि बाज था सबसे हाल ही में 16:22 संशोधित. लेकिन अन्यथा मैं लगभग कभी नहीं फाइलों पर timestamps पर दिखेगा. स्पर्श तो, यहाँ मैं बस का उपयोग कर रहा हूँ यह कुछ जल्दी फाइल बनाने के लिए. 

सब ठीक है, तो अब आरएम है हम यहाँ के बारे में परवाह है कि आदेश. और हम बू RM कर सकते हैं. नियमित रूप से खाली फ़ाइल बू हटाने कहो. और हम y टाइप कर सकते हैं, और अब इसे हटा है. आरएम बाज. नियमित रूप से खाली फ़ाइल निकालें बाज और कोई के लिए प्रकार एन. अब इसे हटा नहीं है. तो बार और बाज अभी भी मौजूद हैं. फू चला गया है. GABRIEL: बात कर रखें. आरओबी बोडेन: महान. कष्टप्रद संदेश तो यहाँ, नियमित empty-- हटाने तुम वहाँ नीचे क्या कर रहे हो? नियमित रूप से खाली फ़ाइल निकालें. हम होना नहीं चाहते हैं तो उस संदेश से परेशान, हम इस च में फेंक कर सकते हैं झंडा, और इसलिए कि बल है. मैं च आर एम और अगर अब, यह करने के लिए नहीं जा रहा है आप इस फाइल को हटाना चाहते हैं कहते हैं. यह सिर्फ यह करूँगा. और रास, मैं अब वहाँ बार नहीं दिख रहा है. 

अब जब कि एक संभावित है खतरनाक कमान. यह बहुत बुरा नहीं जाता है. हम एक दूसरे में वापस आता हूँ कैसे यह वास्तव में खतरनाक हो सकता है. और हम कुछ अस्थायी निर्देशिका बनाने दो. mkdir, एक अन्य आदेश. तो mkdir एक आदेश है कि एक निर्देशिका बनाता है. और अब लोकसभा से हम यह अच्छी रोशनी देख नीले अस्थायी निर्देशिका पर प्रकाश डाला. मैं अस्थायी में सीडी कर सकते हैं. और मैं foo के mkdir कर सकते हैं. foo में सीडी. mkdir बार. बार में सीडी. 

तो हम आसानी से प्राप्त कर सकते हैं देखना कुछ बहुत गहरी घोंसले में. अब मैं कैसे एक निर्देशिका को दूर करते हैं? rmdir. तो मैं बस सीधे आरएम करने की कोशिश करते हैं, जैसे हम एक नियमित फाइल के साथ किया था आरएम बार करने जा रहा है बार नहीं निकाल सकते हैं. यह एक निर्देशिका है. एक विशेष आदेश के लिए नहीं है एक तरह से, निर्देशिका हटाने. तो rmdir बार. अब बार चला गया है. 

ठीक है, तो rmdir मैं उपयोग बहुत ज्यादा कभी नहीं. अब चलो being-- कारण यहाँ में एक नियमित रूप से फ़ाइल पट्टी बनाने. तो rmdir बू. rmdir. Foo को दूर करने में विफल. निर्देशिका खाली नहीं. तो आप एक पर निर्देशिका को दूर उपयोग नहीं कर सकते उस में बातें है कि निर्देशिका. 

तो अगर आप कुछ विकल्प हैं. आपको लगता है कि निर्देशिका में जा सकते हैं, हटाने सब कुछ मैन्युअल, और फिर बाहर आ गए और निर्देशिका Rmdir. जाहिर है कि कष्टप्रद लग रहा है. हजारों क्या कर रहे हैं अगर वहाँ में फ़ाइलों की? ठीक है, तुम * आर एम सकता है. हम एक दूसरे में * बारे में बात करेंगे. यह मूल रूप से सब कुछ होता है. लेकिन बेहतर अभी तक, तो आर एम आर. तो RM -r-- का एक बहुत में संदर्भों, -r, पुनरावर्ती मतलब हम के बारे में बात करेंगे जो क्या कई सप्ताहों में पुनरावर्ती साधन. लेकिन यह मूल रूप से पार मतलब इस निर्देशिका की संपूर्णता और सब कुछ हटा दें. 

तो आर एम आर foo कहने जा रहा है निर्देशिका foo में उतर? हां. नियमित रूप से खाली फ़ाइल foo / बार निकालें? हां. निर्देशिका foo निकालें? हां. तो अब फू और सब कुछ भीतर इसे हटा दिया गया है. 

अब जब कि विशेष रूप से कष्टप्रद हो सकता है when-- की, 2 स्पर्श, 1 स्पर्श 3 छूने. फ़ाइलों की एक पूरी गुच्छा हो सकता था. मैं चाहता था, मैं बना सकता है यहाँ में फाइलों के हजारों. और आर एम आर foo के लिए जा रहा है बहुत कष्टप्रद हो. हां, हां, हां, हां, हां, हां. एक बहुत अधिक फाइलों के साथ जल्दी देखो कितनी बार मैं हाँ टाइप करना होगा. खैर, हम सिर्फ हम कैसे कर सकते हैं पहले देखा , हाँ च टाइप करने की जरूरत से छुटकारा. तो mkdir foo सीडी foo के स्पर्श 1 2 3. ठीक है, तो rm- आरएफ foo के लिए जा रहा है आँख बंद करके पूरी तरह foo हटा दें. कोई शीघ्र. कोई कुछ भी. फू चला गया है. 

इसलिए मैं इस का उपयोग करते हैं सभी समय कमान. यही कारण है कि यह एक है, ने कहा कि बहुत ही खतरनाक आदेश, मैं ऐसा कुछ करना क्योंकि अगर यही नहीं, यह आपको संकेत नहीं होगा. वह चला जाएगा. और यह बहुत बार होता है और भी उच्च स्तर सीएस पाठ्यक्रम में. कभी-कभी हम देखेंगे कुछ जहां किसी को मैं गलती से हमारे RM आरएफ-एड मेरे घर कहते हैं निर्देशिका और मेरे पी सेट के सभी चला गया है. और यह विनाशकारी है लेकिन कोई कचरा कर सकते है. कुछ भी नहीं है वहाँ कोई है आप को पुनः प्राप्त करने के लिए. यह सिर्फ चला गया है. होगा भी बदतर rm- आरएफ / की तरह कुछ. तो हम सिर्फ चर्चा की उस रूट निर्देशिका. यह के सभी रखती है आपके सिस्टम पर फ़ाइलों. हालात बहुत गंदा हो जाते हैं आप लोकसभा की तरह चीजों को दूर करते हैं, और सीडी, और उन सब के सब. 

दर्शक: क्या अंतर है RM, आरएफ, और आर एम * बीच आरओबी बोडेन: तो आर एम * - 

एलीसन: सवाल है क्या था RM, आरएफ, और आर एम * बीच का अंतर. 

आरओबी बोडेन: * तो RM. के सभी सामान्य अर्थ में स्टार इस निर्देशिका की सामग्री. अन्य के बारे में सोच की कोशिश कर रहा स्टार दिखा के तरीके. वैसे, आम तौर पर वास्तव में स्टार किसी भी पैटर्न मैच का मतलब है. मैं dog1 नामक एक फाइल है, तो cat2 स्पर्श, cat1 स्पर्श, dog2 स्पर्श. तो रास * 1 cat1 मुद्रित करने के लिए जा रहा है और dog1, कि स्टार भरा जा सकता है क्योंकि वहाँ एक होने की जरूरत है with-- में, लेकिन स्टार बिल्ली या कुत्ते या तो किया जा सकता है. यह एक जंगली कार्ड है. यही कारण है कि मैं देख रहा हूँ शब्द है. वाइल्ड कार्ड. या मैं कुत्ता * रास, और कर सकता है मैं, dog2 dog1 देखने को मिला रहा हूँ. तो उन फ़ाइलों को सूचीबद्ध कर रहे हैं कि उस विशेष पैटर्न मैच. आप इस तरह से लोकसभा का उपयोग कर सकते हैं. 

रास * सितारा कुछ भी मेल खाता है. तो यह सब मुद्रित करने के लिए जा रहा है इस निर्देशिका की सामग्री उनमें से सभी के बाद से मेल खाते हैं. यह कुछ भी मुद्रित करने के लिए नहीं जा रहा है ऊपरी स्तर निर्देशिका में. अगर मैं एक उप निर्देशिका, Foo, और स्पर्श 1 2 3-- तो अब आर एम * सितारा हैं, cat1, cat2, dog1, dog2 हटा दें. Foo को दूर नहीं कर सकते. यह एक निर्देशिका है. 

तो सितारा सभी के लिए फैलता है निर्देशिका में फाइल. तो तकनीकी RM * कह की तरह है आरएम cat1, cat2, dog1, dog2, foo. Rm- आरएफ, जबकि तकनीकी रूप से सितारा होगा लेकिन आर एम -rf--, हम क्या चाहते पूरा मैं इस से बाहर जाना निर्देशिका, rm- आरएफ अस्थायी, कि अस्थायी में जाना जा रहा है और बारी बारी से सब कुछ हटा दें. 

तो स्टार कि में अलग है कि इसलिए इस बात by-- समझा जाता है मैं में चल रहा हूँ कि, इस बात को आदेश के लिए मुझे उत्साह है और फिर क्रियान्वित करने और कर उन्हें, मैं अपने खोल कहते हैं. और इसलिए इस खोल ही एक कार्यक्रम है. और मैं मैं चाहता था में / बिन / बैश चला सकता है. खोल बैश कहा जाता है. और अब हम कुछ नोटिस थोड़ा बदल गया है, और उस के लिए अपनी सेटिंग्स क्योंकि है शैल कुछ अलग हैं. 

लेकिन अब मैं तकनीकी रूप से चल रहा हूँ अपने मूल खोल के भीतर एक खोल, और मैं अब उस खोल से बाहर निकलें, और कर सकते हैं मैं वापस अपने शीर्ष स्तर खोल करने के लिए कर रहा हूँ. कहने का उद्देश्य कि स्टार is--. तो सितारा कुछ है पार्टी की योजना बनाई द्वारा समझा. तो rm- आरएफ, -rf झंडा है बस आरएम द्वारा समझा. यह जानता है जब आपको लगता है कि एक -rf पारित कि आप यह बारी बारी से निकालना चाहते हैं उत्साह के बिना सभी फाइलों. सितारा कुछ समझ में आ रहा है पार्टी की योजना बनाई से कि आप RM * जब कहते हैं, पार्टी की योजना बनाई कहना नहीं जा रहा है अरे RM *, तारा निकालें. बैश * आर एम कहने जा रहा है cat1, cat2, dog1, dog2 हटा दें. यह स्वचालित रूप से विस्तार हो रहा है निर्देशिका में फ़ाइलों के सभी. 

और इसी प्रकार टिल्ड एक और है पार्टी की योजना बनाई समझता है कि प्रतीक. आप सीडी ~, पार्टी की योजना बनाई फैलता कहते हैं अपने घर निर्देशिका करने के लिए कि. अन्य सवालों के जवाब अब तक? ठीक है तो हम जल्दी जा रहा शुरू करने जा रहे हैं. 

टैब पूरा. बस वहाँ से बाहर फेंक देते हैं. बहुत सारे लोग नहीं करते इस मौजूद एहसास. तो मैं सीडी डॉव टाइप करते हैं, तो मैं डाउनलोड में जाना चाहता हूँ. मैं nloads टाइप करने की जरूरत नहीं है. मैं सिर्फ टैब हिट कर सकते हैं. तो यह है कि पहचानता डॉव एक उपसर्ग है कि कुछ भी मेल नहीं खाता इस निर्देशिका में बाकी, तो यह आप के लिए है कि पूरा हो जाएगा. अब मैं प्रवेश कर सकते हैं. 

मैं भी बारी बारी से करते हैं. तो mkdir foo. के foo में चलते हैं. mkdir बार. तो मेरे घर को वापस जा रहा निर्देशिका, मैं डाउनलोड देख सकते हैं. अब फिर से टैब मार स्वचालित रूप से foo में भरने के लिए जा रहा है. यह केवल निर्देशिका है. स्वचालित रूप से, फिर टैब निशाना साधते बार में भरने के लिए जा रहा है. तो अब मैं (डाउनलोड / फू / बार ~) में हूँ. 

इसलिए इस टैब पूरा, जब भी मैं, कार्यालय समय के लिए मिला और मैं खड़ा हूँ किसी के कंधे, और वे RM जा रहे हैं डी-ओ-डब्ल्यू-एन एल-ओ-ए-डी-एस, मैं मर रहा हूँ. बस टैब, टैब, टैब, टैब. तो निश्चित रूप से टैब का इस्तेमाल किया. और इसी तरह अप और लोगों के नीचे, एक बहुत बस उस का क्या हुआ कभी नहीं मारा और नीचे है. यह पिछले के माध्यम से जाना होगा आदेशों, इसलिए यदि आप बस कुछ भाग गया, और आप इसे फिर से चलाना चाहते हैं, आप इसे करने के लिए जब तक बस को पकड़. ठीक. 

तो जल्दी, कुछ अन्य बातें. अस्थायी में वापस जाओ. चलो कुछ फ़ाइलों को पैदा करते हैं. यहाँ तो, मैं अभी कर रहा हूँ कुछ शब्दों की सूची जा रहा. कुत्ता, बिल्ली, म्याऊ. की, मछली कुत्ते करते हैं. तो अब प्रतिनिधि एक बहुत है उपयोगी कमांड कि आप भर में खोज करने के लिए उपयोग एक विशेष पाठ के लिए फ़ाइलें, और तकनीकी रूप से आप वास्तव में क्या कर सकते हैं इसके लिए जटिल अभिव्यक्ति मैच के लिए. 

यहाँ तो, मैं grep हैं, और क्या मैं के लिए खोज करना चाहते हैं? मैं बिल्लियों के लिए खोज कर रहा हूँ कहते हैं, और मैं इन फ़ाइलों के सभी खोज करना चाहते हैं. तो कैसे मैं इन फ़ाइलों के सभी करते हैं? स्टार. तो फाइल एक में, मैं बिल्ली है. मैं शायद हो सकता था यह कुछ बेहतर कहा जाता है, ऐसा लग रहा है क्योंकि लाइन नंबर या कुछ और. लेकिन फाइल एक में मैं बिल्ली के साथ एक लाइन है. फ़ाइल दो में मैं बिल्ली के साथ एक लाइन है. तो अब मैं फ़ाइल एक के अंदर देख सकते हैं और देखना अरे हाँ, उस फ़ाइल बिल्ली था. सूचना दर्ज तीन मिलान नहीं किया गया था बिल्ली वहाँ में नहीं है. मैं म्याऊ के लिए grep कर सकते हैं. केवल दो म्याऊ फ़ाइल. 

तो आप को जोड़ सकते हैं इस, फिर, साथ-r, जो जैसा कि मैंने पहले कहा था अक्सर पुनरावर्ती मतलब है. और इसलिए मैं यहां आ सकते हैं, ग्रेप -r किसी भी उदाहरण के संपादित करते हैं of-- के लिए यह एक बस वहाँ में एक बिल्ली फेंकने के लिए. तो के किसी भी उदाहरण के लिए -r grep इस निर्देशिका भर में बिल्ली. और यह बारी बारी से होगा किसी उपनिर्देशिका खोज. तो बाज में, बिल्ली है. अस्थायी / 2 में, बिल्ली है. और अस्थायी में / बिल्ली 1 है. इसलिए कि फ़ाइलों के भीतर खोज है. 

अब आप भी एक मिल का उपयोग कर सकते हैं. और इसलिए विशेष रूप से के बारे में है लगता है किसी दिए गए नाम के साथ फाइल की तलाश में. तो चलो कुछ अधिक बनाते हैं. के डाउनलोड में चलते हैं. Dog1 स्पर्श करें. Cat2 स्पर्श करें. Cat_dog स्पर्श करें. Catcat स्पर्श करें. 

इसलिए मैं सभी को खोजने के लिए चाहते हैं नाम में कुत्ते के साथ फाइल. तो लगता है, और सबसे लंबे समय तक के लिए मुझे याद है कभी नहीं समय कैसे लगता है अंत में मैं जब तक काम किया, यह तो स्पष्ट कर दिया है कि कुछ पढ़ा. तो स्वतः पुनरावर्ती, लगता है. आप एक -r पारित करने की जरूरत नहीं है. तो डॉट हैं. हम अभी तक डॉट के बारे में बात नहीं की है. हमेशा डॉट डॉट जबकि एक निर्देशिका का मतलब है. डॉट हमेशा वर्तमान निर्देशिका का मतलब है. इसलिए मैं में -r डॉट RM सकता है उसी तरह मैं * -rf RM कर सकते हैं. अंततः वे एक ही बात को पूरा. rm- आरएफ डॉट को दूर करने के लिए जा रहा है पूरे वर्तमान निर्देशिका. 

ठीक है, मैं वहाँ नहीं करना चाहता है जो. लेकिन डॉट लगता है. इसलिए बारी बारी से वर्तमान खोज निर्देशिका, और अब सब कुछ इसके बाद झंडे की एक गुच्छा रहे हैं कि आप वापसी से चीजें बाहर करने के लिए इस्तेमाल करते हैं. तो लगता है डॉट सब कुछ देता है यह वर्तमान निर्देशिका से पा सकते हैं. उन सभी फाइलें हैं बारी बारी से खोज. हम एक दूसरे में उन में से कुछ देखेंगे. 

लेकिन मामले में आप मुझे क्या सोच रहे हैं , कि बहुत कम से कम कमान कश्मीर, इसलिए मैक में मेरे टर्मिनल में यह साफ करता है. नियंत्रण एल आम तौर पर साफ करता है टर्मिनल के किसी भी प्रकार के लिए यह. आप यह भी स्पष्ट टाइप कर सकते हैं. और अगर तुम कभी मिलता है एक अजीब scenario-- में यह मुझे एक जोड़े के लिए हुआ है time-- जहां अपनी सूचनाओं के रंग तुम सब गड़बड़ कर दी, या कर रहे हैं कुछ भी नहीं देख पा रहे हैं आप टाइप कर रहे हैं क्योंकि जब, टाइप किया जा रहा कभी कभी पृष्ठभूमि रंग सेट कर दिया जाता है जैसे अग्रभूमि रंग के रूप में ही और अब आप फोंट नहीं देख सकता. रीसेट बस रीसेट करता है कि कुछ है डिफ़ॉल्ट काले रंग की पृष्ठभूमि को आप, सफेद सामने, या जो कुछ भी आप उन्हें सेट. 

तो हम कहाँ थे? डॉट का पता लगाएं. यह पिछले तो अब सब कुछ बिंदु परिणाम प्रतिबंधित कुछ करने के लिए कि मेल खाता है स्वरूप दी. तो यहाँ मैं खोज करना चाहते हैं नाम बिल्ली के साथ सब कुछ. मैं कुछ भी नहीं मिला. क्यों कि मामला है? खैर, मैं बस के लिए खोज कर रहा हूँ वास्तव में नाम बिल्ली के साथ कुछ. मैं कुछ खोज करना चाहते हैं कि कुछ पैटर्न है, और cat-- उद्धरण तकनीकी रूप से, आवश्यक नहीं कर रहे हैं लेकिन मैं वहाँ में उन्हें फेंक रहा हूँ. तो अब यह catcat क्योंकि पाता कि केवल एक चीज है कि कुछ मनमाना है पैटर्न बिल्ली द्वारा पीछा किया. मैं अब बिल्ली * डाल सकते हैं, और , catcat, cat_dog, cat2 लगता है उन क्योंकि बिल्ली के साथ सभी बातें कर रहे हैं कुछ भी द्वारा पीछा शुरुआत में. आप इस गठजोड़ कर सकते हैं. आप सभी सी फ़ाइलों के लिए खोज करना चाहते हैं आपको लगता है कि, तुम * ग कर सकता है. हम यहाँ blah.c है. इसलिए कि एक खोजने का काम करता है. आप खोज कर सकते हैं. यह झंडे की एक पूरी गुच्छा है आगे प्रतिबंध के लिए. और उन पर एक, के -d कहते हैं. तो पदावनत. ओह, कि मैं क्या चाहता हूँ नहीं है. -d नहीं. टाइप डी. तो डॉट लगता है - प्रकार डी. तो क्या हुआ कि बस किया था मैं खोज रहा हूँ है वर्तमान निर्देशिका में सभी फ़ाइलों के लिए a-- डी के लिए खड़ा के साथ directory-- निर्देशिका प्रकार. यह सभी निर्देशिका रिटर्न वर्तमान निर्देशिका में. और प्रकार एफ सभी नियमित है फ़ाइलों, सभी गैर निर्देशिका. तो है कि सिर्फ एक अन्य तरीकों का उदाहरण आप अन्य खोज सीमित कर सकते हैं फ़ाइल का सिर्फ नाम से. 

यह 30 मिनट हो गया है. अभी भी जा रहा. 

एलीसन: मैं के माध्यम से हवा देंगे. यह ठीक हो जाएगा. 

आरओबी बोडेन: तो कुछ अन्य बातें. अब, विस्मयबोधक चिह्न धमाका. तो यह है कि आम तौर पर means-- ठीक है, चलो एक उदाहरण देखते हैं. तो! च, क्या ऐसा करने जा रहा है? वैसे यह है लगता है दोहराया लगाएं डॉट प्रकार च. क्या! जी के बारे में? वह सिर्फ * -r बिल्ली grep. तो आप को दोहराने के लिए उपयोग कर सकते हैं धमाके एक हाल ही में किया आदेश. मैं प्रकार तो अगर! जीआरई, यह रन की फिर से करने जा रहा है जीआरई सबसे के साथ शुरू हुआ कि आदेशों हाल ही में. 

और अगर आप इन सब देख सकते हैं इतिहास के साथ हासिल है. इसलिए इतिहास. ये सब कर रहे हैं आदेशों मैं आज भाग लिया. और अच्छी तरह से, यह सचमुच नहीं है आज के लिए प्रतिबंधित, लेकिन मैं केवल इस का उपयोग किया है आज के रूप में उपकरण. आईटी के अपने संपूर्णता अपनी पार्टी की योजना बनाई खोल के इतिहास, यह कुछ बिंदु पर कटौती बंद को छोड़कर. दर्शक: यदि आप करते हैं क्या होता है इतिहास [अश्राव्य] आदेश और एक त्रुटि परिणाम में अभी भी the-- प्रिंट होगा 

आरओबी बोडेन: एक है हाँ, अगर इन commands-- में से एक में त्रुटि इसलिए हम कहते हैं, कि एक है त्रुटि आदेश नहीं मिला है. फिर भी इतिहास में दिखाई देता है. ठीक है. कुछ भी पर अन्य प्रश्न? इसलिए कि धमाके है. 

अब, वास्तव में उपयोगी आदेश, आदमी. कि आप देता है तो किसी दिए गए आदेश के लिए मार्गदर्शन. इसलिए तो, चलो आदमी रास कहते हैं कि यह मुझे रास दिखा रहा है. यह निर्देशिका सामग्री को सूचीबद्ध करता है. मैं देखना है कि जहां और यह है वहाँ मौजूद है कि इन विभिन्न झंडे हैं. इसलिए हम चाहते हैं कि -l मौजूद रास देखें हम थे कि पढ़ने के लिए. रास -l मुझे इस पूरी सूची देता है फ़ाइल का मालिक है जो साथ निर्देशिका, फ़ाइल का आकार, संशोधित टाइमस्टैम्प. तो रास ए एक और एक है कि तुम हो सकता है वास्तव में कुछ हद तक अक्सर इस्तेमाल करते हैं. मेरी सबसे आम झंडा यह पिछले लोकसभा अल है. 

तो ए, वहाँ एक बहुत नोटिस सिर्फ लोकसभा से अधिक फ़ाइलों. ए एल एस. इन सभी फाइलों के साथ आम में क्या है? वे एक बिंदु के साथ शुरू करते हैं. तो यह लिनक्स में एक सम्मेलन कि है एक डॉट के साथ शुरू है कि फ़ाइलें छुपी हुई हैं. तो यह सिर्फ मतलब है कि जब हम बस सीधे रास, या हम प्रयोग कर इस निर्देशिका खोज कर रहे हैं खोजक बराबर, या Windows एक्सप्लोरर समकक्ष, हम कि इन डॉट फाइलों को देखने के लिए नहीं करना चाहती. वे सिर्फ बातों के मद्देनजर अपवित्र. इसलिए वे छुपा रहे हैं आप जब तक विशेष रूप से -एक तरह कुछ के साथ उन्हें अनुरोध करता हूँ. तो मैं .local में सीडी कर सकते हैं, और मैं देख रहा हूँ कि अपने आप में एक निर्देशिका के साथ है कि एक साझा निर्देशिका, और आवेदन पत्र, और ब्ला ब्ला ब्ला. तो, वे सिर्फ छिपा रहे फ़ाइलों डॉट. 

, ताकि अन्य महत्वपूर्ण लोगों ठीक है. मैं मैं छोड़ सकते हैं एक जोड़ी है. के बारे में चलो बस जल्दी असली बात करते हैं फ़ाइल पुर्ननिर्देशन बातें. तो एक पूरे परिसर श्रृंखला वहाँ है बातों के आप इन के साथ क्या कर सकते हैं, लेकिन सिर्फ उन्हें देखने के लिए, गूंज, हम कहते हैं. एक अन्य आदेश. सच में मूक आदेश. आखिर यह है कि मैं यह बताने के लिए क्या प्रिंट है. तो हैलो गूंज. यह सिर्फ स्क्रीन को नमस्ते गूँजती. हैलो वर्ल्ड. इकोज हैलो दुनिया. 

तो एक आदेश या एक पार्टी की योजना बनाई समझता है कि प्रतीक प्रतीक की तुलना में यह अधिक से अधिक है, और एक फ़ाइल है कि प्रतीक के लिए उत्पादन है. मैं उत्पादन इस के लिए तो अगर Foo, अब एक फ़ाइल नहीं है , foo बुलाया के अंदर जो नमस्ते दुनिया है. तो मैं गूंज जब कि नोटिस हैलो foo में दुनिया पाइप, यह नमस्ते विश्व गूंज नहीं था. इसके बजाय यह फाइल foo में डाल दिया था. और एक अन्य आदेश सिर्फ , आप पर बिल्ली फेंक करने के लिए. यही कारण है कि अभी पूरी तरह से करने के लिए एक आसान तरीका है फाइल की सामग्री की सूची मैं खोलने की जरूरत नहीं है कि इतना एक पाठ संपादक यह देखने के लिए. की तो सामग्री foo फ़ाइल हैलो दुनिया हैं. और मैं बिल्ली blah.c सकता सामग्री इस हैं. 

फिर, ये नहीं है कि आदेशों हैं आप उन सब को याद है की उम्मीद है. विचार है कि आप उन्हें देखा है है. शायद तुम पर काम कर रहे हैं कुछ, और आप कर रहे हैं जैसे मैं इस फ़ाइल को खोलने के बीमार हूँ. मुझे लगता है मैं सिर्फ देखने के लिए कर सके असली जल्दी सामग्री पर. फिर आप यह कर सकते थे वापस देखो और ओह मैं कहना जैसे कुछ याद कि मौजूद है, और यह बिल्ली है. 

इसलिए कि एक फाइल करने के लिए जा रहा है. अब वास्तव में किसी भी अच्छा नहीं है अभी तक एक फ़ाइल से पढ़ने का उदाहरण. लेता है कि कुछ क्या है में मानक से कुछ और? किसी भी साधारण लिनक्स कमान? हम एक जोड़े में, यह करने के लिए मिलता है सप्ताह piece-- अच्छी तरह से सभी, इस सप्ताह आप एक टुकड़ा है, जहां आपके पास उपयोगकर्ता से इनपुट लेने लगते हैं. और तो आमतौर पर आप टाइप कीबोर्ड पर कि इनपुट. इसके बजाय कि टाइपिंग की कीबोर्ड पर इनपुट, एक फ़ाइल से में आप कर सकते हैं बजाय पाइप जब आप ऐसा करेंगे कि मारियो, ./mario, तो किसी भी फ़ाइल से में पाइप, और कि मारियो कार्यक्रम चलाने जा रहा है. पर इनपुट की उम्मीद नहीं कीबोर्ड, बजाय यह है सिर्फ पढ़ने के लिए जा रहा foo फ़ाइल से लाइनों. 

Foo में डालता से तो अधिक से अधिक foo फ़ाइल, और कम से कम foo foo फ़ाइल से सामान लेता है और कि का उपयोग करता है इस कार्यक्रम के लिए निवेश के रूप में. और सिर्फ यह देखने के लिए, हम भी गूंज सकता है foo बार बाज, और फिर एक के बजाय अधिक से अधिक, के foo में दो करते हैं. कि क्या करता है? यह सिर्फ फ़ाइल को जोड़ता है. मैं में ब्ला गूंज करते हैं तो बजाय नोटिस फू और फिर बिल्ली Foo, यह सिर्फ बकवास है. एक फाइल करने के लिए तो जब आप आउटपुट, यह पूरी तरह से है कि फाइल पर लिख देगा. तुम सिर्फ संलग्न करना चाहते हैं, [डबल? ग्रेडर. ?] 

और पाइप पिछले है. पाइप और अधिक जटिल, जहां हो जाता है यह एक आदेश का उत्पादन लेता है और अगले आदेश में यह खिलाती है. तो कुछ आम बात है, इतिहास. तो, ऊ, मैं यह देखने के लिए नहीं करना चाहती. मुझे अपने इतिहास में सभी कमानों को दिखाएँ मैं grep-एड जहां कुछ के लिए. नहीं, वह भ्रामक है. मुझे मैं खोजने जहां सभी कमानों को दिखाएँ. मैं हमेशा से भाग गया आदेशों लगता है. 

इसलिए इतिहास. अब इतिहास outputs के आदेशों की इस सूची स्क्रीन, लेकिन मैं नहीं करना चाहता स्क्रीन करने के लिए यह उत्पादन. इसके बजाय मैं ग्रेप में पाइप यह करने के लिए जा रहा हूँ. तो मिल के सभी उदाहरणों के लिए grep करते हैं. तो अब बजाय ग्रेप लेने की इनपुट, बजाय of-- ग्रेप रूप input-- हम कर रहे हैं संभाल करने में सक्षम है थोड़ा अलग यहाँ ग्रेप का उपयोग. तो बजाय की सूची टाइपिंग बातें हम के लिए खोज करना चाहता था और ग्रेप इनपुट के रूप में ले रहा है. तो मैं बस ग्रेप, यह खोज करते हैं मुझे चीजों को टाइप करने के लिए इंतजार कर रहा है. तो बिल्ली हैलो लगता है. हैलो. पता लगाएं. मुझे मिल टाइप हर बार नोटिस यह मुझे मिल टाइप किया कि पहचानता है. तो बजाय इस बात का होगा खोजने के लिए खोज फ़ाइलें. 

इसलिए इतिहास अब जा रहा है उत्पादन सभी आदेशों की एक सूची. हम चाहते हैं कि उत्पादन डाल रहे हैं, और हम यह grep को खिला रहे हैं और तो यह बाहर थूकना है खोजने के सभी उदाहरणों. कारण है कि मैं यह भ्रमित किया जा कहा था कि यह अभी भी भ्रामक है I-- अगर है. मैं ग्रेप के लिए grep हैं. इसे और हमेशा सुंदर का नोटिस कमांड मैं दिखा बस उस आदेश क्योंकि भागा खुद के अंदर ग्रेप है. 

ठीक है, तो कुछ भी पर कोई प्रश्न? और मैं इस बिंदु पर इस पर स्थानांतरित करेंगे. उम्मीद है कि यह एक अच्छा है सभी आदेशों का अवलोकन आप की जरूरत नहीं है कि याद है, लेकिन इन श्रृंगार की एक ठोस 95% क्या मैं कमांड लाइन पर करते हैं. यह भी ध्यान में रखना है कि कमांड लाइन ही है, पार्टी की योजना बनाई, एक प्रोग्रामिंग भाषा है और तो क्या आप इसे करने के लिए नीचे लाने के लिए जब वास्तव में जटिल बातें करने के लिए चाहते हो सकता है. और तो यह की तरह बातें है छोरों, और आईएफएस, और उन सभी के आप करने के लिए इस्तेमाल किया पाने के लिए जा रहे हैं कि अपने प्रोग्रामिंग भाषा के साथ. लेकिन उस पार है इस खंड के दायरे. ठीक है, तो कोई सवाल? एलीसन: कोई नहीं? GABRIEL: आप to-- जा रहे हैं एलीसन: मैं यह कर सकता खान पर अगर आप चाहते हैं. हम देखते हैं क्या होता कर सकते हैं. आरओबी बोडेन: एलीसन के लिए बंद. एलीसन: वू. तुम, रोब का पालन करने के लिए एक कठिन अधिनियम रहे हैं. आप मुझे आप के साथ स्विच करना चाहते हैं? या फिर आप ठीक है, मिल गया. मैं कोशिश करते हैं और नहीं जा रहा हूँ काफी वहाँ के रूप में लंबा हो. इस करेंगे, तो देखते हैं मैं यह करना चाहते हैं जिस तरह से काम करते हैं. शायद? Haha! हां. 

तो मैं बस बहुत जल्दी जाने के लिए जा रहा हूँ चर, छोरों, सशर्त, के माध्यम से, और संकलक पर एक छोटा सा. आप में सवाल है, तो किसी भी समय, मुझे बंद करो. इन लोगों को दोहराने के लिए मुझे याद दिलाना होगा मैं भूल जाने की स्थिति में अपने प्रश्न, लेकिन बुरा भी नहीं होना चाहिए. 

चर तो, हाँ. हम में से कोई नहीं है आपकी यहां स्क्रैच टुकड़े. मैं अगर, आप में से ज्यादातर यकीन आप खेल के कुछ प्रकार था आप स्क्रैच से बनाए गए, तुम था स्कोर की तरह कुछ का ट्रैक रखने के लिए, या समय, या ऐसा कुछ. उन चमकीले नारंगी तो हम वहाँ देखना है कि टुकड़े के सिर्फ खरोंच रूप है चर, और आप निश्चित रूप से होगा चर का उपयोग हो अपने कार्यक्रम के दौरान. अगर तुम नहीं हो, मैं वास्तव में नहीं हूँ सुनिश्चित करें कि आप क्या कर रहे हैं. 

लेकिन वैसे भी, बड़ी बात, चर को परिभाषित. सी के साथ हर चर है एक प्रकार की घोषणा की है, तो मैं आपको एक बहुत दिया शीर्ष पर सामान्य से एक. तो तुम होगा अपने टाइप करें और उसके बाद जो कुछ भी आप अपने चर कॉल करने के लिए तय है. इस मामले में, प्रकार में तो अपने चर सूची में. 

हम तीन उदाहरण है. कुछ ग्रेड की चार, क्या है जो एक एक, की मैं आप सभी चाहते हैं यकीन इस वर्ग में पाने के लिए. आप एक से अधिक परिभाषित कर सकते हैं एक लाइन पर चर जब तक वे सभी एक ही प्रकार के कर रहे हैं, वहाँ हमारी दूसरा उदाहरण जो है आप तीन है जहां चर, एक्स, वाई, जेड. वे सभी मंगाई हैं. और फिर आप यह आखिरी में, भी कर सकते हैं पूर्णांक स्कोर और संख्या के साथ उदाहरण टीमों में से, आप कर सकते हैं उन्हें वहीं इनिशियलाइज़. 

जहां मध्य उदाहरण में तो हम बस, एक्स, वाई, जेड की नाव है उन अभी तक प्रारंभ नहीं कर रहे हैं. वे कोई मूल्य नहीं है. या वे कचरा मान हैं. और आप कोशिश करते हैं और उन्हें इस्तेमाल करते हैं, संकलक तुम पर चिल्लाना होगा. आप दोनों की घोषणा करने के लिए है और आपके चर को प्रारंभ. यह पिछले एक में तो, हम दोनों कर रहे हैं. हम चर घोषणा कर रहे हैं के स्कोर और टीमों की संख्या, और हम उन्हें आरंभ दे रहे हैं 7 और 4 के लिए उन्हें अपने प्रारंभिक मान क्रमशः. कूल. हर कोई अच्छा? बहुत बढ़िया. 

ठीक है, तो कुछ सम्मेलनों. तुम लोगों को पढ़ा है शैली 50 के माध्यम से, इन हम के लिए करना चाहते हैं कि सिर्फ बातें कर रहे हैं आप अपनी शैली में लागू करने के लिए. तो सार्थक नाम. आप चीजों को बुला शुरू सिर्फ एक्स, वाई, जेड, विशेष रूप से आप लंबे में शामिल होने के रूप में कार्यक्रमों, आप कर रहे हैं शायद करने के लिए जा रहा अपने आप को भ्रमित करने के लिए और हो तरह की चर्चा करते हुए इस चर क्या है. मैं इसका क्या मतलब पता नहीं है. 

यह पकड़ करने के लिए होती है तो अगर एक स्कोर, स्कोर कहते हैं. यह कुछ जवाब पकड़ के लिए होती है तो या, नतीजा यह है कि जैसे एक नाम दे. छोरों के लिए, जो हम करेंगे अगली स्लाइड में में मिलता है, एक पत्र चर ठीक हैं. आरओबी बोडेन: मैं, जम्मू, और कश्मीर हैं छोरों के लिए के लिए सिर्फ सम्मेलनों हर कोई उन्हें उम्मीद है कि जम्मू, कश्मीर, मैं बुलाया जाएगा. तुम्हें पता है मैं पंक्ति देख them-- कॉल कर सकते हैं स्तंभ या पंक्ति कॉल कभी कभी दो नेस्टेड छोरों, और के लिए वह भी प्रकार का मानक है. लेकिन मैं और जम्मू पूरी तरह से समझ में आ जाता है. 

एलीसन: हाँ, मैं और जम्मू तुम पूरी तरह से ठीक हैं. स्पष्टता की खातिर तरह के लिए आपके पी सेट में से कुछ में, यह अधिक है समझ बनाने के लिए हो सकता है वहाँ बस में वर्णनात्मक बातें इसे का ट्रैक रखने के लिए. लेकिन मैं मैं, जम्मू, और मुझे लगता है कि कश्मीर लगता है हम में से अधिकांश सब उपयोग. 

आरओबी बोडेन: इन के साथ सम्मेलनों, तो शैली महत्वपूर्ण है. यह चार कुल्हाड़ियों से एक है जिस पर आप वर्गीकृत कर रहे हैं, और यह बस पर जाने के लिए इतना आसान है आपके पी अंत में तय करने और यह सुनिश्चित कर लें शैलीगत गलतियों वहाँ नहीं कर रहे हैं. तो आप सही ढंग से tabbing रहे हैं सुनिश्चित करें. अपने चर नाम हैं सुनिश्चित करें. कुछ टिप्पणियाँ छोड़ दो. यह उन अंक हासिल करना बहुत आसान है. आप के बारे में सोचने की जरूरत नहीं है आदेश में कुछ भी उन अंक पाने के लिए. आप कुछ भी पता लगाने की जरूरत नहीं है. यह सिर्फ यह सुंदर लग रही है. 

एलीसन: वास्तव में, हम , शैली 50 है जो आप खिलवाड़ कर रहे हैं जहां आपको बता देगा आप शैली पर खिलवाड़ कर रहे हैं अप और आपको बता देगा कि क्या वास्तव में आप तय की जरूरत है और कैसे आप इसे ठीक करने की जरूरत है. यह उल्लेख करने के लिए भी सिर्फ अच्छा है कि यह पाठ्यक्रम नीति है आप कार्यालय में कर रहे हैं कि घंटे और अपने कोड एक गड़बड़ है, हम मदद करने से मना कर सकते हैं आप यह अच्छा लग रहा है जब तक. तो सही बाहर शुरू, संगत शैली रखना, आप भी बस बनाने के लिए जा रहे हैं जब आपके जीवन एक पूरी बहुत आसान आप डिबग के माध्यम से जाने की कोशिश कर रहे हैं. आप यह पता लगाने की कोशिश कर रहे हैं आप एक घुंघराले ब्रेस याद कर रहे हैं, जहां और वे आप कर रहे हैं, सभी जगह हैं सिर्फ कठिन अपने जीवन बना रही है. शैली के अनुरूप होना. मैं इसे अपने जीवन को आसान बना देंगे वादा करता हूँ. यह हमारे जीवन को आसान बना देंगे. हर कोई बहुत खुश हो जाएगा. और कहा कि आप क्या चाहते हैं. GABRIEL: अपने ग्रेड अधिक हो जाएगा. एलीसन: हाँ, और अपने ग्रेड. अपने TF आप की तरह है, अनुकूल हो जाता है. सब ठीक है, और फिर बस यहाँ दूसरी बात. लगातार initializations. हमने देखा तो, जैसा कि आप घोषणा कर सकते हैं और चीजों को प्रारंभ. एक ही लाइन पर कई चर. हम आप नहीं चाहेंगे एक बात ऐसा करने के लिए कुछ चर घोषित करने के लिए है और उसी पर उन्हें प्रारंभ नहीं आप दूसरों को आरंभ कर रहे हैं कि लाइन. 

इसलिए मामले में की गई है कि जो भी कोई मतलब नहीं है, हम यहां उदाहरण है जहां हम ints की घोषणा कर रहे हैं तिमाहियों के चर में ऑफ डाइम्स और पैसे, लेकिन क्वार्टर और पैसे कोई प्रारंभिक मूल्य है. हम उन्हें प्रारंभ नहीं किया है, लेकिन वहाँ बीच में सही हम पहले से ही ऑफ डाइम्स 0 करने के लिए प्रारंभ. तो या तो क्वार्टर, ऑफ डाइम्स, पैसे नहीं है. या तिमाहियों 0 के बराबर करते हैं. ऑफ डाइम्स 0 के बराबर. पैसे 0 के बराबर, या जो कुछ भी उन प्रारंभिक मान रहे हैं. 

शैली के साथ बड़ी बात है, लगातार हो. जब संदेह में, लगातार हो. लेकिन हमारे शैली गाइड का पालन करें. कूल. हर कोई वहाँ अच्छा? 

दर्शक: शैली पुस्तिका कहां है? एलीसन: शैली गाइड वेबसाइट क्या है on-- है? 

GABRIEL: मैं यह manual.cs50.net/-- लगता है एलीसन: शैली? 

GABRIEL: शैली. हां. 

एलीसन: हाँ. शैली 50 है जहां तो, सवाल. manual.cs50.net/style. हाँ? 

दर्शक: हम परिभाषित कर रहे हैं चर, यह ठीक है हम [अश्राव्य] की तरह डाल की तरह पूर्णांक स्कोर और फिर पूर्णांक लक्ष्य. तो आप अब हम है कि कहेंगे उन्हें एक साथ परिभाषित करने के लिए मिल गया? 

एलीसन: तो चाहिए, पर सवाल आप अनावश्यक कोड है जब आप परिभाषित कर रहे हैं ऐसे पूर्णांक स्कोर के रूप में चर और अगली पंक्ति पूर्णांक खेल पर? आरओबी बोडेन: निश्चित रूप से कर रहे हैं निरर्थक कोड बुरा है, जहां के मामले हैं. मैं विचार नहीं होगा कि अनावश्यक कोड. मैं लगभग कई की घोषणा कभी नहीं कभी एक ही लाइन पर चर. अगर कुछ और, इसकी वजह यह है आमतौर पर मैं टिप्पणी किसी प्रकार छोड़ चर के लिए है क्या समझा. तो मैं पूर्णांक स्कोर स्लैश स्लैश कहूँगा. जो कुछ का ट्रैक रखता है. कुल स्लैश स्लैश में. तो यह है कि रास्ते में ज्यादा कमाई है एक ही लाइन पर डाल करने के लिए. मैं सिर्फ एक ही लाइन पर डाल कभी नहीं. 

एलीसन: मुझे लगता है जैसे यह है इस बिंदु पर निजी प्राथमिकता. 

दर्शक: उस के लिए जाना है बहुत छोरों और सामान के लिए? आरओबी बोडेन: अंदर की तरह? पूर्णांक जैसे मैं 0 अल्पविराम के बराबर होती है लंबाई कुछ बराबर होती है? आप एक विकल्प नहीं है कि. छोरों के लिए इनीसीयलाइजेसन part-- तो आप ही देखा हो सकता है पूर्णांक मैं मैं कम 0 अर्धविराम के बराबर होती है जो कुछ अर्धविराम मैं प्लस प्लस से. यही पूर्णांक मैं, 0 के बराबर होती है तकनीकी रूप से आप भी कर सकते हैं हम पहले देखा था कि क्या करना है अल्पविराम वाक्य रचना के साथ. पूर्णांक मैं 0 अल्पविराम जम्मू के बराबर होती है 3 अल्पविराम कश्मीर 5 बराबर होती है. आप विभाजित करने के लिए एक विकल्प नहीं है कई पंक्तियों में कि ऊपर, और कहा कि मानक है. यह देखकर ठीक नहीं है. एलीसन: बहुत बढ़िया. खैर, छोरों में सुविधाजनक Segue. तो हाँ, यहाँ हम कुछ उदाहरण है की तुम लोग स्क्रैच में देखा कि छोरों. और हां इन सब बस सी में निर्मित किया जा सकता है और वे मूल रूप से आप की अनुमति कोड के कुछ खंड दोहराने के लिए एक निश्चित शर्त जब तक जो हम करेंगे, पूरी की जाती है बात करने के बाद सही में मिलता है के बारे में सशर्त, साथ छोरों. 

इसलिए हम तीन मुख्य प्रकार हैं. जबकि, और करते हैं, जबकि, के लिए जो हम सब ठीक है अब के माध्यम से जाना जाएगा. तो पहले एक छोरों के लिए है. कुछ हालत के लिए तो, कोड के इस ब्लॉक को अंजाम. हम इस शांत छोटे है तल पर यहाँ आरेख. लेकिन मूल रूप से आप में है आपके लिए, पहली पंक्ति है कि, आप करने जा रहे हैं आपके चर को प्रारंभ. 

हम के बारे में बात की तो, जैसा कि मैं है 0 या मैं के बराबर 10 के बराबर है. आपको लगता है कि जो भी जरूरत चर यह होना करने के लिए वहाँ प्रारंभ की जा करने के लिए जा रहा है, घोषित और कुछ मूल्य करने के लिए प्रारंभ. तो फिर हम कुछ है शर्त यह है कि जा रहा है जाँच होने के लिए हमारे कुछ के खिलाफ चर. विशिष्ट मामले जहां मामले में तो हो सकता है आप कोड के इस खंड चाहते हैं पांच बार निष्पादित करने के लिए. इसलिए हम मैं 0 के बराबर होती है पूर्णांक है, और हम चाहते हैं मैं 5 से कम है जब इसे देखना चाहते हैं. तो उस हालत अभी है हर बार है कि जाँच के लिए जा रहा. शर्त यह है कि यदि सच करने के लिए मूल्यांकन करता है, यह बात है ठीक है कि जो कोड, चला जा रहा इस छोटे चित्र क्या दिखा रहा है. 

और तो यह है कि यह कार्यान्वित. यह एक चर अद्यतन करता है, हम क्या देख रहा है जो हमारे लिए के पिछले भाग में वहाँ पाश आरंभीकरण. तो यह सिर्फ यह कर रखेंगे कि शर्त पूरी नहीं होने तक, और फिर यह बाहर निकल जाएगा पाश और जारी अपने कार्यक्रम के बाकी के साथ पर घूम रहा है. हर कोई वहाँ अच्छा? कूल. 

यहाँ तो बहुत समान एक उदाहरण है कुछ करने के लिए मैं बस के बारे में बात की थी. तो हम बस मुद्रित करना चाहते हैं इस 10 बार CS50 है. तो आप हमारे पास यहाँ देखें हमारे लिए, और फिर हम चर को प्रारंभ मैं 0 के बराबर हो. हमारी हालत जाँच कर रहा है यह 10 से भी कम है कि. जब हम पहले तो सच का मूल्यांकन शुरू, और फिर हमारे चर अद्यतन करता है यह वास्तव में कार्यान्वित कि हर बार और इस बाहर प्रिंट CS50 है. और 10 बार के बाद समाप्त होगा. कूल. 

छोरों आगे हैं, जबकि तो. आप यहाँ देख और, जैसा कि हम अभी है कुछ इस condition-- सवाल करते हुए? 

दर्शक: मैं कैसे कूद कर सकते हैं वास्तव में न सिर्फ एक संख्या है, लेकिन दो नंबर [अश्राव्य] मैं प्लस प्लस प्लस? 

एलीसन: तो सवाल आप कैसे कर सकते था एक से अधिक द्वारा अपने चर अद्यतन एक समय में. तो मैं अधिक से अधिक होगा एक-एक समय के द्वारा अद्यतन. आपके द्वारा यह अद्यतन करना चाहता था दो, तुम मुझे प्लस 2 के बराबर होती कर सकता है. 

आरओबी बोडेन: आप को देखा है प्लस अभी तक व्याख्यान में बराबर होती है? 

दर्शक: [अश्राव्य]. 

एलीसन: यह प्रभावी है एक ही बात मैं मैं प्लस 2 के बराबर होती है. तो यह ले जा रहा है और दोनों एक समय से यह अद्यतन करें. इसके अलावा अभी कुछ है बराबरी हम वाक्यात्मक चीनी कहते हैं. आरओबी बोडेन: हाँ, उन लोगों के लिए मौजूद बहुत ज्यादा सभी अंकगणितीय ऑपरेटर. बराबर करने के लिए तो मैं बार संख्या दोगुना होगा. जम्मू डिवाइड 3 ही है के बराबर होती है जम्मू के रूप में 3 से विभाजित जम्मू के बराबर होती है. 

एलीसन: या शून्य से 2 होगा बराबर होती है दो-दो बार मैं घटती. आरओबी बोडेन: यहां तक ​​कि आधुनिक बराबर होती है. आप बिटवाइस ऑपरेटरों को नहीं देखा है, लेकिन, कैरट के बराबर होती है और एम्परसेंड के बराबर होती है उन सभी के लिए मौजूद हैं. 

एलीसन: कई बार तो एक बहुत कुछ है, विशेष रूप से पी सेट की अपनी पहली जोड़ी के साथ, आप शायद द्वारा incrementing हो जाएगा एक, तो मैं प्लस प्लस, जम्मू प्लस प्लस आप जा रहे हैं सब बातें कर रहे हैं आम तौर पर उपयोग किया जाना है. लेकिन उस अद्यतन स्थिति है पूरी तरह से अपने नियंत्रण में. आप जो कुछ भी वेतन वृद्धि करके इसे अपडेट कर सकते हैं या जो भी रास्ते में आप का फैसला. शायद आप भी इसे देखना चाहते हैं कभी कभी एक यादृच्छिक संख्या. लेकिन हाँ, के बहुत सारे हैं चीजें आप उस के साथ क्या कर सकते हैं. आप मुझे अधिक से अधिक तक ही सीमित नहीं रहे. 

आरओबी बोडेन: बस आप इतना यह भी, यह मौजूद है पता एक और रूप में मौजूद है, प्लस प्लस मैं. क्या आपने कभी ऑनलाइन खोज कर रहे हैं तो अगर और देखना होगा प्लस प्लस मैं, बहुत ज्यादा एक ही बात का मतलब है. एलीसन: कूल. अच्छा है? बहुत बढ़िया. छोरों इसलिए जब. बहुत समान. आप कुछ शर्त है. मुख्य बात करने के लिए नोटिस यहाँ के बजाय होने का है तीन अलग-अलग हिस्सों स्थापित करने के लिए, हम एक है. हम सिर्फ कुछ शर्त है कि जाँच की जा रही है. और उसी तरह, जब तक शर्त यह है कि, सच करने के लिए मूल्यांकन अपने कोड चला जा रहा है. और यह गलत है, तो यह , इस कदम को समाप्त कर देगा अपने कार्यक्रम के अगले भाग पर. तो इस तरह की क्या like-- है जाँच का एक अच्छा उदाहरण कुछ सामान्य स्थिति के लिए? GABRIEL: सत्य है. एलीसन: तुम सच जबकि कर सकता है. खैर, 1 1 के बराबर है. 

आरओबी बोडेन: आप while-- कर सकते हैं बस के बजाय पाश के लिए एक का उपयोग कर के, आप हमेशा एक कोड कर सकते हैं थोड़ी देर के पाश में पाश के लिए, इसलिए मैं 0 से अधिक या मैं कम से कम 10 है. 

एलीसन: बहुत बढ़िया. और फिर हम क्या है छोरों, जो है, जबकि उपयोगकर्ता सत्यापन, जहां के लिए महान है आप से कुछ प्राप्त करना चाहते हैं यह वैध है अगर आपके उपयोगकर्ता, देखते हैं, और फिर वहाँ से जारी है. तो पता करने के लिए चीजों में से एक एक साथ है इसे लागू करने जा रहा है कि है, जबकि करते हैं, और फिर इसे फिर से लागू होगा इस शर्त पूरी होती है. 

तो शायद सबसे अच्छा तरीका यह करने के लिए यहाँ सिर्फ एक उदाहरण देख रहा है. मैं सिर्फ उल्लेख किया है, उपयोगकर्ता तो मान्यता वास्तव में useful-- है या ऐसा whiles वास्तव में कर रहे हैं उपयोगकर्ता सत्यापन के साथ उपयोगी. तो यह सिर्फ जा रहा है कुछ उपयोगकर्ता को फिर से संकेत करने के लिए वे एक सकारात्मक नंबर दर्ज तक, आपके पी सेट के लिए उपयोगी हो सकता है जो इस सप्ताह. और इसलिए इस मामले में, जब हम शुरू में इस कार्यक्रम को चलाने, यह मुद्रित करने के लिए जा रहा है एक सकारात्मक संख्या दर्ज करें. यह कुछ हो रहा है उपयोगकर्ता से इनपुट, और फिर यह जाँच करने के लिए जा रहा है शर्त के खिलाफ है कि इनपुट कि आप इसके लिए निर्धारित किया है. 

तो इस मामले में यह जांच करने के लिए जा रहा है. यह ठीक है, कहने के लिए जा रहा है हमारे इनपुट नकारात्मक है, या यह 0 या नकारात्मक, है जो अमान्य होगा. तो फिर यह फिर से शीघ्र होगा. प्रश्न? 

दर्शक: एक के रूप में तो यह एक ही है पाश जबकि आप सिर्फ इतना है कि कोड की नकल की अगर और यह [अश्राव्य] पाश जबकि रखा है? 

एलीसन: होगा सवाल था तो यह सिर्फ थोड़ी देर के रूप में ही किया पाश हम थे बस ऊपर जबकि पाश की नकल. तो इस मामले में, अपने समय के पाश है पहली स्थिति की जाँच के लिए जा रहा. हम कोशिश की, इस मामले में तो अगर बस थोड़ी देर के पाश के रूप में लिखने के लिए, यह जबकि कहेंगे इनपुट कम से कम एक है. लेकिन हम इसके लिए एक इनपुट नहीं है. 

दर्शक: यदि आप [अश्राव्य] पाश इस कोड सहित जबकि, लेकिन फिर आप कोड coped भी, जबकि पाश से ऊपर. तुम सिर्फ इस कोड था [अश्राव्य] पाश है. एलीसन: यह होगा एक ही बात है, हाँ. तो तुम सिर्फ write-- सकता है बजाय एक do-- हाँ होने की. GABRIEL: लेकिन वह और अधिक सुंदर है. एलीसन: हाँ, यह और अधिक सुंदर है. तुम, डिजाइन और whatnot में प्राप्त कर सकते हैं लेकिन हाँ, आप पूरी तरह से ऐसा कर सकते हैं. किसी भी अन्य प्रश्न? शांत, ठीक है. 

तो हम स्थितियों के बारे में बहुत बात की है हम हैं कि इन सभी छोरों के साथ, इसलिए हम वास्तव में हो रही बूलियन अभिव्यक्ति में स्थितियों. फिर, तुम सी में इन का उपयोग करें, तो बस की तरह संक्रमण अधिक ग्राफिक इंटरफ़ेस से वास्तव में कोडिंग के लिए. 

कूल, इतना बड़ा एक, यदि. मूल रूप से बस शुरू करने के लिए अनुमति देता है हमारे कार्यक्रम और जांच में कुछ तर्क व्यवस्था की स्थिति. इस मामले में तो, ठीक है, 0 से एन बड़ा है? आप इस पर अमल कर सकते हैं तो हाँ यह है. यह सिर्फ कुछ जाँच कर रहा है आप है कि हालत मुझे लगता है हम सभी कर रहे हैं लगता है, जो सेट स्थितियों की जाँच के साथ आराम से. कूल. तो अपने अन्य एक है यदि नहीं तो, अगर यह सच है तो आप, ठीक कह सकता यह पहली बात करते हैं. अन्यथा मैं करने के लिए आप चाहते हैं डिफ़ॉल्ट और कुछ और ही है. इस मामले में की तरह, आप या तो एक पिकअप सकारात्मक संख्या या एक नकारात्मक संख्या. आप केवल दो विकल्प हैं. आप इसे चाहे अमल करने की जरूरत है क्या की अपने उपयोगकर्ता आदानों. तो आप अच्छी तरह से कह सकते हैं यह 0 से अधिक है? कूल. एक सकारात्मक संख्या प्रिंट. यदि ऐसा नहीं है, एक नकारात्मक मुद्रित. हर कोई अच्छा? 

और फिर पहचान करने के लिए एक बात है यदि शर्त पूरी होती है कि, बाकी भी अमल कभी नहीं होगा. केवल इन में से एक होगा एक समय पर निष्पादित. इसलिए यह एक व्यापार बंद है. आप दोनों को नहीं मिलता है. आप या तो पहली शर्त है. आप या तो अगर है वरना, दोनों नहीं. फिर बातें जो कर सकते हैं और भी जटिल, , आप अगर ऐसा कर सकते हैं क्योंकि यह किसी और, और तो और. इस मामले में तो, हम तीन शर्तें हैं. और फिर, इनमें से केवल एक है खत्म हो जा क्रियान्वित किया जा रहा है. तो आप सोच हो सकती है खैर, क्या तुम अगर कुछ है कि इनमें से दो को पूरा कर सकते हैं. शायद तुम inputting रहे हैं जो कुछ भी हालत दोनों से मिलता है के लिए अगर और यदि नहीं तो. चलाने के लिए जा रहा है कि केवल बात 

एलीसन: जैसे ही यह कुछ पाता रूप यह उसके लिए शर्त को पूरा करता हो सच करने के लिए मूल्यांकन करता है, वह क्या है इसे चलाने के लिए और कुछ नहीं हो रहा है. तुम थी तो यह संख्या है अपना पहला एक के लिए 0 और 5 के बीच, या 3 के बीच इस संख्या है और यदि नहीं तो भाग के लिए 5, और आप इनपुट number-- मैं 0 और 5 and-- 4 कहा. यह पहली बार एक मारा जा रहा है. यह ठीक है, यह कहने के लिए जा रहा है संख्या 0 और 5 के बीच है. निष्पादित और छोड़ दें. ऐसा लगता है कि दूसरा विकल्प कभी नहीं मारा जाएगा. कूल? बहुत बढ़िया. 

ठीक है हम भी स्विच बयान अगर है आप भी more-- या खेद प्राप्त करना चाहते हैं स्विच अगले है. मैं यहाँ आगे खुद की हो रही है. फिर, कई ब्लॉकों अगर जहां मैं सिर्फ इतना कहा के रूप में जैसे ही आप एक शर्त खोजने के रूप में है उस मुलाकात की और बाकी एक अगर और अगर है, यह छोड़ देता है. आप की जांच करने की जरूरत है कई चीजें हैं, आप कर रहे हैं इस वजह से उपयोग करना चाहते हैं के लिए जा रहा यह यहां हर बार की जाँच करेगा. तो इस के माध्यम से और अगर चलेंगे यह 90 से अधिक या बराबर है यह कि मुद्रित करने के लिए जा रहा है. और इसके माध्यम से चलेंगे और इनमें से हर एक की जाँच करें. 

दर्शकों: तो यह होगा [अश्राव्य] से अधिक छोटी गाड़ी. इस [अश्राव्य] की तरह होगा? 

एलीसन: सवाल यह होगा छोटी गाड़ी या यह तुम क्या चाहते करती है. यह वास्तव में क्या पर निर्भर करता है यदि आप अपने कार्यक्रम से चाहते हैं. 

दर्शक: मैं आप में से 90 डाल की तरह मतलब है. एलीसन: तुम डाल 90-- दर्शक: [अश्राव्य]. GABRIEL: आप दो चीजें पाने के लिए जा रहे हैं. एलीसन: आप दो चीजें पाने के लिए जा रहे हैं. हां, दो. 

आरओबी बोडेन: दो? 

एलीसन: नहीं 

आरओबी बोडेन: चार. आप 90 डाल दिया है, यह आप कहने के लिए जा रहा है , आप एक सी मिल गया है, तो आप एक बी मिला, एक एक मिला आप एक डी मिला 

दर्शक: [अश्राव्य]. एलीसन: ठीक है. तो मैं आप पर निर्भर करता है आप इस कार्यक्रम से चाहते हैं. कभी कभी आप की जरूरत है कई चीजों की जाँच करें. आप में बहुत गहरे क्या मिलेगा आप आगे जाने के रूप में अच्छा डिजाइन है. महत्वपूर्ण बात एहसास यह है कि यहां सभी चार की स्थिति की जाँच करेगा. जबकि यह एक अगर किसी और यदि नहीं तो थे यदि नहीं तो, यह, कि पहले मामले मारा जाएगा यह आप एक एक मिल गया है और किया जा प्रिंट होगा. 

आरओबी बोडेन: यहां तक ​​कि अगर हम अगर इस परिवर्तन करने का निर्णय लिया और 90 से अधिक या बराबर अधिक से अधिक, , और यदि 80 से कम या बराबर अधिक और कम से कम या 89 के बराबर, अगर एन 70 से अधिक या बराबर अधिक से अधिक, और एन से कम या बराबर 79, ताकि सही हो जाएगा. यही कारण है कि हम क्या चाहते हैं, लेकिन जाएगा यह अभी भी यह हर एक की जाँच करता है. 

पहले परिदृश्य में जबकि, इसलिए यदि हम बस और अगर किसी और यदि साथ 90 दर्ज, और हम तो, 90 दर्ज यह सही करने के लिए जा रहा है. यह पहले की जाँच करेगा एक, प्रिंट, एक ए मिला , सब कुछ छोड़ यह क्योंकि पहले से ही काम करता है कि एक मिल गया. सभी मामलों परस्पर अनन्य हैं अगर और अगर और अगर आधार पर. इसलिए इसे लागू करेंगे पहला, तो यह हो चुका है. यह अंत करने के लिए जाना होगा. 

हम बदलते हैं जबकि यह मैं क्या था होना करने के लिए 89 से कम या बराबर साथ कह. यह पहले एक जांच करने के लिए जा रहा है. इसे प्रिंट कर देंगे. यह दूसरा एक जांच करेंगे. यह मुद्रित करने के लिए नहीं जा रहा है. तीसरे एक जाँच करें. मुद्रित करने के लिए नहीं जा रहा. चौथे एक की जाँच करें. अब मुद्रित करने के लिए जा रहा है. , यदि नहीं तो उस मामले में तो संस्करण के बाद से इन मामलों परस्पर अनन्य, यह कर रहे हैं अगर किसी और यदि किसी और बेहतर उपयोग, कि क्योंकि किया जा रहा है शर्तों के कम चेक इस संस्करण की तुलना में. एलीसन: बहुत बढ़िया. तो एक और बात यह है कि हम कर सकते हैं ऐसा स्विच बयान है. मूल रूप से एक स्विच बयान कुछ चर में लेता है, इस मामले में यह पता है, और निष्पादित करने के लिए जिस स्थिति निर्धारित करता है. तो यह एक जहां अपने मामलों में भी है तरह के परस्पर अनन्य होना चाहिए. इस मामले में, तो अगर हम हम एक एक, यह है मिल जो कुछ भी है कि मैच के लिए जा रहा n के variable-- जो भी मूल्य इन मामलों में से एक है, तो 1, 2, या करने के लिए है 3, और इसी लाइन बाहर प्रिंट. 

और फिर आप यहाँ नोटिस अगर, हम भी एक डिफ़ॉल्ट है, जो आप अपने किसी और रूप के लगता है कि कर सकते हैं. यदि आप किसी अन्य नंबर लेने तो अगर इस मामले में 1, 2, और 3 के अलावा यह सिर्फ अवैध मुद्रित करने के लिए जा रहा है. बनाम आईएफएस का उपयोग करने का फैसला कब स्विच बनाम elses अगर जा रहा है कुछ हो कि तुम लोगों को होगा आप लेखन शुरू के रूप में बुद्धिमान डिजाइन देख अधिक जटिल प्रोग्राम, और कोई कठोर नियम नहीं है की जब उन्हें इस्तेमाल करने के लिए. यह वास्तव में आपके संदर्भ पर निर्भर करता है. 

आरओबी बोडेन: और बस वहाँ इसे बाहर फेंक करने के लिए यह और अधिक आरामदायक अनुभाग है के बाद से. स्विच, वे के लिए करते हैं be-- ताकि आप सीमित कर रहे हैं तरीके की संख्या में आप उन का उपयोग कर सकते हैं, आईएफएस, क्योंकि हालत बहुत हो सकता है आप चाहते हैं कि ज्यादा कुछ भी. साथ मामलों स्विच संख्या होना है, या तकनीकी रूप से वे घर का काम हो सकता है, लेकिन हम देखेंगे के रूप में घर का काम, सिर्फ संख्या हैं. इसलिए वे संख्या, लेकिन स्विच रहना होगा अगर तुलना में वास्तव में अधिक कुशल हैं किसी और यदि नहीं तो, यहाँ तक कि अगर क्योंकि before-- अच्छी तरह से उदाहरण ले रही है, ग्रेड उदाहरण अच्छा लगता है. 

वैसे तो हम बजाय करते हैं, यहाँ हम कहते हैं इस एक अगर किसी और रूप में परिदृश्य अगर किसी और यदि. एन के बराबर होती है अगर 1 के बराबर होती है तो आप एक कम संख्या उठाया मुद्रित. , 2 n बराबर अगर यदि नहीं तो आप एक मध्यम संख्या उठाया. बराबरी 3 के बराबर होती है अगर नहीं तो, उच्च. वरना अमान्य. 

तो चलो कि हमारे परिदृश्य था कहते हैं. तो चलो हम दर्ज कहते हैं कि 4, इसलिए हम अवैध उम्मीद है. जिस तरह किसी और यदि किसी और कि दृष्टिकोण काम करने के लिए जा रहा है है पहली शर्त जाँच करता है. वह संतुष्ट नहीं है. इसलिए हम दूसरी शर्त की जाँच करें. वह संतुष्ट नहीं है. तीसरी शर्त की जाँच करें. संतुष्ट नहीं. इसलिए हम किसी और को जाने और अवैध प्रिंट. 

जिस तरह से स्विच काम करता है यह नीचे संकलित है हम जा रहे हैं में एक कूद तालिका कॉल करने के लिए. मुख्य विचार किया जा रहा है आप 4 में प्रवेश जब कि, यह तुरंत डिफ़ॉल्ट करने के लिए जा सकते हैं. यह AM मैं मामले 1 की जांच की जरूरत नहीं है? नहीं ऐसा नहीं है. केस 2? नहींं. केस 3? नहींं. डिफ़ॉल्ट. ठीक है, यह मैं जहां होना चाहिए चाहते हैं, और फिर उस पर अमल. नहीं, यह तुरंत डिफ़ॉल्ट के लिए कूदता है. या मैं 2 में प्रवेश, यह है तुरंत 2 के लिए जाना जा रहा मामले 1 के माध्यम से जाने की जरूरत के बिना. 

उस रास्ते में तो, वास्तविक आजकल है कि एक दक्षता लाभ के ज्यादा नहीं. आमतौर पर कंप्यूटर सुंदर हैं तेजी से, और कि उस महान नहीं है. लेकिन यह मामला है कि स्विच तेजी से कर रहे हैं. आप वास्तव में कोशिश कर रहे हैं अनुकूलन करने के लिए, एक स्विच का उपयोग करें. 

एलीसन: कूल. और फिर हम त्रिगुट ऑपरेटर है. इसलिए मुझे लगता है कि मैंने पहले उल्लेख किया है पता शब्द वाक्यात्मक चीनी. तो यह करना है कि सिर्फ बातें है बहुत अधिक संक्षिप्त अपने कोड. तो यह उन मामलों में से एक है. 

तो त्रिगुट ऑपरेटर प्रश्न चिह्न है पेट के हम लाइन स्ट्रिंग में देखने के रूप में 100 से एन अधिक के बराबर होती है प्रश्न चिह्न उच्च पेट के कम. तो बुनियादी तौर पर यह कैसे काम करता है यह है 100 से अधिक n एक शर्त है. तो मैं यह समझ कर सकते हैं. यह एक सवाल पूछ की तरह है. यह ओह, एन 100 से अधिक है कह रहा है. कौन जानता है? और यह करने के लिए मूल्यांकन अगर सच है, यह तुम्हें देने के लिए जा रहा है है कि पहली बात जो उच्च है, वहाँ सूचीबद्ध. अन्यथा यह आपको कम दे रहा है. तो यह सिर्फ एक बहुत आसान है और कारगर तरीका एक अगर किसी और की तरह करते हैं. यही कारण है कि यह सब है. 

और हम यह लिख रहे थे सशर्त यदि नहीं तो एक के रूप में एन अधिक है अगर यह होगा 100 से, उच्च वापसी. वरना, कम वापसी. यह सिर्फ एक बहुत अधिक है इसे लिखने का संक्षिप्त तरीके. 

आरओबी बोडेन: तो इस विशेष उदाहरण जब भी आप कुछ कर रहे है इस तरह, इस पद्धति है जहां मैं बहुत बार त्रिगुट का उपयोग करें. इसलिए हम अभी तक गुंजाइश के बारे में बात नहीं की है लेकिन मैं स्ट्रिंग के अर्धविराम देखने से नफरत. एन 100 से अधिक है, तो उच्च बराबर होती है. वरना, कम बराबर होती है. उस पैटर्न तो, उन पाँच लाइनों समय के कोड का शाब्दिक 100% क्या में स्थानांतरित किया जा सकता है वहाँ एक त्रिगुट के साथ था. तो त्रिगुट, कोड की एक लाइन. पांच, यदि नहीं तो. यही कारण है कि मैं बात कर एक उदाहरण है हर बार बाहर. यह होगा महान जगह एक त्रिगुट ऑपरेटर के लिए. यह तो साफ है. लेकिन लोग इसका इस्तेमाल कभी नहीं करते हैं. 

एलीसन: Gabe इसे दूर ले लो. 

GABRIEL: तो अब आप लोग सब व्याख्यान में इस सप्ताह में सीखा एक में है कि सब कुछ कंप्यूटर सही, द्विआधारी है? बस यहाँ दीपक की तरह. आप या तो पर और बंद कर दिया जा सकता है. और सब कुछ से, मेरा मतलब है सचमुच सब कुछ. कुछ नंबर, और घर का काम, और तार, और भी कोड आप जब लिखने कि यह मशीन को संकलित हो जाता है कि जैसे कोड और सामान, तो यह सब 0 और 1 'के लिए नीचे फोड़े. 

और इसलिए हम काम कर रहे हैं जब पूर्णांकों, साथ जो तकनीकी रूप से बहुत कुछ है कि है सरल, हम सामान ऐसा करने में सक्षम होना चाहिए है, जो उन्हें जोड़ने की तरह सरल बातों का शायद एक आप सही, दो पूर्णांकों के लिए क्या कर सकते हैं? तो इसके अलावा और घटाव सिर्फ काम करता है यह दशमलव पद्धति में काम करता है जैसे, यहां छोड़कर यह सही, द्विआधारी है? तो यह आधार दो में है. तो 1 प्लस 1 जोड़ें. यही 0 देता है, और 1 पर किया जाता है. और अभी तो अब, कि कर रखना अधिक दिलचस्प सवाल आता है. 

हम सभी का प्रतिनिधित्व करने के लिए पता कंप्यूटर में सकारात्मक integers, लेकिन यह एक व्यायाम करते हैं. तुम लोगों को 1960 या में सभी कर रहे हैं बहाना कुछ, एक कंप्यूटर बनाने की कोशिश और आप का आना 1 ऋण के संचय के लिए एक रास्ता है, उदाहरण के लिए, या किसी भी ऋण उस बात के लिए पूर्णांक. आप यह कैसे करना होगा? किसी भी विचार? सिर्फ मुझ पर कुछ भी फेंक देते हैं. हाँ? 

दर्शक: [अश्राव्य] नामित अपने [अश्राव्य] अगर एक विशेष. 

GABRIEL: आप एक निर्दिष्ट कर सकते हैं 0 या 1 हो जाएगा जो विशेष बिट,. यह सकारात्मक है अगर एक हम कहते हैं और 0 यह नकारात्मक है तो. बिट की और फिर बाकी बस संख्या की दुकान है. कूल. इसलिए कि एक बहुत अच्छा विचार है. हम, मैं नहीं जानता, 200 है. और पहली सा है अगर पर बदल गया है, तो यह है प्लस 200. इसे बंद कर दिया है, तो यह 200 शून्य है. कूल. 

केवल छोटे से एक है इस के साथ समस्या यह है कि, जो हम चीजों को योग करने की कोशिश है. इसलिए हम यहां 11111 है कल्पना, और हम 00100 साथ जो कुछ भी इस संक्षेप रहे हैं. उन दो सकारात्मक रहे हैं, वह ठीक है. लेकिन फिर अगर एक से उन्हें पसंद है, नकारात्मक है हम कहते हैं कि इस बिट है कि यहाँ जिम्मेदार है कि एक है for-- मैं एक separate-- बनाने के लिए जा रहा हूँ तो यह एक है कि इस संख्या में यहाँ का मतलब सकारात्मक है. यह भी इस का मतलब है कि यहाँ संख्या ठीक है, नकारात्मक है? 

लेकिन तब आप कर रहे हैं जब उन्हें योग करने के लिए जा रहे हैं, आप एक अगर बयान की जरूरत , इस 0 अगर ओह कह तो मेरे योग होगा कुछ अलग है, है ना? तो एक थोड़ा वहाँ ऐसा करने का तरीका अधिक चतुर दो का पूरक कहा जाता है, जो कि. तो बुनियादी तौर पर क्या हम ऐसा हम परिभाषित है शून्य से 1 बात हो अगर उस 1 हमें 0 देता करने के लिए हम को जोड़ें. मुझे दोहराने कि. तो चलो यहाँ यह 1 है कि हम कहते हैं. बात क्या है कि स्वाभाविक रूप से सकारात्मक integers में उस में जोड़ा हमें 0 देता है? हम इस संख्या को जोड़ने के लिए क्या प्रयास करें? हम ठीक have--, तो चलो जोड़ने के लिए जा रहे हैं. हम 1 प्लस 1 के लिए जा रहे हैं 0 है, और फिर इसे खत्म किया जाता है. और फिर हम फिर से 0 ले जा रहे हैं. मैं उलझन में हो रही है. और आप 0 पाने के लिए जा रहे हैं और 0 और 0 और 0 और 0 और 0. 0 के बहुत सारे. 

बहुत पिछले एक में, हम नहीं कर रहे हैं इस पर ले जाने के लिए सक्षम होने के लिए जा रहे हैं, क्योंकि हम ही काम कर रहे हैं का कहना है एक बाइट, इसलिए केवल 8 बिट के साथ. तो कंप्यूटर डिफ़ॉल्ट रूप से क्या करता है , बस है कि [अश्राव्य] के बारे में भूल जाता है ठीक है? तो यह कहा जाता है दो पूरक. होने के लिए हम बस 1 शून्य से परिभाषित बात यहां आप 1 करने के लिए जोड़ है कि अगर कि आप 0 देना होगा. और वह बहुत अच्छा है हम वास्तव में नहीं है लागू करने के लिए देर जरूरत योग के विभिन्न प्रकार कि एक है, इस पर निर्भर नकारात्मक या सकारात्मक संख्या. कि मतलब? 

हम इतना है कि एक बात यहाँ कन्वर्ट करने के क्रम में एक सकारात्मक है और एक नकारात्मक के बीच पूर्णांक तो हम सब कुछ फ्लिप है और फिर हम उस नंबर के लिए 1 जोड़ें. आप इसे अपने आप करने की कोशिश कागज के एक टुकड़े पर, आपको लगता है कि समझ में आता है देखने के लिए जा रहे हैं. लेकिन मैं इस नंबर ले यहाँ, यह पांच है. मैं सब कुछ फ्लिप तो अगर यहाँ, तो 1, 1, 1, 1, 1. , फ्लिप, फ्लिप फ्लिप. और फिर मैं यह करने के लिए 1 जोड़ें. मैं बिल्कुल शून्य से 5 के लिए जा रहा हूँ. ठीक है? 

इस तरह की समझ में आता है क्योंकि आप संख्या के साथ इस राशि के लिए प्रयास करें हम पहले था कि जो फिर यह फ्लिप was--. यह 0 से 101 और बहुत था. आप इन जोड़ने के लिए प्रयास करें एक साथ दो नंबर, आप बिल्कुल 0 लिए जा रहे हैं. ठीक. कोई सवाल? 

दर्शक: [अश्राव्य] 

GABRIEL: तुम्हारा मतलब क्या है? 

दर्शक: के लिए नकारात्मक सकारात्मक [अश्राव्य]. 

GABRIEL: नहीं, आप फ्लिप और आप हमेशा 1 जोड़ें. हाँ. ठीक है, तो वर्ण भी बायनेरिज़ इनकोडिंग. हम आप के रूप में, ASCII तालिका है यह भी सही है, व्याख्यान में देखा था? तो यह मूल रूप से बातें की एक मानचित्रण है. और यहाँ मैं काफी जोर नहीं कर सकते कि एक कंप्यूटर, एक के लिए और 65 सचमुच एक ही बात कर रहे हैं. मैं चार सी की तरह कुछ लिखने तो अगर एक, मैं एक ही समय में कर सकता है के बराबर होती है बस यहाँ 65 लिखते हैं, और यह ठीक है, ठीक उसी होगा? जो भी कोई अंतर नहीं होता है. 

हम आमतौर पर डाल देते हैं प्रकार के चर में अक्षर. चार, नहीं वे अनिवार्य रूप से कर रहे हैं क्योंकि उस के लिए बनाया है, लेकिन क्योंकि मानव सम्मेलन का. लेकिन तुम सिर्फ पूर्णांकों के साथ सौदा कर सकते हैं बजाय प्रकार चार के चर, और तुम ठीक हो जाओगे. केवल वास्तविक अंतर एक चार सी और एक पूर्णांक मैं बीच एक पूर्णांक अधिकांश में चार बाइट्स है कि है सिस्टम, एक चार एक बाइट है, जबकि. वे अनिवार्य रूप से कर रहे हैं डेटा के मामले में एक ही बात. तो क्या यहां प्रिंट होगा? यहाँ हम printf का उपयोग अंक के मुद्रण कर रहे हैं एक प्लस 1 के साथ, और सिर्फ पूर्णांकों की तरह, घर का काम तो, अभिव्यक्त किया जा सकता है अक्षर भी अभिव्यक्त किया जा सकता है. तो यह वास्तव में 65 है. इसलिए होने जा रहा है 66, और यहां हमारे पास 65 प्लस थोड़ा एक शून्य से बड़ा, जो होगा, मैं सच में नहीं पता. लेकिन यह बिल्कुल खाई होगी बड़े अक्षरों के बीच और और छोटे अक्षरों, तो हम सही, छोटे एक पाने के लिए जा रहे हैं? हाँ. तो यह एक मुद्रित करने के लिए जा रहा है वास्तव में यह एक है जो चरित्र. अच्छा है? कोई सवाल? 

यहाँ हम अलग से एक गुच्छा है संख्यात्मक चर के लिए प्रकार. हम पहले से ही पूर्णांक के बारे में बात करते हैं. यह सच है to-- फ्लोट सिर्फ एक रास्ता है अजीब बात है, जब मैं पहली बार सीखा क्योंकि जब दिन के साथ में वापस कार्यक्रम के लिए अजगर, पहला कार्यक्रम कभी मैं लिखने की कोशिश की, मैं एक था कि वहाँ देखा प्रकार में बुलाया और एक प्रकार नाव बुलाया. और नाव सभी वास्तविक संख्या के लिए था. तो फिर मैं क्यों चाहिए पूछा मैं कभी तो एक पूर्णांक का उपयोग करें? मैं सभी का उपयोग कर सकते हैं क्योंकि अगर एक नाव के साथ वास्तविक संख्या, मैं सिर्फ सही, ints का उपयोग बंद कर देंगे? वास्तविक संख्या होते हैं, क्योंकि और अधिक सामान्य की तरह. 

ये इस प्रकार है कि पता चला है कंप्यूटर में नहीं मामला वे अनिवार्य रूप से कर रहे हैं क्योंकि अलग अलग चीजें हैं. पूर्णांकों और मंगाई तो, आपरेशन आप उन्हें करना है कि क्योंकि अनिवार्य रूप से अलग हैं वे जमा हो जाती है कि जिस तरह से, ठीक है? हम एक छोटे से बात करने के लिए जा रहे हैं एक सेकंड में उस के बारे में अधिक बिट. 

तो डबल सिर्फ एक बड़ा नाव है. आमतौर पर सबसे प्रणालियों में, एक नाव सिर्फ एक पूर्णांक की तरह, चार बाइट्स है. और एक डबल आठ बाइट्स है. एक लंबे वास्तव में सिर्फ एक प्रतीक है आप पूर्णांक की तरह एक प्रकार संलग्न है. आप लंबे समय से इस तरह int लंबे कहना. लंबे पूर्णांक एक्स अब इसे बनाने के लिए. तो सबसे प्रणालियों में, उस दे देंगे बजाय हमेशा की तरह चार से आठ बाइट्स. और अगर आप वास्तव में ड्रॉप कर सकते हैं में, यह सिर्फ लंबे कह सकते हैं तो, और कहा कि ठीक है, बहुत से काम करता है? तुम भी जैसे अन्य बातें कर सकते हैं अहस्ताक्षरित int, या फिर सिर्फ अहस्ताक्षरित यह भी काम करेगा. और कहा कि एक्स एक चर हो बनाना होगा सब कुछ सकारात्मक है जैसे, तो आप वास्तव में नकारात्मक नहीं हो सकता हम यहाँ देखा कि रास्ते में संख्या. बहुत बढ़िया निम्नलिखित बिंदु और सटीक चल. कि कारणों में से एक कारण है कि आप बजाय तैरता की ints उपयोग करना चाहते हैं, ints 100% सटीक, सही कह रहे हैं, क्योंकि? यह ठीक है कि संख्या है. अस्थायी अंक के लिए, आप अगर उत्तर 1 10-- से अधिक के बराबर होती है कहना मैं सटीक इस के लिए होता है यहां कार्यक्रम, float.c. यही कारण है कि 20 दशमलव स्थानों के लिए प्रिंट. 1 10 से विभाजित है, और है कि आमतौर पर, सही 0.1 है? लेकिन यहाँ हम बनाते हैं नाव और फिर हम इसे चलाने, हम यह बिल्कुल 0.1 नहीं है कि देखते हैं. यह 0.149 कुछ है. 

और ऐसा क्यों है? आप वास्तव में हर प्रतिनिधित्व नहीं कर सकते हैं क्योंकि स्मृति में एक संभव असली संख्या क्योंकि वहाँ उनमें से uncountably कई. इसलिए हम तकनीकी रूप से करने में सक्षम हो उनमें से एक निश्चित राशि का प्रतिनिधित्व डेटा की एक निश्चित राशि के साथ. लेकिन यह वाकई दिलचस्प है. अब यह भी जन्म देती है का सवाल कैसे तुम होगा का प्रतिनिधित्व करने के बारे में जाना बिट्स के साथ यह ठीक है? तो कैसे मंगाई जमा हो जाती है? पूर्णांकों के साथ यह आसान था. लेकिन मंगाई साथ आप चाहते हैं सीमा अधिकतम करने के लिए, और आप का प्रतिनिधित्व करने के लिए सक्षम होना चाहता हूँ भारी संख्या और जैसे बहुत छोटे संख्या एक ही समय में .000001. तो फिर, एक ही खेल. कैसे हम कर सकते थे किसी को भी किसी भी विचार है स्मृति में नाव का प्रतिनिधित्व करने के बारे में जाना है? बस कुछ भी फेंक देते हैं. हाँ, कृपया. 

दर्शक: [अश्राव्य] के रूप में यह दो ints और एक था जा रहा है [अश्राव्य] और एक की जा रही दशमलव बिंदु के बाद सब कुछ. GABRIEL: ठीक है, शांत. तो दो अलग पूर्णांकों. आप 12.45 हो सकता है, इसलिए कि 12 और 45 है. नाइस. क्या आप कहने वाले पहले? एक ही बात है? हाँ? 

दर्शक: [अश्राव्य] अंकन जहां आप आधार अलग. 

GABRIEL: वैज्ञानिक अंकन, हाँ ऐसा होता है जो आम तौर पर है. तो इस mantissa कहा जाता है. कि वास्तव में क्या है संख्या, और उसके प्रतिपादक सही, अल्पविराम है बस कहाँ है? तो यह कुछ होने जा रहा है प्रपत्र 1, 2, 3, 4, 5 बार 10 शून्य से 4. मैं सिर्फ वही, हाँ that-- एहसास हुआ. और फिर शून्य से 4 करने के लिए इस 10 अल्पविराम है जहां ठीक है, परिभाषित करने के लिए जा रहे हैं? ब्राजील में हम अल्पविराम का उपयोग करें. आप लोग यहाँ एक डॉट का उपयोग करें. तो एक बिंदी. 

और इस वजह से तो आप कर सकते हैं, शांत है इस आदमी पर अपनी बिट्स के बहुत से ध्यान केंद्रित यहाँ, mantissa पर, और उसके बाद कि अपने वास्तविक सटीक होने जा रहा. और तुम दशमलव में या तो ऐसा कर सकते हैं या बाइनरी आधारित प्रणाली में. अलग कर रहे हैं तरीके इस लागू करने के लिए. प्रश्न? हाँ? दर्शक: कितने स्थानों दशमलव [अश्राव्य] के बाद? 

GABRIEL: यह एक जटिल प्रश्न है, यह वास्तव में कभी नहीं 100% सटीक है क्योंकि, आप यहाँ के लिए देख क्योंकि कुछ नंबरों यह 100% सटीक है. हम यहां 0.5 डाल अगर मुझे विश्वास है यह 100% सटीक होने जा रहा है. यह 0.500000 होने जा रहा है. तो उस मामले में, यह एकदम सही है. लेकिन अन्य मामलों में, यह बहुत कम एकदम सही है. मेरे अनुभव में, चार की तरह, पाँच दशमलव स्थानों के बहुत सटीक है. आप एक डबल का उपयोग करते हैं, यह जा रहा है ठीक है, कि जिस तरह से और अधिक सटीक हो? 

आरओबी बोडेन: तो बस फेंक करने के लिए झांकियों में कुछ और संदर्भ, मैं 100% कैसे याद कभी नहीं झांकियों की कल्पना है, वास्तव में काम करता है लेकिन मैं आपको हमेशा याद करते हैं कि मंगाई गंदा हो रही शुरू. तो विचार है, तुम सच में जब कि है वास्तव में बड़ी संख्या या सच में, सच कम संख्या, हम शुरू बदतर और बदतर हो रही है फर्क पर दो पास तैरता बीच. 

इसलिए मुझे लगता है है के बारे में सोचना अच्छा लगता है कैसे चल बिन्दु अस्पष्टता के साथ, दो मंगाई हैं कि वहाँ मैं उन्हें निर्दिष्ट करने की कोशिश सी में, इस तथ्य के बावजूद कि वे अलग नंबरों कर रहे हैं, वे होने के लिए जा रहे हैं एक ही नंबर के रूप में व्याख्या की, हम उन्हें अलग से स्टोर नहीं कर सकते हैं. हम एक ही बिट का उपयोग करने की आवश्यकता है. और इसलिए हम करने के लिए मिलता है जब वास्तव में, वास्तव में बड़ी संख्या में, 300 या 10 की तरह बात कर कुछ, यह उस बिंदु पर है कि 10-300 या 300 के लिए 5 से 10 गुना भेदभाव नहीं किया जा सकता 300 के लिए 7 बार 10 से. तो यह एक बहुत बड़ा अंतर है दो संख्याओं के बीच. 

लेकिन तब आप नीचे उतरो सामान्य श्रेणी बातों को, तुम सुंदर हो जाते हैं फर्क पर अच्छा. और फिर तुम वास्तव में छोटे नीचे उतरो जब तुम भी फिर से बहुत बुरा हो रही है. की एक पूरी गुच्छा की तरह तो 0.0000, यह बहुत बुरा हो जाता है. GABRIEL: हाँ, तो एक जल्दी ध्यान दें. ऐसा कभी नहीं. कभी तुलना करने की कोशिश बराबर का उपयोग मंगाई, वे लगभग रहे हैं क्योंकि अगर वही, लगभग उसी में ही नहीं है. तो क्या आप आमतौर पर करते हैं आप घटाना है उन्हें इस बात का निरपेक्ष मान ले, उस से छोटी है और अगर देखना उस तरह 0.0001 या कुछ और, ठीक है? और शांत. मैं बहुत से लोगों को पता है जावा में कुछ पृष्ठभूमि, किसने विशेष रूप से लोगों एपी कंप्यूटर विज्ञान, है ना? और जावा एक भाषा है कि ज्यादातर सी के आधार पर, यह एक जोड़ी बहुत बड़ा अंतर है. लेकिन जैसे छोरों, और आईएफएस, और सामान के लिए कि, वे सभी एक ही वाक्य रचना कर रहे हैं. मैं इस शो के लिए यहां कुछ कार्यक्रम है. 

तो उदाहरण के लिए, एक साधारण नमस्ते दुनिया. यह सी में नमस्ते दुनिया है जो आप दोस्तों, साथ निश्चित रूप से परिचित हैं और इस और इस एक जावा में है. जावा में हम यह है तो सार्वजनिक वर्ग, नमस्ते दुनिया, और सार्वजनिक स्थैतिक शून्य मुख्य, और स्ट्रिंग args. स्ट्रिंग args जा रहे हैं बहुत जल्द ही सी में प्रदर्शित करने के लिए. लेकिन अभी तक वहां जाने नहीं देना. अभी हम जिसका अर्थ है, यहां शून्य है कि मुख्य कोई बहस नहीं ले रहा है. और फिर हमारे पास system.out.println, और वह है printf के लिए बराबर की तरह. यहाँ हम वास्तव में बैकस्लैश की जरूरत नहीं है एन प्रिंट एलएन कि आप के लिए करता है. यह बैकस्लैश जोड़ रेखा के अंत में एन. 

लेकिन आप में जाना एक के लिए की तरह कुछ, आप वे कर रहे हैं कि देख सकते हैं बहुत ज्यादा एक ही बात. तो आरंभीकरण, और हालत, और अद्यतन is-- मुझे लगता है वे कर रहे हैं here-- एक अंतरिक्ष याद किया जावा को छोड़कर बहुत ज्यादा एक ही बात, कुछ और उच्च स्तर की सामग्री के रूप में है. यहाँ हम क्या कर सकते हैं प्लस मैं और जावा स्वचालित रूप से होगा है, जो मैं यहां इस बनाना एक पूर्णांक, एक स्ट्रिंग में, और फिर संलग्न एक साथ दो तार. यहाँ सी में हम और% घ करना चाहते हैं. यहाँ रेखा के लिए बिल्कुल वैसा ही लग रहा है. 

और हम पर नजर डालें तो आईएफएस, अगर यह भी ठीक है, ठीक उसी दिखेगा? तो असली बड़ा अंतर हैं आप यहाँ देख कि उन चीजों में. सार्वजनिक स्थैतिक, शून्य, और फिर सार्वजनिक वर्ग है. तो जावा है क्या है एक आभासी मशीन कहा जाता है. और यह बहुत भारी है पर आधारित है वस्तु उन्मुख प्रोग्रामिंग कहा जाता है, एक बहुत, बहुत आम है जो आजकल प्रोग्रामिंग के लिए प्रतिमान. और इस वर्ग बात, आप क्या देख रहा है वस्तु उन्मुखीकरण से कुछ, तुम तो एक वर्ग बनाने और है उस वर्ग से वस्तुओं प्राप्त कर सकते हैं. हम भी बात करने के लिए नहीं जा रहे हैं CS50 में उस के बारे में ज्यादा, लेकिन वह निश्चित रूप से है कुछ बहुत ही शांत, आप में जाना चाहता हूँ, खासकर अगर अधिक परिष्कृत वेब विकास कोर्स के अंत में, जैसे अपने अंतिम परियोजना प्रस्तुत और कुछ अच्छा चौखटे और सामान. 

तो बुनियादी तौर पर विचार आपको लगता है कि है कुछ को फिर से लागू करने की जरूरत नहीं है, तो आप पर है कि कुछ बना बहुत सामान्य, आकार की तरह, और फिर आप बना इसमें से विभिन्न आकार, और तब से प्रत्येक से इन आकृतियों, आप बना तीन में से कुछ अधिक विशिष्ट आकार आयाम या ऐसा कुछ. और वे इस पदानुक्रम वे इसलिए, अन्य लोगों से विरासत सभी कार्यों और सभी चर कि बड़े आकार यहाँ, इन सभी का है के लिए जा रहा है, और इन सब कर रहे हैं , और इतने पर और आगे के लिए जा रहा. इसलिए कि मूल विचार है. 

सी कि है, लेकिन सी नहीं करता ++ सुविधा के उस तरह है. और जावा भारी प्रभावित होती है वस्तु उन्मुखीकरण से, आप देखते हैं तो इसलिए यहां वर्ग हर समय. और दूसरी बात यह है इस जावा आभासी मशीन. तो यह मुझे लगता है, एक बहुत चतुर विचार है. तो क्या लोगों को जो आविष्कार जावा है किया वे नहीं चाहते थे दो बार अपने कोड संकलन वे एक Windows में इसे चलाने के लिए किया था, या एक मैक या लिनक्स, तो वे क्या करते हैं वे सचमुच चलाया जाता है उपकरण की तरह कुछ, लेकिन आप वास्तव में यह क्या हो रहा नहीं दिख रहा है. इसलिए वे एक आभासी मशीन चलाने आपके कंप्यूटर के अंदर जो एक तरह मूल रूप से है मिनी ऑपरेटिंग सिस्टम. और कहा कि परिचालन जीवन में प्रणाली का उद्देश्य सिर्फ बाइट कोड कहा जाता है चलाने के लिए है. 

तो बजाय सी में, जिस तरह से हम करेंगे इस अगर करना है संकलन, और फिर चलाने ./if. मैं में बैकस्लैश भूल गया. जावा, आपको पहले करना होगा सी जावा यह संकलन करने के लिए, if.c. यह सी यह डॉट जावा नहीं है. और फिर आप ./ नहीं चला है. आप इस नई फाइल मिलेगी if.class, लेकिन आप नहीं कर सकते हैं वास्तव में अभी if.class चलाने जैसे हम पहले किया था. यह एक निष्पादन नहीं है. आप चलाने के लिए है. आप में फ़ीड करने के लिए है जावा नामक कार्यक्रम, और कहा कि कार्यक्रम आभासी मशीन है, और फिर आप if.class, या अगर करते हैं. हां. और फिर यह काम करता है. ठीक है तो यह की तरह है आभासी मशीन हो रहा. मैं करने के लिए थे, इसलिए यदि सी, कि नहीं है एक विंडोज़ मशीन में इस कार्यक्रम रखा, यह करता जावा में सी में काम नहीं करेगा. प्रश्न? कूल. यही कारण है कि आज के लिए सुपर अनुभाग के लिए अगर है.