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