1 00:00:00,000 --> 00:00:00,940 2 00:00:00,940 --> 00:00:05,440 >> [संगीत खेल] 3 00:00:05,440 --> 00:00:11,577 4 00:00:11,577 --> 00:00:12,660 डेविड जे Malan: सब ठीक है. 5 00:00:12,660 --> 00:00:15,590 इस CS50 है, और इस सप्ताह में दो की शुरुआत है. 6 00:00:15,590 --> 00:00:19,120 इसलिए हमें एक बग के साथ आज शुरू करते हैं. 7 00:00:19,120 --> 00:00:20,974 एक बग, ज़ाहिर है, एक एक कार्यक्रम में गलती, 8 00:00:20,974 --> 00:00:22,890 और तुम बहुत मिलेगा इस अवधारणा से परिचित 9 00:00:22,890 --> 00:00:26,050 आप क्रमादेशित कभी नहीं किया है पहले. pset0 और अब pset1. 10 00:00:26,050 --> 00:00:29,280 लेकिन हम कुछ विचार करें पहले थोड़ा सरल. 11 00:00:29,280 --> 00:00:32,189 मुझे लगता है कि यहाँ इस कार्यक्रम अग्रिम में एक साथ फेंक दिया 12 00:00:32,189 --> 00:00:37,280 और मैं इस प्रिंट चाहिए कि दावा Printf का उपयोग कर स्क्रीन पर 10 सितारे, 13 00:00:37,280 --> 00:00:41,020 लेकिन यह जाहिरा तौर पर किसी तरह छोटी गाड़ी है. 14 00:00:41,020 --> 00:00:45,370 >> कि विनिर्देश देखते हुए कि यह 10 सितारे प्रिंट चाहिए, 15 00:00:45,370 --> 00:00:50,230 लेकिन यह स्पष्ट नहीं करता है, क्या बग आप दावा होता है? 16 00:00:50,230 --> 00:00:52,004 हाँ? 17 00:00:52,004 --> 00:00:54,420 तो यह एक त्रुटि से एक बंद है, और तुम क्या मतलब है? 18 00:00:54,420 --> 00:01:00,991 19 00:01:00,991 --> 00:01:01,490 ठीक. 20 00:01:01,490 --> 00:01:09,820 21 00:01:09,820 --> 00:01:10,410 बहुत बढ़िया. 22 00:01:10,410 --> 00:01:13,930 इसलिए हम निर्दिष्ट किया है एक मैं के लिए शून्य के मूल्य शुरू, 23 00:01:13,930 --> 00:01:18,399 और हम 10 के एक एन मूल्य निर्दिष्ट किया है लेकिन हम अधिक या बराबर कम उपयोग किया है. 24 00:01:18,399 --> 00:01:21,190 और यह कारण है कि दो वर्ण और न सिर्फ एक प्रतीक है, 25 00:01:21,190 --> 00:01:22,630 एक गणित की किताब में की तरह, आपके पास नहीं है 26 00:01:22,630 --> 00:01:24,880 व्यक्त करने का एक तरीका एक चरित्र बराबर. 27 00:01:24,880 --> 00:01:28,450 >> ताकि, से भी कम का मतलब है लेकिन आप शून्य पर गिनती शुरू, 28 00:01:28,450 --> 00:01:31,690 लेकिन आप सभी तरह से गिनती 10 के माध्यम से अप और बराबर, 29 00:01:31,690 --> 00:01:34,170 आप कोर्स के लिए जाने की हो कुल में 11 बातें गिनती. 30 00:01:34,170 --> 00:01:35,900 और तो आप 11 सितारों मुद्रित करने के लिए जा रहे हैं. 31 00:01:35,900 --> 00:01:37,990 तो क्या इस बात के लिए एक तय हो सकता है? 32 00:01:37,990 --> 00:01:39,970 हाँ? 33 00:01:39,970 --> 00:01:43,980 >> तो बस से भी कम समायोजित या बस से भी कम हो के बराबर, 34 00:01:43,980 --> 00:01:46,250 और शायद, मैं दावा नहीं है भी एक और समाधान,. 35 00:01:46,250 --> 00:01:47,210 फिर आप क्या कर सकते हैं? 36 00:01:47,210 --> 00:01:48,590 हाँ? 37 00:01:48,590 --> 00:01:53,660 >> तो 1 को यह बराबर शुरू, और अधिक या बराबर कम छोड़ दें. 38 00:01:53,660 --> 00:01:56,187 और सच कहूँ तो मैं दावा करेगा कि, एक ठेठ मानव के लिए, 39 00:01:56,187 --> 00:01:57,770 यह शायद और अधिक सरल है. 40 00:01:57,770 --> 00:02:00,280 1 पर गिनती शुरू और के माध्यम से 10 तक गिनती. 41 00:02:00,280 --> 00:02:01,690 अनिवार्य रूप से आप क्या मतलब नहीं है. 42 00:02:01,690 --> 00:02:04,010 >> लेकिन वास्तविकता में है प्रोग्रामिंग, हमने देखा है के रूप में, 43 00:02:04,010 --> 00:02:07,598 कंप्यूटर वैज्ञानिकों और प्रोग्रामर आम तौर पर शून्य पर गिनती शुरू करते हैं. 44 00:02:07,598 --> 00:02:09,389 और इसलिए है कि एक बार ठीक है आप इसकी आदत हो. 45 00:02:09,389 --> 00:02:12,640 आपका हालत आम तौर पर होगा से कम ऐसा कुछ हो. 46 00:02:12,640 --> 00:02:14,910 तो बस एक तार्किक त्रुटि है कि अब हम कर सकते थे 47 00:02:14,910 --> 00:02:17,990 ठीक है और अंत में फिर कंपाइल इस और सिर्फ 10 मिलता है. 48 00:02:17,990 --> 00:02:19,610 >> खैर कैसे यहाँ इस बग के बारे में? 49 00:02:19,610 --> 00:02:24,200 यहाँ, फिर से, मुझे लगता है कि दावा 10 stars-- मुद्रण का एक लक्ष्य 50 00:02:24,200 --> 00:02:28,140 रेखा इस समय प्रति एक है, लेकिन यह नहीं. 51 00:02:28,140 --> 00:02:30,940 हम प्रस्ताव से पहले क्या तय यह क्या करता है, 52 00:02:30,940 --> 00:02:34,640 मैं संकलन के लिए गए थे नेत्रहीन प्रिंट और इस कार्यक्रम तुम सोचते हो चला? 53 00:02:34,640 --> 00:02:35,140 हाँ? 54 00:02:35,140 --> 00:02:38,360 55 00:02:38,360 --> 00:02:38,860 >> स्टार. 56 00:02:38,860 --> 00:02:41,690 पर इतना सब सितारे एक ही पंक्ति मैं क्या सुना है, 57 00:02:41,690 --> 00:02:43,391 और फिर नई लाइन चरित्र. 58 00:02:43,391 --> 00:02:44,140 तो चलो कोशिश करते हैं. 59 00:02:44,140 --> 00:02:48,710 इतनी छोटी गाड़ी -1, प्रवेश, और मैं बजना आदेश देखना 60 00:02:48,710 --> 00:02:50,090 हम पिछली बार के बारे में बात की है. 61 00:02:50,090 --> 00:02:55,180 ./buggy-1, और वास्तव में मैं सभी 10 सितारों को देखने मैं दावा भले ही एक ही लाइन पर 62 00:02:55,180 --> 00:02:58,690 मेरे विनिर्देशन के ऊपर सिर्फ एक टिप्पणी में मैं एक प्रति क्या करने का इरादा है कि कोड 63 00:02:58,690 --> 00:02:59,230 लाइन. 64 00:02:59,230 --> 00:03:00,580 लेकिन यह सही लग रहा है. 65 00:03:00,580 --> 00:03:04,620 >> मैं कर रहा हूँ की तरह अब रेखा 15 यह लग रहा है फिर एक स्टार मुद्रण, और रेखा 16 66 00:03:04,620 --> 00:03:06,620 मैं मुद्रण हूँ ऐसा लगता है एक नई लाइन चरित्र, 67 00:03:06,620 --> 00:03:09,560 और वे दोनों तो इंडेंट रहे मैं स्पष्ट रूप से लूप के अंदर हूँ. 68 00:03:09,560 --> 00:03:13,610 तो मैं स्टार नहीं करना चाहिए, नया लाइन, सितारा, नई लाइन, सितारा, नई लाइन? 69 00:03:13,610 --> 00:03:14,110 हाँ? 70 00:03:14,110 --> 00:03:18,430 71 00:03:18,430 --> 00:03:21,240 >> हाँ, एक भाषा के विपरीत की तरह अजगर, आप परिचित हो, 72 00:03:21,240 --> 00:03:23,540 खरोज नहीं करता कंप्यूटर के लिए बात. 73 00:03:23,540 --> 00:03:25,280 यह केवल मानव के लिए मायने रखती है. 74 00:03:25,280 --> 00:03:29,860 यहाँ जबकि मैं का आविष्कार किया है लाइनों तो 15 और सुंदर लग रहा है कि 16--, 75 00:03:29,860 --> 00:03:31,330 लेकिन कंप्यूटर की परवाह नहीं करता. 76 00:03:31,330 --> 00:03:34,640 कंप्यूटर के बारे में परवाह वास्तव में घुंघराले ब्रेसिज़ होने 77 00:03:34,640 --> 00:03:36,310 कोड की इन लाइनों के आसपास. 78 00:03:36,310 --> 00:03:39,520 >> यह इतना है कि बस में तरह clear-- है Scratch-- कोड के उन दो पंक्तियों कि 79 00:03:39,520 --> 00:03:40,450 निष्पादित किया जाना चाहिए. 80 00:03:40,450 --> 00:03:44,390 उन पीले स्क्रैच पहेली की तरह टुकड़े फिर और फिर और फिर. 81 00:03:44,390 --> 00:03:50,920 >> मैं तो अगर अब फिर से रन program-- ./buggy-2-- हम्म. 82 00:03:50,920 --> 00:03:51,770 मैं अब एक त्रुटि है. 83 00:03:51,770 --> 00:03:54,212 मुझे क्या करना भूल गए? 84 00:03:54,212 --> 00:03:55,420 हाँ, तो मैं यह संकलन नहीं किया. 85 00:03:55,420 --> 00:03:56,740 इतनी छोटी गाड़ी -2 बनाने. 86 00:03:56,740 --> 00:03:59,840 ऐसा कोई फ़ाइल मैं नहीं था क्योंकि वास्तव में दूसरे संस्करण संकलन. 87 00:03:59,840 --> 00:04:04,860 तो अब दिलचस्प अघोषित 2 नहीं variable--. 88 00:04:04,860 --> 00:04:05,510 हम 1 कर रहे हैं. 89 00:04:05,510 --> 00:04:11,050 अब छोटी गाड़ी-1-- ./buggy-1-- और बनाओ उनमें से हर एक ही लाइन पर है. 90 00:04:11,050 --> 00:04:13,880 >> अब एक अपवाद के लिए है मेरा यह माना दावा 91 00:04:13,880 --> 00:04:15,520 कि आप इन घुंघराले ब्रेसिज़ जरूरत है. 92 00:04:15,520 --> 00:04:20,160 जब यह वास्तव में है OK-- आप है, तो खंड या textbooks-- में देखा 93 00:04:20,160 --> 00:04:22,130 घुंघराले ब्रेसिज़ न आना करने के लिए? 94 00:04:22,130 --> 00:04:22,630 हाँ? 95 00:04:22,630 --> 00:04:26,290 96 00:04:26,290 --> 00:04:26,870 >> बिल्कुल सही. 97 00:04:26,870 --> 00:04:28,940 वहाँ केवल एक ही है जब कोड की पंक्ति है कि आप 98 00:04:28,940 --> 00:04:32,830 के साथ जुड़े रहना चाहता हूँ हमारा पहला उदाहरण के रूप में पाश. 99 00:04:32,830 --> 00:04:36,380 यह पूरी तरह से वैध है घुंघराले ब्रेसिज़ न आना 100 00:04:36,380 --> 00:04:40,310 सिर्फ एक सुविधा की तरह के रूप में आप के लिए संकलक से. 101 00:04:40,310 --> 00:04:40,810 हाँ? 102 00:04:40,810 --> 00:04:43,347 103 00:04:43,347 --> 00:04:43,930 अच्छा सवाल है. 104 00:04:43,930 --> 00:04:45,500 यह एक शैली त्रुटि माना जाएगा? 105 00:04:45,500 --> 00:04:49,340 हम CS50 में के रूप में promote-- होगा शैली गाइड, जिसके लिए यूआरएल 106 00:04:49,340 --> 00:04:51,926 कि हमेशा pset1-- में है घुंघराले ब्रेसिज़ का उपयोग करें. 107 00:04:51,926 --> 00:04:53,550 निश्चित रूप से आप प्रोग्रामिंग करने के लिए नए हैं. 108 00:04:53,550 --> 00:04:56,800 वास्तविकता हम नहीं कर रहे है आप निषेध के लिए जा रहा 109 00:04:56,800 --> 00:04:58,680 इन सुविधाओं करने से. 110 00:04:58,680 --> 00:05:00,846 लेकिन तुम सिर्फ हो रही है चीजों के झूले में, 111 00:05:00,846 --> 00:05:04,020 बिल्कुल बस हमेशा घुंघराले उपयोग आप इसे भांप लेना तक ब्रेसिज़. 112 00:05:04,020 --> 00:05:04,640 अच्छा सवाल है. 113 00:05:04,640 --> 00:05:05,320 >> ठीक है. 114 00:05:05,320 --> 00:05:07,660 इतना है कि तब एक बग था. 115 00:05:07,660 --> 00:05:09,190 काफी सरल कुछ में कम से कम. 116 00:05:09,190 --> 00:05:11,260 और फिर भी आप इस सोच सकते हैं सही, काफी अल्पविकसित है? 117 00:05:11,260 --> 00:05:13,635 इस पहले सप्ताह की तरह है की भाषा को देख 118 00:05:13,635 --> 00:05:14,890 जैसे, अपने कीड़े उसमें देखते हैं. 119 00:05:14,890 --> 00:05:17,250 लेकिन वास्तविकता यह है कि इन कर रहे हैं वास्तव में प्रतिनिधि 120 00:05:17,250 --> 00:05:20,310 कुछ बहुत भयावह समस्याओं का कि असली दुनिया में पैदा कर सकते हैं. 121 00:05:20,310 --> 00:05:23,530 >> तो आप में से कुछ याद हो सकता है आप तकनीक की खबर का पालन करें, 122 00:05:23,530 --> 00:05:25,740 या शायद यह भी पकड़ा फरवरी में इस की हवा 123 00:05:25,740 --> 00:05:29,434 एप्पल था कि यह पिछले साल की , दोनों आईओएस में एक गलती की एक सा बनाया 124 00:05:29,434 --> 00:05:31,350 पर ऑपरेटिंग सिस्टम उनके फोन, और भी 125 00:05:31,350 --> 00:05:34,220 मैक ओएस ऑपरेटिंग सिस्टम अपने डेस्कटॉप और लैपटॉप पर. 126 00:05:34,220 --> 00:05:36,480 और अगर आप इस तरह के रूप में सुर्खियों में देखा था. 127 00:05:36,480 --> 00:05:41,120 और उसके बाद, एप्पल इस बग को ठीक करने का वादा किया, 128 00:05:41,120 --> 00:05:45,950 और बहुत जल्दी, IOS में यह तय किया लेकिन फिर अंत में मैक ओएस में यह तय 129 00:05:45,950 --> 00:05:46,810 के रूप में अच्छी तरह से. 130 00:05:46,810 --> 00:05:50,370 >> अब इन सुर्खियों से कोई भी अकेले सच मूल समस्या क्या था पता चलता है, 131 00:05:50,370 --> 00:05:55,640 लेकिन बग अंततः कम हो गया था एसएसएल में एक बग, सुरक्षित सॉकेट लेयर. 132 00:05:55,640 --> 00:05:57,390 और लंबी कहानी को कम, इस सॉफ्टवेयर है 133 00:05:57,390 --> 00:06:01,030 कि हमारे ब्राउज़र और अन्य सॉफ्टवेयर क्या करते थे? 134 00:06:01,030 --> 00:06:04,090 135 00:06:04,090 --> 00:06:06,860 >> मैं एसएसएल ने कहा है कि यदि शामिल, जब भी आप 136 00:06:06,860 --> 00:06:13,920 , HTTPS के साथ शुरू होता है कि एक यूआरएल पर जाएँ तो क्या एसएसएल से संबंधित हो सकता है? 137 00:06:13,920 --> 00:06:14,580 एन्क्रिप्शन. 138 00:06:14,580 --> 00:06:16,470 इसलिए हम के बारे में बात करेंगे आने वाले दिनों में इस. 139 00:06:16,470 --> 00:06:18,750 एन्क्रिप्शन, की कला जानकारी पांव मार. 140 00:06:18,750 --> 00:06:22,200 >> लेकिन लंबी कहानी संक्षेप में, एप्पल कुछ समय एक गलती की थी पहले 141 00:06:22,200 --> 00:06:25,970 , एसएसएल के उनके क्रियान्वयन में अंत में लागू करता है जो सॉफ्टवेयर 142 00:06:25,970 --> 00:06:30,120 HTTPS या अधिकतम तरह यूआरएल वहां भी कनेक्शन. 143 00:06:30,120 --> 00:06:32,850 जिनमें से परिणाम यह है कि आपके कनेक्शन संभवतः सकता है 144 00:06:32,850 --> 00:06:33,920 पकड़ा जा. 145 00:06:33,920 --> 00:06:37,130 और आपके कनेक्शन थे जरूरी एन्क्रिप्टेड नहीं 146 00:06:37,130 --> 00:06:40,350 आप के बीच कुछ बुरा आदमी में था आप और गंतव्य वेबसाइट जो 147 00:06:40,350 --> 00:06:42,170 इस का लाभ लेने के लिए पता था. 148 00:06:42,170 --> 00:06:45,090 >> अब एप्पल अंततः तैनात एक अंत में इस के लिए तय, 149 00:06:45,090 --> 00:06:46,920 और विवरण अपने तय की इस थी. 150 00:06:46,920 --> 00:06:49,878 सुरक्षित परिवहन को मान्य करने में विफल कनेक्शन की प्रामाणिकता. 151 00:06:49,878 --> 00:06:52,920 इस मुद्दे ने भी संबोधित किया लापता सत्यापन कदम बहाल. 152 00:06:52,920 --> 00:06:57,250 >> तो यह एक बहुत हाथ लहराती विवरण है बस हम खराब कर दिया है कि कहने के लिए. 153 00:06:57,250 --> 00:07:00,920 सचमुच एक है छोटी गाड़ी था कि कोड की लाइन 154 00:07:00,920 --> 00:07:05,130 उनके एसएसएल के कार्यान्वयन, और में आप ऑनलाइन जाने के लिए और इस के लिए खोज 155 00:07:05,130 --> 00:07:07,210 आप वास्तव में प्राप्त कर सकते हैं मूल स्रोत कोड. 156 00:07:07,210 --> 00:07:11,960 उदाहरण के लिए, इस का एक स्क्रीन शॉट है सिर्फ एक काफी बड़ी फ़ाइल के एक हिस्से को, 157 00:07:11,960 --> 00:07:15,965 लेकिन यह जाहिरा तौर पर कहा जाता है एक समारोह है एसएसएल साइन सर्वर कुंजी विनिमय सत्यापित. 158 00:07:15,965 --> 00:07:17,840 और इसका एक गुच्छा ले जाता है तर्क और आदानों. 159 00:07:17,840 --> 00:07:20,298 और हम ध्यान केंद्रित करने के लिए नहीं जा रहे हैं वहाँ minutia पर बहुत ज्यादा, 160 00:07:20,298 --> 00:07:24,390 लेकिन आप अंदर कोड पर ध्यान केंद्रित अगर चलो function-- कि सर्वोच्च की 161 00:07:24,390 --> 00:07:25,590 उस पर ज़ूम. 162 00:07:25,590 --> 00:07:28,140 आप पहले से ही शक हो सकता है क्या त्रुटि हो सकता है 163 00:07:28,140 --> 00:07:31,230 तुम्हें पता नहीं है, भले ही हो अंत में आप क्या देख रहे हैं. 164 00:07:31,230 --> 00:07:35,924 एक विसंगति की तरह नहीं है यहाँ, जो क्या है? 165 00:07:35,924 --> 00:07:38,940 >> हाँ, मैं वास्तव में पसंद नहीं है दो गोटो की नज़र में विफल रहता है. 166 00:07:38,940 --> 00:07:42,060 सच कहूँ तो, मैं वास्तव में नहीं जानता कि क्या गोटो साधन असफल, लेकिन उनमें से दो होने 167 00:07:42,060 --> 00:07:42,810 वापस वापस करने के लिए. 168 00:07:42,810 --> 00:07:45,290 वह सिर्फ एक तरह से मुझे मालिश बौद्धिक गलत तरीके से, 169 00:07:45,290 --> 00:07:48,910 और हम पर ज़ूम यदि वास्तव में सिर्फ उन लाइनों, इस सी है 170 00:07:48,910 --> 00:07:52,220 >> तो एप्पल के कोड का एक बहुत खुद सी में लिखा है, 171 00:07:52,220 --> 00:07:55,780 और यह जाहिरा तौर पर वास्तव में equivalent-- है 172 00:07:55,780 --> 00:07:59,060 ऐसा नहीं है कि बहुत खरोज को संस्करण है, लेकिन आप को पहचान अगर तथ्य 173 00:07:59,060 --> 00:08:02,560 कोई घुंघराले ब्रेसिज़, वहाँ है कि क्या एप्पल वास्तव में लग रहा है कि कोड था लिखा था 174 00:08:02,560 --> 00:08:03,540 इस तरह. 175 00:08:03,540 --> 00:08:07,080 तो मैं बाहर तेजी से बढ़ी है और सिर्फ मैं भावना में खरोज तय 176 00:08:07,080 --> 00:08:10,690 कि कोई घुंघराले ब्रेसिज़, कि अगर वहाँ दूसरी गोटो कि पीले रंग में है विफल 177 00:08:10,690 --> 00:08:12,500 क्या कोई फर्क नहीं पड़ता पर अमल करने जा रहा है. 178 00:08:12,500 --> 00:08:15,540 इसके साथ जुड़ा नहीं है यह ऊपर अगर हालत. 179 00:08:15,540 --> 00:08:19,590 >> तो भी फिर, अगर आप ऐसा नहीं काफी क्या समझ यह संभवतः सकता है 180 00:08:19,590 --> 00:08:23,230 , क्या कर रही हो पता इनमें से प्रत्येक कि इन पंक्तियों के प्रत्येक conditions-- 181 00:08:23,230 --> 00:08:26,180 एक बहुत ही महत्वपूर्ण कदम है जाँच की प्रक्रिया में 182 00:08:26,180 --> 00:08:28,350 अपने डेटा वास्तव में अगर एन्क्रिप्टेड. 183 00:08:28,350 --> 00:08:31,710 तो इनमें से किसी एक लंघन कदम, नहीं सबसे अच्छा विचार है. 184 00:08:31,710 --> 00:08:34,840 >> लेकिन हम यह है क्योंकि दूसरी गोटो, पीले रंग में असफल 185 00:08:34,840 --> 00:08:36,840 और क्योंकि हम एक बार तरह के सौंदर्य की दृष्टि से 186 00:08:36,840 --> 00:08:40,480 जहां यह बाईं करने के लिए कदम तार्किक पल में है, क्या 187 00:08:40,480 --> 00:08:43,230 इस लाइन के लिए मतलब है कि दूसरा गोटो नीचे दिए गए कोड की 188 00:08:43,230 --> 00:08:46,480 आपको लगता होगा विफल? 189 00:08:46,480 --> 00:08:48,860 यह हमेशा छोड़ दिया जा रहा है. 190 00:08:48,860 --> 00:08:52,100 तो gotos आम तौर पर सिकोड़ी हैं हम वास्तव में नहीं जाएंगे कारणों के लिए, 191 00:08:52,100 --> 00:08:54,940 और वास्तव में CS50 में हम नहीं जाते इस बयान गोटो को पढ़ाने के लिए, 192 00:08:54,940 --> 00:08:58,130 लेकिन आप गोटो के बारे में सोच सकते हैं अर्थ जाओ कूद के रूप में असफल 193 00:08:58,130 --> 00:08:59,600 कोड के कुछ अन्य हिस्से के लिए. 194 00:08:59,600 --> 00:09:03,120 >> दूसरे शब्दों में कूद कुल मिलाकर यह अंतिम पंक्ति, 195 00:09:03,120 --> 00:09:07,420 और इसलिए इस बेवकूफ का परिणाम सिर्फ था कि साधारण गलती 196 00:09:07,420 --> 00:09:10,330 शायद किसी का एक परिणाम नकल और भी एक चिपकाने 197 00:09:10,330 --> 00:09:14,150 कई बार पूरी थी कि IOS और मैक ओएस की सुरक्षा 198 00:09:14,150 --> 00:09:18,240 अवरोधन की चपेट में था कुछ समय के लिए बुरे लोगों से. 199 00:09:18,240 --> 00:09:19,940 एप्पल जब तक अंत में यह तय हो. 200 00:09:19,940 --> 00:09:23,100 >> अब आप में से कुछ वास्तव में कर रहे हैं आईओएस या मैक ओएस के पुराने संस्करण चला, 201 00:09:23,100 --> 00:09:27,250 आप gotofail.com लिए जा सकते हैं, जो किसी की स्थापना की है कि एक वेबसाइट है 202 00:09:27,250 --> 00:09:29,190 अनिवार्य रूप से निर्धारित करने के लिए प्रोग्राम के 203 00:09:29,190 --> 00:09:30,980 आपके कंप्यूटर अभी भी कमजोर है. 204 00:09:30,980 --> 00:09:33,600 और सच में, अगर यह होता है, यह शायद एक अच्छा विचार है 205 00:09:33,600 --> 00:09:36,870 अपने फोन को अद्यतन करने के लिए या इस बिंदु पर अपने मैक. 206 00:09:36,870 --> 00:09:40,120 लेकिन वहाँ, बस वसीयतनामा बस कैसे करने के लिए इन निचले स्तर की सराहना 207 00:09:40,120 --> 00:09:42,400 विवरण और काफी सरल विचारों सकते हैं वास्तव में 208 00:09:42,400 --> 00:09:44,590 फैसले में अनुवाद और समस्याओं कि 209 00:09:44,590 --> 00:09:47,320 इस case-- में affected-- लोगों के लाखों. 210 00:09:47,320 --> 00:09:49,107 >> प्रशासन पर अब एक शब्द भी नहीं. 211 00:09:49,107 --> 00:09:50,690 धारा इस आ रविवार शुरू होगा. 212 00:09:50,690 --> 00:09:53,360 आप से एक ईमेल प्राप्त होगा खंड के बारे में सप्ताहांत, जो बिंदु पर 213 00:09:53,360 --> 00:09:55,290 resectioning प्रक्रिया आप है, तो शुरू हो जाएगा 214 00:09:55,290 --> 00:09:56,998 तुम अब एहसास हुआ कुछ नया संघर्ष. 215 00:09:56,998 --> 00:10:00,180 तो यह हर साल होता है, और हम आने वाले दिनों में समायोजित करेगा. 216 00:10:00,180 --> 00:10:02,430 >> कार्यालय hours-- एक रख कर यहाँ इस समय पर आँख. 217 00:10:02,430 --> 00:10:05,100 इस सप्ताह एक छोटा सा परिवर्तन, विशेष रूप से शुरू करने का समय 218 00:10:05,100 --> 00:10:08,180 और स्थान, तो परामर्श करते हैं कि कार्यालय समय के लिए शीर्षक से पहले 219 00:10:08,180 --> 00:10:09,520 अगले चार रातों के किसी भी. 220 00:10:09,520 --> 00:10:12,680 और अब मूल्यांकन पर एक शब्द, आप समस्या में गोता खासकर के रूप में 221 00:10:12,680 --> 00:10:14,350 एक और परे सेट. 222 00:10:14,350 --> 00:10:17,070 >> विनिर्देश प्रति तो, ये आम तौर पर कर रहे हैं 223 00:10:17,070 --> 00:10:20,360 कुल्हाड़ियों जो साथ हम अपने काम का मूल्यांकन. 224 00:10:20,360 --> 00:10:23,170 स्कोप को संदर्भित करता है क्या हद अपने कोड लागू 225 00:10:23,170 --> 00:10:25,690 सुविधाओं की आवश्यकता हमारे विनिर्देश द्वारा. 226 00:10:25,690 --> 00:10:28,290 दूसरे शब्दों में, कितना एक टुकड़ा सेट आपको काट लेना था. 227 00:10:28,290 --> 00:10:30,440 आप इसके बारे में एक तिहाई नहीं किया था, इसके बारे में एक आधा, यह की 100%. 228 00:10:30,440 --> 00:10:33,000 यह सही नहीं है यहां तक ​​कि अगर, आप कितना प्रयास किया? 229 00:10:33,000 --> 00:10:35,290 उस स्तर कब्जा तो प्रयास और राशि की 230 00:10:35,290 --> 00:10:38,260 जो करने के लिए आप बंद सा समस्या सेट की समस्याओं. 231 00:10:38,260 --> 00:10:40,690 >> यह एक Correctness--, को किस हद तक अपने कोड है 232 00:10:40,690 --> 00:10:43,150 संगत के साथ हमारे विनिर्देशों और कीड़े से मुक्त. 233 00:10:43,150 --> 00:10:44,770 तो इसे सही ढंग से काम करता है? 234 00:10:44,770 --> 00:10:48,700 हम इसे कुछ इनपुट दे, तो यह करता है हमें उम्मीद है कि उत्पादन दे? 235 00:10:48,700 --> 00:10:52,570 Design-- अब इस का पहला है विशेष रूप से गुणात्मक वाले, 236 00:10:52,570 --> 00:10:56,180 या मानव न्याय की आवश्यकता है कि लोगों को. 237 00:10:56,180 --> 00:10:59,690 हम एक कर्मचारी है और यही कारण है वास्तव में, यह है इतने सारे शिक्षण साथियों और पाठ्यक्रम की 238 00:10:59,690 --> 00:11:00,350 सहायकों. 239 00:11:00,350 --> 00:11:03,480 क्या हद तक आपकी है कोड अच्छी तरह से लिखा? 240 00:11:03,480 --> 00:11:05,810 >> और फिर यह एक बहुत है गुणात्मक मूल्यांकन 241 00:11:05,810 --> 00:11:09,100 उस पर आप के साथ काम करेंगे सप्ताह में द्वि directionally आने के लिए. 242 00:11:09,100 --> 00:11:12,060 इतनी है कि आप नहीं मिलता है जब केवल न्यूमेरिक स्कोर, लेकिन यह भी 243 00:11:12,060 --> 00:11:16,682 एक प्रश्न के लिखित स्कोर, या टाइप की प्रतिक्रिया, या अंग्रेजी शब्दों में प्रतिक्रिया लिखा. 244 00:11:16,682 --> 00:11:19,640 यही कारण है कि हम आप ड्राइव करने के लिए इस्तेमाल करेंगे क्या है वास्तव में बेहतर कोड लिखने की ओर. 245 00:11:19,640 --> 00:11:23,320 और व्याख्यान और खंड में, हम कोशिश करेंगे जैसा कि अक्सर हम can-- रूप out-- बात करने के लिए 246 00:11:23,320 --> 00:11:26,420 क्या एक कार्यक्रम न केवल करता है सही और कार्यात्मक अच्छा, 247 00:11:26,420 --> 00:11:28,200 लेकिन यह भी अच्छी तरह से बनाया गया. 248 00:11:28,200 --> 00:11:31,850 सबसे कुशल यह हो सकता है, या यहां तक ​​कि सबसे सुंदर हो सकता है. 249 00:11:31,850 --> 00:11:33,100 >> जो शैली की ओर जाता है. 250 00:11:33,100 --> 00:11:36,876 शैली अंततः है एक सौंदर्य निर्णय. 251 00:11:36,876 --> 00:11:38,750 आप अच्छा चयन किया आपके चर के लिए नाम? 252 00:11:38,750 --> 00:11:40,330 आप ठीक ढंग से अपने कोड इंडेंट है? 253 00:11:40,330 --> 00:11:44,010 यह इसलिए अच्छे लगते हैं, और करता है, यह दूसरे इंसान के लिए आसान है 254 00:11:44,010 --> 00:11:46,550 अपने संबंधित पढ़ने के लिए इसकी शुद्धता की. 255 00:11:46,550 --> 00:11:50,300 >> अब आम तौर पर पाठ्यक्रम प्रति, हम स्कोर एक पांच सूत्री पैमाने पर इन बातों को. 256 00:11:50,300 --> 00:11:53,640 और मुझसे बात घर हथौड़ा जाने एक तीन कि वास्तव में अच्छा है. 257 00:11:53,640 --> 00:11:55,550 बहुत जल्दी लोगों करते हैं गणित शुरू कर रही है. 258 00:11:55,550 --> 00:11:58,133 वे की एक तीन बाहर निकलना जब कुछ pset के लिए शुद्धता पर पांच 259 00:11:58,133 --> 00:12:02,040 और वे बहुत लगता है, मैं 60% करने के लिए जा रहा जो अनिवार्य रूप से एक विकास या एक ई है 260 00:12:02,040 --> 00:12:03,980 >> उस तरह नहीं है हम इन नंबरों के बारे में सोच. 261 00:12:03,980 --> 00:12:06,880 एक तीन क्या वास्तव में अच्छा है, और हम आम तौर पर शुरुआत में उम्मीद 262 00:12:06,880 --> 00:12:09,820 अवधि के तुम हो रही है कि अगर शायद three's-- का एक गुच्छा एक जोड़ी 263 00:12:09,820 --> 00:12:12,540 मेलों की, fours-- की एक जोड़ी या एक जोड़े twos, fours-- के एक जोड़े 264 00:12:12,540 --> 00:12:13,748 कि शुरू करने के लिए एक अच्छी जगह है. 265 00:12:13,748 --> 00:12:16,320 और हम एक इतने लंबे समय के रूप में देखते हैं समय के साथ ऊपर की ओर प्रक्षेपवक्र, 266 00:12:16,320 --> 00:12:18,540 आप एक विशेष रूप से अच्छा स्थान पर हैं. 267 00:12:18,540 --> 00:12:20,752 >> हम करने के लिए उपयोग सूत्र वजन बातें अनिवार्य है 268 00:12:20,752 --> 00:12:22,710 पाठ्यक्रम के अनुसार यह, जो अभी हम इसका मतलब है कि 269 00:12:22,710 --> 00:12:24,750 शुद्धता के लिए अधिक वजन दे. 270 00:12:24,750 --> 00:12:27,930 यह बहुत अक्सर शुद्धता क्योंकि कि सबसे अधिक समय लेता है. 271 00:12:27,930 --> 00:12:28,760 अब मुझ पर विश्वास करो. 272 00:12:28,760 --> 00:12:31,190 आप कम से कम find-- जाएगा एक pset-- में है कि आप 273 00:12:31,190 --> 00:12:36,790 अपने समय का 90% खर्च समस्या का 10% पर काम कर. 274 00:12:36,790 --> 00:12:39,320 >> और सब कुछ की तरह काम करता है एक या दो कीड़े के अलावा, 275 00:12:39,320 --> 00:12:41,570 और उन कीड़े हैं कि देर रात को तुम रहो. 276 00:12:41,570 --> 00:12:43,380 उन लोगों को कर रहे हैं कि एक तरह से आप बच. 277 00:12:43,380 --> 00:12:45,560 लेकिन उस पर सोने के बाद, या कार्यालय समय में भाग ले 278 00:12:45,560 --> 00:12:48,844 या, ऑनलाइन सवाल पूछ आप 100% है कि लक्ष्य को प्राप्त करते हैं, 279 00:12:48,844 --> 00:12:50,760 और यही कारण है कि हम वजन सबसे शुद्धता. 280 00:12:50,760 --> 00:12:54,102 एक छोटे से कम डिजाइन, और कि एक छोटे से कम शैली. 281 00:12:54,102 --> 00:12:56,060 लेकिन mind-- शैली में रखना शायद सबसे आसान है 282 00:12:56,060 --> 00:12:58,890 इनमें से काट लेना शैली पुस्तिका के अनुसार. 283 00:12:58,890 --> 00:13:01,580 >> और अब, एक और अधिक गंभीर शैक्षणिक ईमानदारी पर ध्यान दें. 284 00:13:01,580 --> 00:13:05,000 CS50 का दुर्भाग्यपूर्ण गौरव प्राप्त है विज्ञापन बोर्ड का सबसे बड़ा उत्पादक जा रहा है 285 00:13:05,000 --> 00:13:07,330 मामलों में लगभग हर साल ऐतिहासिक. 286 00:13:07,330 --> 00:13:11,012 छात्रों में धोखा इसका कारण यह नहीं है CS50 किसी भी अधिक तो किसी भी अन्य वर्ग से, 287 00:13:11,012 --> 00:13:13,720 लेकिन क्योंकि काम की प्रकृति से, यह इलेक्ट्रॉनिक तथ्य यह है कि, 288 00:13:13,720 --> 00:13:16,636 हम यह देखने के लिए, और तथ्य यह है कि तथ्य यह है कि हम कंप्यूटर वैज्ञानिकों, कर रहे हैं 289 00:13:16,636 --> 00:13:20,570 मुझे लगता है हम दुर्भाग्य से कर रहे हैं कह सकते हैं यह पता लगाने में बहुत अच्छा. 290 00:13:20,570 --> 00:13:22,710 >> तो यह वास्तविक रूप में क्या मतलब है? 291 00:13:22,710 --> 00:13:24,820 यह इसलिए, पाठ्यक्रम प्रति, पाठ्यक्रम के दर्शन 292 00:13:24,820 --> 00:13:28,090 वास्तव में उचित होने के लिए नीचे फोड़ा है. 293 00:13:28,090 --> 00:13:31,684 इस लाइन के बीच में है अपने दम पर एक काम कर 294 00:13:31,684 --> 00:13:34,100 और का एक छोटा सा हो रही एक दोस्त से उचित सहायता, 295 00:13:34,100 --> 00:13:38,020 और एकमुश्त लिए कि काम कर अपने दोस्त, या उसे या उसके अपने कोड भेज 296 00:13:38,020 --> 00:13:41,080 वह या तो वे कर सकते हैं कि इतना ले या सही यह बाहर उधार ले. 297 00:13:41,080 --> 00:13:43,580 और कहा कि लाइन पार हम कक्षा में तैयार की है. 298 00:13:43,580 --> 00:13:45,410 >> , पाठ्यक्रम देखें अंततः लाइनों के लिए 299 00:13:45,410 --> 00:13:48,209 हम उचित होने के रूप में आकर्षित कि और अनुचित व्यवहार, 300 00:13:48,209 --> 00:13:50,000 लेकिन यह वास्तव में फोड़ा करता है सार करने के लिए नीचे 301 00:13:50,000 --> 00:13:53,980 आपके काम करने की जरूरत की अंत में अपनी खुद की हो. 302 00:13:53,980 --> 00:13:56,230 अब उस से कहा, एक अनुमानी है. 303 00:13:56,230 --> 00:13:58,980 आप imagine-- सकता है क्योंकि कार्यालय समय और दृश्यों से 304 00:13:58,980 --> 00:14:01,060 और वीडियो हम है दिखाया गया है, इस प्रकार far-- CS50 305 00:14:01,060 --> 00:14:04,530 वास्तव में सहयोगी के रूप में होने का मतलब है और के रूप में सहकारी और सामाजिक 306 00:14:04,530 --> 00:14:06,450 संभव के रूप में. 307 00:14:06,450 --> 00:14:08,570 सहयोगी के रूप में यह कठोर है. 308 00:14:08,570 --> 00:14:11,314 >> लेकिन साथ यह कहा, अनुमानी, आप पाठ्यक्रम में देखेंगे, 309 00:14:11,314 --> 00:14:12,980 तुम कुछ समस्या हो रही है जब कि है. 310 00:14:12,980 --> 00:14:16,470 आप अपने कोड में कुछ बग है कि आप हल नहीं कर सकते, यह आपके लिए उचित है 311 00:14:16,470 --> 00:14:18,039 किसी और को अपने कोड को दिखाने के लिए. 312 00:14:18,039 --> 00:14:21,080 भी वर्ग में एक दोस्त, एक दोस्त कार्यालय समय में आप के बगल में बैठे, 313 00:14:21,080 --> 00:14:22,680 या स्टाफ के एक सदस्य है. 314 00:14:22,680 --> 00:14:25,810 लेकिन वे अपने आप को कोड नहीं दिखा सकते हैं. 315 00:14:25,810 --> 00:14:27,710 >> दूसरे शब्दों में, एक अपने question-- को जवाब 316 00:14:27,710 --> 00:14:29,940 मैं help-- ओह, यहाँ अपने कोड है नहीं है जरूरत है. 317 00:14:29,940 --> 00:14:32,440 इस पर एक नज़र रखना और आप क्या करेंगे यह से परिणाम निकालना. 318 00:14:32,440 --> 00:14:34,580 अब, ज़ाहिर है, वहाँ एक तरह से स्पष्ट रूप से खेल के लिए 319 00:14:34,580 --> 00:14:37,760 मैं तुम्हें दिखाता हूँ जिससे इस प्रणाली एक प्रश्न होने से पहले अपने कोड. 320 00:14:37,760 --> 00:14:40,150 आप मुझे मेरे अपने कोड दिखाने एक प्रश्न होने से पहले. 321 00:14:40,150 --> 00:14:45,870 लेकिन के लिए फिर से पाठ्यक्रम देखना इस लाइन है जहां की बेहतर जानकारी. 322 00:14:45,870 --> 00:14:50,606 >> बस अब तस्वीर पेंट करने के लिए और के रूप में पारदर्शी रूप से संभव के रूप में साझा 323 00:14:50,606 --> 00:14:53,480 हम हाल के वर्षों में कहाँ पर हैं, इस विज्ञापन बोर्ड मामलों की संख्या है 324 00:14:53,480 --> 00:14:56,260 कि CS50 से अधिक पड़ा है पिछले सात वर्षों. 325 00:14:56,260 --> 00:14:58,717 14 मामलों में इस सबसे हाल ही में गिरावट के साथ. 326 00:14:58,717 --> 00:15:01,300 शामिल छात्रों के संदर्भ में, यह 20 कुछ अजीब छात्रों थी 327 00:15:01,300 --> 00:15:02,490 यह पिछले गिर जाते हैं. 328 00:15:02,490 --> 00:15:05,670 33 की एक चोटी पर हुई थी कुछ साल पहले छात्रों को. 329 00:15:05,670 --> 00:15:08,830 जिनमें से कई दुर्भाग्य हैं अब यहाँ परिसर में. 330 00:15:08,830 --> 00:15:13,100 >> के प्रतिशत के रूप में शामिल छात्रों कक्षा ऐतिहासिक 0% से लेकर है 331 00:15:13,100 --> 00:15:17,300 कहने के लिए ही है, जो 5.3% है, इस सालाना एक चुनौती है. 332 00:15:17,300 --> 00:15:20,390 और वह अंत की ओर, क्या हम एक व्यक्त करना चाहते है 333 00:15:20,390 --> 00:15:24,310 हम सिर्फ FYI-- पर तुलना dd-- कि उन छात्रों को एक निष्पक्षता जो 334 00:15:24,310 --> 00:15:26,520 तदनुसार लाइन निम्नलिखित हैं. 335 00:15:26,520 --> 00:15:29,620 हम सभी मौजूदा तुलना करना सभी पिछले मिशन के खिलाफ प्रस्तुतियाँ 336 00:15:29,620 --> 00:15:30,840 पिछले कई वर्षों से. 337 00:15:30,840 --> 00:15:33,620 >> हम चारों ओर गूगल को कैसे भी पता और कोड खजाने को खोजने 338 00:15:33,620 --> 00:15:36,360 ऑनलाइन चर्चा मंचों ऑनलाइन ऑनलाइन, काम साइटों. 339 00:15:36,360 --> 00:15:41,580 एक छात्र इसे पा सकते हैं, तो हम निश्चित रूप से कर सकते हैं यह जितना हम खेद के रूप में करते हैं. 340 00:15:41,580 --> 00:15:45,330 तो क्या आप पाठ्यक्रम में देखेंगे हालांकि यह अफसोस खंड है. 341 00:15:45,330 --> 00:15:47,500 मैं निश्चित रूप से कर सकते हैं सराहना करते हैं, और हम सब किया है 342 00:15:47,500 --> 00:15:50,870 स्टाफ कोर्स की तरह किया होने समय के साथ यह, या यह एक ही है, 343 00:15:50,870 --> 00:15:53,997 निश्चित रूप से यह पसंद है जब पता है क्या जीवन जब आपके पास रास्ते में हो जाता है 344 00:15:53,997 --> 00:15:56,080 कुछ देर रात deadline-- न केवल इस वर्ग में, 345 00:15:56,080 --> 00:15:58,660 लेकिन आप another-- हो जब पूरी तरह से समाप्त हो, बाहर जोर दिया 346 00:15:58,660 --> 00:16:00,659 एक अत्यधिक संख्या है अन्य बातों के करने के लिए. 347 00:16:00,659 --> 00:16:03,660 आप कुछ बिंदु में कम कर देगा निश्चित रूप से एक बुरा, शायद देर से जीवन 348 00:16:03,660 --> 00:16:04,620 रात निर्णय. 349 00:16:04,620 --> 00:16:06,520 >> पाठ्यक्रम के अनुसार तो, इस खंड है, 350 00:16:06,520 --> 00:16:10,629 बनाने की ऐसी है कि अगर भीतर 72 घंटे कुछ गरीब निर्णय, आप इसे करने के लिए ही 351 00:16:10,629 --> 00:16:12,670 और मेरे लिए बाहर तक पहुँचने और पाठ्यक्रम के सिर में से एक 352 00:16:12,670 --> 00:16:14,300 और हम एक बातचीत करनी होगी. 353 00:16:14,300 --> 00:16:16,220 हम चीजों को संभाल लेंगे आंतरिक उम्मीद में 354 00:16:16,220 --> 00:16:18,770 यह एक के अधिक बनने की शिक्षण पल या जीवन सबक, 355 00:16:18,770 --> 00:16:22,120 साथ और कुछ नहीं विशेष रूप से कठोर असर 356 00:16:22,120 --> 00:16:24,570 आप यहां इन चार्ट पर देख सकते हैं. 357 00:16:24,570 --> 00:16:26,540 >> इसलिए कि एक बहुत ही गंभीर स्वर है. 358 00:16:26,540 --> 00:16:29,960 हमें सिर्फ कुछ के लिए थामने के चलो सेकंड तनाव को तोड़ने के लिए. 359 00:16:29,960 --> 00:16:34,442 >> [संगीत खेल] 360 00:16:34,442 --> 00:17:17,768 361 00:17:17,768 --> 00:17:20,250 >> डेविड जे Malan: सब ठीक है, इसलिए कि थी कि कैसे एक segue के लिए? 362 00:17:20,250 --> 00:17:22,059 आज के प्राथमिक विषयों के लिए. 363 00:17:22,059 --> 00:17:23,859 जिसमें से पहली अमूर्त है. 364 00:17:23,859 --> 00:17:26,900 जिनमें से एक और होने जा रहा है जो स्पष्ट रूप से डेटा का प्रतिनिधित्व 365 00:17:26,900 --> 00:17:31,640 कैसे कह का एक बहुत शुष्क जिस तरह से हम कर सकते है समस्याओं को सुलझाने और सोच के बारे में जाना 366 00:17:31,640 --> 00:17:33,250 समस्याओं को सुलझाने के बारे में? 367 00:17:33,250 --> 00:17:37,285 तो आप स्क्रैच में देखा है, और तुम है सी के साथ pset1 में शायद पहले से ही देखा 368 00:17:37,285 --> 00:17:39,930 आप न केवल उपयोग कर सकते हैं कार्यों, printf की तरह, 369 00:17:39,930 --> 00:17:42,770 कि अन्य लोगों में पिछले कुछ वर्षों में आप के लिए लिखा था. 370 00:17:42,770 --> 00:17:45,340 तुम भी अपने खुद के कार्यों में लिख सकते हैं. 371 00:17:45,340 --> 00:17:48,440 >> और तुम नहीं हो सकता है, भले ही pset1 में स्पष्ट रूप से सी में इस किया है, और 372 00:17:48,440 --> 00:17:51,866 आप वास्तव में लिखने की जरूरत नहीं है आपकी problem-- क्योंकि खुद समारोह 373 00:17:51,866 --> 00:17:53,990 पर शायद कठिन है, जबकि पहले आप देखेंगे glance-- 374 00:17:53,990 --> 00:17:57,910 अंततः के साथ हल किया जा सकता है कोड के सभी नहीं है कि कई लाइनों. 375 00:17:57,910 --> 00:18:01,140 लेकिन उस मामले में, कहा साथ अपने खुद के समारोह लिखने की, 376 00:18:01,140 --> 00:18:03,570 दे सी है कि एहसास आप इस क्षमता. 377 00:18:03,570 --> 00:18:06,940 >> मैं आज के स्रोत कोड में जाने के लिए जा रहा हूँ जो पहले से ही ऑनलाइन उपलब्ध है 378 00:18:06,940 --> 00:18:10,900 और मैं आगे और खुले जा रहा हूँ समारोह 0.C नामक कार्यक्रम, 379 00:18:10,900 --> 00:18:14,620 और समारोह शून्य में हम कुछ चीजों को देखेंगे. 380 00:18:14,620 --> 00:18:19,160 पहली लाइन 18 के माध्यम से 23 मेरे मुख्य कार्य है. 381 00:18:19,160 --> 00:18:22,414 और अब हम पढ़ने के लिए शुरुआत कर रहे हैं कि हम मक्खी पर लिख नहीं कर रहे हैं कि कोड, 382 00:18:22,414 --> 00:18:25,080 लेकिन इसके बजाय मैं पहले से लिखा है या एक समस्या में अपने द्वारा निर्धारित 383 00:18:25,080 --> 00:18:27,910 होने प्राप्त हो सकती है अग्रिम में लिखा गया. 384 00:18:27,910 --> 00:18:30,040 एक अच्छा तरीका शुरू करने के लिए किसी और के कोड को पढ़ने 385 00:18:30,040 --> 00:18:31,400 मुख्य समारोह के लिए लग रही है. 386 00:18:31,400 --> 00:18:34,420 जहां कि प्रवेश चित्रा बाहर सूत्री कार्यक्रम चल रहा है, 387 00:18:34,420 --> 00:18:36,580 और फिर वहाँ से यह तार्किक का पालन करें. 388 00:18:36,580 --> 00:18:40,190 >> इसलिए इस कार्यक्रम जाहिरा तौर पर प्रिंट एक बृहदान्त्र के बाद अपना नाम. 389 00:18:40,190 --> 00:18:42,490 हम तो GetString का उपयोग CS50 पुस्तकालय से 390 00:18:42,490 --> 00:18:46,050 एक स्ट्रिंग, या एक शब्द या वाक्यांश पाने के लिए कीबोर्ड पर उपयोगकर्ता से. 391 00:18:46,050 --> 00:18:48,390 और फिर यह नहीं है बात here-- PrintName. 392 00:18:48,390 --> 00:18:51,420 >> अब PrintName एक नहीं है सी के साथ आता है कि समारोह 393 00:18:51,420 --> 00:18:52,970 यह मानक io.h. में नहीं है 394 00:18:52,970 --> 00:18:55,570 यह CS50.h. में नहीं है 395 00:18:55,570 --> 00:18:57,880 यह एक ही फाइल में नहीं बल्कि है. 396 00:18:57,880 --> 00:19:01,000 मैं नीचे स्क्रॉल अगर नोटिस एक bit-- लाइनों 25 27-- को 397 00:19:01,000 --> 00:19:05,330 यह टिप्पणी का सिर्फ एक सुंदर तरीका है सितारे और स्लैश का उपयोग कर अपने कोड. 398 00:19:05,330 --> 00:19:07,320 यह एक बहु रेखा है टिप्पणी, और यह बस है 399 00:19:07,320 --> 00:19:10,570 के नीले रंग में अपने विवरण इस समारोह में क्या करता है. 400 00:19:10,570 --> 00:19:14,530 >> 31 के माध्यम से लाइनों में 28, क्योंकि मैं एक सुपर सरल समारोह लिखा है 401 00:19:14,530 --> 00:19:16,280 जिसका नाम PrintName है. 402 00:19:16,280 --> 00:19:19,560 यह कितने लेता है तर्क आप कहेंगे? 403 00:19:19,560 --> 00:19:25,120 तो एक argument-- एक है क्योंकि वहाँ कोष्ठकों के अंदर सूचीबद्ध तर्क. 404 00:19:25,120 --> 00:19:27,000 जो के प्रकार स्ट्रिंग है. 405 00:19:27,000 --> 00:19:30,240 कौन सा PrintName कहना है इस ब्लैक बॉक्स की तरह है 406 00:19:30,240 --> 00:19:32,910 लेता है या समारोह इनपुट स्ट्रिंग के रूप में. 407 00:19:32,910 --> 00:19:35,730 >> और कहा कि स्ट्रिंग का नाम सुविधा नाम होगा. 408 00:19:35,730 --> 00:19:37,840 नहीं है, नहीं एन, लेकिन नाम. 409 00:19:37,840 --> 00:19:41,090 तो PrintName क्या करता है? 410 00:19:41,090 --> 00:19:42,210 यह अच्छा सरल है. 411 00:19:42,210 --> 00:19:45,390 सिर्फ कोड की एक लाइन के लिए के रूप में printf, लेकिन जाहिरा तौर पर यह 412 00:19:45,390 --> 00:19:47,950 प्रिंट आउट "हैलो," इतना और इतनी. 413 00:19:47,950 --> 00:19:50,070 कहां अमुक तर्क से आता है. 414 00:19:50,070 --> 00:19:52,300 >> अब यह यहाँ एक विशाल नवीनता नहीं है. 415 00:19:52,300 --> 00:19:56,710 वास्तव में, मुझे लगता है कि सकता है एक कार्यक्रम में ले लिया है कोड की एक पंक्ति के साथ लिखा गया है 416 00:19:56,710 --> 00:20:00,190 यहाँ इस डाल से, और कुछ करने के लिए इसे बदल दिया 417 00:20:00,190 --> 00:20:04,920 कि कुछ छह या सात या तो शामिल नीचे यहाँ कोड की लाइनों के लिए सभी तरह. 418 00:20:04,920 --> 00:20:08,190 >> लेकिन यह एक का अभ्यास कर रहा है अमूर्त रूप में जाना जाता सिद्धांत. 419 00:20:08,190 --> 00:20:12,550 एक तरह से एक नए के अंदर encapsulating एक नाम है कि समारोह, और बेहतर 420 00:20:12,550 --> 00:20:14,590 अभी तक उस नाम का शाब्दिक यह क्या करता है कहते हैं. 421 00:20:14,590 --> 00:20:16,880 मुझे लगता है कि नहीं है printf-- मतलब विशेष रूप से वर्णनात्मक. 422 00:20:16,880 --> 00:20:18,932 मैं एक बनाना चाहते हैं पहेली टुकड़ा, या मैं अगर 423 00:20:18,932 --> 00:20:21,140 एक समारोह बनाना चाहते हैं कि, किसी का नाम प्रिंट 424 00:20:21,140 --> 00:20:23,230 ऐसा करने का सौंदर्य कि मैं वास्तव में यह कर सकते है 425 00:20:23,230 --> 00:20:27,170 उस समारोह में एक नाम देना कि यह क्या करता है वर्णन करता है. 426 00:20:27,170 --> 00:20:29,844 >> अब यह एक इनपुट में लेता है मैं मनमाने ढंग से नाम कहा जाता है, 427 00:20:29,844 --> 00:20:32,760 लेकिन वह भी शानदार वर्णनात्मक है बजाय एक छोटे से अधिक होने का 428 00:20:32,760 --> 00:20:36,140 एस और तरह सामान्य शून्य, अभी के लिए, बस मतलब 429 00:20:36,140 --> 00:20:38,330 इस से काम नहीं करता है कि कुछ भी मुझे वापस हाथ. 430 00:20:38,330 --> 00:20:41,127 यह GetString की तरह नहीं है कि सचमुच एक स्ट्रिंग मुझे वापस हाथ 431 00:20:41,127 --> 00:20:43,960 जैसे हम कागज के टुकड़े के साथ किया था अपने सहपाठियों के साथ पिछले हफ्ते, 432 00:20:43,960 --> 00:20:45,990 बल्कि यह सिर्फ एक पक्ष प्रभाव पड़ता है. 433 00:20:45,990 --> 00:20:48,080 यह स्क्रीन करने के लिए कुछ प्रिंट. 434 00:20:48,080 --> 00:20:53,880 >> दिन के अंत में, तो मैं बना कर समारोह -0, ./function -0, 435 00:20:53,880 --> 00:20:55,450 हम यह मेरे नाम के लिए पूछता है कि देखेंगे. 436 00:20:55,450 --> 00:20:58,150 मैं अपना नाम बाहर प्रकार दाऊद टाइप करें, और यह. 437 00:20:58,150 --> 00:21:01,080 मैं रोब के साथ इसे फिर से करते हैं, यह कहने के लिए जा रहा है "हैलो, रोब." 438 00:21:01,080 --> 00:21:04,280 तो एक साधारण विचार है, लेकिन शायद इस मानसिक रूप से एक्सट्रपलेशन 439 00:21:04,280 --> 00:21:06,750 अपने कार्यक्रमों के रूप में है कि , और अधिक जटिल एक छोटे से 440 00:21:06,750 --> 00:21:10,290 और आप का एक हिस्सा लिखने के लिए चाहते हैं कोड और कॉल कि code-- आह्वान 441 00:21:10,290 --> 00:21:13,270 कुछ वर्णनात्मक द्वारा कि code-- PrintName जैसे नाम, 442 00:21:13,270 --> 00:21:15,600 सी हमें इस क्षमता को वहन करता है. 443 00:21:15,600 --> 00:21:17,660 >> यहाँ एक सरल उदाहरण है. 444 00:21:17,660 --> 00:21:22,940 उदाहरण के लिए, मैं एक खुला return.c बुलाया आज से फाइल, 445 00:21:22,940 --> 00:21:24,270 मैं यहाँ क्या कर दिया नोटिस. 446 00:21:24,270 --> 00:21:26,330 इस मुख्य समारोह के अधिकांश printf है. 447 00:21:26,330 --> 00:21:30,360 मैं पहले मनमाने ढंग से एक को प्रारंभ नंबर 2 के लिए एक्स बुलाया चर. 448 00:21:30,360 --> 00:21:34,110 मैं तो एक्स अब "बाहर प्रिंट % मैं "एक्स के मूल्य में गुजर रहा है. 449 00:21:34,110 --> 00:21:35,500 इसलिए मैं सिर्फ यह क्या कह रहा हूँ. 450 00:21:35,500 --> 00:21:37,208 >> अब मैं सिर्फ साहसपूर्वक हूँ printf के साथ का दावा. 451 00:21:37,208 --> 00:21:42,050 मुझे लगता है कि मूल्य एक्स cubing रहा हूँ, और मैं कर रहा हूँ एक समारोह को फोन करके ऐसा करने 452 00:21:42,050 --> 00:21:45,590 कहा जाता घन निधन तर्क के रूप में एक्स में, 453 00:21:45,590 --> 00:21:49,300 और फिर उत्पादन बचत चर ही में, एक्स. 454 00:21:49,300 --> 00:21:51,340 इसलिए मैं एक्स के मूल्य clobbering रहा हूँ. 455 00:21:51,340 --> 00:21:53,380 मैं अधिभावी रहा हूँ साथ एक्स का मूल्य जो भी 456 00:21:53,380 --> 00:21:56,510 फोन करने का परिणाम इस घन समारोह है. 457 00:21:56,510 --> 00:21:59,530 और फिर मैं सिर्फ कुछ बाहर प्रिंट शराबी सामान यहाँ मैं क्या किया कह रही. 458 00:21:59,530 --> 00:22:01,600 >> तो फिर घन क्या है? 459 00:22:01,600 --> 00:22:03,510 मौलिक क्या है सूचना यहां अलग. 460 00:22:03,510 --> 00:22:05,540 मैं समारोह दी है पहले की तरह एक नाम. 461 00:22:05,540 --> 00:22:08,270 मैं एक तर्क के लिए कोई नाम निर्दिष्ट किया है. 462 00:22:08,270 --> 00:22:11,650 यह n बजाय नाम से कहा जाता है इस बार, लेकिन मुझे लगता है मैं कुछ भी कह सकते हैं. 463 00:22:11,650 --> 00:22:12,650 लेकिन यह अलग है. 464 00:22:12,650 --> 00:22:14,080 बाईं तरफ यह बात. 465 00:22:14,080 --> 00:22:16,290 पहले यह क्या कीवर्ड था? 466 00:22:16,290 --> 00:22:16,870 लड़कों. 467 00:22:16,870 --> 00:22:18,580 अब यह स्पष्ट रूप से पूर्णांक है. 468 00:22:18,580 --> 00:22:20,630 >> तो क्या शायद दूर ले रहा है? 469 00:22:20,630 --> 00:22:24,090 शून्य का प्रतीक है जबकि तरह की शून्य, और कहा कि मामला था. 470 00:22:24,090 --> 00:22:25,970 PrintName कुछ भी नहीं लौटा. 471 00:22:25,970 --> 00:22:27,942 यह कुछ किया है, लेकिन यह मुझे वापस हाथ नहीं था 472 00:22:27,942 --> 00:22:30,650 मैं पर डाल सकता है कि कुछ एक बराबर चिह्न के बाएं हाथ की ओर 473 00:22:30,650 --> 00:22:32,460 जैसे मैं लाइन 22 पर यहाँ किया है. 474 00:22:32,460 --> 00:22:36,780 >> तो मैं लाइन 30 पर में कहते हैं, क्या शायद जिसका अर्थ है कि 475 00:22:36,780 --> 00:22:38,610 क्या घन के बारे में मेरे लिए है? 476 00:22:38,610 --> 00:22:41,110 हाँ? 477 00:22:41,110 --> 00:22:42,310 यह एक पूर्णांक देता है. 478 00:22:42,310 --> 00:22:44,590 तो इसके लिए मुझे वापस हाथ कागज के उदाहरण, एक टुकड़ा 479 00:22:44,590 --> 00:22:46,580 जिस पर यह जवाब लिखा है. 480 00:22:46,580 --> 00:22:50,130 2 cubed, या 3 cubed, या 4 cubed-- मैं, में पारित जो कुछ 481 00:22:50,130 --> 00:22:51,540 और मैं यह कैसे लागू किया? 482 00:22:51,540 --> 00:22:54,810 खैर, अभी एन बार एन बार n मैं एक मूल्य घन कैसे हो सकता है. 483 00:22:54,810 --> 00:22:57,110 तो फिर, सुपर सरल विचार, लेकिन प्रदर्शनात्मक 484 00:22:57,110 --> 00:23:00,100 अब हम कार्यों कैसे लिख सकता है कि वास्तव में हमें वापस था 485 00:23:00,100 --> 00:23:02,380 ब्याज की हो सकती है कि मूल्यों. 486 00:23:02,380 --> 00:23:05,740 >> की एक आखिरी उदाहरण में देखें यहां समारोह से एक कहा जाता है. 487 00:23:05,740 --> 00:23:08,530 इस उदाहरण में, यह शुरू होता है अधिक सम्मोहक पाने के लिए. 488 00:23:08,530 --> 00:23:12,400 तो समारोह में, इस program-- नोटिस अंततः 489 00:23:12,400 --> 00:23:14,920 GetPositiveInt नामक एक समारोह कहता है. 490 00:23:14,920 --> 00:23:17,800 GetPositiveInt एक नहीं है CS50 पुस्तकालय में समारोह 491 00:23:17,800 --> 00:23:20,400 लेकिन हम हम का फैसला यह अस्तित्व में करना चाहते हैं. 492 00:23:20,400 --> 00:23:24,550 >> तो हम बाद की फ़ाइल में नीचे स्क्रॉल, तो मैं लागू करने के बारे में कैसे चला गया नोटिस 493 00:23:24,550 --> 00:23:26,560 सकारात्मक पूर्णांक हो, और मैं यह अधिक सम्मोहक है कहना 494 00:23:26,560 --> 00:23:28,992 यह एक अच्छा है क्योंकि कोड की लाइनों की संख्या. 495 00:23:28,992 --> 00:23:30,700 यह सिर्फ एक मूर्ख नहीं है छोटे खिलौने कार्यक्रम. 496 00:23:30,700 --> 00:23:33,870 यह वास्तव में कुछ त्रुटि जाँच मिल गया है और अधिक उपयोगी कुछ कर रही है. 497 00:23:33,870 --> 00:23:38,470 >> आप walkthrough नहीं देखा है तो अगर हम pset1 में एम्बेडेड है कि वीडियो, 498 00:23:38,470 --> 00:23:42,350 इस का एक प्रकार है कि पता आत्मा में इसी तरह सी में पाश, 499 00:23:42,350 --> 00:23:44,270 बातें खरोंच के प्रकार के लिए कर सकते हैं. 500 00:23:44,270 --> 00:23:46,320 और क्या ऐसा करने के कहते हैं. 501 00:23:46,320 --> 00:23:47,500 इस प्रिंट आउट. 502 00:23:47,500 --> 00:23:51,860 तो आगे बढ़ो और n-- मिल एक पूर्णांक प्राप्त और एन में दुकान, 503 00:23:51,860 --> 00:23:55,760 और रखने के लिए बार बार और यह कर फिर इतने लंबे समय के एन के रूप में कम से कम एक है. 504 00:23:55,760 --> 00:23:58,720 >> तो पता कम से कम एक होने जा रहा है केवल मानव सहयोग नहीं कर रहा है. 505 00:23:58,720 --> 00:24:01,980 वह या वह टाइपिंग है तो 0 या -1 या -50 में, 506 00:24:01,980 --> 00:24:04,790 इस पाश रखने जा रहा है बार बार क्रियान्वित. 507 00:24:04,790 --> 00:24:07,549 और अंत में मैं, नोटिस बस मूल्य वापसी. 508 00:24:07,549 --> 00:24:09,590 तो अब हम एक समारोह है कि अच्छा होता 509 00:24:09,590 --> 00:24:14,040 CS50 में लागू होगा अगर आप के लिए CS50.h और CS50.c, 510 00:24:14,040 --> 00:24:16,520 लेकिन यहाँ हम अब कर सकते हैं इस खुद को लागू करने. 511 00:24:16,520 --> 00:24:19,230 >> लेकिन कुछ महत्वपूर्ण विवरण पर दो टिप्पणियाँ. 512 00:24:19,230 --> 00:24:24,390 One-- क्यों मैं पूर्णांक घोषित किया एन, लाइन 29 पर, तुम्हें क्या लगता है 513 00:24:24,390 --> 00:24:27,139 बजाय सिर्फ कर की यहाँ यह जो है 514 00:24:27,139 --> 00:24:28,930 साथ और अधिक सुसंगत हम पिछले हफ्ते क्या किया? 515 00:24:28,930 --> 00:24:29,430 हाँ? 516 00:24:29,430 --> 00:24:34,485 517 00:24:34,485 --> 00:24:35,110 एक अच्छा विचार. 518 00:24:35,110 --> 00:24:37,080 तो अगर हम इसे डाल रहे थे यहां, यह हम के रूप में यद्यपि है 519 00:24:37,080 --> 00:24:39,110 बार बार यह घोषणा कर रखना. 520 00:24:39,110 --> 00:24:42,000 और खुद का है समस्याग्रस्त नहीं, दर असल, 521 00:24:42,000 --> 00:24:43,940 हम केवल जरूरत है क्योंकि और फिर एक बार मूल्य 522 00:24:43,940 --> 00:24:45,330 हम वैसे भी एक नया एक पाने के लिए जा रहे हैं. 523 00:24:45,330 --> 00:24:45,940 लेकिन एक अच्छा विचार. 524 00:24:45,940 --> 00:24:46,440 हाँ? 525 00:24:46,440 --> 00:24:52,770 526 00:24:52,770 --> 00:24:53,330 >> बंद. 527 00:24:53,330 --> 00:24:59,030 मैं n पर घोषित कर दिया है क्योंकि तो लाइन 29 लूप के बाहर, 528 00:24:59,030 --> 00:25:01,390 यह भर में सुलभ है इस पूरे समारोह. 529 00:25:01,390 --> 00:25:05,400 नहीं अन्य कार्यों क्योंकि n इन घुंघराले के अंदर अभी भी है 530 00:25:05,400 --> 00:25:06,470 यहाँ ब्रेसिज़. 531 00:25:06,470 --> 00:25:07,940 यकीन So--. 532 00:25:07,940 --> 00:25:12,430 533 00:25:12,430 --> 00:25:12,940 >> बिल्कुल सही. 534 00:25:12,940 --> 00:25:14,356 तो इस बात के लिए भी अधिक है. 535 00:25:14,356 --> 00:25:18,600 हम बजाय घोषित हैं n यहीं लाइन 32 पर, 536 00:25:18,600 --> 00:25:22,340 यह अनुमान है कि क्योंकि समस्याग्रस्त है कहाँ और मैं इसे का उपयोग करने की आवश्यकता है? 537 00:25:22,340 --> 00:25:25,620 रेखा 34, और पर अंगूठे के सामान्य नियम है 538 00:25:25,620 --> 00:25:30,060 आप केवल एक चर का उपयोग कर सकते हैं सबसे हाल ही घुंघराले ब्रेसिज़ के अंदर 539 00:25:30,060 --> 00:25:31,420 जिसमें आप यह घोषणा की. 540 00:25:31,420 --> 00:25:35,230 >> दुर्भाग्य से, रेखा 34 एक पंक्ति, बहुत देर हो चुकी है 541 00:25:35,230 --> 00:25:38,560 मैं पहले से ही बंद कर दिया है क्योंकि लाइन 33 पर घुंघराले ब्रेस 542 00:25:38,560 --> 00:25:41,220 उस से मेल खाती है लाइन 30 पर घुंघराले ब्रेस. 543 00:25:41,220 --> 00:25:44,180 और इसलिए यह कहने का एक तरीका है इस चर पूर्णांक scoped है कि, 544 00:25:44,180 --> 00:25:46,970 इतना ही अंदर करने के लिए, बात करने के लिए उन घुंघराले ब्रेसिज़ की. 545 00:25:46,970 --> 00:25:48,910 यह सिर्फ उनमें से बाहर मौजूद नहीं है. 546 00:25:48,910 --> 00:25:51,580 >> तो वास्तव में, अगर मैं इस गलत, मुझे कोड बचाने 547 00:25:51,580 --> 00:25:53,530 के रूप में इसे गलत तरीके से लिखा is--. 548 00:25:53,530 --> 00:25:57,990 मुझे आगे जाना है और कर करते हैं समारोह -1, और notice-- त्रुटि. 549 00:25:57,990 --> 00:26:03,502 अघोषित पहचानकर्ता n का उपयोग यहीं है जो लाइन 35 पर. 550 00:26:03,502 --> 00:26:05,210 और हम ऊपर स्क्रॉल अगर इसके अलावा, एक और एक. 551 00:26:05,210 --> 00:26:08,750 अघोषित का प्रयोग करें लाइन 34 पर पहचानकर्ता एन. 552 00:26:08,750 --> 00:26:11,200 >> तो संकलक, बजना, यह देख रही है कि बस 553 00:26:11,200 --> 00:26:13,720 भले ही मौजूद नहीं है स्पष्ट रूप से यह नेत्रहीन है. 554 00:26:13,720 --> 00:26:16,090 तो एक सरल तय वहाँ यह घोषणा कर रहा है. 555 00:26:16,090 --> 00:26:18,790 >> अब मेरे लिए स्क्रॉल जाने फ़ाइल के ऊपर. 556 00:26:18,790 --> 00:26:21,080 क्या आप के रूप में बाहर कूदता एक छोटे से अलग किया जा रहा है 557 00:26:21,080 --> 00:26:23,070 सामान से हम पिछले सप्ताह में देखा? 558 00:26:23,070 --> 00:26:26,990 इतना ही नहीं नाम मेरे पास है, न ही करना मैं, कुछ तेज शीर्ष तक शामिल है 559 00:26:26,990 --> 00:26:29,340 मुझे लगता है मैं कर रहा हूँ कुछ है एक प्रोटोटाइप बुला. 560 00:26:29,340 --> 00:26:36,100 अब जब कि भय समान दिखता है क्या हम बस लाइन 27 पर एक पल पहले देखा था. 561 00:26:36,100 --> 00:26:39,230 >> तो चलो एक अलग से अनुमान जाने मैं इस किया है क्यों त्रुटि संदेश. 562 00:26:39,230 --> 00:26:42,050 मुझे आगे चलते हैं और वहाँ इन पंक्तियों को हटा दें. 563 00:26:42,050 --> 00:26:44,240 और इसलिए हम प्रोटोटाइप के बारे में कुछ नहीं पता है. 564 00:26:44,240 --> 00:26:45,430 इस फ़ाइल रीमेक. 565 00:26:45,430 --> 00:26:46,890 समारोह एक बनाओ. 566 00:26:46,890 --> 00:26:48,090 और अब, लानत, चार त्रुटियों. 567 00:26:48,090 --> 00:26:50,220 के पहले एक अप करने के लिए स्क्रॉल करने दें. 568 00:26:50,220 --> 00:26:55,070 >> समारोह के निहित घोषणा सकारात्मक पूर्णांक प्राप्त C99 में अवैध है. 569 00:26:55,070 --> 00:26:57,780 C99 सिर्फ 1999 का मतलब भाषा के संस्करण 570 00:26:57,780 --> 00:26:59,710 हम वास्तव में क्या प्रयोग कर रहे है जो सी,. 571 00:26:59,710 --> 00:27:01,050 तो इसका मतलब क्या है? 572 00:27:01,050 --> 00:27:05,250 खैर C-- और अधिक विशेष रूप से सी सुंदर गूंगा कार्यक्रमों compilers-- हैं. 573 00:27:05,250 --> 00:27:07,420 वे केवल आप क्या किया है पता उन्हें बताया, और कहा कि 574 00:27:07,420 --> 00:27:08,960 पिछले सप्ताह से वास्तव में विषयगत. 575 00:27:08,960 --> 00:27:12,910 >> समस्या मैं जाना है यहां नाम को लागू करने के बारे में, 576 00:27:12,910 --> 00:27:17,640 और मैं एक समारोह कॉल लाइन 20 पर यहां GetPositiveInt, 577 00:27:17,640 --> 00:27:22,520 उस समारोह तकनीकी रूप से नहीं करता है संकलक लाइन 27 देखता है जब तक मौजूद हैं. 578 00:27:22,520 --> 00:27:25,450 दुर्भाग्य से, संकलक है शीर्ष, नीचे, ठीक है, छोड़ दिया बातें कर रही है, 579 00:27:25,450 --> 00:27:29,580 यह नहीं देखा है क्योंकि इतना GetPositiveInt के कार्यान्वयन, 580 00:27:29,580 --> 00:27:32,400 लेकिन यह आप की कोशिश कर देखता है यहाँ इसे उपयोग करने के लिए, 581 00:27:32,400 --> 00:27:35,810 यह बस पर चिल्लाना bail-- जा रहा है एक त्रुटि के साथ आप शायद message-- 582 00:27:35,810 --> 00:27:38,440 गुप्त, और वास्तव में नहीं फ़ाइल संकलन. 583 00:27:38,440 --> 00:27:41,940 >> तो एक तथाकथित प्रोटोटाइप अप यहां वैसे बेमानी है. 584 00:27:41,940 --> 00:27:47,870 सचमुच, मैं यहाँ नीचे चला गया और मैं नकल और इस चिपकाया, और मैं इसे यहाँ डाल दिया. 585 00:27:47,870 --> 00:27:51,020 शून्य अधिक उचित होगा, तो हम करेंगे सचमुच कॉपी और यह इस समय चिपकाएं. 586 00:27:51,020 --> 00:27:52,854 मैं सचमुच की नकल की और इसे चिपकाया. 587 00:27:52,854 --> 00:27:54,270 वास्तव में सिर्फ एक रोटी टुकड़ा तरह के रूप में. 588 00:27:54,270 --> 00:27:56,260 >> संकलक के लिए एक छोटी सी सुराग. 589 00:27:56,260 --> 00:27:58,860 मैं यह क्या है पता नहीं है अभी तक, लेकिन मैं तुमसे वादा रहा हूँ 590 00:27:58,860 --> 00:28:00,260 यह अंततः मौजूद होगा. 591 00:28:00,260 --> 00:28:04,010 इस में line-- यही कारण है कि लाइन 16-- अर्धविराम के साथ समाप्त होता है. 592 00:28:04,010 --> 00:28:05,486 यह डिजाइन से बेमानी है. 593 00:28:05,486 --> 00:28:05,986 हाँ? 594 00:28:05,986 --> 00:28:11,340 595 00:28:11,340 --> 00:28:14,360 >> आप अपने पुस्तकालय लिंक नहीं किया है ओह, अच्छा सवाल the-- लिए. 596 00:28:14,360 --> 00:28:17,350 तीव्र हेडर फाइल समावेशन भी शामिल है. 597 00:28:17,350 --> 00:28:20,040 चाहिए लगभग be-- करने की आवश्यकता हमेशा ऊपर से ही हो 598 00:28:20,040 --> 00:28:23,270 के लिए एक similar-- के लिए फ़ाइल की वास्तव में एक ही कारण है, हाँ. 599 00:28:23,270 --> 00:28:26,430 मानक में क्योंकि io.h सचमुच एक रेखा है 600 00:28:26,430 --> 00:28:30,560 इस तरह, लेकिन शब्द printf साथ, और अपने तर्क और अपनी वापसी प्रकार के साथ. 601 00:28:30,560 --> 00:28:33,310 और तो तेज कर रही द्वारा शामिल यहाँ, तुम सचमुच क्या कर रहे हैं 602 00:28:33,310 --> 00:28:36,380 सामग्री कॉपी करने और चिपकाने है किसी का किसी और ऊपर लिखा था. 603 00:28:36,380 --> 00:28:39,660 इस प्रकार करने में अपने कोड cluing उन कार्यों मौजूद तथ्य यह है कि. 604 00:28:39,660 --> 00:28:40,160 हाँ? 605 00:28:40,160 --> 00:28:47,520 606 00:28:47,520 --> 00:28:48,260 >> बिल्कुल. 607 00:28:48,260 --> 00:28:51,690 तो एक बहुत चालाक और सही समाधान होगा, आप क्या जानते हैं? 608 00:28:51,690 --> 00:28:53,760 मैं नहीं जानता कि क्या एक प्रोटोटाइप है, लेकिन मुझे पता है 609 00:28:53,760 --> 00:28:56,390 मैं सी बस समझते हैं कि अगर गूंगा और नीचे से ऊपर rethinks. 610 00:28:56,390 --> 00:28:57,820 खैर चलो यह क्या चाहता है यह दे. 611 00:28:57,820 --> 00:29:01,650 इसे पेस्ट, चलो उस कोड कटौती शीर्ष, और अब नीचे नीचे मुख्य धक्का. 612 00:29:01,650 --> 00:29:03,470 यह भी समस्या का समाधान होगा. 613 00:29:03,470 --> 00:29:07,409 >> लेकिन आप बहुत आसानी के साथ आ सकता ए बी फोन करने की जरूरत है जो एक परिदृश्य में, 614 00:29:07,409 --> 00:29:10,075 और शायद बी ए यह वापस करने के लिए कॉल प्रत्यावर्तन कुछ कहा है, 615 00:29:10,075 --> 00:29:11,370 और हम वापस कि करने के लिए आया हूँ. 616 00:29:11,370 --> 00:29:13,911 और यह या एक अच्छा नहीं हो सकता है बात है, लेकिन आप निश्चित रूप से कर सकते हैं 617 00:29:13,911 --> 00:29:15,110 इस समाधान को तोड़ने. 618 00:29:15,110 --> 00:29:17,690 >> और इसके अलावा, मैं करूंगा stylistically दावा, 619 00:29:17,690 --> 00:29:20,760 विशेष रूप से जब अपने कार्यक्रमों इस लंबी और इस लंबे हो जाते हैं, 620 00:29:20,760 --> 00:29:23,064 यह सिर्फ सुपर सुविधाजनक है शीर्ष पर मुख्य डाल करने के लिए 621 00:29:23,064 --> 00:29:25,730 यह बात है क्योंकि सबसे प्रोग्रामर के बारे में देखभाल करने के लिए जा रहे हैं. 622 00:29:25,730 --> 00:29:28,150 और तो यह एक छोटे से क्लीनर है, यकीनन, यह तरीके से करना 623 00:29:28,150 --> 00:29:30,380 मैं मूल रूप से यह किया एक प्रोटोटाइप के साथ भी 624 00:29:30,380 --> 00:29:33,396 यह एक छोटे से लग रहा है, हालांकि पहली नज़र में अनावश्यक. 625 00:29:33,396 --> 00:29:33,895 हाँ? 626 00:29:33,895 --> 00:29:36,472 627 00:29:36,472 --> 00:29:37,680 क्षमा करें, आप जोर से यह कह सकते हैं? 628 00:29:37,680 --> 00:29:45,650 629 00:29:45,650 --> 00:29:49,580 >> आप के स्थानों स्विच कार्यान्वयन और प्रोटोटाइप? 630 00:29:49,580 --> 00:29:51,270 तो यह एक अच्छा सवाल है. 631 00:29:51,270 --> 00:29:53,780 यदि आप इस नीचे फिर से घोषित यहाँ, चलो देखते हैं क्या होता. 632 00:29:53,780 --> 00:29:55,530 मैं यह नीचे डाल तो अगर यहाँ, आप कह रहे हैं. 633 00:29:55,530 --> 00:29:57,860 634 00:29:57,860 --> 00:29:58,360 ओह, माफ करना. 635 00:29:58,360 --> 00:29:58,859 जोर से? 636 00:29:58,859 --> 00:30:02,000 637 00:30:02,000 --> 00:30:04,011 यहां तक ​​कि जोर से. 638 00:30:04,011 --> 00:30:04,760 ओह, अच्छा सवाल है. 639 00:30:04,760 --> 00:30:05,860 यह समारोह रद्द होगा? 640 00:30:05,860 --> 00:30:08,901 तुम्हें पता है, इन सभी वर्षों के बाद, मैं बाद में एक प्रोटोटाइप कभी नहीं रखा है. 641 00:30:08,901 --> 00:30:13,810 तो चलो समारोह -1 बना करते हैं उस करने के बाद. 642 00:30:13,810 --> 00:30:15,279 >> [गुनगुन] 643 00:30:15,279 --> 00:30:16,320 डेविड जे Malan: ओह, रुको. 644 00:30:16,320 --> 00:30:17,944 हम अभी भी शीर्ष सब कुछ डाल दिया है. 645 00:30:17,944 --> 00:30:21,400 इसलिए मैं कर रहा हूँ, अगर यहाँ इस अप करते हैं सही ढंग से अपने प्रश्न को समझने. 646 00:30:21,400 --> 00:30:24,700 मैं सहित सब कुछ डाल रहा हूँ मुख्य ऊपर प्रोटोटाइप, 647 00:30:24,700 --> 00:30:28,180 लेकिन मैं प्रोटोटाइप डाल रहा हूँ कार्यान्वयन नीचे. 648 00:30:28,180 --> 00:30:33,190 >> मैं बना, तो मैं जा रहा हूँ तो वापस एक error-- अप्रयुक्त चर एन. 649 00:30:33,190 --> 00:30:37,280 650 00:30:37,280 --> 00:30:37,860 ओह, वहाँ. 651 00:30:37,860 --> 00:30:38,360 धन्यवाद. 652 00:30:38,360 --> 00:30:39,430 चलो देखते हैं, हम इससे छुटकारा पाना. 653 00:30:39,430 --> 00:30:41,304 यह एक अलग बग तो चलो कि उपेक्षा करते हैं. 654 00:30:41,304 --> 00:30:43,910 वास्तव में जल्दी से इस रीमेक करते हैं. 655 00:30:43,910 --> 00:30:48,100 >> ठीक है, तो डेटा तर्क नहीं प्रारूप स्ट्रिंग द्वारा इस्तेमाल किया 656 00:30:48,100 --> 00:30:52,310 ओह n--, कि क्योंकि है मैं यहाँ इन करने के लिए बदल दिया है. 657 00:30:52,310 --> 00:30:55,885 ठीक है, हम जानते हैं क्या जवाब to-- सब ठीक चल रहा है, यहाँ हम चले. 658 00:30:55,885 --> 00:31:00,560 आह, सकारात्मक के लिए धन्यवाद. 659 00:31:00,560 --> 00:31:03,430 सब ठीक है, मैं इस कोड को ठीक कर देंगे after-- इस विशेष बग की अनदेखी 660 00:31:03,430 --> 00:31:08,300 इस से यह काम करता was-- के बाद से जवाब है. 661 00:31:08,300 --> 00:31:11,560 >> इसलिए यह लिख नहीं करता क्या आप अभी किया है. 662 00:31:11,560 --> 00:31:14,800 मैं संकलक संदेह इस तरह से लिखा है 663 00:31:14,800 --> 00:31:18,420 यह अपने प्रोटोटाइप अनदेखी कर रही है कि शरीर क्योंकि, तो बात है, 664 00:31:18,420 --> 00:31:20,922 समारोह में पहले से ही है की उच्च ऊपर लागू कर दिया गया. 665 00:31:20,922 --> 00:31:23,380 मैं वास्तव में परामर्श करना होगा संकलक का मार्गदर्शन 666 00:31:23,380 --> 00:31:26,171 किसी भी अन्य अगर वहाँ समझने के लिए निहितार्थ, लेकिन पहली नज़र में 667 00:31:26,171 --> 00:31:29,290 बस की कोशिश कर रहा है और प्रयोग के द्वारा, कोई असर नहीं हो रहा है. 668 00:31:29,290 --> 00:31:30,730 अच्छा सवाल है. 669 00:31:30,730 --> 00:31:33,660 >> तो चलो, अब आगे बना घूम रहा अवगत दूर दुष्प्रभाव से जो 670 00:31:33,660 --> 00:31:36,660 ऐसा कुछ कर उस कार्य कर रहे हैं नेत्रहीन printf के साथ स्क्रीन पर, 671 00:31:36,660 --> 00:31:38,090 लेकिन एक मूल्य वापस नहीं करते. 672 00:31:38,090 --> 00:31:41,550 और कहा कि कार्यों की वापसी है हम जैसे मूल्यों बस की कुछ देखा. 673 00:31:41,550 --> 00:31:45,350 हम पहले से ही गुंजाइश की इस धारणा को देखा और हम फिर से और फिर से इस देखेंगे. 674 00:31:45,350 --> 00:31:47,210 लेकिन अब के लिए, फिर से, अंगूठे का नियम उपयोग 675 00:31:47,210 --> 00:31:51,410 एक चर ही इस्तेमाल किया जा सकता है सबसे हाल ही में खोला के अंदर 676 00:31:51,410 --> 00:31:54,350 और हम के रूप में बंद घुंघराले ब्रेसिज़ उस विशेष उदाहरण में देखा था. 677 00:31:54,350 --> 00:31:56,910 >> और तुम, के रूप में बताया एक ability-- है 678 00:31:56,910 --> 00:32:00,040 आप इनमें से कुछ समस्याओं को हल कर सकता विश्व स्तर पर एक चर डाल द्वारा 679 00:32:00,040 --> 00:32:01,290 एक फ़ाइल के ऊपर से ही. 680 00:32:01,290 --> 00:32:03,630 लेकिन लगभग सभी मामलों में हम उस पर भ्रूभंग होगा, 681 00:32:03,630 --> 00:32:06,170 और वास्तव में भी नहीं जाना अब के लिए कि समाधान में. 682 00:32:06,170 --> 00:32:09,890 तो अब, takeaway है चर गुंजाइश की इस धारणा है. 683 00:32:09,890 --> 00:32:13,430 >> लेकिन अब एक और को देखो वास्तव में देखने का सूखा रास्ता 684 00:32:13,430 --> 00:32:15,810 कुछ बहुत ही रोचक पर कार्यान्वयन विवरण. 685 00:32:15,810 --> 00:32:17,810 हम कैसे जानकारी का प्रतिनिधित्व हो सकता है. 686 00:32:17,810 --> 00:32:20,370 और हम पहले से ही इस पर ध्यान दिया वर्ग के पहले हफ्ते में. 687 00:32:20,370 --> 00:32:23,320 बायनेरिज़ को देखते हुए, और दशमलव के लिए खुद को याद दिलाता है. 688 00:32:23,320 --> 00:32:28,310 >> लेकिन सी है कि पिछले सप्ताह से याद विभिन्न प्रकार के डेटा और गुच्छों अधिक, 689 00:32:28,310 --> 00:32:30,600 लेकिन सबसे उपयोगी वाले अब के लिए इन हो सकता है. 690 00:32:30,600 --> 00:32:36,030 होता है जो एक चार, या चरित्र, एक बाइट, या आठ बिट्स कुल किया जाना है. 691 00:32:36,030 --> 00:32:40,060 और वह आकार कहना है कि एक चार में से केवल एक बाइट है. 692 00:32:40,060 --> 00:32:45,370 एक बाइट आठ बिट है, तो इस का मतलब है कि हम कितने वर्ण का प्रतिनिधित्व कर सकते हैं. 693 00:32:45,370 --> 00:32:47,320 कितने पत्र या कीबोर्ड पर प्रतीकों 694 00:32:47,320 --> 00:32:49,210 हम एक बाइट या आठ बिट है. 695 00:32:49,210 --> 00:32:51,546 वापस सप्ताह शून्य करने के बारे में सोचो. 696 00:32:51,546 --> 00:32:53,420 आप आठ बिट है, कितने कुल मूल्यों 697 00:32:53,420 --> 00:32:55,503 आप के साथ प्रतिनिधित्व कर सकते हैं शून्य और लोगों के पैटर्न? 698 00:32:55,503 --> 00:32:58,170 699 00:32:58,170 --> 00:33:00,260 उस से भी अधिक One--. 700 00:33:00,260 --> 00:33:03,490 तो 256 कुल आप अगर शून्य से गिनती शुरू करते हैं. 701 00:33:03,490 --> 00:33:07,120 तो आप आठ bits-- तो हम अगर है तो , फिर हमारे यहाँ द्विआधारी बल्ब था 702 00:33:07,120 --> 00:33:12,180 हम पर उन प्रकाश बल्ब बदल सकती है और 256 अद्वितीय पैटर्न में से किसी में बंद. 703 00:33:12,180 --> 00:33:13,640 >> अब यह थोड़ा समस्याग्रस्त है. 704 00:33:13,640 --> 00:33:16,857 अंग्रेजी और के लिए इतना नहीं रोमांस भाषाओं, लेकिन निश्चित रूप से 705 00:33:16,857 --> 00:33:19,190 आप को पेश करते हैं, के लिए उदाहरण, एशियाई भाषाओं, जो 706 00:33:19,190 --> 00:33:22,580 जैसे की तुलना में कहीं अधिक चिह्न है वर्णमाला के 26 अक्षर. 707 00:33:22,580 --> 00:33:24,390 हम वास्तव में जरूरत हो सकती है एक बाइट से अधिक है. 708 00:33:24,390 --> 00:33:28,240 और शुक्र में हाल के वर्षों समाज है 709 00:33:28,240 --> 00:33:31,040 उपयोग करने वाले अपनाया अन्य मानकों आरोप के अनुसार एक से अधिक बाइट. 710 00:33:31,040 --> 00:33:34,210 >> लेकिन अब सी में, दोष के लिए सिर्फ एक बाइट या आठ बिट है. 711 00:33:34,210 --> 00:33:38,195 एक पूर्णांक है, इस बीच, चार है बाइट्स, अन्यथा 32 बिट के रूप में जाना जाता है. 712 00:33:38,195 --> 00:33:41,320 कौन सी सबसे बड़ी संभव है क्या मतलब है संख्या हम एक पूर्णांक के साथ प्रतिनिधित्व कर सकते हैं 713 00:33:41,320 --> 00:33:41,820 जाहिरा तौर पर? 714 00:33:41,820 --> 00:33:44,426 715 00:33:44,426 --> 00:33:45,050 एक अरब डॉलर के साथ. 716 00:33:45,050 --> 00:33:46,760 तो यह चार अरब दे या ले रहा है. 717 00:33:46,760 --> 00:33:49,840 2 32th बिजली, हम अगर कोई नकारात्मक संख्या मान 718 00:33:49,840 --> 00:33:52,530 और सिर्फ सभी सकारात्मक उपयोग संख्या, यह चार अरब है 719 00:33:52,530 --> 00:33:53,730 दे या संभावित जगह ले. 720 00:33:53,730 --> 00:33:57,890 एक नाव, इस बीच, एक अलग प्रकार है यह अभी भी एक नंबर सी में डेटा प्रकार की, 721 00:33:57,890 --> 00:33:58,990 लेकिन यह एक वास्तविक संख्या है. 722 00:33:58,990 --> 00:34:00,660 एक दशमलव बिंदु के साथ कुछ. 723 00:34:00,660 --> 00:34:03,000 और यह पता चला है कि सी भी चार बाइट्स का उपयोग करता है 724 00:34:03,000 --> 00:34:05,340 चल बिन्दु मूल्यों का प्रतिनिधित्व करने के लिए. 725 00:34:05,340 --> 00:34:09,420 >> दुर्भाग्य से कितने चल बात मान दुनिया में कर रहे हैं? 726 00:34:09,420 --> 00:34:11,582 कितने वास्तविक संख्या कर रहे हैं? 727 00:34:11,582 --> 00:34:13,540 एक अनंत नहीं है संख्या, और के लिए कि मामला 728 00:34:13,540 --> 00:34:15,164 पूर्णांकों की एक अनंत संख्या है. 729 00:34:15,164 --> 00:34:18,070 तो हम एक तरह से पहले से ही कर रहे हैं यहाँ अपने आप को एक छेद खुदाई. 730 00:34:18,070 --> 00:34:21,780 जिससे जाहिरा तौर computers-- में them-- पर सी में लिखा कम से कम कार्यक्रमों 731 00:34:21,780 --> 00:34:24,110 केवल उच्च के रूप में गिनती कर सकते हैं चार अरब, दे या ले 732 00:34:24,110 --> 00:34:26,260 और बिंदु मूल्यों चल केवल जाहिरा तौर पर 733 00:34:26,260 --> 00:34:28,330 परिशुद्धता के कुछ सीमित मात्रा में है. 734 00:34:28,330 --> 00:34:30,810 केवल इतने सारे अंक के बाद उनकी दशमलव बिंदु. 735 00:34:30,810 --> 00:34:32,822 >> क्योंकि, जाहिर है, अगर आप केवल 32 बिट्स है, 736 00:34:32,822 --> 00:34:36,030 मुझे लगता है हम के बारे में जाने के लिए जा रहे हैं पता नहीं कैसे शायद असली numbers-- का प्रतिनिधित्व 737 00:34:36,030 --> 00:34:37,409 पैटर्न के विभिन्न प्रकार के साथ. 738 00:34:37,409 --> 00:34:40,030 लेकिन निश्चित रूप से एक सीमित नहीं है इस तरह के पैटर्न की संख्या, 739 00:34:40,030 --> 00:34:41,830 तो यहां भी इस समस्याग्रस्त है. 740 00:34:41,830 --> 00:34:43,710 >> अब हम थोड़ा समस्या से बच सकते हैं. 741 00:34:43,710 --> 00:34:45,710 आप एक नाव का उपयोग नहीं करते हैं, आप एक डबल इस्तेमाल कर सकते हैं 742 00:34:45,710 --> 00:34:50,230 सी में, जो आप आठ बाइट्स, जो देता है शून्य का रास्ता अधिक संभव पैटर्न है 743 00:34:50,230 --> 00:34:50,730 और लोगों को. 744 00:34:50,730 --> 00:34:55,199 लेकिन यह जो हो रहा है, अभी भी सीमित है आप सॉफ्टवेयर लिखने अगर समस्याग्रस्त होने का 745 00:34:55,199 --> 00:34:57,670 ग्राफिक्स के लिए या कल्पना के लिए गणितीय सूत्र. 746 00:34:57,670 --> 00:35:00,410 तो क्या आप वास्तव में चाहते हो सकता है उस से भी बड़ा तक गिनती करने के लिए. 747 00:35:00,410 --> 00:35:05,640 एक लंबे long-- मूर्खता named-- भी आठ बाइट्स, या 64 बिट्स है, 748 00:35:05,640 --> 00:35:10,260 और यह एक पूर्णांक के रूप में दो बार के रूप में लंबे समय है और यह एक लंबी पूर्णांक मान के लिए है. 749 00:35:10,260 --> 00:35:15,655 >> मज़ा fact-- एक int, चार बाइट्स है अगर आम तौर पर सी में एक लंबे समय से कितनी देर है? 750 00:35:15,655 --> 00:35:18,290 751 00:35:18,290 --> 00:35:21,560 इसके अलावा चार बाइट्स, लेकिन एक लंबे आठ बाइट्स है, 752 00:35:21,560 --> 00:35:23,050 और इस ऐतिहासिक कारणों के लिए है. 753 00:35:23,050 --> 00:35:26,450 >> लेकिन अब takeaway सिर्फ इतना है कि डेटा है है 754 00:35:26,450 --> 00:35:29,625 है कि एक computer-- में प्रतिनिधित्व किया बिजली के साथ एक भौतिक डिवाइस, 755 00:35:29,625 --> 00:35:32,190 यह आम तौर पर गाड़ी चला रहा है उन शून्य और ones-- 756 00:35:32,190 --> 00:35:34,320 परिशुद्धता के सीमित मात्रा के साथ. 757 00:35:34,320 --> 00:35:35,620 तो समस्या तो क्या है? 758 00:35:35,620 --> 00:35:37,480 >> वैसे वहाँ एक समस्या है पूर्णांक अतिप्रवाह की. 759 00:35:37,480 --> 00:35:39,780 इतना ही नहीं सी में, लेकिन में सामान्य रूप में कंप्यूटर. 760 00:35:39,780 --> 00:35:42,590 उदाहरण के लिए, यह अगर एक बाइट लायक एक bit-- है 761 00:35:42,590 --> 00:35:45,120 इसलिए यह सभी आठ bit-- है जो की नंबर एक हैं. 762 00:35:45,120 --> 00:35:47,300 क्या संख्या है यह हम मान लें यदि का प्रतिनिधित्व 763 00:35:47,300 --> 00:35:50,730 यह बाइनरी में सभी सकारात्मक मूल्यों है? 764 00:35:50,730 --> 00:35:54,410 >> 255, और यह 256 है, क्योंकि नहीं है शून्य सबसे कम संख्या है. 765 00:35:54,410 --> 00:35:56,760 तो 255 सबसे ज्यादा है एक, लेकिन समस्या 766 00:35:56,760 --> 00:36:00,330 मैं चाहता था कि लगता है इस चर वेतन वृद्धि कि 767 00:36:00,330 --> 00:36:04,030 आठ बिट्स कुल उपयोग कर रहा है मैं यह वेतन वृद्धि करना चाहते हैं. 768 00:36:04,030 --> 00:36:07,160 >> वैसे मैं जोड़ने के रूप में जल्द ही के रूप में एक इन लोगों में से सभी के लिए एक, 769 00:36:07,160 --> 00:36:10,500 आप शायद अभी visually-- कल्पना कर सकते हैं decimals-- का उपयोग कर एक ले जाने की तरह 770 00:36:10,500 --> 00:36:12,300 कुछ बाईं ओर प्रवाह करने के लिए जा रहा है. 771 00:36:12,300 --> 00:36:15,590 और वास्तव में, मैं नंबर जोड़ने अगर इस के लिए एक, क्या बाइनरी में होता है 772 00:36:15,590 --> 00:36:17,670 इसे वापस करने के लिए शून्य overflows है. 773 00:36:17,670 --> 00:36:21,730 >> तो आप केवल एक पूर्णांक नहीं use-- हैं, लेकिन एक बाइट पूर्णांकों गिनती करने के लिए 774 00:36:21,730 --> 00:36:27,170 एक कार्यक्रम में, जैसे ही default-- द्वारा आप 250 के लिए प्राप्त 251, 252, 253, 254, 775 00:36:27,170 --> 00:36:32,710 255-- 0, 255 के बाद आता है जो शायद नहीं क्या है 776 00:36:32,710 --> 00:36:34,790 एक उपयोगकर्ता की उम्मीद करने जा रहा है. 777 00:36:34,790 --> 00:36:39,620 >> अब इस बीच बिंदु दुनिया चल में, आप भी एक ऐसी ही समस्या है. 778 00:36:39,620 --> 00:36:42,670 सबसे बड़ा number-- साथ इतना नहीं हालांकि वह अभी भी एक मुद्दा है. 779 00:36:42,670 --> 00:36:45,360 लेकिन परिशुद्धता की राशि के साथ आप का प्रतिनिधित्व कर सकते हैं. 780 00:36:45,360 --> 00:36:49,490 तो चलो इस उदाहरण पर एक नज़र रखना यहाँ भी आज के स्रोत code-- से 781 00:36:49,490 --> 00:36:52,070 नाव 0.c. 782 00:36:52,070 --> 00:36:54,280 >> और यह एक सुपर नोटिस साधारण प्रोग्राम है कि 783 00:36:54,280 --> 00:36:56,580 जाहिरा तौर पर क्या मूल्य बाहर प्रिंट करना चाहिए? 784 00:36:56,580 --> 00:37:00,777 785 00:37:00,777 --> 00:37:04,110 आप इस मुद्रित करने के लिए जा रहा है दांव लगाना है क्या नई वाक्य रचना का एक सा है, भले ही 786 00:37:04,110 --> 00:37:05,540 यहाँ? 787 00:37:05,540 --> 00:37:06,700 इसलिए उम्मीद है कि 0.1. 788 00:37:06,700 --> 00:37:10,000 तो एक दसवें के बराबर मैं 10 से विभाजित 1 कर रहा हूँ क्योंकि. 789 00:37:10,000 --> 00:37:12,430 मैं जवाब भंडारण कर रहा हूँ एक चर में च बुलाया. 790 00:37:12,430 --> 00:37:15,850 कि चर प्रकार नाव की है जो मैं सिर्फ प्रस्तावित एक कीवर्ड अस्तित्व में है. 791 00:37:15,850 --> 00:37:18,910 >> हम पहले यह देखा है, लेकिन नहीं किया है इस printf में एक साफ रास्ता की तरह है 792 00:37:18,910 --> 00:37:22,110 कितने अंक निर्दिष्ट करने के लिए आप एक दशमलव बिंदु के बाद देखना चाहते हैं. 793 00:37:22,110 --> 00:37:25,020 तो इस अंकन सिर्फ मतलब कि यहां एक प्लेसहोल्डर है. 794 00:37:25,020 --> 00:37:27,900 यह एक चल बिन्दु के लिए है मूल्य, और ओह, वैसे, 795 00:37:27,900 --> 00:37:31,389 दशमलव बिंदु के साथ साथ यह दिखाने दशमलव बिंदु के बाद एक नंबर. 796 00:37:31,389 --> 00:37:33,180 इसलिए कि नंबर महत्वपूर्ण अंक की, 797 00:37:33,180 --> 00:37:34,650 तो तुम चाहते हो सकता है कि बात करने के लिए. 798 00:37:34,650 --> 00:37:40,450 >> तो मुझे आगे जाना है और करते हैं ./float -0, नाव -0 बनाने, 799 00:37:40,450 --> 00:37:46,660 और जाहिरा तौर पर 1 10 से विभाजित 0.0 है. 800 00:37:46,660 --> 00:37:47,760 अब ऐसा क्यों है? 801 00:37:47,760 --> 00:37:51,380 >> खैर फिर, कंप्यूटर ले जा रहा है मुझे सचमुच, और मैं 1 लिखा है 802 00:37:51,380 --> 00:37:56,680 और मैं 10 लिखा है, और एक अनुमान ले क्या उन दोनों के लिए ग्रहण डेटा प्रकार है 803 00:37:56,680 --> 00:37:58,440 मूल्यों? 804 00:37:58,440 --> 00:38:00,970 एक पूर्णांक, यह तकनीकी रूप से है एक छोटे से कुछ अलग. 805 00:38:00,970 --> 00:38:04,150 यह आम तौर पर एक लंबे समय से है, लेकिन यह बात है अंततः एक अभिन्न मूल्य. 806 00:38:04,150 --> 00:38:06,030 नहीं एक चल बिन्दु मूल्य. 807 00:38:06,030 --> 00:38:09,456 >> कौन सा है कि अगर यह कहने के लिए है , एक पूर्णांक है और यह एक पूर्णांक है 808 00:38:09,456 --> 00:38:11,830 समस्या कंप्यूटर है क्षमता नहीं है 809 00:38:11,830 --> 00:38:13,680 यहां तक ​​कि दशमलव बिंदु स्टोर करने के लिए. 810 00:38:13,680 --> 00:38:16,430 आप 1 ऐसा इसलिए जब विभाजित 10 का उपयोग पूर्णांकों से 811 00:38:16,430 --> 00:38:20,950 अंश और दोनों के लिए विभाजक, जवाब 0.1 होना चाहिए. 812 00:38:20,950 --> 00:38:24,930 लेकिन computer-- क्योंकि उन integers-- हैं 813 00:38:24,930 --> 00:38:27,430 0.1 के साथ क्या करना है पता नहीं है. 814 00:38:27,430 --> 00:38:30,010 >> तो क्या यह स्पष्ट रूप से कर रही है? 815 00:38:30,010 --> 00:38:33,120 यह बस, इसे दूर फेंक रहे है और मैं अंत में क्या देख रहा हूँ 816 00:38:33,120 --> 00:38:38,830 मैं जोर देकर कहा कि केवल इसलिए कि 0.0 है printf मुझे एक दशमलव बिंदु दिखा. 817 00:38:38,830 --> 00:38:41,740 लेकिन समस्या यह है कि आप अगर एक पूर्णांक से एक पूर्णांक विभाजित, 818 00:38:41,740 --> 00:38:44,347 आप परिभाषा द्वारा get-- जाएगा की एक पूर्णांक C--. 819 00:38:44,347 --> 00:38:46,680 और ऐसा करने नहीं जा रहा है अच्छा है और आसानी से कुछ 820 00:38:46,680 --> 00:38:49,040 अप करने के लिए यह दौर की तरह एक ऊपर या नीचे निकटतम. 821 00:38:49,040 --> 00:38:51,860 इसे छोटा करने के लिए जा रहा है दशमलव के बाद सब कुछ. 822 00:38:51,860 --> 00:38:54,030 >> तो बस intuitively, शायद एक तय क्या है? 823 00:38:54,030 --> 00:38:55,351 यहाँ सबसे सरल तय क्या है? 824 00:38:55,351 --> 00:38:55,850 हाँ? 825 00:38:55,850 --> 00:39:00,570 826 00:39:00,570 --> 00:39:01,100 बिल्कुल सही. 827 00:39:01,100 --> 00:39:04,200 क्यों हम बस के रूप में इन का इलाज नहीं है प्रभावी ढंग से बात मान चल 828 00:39:04,200 --> 00:39:05,860 तैरता या युगल में बदल. 829 00:39:05,860 --> 00:39:10,500 और अब मैं कर सकता हूँ अगर मंगाई -0, या मैं मंगाई -1 संकलन हैं, 830 00:39:10,500 --> 00:39:12,570 जो के समान है क्या सिर्फ प्रस्तावित किया गया था. 831 00:39:12,570 --> 00:39:16,400 और अब मैं मंगाई -0, अब मैं अपने 0.1 मिलता है. 832 00:39:16,400 --> 00:39:17,234 >> अब यह अद्भुत है. 833 00:39:17,234 --> 00:39:19,441 लेकिन अब मैं क्या करने जा रहा हूँ एक छोटे से कुछ अलग. 834 00:39:19,441 --> 00:39:22,280 मैं वास्तव में क्या देखने के लिए उत्सुक हूँ हुड के नीचे चल रहा है, 835 00:39:22,280 --> 00:39:26,050 और मैं यह मुद्रित करने के लिए जा रहा हूँ बाहर करने के लिए 28 दशमलव स्थानों. 836 00:39:26,050 --> 00:39:29,730 मैं वास्तव में देखना चाहते हैं 0.1000-- एक infinite-- 837 00:39:29,730 --> 00:39:32,710 कि 0.1 के बाद [अश्राव्य] 27 शून्य. 838 00:39:32,710 --> 00:39:34,740 >> अच्छा है कि अगर चलो देखते हैं मैं वास्तव में क्या हो. 839 00:39:34,740 --> 00:39:39,430 तैरता -0 ही फाइल करें. 840 00:39:39,430 --> 00:39:41,150 ./floats -0. 841 00:39:41,150 --> 00:39:44,380 नाटकीय जवाब पर ज़ूम करते हैं. 842 00:39:44,380 --> 00:39:49,980 यह सब समय, आप सोच रहा था 10 से विभाजित 1 10%, या 0.1 है. 843 00:39:49,980 --> 00:39:50,810 यह. 844 00:39:50,810 --> 00:39:53,210 कम से कम अब तक के रूप में कंप्यूटर का चिंतित. 845 00:39:53,210 --> 00:39:57,060 >> ठीक है why-- अब, कि पूरा है 10 से विभाजित झूठ 1 0.1 है. 846 00:39:57,060 --> 00:39:59,710 लेकिन वह नहीं है why-- takeaway आज. 847 00:39:59,710 --> 00:40:04,010 तो क्यों कंप्यूटर, लगता है कमरे में हम सब के विपरीत, 848 00:40:04,010 --> 00:40:06,870 10 से विभाजित 1 है कि वास्तव में उस पागल मूल्य है? 849 00:40:06,870 --> 00:40:10,620 जाहिरा तौर पर कर कंप्यूटर क्या है? 850 00:40:10,620 --> 00:40:12,490 वह क्या है? 851 00:40:12,490 --> 00:40:13,785 >> यह असल में, अतिप्रवाह नहीं है. 852 00:40:13,785 --> 00:40:15,910 अतिप्रवाह आमतौर पर तब होता है जब आप एक मूल्य के आसपास लपेटो. 853 00:40:15,910 --> 00:40:18,970 यह अस्पष्टता के इस अंक है एक चल बिन्दु मूल्य में 854 00:40:18,970 --> 00:40:22,220 आप केवल 32 है, जहां या शायद यह भी 64 बिट. 855 00:40:22,220 --> 00:40:25,230 लेकिन एक अनंत अगर वहाँ असली numbers-- की संख्या 856 00:40:25,230 --> 00:40:27,940 दशमलव अंक के साथ नंबर और संख्या निश्चित रूप से thereafter-- 857 00:40:27,940 --> 00:40:29,380 आप उन सभी का प्रतिनिधित्व नहीं कर सकते हैं. 858 00:40:29,380 --> 00:40:32,870 तो कंप्यूटर दिया गया है हमें करीबी मैच 859 00:40:32,870 --> 00:40:37,090 मूल्य के लिए यह प्रयोग है कि प्रतिनिधित्व कर सकते हैं मैं वास्तव में चाहते हैं मूल्य के लिए कई टुकड़े, 860 00:40:37,090 --> 00:40:38,690 जो 0.1 है. 861 00:40:38,690 --> 00:40:40,685 >> दुर्भाग्य से, आप अगर गणित शुरू कर रही है, या आप 862 00:40:40,685 --> 00:40:44,360 चल के इन प्रकार को शामिल शुरू महत्वपूर्ण programs-- में बात मान 863 00:40:44,360 --> 00:40:46,770 वित्तीय सॉफ्टवेयर, सैन्य software-- कुछ भी 864 00:40:46,770 --> 00:40:49,090 जहां धारणा है शायद बहुत महत्वपूर्ण है. 865 00:40:49,090 --> 00:40:51,520 और आप जोड़ना शुरू इस तरह की संख्या, और शुरू 866 00:40:51,520 --> 00:40:54,050 कि सॉफ्टवेयर चल वास्तव में बड़े आदानों के साथ 867 00:40:54,050 --> 00:40:56,890 या घंटे या बहुत से बहुत सारे के लिए साल के दिन या लॉट के लिए, 868 00:40:56,890 --> 00:41:01,060 इन छोटे छोटे गलतियों निश्चित रूप से समय के साथ जोड़ सकते हैं. 869 00:41:01,060 --> 00:41:04,252 >> अब एक अलग रूप में, आप है, तो कभी सुपरमैन 3 या कार्यालय अंतरिक्ष देखा 870 00:41:04,252 --> 00:41:05,960 और यदि आपको याद हो सकता है कैसे उन लोगों को चुरा लिया 871 00:41:05,960 --> 00:41:08,668 अपने कंप्यूटर से बहुत सारा पैसा चल बिन्दु मूल्यों का उपयोग करके 872 00:41:08,668 --> 00:41:11,290 और छोटे से जोड़ने शेष, उम्मीद है कि फिल्म 873 00:41:11,290 --> 00:41:12,390 अब समझ में आता है. 874 00:41:12,390 --> 00:41:14,930 यह वे क्या थे है उस फिल्म में की ओर इशारा करते. 875 00:41:14,930 --> 00:41:16,710 तथ्य यह है कि सबसे अधिक कंपनियां नहीं लगेगा 876 00:41:16,710 --> 00:41:18,600 एक निश्चित संख्या के बाद दशमलव स्थानों की, 877 00:41:18,600 --> 00:41:20,009 लेकिन उन सेंट की भिन्न हैं. 878 00:41:20,009 --> 00:41:22,550 तो तुम उन्हें जोड़ने शुरू आप बहुत सारा पैसा बनाने के लिए शुरू 879 00:41:22,550 --> 00:41:23,424 अपने बैंक खाते में. 880 00:41:23,424 --> 00:41:25,160 इसलिए कि कार्यालय अंतरिक्ष समझाया है. 881 00:41:25,160 --> 00:41:28,220 >> अब दुर्भाग्य से परे ऑफिस स्पेस, वहाँ 882 00:41:28,220 --> 00:41:31,794 कुछ वैध तरीके से परेशान कर रहे हैं और महत्वपूर्ण प्रभाव 883 00:41:31,794 --> 00:41:33,710 के इन प्रकार के अंतर्निहित डिजाइन निर्णय, 884 00:41:33,710 --> 00:41:35,990 कारणों में से है और वास्तव में एक हम पाठ्यक्रम में सी का उपयोग 885 00:41:35,990 --> 00:41:39,640 आप वास्तव में यह जमीन है इतना है कि कंप्यूटर कैसे काम की समझ, 886 00:41:39,640 --> 00:41:42,440 कैसे सॉफ्टवेयर काम करता है, और क्या नहीं प्रदान के लिए कुछ भी ले. 887 00:41:42,440 --> 00:41:45,820 >> और वास्तव में दुर्भाग्य से, यहां तक ​​कि साथ कि बुनियादी समझ, 888 00:41:45,820 --> 00:41:47,370 हम मनुष्य गलतियाँ करते हैं. 889 00:41:47,370 --> 00:41:51,310 और क्या मैं मैं हिस्सा लगा है इस आठ मिनट के वीडियो यहाँ लिया 890 00:41:51,310 --> 00:41:56,980 जो एक आधुनिक चमत्कार प्रकरण से कैसे चीजें काम पर एक शैक्षिक शो 891 00:41:56,980 --> 00:42:00,370 कि दो चित्र पेंट की जब एक अनुचित प्रयोग 892 00:42:00,370 --> 00:42:02,540 और की समझ बिंदु मूल्यों चल 893 00:42:02,540 --> 00:42:05,610 कुछ महत्वपूर्ण करने के लिए नेतृत्व दुर्भाग्यपूर्ण परिणाम है. 894 00:42:05,610 --> 00:42:06,363 चलो एक नज़र रखना. 895 00:42:06,363 --> 00:42:07,029 [वीडियो प्लेबैक] 896 00:42:07,029 --> 00:42:11,290 , हम अब इंजीनियरिंग "के लिए वापसी आधुनिक चमत्कार पर आपदाओं ". 897 00:42:11,290 --> 00:42:12,940 कंप्यूटर. 898 00:42:12,940 --> 00:42:15,580 हम सभी को स्वीकार करने के लिए आया हूँ अक्सर निराशा समस्याओं कि 899 00:42:15,580 --> 00:42:20,960 them-- कीड़े, वायरस के साथ मिल गया है, और छोटे कीमतों के लिए सॉफ्टवेयर glitches-- 900 00:42:20,960 --> 00:42:23,100 सुविधा के लिए भुगतान करने के लिए. 901 00:42:23,100 --> 00:42:27,770 लेकिन उच्च तकनीक और उच्च गति में सैन्य और अंतरिक्ष कार्यक्रम अनुप्रयोगों, 902 00:42:27,770 --> 00:42:32,780 छोटी से छोटी समस्या सकते हैं आपदा में बढ़ाया जा सकता है. 903 00:42:32,780 --> 00:42:38,880 >> 4 जून, 1996 पर, वैज्ञानिकों तैयार एक मानव रहित एरियन 5 रॉकेट लॉन्च करने के लिए. 904 00:42:38,880 --> 00:42:41,190 यह वैज्ञानिक ले जा रहा था उपग्रहों बनाया गया 905 00:42:41,190 --> 00:42:44,570 ठीक कैसे स्थापित करने के लिए पृथ्वी के चुंबकीय क्षेत्र आदान 906 00:42:44,570 --> 00:42:47,380 सौर हवाओं के साथ. 907 00:42:47,380 --> 00:42:50,580 रॉकेट के लिए बनाया गया था यूरोपीय अंतरिक्ष एजेंसी, 908 00:42:50,580 --> 00:42:54,400 और अपनी सुविधा से बंद उठाया फ्रेंच गुयाना के तट पर. 909 00:42:54,400 --> 00:42:57,520 >> में के बारे में 37 सेकंड -At उड़ान, वे पहले 910 00:42:57,520 --> 00:42:59,070 गौर कुछ गलत हो रहा था. 911 00:42:59,070 --> 00:43:02,240 नलिका swiveling गया कि एक तरह से वे वास्तव में नहीं होना चाहिए. 912 00:43:02,240 --> 00:43:06,550 उड़ान में 40 सेकंड के आसपास, स्पष्ट रूप से वाहन, मुसीबत में था 913 00:43:06,550 --> 00:43:08,820 वे बनाया और कहा कि जब निर्णय इसे नष्ट करने के लिए. 914 00:43:08,820 --> 00:43:12,370 सीमा सुरक्षा अधिकारी के साथ जबरदस्त हिम्मत, बटन दबाया 915 00:43:12,370 --> 00:43:18,030 यह सकता है और इससे पहले कि रॉकेट विस्फोट से उड़ा दिया सार्वजनिक सुरक्षा के लिए एक खतरा बन जाते हैं. 916 00:43:18,030 --> 00:43:21,010 >> -यह युवती थी एरियन -5 की यात्रा, 917 00:43:21,010 --> 00:43:23,920 और इसके विनाश के लिए ले लिया क्योंकि दोष के स्थान 918 00:43:23,920 --> 00:43:25,932 रॉकेट के सॉफ्टवेयर में एम्बेडेड. 919 00:43:25,932 --> 00:43:27,640 पर -इस समस्या एरियन था कि वहां 920 00:43:27,640 --> 00:43:30,500 आवश्यक है कि एक नंबर था 64 बिट, व्यक्त करने के लिए 921 00:43:30,500 --> 00:43:33,560 और वे परिवर्तित करना चाहता था एक 16 बिट संख्या के लिए यह. 922 00:43:33,560 --> 00:43:36,820 वे संख्या ग्रहण बहुत बड़ा होने जा रहा कभी नहीं किया गया था. 923 00:43:36,820 --> 00:43:40,940 उस में उन अंकों के सबसे 64 बिट संख्या शून्य थे. 924 00:43:40,940 --> 00:43:42,450 वे गलत थे. 925 00:43:42,450 --> 00:43:45,000 >> एक के -इस असमर्थता सॉफ्टवेयर प्रोग्राम को स्वीकार करने के लिए 926 00:43:45,000 --> 00:43:49,460 द्वारा उत्पन्न संख्या की तरह एक और विफलता की जड़ में था. 927 00:43:49,460 --> 00:43:54,260 सॉफ्टवेयर विकास बन गया था एक नई तकनीक की बहुत महंगा हिस्सा. 928 00:43:54,260 --> 00:43:57,060 एरियन 4 रॉकेट था बहुत सफल रहा. 929 00:43:57,060 --> 00:44:01,600 के लिए बनाए गए सॉफ्टवेयर की तो ज्यादा यह भी एरियन -5 में इस्तेमाल किया गया था. 930 00:44:01,600 --> 00:44:04,790 >> -इस बुनियादी समस्या था कि एरियन -5. 931 00:44:04,790 --> 00:44:11,200 Faster--, तेजी से त्वरित किया गया था और सॉफ्टवेयर है कि के लिए जिम्मेदार नहीं था. 932 00:44:11,200 --> 00:44:14,910 >> रॉकेट की -इस विनाश भारी वित्तीय आपदा था. 933 00:44:14,910 --> 00:44:18,630 पूरे एक मिनट सॉफ्टवेयर त्रुटि के लिए. 934 00:44:18,630 --> 00:44:21,160 लेकिन यह पहली बार नहीं था समय डेटा रूपांतरण समस्याओं 935 00:44:21,160 --> 00:44:24,770 आधुनिक रॉकेट प्रौद्योगिकी त्रस्त था. 936 00:44:24,770 --> 00:44:28,020 >> शुरू के साथ 1991 अलावे पहले खाड़ी युद्ध के, 937 00:44:28,020 --> 00:44:30,540 पैट्रियट मिसाइल एक ऐसी ही तरह का अनुभव 938 00:44:30,540 --> 00:44:32,465 एक नंबर रूपांतरण समस्या की. 939 00:44:32,465 --> 00:44:36,760 और एक परिणाम के रूप में 28 people-- 28 अमेरिकी soldiers-- मारे गए थे, 940 00:44:36,760 --> 00:44:39,010 और के बारे में एक सौ अन्य घायल हो गए. 941 00:44:39,010 --> 00:44:42,830 जब चाहिए था जो देशभक्त, आने वाली Scuds के खिलाफ की रक्षा के लिए, 942 00:44:42,830 --> 00:44:45,780 एक मिसाइल आग में विफल रही है. 943 00:44:45,780 --> 00:44:51,610 >> -जब इराक कुवैत और अमेरिका पर हमला जल्दी 1991 में डेजर्ट स्टॉर्म शुरू की, 944 00:44:51,610 --> 00:44:55,720 पैट्रियट मिसाइल बैटरी तैनात किया गया था सऊदी अरब और इसराइल की रक्षा के लिए 945 00:44:55,720 --> 00:44:59,180 इराकी स्कड मिसाइल हमलों से. 946 00:44:59,180 --> 00:45:03,080 पैट्रियट एक अमेरिकी मध्यम दूरी है सतह से हवा प्रणाली 947 00:45:03,080 --> 00:45:06,530 रेथियॉन कंपनी द्वारा निर्मित. 948 00:45:06,530 --> 00:45:09,500 >> पैट्रियट के -इस आकार इंटरसेप्टर itself-- 949 00:45:09,500 --> 00:45:14,705 यह, के बारे में मोटे तौर पर 20 फुट लंबा है और यह लगभग 2,000 पाउंड वजन. 950 00:45:14,705 --> 00:45:19,090 और यह के बारे में एक बम वहन करती है मैं यह लगभग 150 पाउंड है लगता है. 951 00:45:19,090 --> 00:45:23,880 और वारहेड ही है एक उच्च विस्फोटक, जो 952 00:45:23,880 --> 00:45:26,700 उसे आसपास के टुकड़े है. 953 00:45:26,700 --> 00:45:31,630 तो बम का आवरण है एक buckshot तरह कार्य करने के लिए डिज़ाइन किया गया. 954 00:45:31,630 --> 00:45:34,040 >> -इस मिसाइलों किया जाता है कंटेनर प्रति चार, 955 00:45:34,040 --> 00:45:37,170 और एक अर्द्ध ट्रेलर से ले जाया जाता है. 956 00:45:37,170 --> 00:45:44,880 >> -इस पैट्रियट मिसाइल रोधी प्रणाली अब कम से कम 20 साल पीछे चला जाता. 957 00:45:44,880 --> 00:45:48,380 यह मूल रूप से डिजाइन किया गया था एक वायु रक्षा मिसाइल के रूप में 958 00:45:48,380 --> 00:45:50,810 दुश्मन के हवाई जहाज नीचे गोली मार करने के लिए. 959 00:45:50,810 --> 00:45:54,410 पहले खाड़ी युद्ध में उस युद्ध पर आया था, 960 00:45:54,410 --> 00:45:59,650 सेना के लिए इसका इस्तेमाल करना चाहता था Scuds, नहीं हवाई जहाज को गोली मार. 961 00:45:59,650 --> 00:46:03,580 इराकी वायु सेना था एक समस्या का इतना नहीं, 962 00:46:03,580 --> 00:46:06,590 लेकिन सेना Scuds बारे में चिंतित था. 963 00:46:06,590 --> 00:46:10,120 और इसलिए वे करने की कोशिश की पैट्रियट उन्नयन. 964 00:46:10,120 --> 00:46:12,740 >> एक दुश्मन -Intercepting मच 5 पर यात्रा मिसाइल 965 00:46:12,740 --> 00:46:15,670 काफी चुनौतीपूर्ण होने जा रहा था. 966 00:46:15,670 --> 00:46:18,440 लेकिन जब देशभक्त सेवा में ले जाया गया था, 967 00:46:18,440 --> 00:46:22,580 सेना के बारे में पता नहीं था एक इराकी संशोधन कि 968 00:46:22,580 --> 00:46:25,880 उनके scuds बनाया लगभग यह असंभव. 969 00:46:25,880 --> 00:46:30,690 >> क्या हुआ Scuds है कि में आ रहे थे अस्थिर थे. 970 00:46:30,690 --> 00:46:32,000 वे wobbly थे. 971 00:46:32,000 --> 00:46:37,210 इस के लिए कारण Iraqis-- था 600 किलोमीटर की दूरी पर बाहर निकलने के क्रम में 972 00:46:37,210 --> 00:46:41,680 एक 300 किलोमीटर रेंज missile-- की , सामने बम से बाहर वजन ले लिया 973 00:46:41,680 --> 00:46:43,340 और बम हल्का कर दिया. 974 00:46:43,340 --> 00:46:48,490 तो अब पैट्रियट के आने की कोशिश स्कड पर, time-- की और सबसे 975 00:46:48,490 --> 00:46:52,880 की भारी बहुमत time-- यह सिर्फ स्कड से उड़ जाएगा. 976 00:46:52,880 --> 00:46:57,120 >> पैट्रियट सिस्टम ऑपरेटरों एक बार , पैट्रियट अपने लक्ष्य चूक का एहसास 977 00:46:57,120 --> 00:47:01,630 वे देशभक्त के बम विस्फोट अगर यह संभव हताहत से बचने के लिए 978 00:47:01,630 --> 00:47:04,440 भूमि पर गिर करने के लिए अनुमति दी गई थी. 979 00:47:04,440 --> 00:47:08,700 >> -वह ज्यादातर लोगों को क्या देखा था के रूप में आकाश में बड़ा fireballs, 980 00:47:08,700 --> 00:47:14,180 और के रूप में गलत समझा स्कड हथियार का अवरोध. 981 00:47:14,180 --> 00:47:18,020 >> रात आसमान, देशभक्त में -Although सफलतापूर्वक नष्ट होने का दर्शन 982 00:47:18,020 --> 00:47:23,280 Scuds, दहरान में हो सकता है अपने प्रदर्शन के बारे में कोई गलती नहीं. 983 00:47:23,280 --> 00:47:27,930 वहाँ पैट्रियट के रडार प्रणाली एक आने वाली स्कड के खो ट्रैक 984 00:47:27,930 --> 00:47:30,260 और कारण का शुभारंभ कभी नहीं एक सॉफ्टवेयर दोष को. 985 00:47:30,260 --> 00:47:34,060 986 00:47:34,060 --> 00:47:38,880 >> यह पहले की खोज की है जो इजरायल था अब सिस्टम पर था कि, 987 00:47:38,880 --> 00:47:41,130 अधिक से अधिक समय विसंगति बन गया. 988 00:47:41,130 --> 00:47:44,770 कारण एम्बेडेड एक घड़ी के लिए सिस्टम के कंप्यूटर में. 989 00:47:44,770 --> 00:47:48,190 >> -About दो सप्ताह पहले दहरान में त्रासदी, 990 00:47:48,190 --> 00:47:50,720 इजरायल की सूचना दी रक्षा विभाग 991 00:47:50,720 --> 00:47:52,410 प्रणाली है कि समय खो गया था. 992 00:47:52,410 --> 00:47:54,410 करीब आठ घंटे के बाद चल रहा है, वे देखा 993 00:47:54,410 --> 00:47:57,690 सिस्टम के बनने कि काफ़ी कम सटीक. 994 00:47:57,690 --> 00:48:01,850 रक्षा विभाग द्वारा प्रतिक्रिया पैट्रियट बैटरी के सभी कह रही 995 00:48:01,850 --> 00:48:04,800 सिस्टम नहीं छोड़ करने के लिए एक लंबे समय के लिए. 996 00:48:04,800 --> 00:48:06,980 वे एक लंबे समय क्या था कभी नहीं कहा. 997 00:48:06,980 --> 00:48:09,140 8 घंटे, 10 घंटे, एक हजार घंटे. 998 00:48:09,140 --> 00:48:11,300 कोई नहीं जानता था. 999 00:48:11,300 --> 00:48:13,320 >> -इस पैट्रियट बैटरी बैरकों में तैनात 1000 00:48:13,320 --> 00:48:18,310 दहरान और अपने त्रुटिपूर्ण आंतरिक पर घड़ी 100 से अधिक घंटे के लिए किया गया था 1001 00:48:18,310 --> 00:48:21,520 25 फ़रवरी की रात को. 1002 00:48:21,520 --> 00:48:25,792 >> यह तो एक सटीकता के लिए समय पर नज़र रखी की एक दूसरे के एक दसवें के बारे में. 1003 00:48:25,792 --> 00:48:27,950 एक दूसरे की अब एक दसवें एक दिलचस्प संख्या है 1004 00:48:27,950 --> 00:48:31,850 यह व्यक्त नहीं किया जा सकता क्योंकि , वास्तव में द्विआधारी में जो 1005 00:48:31,850 --> 00:48:36,500 यह वास्तव में व्यक्त नहीं किया जा सकता है इसका मतलब किसी भी आधुनिक डिजिटल कंप्यूटर में. 1006 00:48:36,500 --> 00:48:41,070 यह विश्वास करना मुश्किल है लेकिन एक उदाहरण के रूप में इस का उपयोग करें. 1007 00:48:41,070 --> 00:48:43,420 >> की संख्या एक तिहाई से लेते हैं. 1008 00:48:43,420 --> 00:48:47,330 एक तिहाई नहीं किया जा सकता बिल्कुल दशमलव में व्यक्त किया. 1009 00:48:47,330 --> 00:48:52,060 एक तिहाई 0.333 है अनंत के लिए चल रहा है. 1010 00:48:52,060 --> 00:48:56,420 साथ ऐसा करने के लिए कोई रास्ता नहीं है एक दशमलव में पूर्ण शुद्धता. 1011 00:48:56,420 --> 00:48:59,530 उस समस्या का ठीक तरह है कि पैट्रियट में हुआ. 1012 00:48:59,530 --> 00:49:04,040 अब सिस्टम भागा, बुरा समय त्रुटि हो गया. 1013 00:49:04,040 --> 00:49:08,840 >> आपरेशन के 100 घंटे -After, समय में त्रुटि के बारे में केवल एक तिहाई था 1014 00:49:08,840 --> 00:49:10,440 एक दूसरे की. 1015 00:49:10,440 --> 00:49:14,150 लेकिन एक को लक्षित करने के मामले में मच 5 पर यात्रा मिसाइल, 1016 00:49:14,150 --> 00:49:18,560 यह एक ट्रैकिंग में हुई 600 मीटर से अधिक की त्रुटि. 1017 00:49:18,560 --> 00:49:21,870 यह एक गंभीर त्रुटि होगी दहरान में सैनिकों के लिए. 1018 00:49:21,870 --> 00:49:28,455 >> एक स्कड लांच किया गया है क्या हुआ पूर्व चेतावनी उपग्रहों ने पता लगाया, 1019 00:49:28,455 --> 00:49:32,710 और वे एक स्कड आ रहा था पता था उनके सामान्य दिशा में. 1020 00:49:32,710 --> 00:49:35,150 यह आ रहा था, जहां उन्हें पता नहीं था. 1021 00:49:35,150 --> 00:49:38,210 यह रडार अप करने के लिए अब था पैट्रियट प्रणाली के घटक 1022 00:49:38,210 --> 00:49:43,150 दहरान बचाव लगाने और रखने के लिए आने वाली दुश्मन मिसाइल का ट्रैक. 1023 00:49:43,150 --> 00:49:44,561 >> -इस रडार बहुत होशियार था. 1024 00:49:44,561 --> 00:49:46,560 यह वास्तव में ट्रैक होगा स्कड की स्थिति 1025 00:49:46,560 --> 00:49:48,930 और फिर जहां भविष्यवाणी यह शायद होगा 1026 00:49:48,930 --> 00:49:51,380 अगली बार रडार बाहर एक पल्स भेजा. 1027 00:49:51,380 --> 00:49:53,040 उस श्रृंखला गेट बुलाया गया था. 1028 00:49:53,040 --> 00:49:57,620 >> पैट्रियट एक बार -फिर पर्याप्त समय है फैसला करता है 1029 00:49:57,620 --> 00:50:02,400 वापस जाने के लिए और अगले जाँच करने के लिए पारित इस का पता चला वस्तु के लिए स्थान 1030 00:50:02,400 --> 00:50:03,550 यह वापस चला जाता है. 1031 00:50:03,550 --> 00:50:07,820 तो यह गलत करने के लिए वापस चला गया जब जगह है, यह तो कोई वस्तु को देखता है. 1032 00:50:07,820 --> 00:50:10,360 और यह कोई वस्तु नहीं थी कि फैसला किया. 1033 00:50:10,360 --> 00:50:13,630 एक गलत पहचान था कि वहाँ और यह ट्रैक चला जाता है. 1034 00:50:13,630 --> 00:50:16,970 >> -इस आने वाली स्कड गायब राडार स्क्रीन से, 1035 00:50:16,970 --> 00:50:20,200 और सेकंड बाद में, यह बैरकों में पटक दिया. 1036 00:50:20,200 --> 00:50:22,570 स्कड 28 मारे गए. 1037 00:50:22,570 --> 00:50:26,110 यह आखरी निकाल दिया गया था पहले खाड़ी युद्ध के दौरान. 1038 00:50:26,110 --> 00:50:31,920 दुर्भाग्य से, अद्यतन सॉफ्टवेयर अगले दिन भोर में पहुंचे. 1039 00:50:31,920 --> 00:50:34,870 सॉफ्टवेयर दोष था गया तय, समापन 1040 00:50:34,870 --> 00:50:39,150 संकटग्रस्त में एक अध्याय पैट्रियट मिसाइल का इतिहास. 1041 00:50:39,150 --> 00:50:40,030 >> [अंत वीडियो प्लेबैक] 1042 00:50:40,030 --> 00:50:41,488 >> डेविड जे Malan: यह CS50 के लिए है. 1043 00:50:41,488 --> 00:50:42,820 हम बुधवार को देखेंगे. 1044 00:50:42,820 --> 00:50:46,420 1045 00:50:46,420 --> 00:50:50,370 >> [संगीत खेल] 1046 00:50:50,370 --> 00:54:23,446