1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] डेविड जे मालन: बिलकुल ठीक. 2 00:00:08,160 --> 00:00:11,170 इस CS50 है, और यह दो सप्ताह के अंत है. 3 00:00:11,170 --> 00:00:14,650 यदि आप इस समय कल के आसपास भूखे होने की उम्मीद है पता है, कि हम जा रहे हैं 4 00:00:14,650 --> 00:00:18,920 एक छोटे से समूह कल, गुरुवार, 1:15 के रूप में आयोजित. 5 00:00:18,920 --> 00:00:21,460 इस URL यहाँ अगर आप RSVP करना चाहते हैं. 6 00:00:21,460 --> 00:00:25,270 स्थान सीमित है, तो माफ कर दो, अगर फार्म समय से भरी है आप कृपया 7 00:00:25,270 --> 00:00:26,680 इसे भरने की. 8 00:00:26,680 --> 00:00:29,400 हालांकि एक अन्य यूआरएल है कि ब्याज की हो सकती है. 9 00:00:29,400 --> 00:00:32,409 >> तो बस के बारे में एक महीने के समय में, इस पाठ्यक्रम के लिए उपलब्ध कराया जा रहा है 10 00:00:32,409 --> 00:00:36,090 EDX के माध्यम से और अधिक मोटे तौर पर, जो सभी के माध्यम से इंटरनेट पर लोगों को हो जाएगा 11 00:00:36,090 --> 00:00:39,580 साथ पालन करने में काफी सक्रिय रूप से संलग्न है, वास्तव में करने में सक्षम है. 12 00:00:39,580 --> 00:00:43,070 वे CS50 उपकरण और CS50 चर्चा और अधिकांश का उपयोग किया जाएगा 13 00:00:43,070 --> 00:00:45,840 विभिन्न सॉफ्टवेयर उपकरण है कि हम पहले से ही इस सेमेस्टर का उपयोग किया गया. 14 00:00:45,840 --> 00:00:49,030 और पहल की हम एक प्रयोग के रूप में इस वर्ष पर ले जाना चाहता हूँ 15 00:00:49,030 --> 00:00:53,120 देखने के लिए अभी कितना सामग्री हम अन्य बात की में अनुवाद कर सकते हैं और 16 00:00:53,120 --> 00:00:54,110 लिखित भाषा. 17 00:00:54,110 --> 00:00:58,000 तो अगर आप इस परियोजना में भाग लेने में रुचि है, जिससे हो सकता है 18 00:00:58,000 --> 00:01:02,090 हम पाठ्यक्रम के लिए अंग्रेजी टेप और उपशीर्षक प्रदान करेगा 19 00:01:02,090 --> 00:01:05,190 व्याख्यान और शॉर्ट्स और सेमिनारों और वर्गों और तरह - 20 00:01:05,190 --> 00:01:08,700 अगर आप धाराप्रवाह बोलते हैं या धाराप्रवाह कुछ अन्य भाषा लिखने, हम करेंगे 21 00:01:08,700 --> 00:01:12,240 प्यार करने के लिए आप इस परियोजना में शामिल करने के लिए, आप एक या एक से अधिक पर ले जिससे 22 00:01:12,240 --> 00:01:15,340 वीडियो, उन्हें एक भाषा आप अच्छी तरह जानते हैं में अनुवाद. 23 00:01:15,340 --> 00:01:19,050 आप अंतरफलक की भावना दे, वहाँ इस उपयोगकर्ता वेब आधारित इंटरफेस है 24 00:01:19,050 --> 00:01:22,330 कि हम का उपयोग किया है कि अनिवार्य रूप से इस तरह एक UI पैदा करेगा. 25 00:01:22,330 --> 00:01:24,520 यह मुझे कुछ हेलोवीन पहले सिखा रहा था. 26 00:01:24,520 --> 00:01:27,710 और काले रंग में सही हाथ पक्ष इन समय टिकटों के लिए अगले पर, 27 00:01:27,710 --> 00:01:31,300 आप विभिन्न चीजें हैं जो मेरे मुंह से उस दिन बाहर आया देखेंगे. 28 00:01:31,300 --> 00:01:34,660 और फिर इसे नीचे, आप किसी अन्य भाषा में अनुवाद करने में सक्षम हो जाएगा. 29 00:01:34,660 --> 00:01:37,840 क्या वास्तव में मानचित्रण के बीच इस मामले में, अंग्रेजी में है, 30 00:01:37,840 --> 00:01:38,660 और कहते हैं, स्पेनिश. 31 00:01:38,660 --> 00:01:40,480 तो यह वास्तव में एक बहुत उपयोगकर्ता के अनुकूल उपकरण है. 32 00:01:40,480 --> 00:01:43,690 आप अतीत और तेजी से आगे कुंजीपटल शॉर्टकट के साथ बहुत आसानी से कर सकते हैं. 33 00:01:43,690 --> 00:01:46,710 तो अगर आप इस प्रयोग में भाग लेने की तरह है और अपने शब्दों 34 00:01:46,710 --> 00:01:50,730 देखा और वहाँ से बाहर लोगों के संभावित हजारों द्वारा पढ़ा, महसूस करते हैं 35 00:01:50,730 --> 00:01:51,960 मुक्त करने के लिए भाग लेने के लिए. 36 00:01:51,960 --> 00:01:56,940 >> अब सोमवार से बिल्ली का बच्चा के बारे में एक शब्द है, ऐसा न हो कि हम एक पीढ़ी भेजा है 37 00:01:56,940 --> 00:01:58,120 डरावना संदेश. 38 00:01:58,120 --> 00:02:02,130 एहसास है कि के रूप में कार्यालय समय के सुझाव और वर्गों के रूप में सुझाव है, क्या 39 00:02:02,130 --> 00:02:05,110 पाठ्यक्रम के डिजाइन बहुत छात्रों सहयोग और ज्यादा है 40 00:02:05,110 --> 00:02:09,250 समस्या सेट और समस्याओं के माध्यम से एक साथ काम करने की बात कर रहे हैं. 41 00:02:09,250 --> 00:02:13,630 और वास्तव में लाइन बस नीचे करने के लिए आता है, फिर से, काम अंततः आप 42 00:02:13,630 --> 00:02:16,420 चाहिए submit अपना स्वयं का होना चाहिए. 43 00:02:16,420 --> 00:02:19,080 और तो यह है, बहुत ईमानदारी से कार्यालय घंटे में, यह पूरी तरह से सामान्य है - 44 00:02:19,080 --> 00:02:21,560 यह पूरी तरह से करने के लिए भी उम्मीद - कुछ के साथ बातें 45 00:02:21,560 --> 00:02:22,370 आप के बगल में दोस्त. 46 00:02:22,370 --> 00:02:25,240 अगर वह या वह कुछ विषय के साथ संघर्ष कर रही है, और आप की तरह कर रहे हैं, ओह, ठीक है 47 00:02:25,240 --> 00:02:27,750 मुझे आप कोड के कुछ लाइन है कि मैं ने लिखा की एक झलक देते हैं. 48 00:02:27,750 --> 00:02:28,290 यह ठीक है. 49 00:02:28,290 --> 00:02:28,700 ऐसा होता है. 50 00:02:28,700 --> 00:02:31,580 और है कि बहुत ज्यादा अनुकूल सीखने की प्रक्रिया के साथ मुझे लगता है, है. 51 00:02:31,580 --> 00:02:35,270 कहां लाइन, फिर से पार कर जाता है, हो जाता है जब सॉर्ट के सिर पर झुका हुआ है 52 00:02:35,270 --> 00:02:38,800 यहाँ अभी तक भी कई सेकंड या मिनट के लिए उस के लिए वास्तव में बस है 53 00:02:38,800 --> 00:02:41,250 अपने दोस्त के लिए एक unblocking अवसर गया. 54 00:02:41,250 --> 00:02:43,870 और निश्चित रूप से, जब चीजें के माध्यम से ईमेल और ड्रॉपबॉक्स और विमर्श मिलता है 55 00:02:43,870 --> 00:02:45,350 की तरह, वहाँ भी लाइन है. 56 00:02:45,350 --> 00:02:48,940 तो हर तरह से, आराम से लग रहा है और लगता है दोस्तों के साथ चैट करने के लिए प्रोत्साहित 57 00:02:48,940 --> 00:02:51,270 और के बारे में और अधिक psets सहपाठियों. 58 00:02:51,270 --> 00:02:54,680 और बस एहसास है कि क्या आप अंततः submit वास्तव में होना चाहिए 59 00:02:54,680 --> 00:02:57,780 अपने सृजन और नहीं किसी और के उत्पाद. 60 00:02:57,780 --> 00:03:01,010 >> तो cuddly प्राणियों के एक ही नस में है, तो आप कर सकते हैं 61 00:03:01,010 --> 00:03:02,820 इस आदमी के यहाँ पता. 62 00:03:02,820 --> 00:03:06,180 तो इस साल पहले से एक horrifically घटिया फिल्म है. 63 00:03:06,180 --> 00:03:08,680 यहाँ कोई भी Spaceballs देखा है? 64 00:03:08,680 --> 00:03:09,120 सही सभी. 65 00:03:09,120 --> 00:03:10,220 तो यहाँ एक अच्छी संख्या. 66 00:03:10,220 --> 00:03:13,840 तो यह हमारे आज अंत में शुरू करने की अद्भुत शैक्षिक तरीका है 67 00:03:13,840 --> 00:03:15,130 क्रिप्टोग्राफी की धारणा. 68 00:03:15,130 --> 00:03:19,010 और इसलिए 2 pset, जो आने के लिए डोमेन विशिष्ट समस्याओं का एक 69 00:03:19,010 --> 00:03:22,770 देर से कल रात बाहर, क्रिप्टोग्राफी की दुनिया में गोता, जो 70 00:03:22,770 --> 00:03:26,380 कला encrypting या scrambling जानकारी की है. 71 00:03:26,380 --> 00:03:30,160 और यह अंततः सुरक्षा की दुनिया से संबंधित है. 72 00:03:30,160 --> 00:03:34,440 >> अब ज्यादातर के लिए सुरक्षा हमें काफी सांसारिक तंत्र के रूप में आता है. 73 00:03:34,440 --> 00:03:36,920 हम सभी उपयोगकर्ता नाम और पासवर्ड है. 74 00:03:36,920 --> 00:03:41,350 और हम सब बहुत बुरा उपयोगकर्ता नाम और पासवर्ड है, सबसे अधिक संभावना है. 75 00:03:41,350 --> 00:03:45,250 यदि आपका पासवर्ड कई वेबसाइटों पर ही है, कि शायद नहीं है 76 00:03:45,250 --> 00:03:47,920 सबसे अच्छा विचार है, के रूप में हम सेमेस्टर के अंत की दिशा में चर्चा करेंगे. 77 00:03:47,920 --> 00:03:51,680 कोई मज़ाक नहीं है - अपने पर यदि आपका पासवर्ड एक चिपचिपा नोट पर लिखा है 78 00:03:51,680 --> 00:03:55,130 मॉनिटर, वह भी जरूरी सबसे अच्छा डिजाइन, लेकिन काफी एक आम नहीं है 79 00:03:55,130 --> 00:03:56,140 घटना. 80 00:03:56,140 --> 00:04:00,420 और अगर आप क्रिप्टोग्राफी का उपयोग नहीं कर अपने पासवर्ड एन्क्रिप्ट कर रहे हैं, वे कर रहे हैं 81 00:04:00,420 --> 00:04:01,610 विशेष रूप से कमजोर है. 82 00:04:01,610 --> 00:04:04,670 तो अगर आपको लगता है कि आप सुपर हो जा रहा है एक छिपे हुए शब्द होने से चालाक 83 00:04:04,670 --> 00:04:07,740 अपनी हार्ड ड्राइव है कि अपने सभी पासवर्ड की है लेकिन कहीं पर दस्तावेज़ 84 00:04:07,740 --> 00:04:10,550 यह एक फ़ोल्डर में है कि कोई भी लग रहा है, वह भी एक बहुत नहीं है 85 00:04:10,550 --> 00:04:11,540 सुरक्षित तंत्र. 86 00:04:11,540 --> 00:04:15,100 और इसलिए 2 pset का परिचय देंगे क्या क्रिप्टोग्राफी का इस कला है और 87 00:04:15,100 --> 00:04:18,300 जानकारी पांव मार इतना है कि पासवर्ड की तरह बातें कर रहे हैं 88 00:04:18,300 --> 00:04:19,500 सभी को और अधिक सुरक्षित. 89 00:04:19,500 --> 00:04:24,500 तो के रूप में एक बहुत ही गैर वास्तविक दुनिया के साथ यह बहुत ही वास्तविक दुनिया समस्या को प्रेरित करने के लिए 90 00:04:24,500 --> 00:04:28,740 परिदृश्य, मुझे तुम हमारे पसंदीदा क्लिप के लिए इस से यहाँ शुरू 91 00:04:28,740 --> 00:04:29,895 फिल्म, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [वीडियो प्लेबैक] 93 00:04:30,565 --> 00:04:32,995 - हेलमेट लेनेवाला, क्या पर जा रहा है? 94 00:04:32,995 --> 00:04:34,730 तुम मेरी बेटी को क्या कर रहे हैं? 95 00:04:34,730 --> 00:04:38,960 मुझे प्रतिभाशाली युवा प्लास्टिक सर्जन, डॉ. फिलिप को लागू करने के लिए परमिट 96 00:04:38,960 --> 00:04:43,290 Schlotkin, पूरे में सबसे बड़ी नाक नौकरी आदमी 97 00:04:43,290 --> 00:04:45,526 ब्रह्मांड और बेवर्ली हिल्स. 98 00:04:45,526 --> 00:04:46,450 आपका महारानी. 99 00:04:46,450 --> 00:04:47,380 नाक नौकरी? 100 00:04:47,380 --> 00:04:48,035 मैं नहीं समझा. 101 00:04:48,035 --> 00:04:49,480 वह पहले से ही एक नाक नौकरी थी. 102 00:04:49,480 --> 00:04:51,490 यह एक मिठाई 16 मौजूद था. 103 00:04:51,490 --> 00:04:53,090 - नहीं, यह नहीं है कि आप क्या सोचते हैं. 104 00:04:53,090 --> 00:04:55,150 यह बहुत है, बहुत बुरा. 105 00:04:55,150 --> 00:04:59,860 यदि आप मुझे हवा ढाल नहीं संयोजन देना नहीं है, डॉ. Schlotkin 106 00:04:59,860 --> 00:05:04,135 अपनी बेटी को दे वापस अपने पुराने नाक. 107 00:05:04,135 --> 00:05:05,385 नहीं! 108 00:05:08,202 --> 00:05:10,186 आपको लगता है कि कहाँ से मिला? 109 00:05:10,186 --> 00:05:11,178 - ठीक है. 110 00:05:11,178 --> 00:05:11,674 मैं बताता हूँ. 111 00:05:11,674 --> 00:05:12,666 मैं बताता हूँ. 112 00:05:12,666 --> 00:05:14,154 - नहीं, पिताजी, नहीं. 113 00:05:14,154 --> 00:05:15,150 तुम नहीं करना चाहिए. 114 00:05:15,150 --> 00:05:16,460 You're सही, मेरे प्यारे. 115 00:05:16,460 --> 00:05:18,450 मैं अपने नए नाक याद करेंगे. 116 00:05:18,450 --> 00:05:21,550 लेकिन मैं उन्हें नहीं संयोजन कोई बात नहीं क्या बता देंगे. 117 00:05:21,550 --> 00:05:23,100 अच्छी तरह से बहुत. 118 00:05:23,100 --> 00:05:25,510 डा. Schlotkin, अपने सबसे खराब है. 119 00:05:25,510 --> 00:05:26,760 मेरी खुशी है. 120 00:05:30,560 --> 00:05:31,180 नहीं! 121 00:05:31,180 --> 00:05:33,450 ठहरो, ठहरो. 122 00:05:33,450 --> 00:05:34,770 मैं बताता हूँ. 123 00:05:34,770 --> 00:05:36,400 मैं बताता हूँ. 124 00:05:36,400 --> 00:05:38,630 मुझे पता था कि यह काम करेगा. 125 00:05:38,630 --> 00:05:42,040 ठीक है, यह मुझे दे दीजिए. 126 00:05:42,040 --> 00:05:46,890 संयोजन एक है. 127 00:05:46,890 --> 00:05:47,290 एक. 128 00:05:47,290 --> 00:05:48,183 एक. 129 00:05:48,183 --> 00:05:48,950 दो. 130 00:05:48,950 --> 00:05:49,370 दो. 131 00:05:49,370 --> 00:05:50,450 दो. 132 00:05:50,450 --> 00:05:50,715 तीन 133 00:05:50,715 --> 00:05:51,380 तीन. 134 00:05:51,380 --> 00:05:52,390 तीन. 135 00:05:52,390 --> 00:05:53,200 चार. 136 00:05:53,200 --> 00:05:53,720 चार. 137 00:05:53,720 --> 00:05:55,830 चार. 138 00:05:55,830 --> 00:05:56,580 पांच 139 00:05:56,580 --> 00:05:57,120 पांच. 140 00:05:57,120 --> 00:05:58,560 पांच. 141 00:05:58,560 --> 00:06:03,770 संयोजन तो एक, दो, तीन, चार, पांच, है. 142 00:06:03,770 --> 00:06:06,745 यह बेवकूफी संयोजन मैं कभी भी अपने जीवन में सुना है. 143 00:06:06,745 --> 00:06:09,290 यह बात की तरह एक बेवकूफ अपने सामान पर होगा. 144 00:06:09,290 --> 00:06:11,540 धन्यवाद आप, आपका महारानी. 145 00:06:11,540 --> 00:06:12,940 क्या तुमने क्या किया? 146 00:06:12,940 --> 00:06:14,230 - मैं दीवार से दूर कर दिया. 147 00:06:14,230 --> 00:06:14,630 नहीं, तुम नहीं. 148 00:06:14,630 --> 00:06:15,430 आप पूरी फिल्म बदल गया. 149 00:06:15,430 --> 00:06:16,722 मैं गलत बटन दबाया है चाहिए. 150 00:06:16,722 --> 00:06:18,078 खैर, इसे वापस रख पर. 151 00:06:18,078 --> 00:06:18,805 फिल्म डाल पीठ पर. 152 00:06:18,805 --> 00:06:19,080 - हाँ, सर. 153 00:06:19,080 --> 00:06:19,270 हाँ, सर. 154 00:06:19,270 --> 00:06:19,830 - चलो चलते हैं, इरना. 155 00:06:19,830 --> 00:06:20,270 आओ, Gretchen. 156 00:06:20,270 --> 00:06:22,850 बेशक आप जानते हैं मैं अभी भी आप इस के लिए बिल होगा. 157 00:06:27,400 --> 00:06:28,325 खैर, यह काम किया है? 158 00:06:28,325 --> 00:06:29,550 गेट कहाँ है? 159 00:06:29,550 --> 00:06:29,910 यह काम किया है, सर. 160 00:06:29,910 --> 00:06:30,770 हम संयोजन है. 161 00:06:30,770 --> 00:06:31,390 ग्रेट. 162 00:06:31,390 --> 00:06:35,630 अब हम ग्रह Druidia से ताजा हवा के हर आखिरी सांस ले सकते हैं. 163 00:06:35,630 --> 00:06:36,550 संयोजन क्या है? 164 00:06:36,550 --> 00:06:38,805 एक, दो, तीन, चार, पांच. 165 00:06:38,805 --> 00:06:40,610 एक, दो, तीन, चार, पांच,? 166 00:06:40,610 --> 00:06:41,070 - हाँ. 167 00:06:41,070 --> 00:06:41,760 - यह अद्भुत है. 168 00:06:41,760 --> 00:06:45,200 मैं अपना सामान पर ही संयोजन मिल गया है. 169 00:06:45,200 --> 00:06:47,800 तत्काल प्रस्थान लिए Spaceball 1 तैयार करो. 170 00:06:47,800 --> 00:06:48,536 - हाँ, सर. 171 00:06:48,536 --> 00:06:52,350 और मेरे सामान पर संयोजन बदलने. 172 00:06:52,350 --> 00:06:53,250 - ओउ! 173 00:06:53,250 --> 00:06:55,020 [अंत वीडियो प्लेबैक] 174 00:06:55,020 --> 00:06:57,470 >> : डेविड जे मालन एक अद्भुत फिल्म अब आप सभी को देखना चाहिए. 175 00:07:00,600 --> 00:07:06,540 तो यहाँ संदर्भ है कि असुरक्षित डेटा के साथ एक मौका आता है 176 00:07:06,540 --> 00:07:07,790 एन्क्रिप्ट और यह हाथों और घुटनों के बल चढ़ना. 177 00:07:07,790 --> 00:07:11,060 और तो यह है, उदाहरण के लिए, एक एन्क्रिप्टेड संदेश का एक उदाहरण है. 178 00:07:11,060 --> 00:07:12,980 यह वास्तव में अंग्रेजी में कुछ कहते हैं. 179 00:07:12,980 --> 00:07:14,750 लेकिन यह स्पष्ट रूप से पूरी तरह स्पष्ट नहीं है. 180 00:07:14,750 --> 00:07:17,360 और आज हम पूरा चक्र आ के अलावा चिढ़ाने के इस रहस्य क्या 181 00:07:17,360 --> 00:07:18,380 यहाँ संदेश है. 182 00:07:18,380 --> 00:07:22,370 लेकिन कंप्यूटर की वास्तविक दुनिया में, बातें भी वे शायद नहीं लग रहे हो 183 00:07:22,370 --> 00:07:23,440 अंग्रेजी वाक्यांश हो. 184 00:07:23,440 --> 00:07:27,500 उदाहरण के लिए, यह है कि आप क्या मिल सकता है या एक मानक लिनक्स या मैक पर 185 00:07:27,500 --> 00:07:32,080 एक फ़ाइल है कि एक समय पर एक बार गया था में यूनिक्स कंप्यूटर पासवर्ड फ़ाइल कहा जाता है. 186 00:07:32,080 --> 00:07:34,170 आजकल, यह अन्य स्थानों पर स्थानांतरित कर दिया गया है. 187 00:07:34,170 --> 00:07:38,660 लेकिन अगर आप एक सिस्टम पर सही जगह में देखो, आप न केवल अपने देखेंगे 188 00:07:38,660 --> 00:07:41,430 उपयोगकर्ता नाम या सिस्टम पर अन्य लोगों की है, लेकिन आप देखेंगे एक 189 00:07:41,430 --> 00:07:43,410 अपने पासवर्ड की एन्क्रिप्टेड संस्करण. 190 00:07:43,410 --> 00:07:47,800 दरअसल, शब्द वहाँ तहखाना से पता चलता है कि निम्नलिखित सामान एन्क्रिप्टेड है. 191 00:07:47,800 --> 00:07:52,030 और मालूम होता है यादृच्छिक अक्षर और वर्ण और संख्या की इस श्रृंखला और 192 00:07:52,030 --> 00:07:56,370 तो आम तौर पर कुछ रहस्य जानने के द्वारा ही आगे decrypted किया जा सकता है - 193 00:07:56,370 --> 00:07:58,600 एक गुप्त शब्द, एक गुप्त संख्या. 194 00:07:58,600 --> 00:08:02,760 और इसलिए वास्तव में, कुछ के अंत में फोड़े क्रिप्टोग्राफी नीचे की कला पर भरोसा करने के लिए 195 00:08:02,760 --> 00:08:05,700 तरह और कुछ है जो किसी नहीं करता है जानने. 196 00:08:05,700 --> 00:08:10,010 आज हम थोड़ा और अधिक विस्तार में इस का पता लगाने और pset में आने के लिए. 197 00:08:10,010 --> 00:08:11,860 >> और अब पास / असफल पर एक शब्द भी नहीं. 198 00:08:11,860 --> 00:08:15,250 तो विशेष रूप से, आप में से कुछ के रूप में 1 pset, उपकरण में डुबकी लगाई है, और 199 00:08:15,250 --> 00:08:18,390 खुद के लिए एक बहुत ही नई दुनिया, कि कुंठाओं का एहसास है और 200 00:08:18,390 --> 00:08:21,340 भ्रम और सिर्फ तकनीकी कठिनाइयों के लिए उम्मीद की जा रही है. 201 00:08:21,340 --> 00:08:24,410 विशेष रूप से 1 pset, जहां सिर्फ इतना ज्यादा है बस के साथ हो रही 202 00:08:24,410 --> 00:08:28,830 लोकसभा और सीडी और एक नए माहौल में इन रहस्यमय कमांड के साथ परिचित. 203 00:08:28,830 --> 00:08:32,679 और कहा कि वास्तविक सामग्री और खुद प्रोग्रामिंग से अलग है. 204 00:08:32,679 --> 00:08:35,960 तो एहसास भी है, जो निश्चित रूप से कर रहे हैं कि कार्यालय समय के रूप में मौजूद है 205 00:08:35,960 --> 00:08:36,770 समर्थन संरचना. 206 00:08:36,770 --> 00:08:38,620 धारा इस आने वाले रविवार को शुरू करते हैं. 207 00:08:38,620 --> 00:08:41,990 लेकिन सबसे महत्वपूर्ण बात, अगर तुम सिर्फ महसूस कर रहे हैं कि यह नहीं है 208 00:08:41,990 --> 00:08:44,420 आप के लिए दुनिया का एहसास है, कि यह वास्तव में सिर्फ समय ले करता है. 209 00:08:44,420 --> 00:08:47,520 और यह एक क्लास लेने के साल पहले नहीं थे मेरे लिए इस अवसर के लिए 210 00:08:47,520 --> 00:08:50,840 / असफल हो, ईमानदारी से, मैं भी कभी नहीं कक्षा में पैर निर्धारित किया है. 211 00:08:50,840 --> 00:08:53,520 और आप इस बदलने के लिए जब तक कर सकते हैं, कहते हैं, निश्चित रूप से 5 सोमवार. 212 00:08:53,520 --> 00:08:57,110 तो अगर आप किनारे पर अब कर रहे हैं, कि बजाय सिर का एहसास कुछ अन्य में 213 00:08:57,110 --> 00:09:01,000 पानी पूरी तरह निश्चित रूप से बस पास / असफल बदलने पर विचार नहीं है. 214 00:09:01,000 --> 00:09:03,750 फिर, वहाँ वास्तव में इस संस्कृति नहीं यहाँ चीजें लेने के हार्वर्ड में 215 00:09:03,750 --> 00:09:08,080 गुजारें / असफल के बाद से हर कोई वास्तव में प्राप्त करने के लिए या overachieve करना चाहता है. 216 00:09:08,080 --> 00:09:11,470 लेकिन स्पष्ट रूप से, यह बाहर कुछ करने की कोशिश कर के एक बढ़िया तरीका है कि नहीं हो सकता 217 00:09:11,470 --> 00:09:13,110 आप परिचित हो. 218 00:09:13,110 --> 00:09:17,090 और तुम अंत सबसे काफी ठीक मामलों में कर रहे हैं, शायद हूँ 219 00:09:17,090 --> 00:09:18,040 अपने आश्चर्य करने के लिए बहुत है. 220 00:09:18,040 --> 00:09:20,850 और अधिक ठोस शब्दों में, मैं क्या लगता है कि गुजारें / आम तौर पर विफल करता है, 221 00:09:20,850 --> 00:09:23,350 खासकर के रूप में आप 0 pset के साथ अनुभव किया है हो सकता है, अगर आप में डाल दिया है 222 00:09:23,350 --> 00:09:27,200 में 10 घंटे, 15 घंटे, 25 कुछ pset में घंटे - तुम और सिर्फ पीटने रहे हैं 223 00:09:27,200 --> 00:09:28,180 दीवार के खिलाफ अपने सिर, 224 00:09:28,180 --> 00:09:29,850 और यह सुपर देर रात हो रही है, 225 00:09:29,850 --> 00:09:31,880 लेकिन आप जिस तरह के 90% की तरह pset लिया है, 226 00:09:31,880 --> 00:09:33,780 आप जानते हैं कि आप सिर्फ एक बात नहीं समझ सकते हैं - 227 00:09:33,780 --> 00:09:36,830 / पारित असफल वास्तव में बढ़त से दूर ले जाता है इस तरह के एक वर्ग के, जहाँ आप सॉर्ट कर सकते हैं 228 00:09:36,830 --> 00:09:39,150 की खुशी ठीक कहते हैं, मैं जानता हूँ कि यह सही नहीं है. 229 00:09:39,150 --> 00:09:40,470 लेकिन मैं इस पर मेरे गधे से काम किया. 230 00:09:40,470 --> 00:09:42,410 मैं जहां यह समाप्त हो गया के साथ बहुत खुश हूँ. 231 00:09:42,410 --> 00:09:44,780 और पारित करने के लिए कि अपेक्षाओं को पूरा / असफल हो जायेगी. 232 00:09:44,780 --> 00:09:46,850 तो यह है कि ध्यान में रखना है. 233 00:09:46,850 --> 00:09:47,140 >> सही सभी. 234 00:09:47,140 --> 00:09:50,980 तो आप में से जो हार्वर्ड वाई - फाई विश्वविद्यालय का उपयोग करने के लिए संघर्ष किया है पता 235 00:09:50,980 --> 00:09:54,780 आप है कि वहाँ एक CS50 SSID है, एक वाई - फाई कनेक्शन है कि चारों ओर तैर 236 00:09:54,780 --> 00:09:56,520 के लिए बेहतर किस्मत हो सकता है. 237 00:09:56,520 --> 00:09:59,430 अगर आप कोशिश करना चाहते हैं - यह एक छोटे विडंबना है कि इस के लिए पासवर्ड है 238 00:09:59,430 --> 00:10:03,080 बेहतर गति के लिए इस को जोड़ने और हमें पता है कि अगर यह बेहतर नहीं है - 239 00:10:03,080 --> 00:10:09,240 एक, दो, तीन, चार, पांच, सभी तरह से करने के लिए है क्योंकि आठ आठ है 240 00:10:09,240 --> 00:10:10,270 पांच से अधिक सुरक्षित है. 241 00:10:10,270 --> 00:10:15,520 तो अगर आप वाई - फाई पासवर्ड की जरूरत है, CS50 यहाँ के लिए wirelessly कनेक्ट. 242 00:10:15,520 --> 00:10:16,950 एक, दो, तीन, चार, पांच, छह, सात, आठ. 243 00:10:16,950 --> 00:10:20,440 CS50 पर पोस्ट पर चर्चा अगर आप अभी भी आंतरायिक कनेक्टिविटी मुद्दों है, 244 00:10:20,440 --> 00:10:24,880 और हम अधिकार है कि इस स्थान के लिए पता दूँगा. 245 00:10:24,880 --> 00:10:25,180 >> सही सभी. 246 00:10:25,180 --> 00:10:30,350 तो आप में से जो प्रशंसक लड़के या लड़कियों के लिए विशेष रूप से एक त्वरित टीज़र, 247 00:10:30,350 --> 00:10:31,900 सभी चीजें एप्पल के. 248 00:10:31,900 --> 00:10:37,566 क्या मैं एक कुछ वर्षों से वापस खोदा इस फाइल यहाँ था, ilock.c, बस 249 00:10:37,566 --> 00:10:40,930 की तरह और अधिक ठोस और अधिक जटिल बनाने और अधिक बुनियादी सी के कुछ 250 00:10:40,930 --> 00:10:42,350 कार्यक्रम हम लिख दिया गया है. 251 00:10:42,350 --> 00:10:44,360 इसलिए मैं इस फाइल को खोला, ilock.c. 252 00:10:44,360 --> 00:10:46,830 यह आज के लिए व्याख्यान पेज पर उपलब्ध है. 253 00:10:46,830 --> 00:10:49,470 बाईं ओर, आप कार्यों की एक लंबी सूची देखेंगे. 254 00:10:49,470 --> 00:10:51,860 तो साथी जो यह लिखा कार्यों का एक बहुत लिखा है, 255 00:10:51,860 --> 00:10:53,290 अधिक से अधिक सिर्फ मुख्य. 256 00:10:53,290 --> 00:10:55,490 वह पुस्तकालयों की एक पूरी गुच्छा यहां इस्तेमाल किया. 257 00:10:55,490 --> 00:11:00,450 और अगर हम स्क्रॉल के माध्यम से शुरू करते हैं, क्या यह वास्तव में बहुत है 258 00:11:00,450 --> 00:11:04,670 1 मुझे विश्वास है, मूल iPhone के लिए दरार. 259 00:11:04,670 --> 00:11:08,000 जब आप मूल iPhone jailbreak चाहता था, जो untether का मतलब 260 00:11:08,000 --> 00:11:11,800 एटी एंड टी और वास्तव में से उस पर विशेष सॉफ्टवेयर स्थापित करने के लिए और बातें करते हैं 261 00:11:11,800 --> 00:11:13,510 एप्पल है कि लोगों को करना नहीं चाहता था - 262 00:11:13,510 --> 00:11:17,020 ठीक है, कोई बाहर बिल्कुल आंकड़ा कैसे वे फायदा उठा सकती है करने के लिए समय ले लिया 263 00:11:17,020 --> 00:11:20,880 सॉफ्टवेयर खराबी, गलतियों, एप्पल के सॉफ्टवेयर में कीड़े,. 264 00:11:20,880 --> 00:11:22,650 और इस तरह ilock.c पैदा हुआ था. 265 00:11:22,650 --> 00:11:26,670 कि अगर आप इसे एक कंप्यूटर पर संकलित और यह एक iPhone है कि पर स्थापित 266 00:11:26,670 --> 00:11:29,810 किया गया था, कहते हैं, एक यूएसबी केबल के माध्यम से आपके कंप्यूटर से जुड़ा है, यह आपको दे देंगे 267 00:11:29,810 --> 00:11:33,360 तुम बहुत ज्यादा अपने iPhone और जाने पर प्रशासनिक या रूट विशेषाधिकारों 268 00:11:33,360 --> 00:11:34,170 जो आप चाहते हैं. 269 00:11:34,170 --> 00:11:36,740 >> और इसलिए वहाँ इस आकर्षक बिल्ली और माउस खेल है और एप्पल के बीच हो गया है 270 00:11:36,740 --> 00:11:39,920 के रूप में वे विशेष रूप से दुनिया के बाकी हिस्सों, कई कंपनियों की तरह, लॉक करने के लिए करने की कोशिश 271 00:11:39,920 --> 00:11:43,220 उनके सामान नीचे इतनी है कि आप इसके साथ ही कर सकते हैं कि वे क्या इरादा है. 272 00:11:43,220 --> 00:11:46,620 लेकिन इस तरह के लोगों के लिए धन्यवाद और कम स्तर की उनकी समझ 273 00:11:46,620 --> 00:11:50,580 विवरण और, इस मामले में, सी प्रोग्रामिंग और परिचित constructs का एक बहुत 274 00:11:50,580 --> 00:11:54,630 कि हम साथ खेलना शुरू कर दिया है, तो आप के लिए वास्तव में का लाभ उठाने में सक्षम हैं 275 00:11:54,630 --> 00:11:59,050 हार्डवेयर में एक तरीके से आप फिट और जरूरी कुछ कॉर्पोरेट इकाई नहीं देखते. 276 00:11:59,050 --> 00:12:01,360 तो उदाहरण के लिए, मुझे पता नहीं यह सब क्या कर रहा है. 277 00:12:01,360 --> 00:12:03,220 लेकिन GetVersion बहुत सरल लगता है. 278 00:12:03,220 --> 00:12:05,480 और यह इस तरह दिखता है एक समारोह में कहा कि इस व्यक्ति ने लिखा है. 279 00:12:05,480 --> 00:12:09,240 एक तर्क के रूप में पूर्णांक के कुछ प्रकार ले लो, कुछ भी वापस नहीं करता, लेकिन 280 00:12:09,240 --> 00:12:13,080 पाश के लिए यहाँ एक और एक के साथ हालत अगर, अगर हालत पाश के लिए प्रकट होता है 281 00:12:13,080 --> 00:12:15,620 तोड़ने के लिए, और किसी भी तरह संस्करण संख्या से संबंधित है. 282 00:12:15,620 --> 00:12:16,700 अगर हम नीचे स्क्रॉल - 283 00:12:16,700 --> 00:12:19,570 इन खोजशब्दों के एक बहुत भले ही नया हो जा रहे हैं, और वहाँ एक 284 00:12:19,570 --> 00:12:22,590 यहाँ कार्यों की बहुत सारी हमने देखा है और कभी नहीं से नहीं देख सकता है कभी 285 00:12:22,590 --> 00:12:23,830 सेमेस्टर के पाठ्यक्रम 286 00:12:23,830 --> 00:12:27,150 दिन के अंत में यह किया गया है कि हम एक ही नियम और तर्क इस प्रकार है 287 00:12:27,150 --> 00:12:28,760 इस प्रकार अब तक खेल रहा है. 288 00:12:28,760 --> 00:12:34,220 तो यह तक भी अपने iPhone 3s या 4s या जल्द ही 5s, इन दिनों दरार पुरानी है, 289 00:12:34,220 --> 00:12:37,320 लेकिन पता है कि यह सब बहुत ज्यादा इस दुनिया से प्राप्त किया गया है कि हम है 290 00:12:37,320 --> 00:12:38,430 में डुबकी लगाई. 291 00:12:38,430 --> 00:12:41,900 >> तो चलो एक छोटे से अधिक सरल उदाहरण पर एक नज़र रखना. 292 00:12:41,900 --> 00:12:46,100 यह एक है, बस कुछ वाक्य रचना के साथ गरम और भी कुछ अन्य डेटा 293 00:12:46,100 --> 00:12:49,240 प्रकार है कि हम के बारे में बात की है, लेकिन वास्तव में सी. में नहीं देखा तो यह है कि एक 294 00:12:49,240 --> 00:12:51,680 फ़ाइल positive1.c बुलाया. 295 00:12:51,680 --> 00:12:55,120 और शीर्ष पर टिप्पणियों के अनुसार, इस बस की मांग है कि एक उपयोगकर्ता प्रदान 296 00:12:55,120 --> 00:12:55,960 धनात्मक संख्या. 297 00:12:55,960 --> 00:12:59,530 तो यह है, जबकि एक पाश है, जो उपयोगकर्ता इंटरैक्टिव के लिए अच्छा है की एक उदाहरण है 298 00:12:59,530 --> 00:13:01,980 प्रोग्राम है जहाँ आप उपयोगकर्ता बता और कुछ करने की जरूरत है. 299 00:13:01,980 --> 00:13:05,190 और अगर वे सहयोग नहीं करते हैं, तो आप उन पर चिल्लाओ या उनके इनपुट अस्वीकार. 300 00:13:05,190 --> 00:13:11,610 बिन्दु में प्रकरण, मैं 19 लाइनों करना 24 इतने लंबे समय के माध्यम से जा रहा हूँ के रूप में उपयोगकर्ता 301 00:13:11,610 --> 00:13:14,310 एक सकारात्मक संख्या दिया मुझे नहीं है. 302 00:13:14,310 --> 00:13:20,400 अब यहाँ इस विस्तार 18 लाइन पर, मैं इस पूरे ऊपर क्यों n की घोषणा 303 00:13:20,400 --> 00:13:24,490 पाशन निर्माण के रूप में 22 लाइन के बगल में सही करने के लिए विरोध मैं कहाँ 304 00:13:24,490 --> 00:13:26,880 वास्तव में परवाह n करने के लिए मिलता है? 305 00:13:26,880 --> 00:13:27,330 हाँ? 306 00:13:27,330 --> 00:13:27,780 [अश्राव्य] 307 00:13:27,780 --> 00:13:29,040 >> डेविड जे मालन: हाँ, तो दायरे से इस मुद्दे. 308 00:13:29,040 --> 00:13:30,850 और आम आदमी की अवधि में, क्या गुंजाइश के लिए संदर्भित करता है? 309 00:13:34,690 --> 00:13:36,610 हाँ? 310 00:13:36,610 --> 00:13:37,860 [अश्राव्य] 311 00:13:40,040 --> 00:13:41,105 डेविड जे मालन: आप एक ज़ोर सा बात कर सकते हैं? 312 00:13:41,105 --> 00:13:43,450 SPEAKER 1: जहाँ आप एक विशेष चर का उपयोग कर सकते हैं. 313 00:13:43,450 --> 00:13:45,170 डेविड जे मालन: बिल्कुल सही. 314 00:13:45,170 --> 00:13:47,360 तुम कहाँ एक विशेष चर का उपयोग कर सकते हैं. 315 00:13:47,360 --> 00:13:50,400 और आम तौर पर, अंगूठे का नियम इस प्रकार अब तक किया गया है कि कुछ की गुंजाइश 316 00:13:50,400 --> 00:13:55,860 चर सबसे हाल ही में घुंघराले ब्रेसिज़ देखा है कि आप द्वारा परिभाषित किया गया है. 317 00:13:55,860 --> 00:14:02,010 और इसलिए इस मामले में, अगर मैं 22 लाइन पर n घोषणा की गलती, 318 00:14:02,010 --> 00:14:03,010 कि लाइन में काम करेगा. 319 00:14:03,010 --> 00:14:10,990 मैं एक int हो, और मैं यह है कि लाइन में 22 चर n में रखा जाएगा. 320 00:14:10,990 --> 00:14:16,900 लेकिन जो कोड की लाइन अब पता नहीं मैं किस बारे में बात कर रहा हूँ? 321 00:14:16,900 --> 00:14:22,650 25 तो, और यह 24 बाहर जाता है, के रूप में अच्छी तरह से है, क्योंकि इस मामले में, यह बाहर फ़ाल्स 322 00:14:22,650 --> 00:14:23,610 घुंघराले ब्रेसिज़. 323 00:14:23,610 --> 00:14:27,280 तो सिर्फ एक बाधा का एक छोटा सा है, लेकिन बहुत आसानी से बस की घोषणा के द्वारा हल 324 00:14:27,280 --> 00:14:30,140 समारोह खुद की चर बाहर. 325 00:14:30,140 --> 00:14:32,600 >> अब आज हम बाद में देखेंगे, तो आप एक कदम और आगे जा सकते हैं. 326 00:14:32,600 --> 00:14:34,860 और तुम भी एक छोटे से आलसी हो सकता है - 327 00:14:34,860 --> 00:14:37,320 और ऐसा नहीं करने के लिए किया जा रहा है सामान्य रूप में सिफारिश की है, 328 00:14:37,320 --> 00:14:42,260 लेकिन आप भी आलसी हो सकता है और दुनिया भर में एक चर डाल दिया, तो बात करने के लिए नहीं 329 00:14:42,260 --> 00:14:46,670 अंदर एक समारोह के अंदर एक पाश की, लेकिन फ़ाइल ही में बाहर, 330 00:14:46,670 --> 00:14:49,600 आप सभी कार्यों का लिखा है, के रूप में मैं 15 लाइन पर यहाँ था. 331 00:14:49,600 --> 00:14:51,160 लेकिन यह आम तौर पर frowned है. 332 00:14:51,160 --> 00:14:55,680 लेकिन पता है यह कभी कभी अन्य समस्याओं के लिए एक समाधान है, के रूप में हम करेंगे 333 00:14:55,680 --> 00:14:56,620 अंततः देखते हैं. 334 00:14:56,620 --> 00:14:58,130 तो अब के लिए, हम इसे इस तरह से छोड़ देंगे. 335 00:14:58,130 --> 00:15:01,030 लेकिन हम देखते हैं कि हम फिर से लिखना कर सकते हैं यह सिर्फ शुरू करने के लिए खुद को एक व्यक्त 336 00:15:01,030 --> 00:15:01,990 थोड़ा अलग है. 337 00:15:01,990 --> 00:15:05,330 >> तो इस कार्यक्रम अभी स्पष्ट होना करने, positive1 है. 338 00:15:05,330 --> 00:15:11,810 मुझे आगे यहाँ जाओ और मेरे टर्मिनल विंडो में positive1 दर्ज करें,. 339 00:15:11,810 --> 00:15:12,740 संकलन, ठीक है. 340 00:15:12,740 --> 00:15:14,910 मैं positive1 चलाने के लिए, हिट दर्ज करने के लिए जा रहा हूँ. 341 00:15:14,910 --> 00:15:16,820 मैं मांग करता हूं कि आप मुझे एक सकारात्मक पूर्णांक दे. 342 00:15:16,820 --> 00:15:18,260 मैं -1 कहूँगा. 343 00:15:18,260 --> 00:15:18,910 ऐसा काम नहीं किया. 344 00:15:18,910 --> 00:15:22,150 99, 0, कि काम करने लगता है. 345 00:15:22,150 --> 00:15:23,570 शायद सबसे कठोर परीक्षण नहीं. 346 00:15:23,570 --> 00:15:26,480 लेकिन कम से कम यह एक अच्छा मानसिक स्वास्थ्य की जांच है कि हम सही रास्ते पर हैं. 347 00:15:26,480 --> 00:15:29,240 तो अब मुझे आगे जाना है और इस के दो संस्करण खुला. 348 00:15:29,240 --> 00:15:32,500 और क्या पहले से ही अलग है? 349 00:15:32,500 --> 00:15:35,140 यह एक ही बात को लागू करता है. 350 00:15:35,140 --> 00:15:40,660 लेकिन क्या स्पष्ट रूप से अलग इस बार के रूप में बाहर कूद है? 351 00:15:40,660 --> 00:15:42,560 हाँ, तो हरे रंग में इस bool. 352 00:15:42,560 --> 00:15:45,980 Gedit हरी bool के रूप में जाना जाता है इस कीवर्ड में प्रकाश डाला गया है, 353 00:15:45,980 --> 00:15:47,000 जो एक डेटा प्रकार है. 354 00:15:47,000 --> 00:15:51,080 यह सी. के सभी संस्करणों में नहीं आया बनाया करता आप एक को शामिल करने की जरूरत है 355 00:15:51,080 --> 00:15:52,010 विशिष्ट पुस्तकालय. 356 00:15:52,010 --> 00:15:54,770 हमारे मामले में, मैं CS50 पुस्तकालय शामिल इतना है कि हम 357 00:15:54,770 --> 00:15:56,460 bool करने के लिए उपयोग किया है. 358 00:15:56,460 --> 00:15:59,810 लेकिन 18 लाइन में, हम एक बूलियन मान आभारी बुलाया है लगता है. 359 00:15:59,810 --> 00:16:01,040 इसलिए मैं इस कुछ भी कहा हो सकता है. 360 00:16:01,040 --> 00:16:04,500 लेकिन मैं यह सिर्फ तरह का कुछ अर्थ अर्थ संप्रेषित करने के लिए आभारी बुलाया. 361 00:16:04,500 --> 00:16:07,930 तो 18 लाइन पर शुरू में, मैं जाहिरा तौर पर आभारी नहीं हूँ क्योंकि 362 00:16:07,930 --> 00:16:12,150 बूलियन आभारी मूल्य 18 लाइन में झूठी initialized है. 363 00:16:12,150 --> 00:16:16,890 और तो यह लगता है कि मैं 21 लाइनों में 23 के माध्यम से किया जाता है क्या है मैं सिर्फ 364 00:16:16,890 --> 00:16:18,610 तरह के अपने तर्क rewritten. 365 00:16:18,610 --> 00:16:21,020 तो कोई कार्यात्मक अलग. 366 00:16:21,020 --> 00:16:26,940 लेकिन 22 लाइन में अब, मैं जांच अगर int उपयोगकर्ता प्रदान की गई है की तुलना में अधिक है 367 00:16:26,940 --> 00:16:31,120 0, तो मैं बस सच करने के लिए आभारी के मूल्य बदल जाते हैं. 368 00:16:31,120 --> 00:16:32,290 और मुझे लगता है कि क्यों करते हो? 369 00:16:32,290 --> 00:16:35,600 क्योंकि लाइन में 25, जाहिरा तौर पर, मैं एक शर्त की जांच करने जा रहा हूँ. 370 00:16:35,600 --> 00:16:39,380 इस लूप करो जबकि आभारी गलत है. 371 00:16:39,380 --> 00:16:43,610 >> तो मैं एक संस्करण के लिए एक विकल्प के रूप में यह प्रस्ताव है क्योंकि यह कम से कम एक है 372 00:16:43,610 --> 00:16:45,130 थोड़ा अधिक सहज है, शायद. 373 00:16:45,130 --> 00:16:46,900 यह एक छोटे से अधिक अंग्रेजी में आधारित है. 374 00:16:46,900 --> 00:16:51,710 तो निम्न करते हैं, जबकि आप आभारी है या नहीं कर रहे हैं जबकि आभारी गलत है. 375 00:16:51,710 --> 00:16:55,890 और इस बार भी, मैं जाहिरा तौर पर उपयोगकर्ता क्या टाइप याद नहीं परवाह नहीं 376 00:16:55,890 --> 00:16:57,730 क्योंकि नोटिस में वहाँ कोई चर n है. 377 00:16:57,730 --> 00:16:58,650 तो वास्तव में, मैं - 378 00:16:58,650 --> 00:17:00,080 वहाँ एक छोटे सफेद झूठ. 379 00:17:00,080 --> 00:17:02,770 कार्यात्मक, कार्यक्रम एक अलग सा है एक बार हम सच की तह तक पहुंचना 380 00:17:02,770 --> 00:17:04,819 ऐसा इसलिए है क्योंकि मैं याद नहीं कर रहा हूँ पता क्या है. 381 00:17:04,819 --> 00:17:09,579 लेकिन मैं यहाँ से प्रदर्शित करने के लिए करना चाहता था भी कि भले ही हम GetInt देखा है और 382 00:17:09,579 --> 00:17:13,920 GetString एक बराबर चिह्न के दाएँ हाथ की ओर पर इस्तेमाल किया जा रहा है इस प्रकार अब तक इतना है कि 383 00:17:13,920 --> 00:17:17,160 हम मूल्य, तकनीकी, कि सख्ती से आवश्यक नहीं है याद है. 384 00:17:17,160 --> 00:17:20,950 यदि आप जो भी कारण के लिए बस के लिए मूल्य को बचाने के लिए नहीं परवाह नहीं है, तुम बस चाहते हैं 385 00:17:20,950 --> 00:17:25,710 मूल्य की जाँच करने के लिए नोटिस, कि हम बस खुले GetInt के रूप में लिख सकते हैं 386 00:17:25,710 --> 00:17:27,000 कोष्ठक, करीब paren. 387 00:17:27,000 --> 00:17:30,460 समारोह में कहा कि एक मूल्य वापस करने के लिए जा रहा है, के रूप में हम कह दिया गया है. 388 00:17:30,460 --> 00:17:32,010 यह एक int तुम्हें देने के लिए वापस जा रहा है. 389 00:17:32,010 --> 00:17:36,450 और यदि ऐसा है तो आप मानसिक रूप से यह हो रहा है लगता है, जब मैं 99 में लिखते हैं, GetInt 390 00:17:36,450 --> 00:17:38,160 99 संख्या देता है. 391 00:17:38,160 --> 00:17:41,330 और अब धारणात्मक, यह मेरे कोड के रूप में हालांकि वास्तव में थे. 392 00:17:41,330 --> 00:17:45,880 तो अगर 99 वास्तव में 0 से अधिक है, तो आभारी सच हो जाता है. 393 00:17:45,880 --> 00:17:50,420 फिर 25 लाइन उह एहसास है, हम कर रहे हैं, क्योंकि अब मैं आभारी हूँ. 394 00:17:50,420 --> 00:17:54,590 और 26 लाइन में हम बस कहना है, सकारात्मक पूर्णांक के लिए धन्यवाद, यह जो कुछ भी 395 00:17:54,590 --> 00:17:55,710 हो हुआ. 396 00:17:55,710 --> 00:17:58,900 >> अब मामूली वाक्यात्मक चीनी यहाँ करते हैं, तो बात करने के लिए. 397 00:17:58,900 --> 00:18:02,990 चलो देखते हैं अगर हम इस तीसरे और अंतिम विचरण के साथ यह 25 लाइन को साफ कर सकते हैं 398 00:18:02,990 --> 00:18:04,640 positive3 में. 399 00:18:04,640 --> 00:18:08,250 इतना ही फर्क है क्या अब कोड की पंक्ति है नोटिस? 400 00:18:11,930 --> 00:18:13,260 हाँ, इतना 25. 401 00:18:13,260 --> 00:18:15,520 और हम वास्तव में इस चाल नहीं देखा है अभी. 402 00:18:15,520 --> 00:18:19,510 लेकिन हम सोमवार विस्मयादिबोधक बिंदु है, जो कि denotes देखा? 403 00:18:19,510 --> 00:18:20,970 तो नहीं नकार, या. 404 00:18:20,970 --> 00:18:23,460 तो एक बूलियन मान ले और इसकी कीमत फ्लिप. 405 00:18:23,460 --> 00:18:24,390 यह सच है गलत हो जाता है. 406 00:18:24,390 --> 00:18:25,500 झूठा सच हो जाता है. 407 00:18:25,500 --> 00:18:28,910 तो यह मैं प्रस्ताव करता हूं, यहां तक ​​कि एक छोटे से अधिक का एक तरीका सहज 408 00:18:28,910 --> 00:18:32,200 कोड लिखने क्योंकि मैं अभी भी गलत करने के लिए आभारी इनिशियलाइज़. 409 00:18:32,200 --> 00:18:33,530 मैं अभी भी निम्न कार्य करें. 410 00:18:33,530 --> 00:18:35,700 मैं सच करने के लिए आभारी सेट जब समय आता है. 411 00:18:35,700 --> 00:18:40,690 लेकिन अब आप वास्तव में सिर्फ मौखिक रूप से सही करने के लिए छोड़ दिया कोड अनुवाद कर सकते हैं, 412 00:18:40,690 --> 00:18:42,550 जबकि नहीं आभारी. 413 00:18:42,550 --> 00:18:46,170 क्योंकि धमाके, या विस्मयादिबोधक बिंदु नहीं की धारणा इतनी अर्थ है, जबकि 414 00:18:46,170 --> 00:18:47,010 नहीं आभारी हूँ. 415 00:18:47,010 --> 00:18:49,740 >> तो फिर, हम से प्रति किसी भी नई अवधारणाओं को नहीं शुरू की है. 416 00:18:49,740 --> 00:18:53,230 हम Booleans के बारे में बात की है जब हम खरोंच के साथ खेला. 417 00:18:53,230 --> 00:18:55,690 लेकिन अब पता है हम बस में हमारे कोड लेखन शुरू कर सकते हैं 418 00:18:55,690 --> 00:18:56,550 कई अलग अलग तरीकों से. 419 00:18:56,550 --> 00:19:00,010 तो विशेष रूप से pset1 में अगर, आप के लिए बाहर करने के लिए एक तरह से समझ के लिए संघर्ष की तरह कर रहे हैं 420 00:19:00,010 --> 00:19:03,400 कुछ प्रोग्राम लिखने, बाधाओं क्योंकि वहाँ किसी भी हो जा रहे हैं तुम भाग्य में हैं 421 00:19:03,400 --> 00:19:05,780 समाधान है कि आप पर हो सकता है की संख्या. 422 00:19:05,780 --> 00:19:09,850 उदाहरण के लिए, यह भी कार्यक्रमों का सरलतम के लिए सिर्फ तीन है. 423 00:19:09,850 --> 00:19:10,180 सही सभी. 424 00:19:10,180 --> 00:19:13,860 और अब सोमवार को याद करते हैं, हम वापसी मान के साथ इस नोट पर छोड़ दिया है. 425 00:19:13,860 --> 00:19:18,280 तो बहुत पहले समय के लिए, हम एक प्रोग्राम लिखा है कि सिर्फ मुख्य नहीं है, 426 00:19:18,280 --> 00:19:22,240 यह भी अपने स्वयं के कस्टम समारोह है कि मैं यहाँ लिखा है. 427 00:19:22,240 --> 00:19:26,640 तो लाइन में 34 के माध्यम से 31, मैं एक घन समारोह क्रियान्वित किया है. 428 00:19:26,640 --> 00:19:27,800 यह जटिल नहीं है. 429 00:19:27,800 --> 00:19:29,830 यह सिर्फ एक बार एक बार, इस मामले में. 430 00:19:29,830 --> 00:19:34,920 लेकिन इसके बारे में महत्वपूर्ण बात यह है कि मैं एक के रूप में इनपुट ले जा रहा हूँ और 431 00:19:34,920 --> 00:19:38,910 मैं एक बार के रूप में उत्पादन में लौट रहा हूँ, एक बार एक. 432 00:19:38,910 --> 00:19:43,940 >> तो अब मैं करने की क्षमता है, बहुत पसंद है मैं printf अकेले के साथ करने के लिए प्रयोग किया जाता है, के लिए फोन 433 00:19:43,940 --> 00:19:47,120 घन समारोह बुला द्वारा इस समारोह में. 434 00:19:47,120 --> 00:19:49,470 और घन समारोह कुछ इनपुट लेता है. 435 00:19:49,470 --> 00:19:52,030 और घन समारोह कुछ उत्पादन देता है. 436 00:19:52,030 --> 00:19:56,660 और इसके विपरीत, printf सिर्फ कुछ किया. 437 00:19:56,660 --> 00:19:59,490 यह कुछ है कि हम के बारे में परवाह नहीं वापस नहीं किया था - भले ही एक के रूप में, 438 00:19:59,490 --> 00:20:00,820 एक तरफ, यह एक मूल्य वापसी करता है. 439 00:20:00,820 --> 00:20:02,650 तुम सिर्फ आम तौर पर इसे अनदेखा. 440 00:20:02,650 --> 00:20:04,000 Printf सिर्फ कुछ किया. 441 00:20:04,000 --> 00:20:06,220 यह स्क्रीन करने के लिए मुद्रण के एक पक्ष प्रभाव था. 442 00:20:06,220 --> 00:20:09,480 यहाँ इसके विपरीत करके, हम घन समारोह है, जो 443 00:20:09,480 --> 00:20:11,400 वास्तव में कुछ देता है. 444 00:20:11,400 --> 00:20:12,960 >> तो यह आम तौर पर है - 445 00:20:12,960 --> 00:20:15,260 इस के साथ परिचित लोगों के लिए, यह एक काफी स्पष्ट विचार है. 446 00:20:15,260 --> 00:20:18,460 लेकिन उन कम जानकारी में गुजर रहा है और हो रही है की इस विचार के साथ परिचित के लिए 447 00:20:18,460 --> 00:20:21,700 वापस outputs, चलो बस कुछ सुपर सरल की कोशिश. 448 00:20:21,700 --> 00:20:25,180 आरामदायक किसी मंच पर संक्षेप में आ रहा है? 449 00:20:25,180 --> 00:20:27,460 तुम तुम पर एक कैमरा के साथ आराम से, के रूप में अच्छी तरह से हो सकता है. 450 00:20:27,460 --> 00:20:27,640 हाँ. 451 00:20:27,640 --> 00:20:28,610 ठीक है, तुम्हारा नाम क्या है? 452 00:20:28,610 --> 00:20:29,020 केन: केन. 453 00:20:29,020 --> 00:20:29,420 डेविड जे मालन: केन. 454 00:20:29,420 --> 00:20:29,810 सही है, केन. 455 00:20:29,810 --> 00:20:31,060 पर आते हैं. 456 00:20:31,060 --> 00:20:34,660 तो केन तरह के एक समारोह में यहाँ होने जा रहा है. 457 00:20:34,660 --> 00:20:35,760 और आगे जाना है और यह नहीं है. 458 00:20:35,760 --> 00:20:38,790 चलो एक छोटे से कल्पना. 459 00:20:38,790 --> 00:20:39,770 आपसे मिलकर अच्छा लगा. 460 00:20:39,770 --> 00:20:41,010 केंद्र स्तर पर आपका स्वागत है. 461 00:20:41,010 --> 00:20:41,980 सही सभी. 462 00:20:41,980 --> 00:20:45,590 चलो इस बटन यहाँ मारा. 463 00:20:45,590 --> 00:20:46,420 सही सभी. 464 00:20:46,420 --> 00:20:49,490 तो यहाँ आप एक आधुनिक चॉकबोर्ड है. 465 00:20:49,490 --> 00:20:53,050 और मैं क्या कर रहा हूँ मुख्य समारोह है, उदाहरण के लिए, है. 466 00:20:53,050 --> 00:20:55,990 और मैं अपने हाथ में एक iPad नहीं है. 467 00:20:55,990 --> 00:20:59,000 ठीक है, वास्तव में, कि यह नहीं कह सकता है - मैं वास्तव में कैसे करने के लिए नहीं याद है. 468 00:20:59,000 --> 00:21:02,200 मैं वास्तव में अच्छा लिखावट नहीं है. 469 00:21:02,200 --> 00:21:05,260 और इसलिए, मैं तुम मेरे लिए स्क्रीन पर कुछ प्रिंट करने के लिए करना चाहते हैं. 470 00:21:05,260 --> 00:21:07,470 >> तो मैं मुख्य कार्यक्रम किया जा रहा हूँ. 471 00:21:07,470 --> 00:21:15,060 और मैं तुम्हें करने के लिए जा रहा हूँ यह मेरी चिकन खरोंच में लेखन के द्वारा यह कहना है और 472 00:21:15,060 --> 00:21:16,600 तो आप एक इनपुट गुजर रहा है. 473 00:21:16,600 --> 00:21:20,000 तो मूर्ख के रूप में हालांकि इस अभ्यास है, कार्यों की धारणा और एक फोन 474 00:21:20,000 --> 00:21:22,260 समारोह और इस के लिए नीचे एक समारोह वास्तव में फोड़े लौटने. 475 00:21:22,260 --> 00:21:23,120 मैं मुख्य हूँ. 476 00:21:23,120 --> 00:21:26,270 मैं सिर्फ printf स्क्रीन पर लिखा है ("कुछ"). 477 00:21:26,270 --> 00:21:27,470 मैं इस कार्यक्रम चल रहा है. 478 00:21:27,470 --> 00:21:30,900 और जैसे ही रूप में printf बुलाया जाता है, यह एक तर्क लेता है या एक पैरामीटर, 479 00:21:30,900 --> 00:21:31,660 कभी - कभी 480 00:21:31,660 --> 00:21:32,780 दोहरे उद्धरण चिह्नों के बीच. 481 00:21:32,780 --> 00:21:33,960 यहाँ है कि तर्क है. 482 00:21:33,960 --> 00:21:35,740 मैं यह केन के लिए जा रहा हूँ. 483 00:21:35,740 --> 00:21:39,390 अब वह एक काले बॉक्स कि जाहिरा तौर पर पहले साल के कुछ नंबर लिखा है 484 00:21:39,390 --> 00:21:41,070 ही जानता है कि कैसे स्क्रीन पर चीजों को मुद्रित करने के लिए. 485 00:21:41,070 --> 00:21:42,320 >> तो निष्पादित,. 486 00:21:48,842 --> 00:21:49,900 यह बुरा नहीं है. 487 00:21:49,900 --> 00:21:50,890 तो, बहुत अच्छा. 488 00:21:50,890 --> 00:21:52,900 तो अब केन क्रियान्वित किया जाता है. 489 00:21:52,900 --> 00:21:55,810 क्या वह मुझे कुछ हाथ वापस करने की आवश्यकता है? 490 00:21:55,810 --> 00:21:57,240 तो हम इस प्रकार अब तक नहीं देखा है. 491 00:21:57,240 --> 00:21:59,230 फिर, printf वास्तव में एक संख्या में वापसी करता है. 492 00:21:59,230 --> 00:22:01,640 लेकिन हम अब के लिए कि उपेक्षा जा रहे हैं क्योंकि हम इसे इस्तेमाल कभी नहीं किया है. 493 00:22:01,640 --> 00:22:03,400 इसलिए कि यह केन के लिए है. 494 00:22:03,400 --> 00:22:06,650 और इसलिए अब मुख्य वापस निष्पादित करने के लिए आता है - 495 00:22:06,650 --> 00:22:09,630 मुख्य कार्यक्रम के नियंत्रण पर फिर से लेता है, क्योंकि कोड की है कि लाइन 496 00:22:09,630 --> 00:22:11,010 printf क्रियान्वित किया जाता है. 497 00:22:11,010 --> 00:22:13,890 और हम हमारे को क्रियान्वित करने जो अन्य लाइनों वहाँ के तरीके के बारे में जाना. 498 00:22:13,890 --> 00:22:14,130 >> सही सभी. 499 00:22:14,130 --> 00:22:17,080 तो अब हम एक से थोड़ा अलग उदाहरण की कोशिश. 500 00:22:17,080 --> 00:22:22,430 और इस समय यहाँ, चलो पहले स्क्रीन यहाँ स्पष्ट. 501 00:22:22,430 --> 00:22:24,670 और इस बार, हम cubing समारोह करूँगा. 502 00:22:24,670 --> 00:22:27,350 लेकिन इस बार, मैं एक निर्गम मूल्य की उम्मीद है. 503 00:22:27,350 --> 00:22:28,630 तो चलो आगे बढ़ो और इस करना. 504 00:22:28,630 --> 00:22:35,680 तो अब मैं कोड की एक पंक्ति है कि कहते हैं x = घन (x). 505 00:22:35,680 --> 00:22:36,930 तो वास्तव में let's 506 00:22:41,450 --> 00:22:43,940 कोड की लाइन, याद है, इस तरह दिखता है. 507 00:22:43,940 --> 00:22:45,960 x = घन (x). 508 00:22:45,960 --> 00:22:48,100 तो यह कैसे काम करने जा रहा है? 509 00:22:48,100 --> 00:22:50,820 तो चलो आगे बढ़ो और आप फिर से एक सफेद स्क्रीन दे. 510 00:22:50,820 --> 00:22:55,000 और मैं अब एक्स के मूल्य नीचे लिखने के लिए है, जो इस समय के लिए जा रहा हूँ 511 00:22:55,000 --> 00:23:01,080 समय होता है, कहते हैं कि, 2, इसे साधारण रखना. 512 00:23:01,080 --> 00:23:04,890 तो मैं नीचे कागज के एक टुकड़े 2 के मूल्य पर लिखा है, 513 00:23:04,890 --> 00:23:06,100 जो मेरे मूल्य x है. 514 00:23:06,100 --> 00:23:08,250 मैं इसे केन हाथ. 515 00:23:08,250 --> 00:23:09,200 केन: मैं अभी जवाब लिखने के लिए? 516 00:23:09,200 --> 00:23:12,660 डेविड जे मालन: हाँ, चलो बस जवाब लिखना. 517 00:23:12,660 --> 00:23:13,030 ठीक है. 518 00:23:13,030 --> 00:23:16,280 और अब वह मुझे कुछ वापस है. 519 00:23:16,280 --> 00:23:17,560 तो - 520 00:23:17,560 --> 00:23:18,170 एकदम सही है. 521 00:23:18,170 --> 00:23:18,840 Segue अच्छा लगा. 522 00:23:18,840 --> 00:23:21,970 >> तो अब वह मेरे हाथ वापस इस मामले में 8 के मूल्य,. 523 00:23:21,970 --> 00:23:23,220 और मैं इसके साथ क्या करते हो? 524 00:23:23,220 --> 00:23:26,130 खैर, असल में, चलो देखते हैं. 525 00:23:26,130 --> 00:23:26,640 यह ठीक हो जाओ. 526 00:23:26,640 --> 00:23:27,880 क्या मैं इसके साथ क्या करने जा रहा हूँ? 527 00:23:27,880 --> 00:23:31,900 अब मैं यह मान ले और वास्तव में यह उन लोगों में स्टोर करने के लिए जा रहा हूँ 528 00:23:31,900 --> 00:23:33,400 स्मृति में एक ही टुकड़े. 529 00:23:33,400 --> 00:23:35,030 लेकिन सूचना, मैं यहाँ संघर्ष के तरह कर रहा हूँ. 530 00:23:35,030 --> 00:23:38,280 मैं थोड़ा उलझन में हूँ क्योंकि मैं वास्तव में जहां एक्स का मान लिखने? 531 00:23:38,280 --> 00:23:41,840 क्योंकि मैं अभी क्या किया है शारीरिक रूप से हाथ है केन कागज का एक टुकड़ा 532 00:23:41,840 --> 00:23:44,400 कि 2 मूल्य था, जो एक्स था. 533 00:23:44,400 --> 00:23:46,300 और वास्तव में, ठीक है कि क्या होता है. 534 00:23:46,300 --> 00:23:50,100 तो यह पता चला है कि जब आप एक समारोह कहते हैं, और आप एक बहस में पारित 535 00:23:50,100 --> 00:23:54,130 "हैलो दुनिया" की तरह है या आप 2 की तरह एक बहस में गुजरती हैं, आम तौर पर, आप कर रहे हैं 536 00:23:54,130 --> 00:23:56,720 कि तर्क की एक प्रति में गुजर रहा है. 537 00:23:56,720 --> 00:24:01,020 और तो बस के रूप में मैं नीचे लिखा 2 संख्या यहाँ और केन को सौंप दिया, कि चाहिए 538 00:24:01,020 --> 00:24:04,760 मतलब है कि मैं अभी भी मूल्य 2 की एक प्रति कहीं है. 539 00:24:04,760 --> 00:24:08,140 क्योंकि वास्तव में, अब है कि मैं वापस 8 मूल्य मिल गया है, मैं में वापस जाने की जरूरत है 540 00:24:08,140 --> 00:24:12,010 राम और वास्तव में नीचे 8 लिखने जहां मैं एक बार में 2 नंबर था. 541 00:24:12,010 --> 00:24:15,720 >> तो नेत्रहीन सचमुच में पारित करने के इस धारणा याद 542 00:24:15,720 --> 00:24:16,730 मूल्य की एक प्रति है. 543 00:24:16,730 --> 00:24:19,570 केन अपनी बात करता है, मुझे वापस कुछ हाथ - इस मामले में, 544 00:24:19,570 --> 00:24:20,820 8 की तरह एक मूल्य. 545 00:24:20,820 --> 00:24:22,660 और फिर मैं करने के लिए है कि मूल्य के साथ कुछ करना है मैं अगर 546 00:24:22,660 --> 00:24:24,880 इसे रखने के आसपास चाहते हैं. 547 00:24:24,880 --> 00:24:29,470 तो इस सब के सब भी लंबे समय से पहले परिचित हो जाएगा. 548 00:24:29,470 --> 00:24:33,082 तुम इतना इस डेमो के लिए यहाँ धन्यवाद, केन. 549 00:24:33,082 --> 00:24:34,820 सही सभी. 550 00:24:34,820 --> 00:24:36,720 बहुत अच्छी तरह से किया जाता है. 551 00:24:36,720 --> 00:24:40,610 तो चलो देखते हैं कि कैसे अंततः समारोह के कुछ से संबंधित 552 00:24:40,610 --> 00:24:42,270 बुला रही है कि हम यहाँ कर दिया गया है. 553 00:24:42,270 --> 00:24:47,610 तो मुझे आगे जाना है और हमें वापस लाने cubing उदाहरण के लिए यहाँ. 554 00:24:47,610 --> 00:24:53,080 नोटिस और कहा कि अगर हम वास्तव में इस आगे ले शुरू करना चाहते हैं, हम जा रहे हैं 555 00:24:53,080 --> 00:24:57,050 करने के लिए तथ्य यह है कि संख्या x है कि में पारित किया जा रहा है के प्रति जागरूक हो 556 00:24:57,050 --> 00:25:01,390 यहाँ क्या वास्तव में समारोह में पारित किया जा रहा है से अलग है. 557 00:25:01,390 --> 00:25:03,940 तो फिर, इस कॉपी द्वारा पारित करने के लिए काफी बनने जा रहा है 558 00:25:03,940 --> 00:25:05,620 बस एक पल में सार्थक. 559 00:25:05,620 --> 00:25:09,320 >> तो चलो कुछ है कि बहुत सही अभी तक काम नहीं करता है पर एक नज़र रखना. 560 00:25:09,320 --> 00:25:11,790 मुझे आगे जाना है और एक तीसरे छोटी गाड़ी उदाहरण खोलने के लिए जा रहा हूँ, जो 561 00:25:11,790 --> 00:25:13,560 स्वभाव से त्रुटिपूर्ण है. 562 00:25:13,560 --> 00:25:18,070 और यह buggy3 कहा जाता है, और यह एक गमागमन समारोह लागू. 563 00:25:18,070 --> 00:25:23,500 तो यहाँ हम एक मुख्य समारोह है कि एक्स और वाई मनमाने ढंग से प्रारंभ 564 00:25:23,500 --> 00:25:24,720 1 और 2, क्रमशः. 565 00:25:24,720 --> 00:25:27,590 हम GetInt का उपयोग कर सकता है, लेकिन हम सिर्फ एक सरल व्यायाम की जरूरत है. 566 00:25:27,590 --> 00:25:29,680 तो यह 1 और 2 के रूप में हार्ड कोडित है. 567 00:25:29,680 --> 00:25:35,330 लाइनों 21 और 22 में, हम जाहिरा तौर पर एक्स और वाई, एक प्रति पंक्ति प्रिंट. 568 00:25:35,330 --> 00:25:39,620 फिर, 23 लाइन पर, मैं दावा है कि मैं इन मूल्यों गमागमन रहा हूँ, डॉट, डॉट, डॉट. 569 00:25:39,620 --> 00:25:43,030 मैं जाहिरा तौर पर 24 लाइन में एक समारोह स्वैप बुलाया फोन 570 00:25:43,030 --> 00:25:44,000 कि दो तर्क लेता है. 571 00:25:44,000 --> 00:25:46,430 यह पूरी तरह से कानूनी है कार्यों के लिए दो तर्क ले. 572 00:25:46,430 --> 00:25:48,220 हमने देखा है printf यह पहले से ही कर. 573 00:25:48,220 --> 00:25:50,370 तो स्वैप जाहिरा तौर पर एक्स और वाई लेता है. 574 00:25:50,370 --> 00:25:53,010 और जैसा कि इसके नाम से पता चलता है, मुझे आशा है कि यह करने के लिए जा रहा है 575 00:25:53,010 --> 00:25:54,320 इन दो मूल्यों स्वैप. 576 00:25:54,320 --> 00:25:57,560 तो फिर मैं 25 लाइन पर दावा, बदली. 577 00:25:57,560 --> 00:26:01,570 और मैं इस धारणा के तहत एक्स और वाई पुनर्मुद्रण कि 578 00:26:01,570 --> 00:26:02,830 वे वास्तव में बदली किया गया है. 579 00:26:02,830 --> 00:26:04,370 लेकिन अगर मैं वास्तव में इस कार्यक्रम को चलाने - 580 00:26:04,370 --> 00:26:06,060 मुझे एक टर्मिनल विंडो खोलने. 581 00:26:06,060 --> 00:26:07,750 मुझे buggy3 बनाने. 582 00:26:07,750 --> 00:26:09,970 जैसा कि नाम से पता चलता है, यह अच्छी तरह से खत्म करने के लिए नहीं जा रहा है. 583 00:26:09,970 --> 00:26:14,690 क्योंकि जब मैं हिट दर्ज करें, सूचना है कि एक्स 1 है. 584 00:26:14,690 --> 00:26:15,720 y 2 है. 585 00:26:15,720 --> 00:26:19,160 और अभी तक इस कार्यक्रम के अंत में, वे अभी भी कर रहे हैं, वास्तव में, एक ही. 586 00:26:19,160 --> 00:26:22,760 >> अभी केन के साथ, वास्तव में क्या हो रहा है तो प्रदर्शन पर आधारित है? 587 00:26:22,760 --> 00:26:24,660 ठीक है, चलो इस स्वैप समारोह में गोता. 588 00:26:24,660 --> 00:26:25,800 यह सुपर कम है. 589 00:26:25,800 --> 00:26:28,020 यह केवल लंबे समय से कोड की कुछ लाइनों. 590 00:26:28,020 --> 00:26:32,810 लेकिन मौलिक सरल कहानी के आधार पर समस्या क्या है बताया 591 00:26:32,810 --> 00:26:34,270 यहाँ ऊपर केन के साथ? 592 00:26:34,270 --> 00:26:36,115 स्वैप क्यों टूट गया है? 593 00:26:36,115 --> 00:26:37,365 [अश्राव्य] 594 00:26:39,840 --> 00:26:40,460 बिल्कुल सही. 595 00:26:40,460 --> 00:26:43,610 तो हम एक प्रतिलिपि भंडारण कर रहे हैं, ही नहीं चर. 596 00:26:43,610 --> 00:26:46,810 दूसरे शब्दों में, स्वैप जाहिरा तौर पर दो तर्क, एक int लेता है. 597 00:26:46,810 --> 00:26:49,370 और यह मनमाने ढंग से ए और बी कहा जाता है. 598 00:26:49,370 --> 00:26:54,430 और यहाँ, मैं एक्स और वाई, जो क्रमशः 1 और 2 में पारित कर दिया है. 599 00:26:54,430 --> 00:26:56,580 लेकिन मैं सचमुच एक्स में नहीं जा रहा हूँ. 600 00:26:56,580 --> 00:26:58,410 मैं सचमुच y में पारित नहीं कर रहा हूँ. 601 00:26:58,410 --> 00:27:01,230 मैं x और y की एक प्रतिलिपि की एक प्रति गुजर रहा हूँ. 602 00:27:01,230 --> 00:27:05,180 यह लगभग की तरह है के रूप में हालांकि आप नकल और मूल्यों है कि स्वैप में चिपकाया 603 00:27:05,180 --> 00:27:07,440 आप यह वास्तव में हेरफेर करने के लिए करना चाहते हैं. 604 00:27:07,440 --> 00:27:11,970 तो अगर है कि मामले में, जब मैं, कार्यक्रम, निष्पादित शुरू 605 00:27:11,970 --> 00:27:14,140 35 लाइन, तो 36 - 606 00:27:14,140 --> 00:27:17,740 जब मैं कहानी में इस बिंदु पर 37 लाइन के लिए मिलता है, एक के मूल्य क्या है? 607 00:27:20,740 --> 00:27:24,850 कहानी में इस बिंदु पर, रेखा 37, क्या इस बिंदु पर एक मूल्य है? 608 00:27:24,850 --> 00:27:25,980 तो यह सिर्फ 1 होना चाहिए. 609 00:27:25,980 --> 00:27:26,170 सही है? 610 00:27:26,170 --> 00:27:29,100 क्योंकि एक्स में पहले तर्क के रूप में पारित किया गया था. 611 00:27:29,100 --> 00:27:33,150 और इस समारोह में सिर्फ मनमाने ढंग से अपनी पहली तर्क बुला रहा है,. 612 00:27:33,150 --> 00:27:35,130 इसी प्रकार y, दूसरा तर्क है. 613 00:27:35,130 --> 00:27:37,930 और यह सिर्फ मनमाने ढंग से दूसरा तर्क ख बुला रही है. 614 00:27:37,930 --> 00:27:40,510 >> अब इस विरोधाभास वास्तव में काफी बस समझाया. 615 00:27:40,510 --> 00:27:40,880 इसके बारे में सोचो. 616 00:27:40,880 --> 00:27:42,980 हममें से कोई भी व्यक्ति जो printf लिखा था मिले हैं. 617 00:27:42,980 --> 00:27:49,880 तो निश्चित रूप से, वह या वह कोई विचार हमारे चर क्या 30 साल बाद जा रहे हैं 618 00:27:49,880 --> 00:27:50,710 कहा जा. 619 00:27:50,710 --> 00:27:55,110 तो तुम क्या चर में कॉल के बीच एक अंतर हो गया है 620 00:27:55,110 --> 00:27:59,960 कार्य आप लिख रहे हैं और क्या आप कार्य आप कर रहे हैं में चर कॉल 621 00:27:59,960 --> 00:28:01,770 या फोन का इस्तेमाल करते हैं. 622 00:28:01,770 --> 00:28:05,120 तो दूसरे शब्दों में, मैं एक्स और वाई के रूप में अपने चर लिखा है. 623 00:28:05,120 --> 00:28:08,060 लेकिन अगर किसी और स्वैप समारोह में लिखा था, निश्चित रूप से वह या वह 624 00:28:08,060 --> 00:28:10,480 पता नहीं होगा कि क्या अपने चर के लिए कहा जा जा रहे हैं. 625 00:28:10,480 --> 00:28:13,850 तो एहसास है कि इस वजह से आप के नाम के इस द्वंद्व है. 626 00:28:13,850 --> 00:28:16,800 तकनीकी तौर पर, मैं संयोग से यह कर सकता है. 627 00:28:16,800 --> 00:28:19,750 लेकिन वे अभी भी प्रतियां के रूप में पारित किया जाएगा. 628 00:28:19,750 --> 00:28:22,940 यह सिर्फ एक संयोग है aesthetically कि व्यक्ति जो लिखा होगा 629 00:28:22,940 --> 00:28:25,590 स्वैप एक ही नाम का इस्तेमाल किया था. 630 00:28:25,590 --> 00:28:25,930 >> सही सभी. 631 00:28:25,930 --> 00:28:29,010 तो कहानी में इस बिंदु पर, 37 लाइन, एक 1 है. 632 00:28:29,010 --> 00:28:30,410 बी 2 है. 633 00:28:30,410 --> 00:28:32,040 और अब मैं उन्हें स्वैप के लिए आगे बढ़ें. 634 00:28:32,040 --> 00:28:34,730 खैर सब से पहले, मुझे वास्तव में यह बहुत अधिक बस. 635 00:28:34,730 --> 00:28:36,500 मैं नहीं जानता कि कोड के उन तीन लाइनों क्या कर रहे थे. 636 00:28:36,500 --> 00:28:37,370 मुझे सिर्फ यह करना है. 637 00:28:37,370 --> 00:28:38,850 ख एक हो जाता है. 638 00:28:38,850 --> 00:28:40,170 एक ख हो जाता है. 639 00:28:40,170 --> 00:28:41,450 हो गया. 640 00:28:41,450 --> 00:28:43,540 ऐसा क्यों है कि टूटी हुई है, तार्किक? 641 00:28:46,980 --> 00:28:48,590 यह सहज बात की तरह है, है ना? 642 00:28:48,590 --> 00:28:50,640 तो एक ख हो जाता है. 643 00:28:50,640 --> 00:28:52,450 और बी एक हो जाता है. 644 00:28:52,450 --> 00:28:55,410 लेकिन समस्या यह है कि जैसे ही लाइन 37 निष्पादित करता है, क्या है 645 00:28:55,410 --> 00:28:58,170 ए और बी के मूल्य है? 646 00:28:58,170 --> 00:28:59,070 एक ही है, 1. 647 00:28:59,070 --> 00:29:03,460 क्योंकि तुम clobbered है, इतनी बात करने के लिए, तुम ख बदल दिया है करने के लिए एक बराबर है. 648 00:29:03,460 --> 00:29:06,000 तो एक बार 37 लाइन मार डाला है, जो बढ़िया है. 649 00:29:06,000 --> 00:29:09,940 अब आप इस समारोह की संख्या 1 के अंदर की दो प्रतियां है. 650 00:29:09,940 --> 00:29:14,720 तो जब आप लाइन 38 में कहते हैं, एक ख हो जाता है, ठीक है, आप की तरह खराब कर रहे हैं. 651 00:29:14,720 --> 00:29:17,370 क्योंकि आप सिर्फ 1 1 बताए रहे हैं. 652 00:29:17,370 --> 00:29:20,400 आप किस तरह के मूल्य के बारे में परवाह खो दिया है. 653 00:29:20,400 --> 00:29:22,910 >> तो इस के मूल संस्करण में नोटिस, जो मैंने किया. 654 00:29:22,910 --> 00:29:26,620 मैं बजाय कोड की तीसरी पंक्ति है कि इस तरह से देखा था. 655 00:29:26,620 --> 00:29:29,910 मैं एक अस्थायी चर घोषित tmp एक बहुत ही आम नाम है 656 00:29:29,910 --> 00:29:31,240 एक अस्थायी चर के लिए. 657 00:29:31,240 --> 00:29:34,280 यह एक int है क्योंकि यह मैच मैं क्या करने की एक प्रतिलिपि बनाना चाहते है. 658 00:29:34,280 --> 00:29:39,720 मैं tmp की एक अंदर की एक प्रति की दुकान. तो एक बार 37 लाइन मार डाला गया है, 659 00:29:39,720 --> 00:29:41,390 एक के मूल्य है - 660 00:29:41,390 --> 00:29:42,970 त्वरित विवेक की जाँच करें - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 ख के मूल्य 2 है. 663 00:29:45,780 --> 00:29:48,470 और tmp के मूल्य भी है 1. 664 00:29:48,470 --> 00:29:51,470 तो अब मैं 38 लाइन को अंजाम. 665 00:29:51,470 --> 00:29:57,180 तो एक बार 38 लाइन कार्यान्वित, ख के मूल्य पर लेता है. 666 00:29:57,180 --> 00:29:58,510 और बी 2 था. 667 00:29:58,510 --> 00:30:00,500 तो अब एक 2 है. 668 00:30:00,500 --> 00:30:03,110 तो कहानी में इस बिंदु पर, एक 2, बी 2, 669 00:30:03,110 --> 00:30:05,130 और tmp 1 है. 670 00:30:05,130 --> 00:30:09,330 तो अब तार्किक, हम कर सकते हैं ख में बस खटखटाने से tmp मूल्य. 671 00:30:09,330 --> 00:30:10,690 और हम कर रहे हैं. 672 00:30:10,690 --> 00:30:12,170 >> तो हम उस समस्या का हल है. 673 00:30:12,170 --> 00:30:16,040 दुर्भाग्य से, जब मैं इस रूप में इस कार्यक्रम को चलाने, यह वास्तव में स्वैप नहीं करता 674 00:30:16,040 --> 00:30:17,700 कोई भी मान. 675 00:30:17,700 --> 00:30:18,950 लेकिन स्पष्ट हो, क्यों? 676 00:30:23,420 --> 00:30:26,310 मैं बस एक पल पहले से तार्किक समस्या तय. 677 00:30:26,310 --> 00:30:31,150 लेकिन फिर, अगर मैं इस कार्यक्रम को चलाने, एक्स और वाई के अंत तक अपरिवर्तित ही रहेंगे 678 00:30:31,150 --> 00:30:33,834 प्रोग्राम निष्पादन. 679 00:30:33,834 --> 00:30:34,760 [अश्राव्य] 680 00:30:34,760 --> 00:30:36,030 डेविड जे मालन: तो हम कुछ भी नहीं लौटे हैं. 681 00:30:36,030 --> 00:30:36,960 तो यह सच है. 682 00:30:36,960 --> 00:30:39,880 लेकिन यह निकलता है वहाँ एक समस्या का एक सा है क्योंकि इस प्रकार अब तक, 683 00:30:39,880 --> 00:30:42,460 हम एक ही बात पर लौटने में सक्षम किया गया है एक बात है. 684 00:30:42,460 --> 00:30:46,540 और इस सी. प्रतिबंध तुम ही वास्तव में एक मान सकते हैं, 685 00:30:46,540 --> 00:30:48,970 जो मामले में, मैं यहाँ अटक की तरह कर रहा हूँ 686 00:30:48,970 --> 00:30:51,805 क्योंकि मैं एक्स के नए मूल्य लौट सकता है या मैं वापसी कर सकता है 687 00:30:51,805 --> 00:30:53,160 y के नए मूल्य. 688 00:30:53,160 --> 00:30:54,330 लेकिन मैं दोनों वापस चाहते हैं. 689 00:30:54,330 --> 00:30:58,010 तो यहाँ लौट रहा है सरल समाधान नहीं है. 690 00:30:58,010 --> 00:30:59,770 लेकिन समस्या यह मौलिक क्यों है? 691 00:30:59,770 --> 00:31:03,270 क्या हम वास्तव में बदली है? 692 00:31:03,270 --> 00:31:04,010 एक और ख. 693 00:31:04,010 --> 00:31:07,670 लेकिन एक और ख एक्स और वाई, जिसका मतलब है कि हम सिर्फ यह सब किया की प्रतियां 694 00:31:07,670 --> 00:31:10,080 काम - हम सिर्फ तीन मिनट की तरह खर्च स्वैप के बारे में बात कर रहे 695 00:31:10,080 --> 00:31:11,680 समारोह और इन चर के सभी तीन. 696 00:31:11,680 --> 00:31:15,090 और कि अलगाव में महान है, पूरी तरह से सही है. 697 00:31:15,090 --> 00:31:20,230 लेकिन एक और ख गुंजाइश ही इन लाइनों में यहाँ है. 698 00:31:20,230 --> 00:31:24,130 तो पाश के लिए एक बस की तरह, यदि आप एक पूर्णांक की घोषणा मैं अंदर के लिए 699 00:31:24,130 --> 00:31:27,400 पाश - इसी तरह, अगर आप घोषणा कर रहे हैं एक और ख एक समारोह के अंदर है कि 700 00:31:27,400 --> 00:31:30,550 आपने लिखा है, वे केवल कि समारोह के वैध अंदर कर रहे हैं. 701 00:31:30,550 --> 00:31:35,020 जो के रूप में जल्द ही के रूप में स्वैप क्रियान्वित किया जाता है का मतलब है और हम करने के लिए 24 लाइन से जाना 702 00:31:35,020 --> 00:31:38,380 लाइन 25 x और y बिल्कुल नहीं बदला है. 703 00:31:38,380 --> 00:31:42,580 तुम सिर्फ समय की एक पूरी बहुत चर की प्रतियां गमागमन बर्बाद किया. 704 00:31:42,580 --> 00:31:46,490 >> तो यह पता चला है कि इस समाधान वास्तव में गैर स्पष्ट है. 705 00:31:46,490 --> 00:31:49,210 यह काफी मान देने के लिए पर्याप्त नहीं है क्योंकि हम कर सकते हैं 706 00:31:49,210 --> 00:31:50,320 केवल एक मूल्य वापसी. 707 00:31:50,320 --> 00:31:53,370 और मैं वास्तव में एक ही समय में दोनों एक्स और वाई स्वैप करना चाहती. 708 00:31:53,370 --> 00:31:55,020 तो हम यह करने के लिए वापस आ जा रहे हैं. 709 00:31:55,020 --> 00:31:58,770 लेकिन अब के लिए एहसास है, कि इस मुद्दे को मौलिक तथ्य से निकला 710 00:31:58,770 --> 00:32:00,660 कि एक और ख प्रतियां हैं. 711 00:32:00,660 --> 00:32:03,450 और वे अपने स्वयं के दायरे में हैं. 712 00:32:03,450 --> 00:32:04,980 खैर, कुछ रास्ते में इस को हल करने की कोशिश करते हैं. 713 00:32:04,980 --> 00:32:09,200 मुझे वास्तव में यहाँ वापस स्क्रॉल करें और खोलने, चलो कहते हैं, एक चौथा variant 714 00:32:09,200 --> 00:32:11,170 इस बात का, buggy4. 715 00:32:11,170 --> 00:32:13,230 और क्या इस बारे में? 716 00:32:13,230 --> 00:32:16,690 यह एक समान है लेकिन सरल समस्या को देखने के लिए इससे पहले कि हम पर एक चाकू ले 717 00:32:16,690 --> 00:32:17,530 इसे हल. 718 00:32:17,530 --> 00:32:19,440 इस कार्यक्रम के वेतन वृद्धि कहा जाता है. 719 00:32:19,440 --> 00:32:24,320 और यह जाहिरा तौर पर 18 लाइन में 1 एक एक्स पूर्णांक initializes. 720 00:32:24,320 --> 00:32:25,950 मैं तो दावा है एक्स 1 है. 721 00:32:25,950 --> 00:32:28,020 मैं तो incrementing दावा, डॉट, डॉट, डॉट. 722 00:32:28,020 --> 00:32:29,460 मैं तो वेतन वृद्धि कहते हैं. 723 00:32:29,460 --> 00:32:33,480 लेकिन फिर 22 और 23 लाइनों में, मैं दावा यह incremented गया है. 724 00:32:33,480 --> 00:32:37,780 मैं दावा x अब जो कुछ भी है, 2 संभाव्यतः. 725 00:32:37,780 --> 00:32:39,770 >> लेकिन इस कार्यक्रम छोटी गाड़ी है. 726 00:32:39,770 --> 00:32:41,020 समस्या क्या है? 727 00:32:43,450 --> 00:32:44,418 हाँ? 728 00:32:44,418 --> 00:32:45,668 [अश्राव्य] 729 00:32:49,260 --> 00:32:49,850 डेविड जे मालन: बिल्कुल सही. 730 00:32:49,850 --> 00:32:52,430 तो x 18 लाइन पर स्पष्ट रूप से घोषित किया गया है. 731 00:32:52,430 --> 00:32:54,410 कि मुख्य घुंघराले ब्रेसिज़ के अंदर है. 732 00:32:54,410 --> 00:32:58,470 यहाँ इतना सरल जवाब है कि, अच्छी तरह से, एक्स यहाँ मौजूद है. 733 00:32:58,470 --> 00:33:01,510 यह 32 लाइन में मौजूद नहीं है. 734 00:33:01,510 --> 00:33:03,710 तो इस कार्यक्रम वास्तव में भी संकलन नहीं होगा. 735 00:33:03,710 --> 00:33:07,910 संकलक, जब मैं इस कोड संकलन की कोशिश करो, मुझ पर चिल्लाना जा रहा है 736 00:33:07,910 --> 00:33:13,190 कुछ अघोषित पहचानकर्ता या उस प्रभाव के लिए कुछ के बारे में. 737 00:33:13,190 --> 00:33:13,870 वास्तव में, हम कोशिश करते हैं. 738 00:33:13,870 --> 00:33:15,235 यह buggy4 बनाने के लिए है. 739 00:33:17,780 --> 00:33:18,190 वहाँ यह है. 740 00:33:18,190 --> 00:33:22,030 32 लाइन में अघोषित पहचानकर्ता एक्स का प्रयोग करें. 741 00:33:22,030 --> 00:33:25,700 और वास्तव में, चलो आज यहां स्पष्ट रूप से इतना है कि इस में उपयोगी है 742 00:33:25,700 --> 00:33:27,140 कार्यालय समय और घर पर. 743 00:33:27,140 --> 00:33:29,000 सूचना है कि यह एक छोटी cryptically लिखा है. 744 00:33:29,000 --> 00:33:31,560 लेकिन तथ्य यह है कि बजना है हम पर चिल्लाया, कह रही है 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, वास्तव में उपयोगी है. 746 00:33:36,970 --> 00:33:41,970 इसका मतलब यह है कि त्रुटि चरित्र पांच की स्थिति में 32 लाइन पर है. 747 00:33:41,970 --> 00:33:44,670 एक, दो, तीन, चार, पांच, तो. 748 00:33:44,670 --> 00:33:46,640 यह वास्तव में है, जहां समस्या है. 749 00:33:46,640 --> 00:33:49,710 और भी घंटे कार्यालय में और घर में मन में रखने के लिए, मैं भाग्यशाली यहाँ हूँ. 750 00:33:49,710 --> 00:33:50,740 मैं एक गलती की है. 751 00:33:50,740 --> 00:33:52,660 यह तय करने के लिए अपेक्षाकृत आसान होने जा रहा है. 752 00:33:52,660 --> 00:33:56,220 लेकिन अगर आप एक पूरे भारी त्रुटि संदेश, फिर से पूर्ण स्क्रीन मिलता है, 753 00:33:56,220 --> 00:33:59,240 एहसास है कि नीचा एक बस के लक्षण हो सकता है 754 00:33:59,240 --> 00:34:00,320 सर्वोच्च वाले. 755 00:34:00,320 --> 00:34:03,560 तो हमेशा ऊपर से नीचे से नीचे अपने कीड़े का पीछा. 756 00:34:03,560 --> 00:34:06,720 क्योंकि वहाँ सिर्फ एक डेज़ी श्रृंखला प्रभाव हो सकता है कि आप सुझाव है 757 00:34:06,720 --> 00:34:09,030 रास्ता अधिक समस्याओं की तुलना में आप वास्तव में क्या है. 758 00:34:09,030 --> 00:34:14,989 >> तो हम यह कैसे तय अगर अपने लक्ष्य के लिए एक्स वेतन वृद्धि कर सकता है? 759 00:34:14,989 --> 00:34:15,370 वह क्या है? 760 00:34:15,370 --> 00:34:15,620 ठीक है. 761 00:34:15,620 --> 00:34:16,679 तो हम एक्स वैश्विक कर सकते हैं. 762 00:34:16,679 --> 00:34:18,860 चलो शॉर्टकट है कि मैं के बारे में पहले चेतावनी दी है. 763 00:34:18,860 --> 00:34:20,550 लेकिन बिल्ली, हम सिर्फ एक जल्दी ठीक की जरूरत है. 764 00:34:20,550 --> 00:34:23,949 तो चलो बस int x यहाँ का कहना है. 765 00:34:23,949 --> 00:34:25,600 कि x वैश्विक बनाता है. 766 00:34:25,600 --> 00:34:28,460 तो अब मुख्य इसे करने के लिए उपयोग किया है. 767 00:34:28,460 --> 00:34:31,780 वेतन वृद्धि और इसे करने के लिए उपयोग किया है. 768 00:34:31,780 --> 00:34:33,860 और इसलिए मुझे आगे जाना है और अब यह संकलन. 769 00:34:33,860 --> 00:34:36,330 दर्ज करें, buggy4 बनाओ. 770 00:34:36,330 --> 00:34:37,440 संकलन अब लगता है. 771 00:34:37,440 --> 00:34:40,949 चलो buggy4 चलाने के लिए, और यह वास्तव में काम करने लगता है. 772 00:34:40,949 --> 00:34:42,780 अब यह इन बातों में से एक है - 773 00:34:42,780 --> 00:34:45,870 के रूप में मैं कहता हूँ, मैं ऐसा नहीं कर के रूप में है, के रूप में मैं बस यहाँ किया है. 774 00:34:45,870 --> 00:34:49,239 क्योंकि सामान्य रूप में, हमारे कार्यक्रमों को और अधिक दिलचस्प हो जा रहे हैं और 775 00:34:49,239 --> 00:34:50,440 बहुत इस से लंबी है. 776 00:34:50,440 --> 00:34:53,199 और अगर अपने जीवन की समस्याओं का समाधान सिर्फ आह, सभी डाल 777 00:34:53,199 --> 00:34:57,550 अपनी फ़ाइल के शीर्ष पर चर, बहुत जल्दी कर कार्यक्रमों मिल 778 00:34:57,550 --> 00:34:59,700 horrifically प्रबंधन के लिए मुश्किल है. 779 00:34:59,700 --> 00:35:02,050 यह कठिन हो जाता है करने के लिए लगता है कि नए चर नाम. 780 00:35:02,050 --> 00:35:05,240 यह कठिन हो जाता है समझ में चर क्या क्या कर रहा है. 781 00:35:05,240 --> 00:35:08,250 >> और तो सामान्य रूप में, यह एक अच्छा समाधान नहीं है. 782 00:35:08,250 --> 00:35:09,780 तो यह बेहतर करते हैं. 783 00:35:09,780 --> 00:35:11,920 हम एक वैश्विक चर यहाँ का उपयोग नहीं करना चाहती. 784 00:35:11,920 --> 00:35:14,050 मैं x वेतन वृद्धि करना चाहते हैं. 785 00:35:14,050 --> 00:35:16,050 तो मैं स्पष्ट रूप से कर सकता था - 786 00:35:16,050 --> 00:35:18,450 दिन के अंत में, यह एक मूर्ख कहानी की तरह है क्योंकि हम सिर्फ यह करना है. 787 00:35:18,450 --> 00:35:22,050 लेकिन अगर मुझे लगता है कि ऑपरेटर के बारे में पता है, नहीं किया था, या मैं की अनुमति नहीं थी 788 00:35:22,050 --> 00:35:27,700 यह मुख्य में ही बदलने के लिए, और कैसे मैं यहाँ पर केन लागू कर सकता है, यह 789 00:35:27,700 --> 00:35:31,450 समय घन लेकिन वेतन वृद्धि करने के लिए नहीं है? 790 00:35:31,450 --> 00:35:32,700 मैं इस बात को कैसे यहाँ बदल? 791 00:35:32,700 --> 00:35:33,025 हाँ. 792 00:35:33,025 --> 00:35:34,275 [अश्राव्य] 793 00:35:37,430 --> 00:35:38,000 डेविड जे मालन: ठीक है, अच्छा है. 794 00:35:38,000 --> 00:35:40,490 तो मैं एक्स में क्यों पास नहीं है? 795 00:35:40,490 --> 00:35:44,390 और फिर बजाय इसे वापस, मैं सिर्फ x + 1 वापसी करते क्यों नहीं करते हैं? 796 00:35:44,390 --> 00:35:46,370 अब, एक जोड़े को और अधिक काम करने के लिए यहाँ बदल दिया है. 797 00:35:46,370 --> 00:35:47,530 मैं सही रास्ते पर हूँ. 798 00:35:47,530 --> 00:35:48,910 मैं और क्या जरूरत tweak करने के लिए? 799 00:35:48,910 --> 00:35:49,470 किसी और ने. 800 00:35:49,470 --> 00:35:49,882 हाँ? 801 00:35:49,882 --> 00:35:51,530 [अश्राव्य] 802 00:35:51,530 --> 00:35:53,520 डेविड जे मालन: मैं वेतन वृद्धि की वापसी प्रकार बदलने की जरूरत है 803 00:35:53,520 --> 00:35:54,590 क्योंकि यह शून्य नहीं है. 804 00:35:54,590 --> 00:35:56,650 शून्य का मतलब है कुछ भी नहीं लौटा जा रहा है. 805 00:35:56,650 --> 00:35:57,600 लेकिन स्पष्ट रूप से, अब यह है. 806 00:35:57,600 --> 00:36:01,280 तो यह आवश्यकताओं के साथ जो कुछ भी अनुरूप होना int बदलने के लिए 807 00:36:01,280 --> 00:36:02,580 मैं वास्तव में लौट रहा हूँ. 808 00:36:02,580 --> 00:36:04,580 >> अब कुछ और अभी भी यहाँ छोटी गाड़ी है. 809 00:36:04,580 --> 00:36:04,982 हाँ? 810 00:36:04,982 --> 00:36:06,590 [अश्राव्य] 811 00:36:06,590 --> 00:36:07,630 डेविड जे मालन: तो मैं एक्स वेतन वृद्धि की जरूरत है? 812 00:36:07,630 --> 00:36:10,336 [अश्राव्य] 813 00:36:10,336 --> 00:36:11,880 डेविड जे मालन: आह, तो मैं एक्स पारित करने की आवश्यकता है. 814 00:36:11,880 --> 00:36:13,300 तो मैं यहाँ यह सब करने की जरूरत है. 815 00:36:17,590 --> 00:36:19,690 प्रोटोटाइप तो, मैं इस बदलने के लिए यहाँ है. 816 00:36:19,690 --> 00:36:21,290 तो यह एक int बन गया है. 817 00:36:21,290 --> 00:36:22,820 यह बन गया है - 818 00:36:22,820 --> 00:36:23,670 हम्म. 819 00:36:23,670 --> 00:36:24,710 मैं वास्तव में एक बग यहाँ है. 820 00:36:24,710 --> 00:36:25,780 चलो एक यह पहली तय. 821 00:36:25,780 --> 00:36:27,990 यह वास्तव में क्या होना चाहिए? 822 00:36:27,990 --> 00:36:29,330 तो यह एक int कुछ हो गया है. 823 00:36:29,330 --> 00:36:30,340 यह एक्स हो सकता है. 824 00:36:30,340 --> 00:36:33,120 लेकिन स्पष्ट रूप से, अगर आप अपने चर एक्स के सभी बुला शुरू, इसे पाने के लिए जा रहा है 825 00:36:33,120 --> 00:36:35,250 और कम से कम स्पष्ट है जो है. 826 00:36:35,250 --> 00:36:38,210 इसलिए चलो बस मनमाने ढंग से मेरे लिए एक अलग नामकरण परिपाटी का चयन 827 00:36:38,210 --> 00:36:40,220 सहायक कार्यों, कार्यों मैं लिख रहा हूँ. 828 00:36:40,220 --> 00:36:41,100 हम इसे एक फोन करता हूँ. 829 00:36:41,100 --> 00:36:44,500 या हम यह कह सकते हैं - चलो कहते हैं यह करने के लिए और भी अधिक स्पष्ट हो even_number. 830 00:36:44,500 --> 00:36:47,610 तो फिर मैं वापस जो संख्या 1 से अधिक है. 831 00:36:47,610 --> 00:36:49,720 और अब मैं एक दूसरी बात बदलने के लिए यहाँ और एक 832 00:36:49,720 --> 00:36:50,700 अन्य यहाँ बात. 833 00:36:50,700 --> 00:36:54,150 क्या मैं 21 लाइन पर पहली बार बदलने की है? 834 00:36:54,150 --> 00:36:55,390 मैं यह एक्स के लिए आवंटित है. 835 00:36:55,390 --> 00:36:57,480 इसलिए मैं सिर्फ वेतन वृद्धि एक्स नहीं कह सकते. 836 00:36:57,480 --> 00:37:01,000 मैं पर एक्स का मान बदलने के द्वारा जवाब याद करने की जरूरत है 837 00:37:01,000 --> 00:37:02,020 बाएं हाथ की ओर. 838 00:37:02,020 --> 00:37:04,930 और भले ही एक्स पर अब छोड़ दिया और सही है, कि पूरी तरह से ठीक है क्योंकि 839 00:37:04,930 --> 00:37:08,370 दाहिने हाथ की ओर पहले से मार डाला जाता है तो हो जाता है छोड़ दिया में plopped 840 00:37:08,370 --> 00:37:10,240 हाथ की बात है, इस मामले में एक्स. 841 00:37:10,240 --> 00:37:11,900 और फिर अंत में, यह अब एक आसान तय है. 842 00:37:11,900 --> 00:37:15,080 यह सिर्फ क्या नीचे मैच चाहिए. 843 00:37:15,080 --> 00:37:17,120 इंटरनैशनल संख्या. 844 00:37:17,120 --> 00:37:17,320 >> सही सभी. 845 00:37:17,320 --> 00:37:20,290 तो एक सच में बेवकूफ समारोह के लिए परिवर्तन की एक पूरी गुच्छा. 846 00:37:20,290 --> 00:37:24,250 लेकिन चीजें है कि हम तेजी से करना चाहती हूँ की प्रतिनिधि. 847 00:37:24,250 --> 00:37:25,490 तो buggy4 बनाने. 848 00:37:25,490 --> 00:37:26,485 मैं कहीं खराब कर दिया है. 849 00:37:26,485 --> 00:37:27,520 हे भगवान. 850 00:37:27,520 --> 00:37:29,660 में पांच गलतियों, जैसे, एक छह लाइन कार्यक्रम. 851 00:37:29,660 --> 00:37:36,500 तो क्या 18 लाइन पर गलत है, चरित्र 5? 852 00:37:36,500 --> 00:37:36,970 सही सभी. 853 00:37:36,970 --> 00:37:39,330 तो मैं इस int की घोषणा की है. 854 00:37:39,330 --> 00:37:39,630 सही सभी. 855 00:37:39,630 --> 00:37:41,790 तो देखते हैं, अन्य त्रुटियों की एक पूरी गुच्छा. 856 00:37:41,790 --> 00:37:42,230 हे भगवान. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 लेकिन फिर, चलो बस स्क्रीन साफ ​​- 859 00:37:46,020 --> 00:37:48,660 नियंत्रण यहाँ एल - और फिर से चलाने के बजना. 860 00:37:48,660 --> 00:37:51,340 तो पाँच समस्याओं वास्तव में सिर्फ एक है कि. 861 00:37:51,340 --> 00:37:53,500 तो अब चलो buggy4 चलाने के लिए, दर्ज करें. 862 00:37:53,500 --> 00:37:54,150 वाह. 863 00:37:54,150 --> 00:37:57,434 एक्स सही ढंग से incremented गया है. 864 00:37:57,434 --> 00:37:58,420 >> सही सभी. 865 00:37:58,420 --> 00:38:01,700 कैसे संख्या वेतन वृद्धि पर कोई सवाल? 866 00:38:01,700 --> 00:38:02,896 हाँ? 867 00:38:02,896 --> 00:38:06,864 2 स्पीकर: ऐसा क्यों है कि आप सिर्फ चर में संख्या एक्स बदल सकते हैं 868 00:38:06,864 --> 00:38:08,860 नाम है और यह पता चल जाएगा कि तुम क्या मतलब है? 869 00:38:08,860 --> 00:38:09,600 : डेविड जे मालन अच्छा सवाल है. 870 00:38:09,600 --> 00:38:13,130 कैसे यह है कि मैं सिर्फ संख्या एक्स बदल सकते हैं और कार्यक्रम का पता चल जाएगा 871 00:38:13,130 --> 00:38:13,990 तुरंत? 872 00:38:13,990 --> 00:38:16,120 तो फिर, इस अमूर्त रूप में लगता है. 873 00:38:16,120 --> 00:38:20,110 तो अगर मैं मुख्य हूँ और केन वृद्धिशील है, स्पष्ट रूप से, मैं नहीं परवाह नहीं 874 00:38:20,110 --> 00:38:21,540 अपने iPad केन क्या कहता है. 875 00:38:21,540 --> 00:38:25,350 मुझे परवाह नहीं है कि वह जो कुछ भी है कि अपने कार्यान्वयन के साथ क्या करना है कॉल 876 00:38:25,350 --> 00:38:26,550 इस सुविधा का. 877 00:38:26,550 --> 00:38:32,130 तो यह एक कार्यान्वयन के विस्तार है कि नहीं मैं, मुख्य, 878 00:38:32,130 --> 00:38:33,010 के बारे में परवाह है. 879 00:38:33,010 --> 00:38:37,440 तो बस बदलने से उस लगातार समारोह के अंदर, यहाँ संख्या 880 00:38:37,440 --> 00:38:41,340 और यहाँ संख्या, यह सब इतने लंबे समय के रूप में मैं recompile लेता है. 881 00:38:41,340 --> 00:38:43,820 यह सॉर्ट के अगर आप के बारे में लगता है कि हम में से कई, ड्राइवर के साथ आप में से उन लोगों के 882 00:38:43,820 --> 00:38:46,590 जो लाइसेंस संचालित है, या यदि आप एक कार में भी प्रेरित किया है - 883 00:38:46,590 --> 00:38:50,710 हम में से अधिकांश पता नहीं कैसे एक कार के हुड के नीचे काम करता है. 884 00:38:50,710 --> 00:38:54,710 और सचमुच, अगर आप डाकू, हम में से ज्यादातर के खुले खुद को शामिल 885 00:38:54,710 --> 00:38:56,580 जा रहे हैं के लिए वास्तव में नहीं जानते हैं कि हम क्या देख रहे हैं. 886 00:38:56,580 --> 00:38:58,850 की तरह की तरह आप इस सही तरह सामान के साथ अब महसूस हो सकता है. 887 00:38:58,850 --> 00:39:01,380 लेकिन हम वास्तव में कैसे कार काम करता है परवाह नहीं है. 888 00:39:01,380 --> 00:39:05,000 हम परवाह नहीं है क्या छड़ और पिस्टन के अंदर और केबल के सभी 889 00:39:05,000 --> 00:39:07,700 कार वास्तव में कर रहे हैं. 890 00:39:07,700 --> 00:39:11,360 >> तो तुम क्या पिस्टन फोन की तरह कुछ कोई फर्क नहीं पड़ता 891 00:39:11,360 --> 00:39:11,920 यहाँ इस मामले में. 892 00:39:11,920 --> 00:39:12,490 ही विचार है. 893 00:39:12,490 --> 00:39:12,670 हाँ? 894 00:39:12,670 --> 00:39:13,920 [अश्राव्य] 895 00:39:25,250 --> 00:39:29,530 डेविड जे मालन: यदि चर xa पल की अधिक का उपयोग करता है पहले थे, 896 00:39:29,530 --> 00:39:32,220 आप, प्रोग्रामर, उन्हें हर जगह बदलना होगा. 897 00:39:32,220 --> 00:39:35,230 या आप सचमुच फ़ाइल मेनू, कर सकता है और फिर ढूँढ़ें / बदलें 898 00:39:35,230 --> 00:39:36,270 ऐसा ही कुछ है. 899 00:39:36,270 --> 00:39:40,110 लेकिन आप उन परिवर्तनों को अपने आप को बनाने के लिए जा रहे हैं. 900 00:39:40,110 --> 00:39:41,200 आप लगातार होना है. 901 00:39:41,200 --> 00:39:42,450 [अश्राव्य] 902 00:39:47,200 --> 00:39:48,960 डेविड जे मालन: यहाँ की तरह एक विशेष आदेश? 903 00:39:48,960 --> 00:39:52,660 यदि यह दूसरे नंबर int? 904 00:39:52,660 --> 00:39:52,940 हाँ. 905 00:39:52,940 --> 00:39:56,430 तो आदेश मायने रखती है जब आप समारोह में बुला रहे हैं. 906 00:39:56,430 --> 00:40:00,350 तो अगर मैं वेतन वृद्धि को बुला रहे थे यहाँ कुछ अल्पविराम कुछ के साथ, 907 00:40:00,350 --> 00:40:01,400 वहाँ एक प्रत्यक्ष मानचित्रण है. 908 00:40:01,400 --> 00:40:04,490 पहला चर, जो कुछ भी यह कहा जाता है, पहले की एक कॉपी किया जाता है 909 00:40:04,490 --> 00:40:05,480 यहाँ पर तर्क. 910 00:40:05,480 --> 00:40:07,280 क्षमा करें, यह एक कोष्टक नहीं होना चाहिए. 911 00:40:07,280 --> 00:40:09,300 एक दूसरे के साथ दूसरा तर्क लाइनों. 912 00:40:09,300 --> 00:40:11,220 >> इतने में आदेश, हाँ, मायने रखती है. 913 00:40:11,220 --> 00:40:11,490 सही सभी. 914 00:40:11,490 --> 00:40:13,360 खेद है कि मैं एक लंबे समय के लिए वहाँ पाने के लिए जिस तरह से लिया. 915 00:40:13,360 --> 00:40:14,610 अन्य प्रश्न? 916 00:40:16,460 --> 00:40:16,850 सही सभी. 917 00:40:16,850 --> 00:40:20,300 तो चलो देखते हैं अगर हम वास्तव में क्या हो रहा है की एक तस्वीर रंग नहीं कर सकते हैं 918 00:40:20,300 --> 00:40:22,160 यहाँ हुड के नीचे है, तो बात करो. 919 00:40:22,160 --> 00:40:26,310 तो यह एक आयत है कि आपके कंप्यूटर की मेमोरी का प्रतिनिधित्व हो सकता है. 920 00:40:26,310 --> 00:40:31,240 तो भी अगर आप पता नहीं कैसे स्मृति काम करता है या रैम कैसे काम करता है, कम से कम 921 00:40:31,240 --> 00:40:33,590 मान लेते हैं कि आप इसे bunches इन दिनों है. 922 00:40:33,590 --> 00:40:34,740 तुम यह मेगाबाइट मिल गया है. 923 00:40:34,740 --> 00:40:35,760 आप के गीगाबाइट मिल गया है. 924 00:40:35,760 --> 00:40:40,690 और हम सप्ताह शून्य से पता है कि क्या सिर्फ एक बाइट है? 925 00:40:40,690 --> 00:40:41,280 8 बिट. 926 00:40:41,280 --> 00:40:42,730 ठीक है, तो 8 zeroes और लोगों को. 927 00:40:42,730 --> 00:40:46,300 तो अगर आपके कंप्यूटर इन दिनों राम की एक टमटम, राम के दो gigs है, तो आपको एक 928 00:40:46,300 --> 00:40:54,450 स्मृति के अरब या 2 अरब बाइट्स, या लगभग 8 अरब या 16 अरब 929 00:40:54,450 --> 00:40:56,560 बिट्स, अपने कंप्यूटर के अंदर. 930 00:40:56,560 --> 00:40:59,710 अब थोड़ा ऊनी विली उदाहरण के विपरीत, यह चुंबकीय कणों नहीं है 931 00:40:59,710 --> 00:41:00,560 अब आम तौर पर. 932 00:41:00,560 --> 00:41:04,470 लैपटॉप में तेजी से, कम से कम, यह ठोस राज्य ड्राइव, SSDs, कि 933 00:41:04,470 --> 00:41:05,560 अभी कोई भागों चलती है. 934 00:41:05,560 --> 00:41:06,710 यह सभी इलेक्ट्रॉनिक है. 935 00:41:06,710 --> 00:41:08,070 यह सब आधारित बिजली है. 936 00:41:08,070 --> 00:41:12,360 ऐसा लगता है, हालांकि, सिर्फ एक या दो का प्रतिनिधित्व के रूप में इस आयत के 937 00:41:12,360 --> 00:41:13,930 स्मृति के गीगाबाइट है कि तुम. 938 00:41:13,930 --> 00:41:15,500 >> तो यह स्मृति का एक हिस्सा है. 939 00:41:15,500 --> 00:41:20,460 अब कंप्यूटर विज्ञान की दुनिया से दूर विभाजित विखंडू की तरह 940 00:41:20,460 --> 00:41:22,570 स्मृति अलग अलग बातें करने के लिए. 941 00:41:22,570 --> 00:41:25,930 तो उदाहरण के लिए, अगर यह आपके कंप्यूटर की रैम है - के रूप में सुझाव दिया 942 00:41:25,930 --> 00:41:30,400 वहाँ आयत - सम्मेलन से बाहर है कि बदल जाता है, तो अपने रैम की शीर्ष पर, 943 00:41:30,400 --> 00:41:33,170 बात करते हैं, आम तौर पर है क्या एक पाठ क्षेत्र कहा जाता है. 944 00:41:33,170 --> 00:41:35,910 उन zeroes और लोगों को संकलित किया है कि आप कर रहे हैं. 945 00:41:35,910 --> 00:41:39,040 तो जब हम हुड के नीचे a.out क्या है पर देखा है, 946 00:41:39,040 --> 00:41:40,360 zeroes और लोगों - 947 00:41:40,360 --> 00:41:44,000 जब आप एक प्रोग्राम चलाते हैं, उन zeroes और लोगों को अपनी मेहनत से लोड कर रहे हैं 948 00:41:44,000 --> 00:41:46,290 रैम बुलाया कुछ में ड्राइव. 949 00:41:46,290 --> 00:41:48,950 और रैम में वे शीर्ष पर डाल रहे हैं. 950 00:41:48,950 --> 00:41:50,330 अब इस बीच, आप अन्य बातें हैं. 951 00:41:50,330 --> 00:41:53,060 प्रारंभिकीकरण डेटा, uninitialized डेटा. 952 00:41:53,060 --> 00:41:56,440 स्मृति के उन दो swaths वैश्विक चर का उल्लेख है, जो 953 00:41:56,440 --> 00:41:57,530 आप अक्सर प्रयोग नहीं करते. 954 00:41:57,530 --> 00:42:00,630 लेकिन कभी - कभी यदि आप करते हैं, वे वहाँ ऊपर अंत के रूप में अच्छी तरह से. 955 00:42:00,630 --> 00:42:01,620 तो फिर वहाँ कुछ अन्य सामान है. 956 00:42:01,620 --> 00:42:04,130 पर्यावरण चर, जो हम पर ज्यादा समय खर्च नहीं होगा. 957 00:42:04,130 --> 00:42:06,120 लेकिन तब दो महत्वपूर्ण बातें है कि इस भर में वापस आ जाएगा 958 00:42:06,120 --> 00:42:08,130 सेमेस्टर ढेर, और ढेर. 959 00:42:08,130 --> 00:42:12,280 >> तो आपके कंप्यूटर की मेमोरी की सबसे सुरक्षित है जब के लिए एक कार्यक्रम चल रहा है 960 00:42:12,280 --> 00:42:14,880 कुछ ढेर कहा जाता है और कुछ ढेर बुलाया. 961 00:42:14,880 --> 00:42:16,940 और हम आज ढेर के बारे में बात करने नहीं जा रहे हैं, कर रहे हैं, लेकिन हम करेंगे 962 00:42:16,940 --> 00:42:18,180 ढेर के बारे में बात करते हैं. 963 00:42:18,180 --> 00:42:22,910 और ढेर डायनिंग हॉल की तरह के दृश्य को आच्छादित करने के लिए है 964 00:42:22,910 --> 00:42:26,120 माथर हाउस में भोजन ट्रे, या जहाँ भी तुम होना होता है, जहां 965 00:42:26,120 --> 00:42:27,810 डायनिंग हॉल स्टाफ हर दिन उन्हें साफ. 966 00:42:27,810 --> 00:42:30,180 वे उन्हें ऊपर मंजिल से ऊपर हो चुकी है. 967 00:42:30,180 --> 00:42:33,800 और स्मृति में इसी तरह, वहाँ एक पर कुछ डाल के इस विचार 968 00:42:33,800 --> 00:42:36,740 ढेर, एक ढेर पर कुछ डाल, एक ढेर पर कुछ डाल. 969 00:42:36,740 --> 00:42:38,000 और क्या हम इस से क्या मतलब है? 970 00:42:38,000 --> 00:42:41,430 ठीक है, हम सिर्फ इस तस्वीर के निचले आधे पर ज़ूम में, अपने कंप्यूटर 971 00:42:41,430 --> 00:42:43,990 राम, के लिए निम्नलिखित का प्रस्ताव. 972 00:42:43,990 --> 00:42:48,300 यह पता चला है कि जब आप a.out तरह एक कार्यक्रम चलाने या नमस्ते जो कुछ भी है, 973 00:42:48,300 --> 00:42:49,920 कार्यक्रम है कि आप लिखा है, 974 00:42:49,920 --> 00:42:53,030 फिर, उन zeroes और लोगों को अपनी हार्ड ड्राइव से लोड कर रहे हैं - जो है, 975 00:42:53,030 --> 00:42:56,190 लंबी अवधि के भंडारण वहाँ रहता है, यहां तक ​​कि जब आप प्लग खींच - 976 00:42:56,190 --> 00:42:57,220 राम में भरा हुआ है. 977 00:42:57,220 --> 00:42:59,020 रैम हार्ड ड्राइव की तुलना में तेजी है. 978 00:42:59,020 --> 00:43:00,700 यह हार्ड ड्राइव की तुलना में छोटे है. 979 00:43:00,700 --> 00:43:03,490 लेकिन यह है कि जहां कार्यक्रम रहते हैं, जबकि आप उन्हें चला रहे हैं. 980 00:43:03,490 --> 00:43:06,380 >> तो आप डबल एक मैक या पीसी पर एक कार्यक्रम क्लिक से भरी हुई है 981 00:43:06,380 --> 00:43:07,750 रैम में हार्ड ड्राइव. 982 00:43:07,750 --> 00:43:11,760 जैसे ही यह रैम में भरी हुई है, zeroes और लोगों को जिस तरह से शीर्ष पर जाओ, 983 00:43:11,760 --> 00:43:13,130 तथाकथित पाठ खंड. 984 00:43:13,130 --> 00:43:17,040 लेकिन तब के रूप में जल्द ही के रूप में अपने कार्यक्रम वास्तव में शुरू से चल रहा है, मुख्य 985 00:43:17,040 --> 00:43:18,140 समारोह में कहा जाता है. 986 00:43:18,140 --> 00:43:21,070 और मुख्य, जैसा कि हमने देखा है, अक्सर स्थानीय चर है. 987 00:43:21,070 --> 00:43:24,560 और यह ints और तार और घर का काम और की तरह है. 988 00:43:24,560 --> 00:43:28,300 तो अपने कार्यक्रम लिखा है कि आप या प्रोग्राम है कि आप अगर 989 00:43:28,300 --> 00:43:33,680 डबल क्लिक किया मुख्य के अंदर कुछ चर का इस्तेमाल किया है, वे पर अंत में 990 00:43:33,680 --> 00:43:37,020 स्मृति के ढेर के नीचे है, तो बात करो. 991 00:43:37,020 --> 00:43:39,160 अब अधिक concretely, यह वास्तव में क्या मतलब है? 992 00:43:39,160 --> 00:43:44,080 यह सिर्फ मतलब है कि अगर हम चीजों को संख्या जा रहे थे - 993 00:43:44,080 --> 00:43:49,380 अगर हम अपने कंप्यूटर में राम के बाइट्स की संख्या के लिए जा रहे थे, सूचना है कि 994 00:43:49,380 --> 00:43:51,650 इस बाइट संख्या शून्य हो सकता है. 995 00:43:51,650 --> 00:43:56,130 यह बाइट संख्या एक, दो, तीन, चार, पांच, छह, सब हो सकता है 996 00:43:56,130 --> 00:43:57,290 तरह से ऊपर की तरह - 997 00:43:57,290 --> 00:44:01,520 2 अरब सभी तरह से ऊपर शीर्ष पर होगा. 998 00:44:01,520 --> 00:44:05,960 तो दूसरे शब्दों में, जब हम बाइट्स के मामले में राम या स्मृति के बारे में बात करते हैं, 999 00:44:05,960 --> 00:44:09,680 बस का अर्थ है कि किसी का फैसला किया है जो प्रत्येक संख्या 1000 00:44:09,680 --> 00:44:11,110 स्मृति के उन हिस्सा. 1001 00:44:11,110 --> 00:44:16,950 >> तो जब आप एक int के लिए 32 बिट की जरूरत है, या आप एक चार के लिए 8 बिट, जहां की जरूरत है 1002 00:44:16,950 --> 00:44:18,320 वे स्मृति में अंत? 1003 00:44:18,320 --> 00:44:20,650 धारणात्मक ठीक है, वे सिर्फ इस की तह में खत्म 1004 00:44:20,650 --> 00:44:21,780 बात ढेर कहा जाता है. 1005 00:44:21,780 --> 00:44:25,670 लेकिन दिलचस्प है अब क्या है जब मुख्य समारोह कॉल. 1006 00:44:25,670 --> 00:44:28,830 एक बुलाया समारोह foo, सिर्फ एक मनमाना नाम मान लीजिए. 1007 00:44:28,830 --> 00:44:32,480 क्या होता है मुख्य है स्मृति के इस ढेर के नीचे है. 1008 00:44:32,480 --> 00:44:35,630 फू मुख्य के शीर्ष पर अब स्मृति में डाल दिया है. 1009 00:44:35,630 --> 00:44:40,020 तो है कि किसी भी स्थानीय चर foo ऊपर धारणात्मक की तरह खत्म हो गया है 1010 00:44:40,020 --> 00:44:40,770 मुख्य में उन. 1011 00:44:40,770 --> 00:44:46,920 यदि foo एक और बार बुलाया समारोह कॉल, उन चर यहीं खत्म. 1012 00:44:46,920 --> 00:44:49,790 अगर इस बार कुछ और है, यहाँ, यहाँ कहता है. 1013 00:44:49,790 --> 00:44:53,900 तो एक कार्यक्रम चलाने के बारे में दिलचस्प बात यह है कि जैसा कि आप कार्य कॉल, 1014 00:44:53,900 --> 00:44:57,720 और उन कार्यों के रूप में कार्य कहते हैं, और उन कार्यों के रूप में कार्य कॉल, 1015 00:44:57,720 --> 00:45:00,980 आप स्मृति में कार्य के इस ढेर का निर्माण. 1016 00:45:00,980 --> 00:45:06,740 और केवल एक समारोह रिटर्न एक बार आपको लगता है कि स्मृति वापस हो रही शुरू करते हैं. 1017 00:45:06,740 --> 00:45:11,190 तो एक आसान करने के लिए एक कंप्यूटर प्रोग्राम में स्मृति से बाहर चलाने के तरीके के लिए है 1018 00:45:11,190 --> 00:45:14,170 लिखने के कार्य करता है कि कभी नहीं लौटने. 1019 00:45:14,170 --> 00:45:16,650 >> तो उदाहरण के लिए, एक साथ प्रदर्शित करने के लिए के रूप में ज्यादा 1020 00:45:16,650 --> 00:45:18,460 जानबूझकर छोटी गाड़ी कार्यक्रम. 1021 00:45:18,460 --> 00:45:24,690 मुझे आगे जाना है और # , int मुख्य (शून्य) शामिल हैं. 1022 00:45:24,690 --> 00:45:31,270 और मैं क्या करने जा रहा हूँ, जबकि (1 2) है, जो शायद कभी नहीं होगा 1023 00:45:31,270 --> 00:45:33,370 हम पर बदल जाते हैं. 1024 00:45:33,370 --> 00:45:37,720 और अब मुझे आगे जाना है और printf. 1025 00:45:37,720 --> 00:45:39,950 असल में, कि कम नेत्रहीन दिलचस्प होने जा रहा है. 1026 00:45:39,950 --> 00:45:40,460 चलो यह करते हैं. 1027 00:45:40,460 --> 00:45:44,840 Int के लिए (i = 0, मैं> 0). 1028 00:45:44,840 --> 00:45:49,740 चलो यह गलती करते हैं, मैं + +. 1029 00:45:49,740 --> 00:45:51,150 और यहाँ printf नहीं करते हैं. 1030 00:45:51,150 --> 00:45:52,550 चलो अभ्यास मैं क्या उपदेश था. 1031 00:45:52,550 --> 00:45:54,090 चलो यहाँ एक विधि है. 1032 00:45:54,090 --> 00:46:00,860 शून्य, कोरस, और हम int मैं कहता हूँ. 1033 00:46:00,860 --> 00:46:02,295 और फिर मैं कहना है, printf जा रहा हूँ - 1034 00:46:04,871 --> 00:46:06,790 ओह, यह और अधिक दिलचस्प बनाने. 1035 00:46:06,790 --> 00:46:08,350 वास्तव में सब पर मुद्रित करने के लिए कुछ भी नहीं है. 1036 00:46:08,350 --> 00:46:10,530 हम सिर्फ यह करना है. 1037 00:46:10,530 --> 00:46:11,780 कोरस (i). 1038 00:46:16,630 --> 00:46:17,000 >> सही सभी. 1039 00:46:17,000 --> 00:46:20,040 तो इस छोटी गाड़ी है क्योंकि क्यों? 1040 00:46:20,040 --> 00:46:22,850 मैं यह कर रहा हूँ के रूप में मुझे जाना है क्योंकि इस कार्यक्रम वास्तव में कुछ भी नहीं है 1041 00:46:22,850 --> 00:46:23,420 ब्याज की. 1042 00:46:23,420 --> 00:46:24,670 लेकिन यह है कि लक्ष्य नहीं है. 1043 00:46:24,670 --> 00:46:30,440 लक्ष्य के लिए एक कार्यक्रम जिसका मुख्य समारोह में क्या करता है, जाहिरा तौर पर लिखने के लिए है? 1044 00:46:30,440 --> 00:46:31,370 ही बुलाओ. 1045 00:46:31,370 --> 00:46:32,600 और वास्तव में, हम नहीं पाश की जरूरत नहीं है. 1046 00:46:32,600 --> 00:46:36,070 चलो भी यह सिर्फ इतना को आसान बनाने में के रूप में कम करने के लिए वास्तव में की दृष्टि नहीं 1047 00:46:36,070 --> 00:46:37,310 मौलिक बग. 1048 00:46:37,310 --> 00:46:39,200 मुख्य कॉल करने के लिए कुछ कोरस गाना कोरस. 1049 00:46:39,200 --> 00:46:41,760 तो मैं बेवकूफ कुछ किया था, और मैं कोरस कॉल कोरस था क्योंकि मुझे लगा कि 1050 00:46:41,760 --> 00:46:43,550 किसी और को यह शायद लागू करने जा रहा था. 1051 00:46:43,550 --> 00:46:45,960 और अब इस संकलन के लिए अभी तक नहीं जा रहा है. 1052 00:46:45,960 --> 00:46:48,340 मैं क्या करने की जरूरत है? 1053 00:46:48,340 --> 00:46:49,700 मैं प्रोटोटाइप की जरूरत है, याद है,. 1054 00:46:49,700 --> 00:46:55,520 तो मैं यहाँ शून्य कोरस (int i) की जरूरत है,. 1055 00:46:55,520 --> 00:46:57,470 >> तो अब, अगर मैं यहाँ जाना - 1056 00:46:57,470 --> 00:46:59,030 वास्तव में, हम बड़ी विंडो का उपयोग. 1057 00:46:59,030 --> 00:47:01,670 चलो आगे जाने के लिए और कोरस. 1058 00:47:01,670 --> 00:47:06,000 चलो आगे जाने के लिए और कोरस. 1059 00:47:06,000 --> 00:47:08,302 अज्ञात घोषक मैं का प्रयोग करें. 1060 00:47:08,302 --> 00:47:09,860 ओह, यह बेवकूफी थी. 1061 00:47:09,860 --> 00:47:11,020 हम तर्क की जरूरत नहीं है. 1062 00:47:11,020 --> 00:47:13,680 हम सिर्फ यह करना है. 1063 00:47:13,680 --> 00:47:14,550 काश हम इस तरह से शुरू किया था. 1064 00:47:14,550 --> 00:47:16,160 यह एक बहुत आसान लिखने के लिए प्रोग्राम किया गया है. 1065 00:47:16,160 --> 00:47:20,100 तो वहाँ. 1066 00:47:20,100 --> 00:47:23,870 अब चलो मेरे टर्मिनल विंडो, फिर से चलाने बजना खत्म हो जाने के. 1067 00:47:23,870 --> 00:47:26,900 और यहाँ हम चले. 1068 00:47:26,900 --> 00:47:28,020 यह वास्तव में तेजी से किया गया था. 1069 00:47:28,020 --> 00:47:30,690 क्या वास्तव में सिर्फ हालांकि हुआ? 1070 00:47:30,690 --> 00:47:33,430 खैर, अब मैं प्रिंट लाइन जोड़ देंगे, तो हम देख सकते हैं. 1071 00:47:33,430 --> 00:47:41,330 तो मुझे printf का कहना है, हम कहते हैं, मैं यहाँ हूँ. 1072 00:47:41,330 --> 00:47:43,470 ठीक है, कोई चर, हम यह उस तरह छोड़ देंगे. 1073 00:47:43,470 --> 00:47:44,860 मुझे फिर से रन बनाने हैं. 1074 00:47:44,860 --> 00:47:47,940 मुझे कोरस फिर से चलाने के चलो. 1075 00:47:47,940 --> 00:47:51,235 और उस पर आते हैं. 1076 00:47:53,880 --> 00:47:55,130 चलते रहो. 1077 00:47:57,630 --> 00:47:59,750 एक अलग रूप में, क्यों यह दुर्घटनाग्रस्त हो गया है अभी तक नहीं? 1078 00:47:59,750 --> 00:48:02,050 विभाजन गलती सुपर फास्ट पहले हुआ था. 1079 00:48:02,050 --> 00:48:04,250 [अश्राव्य] 1080 00:48:04,250 --> 00:48:04,830 डेविड जे मालन: बिल्कुल सही. 1081 00:48:04,830 --> 00:48:06,350 तो यह करने के लिए प्रिंट करने में समय लगता है. 1082 00:48:06,350 --> 00:48:08,370 यह सिर्फ कंप्यूटर भाग पर अधिक काम लेता है. 1083 00:48:08,370 --> 00:48:09,550 और वहाँ है. 1084 00:48:09,550 --> 00:48:10,620 विभाजन गलती. 1085 00:48:10,620 --> 00:48:12,140 >> तो नोटिस बस कितनी तेजी से कार्यक्रमों को चलाने. 1086 00:48:12,140 --> 00:48:14,110 यदि आप कुछ भी नहीं, सुपर फास्ट मुद्रण कर रहे हैं. 1087 00:48:14,110 --> 00:48:18,100 लेकिन हम अभी भी इस विभाजन गलती मिला है क्योंकि क्या हो रहा था? 1088 00:48:18,100 --> 00:48:21,310 वैसे, अगर आप कैसे अपने कंप्यूटर की स्मृति से बाहर रखा है इस के बारे में सोचते हैं 1089 00:48:21,310 --> 00:48:22,890 मुख्य होना होता है. 1090 00:48:22,890 --> 00:48:23,800 लेकिन यहाँ - 1091 00:48:23,800 --> 00:48:28,670 चलो बस इस कोरस कहते हैं, और हम इस कोरस कॉल. 1092 00:48:28,670 --> 00:48:33,420 और अब अगर मैं मेरे सौंदर्यशास्त्र सही है, यह सिर्फ कोरस कहने जा रहा है, 1093 00:48:33,420 --> 00:48:38,060 कोरस, कोरस, कोरस, कोरस, कोरस, कोरस, विज्ञापन nauseum. 1094 00:48:38,060 --> 00:48:39,920 और अंत में, क्या होने जा रहा है? 1095 00:48:39,920 --> 00:48:46,690 यदि बड़ी तस्वीर सचमुच ऐसा है, क्या सिर्फ धारणात्मक होता है? 1096 00:48:46,690 --> 00:48:48,320 ढेर ढेर overruns. 1097 00:48:48,320 --> 00:48:52,400 या बुरा, आप सिर्फ पाठ्य खंड सहित सब कुछ है, जो है उग आया 1098 00:48:52,400 --> 00:48:54,530 zeroes और है कि लोगों को अपने कार्यक्रम का प्रतिनिधित्व करते हैं. 1099 00:48:54,530 --> 00:48:56,690 संक्षेप में, यह सिर्फ सुपर, सुपर बुरा है. 1100 00:48:56,690 --> 00:48:56,860 सही है? 1101 00:48:56,860 --> 00:48:58,620 अपने कार्यक्रम के नियंत्रण से बाहर spiraled है. 1102 00:48:58,620 --> 00:49:02,840 आप का उपयोग कर रहे हैं जिस तरह से और अधिक स्मृति की तुलना में आप एक बेवकूफ की वजह से सब करना 1103 00:49:02,840 --> 00:49:03,920 इस मामले में गलती की है,. 1104 00:49:03,920 --> 00:49:08,160 या इस मामले में, एक बहुत जान - बूझकर किया समारोह ही बुला. 1105 00:49:08,160 --> 00:49:09,210 अब यह सब बुरा नहीं है. 1106 00:49:09,210 --> 00:49:12,540 खुद को बुला कार्य वास्तव में महान शक्ति है 1107 00:49:12,540 --> 00:49:13,700 जब आप इसे सही ढंग से उपयोग करें. 1108 00:49:13,700 --> 00:49:15,650 मैं इसे सही ढंग से नहीं किया है. 1109 00:49:15,650 --> 00:49:16,940 >> तो यह सब बुरा नहीं है. 1110 00:49:16,940 --> 00:49:20,620 लेकिन तथ्य यह है कि मैं अपने आप को फोन वास्तव में कभी नहीं बंद एक मौलिक है 1111 00:49:20,620 --> 00:49:23,050 यहाँ इस कार्यक्रम की कमजोरी. 1112 00:49:23,050 --> 00:49:25,090 तो हम कहाँ इस सब के साथ जा रहे हैं? 1113 00:49:25,090 --> 00:49:26,230 ठीक है, वास्तव में क्या हो रहा है? 1114 00:49:26,230 --> 00:49:30,010 जब मैं वेतन वृद्धि समारोह कॉल की तरह, हम उन उदाहरणों में कर रहे थे, 1115 00:49:30,010 --> 00:49:33,290 मैं 1 कि मैं अंदर गुजरती हैं जैसे एक मूल्य है 1116 00:49:33,290 --> 00:49:35,820 मैं नंबर एक की एक प्रति में गुजरती हैं. 1117 00:49:35,820 --> 00:49:37,080 तो निम्न होता है. 1118 00:49:37,080 --> 00:49:40,390 तो चलो वेतन वृद्धि उदाहरण में जाने. 1119 00:49:40,390 --> 00:49:44,230 और यहाँ पर इस आदमी को सही. 1120 00:49:44,230 --> 00:49:46,800 तो यहाँ है कि वास्तव में क्या हो रहा है. 1121 00:49:46,800 --> 00:49:50,770 जब मैं वेतन वृद्धि कहा जाता है, और मैं एक्स में पारित pictorially क्या है 1122 00:49:50,770 --> 00:49:53,660 यहाँ पर जा रहा है - 1123 00:49:53,660 --> 00:50:00,240 अगर मैं 1 के मूल्य यहाँ संग्रहित है, और मैं वास्तव में वेतन वृद्धि कॉल, 1124 00:50:00,240 --> 00:50:02,680 अब कोरस कहा जाता है - 1125 00:50:02,680 --> 00:50:04,010 हाँ, कि मुझे फेंक रहा है यहाँ से. 1126 00:50:04,010 --> 00:50:06,750 तो चलो इस वेतन वृद्धि को कॉल. 1127 00:50:06,750 --> 00:50:09,420 और हम नहीं जानते कि क्या यह अगले समारोह होने जा रहा है. 1128 00:50:09,420 --> 00:50:14,270 तो वास्तव में क्या हो रहा है यहाँ मुख्य में कहीं है, मैं का एक हिस्सा है 1129 00:50:14,270 --> 00:50:16,670 याद है कि 1 संख्या भंडारण है. 1130 00:50:16,670 --> 00:50:19,730 जब मैं वेतन वृद्धि कहते हैं, मैं स्मृति का एक हिस्सा का उपयोग कर रहा हूँ, लेकिन अब मैं 1131 00:50:19,730 --> 00:50:20,840 1 की प्रतिलिपि है. 1132 00:50:20,840 --> 00:50:25,480 जब मुझे लगता है कि मूल्य वेतन वृद्धि, इस 2 हो जाता है - बुरी पर लिखा 1133 00:50:25,480 --> 00:50:26,420 यहाँ स्क्रीन. 1134 00:50:26,420 --> 00:50:30,550 लेकिन फिर, क्या वेतन वृद्धि लाभ के रूप में के रूप में जल्द ही होता है? 1135 00:50:30,550 --> 00:50:34,610 यह स्मृति सिर्फ ऑपरेटिंग सिस्टम को वापस सौंप दिया जाता है, जिसका अर्थ है सब 1136 00:50:34,610 --> 00:50:37,470 आप कुछ भी नहीं है उपयोगी किया है. 1137 00:50:37,470 --> 00:50:43,460 एक है कि मूल रूप से मुख्य में समाहित किया गया था अभी भी वास्तव में वहाँ है. 1138 00:50:43,460 --> 00:50:44,650 >> तो हम कहाँ इस के साथ जा रहे हैं? 1139 00:50:44,650 --> 00:50:49,400 खैर, यह पता चला है कि स्मृति में आप इस पीठ के अनुक्रम वापस करने के लिए है 1140 00:50:49,400 --> 00:50:50,940 बाइट्स कि आप सामान अंदर डाल सकते हैं 1141 00:50:50,940 --> 00:50:53,760 और यह पता चला है कि हम पहले से ही कुछ है कि डाल शामिल देखा है 1142 00:50:53,760 --> 00:50:55,100 चीजें वापस वापस वापस वापस करने के लिए. 1143 00:50:55,100 --> 00:51:00,170 एक स्ट्रिंग, एक सप्ताह और अब दो सप्ताह के आधार पर क्या है? 1144 00:51:00,170 --> 00:51:01,840 तो यह सिर्फ अक्षरों का एक संग्रह है. 1145 00:51:01,840 --> 00:51:05,290 तो यह पता चला, बस के रूप में आप स्मृति में नंबर डाल कर सकते हैं, इसी तरह आप कर सकते हैं 1146 00:51:05,290 --> 00:51:06,900 स्मृति में वर्ण डाल दिया. 1147 00:51:06,900 --> 00:51:09,810 और एक बार हम स्मृति में डाल वर्ण वापस शुरू करने के लिए पर वापस 1148 00:51:09,810 --> 00:51:12,800 वापस, यह पता चला है कि पाश के लिए एक तरह से चीजों की सरलतम का उपयोग कर या 1149 00:51:12,800 --> 00:51:14,510 एक जबकि पाश, हम पुनरावृति कर सकते हैं - 1150 00:51:14,510 --> 00:51:17,130 एक स्ट्रिंग में वर्णों पर बाएं से दाएं - 1151 00:51:17,130 --> 00:51:20,720 और अलग अलग अक्षरों में उन्हें पूरी तरह मालिश शुरू. 1152 00:51:20,720 --> 00:51:25,550 एक बन सकता है बी बी, सी हो तो यह है कि अंत में, हम एक ले जा सकते हैं 1153 00:51:25,550 --> 00:51:28,830 अंग्रेजी वाक्य है कि वास्तव में समझ में आता है और उन में से प्रत्येक परिवर्तित 1154 00:51:28,830 --> 00:51:32,440 पत्र हमारे कंप्यूटर की मेमोरी के माध्यम से चलने से एक समय में एक के लिए छोड़ दिया 1155 00:51:32,440 --> 00:51:34,300 वास्तव में एन्क्रिप्ट करने के लिए सही है. 1156 00:51:34,300 --> 00:51:36,590 >> तो चलो हमारे यहाँ पाँच मिनट का ब्रेक लेते हैं, और जब हम वापस आते हैं, हम करेंगे 1157 00:51:36,590 --> 00:51:39,060 जानकारी scrambling की इस प्रक्रिया शुरू करते हैं. 1158 00:51:41,640 --> 00:51:43,180 >> सही सभी. 1159 00:51:43,180 --> 00:51:48,440 तो इससे पहले कि हम कुछ क्रिप्टो में गोता करने के लिए और इन बातों arrays कहा जाता है, मुझे 1160 00:51:48,440 --> 00:51:51,610 किसी भी प्रश्न के लिए ठहराव, क्योंकि मुझे लगता है कि मैं वास्तव में इस तरह के muddled कुछ 1161 00:51:51,610 --> 00:51:52,230 उन विषयों. 1162 00:51:52,230 --> 00:51:53,940 तो चलो को ठीक अब अगर हम कर सकते हैं. 1163 00:51:53,940 --> 00:51:56,480 तो हम बस वापसी मान के बारे में बात की थी. 1164 00:51:56,480 --> 00:51:58,630 हम तर्क के बारे में बात की थी. 1165 00:51:58,630 --> 00:52:02,330 और हम इस धारणा के बारे में बात की थी, जो हम वापस करने के लिए सप्ताह में आया हूँ 1166 00:52:02,330 --> 00:52:07,140 इन खड़ी की एक पूरी गुच्छा के रूप में स्मृति को देखने आते हैं, 1167 00:52:07,140 --> 00:52:08,540 ट्रे, तो बात करो. 1168 00:52:08,540 --> 00:52:13,460 पर ऊपर नीचे से, जैसे कि प्रत्येक ट्रे है कि ढेर पर डाल दिया जाता है का प्रतिनिधित्व करता है 1169 00:52:13,460 --> 00:52:15,160 एक समारोह में कहा कि वर्तमान में बुलाया जा रहा है. 1170 00:52:17,970 --> 00:52:20,300 कोई सवाल? 1171 00:52:20,300 --> 00:52:22,890 तो कैसे के बारे में मुझे एक सवाल पूछने की कोशिश. 1172 00:52:22,890 --> 00:52:25,520 मुझे लगता है कि को खराब कर रखने के लिए, लेकिन अब it's - you've सभी लड़के के चेहरे को देखा. 1173 00:52:25,520 --> 00:52:27,020 तो हम वापस आ हूँ. 1174 00:52:27,020 --> 00:52:29,700 >> तो मुझे यहाँ एक सवाल पूछना. 1175 00:52:29,700 --> 00:52:34,810 मुझे यह क्या अपने पहले के क्यू एंड ए के कुछ पहले था यह वापस सरल 1176 00:52:34,810 --> 00:52:41,730 और तथ्य यह है कि वेतन वृद्धि खुला कोष्ठक है, int संख्या, बंद 1177 00:52:41,730 --> 00:52:42,260 कोष्टक. 1178 00:52:42,260 --> 00:52:46,370 Int संख्या का क्या दर्शाता है? 1179 00:52:46,370 --> 00:52:47,250 [अश्राव्य] 1180 00:52:47,250 --> 00:52:47,870 डेविड जे मालन तर्क:. 1181 00:52:47,870 --> 00:52:50,732 ठीक है, लेकिन एक तर्क क्या है? 1182 00:52:50,732 --> 00:52:51,620 [अश्राव्य] 1183 00:52:51,620 --> 00:52:52,500 डेविड जे मालन: क्षमा करें, क्या है? 1184 00:52:52,500 --> 00:52:53,150 3 अध्यक्ष: कुछ तुम अंदर गुजरती हैं 1185 00:52:53,150 --> 00:52:53,570 डेविड जे मालन: ठीक है. 1186 00:52:53,570 --> 00:52:54,780 इतना कुछ है कि आप अंदर गुजरती हैं 1187 00:52:54,780 --> 00:52:56,560 और अधिक आम तौर पर, यह सिर्फ इनपुट है. 1188 00:52:56,560 --> 00:52:59,860 यदि आप लिख रहे हैं एक और जीवन में कि समारोह का उद्देश्य समारोह करना है 1189 00:52:59,860 --> 00:53:03,290 एक छोटे से अलग हर बार जब आप इसे उपयोग कुछ है, तो के लिए एकमात्र तरीका 1190 00:53:03,290 --> 00:53:07,710 कि वास्तव में ऐसा करने के लिए यह इनपुट के साथ प्रदान होना प्रतीत होता है इसलिए यह है कि 1191 00:53:07,710 --> 00:53:10,180 कि इनपुट के साथ कुछ अलग हर बार कर सकते हैं. 1192 00:53:10,180 --> 00:53:13,590 >> तो आपको दो बातें जब एक समारोह में जानकारी लेता निर्दिष्ट करने की जरूरत है. 1193 00:53:13,590 --> 00:53:17,240 आप नाम है कि आप कि इनपुट देना चाहता हूँ, विशुद्ध रूप से निर्दिष्ट करने की आवश्यकता है 1194 00:53:17,240 --> 00:53:20,790 अपनी सुविधा इतनी है कि आप समारोह में यह उल्लेख कर सकते हैं आपको लगता है कि 1195 00:53:20,790 --> 00:53:23,610 अपने आप लिख रहे हैं, के रूप में मैं 32 लाइन में यहाँ था. 1196 00:53:23,610 --> 00:53:27,840 लेकिन आप भी अपने प्रकार निर्दिष्ट क्योंकि सी एक प्रोग्रामिंग भाषा है की जरूरत है 1197 00:53:27,840 --> 00:53:28,840 है कि बस की आवश्यकता 1198 00:53:28,840 --> 00:53:31,810 है कि यदि आप एक चर चाहते हैं, तो आप कंप्यूटर को बताना है क्या 1199 00:53:31,810 --> 00:53:32,790 डेटा प्रकार है, 1200 00:53:32,790 --> 00:53:35,540 बड़े हिस्से में इतना है कि यह कितने बिट्स जानता है 1201 00:53:35,540 --> 00:53:37,230 उस चर के लिए आवंटित. 1202 00:53:37,230 --> 00:53:38,600 क्योंकि यह छह हो सकता है - 1203 00:53:38,600 --> 00:53:39,990 खेद है, यह छह नहीं होगा. 1204 00:53:39,990 --> 00:53:41,050 यह 16 हो सकता है. 1205 00:53:41,050 --> 00:53:41,630 यह 8 हो सकता है. 1206 00:53:41,630 --> 00:53:44,410 यह 32, 64 भी कर सकते हैं. 1207 00:53:44,410 --> 00:53:45,820 लेकिन कंप्यूटर पता करने की जरूरत है. 1208 00:53:45,820 --> 00:53:49,110 अब बाएं हाथ की ओर int इसके विपरीत, का प्रतिनिधित्व करता है? 1209 00:53:52,825 --> 00:53:53,780 [अश्राव्य] 1210 00:53:53,780 --> 00:53:54,570 डेविड जे मालन: वह क्या है? 1211 00:53:54,570 --> 00:53:55,390 [अश्राव्य] 1212 00:53:55,390 --> 00:53:57,920 समारोह के प्रकार और अधिक विशेष रूप से, डेविड जे मालन 1213 00:53:57,920 --> 00:53:59,755 अपने उत्पादन का प्रकार. 1214 00:53:59,755 --> 00:54:00,220 सही है. 1215 00:54:00,220 --> 00:54:04,220 कोष्ठक में बात जबकि अपने इनपुट का प्रतिनिधित्व करता है, यदि कोई हो, 1216 00:54:04,220 --> 00:54:06,640 बाईं करने के लिए बात अपने उत्पादन का प्रतिनिधित्व करता है. 1217 00:54:06,640 --> 00:54:10,560 और इस मामले में, वेतन वृद्धि जाहिरा तौर पर एक int देता है. 1218 00:54:10,560 --> 00:54:14,590 और इसलिए इस समारोह की वापसी प्रकार int है. 1219 00:54:14,590 --> 00:54:16,090 >> इसका क्या मतलब है वापस करने के लिए? 1220 00:54:16,090 --> 00:54:19,810 सचमुच, आप कीवर्ड वापसी का उपयोग करें. 1221 00:54:19,810 --> 00:54:24,640 और फिर अगर आप कीवर्ड की सही करने के लिए लौट रहे हैं क्या एक है 1222 00:54:24,640 --> 00:54:28,340 पूर्णांक है, तो है कि वास्तव में हम क्या वादा किया है के साथ संगत है. 1223 00:54:28,340 --> 00:54:31,110 आप कुछ इस तरह से नहीं कर सकता है - 1224 00:54:31,110 --> 00:54:32,280 नमस्ते, दुनिया - 1225 00:54:32,280 --> 00:54:33,500 क्योंकि कि एक स्ट्रिंग है. 1226 00:54:33,500 --> 00:54:35,440 जाहिर है यह एक पूर्णांक नहीं है. 1227 00:54:35,440 --> 00:54:40,450 तो संक्षेप में, बोझ हम पर सच है, प्रोग्रामर, के रूप में विशिष्ट होने के लिए 1228 00:54:40,450 --> 00:54:44,730 के लिए हम क्या कर रहे हैं और लौटने के लिए तो वास्तव में यह लौटने के बारे में जाना. 1229 00:54:44,730 --> 00:54:49,030 और फिर एक बालक और अधिक संदर्भ स्पष्ट करने के लिए - 1230 00:54:49,030 --> 00:54:50,080 वहाँ वह फिर से है. 1231 00:54:50,080 --> 00:54:51,060 संदर्भ - 1232 00:54:51,060 --> 00:54:52,830 बड़े आश्चर्य की बात है तो बस एक पल में आ रहा है. 1233 00:54:52,830 --> 00:54:57,720 यहाँ संदर्भ अब यह है कि आपके कंप्यूटर की मेमोरी है, फिर, एक 1234 00:54:57,720 --> 00:54:59,070 गीगाबाइट, दो गीगाबाइट, जो भी हो. 1235 00:54:59,070 --> 00:54:59,630 शायद यह ज्यादा है. 1236 00:54:59,630 --> 00:55:00,540 शायद यह कम है. 1237 00:55:00,540 --> 00:55:03,750 लेकिन कंप्यूटर इसे विभिन्न वर्गों होने के रूप में देखता है. 1238 00:55:03,750 --> 00:55:04,860 कुछ वहाँ नीचे चला जाता है. 1239 00:55:04,860 --> 00:55:06,020 कुछ और ऊपर चला जाता है. 1240 00:55:06,020 --> 00:55:07,540 विभिन्न सामान बीच में चला जाता है. 1241 00:55:07,540 --> 00:55:09,300 और आज, हम सिर्फ इस कहानी कह रही शुरू करते हैं. 1242 00:55:09,300 --> 00:55:11,130 >> लेकिन हम इस पर समय के लिए वापस आया हूँ. 1243 00:55:11,130 --> 00:55:15,000 अभी के लिए, स्मृति की ही टुकड़ा हम वास्तव में के बारे में परवाह पाठ खंड है 1244 00:55:15,000 --> 00:55:17,160 क्योंकि है कि सिर्फ zeroes और लोगों का प्रतिनिधित्व करता है 1245 00:55:17,160 --> 00:55:18,460 बजना कि outputted है. 1246 00:55:18,460 --> 00:55:21,570 तो जब आप एक आदेश a.out तरह कीबोर्ड पर चलाते हैं, या आप डबल 1247 00:55:21,570 --> 00:55:25,350 मैक ओएस या Windows पर एक आइकन पर क्लिक करें, अपने कार्यक्रम अपने मेहनत से भरी हुई है 1248 00:55:25,350 --> 00:55:26,930 रैम में ड्राइव. 1249 00:55:26,930 --> 00:55:30,850 और यह आपके कंप्यूटर की रैम के शीर्ष पर plopped है, इतनी बात करने के लिए. 1250 00:55:30,850 --> 00:55:35,470 अब इस बीच, के रूप में अपने कार्यक्रम चल रहा है और शुरू होता है में मुख्य बुलाया जाता है 1251 00:55:35,470 --> 00:55:39,240 कार्यक्रम आप ने लिखा है या कार्यक्रम माइक्रोसॉफ्ट या एप्पल ने लिखा है, इसके किसी 1252 00:55:39,240 --> 00:55:42,930 स्थानीय चर आपके कंप्यूटर की मेमोरी के नीचे नीचे वहाँ अंत. 1253 00:55:42,930 --> 00:55:46,490 लेकिन अगर एक और समारोह के मुख्य कहता है कि खुद चर या है 1254 00:55:46,490 --> 00:55:48,340 तर्क है, वे यह ऊपर खत्म होता है. 1255 00:55:48,340 --> 00:55:50,670 और अगर है कि समारोह के कुछ कहता है, वे यह ऊपर समाप्त करने के लिए, 1256 00:55:50,670 --> 00:55:51,840 इसके ऊपर, यह ऊपर. 1257 00:55:51,840 --> 00:55:56,100 और केवल एक बार एक समारोह में ट्रे के ढेर है, तो क्रियान्वित किया जाता है 1258 00:55:56,100 --> 00:55:58,320 बात करने के लिए शुरू करने के लिए कम और कम हो. 1259 00:55:58,320 --> 00:56:03,370 और ये है क्या तो, संक्षेप में, बताते हैं कि क्यों है, जब आप घन कॉल - 1260 00:56:03,370 --> 00:56:04,660 या आप वेतन वृद्धि कहते हैं - 1261 00:56:04,660 --> 00:56:06,490 आप मूल्य की एक प्रति में गुजर रहे हैं. 1262 00:56:06,490 --> 00:56:09,840 और कि pictorially मतलब क्या है कि आप सचमुच लिख रहे हैं 1263 00:56:09,840 --> 00:56:14,540 स्मृति के किसी अन्य भाग में नंबर 1, बदल रहा है कि 1 के मामले में 2, 1264 00:56:14,540 --> 00:56:15,360 वेतन वृद्धि - 1265 00:56:15,360 --> 00:56:17,450 या एक 8, घन के मामले में - 1266 00:56:17,450 --> 00:56:21,450 और फिर उस स्मृति वेतन वृद्धि या क्यूब के रूप में दूर के रूप में जल्द ही फेंक 1267 00:56:21,450 --> 00:56:23,410 समारोह देता है. 1268 00:56:23,410 --> 00:56:24,267 >> प्रश्न. 1269 00:56:24,267 --> 00:56:25,517 [अश्राव्य] 1270 00:56:28,090 --> 00:56:29,970 डेविड जे मालन: कहाँ - वैश्विक चर में संग्रहीत हैं क्या 1271 00:56:29,970 --> 00:56:32,960 वर्तमान initialized डेटा या uninitialized डेटा कहा जाता है. 1272 00:56:32,960 --> 00:56:35,900 अंतर किया जा रहा है, यदि आप एक वैश्विक चर है, और आप इसे असाइन 1273 00:56:35,900 --> 00:56:39,530 तुरंत एक मूल्य के बराबर के चिह्न के साथ, यह शीर्ष पर समाप्त होता है वहाँ. 1274 00:56:39,530 --> 00:56:43,390 और अगर तुम सिर्फ कोई मूल्य नहीं के साथ int x सेमीकोलन का कहना है, यह थोड़ा समाप्त होता है 1275 00:56:43,390 --> 00:56:46,670 सम्मेलन द्वारा बस रैम में कम है. 1276 00:56:46,670 --> 00:56:49,308 अन्य प्रश्न. 1277 00:56:49,308 --> 00:56:49,750 सही सभी. 1278 00:56:49,750 --> 00:56:53,040 >> तो इस तस्वीर वापस आने के रूप में हम हम क्या कर सकते हैं के साथ और अधिक शक्तिशाली हो जाएगा 1279 00:56:53,040 --> 00:56:53,830 कंप्यूटर के साथ. 1280 00:56:53,830 --> 00:56:58,790 लेकिन अब के लिए, क्रिप्टोग्राफी, की एक विशिष्ट प्रकार के लिए एक संक्षिप्त परिचय 1281 00:56:58,790 --> 00:57:01,910 क्रिप्टोग्राफी कि सभी दुनिया की समस्याओं को हल नहीं करता है लेकिन को हल करने 1282 00:57:01,910 --> 00:57:02,480 उनमें से कुछ. 1283 00:57:02,480 --> 00:57:06,090 इस मामले में, हम कुछ गुप्त कुंजी क्रिप्टोग्राफी कहा जाता है. 1284 00:57:06,090 --> 00:57:10,430 और गुप्त कुंजी क्रिप्टोग्राफी, जैसा कि नाम से पता चलता है, अपनी सुरक्षा प्राप्त 1285 00:57:10,430 --> 00:57:11,330 से एक रहस्य. 1286 00:57:11,330 --> 00:57:14,720 तो उदाहरण के लिए, यदि आप ग्रेड स्कूल में वापस आ गए हैं और आप एक गुजर रहे हैं 1287 00:57:14,720 --> 00:57:18,040 छोटे से रहस्य प्यार लड़का है या लड़की आप पर कुचल रहे हैं पत्र - आप अगर 1288 00:57:18,040 --> 00:57:20,820 दर्शकों के माध्यम से पारित करना चाहता था, तो आप शायद नहीं लिखना होगा 1289 00:57:20,820 --> 00:57:24,120 बल्कि आप, अंग्रेजी में इस तरह के एक नोट या जो कुछ भी अपनी मूल भाषा है 1290 00:57:24,120 --> 00:57:25,800 यह एन्क्रिप्ट हो सकता है. 1291 00:57:25,800 --> 00:57:27,820 या आप सिर्फ उन्हें इन दिनों एक पाठ संदेश भेज सकते हैं. 1292 00:57:27,820 --> 00:57:30,310 लेकिन आप वास्तव में उन्हें कक्षा भर सकता है और एक नोट गुजरती हैं. 1293 00:57:30,310 --> 00:57:33,820 और यह करने के लिए सुरक्षित रूप से इस तरह है, कि अपने मित्रों और शिक्षक 1294 00:57:33,820 --> 00:57:36,820 पता है तुम क्या लिख ​​रहे हैं, तो आप एक काफी सरल के साथ आ सकता है 1295 00:57:36,820 --> 00:57:37,800 एल्गोरिथ्म - 1296 00:57:37,800 --> 00:57:39,290 युवा हालांकि आप हो सकता है - 1297 00:57:39,290 --> 00:57:40,780 सिर्फ शब्दों हाथापाई. 1298 00:57:40,780 --> 00:57:44,390 तो एक लेखन के बजाय, आप बी बी के बजाय लिख सकता है, आप लिख सकते हैं 1299 00:57:44,390 --> 00:57:46,670 के बजाय सी. सी, डी आप लिखते हैं, और हो सकता है बहुत आगे है. 1300 00:57:46,670 --> 00:57:50,020 या आप अक्षरों का एक और अधिक परिष्कृत अनुवाद के साथ आ सकता है 1301 00:57:50,020 --> 00:57:51,300 विभिन्न पत्र. 1302 00:57:51,300 --> 00:57:55,440 लेकिन पकड़ लड़का है या लड़की है जिसे आप इस नोट भेज रहे हैं के लिए करने की जरूरत है 1303 00:57:55,440 --> 00:57:56,850 कुछ पता है. 1304 00:57:56,850 --> 00:57:59,620 कौन सा क्या है, जाहिर है? 1305 00:57:59,620 --> 00:58:01,400 की तरह, अपने राज़ क्या है. 1306 00:58:01,400 --> 00:58:04,620 की तरह, के रूप में और बी एस और Cs और डी एस के बीच कि मानचित्रण क्या है? 1307 00:58:04,620 --> 00:58:08,780 यह सिर्फ एक जोड़ने पत्रों में से प्रत्येक से जाना, तो बात है, 1308 00:58:08,780 --> 00:58:09,730 बी, बी, सी के लिए एक? 1309 00:58:09,730 --> 00:58:11,350 यह है कि अधिक से अधिक जटिल है? 1310 00:58:11,350 --> 00:58:16,450 तो आप और अपने क्रश के इस गुप्त जानकारी की जरूरत है. 1311 00:58:16,450 --> 00:58:18,170 लेकिन यहाँ पकड़-22 की तरह है. 1312 00:58:18,170 --> 00:58:20,760 यदि यह बहुत पहली बार है आप के माध्यम से इस प्रेम पत्र भेज रहे हैं 1313 00:58:20,760 --> 00:58:25,590 वर्ग, कैसे है कि लड़का है या लड़की भी रहस्य क्या है पता करने के लिए जा रहा है? 1314 00:58:25,590 --> 00:58:28,450 तो गुप्त कुंजी क्रिप्टो दुनिया के सभी समस्याओं का समाधान नहीं है. 1315 00:58:28,450 --> 00:58:30,490 और वहाँ वास्तव में एक रिश्ता है कि हम वापस करने के लिए की ओर आया हूँ 1316 00:58:30,490 --> 00:58:31,370 सेमेस्टर के अंत. 1317 00:58:31,370 --> 00:58:35,970 >> इसी तरह है, शायद हम में से कोई भी कभी एक भेजा - 1318 00:58:35,970 --> 00:58:39,453 इसी तरह, हम में से ज्यादातर पता नहीं है पर नहीं है, किसी को है कि उदाहरण के लिए काम करता है, 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 और फिर भी, हम में से कई शायद Amazon.com पर सामान खरीदा. 1321 00:58:43,130 --> 00:58:45,670 और हम मानते हैं सिखाया गया है कि इन ई - कॉमर्स 1322 00:58:45,670 --> 00:58:47,060 लेनदेन सुरक्षित हैं. 1323 00:58:47,060 --> 00:58:47,210 सही है? 1324 00:58:47,210 --> 00:58:49,310 यूआरएल शायद https कहते हैं. 1325 00:58:49,310 --> 00:58:51,590 वहाँ शायद कहीं एक मूर्खतापूर्ण थोड़ा पैडलॉक आइकन है. 1326 00:58:51,590 --> 00:58:54,680 क्रिप्टोग्राफी अपने क्रेडिट कार्ड की जानकारी हासिल करने के कुछ प्रकार है 1327 00:58:54,680 --> 00:58:56,980 आप और Amazon.com के बीच. 1328 00:58:56,980 --> 00:59:00,410 और फिर भी, अगर क्रिप्टोग्राफी कुछ रहस्य जानने है, और अभी तक शामिल मैं ऐसा नहीं कर 1329 00:59:00,410 --> 00:59:03,330 अमेज़न पर किसी को पता है, और मैं निश्चित रूप से किसी भी तरह का इंतजाम कर लिया है नहीं 1330 00:59:03,330 --> 00:59:07,350 अमेज़न पर किसी के साथ रहस्य, कैसे अपने कंप्यूटर या अपने ब्राउज़र कर रही है? 1331 00:59:07,350 --> 00:59:10,100 खैर, बाहर मुड़ता क्रिप्टोग्राफी के अन्य प्रकार के पूरी तरह हल 1332 00:59:10,100 --> 00:59:10,740 कि समस्या है. 1333 00:59:10,740 --> 00:59:13,610 लेकिन आज के लिए, हम एक सरल, जहाँ आप की व्यवस्था कर सकते हैं पर ध्यान केंद्रित करेंगे 1334 00:59:13,610 --> 00:59:18,480 कुछ रहस्य पता प्लस 1 या के रूप में और बी एस के बीच कुछ मैपिंग की तरह, अग्रिम. 1335 00:59:18,480 --> 00:59:20,710 >> और क्रिप्टोग्राफी की प्रक्रिया आम तौर पर शामिल है. 1336 00:59:20,710 --> 00:59:23,550 आप कुछ सादे पाठ, बाएँ पर यहाँ दर्शाया है. 1337 00:59:23,550 --> 00:59:26,260 आप यह एल्गोरिथ्म या प्रक्रिया के कुछ प्रकार के माध्यम से चलाने 1338 00:59:26,260 --> 00:59:27,670 यह encrypting के लिए. 1339 00:59:27,670 --> 00:59:31,390 हो सकता है कि सिर्फ एक बी हो जाता है, बी, सी हो जाता है और फिर आप के साथ अंत 1340 00:59:31,390 --> 00:59:32,260 पाठ बीजलेख. 1341 00:59:32,260 --> 00:59:36,450 इस बीच, एक बार अपने क्रश गुप्त नोट प्राप्त करता है, वह या वह तो 1342 00:59:36,450 --> 00:59:39,950 यह आम तौर पर कि एल्गोरिथ्म इतनी के रूप में पीछे पाने के decrypt 1343 00:59:39,950 --> 00:59:41,640 सादे पाठ वापस. 1344 00:59:41,640 --> 00:59:43,860 अब वहाँ इस के भौतिक अवतार हैं. 1345 00:59:43,860 --> 00:59:46,720 उदाहरण के लिए, यह एक छोटे से रहस्य कूटवाचक अंगूठी है. 1346 00:59:46,720 --> 00:59:50,060 और यह समझ में आता है कि वहाँ दो नंबर डायल करता है यहाँ है में एक अंगूठी है. 1347 00:59:50,060 --> 00:59:53,630 इस बात के बाहर परिधि पर, वहाँ Z के माध्यम से एक पत्र है, 1348 00:59:53,630 --> 00:59:55,110 हालांकि वे यादृच्छिक क्रम में कर रहे हैं. 1349 00:59:55,110 --> 00:59:58,410 और अंदर पर, वहाँ वास्तव में ऐसी है कि कुछ इस के साथ संख्या 1350 00:59:58,410 --> 01:00:02,940 अंगूठी, आप की तरह बाहर है, लेकिन अंदर नहीं बारी क्रम में अप लाइन के लिए कर सकते हैं 1351 01:00:02,940 --> 01:00:04,110 पत्र के साथ संख्या. 1352 01:00:04,110 --> 01:00:08,290 और क्लिप आप को देखने के बारे में कर रहे हैं जिनमें से कुछ आप देखा हो सकता है 24/7 1353 01:00:08,290 --> 01:00:11,120 एक क्रिसमस स्टोरी नामक फिल्म से क्रिसमस के मौसम के आसपास. 1354 01:00:11,120 --> 01:00:16,050 आप देखेंगे कि थोड़ा Ralphie तो बाहर क्या छोटे अनाथ लगाने के लिए उत्सुक था 1355 01:00:16,050 --> 01:00:19,810 एनी गुप्त संदेश उसे करने के लिए किया गया था कि में किया गया था और मुझे लगता है, संप्रेषित 1356 01:00:19,810 --> 01:00:22,810 एक धारावाहिक बॉक्स पर संख्यात्मक संदेशों की फार्म. 1357 01:00:22,810 --> 01:00:26,760 और आप सभी छोटे कार्ड है कि आया जमा करने के लिए किया था 1358 01:00:26,760 --> 01:00:27,480 अनाज बॉक्स में. 1359 01:00:27,480 --> 01:00:28,320 आप अंदर उन्हें मेल किया था 1360 01:00:28,320 --> 01:00:31,060 आप रहस्य कूटवाचक अंगूठी वापस पाने के लिए किया था, इतना है कि आप अंत में समझ सकते हैं 1361 01:00:31,060 --> 01:00:34,190 बाहर मानचित्रण अक्षरों और संख्याओं के बीच है, 1362 01:00:34,190 --> 01:00:35,420 या पत्र और पत्र. 1363 01:00:35,420 --> 01:00:39,790 तो मैं तुम्हें एक क्रिसमस स्टोरी से इस छोटे क्लिप दे के 2 pset प्रेरित करने और 1364 01:00:39,790 --> 01:00:42,340 एक पल में हमारी चर्चा, arrays के. 1365 01:00:42,340 --> 01:00:43,773 तो यहाँ हम Ralphie है. 1366 01:00:43,773 --> 01:00:44,126 >> [वीडियो प्लेबैक] 1367 01:00:44,126 --> 01:00:47,470 इसके सभी और विविध के लिए जाना जाता है कि राल्फ पार्कर इसके द्वारा नियुक्त किया जाता है 1368 01:00:47,470 --> 01:00:50,690 लिटिल अनाथ एनी गुप्त सर्कल के सदस्य और सभी के लिए हकदार है 1369 01:00:50,690 --> 01:00:53,500 सम्मान और लाभ बहां होने वाली. 1370 01:00:53,500 --> 01:00:56,040 , छोटे अनाथ एनी हस्ताक्षर किए गए. 1371 01:00:56,040 --> 01:00:58,730 प्रतिहस्ताक्षरित, पियरे आंद्रे! 1372 01:00:58,730 --> 01:01:00,150 स्याही में! 1373 01:01:00,150 --> 01:01:02,910 सम्मान और नौ वर्ष की उम्र में पहले से ही लाभ. 1374 01:01:09,970 --> 01:01:10,730 चलो, इसके साथ पर मिलता है. 1375 01:01:10,730 --> 01:01:15,000 मैं तस्करों और समुद्री डाकुओं के बारे में सभी कि जाज जरूरत नहीं है. 1376 01:01:15,000 --> 01:01:17,624 काले के समापन साहसिक कार्य के लिए कल रात सुनो 1377 01:01:17,624 --> 01:01:19,710 समुद्री डाकू जहाज. 1378 01:01:19,710 --> 01:01:23,380 अब यह आप के सदस्यों के लिए एनी गुप्त संदेश के लिए समय आ गया है 1379 01:01:23,380 --> 01:01:25,670 गुप्त सर्कल के. 1380 01:01:25,670 --> 01:01:30,260 याद रखें, बच्चों, एनी सीक्रेट सर्कल के सदस्यों को समझाना कर सकते हैं 1381 01:01:30,260 --> 01:01:31,660 एनी गुप्त संदेश. 1382 01:01:31,660 --> 01:01:36,230 याद रखें, एनी आप पर निर्भर करता है. 1383 01:01:36,230 --> 01:01:38,720 बी 2 के लिए अपने पिन सेट. 1384 01:01:38,720 --> 01:01:41,040 यहाँ संदेश है. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 मैं मेरी पहली गुप्त बैठक में हूँ. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 पियरे महान आवाज आज रात में था. 1389 01:01:51,700 --> 01:01:54,890 मैं बता सकता है कि आज रात वास्तव में महत्वपूर्ण संदेश था. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 कि खुद एनी से एक संदेश है. 1392 01:01:58,590 --> 01:01:59,840 याद रखें, किसी को मत बताना. 1393 01:02:04,570 --> 01:02:08,750 -90 सेकंड बाद, मैं घर में एक ही कमरे में हूँ, जहां नौ का एक लड़का 1394 01:02:08,750 --> 01:02:12,980 गोपनीयता और व्याख्या में बैठ सकता है. 1395 01:02:12,980 --> 01:02:17,130 अहा, मैं बी अगले करने के लिए चला गया. 1396 01:02:17,130 --> 01:02:20,330 ई. पहला शब्द है. 1397 01:02:20,330 --> 01:02:22,670 यह एस अब आसान आ रहा था. 1398 01:02:22,670 --> 01:02:24,590 यू 1399 01:02:24,590 --> 01:02:26,510 - ओह, चलो, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 मुझे जाना होगा. 1401 01:02:28,430 --> 01:02:30,350 I'll सही नीचे हो सकता है, मा. 1402 01:02:30,350 --> 01:02:33,720 विशेषज्ञ जी. 1403 01:02:33,720 --> 01:02:38,270 टी, ओ के लिए सुनिश्चित करें. 1404 01:02:38,270 --> 01:02:40,000 क्या करने के लिए यकीन है कि? 1405 01:02:40,000 --> 01:02:42,105 लिटिल अनाथ कहने की कोशिश कर एनी क्या था? 1406 01:02:42,105 --> 01:02:43,095 क्या करने के लिए यकीन है कि? 1407 01:02:43,095 --> 01:02:43,590 - Ralphie! 1408 01:02:43,590 --> 01:02:44,580 रेंडी को जाने के लिए मिल गया है. 1409 01:02:44,580 --> 01:02:45,570 आप बाहर आने करोगे? 1410 01:02:45,570 --> 01:02:46,560 सब ठीक है, माँ. 1411 01:02:46,560 --> 01:02:48,540 मैं अभी बाहर हो जाएगा. 1412 01:02:48,540 --> 01:02:50,580 मैं करीब हो रही थी. 1413 01:02:50,580 --> 01:02:52,550 तनाव भयानक था. 1414 01:02:52,550 --> 01:02:53,355 यह क्या था? 1415 01:02:53,355 --> 01:02:56,315 ग्रह के भाग्य अधर में लटका सकता है. 1416 01:02:56,315 --> 01:02:56,790 - Ralphie! 1417 01:02:56,790 --> 01:02:59,165 रेंडी को जाने के लिए मिल गया है. 1418 01:02:59,165 --> 01:03:02,310 I'll सही बाहर जोर से रोने के लिए, हो सकता है. 1419 01:03:02,310 --> 01:03:04,000 जी, लगभग वहाँ. 1420 01:03:04,000 --> 01:03:05,180 मेरी उंगलियों के उड़े. 1421 01:03:05,180 --> 01:03:07,150 मेरे दिमाग में एक इस्पात जाल था. 1422 01:03:07,150 --> 01:03:08,790 हर ताकना स्फूर्त. 1423 01:03:08,790 --> 01:03:10,040 यह लगभग स्पष्ट हो गया था. 1424 01:03:10,040 --> 01:03:13,400 हाँ, हाँ, हाँ, हाँ. 1425 01:03:13,400 --> 01:03:18,960 अपने Ovaltine पीने के लिए सुनिश्चित रहो. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 एक फालतू वाणिज्यिक? 1428 01:03:28,200 --> 01:03:29,640 एक कुतिया का बेटा. 1429 01:03:29,640 --> 01:03:33,340 [अंत वीडियो प्लेबैक] 1430 01:03:33,340 --> 01:03:36,040 >> डेविड जे मालन: तो वहाँ हम क्रिप्टोग्राफी है. 1431 01:03:36,040 --> 01:03:39,670 तो कैसे हम एक कंप्यूटर में लागू करने के बारे में जा सकते हैं या 1432 01:03:39,670 --> 01:03:40,950 इस तरह से बातें का प्रतिनिधित्व? 1433 01:03:40,950 --> 01:03:44,430 ठीक है, हम खुद को एक छोटे से अधिक से अधिक flexibly को व्यक्त करने का एक तरीका की जरूरत 1434 01:03:44,430 --> 01:03:46,420 हमारे चर इस प्रकार अब तक की अनुमति दी है. 1435 01:03:46,420 --> 01:03:47,370 हम ints लिया है. 1436 01:03:47,370 --> 01:03:48,380 हम घर का काम लिया है. 1437 01:03:48,380 --> 01:03:50,790 हम मंगाई और युगल और कुछ अन्य लोगों को मिला है. 1438 01:03:50,790 --> 01:03:55,050 लेकिन उन स्मृति के व्यक्तिगत टुकड़े कर रहे हैं कि वास्तव में हमें करने की अनुमति नहीं 1439 01:03:55,050 --> 01:03:58,010 शब्दों और वाक्यों और वाक्यांशों की तरह बातें व्यक्त करते हैं. 1440 01:03:58,010 --> 01:04:00,200 दरअसल, हम ऐसी बातें तार बुलाया है. 1441 01:04:00,200 --> 01:04:03,650 लेकिन हम वादा किया था कि यह वास्तव में सिर्फ CS50 में एक सरलीकरण है 1442 01:04:03,650 --> 01:04:07,020 पुस्तकालय है कि हम वापस छील करने के लिए इरादा कर रहे हैं. 1443 01:04:07,020 --> 01:04:08,970 >> और तो चलो है कि यहाँ शुरू. 1444 01:04:08,970 --> 01:04:11,130 मुझे आगे जाना है और एक फ़ाइल खोलने - 1445 01:04:11,130 --> 01:04:13,770 इन फ़ाइलों के सभी सामान्य ऑनलाइन के रूप में उपलब्ध हैं - 1446 01:04:13,770 --> 01:04:19,120 एक तार करने के लिए संबंधित समस्या को हल करने के लिए array.c बुलाया था, लेकिन कहा कि पेंट एक 1447 01:04:19,120 --> 01:04:23,040 यहाँ हम कुछ कैसे उपयोग हो सकता है की तस्वीर एक सरणी बुलाया. 1448 01:04:23,040 --> 01:04:25,530 एक सरणी एक डेटा प्रकार है. 1449 01:04:25,530 --> 01:04:31,320 यह चर के एक प्रकार का प्रकार है, कि कई छोटे डेटा प्रकार है 1450 01:04:31,320 --> 01:04:34,150 इसे के अंदर वापस करने के लिए वापस वापस वापस करने के लिए. 1451 01:04:34,150 --> 01:04:37,700 तो उदाहरण के लिए, अगर हम एक छोटे से प्रोग्राम है कि आप देता है लिखने के लिए चाहते हैं अपने 1452 01:04:37,700 --> 01:04:42,110 50 की तरह एक निश्चित है कि दो quizzes, तुम बहुत आसानी से कर सकता है के लिए औसत प्रश्नोत्तरी 1453 01:04:42,110 --> 01:04:45,170 इस प्रोग्राम लिखने भी पिछले हफ्ते की सामग्री के कुछ पर आधारित है - 1454 01:04:45,170 --> 01:04:47,770 GetInt और चर के एक जोड़े का उपयोग करके. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, quiz2 int, और यह बहुत सीधा है. 1456 01:04:51,920 --> 01:04:55,930 यह हो सकता है 10, कोड, अधिकतम 20 लाइनों, पूछता है कि एक कार्यक्रम को लागू करने के लिए 1457 01:04:55,930 --> 01:05:01,170 उपयोगकर्ता दो प्रश्नोत्तरी स्कोर के लिए और फिर उन्हें जोड़कर उनकी औसत computes 1458 01:05:01,170 --> 01:05:03,850 एक साथ, दो से विभाजित है, और फिर परिणाम मुद्रण. 1459 01:05:03,850 --> 01:05:06,380 हम शायद उस के बाद कर सकता है बहुत आसानी से अब 1460 01:05:06,380 --> 01:05:07,510 मिनट की कुछ संख्या. 1461 01:05:07,510 --> 01:05:11,005 >> लेकिन समस्या यह है कि लगता है कि 50 था quizzes तीन या चार. 1462 01:05:11,005 --> 01:05:13,510 मान लीजिए कि आप था कि एक वर्ग के लिए ही प्रोग्राम का उपयोग करना चाहता था 1463 01:05:13,510 --> 01:05:14,850 साप्ताहिक quizzes. 1464 01:05:14,850 --> 01:05:16,610 एक वर्ग है कि साप्ताहिक quizzes के बारे में सोचो. 1465 01:05:16,610 --> 01:05:20,610 अगर वहाँ एक सेमेस्टर में 16 या तो सप्ताह की तरह है, अब तुम 16 चर है - 1466 01:05:20,610 --> 01:05:24,270 int, quiz1 int quiz2, int quiz3, quiz4 int. 1467 01:05:24,270 --> 01:05:27,560 जैसे ही आप इस विकल्प को देखने के शुरू, इस कॉपी करने और चिपकाने 1468 01:05:27,560 --> 01:05:31,390 कोड की, यह करने के लिए आप चाहते हैं कि वहाँ एक बेहतर तरीका थे शुरू कर देना चाहिए. 1469 01:05:31,390 --> 01:05:33,930 और शुक्र है, सरणियाँ की वजह से, वहाँ है. 1470 01:05:33,930 --> 01:05:34,980 तो यह करते हैं. 1471 01:05:34,980 --> 01:05:38,430 सबसे पहले, मुझे एक बहुत ही सरल बात है कि हम इस प्रकार अब तक इस्तेमाल नहीं किया है शुरू, 1472 01:05:38,430 --> 01:05:40,140 लेकिन आप यह कोड में कभी कभी देखेंगे. 1473 01:05:40,140 --> 01:05:42,360 यह वही है जो आम तौर पर एक निरंतर कहा जाता है. 1474 01:05:42,360 --> 01:05:45,790 तो यह समझ में आता है कि यह मूल्य कभी नहीं बदलता में एक स्थिर है. 1475 01:05:45,790 --> 01:05:49,210 मानव सम्मेलन में जब एक स्थिर बनाने के लिए सभी पूंजी का उपयोग करने के लिए है 1476 01:05:49,210 --> 01:05:51,940 पत्र, बस इतना है कि यह वास्तव में अपने कोड में बाहर खड़ा है. 1477 01:05:51,940 --> 01:05:55,960 और विशेष कीवर्ड है कि तुम सी में उपयोग परिभाषित है. 1478 01:05:55,960 --> 01:06:00,250 तो अगर आप कहते हैं # को परिभाषित करने के लिए, तो एक जगह है, तो शब्द है कि आप के लिए उपयोग करना चाहते हैं 1479 01:06:00,250 --> 01:06:03,260 निरंतर के नाम, और उसके बाद लगातार मूल्य. 1480 01:06:03,260 --> 01:06:06,180 नोटिस तो, यह एक चर को कुछ बताए से अलग है. 1481 01:06:06,180 --> 01:06:07,020 वहाँ कोई संकेत नहीं के बराबर होती है. 1482 01:06:07,020 --> 01:06:08,240 वहाँ कोई सेमीकोलन नहीं है. 1483 01:06:08,240 --> 01:06:11,410 यह वही है जो आम तौर पर एक पूर्वप्रक्रमक निर्देश के रूप में जाना जाता है, लेकिन अधिक 1484 01:06:11,410 --> 01:06:12,210 कि एक बार. 1485 01:06:12,210 --> 01:06:18,540 >> अभी के लिए, इस बनाता है एक अपरिवर्तनीय बुलाया जिसका मूल्य वास्तविक quizzes 1486 01:06:18,540 --> 01:06:19,940 संख्यात्मक मान 2 है. 1487 01:06:19,940 --> 01:06:24,020 तो कहीं भी तुम quizzes देखते हैं, quizzes, इस फाइल भर quizzes, कि 1488 01:06:24,020 --> 01:06:25,410 सिर्फ संख्या 2. 1489 01:06:25,410 --> 01:06:28,100 अब, अगर मैं मुख्य पर अब देखो, यह कैसे काम करता है देखना. 1490 01:06:28,100 --> 01:06:29,500 सबसे पहले, यह एक छोटे से गुप्त लग रहा है. 1491 01:06:29,500 --> 01:06:31,340 लेकिन यह एक सप्ताह से सभी सामान है. 1492 01:06:31,340 --> 01:06:32,710 ग्रेड के लिए उपयोगकर्ता से पूछो. 1493 01:06:32,710 --> 01:06:33,630 हम यह कैसे करते हो? 1494 01:06:33,630 --> 01:06:35,470 खैर, लाइन में 22 - 1495 01:06:35,470 --> 01:06:37,210 यह वास्तव में रसदार हिस्सा है - 1496 01:06:37,210 --> 01:06:40,960 मैं एक नाव नहीं है, लेकिन सिर्फ एक ही नाव की घोषणा. 1497 01:06:40,960 --> 01:06:44,620 मैं की घोषणा कर रहा हूँ, बल्कि चल बिन्दु मूल्यों की एक सरणी. 1498 01:06:44,620 --> 01:06:49,100 चर कि ग्रेड कहा जाता है, के रूप में यहाँ निहित जा रहा है. 1499 01:06:49,100 --> 01:06:53,080 लेकिन नए वाक्यविन्यास के केवल टुकड़ा तो इन वर्ग कोष्ठक हैं, इस तथ्य 1500 01:06:53,080 --> 01:06:59,350 कि मैं नाव और फिर खुला ब्रैकेट और फिर एक संख्या ग्रेड कहा है. 1501 01:06:59,350 --> 01:07:02,460 सूचना, अगर यह एक निरंतर है, यह सिर्फ जैसे हम इस किया है. 1502 01:07:02,460 --> 01:07:06,890 इसका मतलब यह है कि कंप्यूटर हे, मुझे दे दो मंगाई, और सामूहिक रूप से जाने के लिए कॉल 1503 01:07:06,890 --> 01:07:08,220 उन्हें ग्रेड. 1504 01:07:08,220 --> 01:07:11,920 यह इस तरह से एक बहुत अधिक थकाऊ प्रक्रिया के विपरीत है. 1505 01:07:11,920 --> 01:07:15,850 Grade1 फ्लोट, Grade2 नाव, और बहुत आगे है. 1506 01:07:15,850 --> 01:07:20,010 तो एक सरणी हमें इस विचार को लागू करने के लिए अनुमति देता है, लेकिन और बहुत कम गडबड़ीसे में, 1507 01:07:20,010 --> 01:07:24,630 इस तरह से है कि हम कोड की एक लाइन लिखने के बजाय कर सकते हैं, कहते हैं, 16 से 16 के लिए एक 1508 01:07:24,630 --> 01:07:25,740 सप्ताह सेमेस्टर. 1509 01:07:25,740 --> 01:07:29,950 तो मैं 2 हार्ड कोड नहीं चाहते हैं, क्योंकि अगर आप इस बारे में लगता है कि अब किया 1510 01:07:29,950 --> 01:07:34,160 तार्किक अगले साल लगता है 3 के लिए CS50 परिवर्तन बजाय quizzes. 1511 01:07:34,160 --> 01:07:35,510 और मैं 2 संख्या यहाँ था. 1512 01:07:35,510 --> 01:07:36,600 मैं संख्या 2 यहाँ था. 1513 01:07:36,600 --> 01:07:37,580 मैं संख्या 2 यहाँ था. 1514 01:07:37,580 --> 01:07:38,560 मैं संख्या 2 यहाँ था. 1515 01:07:38,560 --> 01:07:43,180 यह बहुत कठिन है और बहुत आसानी से पेंच और गलती से बदल हो जाता है 1516 01:07:43,180 --> 01:07:47,690 एक 3 मूल्य और 2 के कुछ अन्य मूल्य याद आती है. 1517 01:07:47,690 --> 01:07:52,460 इसलिए मैं बजाय सार जा रहा हूँ इस दूर और यह निरंतर का उपयोग है कि, अपने रूप 1518 01:07:52,460 --> 01:07:54,120 नाम से पता चलता है, कभी नहीं बदलता. 1519 01:07:54,120 --> 01:07:57,710 और अब, कोई फर्क नहीं पड़ता है कि क्या हम अलग quizzes इस साल या अगले मैं, 1520 01:07:57,710 --> 01:08:01,210 बस इसे एक जगह में बदलने के लिए, शीर्ष पर यहाँ है. 1521 01:08:01,210 --> 01:08:02,720 >> तो यह है कि सब स्थिर है. 1522 01:08:02,720 --> 01:08:08,680 इस बीच, नए वैचारिक सुविधा है कि एक सरणी के है. 1523 01:08:08,680 --> 01:08:14,660 तो वर्ग कोष्ठक मुझे दे यह कई मंगाई और मुझे सामूहिक सुविधा देता है 1524 01:08:14,660 --> 01:08:16,630 उन्हें ग्रेड यहाँ बुला लो. 1525 01:08:16,630 --> 01:08:17,990 तो अब देखते हैं कि मैं क्या करने जा रहा हूँ. 1526 01:08:17,990 --> 01:08:20,359 यहाँ 24 लाइन में पाश के लिए एक की शुरुआत है. 1527 01:08:20,359 --> 01:08:22,260 यह वास्तव में कुछ भी नहीं फैंसी है. 1528 01:08:22,260 --> 01:08:25,060 यह सिर्फ quizzes बजाय का उपयोग कर एक हार्ड कोडित संख्या के. 1529 01:08:25,060 --> 01:08:27,790 लेकिन वहाँ बौद्धिक पिछले सप्ताह से अलग कुछ भी नहीं है. 1530 01:08:27,790 --> 01:08:29,040 यह सिर्फ printf है. 1531 01:08:29,040 --> 01:08:35,490 तो printf ("% d प्रश्नोत्तरी संख्या% d") क्योंकि मैं बस के लिए बाहर दे मुझे प्रश्नोत्तरी प्रिंट चाहते हैं 1532 01:08:35,490 --> 01:08:38,050 दो और फिर एक दो दो नंबर. 1533 01:08:38,050 --> 01:08:39,850 तो यह विशुद्ध रूप से एक सौंदर्य बात है. 1534 01:08:39,850 --> 01:08:42,500 लेकिन दिलचस्प हिस्सा अब 27 लाइन में है. 1535 01:08:42,500 --> 01:08:48,310 आदेश में दो प्लेसहोल्डर में से एक में एक चल बिन्दु के साथ भरने के लिए 1536 01:08:48,310 --> 01:08:51,029 मूल्य, आप फिर से वर्ग कोष्ठक का उपयोग करें. 1537 01:08:51,029 --> 01:08:55,620 इस मामले में, मैं का उपयोग कर रहा हूँ क्योंकि पाश के लिए मैं बराबर के साथ शुरू कर दिया है 1538 01:08:55,620 --> 01:08:57,560 जाहिरा तौर पर मूल्य क्या है? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> तो इस लूप की पहली यात्रा पर, यह के रूप में हालांकि मैं 1541 01:09:01,350 --> 01:09:02,689 कोड में यह लिखा है. 1542 01:09:02,689 --> 01:09:05,580 लेकिन मैं इस लूप की दूसरी यात्रा पर, यह है के रूप में यद्यपि 1543 01:09:05,580 --> 01:09:07,750 मेरे कोड में यह लिखा है. 1544 01:09:07,750 --> 01:09:10,750 लेकिन तथ्य यह है कि मैं एक चर का उपयोग कर रहा हूँ सही है, क्योंकि नाम के रूप में 1545 01:09:10,750 --> 01:09:14,300 पता चलता है, यह हर यात्रा पर अपने मूल्य अलग है. 1546 01:09:14,300 --> 01:09:17,370 इसलिए मैं इस सरणी भरने हूँ एक समय में एक जगह है. 1547 01:09:17,370 --> 01:09:18,910 इस सरणी की तरह दिखता है? 1548 01:09:18,910 --> 01:09:21,430 खैर, कारण है कि मैं स्क्रीन पर इस सुपर सरल आयताकार यहाँ आकर्षित किया 1549 01:09:21,430 --> 01:09:23,350 पहले इस कारण के लिए किया गया था. 1550 01:09:23,350 --> 01:09:27,279 एक सरणी सिर्फ स्मृति का एक हिस्सा स्मृति का एक और हिस्सा द्वारा पीछा किया जाता है, 1551 01:09:27,279 --> 01:09:30,109 स्मृति का एक और हिस्सा द्वारा पीछा किया, और बहुत आगे है. 1552 01:09:30,109 --> 01:09:35,260 तो अगर मेरी सरणी 2 आकार की है, इस मामले में यहाँ सब मैं द्वारा कर किया जाएगा 1553 01:09:35,260 --> 01:09:37,590 मेरी प्रश्नोत्तरी स्कोर में टाइपिंग, यहाँ पसंद है. 1554 01:09:37,590 --> 01:09:39,430 मैं इस पर एक 100 मिला है. 1555 01:09:39,430 --> 01:09:42,020 और फिर मैं इस एक पर एक 99 मिला. 1556 01:09:42,020 --> 01:09:46,040 फिर इस स्मृति भी नहीं जा सकता है क्योंकि मैं केवल पूछा है इस्तेमाल किया जा सकता 1557 01:09:46,040 --> 01:09:48,689 2 आकार की एक सरणी के लिए कंप्यूटर. 1558 01:09:48,689 --> 01:09:50,180 उन वर्गों को अभी भी वहाँ हैं. 1559 01:09:50,180 --> 01:09:50,340 सही है? 1560 01:09:50,340 --> 01:09:52,500 तुम अब भी राम के दो गीगाबाइट है, भले ही आप ही कर रहे हैं 1561 01:09:52,500 --> 01:09:53,979 दो मंगाई के लिए पूछ रहे हैं. 1562 01:09:53,979 --> 01:09:58,710 तो arrays के पीछे विचार यह है कि कंप्यूटर सिर्फ स्मृति का एक हिस्सा लेता है 1563 01:09:58,710 --> 01:10:03,230 और फिर छोटे टुकड़ों को वापस करने के लिए वापस करने के लिए वापस वापस आबंटित कर देता है. 1564 01:10:03,230 --> 01:10:04,740 और इतना है कि सब एक सरणी है. 1565 01:10:04,740 --> 01:10:09,080 यह स्मृति का एक सन्निहित हिस्सा है, अंदर जो आप बातें रख सकते हैं. 1566 01:10:09,080 --> 01:10:12,400 >> अब यह तो बस कुछ उबाऊ गणित करने के लिए होता है. 1567 01:10:12,400 --> 01:10:16,170 अगर मैं यहाँ नीचे स्क्रॉल, यह है जहां मैं तो सरणी पर पुनरावृति. 1568 01:10:16,170 --> 01:10:19,410 मैं सरणी में सभी मूल्यों के योग के साथ आते हैं. 1569 01:10:19,410 --> 01:10:22,390 और फिर मैं दौर समारोह यहाँ का उपयोग करने के लिए वास्तव में क्या 1570 01:10:22,390 --> 01:10:23,940 quizzes द्वारा विभाजित योग. 1571 01:10:23,940 --> 01:10:27,450 लेकिन मुझे उस पर अब के लिए पर्याप्त गणित के प्रकार के रूप में मेरे हाथ की लहर. 1572 01:10:27,450 --> 01:10:30,010 लेकिन यह सब है कि मेरे लिए क्या कर रही है अंततः औसतन कंप्यूटिंग है. 1573 01:10:30,010 --> 01:10:33,640 तो पहली प्रश्नोत्तरी प्लस 2 प्रश्नोत्तरी, 2 से विभाजित है, और फिर मुद्रण 1574 01:10:33,640 --> 01:10:34,700 एक int के रूप में इसे बाहर. 1575 01:10:34,700 --> 01:10:39,030 >> लेकिन हम अब एक अलग string1 बुलाया उदाहरण के लिए संक्रमण, 1576 01:10:39,030 --> 01:10:42,370 जो एक ऐसी ही तस्वीर है, लेकिन का उपयोग कर तार पेंट. 1577 01:10:42,370 --> 01:10:45,550 मुझे आगे जाना है और बस एक पल के लिए इस सरल. 1578 01:10:45,550 --> 01:10:48,340 और अब के लिए इंडेंटेशन माफ कर दीजिए. 1579 01:10:48,340 --> 01:10:52,280 इस उदाहरण के 19 लाइन में सूचना, मैं उपयोगकर्ता से एक स्ट्रिंग मिलता है. 1580 01:10:52,280 --> 01:10:55,780 नोटिस लेकिन क्या मैं अगले लाइनों में 22 आगे कर रहा हूँ. 1581 01:10:55,780 --> 01:11:00,260 मैं वास्तव में मैं से iterating कर रहा हूँ करने के लिए - और यह एक नई चाल है - 1582 01:11:00,260 --> 01:11:02,730 strlen, स्ट्रिंग लंबाई. 1583 01:11:02,730 --> 01:11:07,010 यह एक समारोह है कि सी के साथ आता है कि अगर आप इसे एक स्ट्रिंग पारित करने के लिए, यह बताता है 1584 01:11:07,010 --> 01:11:08,950 आप कितने अक्षर कि स्ट्रिंग में हैं. 1585 01:11:08,950 --> 01:11:09,440 यही सब है. 1586 01:11:09,440 --> 01:11:12,520 तथ्य यह है कि यह strlen स्ट्रिंग की लंबाई के बजाय बस, क्योंकि यह 1587 01:11:12,520 --> 01:11:13,040 अधिक संक्षिप्त. 1588 01:11:13,040 --> 01:11:17,100 30 साल पहले, लोगों को चीजों के रूप में संभव के रूप में लिखने succinctly पसंद आया. 1589 01:11:17,100 --> 01:11:19,080 तो हम उस सम्मेलन यहाँ रखा है. 1590 01:11:19,080 --> 01:11:21,730 मैं + + सिर्फ मतलब है कि मैं प्रत्येक चलना में वेतन वृद्धि. 1591 01:11:21,730 --> 01:11:24,310 और अब इस नोटिस, जो वास्तव में दिलचस्प है. 1592 01:11:24,310 --> 01:11:28,730 तो लाइन में 24, मैं कंप्यूटर का कहना है, मुझे एक चरित्र देने के लिए, आठ 1593 01:11:28,730 --> 01:11:30,770 बिट्स, और यह ग. 1594 01:11:30,770 --> 01:11:35,370 लेकिन क्या कह दाहिने हाथ की ओर पर है? 1595 01:11:35,370 --> 01:11:38,150 अंग्रेजी में, कि क्या काम करती है? 1596 01:11:38,150 --> 01:11:40,070 [अश्राव्य] 1597 01:11:40,070 --> 01:11:40,490 डेविड जे मालन: बिल्कुल सही. 1598 01:11:40,490 --> 01:11:42,390 मुझे सरणी में पहली चरित्र दे. 1599 01:11:42,390 --> 01:11:45,400 या अधिक आम तौर पर, मुझे सरणी में चरित्र i-वीं दे. 1600 01:11:45,400 --> 01:11:48,230 एहसास है और यह महत्वपूर्ण है कि अब कंप्यूटर वैज्ञानिकों के रूप में, हम वास्तव में कर रहे हैं 1601 01:11:48,230 --> 01:11:49,330 0 से गिनती. 1602 01:11:49,330 --> 01:11:51,290 आप विवेक नहीं है अब यह कर रही शुरू. 1603 01:11:51,290 --> 01:11:54,580 अब आप कंप्यूटर की उम्मीदों के अनुसार व्यवहार करते हैं और 1604 01:11:54,580 --> 01:11:58,010 शून्य से गिनती क्योंकि [0] पहली बार होने जा रहा है 1605 01:11:58,010 --> 01:11:59,670 एक स्ट्रिंग में चरित्र. 1606 01:11:59,670 --> 01:12:01,320 [1] 2 होने जा रहा है. 1607 01:12:01,320 --> 01:12:03,610 [2] 3, और इतना आगे होने जा रहा है. 1608 01:12:03,610 --> 01:12:08,840 तो इस कार्यक्रम, अगर मैं यह संकलन - यह है, फिर से, string1. 1609 01:12:08,840 --> 01:12:11,040 >> तो string1 बनाने. 1610 01:12:11,040 --> 01:12:16,730 और अब मैं अपने टर्मिनल विंडो में string1 चलाते हैं. 1611 01:12:16,730 --> 01:12:19,180 यह निवेश के लिए इंतजार कर रहा है, तो मैं करने के लिए कहते हैं, में दाऊद टाइप करने के लिए जा रहा हूँ. 1612 01:12:19,180 --> 01:12:20,080 दर्ज करें. 1613 01:12:20,080 --> 01:12:23,350 और अब यह सब अलग अलग लाइनों पर डेविड प्रिंट है क्योंकि 1614 01:12:23,350 --> 01:12:24,430 नोटिस मैं क्या कर रहा हूँ. 1615 01:12:24,430 --> 01:12:27,510 मैं एक समय में एक चरित्र का मुद्रण कर रहा हूँ. 1616 01:12:27,510 --> 01:12:29,100 अब हम इस पर विस्तार में आज नहीं जाना होगा. 1617 01:12:29,100 --> 01:12:31,610 लेकिन मैं इस जांच को पहले एक पल के यहाँ से हटाया. 1618 01:12:31,610 --> 01:12:36,310 यह पता चला है कि अगर उपयोगकर्ता दुर्व्यवहार है, adversarial, या बस 1619 01:12:36,310 --> 01:12:41,780 उलझन में है, तो आप वास्तव में कुछ लंबाई के एक स्ट्रिंग दे विफल कर सकते हैं. 1620 01:12:41,780 --> 01:12:43,640 यदि आप कीबोर्ड पर गलत कुंजी मारा, तुम्हें दे सकता है 1621 01:12:43,640 --> 01:12:44,390 सब पर कोई स्ट्रिंग. 1622 01:12:44,390 --> 01:12:47,790 या यदि आप दुर्भावनापूर्ण कर रहे हैं, तो आप एक की एक गीगाबाइट के मूल्य में पेस्ट करने की कोशिश हो सकती है 1623 01:12:47,790 --> 01:12:49,380 निबंध इस स्ट्रिंग को भरने के लिए. 1624 01:12:49,380 --> 01:12:52,060 और अगर कंप्यूटर स्मृति से बाहर चलाता है, यह पता चला है कि हम जा रहे हैं 1625 01:12:52,060 --> 01:12:54,310 वापस करने के लिए इस विशेष अशक्त बुलाया मूल्य मिलता है. 1626 01:12:54,310 --> 01:12:57,550 तो अब के लिए, सिर्फ इतना पता है कि वहाँ इस विशेष अशक्त बुलाया मूल्य है कि 1627 01:12:57,550 --> 01:13:01,000 हमें जांच करने के लिए जब हम स्मृति से बाहर कर रहे हैं, अन्य बातों के अलावा करने के लिए अनुमति देगा. 1628 01:13:01,000 --> 01:13:07,330 >> लेकिन अगर मैं अब string2 खोलते हैं, तो यहाँ एक अंतर नोटिस. 1629 01:13:07,330 --> 01:13:09,760 String2 के साथ एक अंतर यहाँ सूचना. 1630 01:13:09,760 --> 01:13:13,260 String2 के साथ पाश के लिए यह थोड़ा अलग है. 1631 01:13:13,260 --> 01:13:16,350 मुझे nulls हटाना इतना है कि हम एक और समय उन लोगों के बारे में बात कर सकते हैं. 1632 01:13:16,350 --> 01:13:18,460 लेकिन क्या पाश के लिए इस समय के बारे में अलग है? 1633 01:13:21,580 --> 01:13:23,160 और मैं वापस पिछले उदाहरण के लिए जा सकते हैं. 1634 01:13:23,160 --> 01:13:24,800 तो यह है कि दो संस्करण है. 1635 01:13:24,800 --> 01:13:27,020 यह एक संस्करण है. 1636 01:13:27,020 --> 01:13:31,935 एक, दो, दो एक. 1637 01:13:35,030 --> 01:13:38,240 तो strlen कॉल कहाँ है? 1638 01:13:38,240 --> 01:13:40,420 यह पाश के लिए के पहले भाग में है. 1639 01:13:40,420 --> 01:13:43,060 इसलिए मैं यह कर रहा हूँ के रूप में किसी भी विचार? 1640 01:13:43,060 --> 01:13:43,690 हाँ. 1641 01:13:43,690 --> 01:13:46,010 [अश्राव्य] 1642 01:13:46,010 --> 01:13:47,630 डेविड जे मालन: तो हम समारोह में हर बार फोन नहीं है. 1643 01:13:47,630 --> 01:13:48,040 बिल्कुल सही. 1644 01:13:48,040 --> 01:13:50,350 Loops के लिए याद है कि वे सुपर सरल कर रहे हैं आप की तरह एक बार 1645 01:13:50,350 --> 01:13:52,180 समझते हैं कि इस initialization है, 1646 01:13:52,180 --> 01:13:53,330 हालत, और अद्यतन. 1647 01:13:53,330 --> 01:13:55,430 समस्या यह है कि हर हालत पर होता है 1648 01:13:55,430 --> 01:13:56,600 पाश की चलना. 1649 01:13:56,600 --> 01:13:59,930 और इसलिए यहाँ इस उदाहरण में, क्या इस तथ्य के बारे में बुरा है 1650 01:13:59,930 --> 01:14:03,500 कि यह मेरी हालत है? 1651 01:14:03,500 --> 01:14:05,920 आप strlen फिर से बुला रहे हैं और फिर. 1652 01:14:05,920 --> 01:14:08,990 लेकिन एक बार मैं डेविड में टाइप किया है, कि स्ट्रिंग की लंबाई पांच है. 1653 01:14:08,990 --> 01:14:11,560 और यह पाश के हर यात्रा पर बदलने के वजह से नहीं जा रहा है 1654 01:14:11,560 --> 01:14:15,560 स्ट्रिंग अभी भी D-A-V-D. तो यह क्या एक बनने जा रही है पर एक संकेत है 1655 01:14:15,560 --> 01:14:19,650 तेजी से महत्वपूर्ण विचार एक डिजाइन निर्णय के रूप में जाना जाता है, जहां न सिर्फ 1656 01:14:19,650 --> 01:14:21,640 कंप्यूटर अनावश्यक काम करते हैं. 1657 01:14:21,640 --> 01:14:25,630 >> अब बस के रूप में मानक संस्करण में एक 2 pset, 2 pset का पूर्वावलोकन चुपके है 1658 01:14:25,630 --> 01:14:28,850 आप वास्तव में सिफर के कुछ नंबर, कुछ को लागू करने के लिए चुनौती रहा है 1659 01:14:28,850 --> 01:14:32,650 एन्क्रिप्शन एल्गोरिदम की संख्या, कि आप कर सकते हैं तो दोनों एन्क्रिप्ट और decrypt 1660 01:14:32,650 --> 01:14:35,530 एक Ralphie की तरह ज्यादा से गुप्त संदेश, वहाँ डीकोड. 1661 01:14:35,530 --> 01:14:38,720 2 pset हैकर संस्करण में, हम एक छोटे से आगे जाने के लिए जा रहे हैं. 1662 01:14:38,720 --> 01:14:42,010 हम आपको एक फ़ाइल हाथ से जा रहे हैं एक वास्तविक कंप्यूटर प्रणाली है कि एक शामिल हैं 1663 01:14:42,010 --> 01:14:45,690 उपयोगकर्ता नाम और वास्तविक एन्क्रिप्टेड पासवर्ड की एक पूरी गुच्छा है, और चुनौती 1664 01:14:45,690 --> 01:14:49,110 के लिए हैकर संस्करण के लिए उन पासवर्ड और आंकड़ा दरार होने जा रहा है 1665 01:14:49,110 --> 01:14:53,060 क्रिप्टोग्राफी या क्या रहस्य क्या वास्तव में इस्तेमाल किया गया था बाहर 1666 01:14:53,060 --> 01:14:55,080 उन पासवर्ड उत्पन्न. 1667 01:14:55,080 --> 01:14:58,360 और हम सी के यहाँ है कि मैं दे दूँगा एक नई सुविधा का उपयोग करके यह करने जा रहे 1668 01:14:58,360 --> 01:15:02,200 तुम सिर्फ एक डेमो, कमांड लाइन तर्क के रूप में जाना जाता है. 1669 01:15:02,200 --> 01:15:05,930 >> तो यह पता चला है, के रूप में आप में से कुछ के अनुभाग में या पाठ्यपुस्तकों में देखा हो सकता है, 1670 01:15:05,930 --> 01:15:09,850 मुख्य हमेशा कोष्ठक में शून्य होना जरूरी नहीं है. 1671 01:15:09,850 --> 01:15:14,060 यह पता चला है कि मुख्य भी इस तरह से लिखा जा सकता है दो तर्क के साथ, 1672 01:15:14,060 --> 01:15:19,690 argc और argv, जहां argc शब्दों की संख्या है कि आप के बाद टाइप 1673 01:15:19,690 --> 01:15:21,940 कार्यक्रम के नाम अपने कमांड लाइन पर. 1674 01:15:21,940 --> 01:15:24,550 और argv वास्तविक शब्द है. 1675 01:15:24,550 --> 01:15:29,470 और के रूप में वहाँ वर्ग कोष्ठक सुझाव है, argv जाहिरा तौर पर एक सरणी है. 1676 01:15:29,470 --> 01:15:33,720 यह स्मृति में एक स्ट्रिंग के बाद एक स्ट्रिंग के बाद एक स्ट्रिंग होने जा रहा है. 1677 01:15:33,720 --> 01:15:36,170 तो क्या हम ऐसा करने में सक्षम हो जा रहे हैं, 2 pset के साथ शुरू है, 1678 01:15:36,170 --> 01:15:37,310 कुछ इस तरह. 1679 01:15:37,310 --> 01:15:42,450 अगर मैं argv1, जो हम सोमवार को वापस करने के लिए आते हैं, करेंगे और चलाने के एक उदाहरण है 1680 01:15:42,450 --> 01:15:45,180 यह सूचना है कि यह करने के लिए अभी तक कुछ भी नहीं लगता. 1681 01:15:45,180 --> 01:15:47,050 यह सिर्फ बाहर अपने नाम प्रिंट. 1682 01:15:47,050 --> 01:15:53,220 लेकिन अगर मैं कहना अलविदा वर्ग, सूचना है कि इस कार्यक्रम के जाहिरा तौर पर iterates 1683 01:15:53,220 --> 01:15:57,030 कि शीघ्र लिखे गए शब्द में से प्रत्येक पर. 1684 01:15:57,030 --> 01:16:02,050 और इसका मतलब है जिसके द्वारा हम शब्दों है कि उपयोगकर्ता के लिए पहुँच प्राप्त होगी 1685 01:16:02,050 --> 01:16:06,780 शीघ्र में टाइप मुख्य बदल रहा है, इस सप्ताह के अंत में शुरू int से, 1686 01:16:06,780 --> 01:16:10,710 मुख्य (शून्य) int मुख्य (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 और इस तरह कमांड लाइन तर्क पैदा हो जाएगा. 1688 01:16:13,700 --> 01:16:17,210 और एक बार आप इस पर वास्तव में परिष्कृत मिलता है, तुम लिखने के लिए सक्षम हो जाएगा 1689 01:16:17,210 --> 01:16:21,370 यहाँ इस एक के रूप में वास्तव में trippy कार्यक्रम, जो ऊपर से परे चला जाता है 1690 01:16:21,370 --> 01:16:25,520 कार्यक्षमता के कुछ हम इस प्रकार दूर किया है, लेकिन सब बहुत शक्तिशाली है. 1691 01:16:25,520 --> 01:16:27,330 >> तो हम इस के साथ स्क्रीन पर छोड़ देंगे. 1692 01:16:27,330 --> 01:16:29,160 और हम आप सोमवार को देखेंगे.