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