1 00:00:00,000 --> 00:00:10,550 2 00:00:10,550 --> 00:00:14,050 >> डेविड जे मालन: इस CS50 है और इस सप्ताह चार की शुरुआत है। 3 00:00:14,050 --> 00:00:18,630 और, लड़का, वोक्सवैगन में है सभी क्योंकि सॉफ्टवेयर की मुसीबत। 4 00:00:18,630 --> 00:00:20,264 हमें एक नज़र रखना। 5 00:00:20,264 --> 00:00:20,930 [वीडियो प्लेबैक] 6 00:00:20,930 --> 00:00:25,560 -Cars, होशियार पात्रों फास्ट एंड द फ्यूरियस फिल्मों में। 7 00:00:25,560 --> 00:00:29,100 इस हफ्ते जर्मन automaker वोक्सवैगन ही पाया 8 00:00:29,100 --> 00:00:32,490 के एक घोटाले के बीच में संभावित आपराधिक अनुपात। 9 00:00:32,490 --> 00:00:36,060 >> -Volkswagen अरबों के लिए हौसला पैदा कर रहा है जुर्माने के रूप में, संभव आपराधिक आरोप 10 00:00:36,060 --> 00:00:38,560 अपने अधिकारियों के लिए, के रूप में कंपनी से माफी मांगी 11 00:00:38,560 --> 00:00:41,840 11 लाख कारों हेराफेरी के लिए यह उत्सर्जन परीक्षण हरा में मदद। 12 00:00:41,840 --> 00:00:44,950 >> -Certain डीजल मॉडल थे अत्याधुनिक सॉफ्टवेयर के साथ डिजाइन 13 00:00:44,950 --> 00:00:48,440 कि सहित जानकारी का उपयोग किया स्टीयरिंग और वाहन की स्थिति 14 00:00:48,440 --> 00:00:51,870 गाड़ी थी निर्धारित करने के लिए तेजी लाने के उत्सर्जन परीक्षण के दौर से गुजर। 15 00:00:51,870 --> 00:00:55,650 कि हालात के तहत, इंजन जहरीले उत्सर्जन को कम करेगा। 16 00:00:55,650 --> 00:00:59,070 लेकिन कार बाईपास से धांधली की गई थी कि इसे संचालित किया जा रहा था जब। 17 00:00:59,070 --> 00:01:03,320 उत्सर्जन 10-40 वृद्धि हुई स्वीकार्य ईपीए के स्तर से ऊपर गुना। 18 00:01:03,320 --> 00:01:04,280 >> [अंत प्लेबैक] 19 00:01:04,280 --> 00:01:05,220 >> डेविड जे मालन: तो चलो इस पर एक नज़र डालें 20 00:01:05,220 --> 00:01:07,250 और वास्तव में कैसे यह देखना लागू किया जा सकता है 21 00:01:07,250 --> 00:01:09,680 और यह कैसे प्रभावित कर सकता इस तरह से कई कारें। 22 00:01:09,680 --> 00:01:12,840 तो मेरे हाथ में यहां प्रेस कर रहे हैं कि EPA-- द्वारा जारी किया गया था रिलीज 23 00:01:12,840 --> 00:01:14,620 पर्यावरण संरक्षण एजेंसी है जो 24 00:01:14,620 --> 00:01:18,032 अमेरिकी नियामक एजेंसी है कि पर्यावरण संबंधी चिंताओं को संभालती है, 25 00:01:18,032 --> 00:01:19,740 और फिर वास्तविक था कि कानूनी नोटिस 26 00:01:19,740 --> 00:01:22,420 बस कुछ ही दिनों पहले वोक्सवैगन के लिए भेज देते हैं। 27 00:01:22,420 --> 00:01:26,530 >> तो ईपीए लिखते हैं, और अब खुलासा सार्वजनिक रूप से, एक अत्याधुनिक सॉफ्टवेयर 28 00:01:26,530 --> 00:01:29,390 कुछ पर एल्गोरिथ्म वोक्सवैगन वाहनों का पता लगाता है 29 00:01:29,390 --> 00:01:32,630 जब कार के दौर से गुजर रहा है आधिकारिक उत्सर्जन परीक्षण 30 00:01:32,630 --> 00:01:36,505 और पूर्ण उत्सर्जन बदल जाता है केवल परीक्षण के दौरान पर नियंत्रित करता है। 31 00:01:36,505 --> 00:01:38,380 की प्रभावशीलता इन वाहनों के प्रदूषण 32 00:01:38,380 --> 00:01:43,260 उत्सर्जन नियंत्रण उपकरणों के बहुत है सभी सामान्य ड्राइविंग के दौरान कम 33 00:01:43,260 --> 00:01:44,320 स्थितियों। 34 00:01:44,320 --> 00:01:48,190 यह पूरा करने वाले कारों में परिणाम प्रयोगशाला या परीक्षण में मानकों 35 00:01:48,190 --> 00:01:52,790 स्टेशन है, लेकिन सामान्य ऑपरेशन के दौरान नाइट्रोजन oxides-- या NOx-- फेंकना 36 00:01:52,790 --> 00:01:54,950 पर ऊपर से 40 बार मानक। 37 00:01:54,950 --> 00:01:58,220 वोक्सवैगन द्वारा उत्पादित सॉफ्टवेयर एक बोली गंदें शब्द बोलना, हार डिवाइस है, 38 00:01:58,220 --> 00:02:00,650 स्वच्छ द्वारा परिभाषित के रूप में अमेरिका में वायु अधिनियम। 39 00:02:00,650 --> 00:02:03,410 >> वे कहते हैं कि कहने पर चलते हैं ईपीए और एक अन्य एजेंसी 40 00:02:03,410 --> 00:02:07,020 हार डिवाइस का पर्दाफाश स्वतंत्र विश्लेषण के बाद सॉफ्टवेयर 41 00:02:07,020 --> 00:02:09,660 पश्चिम में शोधकर्ताओं द्वारा वर्जीनिया विश्वविद्यालय। 42 00:02:09,660 --> 00:02:14,160 NOx प्रदूषण के लिए योगदान नाइट्रोजन डाइऑक्साइड, जमीनी स्तर ओजोन, 43 00:02:14,160 --> 00:02:15,700 और ठीक बात कण। 44 00:02:15,700 --> 00:02:18,090 इन करने के लिए एक्सपोजर प्रदूषण से जोड़ा गया है 45 00:02:18,090 --> 00:02:20,870 की एक विस्तृत श्रृंखला के साथ गंभीर स्वास्थ्य प्रभाव, 46 00:02:20,870 --> 00:02:23,637 बढ़ी हुई अस्थमा सहित हमलों और अन्य सांस 47 00:02:23,637 --> 00:02:26,470 काफी गंभीर हो सकता है कि बीमारियों अस्पताल के लिए लोगों को भेजने के लिए। 48 00:02:26,470 --> 00:02:28,660 ओजोन के लिए एक्सपोजर और बात कण भी है 49 00:02:28,660 --> 00:02:31,960 समय से पहले साथ संबद्ध किया गया संबंधित सांस की वजह से मौत 50 00:02:31,960 --> 00:02:35,690 या हृदय प्रभाव से संबंधित है। 51 00:02:35,690 --> 00:02:38,940 बच्चे, बुजुर्ग, साथ लोगों को पहले से मौजूद सांस की बीमारी 52 00:02:38,940 --> 00:02:42,840 विशेष रूप से के लिए खतरा हैं इन प्रदूषकों के स्वास्थ्य के प्रभाव। 53 00:02:42,840 --> 00:02:45,056 >> इतना ही यह काफी गंभीर है, कहने के लिए है। 54 00:02:45,056 --> 00:02:46,930 और चलो पढ़ने के लिए पर चलते हैं सिर्फ एक और अंश 55 00:02:46,930 --> 00:02:49,370 और फिर हम पर एक नज़र रखना होगा अंतर्निहित निहितार्थ 56 00:02:49,370 --> 00:02:50,920 एक कार के संदर्भ में इस बात का। 57 00:02:50,920 --> 00:02:53,730 विशेष रूप से, वोक्सवैगन निर्मित और स्थापित 58 00:02:53,730 --> 00:02:56,210 तथाकथित में सॉफ्टवेयर इलेक्ट्रॉनिक नियंत्रण 59 00:02:56,210 --> 00:02:59,320 module-- या ECM-- की लगा कि इन वाहनों 60 00:02:59,320 --> 00:03:03,580 वाहन के लिए परीक्षण किया जा रहा था, जब ईपीए उत्सर्जन मानकों के अनुपालन। 61 00:03:03,580 --> 00:03:07,510 सहित विभिन्न सूचनाओं के आधार पर स्टीयरिंग व्हील की स्थिति, वाहन 62 00:03:07,510 --> 00:03:11,280 गति, इंजन की की अवधि आपरेशन, और बैरोमीटर का दबाव, 63 00:03:11,280 --> 00:03:13,720 इन सूचनाओं ठीक मानकों को नज़र रखी 64 00:03:13,720 --> 00:03:17,600 के लिए इस्तेमाल किया संघीय परीक्षण प्रक्रिया की ईपीए प्रमाण पत्र के लिए उत्सर्जन परीक्षण 65 00:03:17,600 --> 00:03:18,400 प्रयोजनों। 66 00:03:18,400 --> 00:03:21,850 >> ईपीए के उत्सर्जन परीक्षण के दौरान, वाहनों ईसीएम सॉफ्टवेयर 67 00:03:21,850 --> 00:03:25,060 उत्पादन किया जो सॉफ्टवेयर भागा शिकायत के उत्सर्जन का परिणाम है। 68 00:03:25,060 --> 00:03:28,340 सभी अन्य समय में, वाहन ईसीएम सॉफ्टवेयर 69 00:03:28,340 --> 00:03:31,090 एक अलग सड़क भागा जो कम अंशांकन 70 00:03:31,090 --> 00:03:34,360 की प्रभावशीलता समग्र उत्सर्जन नियंत्रण प्रणाली, 71 00:03:34,360 --> 00:03:37,864 विशेष रूप से चयनात्मक उत्प्रेरक झुक NOx की कमी trap-- 72 00:03:37,864 --> 00:03:39,280 जो हम एक पल में के बारे में देखेंगे। 73 00:03:39,280 --> 00:03:43,040 NOx का एक परिणाम के रूप में, उत्सर्जन 10 से 40 बार के एक पहलू की वृद्धि 74 00:03:43,040 --> 00:03:47,450 ईपीए के अनुरूप स्तर से ऊपर ड्राइव चक्र के प्रकार पर निर्भर करता है। 75 00:03:47,450 --> 00:03:50,800 >> यह वास्तव में मतलब है, और तो क्या हुआ सॉफ्टवेयर चलाने के लिए स्रोत कोड 76 00:03:50,800 --> 00:03:53,190 वोक्सवैगन पर नहीं है अभी तक सार्वजनिक रूप से खुलासा किया गया 77 00:03:53,190 --> 00:03:56,460 कि, प्रभावी ढंग से, यह है बराबर के अंदर कहीं है 78 00:03:56,460 --> 00:03:57,830 वोक्सवैगन कोड की। 79 00:03:57,830 --> 00:04:02,200 अगर आप परीक्षण किया है, और किया जा रहा है कार है, तो कुछ पर्यावरणीय कारकों का पता लगाता है 80 00:04:02,200 --> 00:04:04,330 स्टीयरिंग व्हील की तरह स्थिति या आंदोलन 81 00:04:04,330 --> 00:04:06,710 या कमी है कार की या उसके अन्य कारकों के किसी भी संख्या 82 00:04:06,710 --> 00:04:09,940 कि वर्तमान में धारणा कर रहे हैं इस सूत्र का हिस्सा बनने के लिए, 83 00:04:09,940 --> 00:04:12,370 वे बस मोड़ पर है | पूर्ण उत्सर्जन नियंत्रित करते हैं। 84 00:04:12,370 --> 00:04:15,670 दूसरे शब्दों में, वे शुरू प्रदूषण का कम उत्सर्जन। 85 00:04:15,670 --> 00:04:18,769 >> वरना, हर दूसरे स्थिति में यह जा रहा है के रूप में पहचान नहीं है जब 86 00:04:18,769 --> 00:04:20,790 प्रयोगशाला में, वे बस नहीं है। 87 00:04:20,790 --> 00:04:24,320 और तो आप और अधिक में इस सरल कर सकते हैं कुछ के साथ ठोस स्यूडोकोड 88 00:04:24,320 --> 00:04:24,820 इस तरह। 89 00:04:24,820 --> 00:04:27,810 पहियों मोड़ रहे हैं लेकिन अगर स्टीयरिंग व्हील, विचारोत्तेजक नहीं है 90 00:04:27,810 --> 00:04:30,060 कार से कुछ पर है कि घूर्णन सिलेंडर की तरह 91 00:04:30,060 --> 00:04:32,550 लेकिन किसी तरह का में गोदाम का परीक्षण किया जा रहा है, 92 00:04:32,550 --> 00:04:36,070 तब के रूप में व्यवहार ईपीए आप करना चाहते हैं। 93 00:04:36,070 --> 00:04:37,960 अन्यथा नहीं है। 94 00:04:37,960 --> 00:04:40,420 तो चलो एक नजर डालते हैं एक लघु वीडियो पर कि 95 00:04:40,420 --> 00:04:45,391 क्या निहितार्थ को देख लेता है वास्तव में यंत्रवत् इस के हैं। 96 00:04:45,391 --> 00:04:48,620 >> [वीडियो प्लेबैक] 97 00:04:48,620 --> 00:04:52,800 >> शुक्रवार -पिछले ईपीए ने घोषणा की है कि कुछ वोक्सवैगन ऑडी कारों 2009 के बीच किए गए 98 00:04:52,800 --> 00:04:55,840 और इस साल का उपयोग कर रहे थे एक तथाकथित हार डिवाइस 99 00:04:55,840 --> 00:04:59,060 उत्सर्जन कानूनों निजात पाने के लिए हवा को साफ रखने के लिए बनाया गया है। 100 00:04:59,060 --> 00:05:01,700 लेकिन यह है कि वास्तव में क्या मतलब है? 101 00:05:01,700 --> 00:05:04,666 >> खैर, आधुनिक कारों दर्जनों है उन्हें अंदर कंप्यूटरों की। 102 00:05:04,666 --> 00:05:07,040 और उन कंप्यूटरों के कुछ कार्यों के समन्वय में मदद 103 00:05:07,040 --> 00:05:09,590 इष्टतम के लिए इंजन की प्रदर्शन सुनिश्चित कर रही है, जबकि 104 00:05:09,590 --> 00:05:12,340 बहुत ज्यादा कचरा नहीं है कि निकास पाइप से बाहर आ रहा है। 105 00:05:12,340 --> 00:05:15,170 वे वास्तव में काम कर रहा है अब कई दशकों के लिए इस तरह से। 106 00:05:15,170 --> 00:05:17,380 असल में, हर हिस्से एक आधुनिक कार के इंजन की 107 00:05:17,380 --> 00:05:20,080 एक संवेदक या नियंत्रक है यह, और इन कंप्यूटरों पर 108 00:05:20,080 --> 00:05:23,460 डेटा के हजारों की संख्या में पढ़ रहे हैं दूसरी समायोजन करने के प्रति बार 109 00:05:23,460 --> 00:05:26,220 हवा के लिए ईंधन के अनुपात की तरह कि सिलेंडरों में जा रहा है। 110 00:05:26,220 --> 00:05:28,730 >> ये धोखा दे वोक्सवैगन और ऑडी मॉडल डीजल, कर रहे हैं 111 00:05:28,730 --> 00:05:30,890 और डीजल एक और है वास्तव में महत्वपूर्ण कंप्यूटर 112 00:05:30,890 --> 00:05:34,030 है जो नियंत्रित मापदंडों जा रहा बिना जली ईंधन की राशि 113 00:05:34,030 --> 00:05:35,200 निकास में। 114 00:05:35,200 --> 00:05:36,310 अब जब कि बुरा लग रहा है। 115 00:05:36,310 --> 00:05:39,642 आप चाहेंगे की तरह बात नहीं करता है निकास में जाने बिना जली ईंधन। 116 00:05:39,642 --> 00:05:41,600 लेकिन एक के मामले में डीजल, आप कुछ है 117 00:05:41,600 --> 00:05:46,110 एक युक्ति है जो एक NOx जाल कहा जाता है कि अवशोषण और नाइट्रोजन आक्साइड के लिए जाल 118 00:05:46,110 --> 00:05:48,880 प्रदूषण कि होता हैं कि अन्यथा वातावरण में चलते हैं। 119 00:05:48,880 --> 00:05:53,040 और कहा कि NOx जाल का असर बिना जली ईंधन के साथ बढ़ाया है। 120 00:05:53,040 --> 00:05:56,650 तो एक हार के इस उपकरण में एक विशेष कार्यक्रम है इन कंप्यूटरों के अंदर है कि यह कर सकते हैं 121 00:05:56,650 --> 00:05:59,527 कार उत्सर्जन को पूरा करती है की तरह लग रहे मानकों यह नहीं करता है, तब भी जब। 122 00:05:59,527 --> 00:06:01,110 वोक्सवैगन अपने हाथों पर एक समस्या थी। 123 00:06:01,110 --> 00:06:04,050 अपने डीजल इंजन में जाने जाते थे महान ईंधन अर्थव्यवस्था प्राप्त करने के लिए, 124 00:06:04,050 --> 00:06:07,510 लेकिन NOx जाल केवल अच्छी तरह से काम करता है अधिक ईंधन का इस्तेमाल किया जा रहा है। 125 00:06:07,510 --> 00:06:10,460 तो कार का पता लगाने जाएगा इस हार के उपकरण का उपयोग कर, 126 00:06:10,460 --> 00:06:13,870 यह एक उत्सर्जन हो रही थी जब परीक्षण, इसे और अधिक ईंधन का प्रयोग करेंगे, 127 00:06:13,870 --> 00:06:16,830 अच्छी तरह से NOx जाल काम करना, उत्सर्जन ठीक हो जाएगा। 128 00:06:16,830 --> 00:06:21,130 लेकिन फिर आप सड़क पर उपकरण प्राप्त बंद हो जाती है, तो आप कम ईंधन जल रहे हैं 129 00:06:21,130 --> 00:06:24,256 लेकिन आप के रूप में ज्यादा के रूप में 40 बार डाल रहे हैं वातावरण में अधिक प्रदूषण। 130 00:06:24,256 --> 00:06:26,130 लेकिन बिल्ली कैसे किया कार यह था कि पता 131 00:06:26,130 --> 00:06:27,720 उत्सर्जन अनुपालन के लिए परीक्षण किया जा रहा है? 132 00:06:27,720 --> 00:06:30,590 ईपीए यह एक परिष्कृत था कहते हैं चीजों की जाँच की है कि सिस्टम 133 00:06:30,590 --> 00:06:34,090 स्टीयरिंग व्हील स्थिति की तरह है, गति, इंजन पर था, कब तक 134 00:06:34,090 --> 00:06:35,507 और यहां तक ​​कि वायुमंडलीय दबाव। 135 00:06:35,507 --> 00:06:37,673 दूसरे शब्दों में, वहाँ था कोई रास्ता नहीं इस आकस्मिक था 136 00:06:37,673 --> 00:06:40,260 सॉफ्टवेयर था क्योंकि पता लगाने के लिए बहुत सावधानी से तैयार 137 00:06:40,260 --> 00:06:41,630 एक अधिकारी के उत्सर्जन परीक्षण। 138 00:06:41,630 --> 00:06:43,588 यही कारण है कि कुछ बहुत गंभीर है धोखे और है कि 139 00:06:43,588 --> 00:06:45,420 क्यों वोक्सवैगन में है इस तरह के गंभीर संकट। 140 00:06:45,420 --> 00:06:48,600 वास्तव में, उनके सीईओ मार्टिन Winterkorn, बस नीचे कदम रखा। 141 00:06:48,600 --> 00:06:49,820 >> तो आगे क्या होता है? 142 00:06:49,820 --> 00:06:53,900 वैसे आप डेढ़ लाख से एक रहे हैं, यदि डीजल Jettas, बीटल्स, golfs, Passats, 143 00:06:53,900 --> 00:06:56,220 या ऑडी A3s, प्रभावित अच्छी खबर यह है 144 00:06:56,220 --> 00:06:57,886 कि आपकी कार अभी भी ड्राइव करने के लिए सुरक्षित है। 145 00:06:57,886 --> 00:07:00,510 आप इसे दूर रखा करने की जरूरत नहीं है वोक्सवैगन एक याद जारी करता है जब तक। 146 00:07:00,510 --> 00:07:02,509 लेकिन कुछ बिंदु पर वे कर रहे हैं शायद लिए किया जा रहा 147 00:07:02,509 --> 00:07:04,230 अपनी कार के अंदर सॉफ्टवेयर को अपडेट करने के लिए। 148 00:07:04,230 --> 00:07:06,927 जब ऐसा होता है तुम हो सकता है टैंक प्रति कम मील मिलता है। 149 00:07:06,927 --> 00:07:09,260 वकीलों पहले से ही कमर कस रहे हैं क्लास एक्शन मुकदमों के लिए साइन अप 150 00:07:09,260 --> 00:07:12,500 इसलिए मालिकों को मुआवजा मिल सकता है भविष्य में कुछ बिंदु पर। 151 00:07:12,500 --> 00:07:15,832 लेकिन यह है कि करने के लिए नहीं जा रहा है जल्द ही किसी भी समय होता है। 152 00:07:15,832 --> 00:07:16,711 >> [अंत प्लेबैक] 153 00:07:16,711 --> 00:07:19,960 डेविड जे मालन: तो यह वास्तव में उठाती है एक दिलचस्प बड़ी तस्वीर सवाल 154 00:07:19,960 --> 00:07:20,660 के रूप में विश्वास करने के लिए। 155 00:07:20,660 --> 00:07:21,160 है ना? 156 00:07:21,160 --> 00:07:24,300 हम सब आईफ़ोन या Androids है या हमारी जेब में कुछ सबसे अधिक संभावना 157 00:07:24,300 --> 00:07:26,500 इन दिनों, या लैपटॉप कर रहे हैं कि हमारी गोद पर 158 00:07:26,500 --> 00:07:28,510 बना चल सॉफ्टवेयर एप्पल और माइक्रोसॉफ्ट द्वारा 159 00:07:28,510 --> 00:07:30,710 अन्य कंपनियों के गुच्छों। 160 00:07:30,710 --> 00:07:34,240 लेकिन हम कैसे जानते हैं कि क्या करना है इन सॉफ्टवेयर उत्पादों कर रहे हैं 161 00:07:34,240 --> 00:07:37,680 क्या ये वास्तव में है कंपनियों के लिए वे क्या कर रहे हैं कहते हैं? 162 00:07:37,680 --> 00:07:39,610 >> उदाहरण के लिए, जो करने के लिए है का कहना है कि हर बार जब आप 163 00:07:39,610 --> 00:07:42,200 अपने iPhone पर एक फोन करना या एंड्रॉयड फोन या की तरह, 164 00:07:42,200 --> 00:07:45,650 उस फोन नंबर भी नहीं है कि कुछ कंपनी के सर्वर पर अपलोड किया जा रहा 165 00:07:45,650 --> 00:07:48,399 कुछ कार्यक्रम की आप है क्योंकि यह ऑपरेटिंग है, चाहे लिखित 166 00:07:48,399 --> 00:07:51,070 आईओएस या एंड्रॉयड प्रणाली की तरह ही है, या आप डाउनलोड की है क्योंकि 167 00:07:51,070 --> 00:07:53,880 कुछ तीसरे पक्ष के अनुप्रयोग किसी भी तरह सुन रहा है 168 00:07:53,880 --> 00:07:57,120 सब कुछ करने के लिए आप लिख रहे हैं या सब कुछ आप वास्तव में कह रहे हैं। 169 00:07:57,120 --> 00:07:59,500 आप जानते हैं कि कैसे, कब तुम लोगों को बजना चल रहे हैं 170 00:07:59,500 --> 00:08:02,590 या संकलन करने के लिए सुनिश्चित करें कि आपकी CS50, कैसे में अपने सॉफ्टवेयर 171 00:08:02,590 --> 00:08:06,080 आपको लगता है कि CS50 के अपने स्टाफ करते हैं, CS50 पुस्तकालय के माध्यम से, 172 00:08:06,080 --> 00:08:08,690 हर प्रवेश करने नहीं किया गया है यदि आप कभी भी मिल गया है स्ट्रिंग 173 00:08:08,690 --> 00:08:10,276 या हर आप कभी भी मिल गया इंच? 174 00:08:10,276 --> 00:08:12,900 ठीक है, तुम निश्चित रूप से लग सकता है कुछ के लिए स्रोत कोड पर 175 00:08:12,900 --> 00:08:15,233 CS50 पुस्तकालय की तरह, तुम स्रोत कोड पर लग सकता है 176 00:08:15,233 --> 00:08:18,170 लिनक्स ऑपरेटिंग सिस्टम के लिए CS50 आईडीई पर चल रहा है। 177 00:08:18,170 --> 00:08:23,090 लेकिन एक अद्भुत प्रस्तुति 1984 में वापस दे दिया गया था 178 00:08:23,090 --> 00:08:26,730 एक से ट्यूरिंग पुरस्कार की प्राप्ति में नाम से जाना बहुत प्रसिद्ध कंप्यूटर वैज्ञानिक 179 00:08:26,730 --> 00:08:29,750 नामित केन थॉम्पसन as-- कौन ट्यूरिंग पुरस्कार प्राप्त किया, जो 180 00:08:29,750 --> 00:08:33,500 कंप्यूटर विज्ञान की की तरह है नोबेल पुरस्कार, अगर तुम जाएगा, 181 00:08:33,500 --> 00:08:35,309 एक पर अपने काम के लिए ऑपरेटिंग सिस्टम कहा जाता 182 00:08:35,309 --> 00:08:39,039 में बहुत समान है, जो यूनिक्स, हम जो उपयोग करने के लिए क्या भावना लिनक्स है। 183 00:08:39,039 --> 00:08:41,960 और सवाल यह है कि वह में पूछा, उसके अनिवार्य रूप से स्वीकृति भाषण, 184 00:08:41,960 --> 00:08:44,910 के लिए ढांचे के नीचे बिछाने साल और चर्चा का वर्ष 185 00:08:44,910 --> 00:08:46,970 विश्वास और सुरक्षा के बारे में, इस थी। 186 00:08:46,970 --> 00:08:50,410 किस हद तक होना चाहिए एक ट्रस्ट एक करने के लिए एक एक टुकड़ा program-- उस बयान 187 00:08:50,410 --> 00:08:53,010 के software-- ट्रोजन घोड़े से मुक्त है? 188 00:08:53,010 --> 00:08:56,500 शायद यह विश्वास करने के लिए और अधिक महत्वपूर्ण है सॉफ्टवेयर लिखा है जो लोगों को। 189 00:08:56,500 --> 00:08:58,650 >> और वास्तव में, हम जुड़ा हुआ है बात करने के लिए कि वह 190 00:08:58,650 --> 00:09:02,400 यह पुरस्कार स्वीकार करते समय दिया CS50 की वेबसाइट पर 80 के दशक में 191 00:09:02,400 --> 00:09:04,030 आज के लिए व्याख्यान पेज के नीचे। 192 00:09:04,030 --> 00:09:06,071 आप क्या देखेंगे क्योंकि वह वास्तव में देता है 193 00:09:06,071 --> 00:09:09,430 कैसे भी की एक काफी सरल उदाहरण बजना या जो कुछ भी तरह एक संकलक 194 00:09:09,430 --> 00:09:13,950 दूसरों अतीत में इस्तेमाल किया compilers, संकलक हम में एम्बेडेड है, तो क्या 195 00:09:13,950 --> 00:09:18,190 अपने आप को अगर थोड़ा है प्रयोग कर रहे हैं अनिवार्य रूप से कहते हैं कि हालत, 196 00:09:18,190 --> 00:09:22,360 आप इस कोड का उपयोग कर रहा है कि नोटिस GetString समारोह या GetInt 197 00:09:22,360 --> 00:09:26,600 समारोह, आगे बढ़ो और सम्मिलित एक पीछे के दरवाजे या एक ट्रोजन घोड़ा 198 00:09:26,600 --> 00:09:29,340 ऐसी है कि लगता है कि कार्यक्रम अब कुछ शून्य है 199 00:09:29,340 --> 00:09:30,930 और दुर्भावनापूर्ण कुछ करना है कि लोगों को। 200 00:09:30,930 --> 00:09:33,080 के सभी प्रवेश अपने कि डेटा अपलोड कीस्ट्रोक्स, 201 00:09:33,080 --> 00:09:35,100 कुछ सर्वर, या वास्तव में कुछ भी करने के लिए। 202 00:09:35,100 --> 00:09:37,290 >> और क्या केन थॉम्पसन उसकी बात में क्या करने के लिए पर चला जाता है 203 00:09:37,290 --> 00:09:40,580 यहां तक ​​कि अगर प्रदर्शन है आप स्रोत का उपयोग किया है 204 00:09:40,580 --> 00:09:43,794 एक संकलक का कोड है कि दुर्भावनापूर्ण रूप से, यह क्या कर रही हो सकता है 205 00:09:43,794 --> 00:09:46,210 इसकी वजह यह कोई फर्क नहीं पड़ता इस चिकन और अंडे भी नहीं है 206 00:09:46,210 --> 00:09:49,500 पिछले कई की वास्तविकता वर्ष जिससे compilers 207 00:09:49,500 --> 00:09:51,960 खुद को संकलित करने के लिए इस्तेमाल कर रहे हैं। 208 00:09:51,960 --> 00:09:55,440 दूसरे शब्दों में, जिस तरह से वापस जब कोई पहले संकलक लिखा है था। 209 00:09:55,440 --> 00:09:59,060 और उसके बाद, किसी भी समय वे नवीनीकृत किया है इसके स्रोत कोड को बदलकर एक संकलक, 210 00:09:59,060 --> 00:10:02,020 सुविधाओं को जोड़ने और इसे फिर कंपाइल हमारे जैसे लोगों का उपयोग करने के लिए, ठीक है, 211 00:10:02,020 --> 00:10:04,270 वे पुराने का उपयोग कर रहे हैं संकलक के संस्करण 212 00:10:04,270 --> 00:10:06,370 नए संकलन करने के लिए संकलक के संस्करण। 213 00:10:06,370 --> 00:10:08,370 और अगर आप एक बार देख ले, तो वह दे दिया है कि बात में, 214 00:10:08,370 --> 00:10:10,970 आप क्योंकि देखेंगे कि कि घेरा की, 215 00:10:10,970 --> 00:10:14,330 आप वास्तव में कीड़े हो सकता है या ट्रोजन घोड़े सॉफ्टवेयर में एम्बेडेड 216 00:10:14,330 --> 00:10:14,990 हम प्रयोग कर रहे हैं। 217 00:10:14,990 --> 00:10:18,010 और अपने आप को देखो, भले ही उन कार्यक्रमों के लिए स्रोत कोड, 218 00:10:18,010 --> 00:10:21,550 यह भी स्पष्ट नहीं हो सकता है प्रवंचना वास्तव में है क्योंकि 219 00:10:21,550 --> 00:10:24,710 एक के कुछ पुराने संस्करण में कभी के बाद से किया गया है कि संकलक 220 00:10:24,710 --> 00:10:27,340 हमारे सॉफ्टवेयर में खतरा इंजेक्शन। 221 00:10:27,340 --> 00:10:29,740 >> जो केवल हम कहने के लिए वास्तव में नहीं कर सकते हैं और नहीं करना चाहिए 222 00:10:29,740 --> 00:10:32,939 विश्वास सॉफ्टवेयर हमारे लैपटॉप पर चल रहा है फोन या स्थानों के किसी भी नंबर या। 223 00:10:32,939 --> 00:10:36,230 और वास्तव में, बाद में जब इस सेमेस्टर में हम वेब प्रोग्रामिंग के बारे में बात शुरू 224 00:10:36,230 --> 00:10:38,521 और वास्तव में निर्माण शुरू वेब अनुप्रयोगों खुद को, 225 00:10:38,521 --> 00:10:40,285 हम इन के बारे में बात करेंगे धमकियों और अन्य शामिल हैं। 226 00:10:40,285 --> 00:10:43,410 अब, तुम सोच रहा है और देखा हो सकता है एक छोटे से डार्थ था कि वहाँ 227 00:10:43,410 --> 00:10:45,842 क्लिप में वादेर कि कगार वहाँ दिखा रहा था 228 00:10:45,842 --> 00:10:47,550 वोक्सवैगन के बारे में। यदि आप कभी नहीं देखा है, मैं 229 00:10:47,550 --> 00:10:49,190 हम हल्का होना चाहिए था मूड यह सब है, क्योंकि 230 00:10:49,190 --> 00:10:50,780 बहुत ही निराशाजनक और भयावह। 231 00:10:50,780 --> 00:10:52,910 मैं वापस देखने के लिए जा रहा हूँ सुपर बाउल 2011 232 00:10:52,910 --> 00:10:55,300 जब से एक वाणिज्यिक Volkswagen-- और इस 233 00:10:55,300 --> 00:10:59,620 लगभग again-- उन्हें आकर्षक बना देता है टीवी पर पहली बार के लिए प्रसारित किया गया। 234 00:10:59,620 --> 00:11:04,039 यह 60 सेकंड क्लिप है मैं तुम्हें मजा करेंगे लगता है कि। 235 00:11:04,039 --> 00:11:04,705 [वीडियो प्लेबैक] 236 00:11:04,705 --> 00:11:08,198 [संगीत - 'स्टार वार्स' से थीम] 237 00:11:08,198 --> 00:11:35,643 238 00:11:35,643 --> 00:11:38,138 [कुत्ता भौंकता है] 239 00:11:38,138 --> 00:11:50,114 240 00:11:50,114 --> 00:11:53,607 [गाड़ी शुरू होता है] 241 00:11:53,607 --> 00:12:04,086 242 00:12:04,086 --> 00:12:05,955 [अंत प्लेबैक] 243 00:12:05,955 --> 00:12:06,830 डेविड जे मालन: हाँ। 244 00:12:06,830 --> 00:12:07,663 मैं बस देख रहा था। 245 00:12:07,663 --> 00:12:11,360 यही कारण है कि कार के उल्लंघन की सूची में है। 246 00:12:11,360 --> 00:12:12,000 ठीक है। 247 00:12:12,000 --> 00:12:14,040 इसलिए हम कुछ को देखो एक पल पहले pseudocode। 248 00:12:14,040 --> 00:12:15,380 और यहाँ एक बड़ा है स्यूडोकोड कोड का टुकड़ा 249 00:12:15,380 --> 00:12:16,921 कि हम इस प्रकार अब तक एक बार कुछ देखा है। 250 00:12:16,921 --> 00:12:19,970 और चलो यह एक अवसर है का उपयोग करते हैं अब एक नई प्रोग्रामिंग शुरू करने की 251 00:12:19,970 --> 00:12:23,776 हमने किया है कि तकनीक एल्गोरिदम देखना 252 00:12:23,776 --> 00:12:25,400 पिछले सप्ताह हमने मर्ज तरह से देखा। 253 00:12:25,400 --> 00:12:28,270 लेकिन इसका औपचारिक और कैसे देखते हैं हम वास्तविक कोड में इसका इस्तेमाल हो सकता है 254 00:12:28,270 --> 00:12:30,350 और फिर हम इस का उपयोग करने के लिए जा रहे हैं सड़क के नीचे तकनीक सबसे 255 00:12:30,350 --> 00:12:32,000 कुछ अन्य समस्याओं को हल करने की संभावना है। 256 00:12:32,000 --> 00:12:35,790 >> तो यह पहली कार्यक्रमों में से एक था हम कभी स्यूडोकोड कोड में ही सही, लिखा था। 257 00:12:35,790 --> 00:12:37,790 और क्या इस कार्यक्रम हमें पाठ्यक्रम करने की अनुमति दी 258 00:12:37,790 --> 00:12:41,510 एक फोन की किताब में माइक स्मिथ मिल गया था। 259 00:12:41,510 --> 00:12:46,216 और विशेष रूप से लाइनों आठ में नोटिस और यह जाने का बयान था, जिसमें 11। 260 00:12:46,216 --> 00:12:48,090 और वास्तव में, कुछ भाषाओं, उन के बीच सी, 261 00:12:48,090 --> 00:12:50,006 वास्तव में एक की क्या ज़रूरत है सचमुच है कि बयान 262 00:12:50,006 --> 00:12:52,710 कि करने के लिए आपको अनुमति देता है के लिए जाना एक विशिष्ट लाइन के लिए कूद। 263 00:12:52,710 --> 00:12:55,470 यह आम तौर पर क्योंकि पर सिकोड़ी यह बहुत आसानी से दुरुपयोग किया जा सकता 264 00:12:55,470 --> 00:12:58,490 और तुम कूद शुरू कर सकते हैं अपने विरोध के रूप में सभी जगह कार्यक्रम 265 00:12:58,490 --> 00:13:00,690 एक तरह से उपयोग करने के लिए तर्क और नियंत्रण प्रवाह 266 00:13:00,690 --> 00:13:04,000 हम बस के साथ इस प्रकार अब तक का उपयोग किया है कि छोरों और शर्तों और पसंद है। 267 00:13:04,000 --> 00:13:08,660 >> लेकिन हम इस एल्गोरिथ्म सरल कर सकते हैं स्यूडोकोड कोड के रूप में इस प्रकार है। 268 00:13:08,660 --> 00:13:11,250 इसके बजाय यह चलने की या दृष्टिकोण पाशन 269 00:13:11,250 --> 00:13:14,160 जहां हम वापस जा रहा रखने और पीठ और वापस तीन लाइन के लिए, 270 00:13:14,160 --> 00:13:18,300 यही कारण है कि हम सिर्फ एक तरह से बाज़ी और अधिक नहीं है आम तौर पर, लाइन सात और 10 में कहते हैं 271 00:13:18,300 --> 00:13:20,570 सिर्फ उन दो की जगह साथ लाइनों के जोड़े, 272 00:13:20,570 --> 00:13:22,810 स्मिथ ने पहले है और अगर पुस्तक में हम करेंगे 273 00:13:22,810 --> 00:13:25,110 में माइक के लिए खोज किताब के बाईं आधा। 274 00:13:25,110 --> 00:13:28,560 स्मिथ में बाद में है और अगर किताब, सही में माइक के लिए खोज 275 00:13:28,560 --> 00:13:29,540 आधा किताब। 276 00:13:29,540 --> 00:13:31,180 और पहले से ही घेरा नोटिस। 277 00:13:31,180 --> 00:13:31,680 है ना? 278 00:13:31,680 --> 00:13:34,250 मैं में माइक के लिए खोज कर रहा हूँ फोन की किताब और उसके बाद 279 00:13:34,250 --> 00:13:37,090 मैं अंत में शायद मारा लाइन में सात या शायद लाइन 10 280 00:13:37,090 --> 00:13:41,089 और खुद के लिए मेरे निर्देशों खोज है फोन की किताब में से आधे में माइक के लिए। 281 00:13:41,089 --> 00:13:42,380 खैर, मैं कैसे माइक के लिए खोज करते हैं? 282 00:13:42,380 --> 00:13:44,213 मैं के बीच में हूँ माइक, क्यों के लिए खोज 283 00:13:44,213 --> 00:13:45,860 आप की तरह एक सर्कल में मुझे भेज रहे हैं? 284 00:13:45,860 --> 00:13:49,590 लेकिन क्या है कि क्योंकि ठीक है समस्या के आकार के लिए हो रहा है, 285 00:13:49,590 --> 00:13:52,630 लाइन 7 और 10 में लिखित रूप में? 286 00:13:52,630 --> 00:13:54,989 हम सिर्फ खोज नहीं कह रहे हैं माइक के लिए, माइक के लिए खोज। 287 00:13:54,989 --> 00:13:56,280 हम विशेष रूप से क्या कह रहे हैं? 288 00:13:56,280 --> 00:13:58,694 289 00:13:58,694 --> 00:14:01,610 के बाईं छमाही में उसके लिए खोज प्रभावी ढंग से है जो सही आधा 290 00:14:01,610 --> 00:14:03,440 समस्या के आधे आकार। 291 00:14:03,440 --> 00:14:07,170 तो यह है कि हम एक तरह से कर रहे हैं, वह ठीक है इस घेरा में आकर्षक, 292 00:14:07,170 --> 00:14:09,180 इस परिपत्र तर्क है, कम से कम हम कर रहे हैं, क्योंकि 293 00:14:09,180 --> 00:14:11,090 समस्या और छोटे छोटे बना रही है। 294 00:14:11,090 --> 00:14:14,220 और अंततः हम तक पहुंचने के लिए जा रहे हैं कि तथाकथित आधार के मामले जहां 295 00:14:14,220 --> 00:14:16,780 हम सिर्फ एक पेज है left-- हमारे स्वयंसेवक पिछले सप्ताह के रूप में 296 00:14:16,780 --> 00:14:18,684 did-- हम एक पृष्ठ पड़ा फिर छोड़ दिया और हम नहीं करते 297 00:14:18,684 --> 00:14:21,600 माइक स्मिथ के लिए खोज कर रख दिया है वह उस पेज पर भी है क्योंकि 298 00:14:21,600 --> 00:14:23,080 या वह नहीं है। 299 00:14:23,080 --> 00:14:27,480 >> इसलिए हम इस विचार से, यह कैसे लागू कर सकते वास्तविक कोड में घेरा की तरह? 300 00:14:27,480 --> 00:14:31,030 खैर, हम एक तकनीक का लाभ उठाने कर सकते हैं कि आम तौर पर प्रत्यावर्तन के रूप में जाना जाता है। 301 00:14:31,030 --> 00:14:33,960 और हम में यह देखा है मर्ज प्रकार के लिए स्यूडोकोड पिछले सप्ताह। 302 00:14:33,960 --> 00:14:37,190 यह था कि स्मरण करो मर्ज प्रकार के लिए स्यूडोकोड। 303 00:14:37,190 --> 00:14:40,560 यह यकीनन से भी आसान है बुलबुला या चयन या प्रविष्टि प्रकार 304 00:14:40,560 --> 00:14:43,310 सिर्फ सादगी के मामले में जिसके साथ आप यह व्यक्त कर सकते हैं। 305 00:14:43,310 --> 00:14:46,750 >> लेकिन यह है कि क्योंकि है हम तरह चक्राकार की हैं 306 00:14:46,750 --> 00:14:51,350 कुछ के लिए खोज, कह रही इसके लिए फिर से खोज के द्वारा। 307 00:14:51,350 --> 00:14:53,960 लेकिन हम किसी पर खोज कर रहे हैं बाईं आधा या सही आधा 308 00:14:53,960 --> 00:14:56,070 और फिर अंत में हम कर रहे हैं इस मामले में विलय। 309 00:14:56,070 --> 00:14:58,520 लेकिन यहां भी, साथ उन दो तरह लाइनों, 310 00:14:58,520 --> 00:15:01,320 हम फिर से इस के लिए किया है प्रत्यावर्तन का विचार है। 311 00:15:01,320 --> 00:15:05,350 और वस्तुतः इस का मतलब क्या है, एक एल्गोरिथ्म के संदर्भ में, 312 00:15:05,350 --> 00:15:10,880 एक एल्गोरिथ्म पुनरावर्ती है इसे इस्तेमाल करता है या खुद को कहता है। 313 00:15:10,880 --> 00:15:14,330 >> या सी के संदर्भ में एक समारोह है कहा जाता है एक समारोह recursive-- 314 00:15:14,330 --> 00:15:18,510 Foo, foo यदि पुनरावर्ती है कहीं न कहीं अपने स्रोत कोड में, 315 00:15:18,510 --> 00:15:21,250 समारोह foo ही कहता है। 316 00:15:21,250 --> 00:15:25,790 और यह सब foo कभी करता है तो बुरा है बार-बार खुद को कहते हैं। 317 00:15:25,790 --> 00:15:30,600 Foo के अंत में बंद हो जाता है, तो करता है, क्योंकि यह ठीक है कह कर, तरह विलय एक मिनट रुको, 318 00:15:30,600 --> 00:15:32,980 इस समस्या को सुपर है, तो छोटे, उदाहरण के लिए, 319 00:15:32,980 --> 00:15:35,840 या मैं मैं कर रहा हूँ जिसे उसे मिल गया खोज रहा है, सिर्फ वापसी। 320 00:15:35,840 --> 00:15:41,000 बारी बारी से, नहीं ऐसा मत करो चक्रीय फिर से अपने आप को कहते हैं। 321 00:15:41,000 --> 00:15:44,200 >> और तो है पर एक नजर डालते हैं यह वास्तव में कैसे काम कर सकते। 322 00:15:44,200 --> 00:15:48,430 तो मैं आगे और खुले जाने के लिए जा रहा हूँ यहां दो स्रोत कोड उदाहरण अप। 323 00:15:48,430 --> 00:15:50,321 जिनमें से एक सिग्मा 0 कहा जाता है। 324 00:15:50,321 --> 00:15:52,320 और यह बिल्कुल नहीं है पुनरावर्ती, लेकिन हम ले चलो 325 00:15:52,320 --> 00:15:53,694 एक इस कार्यक्रम क्या करता है पर देखो। 326 00:15:53,694 --> 00:15:55,737 मैं सब बाहर छीन लिया है लेकिन यह सब से टिप्पणी 327 00:15:55,737 --> 00:15:58,070 CS50 पर स्रोत कोड की वेबसाइट अगर आप टिप्पणी की है 328 00:15:58,070 --> 00:15:59,570 फिर बाद में यह माध्यम से पढ़ने के लिए चाहते हैं। 329 00:15:59,570 --> 00:16:02,010 और चलो एक जोड़े करते हैं विवेक के यहाँ जाँच करता है। 330 00:16:02,010 --> 00:16:06,640 >> इस कोड के शीर्ष पर तो हम CS50.h. शामिल है 331 00:16:06,640 --> 00:16:07,650 यह क्या करता है? 332 00:16:07,650 --> 00:16:08,990 ऐसा क्यों है कि यहाँ है? 333 00:16:08,990 --> 00:16:11,740 उचित आम आदमी की दृष्टि में। 334 00:16:11,740 --> 00:16:12,424 वह क्या करता है? 335 00:16:12,424 --> 00:16:12,858 हाँ। 336 00:16:12,858 --> 00:16:14,160 >> दर्शकों: GetInt समारोह काम करता है तो। 337 00:16:14,160 --> 00:16:16,243 >> डेविड जे मालन: तो यह है कि GetInt समारोह काम करता है। 338 00:16:16,243 --> 00:16:18,115 इस के अंदर क्योंकि फ़ाइल, CS50.h, जो 339 00:16:18,115 --> 00:16:20,950 हम लंबे समय में पहले देखेंगे इसके स्रोत कोड के संदर्भ में, 340 00:16:20,950 --> 00:16:23,270 कार्यों का एक गुच्छा है declared-- GetInt, GetString, 341 00:16:23,270 --> 00:16:26,950 others-- की और जब तक एक गुच्छा और हम वास्तव में, कि लाइन को शामिल किया है 342 00:16:26,950 --> 00:16:29,320 संकलक बजना नहीं है यह मौजूद है पता करने के लिए जा रहा है। 343 00:16:29,320 --> 00:16:32,400 और एक ही पंक्ति के लिए चला जाता है पूर्णांक परिभाषित किया गया है, जहां दो 344 00:16:32,400 --> 00:16:35,101 एक समारोह है जो printf, हम काफी एक बिट का उपयोग कर रखना। 345 00:16:35,101 --> 00:16:37,850 अब, लाइन चार एक छोटे कायरता लगती है यह सिर्फ एक एक जहाज है, क्योंकि। 346 00:16:37,850 --> 00:16:41,570 यह कोई घुंघराले, अर्धविराम मिल गया है ब्रेसिज़, इसके अंदर कोई कोड। 347 00:16:41,570 --> 00:16:44,640 लेकिन क्या हम फोन किया था सप्ताह के अतीत में इस बात? 348 00:16:44,640 --> 00:16:45,140 हाँ। 349 00:16:45,140 --> 00:16:46,060 तो एक प्रोटोटाइप। 350 00:16:46,060 --> 00:16:48,390 और यही कारण है कि हम एक की क्या ज़रूरत है लगता है जो प्रोटोटाइप 351 00:16:48,390 --> 00:16:51,050 एक छोटे बेमानी हो आम तौर पर आम तौर पर हम क्योंकि 352 00:16:51,050 --> 00:16:53,474 फिर से समारोह को देखने के बाद में फाइल में, है ना? 353 00:16:53,474 --> 00:16:56,390 तो क्यों न हम तुम सिर्फ कर रहे have-- करना अपने सिर scratching लेकिन मैं इसे ले जाऊँगा। 354 00:16:56,390 --> 00:16:57,302 हाँ। 355 00:16:57,302 --> 00:17:00,000 >> दर्शकों: [अश्राव्य] मुख्य बाद समारोह। 356 00:17:00,000 --> 00:17:01,000 डेविड जे मालन: बिल्कुल। 357 00:17:01,000 --> 00:17:04,089 संकलक आप जानता है कि अंत में परिभाषित या लागू करेगी 358 00:17:04,089 --> 00:17:06,579 संभवतः मुख्य बाद उस समारोह,। 359 00:17:06,579 --> 00:17:08,462 तो बजना और सबसे compilers तरह का गूंगा कर रहे हैं 360 00:17:08,462 --> 00:17:10,510 और वे ही पता चल जाएगा क्या आप उन्हें बताओ। 361 00:17:10,510 --> 00:17:12,569 और आप का उपयोग करना चाहते हैं तो सिग्मा नामक एक समारोह में, 362 00:17:12,569 --> 00:17:15,710 क्या आप बेहतर संकलक सिखाने कि यह पहले से ही मौजूद है। 363 00:17:15,710 --> 00:17:17,970 >> अब, मुख्य ही है, यहां तक ​​कि यह लाइनों का एक गुच्छा है, हालांकि, 364 00:17:17,970 --> 00:17:19,839 अब तक उम्मीद है कि बहुत परिचित है। 365 00:17:19,839 --> 00:17:21,942 यह एक Do पाश जबकि मिल गया है जीवन में जिसका उद्देश्य 366 00:17:21,942 --> 00:17:24,400 यहाँ जाहिरा तौर पर एक को मिल रहा है उपयोगकर्ता से सकारात्मक पूर्णांक। 367 00:17:24,400 --> 00:17:27,349 और अभी उसे तंग कर रख या उसे वे सहयोग जब तक। 368 00:17:27,349 --> 00:17:30,670 फिर लाइन 16 में मेरे पास है एक दिलचस्प कॉल। 369 00:17:30,670 --> 00:17:31,570 IntAnswer। 370 00:17:31,570 --> 00:17:33,710 बाएं हाथ पर कौन सा ओर मुझे एक इंट देता है 371 00:17:33,710 --> 00:17:36,650 Answer-- बुलाया store-- सकता है, जो स्टोर करने के लिए जा रहा है, जो जाहिर है, 372 00:17:36,650 --> 00:17:39,090 सिग्मा की वापसी के लिए मूल्य। 373 00:17:39,090 --> 00:17:41,840 तो सिग्मा सिर्फ एक है मनमाना लेकिन सार्थक नाम 374 00:17:41,840 --> 00:17:44,500 मैं एक समारोह के लिए दिया है कि जीवन में जिसका उद्देश्य 375 00:17:44,500 --> 00:17:47,680 एक argument-- ले रहा है हम इस case-- में एन फोन करता हूँ 376 00:17:47,680 --> 00:17:52,280 और सिर्फ इतना है कि संख्या की राशि लेने के लिए प्लस हर सकारात्मक संख्या कि 377 00:17:52,280 --> 00:17:53,200 यह तुलना में छोटा होता है। 378 00:17:53,200 --> 00:17:58,140 >> मैं करने के लिए नंबर 2 में पारित तो अगर सिग्मा, मैं जोड़ना चाहते हैं 2 प्लस 1 379 00:17:58,140 --> 00:18:00,240 प्लस 0-- इसलिए कि मुझे 3 देता नहीं 0--। 380 00:18:00,240 --> 00:18:05,320 मैं सिग्मा को तीन में से गुजरती है, मैं चाहता हूँ 3 प्लस 2 प्लस 1 है, जो मुझे 6 देता है। 381 00:18:05,320 --> 00:18:05,900 इत्यादि। 382 00:18:05,900 --> 00:18:09,750 तो यह सिर्फ कहते हैं सभी यह संख्या कम से कम या बराबर। 383 00:18:09,750 --> 00:18:12,040 >> अब, यहाँ नीचे मैं सिर्फ जा रहा हूँ जवाब बाहर मुद्रित करने के लिए। 384 00:18:12,040 --> 00:18:17,330 तो एक त्वरित मानसिक स्वास्थ्य की जांच के रूप में, चलो सिग्मा 0-- डॉट स्लेश सिग्मा बनाने 0-- 385 00:18:17,330 --> 00:18:18,690 और मुझे 2 में टाइप करते हैं। 386 00:18:18,690 --> 00:18:19,960 और मैं वास्तव में 3 मिलता है। 387 00:18:19,960 --> 00:18:21,240 मुझे 3 में टाइप करते हैं। 388 00:18:21,240 --> 00:18:22,860 मैं वास्तव में 6 मिलता है। 389 00:18:22,860 --> 00:18:27,636 और किसी को भी जल्दी से गणित कर सकते हैं, तो मैं मैं जा रहा हूँ, क्या 50 से करते हैं? 390 00:18:27,636 --> 00:18:29,839 >> दर्शकों: [अश्राव्य]। 391 00:18:29,839 --> 00:18:30,880 डेविड जे मालन: ठीक है, नहीं। 392 00:18:30,880 --> 00:18:33,340 लेकिन 1,275 बहुत करीब है। 393 00:18:33,340 --> 00:18:38,850 तो यह 50 से कर का परिणाम है प्लस 49 प्लस 48 प्लस 47 प्लस 46 394 00:18:38,850 --> 00:18:40,349 1 करने के लिए सभी तरह से नीचे। 395 00:18:40,349 --> 00:18:41,390 इतना है कि सभी सिग्मा करता है। 396 00:18:41,390 --> 00:18:43,350 लेकिन हम है कि कैसे देखते हैं अब इसे लागू किया है। 397 00:18:43,350 --> 00:18:45,790 तो यहाँ नीचे समारोह में ही है। 398 00:18:45,790 --> 00:18:49,000 और इस के लिए प्रतीत नहीं होता कुछ भी अभी तक प्रत्यावर्तन के साथ क्या करना है। 399 00:18:49,000 --> 00:18:51,070 वास्तव में, हम एक प्रयोग कर रहे हैं पुराने स्कूल तकनीक। 400 00:18:51,070 --> 00:18:56,680 मैं एक चर बुलाया योग प्रारंभ कर रहा हूँ शून्य करने के लिए, तो मैं यहाँ एक foreloop है, 401 00:18:56,680 --> 00:19:00,790 और मैं नामक एक इंट घोषणा कर रहा हूँ मैं 1-- करने के लिए इसे बराबर की स्थापना 402 00:19:00,790 --> 00:19:04,080 मैं करने के लिए इसे बराबर सेट सकता है, हालांकि शून्य है, लेकिन मैं इसके अलावा क्या कर रहा हूँ के बाद से, 403 00:19:04,080 --> 00:19:05,340 यह शून्य या एक है, तो कौन परवाह करता है। 404 00:19:05,340 --> 00:19:06,660 यह कोई प्रभाव नहीं किया जा रहा है। 405 00:19:06,660 --> 00:19:10,110 >> तो मैं इतने लंबे समय मैं के रूप में पुनरावृति कर रहा हूँ कम से कम या मीटर के बराबर है, जो 406 00:19:10,110 --> 00:19:11,671 में पारित किया गया था कि तर्क है। 407 00:19:11,671 --> 00:19:13,670 और फिर मैं सिर्फ रखने मैं और अंतर्दृष्टि incrementing 408 00:19:13,670 --> 00:19:20,010 पाश की सब मैं योग कर रहा है कर रहा हूँ प्लस मैं बराबर होती है और वह है कि विचार है। 409 00:19:20,010 --> 00:19:22,326 मैं इस में, ऐसा नहीं करना चाहते हैं मामले, योग प्लस प्लस की तरह। 410 00:19:22,326 --> 00:19:24,790 मैं वास्तव में जोड़ना चाहते हैं मैं के वर्तमान मूल्य 411 00:19:24,790 --> 00:19:28,190 जो बड़ा और बड़ा हो रही रखता है और चल मिलान करने के लिए बड़ा। 412 00:19:28,190 --> 00:19:30,210 >> और फिर मैं योग वापसी। 413 00:19:30,210 --> 00:19:33,850 और तो जवाब मूल्य योग हो जाता है। 414 00:19:33,850 --> 00:19:35,282 और फिर मैं इसे बाहर प्रिंट। 415 00:19:35,282 --> 00:19:37,740 तो एक अवसर यहाँ है, हालांकि, एक तरह से सरल करने के लिए 416 00:19:37,740 --> 00:19:41,260 इस कोड धारणात्मक और झटका की तरह एक है 417 00:19:41,260 --> 00:19:43,250 के मामले में कोई आपत्ति सादगी भी है कि हालांकि यह 418 00:19:43,250 --> 00:19:45,700 सॉर्ट करने के लिए एक समय लेता है क्यों इस की सराहना 419 00:19:45,700 --> 00:19:47,330 इन छोटे उदाहरणों में शक्तिशाली है। 420 00:19:47,330 --> 00:19:50,380 यहाँ ऐसा one-- सिग्मा है इस कोड का दूसरा संस्करण। 421 00:19:50,380 --> 00:19:55,290 शीर्ष तक सब कुछ इतनी समान है कि एक ही कहानी के रूप में पहले से लागू होता है। 422 00:19:55,290 --> 00:19:59,220 लेकिन अब के को देखो सिग्मा के कार्यान्वयन जो 423 00:19:59,220 --> 00:20:05,040 मैं तो बस इन करने के लिए नीचे whittled किया है lines-- कोड की चार लाइनें, वास्तव में, 424 00:20:05,040 --> 00:20:06,980 प्लस कुछ सर्पाकार और सफेद अंतरिक्ष। 425 00:20:06,980 --> 00:20:07,930 >> लेकिन मैं क्या कर रहा हूँ? 426 00:20:07,930 --> 00:20:11,050 मीटर से कम या बराबर है शून्य, मैं एक तरह से संभालने की जरूरत 427 00:20:11,050 --> 00:20:12,490 कि सुपर साधारण मामला। 428 00:20:12,490 --> 00:20:15,450 और तुम मुझे शून्य या कुछ भी हाथ अगर , सिर्फ अजीब है जो नकारात्मक 429 00:20:15,450 --> 00:20:17,909 मैं बस मनमाने ढंग से करने के लिए जा रहा हूँ लेकिन लगातार शून्य वापसी। 430 00:20:17,909 --> 00:20:20,200 मैं इस बात को नहीं करना चाहते हैं कुछ अजीब अनंत में मिलता है 431 00:20:20,200 --> 00:20:21,810 क्योंकि एक नकारात्मक मूल्य के पाश। 432 00:20:21,810 --> 00:20:25,070 तुम मुझे दे तो अगर मैं सिर्फ इतना कह रहा हूँ शून्य या कम है, मैं शून्य लौट रहा हूँ। 433 00:20:25,070 --> 00:20:28,220 >> क्योंकि है कि लेकिन यह अच्छी बात है फोन की किताब के उस एकल पेज 434 00:20:28,220 --> 00:20:28,790 छोड़ दिया है। 435 00:20:28,790 --> 00:20:32,660 मैं एक बहुत ही विशिष्ट समस्या काट रहा हूँ और बारी बारी से कुछ नहीं बुला रहा। 436 00:20:32,660 --> 00:20:36,580 लेकिन लाइन 31 में, क्या मैं क्या कर रही हो लग रहे हो? 437 00:20:36,580 --> 00:20:39,780 कोष्ठकों सिर्फ रख रहे हैं बातें, उम्मीद है, एक छोटे से साफ। 438 00:20:39,780 --> 00:20:42,110 लेकिन मैं क्या कर रहा हूँ सब मैं कर रहा हूँ है m-- लौटने जो कुछ भी 439 00:20:42,110 --> 00:20:45,790 आप me-- अधिक हाथ m-- खेद का मूल्य, 440 00:20:45,790 --> 00:20:49,052 प्लस मीटर शून्य से 1 की सिग्मा के लिए मूल्य। 441 00:20:49,052 --> 00:20:50,010 अच्छा तो इसका क्या मतलब है? 442 00:20:50,010 --> 00:20:53,965 आप इनपुट के रूप में मुझे 3 नंबर देते हैं, इस सवाल का जवाब मैं अंत में प्राप्त करना चाहते हैं 443 00:20:53,965 --> 00:20:57,307 3 प्लस 2 प्लस 1 मुझे 6 देता है क्योंकि 6 है। 444 00:20:57,307 --> 00:20:59,390 लेकिन मुझे लगता है के बारे में कैसे सोचते हैं इस कोड को कैसे चल रहा है? 445 00:20:59,390 --> 00:21:03,070 मैं सिग्मा फोन पहली बार और मुझे लगता है, मान 3 में पारित 446 00:21:03,070 --> 00:21:07,960 कि एक टुकड़े पर कह की तरह है कागज की, यहां मूल्य 3 है 447 00:21:07,960 --> 00:21:09,920 और मैं सिग्मा के रूप में यह पारित किया गया है। 448 00:21:09,920 --> 00:21:13,090 3 जाहिर है ऐसा नहीं कम से कम 0 है अगर हालत लागू नहीं होता। 449 00:21:13,090 --> 00:21:14,020 कोई करता है। 450 00:21:14,020 --> 00:21:14,990 तो मैं क्या करूं? 451 00:21:14,990 --> 00:21:19,902 मैं है, जो मीटर वापसी करना चाहते हैं मीटर शून्य से 1 से 3, प्लस सिग्मा। 452 00:21:19,902 --> 00:21:21,110 तो मुझे इस बात का ट्रैक रखने के लिए। 453 00:21:21,110 --> 00:21:22,710 मैं इस डाल करने के लिए जा रहा हूँ कागज नीचे का टुकड़ा। 454 00:21:22,710 --> 00:21:24,668 और क्या मूल्य है, होना करने के लिए स्पष्ट है, मैं पारित करने के लिए जा रहा हूँ 455 00:21:24,668 --> 00:21:26,540 कहानी में इस बिंदु पर सिग्मा में? 456 00:21:26,540 --> 00:21:28,080 कौन सा नंबर? 457 00:21:28,080 --> 00:21:28,610 2, है ना? 458 00:21:28,610 --> 00:21:29,670 3 शून्य से 1 2 है। 459 00:21:29,670 --> 00:21:32,000 तो मैं सिर्फ एक छोटे से जरूरत यहां कागज के स्क्रैप। 460 00:21:32,000 --> 00:21:33,931 तो अब सिग्मा फिर से बुलाया जा रहा है। 461 00:21:33,931 --> 00:21:35,930 और मैं जानबूझ कर रख दिया है यह नीचे है क्योंकि यह 462 00:21:35,930 --> 00:21:38,070 एक तरह से रोक की तरह कहानी के उस संस्करण 463 00:21:38,070 --> 00:21:40,720 अब मैं ध्यान केंद्रित कर रहा हूँ क्योंकि मीटर शून्य से 1 के संकेत पर। 464 00:21:40,720 --> 00:21:42,660 तो 3 मीटर, मीटर था शून्य से 1 2 है। 465 00:21:42,660 --> 00:21:45,110 तो यहाँ मैं पारित किया गया है कि 2 है। 466 00:21:45,110 --> 00:21:48,510 2 जाहिर की तुलना में कम नहीं है 0 तो उस मामले पर लागू नहीं होता। 467 00:21:48,510 --> 00:21:53,445 वरना मैं यह है, जो मीटर लौटने क्या मूल्य की बात है, प्लस सिग्मा? 468 00:21:53,445 --> 00:21:56,160 469 00:21:56,160 --> 00:21:59,650 तो सिग्मा के 1-- मीटर है क्योंकि अगर अभी 2 तो 2 शून्य से 1 1 है। 470 00:21:59,650 --> 00:22:01,950 तो अब मैं बस मान 1 है। 471 00:22:01,950 --> 00:22:04,810 मैं बस संख्या गुजर रहा हूँ समारोह sigma-- करने के लिए 1 472 00:22:04,810 --> 00:22:09,120 या अपने आप here-- इसलिए एक स्पष्ट रूप से नहीं है शून्य से कम है, अभी भी लागू नहीं होता। 473 00:22:09,120 --> 00:22:12,970 >> वरना बदले 1 प्लस की क्या सिग्मा? 474 00:22:12,970 --> 00:22:13,470 0। 475 00:22:13,470 --> 00:22:14,678 तो मुझे सिर्फ इतना है कि याद करते हैं। 476 00:22:14,678 --> 00:22:15,920 मैं बाद में वापस करने के लिए कि मिल जाएगा। 477 00:22:15,920 --> 00:22:18,060 अब मैं आगे और संक्षेप में लिख जाने के लिए जा रहा हूँ संख्या 0 नीचे है कि क्योंकि 478 00:22:18,060 --> 00:22:19,470 मेरा तर्क या पैरामीटर। 479 00:22:19,470 --> 00:22:22,400 मैं संख्या 0 से पारित कर रहा हूँ और अंत में इस प्रक्रिया 480 00:22:22,400 --> 00:22:25,760 के सिर्फ खुद के विज्ञापन दोहरा nauseum क्या क्योंकि संघर्ष करता है 481 00:22:25,760 --> 00:22:28,820 मैं इस 0 देख एक बार मैं तुरंत करते हैं? 482 00:22:28,820 --> 00:22:29,790 मैं शून्य वापसी। 483 00:22:29,790 --> 00:22:31,790 तो अब आप कहानी उल्टा करने के लिए है। 484 00:22:31,790 --> 00:22:34,430 >> मैं अब समय में पीछे की ओर जाना है, सबसे हाल ही बात थी 485 00:22:34,430 --> 00:22:36,670 तुम सचमुच थे, तो मैंने किया एक वीडियो rewinding? 486 00:22:36,670 --> 00:22:41,630 मैं हाल ही में लेने के लिए जा रहा हूँ 1 और कहा कि मुझे एक देता प्लस 0 1 है। 487 00:22:41,630 --> 00:22:44,100 मैं rewinding रखने के लिए कहानी है, कि मुझे देने जा रहा है 488 00:22:44,100 --> 00:22:46,880 1 है जो 2 प्लस यह चल मूल्य,। 489 00:22:46,880 --> 00:22:47,789 तो यह है कि 3 है। 490 00:22:47,789 --> 00:22:49,330 और फिर मैं rewinding रखने के लिए जा रहा हूँ। 491 00:22:49,330 --> 00:22:54,220 जब मैं पहली बार नंबर नीचे डाल दिया है 3-- इसलिए 3 प्लस 3 से 6 मुझे देता है। 492 00:22:54,220 --> 00:22:57,272 >> और अब, आप rewound है अगर इस बिंदु तक वीडियो को, 493 00:22:57,272 --> 00:22:58,980 यह बहुत ही था पहला सवाल मैंने पूछा। 494 00:22:58,980 --> 00:23:01,450 3 से पारित कर दिया है, तो 3 के सिग्मा क्या है? 495 00:23:01,450 --> 00:23:04,204 यह वास्तव में 6 की राशि है कागज के इन सभी टुकड़े। 496 00:23:04,204 --> 00:23:07,120 कि एक छोटे से लेता है तो अगर जबकि वह ठीक है, अपने मन के आसपास लपेटो। 497 00:23:07,120 --> 00:23:10,700 लेकिन यह little-- एक था पर विचार मैं खड़ी है कि बहुत जानबूझकर किया गया था 498 00:23:10,700 --> 00:23:12,990 एक दूसरे के शीर्ष पर इन नंबरों। 499 00:23:12,990 --> 00:23:17,440 यह एक होने की तरह की तरह है समय में एक रिकार्ड memory--, 500 00:23:17,440 --> 00:23:19,940 एक वीडियो में एक रंडी की तरह, मैं वास्तव में उल्टा कर सकते हैं। 501 00:23:19,940 --> 00:23:24,350 और हम करने के लिए वापस आने के लिए जा रहे हैं सिर्फ एक छोटा सा में है कि रूपक। 502 00:23:24,350 --> 00:23:28,240 >> लेकिन पहले, यह भी नहीं है कि पता चला है geeks और हास्यास्पद बहुत से लोगों को, 503 00:23:28,240 --> 00:23:29,614 मैं गूगल पर, लगता है। 504 00:23:29,614 --> 00:23:31,530 चाहेंगे बहुत है, जो किसी को Googling मन में अच्छा 505 00:23:31,530 --> 00:23:34,270 बस एक पल के लिए आ रहा है और मुझे कुछ के लिए खोज करने में मदद? 506 00:23:34,270 --> 00:23:35,650 बहुत, बहुत कम कुंजी। 507 00:23:35,650 --> 00:23:37,870 कभी नहीं कोई है जो शायद, पहले आते हैं। 508 00:23:37,870 --> 00:23:38,370 ठीक। 509 00:23:38,370 --> 00:23:39,030 हाँ? 510 00:23:39,030 --> 00:23:39,530 चलो। 511 00:23:39,530 --> 00:23:41,410 नीचे आए। 512 00:23:41,410 --> 00:23:42,183 आपका नाम क्या है? 513 00:23:42,183 --> 00:23:42,870 >> सैम सैम। 514 00:23:42,870 --> 00:23:44,290 >> डेविड जे मालन: सैम, पर नीचे आते हैं। 515 00:23:44,290 --> 00:23:45,320 इस एक ही है। 516 00:23:45,320 --> 00:23:46,280 आपसे मिलना अच्छा रहा। 517 00:23:46,280 --> 00:23:46,780 अरे। 518 00:23:46,780 --> 00:23:47,580 खत्म हो गया आ जाओ। 519 00:23:47,580 --> 00:23:51,290 इतना सब मैं तुम्हें, अगर ऐसा करने की जरूरत आप, सैम, गूगल के कर सकता है। 520 00:23:51,290 --> 00:23:53,240 आप इस शब्द प्रत्यावर्तन के लिए खोज कर सकते हैं? 521 00:23:53,240 --> 00:23:55,770 522 00:23:55,770 --> 00:23:56,270 खराब मत करो। 523 00:23:56,270 --> 00:23:59,940 524 00:23:59,940 --> 00:24:00,970 >> और अब हाँ let's--। 525 00:24:00,970 --> 00:24:03,380 ठीक है कि क्लिक करें। 526 00:24:03,380 --> 00:24:04,315 बेहतर है कि क्लिक करें। 527 00:24:04,315 --> 00:24:07,020 528 00:24:07,020 --> 00:24:08,020 आह, यह मिलता है। 529 00:24:08,020 --> 00:24:08,520 नहीं? 530 00:24:08,520 --> 00:24:09,050 ठीक। 531 00:24:09,050 --> 00:24:10,430 तो चलो एक जोड़े को दूसरों से करते हैं। 532 00:24:10,430 --> 00:24:12,830 संबंधित इतना नहीं अकादमिक यहाँ है, लेकिन आपके पास 533 00:24:12,830 --> 00:24:14,520 कभी अनाग्राम के लिए गूगल खोज की? 534 00:24:14,520 --> 00:24:15,280 >> सैम: नहीं 535 00:24:15,280 --> 00:24:15,520 >> डेविड जे मालन: ठीक है। 536 00:24:15,520 --> 00:24:17,186 अनाग्राम बजाय प्रत्यावर्तन के लिए खोजें। 537 00:24:17,186 --> 00:24:22,540 538 00:24:22,540 --> 00:24:23,790 कैसे तिरछा के बारे में। 539 00:24:23,790 --> 00:24:25,515 आप कभी तिरछा के लिए खोज की? 540 00:24:25,515 --> 00:24:29,260 541 00:24:29,260 --> 00:24:32,692 अब, यह एक करने के लिए थोड़ा मुश्किल है देख सकते हैं लेकिन उम्मीद है कि ठीक everything's--। 542 00:24:32,692 --> 00:24:34,150 यह सिर्फ आप और मुझे इस का आनंद ले रहे है। 543 00:24:34,150 --> 00:24:34,690 ठीक। 544 00:24:34,690 --> 00:24:38,950 >> तो अंत में, इस one's-- यह एक छोटे से तिरछा है। 545 00:24:38,950 --> 00:24:40,810 अब एक बैरल रोल करते हैं। 546 00:24:40,810 --> 00:24:44,460 547 00:24:44,460 --> 00:24:45,310 कमाल है। 548 00:24:45,310 --> 00:24:45,910 ठीक है। 549 00:24:45,910 --> 00:24:47,110 बिग सैम के लिए धन्यवाद। 550 00:24:47,110 --> 00:24:49,416 हियर यू गो। 551 00:24:49,416 --> 00:24:50,400 धन्यवाद। 552 00:24:50,400 --> 00:24:52,807 >> तो क्या सब में चल रहा है इन मूर्खतापूर्ण उदाहरण के? 553 00:24:52,807 --> 00:24:55,640 तो सच में, के हुड के नीचे कोड की लाइनों के गूगल के लाखों 554 00:24:55,640 --> 00:24:58,860 जाहिरा तौर पर अगर कुछ मूर्खतापूर्ण है अनिवार्य रूप से कर रहे हैं कि शर्तों 555 00:24:58,860 --> 00:25:01,160 उपयोगकर्ता है, तो जाँच इस वाक्यांश में टाइप, 556 00:25:01,160 --> 00:25:03,760 शायद ले लिया है कि कुछ करना है समय की एक nontrivial राशि 557 00:25:03,760 --> 00:25:06,080 बस को लागू करने के लिए इस तरह से मनोरंजक हो। 558 00:25:06,080 --> 00:25:08,430 लेकिन यह है कि यह फोड़े सब है हुड के नीचे करने के लिए नीचे। 559 00:25:08,430 --> 00:25:11,570 लेकिन जाहिर है, प्रत्यावर्तन geekier की अधिक है 560 00:25:11,570 --> 00:25:13,880 उन विशेष चाल के बीच उदाहरण है। 561 00:25:13,880 --> 00:25:16,880 और निश्चित रूप से वहाँ वहाँ दूसरों बाहर है साथ ही हम शायद यह है कि यह भी नहीं 562 00:25:16,880 --> 00:25:18,230 बस अभी तक की खोज की। 563 00:25:18,230 --> 00:25:22,830 >> तो एक बार देख ले, या पर विचार अब निम्न कार्यक्रम, 564 00:25:22,830 --> 00:25:24,830 और निश्चित रूप से किसी भी हड़पने अपने रास्ते बाहर पर इनमें से। 565 00:25:24,830 --> 00:25:28,820 मैं आगे जाने के लिए जा रहा हूँ और एक प्रोग्राम है कि ऊपर खुला 566 00:25:28,820 --> 00:25:30,920 दो मानों स्वैप करने के लिए कोशिश करने के लिए जा रहा है। 567 00:25:30,920 --> 00:25:33,210 हम वहाँ जाने से पहले लेकिन, चलो यह करते हैं। 568 00:25:33,210 --> 00:25:38,500 हम एक और मिल सकता है स्वयंसेवक, मुझे लगता है? 569 00:25:38,500 --> 00:25:40,480 क्या आप वालंटियर को पसंद करेंगे? 570 00:25:40,480 --> 00:25:40,980 नहीं? 571 00:25:40,980 --> 00:25:41,890 आ जाओ। 572 00:25:41,890 --> 00:25:42,390 आ जाओ। 573 00:25:42,390 --> 00:25:42,890 ठीक है। 574 00:25:42,890 --> 00:25:44,136 तो तुम्हारा नाम क्या है? 575 00:25:44,136 --> 00:25:44,810 >> लॉरेन: लॉरेन। 576 00:25:44,810 --> 00:25:45,768 >> डेविड जे मालन: लॉरेन। 577 00:25:45,768 --> 00:25:46,890 , ऊपर लॉरेन चलो। 578 00:25:46,890 --> 00:25:50,140 तो लॉरेन किया जा रहा है इस प्रकार के रूप में यहां चुनौती दी। 579 00:25:50,140 --> 00:25:52,310 आपसे मिलना अच्छा रहा। 580 00:25:52,310 --> 00:25:55,730 तो लॉरेन यहाँ सामने है उसके दो खाली कप की। 581 00:25:55,730 --> 00:25:57,570 और हम कुछ नारंगी है रस और कुछ दूध 582 00:25:57,570 --> 00:26:00,301 और हम जाने के लिए जा रहे हैं आगे और निम्नलिखित है। 583 00:26:00,301 --> 00:26:01,550 हम सिर्फ इस भरने के लिए जा रहे हैं। 584 00:26:01,550 --> 00:26:07,840 यहाँ पर दूध की कुछ औंस और चलो यहां पर एक छोटे से संतरे का रस भर दें। 585 00:26:07,840 --> 00:26:11,475 >> और सभी के सामने इन दर्शकों के सदस्यों को, 586 00:26:11,475 --> 00:26:13,550 इन कप के दो मूल्यों स्वैप। 587 00:26:13,550 --> 00:26:16,970 दूध कप में संतरे का रस रखो और संतरे का रस कप में दूध। 588 00:26:16,970 --> 00:26:22,380 589 00:26:22,380 --> 00:26:26,150 आप पर थे, तो आप यह कैसे करेंगे घर और अन्य सामग्री का उपयोग किया था? 590 00:26:26,150 --> 00:26:27,400 लॉरेन: एक और कप में डाल दिया। 591 00:26:27,400 --> 00:26:28,191 डेविड जे मालन: ठीक है। 592 00:26:28,191 --> 00:26:31,940 तो चलो एक अस्थायी करते हैं चर, हम करेंगे। 593 00:26:31,940 --> 00:26:35,871 और अब आगे जाना है और लागू इस एक ही अदला-बदली प्रक्रिया। 594 00:26:35,871 --> 00:26:36,370 कितना अच्छा। 595 00:26:36,370 --> 00:26:41,490 हम अस्थायी में OJ रख दिया है चर, OJ चर में दूध, 596 00:26:41,490 --> 00:26:44,481 और अब अस्थायी चर दूध चर में। 597 00:26:44,481 --> 00:26:44,980 ठीक। 598 00:26:44,980 --> 00:26:48,740 तो बहुत अच्छी तरह से इतनी दूर किया। 599 00:26:48,740 --> 00:26:50,990 तो यह है कि पकड़ out-- बदल जाता है बस एक पल के लिए सोचा। 600 00:26:50,990 --> 00:26:54,479 इधर, बस इसे थोड़ा ऊपर geek के लिए, इस इसी सी कोड होगा 601 00:26:54,479 --> 00:26:55,520 हम अभी लागू है। 602 00:26:55,520 --> 00:26:58,650 हम दो आदानों, ए और बी, दोनों के लिए किया था जो हम कर रहे हैं बस सादगी के लिए कहूँगा 603 00:26:58,650 --> 00:26:59,260 पूर्णांक के। 604 00:26:59,260 --> 00:27:02,780 मैं स्वैप करने के लिए चाहते हैं, तो यहाँ नोटिस दो चर, ए और बी के मूल्यों, 605 00:27:02,780 --> 00:27:06,890 हम वास्तव में एक बिचौलिए की जरूरत है, एक अस्थायी चर, एक अस्थायी कप, 606 00:27:06,890 --> 00:27:10,830 जिसमें से एक मान डालना तो यह है कि हम इसके लिए एक प्लेसहोल्डर है। 607 00:27:10,830 --> 00:27:13,480 लेकिन तब कोड ठीक है लॉरेन के रूप में यहां लागू किया है। 608 00:27:13,480 --> 00:27:15,500 >> अब, बस एक पाने के लिए थोड़ा पागल पता चला है, 609 00:27:15,500 --> 00:27:20,930 आप बिना ऐसा कर सकते हैं कि एक अस्थायी चर। 610 00:27:20,930 --> 00:27:24,870 हालांकि, हम जा रहे हैं, ठीक ऐसा करने के लिए कुछ रसायन विज्ञान के साथ धोखा करने के लिए। 611 00:27:24,870 --> 00:27:26,380 हम यहाँ कुछ अतिरिक्त कप है। 612 00:27:26,380 --> 00:27:29,600 तो निकटतम बात है कि लग रहा है दूध और पानी perhaps-- की तरह 613 00:27:29,600 --> 00:27:34,090 या दूध और OJ-- हम कुछ है पानी है, तो हम इस एक को भर देंगे 614 00:27:34,090 --> 00:27:36,486 साफ पानी की कुछ औंस के साथ। 615 00:27:36,486 --> 00:27:38,332 यही कारण है कि बहुत ज्यादा शायद है। 616 00:27:38,332 --> 00:27:38,832 हाँ। 617 00:27:38,832 --> 00:27:39,934 यही कारण है कि बहुत ज्यादा निश्चित रूप से है। 618 00:27:39,934 --> 00:27:40,600 एक सेकंड रुको। 619 00:27:40,600 --> 00:27:43,520 620 00:27:43,520 --> 00:27:48,420 >> और अब हम जैसा कि मुझे याद है, जो तेल है, मध्य विद्यालय के रसायन विज्ञान वर्ग से, 621 00:27:48,420 --> 00:27:49,990 उम्मीद है कि यह पानी के साथ मिश्रण नहीं है। 622 00:27:49,990 --> 00:27:53,650 लेकिन यह एक तरह से एक तरह से दूध और OJ की तरह लग रहा है। 623 00:27:53,650 --> 00:27:55,760 अब तो, का उपयोग किए बिना एक अस्थायी चर, 624 00:27:55,760 --> 00:27:59,260 आप उन दो मानों स्वैप कर सकते हैं? 625 00:27:59,260 --> 00:28:03,884 , पानी कप में चला जाता है तेल इतना पानी तेल कप में चला जाता है। 626 00:28:03,884 --> 00:28:04,800 लॉरेन: कोई अन्य कप? 627 00:28:04,800 --> 00:28:05,940 डेविड जे मालन: कोई अन्य कप। 628 00:28:05,940 --> 00:28:07,860 और मैं वास्तव में नहीं है इस साल से पहले यह परीक्षण किया 629 00:28:07,860 --> 00:28:10,110 इस होगा, इसलिए यदि मैं नहीं जानता वास्तव में रासायनिक काम करते हैं। 630 00:28:10,110 --> 00:28:16,130 631 00:28:16,130 --> 00:28:18,650 लगता है कि ऐसा नहीं होना चाहिए था। 632 00:28:18,650 --> 00:28:19,761 क्या यह काम कर रहा है? 633 00:28:19,761 --> 00:28:20,260 ठीक है। 634 00:28:20,260 --> 00:28:20,990 तो अलग करने? 635 00:28:20,990 --> 00:28:21,490 अच्छा। 636 00:28:21,490 --> 00:28:24,714 अब हम मिल गया अन्य कप में पानी। 637 00:28:24,714 --> 00:28:27,630 होशियार रसायन शास्त्र संकेंद्रक सकता है शायद मुझसे बेहतर यह करते हैं। 638 00:28:27,630 --> 00:28:28,510 >> लॉरेन: पानी के तल पर है। 639 00:28:28,510 --> 00:28:31,910 >> डेविड जे मालन: था कि water-- क्या हम इस किया था पिछली बार कुंजी है। 640 00:28:31,910 --> 00:28:33,950 आप सही क्रम में ही करना होगा। 641 00:28:33,950 --> 00:28:34,450 हाँ। 642 00:28:34,450 --> 00:28:35,270 ठीक है। 643 00:28:35,270 --> 00:28:37,290 तो अब हम तेल के दो कप है। 644 00:28:37,290 --> 00:28:37,790 ठीक। 645 00:28:37,790 --> 00:28:38,510 ठीक है। 646 00:28:38,510 --> 00:28:40,110 लेकिन इस I-- से काम किया रासायनिक यदि 647 00:28:40,110 --> 00:28:41,200 >> लॉरेन: यह पानी है। 648 00:28:41,200 --> 00:28:41,930 >> डेविड जे मालन: यही कारण है कि ज्यादातर पानी है। 649 00:28:41,930 --> 00:28:42,430 ठीक है। 650 00:28:42,430 --> 00:28:44,210 लेकिन यह है कि अभी भी पहले की तरह ही कप है। 651 00:28:44,210 --> 00:28:47,570 तो it-- वहाँ पर यह कोशिश डालना। 652 00:28:47,570 --> 00:28:49,300 ठीक। 653 00:28:49,300 --> 00:28:51,010 इस श्रेणी के समय का एक अच्छा प्रयोग है आज। 654 00:28:51,010 --> 00:28:51,510 ठीक। 655 00:28:51,510 --> 00:28:53,890 तो अब अच्छा we--। 656 00:28:53,890 --> 00:28:55,460 की तरह। 657 00:28:55,460 --> 00:28:55,960 ठीक है। 658 00:28:55,960 --> 00:28:56,690 बहुत बढ़िया। 659 00:28:56,690 --> 00:29:00,006 लॉरेन के लिए धन्यवाद। 660 00:29:00,006 --> 00:29:01,950 बहुत अच्छा किया। 661 00:29:01,950 --> 00:29:04,570 >> तो बस, अपने मन को उड़ाने के लिए और यह शायद कुछ है 662 00:29:04,570 --> 00:29:08,660 आप CS50 आईडी में चाहते हैं, तो साथ खेलने के लिए, आप वास्तव में, दो चर स्वैप कर सकते हैं 663 00:29:08,660 --> 00:29:11,470 एक अस्थायी पूर्णांक का उपयोग किए बिना। 664 00:29:11,470 --> 00:29:13,060 और यह इसी सी कोड है। 665 00:29:13,060 --> 00:29:16,110 और आप पिछले से याद करते हैं बुधवार, हम, अगर संक्षेप में, शुरू की 666 00:29:16,110 --> 00:29:19,720 सी और करता है में कुछ नए ऑपरेटरों किसी को भी जो थोड़ा गाजर याद 667 00:29:19,720 --> 00:29:23,660 प्रतीक, उस छोटे त्रिकोणीय है कीबोर्ड से प्रतीक का प्रतिनिधित्व करता है? 668 00:29:23,660 --> 00:29:26,003 क्या बिटवाइस ऑपरेटर? 669 00:29:26,003 --> 00:29:26,770 >> दर्शकों: exor। 670 00:29:26,770 --> 00:29:27,645 >> डेविड जे मालन: exor। 671 00:29:27,645 --> 00:29:28,560 एकमात्र। 672 00:29:28,560 --> 00:29:32,920 आप सिर्फ मनोरंजन पर के लिए, यदि आप चाहते हैं तो घर, ए और बी दो मनमाना देने के लिए 673 00:29:32,920 --> 00:29:36,072 किसी भी eight-- और मैं जैसे मूल्यों एक आठ बिट मूल्य का चुनाव होगा। 674 00:29:36,072 --> 00:29:38,530 आप 32 बिट के साथ ऐसा करते हैं, आप बहुत जल्दी ऊब जाओगे। 675 00:29:38,530 --> 00:29:42,150 लेकिन सिर्फ एक एक आठ बिट दे एक या दो जो कुछ भी है कि मूल्य, 676 00:29:42,150 --> 00:29:43,790 और एक समान मूल्य ख दे। 677 00:29:43,790 --> 00:29:46,810 और फिर परिभाषा का उपयोग पिछले बुधवार से XOR की, 678 00:29:46,810 --> 00:29:52,560 , थोड़ा करके की प्रत्येक कि सा लागू ए और बी में से प्रत्येक में उन आठ बिट, 679 00:29:52,560 --> 00:29:54,980 और फिर इस संहिता के अनुसार वास्तव में इसे करते हैं। 680 00:29:54,980 --> 00:29:58,170 और यह गलत नहीं है क्या आप स्क्रीन पर यहाँ देखें। 681 00:29:58,170 --> 00:30:02,100 यह वास्तव में नीचे फोड़े तीन XOR आपरेशन करने के लिए 682 00:30:02,100 --> 00:30:05,910 और किसी भी तरह जादुई एक और ख पदों का आदान प्रदान करेंगे 683 00:30:05,910 --> 00:30:08,010 किसी भी जानकारी को खोने के बिना। 684 00:30:08,010 --> 00:30:11,580 >> तो तेल और पानी की चाल है निकटतम असली दुनिया अवतार 685 00:30:11,580 --> 00:30:12,980 मुझे लगता है कि नकल करने के बारे में सोच सकता है। 686 00:30:12,980 --> 00:30:15,950 लेकिन यह निश्चित रूप से आसान है एक अस्थायी चर का उपयोग, 687 00:30:15,950 --> 00:30:16,920 यहां इस मामले में के रूप में। 688 00:30:16,920 --> 00:30:21,190 और यह भी एक अवसर है, का कहना है भी, माइक्रो अनुकूलन के इस तरह, 689 00:30:21,190 --> 00:30:23,590 एक कंप्यूटर वैज्ञानिक के रूप में कहते थे, जबकि मजाक की तरह 690 00:30:23,590 --> 00:30:27,060 तुम्हारे बिना ऐसा किया कैसे के बारे में अपनी बड़ाई करने के लिए एक अतिरिक्त चर के साथ स्वैपिंग की तरह, 691 00:30:27,060 --> 00:30:28,640 यह है कि सभी बाध्यकारी नहीं है। 692 00:30:28,640 --> 00:30:31,619 32 बिट के रूप में बचाने के लिए क्योंकि एक वास्तविक पूर्णांक के मामले में, 693 00:30:31,619 --> 00:30:33,410 कहा कि सभी बाध्यकारी नहीं है एक प्रणाली है, जहां पर 694 00:30:33,410 --> 00:30:36,722 आप मेगाबाइट के दसियों का उपयोग किया जा सकता है या और भी अधिक ऐसे स्मृति इन दिनों। 695 00:30:36,722 --> 00:30:38,680 और वास्तव में, हम जब मिलता है बाद में एक समस्या सेट करने के लिए 696 00:30:38,680 --> 00:30:41,010 और तुम जादू लागू चेकर और आप करेंगे 697 00:30:41,010 --> 00:30:43,550 इसलिए साथ करने के लिए चुनौती दी जा इस रूप में छोटे रैम और के रूप में छोटा 698 00:30:43,550 --> 00:30:46,820 पर संभव के रूप में समय अभी भी आप computer-- 699 00:30:46,820 --> 00:30:50,160 को लागू करने के लिए एक सप्ताह है आप हो जाएगा have-- करेंगे it-- 700 00:30:50,160 --> 00:30:51,799 उन संसाधनों को कम करने की चुनौती दी। 701 00:30:51,799 --> 00:30:53,840 और कहा कि वास्तव में ही है इस सेमेस्टर अवसर 702 00:30:53,840 --> 00:30:57,940 आप दाढ़ी बनाने के लिए प्रोत्साहित किया जाएगा, जहां भी बेहतरीन प्रदर्शन बंद 703 00:30:57,940 --> 00:30:59,340 अन्यथा खर्च होती है। 704 00:30:59,340 --> 00:31:02,200 >> तो हम कैसे कर सकते हैं what-- इस वास्तविक कोड में देखते हैं? 705 00:31:02,200 --> 00:31:04,530 मुझे अब आगे चलते हैं और एक उदाहरण के ऊपर खुला 706 00:31:04,530 --> 00:31:07,700 कि जानबूझ कर कहा जाता है कोई स्वैप यह नहीं है क्योंकि 707 00:31:07,700 --> 00:31:10,670 वास्तव में चर स्वैप आप वास्तव में उम्मीद कर सकते हैं। 708 00:31:10,670 --> 00:31:12,260 तो चलो एक नज़र रखना। 709 00:31:12,260 --> 00:31:17,050 यहाँ कोई CS50 है कि एक कार्यक्रम है पुस्तकालय, सिर्फ मानक आई / ओ पर जा रहे हैं। 710 00:31:17,050 --> 00:31:19,560 अब हम एक प्रोटोटाइप है शीर्ष ऊपर स्वैप के लिए जो सिर्फ 711 00:31:19,560 --> 00:31:21,540 यह बाद में परिभाषित किया गया है इसका मतलब है। 712 00:31:21,540 --> 00:31:22,550 और यहाँ मुख्य है। 713 00:31:22,550 --> 00:31:26,000 >> मैं मनमाने ढंग से एक्स और वाई सौंपा क्रमशः, मूल्यों एक और दो 714 00:31:26,000 --> 00:31:28,590 सिर्फ वे छोटे हैं क्योंकि और आसान के बारे में सोचने के लिए। 715 00:31:28,590 --> 00:31:32,280 और फिर मैं सिर्फ printfs का एक गुच्छा है मैं एक मानसिक स्वास्थ्य की जांच की है, जहां। एक्स 1 है 716 00:31:32,280 --> 00:31:35,110 और वाई 2 संभवतः है उन printfs क्या कहेंगे। 717 00:31:35,110 --> 00:31:36,530 तो कोई जादू इस प्रकार अब तक। 718 00:31:36,530 --> 00:31:40,100 >> तब मैं के साथ का दावा करने के लिए जा रहा हूँ डॉट डॉट डॉट स्वैपिंग, डेफ प्रिंट। 719 00:31:40,100 --> 00:31:43,730 मैं स्वैप फोन करने के लिए जा रहा हूँ समारोह, एक्स और वाई में गुजर रहा है। 720 00:31:43,730 --> 00:31:47,350 और चलो अब उस के लिए मान लेते हैं स्वैप वास्तव में कार्यान्वित किया जाता है 721 00:31:47,350 --> 00:31:49,930 यह एक पल पहले था एक अस्थायी चर के साथ। 722 00:31:49,930 --> 00:31:52,670 और इसलिए मैं ऐसे मुकाम पर पहुंच दावा, बदली। 723 00:31:52,670 --> 00:31:55,429 एक्स यह और y अब यह है कि अब है। 724 00:31:55,429 --> 00:31:57,220 लेकिन फ़ाइल, ज़ाहिर है, कोई स्वैप कहा जाता है। 725 00:31:57,220 --> 00:31:58,678 तो चलो वास्तव में देखते हैं क्या होता। 726 00:31:58,678 --> 00:32:04,450 मैं तो कोई स्वैप और संकलन ./noswap करते हैं, एक्स 1 है, वाई 2 है। 727 00:32:04,450 --> 00:32:05,770 बदली से अदला-बदली। 728 00:32:05,770 --> 00:32:07,200 एक्स वाई 2, 1 है। 729 00:32:07,200 --> 00:32:11,980 तो यह वास्तव में भी त्रुटिपूर्ण होने लगता है swap-- हालांकि now-- नीचे स्क्रॉल चलो 730 00:32:11,980 --> 00:32:16,542 वास्तव में प्रति कार्यान्वित किया जाता है कोड मैं एक पल पहले प्रस्ताव रखा। 731 00:32:16,542 --> 00:32:19,000 तो क्या हम कल्पना पाने के लिए नहीं जा रहे हैं अब के लिए XOR सामान के साथ। 732 00:32:19,000 --> 00:32:21,890 यह भी, सिर्फ काम करना चाहिए दूध और OJ के साथ की तरह, 733 00:32:21,890 --> 00:32:25,820 लेकिन यह काम करने के लिए नहीं लगता है। 734 00:32:25,820 --> 00:32:27,180 >> तो चलो फिर से यह करते हैं। 735 00:32:27,180 --> 00:32:29,310 हो सकता है कि मैं अभी इसे ठीक नहीं चल रहा था। 736 00:32:29,310 --> 00:32:32,010 तो चलो फिर से कोई स्वैप चलाते हैं। 737 00:32:32,010 --> 00:32:32,900 शायद I-- नहीं। 738 00:32:32,900 --> 00:32:34,400 तो यह सिर्फ काम नहीं कर रहा। 739 00:32:34,400 --> 00:32:36,060 तो चलो थोड़ा मानसिक स्वास्थ्य की जांच करते हैं। 740 00:32:36,060 --> 00:32:39,690 मुझे स्वैप में यहां से आगे जाने दो और बस को जोड़ने के लिए एक मिनट रुको, 741 00:32:39,690 --> 00:32:43,856 एक% मैं है / n और चलो प्लग में एक के लिए मूल्य। 742 00:32:43,856 --> 00:32:45,730 मैं वास्तव में चाहते हैं क्योंकि क्या हो रहा है देखने के लिए। 743 00:32:45,730 --> 00:32:47,570 और वास्तव में, यह है एक डिबगिंग तकनीक 744 00:32:47,570 --> 00:32:50,028 आप में उपयोग हो सकता है कि कार्यालय समय या पहले से ही घर में, 745 00:32:50,028 --> 00:32:53,560 दान की पहली छमाही के लिए समान PSET3 में Armendariz के वीडियो 746 00:32:53,560 --> 00:32:56,870 हम प्रिंट पेश किया जिसमें रूप डेफ कम से कम एक सिफारिश की तकनीक, 747 00:32:56,870 --> 00:32:58,080 साधारण मामलों के लिए। 748 00:32:58,080 --> 00:33:01,720 मुझे आगे जाना है और कर चलाते हैं फिर कोई स्वैप, ./noswap। 749 00:33:01,720 --> 00:33:04,370 750 00:33:04,370 --> 00:33:05,840 >> दिलचस्प है। 751 00:33:05,840 --> 00:33:11,670 तो सच लगता है क्या नोटिस। एक्स 1 है, वाई 2 है, लेकिन बी 1 है जब एक 2 है। 752 00:33:11,670 --> 00:33:16,790 तो उन दो किसी भी तरह की अदला-बदली कर ली लेकिन एक्स और वाई बदली नहीं हो रही है। 753 00:33:16,790 --> 00:33:21,090 तो क्या हो रहा है, स्पष्ट होना , यहाँ मैं एक्स और वाई है है 754 00:33:21,090 --> 00:33:25,380 और उन में स्थानीय चर रहे हैं मुख्य की गुंजाइश है, मैं एक्स और वाई में गुजर रहा हूँ 755 00:33:25,380 --> 00:33:26,170 स्वैप करने के लिए। 756 00:33:26,170 --> 00:33:29,080 अब, स्वैप, एक अलग समारोह के रूप में, इसके तर्क को फोन करने के लिए स्वतंत्र है 757 00:33:29,080 --> 00:33:30,590 या उसके मापदंडों कुछ भी यह चाहता है। 758 00:33:30,590 --> 00:33:33,280 फू एक्स या वाई या एक या बी या बार या। 759 00:33:33,280 --> 00:33:36,870 सिर्फ इसलिए कि वे कर रहे हैं कि स्पष्ट करना एक्स के समान नहीं हैं और y प्रतिशत से, 760 00:33:36,870 --> 00:33:38,020 मैं एक और ख कहा है। 761 00:33:38,020 --> 00:33:40,040 लेकिन हम उन्हें हम चाहते हैं कुछ भी कह सकते हैं। 762 00:33:40,040 --> 00:33:43,960 >> और इसलिए ऐसा लग रहा है स्वैप पारित किया जा रहा है 763 00:33:43,960 --> 00:33:48,980 एक्स उर्फ ​​एक-- और यह बात है y-- उर्फ ​​ख पारित किया जा रहा है। 764 00:33:48,980 --> 00:33:51,900 किसी तरह इन तीन लाइनें हैं वास्तव में उन मूल्यों की अदला-बदली 765 00:33:51,900 --> 00:33:53,510 लॉरेन दूध और OJ के साथ किया था। 766 00:33:53,510 --> 00:33:56,010 लेकिन हम बाहर प्रिंट जब मूल्यों, ए और बी 767 00:33:56,010 --> 00:34:01,340 स्वैप वास्तव में कर रहे हैं, लेकिन एक्स और Y उन्हें कोई परिवर्तन नहीं किया है। 768 00:34:01,340 --> 00:34:03,150 कि एक्स और वाई यहाँ तक कर रहे हैं याद है। 769 00:34:03,150 --> 00:34:05,320 >> इसलिए हम के माध्यम से यह देख सकते हैं के रूप में अच्छी तरह से एक और तकनीक। 770 00:34:05,320 --> 00:34:08,110 और यह भी एक तकनीक है समस्या में एम्बेडेड तीन सेट। 771 00:34:08,110 --> 00:34:10,780 चलो आगे चलते हैं और में यह कर CS50 आईडी आप पहले से ही नहीं किया है। 772 00:34:10,780 --> 00:34:13,730 दाहिने हाथ की ओर हम पर इस डिबगर टैब है। 773 00:34:13,730 --> 00:34:16,159 और अगर आप इस ऊपर खुला है, कुछ रहस्यमय जानकारी नहीं है 774 00:34:16,159 --> 00:34:17,530 कि शुरू में आप पर फेंक दिया है। 775 00:34:17,530 --> 00:34:19,310 लेकिन असली तेजी से इस के अलावा तंग करते हैं। 776 00:34:19,310 --> 00:34:21,620 >> एक तो, आप स्थानीय चर देखते हैं। 777 00:34:21,620 --> 00:34:26,230 CS50 आईडीई में निर्माण पता चला है कि, और प्रोग्रामिंग वातावरण का एक बहुत अधिक 778 00:34:26,230 --> 00:34:28,060 आम तौर पर, एक डिबगर है। 779 00:34:28,060 --> 00:34:31,340 आप नेत्रहीन देखने के लिए अनुमति देता है कि एक उपकरण क्या अपने कार्यक्रम के अंदर जा रहा है 780 00:34:31,340 --> 00:34:34,380 उनका कहना है करने के लिए उपाय करने के लिए बिना printfs और संकलन और चल 781 00:34:34,380 --> 00:34:37,588 और printf के जोड़ने और संकलन और कार्यालय समय में, जो पहले से ही चल रहा है, 782 00:34:37,588 --> 00:34:40,070 या घर, शायद है बहुत थकाऊ हो रही है। 783 00:34:40,070 --> 00:34:43,090 >> यहाँ तो, बस एक पल में, हम कर रहे हैं वास्तविक समय में देखने के लिए जा रहा 784 00:34:43,090 --> 00:34:44,760 हमारे स्थानीय चर के मूल्यों। 785 00:34:44,760 --> 00:34:47,880 हम यह भी स्थापित करने के लिए सक्षम होने के लिए जा रहे हैं ब्रेकप्वाइंट क्या कहा जाता है जो 786 00:34:47,880 --> 00:34:52,570 के अवसरों को थामने के लिए अपने कार्यक्रम में हैं कोड की एक विशिष्ट लाइन पर निष्पादन 787 00:34:52,570 --> 00:34:53,710 मैं के बारे में उत्सुक हूँ। 788 00:34:53,710 --> 00:34:54,210 है ना? 789 00:34:54,210 --> 00:34:55,969 इन कार्यक्रमों में एक दूसरे विभाजन में चलाते हैं। 790 00:34:55,969 --> 00:35:00,450 यह हमें धीमी मनुष्य के लिए एक तरह से अच्छा है थामने है, एक पल लेने के लिए सक्षम होने के लिए, देखें 791 00:35:00,450 --> 00:35:02,380 चारों ओर क्या हो रहा है कोड की एक निश्चित लाइन 792 00:35:02,380 --> 00:35:05,050 कार्यक्रम जुताई के बिना इसके माध्यम से और पूरी तरह से खत्म। 793 00:35:05,050 --> 00:35:08,510 तो एक ब्रेकप्वाइंट करने के लिए हमें अनुमति देने के लिए जा रहा तोड़ने के लिए और एक निश्चित बिंदु पर थामने। 794 00:35:08,510 --> 00:35:12,990 >> कॉल स्टैक का एक अच्छा तरीका है कार्यों वर्तमान में क्या कर रहे हैं कह रही 795 00:35:12,990 --> 00:35:14,140 पल में बुलाया जा रहा है। 796 00:35:14,140 --> 00:35:15,370 मुख्य हमेशा पहले कहा जाता है। 797 00:35:15,370 --> 00:35:17,230 लेकिन मुख्य एक कहता है स्वैप बुलाया समारोह, 798 00:35:17,230 --> 00:35:20,470 हम वास्तव में यह देखने के लिए जा रहे हैं किया गया है कि कार्यों के टावर 799 00:35:20,470 --> 00:35:22,400 रिवर्स कालानुक्रमिक क्रम में बुलाया। 800 00:35:22,400 --> 00:35:23,310 तो चलो कि देखते हैं। 801 00:35:23,310 --> 00:35:24,327 >> मैं बाहर ज़ूम करने के लिए जा रहा हूँ। 802 00:35:24,327 --> 00:35:25,660 मैं अपने कोड को वापस जाने के लिए जा रहा हूँ। 803 00:35:25,660 --> 00:35:27,540 और अभी मैं चाहता हूँ क्योंकि यहां पंडिताऊ होना, 804 00:35:27,540 --> 00:35:31,100 मुझे आगे जाना है और क्लिक करने के लिए जा रहा हूँ बस लाइन पाँच के बाईं ओर। 805 00:35:31,100 --> 00:35:32,830 और कहा कि एक लाल डॉट बनाता है। 806 00:35:32,830 --> 00:35:36,200 और दाहिने हाथ की ओर नोटिस डिबगर अरे, जानता है कि, 807 00:35:36,200 --> 00:35:41,020 मैं सिर्फ इतना कहा एक ब्रेकप्वाइंट पर noswap.c लाइन पांच, विशेष रूप से 808 00:35:41,020 --> 00:35:42,480 कोड के इस लाइन पर। 809 00:35:42,480 --> 00:35:45,090 तो डिबगर कि मैं जानता अगली बार अनुरोध किया है कि 810 00:35:45,090 --> 00:35:48,530 मैं अपने कार्यक्रम इसे थामने चलाने वहाँ के बजाय सिर्फ निष्पादन 811 00:35:48,530 --> 00:35:50,390 सुपर फास्ट पूरी बात चल रहा है। 812 00:35:50,390 --> 00:35:53,889 >> तो अब मैं डिबग क्लिक करने के लिए जा रहा हूँ आईडीई के ऊपर से ही बटन 813 00:35:53,889 --> 00:35:55,430 और कहा कि निम्न करने के लिए जा रहा है। 814 00:35:55,430 --> 00:36:00,680 यह शुरू में कुछ हद तक एक खोलने जा रहा है डरावना लग दूसरे टर्मिनल window-- 815 00:36:00,680 --> 00:36:02,679 से रिमोट डिबगिंग इस तरह मेजबान और such-- 816 00:36:02,679 --> 00:36:04,970 और हम करने के लिए वापस आ गया हूँ क्या सब है कि लंबे समय से पहले इसका मतलब है। 817 00:36:04,970 --> 00:36:09,020 लेकिन अब के लिए महत्वपूर्ण क्या है कि लाल बिंदी मारा गया था, 818 00:36:09,020 --> 00:36:11,735 डिबगर जानबूझ कर किया गया है execution-- रुका हुआ 819 00:36:11,735 --> 00:36:15,560 नहीं एसई प्रति कि लाइन पर लेकिन पहले पर उस समारोह में वास्तविक कोड की लाइन। 820 00:36:15,560 --> 00:36:18,040 लाइन सात है और यही कारण है अब पीले रंग में प्रकाश डाला। 821 00:36:18,040 --> 00:36:20,550 >> और अब एक नजर डालते हैं दाहिने हाथ की ओर। 822 00:36:20,550 --> 00:36:27,300 यह डिफ़ॉल्ट रूप से, की तरह लग रहा है, अच्छी तरह से पर्याप्त है, एक्स क्या महत्व है? 823 00:36:27,300 --> 00:36:27,860 0। 824 00:36:27,860 --> 00:36:29,750 और वाई क्या महत्व है? 825 00:36:29,750 --> 00:36:30,410 शून्य। 826 00:36:30,410 --> 00:36:35,540 और उस अर्थ में उम्मीद की जा रही है कि एक्स और पीले line-- है कि y-- 827 00:36:35,540 --> 00:36:36,770 अभी तक क्रियान्वित नहीं। 828 00:36:36,770 --> 00:36:38,510 तो एक्स मूल्य एक नहीं होना चाहिए। 829 00:36:38,510 --> 00:36:41,470 यह किसी भी अन्य मूल्य हो सकता है, एक तथाकथित कचरा मूल्य। 830 00:36:41,470 --> 00:36:44,320 और हम यह है कि में भाग्यशाली है अनिवार्य रूप से, इस बिंदु पर शून्य। 831 00:36:44,320 --> 00:36:46,400 >> तो अब केवल कुछ भी नहीं है बटन हम परवाह करने की जरूरत है 832 00:36:46,400 --> 00:36:48,100 इस तरह से जब debugging के बारे में। 833 00:36:48,100 --> 00:36:49,970 यहाँ पर ध्यान दें, हम एक प्ले बटन है। 834 00:36:49,970 --> 00:36:51,877 और हम खेलते हैं या मारा सिर्फ है कि, फिर से शुरू 835 00:36:51,877 --> 00:36:53,710 के माध्यम से चलाने के लिए जा इस कार्यक्रम के बाकी 836 00:36:53,710 --> 00:36:55,300 या यह एक और ब्रेकप्वाइंट हिट जब तक। 837 00:36:55,300 --> 00:36:56,910 लेकिन मैं किसी भी अन्य निर्धारित नहीं किया है ब्रेकप्वाइंट तो यह सिर्फ है 838 00:36:56,910 --> 00:36:58,118 अंत के माध्यम से चलाया जा रहा है। 839 00:36:58,118 --> 00:37:00,280 हार के उस तरह आसपास poking का उद्देश्य। 840 00:37:00,280 --> 00:37:03,290 >> तो बजाय, मैं देखभाल के बारे में सही करने के लिए इन चिह्न। 841 00:37:03,290 --> 00:37:05,360 और मैं पर जाएँ अगर उन्हें, जैसा कि आप भी चाहिए 842 00:37:05,360 --> 00:37:07,450 आप थोड़ा tips-- उपकरण युक्तियाँ देखेंगे। 843 00:37:07,450 --> 00:37:09,020 यह एक से अधिक कदम है। 844 00:37:09,020 --> 00:37:11,290 अब जब कि छोड़ें मतलब यह नहीं है कोड की निम्न पंक्ति। 845 00:37:11,290 --> 00:37:14,840 वह सिर्फ यह अमल का मतलब है और अगले करने के लिए कदम अगले करने के लिए ले जाते हैं, 846 00:37:14,840 --> 00:37:15,580 अगले करने के लिए चलते हैं। 847 00:37:15,580 --> 00:37:17,610 दूसरे शब्दों में, के माध्यम से उस बटन, मैं चल सकते हैं 848 00:37:17,610 --> 00:37:20,390 एक समय में अपने कोड के एक कदम के माध्यम से। 849 00:37:20,390 --> 00:37:21,914 सचमुच लाइन से लाइन,। 850 00:37:21,914 --> 00:37:23,830 अब, के अधिकार के लिए एक और एक है, कि 851 00:37:23,830 --> 00:37:25,163 हम सिर्फ एक पल में देखेंगे कि। 852 00:37:25,163 --> 00:37:27,820 इस तथाकथित है है कि आइकन में कदम 853 00:37:27,820 --> 00:37:30,300 मुझे गोता अनुमति देने के लिए जा रहा एक अन्य समारोह में। 854 00:37:30,300 --> 00:37:31,800 लेकिन बस एक पल में यह देखते हैं। 855 00:37:31,800 --> 00:37:33,280 इसलिए मुझे लगता है पर कदम क्लिक करने के लिए जा रहा हूँ। 856 00:37:33,280 --> 00:37:35,820 मैं क्लिक के रूप में और अब, नोटिस शीर्ष सही पर इस बटन, 857 00:37:35,820 --> 00:37:41,260 स्थानीय तहत मोटे तौर पर अपनी आँखें रखने के चर और एक्स के लिए देखो क्या होता है। 858 00:37:41,260 --> 00:37:44,115 X अब क्योंकि 1 पीले रंग की लाइन अब मार डाला गया है 859 00:37:44,115 --> 00:37:45,840 और हम लाइन से 8 पर स्थानांतरित किया है। 860 00:37:45,840 --> 00:37:49,840 और बस एक पल y में उम्मीद है कि 2 हो जाना चाहिए। 861 00:37:49,840 --> 00:37:52,330 >> अब, कुछ भी दिलचस्प है कि एक बिट के लिए होता है। 862 00:37:52,330 --> 00:37:53,390 यह सब है printf है। 863 00:37:53,390 --> 00:37:58,010 और मेरे माध्यमिक टर्मिनल में, नोटिस खिड़की, मैं प्रिंट डेफ के उत्पादन में देखते हैं। 864 00:37:58,010 --> 00:38:01,080 और अब मैं एक बनाने के लिए है प्रोग्रामर के रूप में निर्णय। 865 00:38:01,080 --> 00:38:04,360 मैं इस लाइन पर कदम कर सकते हैं कोड, इसे क्रियान्वित नहीं बल्कि 866 00:38:04,360 --> 00:38:06,220 अंदर क्या है के बारे में उत्सुक हो रही है। 867 00:38:06,220 --> 00:38:11,130 या मैं वास्तव में यह कदम कर सकते हैं और स्वैप के ही अंदर जाना। 868 00:38:11,130 --> 00:38:12,340 तो चलो उत्तरार्द्ध करते हैं। 869 00:38:12,340 --> 00:38:15,550 >> मुझे आगे जाना है और क्लिक करते हैं खत्म नहीं हुआ कदम है लेकिन में कदम। 870 00:38:15,550 --> 00:38:17,300 सूचना, अचानक खिड़की परिवर्तन 871 00:38:17,300 --> 00:38:19,330 पहले उजागर करने के लिए स्वैप में कोड की लाइन। 872 00:38:19,330 --> 00:38:20,710 यही कारण है कि लाइन 21 है। 873 00:38:20,710 --> 00:38:25,220 और अब, कायरता की तरह है कि वह क्या है, आप यहाँ पर नजर डालें, तो उम्मीद के रूप में 874 00:38:25,220 --> 00:38:29,720 एक अल्पविराम ख क्रमशः 1 और 2, है। 875 00:38:29,720 --> 00:38:33,840 क्यों अस्थायी 32,767 है? 876 00:38:33,840 --> 00:38:36,560 बहुत पसंद है कि अस्थायी याद करते हुए एक पल पहले खाली कप, 877 00:38:36,560 --> 00:38:38,980 लाइन 21 पर यहां घोषित किया जाता है। 878 00:38:38,980 --> 00:38:43,390 मेरा मतलब है क्यों 32,000-, क्यों है यह सिर्फ कुछ अजीब मूल्य है? 879 00:38:43,390 --> 00:38:43,890 हाँ? 880 00:38:43,890 --> 00:38:45,190 >> दर्शकों: यह प्रारंभ नहीं किया है। 881 00:38:45,190 --> 00:38:46,940 >> डेविड जे मालन: यह प्रारंभ किया गया नहीं। 882 00:38:46,940 --> 00:38:49,370 इसलिए हमारे कंप्यूटर हमेशा भौतिक स्मृति है। 883 00:38:49,370 --> 00:38:50,544 यह हमेशा शारीरिक रैम है। 884 00:38:50,544 --> 00:38:52,710 और वहाँ हमेशा शून्य और एक सही है, वहाँ में है? 885 00:38:52,710 --> 00:38:54,626 हम प्रयोग कर रहे हैं, क्योंकि हमारी दिन भर कंप्यूटर, 886 00:38:54,626 --> 00:38:57,210 आप CS50 आईडीई का उपयोग कर रहे हैं या सर्वर दिन भर। 887 00:38:57,210 --> 00:39:01,159 कि राम कुछ शून्य है या तो या कुछ एक या कुछ शून्य और लोगों। 888 00:39:01,159 --> 00:39:02,950 कोई फर्क नहीं पड़ता कि क्या है या आप उन्हें प्रयोग कर रहे हैं नहीं। 889 00:39:02,950 --> 00:39:05,270 तुम बस खाली नहीं हो सकता रिक्त स्थान है, जहां आप बिट्स चाहते हैं। 890 00:39:05,270 --> 00:39:06,850 वे शून्य और लोगों को या तो कर रहे हैं। 891 00:39:06,850 --> 00:39:09,610 >> तो इसकी वजह यह है कि, अस्थायी पता चला है हम अभी तक यह शुरू नहीं किया है 892 00:39:09,610 --> 00:39:14,580 हम उन 32 बिट है, लेकिन वे नहीं किया है किसी भी ज्ञात मूल्यों के लिए प्रारंभ किया गया। 893 00:39:14,580 --> 00:39:18,110 तो वे थे जो कुछ सबसे हाल ही में उन 32 bits-- for-- इस्तेमाल किया 894 00:39:18,110 --> 00:39:23,000 हम सिर्फ कुछ की कलाकृतियों को देख रहे हैं विशेष रूप से उन 32 के पिछले उपयोग 895 00:39:23,000 --> 00:39:23,500 बिट्स। 896 00:39:23,500 --> 00:39:27,780 जैसे ही मैं हालांकि पर कदम क्लिक करें, के रूप में ओफ़्फ़, अस्थायी मूल्य 1 पाने के लिए जा रहा है। 897 00:39:27,780 --> 00:39:31,600 मैं इसे फिर से करते हैं, एक है मूल्य 2 दिए जा 898 00:39:31,600 --> 00:39:33,830 और फिर बी करने के लिए जा रहा है मान 1 दिया जाएगा। 899 00:39:33,830 --> 00:39:36,390 >> और तो क्या अब अच्छा है कहानी में इस बिंदु 900 00:39:36,390 --> 00:39:39,750 डिबगर है सुपर धीरे धीरे मुझे दिखा 901 00:39:39,750 --> 00:39:42,640 अपनी गति से, क्या स्वैप की स्थिति है। 902 00:39:42,640 --> 00:39:47,490 लेकिन यहाँ शीर्ष, सूचना पर नोटिस कि वास्तव में कॉल स्टैक 903 00:39:47,490 --> 00:39:49,180 यह करने के लिए दो परतों में है। 904 00:39:49,180 --> 00:39:53,240 के रूप में प्रकाश डाला है कि अब एक स्वैप, मैं बजाय मुख्य पर क्लिक करते हैं, 905 00:39:53,240 --> 00:39:57,100 स्थानीय चर कैसे बदल नोटिस डेवलपर बस हॉप कर सकते हैं क्योंकि 906 00:39:57,100 --> 00:39:59,740 के आसपास है और किसी भी अलग दायरे में जाना। 907 00:39:59,740 --> 00:40:04,070 हम यह सब कर रहे हैं तो भले ही काम करते हैं और सही ढंग से ए और बी स्वैपिंग, 908 00:40:04,070 --> 00:40:09,080 मैं स्वैप के बीच आगे और पीछे जाने के लिए अगर एक 2 और बी 1 और मुख्य है, जहां 909 00:40:09,080 --> 00:40:11,851 मुख्य बिल्कुल भी प्रभावित कर दिया गया है? 910 00:40:11,851 --> 00:40:12,350 नहीं। 911 00:40:12,350 --> 00:40:13,930 तो takeaway यहां क्या हो रहा है? 912 00:40:13,930 --> 00:40:18,200 खैर, यह किसी भी समय पता चला है कि आप स्वैप की तरह एक समारोह फोन 913 00:40:18,200 --> 00:40:21,600 और आप यह तर्क पारित क्या आप स्वैप समारोह को पारित कर रहे हैं 914 00:40:21,600 --> 00:40:24,730 इस मामले में एक प्रति है उन तर्कों की। 915 00:40:24,730 --> 00:40:28,620 तो एक्स और वाई क्रमशः प्रत्येक रहे हैं, तो 32 बिट, क्या स्वैप हो रही है 916 00:40:28,620 --> 00:40:30,760 दो नए स्थानीय है चर, या तर्कों 917 00:40:30,760 --> 00:40:34,380 कहा जाता है एक और b-- लेकिन उन मनमानी कर रहे हैं names-- लेकिन शून्य का पैटर्न 918 00:40:34,380 --> 00:40:39,520 और अंदर एक और ख के लोग कर रहे हैं लाइन में खड़ा एक्स और वाई के लिए समान होना 919 00:40:39,520 --> 00:40:42,610 लेकिन वे नहीं कर रहे हैं एक्स और वाई के रूप में एक ही बात है। 920 00:40:42,610 --> 00:40:46,880 >> मुख्य के अपने टुकड़े पर है, हालांकि ऐसा लगता है जैसे पेपर नंबर 1 और एक्स और वाई के लिए 2, 921 00:40:46,880 --> 00:40:49,260 और यह है कि हाथ तो जब कागज के टुकड़े स्वैप करने के लिए, 922 00:40:49,260 --> 00:40:51,970 स्वैप बहुत जल्दी हो जाता है अपने स्वयं के कलम, नीचे लिखता है 923 00:40:51,970 --> 00:40:56,240 1 और कागज की अपनी खुद की चादर पर 2, हाथों मुख्य करने के लिए मूल XY को वापस 924 00:40:56,240 --> 00:40:58,790 और फिर अपने आप ही करता है ए और बी के साथ बात। 925 00:40:58,790 --> 00:41:01,940 और इस वजह से अब सुपर महत्वपूर्ण है इस nontrivial निहितार्थ हैं 926 00:41:01,940 --> 00:41:06,260 वास्तव में सही कोड लिखने के लिए यह प्रतीत होता है क्योंकि हम स्वैप नहीं कर सकते 927 00:41:06,260 --> 00:41:07,500 दो चर। 928 00:41:07,500 --> 00:41:09,150 >> मैं एक सही स्वैप समारोह में लिखा है। 929 00:41:09,150 --> 00:41:12,770 हम के रूप में लॉरेन के साथ इसे क्रियान्वित किया है वास्तविकता में एक सही स्वैप समारोह, 930 00:41:12,770 --> 00:41:16,700 लेकिन इस बात का जाहिरा तौर पर कोई भी मामलों यदि आप वास्तव में नहीं कर सकते 931 00:41:16,700 --> 00:41:19,530 स्थायी रूप से दो मानों स्वैप। 932 00:41:19,530 --> 00:41:21,970 तो हम एक और तरह की जरूरत है वास्तव में इस पर पाने के लिए, 933 00:41:21,970 --> 00:41:24,472 और हम करने के लिए सक्षम होने की जरूरत वास्तव में इस समस्या का समाधान। 934 00:41:24,472 --> 00:41:27,180 और यह out-- बदल जाता है और हम आने देंगे वापस इस विशेष तस्वीर के लिए 935 00:41:27,180 --> 00:41:30,500 long-- से पहले यह एक तरीका है कि आप अपने कंप्यूटर की स्मृति आकर्षित हो सकता है। 936 00:41:30,500 --> 00:41:31,460 यह सिर्फ एक आयत है। 937 00:41:31,460 --> 00:41:32,960 आप किसी भी यह आकर्षित कर सकता है तरीके लेकिन यह है की संख्या 938 00:41:32,960 --> 00:41:35,740 एक के रूप में यह आकर्षित करने के लिए सुविधाजनक निम्न कारण आयत। 939 00:41:35,740 --> 00:41:40,040 >> हम परे आज शुरू करने के लिए जा रहे हैं तथाकथित ढेर के बारे में बात कर रही है। 940 00:41:40,040 --> 00:41:43,870 और ढेर सिर्फ एक हिस्सा है के memory-- का एक हिस्सा RAM-- 941 00:41:43,870 --> 00:41:47,100 कार्यों उपयोग किया है कि वे कहते हैं कि जब तक। 942 00:41:47,100 --> 00:41:49,800 और तो यह है कि कम से पता चला है इस ढेर के बहुत नीचे 943 00:41:49,800 --> 00:41:53,590 मुख्य के स्थानीय चर के सभी जहां है ओआरजी सी और ओआरजी वी और वह सब सामान और 944 00:41:53,590 --> 00:41:56,950 डिफ़ॉल्ट रूप से जाने के लिए जा रहे हैं। और मुख्य यदि स्वैप जैसे कुछ अन्य समारोह कॉल 945 00:41:56,950 --> 00:42:00,330 खैर, स्वैप एक और पाने के लिए जा रहा है यह ऊपर स्मृति ऊपर की परत। 946 00:42:00,330 --> 00:42:04,490 >> और तो बस आप एक त्वरित सरसरी देने के लिए इस के चित्र, मैं खत्म हो जाना है, तो here-- 947 00:42:04,490 --> 00:42:09,450 और मुझ पर इस दर्पण जाने भूमि के ऊपर के रूप में वास्तव में मैं क्या है well--, 948 00:42:09,450 --> 00:42:12,100 हम के बारे में ही परवाह है अब के लिए इस तस्वीर के नीचे, 949 00:42:12,100 --> 00:42:15,070 है कि मैं एक कार्यक्रम चलाने के लिए जब और मुख्य, बुलाया जाता है 950 00:42:15,070 --> 00:42:18,330 मुख्य का एक हिस्सा दिया जाता है है कि मेरे कंप्यूटर में रैम 951 00:42:18,330 --> 00:42:20,060 इस तथाकथित ढेर के नीचे। 952 00:42:20,060 --> 00:42:22,143 और मैं यह आकर्षित करने के लिए जा रहा हूँ जान-बूझकर एक वर्ग के रूप में। 953 00:42:22,143 --> 00:42:24,540 तो यह 32 बिट या चार बाइट्स की तरह है। 954 00:42:24,540 --> 00:42:28,790 और यह मुख्य कार्य किया है, तो एक 1 के एक मूल्य के साथ चर बुलाया एक्स 955 00:42:28,790 --> 00:42:32,626 और यह एक चर बुलाया है 2 के मूल्य के साथ Y, कि 956 00:42:32,626 --> 00:42:35,750 स्मृति के इस ज़ुल्फ़ लेने की तरह है कि मुख्य परिचालन द्वारा दिया गया है 957 00:42:35,750 --> 00:42:38,850 प्रणाली और इतना है कि यह विभाजित पहले स्थानीय चर, यहाँ जाता है 958 00:42:38,850 --> 00:42:40,930 दूसरा एक यहाँ जाता है, और यह बात है। 959 00:42:40,930 --> 00:42:45,590 >> मुख्य स्वैप, स्वैप कहता है स्मृति के लिए अपने स्वयं के टुकड़ा हो जाता है 960 00:42:45,590 --> 00:42:48,280 हम इस तरह से आकर्षित करेंगे कि ऑपरेटिंग सिस्टम से, 961 00:42:48,280 --> 00:42:50,820 और यह किया जा रहा है इसकी अपने स्थानीय चर आधारित 962 00:42:50,820 --> 00:42:53,825 हमारे कार्यान्वयन पर पहले स्थानीय चर के साथ एक 963 00:42:53,825 --> 00:42:58,010 शुरू में और ख है कि मूल्यों 1 और 2 मिलता है। 964 00:42:58,010 --> 00:43:00,450 लेकिन फिर, जैसे ही स्वैप कोड, कार्यान्वित 965 00:43:00,450 --> 00:43:03,760 और लॉरेन वास्तव में स्वैप OJ और दूध, क्या हो रहा है? 966 00:43:03,760 --> 00:43:09,030 खैर, इस 2 1, इस बनता जा रहा है 1, जिस तरह से एक 2 बनने के लिए, और है 967 00:43:09,030 --> 00:43:13,360 किया जा रहा है कि एक अस्थायी चर नहीं है कि अंत में कहा कि पूरे समय का इस्तेमाल 968 00:43:13,360 --> 00:43:14,470 दूर जाता है। 969 00:43:14,470 --> 00:43:16,720 लेकिन यह बात नहीं है कितना काम आप करते हैं 970 00:43:16,720 --> 00:43:22,160 इस लाइन इस स्मृति अंतरिक्ष में of-- में, एक्स और वाई पूरी तरह से अछूते हैं। 971 00:43:22,160 --> 00:43:26,320 >> तो हम देने की किसी तरह की जरूरत जैसे कि यह स्वैप और कार्यों 972 00:43:26,320 --> 00:43:32,640 गुप्त प्रवेश, अगर तुम जाएगा, करने के लिए कार्यों एक्स और वाई की तरह स्मृति को like--। 973 00:43:32,640 --> 00:43:35,110 तो चलो पर एक नजर डालते हैं मदद करता है कि एक उदाहरण 974 00:43:35,110 --> 00:43:38,220 हमें हो गया है कि क्या वास्तव में देखना इस पूरे समय चल रहा है। 975 00:43:38,220 --> 00:43:40,284 मैं आगे जाने के लिए जा रहा हूँ और ऊपर खुला शून्य की तुलना करें। 976 00:43:40,284 --> 00:43:42,200 और मैं बंद करने के लिए जा रहा हूँ हमारे डिबगर, मैं जा रहा हूँ 977 00:43:42,200 --> 00:43:44,360 इस डरावना लग संदेश को बंद करने के लिए बस, एक मिनट रुको कहते हैं, 978 00:43:44,360 --> 00:43:45,800 आप बीच डिबगिंग में कर रहे हैं। 979 00:43:45,800 --> 00:43:48,383 मैं यहाँ इस टैब को छिपाने के लिए जा रहा हूँ अभी वापस सादगी के लिए जाने के लिए। 980 00:43:48,383 --> 00:43:50,160 GDB की मौत हो जाती है तो तो चिंता मत करो। 981 00:43:50,160 --> 00:43:53,910 यही कारण है कि सिर्फ कार्यक्रम का मतलब है कि जानबूझ कर इस मामले में पद छोड़ने की गई, 982 00:43:53,910 --> 00:43:54,820 मेरे द्वारा। 983 00:43:54,820 --> 00:43:57,700 >> और अब शून्य इस करता है की तुलना करें। 984 00:43:57,700 --> 00:44:00,110 मैं CS50 उपयोग कर रहा हूँ मानक आई / ओ में पुस्तकालय। 985 00:44:00,110 --> 00:44:04,319 मुझे लगता है कि पहले एक मुख्य समारोह मिल गया है कहते हैं, कुछ कहते हैं, और एक स्ट्रिंग हो जाता है। 986 00:44:04,319 --> 00:44:06,110 तो फिर और यह कहते हैं एक और तार हो जाता है। 987 00:44:06,110 --> 00:44:09,910 और कहा कि इन दोनों के तार नोटिस क्रमश: एस और टी कहा जाता है। 988 00:44:09,910 --> 00:44:12,910 और अब इस कार्यक्रम की तुलना करें शून्य, जीवन में अपने उद्देश्य, 989 00:44:12,910 --> 00:44:15,470 यह मुझे बताने के लिए माना जाता है, मैं एक ही बात टाइप किया? 990 00:44:15,470 --> 00:44:16,910 और इसलिए मैं एक सप्ताह के लिए वापस जा रहा हूँ। 991 00:44:16,910 --> 00:44:19,950 मैं अपने बराबर बराबर ऑपरेटर का उपयोग कर रहा हूँ जो गुणवत्ता के ऑपरेटर है। 992 00:44:19,950 --> 00:44:22,220 नहीं असाइनमेंट ऑपरेटर, समानता ऑपरेटर। 993 00:44:22,220 --> 00:44:23,890 मैं सिर्फ एस और टी तुलना कर रहा हूँ। 994 00:44:23,890 --> 00:44:27,470 >> तो चलो वास्तव में आगे जाना है और यह करते हैं। 995 00:44:27,470 --> 00:44:32,680 और मैं आगे जाने के लिए जा रहा हूँ और शून्य से तुलना कर सकते हैं। 996 00:44:32,680 --> 00:44:35,110 मैं ./comparezero क्या करने जा रहा हूँ। 997 00:44:35,110 --> 00:44:37,150 और मैं जाने के लिए जा रहा हूँ आगे और कुछ कहने 998 00:44:37,150 --> 00:44:43,450 जैसे, के छोटे अक्षरों में माँ करते हैं और कैसे अपरकेस में माँ के बारे में। 999 00:44:43,450 --> 00:44:45,034 और निश्चित रूप से मैं अलग अलग बातें लिखें। 1000 00:44:45,034 --> 00:44:45,533 ठीक है। 1001 00:44:45,533 --> 00:44:46,570 यही कारण है कि उम्मीद की जा रही है। 1002 00:44:46,570 --> 00:44:47,640 >> चलो फिर से इसे चलाते हैं। 1003 00:44:47,640 --> 00:44:49,740 दोनों बार, छोटे छोटे अक्षरों करते हैं। 1004 00:44:49,740 --> 00:44:51,490 यह मेरे लिए सुपर समान दिखता है। 1005 00:44:51,490 --> 00:44:52,930 दर्ज करें। 1006 00:44:52,930 --> 00:44:53,430 ठीक। 1007 00:44:53,430 --> 00:44:55,804 शायद इसकी वजह यह सिर्फ अजीब है यह मेरी व्याकरण को पसंद नहीं है। 1008 00:44:55,804 --> 00:44:59,930 तो चलो एक राजधानी माँ करते हैं, राजधानी माँ, समान। 1009 00:44:59,930 --> 00:45:01,490 अलग अलग बातें। 1010 00:45:01,490 --> 00:45:03,907 >> तो ऐसा क्यों है? 1011 00:45:03,907 --> 00:45:06,240 ठीक है, वास्तव में क्या हो रहा है यहां हुड के नीचे? 1012 00:45:06,240 --> 00:45:08,180 तो चलो वापस पर चलें यहां सिर्फ एक पल के लिए 1013 00:45:08,180 --> 00:45:10,910 और क्या विचार GetString वास्तव में कर रही है। 1014 00:45:10,910 --> 00:45:13,385 आप GetString कॉल करते हैं, एक समारोह है कि हम है 1015 00:45:13,385 --> 00:45:16,510 खुद लिखा है और यह किसी भी तरह एक हो जाता है उपयोगकर्ता से पात्रों के अनुक्रम। 1016 00:45:16,510 --> 00:45:20,280 और चलो पहले मान लेते हैं कि समय मैं GetString कहते हैं, कि मुझे देता है 1017 00:45:20,280 --> 00:45:21,930 स्मृति का एक हिस्सा है कि इस तरह दिखता है। 1018 00:45:21,930 --> 00:45:26,990 और मैं सभी को छोटे अक्षरों में लिखा गया है, तो एम-ओ-m-- और क्या यह करने के बाद चला जाता है? 1019 00:45:26,990 --> 00:45:28,840 बस एक त्वरित मानसिक स्वास्थ्य की जांच। 1020 00:45:28,840 --> 00:45:29,780 >> Backslash शून्य। 1021 00:45:29,780 --> 00:45:30,510 हम जानते हैं कि। 1022 00:45:30,510 --> 00:45:32,784 और हम खेला याद है कि चारों ओर Zamila के नाम के साथ 1023 00:45:32,784 --> 00:45:34,950 और अन्य नाम का एक गुच्छा जब रोब यहाँ देख रहा था 1024 00:45:34,950 --> 00:45:36,280 स्मृति के अंदर क्या हो रहा है पर। 1025 00:45:36,280 --> 00:45:37,780 तो यह है कि कहानी बिल्कुल वैसा ही है। 1026 00:45:37,780 --> 00:45:40,160 यह क्या है GetString मेरे लिए लौट रहा है। 1027 00:45:40,160 --> 00:45:44,780 अब, मेरे कोड एक पल पहले संग्रहित GetString की मान 1028 00:45:44,780 --> 00:45:47,510 एक चर में कहा जाता है। 1029 00:45:47,510 --> 00:45:51,390 और फिर दूसरी बार मैं यह कहा जाता है, यह एक चर बुलाया टी में संग्रहीत। 1030 00:45:51,390 --> 00:45:55,070 >> मैं यहाँ पर जाना तो, अगर मैं की जरूरत है इस स्थानीय variable-- आकर्षित करने के लिए 1031 00:45:55,070 --> 00:45:59,610 और मैं आम तौर पर करने के लिए जा रहा हूँ just-- हम करेंगे के रूप में एक स्ट्रिंग आकर्षित 1032 00:45:59,610 --> 00:46:02,360 यहाँ एक छोटा सा वर्ग के रूप में यह s-- कहते हैं। 1033 00:46:02,360 --> 00:46:09,760 माँ कैसे करता है और अब, somehow-- इस चर एस के अंदर जाने के लिए? 1034 00:46:09,760 --> 00:46:12,010 खैर, हम वापस जाने की जरूरत यहां पहले सिद्धांतों के लिए। 1035 00:46:12,010 --> 00:46:15,660 GetString वास्तव में क्या लौट रहा है? 1036 00:46:15,660 --> 00:46:19,030 >> तो यह है कि एम-ओ-एम पता चला है बैकस्लैश शून्य है, और किसी भी संख्या 1037 00:46:19,030 --> 00:46:22,364 जैसे स्मृति में अन्य तारों की Zamila और रोब या एंडी या किसी भी अन्य लोगों, 1038 00:46:22,364 --> 00:46:24,280 में कोर्स कर रहे हैं हमारे कंप्यूटर की रैम या स्मृति। 1039 00:46:24,280 --> 00:46:27,760 और अपने राम तुम्हारे पास like-- है राम की एक टमटम, राम के दो gigs, 1040 00:46:27,760 --> 00:46:30,860 या एक अरब या दो अरब बाइट्स, या शायद उससे भी ज्यादा इन दिनों। 1041 00:46:30,860 --> 00:46:34,070 तो चलो आज के प्रयोजनों के लिए, मान लेते हैं, यह हम नंबर कैसे कोई फर्क नहीं पड़ता कि 1042 00:46:34,070 --> 00:46:36,640 उन्हें है, लेकिन हम प्रत्येक नंबर सकते हैं उन अरब या दो अरब डॉलर का 1043 00:46:36,640 --> 00:46:37,880 या चार अरब बाइट्स। 1044 00:46:37,880 --> 00:46:42,240 >> और चलो बस मनमाने ढंग से कहते हैं कि इस पहली काटने, दूसरी काटने है, 1045 00:46:42,240 --> 00:46:43,380 तीसरे, चौथे। 1046 00:46:43,380 --> 00:46:46,570 मैं जानबूझ के लिए शून्य का उपयोग नहीं कर रहा हूँ लेकिन आज हम वापस करने के लिए आया हूँ। 1047 00:46:46,570 --> 00:46:49,570 तो दूसरे शब्दों में यह है, यदि बहुत पहली बार मैं प्रोग्राम का उपयोग कर रहा हूँ 1048 00:46:49,570 --> 00:46:52,715 मैं सिर्फ भाग्यशाली है और पहले हो रही है काटने तो स्थान से एक पर दो 1049 00:46:52,715 --> 00:46:53,590 उसके बाद तीन से चार से अधिक है। 1050 00:46:53,590 --> 00:46:57,430 और मैं ड्राइंग रखा है, तो बॉक्स संख्या दो अरब रास्ते पर यहाँ होगा। 1051 00:46:57,430 --> 00:47:02,200 >> तो तुम तो, क्या लगता है, GetString वास्तव में देता है? 1052 00:47:02,200 --> 00:47:06,010 यह एम-ओ-एम बैकस्लैश वापस नहीं है शून्य से प्रति स्पष्ट है कि क्योंकि 1053 00:47:06,010 --> 00:47:08,180 मैं खींचा है कि बॉक्स में फिट नहीं होगा। 1054 00:47:08,180 --> 00:47:11,210 तो वास्तव में और क्या हो सकता है GetString इन सभी सप्ताह लौटने जा सकता है? 1055 00:47:11,210 --> 00:47:14,410 1056 00:47:14,410 --> 00:47:16,820 जवाब पर है बोर्ड यहीं कहीं। 1057 00:47:16,820 --> 00:47:20,390 तुम्हें पता है, एम-ओ-एम बैकस्लैश शून्य फिट नहीं कर सकते तो क्या बजाय समझ कर सकता है? 1058 00:47:20,390 --> 00:47:23,424 तुम डाल, सुपर चालाक होना था तो तथाकथित इंजीनियरिंग टोपी पर, 1059 00:47:23,424 --> 00:47:24,340 आप क्या लौट सकता है? 1060 00:47:24,340 --> 00:47:27,340 क्या जानकारी के कम से कम राशि है तुम अब भी होता है कि वापसी कर सकता है 1061 00:47:27,340 --> 00:47:30,610 आप स्मृति में एम-ओ-एम पाते हैं? 1062 00:47:30,610 --> 00:47:31,270 हाँ? 1063 00:47:31,270 --> 00:47:31,950 >> दर्शकों: एक। 1064 00:47:31,950 --> 00:47:32,200 >> डेविड जे मालन: एक। 1065 00:47:32,200 --> 00:47:33,021 और क्यों एक? 1066 00:47:33,021 --> 00:47:35,520 दर्शकों: यह बताना होगा क्योंकि आप जहां [सुनाई] जाने के लिए। 1067 00:47:35,520 --> 00:47:38,391 1068 00:47:38,391 --> 00:47:39,390 डेविड जे मालन: बिल्कुल। 1069 00:47:39,390 --> 00:47:44,300 मैं सिर्फ पता वापस करने के लिए जा रहा हूँ मुझे मिल गया है कि स्ट्रिंग की। 1070 00:47:44,300 --> 00:47:46,570 इस में पता मामले स्थान से एक है। 1071 00:47:46,570 --> 00:47:51,280 तो क्या वास्तव में s-- में संग्रहित किया जा रहा है और हर स्ट्रिंग चर इस प्रकार far-- 1072 00:47:51,280 --> 00:47:53,430 सिर्फ कर दिया गया है कि तार का पता। 1073 00:47:53,430 --> 00:47:57,840 >> इस बीच, मैं कॉल एक दूसरी बार और मैं GetString 1074 00:47:57,840 --> 00:48:03,300 सचमुच ही thing-- में टाइप Lowercase-- एम-ओ-M के साथ एम-ओ-एम 1075 00:48:03,300 --> 00:48:06,200 और एक अन्य बैकस्लैश शून्य, और अब शायद अपने कार्यक्रम के 1076 00:48:06,200 --> 00:48:09,820 कुछ समय के लिए तो शायद यह चल रहा 10 है, यह इस 12 है, स्थान 11 है 1077 00:48:09,820 --> 00:48:10,700 इस 13 है। 1078 00:48:10,700 --> 00:48:13,590 कुछ अन्य का उपयोग कर कंप्यूटर जो भी कारण के लिए स्मृति। 1079 00:48:13,590 --> 00:48:18,172 क्या अब मेरी दूसरी में चला जाता है मेरे प्रोग्राम टी में चर? 1080 00:48:18,172 --> 00:48:19,390 10। 1081 00:48:19,390 --> 00:48:20,050 बिल्कुल सही। 1082 00:48:20,050 --> 00:48:23,910 >> और इसलिए हम पर जब देखो इस कार्यक्रम के स्रोत कोड 1083 00:48:23,910 --> 00:48:26,550 जहां मैं बस कोशिश कर रहा हूँ दो मूल्यों की तुलना करने के लिए, 1084 00:48:26,550 --> 00:48:32,180 टी के बराबर बराबर है, क्या स्पष्ट मानव जवाब? 1085 00:48:32,180 --> 00:48:34,890 1 10 बराबर नहीं है बस कोई है। 1086 00:48:34,890 --> 00:48:36,861 और इसलिए इस के साथ साथ एक निहित है अवसर के लिए हमें वास्तव में 1087 00:48:36,861 --> 00:48:39,610 सिर्फ पहला, फिर से वापस जाने के लिए सिद्धांतों और अच्छी तरह से, के बारे में सोचना, 1088 00:48:39,610 --> 00:48:41,110 क्या हुड के नीचे हो रहा है? 1089 00:48:41,110 --> 00:48:43,240 हम इस बारे में बात कर रहा है बिट्स और बाइट्स और स्मृति, 1090 00:48:43,240 --> 00:48:46,820 लेकिन यह समझने के लिए वास्तव में उपयोगी है आप GetString कॉल करते हैं, क्योंकि 1091 00:48:46,820 --> 00:48:50,280 हम के बारे में सोचना है, भले ही यह है एम-ओ-एम या स्ट्रिंग माँ लौटने 1092 00:48:50,280 --> 00:48:53,120 या एंडी या Zamila या जैसे, तकनीकी रूप से 1093 00:48:53,120 --> 00:48:55,510 यह सिर्फ पते लौट रहा है स्मृति की है कि हिस्सा के। 1094 00:48:55,510 --> 00:48:56,910 >> लेकिन यह ठीक है। 1095 00:48:56,910 --> 00:49:00,570 मैं कैसे जानते हैं क्योंकि स्ट्रिंग जहां समाप्त होता है? 1096 00:49:00,570 --> 00:49:03,840 मैं केवल शुरुआत दी रहा हूँ? 1097 00:49:03,840 --> 00:49:05,380 खैर, बैकस्लैश शून्य, है ना? 1098 00:49:05,380 --> 00:49:08,800 बस मैं कर सकता हूँ रैखिक समय में प्रिंट डेफ एम-ओ-M के साथ बाहर प्रिंट। 1099 00:49:08,800 --> 00:49:11,820 और जैसे ही मैं बैकस्लैश देखने के रूप में मैं शुरू कर दिया है जहां शून्य है, मैं परवाह नहीं है 1100 00:49:11,820 --> 00:49:14,950 मैं पहले से ही संकेत भी पता है जहां मैं खत्म करने की जरूरत है। 1101 00:49:14,950 --> 00:49:18,700 >> और इसलिए आज beginning-- के निशान और मुझे क्योंकि हम नाटकीय रूप से यह करते हैं 1102 00:49:18,700 --> 00:49:21,800 मुसीबत का एक बहुत कुछ करने के माध्यम से चला गया इन यहां wheels-- प्रशिक्षण प्राप्त 1103 00:49:21,800 --> 00:49:29,840 इसलिए आज प्रशिक्षण के पहियों शुरू बंद आते हैं और हम पर प्रकट करने के लिए least-- 1104 00:49:29,840 --> 00:49:31,373 >> [वाहवाही] 1105 00:49:31,373 --> 00:49:33,220 1106 00:49:33,220 --> 00:49:36,160 >> यही कारण है कि अच्छी तरह से यात्रा के लायक था हाँ, इस सुबह को लक्षित करने के लिए? 1107 00:49:36,160 --> 00:49:39,600 तो now-- नहीं है, यह बदल जाता है बाहर, स्ट्रिंग के रूप में ऐसी कोई बात नहीं। 1108 00:49:39,600 --> 00:49:41,140 स्ट्रिंग मौजूद नहीं है। 1109 00:49:41,140 --> 00:49:43,760 यह हमें मिला है कि एक पर्याय है CS50 पुस्तकालय के अंदर। 1110 00:49:43,760 --> 00:49:48,660 इसके बाद, हम बुला शुरू करने जा रहे हैं एस और टी नहीं तार लेकिन चार सितारों। 1111 00:49:48,660 --> 00:49:51,180 चार सितारा और हम करेंगे इससे पहले लंबे समय तक अलग तंग। 1112 00:49:51,180 --> 00:49:53,510 लेकिन यह कहने के लिए है, हम जारी कि भले 1113 00:49:53,510 --> 00:49:56,180 अब के लिए GetString का उपयोग कर, तकनीकी रूप से मैं चाहिए 1114 00:49:56,180 --> 00:49:59,010 चार सितारा और चार स्टार कह रही हो। 1115 00:49:59,010 --> 00:50:01,720 >> और यह क्या है कि स्टार पता चला है निरूपित करने के लिए जा रहा है कुछ है 1116 00:50:01,720 --> 00:50:04,340 एक सूचक या एक पते बुलाया। 1117 00:50:04,340 --> 00:50:06,110 और वास्तव में, एक नमूना के लिए क्या आगे झूठ 1118 00:50:06,110 --> 00:50:09,760 से इस 20 सेकंड क्लिप है हमारी स्टैनफोर्ड में दोस्त निक Parlante 1119 00:50:09,760 --> 00:50:12,927 जो है, काफी कुछ समय पहले, खर्च समय की एक हास्यास्पद राशि, 1120 00:50:12,927 --> 00:50:15,010 सबसे अच्छा के रूप में मैं बता सकता है उसकी रसोई या अपने तहखाने, 1121 00:50:15,010 --> 00:50:17,140 claymation बनाने दुनिया के लिए शुरू 1122 00:50:17,140 --> 00:50:20,010 नाम का एक चरित्र Binky जिनके साथ हम करेंगे 1123 00:50:20,010 --> 00:50:22,010 संकेत करने के लिए अगली बार पेश किया। 1124 00:50:22,010 --> 00:50:24,588 तो यहाँ आने के लिए क्या है की एक पूर्वावलोकन है। 1125 00:50:24,588 --> 00:50:26,370 >> [वीडियो प्लेबैक] 1126 00:50:26,370 --> 00:50:27,510 >> हे, Binky। 1127 00:50:27,510 --> 00:50:28,260 उठो। 1128 00:50:28,260 --> 00:50:30,672 यह सूचक मनोरंजन के लिए समय है। 1129 00:50:30,672 --> 00:50:31,616 >> -वह क्या है? 1130 00:50:31,616 --> 00:50:33,032 संकेत के बारे में जानें? 1131 00:50:33,032 --> 00:50:34,450 ओह, गुडी। 1132 00:50:34,450 --> 00:50:35,431 >> [अंत प्लेबैक] 1133 00:50:35,431 --> 00:50:38,055 डेविड जे मालन: और उस पर ध्यान दें, हम बुधवार को आप देखेंगे। 1134 00:50:38,055 --> 00:50:47,590 1135 00:50:47,590 --> 00:50:48,090 ठीक है। 1136 00:50:48,090 --> 00:50:48,740 नृत्य कौन है? 1137 00:50:48,740 --> 00:50:49,240 चलो। 1138 00:50:49,240 --> 00:50:50,330 नृत्य कौन है? 1139 00:50:50,330 --> 00:50:51,820 तुम मुझे यह आरंभ करना चाहते हैं? 1140 00:50:51,820 --> 00:50:53,770 मैं इसे शुरू कर देंगे। 1141 00:50:53,770 --> 00:50:54,270 Woooo! 1142 00:50:54,270 --> 00:51:04,070 1143 00:51:04,070 --> 00:51:07,580 >> लॉरेन: मीठा फैंसी मूसा।