1 00:00:00,000 --> 00:00:00,000 2 00:00:00,000 --> 00:00:00,000 [संगीत बजाना] 3 00:00:00,000 --> 00:00:13,950 4 00:00:13,950 --> 00:00:16,240 >> डेविड जे मालन: ठीक है, इस CS50 है। 5 00:00:16,240 --> 00:00:18,010 और इस सप्ताह एक है। 6 00:00:18,010 --> 00:00:22,050 तो शून्य सप्ताह में है कि पिछली बार याद है, हम कम्प्यूटेशनल सोच पर ध्यान केंद्रित किया। 7 00:00:22,050 --> 00:00:25,440 और हम उस से करने के लिए transitioned स्क्रैच, एक चित्रमय प्रोग्रामिंग 8 00:00:25,440 --> 00:00:27,360 हमारे मित्रों से भाषा एमआईटी मीडिया लैब में। 9 00:00:27,360 --> 00:00:31,730 >> और खरोंच के साथ, हम पता लगाने किया कार्यों की तरह विचारों, और स्थिति, 10 00:00:31,730 --> 00:00:35,210 और छोरों, और चर, और यहां तक ​​कि घटनाओं, और धागे, और अधिक। 11 00:00:35,210 --> 00:00:37,880 और आज, हम करने जा रहे हैं उन विचारों का उपयोग जारी, 12 00:00:37,880 --> 00:00:40,630 और वास्तव में उनके लिए ले जा रही है दी गई, लेकिन उन्हें अनुवाद 13 00:00:40,630 --> 00:00:44,220 सी अब के रूप में जाना किसी अन्य भाषा को, सी एक और पारंपरिक भाषा है। 14 00:00:44,220 --> 00:00:46,020 यह एक कम स्तर है भाषा, अगर तुम जाएगा। 15 00:00:46,020 --> 00:00:47,300 >> यह विशुद्ध रूप से शाब्दिक है। 16 00:00:47,300 --> 00:00:49,910 और तो पहली नज़र में, यह है सब बल्कि गुप्त देखने के लिए जा 17 00:00:49,910 --> 00:00:51,430 यदि आप पहले कभी नहीं क्रमादेशित है। 18 00:00:51,430 --> 00:00:53,530 हम करने जा रहे हैं अर्द्ध कॉलन, और कोष्ठक, 19 00:00:53,530 --> 00:00:55,150 और घुंघराले ब्रेसिज़, और अधिक। 20 00:00:55,150 --> 00:00:57,240 लेकिन पता है कि भले हालांकि वाक्य रचना है 21 00:00:57,240 --> 00:01:00,600 के बारे में थोड़ा अपरिचित देखने के लिए आप में से ज्यादातर के लिए, पिछले है कि देखते हैं। 22 00:01:00,600 --> 00:01:03,220 और विचारों को देखने की कोशिश कि कर रहे हैं, वास्तव में, परिचित, 23 00:01:03,220 --> 00:01:06,750 क्योंकि पिछले एक सप्ताह में यहां एक क्या हम क्या करने की तुलना करने के लिए है शुरू करेंगे 24 00:01:06,750 --> 00:01:08,980 शुरू में, सी बनाम स्क्रैच 25 00:01:08,980 --> 00:01:12,350 >> तो, उदाहरण के लिए, याद है कि जब हम कार्यान्वित हमारे कार्यक्रमों के पहले 26 00:01:12,350 --> 00:01:16,220 पिछली बार, हम एक ब्लॉक है कि देखा था एक छोटे से कुछ this-- जब की तरह 27 00:01:16,220 --> 00:01:19,990 हरे रंग का झंडा क्लिक किया है, और फिर हम था एक यह नीचे या अधिक पहेली टुकड़े, 28 00:01:19,990 --> 00:01:22,150 इस मामले में, कहते हैं हैलो दुनिया। 29 00:01:22,150 --> 00:01:24,870 तो, वास्तव में, खरोंच में, जब मुझे लगता है कि हरे रंग का झंडा क्लिक करें 30 00:01:24,870 --> 00:01:27,390 अपने कार्यक्रम को चलाने के लिए है, इसलिए बात करने के लिए, ये हैं 31 00:01:27,390 --> 00:01:29,520 ब्लॉक कि मार डाला, या रन। 32 00:01:29,520 --> 00:01:32,230 और, विशेष रूप से, स्क्रैच कहा, हैलो, दुनिया। 33 00:01:32,230 --> 00:01:35,377 >> अब, मैं निर्दिष्ट कर सकता था यहां अलग-अलग शब्द। 34 00:01:35,377 --> 00:01:37,960 लेकिन हम देखेंगे कि, वास्तव में, कई इन blocks-- और वास्तव में, 35 00:01:37,960 --> 00:01:41,880 सी में कई functions-- हो सकता है parametrized या इच्छित 36 00:01:41,880 --> 00:01:43,150 अलग अलग बातें करने के लिए। 37 00:01:43,150 --> 00:01:45,520 वास्तव में, हम अगर सी में परिवर्तित करने के लिए, अब चाहते हैं, 38 00:01:45,520 --> 00:01:47,567 इस स्क्रैच कार्यक्रम यह अन्य भाषा के लिए, 39 00:01:47,567 --> 00:01:49,650 हम एक लिखने जा रहे हैं छोटे से कुछ इस तरह। 40 00:01:49,650 --> 00:01:52,540 >> दी, वहाँ कुछ अपरिचित है वहाँ वाक्य रचना सबसे अधिक संभावना है, पूर्णांक, 41 00:01:52,540 --> 00:01:54,380 और कोष्ठक, और शून्य। 42 00:01:54,380 --> 00:01:57,740 हालांकि आप होता लेकिन फिर भी printf-- लगता है कि यह सिर्फ प्रिंट होगा। 43 00:01:57,740 --> 00:02:00,120 लेकिन इसका मतलब प्रिंट प्रिंट स्वरूपित के रूप में हम जल्द ही देखेंगे। 44 00:02:00,120 --> 00:02:02,140 यह सचमुच प्रिंट होगा स्क्रीन करने के लिए जो कुछ भी 45 00:02:02,140 --> 00:02:05,990 उन कोष्ठकों के अंदर है, जो बेशक इस मामले में, नमस्ते दुनिया है। 46 00:02:05,990 --> 00:02:09,290 >> लेकिन अगर आप कुछ अन्य नोटिस देंगे वाक्य रचना, कुछ डबल उद्धरण, 47 00:02:09,290 --> 00:02:11,890 कि अंत में कोष्ठक, सेमी कॉलन और पसंद है। 48 00:02:11,890 --> 00:02:15,027 तो वहाँ भूमि के ऊपर का एक सा है, तो बात है, दोनों संज्ञानात्मक 49 00:02:15,027 --> 00:02:17,860 और वाक्य रचना, हम जा रहे हैं कि लंबे समय से पहले याद करने के लिए। 50 00:02:17,860 --> 00:02:20,720 लेकिन पता है कि अभ्यास के साथ, यह आप पर बाहर कूद करने के लिए शुरू कर देंगे। 51 00:02:20,720 --> 00:02:24,920 >> वास्तव में, के एक उस पर ध्यान केंद्रित करते हैं समारोह में इस मामले में specifically--, 52 00:02:24,920 --> 00:02:26,290 कहते हैं हैलो दुनिया। 53 00:02:26,290 --> 00:02:27,560 इतना कहने समारोह है। 54 00:02:27,560 --> 00:02:31,320 हैलो दुनिया अपनी पैरामीटर है, या तर्क है, इसकी अनुकूलन। 55 00:02:31,320 --> 00:02:34,320 >> और सी में तुल्यता बस है यहाँ इस एक लाइन होने जा रहा, 56 00:02:34,320 --> 00:02:38,710 जहां printf के बराबर है, का कहना है कि डबल उद्धृत स्ट्रिंग, हैलो 57 00:02:38,710 --> 00:02:41,470 दुनिया है, के बराबर है, ज़ाहिर है, क्या वहाँ सफेद बॉक्स में करने के लिए। 58 00:02:41,470 --> 00:02:45,680 और बैकस्लैश एन, हालांकि एक छोटे से अजीब और खरोंच से अनुपस्थित, 59 00:02:45,680 --> 00:02:49,380 बस प्रभाव हम करेंगे किया जा रहा है एक कंप्यूटर में देखते हैं, अपने मैक या पीसी की तरह, 60 00:02:49,380 --> 00:02:51,660 की बस चलती अगली पंक्ति के लिए कर्सर। 61 00:02:51,660 --> 00:02:53,970 इसे मार की तरह है अपने कुंजीपटल पर दर्ज करें। 62 00:02:53,970 --> 00:02:55,580 >> इसलिए हम चाहते हैं कि फिर से लंबे समय से पहले देखेंगे। 63 00:02:55,580 --> 00:02:58,640 लेकिन पहले, चलो इस पर एक नजर डालते हैं छोरों के मामले में अन्य उदाहरण है। 64 00:02:58,640 --> 00:03:02,830 हम पिछली बार यह हमेशा के लिए लूप था, जो पहेली टुकड़े की एक श्रृंखला थी 65 00:03:02,830 --> 00:03:05,490 कि कुछ शाब्दिक किया इस मामले में forever--, 66 00:03:05,490 --> 00:03:08,360 कहते हैं, नमस्कार, नमस्ते विश्व, हैलो दुनिया, हैलो दुनिया। 67 00:03:08,360 --> 00:03:10,350 तो यह डिजाइन द्वारा एक अनंत लूप है। 68 00:03:10,350 --> 00:03:14,580 >> सी में, हम इस को लागू करना चाहते हैं एक ही विचार है, हम बस यह कर सकता है। 69 00:03:14,580 --> 00:03:19,570 जबकि यह सच है, printf हैलो अब world-- जबकि, बस शब्दार्थ, की तरह 70 00:03:19,570 --> 00:03:23,090 करने के विचार को conjures कुछ फिर से, और फिर, और फिर, 71 00:03:23,090 --> 00:03:23,980 और कब तक? 72 00:03:23,980 --> 00:03:27,990 खैर, याद है कि true-- सच बस पर या एक है। 73 00:03:27,990 --> 00:03:30,660 >> और सच है, बेशक, हमेशा सच है। 74 00:03:30,660 --> 00:03:33,060 तो यह एक व्यर्थ की तरह है बयान सिर्फ सच कहने के लिए। 75 00:03:33,060 --> 00:03:36,890 लेकिन वास्तव में, यह जानबूझकर है, क्योंकि अगर यह सच है तो बस हमेशा सच है, 76 00:03:36,890 --> 00:03:40,850 की तुलना में, जबकि सच तो बस का अर्थ है, एक छोटी सी है, तो परोक्ष रूप से, 77 00:03:40,850 --> 00:03:44,070 उस कोड की निम्न पंक्तियाँ उन घुंघराले ब्रेसिज़ के बीच में 78 00:03:44,070 --> 00:03:48,320 बस फिर, और फिर से अमल करना चाहिए, और फिर, और वास्तव में रोक कभी नहीं। 79 00:03:48,320 --> 00:03:50,230 >> लेकिन क्या आप चाहते हैं, तो आपके पाश हम के रूप में बंद करने के लिए, 80 00:03:50,230 --> 00:03:54,500 ऐसा कुछ के साथ पिछली बार किया था यह, दोहराने के बाद 50 बार 81 00:03:54,500 --> 00:03:57,700 सी में हम क्या साथ वही कर सकता कीवर्ड का loop-- के लिए एक बुलाया 82 00:03:57,700 --> 00:03:59,330 जबकि, लेकिन के लिए नहीं किया जा रहा। 83 00:03:59,330 --> 00:04:03,290 और फिर हम, यहाँ कुछ नई वाक्य रचना है int के साथ मैं 0 मैं 50 से भी कम समय के बराबर होती है, 84 00:04:03,290 --> 00:04:03,880 मैं ++। 85 00:04:03,880 --> 00:04:05,430 और हम वापस आ जाएगा। 86 00:04:05,430 --> 00:04:09,660 लेकिन यह सिर्फ इसलिए है कि हम कैसे होगा स्क्रैच ब्लॉक के सेट का अनुवाद 87 00:04:09,660 --> 00:04:13,079 कोड के सी लाइनों का एक सेट करने के लिए। 88 00:04:13,079 --> 00:04:14,450 >> इस बीच, चर पर विचार करें। 89 00:04:14,450 --> 00:04:16,540 और, वास्तव में, हम सिर्फ एक पल पहले एक देखा था। 90 00:04:16,540 --> 00:04:21,220 और खरोंच के मामले में, अगर हम एक चर मैंने फोन घोषित करना चाहता था 91 00:04:21,220 --> 00:04:24,590 मैं पूर्णांक होने के लिए, बस एक संख्या है, और हम कुछ मूल्य के लिए यह निर्धारित करना चाहते हैं, 92 00:04:24,590 --> 00:04:28,410 हम इस नारंगी का प्रयोग करेंगे ब्लॉक here-- मैं 0 करने के लिए निर्धारित किया है। 93 00:04:28,410 --> 00:04:30,800 >> और आज हम देखेंगे और से परे है, अभी पिछले सप्ताह की तरह, 94 00:04:30,800 --> 00:04:33,850 प्रोग्रामर लगभग हमेशा करते हैं शून्य से गिनती शुरू, वास्तव में 95 00:04:33,850 --> 00:04:34,950 रिवाज के अनुसार। 96 00:04:34,950 --> 00:04:37,250 लेकिन यह भी याद करते हैं क्योंकि बाइनरी की हमारी चर्चा, 97 00:04:37,250 --> 00:04:39,990 सबसे छोटी संख्या आप कर सकते हैं बिट्स के किसी भी संख्या के साथ प्रतिनिधित्व 98 00:04:39,990 --> 00:04:41,640 केवल 0 में ही होने जा रहा है। 99 00:04:41,640 --> 00:04:45,190 और इसलिए हम आम तौर पर शुरू करेंगे 0 करने के लिए भी हमारे चर प्रारंभ कर रहा। 100 00:04:45,190 --> 00:04:47,710 >> और सी में भी ऐसा ही करने के लिए हम int कहने जा रहे हैं 101 00:04:47,710 --> 00:04:50,110 पूर्णांक के लिए, मैं सिर्फ सम्मेलन द्वारा। 102 00:04:50,110 --> 00:04:53,390 मैं इस चर बुलाया जा सकता था कुछ भी मैं चाहता हूँ, सिर्फ खरोंच में की तरह। 103 00:04:53,390 --> 00:04:57,770 और फिर बराबर 0 बस प्रदान करती है सही से मान 0 104 00:04:57,770 --> 00:05:01,319 और यह चर में डालता है, या भंडारण कंटेनर वहाँ, बाईं तरफ। 105 00:05:01,319 --> 00:05:04,360 और अर्द्ध पेट के रूप में हम see-- जाएगा और हम इन already-- के कुछ ही देखा है 106 00:05:04,360 --> 00:05:06,530 सिर्फ सोचा के अंत का मतलब है। 107 00:05:06,530 --> 00:05:09,430 कुछ और करना आगे बढ़ें लाइनों है कि पालन पर। 108 00:05:09,430 --> 00:05:11,330 >> अब, क्या बूलियन अभिव्यक्ति के बारे में? 109 00:05:11,330 --> 00:05:14,320 याद है कि खरोंच में, इन भाव थे 110 00:05:14,320 --> 00:05:16,740 या तो सही हैं कि या false-- सवाल, 111 00:05:16,740 --> 00:05:18,910 वास्तव में, या तो सही है या गलत कर रहे हैं। 112 00:05:18,910 --> 00:05:21,960 तो खरोंच के मामले में, हम हो सकता है इस तरह एक साधारण सवाल पूछना, 113 00:05:21,960 --> 00:05:24,586 मैं 50 से कम है? 114 00:05:24,586 --> 00:05:25,710 तो मैं, फिर से, एक पूर्णांक है। 115 00:05:25,710 --> 00:05:27,210 शायद हम यह प्रयोग कर रहे हैं एक स्क्रैच कार्यक्रम में 116 00:05:27,210 --> 00:05:29,310 एक स्कोर का ट्रैक रखने के लिए या कुछ इस तरह का। 117 00:05:29,310 --> 00:05:33,810 तो इस वाक्य रचना यहाँ खरोंच में बस का अर्थ है, मैं 50 से कम है? 118 00:05:33,810 --> 00:05:37,330 खैर, शुक्र है, कुछ तो है सी में और अनुवाद करने के लिए सरल, 119 00:05:37,330 --> 00:05:41,780 इस लिए हम बस मैं कम कहेंगे 50 से, परिचित कुंजी का उपयोग 120 00:05:41,780 --> 00:05:42,850 अपने कुंजीपटल पर। 121 00:05:42,850 --> 00:05:45,141 >> इस बीच, अगर तुम चाहते थे कुछ अधिक सामान्य कहते हैं, 122 00:05:45,141 --> 00:05:49,890 जैसे, ठीक है, एक्स वाई जहां प्रत्येक से कम नहीं है एक्स और वाई के लिए खुद को चर रहे हैं? 123 00:05:49,890 --> 00:05:52,280 हम एक ही बात कर सकते हैं सी में, जब तक हम है के रूप में 124 00:05:52,280 --> 00:05:53,942 इन चर पहले से ही बनाया। 125 00:05:53,942 --> 00:05:55,650 और हम कैसे देख लेंगे इससे पहले कि लंबे समय से करते हैं। 126 00:05:55,650 --> 00:05:58,590 हम बस एक्स वाई से कम कहेंगे। 127 00:05:58,590 --> 00:06:00,530 >> तो क्या आप शुरू कर रहे हैं कुछ समानताएं देखते हैं। 128 00:06:00,530 --> 00:06:03,490 और उन लोगों को, जो बने स्क्रैच निश्चित रूप से थे 129 00:06:03,490 --> 00:06:05,250 इन बुनियादी विचारों में से कुछ से प्रेरित है। 130 00:06:05,250 --> 00:06:10,350 और तुम में से इस तरह देखेंगे कई languages-- में वाक्य रचना 131 00:06:10,350 --> 00:06:12,160 न सिर्फ खरोंच, नहीं बस सी, लेकिन अजगर, 132 00:06:12,160 --> 00:06:14,790 और जावास्क्रिप्ट, और अभी भी अन्य भाषाओं। 133 00:06:14,790 --> 00:06:18,270 >> चलो एक और निर्माण पर विचार करें सी से, एक की हालत की धारणा, 134 00:06:18,270 --> 00:06:20,370 कुछ सशर्त कर रही है। 135 00:06:20,370 --> 00:06:22,720 अगर कुछ सच है, यह करते हैं। 136 00:06:22,720 --> 00:06:24,457 तो कुछ और ही सच है, ऐसा करते हो। 137 00:06:24,457 --> 00:06:27,040 यह प्रोग्रामिंग की तरह है सड़क में एक कांटा के बराबर है। 138 00:06:27,040 --> 00:06:29,730 शायद यह एक दो तरह कांटा है, एक तीन तरह कांटा, या अधिक। 139 00:06:29,730 --> 00:06:32,800 और खरोंच के साथ, हम हो सकता है कुछ इस तरह देखा। 140 00:06:32,800 --> 00:06:34,010 >> तो यह एक बड़ा एक है। 141 00:06:34,010 --> 00:06:36,750 लेकिन रिश्तेदार पर विचार तर्क की सादगी। 142 00:06:36,750 --> 00:06:44,010 यदि x y से कम है, तो कहते हैं कि एक्स कम है Y से, और अगर एक्स वाई से अधिक है, 143 00:06:44,010 --> 00:06:46,230 फिर कहते हैं कि एक्स वाई से अधिक है। 144 00:06:46,230 --> 00:06:48,300 और फिर, तार्किक रूप से, यदि आप स्क्रैच करने के लिए वापस लगता है 145 00:06:48,300 --> 00:06:52,610 या सिर्फ अपने स्वयं के मानव अंतर्ज्ञान, खैर, एक्स वाई से बड़ा नहीं होता, तो और एक्स 146 00:06:52,610 --> 00:06:57,000 Y से कम नहीं है, तो निश्चित रूप से है एक्स वाई के बराबर होने जा रहा है। 147 00:06:57,000 --> 00:06:59,690 तो इस मामले में, घोंसले से उन स्क्रैच ब्लॉक, 148 00:06:59,690 --> 00:07:02,580 हम एक तीन हासिल कर सकते हैं सड़क में जिस तरह से कांटा? 149 00:07:02,580 --> 00:07:04,980 >> इस बीच, हम करना चाहते हैं यकीनन ऐसा है कि सी में, यह 150 00:07:04,980 --> 00:07:08,420 कम से कम एक छोटे simpler-- लग रहा है एक बार जब आप वाक्य रचना के साथ परिचित हो। 151 00:07:08,420 --> 00:07:12,050 यदि x y से कम है, printf एक्स वाई से कम है। 152 00:07:12,050 --> 00:07:16,140 वरना अगर एक्स y से अधिक है, printf एक्स वाई से अधिक है। 153 00:07:16,140 --> 00:07:21,210 वरना printf एक्स, y-- और के बराबर है फिर, साथ उन लोगों के बैकस्लैश सिर्फ समाप्त होता है 154 00:07:21,210 --> 00:07:24,160 उन नई लाइनों के लिए तो यह है कि अगर आप वास्तव में इस कार्यक्रम के इस तरह भागा 155 00:07:24,160 --> 00:07:25,940 यह सिर्फ ले जाया जाएगा अपने कर्सर अंततः 156 00:07:25,940 --> 00:07:28,100 स्क्रीन के अगली पंक्ति के लिए। 157 00:07:28,100 --> 00:07:31,270 >> अब, इस बीच स्क्रैच दूसरे था अधिक अत्याधुनिक सुविधाओं, केवल 158 00:07:31,270 --> 00:07:34,320 जिनमें से कुछ हम करने जा रहे हैं शुरू में सी की दुनिया के लिए पर स्थानांतरित 159 00:07:34,320 --> 00:07:37,010 और उनमें से एक था स्क्रैच में एक सूची का आह्वान किया। 160 00:07:37,010 --> 00:07:39,100 और यह एक खास था चर के प्रकार है कि 161 00:07:39,100 --> 00:07:42,840 अनुमति आप कई चीजों की दुकान यह पीठ में, वापस करने के लिए वापस करने के लिए वापस करने के लिए। 162 00:07:42,840 --> 00:07:45,540 >> सी में, यह जरूरी नहीं है सूचियों, दर असल, लेकिन कुछ 163 00:07:45,540 --> 00:07:48,090 अधिक आम तौर पर कर रहे हैं कि सरणियों कहा जाता है, हालांकि हम करेंगे 164 00:07:48,090 --> 00:07:50,590 वापस आने के बाद में इस सेमेस्टर कुछ देख करने के लिए 165 00:07:50,590 --> 00:07:52,780 एक सूची है, या वास्तव में एक लिंक सूची का आह्वान किया। 166 00:07:52,780 --> 00:07:55,510 लेकिन अब, करीबी के लिए हमारे लिए सी में बराबर 167 00:07:55,510 --> 00:07:57,345 कुछ होने जा रहा है एक सरणी कहा जाता है। 168 00:07:57,345 --> 00:07:59,740 और एक सरणी बस एक है चर के विशेष प्रकार 169 00:07:59,740 --> 00:08:03,160 कि आप डेटा स्टोर करने के लिए अनुमति देता है वापस, वापस करने के लिए वापस करने के लिए वापस करने के लिए। 170 00:08:03,160 --> 00:08:05,840 >> और, वास्तव में, स्क्रैच में, हम का उपयोग करना चाहता था 171 00:08:05,840 --> 00:08:09,030 एक सरणी के पहले तत्व या एक list-- और मैं इसे कहते करने जा रहा हूँ, 172 00:08:09,030 --> 00:08:13,600 सम्मेलन, argv, तर्क से वेक्टर, लेकिन अधिक उस पर लंबे समय से पहले। 173 00:08:13,600 --> 00:08:17,090 मैं पहली बार तत्व पर प्राप्त करना चाहते हैं की खरोंच की दुनिया में argv, 174 00:08:17,090 --> 00:08:20,930 आप वास्तव में आम तौर पर कर 1 से गिनती शुरू। 175 00:08:20,930 --> 00:08:22,850 >> और इसलिए मैं argv की 1 आइटम मिल सकता है। 176 00:08:22,850 --> 00:08:26,310 यही कारण है कि बस कैसे एमआईटी लागू किया है सूचियों की धारणा। 177 00:08:26,310 --> 00:08:29,860 लेकिन सी में, मैं करने जा रहा हूँ अधिक बस बस का कहना है, argv, 178 00:08:29,860 --> 00:08:32,758 जो फिर से का नाम है मेरा list-- या स्पष्ट होने के लिए, एक सरणी। 179 00:08:32,758 --> 00:08:34,549 और मैं चाहता हूँ कि अगर पहले तत्वों, मैं जा रहा हूँ 180 00:08:34,549 --> 00:08:37,890 वर्ग कोष्ठक का उपयोग करने के लिए, आप जो अक्सर एक कुंजीपटल के तहत इस्तेमाल नहीं हो सकता है। 181 00:08:37,890 --> 00:08:40,150 >> लेकिन 0 बस का अर्थ है, पहले मुझे मिलता है। 182 00:08:40,150 --> 00:08:42,160 तो इस अवसर पर और के रूप में समय गुजरता है, हम जा रहे हैं 183 00:08:42,160 --> 00:08:44,570 इन द्विभाजन देखने के लिए शुरू करने के लिए खरोंच और सेल्सियस के बीच, 184 00:08:44,570 --> 00:08:46,070 जिससे स्क्रैच से एक का उपयोग करता है। 185 00:08:46,070 --> 00:08:47,670 हम सी में यहां 0 का उपयोग करें। 186 00:08:47,670 --> 00:08:49,420 लेकिन आप जल्दी से देखेंगे एक बार जब आप समझ में 187 00:08:49,420 --> 00:08:52,920 प्रत्येक भाषा की नींव, कि इन बातों को सभी को और अधिक पाने के लिए शुरू 188 00:08:52,920 --> 00:08:56,860 अभ्यास और अभ्यास के माध्यम से परिचित। 189 00:08:56,860 --> 00:08:59,700 >> तो चलो वास्तव में एक कार्यक्रम में अब देखो। 190 00:08:59,700 --> 00:09:04,031 यहाँ हमारे सी के पहले हो जाएगा पूरा कार्यक्रमों के लिए स्रोत कोड। 191 00:09:04,031 --> 00:09:06,280 और कार्यक्रम हम जा रहे हैं विचार के लिए पेशकश करने के लिए 192 00:09:06,280 --> 00:09:09,340 एक है कि बराबर है कि पहले स्क्रैच टुकड़ा करने के लिए। 193 00:09:09,340 --> 00:09:13,210 >> यहाँ तो, हम क्या है यकीनन सबसे सरल सी कार्यक्रम 194 00:09:13,210 --> 00:09:15,410 आप लिख सकते हैं वास्तव में कुछ भी करता है। 195 00:09:15,410 --> 00:09:18,250 अब, हम अतीत देखता हूँ, अभी के लिए, शामिल है, 196 00:09:18,250 --> 00:09:21,190 मानक io.h, और इन कोण कोष्ठक, और पूर्णांक, और शून्य, 197 00:09:21,190 --> 00:09:22,840 और घुंघराले ब्रेसिज़, और पसंद है। 198 00:09:22,840 --> 00:09:25,390 >> और हम बस पर ध्यान केंद्रित करते हैं क्या, कम से कम intuitively, 199 00:09:25,390 --> 00:09:26,860 पहले से ही आप पर बाहर कूद सकता है। 200 00:09:26,860 --> 00:09:30,300 वास्तव में, मुख्य, मैं नहीं जरूरी पता है कि यह क्या है, 201 00:09:30,300 --> 00:09:34,580 जब कि लेकिन स्क्रैच बहुत पसंद था हरे रंग का झंडा पहेली टुकड़ा क्लिक किया, 202 00:09:34,580 --> 00:09:39,070 इसलिए एक प्रोग्रामिंग भाषा के रूप में सी करता है कोड का एक मुख्य टुकड़ा है कि 203 00:09:39,070 --> 00:09:43,380 डिफ़ॉल्ट रूप से मार डाला जाता है। सचमुच, यह सचमुच मुख्य बुलाया जा रहा है। 204 00:09:43,380 --> 00:09:44,720 >> तो मुख्य कार्य है। 205 00:09:44,720 --> 00:09:48,720 और यह एक विशेष समारोह में कहा कि मौजूद है सी में जब आप एक प्रोग्राम चलाते हैं, 206 00:09:48,720 --> 00:09:52,720 ऐसा नहीं है कि द्वारा चलाया जाता है मुख्य है चूक। स्क्रैच की दुनिया में, 207 00:09:52,720 --> 00:09:56,970 यह आम तौर पर जब हरे रंग का झंडा था क्लिक किया डिफ़ॉल्ट रूप से चलाने मिला है। 208 00:09:56,970 --> 00:10:01,130 >> इस बीच, हम इस पहले देखा है, printf या प्रिंट स्वरूपित है, कि 209 00:10:01,130 --> 00:10:05,620 एक समारोह के साथ आता है कि होने जा रहा सी, दूसरों की एक पूरी गुच्छा के साथ साथ, 210 00:10:05,620 --> 00:10:10,140 समय और समय से इच्छा है कि फिर, क्रम में ठीक करने के लिए 211 00:10:10,140 --> 00:10:12,450 जैसा कि इसके नाम का सुझाव है, कुछ प्रिंट। 212 00:10:12,450 --> 00:10:13,500 क्या हम प्रिंट करना चाहते हैं? 213 00:10:13,500 --> 00:10:15,770 ठीक है, हम देखेंगे कि enclosing पात्रों द्वारा 214 00:10:15,770 --> 00:10:18,680 these-- हैलो दुनिया की तरह, डबल उद्धरण में बैकस्लैश एन, 215 00:10:18,680 --> 00:10:23,040 हम वास्तव में printf बता सकते हैं स्क्रीन पर क्या मुद्रित करने के लिए। 216 00:10:23,040 --> 00:10:26,430 >> लेकिन क्रम में करने के लिए कि, हम दुर्भाग्य से 217 00:10:26,430 --> 00:10:30,010 कुछ तो है कि लेने की जरूरत पहले से ही हमें मनुष्य के लिए गुप्त, 218 00:10:30,010 --> 00:10:34,510 लेकिन कम से कम यह कुछ हद तक readable-- है तेज शामिल हैं, मानक io.h, पूर्णांक, 219 00:10:34,510 --> 00:10:39,340 मुख्य, शून्य, printf, जादुई के सभी मंत्र हम सिर्फ स्क्रीन पर देखा था। 220 00:10:39,340 --> 00:10:42,470 लेकिन हम वास्तव में करने के लिए है अभी भी अधिक रहस्यमय जाना। 221 00:10:42,470 --> 00:10:47,140 हम पहले कोड अनुवाद करने की जरूरत हम मशीन कोड में लिखना है। 222 00:10:47,140 --> 00:10:51,370 और पिछले सप्ताह से याद है कि मशीनों, कम से कम लोगों को पता है कि हम यहाँ, 223 00:10:51,370 --> 00:10:54,450 दिन के अंत में ही शून्य और लोगों को समझते हैं। 224 00:10:54,450 --> 00:10:58,100 >> और मेरे भगवान, ये लिखने के लिए यदि हम था शून्य और वास्तव में इस कार्यक्रम के लिए लोगों को, 225 00:10:58,100 --> 00:11:01,260 यह बहुत, बहुत जल्दी होगा कुछ भी से बाहर मजा लेते हैं। 226 00:11:01,260 --> 00:11:05,150 लेकिन यह पता चला है, पिछले सप्ताह प्रति, कि शून्य और लोगों की इन नमूनों 227 00:11:05,150 --> 00:11:06,400 सिर्फ विशेष अर्थ है। 228 00:11:06,400 --> 00:11:08,500 कुछ संदर्भों में, वे संख्या मतलब हो सकता है। 229 00:11:08,500 --> 00:11:11,840 >> कुछ संदर्भों में, वे मतलब हो सकता है अक्षर, या रंग, या किसी भी संख्या 230 00:11:11,840 --> 00:11:14,710 वहाँ पर अन्य चीजें। 231 00:11:14,710 --> 00:11:18,450 लेकिन बस के रूप में आपके कंप्यूटर है एक सीपीयू, सेंट्रल प्रोसेसिंग यूनिट, 232 00:11:18,450 --> 00:11:20,390 या आपके कंप्यूटर के अंदर दिमाग। 233 00:11:20,390 --> 00:11:22,240 यह आमतौर पर इंटेल की अंदर, कि क्योंकि 234 00:11:22,240 --> 00:11:24,900 सबसे बड़ी कंपनियों में से एक कंप्यूटर के लिए सीपीयू बनाता है। 235 00:11:24,900 --> 00:11:28,910 >> खैर, इंटेल सीपीयू और दूसरों बस अग्रिम में फैसला कर लिया है 236 00:11:28,910 --> 00:11:33,970 कि शून्य के कुछ पैटर्न और लोगों को विशिष्ट बातों का अर्थ होगा। 237 00:11:33,970 --> 00:11:37,040 शून्य और लोगों के कुछ पैटर्न होगा मतलब है, स्क्रीन करने के लिए इस प्रिंट, 238 00:11:37,040 --> 00:11:39,710 या इन दो नंबरों को जोड़ने, या इन दो नंबरों घटाना, 239 00:11:39,710 --> 00:11:43,310 या से डेटा के इस टुकड़े को स्थानांतरित अपने कंप्यूटर की स्मृति यहाँ पर, 240 00:11:43,310 --> 00:11:47,870 या अन्य बहुत कम स्तर के किसी भी संख्या, लेकिन अंत में उपयोगी है, आपरेशनों। 241 00:11:47,870 --> 00:11:53,022 लेकिन, शुक्र है, हम इंसानों के लिए नहीं जा रहे हैं विस्तार के इस स्तर को पता करने की जरूरत है। 242 00:11:53,022 --> 00:11:56,230 दरअसल, सिर्फ, पिछली बार की तरह है, जहां हम फिर से, और फिर, और फिर अनमना, 243 00:11:56,230 --> 00:11:58,930 बहुत कम स्तर से इमारत शून्य और लोगों की तरह पुरातन 244 00:11:58,930 --> 00:12:01,160 उच्च स्तर की अवधारणाओं को संख्याओं, और अक्षरों की तरह, 245 00:12:01,160 --> 00:12:04,330 और रंग, और अधिक, इसलिए हम प्रोग्रामर के रूप में कर सकते हैं 246 00:12:04,330 --> 00:12:07,080 के कंधों पर खड़े दूसरों को, जो हमारे सामने आए हैं 247 00:12:07,080 --> 00:12:11,260 और सॉफ्टवेयर है कि अन्य का उपयोग लोगों us-- पहले लिखा है 248 00:12:11,260 --> 00:12:14,340 अर्थात् कार्यक्रमों compilers बुलाया। 249 00:12:14,340 --> 00:12:17,770 >> सी एक भाषा है कि आमतौर पर संकलित किया गया है, 250 00:12:17,770 --> 00:12:22,130 जिसमें से परिवर्तित करने का मतलब मशीन कोड के लिए स्रोत कोड। 251 00:12:22,130 --> 00:12:25,230 विशेष रूप से, क्या इसका मतलब यह है जाती है कि आप अपने स्रोत मिल गया है 252 00:12:25,230 --> 00:12:29,530 कोड है कि आप अपने आप को हम जितनी जल्दी लिखते हैं, स्क्रीन पर बस एक पल में होगा, 253 00:12:29,530 --> 00:12:33,140 और आप इसे परिवर्तित करना चाहते हैं अंतत: मशीन के लिए code-- 254 00:12:33,140 --> 00:12:37,100 उन शून्य और लोगों को केवल अपने मैक या अपने पीसी 255 00:12:37,100 --> 00:12:41,230 understands-- आप पहली बार एक मिल गया है के रूप में है कि स्रोत कोड फ़ीड 256 00:12:41,230 --> 00:12:46,340 एक विशेष के लिए इनपुट कार्यक्रम एक संकलक कहा जाता है, 257 00:12:46,340 --> 00:12:48,974 उत्पादन जिनमें से हम को देखेगा मशीन कोड है। 258 00:12:48,974 --> 00:12:51,890 और, वास्तव में, पिछली बार हमने बात की थी के बारे में है, वास्तव में, दिन के अंत में, 259 00:12:51,890 --> 00:12:52,610 समस्या को सुलझाना। 260 00:12:52,610 --> 00:12:53,360 आप आदानों मिल गया है। 261 00:12:53,360 --> 00:12:54,318 और अगर आप outputs मिल गया है। 262 00:12:54,318 --> 00:12:56,560 और अगर आप किसी तरह मिल गया है बीच में एल्गोरिथ्म के। 263 00:12:56,560 --> 00:12:59,830 >> एल्गोरिदम निश्चित रूप से हो सकता है सॉफ्टवेयर में लागू किया, 264 00:12:59,830 --> 00:13:02,900 हम pseudocode पिछले सप्ताह के साथ देखा था और हम वास्तविक कोड के साथ देखेंगे के रूप में 265 00:13:02,900 --> 00:13:03,490 इस सप्ताह। 266 00:13:03,490 --> 00:13:06,430 और तो एक संकलक वास्तव में सिर्फ अंदर एल्गोरिदम का एक सेट है 267 00:13:06,430 --> 00:13:10,060 इसके बारे में पता है कि कैसे करने के लिए विशेष कीवर्ड परिवर्तित, 268 00:13:10,060 --> 00:13:12,180 मुख्य, और printf की तरह, और दूसरों है कि हम सिर्फ 269 00:13:12,180 --> 00:13:17,620 शून्य के पैटर्न में देखा था और लोगों को लगता है कि इंटेल के अंदर और अन्य सीपीयू 270 00:13:17,620 --> 00:13:20,020 वास्तव में समझता है। 271 00:13:20,020 --> 00:13:22,460 इसे कैसे किया जा सकता है? 272 00:13:22,460 --> 00:13:24,470 हम एक संकलक कहाँ मिलता है? 273 00:13:24,470 --> 00:13:26,400 >> हम में से अधिकांश यहाँ एक मैक या पीसी है। 274 00:13:26,400 --> 00:13:29,152 और अगर आप मैक ओएस चला रहे हैं, या विंडोज, या लिनक्स, या सोलारिस, 275 00:13:29,152 --> 00:13:30,860 या अन्य के किसी भी संख्या ऑपरेटिंग सिस्टम। 276 00:13:30,860 --> 00:13:32,568 और, वास्तव में, हम कर सकते थे वेब पर बाहर जाना 277 00:13:32,568 --> 00:13:35,710 और एक संकलक डाउनलोड अपने मैक या अपने पीसी के लिए 278 00:13:35,710 --> 00:13:37,360 अपने विशेष ऑपरेटिंग सिस्टम के लिए। 279 00:13:37,360 --> 00:13:39,617 लेकिन हम सब पर होगा विभिन्न पृष्ठों, तो बात करो। 280 00:13:39,617 --> 00:13:41,450 हम थोड़ा होता है अलग विन्यास। 281 00:13:41,450 --> 00:13:43,210 और चीजें हैं सब एक ही काम नहीं करेगा। 282 00:13:43,210 --> 00:13:45,280 और, वास्तव में, इन दिनों हम में से कई का उपयोग नहीं करते 283 00:13:45,280 --> 00:13:47,516 कि केवल हमारे लैपटॉप पर चलता सॉफ्टवेयर। 284 00:13:47,516 --> 00:13:49,390 इसके बजाय, हम कुछ का उपयोग एक ब्राउज़र की तरह है कि 285 00:13:49,390 --> 00:13:52,930 हमें पहुंचने देता है वेब आधारित बादल में अनुप्रयोगों। 286 00:13:52,930 --> 00:13:55,630 और बाद में इस सेमेस्टर, वास्तव में हम ऐसा करेंगे। 287 00:13:55,630 --> 00:13:59,660 हम आवेदनों लिखेंगे या सॉफ्टवेयर code-- का उपयोग नहीं सी, 288 00:13:59,660 --> 00:14:02,860 लेकिन अजगर की तरह अन्य भाषाओं और JavaScript-- कि बादल में चला रहे हैं। 289 00:14:02,860 --> 00:14:05,860 >> और अपने आप को क्या करना है कि, हम सेमेस्टर के दौरान 290 00:14:05,860 --> 00:14:11,890 वास्तव में एक क्लाउड-आधारित का उपयोग करेगा CS50 आईडीई के रूप में जाना जाता है पर्यावरण। 291 00:14:11,890 --> 00:14:16,030 यह एक वेब आधारित प्रोग्रामिंग है पर्यावरण, या एकीकृत विकास 292 00:14:16,030 --> 00:14:20,610 पर्यावरण, आईडीई, कि कुछ के ऊपर बनाया गया है खुला स्रोत सॉफ्टवेयर 9 बादल बुलाया। 293 00:14:20,610 --> 00:14:22,966 और हम कुछ शैक्षणिक बनाया है यह करने के सरलीकरण 294 00:14:22,966 --> 00:14:25,840 में कुछ सुविधाओं को छिपाने के लिए इतनी के रूप में पहले सप्ताह है कि हम जरूरत नहीं है, 295 00:14:25,840 --> 00:14:27,770 जिसके बाद आप कर सकते हैं उन्हें पता चलता है और करना सबसे 296 00:14:27,770 --> 00:14:29,400 कुछ भी आप पर्यावरण के साथ चाहते हैं। 297 00:14:29,400 --> 00:14:32,470 >> और यह हमें भी अनुमति देता है, के लिए, कुछ सॉफ्टवेयर पूर्व स्थापित करें। 298 00:14:32,470 --> 00:14:35,330 एक तथाकथित CS50 जैसे हालात पुस्तकालय है, जो हम जल्द ही देखेंगे 299 00:14:35,330 --> 00:14:39,210 कुछ के साथ सी में हमें प्रदान करता है अतिरिक्त कार्यक्षमता। 300 00:14:39,210 --> 00:14:44,392 तो अगर तुम जाओ करने के लिए, अंत में, CS50.io, आप में प्रवेश करने के लिए प्रेरित किया जाएगा 301 00:14:44,392 --> 00:14:46,350 और एक बार आप करते हैं और बनाने मुक्त करने के लिए एक खाता, 302 00:14:46,350 --> 00:14:52,150 आप एक का उपयोग करने में सक्षम हो जाएगा वातावरण है कि इस तरह से काफी लग रहा है। 303 00:14:52,150 --> 00:14:53,760 >> अब, यह डिफ़ॉल्ट मोड में है। 304 00:14:53,760 --> 00:14:55,650 सब कुछ अच्छा है और स्क्रीन पर उज्ज्वल है। 305 00:14:55,650 --> 00:14:57,941 हम में से कई की एक आदत है CS50 टुकड़ा है उस पर काम कर 306 00:14:57,941 --> 00:14:59,150 काफी देर रात में। 307 00:14:59,150 --> 00:15:02,400 और तो आप में से कुछ पसंद हो सकता है यह रात मोड में बदल जाते हैं, तो बात करो। 308 00:15:02,400 --> 00:15:05,550 >> लेकिन, अंत में, आप क्या कर रहे हैं CS50 आईडीई के भीतर देखने के लिए जा रहा 309 00:15:05,550 --> 00:15:08,340 तीन अलग areas-- है छोड़ दिया, जहां पर एक क्षेत्र 310 00:15:08,340 --> 00:15:12,604 अपनी फाइल में होने जा रहे हैं बादल, ऊपर सही पर एक क्षेत्र 311 00:15:12,604 --> 00:15:14,270 जहां अपने कोड संपादन किया जा रहा है। 312 00:15:14,270 --> 00:15:16,650 आप को खोलने के लिए सक्षम हो जाएगा किसी भी कार्यक्रम के लिए अलग-अलग टैब 313 00:15:16,650 --> 00:15:19,670 आप इस सेमेस्टर के अंदर के बारे में है कि कि ऊपर दाहिने हाथ कोने की। 314 00:15:19,670 --> 00:15:23,070 और फिर सबसे arcanely, और अभी तक शक्तिशाली, 315 00:15:23,070 --> 00:15:26,610 पर इस बात को होने जा रहा है टर्मिनल विंडो के रूप में जाना जाता है नीचे। 316 00:15:26,610 --> 00:15:29,450 >> यह एक पुराने स्कूल है कमांड लाइन इंटरफेस, 317 00:15:29,450 --> 00:15:32,240 या सीएलआई, कि अनुमति देता है आप आदेश पर अमल करने के लिए 318 00:15:32,240 --> 00:15:35,260 इस मामले में computer-- पर, cloud-- में कंप्यूटर 319 00:15:35,260 --> 00:15:39,090 अपने कोड संकलन की तरह बातें करने के लिए स्रोत कोड से मशीन कोड के लिए, 320 00:15:39,090 --> 00:15:43,600 अपने कार्यक्रमों को चलाने के लिए, या शुरू करने के लिए अपने वेब सर्वर, या अपने डेटाबेस का उपयोग करने के लिए, 321 00:15:43,600 --> 00:15:47,454 और अन्य तकनीकों के किसी भी संख्या कि हम लंबे समय से पहले का उपयोग करने के लिए शुरू कर देंगे। 322 00:15:47,454 --> 00:15:49,370 लेकिन वहाँ पाने के लिए, हम कर रहे हैं वास्तव में लिए किया जा रहा 323 00:15:49,370 --> 00:15:51,240 ऑनलाइन जाने और खेल शुरू करने के लिए। 324 00:15:51,240 --> 00:15:54,399 और ऐसा करने के लिए, की पहली चलो मुख्य साथ छेड़छाड़ शुरू, 325 00:15:54,399 --> 00:15:55,940 और एक कार्यक्रम के मुख्य भाग में लिखें। 326 00:15:55,940 --> 00:15:59,170 और चलो कि समारोह का उपयोग करते हैं printf, जो हम पहले से इस्तेमाल किया, 327 00:15:59,170 --> 00:16:01,050 बस कुछ कहने के लिए। 328 00:16:01,050 --> 00:16:04,910 >> तो यहाँ मैं CS50 आईडीई के अंदर पहले से ही कर रहा हूँ। 329 00:16:04,910 --> 00:16:05,930 मैं अग्रिम में लॉग इन किया है। 330 00:16:05,930 --> 00:16:07,360 और मैं पूर्ण खिड़की की जांच की। 331 00:16:07,360 --> 00:16:09,670 और हां, तो अंत में, आप भी आ रही समस्याओं में 332 00:16:09,670 --> 00:16:12,960 इसी तरह के कदम का पालन करेंगे कि ऑनलाइन प्रलेखन प्रदान करेगा। 333 00:16:12,960 --> 00:16:16,360 तो आप के बारे में चिंता करने की जरूरत नहीं है हर छोटी तकनीकी कदम को अवशोषित 334 00:16:16,360 --> 00:16:17,730 मैं आज यहां करते हैं। 335 00:16:17,730 --> 00:16:19,222 >> लेकिन आप इस तरह की स्क्रीन मिल जाएगा। 336 00:16:19,222 --> 00:16:20,430 मैं रात मोड में होना होता है। 337 00:16:20,430 --> 00:16:22,944 और तुम सब कुछ रोशन कर सकते हैं रात मोड अक्षम द्वारा अप। 338 00:16:22,944 --> 00:16:24,860 और के अंत में दिन, आप को देखने के लिए जा रहे हैं 339 00:16:24,860 --> 00:16:30,090 फ़ाइल areas-- इन तीन मुख्य बाएँ पर ब्राउज़र, ऊपर शीर्ष कोड टैब, 340 00:16:30,090 --> 00:16:32,430 और नीचे में टर्मिनल विंडो। 341 00:16:32,430 --> 00:16:34,890 >> मुझे आगे चलते हैं और मेरा पहला कार्यक्रम के बारे में। 342 00:16:34,890 --> 00:16:42,300 मैं, preemptively फाइल करने के लिए जाने के लिए जा रहा हूँ सहेजें, और hello.c के रूप में मेरी फाइल को बचाने के। 343 00:16:42,300 --> 00:16:46,850 दरअसल, परंपरा से, किसी भी कार्यक्रम हम लिखने कि सी भाषा में लिखा है 344 00:16:46,850 --> 00:16:49,739 कुछ नाम होना चाहिए डॉट सी, परंपरा से। 345 00:16:49,739 --> 00:16:53,030 इसलिए मैं यह hello.c नाम करने के लिए जा रहा हूँ, क्योंकि मैं तो बस दुनिया को नमस्ते कहना चाहता हूँ। 346 00:16:53,030 --> 00:16:54,820 अब मैं ज़ूम करने के लिए जा रहा हूँ बाहर और सहेजें क्लिक करें। 347 00:16:54,820 --> 00:16:58,180 और यह सब मैं यहाँ है अब एक टैब है जिसमें मैं कोड लिखने शुरू कर सकते हैं। 348 00:16:58,180 --> 00:16:59,490 >> यह संकलन करने के लिए नहीं जा रहा है। 349 00:16:59,490 --> 00:17:00,300 यह कोई मतलब नहीं है। 350 00:17:00,300 --> 00:17:02,750 और हां, तो भी मैं परिवर्तित शून्य और लोगों को यह, 351 00:17:02,750 --> 00:17:05,390 सीपीयू कोई किया जा रहा है विचार के आसपास क्या हो रहा है। 352 00:17:05,390 --> 00:17:14,170 लेकिन अगर मैं लाइनों के बारे में है कि मैच साथ सी सी conventions-- किया जा रहा, 353 00:17:14,170 --> 00:17:20,150 फिर, इस वाक्य रचना के साथ language-- की तरह यही नहीं, printf हैलो world-- और मैं 354 00:17:20,150 --> 00:17:22,210 के साथ आराम मिल गया समय के साथ यह कर। 355 00:17:22,210 --> 00:17:24,510 इसलिए मुझे लगता है मैं बना नहीं लगता है किसी भी टंकण त्रुटि। 356 00:17:24,510 --> 00:17:27,910 >> लेकिन, जाहिर है, बहुत पहले बार जब आप ऐसा करते हैं, आप करेंगे। 357 00:17:27,910 --> 00:17:31,090 और मैं क्या करने जा रहा हूँ बहुत हो सकता है अच्छी तरह से आप के लिए पहली बार काम नहीं। 358 00:17:31,090 --> 00:17:33,610 और वह पूरी तरह से ठीक है, क्योंकि अभी आप 359 00:17:33,610 --> 00:17:37,662 सिर्फ नयापन की एक पूरी बहुत कुछ देख सकता है, लेकिन समय के साथ एक बार जब आप परिचित हो 360 00:17:37,662 --> 00:17:39,870 इस माहौल के साथ, और इस भाषा, और दूसरों को, 361 00:17:39,870 --> 00:17:42,370 आप चीजों को देखना शुरू करेंगे कि या तो सही है या गलत कर रहे हैं। 362 00:17:42,370 --> 00:17:44,369 >> और यह क्या है टीचिंग फैलो और पाठ्यक्रम 363 00:17:44,369 --> 00:17:48,780 सहायकों है, समय के साथ पर इतना अच्छा मिलता है अपने कोड में गलतियों या कीड़े खोलना। 364 00:17:48,780 --> 00:17:52,110 लेकिन मुझे लगता है कि वहाँ का दावा इस कोड में कोई कीड़े हैं। 365 00:17:52,110 --> 00:17:53,990 तो अब मैं इस कार्यक्रम को चलाने के लिए चाहते हैं। 366 00:17:53,990 --> 00:17:57,440 >> अब अपने दम पर मैक या पीसी, मैं में हूँ डबल क्लिक माउस की आदत 367 00:17:57,440 --> 00:17:59,350 जब मैं कुछ कार्यक्रम चलाना चाहते हैं। 368 00:17:59,350 --> 00:18:01,080 लेकिन यह है कि मॉडल यहाँ नहीं है। 369 00:18:01,080 --> 00:18:04,570 इस माहौल है, जो CS50 आईडीई है। 370 00:18:04,570 --> 00:18:07,192 हम एक ऑपरेटिंग उपयोग कर रहे हैं सिस्टम लिनक्स कहा जाता है। 371 00:18:07,192 --> 00:18:09,900 लिनक्स दूसरे की याद ताजा करती है ऑपरेटिंग सिस्टम है, आम तौर पर जाना जाता है 372 00:18:09,900 --> 00:18:10,850 यूनिक्स के रूप में। 373 00:18:10,850 --> 00:18:16,340 और लिनक्स के लिए विशेष रूप से जाना जाता है एक कमांड लाइन वातावरण, सीएलआई कर रही है। 374 00:18:16,340 --> 00:18:20,070 अब, हम एक विशिष्ट प्रयोग कर रहे हैं लिनक्स का स्वाद उबंटू का आह्वान किया। 375 00:18:20,070 --> 00:18:22,770 और Ubuntu बस एक है लिनक्स के कुछ संस्करण। 376 00:18:22,770 --> 00:18:27,900 >> लेकिन इन लिनक्स इन दिनों वास्तव में क्या ग्राफिकल यूजर इंटरफेस के साथ आते हैं। 377 00:18:27,900 --> 00:18:30,360 और एक हम के लिए होता है यहाँ का उपयोग किया जा वेब आधारित है। 378 00:18:30,360 --> 00:18:32,735 तो यह भी एक लग सकता है कुछ से थोड़ा अलग 379 00:18:32,735 --> 00:18:35,310 आप अपने आप को हो सकता है देखा या अतीत में चला रहे हैं। 380 00:18:35,310 --> 00:18:37,910 >> तो मैं आगे जाने के लिए जा रहा हूँ अब और निम्नलिखित है। 381 00:18:37,910 --> 00:18:40,950 मैं इस फाइल hello.c के रूप में सहेजे गए हैं। 382 00:18:40,950 --> 00:18:47,350 मैं आगे जाने के लिए जा रहा हूँ और प्रकार clanghello.c बजना तो 383 00:18:47,350 --> 00:18:49,850 सी भाषा के लिए एक संकलक है। 384 00:18:49,850 --> 00:18:51,952 यह पहले से स्थापित है CS50 आईडीई में। 385 00:18:51,952 --> 00:18:54,910 और आप पूरी तरह से डाउनलोड कर सकते हैं और अपने खुद के मैक या पीसी पर यह स्थापित। 386 00:18:54,910 --> 00:18:57,910 >> लेकिन, फिर से, आप सभी के लिए नहीं होता पूर्व विन्यास आप के लिए किया। 387 00:18:57,910 --> 00:19:00,940 तो अब के लिए, मैं अभी कर रहा हूँ clanghello.c चलाने के लिए जा रहा है। 388 00:19:00,940 --> 00:19:03,240 और अब इस वाक्य रचना नोटिस यहाँ अंत में होगा 389 00:19:03,240 --> 00:19:06,930 एहसास बस का अर्थ है कि मैं एक में हूँ फ़ोल्डर या निर्देशिका कार्यक्षेत्र बुलाया। 390 00:19:06,930 --> 00:19:11,030 यह डॉलर के हस्ताक्षर सिर्फ परंपरा है अर्थ के लिए, अपने आदेशों यहाँ टाइप करें। 391 00:19:11,030 --> 00:19:14,560 >> ऐसा नहीं है जो एक त्वरित कहा जाता है, बस सम्मेलन द्वारा डॉलर की निशानी है। 392 00:19:14,560 --> 00:19:19,130 और अगर मैं अब आगे जाना है और क्लिक करें दर्ज करें, कुछ भी नहीं हुआ है लगता है। 393 00:19:19,130 --> 00:19:20,930 लेकिन यह है कि वास्तव में एक अच्छी बात है। 394 00:19:20,930 --> 00:19:23,650 कम उस पर होता है अपनी स्क्रीन है, और अधिक होने की संभावना 395 00:19:23,650 --> 00:19:26,710 अपने कोड सही हो सकता है, कम से कम वाक्य रचना। 396 00:19:26,710 --> 00:19:29,120 >> तो अगर मैं इस चलाना चाहते हैं कार्यक्रम है, मैं क्या करूँ? 397 00:19:29,120 --> 00:19:33,770 खैर, यह पता चला है कि सम्मेलन द्वारा डिफ़ॉल्ट नाम 398 00:19:33,770 --> 00:19:38,854 कार्यक्रमों के लिए जब आप एक निर्दिष्ट नहीं करते नाम के लिए अपने कार्यक्रम सिर्फ a.out है। 399 00:19:38,854 --> 00:19:41,270 और इस वाक्य रचना भी है, तुम हूँ लंबे समय से पहले से परिचित हो। 400 00:19:41,270 --> 00:19:47,500 >> डॉट स्लेश बस का अर्थ है, हे, CS50 आईडीई, एक कार्यक्रम a.out बुलाया चलाने 401 00:19:47,500 --> 00:19:49,400 कि मेरे वर्तमान निर्देशिका के अंदर है। 402 00:19:49,400 --> 00:19:51,520 यही कारण है कि डॉट मौजूदा निर्देशिका का मतलब है। 403 00:19:51,520 --> 00:19:55,040 और हम क्या अन्य ऐसे दृश्यों देखेंगे पात्रों के लंबे समय से पहले का मतलब है। 404 00:19:55,040 --> 00:19:58,430 >> तो यहाँ हम चले, दर्ज करें, हैलो दुनिया। 405 00:19:58,430 --> 00:20:00,080 और तुम नोटिस हूँ, कि क्या हुआ? 406 00:20:00,080 --> 00:20:01,580 इतना ही नहीं यह हैलो दुनिया मुद्रित किया था। 407 00:20:01,580 --> 00:20:05,990 यह भी ले जाया गया अगली पंक्ति के लिए कर्सर। 408 00:20:05,990 --> 00:20:07,160 >> और क्यों था? 409 00:20:07,160 --> 00:20:12,400 कोड है कि हम पहले लिखा क्या था कि यह सुनिश्चित किया कि कर्सर होगा 410 00:20:12,400 --> 00:20:14,882 अगली पंक्ति पर जाना है? 411 00:20:14,882 --> 00:20:16,840 एक के बारे में मजेदार बात कंप्यूटर यह केवल जा रहा है 412 00:20:16,840 --> 00:20:18,570 सचमुच ऐसा करने के लिए आप क्या करना है यह बताओ। 413 00:20:18,570 --> 00:20:26,050 >> तो अगर आप हैलो printf यह बताने के लिए करते हैं, अल्पविराम, अंतरिक्ष, दुनिया, बंद भाव, 414 00:20:26,050 --> 00:20:29,090 यह सचमुच ही जा रहा है उन पात्रों मुद्रित करने के लिए। 415 00:20:29,090 --> 00:20:31,980 लेकिन मैं इस विशेष चरित्र था अंत में, याद है, बैकस्लैश एन। 416 00:20:31,980 --> 00:20:34,230 और है कि क्या यह सुनिश्चित किया है उस चरित्र के लिए चला गया 417 00:20:34,230 --> 00:20:36,570 स्क्रीन के अगली पंक्ति के लिए। 418 00:20:36,570 --> 00:20:38,097 >> वास्तव में, मुझे जाने और यह करते हैं। 419 00:20:38,097 --> 00:20:39,430 मुझे आगे जाना है और इसे हटाना करते हैं। 420 00:20:39,430 --> 00:20:41,180 अब, कि नोटिस मेरा स्क्रीन के ऊपर वहाँ है 421 00:20:41,180 --> 00:20:42,890 में एक छोटे से लाल बत्ती टैब का संकेत है, 422 00:20:42,890 --> 00:20:45,047 अरे, आप अपनी फ़ाइल को सहेजा नहीं गए हैं। 423 00:20:45,047 --> 00:20:47,880 तो मैं नियंत्रण के साथ आगे जाने के लिए जा रहा हूँ एस या आदेश एस, फ़ाइल सहेजें। 424 00:20:47,880 --> 00:20:51,130 अब यह एक moment-- हरे रंग के लिए चला गया goes--। 425 00:20:51,130 --> 00:20:53,760 और अब यह करने के लिए वापस आ गया है सिर्फ एक करीबी आइकन जा रहा है। 426 00:20:53,760 --> 00:21:01,860 >> अब मैं फिर से clanghello.c चलाते हैं, दर्ज करें, डॉट स्लेश, a.out, दर्ज करें, 427 00:21:01,860 --> 00:21:04,110 आप देखेंगे कि यह अभी भी काम किया। 428 00:21:04,110 --> 00:21:06,020 लेकिन यह यकीनन एक छोटी छोटी गाड़ी है। 429 00:21:06,020 --> 00:21:08,714 अभी, मेरे prompt-- कार्यक्षेत्र, और फिर उस डॉलर के हस्ताक्षर, 430 00:21:08,714 --> 00:21:10,880 और फिर मेरे वास्तविक prompt-- सभी एक ही लाइन पर है। 431 00:21:10,880 --> 00:21:14,540 तो यह निश्चित रूप से एक सौंदर्य बग, यहां तक ​​कि अगर यह सच में एक तार्किक बग नहीं है। 432 00:21:14,540 --> 00:21:16,250 >> इसलिए मुझे लगता है मैं बस क्या था पूर्ववत करने के लिए जा रहा हूँ। 433 00:21:16,250 --> 00:21:18,560 मैं फिर से दौड़ना a.out करने जा रहा हूँ। 434 00:21:18,560 --> 00:21:22,710 सूचना मैंने जोड़ दिया है newline चरित्र वापस। 435 00:21:22,710 --> 00:21:24,280 मैं फ़ाइल बचा लिया। 436 00:21:24,280 --> 00:21:31,630 >> तो मैं फिर से दौड़ना a.out करने जा रहा हूँ और-- Dammit, एक बग, एक बग अर्थ गलती। 437 00:21:31,630 --> 00:21:35,020 तो बग है कि भले ही है मैं वहाँ n बैकस्लैश कहा, 438 00:21:35,020 --> 00:21:41,180 फिर से बचाया, कार्यक्रम फिर से भाग गया, व्यवहार ही किया गया था। 439 00:21:41,180 --> 00:21:42,640 ऐसा क्यों है कि हो सकता है? 440 00:21:42,640 --> 00:21:43,910 >> मैं एक कदम है, है ना याद आ रही है? 441 00:21:43,910 --> 00:21:47,620 यही कारण है कि महत्वपूर्ण कदम है कि आप पहले था जब आप अपने स्रोत कोड बदलने है--, 442 00:21:47,620 --> 00:21:49,610 यह पता चला है भी चलाते हैं यह संकलक के माध्यम से 443 00:21:49,610 --> 00:21:51,102 फिर तो आप नई मशीन कोड मिलता है। 444 00:21:51,102 --> 00:21:52,810 और मशीन कोड, शून्य और लोगों, 445 00:21:52,810 --> 00:21:56,260 लगभग समान होने जा रहे हैं लेकिन पूरी तरह तो नहीं, क्योंकि हम की जरूरत है, 446 00:21:56,260 --> 00:21:57,510 जाहिर है, कि नई लाइन। 447 00:21:57,510 --> 00:22:02,640 >> तो यह तय करने के लिए, मैं जरूरत के लिए जा रहा हूँ clanghello.c फिर से दौड़ना, प्रवेश, डॉट 448 00:22:02,640 --> 00:22:03,800 स्लेश, a.out। 449 00:22:03,800 --> 00:22:08,402 और अब, नमस्ते विश्व वापस आ गया है मैं जहां उम्मीद करने के लिए यह किया जाना है। 450 00:22:08,402 --> 00:22:09,610 तो यह सब ठीक है और अच्छा है। 451 00:22:09,610 --> 00:22:13,150 लेकिन a.out एक के लिए एक बहुत बेवकूफ नाम है कार्यक्रम है, भले ही यह होना होता है, 452 00:22:13,150 --> 00:22:16,530 ऐतिहासिक कारणों से, विधानसभा outputs अर्थ default--। 453 00:22:16,530 --> 00:22:20,780 >> लेकिन मुझे आगे चलते हैं यहां और यह अलग है। 454 00:22:20,780 --> 00:22:24,760 मैं अपने नमस्ते विश्व कार्यक्रम चाहते हैं वास्तव में करने के लिए हैलो कहा जा। 455 00:22:24,760 --> 00:22:28,320 तो अगर उस पर एक आइकन थे मेरे डेस्कटॉप, यह a.out नहीं किया जाएगा। 456 00:22:28,320 --> 00:22:29,730 यह हैलो बुलाया जाएगा। 457 00:22:29,730 --> 00:22:33,660 >> तो यह करने के लिए, यह पता चला कि बजना, कई कार्यक्रमों की तरह, 458 00:22:33,660 --> 00:22:37,980 कमांड लाइन तर्क का समर्थन करता है, या झंडे, या स्विच, 459 00:22:37,980 --> 00:22:39,600 बस अपने व्यवहार को प्रभावित करता है। 460 00:22:39,600 --> 00:22:45,160 विशेष रूप से, बजना एक पानी का छींटा ओ का समर्थन करता है झंडा, जो फिर एक दूसरा शब्द लेता है। 461 00:22:45,160 --> 00:22:48,190 इस मामले में, मैं मनमाने ढंग से करेंगे, लेकिन काफी है, यह हैलो कहते हैं। 462 00:22:48,190 --> 00:22:50,710 लेकिन मैं इसे कुछ भी कह सकते हैं मैं चाहता हूँ, a.out, सिवाय जो 463 00:22:50,710 --> 00:22:52,390 बजाय बिंदु के अलावा होगा। 464 00:22:52,390 --> 00:22:55,640 >> और फिर बस नाम निर्दिष्ट फ़ाइल का मैं संकलन करना चाहते हैं। 465 00:22:55,640 --> 00:22:59,190 तो अब भी शुरुआत में हालांकि कमांड मैं अभी भी बजना है, 466 00:22:59,190 --> 00:23:01,410 आदेश के अंत में मैं अभी भी फ़ाइल का नाम है, 467 00:23:01,410 --> 00:23:05,520 अब मैं इन कमांड लाइन है तर्क, इन झंडे कि कह रहे हैं, 468 00:23:05,520 --> 00:23:11,180 ओह, वैसे, उत्पादन-ओ, एक फ़ाइल नमस्ते कहा जाता है, नहीं डिफ़ॉल्ट a.out। 469 00:23:11,180 --> 00:23:13,810 >> तो अब, कुछ भी नहीं दर्ज करता है, तो मैं मारा हुआ है लगता है। 470 00:23:13,810 --> 00:23:17,900 और, अभी तक, अब मैं डॉट स्लेश हैलो कर सकते हैं। 471 00:23:17,900 --> 00:23:19,089 तो यह एक ही कार्यक्रम है। 472 00:23:19,089 --> 00:23:21,380 शून्य और लोगों रहे हैं दिन के अंत में समान। 473 00:23:21,380 --> 00:23:24,210 >> लेकिन वे दो में हैं अलग files-- a.out, 474 00:23:24,210 --> 00:23:26,490 जो पहला संस्करण है और सिर्फ मूर्खता का नाम है, 475 00:23:26,490 --> 00:23:30,250 और अब हैलो, जो एक बहुत है एक कार्यक्रम के लिए और अधिक सम्मोहक नाम। 476 00:23:30,250 --> 00:23:33,195 लेकिन, ईमानदारी से, मैं कभी नहीं हूँ यह फिर से याद करने के लिए जा रहा है, 477 00:23:33,195 --> 00:23:34,070 और फिर, और फिर। 478 00:23:34,070 --> 00:23:36,411 और, वास्तव में, जैसा कि हम के बारे में अधिक जटिल प्रोग्राम, 479 00:23:36,411 --> 00:23:38,160 आदेशों आप कर रहे हैं लिखने के लिए किया जा रहा 480 00:23:38,160 --> 00:23:40,920 यहां तक ​​ले जा रहे हैं अधिक अभी भी जटिल है। 481 00:23:40,920 --> 00:23:41,940 >> और तो चिंता करने की नहीं। 482 00:23:41,940 --> 00:23:46,220 यह पता चला है कि मनुष्य पहले हमें वे भी एहसास हो गया है 483 00:23:46,220 --> 00:23:47,530 इस सटीक एक ही समस्या थी। 484 00:23:47,530 --> 00:23:50,900 वे भी करने के लिए होने का आनंद नहीं था काफी लंबे, रहस्यमय आदेश टाइप करें, 485 00:23:50,900 --> 00:23:52,200 अकेले उन्हें याद है। 486 00:23:52,200 --> 00:23:56,070 और इसलिए हमें पहले मनुष्य बना दिया है अन्य कार्यक्रमों है कि यह आसान बनाने के लिए 487 00:23:56,070 --> 00:23:57,670 अपने सॉफ्टवेयर संकलन करने के लिए। 488 00:23:57,670 --> 00:24:01,609 >> और, वास्तव में, एक ऐसी कार्यक्रम बनाने को कहा जाता है। 489 00:24:01,609 --> 00:24:03,150 इसलिए मुझे आगे जाना है और यह करने के लिए जा रहा हूँ। 490 00:24:03,150 --> 00:24:05,691 मैं सब कुछ पूर्ववत करने के लिए जा रहा हूँ मैं सिर्फ निम्नलिखित तरीके से किया था। 491 00:24:05,691 --> 00:24:07,690 मेरे LS टाइप करते हैं। 492 00:24:07,690 --> 00:24:10,980 और अगर आप तीन नोटिस देंगे things-- a.out, और एक स्टार, हैलो 493 00:24:10,980 --> 00:24:12,810 और एक स्टार और hello.c। 494 00:24:12,810 --> 00:24:14,730 उम्मीद है, इस करना चाहिए एक छोटे सहज ज्ञान युक्त हो, 495 00:24:14,730 --> 00:24:18,220 जहां तक ​​पहले वहाँ था इस कार्यक्षेत्र में कुछ भी नहीं है। 496 00:24:18,220 --> 00:24:21,240 कुछ भी नहीं है कि मैं था नहीं था बनाया जब तक हम क्लास शुरू कर दिया। 497 00:24:21,240 --> 00:24:22,840 >> और मैं hello.c बनाया। 498 00:24:22,840 --> 00:24:24,544 मैं तो इसे संकलित है, और यह a.out बुलाया। 499 00:24:24,544 --> 00:24:27,460 और फिर मैं इसे फिर से थोड़ा संकलित अलग ढंग से और यह नमस्ते कहा जाता है। 500 00:24:27,460 --> 00:24:32,830 इसलिए मैं इस निर्देशिका में तीन फाइल किया है, इस फ़ोल्डर कार्यक्षेत्र में बुलाया। 501 00:24:32,830 --> 00:24:35,005 अब, मुझे लगता है कि वहाँ के रूप में अच्छी तरह से कर सकते हैं अगर मैं वास्तव में बाहर ज़ूम। 502 00:24:35,005 --> 00:24:37,530 >> अगर मैं यहाँ बाहर ज़ूम और कि शीर्ष दाहिने हाथ में देखो 503 00:24:37,530 --> 00:24:39,940 कोने, बाएं वादा किया था के रूप में अपनी स्क्रीन के हाथ की ओर 504 00:24:39,940 --> 00:24:42,990 हमेशा के लिए आप को दिखाने के लिए जा रहा है क्या अपने खाते में है, क्या है 505 00:24:42,990 --> 00:24:44,790 CS50 आईडीई के अंदर। 506 00:24:44,790 --> 00:24:46,680 और वहाँ तीन फाइल नहीं है। 507 00:24:46,680 --> 00:24:49,070 >> तो मैं a.out से छुटकारा पाने के लिए और हैलो चाहते हैं। 508 00:24:49,070 --> 00:24:51,275 और जैसा कि आप हो सकता है intuitively कल्पना, आप 509 00:24:51,275 --> 00:24:53,400 नियंत्रण क्लिक करें का सुलझा सकता था या सही इस पर क्लिक करें। 510 00:24:53,400 --> 00:24:54,590 और इस छोटे से मेनू चबूतरे। 511 00:24:54,590 --> 00:24:57,170 आप फाइल को डाउनलोड कर सकते हैं, चलाने के लिए यह, यह पूर्वावलोकन ताज़ा, नाम बदलने, 512 00:24:57,170 --> 00:24:57,700 या क्या नहीं। 513 00:24:57,700 --> 00:25:00,260 >> और मैं सिर्फ नष्ट कर सकता है, और इसे दूर जाना होगा। 514 00:25:00,260 --> 00:25:05,260 लेकिन एक आदेश के साथ बातें करते हैं अब के लिए लाइन इतनी के रूप में आराम पाने के लिए 515 00:25:05,260 --> 00:25:07,010 इस के साथ, और निम्नलिखित है। 516 00:25:07,010 --> 00:25:12,345 मुझे आगे जाना है और दूर करने के लिए जा रहा हूँ सचमुच rma.out टाइप करके a.out। 517 00:25:12,345 --> 00:25:14,890 यह पता चला है, के लिए आदेश हटाने या कुछ को हटाने, 518 00:25:14,890 --> 00:25:16,280 हटाने या हटा नहीं है। 519 00:25:16,280 --> 00:25:21,260 >> इसे और अधिक संक्षेप आरएम बस को बचाने के लिए है, आप कुछ कीस्ट्रोक, और हिट दर्ज करें। 520 00:25:21,260 --> 00:25:24,707 अब हम कुछ हद तक होने जा रहे हैं cryptically नियमित फाइल a.out को हटा दें। 521 00:25:24,707 --> 00:25:27,040 मैं वास्तव में क्या एक पता नहीं है अनियमित फ़ाइल अभी तक होगा। 522 00:25:27,040 --> 00:25:28,660 लेकिन मैं इसे दूर करना चाहते हैं। 523 00:25:28,660 --> 00:25:30,150 >> तो मैंने हाँ के लिए y टाइप करने के लिए जा रहा हूँ। 524 00:25:30,150 --> 00:25:31,940 या मैं इसे बाहर टाइप करें, और हिट दर्ज कर सकता है। 525 00:25:31,940 --> 00:25:33,440 और, फिर, कुछ भी होने लगता है। 526 00:25:33,440 --> 00:25:35,840 लेकिन यह है कि, एक अच्छी बात है आम तौर पर। 527 00:25:35,840 --> 00:25:40,490 >> अगर मैं इस समय लोकसभा टाइप करें, मैं क्या देखना चाहिए? 528 00:25:40,490 --> 00:25:44,930 उम्मीद है, बस नमस्ते और hello.c। 529 00:25:44,930 --> 00:25:47,286 अब, एक अलग रूप में, तुम हूँ इस स्टार तारांकन नोटिस, 530 00:25:47,286 --> 00:25:48,660 कि अपने कार्यक्रमों के अंत में है। 531 00:25:48,660 --> 00:25:50,201 और वे भी हरे रंग में दिख रहे हैं। 532 00:25:50,201 --> 00:25:53,970 वह सिर्फ CS50 आईडीई की तरह है इस तथ्य में आप cluing की 533 00:25:53,970 --> 00:25:55,280 वह यह है कि स्रोत कोड नहीं है। 534 00:25:55,280 --> 00:25:58,880 यही कारण है कि एक निष्पादन, एक runnable है प्रोग्राम है कि आप वास्तव में चला सकते हैं 535 00:25:58,880 --> 00:26:01,020 डॉट स्लेश कर रही है, और तब तक यह नाम है। 536 00:26:01,020 --> 00:26:05,860 >> अब, मुझे आगे जाना है और हटाने चलो इस, आरएम हैलो, दर्ज करें, जो नियमित रूप से हटाने के 537 00:26:05,860 --> 00:26:08,010 हैलो दाखिल, हाँ। 538 00:26:08,010 --> 00:26:11,180 और अब अगर मैं लोकसभा टाइप करें, हम वापस hello.c लिए कर रहे हैं। 539 00:26:11,180 --> 00:26:13,917 नष्ट करने के लिए नहीं की कोशिश करें अपने वास्तविक स्रोत कोड। 540 00:26:13,917 --> 00:26:16,250 हालांकि वहाँ विशेषताएं हैं CS50 आईडीई जहां में निर्मित 541 00:26:16,250 --> 00:26:19,870 यदि आप अपने संशोधन इतिहास के माध्यम से जा सकते हैं और समय में उल्टा अगर आप गलती 542 00:26:19,870 --> 00:26:23,660 कुछ को हटा दें, ध्यान में रखना होगा करना इन संकेतों का हाँ या नहीं के अनुसार, 543 00:26:23,660 --> 00:26:25,381 आप वास्तव में क्या करना चाहते हैं। 544 00:26:25,381 --> 00:26:27,380 और अगर मैं चोटी पर चढ़ जाना हाथ के कोने छोड़ दिया है यहाँ, 545 00:26:27,380 --> 00:26:30,696 सब कि रहता hello.c है। 546 00:26:30,696 --> 00:26:32,570 तो वहाँ के गुच्छों है अन्य आदेश है कि आप 547 00:26:32,570 --> 00:26:37,550 लिनक्स की दुनिया में निष्पादित कर सकते हैं, जिनमें से एक फिर से बनाने के लिए, है। 548 00:26:37,550 --> 00:26:40,180 और हम बनाने जा रहे हैं अपने कार्यक्रम के रूप में अब इस प्रकार है। 549 00:26:40,180 --> 00:26:43,270 >> इसके बजाय बजना कर के, बजाय बजना-ओ कर के, 550 00:26:43,270 --> 00:26:45,860 मैं बस करने के लिए जा रहा हूँ सचमुच टाइप करें, नमस्ते करते हैं। 551 00:26:45,860 --> 00:26:49,630 और अब नोटिस, मैं हूँ hello.c बनाने टाइपिंग नहीं। 552 00:26:49,630 --> 00:26:50,910 मैं नमस्ते बनाने टाइप कर रहा हूँ। 553 00:26:50,910 --> 00:26:54,840 >> और इस कार्यक्रम बनाओ कि CS50 आईडीई, और अधिक के साथ आता है 554 00:26:54,840 --> 00:26:57,090 आम तौर पर लिनक्स के साथ, एक प्रोग्राम है कि है 555 00:26:57,090 --> 00:26:59,120 एक कार्यक्रम हैलो बुलाया बनाने के लिए जा रहा है। 556 00:26:59,120 --> 00:27:03,680 और यह कल्पना करने के लिए, परंपरा से हो रहा है कि अगर इस कार्यक्रम बनाया जा सकता है, 557 00:27:03,680 --> 00:27:09,030 यह एक स्रोत से बनाया जा रहा है कोड फ़ाइल डॉट ग में समाप्त, hello.c। 558 00:27:09,030 --> 00:27:12,210 >> तो अब, सूचना दर्ज करता है, तो मैं मारा कि आदेश मार डाला जाता है कि 559 00:27:12,210 --> 00:27:14,340 वास्तव में अब भी है पहले की तुलना में पहले। 560 00:27:14,340 --> 00:27:16,670 और उसकी वजह हम है है preconfigured CS50 आईडीई के लिए है 561 00:27:16,670 --> 00:27:19,878 कुछ अतिरिक्त है कि में बनाया सुविधाओं हम अभी जरूरत नहीं है, लेकिन जल्दी ही होगा। 562 00:27:19,878 --> 00:27:23,470 लेकिन महत्वपूर्ण बात का एहसास है अब मैं एक कार्यक्रम हैलो किया है। 563 00:27:23,470 --> 00:27:27,080 >> अगर मैं LS फिर से टाइप करें, मैं एक हैलो कार्यक्रम है। 564 00:27:27,080 --> 00:27:32,070 और मैं उसके साथ चला सकते हैं डॉट a.out स्लेश, नहीं, 565 00:27:32,070 --> 00:27:35,590 इस वजह से सारी बात व्यायाम डॉट स्लेश हैलो था। 566 00:27:35,590 --> 00:27:38,089 और अब मैं अपने नमस्ते विश्व कार्यक्रम है। 567 00:27:38,089 --> 00:27:39,880 तो आगे बढ़ रहा है, हम लगभग हमेशा सिर्फ रहे हैं 568 00:27:39,880 --> 00:27:42,088 हमारे कार्यक्रमों संकलन करने के लिए जा रहा कमांड बनाने का उपयोग कर। 569 00:27:42,088 --> 00:27:45,300 और फिर हम ने उन्हें चलाने के लिए जा रहे हैं डॉट स्लेश, और इस कार्यक्रम का नाम। 570 00:27:45,300 --> 00:27:49,610 लेकिन क्या एहसास बनाने के लिए क्या कर रही है आप इसे अपने आप में एक संकलक नहीं है। 571 00:27:49,610 --> 00:27:53,310 यह सिर्फ एक सुविधा कार्यक्रम है कोई जानता है कि कैसे एक संकलक ट्रिगर करने के लिए 572 00:27:53,310 --> 00:27:56,470 इसलिए चलाने के लिए कि आप अपने आप इसका इस्तेमाल कर सकते हैं। 573 00:27:56,470 --> 00:28:00,220 >> क्या अन्य आदेशों में मौजूद लिनक्स, और बदले CS50 आईडीई में? 574 00:28:00,220 --> 00:28:03,107 हम जल्द ही देखेंगे कि वहाँ एक सीडी कमांड, निर्देशिका बदलें। 575 00:28:03,107 --> 00:28:05,190 यह आप के भीतर की अनुमति देता है अपने कमांड लाइन इंटरफेस 576 00:28:05,190 --> 00:28:07,610 आगे बढ़ने के लिए, और वापस, और अलग फ़ोल्डर को खोलने के लिए 577 00:28:07,610 --> 00:28:08,860 अपने माउस का उपयोग किए बिना। 578 00:28:08,860 --> 00:28:12,470 >> लोकसभा हमने देखा है, जो सूची के लिए खड़ा है मौजूदा निर्देशिका में फ़ाइलों। 579 00:28:12,470 --> 00:28:14,650 दीर बनाओ, आप कर सकते हैं शायद अनुमान करने के लिए शुरू 580 00:28:14,650 --> 00:28:18,150 ये क्या now-- निर्देशिका बनाने का मतलब है, आप एक फ़ोल्डर बनाने के लिए चाहते हैं। 581 00:28:18,150 --> 00:28:21,270 निकालें के लिए RM, आरएम के लिए दीर directory-- और इन को हटाने, 582 00:28:21,270 --> 00:28:24,160 फिर, कमांड लाइन कर रहे हैं आप क्या के समकक्ष 583 00:28:24,160 --> 00:28:26,945 अपने माउस के साथ CS50 आईडीई में कर सकता है। 584 00:28:26,945 --> 00:28:28,820 लेकिन आप जल्दी ही मिल जाएगा कि कभी कभी यह सिर्फ है 585 00:28:28,820 --> 00:28:30,610 एक बहुत तेजी से ऐसा करने के लिए एक कुंजीपटल के साथ बातें करते हैं, 586 00:28:30,610 --> 00:28:33,690 और अंत में एक बहुत अधिक शक्तिशाली है। 587 00:28:33,690 --> 00:28:36,440 >> लेकिन यह तर्क है कि मुश्किल है कुछ भी हम अब तक कर दिया गया है 588 00:28:36,440 --> 00:28:39,990 सब है कि शक्तिशाली, जब सब है हम कह रहा है, हैलो दुनिया। 589 00:28:39,990 --> 00:28:43,740 और, वास्तव में, मैं हार्डकोडेड शब्द मेरे कार्यक्रम में हैलो दुनिया। 590 00:28:43,740 --> 00:28:45,530 कोई गतिशीलता अभी तक नहीं है। 591 00:28:45,530 --> 00:28:49,320 स्क्रैच परिमाण के एक आदेश था अधिक दिलचस्प पिछले सप्ताह। 592 00:28:49,320 --> 00:28:51,220 >> और तो वहाँ मिलता है। 593 00:28:51,220 --> 00:28:55,310 के द्वारा कि ओर एक कदम रखना इन कार्यों में से कुछ के रास्ते। 594 00:28:55,310 --> 00:28:59,470 इतना ही नहीं, सी printf के साथ आता है, और अन्य कार्यों के गुच्छों 595 00:28:59,470 --> 00:29:01,850 जिनमें से कुछ हम देखेंगे समय के साथ, यह नहीं है 596 00:29:01,850 --> 00:29:05,760 सही बाहर यह है कि सभी के लिए आसान बनाने के उपयोगकर्ता इनपुट प्राप्त करने में गेट की। 597 00:29:05,760 --> 00:29:08,140 >> वास्तव में, कमजोरियों में से एक सी जैसी भाषाओं की, 598 00:29:08,140 --> 00:29:10,140 और यहां तक ​​कि जावा और अभी तक दूसरों के लिए, कि यह नहीं करता है 599 00:29:10,140 --> 00:29:15,860 यह आसान बस की तरह चीजों को पाने के लिए बना उपयोगकर्ताओं, या तार, शब्दों से पूर्णांकों, 600 00:29:15,860 --> 00:29:19,970 और वाक्यांशों, जैसे बातें अकेला चलो चल बिन्दु मान, या वास्तविक संख्या 601 00:29:19,970 --> 00:29:23,240 दशमलव अंक, और सच के साथ लंबे समय तक नंबर, के रूप में हम जल्द ही देखेंगे। 602 00:29:23,240 --> 00:29:27,000 तो यहाँ कार्यों की इस सूची में, इन अन्य स्क्रैच पहेली टुकड़े की तरह हैं 603 00:29:27,000 --> 00:29:31,090 हम CS50 में पहले से स्थापित किया है कि आईडीई है कि हम एक कुछ हफ्तों के लिए इस्तेमाल करेंगे 604 00:29:31,090 --> 00:29:34,010 एक तरह की प्रशिक्षण के पहियों, और के रूप में अंततः उन्हें दूर ले, और देखो 605 00:29:34,010 --> 00:29:37,210 हुड, शायद, पर नीचे कैसे इन बातों को लागू कर रहे हैं। 606 00:29:37,210 --> 00:29:40,460 >> लेकिन ऐसा करने के लिए, चलो वास्तव में एक कार्यक्रम के बारे में। 607 00:29:40,460 --> 00:29:41,770 मुझे आगे अब चलते हैं। 608 00:29:41,770 --> 00:29:44,750 और मैं एक नया बनाने के लिए जा रहा हूँ इस छोटी सी प्लस क्लिक करके फ़ाइल, 609 00:29:44,750 --> 00:29:45,970 और नई फ़ाइल क्लिक करें। 610 00:29:45,970 --> 00:29:49,250 >> मैं यह अगले बचाने के लिए जा रहा हूँ के रूप में, हम कहते हैं एक, string.c, 611 00:29:49,250 --> 00:29:50,750 क्योंकि मैं तार के साथ खेलना चाहते हैं। 612 00:29:50,750 --> 00:29:53,990 और सी में स्ट्रिंग बस है पात्रों का एक दृश्य। 613 00:29:53,990 --> 00:29:56,090 तो अब आगे चलते हैं और निम्नलिखित है। 614 00:29:56,090 --> 00:30:01,204 >> शामिल मानक IO.h-- और यह पता चला है मानक कब, 615 00:30:01,204 --> 00:30:03,360 कब बस इनपुट और आउटपुट का मतलब है। 616 00:30:03,360 --> 00:30:05,920 तो यह पता चला है कि यहाँ इस लाइन क्या है 617 00:30:05,920 --> 00:30:08,140 printf का उपयोग करने के लिए हमें पड़ोसी है। 618 00:30:08,140 --> 00:30:10,410 Printf, ज़ाहिर है, उत्पादन पैदा करता है। 619 00:30:10,410 --> 00:30:15,000 तो क्रम में printf का उपयोग करने के लिए, यह बदल जाता है बाहर आप कोड की इस पंक्ति के लिए है 620 00:30:15,000 --> 00:30:16,040 आपकी फ़ाइल के शीर्ष पर। 621 00:30:16,040 --> 00:30:18,456 >> और हम करने के लिए वापस आ गया हूँ क्या कि वास्तव में लंबे समय से पहले का मतलब है। 622 00:30:18,456 --> 00:30:20,400 यह पता चला है कि में किसी भी सी कार्यक्रम मैं लिखना, 623 00:30:20,400 --> 00:30:23,640 मैं के साथ इसे शुरू करने के लिए मिल गया है कोड है कि इस तरह दिखता है। 624 00:30:23,640 --> 00:30:26,860 और अगर आप CS50 आईडीई नोटिस, और करेंगे अन्य एकीकृत विकास 625 00:30:26,860 --> 00:30:30,050 यह तरह के वातावरण, के रूप में पूरी कोशिश करने जा रहे हैं 626 00:30:30,050 --> 00:30:31,780 वे अपने विचार खत्म करने के लिए कर सकते हैं। 627 00:30:31,780 --> 00:30:35,930 वास्तव में, एक पल पहले अगर मैं पूर्ववत मैं तो बस क्या था, मैं हिट दर्ज करें। 628 00:30:35,930 --> 00:30:39,160 >> मैं तो खुले घुंघराले मारा गले लगा, फिर हिट दर्ज करें। 629 00:30:39,160 --> 00:30:40,430 और यह मेरे विचार समाप्त हो गया। 630 00:30:40,430 --> 00:30:45,140 यह मेरे लिए एक नई लाइन दे दी है, कम नहीं खिसका अच्छा शैलीगत कारणों के लिए हम देखेंगे। 631 00:30:45,140 --> 00:30:48,559 और फिर यह स्वचालित रूप से मुझे दिया कि घुंघराले ब्रेस मेरे विचार खत्म करने के लिए। 632 00:30:48,559 --> 00:30:50,600 अब, यह हमेशा नहीं होता लगता है कि आप क्या करना चाहते हैं। 633 00:30:50,600 --> 00:30:53,620 लेकिन बड़े हिस्से में, यह करता है आप कुछ कीस्ट्रोक्स बचाने के लिए। 634 00:30:53,620 --> 00:30:59,560 तो एक पल पहले, हम इस program-- भागा हैलो, दुनिया, और फिर इसे संकलित, 635 00:30:59,560 --> 00:31:00,460 और फिर यह भाग गया। 636 00:31:00,460 --> 00:31:01,867 लेकिन वहाँ कोई गतिशीलता यहाँ है। 637 00:31:01,867 --> 00:31:03,700 क्या होगा यदि हम चाहते थे कुछ अलग करें? 638 00:31:03,700 --> 00:31:07,630 खैर, क्या हुआ अगर मैं वास्तव में चाहता था उपयोगकर्ता से एक स्ट्रिंग मिलता है? 639 00:31:07,630 --> 00:31:11,250 मैं एक पहेली टुकड़े का उपयोग करने के लिए जा रहा हूँ वास्तव में बुलाया that-- स्ट्रिंग मिलता है। 640 00:31:11,250 --> 00:31:15,860 >> सी में पता चला है कि है जब आप नहीं चाहते एक पहेली टुकड़ा करने के लिए इनपुट प्रदान करने के लिए, 641 00:31:15,860 --> 00:31:19,360 या अधिक एक समारोह के लिए ठीक है, आप सचमुच सिर्फ खुला कोष्ठक करते हैं, 642 00:31:19,360 --> 00:31:20,430 बंद कोष्ठक। 643 00:31:20,430 --> 00:31:25,540 तो यह है कि वहाँ है कोई सफेद बॉक्स में टाइप करने के लिए। 644 00:31:25,540 --> 00:31:27,720 कहते ब्लॉक से पहले एक छोटे सफेद बॉक्स था। 645 00:31:27,720 --> 00:31:29,660 अब हम है कि सफेद बॉक्स नहीं है। 646 00:31:29,660 --> 00:31:33,310 >> लेकिन जब मैं तार मिल कहते हैं, मैं परिणाम कहीं डाल करना चाहते हैं। 647 00:31:33,310 --> 00:31:37,680 तो सी में एक बहुत ही आम प्रतिमान के लिए है एक समारोह में मिलता है, स्ट्रिंग की तरह यहाँ फोन, 648 00:31:37,680 --> 00:31:41,070 और उसके बाद अपनी वापसी मूल्य की दुकान। 649 00:31:41,070 --> 00:31:44,450 उसी का नतीजा है इसकी कुछ में प्रयास। 650 00:31:44,450 --> 00:31:47,630 >> और क्या है प्रोग्रामिंग में निर्माण, 651 00:31:47,630 --> 00:31:53,450 सी खरोंच में या अब चाहे, कि हम वास्तव में कुछ स्टोर करने के लिए उपयोग कर सकते हैं? 652 00:31:53,450 --> 00:31:55,990 यह सही एक चर कहा जाता है,? 653 00:31:55,990 --> 00:32:00,320 और खरोंच के साथ, हम वास्तव में नहीं है परवाह क्या चर में जा रहा था। 654 00:32:00,320 --> 00:32:02,170 >> लेकिन इस मामले में, हम वास्तव में है। 655 00:32:02,170 --> 00:32:03,719 मैं स्ट्रिंग कहने जा रहा हूँ। 656 00:32:03,719 --> 00:32:05,510 और फिर मैं कह सकते हैं यह कुछ भी मैं चाहता हूँ। 657 00:32:05,510 --> 00:32:08,340 मैं यह कॉल करने के लिए जा रहा हूँ नाम, स्ट्रिंग प्राप्त हो जाता है। 658 00:32:08,340 --> 00:32:10,250 >> और अब आप कर रहे हैं, भले ही इस के लिए एक छोटा सा नया, 659 00:32:10,250 --> 00:32:11,984 सूचना है कि मैं कुछ विस्तार से कमी कर रहा हूँ। 660 00:32:11,984 --> 00:32:13,150 मैं एक अर्धविराम भूल रहा हूँ। 661 00:32:13,150 --> 00:32:14,400 मैं इस विचार को खत्म करने की जरूरत है। 662 00:32:14,400 --> 00:32:17,480 तो मैं अपने कर्सर ले जाने के लिए जा रहा हूँ, और वहाँ सेमी कॉलन मारा। 663 00:32:17,480 --> 00:32:19,130 और मैं सिर्फ क्या किया है? 664 00:32:19,130 --> 00:32:21,440 कोड की इस पंक्ति में, इस समय नंबर 5, 665 00:32:21,440 --> 00:32:23,799 मैं कोई आदानों के साथ तार मिल बुला रहा हूँ। 666 00:32:23,799 --> 00:32:26,090 तो वहाँ कोई छोटे सफेद है बॉक्स की तरह बचाना ब्लॉक है। 667 00:32:26,090 --> 00:32:28,590 >> मैं सिर्फ इतना कह रहा हूँ, अरे, कंप्यूटर, मुझे एक स्ट्रिंग मिलता है। 668 00:32:28,590 --> 00:32:31,390 बराबर चिह्न सच नहीं है एक बराबर चिह्न, प्रतिशत से। 669 00:32:31,390 --> 00:32:33,790 यह काम है ऑपरेटर, जिसका अर्थ है, 670 00:32:33,790 --> 00:32:37,860 अरे, कंप्यूटर, मूल्य के लिए कदम बाईं ओर से सही। 671 00:32:37,860 --> 00:32:40,480 और बाएँ में, मैं निम्नलिखित है। 672 00:32:40,480 --> 00:32:43,580 >> अरे, कंप्यूटर, मुझे एक string-- देना पात्रों का एक दृश्य। 673 00:32:43,580 --> 00:32:45,637 और कॉल कि स्ट्रिंग नाम। 674 00:32:45,637 --> 00:32:47,220 और मैं भी इसे नाम कॉल करने के लिए नहीं है। 675 00:32:47,220 --> 00:32:49,970 >> मैं यह कह सकते हैं, पारंपरिक, एस की तरह कुछ है, 676 00:32:49,970 --> 00:32:52,900 बहुत पसंद है हम मैं करने के लिए इस्तेमाल किया चर मैं कहते हैं। 677 00:32:52,900 --> 00:32:54,829 लेकिन अब मैं इसके साथ कुछ करने की जरूरत है। 678 00:32:54,829 --> 00:32:57,370 यह बहुत करने के लिए बेवकूफ होगा इस कोड संकलन की कोशिश चल रहा है, 679 00:32:57,370 --> 00:32:59,410 इस कार्यक्रम है, भले ही मैं एक स्ट्रिंग हो रही है, 680 00:32:59,410 --> 00:33:01,580 क्योंकि यह अभी भी सिर्फ है हैलो कहने के लिए दुनिया जा रही है। 681 00:33:01,580 --> 00:33:06,140 >> लेकिन क्या मैं इस परिवर्तन करना चाहते हैं। 682 00:33:06,140 --> 00:33:07,940 मैं ऐसा क्यों नहीं करते? 683 00:33:07,940 --> 00:33:11,632 प्रतिशत है, अल्पविराम है। 684 00:33:11,632 --> 00:33:13,090 और यह अभी भी एक छोटे गुप्त है। 685 00:33:13,090 --> 00:33:15,560 >> तो मुझे अपने चर और अधिक स्पष्ट कर दूं। 686 00:33:15,560 --> 00:33:17,510 मुझे इस चर नाम नाम हैं। 687 00:33:17,510 --> 00:33:20,230 और चलो देखते हैं अगर हम तंग नहीं कर सकते हैं इसके अलावा यहाँ क्या हो रहा है। 688 00:33:20,230 --> 00:33:22,770 >> तो लाइन पांच पर, मैं एक स्ट्रिंग हो रही है। 689 00:33:22,770 --> 00:33:25,620 और मैं उस स्ट्रिंग संग्रहीत कर रहा हूँ, जो उपयोगकर्ता में टाइप किया गया है 690 00:33:25,620 --> 00:33:28,430 अपने या अपने कीबोर्ड पर, एक चर नाम कहा जाता है। 691 00:33:28,430 --> 00:33:30,590 और यह पता चला है कि printf न सिर्फ करता है 692 00:33:30,590 --> 00:33:34,220 डबल में एक बहस को देखा जा कोट, डबल कोट में एक इनपुट। 693 00:33:34,220 --> 00:33:39,100 >> यह दो या तीन, या अधिक, इस तरह के ले जा सकते हैं कि, दूसरे या तीसरे या चौथे, 694 00:33:39,100 --> 00:33:42,320 सभी चर के नाम हैं, या विशेष महत्व देता है, 695 00:33:42,320 --> 00:33:48,610 कि आप में प्लग करने के लिए चाहते हैं, गतिशील, उद्धरण में है कि स्ट्रिंग। 696 00:33:48,610 --> 00:33:52,110 दूसरे शब्दों में, क्या इस के साथ गलत हो सकता है? 697 00:33:52,110 --> 00:33:57,920 अगर मैं सिर्फ इतना कहा हैलो नाम, बैकस्लैश एन, मेरी फाइल को बचाया, मेरे कोड संकलित, 698 00:33:57,920 --> 00:34:01,660 और इस भाग गया, तो क्या होगा? 699 00:34:01,660 --> 00:34:05,139 >> यह सिर्फ कहने के लिए जा रहा है, हैलो नाम है, सचमुच एन-ए-एम-ई, 700 00:34:05,139 --> 00:34:07,900 जो बेवकूफ की तरह है क्योंकि है यह दुनिया से अलग नहीं है। 701 00:34:07,900 --> 00:34:10,400 तो उद्धरण में कुछ भी नहीं है क्या सचमुच मुद्रित हो जाता है। 702 00:34:10,400 --> 00:34:12,520 तो अगर मैं करने के लिए चाहते हैं एक प्लेसहोल्डर, 703 00:34:12,520 --> 00:34:14,422 मैं वास्तव में उपयोग करने की आवश्यकता कुछ विशेष सिंटेक्स। 704 00:34:14,422 --> 00:34:17,380 और यह पता चला है, तो आप पढ़ printf समारोह के लिए दस्तावेज, 705 00:34:17,380 --> 00:34:21,320 यह आपको बता देगा कि आप प्रतिशत s का उपयोग करते हैं, 706 00:34:21,320 --> 00:34:23,920 आप एक मूल्य के रूप में स्थानापन्न कर सकते हैं। 707 00:34:23,920 --> 00:34:27,190 >> उस के बाद एक अल्पविराम के बाद दोहरे उद्धरण, तो आप बस 708 00:34:27,190 --> 00:34:29,179 के नाम के बारे में चर कि आप चाहते हैं 709 00:34:29,179 --> 00:34:33,790 उस प्रारूप में में प्लग करने के लिए कोड, या स्वरूप विनिर्देशक, 710 00:34:33,790 --> 00:34:35,469 तार के लिए प्रतिशत है। 711 00:34:35,469 --> 00:34:39,190 और अब मैं अपने फ़ाइल को बचाया गया है, मैं वापस अपने टर्मिनल के लिए नीचे चलते हैं। 712 00:34:39,190 --> 00:34:42,870 और मैं स्ट्रिंग बनाने टाइप करें, क्योंकि, फिर से, इस का नाम 713 00:34:42,870 --> 00:34:45,510 फ़ाइल है कि मैं पहले चुना string.c है। 714 00:34:45,510 --> 00:34:48,510 >> तो मैं स्ट्रिंग बनाने, प्रवेश कहने जा रहा हूँ। 715 00:34:48,510 --> 00:34:51,550 हे भगवान, के सभी देखो गलतियों को हम पहले ही कर दिया है। 716 00:34:51,550 --> 00:34:55,540 और यह है- क्या है, यह सच है एक छह, सात लाइन कार्यक्रम की तरह? 717 00:34:55,540 --> 00:34:57,790 तो यह है, जहां यह बहुत कर सकते हैं जल्दी से भारी मिलता है। 718 00:34:57,790 --> 00:35:00,890 >> इस टर्मिनल विंडो है अब सिर्फ regurgitated 719 00:35:00,890 --> 00:35:03,230 त्रुटि संदेशों में से एक बड़ी संख्या है। 720 00:35:03,230 --> 00:35:07,560 निश्चित रूप से, मैं और अधिक त्रुटि नहीं है मैं से संदेशों कोड की लाइनों की है। 721 00:35:07,560 --> 00:35:08,680 तो क्या चल रहा है? 722 00:35:08,680 --> 00:35:10,920 >> खैर, सबसे अच्छी रणनीति आप किसी भी समय क्या करना 723 00:35:10,920 --> 00:35:13,710 एक भारी मुठभेड़ लगता है कि जैसे त्रुटियों की सूची, 724 00:35:13,710 --> 00:35:16,690 वापस स्क्रॉल है, आदेश के लिए देखो तुम सिर्फ भाग गया, जो मेरे मामले में 725 00:35:16,690 --> 00:35:18,020 स्ट्रिंग बनाने के लिए है। 726 00:35:18,020 --> 00:35:21,630 क्या था बनाने को देखो, और वह है कि लंबे बजना आदेश, वहाँ कोई बड़ी बात नहीं। 727 00:35:21,630 --> 00:35:22,950 >> लेकिन लाल खराब है। 728 00:35:22,950 --> 00:35:24,750 ग्रीन होने की कोशिश कर रहा है कोमल और उपयोगी है। 729 00:35:24,750 --> 00:35:26,140 लेकिन यह अभी भी बुरा है, इस मामले में। 730 00:35:26,140 --> 00:35:27,510 लेकिन जहां यह बुरा है? 731 00:35:27,510 --> 00:35:31,450 >> String.c, लाइन पांच, चरित्र पांच। 732 00:35:31,450 --> 00:35:32,930 तो यह सिर्फ आम सम्मेलन है। 733 00:35:32,930 --> 00:35:36,060 कुछ पेट के कुछ का मतलब लाइन नंबर और चरित्र संख्या। 734 00:35:36,060 --> 00:35:41,080 त्रुटि, अघोषित का उपयोग पहचानकर्ता स्ट्रिंग। 735 00:35:41,080 --> 00:35:42,900 आप में मानक मतलब है? 736 00:35:42,900 --> 00:35:45,530 >> तो, दुर्भाग्य से, बजना सहायक होने की कोशिश कर रहा है। 737 00:35:45,530 --> 00:35:46,850 लेकिन यह गलत है, इस मामले में। 738 00:35:46,850 --> 00:35:49,350 नहीं, बजना, मैं मानक कब मतलब नहीं था। 739 00:35:49,350 --> 00:35:51,070 मैं लाइन पर एक का मतलब है कि, हाँ। 740 00:35:51,070 --> 00:35:53,420 >> लेकिन लाइन पाँच यहाँ यह एक है। 741 00:35:53,420 --> 00:35:57,040 और बजना नहीं करता समझ में एस टी आर-मैं-एन-जी। 742 00:35:57,040 --> 00:36:01,490 यह एक अघोषित पहचानकर्ता, एक है यह शब्द सिर्फ पहले कभी नहीं देखा गया है। 743 00:36:01,490 --> 00:36:05,730 और उसकी वजह सी, भाषा है हम में कोड लिख रहे हैं अब ठीक है, 744 00:36:05,730 --> 00:36:08,070 चर तार बुलाया नहीं है। 745 00:36:08,070 --> 00:36:11,380 >> यह नहीं करता डिफ़ॉल्ट, समर्थन से कुछ एक स्ट्रिंग कहा जाता है। 746 00:36:11,380 --> 00:36:16,750 इस बात का एक टुकड़ा है CS50 शब्दजाल है, लेकिन बहुत परम्परागत। 747 00:36:16,750 --> 00:36:18,600 इस प्रकार के रूप में लेकिन मैं इसे ठीक कर सकते हैं। 748 00:36:18,600 --> 00:36:22,090 >> मैं कोड की एक पंक्ति जोड़ने के लिए इस कार्यक्रम के शीर्ष करने के लिए, 749 00:36:22,090 --> 00:36:27,890 CS50.h, जो एक और फाइल है शामिल कहीं CS50 आईडीई के अंदर कहीं न कहीं, 750 00:36:27,890 --> 00:36:30,820 हार्ड ड्राइव पर, तो बात है, उबंटू ऑपरेटिंग सिस्टम की 751 00:36:30,820 --> 00:36:33,590 कि मैं भाग रहा हूँ, कि फ़ाइल है कि है 752 00:36:33,590 --> 00:36:38,740 ऑपरेटिंग सिखाने के लिए जा रहा सिस्टम क्या एक स्ट्रिंग है, बस 753 00:36:38,740 --> 00:36:41,930 मानक io.h तरह फ़ाइल है ऑपरेटिंग सिस्टम है कि में 754 00:36:41,930 --> 00:36:44,430 क्या printf है यह सिखाने के लिए जा रहा है। 755 00:36:44,430 --> 00:36:46,810 >> दरअसल, हम मिल गया होता एक बहुत ही इसी संदेश 756 00:36:46,810 --> 00:36:50,600 यदि कब मानक स्वीकार किया था IO.h और printf का उपयोग करने की कोशिश की। 757 00:36:50,600 --> 00:36:53,632 तो मैं आगे और बस जाने के लिए जा रहा हूँ नियंत्रण एल ले मेरी स्क्रीन स्पष्ट करने के लिए। 758 00:36:53,632 --> 00:36:56,340 या आप स्पष्ट टाइप कर सकते हैं और यह होगा सिर्फ टर्मिनल विंडो साफ़ करें। 759 00:36:56,340 --> 00:36:58,020 लेकिन आप अभी भी समय में वापस स्क्रॉल कर सकते हैं। 760 00:36:58,020 --> 00:37:01,100 >> और मैं फिर से दौड़ना स्ट्रिंग बनाने के लिए जा रहा हूँ। 761 00:37:01,100 --> 00:37:03,660 मेरी उंगलियों के इस समय के पार, दर्ज करें। 762 00:37:03,660 --> 00:37:05,380 हे भगवान, यह काम किया। 763 00:37:05,380 --> 00:37:09,280 यह मेरे लिए एक लंबे समय तक गुप्त आदेश से पता चलता है कि क्या बजना के माध्यम से उत्पन्न कर रहा है, 764 00:37:09,280 --> 00:37:10,460 लेकिन कोई त्रुटि संदेश। 765 00:37:10,460 --> 00:37:12,460 तो पता ही है, भले ही आप पूरी तरह से मिल सकता है 766 00:37:12,460 --> 00:37:14,480 साथ अभिभूत त्रुटि संदेश की संख्या, 767 00:37:14,480 --> 00:37:17,540 यह सिर्फ इस कष्टप्रद व्यापक हो सकता है प्रभाव, जहां बजना समझ में नहीं है 768 00:37:17,540 --> 00:37:19,620 एक बात है, जो यह तो मतलब है अगले शब्द समझ में नहीं आता, 769 00:37:19,620 --> 00:37:20,560 या अगली पंक्ति। 770 00:37:20,560 --> 00:37:22,850 और तो यह सिर्फ अपने कोड पर chokes। 771 00:37:22,850 --> 00:37:24,440 लेकिन तय सरल हो सकता है। 772 00:37:24,440 --> 00:37:27,822 और इसलिए हमेशा पर ध्यान केंद्रित उत्पादन के पहले ही लाइन। 773 00:37:27,822 --> 00:37:29,530 और अगर तुम नहीं करते यह समझते हैं, बस देखो 774 00:37:29,530 --> 00:37:32,480 खोजशब्दों के लिए है कि हो सकता है सुराग, और लाइन नंबर, 775 00:37:32,480 --> 00:37:34,650 और चरित्र है, जहां उस गलती हो सकती है। 776 00:37:34,650 --> 00:37:40,328 >> अब मुझे आगे जाना है और टाइप डॉट स्लेश, स्ट्रिंग, दर्ज करें। 777 00:37:40,328 --> 00:37:44,340 हम्म, यह कुछ भी नहीं कह रहा है हैलो। 778 00:37:44,340 --> 00:37:46,210 क्यूं कर? 779 00:37:46,210 --> 00:37:48,170 खैर, याद है, जहां यह चल रहा है? 780 00:37:48,170 --> 00:37:53,730 >> यह शायद पल में अटक गया है एक पाश में, अगर तुम जाएगा, लाइन छह पर, 781 00:37:53,730 --> 00:37:56,950 डिजाइन द्वारा तार हो क्योंकि, CS50 स्टाफ ने लिखा है, 782 00:37:56,950 --> 00:38:00,350 सचमुच सिर्फ बैठने के लिए होती है वहाँ इंतज़ार कर रहा है, और इंतज़ार कर रहे, 783 00:38:00,350 --> 00:38:01,850 और एक स्ट्रिंग के लिए इंतज़ार कर रहे। 784 00:38:01,850 --> 00:38:03,792 हम सभी को तार से मतलब मानव इनपुट है। 785 00:38:03,792 --> 00:38:04,500 तो तुम जानते हो क्या? 786 00:38:04,500 --> 00:38:05,166 मुझे आगे चलते हैं। 787 00:38:05,166 --> 00:38:08,704 और बस यूँ ही, मुझे जाने मेरा नाम, डेविड टाइप करें, दर्ज करें। 788 00:38:08,704 --> 00:38:10,120 अब मैं एक और अधिक गतिशील कार्यक्रम है। 789 00:38:10,120 --> 00:38:11,240 इसमें कहा गया है, हैलो डेविड। 790 00:38:11,240 --> 00:38:16,280 >> अगर मैं आगे जाना है और यह फिर से चलाने के लिए, मुझे कहना है Zamila नाम कोशिश, में प्रवेश करते हैं। 791 00:38:16,280 --> 00:38:17,940 और अब हम एक गतिशील कार्यक्रम है। 792 00:38:17,940 --> 00:38:19,380 मैं कड़ी दुनिया कोडित नहीं किया है। 793 00:38:19,380 --> 00:38:21,760 मैं हार्ड कोडित नहीं किया है नाम, या डेविड, या Zamila। 794 00:38:21,760 --> 00:38:25,350 >> अब यह कार्यक्रमों की तरह बहुत अधिक है हम जानते हैं, जहां अगर यह इनपुट ले, 795 00:38:25,350 --> 00:38:27,870 यह थोड़ा अलग उत्पादन पैदा करता है। 796 00:38:27,870 --> 00:38:31,020 अब, यह सबसे अच्छा नहीं है उपयोगकर्ता अनुभव, या UX। 797 00:38:31,020 --> 00:38:33,000 मैं इस कार्यक्रम चलाते हैं। 798 00:38:33,000 --> 00:38:35,830 >> मैं नहीं जानता कि मैं क्या चाहिए हूँ ऐसा करने के लिए, जब तक मैं वास्तव में देखो 799 00:38:35,830 --> 00:38:37,290 या स्रोत कोड याद है। 800 00:38:37,290 --> 00:38:39,640 तो चलो उपयोगकर्ता बनाते हैं एक छोटे से बेहतर अनुभव 801 00:38:39,640 --> 00:38:41,240 बातों का सरलतम के साथ। 802 00:38:41,240 --> 00:38:44,782 मुझे इस में वापस जाओ कार्यक्रम है, और बस printf कहते हैं। 803 00:38:44,782 --> 00:38:48,870 >> और मुझे आगे जाना है और कहते हैं कि नाम, पेट के दो, और एक अंतरिक्ष, और फिर एक अर्धविराम। 804 00:38:48,870 --> 00:38:51,170 और बस kicks के लिए, कोई प्रतिक्रिया एन। 805 00:38:51,170 --> 00:38:52,980 और कहा कि जानबूझकर है, क्योंकि मैं नहीं चाहता कि 806 00:38:52,980 --> 00:38:54,590 शीघ्र अगली पंक्ति में स्थानांतरित करने के लिए। 807 00:38:54,590 --> 00:38:58,800 >> मैं करने के लिए, बजाय, यह करने के लिए चाहते हैं, स्ट्रिंग बनाने नई मशीन में मेरी कोड कंपाइल करने के लिए 808 00:38:58,800 --> 00:39:00,980 कोड डॉट स्ट्रिंग स्लेश। 809 00:39:00,980 --> 00:39:02,460 आह, यह बहुत सुंदर है। 810 00:39:02,460 --> 00:39:05,780 अब मैं वास्तव में जानते हैं कि क्या कंप्यूटर मुझे क्या करना है यह एक नाम देना चाहता है। 811 00:39:05,780 --> 00:39:10,020 >> इसलिए मुझे आगे जाना है और टाइप करने के लिए जा रहा हूँ रोब में, रोब दर्ज करें, और हैलो,। 812 00:39:10,020 --> 00:39:13,640 तो, एहसास, यह अभी भी है, अंत में दिन, केवल एक नौ लाइन कार्यक्रम का। 813 00:39:13,640 --> 00:39:15,090 लेकिन हम ये बच्चे कदम उठाए गए हैं। 814 00:39:15,090 --> 00:39:18,380 >> हम एक पंक्ति में लिखा था जिसके साथ हम परिचित, printf, नमस्ते विश्व थे। 815 00:39:18,380 --> 00:39:19,980 तो फिर हम इस बात का एक छोटा सा undid। 816 00:39:19,980 --> 00:39:21,560 और हम वास्तव में तार मिल इस्तेमाल किया। 817 00:39:21,560 --> 00:39:23,362 और हम एक चर में है कि मूल्य फेंक दिया। 818 00:39:23,362 --> 00:39:26,070 और फिर हम आगे चला गया और बेहतर यह एक तीसरी लाइन के साथ आगे। 819 00:39:26,070 --> 00:39:29,220 और इस प्रक्रिया चलने का सॉफ्टवेयर लेखन वास्तव में महत्वपूर्ण है। 820 00:39:29,220 --> 00:39:33,420 CS50 में, और सामान्य रूप में जीवन में, आप आम तौर पर, बैठ जाओ नहीं करना चाहिए 821 00:39:33,420 --> 00:39:36,800 मन में एक कार्यक्रम है, और लेखन की कोशिश सभी को एक बार पूरे लानत बात है। 822 00:39:36,800 --> 00:39:40,810 >> यह अनिवार्य रूप से, जिस तरह का परिणाम देगा अधिक त्रुटियों की तुलना में हम अपने आप को यहाँ देखा। 823 00:39:40,810 --> 00:39:44,070 मैं भी इस दिन के लिए, लगातार अन्य बेवकूफ गलती करते हैं, 824 00:39:44,070 --> 00:39:47,480 वास्तव में कठिन गलती कर रहे हैं यह पता लगाने के लिए कड़ी मेहनत कर रहे हैं। 825 00:39:47,480 --> 00:39:52,095 लेकिन यदि आप और अधिक गलतियों कर देगा कोड की लाइनों आप एक बार में सभी के बारे में। 826 00:39:52,095 --> 00:39:54,220 और इसलिए इस अभ्यास, कोड का एक छोटा सा के बारे में 827 00:39:54,220 --> 00:39:57,930 कि आप के साथ आराम कर रहे हैं, संकलन यह, इसे चलाने के लिए और अधिक आम तौर पर यह परीक्षण, 828 00:39:57,930 --> 00:40:01,370 तो on-- ले जाते हैं तो बस जैसे हम रखा लेयरिंग और पिछले हफ्ते लेयरिंग, 829 00:40:01,370 --> 00:40:04,190 कुछ से इमारत बहुत और अधिक जटिल कुछ करने के लिए सरल, 830 00:40:04,190 --> 00:40:05,200 यहां भी ऐसा ही। 831 00:40:05,200 --> 00:40:08,500 बैठ जाओ मत करो, और करने की कोशिश एक पूरी समस्या के बारे में। 832 00:40:08,500 --> 00:40:10,780 असल में ये बच्चे कदम उठाए। 833 00:40:10,780 --> 00:40:15,100 >> अब, तार सब नहीं कर रहे कि स्वयं के इधार उपयोगी है। 834 00:40:15,100 --> 00:40:18,210 हम वास्तव में चाहते हैं, आदर्श, के लिए की तरह हमारे टूलकिट में कुछ और ही है। 835 00:40:18,210 --> 00:40:20,990 तो चलो वास्तव में बिल्कुल वैसा ही करेगा। 836 00:40:20,990 --> 00:40:24,900 >> मुझे आगे जाना है और अब कोड़ा चलो एक से थोड़ा अलग कार्यक्रम। 837 00:40:24,900 --> 00:40:28,320 और हम पूर्णांक के लिए, इस int.c फोन करता हूँ। 838 00:40:28,320 --> 00:40:30,870 मैं जा रहा हूँ, इसी तरह, CS550.h शामिल हैं। 839 00:40:30,870 --> 00:40:33,060 मैं मानक कब शामिल करने के लिए जा रहा हूँ। 840 00:40:33,060 --> 00:40:36,630 और कहा कि बहुत आम होने जा रहा है वर्ग के इन पहले कुछ दिनों में। 841 00:40:36,630 --> 00:40:39,050 >> और मैं तैयार करने जा रहा हूँ अपने आप को एक मुख्य समारोह के साथ। 842 00:40:39,050 --> 00:40:43,370 और अब के बजाय एक स्ट्रिंग हो रही है, आगे बढ़ते हैं और एक पूर्णांक के लिए मिलता है। 843 00:40:43,370 --> 00:40:49,285 चलो यह मैं फोन करते हैं, और इसे पाने के लिए फोन पूर्णांक, बंद कोष्ठक, सेमी कॉलन। 844 00:40:49,285 --> 00:40:51,410 और अब चलो इसके साथ कुछ, printf। 845 00:40:51,410 --> 00:40:56,190 >> की तरह कुछ कहना है हैलो, बैकस्लैश एन, अल्पविराम रहा। 846 00:40:56,190 --> 00:41:00,010 तो मैं बहुत ज्यादा नकल उतार कर रहा हूँ क्या मैं बस एक पल पहले किया था। 847 00:41:00,010 --> 00:41:01,660 मैं एक प्लेसहोल्डर यहाँ है। 848 00:41:01,660 --> 00:41:05,150 मैं मैं यहाँ अल्पविराम है, क्योंकि मैं चाहता हूँ मुझे लगता है कि प्लेसहोल्डर में प्लग। 849 00:41:05,150 --> 00:41:07,250 >> तो चलो आगे चलते हैं और कोशिश करते हैं इस कार्यक्रम के संकलन। 850 00:41:07,250 --> 00:41:10,060 फ़ाइल int.c. कहा जाता है 851 00:41:10,060 --> 00:41:12,920 तो मैं कहता हूँ, int बनाने, प्रवेश करने के लिए जा रहा हूँ। 852 00:41:12,920 --> 00:41:16,420 हे भगवान, लेकिन कोई बड़ी बात नहीं है, है ना? 853 00:41:16,420 --> 00:41:17,230 वहाँ एक गलती है। 854 00:41:17,230 --> 00:41:19,810 >> वहाँ एक वाक्यात्मक गलती है यहाँ है कि इस तरह के कार्यक्रम नहीं कर सकते 855 00:41:19,810 --> 00:41:25,460 int.c, लाइन के अंदर संकलित किया सात, चरित्र 27, त्रुटि प्रारूप 856 00:41:25,460 --> 00:41:28,400 यह बताता है प्रकार चार स्टार, जो कुछ भी है। 857 00:41:28,400 --> 00:41:30,020 लेकिन तर्क प्रकार int है। 858 00:41:30,020 --> 00:41:33,110 >> तो यहां भी, हम नहीं जा रहे हैं है-- भले ही आज सामग्री का एक बहुत है, 859 00:41:33,110 --> 00:41:35,710 हम साथ डूब जा रहे हैं बिल्कुल सी की हर सुविधा, 860 00:41:35,710 --> 00:41:38,070 और प्रोग्रामिंग अधिक आम तौर पर, बस इन पहले कुछ हफ्तों में। 861 00:41:38,070 --> 00:41:40,400 तो वहाँ अक्सर होने जा रहा है शब्दजाल जिसके साथ आप परिचित नहीं हैं। 862 00:41:40,400 --> 00:41:43,350 और, वास्तव में, चार स्टार में कुछ है हम करने के लिए वापस आने के लिए जा रहे हैं 863 00:41:43,350 --> 00:41:44,830 एक या दो सप्ताह के समय में। 864 00:41:44,830 --> 00:41:47,530 >> लेकिन अब के लिए, चलो अगर हम देख सकते हैं शब्दों है कि परिचित हैं पार्स। 865 00:41:47,530 --> 00:41:50,750 Formats-- तो हम प्रारूप सुना विनिर्देशक, स्वरूप कोड से पहले। 866 00:41:50,750 --> 00:41:51,840 यही कारण है कि परिचित है। 867 00:41:51,840 --> 00:41:53,840 Type-- लेकिन तर्क प्रकार int है। 868 00:41:53,840 --> 00:41:55,980 एक मिनट रुको, मैं एक int है। 869 00:41:55,980 --> 00:41:59,230 >> शायद प्रतिशत रों वास्तव में कुछ परिभाषित अर्थ नहीं है। 870 00:41:59,230 --> 00:42:00,230 और, वास्तव में, यह करता है। 871 00:42:00,230 --> 00:42:03,101 एक पूर्णांक, अगर आप चाहते हैं यह स्थानापन्न करने के लिए printf, 872 00:42:03,101 --> 00:42:05,350 आप वास्तव में एक का उपयोग किया है अलग स्वरूप विनिर्देशक। 873 00:42:05,350 --> 00:42:06,890 और आप को यह पता नहीं होता जब तक कोई तुमसे कहा था, 874 00:42:06,890 --> 00:42:07,973 या आप इसे पहले किया था। 875 00:42:07,973 --> 00:42:10,490 लेकिन मैं प्रतिशत क्या है आमतौर पर इस्तेमाल किया जा सकता है 876 00:42:10,490 --> 00:42:12,240 एक पूर्णांक में plugging के लिए printf में। 877 00:42:12,240 --> 00:42:14,920 तुम भी प्रतिशत उपयोग कर सकते हैं एक दशमलव पूर्णांक के लिए डी। 878 00:42:14,920 --> 00:42:16,490 लेकिन मैं यहाँ अच्छा और सरल है। 879 00:42:16,490 --> 00:42:17,590 तो हम उस के साथ जाना होगा। 880 00:42:17,590 --> 00:42:21,160 >> अब मुझे आगे जाना है और फिर से दौड़ना बनाने पूर्णांक, दर्ज करें। 881 00:42:21,160 --> 00:42:23,328 यही कारण है कि अच्छा है, कोई त्रुटि। 882 00:42:23,328 --> 00:42:27,260 डॉट int-- ठीक है, बुरा उपयोगकर्ता अनुभव स्लेश, क्योंकि मैं अपने आप को नहीं बताया है 883 00:42:27,260 --> 00:42:27,760 क्या करें। 884 00:42:27,760 --> 00:42:28,426 लेकिन वह ठीक है। 885 00:42:28,426 --> 00:42:29,480 मैं जल्दी से बढ़ रहा हूँ। 886 00:42:29,480 --> 00:42:36,260 >> और अब मुझे आगे जाना है और डेविड, ठीक है, Zamila, रोब में टाइप करें। 887 00:42:36,260 --> 00:42:37,820 ठीक है, तो यह एक अच्छी बात है। 888 00:42:37,820 --> 00:42:41,710 इस बार, मैं एक समारोह का उपयोग कर रहा हूँ, एक पहेली टुकड़ा मिलता है, int कहा जाता है। 889 00:42:41,710 --> 00:42:44,230 और यह out-- बदल जाता है और हम करेंगे term-- में यह बाद में देखेंगे 890 00:42:44,230 --> 00:42:47,730 CS50 स्टाफ लागू किया गया है इस तरह से तार हो 891 00:42:47,730 --> 00:42:50,350 कि यह केवल शारीरिक रूप से होगा आप के लिए एक स्ट्रिंग मिलता है। 892 00:42:50,350 --> 00:42:54,340 >> यह int में पहुंचने में लागू किया गया है इस तरह से है कि यह केवल करेंगे 893 00:42:54,340 --> 00:42:55,590 आप के लिए एक पूर्णांक मिलता है। 894 00:42:55,590 --> 00:42:57,830 और अगर तुम, मानव, सहयोग नहीं करते, यह 895 00:42:57,830 --> 00:43:00,590 सचमुच सिर्फ करने के लिए जा रहा , पुन: प्रयास पुन: प्रयास करें, पुन: प्रयास कहते हैं, 896 00:43:00,590 --> 00:43:05,200 सचमुच वहाँ बैठे पाशन, जब तक आप कुछ जादुई संख्या के साथ उपकृत, 897 00:43:05,200 --> 00:43:07,670 50, और 50 नमस्ते की तरह। 898 00:43:07,670 --> 00:43:11,440 >> या हम यह फिर से चलाते हैं और 42 में प्रकार, हैलो 42। 899 00:43:11,440 --> 00:43:15,750 और तो मिल int समारोह उस पहेली टुकड़े के अंदर 900 00:43:15,750 --> 00:43:19,050 पर्याप्त तर्क है, काफी सोचा, यह पता लगाने के लिए, एक शब्द क्या है? 901 00:43:19,050 --> 00:43:20,330 और एक नंबर क्या है? 902 00:43:20,330 --> 00:43:23,165 केवल स्वीकार करने, अंत में, संख्या। 903 00:43:23,165 --> 00:43:25,690 904 00:43:25,690 --> 00:43:30,230 >> तो यह पता चला है कि इस सब है कि अर्थपूर्ण नहीं है। 905 00:43:30,230 --> 00:43:30,910 अब तक। 906 00:43:30,910 --> 00:43:33,690 तो, याय, पिछली बार जब हम बहुत तेजी से चला गया 907 00:43:33,690 --> 00:43:38,320 को लागू करने के खेल, और एनीमेशन में, और खरोंच के कलात्मक काम करता है। 908 00:43:38,320 --> 00:43:42,260 और यहाँ, हम सामग्री किया जा रहा है हैलो दुनिया, और नमस्ते 50 के साथ। 909 00:43:42,260 --> 00:43:43,696 >> यह सब है कि प्रेरणादायक नहीं है। 910 00:43:43,696 --> 00:43:46,070 और, वास्तव में, इन पहले कुछ उदाहरण के लिए कुछ समय लगेगा 911 00:43:46,070 --> 00:43:47,510 उत्तेजना में रैंप पर। 912 00:43:47,510 --> 00:43:49,854 लेकिन हम इतना अधिक है वास्तव में अब नियंत्रित करते हैं। 913 00:43:49,854 --> 00:43:51,770 और हम करने जा रहे हैं बहुत जल्दी से लेयरिंग शुरू 914 00:43:51,770 --> 00:43:53,870 इन बुनियादी पुरातन के शीर्ष पर। 915 00:43:53,870 --> 00:43:56,370 >> लेकिन पहले, चलो समझते हैं क्या सीमाएं हैं। 916 00:43:56,370 --> 00:43:58,620 वास्तव में, बातों में से एक स्क्रैच आसानी से नहीं करता है 917 00:43:58,620 --> 00:44:00,990 देखने के लिए हमें क्या करना है चलो वास्तव में हुड के नीचे, 918 00:44:00,990 --> 00:44:03,740 और क्या एक को समझने कंप्यूटर है, यह क्या कर सकते हैं, 919 00:44:03,740 --> 00:44:05,250 और अपनी सीमाएं क्या हैं। 920 00:44:05,250 --> 00:44:08,580 और, वास्तव में, इस बात का अभाव समझ, संभावित, लंबी अवधि 921 00:44:08,580 --> 00:44:12,520 हमारे अपने mistakes-- लेखन के लिए नेतृत्व कर सकते हैं कीड़े, असुरक्षित सॉफ्टवेयर लेखन कि 922 00:44:12,520 --> 00:44:13,880 किसी तरह से काट दिया जाता है। 923 00:44:13,880 --> 00:44:17,130 >> तो चलो की ओर कुछ कदम उठाने के लिए करते हैं यह एक छोटे से बेहतर समझने 924 00:44:17,130 --> 00:44:19,710 के रास्ते का कहना है, निम्न उदाहरण। 925 00:44:19,710 --> 00:44:23,550 मुझे आगे जाना है और लागू करने के लिए जा रहा हूँ असली जल्दी एक कार्यक्रम योजक कहा जाता है। 926 00:44:23,550 --> 00:44:25,134 की तरह, चलो कुछ नंबरों को एक साथ जोड़ दें। 927 00:44:25,134 --> 00:44:27,800 और मैं कुछ कोनों कोड के लिए जा रहा हूँ यहाँ है, और बस कॉपी और पेस्ट 928 00:44:27,800 --> 00:44:30,270 जहां मैं पहले था, बस इसलिए हम जल्दी ही जा रहा प्राप्त कर सकते हैं। 929 00:44:30,270 --> 00:44:33,090 अब तो मैं बुनियादी शुरुआत मिल गया है योजक नामक एक कार्यक्रम का। 930 00:44:33,090 --> 00:44:34,670 >> और आगे बढ़ते हैं और यह करते हैं। 931 00:44:34,670 --> 00:44:38,680 मैं आगे जाने के लिए जा रहा हूँ और कहते हैं, intx int प्राप्त हो जाता है। 932 00:44:38,680 --> 00:44:39,430 और क्या आपको पता है? 933 00:44:39,430 --> 00:44:40,990 की एक बेहतर प्रयोक्ता अनुभव करते हैं। 934 00:44:40,990 --> 00:44:45,740 >> तो चलो बस का कहना है x है, और प्रभावी ढंग से करते हैं उपयोगकर्ता का संकेत हमें एक्स देने के लिए। 935 00:44:45,740 --> 00:44:50,600 और फिर मुझे आगे जाना है और कहते हैं, printf चलो कैसे के बारे में y है, इस बार उम्मीद 936 00:44:50,600 --> 00:44:53,140 उपयोगकर्ता से दो मानों। 937 00:44:53,140 --> 00:44:59,759 और फिर चलो बस आगे बढ़ो और कहते हैं, printf, एक्स और वाई का योग है। 938 00:44:59,759 --> 00:45:01,300 और अब मैं प्रतिशत रों नहीं करना चाहते हैं। 939 00:45:01,300 --> 00:45:09,080 मैं प्रतिशत मैं क्या करना चाहते हैं, बैकस्लैश एन, और फिर योग मूल्य में प्लग। 940 00:45:09,080 --> 00:45:10,620 >> तो मैं ऐसा करने के बारे में कैसे जा सकता है? 941 00:45:10,620 --> 00:45:11,270 आपको पता है कि? 942 00:45:11,270 --> 00:45:12,840 मैं कैसे चर का उपयोग करने के लिए जानते हैं। 943 00:45:12,840 --> 00:45:15,140 मुझे बस एक नया एक, पूर्णांक Z की घोषणा करते हैं। 944 00:45:15,140 --> 00:45:16,770 >> और मैं यहाँ एक अनुमान लेने के लिए जा रहा हूँ। 945 00:45:16,770 --> 00:45:21,470 यदि इस में बराबर संकेत मिल रहे हैं भाषा, शायद मैं एक्स प्लस y सिर्फ कर सकते हैं, 946 00:45:21,470 --> 00:45:23,660 तो मैं अंत के रूप में अपने लंबे एक अर्द्ध पेट के साथ सोचा है? 947 00:45:23,660 --> 00:45:28,170 अब मैं यहाँ वापस नीचे जा सकते हैं, जेड में प्लग, एक अर्द्ध पेट के साथ इस बारे में सोचा खत्म। 948 00:45:28,170 --> 00:45:33,160 और चलो अब देखते हैं, इन यदि चलो lines-- एक्स के दृश्यों int मिल रहा है। 949 00:45:33,160 --> 00:45:34,770 Y int मिल रहा है। 950 00:45:34,770 --> 00:45:37,980 >> , एक्स और वाई जोड़ें मूल्य की दुकान z-- तो, फिर से, बराबर चिह्न याद 951 00:45:37,980 --> 00:45:38,560 बराबर नहीं है। 952 00:45:38,560 --> 00:45:41,100 यह दाईं से बाईं ओर से काम है। 953 00:45:41,100 --> 00:45:45,180 और चलो कि योग बाहर प्रिंट देना एक्स और वाई की सचमुच Z नहीं है, 954 00:45:45,180 --> 00:45:46,830 लेकिन जेड के अंदर क्या है। 955 00:45:46,830 --> 00:45:50,090 तो चलो योजक बनाते हैं - अच्छा, कोई गलती इस बार। 956 00:45:50,090 --> 00:45:53,030 डॉट स्लेश योजक, प्रवेश, एक्स 1 होने जा रहा है। 957 00:45:53,030 --> 00:45:55,380 >> वाई 2 होने जा रहा है। 958 00:45:55,380 --> 00:45:58,964 और एक्स और वाई की राशि 3 है। 959 00:45:58,964 --> 00:46:00,130 तो यह है कि सब ठीक है और अच्छा है। 960 00:46:00,130 --> 00:46:03,260 >> तो तुम उस गणित कल्पना होगा इस तरह एक कार्यक्रम में काम करना चाहिए। 961 00:46:03,260 --> 00:46:04,040 लेकिन तुम जानते हो क्या? 962 00:46:04,040 --> 00:46:06,904 इस चर, रेखा है 12, भी आवश्यक है? 963 00:46:06,904 --> 00:46:09,820 आप आदत में प्राप्त करने की आवश्यकता नहीं है की बस चर में चीजों के भंडारण 964 00:46:09,820 --> 00:46:10,980 सिर्फ इसलिए कि आप कर सकते हैं। 965 00:46:10,980 --> 00:46:13,550 और, वास्तव में, यह आम तौर पर है माना बुरा डिजाइन 966 00:46:13,550 --> 00:46:18,100 आप एक चर पैदा कर रहे हैं, तो कहा जाता है इस मामले में जेड, उस में कुछ भंडारण, 967 00:46:18,100 --> 00:46:21,390 और फिर तुरंत यह प्रयोग, लेकिन फिर कभी नहीं। 968 00:46:21,390 --> 00:46:24,700 क्यों कुछ एक नाम दे जेड की तरह यदि आप सचमुच रहे 969 00:46:24,700 --> 00:46:26,770 का उपयोग करने के लिए जा रहा है कि बात केवल एक बार, और इसलिए 970 00:46:26,770 --> 00:46:29,380 जहां आपके द्वारा बनाई गई करने के लिए समीपस्थ यह पहली जगह में, 971 00:46:29,380 --> 00:46:31,052 कोड की लाइनों के मामले में इतने करीब? 972 00:46:31,052 --> 00:46:31,760 तो तुम जानते हो क्या? 973 00:46:31,760 --> 00:46:34,480 यह पता चला है कि सी बहुत लचीला है। 974 00:46:34,480 --> 00:46:36,586 मैं वास्तव में चाहते हैं प्लग में मूल्यों इधर, 975 00:46:36,586 --> 00:46:38,210 मैं एक नया चर घोषित करने की जरूरत नहीं है। 976 00:46:38,210 --> 00:46:41,680 मैं तो बस प्लग में एक्स प्लस कर सकता है वाई, क्योंकि सी समझता 977 00:46:41,680 --> 00:46:43,390 गणित, और गणितीय ऑपरेटरों। 978 00:46:43,390 --> 00:46:47,140 >> तो मैं बस कह सकते हैं, इस गणित करते हैं, एक्स प्लस y, जो कुछ भी उन मान रहे हैं, 979 00:46:47,140 --> 00:46:50,780 प्लग जिसके परिणामस्वरूप कि स्ट्रिंग में पूर्णांक। 980 00:46:50,780 --> 00:46:53,730 तो यह हो सकता है, हालांकि केवल एक ही लाइन पर कम, 981 00:46:53,730 --> 00:46:58,480 एक बेहतर डिजाइन, एक बेहतर कार्यक्रम, क्योंकि वहाँ कम कोड है, इसलिए 982 00:46:58,480 --> 00:46:59,921 कम मुझे समझने के लिए। 983 00:46:59,921 --> 00:47:01,920 और यह भी बस क्लीनर है, हम नहीं कर रहे insofar के रूप में 984 00:47:01,920 --> 00:47:04,620 नए शब्दों का परिचय, नए प्रतीकों, जेड की तरह, 985 00:47:04,620 --> 00:47:07,510 भले ही वे वास्तव में नहीं है एक उद्देश्य के ज्यादा काम करते हैं। 986 00:47:07,510 --> 00:47:12,890 >> दुर्भाग्य से, गणित नहीं है सब है कि विश्वसनीय कभी कभी। 987 00:47:12,890 --> 00:47:15,270 आगे बढ़ते हैं और यह करते हैं। 988 00:47:15,270 --> 00:47:18,200 मैं आगे जाने के लिए जा रहा हूँ अब और निम्नलिखित है। 989 00:47:18,200 --> 00:47:27,650 >> के printf, मैं प्रतिशत, प्रतिशत से अधिक करते हैं मैं, मैं प्रतिशत, बैकस्लैश n होगी। 990 00:47:27,650 --> 00:47:32,240 और मैं this-- xyx प्लस y क्या करने जा रहा हूँ। 991 00:47:32,240 --> 00:47:34,821 तो मैं बस को फिर से लिखना करने जा रहा हूँ यह थोड़ा अलग तरह से यहाँ। 992 00:47:34,821 --> 00:47:36,320 मुझे बस एक त्वरित मानसिक स्वास्थ्य की जांच करते हैं। 993 00:47:36,320 --> 00:47:37,986 फिर, चलो अपने आप से आगे नहीं मिलता है। 994 00:47:37,986 --> 00:47:41,420 योजक, डॉट स्लेश योजक बनाओ। 995 00:47:41,420 --> 00:47:44,950 एक्स 1 है, वाई 2, 1 प्लस 2 से 3 है। 996 00:47:44,950 --> 00:47:45,870 तो यह अच्छी बात है। 997 00:47:45,870 --> 00:47:49,060 लेकिन अब इस जटिल बना देना एक सा है, और एक नई फ़ाइल बनाएँ। 998 00:47:49,060 --> 00:47:53,350 >> मैं इस एक फोन करने के लिए जा रहा हूँ, कहते हैं, ints, पूर्णांकों के लिए बहुवचन। 999 00:47:53,350 --> 00:47:55,980 मुझे शुरू जहां मैं एक पल पहले था। 1000 00:47:55,980 --> 00:47:57,770 लेकिन अब चलो कुछ अन्य लाइनों करते हैं। 1001 00:47:57,770 --> 00:48:03,430 मुझे आगे जाना है और निम्नलिखित करते हैं, printf, मैं प्रतिशत, शून्य प्रतिशत रहा, 1002 00:48:03,430 --> 00:48:08,959 प्रतिशत रहा, अल्पविराम एक्स, अल्पविराम YX शून्य से y है। 1003 00:48:08,959 --> 00:48:10,750 तो मैं थोड़ा कर रहा हूँ वहाँ अलग गणित। 1004 00:48:10,750 --> 00:48:11,624 के एक और एक है। 1005 00:48:11,624 --> 00:48:16,610 तो मैं प्रतिशत गुना प्रतिशत मैं प्रतिशत रहा, बैकस्लैश n है। 1006 00:48:16,610 --> 00:48:21,430 के प्लग में एक्स, वाई और, और एक्स बार y करते हैं। 1007 00:48:21,430 --> 00:48:24,530 हम पर तारांकन इस्तेमाल करेंगे समय के लिए अपने कंप्यूटर। 1008 00:48:24,530 --> 00:48:26,390 >> आप एक्स का उपयोग नहीं करते। एक्स है यहाँ एक चर नाम। 1009 00:48:26,390 --> 00:48:28,270 आप गुणन के लिए स्टार का उपयोग करें। 1010 00:48:28,270 --> 00:48:29,020 चलो एक और करते हैं। 1011 00:48:29,020 --> 00:48:34,580 Printf प्रतिशत रहा, विभाजित प्रतिशत रहा द्वारा, प्रतिशत रहा है 1012 00:48:34,580 --> 00:48:40,460 बैकस्लैश एन। XY y-- से विभाजित इसलिए तुम सी में आगे स्लैश का उपयोग करें 1013 00:48:40,460 --> 00:48:41,502 विभाजन करने के लिए। 1014 00:48:41,502 --> 00:48:42,460 और हम एक दूसरे से करते हैं। 1015 00:48:42,460 --> 00:48:47,920 1016 00:48:47,920 --> 00:48:55,240 मैं प्रतिशत के शेष विभाजित मैं प्रतिशत रखकर प्रतिशत रहा है। 1017 00:48:55,240 --> 00:48:59,550 xy-- और अब शेष क्या बचा है। 1018 00:48:59,550 --> 00:49:02,980 आप एक विभाजन का प्रयास करते हैं एक अंश में विभाजक, 1019 00:49:02,980 --> 00:49:05,570 कितना बचा है कि आप बाहर विभाजित नहीं कर सकता था? 1020 00:49:05,570 --> 00:49:07,910 >> तो वहाँ वास्तव में नहीं है, जरूरी, एक प्रतीक 1021 00:49:07,910 --> 00:49:09,470 हम इस के लिए ग्रेड स्कूल में उपयोग किया है। 1022 00:49:09,470 --> 00:49:13,830 लेकिन वहाँ सी में आप कर सकते हैं का कहना है कि एक्स सापेक्ष वाई, जहां 1023 00:49:13,830 --> 00:49:18,000 इस context-- में यह प्रतिशत चिह्न भ्रमित जब आप अंदर हो 1024 00:49:18,000 --> 00:49:20,170 डबल कोट्स की, printf की, प्रतिशत के अंदर 1025 00:49:20,170 --> 00:49:21,830 प्रारूप विनिर्देशक के रूप में प्रयोग किया जाता है। 1026 00:49:21,830 --> 00:49:25,420 >> आप में से बाहर प्रतिशत का उपयोग करते हैं कि एक गणितीय अभिव्यक्ति में, 1027 00:49:25,420 --> 00:49:29,910 यह मॉड्यूलर के लिए सापेक्ष ऑपरेटर है हमारे उद्देश्यों के लिए arithmetic-- 1028 00:49:29,910 --> 00:49:33,650 इधर, बस का अर्थ है, क्या है एक्स के शेष y से विभाजित? 1029 00:49:33,650 --> 00:49:36,130 तो एक्स वाई द्वारा विभाजित एक्स स्लेश y है। 1030 00:49:36,130 --> 00:49:38,220 Y से विभाजित एक्स के शेष क्या है? 1031 00:49:38,220 --> 00:49:41,780 यह आधुनिक y एक्स एक प्रोग्रामर के रूप में कहेंगे। 1032 00:49:41,780 --> 00:49:48,300 >> तो अगर मैं कोई गलती यहाँ बनाया है, मुझे जाने आगे बढ़ो और ints, बहुवचन, अच्छा बनाने, 1033 00:49:48,300 --> 00:49:50,010 और डॉट स्लेश ints। 1034 00:49:50,010 --> 00:49:55,270 और चलो आगे चलते हैं और करते हैं, हम कहते हैं कि, 1, 10 दें। 1035 00:49:55,270 --> 00:49:58,390 ठीक है, 1 प्लस 10 11, जांच है। 1036 00:49:58,390 --> 00:50:01,240 1 शून्य से 10 नकारात्मक 9, जांच है। 1037 00:50:01,240 --> 00:50:03,420 >> 1 बार 10 से 10 की जांच है। 1038 00:50:03,420 --> 00:50:07,090 1 10 से विभाजित है- ठीक है, हम छोड़ देंगे कि एक। 1039 00:50:07,090 --> 00:50:09,480 1 के शेष 10 से विभाजित 1 है। 1040 00:50:09,480 --> 00:50:10,680 यह सही है। 1041 00:50:10,680 --> 00:50:12,630 लेकिन यहाँ पर एक बग है। 1042 00:50:12,630 --> 00:50:15,390 >> एक तो मैं डाल मेरी को सौंपने, सही नहीं है। 1043 00:50:15,390 --> 00:50:16,670 मेरा मतलब है, यह 0 के करीब है। 1044 00:50:16,670 --> 00:50:20,670 1 10 से विभाजित है, आप जानते हैं, हम कर रहे हैं कुछ कोनों को काटने, यकीन है, यह शून्य है। 1045 00:50:20,670 --> 00:50:28,050 लेकिन यह सच में 1/10 होना चाहिए, 0.1 अथवा 0.10, 0.1000, या बहुत आगे है। 1046 00:50:28,050 --> 00:50:30,600 >> यह वास्तव में शून्य नहीं होना चाहिए। 1047 00:50:30,600 --> 00:50:35,990 खैर, यह पता चला है कि कंप्यूटर है सचमुच कर रही है कि हम क्या करने के लिए कहा था। 1048 00:50:35,990 --> 00:50:39,460 हम y से विभाजित एक्स की तरह गणित कर रहे हैं। 1049 00:50:39,460 --> 00:50:44,680 और दोनों एक्स और वाई, लाइनों प्रति कोड के पहले, integers हैं। 1050 00:50:44,680 --> 00:50:50,440 >> इसके अलावा, लाइन 15 पर, हम कर रहे हैं printf, हे, printf प्लग में बता रही है 1051 00:50:50,440 --> 00:50:54,230 एक पूर्णांक, प्लग में एक पूर्णांक, प्लग में एक विशेष integer-- 1052 00:50:54,230 --> 00:50:57,580 एक्स, और फिर y, और फिर एक्स Y से विभाजित। एक्स और वाई ints हैं। 1053 00:50:57,580 --> 00:50:59,060 हम वहाँ अच्छा कर रहे हैं। 1054 00:50:59,060 --> 00:51:01,250 >> लेकिन क्या एक्स एक्स से विभाजित किया जाता है? 1055 00:51:01,250 --> 00:51:06,790 एक्स विभाजित करके Y होना चाहिए, गणितीय, 1/10, या 0.1, 1056 00:51:06,790 --> 00:51:11,600 जो एक वास्तविक संख्या, एक वास्तविक संख्या है चल रहा है, संभवतः एक दशमलव बिंदु। 1057 00:51:11,600 --> 00:51:13,230 यह एक पूर्णांक नहीं है। 1058 00:51:13,230 --> 00:51:18,290 >> लेकिन क्या सबसे करीब है 1/10, या 0.1 करने के लिए पूर्णांक? 1059 00:51:18,290 --> 00:51:21,114 हाँ, यह एक तरह से शून्य है। 1060 00:51:21,114 --> 00:51:22,030 0.1 यह बहुत पसंद है। 1061 00:51:22,030 --> 00:51:22,890 और 1 इस ज्यादा है। 1062 00:51:22,890 --> 00:51:25,870 तो 1/10 के करीब है 0 से यह एक है। 1063 00:51:25,870 --> 00:51:30,800 >> और तो क्या सी us-- के लिए क्या कर रही है तरह का है क्योंकि हम यह है-- बताया 1064 00:51:30,800 --> 00:51:32,600 कि पूर्णांक छोटा है। 1065 00:51:32,600 --> 00:51:40,540 यह मूल्य है, जो फिर से ले जा रहा है .1000 की तरह कुछ होना चाहिए था, 1066 00:51:40,540 --> 00:51:41,800 0 और बहुत आगे है। 1067 00:51:41,800 --> 00:51:45,320 और यह सब कुछ छोटा है दशमलव बिंदु के बाद 1068 00:51:45,320 --> 00:51:47,510 तो यह है कि यह सब सामान, क्योंकि यह नहीं है 1069 00:51:47,510 --> 00:51:51,910 एक पूर्णांक की धारणा में फिट है, जो सिर्फ नकारात्मक 1, 0, 1 की तरह एक नंबर है, 1070 00:51:51,910 --> 00:51:55,830 ऊपर और नीचे, यह सब कुछ दूर फेंकता क्योंकि आप दशमलव बिंदु के बाद 1071 00:51:55,830 --> 00:51:59,020 एक दशमलव बिंदु फिट नहीं कर सकते परिभाषा के द्वारा एक पूर्णांक में। 1072 00:51:59,020 --> 00:52:01,290 >> तो जवाब यहाँ शून्य है। 1073 00:52:01,290 --> 00:52:02,600 तो हम यह कैसे तय करते हैं? 1074 00:52:02,600 --> 00:52:04,400 हम सब एक साथ एक और समाधान की जरूरत है। 1075 00:52:04,400 --> 00:52:06,880 और हम इस प्रकार के रूप में कर सकते हैं। 1076 00:52:06,880 --> 00:52:12,820 >> मुझे आगे चलते हैं और एक नया बनाने फ़ाइल, यह एक floats.c बुलाया। 1077 00:52:12,820 --> 00:52:16,500 और यहां इसे बचाने के लिए एक ही निर्देशिका, float.c। 1078 00:52:16,500 --> 00:52:19,360 1079 00:52:19,360 --> 00:52:23,260 और मुझे आगे जाना है और कॉपी करते हैं पहले से उस कोड के कुछ। 1080 00:52:23,260 --> 00:52:27,690 >> लेकिन के बजाय हो रही है एक int, चलो यह करते हैं। 1081 00:52:27,690 --> 00:52:31,037 मुझे एक चल बिन्दु मान दें एक्स कहा जाता है। जहां एक चल बिन्दु 1082 00:52:31,037 --> 00:52:33,370 मूल्य सिर्फ शाब्दिक है एक चल बिन्दु के साथ कुछ और। 1083 00:52:33,370 --> 00:52:34,410 यह बाईं ओर ले जाने के लिए सही करने के लिए कर सकते हैं। 1084 00:52:34,410 --> 00:52:35,530 यह एक वास्तविक संख्या है। 1085 00:52:35,530 --> 00:52:38,050 >> और मुझे नहीं कहते हैं int मिलता है, लेकिन नाव मिलता है, 1086 00:52:38,050 --> 00:52:41,420 यह भी मेनू के बीच था जो C250 पुस्तकालय में विकल्पों की। 1087 00:52:41,420 --> 00:52:43,220 है y एक नाव के लिए परिवर्तित करें। 1088 00:52:43,220 --> 00:52:45,000 तो इस नाव प्राप्त हो जाता है। 1089 00:52:45,000 --> 00:52:47,620 >> और अब, हम नहीं ints में प्लग करने के लिए चाहते हैं। 1090 00:52:47,620 --> 00:52:53,130 यह पता चला है कि हम प्रतिशत का उपयोग किया है नाव के लिए एफ, नाव के लिए प्रतिशत एफ, 1091 00:52:53,130 --> 00:52:54,560 और अब इसे बचाने के लिए। 1092 00:52:54,560 --> 00:53:01,220 और अब, उंगलियों को पार कर, कर तैरता है, अच्छा है, डॉट स्लेश मंगाई। 1093 00:53:01,220 --> 00:53:04,280 x एक 1. Y होने जा रहा है 10 फिर से होने जा रहा है। 1094 00:53:04,280 --> 00:53:08,240 >> और, अच्छा, ठीक है मेरे अलावा सही है। 1095 00:53:08,240 --> 00:53:10,240 मैं और अधिक के लिए उम्मीद कर रहा था, लेकिन मैं यह लिखने के लिए भूल गया। 1096 00:53:10,240 --> 00:53:13,250 तो चलो चलते हैं और इस तार्किक त्रुटि को ठीक करते हैं। 1097 00:53:13,250 --> 00:53:16,280 >> आगे बढ़ते हैं और निम्नलिखित ले लो। 1098 00:53:16,280 --> 00:53:18,080 हम सिर्फ एक छोटे से कॉपी और पेस्ट कर देंगे। 1099 00:53:18,080 --> 00:53:20,080 और मैं शून्य से कहने जा रहा हूँ। 1100 00:53:20,080 --> 00:53:21,890 >> और मैं कई बार कहने जा रहा हूँ। 1101 00:53:21,890 --> 00:53:24,060 और मैं विभाजित कहने जा रहा हूँ। 1102 00:53:24,060 --> 00:53:28,240 और मैं सापेक्ष करने के लिए नहीं जा रहा हूँ, जो के रूप में सार्थक यहाँ नहीं है, 1103 00:53:28,240 --> 00:53:33,690 च से विभाजित है, और कई बार प्लस ठीक है, चलो इस बार फिर से करते हैं। 1104 00:53:33,690 --> 00:53:44,210 >> बनाओ मंगाई, डॉट स्लेश मंगाई, और 1, 10, और-- अच्छा, नहीं, ठीक है। 1105 00:53:44,210 --> 00:53:45,250 तो मैं एक मूर्ख हूँ। 1106 00:53:45,250 --> 00:53:47,000 तो यह बहुत आम है कंप्यूटर विज्ञान के क्षेत्र में 1107 00:53:47,000 --> 00:53:49,780 इस तरह बेवकूफ गलतियों को बनाने के लिए। 1108 00:53:49,780 --> 00:53:53,100 >> शैक्षणिक उद्देश्यों के लिए, मैं वास्तव में क्या करना चाहता था 1109 00:53:53,100 --> 00:53:57,410 विज्ञान यहाँ परिवर्तन किया गया था प्लस के लिए, शून्य करने के लिए, कई बार करने के लिए, 1110 00:53:57,410 --> 00:54:01,140 और आप के रूप में विभाजित करने के लिए, उम्मीद है कि इस अभ्यास के दौरान देखा। 1111 00:54:01,140 --> 00:54:04,700 तो अब यह फिर से संकलन करते कार्यक्रम डॉट स्लेश मंगाई करना। 1112 00:54:04,700 --> 00:54:07,950 >> और तीसरी बार के लिए, चलो देखो अगर यह मेरी उम्मीदों को पूरा करती है। 1113 00:54:07,950 --> 00:54:21,480 1, 10, दर्ज ठीक है, हाँ, 1.000, 10.000 से विभाजित, 0.100000 है। 1114 00:54:21,480 --> 00:54:24,952 और यह पता चला है कि हम नियंत्रित कर सकते हैं कि कितने संख्या उन दशमलव अंक के बाद कर रहे हैं। 1115 00:54:24,952 --> 00:54:25,660 हम वास्तव में होगा। 1116 00:54:25,660 --> 00:54:26,790 हम वापस आ जाएगा। 1117 00:54:26,790 --> 00:54:28,440 >> लेकिन अब, वास्तव में, गणित सही है। 1118 00:54:28,440 --> 00:54:30,090 तो, फिर, क्या takeaway यहाँ है? 1119 00:54:30,090 --> 00:54:33,050 यह पता चला है सी में, देखते हैं कि न केवल बस strings-- और वास्तव में, 1120 00:54:33,050 --> 00:54:36,120 वहाँ है, वास्तव में नहीं कर रहे हैं क्योंकि हम CS50 पुस्तकालय के साथ उन लोगों को जोड़ने। 1121 00:54:36,120 --> 00:54:37,710 लेकिन वहाँ सिर्फ ints नहीं हैं। 1122 00:54:37,710 --> 00:54:38,990 >> यह भी मंगाई हैं। 1123 00:54:38,990 --> 00:54:42,810 और यह अन्य डेटा का एक गुच्छा पता चला है प्रकार के भी, कि हम लंबे समय से पहले इस्तेमाल करेंगे। 1124 00:54:42,810 --> 00:54:46,270 निकलता है कि आप एक भी चाहते हैं चरित्र, वर्णों की एक स्ट्रिंग नहीं, 1125 00:54:46,270 --> 00:54:47,610 आप सिर्फ एक चार का उपयोग कर सकते हैं। 1126 00:54:47,610 --> 00:54:52,350 >> पता चला है कि अगर आप एक बूल चाहते हैं, एक बूलियन मान, सही है या गलत ही है, 1127 00:54:52,350 --> 00:54:56,840 CS50 पुस्तकालय के लिए धन्यवाद, हम है के रूप में अच्छी तरह से सी बूल डेटा प्रकार के लिए कहा। 1128 00:54:56,840 --> 00:54:59,180 लेकिन यह भी मौजूद है कई अन्य भाषाओं के रूप में अच्छी तरह से। 1129 00:54:59,180 --> 00:55:04,130 और यह है कि आप कभी कभी पता चला है बड़ी संख्या तो डिफ़ॉल्ट रूप से आने की जरूरत 1130 00:55:04,130 --> 00:55:05,210 ints और मंगाई साथ। 1131 00:55:05,210 --> 00:55:10,590 >> और, वास्तव में, एक डबल एक नंबर है है कि नहीं 32 बिट, लेकिन 64 बिट का उपयोग करता। 1132 00:55:10,590 --> 00:55:14,990 और एक लंबे लंबे समय से एक संख्या है कि नहीं 32, बिट्स लेकिन 64 बिट का उपयोग करता, 1133 00:55:14,990 --> 00:55:19,190 क्रमश: चल बिन्दु के लिए मूल्यों और पूर्णांकों, क्रमशः। 1134 00:55:19,190 --> 00:55:22,780 तो चलो अब वास्तव में चलो कार्रवाई में यह देखने। 1135 00:55:22,780 --> 00:55:26,150 >> मैं यहाँ आगे जाने के लिए जा रहा हूँ और एक अन्य कार्यक्रम कोड़ा। 1136 00:55:26,150 --> 00:55:32,020 यहाँ, मैं आगे जाने के लिए जा रहा हूँ और CS50.h. शामिल करते हैं 1137 00:55:32,020 --> 00:55:34,910 और मुझे जाने दो, मानक IO.h. शामिल 1138 00:55:34,910 --> 00:55:37,320 >> और अगर आप कुछ नोटिस देंगे कायरता यहां हो रहा है। 1139 00:55:37,320 --> 00:55:40,592 यह चीजों में कोडिंग रंग नहीं है एक ही रास्ता के रूप में यह पहले किया था। 1140 00:55:40,592 --> 00:55:43,550 और यह पता चला है कि क्योंकि मैं है एक फ़ाइल नाम बात नहीं दिया है। 1141 00:55:43,550 --> 00:55:47,270 >> मैं इस एक फोन करने के लिए जा रहा हूँ sizeof.c, और बचाने मारा। 1142 00:55:47,270 --> 00:55:51,039 और नोटिस क्या मेरे बहुत के लिए होता है कि काले सफेद पृष्ठभूमि के खिलाफ कोड। 1143 00:55:51,039 --> 00:55:52,830 अब कम से कम वहाँ है कुछ वहाँ में बैंगनी। 1144 00:55:52,830 --> 00:55:54,490 और यह वाक्य रचना पर प्रकाश डाला है। 1145 00:55:54,490 --> 00:55:57,700 >> ऐसा इसलिए है क्योंकि, काफी बस, मैं है आईडीई किस प्रकार की फ़ाइल में बताया 1146 00:55:57,700 --> 00:56:01,060 यह यह एक नाम देकर है, और विशेष रूप से एक फाइल एक्सटेंशन। 1147 00:56:01,060 --> 00:56:03,620 अब, चलो आगे जाना है और यह करते हैं। 1148 00:56:03,620 --> 00:56:08,910 मैं आगे और बहुत से जाने के लिए जा रहा हूँ बस following-- बूल बाहर प्रिंट 1149 00:56:08,910 --> 00:56:11,080 लू प्रतिशत है। 1150 00:56:11,080 --> 00:56:12,950 >> हम करने के लिए वापस आ गया हूँ बस एक पल में है। 1151 00:56:12,950 --> 00:56:15,840 और फिर मैं करने जा रहा हूँ बूल के प्रिंट आकार। 1152 00:56:15,840 --> 00:56:18,170 और अब, बस को बचाने के लिए अपने आप को कुछ समय, मैं हूँ 1153 00:56:18,170 --> 00:56:20,280 एक पूरे करने जा रहा एक बार में इन का गुच्छा। 1154 00:56:20,280 --> 00:56:24,620 और, विशेष रूप से, मैं करने जा रहा हूँ एक चार और चार को यह बदल जाते हैं। 1155 00:56:24,620 --> 00:56:27,760 यह एक, मैं बदलने के लिए जा रहा हूँ एक डबल और एक डबल करने के लिए। 1156 00:56:27,760 --> 00:56:31,440 >> यह एक, मैं बदलने के लिए जा रहा हूँ एक नाव और एक नाव के लिए। 1157 00:56:31,440 --> 00:56:35,670 यह एक, मैं जा रहा हूँ एक int और एक पूर्णांक के लिए बदल जाते हैं। 1158 00:56:35,670 --> 00:56:38,660 और यह एक, मैं जा रहा हूँ एक लंबे को बदलने के लिए। 1159 00:56:38,660 --> 00:56:40,840 और यह अभी भी ले जा रहा है एक लंबे समय, लंबे समय तक। 1160 00:56:40,840 --> 00:56:44,572 >> और फिर, अंत में, मैं दे दिया अपने आप को एक भी कई, स्ट्रिंग। 1161 00:56:44,572 --> 00:56:47,030 यह पता चला है सी में, वहाँ है कि विशेष ऑपरेटर बुलाया 1162 00:56:47,030 --> 00:56:50,260 इस बात का आकार सचमुच है , जब चलाने के लिए जा रहा है, 1163 00:56:50,260 --> 00:56:52,099 हम में से आकार बता इन चर के प्रत्येक। 1164 00:56:52,099 --> 00:56:53,890 और यह एक तरीका है, अब, हम वापस कनेक्ट कर सकते हैं 1165 00:56:53,890 --> 00:56:57,140 पिछले हफ्ते की चर्चा करने के लिए डेटा और प्रतिनिधित्व की। 1166 00:56:57,140 --> 00:57:00,330 >> मुझे आगे जाना है और संकलित करते डॉट स्लेश आकार के आकार। 1167 00:57:00,330 --> 00:57:01,210 और चलो देखते हैं। 1168 00:57:01,210 --> 00:57:05,210 यह सी में है कि पता चला है, विशेष रूप से CS50 आईडीई पर, 1169 00:57:05,210 --> 00:57:08,170 विशेष पर ऑपरेटिंग सिस्टम उबंटू, 1170 00:57:08,170 --> 00:57:11,100 जो एक 64-बिट ऑपरेटिंग है इस मामले में प्रणाली, 1171 00:57:11,100 --> 00:57:14,189 एक बूल जा रहा है अंतरिक्ष के एक बाइट का उपयोग करें। 1172 00:57:14,189 --> 00:57:16,480 यही कारण है कि आकार मापा जाता है, नहीं बिट्स में है, लेकिन बाइट्स में। 1173 00:57:16,480 --> 00:57:18,690 और याद है कि एक बाइट आठ बिट है। 1174 00:57:18,690 --> 00:57:22,030 तो एक बूल, भले ही आप एक 0 या 1 तकनीकी रूप से केवल जरूरत है, 1175 00:57:22,030 --> 00:57:24,092 यह एक छोटे से बेकार है कैसे हम इसे क्रियान्वित किया है। 1176 00:57:24,092 --> 00:57:26,800 यह वास्तव में एक पूरे का उपयोग करने के लिए जा रहा है byte-- तो सब शून्य है, हो सकता हैं 1177 00:57:26,800 --> 00:57:31,050 सभी लोगों को, या ऐसा कुछ है, या सिर्फ एक 1 आठ बिट्स के बीच में। 1178 00:57:31,050 --> 00:57:34,962 >> एक चार, इस बीच, एक चरित्र के लिए इस्तेमाल किया पिछले सप्ताह प्रति एक ASCII चरित्र की तरह, 1179 00:57:34,962 --> 00:57:36,170 एक चरित्र होने जा रहा है। 1180 00:57:36,170 --> 00:57:42,340 और उस के बारे में हमारी धारणा के साथ synchs यह कोई 256 से अधिक bits-- जा रहा है बल्कि, 1181 00:57:42,340 --> 00:57:45,360 यह कोई होने के साथ synchs अप अब से 8 बिट, जो 1182 00:57:45,360 --> 00:57:47,450 अमेरिका के रूप में कई के रूप में 256 मान देता है। 1183 00:57:47,450 --> 00:57:49,680 एक डबल करने के लिए जा रहा है 8 बाइट्स या 64 बिट्स हो। 1184 00:57:49,680 --> 00:57:50,510 >> एक नाव 4 है। 1185 00:57:50,510 --> 00:57:51,690 एक int 4 है। 1186 00:57:51,690 --> 00:57:52,980 एक लंबे, लंबे समय तक 8 है। 1187 00:57:52,980 --> 00:57:54,716 और एक स्ट्रिंग 8 है। 1188 00:57:54,716 --> 00:57:55,840 लेकिन उस के बारे में चिंता मत करो। 1189 00:57:55,840 --> 00:57:57,340 हम उस परत वापस छील करने के लिए जा रहे हैं। 1190 00:57:57,340 --> 00:57:59,940 यह पता चला है, तार कर सकते हैं 8 बाइट्स से अधिक समय हो। 1191 00:57:59,940 --> 00:58:02,310 >> और, वास्तव में, हम लिखा है पहले से ही तार, नमस्ते दुनिया, 1192 00:58:02,310 --> 00:58:03,700 8 बाइट्स से अधिक समय। 1193 00:58:03,700 --> 00:58:06,270 लेकिन हम करने के लिए वापस आ गया हूँ बस एक पल में है। 1194 00:58:06,270 --> 00:58:09,690 लेकिन दूर ले जाओ यहाँ पीछा कर रहा है। 1195 00:58:09,690 --> 00:58:15,320 >> किसी भी कंप्यूटर केवल एक परिमित है स्मृति और अंतरिक्ष की राशि। 1196 00:58:15,320 --> 00:58:17,860 आप केवल इतने सारे स्टोर कर सकते हैं अपने मैक या पीसी पर फ़ाइलें। 1197 00:58:17,860 --> 00:58:23,030 आप केवल में इतने सारे कार्यक्रमों स्टोर कर सकते हैं राम के बार में चल रहा है, जरूरी है, भले 1198 00:58:23,030 --> 00:58:26,360 आभासी स्मृति के साथ, क्योंकि आप राम की एक निश्चित राशि है। 1199 00:58:26,360 --> 00:58:28,990 >> और बस यदि picture-- करने के लिए आप एक लैपटॉप को कभी नहीं खोला है 1200 00:58:28,990 --> 00:58:31,300 या अतिरिक्त स्मृति का आदेश दिया एक कंप्यूटर के लिए, आप 1201 00:58:31,300 --> 00:58:33,670 पता नहीं हो सकता है कि आपके कंप्यूटर के अंदर 1202 00:58:33,670 --> 00:58:36,590 कुछ है जो दिखता है इस तरह एक छोटे। 1203 00:58:36,590 --> 00:58:40,540 तो यह सिर्फ एक आम नाम कंपनी है महत्वपूर्ण है कि कंप्यूटर के लिए राम बनाता है। 1204 00:58:40,540 --> 00:58:43,620 और राम जहां कार्यक्रमों है रहते हैं, जबकि वे चल रहे हैं। 1205 00:58:43,620 --> 00:58:46,630 >> तो हर मैक या पीसी, जब आप डबल पर एक कार्यक्रम के लिए क्लिक करें, और यह खुल जाता है, 1206 00:58:46,630 --> 00:58:48,921 और यह कुछ शब्द दस्तावेज़ को खोलता है या कुछ इस तरह का, 1207 00:58:48,921 --> 00:58:51,764 यह यह भंडार अस्थायी रूप में रैम, क्योंकि राम तेजी से होता है 1208 00:58:51,764 --> 00:58:53,680 आपकी हार्ड डिस्क से, या अपने ठोस राज्य डिस्क। 1209 00:58:53,680 --> 00:58:56,600 तो यह सिर्फ है जहां कार्यक्रमों जाना रहने के लिए जब वे चला रहे हैं, 1210 00:58:56,600 --> 00:58:58,060 या जब फ़ाइलों का उपयोग किया जा रहा है। 1211 00:58:58,060 --> 00:59:00,890 >> तो आप चीजों है कि देखो अपने लैपटॉप के इस अंदर की तरह, 1212 00:59:00,890 --> 00:59:03,320 या थोड़ा बड़ी बातें अपने डेस्कटॉप के अंदर। 1213 00:59:03,320 --> 00:59:07,440 लेकिन महत्वपूर्ण है कि आप केवल एक है है इन सब बातों के परिमित संख्या। 1214 00:59:07,440 --> 00:59:11,230 और वहाँ केवल एक सीमित मात्रा में है हार्डवेयर इस डेस्क पर बैठे सही 1215 00:59:11,230 --> 00:59:11,730 यहाँ। 1216 00:59:11,730 --> 00:59:15,920 >> तो, निश्चित रूप से, हम दुकान नहीं कर सकते असीम लंबे संख्या। 1217 00:59:15,920 --> 00:59:19,030 और, अभी तक, तुम वापस करने के लिए लगता है कि अगर ग्रेड स्कूल, कितने अंक कर सकते हैं 1218 00:59:19,030 --> 00:59:21,400 आप सही करने के लिए है एक दशमलव बिंदु के? 1219 00:59:21,400 --> 00:59:24,680 उस बात के लिए, कितने अंक कर सकते हैं आप एक दशमलव बिंदु के बाईं ओर है? 1220 00:59:24,680 --> 00:59:26,300 वास्तव में, कई infinitely। 1221 00:59:26,300 --> 00:59:30,840 >> अब, हम केवल मनुष्य ही हो सकता है जानते लाख का उच्चारण कैसे करें 1222 00:59:30,840 --> 00:59:34,990 और अरब, खरब, और शंख, और quintillion। 1223 00:59:34,990 --> 00:59:39,370 और मैं की सीमाओं जोर दे रहा हूँ मेरे understanding-- या my-- मैं समझता हूँ 1224 00:59:39,370 --> 00:59:41,110 संख्याओं, लेकिन मेरी नंबरों के उच्चारण। 1225 00:59:41,110 --> 00:59:44,720 लेकिन वे साथ असीम बड़ी प्राप्त कर सकते हैं बाईं ओर असीम कई अंक 1226 00:59:44,720 --> 00:59:47,050 या एक दशमलव बिंदु के दाईं। 1227 00:59:47,050 --> 00:59:50,040 >> लेकिन कंप्यूटर केवल एक है स्मृति की सीमित मात्रा में, 1228 00:59:50,040 --> 00:59:53,510 ट्रांजिस्टर की एक निश्चित संख्या, एक प्रकाश बल्ब के अंदर की सीमित संख्या। 1229 00:59:53,510 --> 00:59:57,350 तो क्या होता है जब तुम अंतरिक्ष के बाहर चला? 1230 00:59:57,350 --> 00:59:59,620 दूसरे शब्दों में, यदि आप पीठ ने पिछले सप्ताह के लिए लगता है 1231 00:59:59,620 --> 01:00:03,160 जब हम संख्या के बारे में बात की थी खुद को, द्विआधारी में प्रतिनिधित्व किया जा रहा 1232 01:00:03,160 --> 01:00:05,480 लगता है कि हम मिल गया है इस 8 बिट मूल्य यहाँ। 1233 01:00:05,480 --> 01:00:08,290 >> और हम सात 1 और एक 0 है। 1234 01:00:08,290 --> 01:00:10,827 और लगता है कि हम चाहते हैं इस मान को 1 जोड़ने के लिए। 1235 01:00:10,827 --> 01:00:12,410 यह एक बहुत बड़ी संख्या में अब ठीक है। 1236 01:00:12,410 --> 01:00:16,610 >> यह 254 है, अगर मुझे याद है पिछले हफ्ते सही से गणित। 1237 01:00:16,610 --> 01:00:19,480 लेकिन क्या अगर मैं बदल कि एक 1 दाएँ 0 करने के लिए? 1238 01:00:19,480 --> 01:00:22,800 पूरी संख्या के बेशक, आठ 1 का हो जाता है। 1239 01:00:22,800 --> 01:00:24,050 इसलिए हम अभी भी अच्छा कर रहे हैं। 1240 01:00:24,050 --> 01:00:27,204 >> और कहा कि शायद का प्रतिनिधित्व करता है 255, हालांकि संदर्भ के आधार पर 1241 01:00:27,204 --> 01:00:29,120 यह वास्तव में प्रतिनिधित्व कर सकता है एक नकारात्मक संख्या। 1242 01:00:29,120 --> 01:00:31,240 लेकिन यह एक और समय पर और अधिक। 1243 01:00:31,240 --> 01:00:34,220 यह लगता है जैसे इस बारे में है के रूप में उच्च के रूप में मैं भरोसा कर सकते हैं। 1244 01:00:34,220 --> 01:00:35,290 >> अब, यह केवल 8 बिट है। 1245 01:00:35,290 --> 01:00:38,170 और मेरे मैक, निश्चित रूप से, जिस तरह से है स्मृति का अधिक से अधिक 8 बिट। 1246 01:00:38,170 --> 01:00:39,170 लेकिन यह परिमित है। 1247 01:00:39,170 --> 01:00:43,230 तो एक ही तर्क लागू होता है, तो भी हम स्क्रीन पर इन लोगों में से भी अधिक है। 1248 01:00:43,230 --> 01:00:47,020 >> लेकिन क्या होता है अगर आप कर रहे हैं इस संख्या, 255 के भंडारण, 1249 01:00:47,020 --> 01:00:49,290 और तुम 1 थोड़ा अधिक गिनती करने के लिए करना चाहते हैं? 1250 01:00:49,290 --> 01:00:51,600 आप 255 से 256 के लिए जाना चाहता हूँ। 1251 01:00:51,600 --> 01:00:55,800 समस्या है, ज़ाहिर है कि अगर आप शून्य पिछले हफ्ते की तरह पर गिनती शुरू, 1252 01:00:55,800 --> 01:00:59,670 आप के रूप में उच्च गिनती नहीं कर सकते 256 के रूप में, अकेले 257 चलो, 1253 01:00:59,670 --> 01:01:02,584 अकेले 258 चलो, क्योंकि मीटर क्या होता है जब आप एक 1 जोड़ सकते हैं? 1254 01:01:02,584 --> 01:01:05,000 आप पुराने ग्रेड स्कूल करते हैं दृष्टिकोण, आप एक 1 यहाँ डाल दिया, 1255 01:01:05,000 --> 01:01:08,150 और फिर 1 प्लस 1 2 है, लेकिन है कि वास्तव में एक शून्य, आप 1 ले, 1256 01:01:08,150 --> 01:01:09,695 1 ले, 1 ले। 1257 01:01:09,695 --> 01:01:12,620 इन सभी बातों के, इन 1, शून्य करने के लिए जाना। 1258 01:01:12,620 --> 01:01:17,820 और तुम ऊपर हवा, हाँ, किसी के रूप में बाएं हाथ की ओर एक 1, बाहर बताया। 1259 01:01:17,820 --> 01:01:22,540 लेकिन सब कुछ आप कर सकते हैं वास्तव में देख सकते हैं और स्मृति में फिट 1260 01:01:22,540 --> 01:01:27,960 सिर्फ आठ 0 की, जो कहना है कुछ बिंदु पर यदि आप एक कंप्यूटर, 1261 01:01:27,960 --> 01:01:32,490 उच्च पर्याप्त गिन की कोशिश की, आप कर रहे हैं आसपास लपेटो करने के लिए जा रहा है, यह प्रतीत होता है, 1262 01:01:32,490 --> 01:01:35,850 शून्य, या शायद यह भी नकारात्मक करने के लिए संख्या है, जो शून्य से भी कम हैं। 1263 01:01:35,850 --> 01:01:37,260 >> और हम एक तरह से यह देख सकते हैं। 1264 01:01:37,260 --> 01:01:39,900 मुझे आगे जाना है और लिखने दो एक असली जल्दी यहां कार्यक्रम। 1265 01:01:39,900 --> 01:01:43,690 मुझे आगे जाना है और लिखने दो एक कार्यक्रम अतिप्रवाह बुलाया। 1266 01:01:43,690 --> 01:01:49,980 Cs50.h शामिल शामिल मानक IO.h-- ओह, 1267 01:01:49,980 --> 01:01:51,730 मैं वास्तव में मेरे वाक्य रचना हाइलाइटिंग याद किया। 1268 01:01:51,730 --> 01:01:54,440 तो चलो overflow.c रूप में यह बचा करते हैं। 1269 01:01:54,440 --> 01:01:57,084 >> और अब int मुख्य void-- और लंबे समय से पहले, हम करेंगे 1270 01:01:57,084 --> 01:01:59,500 क्यों समझा करने के लिए वापस आने के लिए हम int मुख्य शून्य लिखते रहते हैं। 1271 01:01:59,500 --> 01:02:02,080 लेकिन अब के लिए, चलो बस यह, इसे लेने के लिए दी। 1272 01:02:02,080 --> 01:02:06,200 के अपने आप को एक int दे, और इसे 0 प्रारंभ। 1273 01:02:06,200 --> 01:02:11,716 >> के तत्कालीन int के लिए करते हैं मैं zero-- मिल वास्तव में, चलो एक अनंत लूप करते हैं 1274 01:02:11,716 --> 01:02:12,590 और देखते हैं क्या होता है। 1275 01:02:12,590 --> 01:02:22,440 जबकि सच है, तो चलो एन बाहर मुद्रित करते हैं प्रतिशत है मैं, बैकस्लैश एन, प्लग में एन। 1276 01:02:22,440 --> 01:02:27,200 लेकिन, अब, के एन हो जाता है एन प्लस 1 करते हैं। 1277 01:02:27,200 --> 01:02:29,660 >> तो दूसरे शब्दों में, प्रत्येक पर इस अनंत लूप के चलना, 1278 01:02:29,660 --> 01:02:32,550 के एन के मूल्य ले चलो, और यह करने के लिए 1 जोड़ने के लिए, और उसके बाद 1279 01:02:32,550 --> 01:02:34,350 बाईं तरफ n में वापस परिणाम की दुकान। 1280 01:02:34,350 --> 01:02:37,150 और, वास्तव में, हम वाक्य रचना को देखा है थोड़ा इस तरह, संक्षेप। 1281 01:02:37,150 --> 01:02:39,730 एक शांत चाल के बजाय है यह सब बाहर लिखने की, 1282 01:02:39,730 --> 01:02:42,770 आप वास्तव में कह सकते हैं एक एन प्लस 1 के बराबर होती। 1283 01:02:42,770 --> 01:02:47,480 >> या तुम सच में फैंसी होना चाहते हैं, आप कह सकते हैं n प्लस प्लस सेमी कॉलन। 1284 01:02:47,480 --> 01:02:50,130 लेकिन इन बाद के दो बस रहे हैं क्या हम वाक्यात्मक चीनी फोन था 1285 01:02:50,130 --> 01:02:50,790 पहली बात के लिए। 1286 01:02:50,790 --> 01:02:53,456 >> पहली बात, और अधिक स्पष्ट है पूरी तरह से ठीक है, पूरी तरह सही है। 1287 01:02:53,456 --> 01:02:55,470 लेकिन यह ज्यादा आम है, मैं कहूँगा। 1288 01:02:55,470 --> 01:02:57,210 तो हम बस एक पल के लिए यह करूँगा। 1289 01:02:57,210 --> 01:03:01,685 >> चलो अब बनाने अतिप्रवाह, जो लगता है बल्कि अशुभ, डॉट स्लेश अतिप्रवाह। 1290 01:03:01,685 --> 01:03:04,380 1291 01:03:04,380 --> 01:03:09,852 चलो देखते हैं, n बहुत बड़ी हो रही है। 1292 01:03:09,852 --> 01:03:11,310 लेकिन हम सोचते हैं, कितना बड़ा n प्राप्त कर सकते हैं? 1293 01:03:11,310 --> 01:03:12,870 >> n एक int है। 1294 01:03:12,870 --> 01:03:16,400 हम के आकार के साथ एक पल पहले देखा था उदाहरण के एक पूर्णांक के चार बाइट्स है। 1295 01:03:16,400 --> 01:03:22,070 हम पिछले हफ्ते से जानते हैं, चार बाइट्स है 32 बिट, क्योंकि 8 बार 4, कि 32 है। 1296 01:03:22,070 --> 01:03:23,460 यही कारण है कि 4 अरब होने जा रहा है। 1297 01:03:23,460 --> 01:03:25,802 >> और हम 800,000 तक कर रहे हैं। 1298 01:03:25,802 --> 01:03:28,510 यह हमेशा के लिए ले जा रहा है के रूप में मैं संभवतः कर सकते हैं के रूप में उच्च गिनती। 1299 01:03:28,510 --> 01:03:30,635 इसलिए मुझे लगता है, आगे जाने के लिए जा रहा हूँ के रूप में आप लंबे समय से पहले हो सकता है, 1300 01:03:30,635 --> 01:03:34,910 और नियंत्रण C-- स्पष्ट रूप से मारा, नियंत्रण सी, एक बहुत कुछ है, जहां नियंत्रण सी आम तौर पर 1301 01:03:34,910 --> 01:03:36,034 साधन रद्द कर दें। 1302 01:03:36,034 --> 01:03:38,200 दुर्भाग्य से, इसका कारण यह है बादल में चल रहा है, 1303 01:03:38,200 --> 01:03:41,190 कभी कभी बादल है इतना सामान बाहर थूकना, 1304 01:03:41,190 --> 01:03:44,180 इतना उत्पादन, यह जा रहा है अपने इनपुट के लिए थोड़ा समय लग 1305 01:03:44,180 --> 01:03:45,630 बादल को पाने के लिए। 1306 01:03:45,630 --> 01:03:49,240 तो फिर भी मैं मारा नियंत्रण सी कुछ सेकंड पहले, 1307 01:03:49,240 --> 01:03:53,110 यह निश्चित रूप से पक्ष है एक अनंत लूप का असर। 1308 01:03:53,110 --> 01:03:56,070 >> और इसलिए इस तरह के मामलों में, हम कर रहे हैं हो सकता है कि छोड़ने के लिए जा रहा है। 1309 01:03:56,070 --> 01:03:59,050 और हम एक और जोड़ने के लिए जा रहे हैं यहाँ पर टर्मिनल विंडो 1310 01:03:59,050 --> 01:04:03,186 साथ ही, जो निश्चित रूप से नहीं करता है के साथ ऐसे ही, क्योंकि यह अभी भी सोच रहा है। 1311 01:04:03,186 --> 01:04:05,310 और आगे बढ़ते हैं और हो जाने दो एक छोटे से अधिक उचित। 1312 01:04:05,310 --> 01:04:07,768 >> मुझे आगे जाना है और क्या करने जा रहा हूँ यह केवल finitely कई बार। 1313 01:04:07,768 --> 01:04:10,047 के पाश के लिए एक का उपयोग करते हैं, जो मैंने पहले के लिए alluded। 1314 01:04:10,047 --> 01:04:10,630 आओ इसे करें। 1315 01:04:10,630 --> 01:04:13,430 मुझे एक और चर int मैं हो जाता 0 दें। 1316 01:04:13,430 --> 01:04:17,430 मैं कम से कम, हम कहते हैं, 64 i ++ देना है। 1317 01:04:17,430 --> 01:04:24,010 और अब मुझे आगे और प्रिंट जाने दिया बाहर n प्रतिशत रहा है, एन अल्पविराम। 1318 01:04:24,010 --> 01:04:27,547 और फिर N-- यह अभी भी है हमेशा के लिए ले जा रहा है। 1319 01:04:27,547 --> 01:04:28,130 आओ इसे करें। 1320 01:04:28,130 --> 01:04:30,620 >> n हो जाता एन बार 2। 1321 01:04:30,620 --> 01:04:34,140 या फिर हम कल्पना हो सकता है और कई बार बराबरी 2 से करते हैं। 1322 01:04:34,140 --> 01:04:37,120 लेकिन हम सिर्फ n कहते हैं खुद के बराबर होती है, कई बार 2। 1323 01:04:37,120 --> 01:04:39,321 दूसरे शब्दों में, इस में कार्यक्रम के नए संस्करण, 1324 01:04:39,321 --> 01:04:41,820 मैं हमेशा के लिए इंतजार नहीं करना चाहते हैं 800,000 तरह 4 अरब से। 1325 01:04:41,820 --> 01:04:43,070 की बस के साथ इस पर मिलता है। 1326 01:04:43,070 --> 01:04:44,920 >> वास्तव में हर बार दोगुना n करते हैं। 1327 01:04:44,920 --> 01:04:47,660 कौन सा, याद है, दोहरीकरण है जाहिर है, होने के विपरीत है। 1328 01:04:47,660 --> 01:04:50,035 और पिछले सप्ताह, जबकि हमारे पास है कुछ फिर से, और फिर, 1329 01:04:50,035 --> 01:04:52,200 और फिर, सुपर फास्ट, दोहरीकरण निश्चित रूप से होगा 1330 01:04:52,200 --> 01:04:58,080 सबसे बड़ी संभव करने के लिए 1 से हमें मिलता है मूल्य है कि हम एक पूर्णांक के साथ करने के लिए भरोसा कर सकते हैं। 1331 01:04:58,080 --> 01:04:59,750 >> तो चलो वास्तव में यह करते हैं। 1332 01:04:59,750 --> 01:05:01,720 और हम लंबे समय से पहले वापस इस पर आ जाएगा। 1333 01:05:01,720 --> 01:05:04,180 लेकिन यह, फिर से, बस की तरह है खरोंच में दोहराने ब्लॉक। 1334 01:05:04,180 --> 01:05:05,600 और आप लंबे समय से पहले इसका उपयोग करेंगे। 1335 01:05:05,600 --> 01:05:10,170 >> यह सिर्फ शून्य से गिनती का मतलब करने के लिए, लेकिन नहीं के बराबर, 64 तक। 1336 01:05:10,170 --> 01:05:14,285 और इस में से प्रत्येक यात्रा पर पाश, बस मैं incrementing रहते हैं। 1337 01:05:14,285 --> 01:05:18,990 तो मैं ++ - और यह सामान्य निर्माण लाइन पर 7 सिर्फ एक सुपर आम तरीका है 1338 01:05:18,990 --> 01:05:22,290 की की कुछ लाइनों को दोहरा कोड, समय में से कुछ संख्या है। 1339 01:05:22,290 --> 01:05:23,362 जो कोड की तर्ज? 1340 01:05:23,362 --> 01:05:25,570 इन घुंघराले ब्रेसिज़, आप के रूप में अब से gleaned हो सकता है, 1341 01:05:25,570 --> 01:05:26,780 इसका मतलब है, निम्न कार्य करें। 1342 01:05:26,780 --> 01:05:29,510 >> ऐसा लगता है कि खरोंच में है, जब यह पीले ब्लॉक हैं 1343 01:05:29,510 --> 01:05:32,680 और अन्य रंग उस तरह का गले लगाने या अन्य ब्लॉकों गले। 1344 01:05:32,680 --> 01:05:34,750 यही कारण है कि उन घुंघराले है ब्रेसिज़ यहाँ क्या कर रहे हैं। 1345 01:05:34,750 --> 01:05:40,200 तो अगर मैं अपने वाक्य रचना मिला आप right-- सी साधन में गाजर का प्रतीक देख सकते हैं 1346 01:05:40,200 --> 01:05:42,706 कि कितनी बार मैं था इस समस्या को हल करने के लिए कोशिश कर रहा है। 1347 01:05:42,706 --> 01:05:45,330 तो चलो कि एक से छुटकारा मिलता है कुल मिलाकर, और उस खिड़की को बंद करें। 1348 01:05:45,330 --> 01:05:46,520 और हम एक नए के लिए इस्तेमाल करेंगे। 1349 01:05:46,520 --> 01:05:51,980 अतिप्रवाह, डॉट स्लेश बनाओ अतिप्रवाह, दर्ज करें, सब ठीक है, 1350 01:05:51,980 --> 01:05:53,090 यह पहली बार में बुरा लग रहा है। 1351 01:05:53,090 --> 01:05:56,200 लेकिन समय में वापस जाने के लिए स्क्रॉल, क्योंकि मैं इस 64 बार किया था। 1352 01:05:56,200 --> 01:05:58,700 >> और पहली बार नोटिस, एन 1 है। 1353 01:05:58,700 --> 01:06:03,110 दूसरी बार, 2 n है, तो 4, तो 8, तो 16। 1354 01:06:03,110 --> 01:06:09,450 और ऐसा लगता है कि जैसे ही मैं, मोटे तौर पर 1 अरब के लिए मिलता है 1355 01:06:09,450 --> 01:06:12,800 अगर मैं इसे फिर से दोगुना, कि मेरे 2 अरब देना चाहिए। 1356 01:06:12,800 --> 01:06:14,980 लेकिन यह पता चला है, यह cusp पर सही है। 1357 01:06:14,980 --> 01:06:18,930 >> और इसलिए यह वास्तव में overflows 1 अरब से एक int 1358 01:06:18,930 --> 01:06:23,514 मोटे तौर पर नकारात्मक 2 को अरब, क्योंकि एक पूर्णांक, 1359 01:06:23,514 --> 01:06:25,430 हम संख्या के विपरीत पिछले सप्ताह यह सोचते थे, 1360 01:06:25,430 --> 01:06:28,397 दोनों सकारात्मक और नकारात्मक हो सकता है वास्तविकता में और एक कंप्यूटर में। 1361 01:06:28,397 --> 01:06:30,730 और उन में से तो कम से कम एक बिट्स को प्रभावी ढंग से चोरी हो रही है। 1362 01:06:30,730 --> 01:06:34,190 इसलिए हम वास्तव में केवल 31 बिट्स है, या 2 अरब संभव मूल्यों। 1363 01:06:34,190 --> 01:06:38,220 >> लेकिन अब के लिए, takeaway काफी है बस, जो कुछ भी इन नंबरों हैं 1364 01:06:38,220 --> 01:06:42,280 और जो गणित है, कुछ बुरा अंत में होता है, 1365 01:06:42,280 --> 01:06:46,980 क्योंकि अंत में आप के लिए कोशिश कर रहे हैं बिट्स एक भी कई बार दूसरे स्थान पर रखना। 1366 01:06:46,980 --> 01:06:51,060 और अगर आप प्रभावी रूप से सभी से जाना 1 के लिए शायद सभी 0 है, या शायद 1367 01:06:51,060 --> 01:06:54,260 बस कुछ अन्य पैटर्न यह है कि जाहिर है, संदर्भ पर निर्भर करता है, 1368 01:06:54,260 --> 01:06:56,342 एक नकारात्मक संख्या के रूप में व्याख्या की जा सकती है। 1369 01:06:56,342 --> 01:06:59,300 और तो यह उच्चतम रहा प्रतीत होता है इस विशेष कार्यक्रम में गिनती कर सकते हैं 1370 01:06:59,300 --> 01:07:01,210 केवल मोटे तौर पर 1 अरब है। 1371 01:07:01,210 --> 01:07:02,760 लेकिन यहाँ एक आंशिक समाधान है। 1372 01:07:02,760 --> 01:07:03,480 आपको पता है कि? 1373 01:07:03,480 --> 01:07:07,600 >> मुझे एक से बदल दें एक लंबे लंबे समय के लिए int। 1374 01:07:07,600 --> 01:07:10,633 और मुझे आगे चलते हैं यहां और say-- मैं जा रहा हूँ 1375 01:07:10,633 --> 01:07:12,290 एक अहस्ताक्षरित लंबे समय के लिए इस बदलने के लिए। 1376 01:07:12,290 --> 01:07:16,860 या, चलो देखते हैं, मैं अपने आप को याद है कभी नहीं। 1377 01:07:16,860 --> 01:07:19,920 >> आगे बढ़ते हैं और अतिप्रवाह कर दूं। 1378 01:07:19,920 --> 01:07:21,860 नहीं, कि यह नहीं है, एलएलडी, धन्यवाद। 1379 01:07:21,860 --> 01:07:23,430 तो कभी कभी बजना सहायक हो सकता है। 1380 01:07:23,430 --> 01:07:27,550 मैं क्या प्रारूप याद नहीं आया विनिर्देशक एक लंबे लंबे समय के लिए किया गया था। 1381 01:07:27,550 --> 01:07:28,950 >> लेकिन, वास्तव में, बजना मुझे बताया था। 1382 01:07:28,950 --> 01:07:31,570 ग्रीन, अच्छा के कुछ प्रकार है अभी भी आप एक गलती की है इसका मतलब है। 1383 01:07:31,570 --> 01:07:33,190 यह अनुमान लगा रहा है कि मैं एलएलडी का मतलब है। 1384 01:07:33,190 --> 01:07:38,750 >> तो, मुझे लेने के लिए यह सलाह है चलो एक लंबे लंबे दशमलव संख्या, कि बचाने के लिए। 1385 01:07:38,750 --> 01:07:43,190 और मुझे यह फिर से दौड़ना डॉट करते हैं, अतिप्रवाह स्लेश दर्ज करें। 1386 01:07:43,190 --> 01:07:45,020 और अब क्या अच्छा है यह है। 1387 01:07:45,020 --> 01:07:49,140 >> अगर मैं समय में वापस स्क्रॉल, हम अभी भी शुरू एक ही place-- पर गिनती 1, 2, 4, 1388 01:07:49,140 --> 01:07:50,220 8, 16। 1389 01:07:50,220 --> 01:07:54,860 सूचना, हम मिल सब जिस तरह से ऊपर 1 अरब करने के लिए। 1390 01:07:54,860 --> 01:07:57,070 लेकिन तब हम सुरक्षित रूप से 2 अरब करने के लिए मिलता है। 1391 01:07:57,070 --> 01:08:01,300 >> तो फिर हम 4 अरब के लिए मिलता है, उसके बाद 8 अरब, 17 अरब। 1392 01:08:01,300 --> 01:08:03,340 और हम उच्च जाने, और ऊँचा और ऊँचा। 1393 01:08:03,340 --> 01:08:05,740 आखिरकार, यह भी टूट जाता है। 1394 01:08:05,740 --> 01:08:09,350 >> आखिरकार, एक लंबे लंबे समय के साथ, जो 64-बिट मूल्य नहीं है, 1395 01:08:09,350 --> 01:08:13,660 एक 32-बिट मूल्य, अगर आप गिनती बहुत अधिक है, आप के आसपास 0 लपेटो। 1396 01:08:13,660 --> 01:08:16,410 और इस मामले में, हम को भी हो एक नकारात्मक संख्या के साथ खत्म होता है। 1397 01:08:16,410 --> 01:08:17,550 >> तो यह एक समस्या है। 1398 01:08:17,550 --> 01:08:20,439 और यह पता चला है कि इस समस्या है कि सभी रहस्यमय नहीं है। 1399 01:08:20,439 --> 01:08:23,060 हालांकि मैं जानबूझ कर किया है इन गलतियों से यह प्रेरित किया, 1400 01:08:23,060 --> 01:08:26,149 यह निकलता है कि हम यह एक तरह सब से देखना अमेरिका, या हम में से कम से कम कुछ के आसपास है। 1401 01:08:26,149 --> 01:08:28,939 >> तो लेगो स्टार वार्स में, अगर यदि आप कभी भी खेल खेला है, 1402 01:08:28,939 --> 01:08:33,830 यह पता चला है आप के चारों ओर जा सकते हैं लेगो दुनिया में चीजों को तोड़ने, 1403 01:08:33,830 --> 01:08:36,640 और सिक्कों का संग्रह है, अनिवार्य रूप से। 1404 01:08:36,640 --> 01:08:39,200 और अगर तुम कभी खेला है इस खेल रास्ता बहुत अधिक समय, 1405 01:08:39,200 --> 01:08:42,630 इस अनाम व्यक्ति के रूप में यहाँ था, कुल संख्या 1406 01:08:42,630 --> 01:08:46,700 सिक्के है कि आप जमा कर सकते हैं की यह प्रतीत होता है, 4 अरब है। 1407 01:08:46,700 --> 01:08:48,240 >> अब, के साथ यह वास्तव में गोल है। 1408 01:08:48,240 --> 01:08:50,239 तो लेगो करने के लिए कोशिश कर रहा था बातों उपयोगकर्ता के अनुकूल रखने के लिए। 1409 01:08:50,239 --> 01:08:53,779 वे वास्तव में यह करने के लिए नहीं किया है 2 32 बिजली, पिछले सप्ताह प्रति। 1410 01:08:53,779 --> 01:08:55,310 लेकिन 4 अरब एक कारण है। 1411 01:08:55,310 --> 01:08:58,979 ऐसा लगता है, इस जानकारी के आधार पर, कि लेगो, और कंपनी है कि 1412 01:08:58,979 --> 01:09:02,624 यह वास्तविक सॉफ्टवेयर बनाया का फैसला कि सिक्कों की अधिकतम संख्या 1413 01:09:02,624 --> 01:09:04,540 उपयोगकर्ता जमा कर सकते हैं है, वास्तव में, 4 अरब, 1414 01:09:04,540 --> 01:09:12,069 वे अपने कोड में चुना क्योंकि एक लंबे लंबे समय तक नहीं का उपयोग करने, जाहिर है, 1415 01:09:12,069 --> 01:09:16,140 लेकिन सिर्फ एक पूर्णांक, एक अहस्ताक्षरित पूर्णांक, केवल एक सकारात्मक पूर्णांक, जिसका 1416 01:09:16,140 --> 01:09:18,089 अधिकतम मूल्य है कि मोटे तौर पर है। 1417 01:09:18,089 --> 01:09:19,380 वैसे, यहाँ एक और अजीब से एक है। 1418 01:09:19,380 --> 01:09:23,500 खेल सभ्यता में तो है, जो आप में से कुछ परिचित हो सकता है, के साथ 1419 01:09:23,500 --> 01:09:26,660 ऐसा नहीं है कि साल पहले वहाँ पता चला है इस खेल जिससे में एक बग था 1420 01:09:26,660 --> 01:09:28,750 यदि आप भूमिका निभाई खेल में गांधी की, 1421 01:09:28,750 --> 01:09:34,020 उसे करने के बजाय बहुत शांतिवादी जा रहा है, बजाय अविश्वसनीय था, अविश्वसनीय रूप से 1422 01:09:34,020 --> 01:09:36,399 आक्रामक, कुछ परिस्थितियों में। 1423 01:09:36,399 --> 01:09:40,529 विशेष रूप से, जिस तरह से कि सभ्यता काम करता है कि अगर आप, खिलाड़ी, 1424 01:09:40,529 --> 01:09:44,680 लोकतंत्र को अपनाने के अपने आक्रामकता स्कोर हो जाता है 1425 01:09:44,680 --> 01:09:48,130 दो, तो शून्य से decremented शून्य, और फिर शून्य से शून्य। 1426 01:09:48,130 --> 01:09:50,569 >> तो तुम से 2 घटाना अपने वास्तविक पुनरावृति। 1427 01:09:50,569 --> 01:09:56,650 दुर्भाग्य से, अपने पुनरावृति है अगर शुरू में 1, और आप 2 यह से घटाना 1428 01:09:56,650 --> 01:09:59,050 लोकतंत्र को गोद लेने के बाद गांधी के रूप में यहाँ हो सकता है 1429 01:09:59,050 --> 01:10:02,200 किया है, क्योंकि वह बहुत passive-- था आक्रामकता के पैमाने पर 1। 1430 01:10:02,200 --> 01:10:04,830 लेकिन अगर वह लोकतंत्र को गोद ले, तो वह 1 से नकारात्मक 1 को जाता है। 1431 01:10:04,830 --> 01:10:11,470 >> दुर्भाग्य से, वे थे अहस्ताक्षरित नंबर का उपयोग कर, 1432 01:10:11,470 --> 01:10:15,400 जिसका मतलब है कि वे भी नकारात्मक व्यवहार किया संख्या के रूप में यद्यपि वे सकारात्मक थे। 1433 01:10:15,400 --> 01:10:19,780 और यह पता चला है कि नकारात्मक 1 के सकारात्मक बराबर है, 1434 01:10:19,780 --> 01:10:23,480 ठेठ कंप्यूटर प्रोग्राम में, 255 है। 1435 01:10:23,480 --> 01:10:27,250 तो अगर गांधी को गोद ले लोकतंत्र, और इसलिए है 1436 01:10:27,250 --> 01:10:32,470 उसकी आक्रामकता स्कोर में कमी आई, यह वास्तव में से 255 के आसपास रोल 1437 01:10:32,470 --> 01:10:35,470 और उसे सबसे अधिक करता है खेल में आक्रामक चरित्र। 1438 01:10:35,470 --> 01:10:36,930 तो अगर आप इस पर गूगल कर सकते हैं। 1439 01:10:36,930 --> 01:10:39,380 और यह था, वास्तव में, एक आकस्मिक प्रोग्रामिंग बग, 1440 01:10:39,380 --> 01:10:43,010 लेकिन यह काफी प्रवेश किया है विद्या के बाद से कभी। 1441 01:10:43,010 --> 01:10:44,360 >> यही कारण है कि सब मज़ा और प्यारा है। 1442 01:10:44,360 --> 01:10:47,760 अधिक भयावह जब वास्तविक है असली दुनिया उपकरणों, और खेल नहीं, 1443 01:10:47,760 --> 01:10:48,820 ये एक ही कीड़े हैं। 1444 01:10:48,820 --> 01:10:54,500 वास्तव में, सिर्फ एक साल पहले एक लेख आया था बोइंग 787 ड्रीमलाइनर के बारे में पता। 1445 01:10:54,500 --> 01:10:56,850 >> और पहली बार में लेख नज़र में एक छोटे से रहस्यमय पढ़ता है। 1446 01:10:56,850 --> 01:11:01,480 लेकिन यह कहा कि यह एक सॉफ्टवेयर बोइंग में असुरक्षा 1447 01:11:01,480 --> 01:11:04,790 नए 787 ड्रीमलाइनर विमान की है संभावित पायलटों पैदा करने के लिए 1448 01:11:04,790 --> 01:11:07,220 के नियंत्रण खोने के लिए विमान, संभवतः 1449 01:11:07,220 --> 01:11:11,750 मध्य उड़ान में, एफएए अधिकारियों हाल ही में चेतावनी दी एयरलाइनों। 1450 01:11:11,750 --> 01:11:14,520 यह दृढ़ संकल्प था कि एक मॉडल 787 1451 01:11:14,520 --> 01:11:19,770 हवाई जहाज है कि संचालित किया गया है लगातार 248 दिन 1452 01:11:19,770 --> 01:11:24,880 सभी बारी वर्तमान खो सकते हैं, एसी, विद्युत जनरेटर के कारण बिजली 1453 01:11:24,880 --> 01:11:28,892 नियंत्रण इकाई, GCUs, एक साथ में जाने से सुरक्षित मोड में विफल। 1454 01:11:28,892 --> 01:11:29,850 यह मुझे खोने की तरह है। 1455 01:11:29,850 --> 01:11:35,390 लेकिन ज्ञापन में कहा गया है, ठीक है, अब मुझे लगता है कि मिल गया है, हालत एक सॉफ्टवेयर की वजह से हुई 1456 01:11:35,390 --> 01:11:38,590 करने के लिए आंतरिक काउंटर जनरेटर नियंत्रण 1457 01:11:38,590 --> 01:11:44,860 इकाइयों कि बाद होगा अतिप्रवाह निरंतर बिजली के 248 दिनों के लिए। 1458 01:11:44,860 --> 01:11:47,070 हम इस जारी कर रहे हैं नुकसान को रोकने के लिए नोटिस 1459 01:11:47,070 --> 01:11:49,300 के सभी एसी बिजली शक्ति है, जो परिणाम सकता है 1460 01:11:49,300 --> 01:11:50,980 हवाई जहाज के नियंत्रण के नुकसान में। 1461 01:11:50,980 --> 01:11:55,380 >> तो, सचमुच, वहाँ कुछ पूर्णांक है, या कुछ बराबर डेटा प्रकार, 1462 01:11:55,380 --> 01:11:57,960 सॉफ्टवेयर में इस्तेमाल किया जा रहा एक वास्तविक हवाई जहाज में 1463 01:11:57,960 --> 01:12:00,756 कि अगर आप अपने हवाई जहाज रखने के काफी लंबे समय से है, जो जाहिरा तौर पर 1464 01:12:00,756 --> 01:12:03,880 मामला हो सकता है, अगर आप सिर्फ चला रहे हैं उन्हें लगातार और कभी unplugging 1465 01:12:03,880 --> 01:12:06,810 अपने हवाई जहाज, ऐसा लगता है, या दे इसकी बैटरी मर जाते हैं, 1466 01:12:06,810 --> 01:12:09,840 अंततः गिनती होगी, और ऊपर, और ऊपर, और ऊपर, और ऊपर, और ऊपर। 1467 01:12:09,840 --> 01:12:12,150 >> और, स्वभाव से, एक स्मृति की निश्चित राशि 1468 01:12:12,150 --> 01:12:15,880 , अतिप्रवाह जाएगा वापस करने के लिए रोलिंग शून्य या कुछ नकारात्मक मूल्य, 1469 01:12:15,880 --> 01:12:19,920 जिनमें से एक पक्ष प्रभाव है डरावनी वास्तविकता 1470 01:12:19,920 --> 01:12:23,970 विमान की जरूरत हो सकती है कि रिबूट किया है, प्रभावी ढंग से, 1471 01:12:23,970 --> 01:12:27,290 या बुरा गिर सकता है, यह मक्खियों के रूप में। 1472 01:12:27,290 --> 01:12:29,230 इसलिए मुद्दों के इन प्रकार अभी भी हमारे साथ हैं, 1473 01:12:29,230 --> 01:12:33,130 even-- यह एक 2015 लेख था, सभी को और अधिक भयावह 1474 01:12:33,130 --> 01:12:36,100 आप जरूरी नहीं है जब , समझने की सराहना करते हैं, या आशा 1475 01:12:36,100 --> 01:12:38,640 त्रुटियों के उन प्रकार के। 1476 01:12:38,640 --> 01:12:42,030 >> तो यह वहाँ एक अन्य है पता चला है डेटा प्रतिनिधित्व के बारे में बुरी बात है। 1477 01:12:42,030 --> 01:12:47,080 यह पता चला है कि यहां तक ​​कि मंगाई हैं एक तरह से त्रुटिपूर्ण है, क्योंकि मंगाई, भी, 1478 01:12:47,080 --> 01:12:51,440 मैं प्रस्तावित कर रहे हैं 32 बिट, या शायद 64 आप एक डबल का उपयोग करें। 1479 01:12:51,440 --> 01:12:53,070 लेकिन यह है कि अभी भी परिमित है। 1480 01:12:53,070 --> 01:12:57,070 >> और पकड़ने है कि यदि आप कर सकते हैं संख्या की एक अनंत संख्या में डाल दिया 1481 01:12:57,070 --> 01:12:59,460 दशमलव बिंदु के बाद, वहाँ कोई रास्ता नहीं तुम है 1482 01:12:59,460 --> 01:13:02,690 सभी संभव प्रतिनिधित्व कर सकते हैं नंबर है कि हमें सिखाया गया 1483 01:13:02,690 --> 01:13:04,990 कक्षा में स्कूल दुनिया में मौजूद कर सकते हैं। 1484 01:13:04,990 --> 01:13:08,870 एक कंप्यूटर, अनिवार्य रूप से करने के लिए है उन लोगों की संख्या का एक सबसेट चयन 1485 01:13:08,870 --> 01:13:10,200 सही प्रतिनिधित्व करने के लिए। 1486 01:13:10,200 --> 01:13:12,450 >> अब, कंप्यूटर कर सकते हैं दौर हो सकता है एक छोटा सा है, 1487 01:13:12,450 --> 01:13:17,900 और मोटे तौर पर स्टोर करने के लिए आपको अनुमति दे सकते हैं किसी भी नंबर पर आप संभवतः चाहते हो सकता है। 1488 01:13:17,900 --> 01:13:20,940 लेकिन सिर्फ intuitively, तुम अगर बिट्स की एक निश्चित संख्या है, 1489 01:13:20,940 --> 01:13:24,560 आप केवल उन्हें दूसरे स्थान पर रखना कर सकते हैं तो कई मायनों में परिमित। 1490 01:13:24,560 --> 01:13:26,570 तो आप संभवतः नहीं कर सकते एक सीमित संख्या का उपयोग 1491 01:13:26,570 --> 01:13:29,880 बिट्स के क्रमचय की, शून्य और लोगों के पैटर्न, 1492 01:13:29,880 --> 01:13:32,940 एक अनंत प्रतिनिधित्व करने के लिए संख्या की संख्या, 1493 01:13:32,940 --> 01:13:37,370 जो कि कंप्यूटर हो सकता है पता चलता है बहुत अच्छी तरह से हमारे लिए झूठ बोल रही है कभी कभी हो। 1494 01:13:37,370 --> 01:13:38,770 >> वास्तव में, चलो यह करते हैं। 1495 01:13:38,770 --> 01:13:41,239 मेरे CS50 आईडीई में वापस जाओ। 1496 01:13:41,239 --> 01:13:43,030 मुझे आगे चलते हैं और एक छोटे प्रोग्राम बनाने 1497 01:13:43,030 --> 01:13:47,940 दिखाने के लिए कि imprecision कहा जाता है, कंप्यूटर, वास्तव में, imprecise। 1498 01:13:47,940 --> 01:13:51,910 >> और मुझे आगे जाना है और साथ शुरू करते हैं पहले से उस कोड के कुछ है, 1499 01:13:51,910 --> 01:13:53,830 और अब सिर्फ निम्नलिखित है। 1500 01:13:53,830 --> 01:14:03,640 मुझे आगे जाना है और printf, प्रतिशत करते हैं एफ, बैकस्लैश एन, 1 10 से विभाजित। 1501 01:14:03,640 --> 01:14:07,430 दूसरे शब्दों में, गहरे में डुबकी चलो 1/10 की तरह, 1 और 10 से विभाजित करने के लिए। 1502 01:14:07,430 --> 01:14:09,760 निश्चित रूप से, एक कंप्यूटर 1/10 का प्रतिनिधित्व कर सकते हैं। 1503 01:14:09,760 --> 01:14:13,620 >> तो चलो आगे जाना है और अस्पष्टता बनाते हैं। 1504 01:14:13,620 --> 01:14:14,390 चलो देखते हैं। 1505 01:14:14,390 --> 01:14:16,210 प्रारूप डबल प्रकार निर्दिष्ट करता है। 1506 01:14:16,210 --> 01:14:18,160 लेकिन तर्क प्रकार int है। 1507 01:14:18,160 --> 01:14:19,040 क्या चल रहा है? 1508 01:14:19,040 --> 01:14:21,970 >> ओह, दिलचस्प है, तो यह एक है पाठ से पहले से सीखा है। 1509 01:14:21,970 --> 01:14:26,050 मैं कह रहा हूँ, हे, कंप्यूटर शो मेरे प्रतिशत च के साथ एक नाव। 1510 01:14:26,050 --> 01:14:28,200 लेकिन मैं इसे 2 ints दे रहा हूँ। 1511 01:14:28,200 --> 01:14:31,120 तो यह पता चला है, मैं ठीक कर सकते हैं तरीके के एक जोड़े में यह। 1512 01:14:31,120 --> 01:14:38,430 >> मैं सिर्फ 1.0 में एक मोड़ सकता है, और 10 10.0 में है, जो होगा, वास्तव में, 1513 01:14:38,430 --> 01:14:42,390 परिवर्तित करने का असर floats-- में उन्हें अभी भी उम्मीद है कि 1514 01:14:42,390 --> 01:14:43,180 एक ही नंबर। 1515 01:14:43,180 --> 01:14:45,880 या यह बदल जाता है वहाँ बाहर कुछ हम फिर से लंबे समय से पहले देखेंगे। 1516 01:14:45,880 --> 01:14:47,170 आप संख्या डाली सकता है। 1517 01:14:47,170 --> 01:14:49,880 >> आप इस प्रारंभिक उपयोग कर सकते हैं अभिव्यक्ति, आप कह सकते हैं, 1518 01:14:49,880 --> 01:14:52,560 अरे, कंप्यूटर, ये लो 10 है, जो मैं जानता हूँ कि एक int है। 1519 01:14:52,560 --> 01:14:54,660 लेकिन यह इलाज, कृपया, जैसे कि यह एक नाव है। 1520 01:14:54,660 --> 01:14:56,680 लेकिन इस अनावश्यक रूप से जटिल लगता है। 1521 01:14:56,680 --> 01:14:59,040 >> आज हमारे प्रयोजनों के लिए, चलो बस सचमुच चलो 1522 01:14:59,040 --> 01:15:02,700 उन्हें बात मान कर चल एक दशमलव बिंदु, इस तरह के साथ। 1523 01:15:02,700 --> 01:15:07,060 मुझे आगे चलते हैं और फिर से दौड़ना, बनाना अस्पष्टता, अच्छा, डॉट स्लेश 1524 01:15:07,060 --> 01:15:08,870 अस्पष्टता, दर्ज करें। 1525 01:15:08,870 --> 01:15:10,990 ठीक है, हम अच्छी लग रहे हैं। 1526 01:15:10,990 --> 01:15:18,194 >> 1, 10 से विभाजित के अनुसार मेरी मैक यहाँ, वास्तव में, 0.100000 है। 1527 01:15:18,194 --> 01:15:21,360 अब, मैं ग्रेड स्कूल में पढ़ाया जाता था 0 की एक अनंत संख्या होना चाहिए। 1528 01:15:21,360 --> 01:15:23,151 तो चलो कम से कम कोशिश करते हैं उन में से कुछ देखने के लिए। 1529 01:15:23,151 --> 01:15:26,770 यह पता चला है कि printf एक छोटी सी है शौक़ीन तुलना में अभी भी हम उपयोग किया गया है। 1530 01:15:26,770 --> 01:15:30,890 यह पता चला है आप को निर्दिष्ट करने की जरूरत नहीं है सिर्फ प्रतिशत एफ, या सिर्फ प्रतिशत रहा। 1531 01:15:30,890 --> 01:15:33,830 आप वास्तव में निर्दिष्ट कर सकते हैं कुछ नियंत्रण यहाँ विकल्प। 1532 01:15:33,830 --> 01:15:36,470 >> विशेष रूप से, मैं जा रहा हूँ कहने के लिए, हे, printf, 1533 01:15:36,470 --> 01:15:39,660 वास्तव में मुझे 10 दशमलव अंक दिखा। 1534 01:15:39,660 --> 01:15:40,820 तो यह थोड़ा अजीब लग रहा है। 1535 01:15:40,820 --> 01:15:42,845 लेकिन आप कहते प्रतिशत, डॉट, कितनी संख्या 1536 01:15:42,845 --> 01:15:44,970 आप के बाद देखना चाहते हैं दशमलव बिंदु है, और फिर च 1537 01:15:44,970 --> 01:15:48,340 फ्लैट के लिए, सिर्फ इसलिए कि क्या प्रलेखन कहते हैं। 1538 01:15:48,340 --> 01:15:50,080 मुझे आगे जाना है और उस को बचाने करते हैं। 1539 01:15:50,080 --> 01:15:52,460 >> और भी नोटिस, मैं जा रहा हूँ बातों पुन: लिखने के थक गया। 1540 01:15:52,460 --> 01:15:55,900 तो मैं बस स्थापना कर रहा हूँ और यहाँ नीचे मेरी चाबियाँ पर तीर। 1541 01:15:55,900 --> 01:15:58,710 और मैं मार रखने के लिए, आप आदेशों के सभी देख सकते हैं 1542 01:15:58,710 --> 01:16:01,090 कि मैं कर दिया, या गलत तरीके से बनाया है। 1543 01:16:01,090 --> 01:16:04,630 >> और अब मैं आगे जाने के लिए जा रहा हूँ और वास्तव में उस का उपयोग नहीं है, जाहिर है। 1544 01:16:04,630 --> 01:16:11,416 बनाओ अस्पष्टता, डॉट इसलिए imprecision-- स्लेश 1545 01:16:11,416 --> 01:16:13,290 क्या मैं में पढ़ाया जाता था ग्रेड स्कूल की जाँच करता है। 1546 01:16:13,290 --> 01:16:19,010 यहां तक ​​कि अगर मैं यह 10 दशमलव के लिए प्रिंट यह रखता है, वास्तव में, 0.10000 है। 1547 01:16:19,010 --> 01:16:19,840 लेकिन तुम जानते हो क्या? 1548 01:16:19,840 --> 01:16:21,150 >> के एक छोटे से लालची मिलता है। 1549 01:16:21,150 --> 01:16:23,990 हम कहते हैं कि, की तरह करते हैं, मुझे 55 दिखाने दशमलव के बाद अंक। 1550 01:16:23,990 --> 01:16:26,160 चलो वास्तव में यह लो एक स्पिन के लिए बाहर कार्यक्रम। 1551 01:16:26,160 --> 01:16:31,170 मुझे बनाओ साथ यह रीमेक चलो अस्पष्टता, डॉट स्लेश, अस्पष्टता। 1552 01:16:31,170 --> 01:16:32,390 >> और अब हम चले। 1553 01:16:32,390 --> 01:16:34,420 अपने बचपन के एक झूठ था। 1554 01:16:34,420 --> 01:16:48,410 जाहिर है, 1 10 से विभाजित वास्तव में है 0.100000000000000005551115123-- 1555 01:16:48,410 --> 01:16:49,740 >> क्या हो रहा है? 1556 01:16:49,740 --> 01:16:53,360 खैर, यह पता चला है, अगर आप की तरह काफी दूर तक अंतर्निहित में देखो बाहर 1557 01:16:53,360 --> 01:16:55,950 इस का प्रतिनिधित्व नंबर, यह वास्तव में 1558 01:16:55,950 --> 01:17:00,400 नहीं बिल्कुल 1/10, या 0.1 और है शून्य की एक अनंत संख्या। 1559 01:17:00,400 --> 01:17:01,630 अब, ऐसा क्यों है? 1560 01:17:01,630 --> 01:17:06,250 >> ठीक है, हालांकि यह एक सरल है हमें मनुष्य के लिए संख्या, 1, 10 से विभाजित 1561 01:17:06,250 --> 01:17:10,910 यह अभी भी असीम कई में से एक है हम संख्या को लगता है कि हो सकता है कि। 1562 01:17:10,910 --> 01:17:14,490 लेकिन एक कंप्यूटर ही प्रतिनिधित्व कर सकते हैं कई finitely इतनी संख्या। 1563 01:17:14,490 --> 01:17:18,710 और हां, प्रभावी ढंग से, क्या कंप्यूटर दिखा रहा है हमें अपने सबसे करीब है 1564 01:17:18,710 --> 01:17:22,940 संख्या के लिए सन्निकटन हमें विश्वास है कि 1/10 है चाहता हूँ, 1565 01:17:22,940 --> 01:17:27,760 या वास्तव में 0.10000 विज्ञापन अनन्त। 1566 01:17:27,760 --> 01:17:30,425 >> बल्कि, हालांकि, यह है के रूप में के रूप में इसे प्राप्त कर सकते बंद। 1567 01:17:30,425 --> 01:17:32,300 और, वास्तव में, अगर तुम देखो हुड के नीचे, 1568 01:17:32,300 --> 01:17:37,050 हम यहाँ देख कर रहे हैं के रूप में दशमलव के बाद 55 अंक, 1569 01:17:37,050 --> 01:17:39,990 हम वास्तव में उस वास्तविकता को देखते हैं। 1570 01:17:39,990 --> 01:17:42,610 अब एक अलग रूप में, यदि आप 've कभी देखा movie-- 1571 01:17:42,610 --> 01:17:45,780 आप में से अधिकांश शायद haven't-- लेकिन सुपरमैन 3 कुछ साल पहले, 1572 01:17:45,780 --> 01:17:49,500 रिचर्ड प्रायर अनिवार्य रूप से इस leveraged उनकी कंपनी में वास्तविकता एक बहुत चोरी करने के लिए 1573 01:17:49,500 --> 01:17:53,500 भिन्न और पैसे के भागों की, क्योंकि company-- मुझे याद है, 1574 01:17:53,500 --> 01:17:57,210 यह while-- अनिवार्य था एक हो गया है कुछ दूर फेंकने के लायक नहीं था कि 1575 01:17:57,210 --> 01:17:58,790 सेंट की धारणा में। 1576 01:17:58,790 --> 01:18:01,480 >> लेकिन आप को जोड़ अगर इन सभी छोटे, छोटे, छोटे फिर से नंबर, 1577 01:18:01,480 --> 01:18:04,960 और फिर, और फिर, आप के रूप में कर सकते हैं, उसका मामला है, पैसे की एक अच्छी रकम बना। 1578 01:18:04,960 --> 01:18:08,010 >> यही कारण है कि एक ही विचार से बंद फट गया था एक और अधिक हाल है, लेकिन अभी भी अब पुराने 1579 01:18:08,010 --> 01:18:10,500 फिल्म, कार्यालय अंतरिक्ष कहा जाता है, जहां कि फिल्म में एक आदमी, 1580 01:18:10,500 --> 01:18:13,501 , एक ही बात थी कि यह खराब कर दिया अप पूरी तरह से, बहुत ज्यादा तरीके के साथ समाप्त हो गया 1581 01:18:13,501 --> 01:18:14,666 उनके बैंक खाते में पैसा है। 1582 01:18:14,666 --> 01:18:15,800 यह सब बहुत शक था। 1583 01:18:15,800 --> 01:18:19,290 लेकिन दिन के अंत में, imprecision हमारे चारों तरफ है। 1584 01:18:19,290 --> 01:18:22,240 >> और वह भी है, हो सकता है मामले डरावनी। 1585 01:18:22,240 --> 01:18:25,590 यह पता चला है कि सुपरमैन 3 और कार्यालय अंतरिक्ष के अलावा, वहाँ 1586 01:18:25,590 --> 01:18:28,460 कुछ बहुत ही वास्तविक हो सकता है दुनिया असर 1587 01:18:28,460 --> 01:18:32,290 imprecise की वास्तविकताओं का डेटा का प्रतिनिधित्व 1588 01:18:32,290 --> 01:18:34,770 कि हम भी मनुष्य के लिए इस दिन के लिए जरूरी नहीं है 1589 01:18:34,770 --> 01:18:38,230 साथ ही साथ हम चाहिए समझते हैं, या के रूप में अक्सर के रूप में हम चाहिए याद है। 1590 01:18:38,230 --> 01:18:42,950 और, वास्तव में, निम्न क्लिप है कुछ बहुत ही वास्तविक दुनिया पर एक नज़र से 1591 01:18:42,950 --> 01:18:47,730 क्या होगा अगर तुम ऐसा होता है के असर अस्पष्टता की सराहना करते नहीं है कि 1592 01:18:47,730 --> 01:18:50,065 संख्या प्रतिनिधित्व में हो सकता है। 1593 01:18:50,065 --> 01:18:51,300 >> [वीडियो प्लेबैक] 1594 01:18:51,300 --> 01:18:55,620 >> -Computers है, हम सभी को स्वीकार करने आया हूँ अक्सर निराशा समस्या है कि 1595 01:18:55,620 --> 01:19:00,310 them-- कीड़े के साथ जाना है, वायरस, और सॉफ्टवेयर glitches, 1596 01:19:00,310 --> 01:19:03,130 छोटे मूल्य का भुगतान करने के लिए सुविधा के लिए। 1597 01:19:03,130 --> 01:19:07,800 लेकिन उच्च तकनीक और उच्च गति में सैन्य और अंतरिक्ष कार्यक्रम अनुप्रयोगों, 1598 01:19:07,800 --> 01:19:12,800 छोटी से छोटी समस्या सकते हैं आपदा में बढ़ाया जा सकता है। 1599 01:19:12,800 --> 01:19:18,900 >> जून 4 वें, 1996 को, वैज्ञानिकों तैयार एक मानव रहित एरियन -5 रॉकेट लांच करने के लिए। 1600 01:19:18,900 --> 01:19:21,220 यह वैज्ञानिक ले जा रहा था उपग्रहों के लिए बनाया गया 1601 01:19:21,220 --> 01:19:24,600 ठीक कैसे स्थापित करने के लिए पृथ्वी के चुंबकीय क्षेत्र का आदान प्रदान 1602 01:19:24,600 --> 01:19:27,410 सौर हवाओं के साथ। 1603 01:19:27,410 --> 01:19:30,800 रॉकेट के लिए बनाया गया था यूरोपीय अंतरिक्ष एजेंसी, 1604 01:19:30,800 --> 01:19:34,370 और अपनी सुविधा से बंद उठाया फ्रेंच गयाना के तट पर। 1605 01:19:34,370 --> 01:19:37,540 >> में 37 सेकंड के बारे में कम से उड़ान, वे पहले 1606 01:19:37,540 --> 01:19:39,270 गौर कुछ गलत हो रहा था। 1607 01:19:39,270 --> 01:19:42,250 नलिका में swiveling थे एक तरह से वे वास्तव में नहीं करना चाहिए। 1608 01:19:42,250 --> 01:19:46,580 उड़ान में 40 सेकंड के आसपास, स्पष्ट रूप से, वाहन मुसीबत में था। 1609 01:19:46,580 --> 01:19:48,850 >> और है कि जब वे बनाया है एक निर्णय के लिए इसे नष्ट करने के लिए। 1610 01:19:48,850 --> 01:19:52,780 सीमा सुरक्षा अधिकारी के साथ जबरदस्त हिम्मत, बटन दबाया, 1611 01:19:52,780 --> 01:19:58,150 रॉकेट विस्फोट से उड़ा दिया इससे पहले कि यह हो सकता है जनता की सुरक्षा के लिए एक खतरा बन गया है। 1612 01:19:58,150 --> 01:20:01,060 >> -यह युवती था एरियन -5 के लिए यात्रा। 1613 01:20:01,060 --> 01:20:03,960 और उसके विनाश ले लिया एक दोष की वजह से जगह 1614 01:20:03,960 --> 01:20:05,822 रॉकेट के सॉफ्टवेयर में एम्बेडेड। 1615 01:20:05,822 --> 01:20:08,280 एरियन पर -इस समस्या थी वहाँ एक नंबर था कि कि 1616 01:20:08,280 --> 01:20:10,600 व्यक्त करने के लिए 64 बिट की आवश्यकता है। 1617 01:20:10,600 --> 01:20:13,590 और वे परिवर्तित करना चाहता था एक 16-बिट संख्या के लिए यह। 1618 01:20:13,590 --> 01:20:15,610 उन्होंने मान लिया है कि नंबर कभी नहीं जा रहा था 1619 01:20:15,610 --> 01:20:20,980 , बहुत बड़ा होना करने के लिए उन में से अधिकांश कि एक 64-बिट संख्या में अंक शून्य थे। 1620 01:20:20,980 --> 01:20:22,440 वे गलत थे। 1621 01:20:22,440 --> 01:20:25,060 >> एक के -इस असमर्थता सॉफ्टवेयर प्रोग्राम को स्वीकार करने के लिए 1622 01:20:25,060 --> 01:20:29,510 संख्या की तरह द्वारा उत्पन्न एक और विफलता की जड़ में था। 1623 01:20:29,510 --> 01:20:34,350 सॉफ्टवेयर विकास बन गया था एक नई तकनीक की बहुत महंगा हिस्सा है। 1624 01:20:34,350 --> 01:20:38,140 एरियन रॉकेट बहुत किया गया है सफल, तो सॉफ्टवेयर के ज्यादा 1625 01:20:38,140 --> 01:20:41,550 बनाया यह भी था के लिए एरियन -5 में इस्तेमाल किया। 1626 01:20:41,550 --> 01:20:47,940 >> -इस बुनियादी समस्या यह है कि एरियन था 5, तेजी से गया था तेजी से बढ़ी है। 1627 01:20:47,940 --> 01:20:51,450 और सॉफ्टवेयर नहीं था इसके लिए जिम्मेदार है। 1628 01:20:51,450 --> 01:20:55,060 >> रॉकेट के -इस विनाश भारी वित्तीय आपदा थी, 1629 01:20:55,060 --> 01:20:58,790 सब एक मिनट सॉफ्टवेयर त्रुटि के कारण। 1630 01:20:58,790 --> 01:21:01,210 लेकिन यह पहली बार नहीं था समय डेटा रूपांतरण समस्या 1631 01:21:01,210 --> 01:21:04,820 आधुनिक रॉकेट प्रौद्योगिकी ग्रस्त था। 1632 01:21:04,820 --> 01:21:08,050 >> अलावे 1991, शुरुआत के साथ पहले खाड़ी युद्ध के, 1633 01:21:08,050 --> 01:21:10,570 पैट्रियट मिसाइल इसी तरह की एक तरह का अनुभव 1634 01:21:10,570 --> 01:21:12,800 नंबर रूपांतरण समस्या की। 1635 01:21:12,800 --> 01:21:16,090 और एक परिणाम के रूप में, 28 लोग, 28 अमेरिकी सैनिकों, 1636 01:21:16,090 --> 01:21:19,080 मारे गए थे, और के बारे में 100 अन्य घायल हो गए, 1637 01:21:19,080 --> 01:21:22,780 जब देशभक्त है, जो चाहिए था भेजे गए scuds के खिलाफ की रक्षा के लिए, 1638 01:21:22,780 --> 01:21:25,830 एक मिसाइल आग करने में विफल रहा। 1639 01:21:25,830 --> 01:21:31,670 >> -जब इराक कुवैत, और अमेरिका पर हमला किया जल्दी 1991 में डेजर्ट स्टॉर्म शुरू की है, 1640 01:21:31,670 --> 01:21:35,780 पैट्रियट मिसाइल बैटरी तैनात किया गया था सऊदी अरब और इसराइल की रक्षा के लिए 1641 01:21:35,780 --> 01:21:39,230 इराकी स्कड मिसाइल हमलों से। 1642 01:21:39,230 --> 01:21:43,810 पैट्रियट एक अमेरिकी मध्यम दूरी की है हवा प्रणाली के लिए सतह, विनिर्मित 1643 01:21:43,810 --> 01:21:45,770 रेथियॉन कंपनी द्वारा। 1644 01:21:45,770 --> 01:21:52,340 >> पैट्रियट इंटरसेप्टर के -इस आकार खुद के बारे में मोटे तौर पर 20 फुट लंबा है। 1645 01:21:52,340 --> 01:21:55,230 और यह करीब 2,000 पाउंड वजन। 1646 01:21:55,230 --> 01:21:59,320 और यह, के बारे में एक बम से किया जाता है मुझे लगता है कि यह मोटे तौर पर 150 पाउंड है। 1647 01:21:59,320 --> 01:22:03,930 और वारहेड ही है एक उच्च विस्फोटक, जो 1648 01:22:03,930 --> 01:22:07,330 यह चारों ओर टुकड़े है। 1649 01:22:07,330 --> 01:22:11,680 बम की आवरण है buckshot की तरह कार्य करने के लिए बनाया गया है। 1650 01:22:11,680 --> 01:22:14,110 >> -इस मिसाइलों किया जाता है चार कंटेनर प्रति, 1651 01:22:14,110 --> 01:22:17,130 और एक अर्द्ध ट्रेलर से ले जाया जाता है। 1652 01:22:17,130 --> 01:22:24,930 >> -इस पैट्रियट मिसाइल रोधी प्रणाली कम से कम 20 साल के लिए अब वापस चला जाता है। 1653 01:22:24,930 --> 01:22:28,420 यह मूल रूप से डिजाइन किया गया था एक वायु रक्षा मिसाइल के रूप में 1654 01:22:28,420 --> 01:22:30,720 नीचे दुश्मन के हवाई जहाज शूट करने के लिए। 1655 01:22:30,720 --> 01:22:34,500 पहले खाड़ी युद्ध में, जब कि युद्ध के साथ आया था, 1656 01:22:34,500 --> 01:22:39,745 सेना के लिए इसका इस्तेमाल करना चाहता था नीचे scuds, न हवाई जहाज को गोली मार। 1657 01:22:39,745 --> 01:22:43,620 >> इराकी वायु सेना था एक समस्या का इतना नहीं है। 1658 01:22:43,620 --> 01:22:46,670 लेकिन सेना scuds के बारे में चिंतित था। 1659 01:22:46,670 --> 01:22:50,170 और इसलिए वे करने की कोशिश की पैट्रियट उन्नयन। 1660 01:22:50,170 --> 01:22:52,800 >> एक दुश्मन -Intercepting मिसाइल मच 5 पर यात्रा 1661 01:22:52,800 --> 01:22:55,830 काफी चुनौतीपूर्ण होने जा रहा था। 1662 01:22:55,830 --> 01:22:58,490 लेकिन जब पैट्रियट सेवा में ले जाया गया था, 1663 01:22:58,490 --> 01:23:02,860 सेना के एक के बारे में पता नहीं था इराकी संशोधन कर दिया है कि 1664 01:23:02,860 --> 01:23:05,930 उनकी scuds लगभग हिट करने के लिए असंभव है। 1665 01:23:05,930 --> 01:23:10,740 >> -क्या हुआ scuds है कि में आ रहे थे अस्थिर थे। 1666 01:23:10,740 --> 01:23:11,692 वे wobbling थे। 1667 01:23:11,692 --> 01:23:14,910 इस का कारण यह था इराकियों के क्रम में, 1668 01:23:14,910 --> 01:23:18,280 600 किलोमीटर की दूरी पर पाने के लिए एक 300 किलोमीटर से बाहर 1669 01:23:18,280 --> 01:23:21,700 दूरी की मिसाइल, वजन ले लिया सामने बम से बाहर। 1670 01:23:21,700 --> 01:23:23,390 वे बम हल्का बना दिया। 1671 01:23:23,390 --> 01:23:27,330 >> तो अब पैट्रियट है स्कड पर आने के लिए कोशिश कर रहा। 1672 01:23:27,330 --> 01:23:30,230 और ज्यादातर समय, समय की भारी बहुमत, 1673 01:23:30,230 --> 01:23:32,940 यह सिर्फ स्कड से उड़ जाएगा। 1674 01:23:32,940 --> 01:23:37,260 एक बार जब पैट्रियट सिस्टम ऑपरेटरों एहसास हुआ पैट्रियट अपने लक्ष्य को याद किया, 1675 01:23:37,260 --> 01:23:41,690 वे देशभक्त के बम विस्फोट अगर यह संभव हताहत से बचने के लिए 1676 01:23:41,690 --> 01:23:44,570 भूमि पर गिर करने के लिए अनुमति दी गई थी। 1677 01:23:44,570 --> 01:23:48,790 >> क्या सबसे ज्यादा लोगों ने देखा -यही था, आकाश में उन बड़े आग के गोले, 1678 01:23:48,790 --> 01:23:54,550 और के रूप में गलत समझा स्कड हथियार के अवरोध। 1679 01:23:54,550 --> 01:23:56,630 >> रात में -Although आकाश, देशभक्त दिखाई दिया 1680 01:23:56,630 --> 01:24:00,370 सफलतापूर्वक होना करने के लिए स्कड को नष्ट करने, Dhahran में, 1681 01:24:00,370 --> 01:24:03,360 वहाँ कोई गलती नहीं हो सकता है अपने प्रदर्शन के बारे में। 1682 01:24:03,360 --> 01:24:07,970 वहाँ, पैट्रियट के रडार प्रणाली एक आने वाली स्कड का ट्रैक खो दिया है, 1683 01:24:07,970 --> 01:24:10,721 और कारण कभी नहीं शुभारंभ एक सॉफ्टवेयर दोष करने के लिए। 1684 01:24:10,721 --> 01:24:14,090 1685 01:24:14,090 --> 01:24:18,940 यह इजरायल जो पहली बार पता चला था कि अब सिस्टम पर था, 1686 01:24:18,940 --> 01:24:22,690 अधिक से अधिक समय विसंगति बन गया है, एक घड़ी एम्बेडेड के कारण 1687 01:24:22,690 --> 01:24:24,810 सिस्टम के कंप्यूटर में। 1688 01:24:24,810 --> 01:24:28,210 >> -About दो सप्ताह पहले Dhahran में त्रासदी, 1689 01:24:28,210 --> 01:24:30,770 इजरायल की सूचना दी रक्षा विभाग 1690 01:24:30,770 --> 01:24:32,590 कि इस प्रणाली के समय खो गया था। 1691 01:24:32,590 --> 01:24:35,360 लगभग आठ घंटे या चलाने के बाद, वे प्रणाली है कि गौर 1692 01:24:35,360 --> 01:24:37,720 काफ़ी कम सटीक होता जा रहा था। 1693 01:24:37,720 --> 01:24:41,900 रक्षा विभाग द्वारा प्रतिक्रिया पैट्रियट बैटरी के सभी कह रही 1694 01:24:41,900 --> 01:24:44,950 सिस्टम नहीं छोड़ करने के लिए एक लंबे समय के लिए। 1695 01:24:44,950 --> 01:24:49,160 उन्होंने कहा कि क्या एक लंबे समय कभी नहीं was-- आठ घंटे, 10 घंटे, 1000 घंटे। 1696 01:24:49,160 --> 01:24:51,360 कोई नहीं जानता। 1697 01:24:51,360 --> 01:24:53,380 >> -इस पैट्रियट बैटरी बैरकों में तैनात 1698 01:24:53,380 --> 01:24:58,350 Dhahran और उसके त्रुटिपूर्ण आंतरिक पर घड़ी 100 घंटे से अधिक पर किया गया था 1699 01:24:58,350 --> 01:25:01,670 फरवरी 25 की रात को। 1700 01:25:01,670 --> 01:25:05,917 >> -यह एक सटीकता के लिए समय पर नज़र रखी की एक दूसरे के एक दसवें के बारे में। 1701 01:25:05,917 --> 01:25:08,000 अब, एक दूसरे का एक दसवें एक दिलचस्प संख्या है, 1702 01:25:08,000 --> 01:25:11,920 क्योंकि यह व्यक्त नहीं किया जा सकता द्विआधारी में वास्तव में है, जो 1703 01:25:11,920 --> 01:25:16,820 यह वास्तव में व्यक्त नहीं किया जा सकता है इसका मतलब किसी भी आधुनिक डिजिटल कंप्यूटर में। 1704 01:25:16,820 --> 01:25:18,540 यह विश्वास करना मुश्किल है। 1705 01:25:18,540 --> 01:25:21,210 >> लेकिन एक उदाहरण के रूप में इस का उपयोग करें। 1706 01:25:21,210 --> 01:25:23,540 की संख्या एक तिहाई लेते हैं। 1707 01:25:23,540 --> 01:25:27,350 एक तिहाई नहीं किया जा सकता वास्तव में दशमलव में व्यक्त किया। 1708 01:25:27,350 --> 01:25:32,080 एक तिहाई 0.333 है अनंत के लिए चल रहा है। 1709 01:25:32,080 --> 01:25:36,480 >> साथ ऐसा करने का कोई रास्ता नहीं है दशमलव में पूर्ण शुद्धता। 1710 01:25:36,480 --> 01:25:39,560 यह ठीक है कि समस्या की तरह है कि पैट्रियट में हुआ। 1711 01:25:39,560 --> 01:25:44,100 अब सिस्टम भाग गया, बदतर समय त्रुटि हो गया। 1712 01:25:44,100 --> 01:25:48,890 >> ऑपरेशन के 100 घंटे -After, समय में त्रुटि के बारे में केवल एक तिहाई था 1713 01:25:48,890 --> 01:25:50,600 एक दूसरे की। 1714 01:25:50,600 --> 01:25:54,210 लेकिन एक को निशाना बनाने के मामले में मिसाइल मच 5 पर यात्रा, 1715 01:25:54,210 --> 01:25:58,710 यह एक ट्रैकिंग में हुई 600 मीटर से अधिक की त्रुटि। 1716 01:25:58,710 --> 01:26:02,120 यह एक गंभीर त्रुटि होगा क्या पर सैनिकों के लिए 1717 01:26:02,120 --> 01:26:08,940 हुआ एक स्कड लांच किया गया है पूर्व चेतावनी उपग्रहों द्वारा पता लगाया 1718 01:26:08,940 --> 01:26:12,860 और वे जानते थे कि स्कड था उनकी सामान्य दिशा में आ रहे हैं। 1719 01:26:12,860 --> 01:26:15,320 उन्हें पता नहीं था जहां यह आ रहा था। 1720 01:26:15,320 --> 01:26:18,250 >> -यह अब रडार पर निर्भर था पैट्रियट प्रणाली के घटक 1721 01:26:18,250 --> 01:26:23,190 बचाव Dhahran लगाने और रखने के लिए आने वाली दुश्मन मिसाइल का ट्रैक। 1722 01:26:23,190 --> 01:26:24,609 >> -इस रडार बहुत होशियार था। 1723 01:26:24,609 --> 01:26:26,650 यह वास्तव में ट्रैक होगा स्कड की स्थिति, 1724 01:26:26,650 --> 01:26:30,350 और उसके बाद की भविष्यवाणी जहां यह शायद अगली बार जब रडार भेजा जाएगा 1725 01:26:30,350 --> 01:26:31,420 एक बाहर नाड़ी। 1726 01:26:31,420 --> 01:26:33,110 यही कारण है कि एक सीमा के गेट बुलाया गया था। 1727 01:26:33,110 --> 01:26:37,660 >> -फिर, एक बार पैट्रियट फैसला करता पर्याप्त समय है 1728 01:26:37,660 --> 01:26:42,450 वापस जाने के लिए और अगले जाँच करने के लिए पारित इस का पता चला वस्तु के लिए स्थान, 1729 01:26:42,450 --> 01:26:43,600 इसे वापस चला जाता है। 1730 01:26:43,600 --> 01:26:48,650 तो जब यह गलत करने के लिए वापस चला गया जगह है, यह तो कोई वस्तु को देखता है। 1731 01:26:48,650 --> 01:26:52,160 और यह फैसला करता था कि वहाँ कोई वस्तु है, यह एक गलत पहचान थी, 1732 01:26:52,160 --> 01:26:53,930 और ट्रैक चला जाता है। 1733 01:26:53,930 --> 01:26:57,030 >> -इस भेजे स्कड गायब हो गया रडार स्क्रीन से। 1734 01:26:57,030 --> 01:27:00,260 और सेकंड बाद में, यह बैरकों में पटक दिया। 1735 01:27:00,260 --> 01:27:06,150 स्कड 28 की मौत हो गई, और पिछले था एक पहले खाड़ी युद्ध के दौरान निकाल दिया। 1736 01:27:06,150 --> 01:27:11,960 >> दुर्भाग्य से, अद्यतन सॉफ्टवेयर अगले दिन Dhahran पर पहुंचे। 1737 01:27:11,960 --> 01:27:14,930 सॉफ्टवेयर दोष था गया तय, समापन 1738 01:27:14,930 --> 01:27:19,806 परेशान में एक अध्याय पैट्रियट मिसाइल का इतिहास। 1739 01:27:19,806 --> 01:27:20,729 >> [वीडियो प्लेबैक] 1740 01:27:20,729 --> 01:27:23,520 डेविड जे मालन: तो यह सब करने के लिए है कहने अतिप्रवाह के इन मुद्दों है कि 1741 01:27:23,520 --> 01:27:25,860 और अस्पष्टता सब भी असली हैं। 1742 01:27:25,860 --> 01:27:26,920 तो तुमको वहां क्या मिला? 1743 01:27:26,920 --> 01:27:28,895 हम सिर्फ printf बारे में बात कर के साथ शुरू हुआ। 1744 01:27:28,895 --> 01:27:31,270 फिर, यह है कि समारोह स्क्रीन के लिए कुछ प्रिंट, 1745 01:27:31,270 --> 01:27:33,450 और हम उसके बाद शुरू की कुछ अन्य कार्यों 1746 01:27:33,450 --> 01:27:34,945 तथाकथित CS50 के पुस्तकालय से। 1747 01:27:34,945 --> 01:27:36,910 और हम जारी रखेंगे कारण समय में इन देखते हैं। 1748 01:27:36,910 --> 01:27:40,760 और हम, विशेष रूप से, स्ट्रिंग मिलता है, का इस्तेमाल किया और int मिलता है, और अब भी नाव मिलता है, 1749 01:27:40,760 --> 01:27:44,410 और अभी तक दूसरों को भी हम सामना करेंगे और खुद को लंबे समय से पहले का उपयोग करें। 1750 01:27:44,410 --> 01:27:47,220 >> लेकिन इस अवसर पर, राशि हम पहले से ही एक की जरूरत है देखा 1751 01:27:47,220 --> 01:27:50,520 क्या उन कार्यों हाथ वापस स्टोर करने के लिए? 1752 01:27:50,520 --> 01:27:52,920 वे हमें वापस एक स्ट्रिंग हाथ, या एक पूर्णांक के लिए, या एक नाव। 1753 01:27:52,920 --> 01:27:56,070 और कभी कभी हम उस डाल की जरूरत है स्ट्रिंग, या पूर्णांक, या नाव, कहीं न कहीं। 1754 01:27:56,070 --> 01:28:00,100 >> और उन चीजों को स्टोर करने के लिए, बस याद करते हैं खरोंच में की तरह, हम चर है। 1755 01:28:00,100 --> 01:28:03,260 लेकिन स्क्रैच के विपरीत, सी में हम वास्तविक प्रकार है 1756 01:28:03,260 --> 01:28:05,530 variables-- डेटा की प्रकार, अधिक generally-- 1757 01:28:05,530 --> 01:28:08,640 उनमें से, एक स्ट्रिंग, एक पूर्णांक, एक तैरने लगते हैं, और इन दूसरों को भी। 1758 01:28:08,640 --> 01:28:12,321 >> और इसलिए जब हम सी में चर घोषित, हम अपने डेटा प्रकार की घोषणा करनी होगी। 1759 01:28:12,321 --> 01:28:14,820 यह कुछ ऐसा नहीं है हम करेंगे सेमेस्टर में बाद में क्या करना है 1760 01:28:14,820 --> 01:28:16,810 के रूप में हम अन्य भाषाओं के लिए संक्रमण। 1761 01:28:16,810 --> 01:28:19,610 लेकिन अब के लिए, हम की जरूरत है अग्रिम में एक प्राथमिकताओं के लिए, 1762 01:28:19,610 --> 01:28:24,370 कंप्यूटर किस प्रकार को समझाने चर का हम यह हमें देना चाहता हूँ। 1763 01:28:24,370 --> 01:28:27,290 >> अब, इस बीच, मुद्रित करने के लिए डेटा प्रकार के उन प्रकार, 1764 01:28:27,290 --> 01:28:29,570 हम बता printf करने के लिए क्या उम्मीद करनी है। 1765 01:28:29,570 --> 01:28:32,450 और हम तार के लिए प्रतिशत रों देखा था, और पूर्णांकों के लिए प्रतिशत रहा, 1766 01:28:32,450 --> 01:28:33,790 और कुछ पहले से ही दूसरों। 1767 01:28:33,790 --> 01:28:37,237 और उन लोगों के बस आवश्यकताओं हैं दृश्य प्रस्तुति के लिए 1768 01:28:37,237 --> 01:28:38,070 कि सूचना के। 1769 01:28:38,070 --> 01:28:42,080 >> और इनमें से प्रत्येक वास्तव में हो सकता है parametrized या किसी तरह से tweaked, 1770 01:28:42,080 --> 01:28:45,370 आप नियंत्रण को आगे करना चाहते हैं उत्पादन के प्रकार है कि आप मिलता है। 1771 01:28:45,370 --> 01:28:49,604 और, वास्तव में, यह पता नहीं है कि केवल बदल जाता है वहाँ एक नई लाइन के लिए बैकस्लैश n है। 1772 01:28:49,604 --> 01:28:52,520 वहाँ कुछ और बैकस्लैश कहा जाता है एक गाड़ी वापसी, के लिए R जो 1773 01:28:52,520 --> 01:28:54,360 एक करने जैसा है पुराने स्कूल टाइपराइटर, 1774 01:28:54,360 --> 01:28:57,690 और भी Windows कई वर्षों के लिए इस्तेमाल किया। 1775 01:28:57,690 --> 01:28:59,690 >> वहाँ टैब के लिए बैकस्लैश टी। 1776 01:28:59,690 --> 01:29:03,170 पता चला है, कि अगर आप चाहते हैं एक स्ट्रिंग के अंदर दोहरे उद्धरण, 1777 01:29:03,170 --> 01:29:05,000 याद है कि हम का उपयोग किया है दोहरे उद्धरण डबल 1778 01:29:05,000 --> 01:29:07,900 छोड़ दिया और सही पर बोली इस प्रकार अब तक हमारे तार के समाप्त होता है। 1779 01:29:07,900 --> 01:29:09,420 यही कारण है कि चीजों को भ्रमित करने के लिए प्रतीत होता है। 1780 01:29:09,420 --> 01:29:12,503 >> आप में एक दोहरे उद्धरण करना चाहते हैं एक string-- और, वास्तव में के बीच, 1781 01:29:12,503 --> 01:29:13,670 यह देखने के लिए भ्रामक है। 1782 01:29:13,670 --> 01:29:17,120 और तो आप से बचने के लिए है, इसलिए करने के लिए बात करते हैं, कुछ के साथ एक दोहरे उद्धरण 1783 01:29:17,120 --> 01:29:18,860 जैसे, सचमुच, दोहरे उद्धरण बैकस्लैश। 1784 01:29:18,860 --> 01:29:20,230 और वहाँ कुछ अन्य अब भी है। 1785 01:29:20,230 --> 01:29:24,540 और हम उन लोगों का अधिक देखेंगे लंबे समय से पहले वास्तविक प्रयोग में। 1786 01:29:24,540 --> 01:29:27,930 >> तो चलो अब से संक्रमण करते हैं डेटा, और प्रतिनिधित्व, 1787 01:29:27,930 --> 01:29:30,820 और अंकगणितीय ऑपरेटर, सब जिनमें से हमें कुछ इमारत दिया 1788 01:29:30,820 --> 01:29:32,070 जो के साथ ब्लॉक खेलने के लिए। 1789 01:29:32,070 --> 01:29:34,481 लेकिन अब वास्तव में दे हमें शब्दावली के बाकी 1790 01:29:34,481 --> 01:29:36,230 हम पहले से ही था कि खरोंच के साथ पिछले सप्ताह 1791 01:29:36,230 --> 01:29:39,350 कुछ अन्य पर एक नज़र लेने के द्वारा C-- में निर्माणों उन सभी को नहीं। 1792 01:29:39,350 --> 01:29:41,680 लेकिन विचारों हम कर रहे हैं के बारे में वास्तव में सिर्फ देखने के लिए 1793 01:29:41,680 --> 01:29:45,610 से अनुवाद पर जोर देना एक भाषा, खरोंच, दूसरे के लिए, सी 1794 01:29:45,610 --> 01:29:48,470 >> और समय के साथ, हम ले लेंगे हमारे टूलकिट के लिए और अधिक उपकरण, 1795 01:29:48,470 --> 01:29:49,820 तो बात है, वाक्य रचना। 1796 01:29:49,820 --> 01:29:54,190 और, वास्तव में, आप देखेंगे कि विचारों देखेंगे अब बल्कि पिछले हफ्ते से परिचित हैं। 1797 01:29:54,190 --> 01:29:55,200 तो चलो यह करते हैं। 1798 01:29:55,200 --> 01:29:58,870 >> आगे बढ़ते हैं और एक कार्यक्रम कोड़ा चलो कि वास्तव में कुछ भाव का उपयोग करता है, 1799 01:29:58,870 --> 01:30:00,720 एक बूलियन अभिव्यक्ति। 1800 01:30:00,720 --> 01:30:02,810 मुझे आगे चलते हैं यहां और एक नई फ़ाइल बनाएँ। 1801 01:30:02,810 --> 01:30:06,090 मैं इस condition.c फोन करता हूँ। 1802 01:30:06,090 --> 01:30:09,350 >> मुझे आगे चलते हैं और CS50 पुस्तकालय में शामिल हैं। 1803 01:30:09,350 --> 01:30:12,640 और मुझे आगे जाना है और शामिल करते हैं हमारे कार्यों के लिए मानक IO.h, 1804 01:30:12,640 --> 01:30:14,690 और printf, और अधिक क्रमशः। 1805 01:30:14,690 --> 01:30:18,900 मुझे खुद की कि बॉयलरप्लेट दे int मुख्य शून्य, जिसका विवरण हम करेंगे 1806 01:30:18,900 --> 01:30:20,360 भविष्य में वापस करने के लिए आते हैं। 1807 01:30:20,360 --> 01:30:23,820 >> अब मुझे आगे जाना है और दे अपने आप मिल int के माध्यम से एक इंट। 1808 01:30:23,820 --> 01:30:25,970 तो फिर मुझे आगे जाना है और यह करते हैं। 1809 01:30:25,970 --> 01:30:30,150 मैं कहना चाहता हूँ कि यदि मैं चलो less-- है सकारात्मक, नकारात्मक के बीच भेद, 1810 01:30:30,150 --> 01:30:31,260 या शून्य मान हैं। 1811 01:30:31,260 --> 01:30:36,630 >> तो अगर मैं शून्य से कम है, मुझे जाने सिर्फ इस कार्यक्रम बस कहना है, 1812 01:30:36,630 --> 01:30:42,370 नकारात्मक, बैकस्लैश एन, बाकी अगर मैं शून्य से अधिक है। 1813 01:30:42,370 --> 01:30:47,030 अब मैं, ज़ाहिर है, कहने जा रहा हूँ printf सकारात्मक, बैकस्लैश एन। 1814 01:30:47,030 --> 01:30:50,690 और तो और मैं यह कर सकता if--। 1815 01:30:50,690 --> 01:30:53,410 >> अगर मैं 0 के बराबर होती है मैं कर सकता है। 1816 01:30:53,410 --> 01:30:55,840 लेकिन मैं कम से बना रही हो जाएगा कम से कम एक पहले से ही गलती है। 1817 01:30:55,840 --> 01:30:59,480 याद है कि बराबर का चिह्न है बराबर नहीं, हम मनुष्यों के रूप में यह पता है। 1818 01:30:59,480 --> 01:31:01,010 >> लेकिन यह असाइनमेंट ऑपरेटर है। 1819 01:31:01,010 --> 01:31:05,640 और हम पर 0 नहीं लेना चाहते हैं सही है और मैं में छोड़ दिया पर डाल दिया। 1820 01:31:05,640 --> 01:31:11,810 तो इस भ्रम से बचने के लिए, या शायद बराबरी के दुरुपयोग पर हस्ताक्षर, 1821 01:31:11,810 --> 01:31:14,740 मनुष्य कुछ साल पहले का फैसला कि कई प्रोग्रामिंग भाषाओं में 1822 01:31:14,740 --> 01:31:18,000 आप समानता के लिए जाँच करना चाहते हैं जब छोड़ दिया और सही के बीच, 1823 01:31:18,000 --> 01:31:19,635 आप वास्तव में इस्तेमाल बराबर बराबर होती है। 1824 01:31:19,635 --> 01:31:21,010 तो अगर आप बराबरी दो बार हस्ताक्षर मारा। 1825 01:31:21,010 --> 01:31:25,600 आप सही से आवंटित करना चाहते हैं बाईं करने के लिए, आप एक ही बराबर चिह्न का उपयोग करें। 1826 01:31:25,600 --> 01:31:29,360 इसलिए हम this-- वरना कर सकता है अगर मैं बराबर शून्य के बराबर होती है। 1827 01:31:29,360 --> 01:31:31,710 >> मैं तो जा सकते हैं और हो सकता है मेरे घुंघराले ब्रेसिज़ खोलने, 1828 01:31:31,710 --> 01:31:36,087 और कहते हैं, printf 0, बैकस्लैश n, हो गया। 1829 01:31:36,087 --> 01:31:38,170 लेकिन कैसे इन याद सड़क में कांटे काम कर सकते हैं। 1830 01:31:38,170 --> 01:31:39,836 और, वास्तव में, बस तर्क के बारे में सोचते हैं। 1831 01:31:39,836 --> 01:31:41,510 मैं एक संख्या है। 1832 01:31:41,510 --> 01:31:43,320 यह एक पूर्णांक विशेष रूप से है। 1833 01:31:43,320 --> 01:31:48,600 और इसका मतलब यह कम होने जा रहा है 0, या 0, या 0 से अधिक से अधिक है। 1834 01:31:48,600 --> 01:31:51,600 तो इस तरह का है गर्भित डिफ़ॉल्ट मामला। 1835 01:31:51,600 --> 01:31:54,920 >> और इसलिए हम बस की तरह हो सकता है स्क्रैच, और अगर साथ बांटना 1836 01:31:54,920 --> 01:31:55,747 और अभी सब कहते हैं। 1837 01:31:55,747 --> 01:31:57,830 तार्किक रूप से, अगर आप प्रोग्रामर वहाँ सिर्फ इतना पता है 1838 01:31:57,830 --> 01:32:01,635 जो एक में तीन बाल्टी परिदृश्य, पहले fall-- कर सकते हैं 1839 01:32:01,635 --> 01:32:03,510 दूसरे या तीसरे यह नहीं case-- में 1840 01:32:03,510 --> 01:32:07,100 अतिरिक्त परिशुद्धता जोड़ने की परेशानी और वहाँ अतिरिक्त तर्क। 1841 01:32:07,100 --> 01:32:09,690 बस के साथ आगे बढ़ो डिफ़ॉल्ट मामले बाकी के यहाँ। 1842 01:32:09,690 --> 01:32:11,950 >> अब, चलो आगे चलते हैं इस सहेजने के बाद, बनाना 1843 01:32:11,950 --> 01:32:15,760 शर्तों डॉट conditions-- स्लेश नहीं एक महान यूजर इंटरफेस, 1844 01:32:15,760 --> 01:32:18,914 क्योंकि मैं उत्साह नहीं कर रहा हूँ उपयोगकर्ता, जैसा कि मैंने पहले उल्लेख किया है। 1845 01:32:18,914 --> 01:32:19,580 लेकिन वह ठीक है। 1846 01:32:19,580 --> 01:32:20,454 हम इसे सरल रखने देंगे। 1847 01:32:20,454 --> 01:32:21,890 की संख्या 42 कोशिश करते हैं। 1848 01:32:21,890 --> 01:32:23,240 और वह सकारात्मक है। 1849 01:32:23,240 --> 01:32:26,120 के नंबर की कोशिश करते हैं नकारात्मक 42, नकारात्मक। 1850 01:32:26,120 --> 01:32:28,244 >> का मान 0 कोशिश करते हैं। 1851 01:32:28,244 --> 01:32:29,160 और, वास्तव में, यह काम करता है। 1852 01:32:29,160 --> 01:32:33,900 अब, आप से पहले समस्याओं के साथ देखेंगे लंबे, परीक्षण बातों में तीन बार, 1853 01:32:33,900 --> 01:32:34,980 शायद पर्याप्त नहीं। 1854 01:32:34,980 --> 01:32:37,438 तुम्हें शायद कुछ परीक्षण करना चाहते हैं बड़ी संख्या है, कुछ छोटे 1855 01:32:37,438 --> 01:32:40,520 नंबर, किसी कोने मामलों, के रूप में हम उन्हें का वर्णन करने के लिए आ जाएगा। 1856 01:32:40,520 --> 01:32:42,500 >> एक लेकिन अब के लिए, यह है बहुत आसान कार्यक्रम। 1857 01:32:42,500 --> 01:32:45,160 और मुझे पूरा यकीन है, तार्किक, यह तीन मामलों में गिर जाता है। 1858 01:32:45,160 --> 01:32:49,360 और, वास्तव में, यहां तक ​​कि हम हालांकि अभी संभावित downsides पर ध्यान केंद्रित 1859 01:32:49,360 --> 01:32:53,480 अस्पष्टता और अतिप्रवाह की, में वास्तविकता जहां CS50 की समस्याओं के कई, 1860 01:32:53,480 --> 01:32:56,000 हमें चिंता करने के लिए नहीं जा रहे हैं के बारे में, हर समय, 1861 01:32:56,000 --> 01:32:59,050 अतिप्रवाह के उन मुद्दों और अस्पष्टता, क्योंकि वास्तव में, सी में, 1862 01:32:59,050 --> 01:33:01,889 यह वास्तव में सब नहीं है कि उन चीजों से बचने के लिए आसान नहीं है। 1863 01:33:01,889 --> 01:33:04,180 आप तक गिनती करना चाहते हैं बड़ा, और बड़ा और बड़ा है, 1864 01:33:04,180 --> 01:33:07,510 यह पता चला है वहाँ आप तकनीक हैं उपयोग कर सकते हैं अक्सर बातें बुलाया शामिल 1865 01:33:07,510 --> 01:33:11,240 पुस्तकालयों, कोड का संग्रह है, कि अन्य लोगों ने लिखा है कि आप उपयोग कर सकते हैं, 1866 01:33:11,240 --> 01:33:13,910 की तरह और अन्य भाषाओं जावा और दूसरों को, वास्तव में 1867 01:33:13,910 --> 01:33:15,800 यह एक बहुत आसान बनाना यहां तक ​​कि उच्च गिनती करने के लिए। 1868 01:33:15,800 --> 01:33:19,810 तो यह वास्तव में इन खतरों में से कुछ है भाषा आप उपयोग के एक समारोह। 1869 01:33:19,810 --> 01:33:22,710 और आने वाले हफ्तों में, हम करेंगे देखना कितना खतरनाक C है 1870 01:33:22,710 --> 01:33:24,950 यदि आप इसे ठीक से इस्तेमाल नहीं किया जा सकता है। 1871 01:33:24,950 --> 01:33:27,610 लेकिन वहाँ से, और साथ अजगर, और जावास्क्रिप्ट जाएगा 1872 01:33:27,610 --> 01:33:32,620 हम कुछ अतिरिक्त सुरक्षा पर परत, और उन खतरों के कम चलाते हैं। 1873 01:33:32,620 --> 01:33:35,820 >> तो चलो एक छोटे से अधिक हमारे कार्यक्रम में दिलचस्प तर्क। 1874 01:33:35,820 --> 01:33:39,110 तो मुझे आगे जाना है और पैदा करते हैं एक कार्यक्रम तार्किक बुलाया 1875 01:33:39,110 --> 01:33:43,804 अभी तो मैं कुछ के साथ खेल सकते हैं वास्तविक तर्क, logical.c। 1876 01:33:43,804 --> 01:33:46,870 मैं बस कॉपी और पेस्ट कुछ करेंगे पहले तो मैं वापस पाने से कोड 1877 01:33:46,870 --> 01:33:49,950 यह अच्छा प्रारंभिक बिंदु है। 1878 01:33:49,950 --> 01:33:53,980 >> मुझे इस समय चार सी मैं कर रहा हूँ यह सी का एक नाम देने जा रहा 1879 01:33:53,980 --> 01:33:58,510 यह पारंपरिक है, सिर्फ इसलिए कि, उपयोगकर्ता से एक चरित्र मिलता है। 1880 01:33:58,510 --> 01:34:00,730 और हम जैसे ढोंग करते हैं मैं भाग लागू कर रहा हूँ 1881 01:34:00,730 --> 01:34:04,130 कि आर एम कार्यक्रम की, निकालें इससे पहले कि कार्यक्रम के उपयोगकर्ता के लिए प्रेरित किया 1882 01:34:04,130 --> 01:34:05,400 एक फ़ाइल को हटा दें। 1883 01:34:05,400 --> 01:34:06,750 हम ऐसा कैसे कर सकता है? 1884 01:34:06,750 --> 01:34:11,090 >> मैं कहना चाहता हूँ, अगर सी के बराबर होती है के बराबर होती है, बोली गंदें शब्द बोलना, 1885 01:34:11,090 --> 01:34:16,304 Y, तो मैं मान जा रहा हूँ उपयोगकर्ता हाँ चुना गया है। 1886 01:34:16,304 --> 01:34:17,470 मैं सिर्फ हाँ मुद्रित करने के लिए जा रहा हूँ। 1887 01:34:17,470 --> 01:34:19,440 यह वास्तव में लिख रहे थे तो हटाने कार्यक्रम, 1888 01:34:19,440 --> 01:34:21,420 हम फ़ाइल निकाल सकता है कोड के अधिक लाइनों के साथ। 1889 01:34:21,420 --> 01:34:22,461 लेकिन हम इसे सरल रखने के लिए होगा। 1890 01:34:22,461 --> 01:34:25,950 1891 01:34:25,950 --> 01:34:31,250 >> वरना यदि ग के बराबर होती है N-- के बराबर होती है और अब यहाँ, मैं कहने जा रहा हूँ, 1892 01:34:31,250 --> 01:34:32,980 उपयोगकर्ता कोई मतलब होगा। 1893 01:34:32,980 --> 01:34:34,360 और तो और, तुम्हें पता है क्या? 1894 01:34:34,360 --> 01:34:36,200 मैं क्या किसी और को पता नहीं है उपयोगकर्ता टाइप करने के लिए जा रहा है। 1895 01:34:36,200 --> 01:34:38,533 इसलिए मुझे लगता है कि बस कहने जा रहा हूँ कि एक त्रुटि है, जो कुछ भी 1896 01:34:38,533 --> 01:34:40,070 वह या वह वास्तव में टाइप। 1897 01:34:40,070 --> 01:34:41,180 >> तो यहाँ क्या हो रहा है? 1898 01:34:41,180 --> 01:34:44,530 वहाँ एक बुनियादी फर्क है मैं अतीत में क्या किया है बनाम। 1899 01:34:44,530 --> 01:34:49,300 डबल कोट, डबल कोट, डबल उद्धरण, और, अभी तक, एकल उद्धरण, 1900 01:34:49,300 --> 01:34:50,170 एकल कोट। 1901 01:34:50,170 --> 01:34:52,860 यह सी में पता चला है, कि जब आप एक स्ट्रिंग लिखना चाहते हैं, 1902 01:34:52,860 --> 01:34:56,680 आप डबल उद्धरण का उपयोग करते हैं, हम है बस के रूप में printf के साथ यह सब समय का उपयोग किया गया। 1903 01:34:56,680 --> 01:35:02,030 >> लेकिन अगर आप सिर्फ एक साथ काम करना चाहते हैं एकल चरित्र, एक तथाकथित चार, 1904 01:35:02,030 --> 01:35:03,780 तो आप वास्तव में एक उद्धरण का उपयोग करें। 1905 01:35:03,780 --> 01:35:05,450 आप में से जो लोग क्रमादेशित है इससे पहले, आप नहीं हो सकता है 1906 01:35:05,450 --> 01:35:07,850 इस बारे में चिंता थी कुछ भाषाओं में भेद। 1907 01:35:07,850 --> 01:35:09,450 सी में, यह बात करता है। 1908 01:35:09,450 --> 01:35:12,560 और इसलिए जब मैं एक चार मिलता है और मैं चाहता हूँ बराबरी का उपयोग करते हुए कि चार तुलना करने के लिए 1909 01:35:12,560 --> 01:35:18,350 Y या n जैसे कुछ पत्र के बराबर होती है, मुझे क्या करना है, दरअसल, एक उद्धरण की आवश्यकता है। 1910 01:35:18,350 --> 01:35:19,770 >> अब, चलो आगे जाना है और यह करते हैं। 1911 01:35:19,770 --> 01:35:26,180 आगे बढ़ते हैं और कर सकता हूँ चलो तार्किक डॉट तार्किक स्लेश। 1912 01:35:26,180 --> 01:35:27,305 और अब मैं के लिए प्रेरित किया जा रहा है। 1913 01:35:27,305 --> 01:35:30,638 तो, शायद, एक बेहतर प्रयोक्ता अनुभव वास्तव में मुझे बताना होगा कि यहाँ क्या करना है। 1914 01:35:30,638 --> 01:35:33,030 लेकिन मैं करने जा रहा हूँ बस आँख बंद करके अच्छा ठीक है हां, तो, वाई कहते हैं। 1915 01:35:33,030 --> 01:35:35,780 >> चलो फिर से चलाने के लिए, n कोई, तो अच्छा है। 1916 01:35:35,780 --> 01:35:39,610 कुछ लोगों को मैं जानता की तरह लगता है, मेरे कैप्स लॉक कुंजी भी अक्सर सभी पर है। 1917 01:35:39,610 --> 01:35:43,740 तो मैं त्रुटि कर राजधानी वाई, दर्ज करें। 1918 01:35:43,740 --> 01:35:46,130 ठीक है, यह वास्तव में मैं क्या उम्मीद कर रहा हूँ नहीं है। 1919 01:35:46,130 --> 01:35:48,170 दरअसल, कंप्यूटर सचमुच क्या कर रहा है 1920 01:35:48,170 --> 01:35:51,794 मैं यह बताया do-- करने के लिए जाँच लोअरकेस Y और छोटे एन। 1921 01:35:51,794 --> 01:35:53,960 यह अच्छी तरह महसूस नहीं करता उपयोगकर्ता अनुभव, यद्यपि। 1922 01:35:53,960 --> 01:35:59,010 मेरे लिए पूछना और स्वीकार करते हैं या तो कम मामले अपर केस। 1923 01:35:59,010 --> 01:36:02,090 तो यह पता चला है, तुम चाहते हो सकता है स्क्रैच में ऐसा कुछ कहना है, 1924 01:36:02,090 --> 01:36:08,150 सचमुच या सी के बराबर होती है जैसे राजधानी एकल उद्धृत y के बराबर होती है। 1925 01:36:08,150 --> 01:36:11,400 पता चला है, सी नहीं है इस शाब्दिक खोजशब्द या। 1926 01:36:11,400 --> 01:36:12,880 >> लेकिन यह दो खड़ी सलाखों है। 1927 01:36:12,880 --> 01:36:15,463 तुम्हें पता है, आम तौर पर शिफ्ट पकड़ है यदि आप एक अमेरिकी कीबोर्ड का उपयोग कर रहे हैं, 1928 01:36:15,463 --> 01:36:18,910 और ऊर्ध्वाधर बार मारा अपनी वापसी कुंजी ऊपर कुंजी। 1929 01:36:18,910 --> 01:36:22,410 लेकिन इस बार ऊर्ध्वाधर ऊर्ध्वाधर बार का मतलब है या। 1930 01:36:22,410 --> 01:36:26,220 >> तो, इसके विपरीत, हम चाहते थे कहने और खरोंच के साथ की तरह, को, 1931 01:36:26,220 --> 01:36:28,180 हम एम्परसेंड एम्परसेंड कर सकता है। 1932 01:36:28,180 --> 01:36:31,330 यही कारण है कि कोई तार्किक समझ में यहाँ आता है, क्योंकि एक मानव संभवतः नहीं कर सका 1933 01:36:31,330 --> 01:36:37,110 टाइप किया है दोनों Y और छोटे y और एक ही चरित्र के रूप में राजधानी वाई। 1934 01:36:37,110 --> 01:36:39,470 तो या है क्या हम यहाँ इरादा रखते हैं। 1935 01:36:39,470 --> 01:36:46,280 >> इसलिए मैं दोनों स्थानों में ऐसा करते हैं, तो या ग बराबर बराबर राजधानी एन, अब फिर से दौड़ना, 1936 01:36:46,280 --> 01:36:49,390 तार्किक बनाने के लिए, तार्किक फिर से दौड़ना। 1937 01:36:49,390 --> 01:36:51,200 अब, मैं y टाइप कर सकते हैं। 1938 01:36:51,200 --> 01:36:53,920 और मैं इसे फिर से कर सकते हैं के साथ राजधानी वाई, या पूंजी एन 1939 01:36:53,920 --> 01:36:56,630 और मैं अतिरिक्त में जोड़ सकता है अभी भी संयोजन। 1940 01:36:56,630 --> 01:36:58,810 >> तो यह एक तर्कसंगत है के रूप में अब insofar के कार्यक्रम 1941 01:36:58,810 --> 01:37:01,940 मैं के लिए तार्किक जाँच कर रहा हूँ इस मूल्य या इस मूल्य। 1942 01:37:01,940 --> 01:37:06,420 और मैं करने के लिए नहीं है, जरूरी दो और भारतीय विदेश सेवा या किसी और आईएफएस के साथ आते हैं। 1943 01:37:06,420 --> 01:37:09,960 मैं वास्तव में से कुछ के गठजोड़ कर सकते हैं इस तरह से एक साथ संबंधित तर्क। 1944 01:37:09,960 --> 01:37:11,950 तो यह बेहतर होगा बस से डिजाइन किए 1945 01:37:11,950 --> 01:37:17,490 करते हुए कहा कि यदि सेल्सियस कम मामले y के बराबर होती है, बाकी मुद्रित हाँ, अगर ग के बराबर होती है राजधानी वाई, 1946 01:37:17,490 --> 01:37:20,074 बाकी मुद्रित हाँ, अगर ग के बराबर होती है दूसरे शब्दों में lower--, 1947 01:37:20,074 --> 01:37:21,990 आपके पास करने के लिए नहीं है अधिक से अधिक शाखाएँ हैं। 1948 01:37:21,990 --> 01:37:28,840 आप बराबर के कुछ गठबंधन कर सकते हैं तार्किक रूप से शाखाओं, इस तरह के रूप में। 1949 01:37:28,840 --> 01:37:34,150 >> तो चलो बस एक पर एक नज़र रखना अंतिम घटक, एक अंतिम निर्माण, 1950 01:37:34,150 --> 01:37:34,847 कि सी की अनुमति देता है। 1951 01:37:34,847 --> 01:37:36,930 और हम में वापस आ जाएगा दूसरों को भी करने के लिए भविष्य। 1952 01:37:36,930 --> 01:37:41,400 और फिर हम देख कर समाप्त होगा code-- की नहीं सत्यता पर 1953 01:37:41,400 --> 01:37:46,070 कोड हो रही work-- लेकिन डिजाइन करने के लिए कोड की, और उन बीज संयंत्र पर जल्दी। 1954 01:37:46,070 --> 01:37:51,337 >> तो मुझे आगे जाना है और यहाँ एक नई फ़ाइल को खोलने के लिए। 1955 01:37:51,337 --> 01:37:51,920 आपको पता है कि? 1956 01:37:51,920 --> 01:37:54,450 मैं फिर से लागू करने के लिए जा रहा हूँ कि एक ही कार्यक्रम है, 1957 01:37:54,450 --> 01:37:55,940 लेकिन एक अलग निर्माण का उपयोग। 1958 01:37:55,940 --> 01:38:00,110 >> तो मुझे जल्दी चलो अपने आप को दे पहुँच cs50.h शामिल करने के लिए 1959 01:38:00,110 --> 01:38:04,150 CS50 पुस्तकालय के लिए, printf के लिए मानक Io.h। 1960 01:38:04,150 --> 01:38:06,510 मुझे मेरे int मुख्य शून्य दीजिए। 1961 01:38:06,510 --> 01:38:09,310 और फिर यहाँ पर, चलो मुझे आगे जाना है और यह करते हैं। 1962 01:38:09,310 --> 01:38:12,010 >> चार सी, चार प्राप्त हो जाता है पहले की तरह। 1963 01:38:12,010 --> 01:38:16,770 और मैं एक नया निर्माण का उपयोग करने के लिए जा रहा हूँ now-- स्विच, क्या चरित्र पर? 1964 01:38:16,770 --> 01:38:19,820 तो स्विच की तरह की तरह है एक ट्रेन पटरियों स्विचन। 1965 01:38:19,820 --> 01:38:22,070 या, वास्तव में, यह एक तरह से है एक बाकी है, और अगर हैं, तो 1966 01:38:22,070 --> 01:38:23,980 लेकिन कुछ अलग ढंग से लिखा है। 1967 01:38:23,980 --> 01:38:25,490 >> एक स्विच इस तरह दिखता है। 1968 01:38:25,490 --> 01:38:29,060 आप स्विच है, और फिर क्या चरित्र या नंबर पर आप को देखने के लिए चाहते हैं, 1969 01:38:29,060 --> 01:38:32,000 फिर कुछ घुंघराले ब्रेसिज़ में पसंद स्क्रैच, सिर्फ इस सामान करना कहते हैं। 1970 01:38:32,000 --> 01:38:33,480 और फिर आप अलग-अलग मामले दर्ज हैं। 1971 01:38:33,480 --> 01:38:34,830 >> तुम अगर और कुछ का उपयोग नहीं करते। 1972 01:38:34,830 --> 01:38:37,050 तुम सचमुच शब्द मामले का उपयोग करें। 1973 01:38:37,050 --> 01:38:38,790 और अगर आप इस तरह कुछ कहेंगे। 1974 01:38:38,790 --> 01:38:43,820 >> तो एक छोटे y के मामले में, या एक राजधानी Y के मामले में, 1975 01:38:43,820 --> 01:38:47,350 आगे बढ़ो और हाँ बाहर प्रिंट। 1976 01:38:47,350 --> 01:38:49,020 और फिर स्विच के बाहर तोड़। 1977 01:38:49,020 --> 01:38:49,580 बस। 1978 01:38:49,580 --> 01:38:50,880 हो गया था। 1979 01:38:50,880 --> 01:38:57,270 >> वरना, तो तो बात है, कम मामले n, या पूंजी एन, 1980 01:38:57,270 --> 01:39:02,560 तो आगे चलते हैं और प्रिंट बाहर कोई है, और फिर टूट गया। 1981 01:39:02,560 --> 01:39:08,022 Else-- और इस तरह का है डिफ़ॉल्ट मामले indeed-- printf error-- 1982 01:39:08,022 --> 01:39:10,980 और सिर्फ अच्छे उपाय के लिए, हालांकि तार्किक रूप से यह ब्रेक जरूरी नहीं है 1983 01:39:10,980 --> 01:39:12,896 क्योंकि हम अंत में कर रहे वैसे भी स्विच की, 1984 01:39:12,896 --> 01:39:14,520 अब मैं स्विच से बाहर तोड़ रहा हूँ। 1985 01:39:14,520 --> 01:39:16,280 तो यह एक छोटे से अलग लग रहा है। 1986 01:39:16,280 --> 01:39:18,272 >> लेकिन, तार्किक रूप से, यह है वास्तव में बराबर। 1987 01:39:18,272 --> 01:39:19,980 और तुम क्यों प्रयोग करेंगे एक के ऊपर एक? 1988 01:39:19,980 --> 01:39:23,220 कभी कभी, सिर्फ व्यक्तिगत पसंद, कभी कभी सौंदर्यशास्त्र, 1989 01:39:23,220 --> 01:39:25,420 अगर मैं इस पर नज़र अब, वहाँ कुछ है 1990 01:39:25,420 --> 01:39:27,510 के लिए कहा जा सकता है इस कोड की पठनीयता। 1991 01:39:27,510 --> 01:39:30,690 मेरा मतलब है, इस तथ्य यह है कि कोई बात नहीं कोड कमरे में हम में से कई के लिए नया है। 1992 01:39:30,690 --> 01:39:33,515 >> लेकिन यह बस की तरह सुंदर है। 1993 01:39:33,515 --> 01:39:37,760 आप लोअरकेस वाई, राजधानी Y देखते हैं, कम मामले n, राजधानी एन डिफ़ॉल्ट, 1994 01:39:37,760 --> 01:39:40,150 यह बस की तरह कूदता एक तरह से आप पर बाहर 1995 01:39:40,150 --> 01:39:42,200 कि, यकीनन, हो सकता है पिछले उदाहरण 1996 01:39:42,200 --> 01:39:45,780 आईएफएस, और ऊर्ध्वाधर सलाखों के साथ, और बाकी आईएफएस, नहीं हो सकता है। 1997 01:39:45,780 --> 01:39:51,600 तो यह व्यक्तिगत के लिए वास्तव में एक मामला है पसंद है, वास्तव में, या पठनीयता, 1998 01:39:51,600 --> 01:39:52,360 कोड की। 1999 01:39:52,360 --> 01:39:58,230 >> लेकिन कार्यक्षमता के संदर्भ में, मुझे जाने आगे जाकर एक स्विच, डॉट स्लेश बनाना 2000 01:39:58,230 --> 01:40:05,830 स्विच, और अब छोटे अक्षरों y में टाइप करें, राजधानी वाई, लोअरकेस एन, एन राजधानी, 2001 01:40:05,830 --> 01:40:09,250 डेविड, पुन: प्रयास है कि क्योंकि नहीं एक ही चरित्र। 2002 01:40:09,250 --> 01:40:12,050 उम्मीद के रूप में की, एक्स, त्रुटि करते हैं। 2003 01:40:12,050 --> 01:40:15,640 और, logically-- और यह कुछ है मैं general-- भी प्रोत्साहित करेगा 2004 01:40:15,640 --> 01:40:17,790 हालांकि हम केवल scratching रहे हैं इन सुविधाओं में से कुछ की सतह। 2005 01:40:17,790 --> 01:40:20,560 >> और यह स्पष्ट नहीं हो सकता है जब आप खुद के कीबोर्ड पर बैठ जाओ, 2006 01:40:20,560 --> 01:40:21,370 यह कैसे काम करता है? 2007 01:40:21,370 --> 01:40:22,240 यह क्या करना होगा? 2008 01:40:22,240 --> 01:40:25,630 होने के बारे में सुंदर बात एक लैपटॉप या डेस्कटॉप, या उपयोग 2009 01:40:25,630 --> 01:40:29,290 एक संकलक के साथ एक कंप्यूटर करने के लिए, और इस तरह एक कोड संपादक के साथ, 2010 01:40:29,290 --> 01:40:32,990 आप लगभग हमेशा इन जवाब दे सकती है सिर्फ कोशिश कर रहा द्वारा खुद के लिए प्रश्न। 2011 01:40:32,990 --> 01:40:36,570 >> उदाहरण के लिए, यदि बयानबाजी हाथ पर सवाल थे, 2012 01:40:36,570 --> 01:40:39,540 क्या होता है अगर आप भूल जाते हैं अपने को तोड़ने के बयानों? 2013 01:40:39,540 --> 01:40:41,400 जो वास्तव में एक बहुत ही आम बात है, 2014 01:40:41,400 --> 01:40:43,540 क्योंकि यह नहीं दिखता है जैसे तुम सच में उन्हें जरूरत है। 2015 01:40:43,540 --> 01:40:46,790 वे वास्तव में पूरा नहीं करते अपने एक कोष्टक या घुंघराले की तरह सोचा 2016 01:40:46,790 --> 01:40:47,714 ब्रेस करता है। 2017 01:40:47,714 --> 01:40:49,630 चलो आगे चलते हैं और कोड कंपाइल और देखते हैं। 2018 01:40:49,630 --> 01:40:53,690 तो स्विच, डॉट स्लेश स्विच कर सकते हैं। 2019 01:40:53,690 --> 01:40:56,435 के कम मामले में टाइप करते हैं वाई, शीर्ष मामला दर्ज करें। 2020 01:40:56,435 --> 01:40:59,390 2021 01:40:59,390 --> 01:41:00,700 तो मैं y टाइप। 2022 01:41:00,700 --> 01:41:04,420 >> कार्यक्रम नहीं कहा, हां, त्रुटि, के रूप में हालांकि वह अपने मन बदल रहा था। 2023 01:41:04,420 --> 01:41:09,280 लेकिन यह किस तरह का था, क्योंकि क्या होता है एक स्विच के साथ पहला मामला है कि 2024 01:41:09,280 --> 01:41:13,899 मैच अनिवार्य रूप से इसका मतलब है, हे कंप्यूटर, इसे नीचे कोड के सभी निष्पादित। 2025 01:41:13,899 --> 01:41:16,690 और अगर आप कहते हैं कि नहीं तोड़, या ब्रेक मत कहो, या तोड़ मत कहो, 2026 01:41:16,690 --> 01:41:19,540 कंप्यूटर उड़ा जा रहा है उन पंक्तियों के माध्यम से सभी 2027 01:41:19,540 --> 01:41:22,779 और जब तक उन सभी को निष्पादित ऐसा नहीं है कि घुंघराले ब्रेस के लिए हो जाता है। 2028 01:41:22,779 --> 01:41:24,320 तो ब्रेक कर रहे हैं, वास्तव में, आवश्यक है। 2029 01:41:24,320 --> 01:41:27,120 लेकिन एक takeaway इधर, जब है संदेह में, कुछ करने की कोशिश। 2030 01:41:27,120 --> 01:41:29,510 हो सकता है कि अपने कोड पहला बचाने के लिए, या यह एक अतिरिक्त फ़ाइल में बचाने के लिए 2031 01:41:29,510 --> 01:41:32,930 यदि आप के बारे में वास्तव में चिंतित हैं खिलवाड़ और ठीक करने के लिए हो रही 2032 01:41:32,930 --> 01:41:34,430 काम है कि आप जानते हैं कि काम कर रहा है। 2033 01:41:34,430 --> 01:41:35,410 >> लेकिन चीजों की कोशिश। 2034 01:41:35,410 --> 01:41:38,074 और वैसे भी डर नहीं है, शायद, कंप्यूटर क्या कर सकता है की, 2035 01:41:38,074 --> 01:41:39,490 या आप कुछ टूट सकता है। 2036 01:41:39,490 --> 01:41:42,790 आप हमेशा के लिए वापस लौट सकते हैं कुछ पुराने संस्करण के लिए। 2037 01:41:42,790 --> 01:41:45,640 >> तो चलो देख कर अंत कोड के डिजाइन पर। 2038 01:41:45,640 --> 01:41:49,020 हम लिखने के लिए अब यह क्षमता है स्थिति, और लिखने छोरों, 2039 01:41:49,020 --> 01:41:50,850 और चर, और कॉल कार्य करता है। 2040 01:41:50,850 --> 01:41:54,590 तो, सच में, हम किस तरह के कम से वापस आ गए हैं जहां हम खरोंच के साथ एक सप्ताह पहले थे, 2041 01:41:54,590 --> 01:42:00,120 एक कम सम्मोहक शाब्दिक साथ यद्यपि स्क्रैच से पर्यावरण अनुमति देता है। 2042 01:42:00,120 --> 01:42:03,990 >> लेकिन नोटिस हम कैसे जल्दी से अधिग्रहण किया है कि शब्दावली, भले ही यह 2043 01:42:03,990 --> 01:42:07,570 में सिंक करने के लिए थोड़ा समय लग करने के लिए जा रहा है, इतना है कि हम अब इस शब्दावली का उपयोग कर सकते हैं 2044 01:42:07,570 --> 01:42:10,320 अधिक रोचक कार्यक्रमों लिखने के लिए। 2045 01:42:10,320 --> 01:42:12,940 और चलो एक बच्चे को कदम उठाने जाने कि ओर, के रूप में इस प्रकार है। 2046 01:42:12,940 --> 01:42:14,890 मुझे आगे चलते हैं और यहाँ एक नई फ़ाइल बनाएँ। 2047 01:42:14,890 --> 01:42:17,750 >> मैं इस फोन करने के लिए जा रहा हूँ prototype.c, और परिचय 2048 01:42:17,750 --> 01:42:20,954 पहली बार के लिए, क्षमता अपने खुद के कार्यों बनाने के लिए। 2049 01:42:20,954 --> 01:42:22,870 आप में से कुछ हो सकता है स्क्रैच के साथ यह किया, 2050 01:42:22,870 --> 01:42:25,430 जिससे आप बना सकते हैं अपने खरोंच में स्वयं के कस्टम ब्लॉक, 2051 01:42:25,430 --> 01:42:27,892 और फिर उन्हें जगह में खींचें जहाँ भी तुम सी में करना चाहते हैं 2052 01:42:27,892 --> 01:42:30,100 और सबसे प्रोग्रामिंग में भाषा, वास्तव में आप क्या कर सकते हैं 2053 01:42:30,100 --> 01:42:33,580 that-- अपने खुद के कार्यों बनाने, अगर वे पहले से ही मौजूद नहीं है। 2054 01:42:33,580 --> 01:42:38,660 >> तो, उदाहरण के लिए, मुझे आगे चलते हैं और cs50.h शामिल है, और शामिल 2055 01:42:38,660 --> 01:42:43,110 मानक IO.h, int मुख्य शून्य। 2056 01:42:43,110 --> 01:42:46,020 और अब हम एक है जाने के लिए तैयार प्लेसहोल्डर। 2057 01:42:46,020 --> 01:42:48,550 मैं चीजों को रखने के मुद्रण आज लोगों के नाम की तरह। 2058 01:42:48,550 --> 01:42:51,910 और कहा कि लगता है like-- अच्छा नहीं होगा अगर वहाँ 2059 01:42:51,910 --> 01:42:53,936 एक समारोह प्रिंट नाम कहा जाता था? 2060 01:42:53,936 --> 01:42:55,060 मैं printf का उपयोग करने की जरूरत नहीं है। 2061 01:42:55,060 --> 01:42:56,976 मैं याद करने की जरूरत नहीं है सभी प्रारूप कोड। 2062 01:42:56,976 --> 01:43:00,050 क्यों नहीं रहा, या क्यों नहीं, मुझे पहले किसी को किया था 2063 01:43:00,050 --> 01:43:02,980 एक समारोह में कहा जाता प्रिंट बनाने नाम है, कि कुछ नाम दिया, 2064 01:43:02,980 --> 01:43:03,980 बस इसे बाहर प्रिंट? 2065 01:43:03,980 --> 01:43:08,700 >> दूसरे शब्दों में, अगर मैं कहता हूँ, अरे, कंप्यूटर, मुझे एक स्ट्रिंग देना 2066 01:43:08,700 --> 01:43:11,870 इस तरह के लिए उपयोगकर्ता पूछ रही द्वारा, CS50 मिलता स्ट्रिंग समारोह के माध्यम से। 2067 01:43:11,870 --> 01:43:15,090 अरे, कंप्यूटर, में है कि स्ट्रिंग डाल बाएं हाथ की ओर में चर, 2068 01:43:15,090 --> 01:43:16,150 और कॉल यह बात है। 2069 01:43:16,150 --> 01:43:22,150 और फिर, अरे कंप्यूटर, आगे बढ़ो और मुद्रित उस व्यक्ति का नाम, हो गया। 2070 01:43:22,150 --> 01:43:26,240 >> अब, यह अच्छा होगा, क्योंकि इस कार्यक्रम है, जिसे उपयुक्त नाम, 2071 01:43:26,240 --> 01:43:29,170 मुझसे कहता है कि वह क्या करने वाला है उन समारोह के नाम के माध्यम से। 2072 01:43:29,170 --> 01:43:32,930 मुझे जाने और प्रोटोटाइप बनाने, दर्ज करें। 2073 01:43:32,930 --> 01:43:34,930 और, दुर्भाग्य से, इस उड़ान भरने के लिए नहीं जा रहा है। 2074 01:43:34,930 --> 01:43:39,430 >> Prototype.c, रेखा 7, चरित्र 5, त्रुटि, अंतर्निहित घोषणा 2075 01:43:39,430 --> 01:43:42,960 समारोह प्रिंट नाम की C99, C99 में अमान्य है 2076 01:43:42,960 --> 01:43:45,130 सी के एक संस्करण है, जिसका अर्थ कि 1999 में बाहर आया था। 2077 01:43:45,130 --> 01:43:45,730 बस इतना ही। 2078 01:43:45,730 --> 01:43:48,780 >> इसलिए मैं नहीं जानता कि क्या यह सब अभी तक इसका मतलब है। 2079 01:43:48,780 --> 01:43:50,810 लेकिन मैं लाल में त्रुटि को पहचान नहीं है। 2080 01:43:50,810 --> 01:43:51,770 यही कारण है कि बहुत स्पष्ट है। 2081 01:43:51,770 --> 01:43:53,769 >> और ऐसा लगता है कि साथ यहां हरी चरित्र, 2082 01:43:53,769 --> 01:43:57,520 मुद्दा प्रिंट नाम के साथ खुला है, कुछ शब्द एस, बंद कुछ शब्द, सेमी कॉलन। 2083 01:43:57,520 --> 01:44:01,800 लेकिन अंतर्निहित घोषणा समारोह हम संक्षेप में पहले देखा था। 2084 01:44:01,800 --> 01:44:04,880 इसका मतलब यह है, बस, कि बजना पता नहीं है कि मैं क्या मतलब है। 2085 01:44:04,880 --> 01:44:09,000 >> मैं एक शब्दावली शब्द का उपयोग किया है यह है कि कभी नहीं देखा या पहले सिखाया गया। 2086 01:44:09,000 --> 01:44:11,950 और इसलिए मैं इसे सिखाने की जरूरत है इस समारोह का मतलब है क्या। 2087 01:44:11,950 --> 01:44:13,590 इसलिए मुझे आगे जाना है और ऐसा करने जा रहा हूँ। 2088 01:44:13,590 --> 01:44:17,970 >> मुझे आगे जाना है और लागू करने के लिए जा रहा हूँ अपने ही समारोह में कहा जाता प्रिंट नाम। 2089 01:44:17,970 --> 01:44:24,720 और मैं कहना है इस प्रकार के रूप में जा रहा हूँ, यह है कि यह इस, printf, नमस्ते, प्रतिशत करता है 2090 01:44:24,720 --> 01:44:27,760 एस, बैकस्लैश एन, नाम, सेमी कॉलन। 2091 01:44:27,760 --> 01:44:29,250 तो मैं बस क्या किया? 2092 01:44:29,250 --> 01:44:31,325 >> तो यह पता चला है, करने के लिए अपने खुद के समारोह को लागू करने, 2093 01:44:31,325 --> 01:44:33,845 हम एक तरह से से कुछ उधार ले मुख्य रूप में एक ही संरचना 2094 01:44:33,845 --> 01:44:35,720 हम सिर्फ किया गया है कि के लिए ले जाया दी गई है, और मैं 2095 01:44:35,720 --> 01:44:37,730 पता है सिर्फ नकल और बहुत ज्यादा क्या चिपकाने 2096 01:44:37,730 --> 01:44:39,170 मैं अतीत में लिख दिया गया है। 2097 01:44:39,170 --> 01:44:40,570 लेकिन पैटर्न यहाँ नोटिस। 2098 01:44:40,570 --> 01:44:43,750 इंट, मुख्य, शून्य, हम अलग तंग करेंगे इससे पहले लंबे समय है कि क्या वास्तव में मतलब है। 2099 01:44:43,750 --> 01:44:46,160 >> लेकिन आज के लिए, बस समानता पर ध्यान दिया। 2100 01:44:46,160 --> 01:44:48,210 शून्य, प्रिंट का नाम, स्ट्रिंग नाम, तो वहाँ 2101 01:44:48,210 --> 01:44:50,310 एक बैंगनी कीवर्ड का है, जो हम शुरू करने के लिए जा रहे हैं 2102 01:44:50,310 --> 01:44:54,067 एक प्रकार की वापसी बुला रहा था, के नाम समारोह, और फिर इनपुट। 2103 01:44:54,067 --> 01:44:56,400 तो, वास्तव में, हम कर सकते हैं गढ़ने पिछले हफ्ते की तरह के इस तरह के 2104 01:44:56,400 --> 01:44:59,030 के रूप में, इस नाम या है कोड हम कर रहे हैं के एल्गोरिथ्म 2105 01:44:59,030 --> 01:45:00,761 write-- जा रहा एल्गोरिथ्म अंतर्निहित 2106 01:45:00,761 --> 01:45:02,010 कोड हम लिखने जा रहे हैं। 2107 01:45:02,010 --> 01:45:03,180 >> यह अपने इनपुट है। 2108 01:45:03,180 --> 01:45:04,670 यह अपनी उत्पादन है। 2109 01:45:04,670 --> 01:45:08,730 इस समारोह में, प्रिंट नाम है, स्ट्रिंग नाम बुलाया लेने के लिए बनाया गया है, 2110 01:45:08,730 --> 01:45:11,350 या जो भी, इनपुट के रूप में, और उसके बाद शून्य। 2111 01:45:11,350 --> 01:45:13,904 यह कुछ भी वापस नहीं करता है, जैसे स्ट्रिंग पाने के लिए या int करता मिलता है। 2112 01:45:13,904 --> 01:45:15,570 तो यह मुझे कुछ हाथ वापस करने के लिए जा रहा है। 2113 01:45:15,570 --> 01:45:17,960 यह सिर्फ एक किया जा रहा है साइड प्रभाव, तो बात है, 2114 01:45:17,960 --> 01:45:19,570 एक व्यक्ति के नाम छपाई की। 2115 01:45:19,570 --> 01:45:22,260 तो नोटिस, रेखा 7, मैं प्रिंट नाम कॉल कर सकते हैं। 2116 01:45:22,260 --> 01:45:25,920 रेखा 10, मैं परिभाषित कर सकते हैं या प्रिंट नाम को लागू करने। 2117 01:45:25,920 --> 01:45:28,450 लेकिन, दुर्भाग्य से, यह है कि पर्याप्त नहीं है। 2118 01:45:28,450 --> 01:45:31,230 >> मुझे आगे चलते हैं और बचाने के बाद इस कंपाइल। 2119 01:45:31,230 --> 01:45:33,910 वाह, अब, मैं इसे बनाया है बदतर है, यह प्रतीत होता है। 2120 01:45:33,910 --> 01:45:37,027 तो निहित घोषणा समारोह प्रिंट नाम अवैध है। 2121 01:45:37,027 --> 01:45:38,360 और, फिर से, वहाँ अधिक त्रुटियों है। 2122 01:45:38,360 --> 01:45:41,430 लेकिन जैसा कि मैंने पहले आगाह किया, के रूप में भी आप के साथ अभिभूत हो, तो 2123 01:45:41,430 --> 01:45:44,850 या एक छोटे से दुखी हैं तो कई देखने के लिए त्रुटियों, पहले पर ही ध्यान केंद्रित 2124 01:45:44,850 --> 01:45:47,500 अभी शुरू में, क्योंकि यह हो सकता है एक व्यापक प्रभाव पड़ा है। 2125 01:45:47,500 --> 01:45:51,970 तो सी, या बजना अधिक विशेष रूप से, अभी भी प्रिंट नाम पहचान नहीं है। 2126 01:45:51,970 --> 01:45:54,580 >> और उसकी वजह बजना है, डिजाइन के द्वारा, की तरह गूंगा है। 2127 01:45:54,580 --> 01:45:56,280 यह केवल करता है कि आप क्या करना है यह बताने के। 2128 01:45:56,280 --> 01:46:00,950 और यह केवल क्रम में ऐसा करता है जिसमें आप करते हैं यह बताने के लिए। 2129 01:46:00,950 --> 01:46:05,270 >> तो मैं लाइन चार पर मुख्य परिभाषित किया है, जैसे हम बहुत बार कर रहा है। 2130 01:46:05,270 --> 01:46:07,980 मैं लाइन पर 10 प्रिंट के नाम से परिभाषित किया है। 2131 01:46:07,980 --> 01:46:11,793 लेकिन मैं प्रयोग करने की कोशिश कर रहा हूँ लाइन सात पर प्रिंट नाम। 2132 01:46:11,793 --> 01:46:13,670 >> यह भी जल्द ही, अभी तक अस्तित्व में नहीं है। 2133 01:46:13,670 --> 01:46:19,150 तो मैं चालाक हो सकता है, और इस तरह हो सकता है, ठीक है, तो बस साथ खेलते हैं, 2134 01:46:19,150 --> 01:46:23,680 और प्रिंट ऊपर ले जाने के नाम यहां, और फिर से संकलन। 2135 01:46:23,680 --> 01:46:24,550 हे भगवान। 2136 01:46:24,550 --> 01:46:25,260 इसने काम कर दिया। 2137 01:46:25,260 --> 01:46:26,670 यह बेहद आसान था। 2138 01:46:26,670 --> 01:46:28,120 >> लेकिन तर्क ठीक है कि। 2139 01:46:28,120 --> 01:46:30,870 आप बजना को पढ़ाने के लिए है कि यह क्या है पहले समारोह को परिभाषित कर रहा है। 2140 01:46:30,870 --> 01:46:31,920 तो आप इसका इस्तेमाल कर सकते हैं। 2141 01:46:31,920 --> 01:46:33,940 लेकिन, सच में, यह लगता है एक फिसलन ढलान की तरह। 2142 01:46:33,940 --> 01:46:35,773 >> तो हर बार मैं चला एक समस्या में, मैं अभी कर रहा हूँ 2143 01:46:35,773 --> 01:46:39,450 पर प्रकाश डाला और कोड की नकल करने के लिए जा रहा मैंने लिखा था, यह कटौती और यहां इसे पेस्ट करें। 2144 01:46:39,450 --> 01:46:41,370 और, निश्चित रूप से, हम कर सकते थे कुछ परिदृश्यों ईजाद 2145 01:46:41,370 --> 01:46:43,286 जहां एक समारोह हो सकता है एक और फोन करने की जरूरत है। 2146 01:46:43,286 --> 01:46:46,030 और तुम बस हर नहीं डाल सकते हैं हर दूसरे के ऊपर कार्य करते हैं। 2147 01:46:46,030 --> 01:46:47,930 >> तो यह है वहाँ पता चला है एक बेहतर समाधान। 2148 01:46:47,930 --> 01:46:50,100 हम इस होना छोड़ सकते हैं। 2149 01:46:50,100 --> 01:46:53,677 और, सच में, यह आम तौर पर अच्छा है, और सुविधाजनक है, और अच्छे डिजाइन 2150 01:46:53,677 --> 01:46:56,760 मुख्य पहले डाल दिया, क्योंकि, फिर से, जैसे जब हरे रंग का झंडा क्लिक किया मुख्य, 2151 01:46:56,760 --> 01:46:59,027 उस समारोह है कि डिफ़ॉल्ट रूप से मार डाला जाता है। 2152 01:46:59,027 --> 01:47:01,110 तो तुम भी डाल सकता है यह फ़ाइल के शीर्ष पर 2153 01:47:01,110 --> 01:47:03,560 इतना है कि आप या कोई भी जब अन्य मानव फ़ाइल पर लग रहा है 2154 01:47:03,560 --> 01:47:06,360 आप जानते हैं कि क्या हो रहा है सिर्फ मुख्य पहले पढ़ने के द्वारा। 2155 01:47:06,360 --> 01:47:15,360 तो यह पता चला है, हम बजना बता सकते हैं लगातार, हे, बजना, लाइन चार पर, 2156 01:47:15,360 --> 01:47:17,940 मैं लागू करने के लिए वादा एक समारोह में कहा जाता प्रिंट 2157 01:47:17,940 --> 01:47:22,600 नाम है कि एक स्ट्रिंग बुलाया नाम लेता है इनपुट, और रिटर्न कुछ नहीं, शून्य के रूप में। 2158 01:47:22,600 --> 01:47:24,770 और मैं करने के लिए आसपास मिल जाएगा बाद में इसे लागू करने। 2159 01:47:24,770 --> 01:47:25,680 >> यहाँ मुख्य आता है। 2160 01:47:25,680 --> 01:47:29,130 मुख्य लाइन पर अब 9 उपयोग कर सकते हैं प्रिंट का नाम क्योंकि बजना 2161 01:47:29,130 --> 01:47:32,600 भरोसा है कि, अंत में, यह परिभाषा का सामना करेंगे 2162 01:47:32,600 --> 01:47:34,880 प्रिंट नाम के कार्यान्वयन की। 2163 01:47:34,880 --> 01:47:37,390 तो मेरी फाइल को बचाने के बाद, चलो मुझे आगे जाना है और प्रोटोटाइप बनाने, 2164 01:47:37,390 --> 01:47:38,498 इस समय अच्छा लग रहा है। 2165 01:47:38,498 --> 01:47:43,470 डॉट स्लेश, प्रोटोटाइप, मुझे जाने आगे जाकर एक नाम में टाइप करें। 2166 01:47:43,470 --> 01:47:48,440 डेविड, हैलो डेविड, Zamila, हैलो Zamila, और, वास्तव में, अब यह काम करता है। 2167 01:47:48,440 --> 01:47:52,200 >> तो घटक है कि यहाँ हम है है एक कस्टम समारोह बना दिया, एक कस्टम की तरह 2168 01:47:52,200 --> 01:47:54,219 स्क्रैच ब्लॉक हम यह कह रहे हैं। 2169 01:47:54,219 --> 01:47:57,010 लेकिन स्क्रैच के विपरीत, जहां आप कर सकते हैं बस इसे बनाने के लिए और यह प्रयोग शुरू, 2170 01:47:57,010 --> 01:47:59,330 अब हम एक होने की जरूरत छोटे से अधिक पंडिताऊ, 2171 01:47:59,330 --> 01:48:03,410 और वास्तव में बजना प्रशिक्षित का उपयोग करने के लिए, या यह की उम्मीद है। 2172 01:48:03,410 --> 01:48:09,140 अब, एक तरफ, के रूप में क्यों यह सब समय है हम बस आँख बंद करके विश्वास सहित पर किया गया 2173 01:48:09,140 --> 01:48:12,170 CS50.h, और मानक IO.h सहित? 2174 01:48:12,170 --> 01:48:15,190 >> खैर, यह पता चला है, कुछ अन्य बातों के अलावा, 2175 01:48:15,190 --> 01:48:18,550 लगता है कि सभी में उन डॉट एच फ़ाइलें, जो भी हो फ़ाइलें होने के लिए। 2176 01:48:18,550 --> 01:48:20,460 वे इतनी बात करने के लिए फ़ाइलों हैडर रहे हैं। 2177 01:48:20,460 --> 01:48:23,270 वे अभी भी कर रहे हैं लेकिन सी में लिखा वे फ़ाइल का एक अलग प्रकार रहे। 2178 01:48:23,270 --> 01:48:28,690 >> अभी के लिए, तुम बहुत ज्यादा मान सकते हैं सभी CS50.h के अंदर यह है कि 2179 01:48:28,690 --> 01:48:33,360 इस तरह से कुछ एक-लाइनर्स, नहीं है कार्यों बुलाया प्रिंट नाम, 2180 01:48:33,360 --> 01:48:36,840 लेकिन के लिए तार हो जाओ फ्लोट, और कुछ अन्य। 2181 01:48:36,840 --> 01:48:41,510 और वहाँ समान प्रोटोटाइप कर रहे हैं, एक liners, मानक IO.h के अंदर 2182 01:48:41,510 --> 01:48:46,241 printf, जिसमें अब है के लिए मेरे अपने प्रिंट नाम समारोह। 2183 01:48:46,241 --> 01:48:49,490 तो दूसरे शब्दों में, इस पूरे समय हम है बस आँख बंद करके कॉपी करने दिया और चिपकाने 2184 01:48:49,490 --> 01:48:51,780 यह शामिल है, में शामिल कि, क्या चल रहा है? 2185 01:48:51,780 --> 01:48:55,310 उन सुराग के बस की तरह हैं क्या कार्य करने के लिए के रूप में करने के लिए बजना 2186 01:48:55,310 --> 01:49:00,170 कर रहे हैं, वास्तव में, लागू किया, बस विभिन्न फाइलों में कहीं 2187 01:49:00,170 --> 01:49:02,440 कहीं और सिस्टम पर। 2188 01:49:02,440 --> 01:49:05,160 >> इसलिए हम प्रिंट नाम क्रियान्वित किया है। 2189 01:49:05,160 --> 01:49:07,910 इसे इस पक्ष असर करता है स्क्रीन पर कुछ मुद्रण। 2190 01:49:07,910 --> 01:49:10,170 लेकिन यह वास्तव में नहीं है मुझे कुछ हाथ वापस। 2191 01:49:10,170 --> 01:49:12,200 हम कैसे जाने के बारे में एक कार्यक्रम को लागू करने कि 2192 01:49:12,200 --> 01:49:14,510 मुझे कुछ हाथ वापस करता है? 2193 01:49:14,510 --> 01:49:15,580 >> ठीक है, चलो इस कोशिश करते हैं। 2194 01:49:15,580 --> 01:49:21,360 मुझे आगे जाना है और लागू करते हैं एक फ़ाइल कहा जाता return.c 2195 01:49:21,360 --> 01:49:24,530 तो हम कैसे कुछ प्रदर्शित कर सकते हैं जैसे तार हो, या इंट जाओ, 2196 01:49:24,530 --> 01:49:27,340 वास्तव में लौटने है उपयोगकर्ता के लिए वापस कुछ और। 2197 01:49:27,340 --> 01:49:29,840 आगे बढ़ते हैं और int मुख्य शून्य को परिभाषित करते हैं। 2198 01:49:29,840 --> 01:49:33,230 >> और, फिर, भविष्य में, हम करेंगे समझा क्या है कि int और उस शून्य 2199 01:49:33,230 --> 01:49:34,090 वास्तव में कर रही है। 2200 01:49:34,090 --> 01:49:35,840 लेकिन आज के लिए, हम करेंगे बिना प्रमाण मान लेना। 2201 01:49:35,840 --> 01:49:39,970 मैं, आगे और printf जाने के लिए जा रहा हूँ एक अच्छा उपयोगकर्ता अनुभव के लिए, एक्स है। 2202 01:49:39,970 --> 01:49:44,360 और फिर मैं के लिए प्रतीक्षा करने के लिए जा रहा हूँ उपयोगकर्ता मुझे मिल int के साथ एक्स देने के लिए। 2203 01:49:44,360 --> 01:49:48,459 >> और फिर मैं आगे जाने के लिए जा रहा हूँ और वर्ग के लिए एक्स बाहर प्रिंट। 2204 01:49:48,459 --> 01:49:50,500 तो जब आप केवल एक है कीबोर्ड, सामान्यतः लोग 2205 01:49:50,500 --> 01:49:52,600 थोड़ा गाजर का उपयोग कीबोर्ड पर प्रतीक 2206 01:49:52,600 --> 01:49:55,330 सत्ता में प्रतिनिधित्व करने के लिए की, या के प्रतिपादक। 2207 01:49:55,330 --> 01:49:58,960 तो चुकता एक्स मैं मौजूद है। 2208 01:49:58,960 --> 01:50:00,660 >> और अब मैं यह करने के लिए जा रहा हूँ। 2209 01:50:00,660 --> 01:50:03,940 मैं सिर्फ do-- सका x क्या है चुकता? एक्स एक्स चुकता बार एक्स है। 2210 01:50:03,940 --> 01:50:06,690 >> और हमने किया है कि यह कुछ पहले समय पहले से ही आज। 2211 01:50:06,690 --> 01:50:08,730 इस तरह महसूस नहीं करता कि सभी बहुत प्रगति। 2212 01:50:08,730 --> 01:50:09,570 आपको पता है कि? 2213 01:50:09,570 --> 01:50:13,100 के उस विचार का कुछ लाभ उठाने के चलो अमूर्त के पिछली बार से। 2214 01:50:13,100 --> 01:50:16,080 >> अगर यह अच्छा नहीं होगा वहाँ एक समारोह में कहा जाता है 2215 01:50:16,080 --> 01:50:18,460 वर्ग कि ठीक है कि क्या करता है? 2216 01:50:18,460 --> 01:50:20,640 यह अभी भी, के अंत में दिन, एक ही गणित करता है। 2217 01:50:20,640 --> 01:50:22,410 लेकिन चलो सार दूर लेने के विचार 2218 01:50:22,410 --> 01:50:25,280 एक संख्या से गुणा दूसरा, और इसे सिर्फ एक नाम दे, 2219 01:50:25,280 --> 01:50:27,360 की तरह इस मूल्य वर्ग। 2220 01:50:27,360 --> 01:50:29,560 >> और, दूसरे शब्दों में, में सी, के एक समारोह बना देना 2221 01:50:29,560 --> 01:50:32,660 कहा जाता है कि वर्ग ठीक है कि नहीं करता है। 2222 01:50:32,660 --> 01:50:34,600 यह वर्ग के नाम से जाना जा रहा है। 2223 01:50:34,600 --> 01:50:35,790 यह एक पूर्णांक के ले जा रहा है। 2224 01:50:35,790 --> 01:50:37,820 और हम करेंगे सिर्फ होगा यह n फोन, डिफ़ॉल्ट रूप से। 2225 01:50:37,820 --> 01:50:39,403 >> लेकिन हम यह कुछ भी हम चाहते हैं कह सकते हैं। 2226 01:50:39,403 --> 01:50:42,900 और यह सब करने के लिए जा रहा है कि करते हैं, सचमुच, वापसी है 2227 01:50:42,900 --> 01:50:45,810 एन बार n का नतीजा है। 2228 01:50:45,810 --> 01:50:48,980 लेकिन ऐसा नहीं है क्योंकि कुछ लौट रहा है, जो 2229 01:50:48,980 --> 01:50:53,690 बैंगनी हम है खोजशब्द है पहले कभी नहीं देखा, मैं, लाइन 11 पर, 2230 01:50:53,690 --> 01:50:55,410 न सिर्फ शून्य कह सकते हैं इस बार। 2231 01:50:55,410 --> 01:51:01,320 >> शून्य, उदाहरण में हम सिर्फ देखा प्रिंट नाम के बजाय, बस का अर्थ है, 2232 01:51:01,320 --> 01:51:02,190 कुछ करो। 2233 01:51:02,190 --> 01:51:04,170 लेकिन मुझे कुछ हाथ वापस नहीं है। 2234 01:51:04,170 --> 01:51:06,790 इस मामले में, मैं चाहता हूँ लौटने के लिए एन बार एन, 2235 01:51:06,790 --> 01:51:08,460 या जो कुछ भी है, उस नंबर। 2236 01:51:08,460 --> 01:51:12,460 >> तो मैं नहीं कह सकता, हे, कंप्यूटर, मैं शून्य कुछ भी नहीं वापस। 2237 01:51:12,460 --> 01:51:16,166 यह वापस करने के लिए प्रकृति द्वारा एक पूर्णांक जा रहा है। 2238 01:51:16,166 --> 01:51:17,790 और इतना है कि सब है कि यहाँ पर जा रहा है। 2239 01:51:17,790 --> 01:51:20,070 >> इनपुट वर्ग के लिए एक पूर्णांक के होने जा रहा है। 2240 01:51:20,070 --> 01:51:24,760 और इतना है कि हम इसका इस्तेमाल कर सकते हैं, यह करने के लिए है एक नाम है, एन यह उत्पादन करने के लिए जा रहा है 2241 01:51:24,760 --> 01:51:26,240 एक int है कि एक नाम की जरूरत नहीं है। 2242 01:51:26,240 --> 01:51:29,590 हम यह मुख्य करने के लिए छोड़ सकते हैं, या जो कोई भी है मुझे का उपयोग कर इस मान को अगर हम याद करने की 2243 01:51:29,590 --> 01:51:31,120 अपने आप ही चर के साथ चाहते हैं। 2244 01:51:31,120 --> 01:51:33,230 >> और, फिर से, केवल नए यहाँ खोजशब्द वापसी है। 2245 01:51:33,230 --> 01:51:34,480 और मैं बस कुछ गणित कर रहा हूँ। 2246 01:51:34,480 --> 01:51:41,825 अगर मैं वास्तव में अनावश्यक बनना चाहता था, मैं कह सकता int उत्पाद हो जाता एन बार एन। 2247 01:51:41,825 --> 01:51:44,170 >> और फिर मैं वापस उत्पाद कह सकते हैं। 2248 01:51:44,170 --> 01:51:47,360 लेकिन, फिर से, मेरी बात के पहले यह सिर्फ अच्छा नहीं किया जा रहा design-- 2249 01:51:47,360 --> 01:51:50,060 जैसे, क्यों एक नाम का परिचय, एक प्रतीक है, उत्पाद की तरह, 2250 01:51:50,060 --> 01:51:51,570 सिर्फ इसे तुरंत वापस जाने के लिए? 2251 01:51:51,570 --> 01:51:53,670 यह एक छोटे से क्लीनर है, एक छोटे से तंग है, तो 2252 01:51:53,670 --> 01:51:59,380 बात करने के लिए, बस वापसी एन बार कहने के लिए n, कुल मिलाकर इस लाइन से छुटकारा मिलता है। 2253 01:51:59,380 --> 01:52:02,860 >> और यह सिर्फ कम पढ़ने के लिए कोड है, गलतियों के लिए कम अवसर। 2254 01:52:02,860 --> 01:52:05,180 और हम इस करता है, तो देखते हैं वास्तव में अब काम करता है। 2255 01:52:05,180 --> 01:52:09,380 अब, मैं जा रहा हूँ आगे और बदले हैं। 2256 01:52:09,380 --> 01:52:11,460 >> ओह, समारोह की अंतर्निहित घोषणा। 2257 01:52:11,460 --> 01:52:14,080 मैं इस गलती से पहले कोई बड़ी बात नहीं बनाया है। 2258 01:52:14,080 --> 01:52:18,950 मुझे बस टाइप करते हैं, या प्रकाश डाला और कॉपी, ठीक उसी समारोह प्रोटोटाइप, 2259 01:52:18,950 --> 01:52:21,342 या हस्ताक्षर, समारोह को यहां की। 2260 01:52:21,342 --> 01:52:22,800 या मैं पूरे समारोह स्थानांतरित कर सकता है। 2261 01:52:22,800 --> 01:52:23,841 >> लेकिन यह है कि एक छोटे से आलसी है। 2262 01:52:23,841 --> 01:52:24,870 इसलिए हम ऐसा नहीं करेंगे। 2263 01:52:24,870 --> 01:52:27,960 अब, मुझे वापसी कर देना फिर, स्लेश वापसी डॉट। 2264 01:52:27,960 --> 01:52:32,790 >> एक्स 2. एक्स चुकता है 4 है। एक्स 3 एक्स चुकता है 9 है। 2265 01:52:32,790 --> 01:52:35,300 और समारोह लगती है अब काम करने के लिए। 2266 01:52:35,300 --> 01:52:36,550 तो क्या यहाँ अंतर है? 2267 01:52:36,550 --> 01:52:42,520 मैं एक समारोह में कहा कि वर्ग कहा जाता है, इस मामले में, जो मैं एक इनपुट में डाल दिया है। 2268 01:52:42,520 --> 01:52:43,830 और मैं एक आउटपुट वापस जाओ। 2269 01:52:43,830 --> 01:52:46,210 और फिर भी, इससे पहले, यदि मैं अन्य उदाहरण खोलने 2270 01:52:46,210 --> 01:52:51,640 पहले से है, जो prototype.c कहा जाता था, 2271 01:52:51,640 --> 01:52:54,770 मैं प्रिंट नाम था, जो शून्य लौटे, तो बात है, 2272 01:52:54,770 --> 01:52:58,730 या फिर यह कुछ भी नहीं लौटे, और बस एक पक्ष प्रभाव नहीं पड़ा। 2273 01:52:58,730 --> 01:53:00,230 >> तो यहाँ क्या हो रहा है? 2274 01:53:00,230 --> 01:53:03,520 खैर, समारोह पर विचार बस एक पल के लिए स्ट्रिंग मिलता है। 2275 01:53:03,520 --> 01:53:06,570 हम समारोह का उपयोग किया गया है निम्नलिखित तरीके से स्ट्रिंग मिलता है। 2276 01:53:06,570 --> 01:53:10,464 >> हम एक समारोह मिलता लिया है स्ट्रिंग की तरह, cs50.h शामिल 2277 01:53:10,464 --> 01:53:16,624 मानक IO.h, पूर्णांक, मुख्य, शून्य शामिल हैं। 2278 01:53:16,624 --> 01:53:18,790 और फिर हर बार जब मैं इस प्रकार अब तक मिल स्ट्रिंग कहा जाता है, 2279 01:53:18,790 --> 01:53:23,260 मैंने कहा है कुछ पसंद है, स्ट्रिंग स्ट्रिंग प्राप्त हो जाता है क्योंकि मिल string-- 2280 01:53:23,260 --> 01:53:27,880 चलो इस get.c-- मिल स्ट्रिंग कहते हैं अपने आप में एक स्ट्रिंग रिटर्न कि मैं तो कर सकते हैं 2281 01:53:27,880 --> 01:53:32,050 उपयोग करते हैं, और नमस्ते, कहते हैं, अल्पविराम, प्रतिशत है, बैकस्लैश एन, एस। 2282 01:53:32,050 --> 01:53:35,660 >> तो यह एक ही उदाहरण है, वास्तव में, हम पहले भी था। 2283 01:53:35,660 --> 01:53:37,920 तो स्ट्रिंग मान देता मिलता है। 2284 01:53:37,920 --> 01:53:41,260 लेकिन एक पल पहले, प्रिंट स्ट्रिंग एक मूल्य वापस नहीं करता है। 2285 01:53:41,260 --> 01:53:42,721 यह सिर्फ एक पक्ष प्रभाव पड़ता है। 2286 01:53:42,721 --> 01:53:44,220 तो यह एक बुनियादी फर्क है। 2287 01:53:44,220 --> 01:53:46,710 हम अलग अलग देखा है अब कार्यों के प्रकार, 2288 01:53:46,710 --> 01:53:49,490 जिनमें से कुछ लौट आए हैं मूल्यों, जिनमें से कुछ को नहीं। 2289 01:53:49,490 --> 01:53:51,890 तो शायद यह स्ट्रिंग, या पूर्णांक, या नाव है। 2290 01:53:51,890 --> 01:53:53,480 या शायद यह सिर्फ शून्य है। 2291 01:53:53,480 --> 01:53:55,710 >> और अंतर है कि इन कार्यों कि 2292 01:53:55,710 --> 01:53:59,940 डेटा पाने के लिए और एक मूल्य वापसी कर रहे हैं वास्तव मेज पर कुछ वापस लाने, 2293 01:53:59,940 --> 01:54:01,110 इतनी बात करने के लिए। 2294 01:54:01,110 --> 01:54:03,710 तो चलो आगे चलते हैं और एक अंतिम सेट में देखो 2295 01:54:03,710 --> 01:54:09,129 इस बात का एहसास देता है, अब, उदाहरण के कैसे हम हो सकता है, वास्तव में, अमूर्त बेहतर है, 2296 01:54:09,129 --> 01:54:11,670 और बेहतर, और बेहतर है, या अधिक, और अधिक, और अधिक, क्रम में 2297 01:54:11,670 --> 01:54:13,810 लिखने के लिए, अंत में, बेहतर कोड। 2298 01:54:13,810 --> 01:54:16,860 आगे बढ़ते हैं, और आत्मा में चलो स्क्रैच से, निम्न कार्य करें। 2299 01:54:16,860 --> 01:54:21,700 >> मुझे आगे जाना है और शामिल करते हैं CS50.h और मानक IO.h. 2300 01:54:21,700 --> 01:54:24,010 मुझे आगे जाना है और दे अपने आप को एक पूर्णांक, मुख्य, शून्य। 2301 01:54:24,010 --> 01:54:27,380 और मुझे आगे जाना है, इस cough.c कहते हैं। 2302 01:54:27,380 --> 01:54:35,510 >> और मुझे आगे और अभी चलते हैं स्क्रैच की तरह, खांसी / एन बाहर प्रिंट। 2303 01:54:35,510 --> 01:54:37,170 और मैं इस तीन बार करना चाहते हैं। 2304 01:54:37,170 --> 01:54:39,670 तो मैं कर रहा हूँ, ज़ाहिर है, बस जा कॉपी और तीन बार पेस्ट करने के लिए। 2305 01:54:39,670 --> 01:54:46,440 अब मैं करने जा रहा हूँ डॉट स्लेश खाँसी खाँसी। 2306 01:54:46,440 --> 01:54:50,120 के अपने आप को एक छोटे से अधिक कमरा दे दो इधर, दर्ज करें, खांसी, खांसी, खांसी। 2307 01:54:50,120 --> 01:54:53,970 >> वहाँ है, जाहिर है, पहले से ही एक सुधार के लिए अवसर। 2308 01:54:53,970 --> 01:54:55,679 मैं नकल और चिपकाया है एक बार कुछ आज। 2309 01:54:55,679 --> 01:54:58,261 लेकिन यह केवल था, इसलिए मैं नहीं था के रूप में कई पात्रों को टाइप करने के लिए की है। 2310 01:54:58,261 --> 01:55:00,250 मैं अभी भी बदला क्या कोड के उन लाइनें हैं। 2311 01:55:00,250 --> 01:55:04,240 >> इन तीन लाइनों, समान हैं जो आलसी महसूस करता है और वास्तव में है, 2312 01:55:04,240 --> 01:55:07,110 और शायद सही तरीका नहीं है। 2313 01:55:07,110 --> 01:55:11,029 क्या घटक के साथ तो हम इस कोड को सुधार सकता है? 2314 01:55:11,029 --> 01:55:12,570 हम कॉपी और पेस्ट कोड की जरूरत नहीं है। 2315 01:55:12,570 --> 01:55:15,070 >> और, वास्तव में, किसी भी समय आप महसूस करते हैं खुद को कॉपी करने और चिपकाने, 2316 01:55:15,070 --> 01:55:17,700 और यहां तक ​​कि कोड को बदलने नहीं, बाधाओं वहाँ एक बेहतर तरीका है कर रहे हैं। 2317 01:55:17,700 --> 01:55:19,470 और, वास्तव में, वहाँ है। 2318 01:55:19,470 --> 01:55:22,510 मुझे आगे चलते हैं और एक पाश के लिए करते हैं, भले ही वाक्य रचना नहीं हो सकता है 2319 01:55:22,510 --> 01:55:24,570 स्वाभाविक रूप से अभी तक नहीं आया। 2320 01:55:24,570 --> 01:55:29,494 >> इस तीन बार करो, बस following-- कर रही द्वारा 2321 01:55:29,494 --> 01:55:31,160 और मैं अभ्यास से यह पता करने के लिए होता है। 2322 01:55:31,160 --> 01:55:32,810 लेकिन अब हम उदाहरण के एक नंबर है। 2323 01:55:32,810 --> 01:55:34,950 और अगर आप ऑनलाइन देख लेंगे अभी भी अधिक संदर्भ। 2324 01:55:34,950 --> 01:55:37,790 >> यह लाइन 6 पर वाक्य रचना है कि ज्यादा स्क्रैच कि दोहराता की तरह 2325 01:55:37,790 --> 01:55:40,090 ब्लॉक, निम्नलिखित तीन बार दोहराएँ। 2326 01:55:40,090 --> 01:55:41,340 यह अभी के लिए एक छोटी सी जादुई है। 2327 01:55:41,340 --> 01:55:43,050 लेकिन यह अधिक हो जाएगा, और अधिक परिचित। 2328 01:55:43,050 --> 01:55:45,050 >> और इसे दोहराने जा रहा है लाइन आठ में तीन बार, 2329 01:55:45,050 --> 01:55:52,390 तो यह है कि अगर मैं फिर से संकलन बनाने खांसी, डॉट स्लेश खांसी, खांसी, खांसी, खाँसी। 2330 01:55:52,390 --> 01:55:54,030 यह अभी भी उसी तरह काम करता है। 2331 01:55:54,030 --> 01:55:55,550 तो यह है कि सब ठीक है और अच्छा है। 2332 01:55:55,550 --> 01:55:58,200 लेकिन यह है कि बहुत अनमना नहीं है। 2333 01:55:58,200 --> 01:55:59,371 >> यह पूरी तरह से सही है। 2334 01:55:59,371 --> 01:56:01,370 लेकिन यह वहाँ की तरह लगता है एक अवसर हो सकता है, 2335 01:56:01,370 --> 01:56:03,750 की दुनिया में के रूप में स्क्रैच, शुरू की तरह करने के लिए 2336 01:56:03,750 --> 01:56:07,530 इतना है कि कुछ शब्दों के यहाँ जोड़ने के लिए मैं सिर्फ पाश के लिए कुछ भी नहीं है, 2337 01:56:07,530 --> 01:56:09,867 और एक समारोह का कहना है कि खाँसी, या खांसी करता है। 2338 01:56:09,867 --> 01:56:10,450 आपको पता है कि? 2339 01:56:10,450 --> 01:56:12,620 मुझे एक होने की कोशिश करते हैं उस से भी छोटे से कूलर, 2340 01:56:12,620 --> 01:56:16,090 और वास्तव में एक समारोह के बारे में है कि कुछ साइड इफेक्ट है, यह खांसी कहते हैं। 2341 01:56:16,090 --> 01:56:20,830 >> और यह कोई इनपुट लेता है, और आउटपुट के रूप में कोई मान देता है। 2342 01:56:20,830 --> 01:56:22,680 लेकिन क्या आप जानते हैं कि यह क्या करता है? 2343 01:56:22,680 --> 01:56:29,370 यह this-- printf करता है, बोली गंदें शब्द बोलना, खाँसी। 2344 01:56:29,370 --> 01:56:32,380 >> और अब यहाँ तक, मैं जा रहा हूँ आगे और int के लिए जाना है, 2345 01:56:32,380 --> 01:56:36,070 मैं शून्य मैं प्लस प्लस हो जाता है, मैं कम से कम 3,। 2346 01:56:36,070 --> 01:56:39,770 मैं printf ऐसा नहीं करने के लिए है, जो जा रहा हूँ यकीनन एक निम्न स्तर के कार्यान्वयन 2347 01:56:39,770 --> 01:56:40,270 विस्तार। 2348 01:56:40,270 --> 01:56:41,353 मुझे परवाह नहीं है कैसे खाँसी। 2349 01:56:41,353 --> 01:56:43,240 मैं सिर्फ खांसी समारोह का उपयोग करना चाहते हैं। 2350 01:56:43,240 --> 01:56:44,840 और मैं सिर्फ खांसी फोन करने के लिए जा रहा हूँ। 2351 01:56:44,840 --> 01:56:46,204 >> अब, विरोधाभास पर ध्यान दिया। 2352 01:56:46,204 --> 01:56:49,370 जब आप एक समारोह फोन है, अगर तुम नहीं करते यह जानकारी, पूरी तरह से ठीक देना चाहता हूँ। 2353 01:56:49,370 --> 01:56:51,780 अभी खुला Paren, बंद करना कुछ शब्द, और आप कर रहे हैं। 2354 01:56:51,780 --> 01:56:56,271 >> जब आप एक समारोह को परिभाषित है, या एक समारोह के प्रोटोटाइप घोषित, 2355 01:56:56,271 --> 01:56:58,770 यदि आप पहले से जानते हैं कि यह नहीं है किसी भी तर्क लेने के लिए जा रहा है, 2356 01:56:58,770 --> 01:57:01,170 वहाँ उन कोष्ठकों में शून्य कहते हैं। 2357 01:57:01,170 --> 01:57:05,660 और कहा कि निश्चित करता है कि आप गलती से यह दुरुपयोग नहीं होगा। 2358 01:57:05,660 --> 01:57:07,020 मुझे आगे जाना है और खांसी कर दूं। 2359 01:57:07,020 --> 01:57:08,540 और, बेशक, मैं एक गलती की है। 2360 01:57:08,540 --> 01:57:10,410 >> Dammit, वहाँ है कि अस्पष्ट घोषणा। 2361 01:57:10,410 --> 01:57:11,325 लेकिन वह ठीक है। 2362 01:57:11,325 --> 01:57:12,590 यह एक आसान तय है। 2363 01:57:12,590 --> 01:57:18,240 मैं सिर्फ प्रोटोटाइप उच्च ऊपर की जरूरत है मेरी फाइल में से मैं वास्तव में यह उपयोग कर रहा हूँ। 2364 01:57:18,240 --> 01:57:20,070 >> तो अब मुझे खांसी फिर, अच्छा बनाते हैं। 2365 01:57:20,070 --> 01:57:20,790 अब यह काम कर रहा है। 2366 01:57:20,790 --> 01:57:22,930 खांसी, खांसी, खांसी, खांसी बनाओ। 2367 01:57:22,930 --> 01:57:25,930 तो क्या आप सोच सकते हैं कि हम वास्तव में कर रहे बस पर इस समस्या इंजीनियरिंग। 2368 01:57:25,930 --> 01:57:26,763 और, वास्तव में, हम कर रहे हैं। 2369 01:57:26,763 --> 01:57:28,870 यह एक अच्छी बात नहीं है एक कार्यक्रम के उम्मीदवार 2370 01:57:28,870 --> 01:57:31,930 के लिए समय पर पुनर्रचना, और कर रही है क्या 2371 01:57:31,930 --> 01:57:35,645 श्रेणीबद्ध अपघटन कहा जाता है, जहाँ आप कुछ कोड लेते हैं, और उसके बाद 2372 01:57:35,645 --> 01:57:38,790 आप किस तरह के कारक चीजें बाहर, के रूप में तो उन्हें अधिक शब्दों के मानो, 2373 01:57:38,790 --> 01:57:40,930 और यह अंततः लंबी अवधि के पुन: उपयोग। 2374 01:57:40,930 --> 01:57:43,490 लेकिन यह की ओर एक निर्माण खंड है और अधिक परिष्कृत कार्यक्रमों 2375 01:57:43,490 --> 01:57:45,600 कि हम शुरू कर देंगे लंबे समय से पहले कि लेखन 2376 01:57:45,600 --> 01:57:50,090 हमें शब्दावली करने की अनुमति देता जिसके साथ बेहतर कोड लिखने के लिए। 2377 01:57:50,090 --> 01:57:52,920 और, वास्तव में, चलो देखते हैं कि हम यदि यह आगे सामान्यीकरण नहीं कर सकते। 2378 01:57:52,920 --> 01:57:57,984 >> यह एक छोटी लंगड़ा लगता है कि मैं, मुख्य, पाश के लिए इस रफ़ू के बारे में चिंता करने की जरूरत है, 2379 01:57:57,984 --> 01:57:59,400 और फिर और फिर खांसी बुला रही है। 2380 01:57:59,400 --> 01:58:03,050 क्यों मैं सिर्फ खांसी नहीं बता सकता, तीन बार खांसी कृपया? 2381 01:58:03,050 --> 01:58:08,170 दूसरे शब्दों में, मैं क्यों नहीं कर सकते हैं बस खाँसी और ऐसा करने के लिए इनपुट दे? 2382 01:58:08,170 --> 01:58:11,270 >> मैं सिर्फ क्यों नहीं कह सकते हैं, में मुख्य खांसी तीन बार। 2383 01:58:11,270 --> 01:58:13,150 और अब, इस तरह के जादुई है। 2384 01:58:13,150 --> 01:58:14,540 यह यहाँ बहुत चलने का है। 2385 01:58:14,540 --> 01:58:15,940 और यह एक बच्चे कदम है, वास्तव में। 2386 01:58:15,940 --> 01:58:19,250 >> लेकिन सिर्फ क्षमता पर कहने के लिए लाइन आठ, तीन बार खांसी, 2387 01:58:19,250 --> 01:58:20,730 यह सिर्फ इतना अधिक पठनीय है। 2388 01:58:20,730 --> 01:58:24,210 और, इसके अलावा, मुझे पता है की जरूरत नहीं है या देखभाल कैसे खांसी कार्यान्वित किया जाता है। 2389 01:58:24,210 --> 01:58:26,460 और, वास्तव में, बाद में अवधि और अंतिम परियोजनाओं के लिए, 2390 01:58:26,460 --> 01:58:29,150 आप के साथ एक परियोजना से निपटने यदि एक सहपाठी या दो सहपाठियों, 2391 01:58:29,150 --> 01:58:32,370 तुम्हें पता चलेगा कि आप के लिए जा रहे हैं करने के लिए है, या, काम को विभाजित करना चाहते हैं। 2392 01:58:32,370 --> 01:58:34,650 >> और आप यह तय करना चाहते करने जा रहे हैं अग्रिम में, कौन क्या कर रहा है, 2393 01:58:34,650 --> 01:58:35,483 और जो टुकड़ों में? 2394 01:58:35,483 --> 01:58:37,520 और न यह अच्छा होगा यदि आप, उदाहरण के लिए, 2395 01:58:37,520 --> 01:58:40,100 मुख्य लेखन के आरोप, किया ले। 2396 01:58:40,100 --> 01:58:43,470 और अपने रूममेट, या अपने साथी अधिक आम तौर पर, 2397 01:58:43,470 --> 01:58:45,230 खांसी को लागू करने का ख्याल रखता है। 2398 01:58:45,230 --> 01:58:49,540 >> और इस विभाजन, इन अमूर्त की दीवारों, 2399 01:58:49,540 --> 01:58:52,310 या यदि अमूर्त की परतें आप करेंगे, सुपर शक्तिशाली हैं 2400 01:58:52,310 --> 01:58:55,480 विशेष रूप से बड़ा करने के लिए है, क्योंकि और अधिक जटिल कार्यक्रमों और प्रणालियों, 2401 01:58:55,480 --> 01:59:00,070 यह कई लोगों के निर्माण के लिए अनुमति देता है चीजें एक साथ, और अंततः 2402 01:59:00,070 --> 01:59:02,680 एक साथ उनके काम सिलाई इस तरह से। 2403 01:59:02,680 --> 01:59:05,332 लेकिन जाहिर है, हम अब खांसी ठीक करने के लिए की जरूरत है। 2404 01:59:05,332 --> 01:59:07,290 हम खांसी बताने की जरूरत कि, अरे, तुम जानते हो क्या? 2405 01:59:07,290 --> 01:59:11,230 आप एक लेने की जरूरत करने जा रहे हैं input-- इतने शून्य नहीं है, लेकिन int और अब। 2406 01:59:11,230 --> 01:59:15,170 आगे बढ़ते हैं और में डाल दिया int खाँसी। मैं शून्य हो जाता है। 2407 01:59:15,170 --> 01:59:16,890 >> मैं कितनी बार की तुलना में कम है। 2408 01:59:16,890 --> 01:59:18,550 मैंने पहले तीन ने कहा। 2409 01:59:18,550 --> 01:59:20,420 लेकिन यह है कि मैं क्या चाहता हूँ नहीं है। 2410 01:59:20,420 --> 01:59:25,520 मैं करने के लिए सामान्यीकृत किया जा करने के लिए करना चाहते हैं खांसी पुनरावृत्तियों की संख्या किसी भी समर्थन करते हैं। 2411 01:59:25,520 --> 01:59:28,800 >> तो, वास्तव में, यह n है कि मैं चाहता है, जो कुछ भी उपयोगकर्ता मुझसे कहता है। 2412 01:59:28,800 --> 01:59:31,620 अब, मुझे आगे जाना है और कहते हैं कि प्रिंट खांसी कर सकते हैं। 2413 01:59:31,620 --> 01:59:34,750 और कोई बात नहीं क्या संख्या उपयोगकर्ता में गुजरता है, 2414 01:59:34,750 --> 01:59:36,890 मुझे लगता है कि कई बार पुनरावृति होगी। 2415 01:59:36,890 --> 01:59:39,160 >> दिन के अंत में तो, कार्यक्रम के लिए समान है। 2416 01:59:39,160 --> 01:59:42,820 लेकिन यह सब के सब नोटिस यहां तक ​​कि एक और फाइल में हो सकता है। 2417 01:59:42,820 --> 01:59:45,620 दरअसल, मैं पता नहीं है पल कैसे printf कार्यान्वित किया जाता है। 2418 01:59:45,620 --> 01:59:47,980 >> मैं इस समय पता नहीं कैसे मिलता है स्ट्रिंग, या int हो, या नाव मिल 2419 01:59:47,980 --> 01:59:48,646 कार्यान्वित कर रहे हैं। 2420 01:59:48,646 --> 01:59:50,930 और मैं नहीं करना चाहता हूँ अपनी स्क्रीन पर उन्हें देख। 2421 01:59:50,930 --> 01:59:55,320 वैसे भी, मैं पर ध्यान केंद्रित करने के लिए शुरू कर रहा हूँ मेरा कार्यक्रम है, न कि उन कार्यों। 2422 01:59:55,320 --> 01:59:59,070 >> और हां, दरअसल, जैसे ही आप के रूप में इस तरह कोड बाहर फैक्टरिंग शुरू, 2423 01:59:59,070 --> 02:00:01,397 हम भी खांसी स्थानांतरित कर सकता है एक अलग फाइल करने के लिए? 2424 02:00:01,397 --> 02:00:02,730 किसी और को यह लागू कर सकता है। 2425 02:00:02,730 --> 02:00:06,810 और आप और आपके कार्यक्रम बन बहुत ही सुंदर है, और बहुत पठनीय, 2426 02:00:06,810 --> 02:00:10,830 यकीनन, वास्तव में चार लाइन कार्यक्रम अभी भी वहीं है। 2427 02:00:10,830 --> 02:00:13,510 >> तो चलो अब आगे चलते हैं और एक और परिवर्तन करें। 2428 02:00:13,510 --> 02:00:16,180 सूचना है कि अपने प्रोटोटाइप शीर्ष तक बदल गया है। 2429 02:00:16,180 --> 02:00:18,390 तो मुझे कि इतने तय कर लो मैं चिल्लाया नहीं मिलता है। 2430 02:00:18,390 --> 02:00:22,580 >> खांसी बनाओ, मुझे खांसी एक बार चलाते हैं अधिक, अभी भी एक ही बात कर रहे हैं। 2431 02:00:22,580 --> 02:00:26,010 लेकिन अब, हम एक नोटिस है एक अंतिम संस्करण के लिए घटक। 2432 02:00:26,010 --> 02:00:26,940 आपको पता है कि? 2433 02:00:26,940 --> 02:00:29,040 मैं नहीं चाहता कि सिर्फ खाँसी, जरूरी चाहते हैं। 2434 02:00:29,040 --> 02:00:30,802 मैं कुछ अधिक सामान्य करना चाहते हैं। 2435 02:00:30,802 --> 02:00:31,510 तो तुम जानते हो क्या? 2436 02:00:31,510 --> 02:00:32,450 मेरी यह करने की इच्छा है। 2437 02:00:32,450 --> 02:00:37,140 मैं करने के लिए, बहुत स्क्रैच की तरह चाहते हैं करता है, एक कहना ब्लॉक, लेकिन अभी नहीं 2438 02:00:37,140 --> 02:00:38,680 का कहना है कि कुछ समय में से कुछ संख्या है। 2439 02:00:38,680 --> 02:00:41,510 मैं यह एक बहुत विशिष्ट स्ट्रिंग कहना चाहता हूँ। 2440 02:00:41,510 --> 02:00:43,850 और, इसलिए, मैं नहीं चाहते हैं कि उसे सिर्फ खांसी कहने के लिए। 2441 02:00:43,850 --> 02:00:47,660 मैं यह कहना चाहता हूँ जो कुछ भी स्ट्रिंग में पारित कर दिया है। 2442 02:00:47,660 --> 02:00:49,960 >> तो नोटिस, मैं सामान्यीकरण नहीं किया है यह तो अब है कि 2443 02:00:49,960 --> 02:00:53,110 कहते हैं एक अच्छा नाम की तरह लगता है इस के लिए, स्क्रैच की तरह, 2444 02:00:53,110 --> 02:00:55,530 स्क्रैच के विपरीत दो तर्क लेता है। 2445 02:00:55,530 --> 02:00:56,570 एक एक स्ट्रिंग है। 2446 02:00:56,570 --> 02:00:57,300 एक एक int है। 2447 02:00:57,300 --> 02:00:58,130 >> और मैं उन्हें स्विच कर सकता। 2448 02:00:58,130 --> 02:01:00,713 मैं बस की तरह के विचार की तरह कहने स्ट्रिंग पहले, और फिर 2449 02:01:00,713 --> 02:01:01,940 कितने बाद में समय। 2450 02:01:01,940 --> 02:01:03,970 शून्य यह अभी भी मतलब है कुछ भी वापस नहीं करता है। 2451 02:01:03,970 --> 02:01:06,428 ये सिर्फ दृश्य पक्ष हैं प्रभाव, [के साथ की तरह? जॉर्डन,?] 2452 02:01:06,428 --> 02:01:08,240 चिल्ला के एक मौखिक पक्ष प्रभाव। 2453 02:01:08,240 --> 02:01:12,630 यह अभी भी कुछ एन बार करता है अप करने के लिए 0, लेकिन n के बराबर नहीं। 2454 02:01:12,630 --> 02:01:14,540 इस n कुल समय का मतलब है। 2455 02:01:14,540 --> 02:01:16,540 और फिर बस बाहर प्रिंट जो कुछ भी है कि स्ट्रिंग है। 2456 02:01:16,540 --> 02:01:19,060 इसलिए मैं वास्तव में सामान्यीकृत किया है कोड की इस पंक्ति। 2457 02:01:19,060 --> 02:01:22,460 तो अब, मैं कैसे लागू करते हैं खांसी समारोह? 2458 02:01:22,460 --> 02:01:25,520 >> मैं शून्य खांसी कर सकते हैं। 2459 02:01:25,520 --> 02:01:28,501 और मैं अभी भी कैसे ले जा सकते हैं कई बार आप खाँसी करना चाहते हैं। 2460 02:01:28,501 --> 02:01:29,250 लेकिन तुम जानते हो क्या? 2461 02:01:29,250 --> 02:01:31,240 मैं अब कहने के लिए बाज़ी कर सकते हैं। 2462 02:01:31,240 --> 02:01:36,540 >> मैं के साथ कह कॉल कर सकते हैं शब्द खांसी, एन में गुजर रहा है। 2463 02:01:36,540 --> 02:01:40,410 और मैं यह भी लागू करना चाहते हैं, सिर्फ मनोरंजन के लिए, एक छींक समारोह, 2464 02:01:40,410 --> 02:01:42,290 मैं समय में से कुछ नंबर छींक कर सकते हैं। 2465 02:01:42,290 --> 02:01:47,300 और मैं n reusing रख सकते हैं, क्योंकि इस संदर्भ या दायरे में है कि मीटर नोटिस 2466 02:01:47,300 --> 02:01:49,470 इस समारोह के भीतर ही मौजूद है। 2467 02:01:49,470 --> 02:01:52,767 >> और एन इस संदर्भ में केवल इस समारोह में यहां के भीतर मौजूद है। 2468 02:01:52,767 --> 02:01:54,600 इसलिए हम वापस करने के लिए आया हूँ दायरे से इन मुद्दों। 2469 02:01:54,600 --> 02:02:01,160 और यहाँ, मैं सिर्फ कहने जा रहा हूँ, Achoo, और फिर एन बार, सेमी कॉलन। 2470 02:02:01,160 --> 02:02:04,340 >> और अब, मैं सिर्फ उधार लेने की जरूरत इन समारोह यहां तक ​​हस्ताक्षर। 2471 02:02:04,340 --> 02:02:06,290 तो खांसी सही है। 2472 02:02:06,290 --> 02:02:10,090 शून्य छींक अब सही है। 2473 02:02:10,090 --> 02:02:12,390 >> और मैं अभी भी सिर्फ कहने की जरूरत है। 2474 02:02:12,390 --> 02:02:18,990 तो मैं कहने जा रहा हूँ स्ट्रिंग, पूर्णांक एन, सेमी कॉलन। 2475 02:02:18,990 --> 02:02:22,010 तो मैं इंजीनियर गए इस कार्यक्रम से बाहर बिल्ली। 2476 02:02:22,010 --> 02:02:23,760 >> और यह नहीं करता है जरूरी मतलब यह है 2477 02:02:23,760 --> 02:02:26,343 आप क्या करना चाहिए जब लेखन यहां तक ​​कि कार्यक्रमों का सरलतम। 2478 02:02:26,343 --> 02:02:29,280 जाहिर है कि कुछ है ले लो वास्तव में सरल, वास्तव में कम, 2479 02:02:29,280 --> 02:02:31,800 और इसे फिर से लागू रास्ता बहुत अधिक कोड का उपयोग कर। 2480 02:02:31,800 --> 02:02:34,560 लेकिन आप वास्तव में देखेंगे, और में समय, इन उदाहरणों पर वापस देखो 2481 02:02:34,560 --> 02:02:38,610 और महसूस करते हैं, ओह, उन कदम उठाए हैं हम वास्तव में सामान्यीकरण करने के लिए ले लिया 2482 02:02:38,610 --> 02:02:40,797 कुछ बाहर कारक, दिन के अंत में जब तक 2483 02:02:40,797 --> 02:02:42,380 मेरे कोड वास्तव में बहुत ही उचित है। 2484 02:02:42,380 --> 02:02:45,960 क्योंकि अगर मैं तीन खांसी करना चाहते हैं कई बार तो तीन बार छींक, 2485 02:02:45,960 --> 02:02:50,420 मैं तो बस, यह फिर से दौड़ना करने जा रहा हूँ कार्यक्रम खांसी बना है, और खांसी चलाते हैं। 2486 02:02:50,420 --> 02:02:53,620 और मैं तीन खांसी है और तीन छींक। 2487 02:02:53,620 --> 02:02:55,990 >> और इसलिए यह एक बुनियादी है प्रतिमान, अगर तुम जाएगा, 2488 02:02:55,990 --> 02:03:00,110 कैसे हम के बारे में जाने के लिए हो सकता है वास्तव में एक कार्यक्रम को लागू करने। 2489 02:03:00,110 --> 02:03:03,220 लेकिन चलो बस देखना यह अब क्या है हम इस समय के सभी कर दिया गया है 2490 02:03:03,220 --> 02:03:06,940 और क्या अंतिम टुकड़े में से कुछ इस सरल कमांड के पीछे हैं। 2491 02:03:06,940 --> 02:03:09,620 दिन के अंत में, हम है हमारे संकलक के रूप में बजना का उपयोग किया गया। 2492 02:03:09,620 --> 02:03:11,494 हम स्रोत लिख रहा हूँ कोड, इसे परिवर्तित 2493 02:03:11,494 --> 02:03:12,820 मशीन कोड में बजना के माध्यम से। 2494 02:03:12,820 --> 02:03:15,540 >> और हम बस बनाने का उपयोग किया गया हमारे कीस्ट्रोक्स इसलिए की सुविधा के लिए 2495 02:03:15,540 --> 02:03:20,740 हमें याद करने की जरूरत नहीं है कि बजना ही की उन मंत्र। 2496 02:03:20,740 --> 02:03:22,640 लेकिन क्या वास्तव में बनाने कर रही है? 2497 02:03:22,640 --> 02:03:24,750 और बदले में, क्या है बजना वास्तव में कर रही है? 2498 02:03:24,750 --> 02:03:28,790 >> यह पता चला है, हालांकि हम सरल है कह कर आज की चर्चा, 2499 02:03:28,790 --> 02:03:33,090 आप स्रोत कोड ले, के रूप में इसे पारित एक संकलक, जो आपको देता है के लिए इनपुट 2500 02:03:33,090 --> 02:03:35,750 मशीन का उत्पादन कोड, वहाँ का पता चला है 2501 02:03:35,750 --> 02:03:37,420 वहाँ अंदर कुछ अलग कदम। 2502 02:03:37,420 --> 02:03:41,940 और संकलन छाता होना होता है कदम की एक पूरी गुच्छा के लिए शब्द। 2503 02:03:41,940 --> 02:03:43,970 लेकिन हम सिर्फ तंग इस बाहर बहुत जल्दी। 2504 02:03:43,970 --> 02:03:48,070 >> यह पता चला है कि हम कर दिया गया है अधिक बातें हर बार मैं एक कार्यक्रम चलाने के लिए, 2505 02:03:48,070 --> 02:03:50,990 या हर समय मैं आज एक कार्यक्रम संकलन। 2506 02:03:50,990 --> 02:03:55,020 तो preprocessing को संदर्भित करता है एक सी कार्यक्रम में कुछ भी this--, 2507 02:03:55,020 --> 02:03:58,720 जैसा कि हम बार-बार देखता हूँ, कि, इस हैश प्रतीक के साथ शुरू होता है 2508 02:03:58,720 --> 02:04:03,320 या हैशटैग यहाँ प्रतीक है, जिसका अर्थ यह एक पूर्वप्रक्रमक निर्देश है। 2509 02:04:03,320 --> 02:04:07,330 इसका मतलब है कि, इस मामले में, हे कंप्यूटर, इस फाइल के साथ कुछ करना 2510 02:04:07,330 --> 02:04:09,430 इससे पहले कि आप वास्तव में अपने खुद के कोड संकलन। 2511 02:04:09,430 --> 02:04:15,220 >> इस मामले में, हैश है शामिल हैं, अनिवार्य रूप से, कह रही है की सी की तरह, 2512 02:04:15,220 --> 02:04:19,325 अरे कंप्यूटर, सामग्री मिल जाना CS50.h की और उन्हें यहाँ पेस्ट करें। 2513 02:04:19,325 --> 02:04:22,170 अरे कंप्यूटर, मिल जाना मानक IO.h की सामग्री, 2514 02:04:22,170 --> 02:04:24,690 जहाँ भी उस पर है हार्ड ड्राइव, यह यहाँ पेस्ट करें। 2515 02:04:24,690 --> 02:04:27,390 तो उन बातें होती हैं preprocessing के दौरान पहली। 2516 02:04:27,390 --> 02:04:28,880 >> और बजना हमारे लिए यह सब करता है। 2517 02:04:28,880 --> 02:04:30,510 और यह यह इतना रफ़ू करता है तेजी से, आप भी नहीं है 2518 02:04:30,510 --> 02:04:32,000 हो रहा चार अलग चीजें देखते हैं। 2519 02:04:32,000 --> 02:04:34,100 लेकिन यह है कि पहली बार इस तरह कदम है। 2520 02:04:34,100 --> 02:04:35,560 >> क्या वास्तव में आगे क्या होता है? 2521 02:04:35,560 --> 02:04:38,320 खैर, अगली अधिकारी कदम संकलन है। 2522 02:04:38,320 --> 02:04:40,385 और यह पता चला है कि एक कार्यक्रम के संकलन 2523 02:04:40,385 --> 02:04:44,060 तकनीकी रूप से जाने का मतलब स्रोत कोड, सामान हम है 2524 02:04:44,060 --> 02:04:47,890 किया कुछ करने के लिए, आज लेखन विधानसभा कोड कहा जाता है, कुछ 2525 02:04:47,890 --> 02:04:49,260 कि एक छोटे से अलग दिखता है। 2526 02:04:49,260 --> 02:04:51,050 >> और, वास्तव में, हम इस असली तेजी देख सकते हैं। 2527 02:04:51,050 --> 02:04:53,890 मुझे वास्तव में मेरे आईडीई में चलते हैं। 2528 02:04:53,890 --> 02:04:58,050 मुझे आगे और खुले hello.c चलते हैं, जो बहुत पहला कार्यक्रम है जिसके साथ हम 2529 02:04:58,050 --> 02:04:59,120 आज शुरू कर दिया। 2530 02:04:59,120 --> 02:05:04,130 और मुझे आगे जाना है और बजना एक चलाते हैं थोड़ा अलग, बजना-एस, hello.c, 2531 02:05:04,130 --> 02:05:07,720 जो वास्तव में करने जा रहा है मुझे एक फ़ाइल hello.s दे। 2532 02:05:07,720 --> 02:05:10,330 >> और हम कभी शायद होगा फिर कोड के इस तरह देखते हैं। 2533 02:05:10,330 --> 02:05:13,030 आप एक निचले स्तर लेते हैं CS61 तरह सिस्टम वर्ग, 2534 02:05:13,030 --> 02:05:14,920 आप एक बहुत अधिक देखेंगे कोड के इस तरह के। 2535 02:05:14,920 --> 02:05:17,020 लेकिन इस विधानसभा भाषा है। 2536 02:05:17,020 --> 02:05:22,050 यह x86 विधानसभा भाषा है कि सीपीयू कि अंतर्निहित है 2537 02:05:22,050 --> 02:05:24,460 CS50 आईडीई वास्तव में समझता है। 2538 02:05:24,460 --> 02:05:27,060 >> और गुप्त रूप में यह होता देखो, यह कुछ है 2539 02:05:27,060 --> 02:05:29,180 कंप्यूटर बहुत अच्छी तरह से समझता है। 2540 02:05:29,180 --> 02:05:30,790 उप क्ष, यह एक घटाना है। 2541 02:05:30,790 --> 02:05:31,660 वहाँ आंदोलनों है। 2542 02:05:31,660 --> 02:05:35,730 >> वहाँ कार्यों के लिए यहां बुला रहा है, एक्स oring, एक आंदोलन है, एक ऐड, एक पॉप, 2543 02:05:35,730 --> 02:05:36,430 एक वापसी। 2544 02:05:36,430 --> 02:05:38,850 कुछ तो वहाँ बहुत निम्न स्तर के निर्देश 2545 02:05:38,850 --> 02:05:41,280 सीपीयू कि समझते हैं कि मैंने पहले के लिए alluded। 2546 02:05:41,280 --> 02:05:43,100 यही कारण है कि इंटेल के अंदर है। 2547 02:05:43,100 --> 02:05:45,030 >> वहाँ के पैटर्न हैं शून्य और लोगों को 2548 02:05:45,030 --> 02:05:51,800 करने के लिए इन शब्दों arcanely नक्शा है, लेकिन कुछ हद तक अच्छी तरह से नामित किया गया, निर्देश, 2549 02:05:51,800 --> 02:05:52,780 इतनी बात करने के लिए। 2550 02:05:52,780 --> 02:05:54,780 यही होता है जब है आप अपने कोड संकलन। 2551 02:05:54,780 --> 02:05:58,560 आप विधानसभा मिल इसे से बाहर भाषा है, जो 2552 02:05:58,560 --> 02:06:04,680 इसका मतलब तीसरे चरण के लिए इकट्ठा करने के लिए है कि विधानसभा कोड में, अंत में, 2553 02:06:04,680 --> 02:06:09,080 मशीन code-- शून्य और लोगों, नहीं पाठ है कि हम सिर्फ एक पल पहले देखा था। 2554 02:06:09,080 --> 02:06:13,370 >> तो पूर्व प्रसंस्करण कि मिल रहा है और जगह है, और कुछ अन्य बातें। 2555 02:06:13,370 --> 02:06:16,430 संकलन अपने स्रोत लेता है सी से कोड, स्रोत कोड 2556 02:06:16,430 --> 02:06:18,980 हम ने लिखा है कि, विधानसभा के लिए कोड है कि हम सिर्फ पर नजर है। 2557 02:06:18,980 --> 02:06:22,170 कोडांतरण कि विधानसभा लेता है शून्य और लोगों के लिए कोड 2558 02:06:22,170 --> 02:06:24,680 कि वास्तव में सीपीयू होगा दिन के अंत में समझते हैं। 2559 02:06:24,680 --> 02:06:27,630 और जोड़ने अंतिम कदम है कि us-- के लिए फिर से होता है, 2560 02:06:27,630 --> 02:06:29,830 इतनी तेजी से हम भी नहीं है notice-- कि कहते हैं, 2561 02:06:29,830 --> 02:06:32,460 अरे कंप्यूटर, के सभी लेते हैं शून्य और लोगों को 2562 02:06:32,460 --> 02:06:36,750 दाऊद के कोड संकलन से हुई, और इस मामले में उसकी मुख्य समारोह। 2563 02:06:36,750 --> 02:06:39,160 >> और हे कंप्यूटर, मिल जाना शून्य और लोगों के सभी 2564 02:06:39,160 --> 02:06:42,180 कि CS50 स्टाफ ने लिखा है CS50 पुस्तकालय के अंदर। 2565 02:06:42,180 --> 02:06:43,440 दाऊद के साथ में उन लोगों को मिला लें। 2566 02:06:43,440 --> 02:06:46,648 और हे कंप्यूटर, सभी शून्य मिल जाना और किसी और वर्ष लिखा है कि लोगों 2567 02:06:46,648 --> 02:06:47,470 पहले printf के लिए। 2568 02:06:47,470 --> 02:06:49,880 और उन में जोड़ने पूरी बात तो यह है कि हम है 2569 02:06:49,880 --> 02:06:52,870 मेरे शून्य और लोगों, मिला CS50 स्टाफ के शून्य और लोगों, 2570 02:06:52,870 --> 02:06:55,370 printf शून्य और लोगों, और कुछ और हम प्रयोग कर रहे हैं। 2571 02:06:55,370 --> 02:07:00,410 >> वे सभी एक में एक साथ संयुक्त हो कार्यक्रम कहा जाता है, इस मामले में, नमस्कार। 2572 02:07:00,410 --> 02:07:03,141 बस इतना आगे से, हम करेंगे शब्द संकलन का उपयोग करें। 2573 02:07:03,141 --> 02:07:06,390 और हम के लिए दी ले जाएगा कि जब हम कहते हैं, अपने कार्यक्रम संकलन, इसका मतलब है, 2574 02:07:06,390 --> 02:07:08,849 अरे पूर्व प्रसंस्करण करते हैं, संयोजन, और जोड़ने। 2575 02:07:08,849 --> 02:07:11,890 लेकिन वहाँ वास्तव में कुछ रसदार सामान है हुड के नीचे वहाँ चल रहा है। 2576 02:07:11,890 --> 02:07:13,723 और विशेष रूप से आप अगर जिज्ञासु कुछ समय मिलता है, 2577 02:07:13,723 --> 02:07:15,900 आप poking शुरू कर सकते हैं इस निचले स्तर पर चारों ओर। 2578 02:07:15,900 --> 02:07:19,660 लेकिन अब के लिए, पता है कि आज के लिए takeaways के बीच 2579 02:07:19,660 --> 02:07:23,420 काफी बस एक प्रक्रिया की शुरुआत, 2580 02:07:23,420 --> 02:07:26,700 साथ सहज हो रही है की हैलो दुनिया की तरह कुछ। 2581 02:07:26,700 --> 02:07:29,575 दरअसल, हम आज क्या किया था के सबसे निश्चित रूप से सुपर फास्ट में सिंक नहीं होगा। 2582 02:07:29,575 --> 02:07:31,491 और यह कुछ ले जाएगा समय है, और कुछ अभ्यास। 2583 02:07:31,491 --> 02:07:33,864 और बाधाओं रहे हैं, आप ठीक हो जाएगा के अपने कीबोर्ड हिट करना चाहते हैं 2584 02:07:33,864 --> 02:07:34,780 या स्क्रीन पर चिल्लाना। 2585 02:07:34,780 --> 02:07:35,880 और यह सब ठीक है। 2586 02:07:35,880 --> 02:07:38,320 हालांकि, शायद नहीं की कोशिश पुस्तकालय में यह इतना नहीं है। 2587 02:07:38,320 --> 02:07:40,820 >> और अंत में, तुम हूँ हालांकि सक्षम हो, शुरू करने के लिए 2588 02:07:40,820 --> 02:07:44,580 पैटर्न को देखकर, दोनों अच्छे कोड में आप लिखा है कि और गलतियों में 2589 02:07:44,580 --> 02:07:45,370 आपके द्वारा किए गए है। 2590 02:07:45,370 --> 02:07:48,965 और भी बहुत की प्रक्रिया की तरह एक टीएफ बनने या एक सीए की तरह है, 2591 02:07:48,965 --> 02:07:51,590 आप बेहतर पाने के लिए शुरू कर देंगे और उन पैटर्न को देखने में बेहतर है, 2592 02:07:51,590 --> 02:07:53,774 और सिर्फ अपने सुलझाने अंततः अपनी समस्याएं। 2593 02:07:53,774 --> 02:07:56,940 इस बीच में, वहाँ बहुत हो जाएगा हम में से आप समर्थन दे, और आप को पाने के लिए 2594 02:07:56,940 --> 02:07:57,481 इस के माध्यम से। 2595 02:07:57,481 --> 02:07:59,450 और लिखने-अप में समस्याओं के सभी के लिए 2596 02:07:59,450 --> 02:08:01,366 आप के माध्यम से निर्देशित किया जाएगा आदेशों के सभी 2597 02:08:01,366 --> 02:08:05,330 मैं निश्चित रूप से पता है कि अब तक अभ्यास का एक बहुत, 2598 02:08:05,330 --> 02:08:07,380 लेकिन प्रवाहित हो सकता है अब के लिए एक के सिर पर। 2599 02:08:07,380 --> 02:08:08,580 और वह पूरी तरह से ठीक है। 2600 02:08:08,580 --> 02:08:11,230 >> लेकिन, अंत में, आप जा रहे हैं पैटर्न उभरने देखने के लिए शुरू करने के लिए। 2601 02:08:11,230 --> 02:08:14,260 और एक बार आप सभी के पिछले मिल बेवकूफ विवरण, कोष्ठकों की तरह, 2602 02:08:14,260 --> 02:08:16,710 और घुंघराले ब्रेसिज़, और अर्द्ध कॉलन, और सामान, सच में, 2603 02:08:16,710 --> 02:08:19,360 कि बिल्कुल नहीं है बौद्धिक रूप से दिलचस्प है। 2604 02:08:19,360 --> 02:08:22,690 और यह का उद्देश्य नहीं है किसी भी परिचयात्मक वर्ग ले। 2605 02:08:22,690 --> 02:08:24,410 यह विचार है कि बात करने के लिए जा रहे हैं। 2606 02:08:24,410 --> 02:08:26,659 >> यह छोरों है, और स्थिति, और काम करता है, 2607 02:08:26,659 --> 02:08:30,552 और अधिक शक्तिशाली अमूर्त, और कोड की फैक्टरिंग, 2608 02:08:30,552 --> 02:08:33,510 और अच्छे डिजाइन, और अच्छा शैली, और अंततः सत्यता 2609 02:08:33,510 --> 02:08:37,330 अपने कोड की, कि अंततः है सबसे बात करने के लिए जा रहा है। 2610 02:08:37,330 --> 02:08:40,925 तो अगले हफ्ते, हम इन लगेगा विचार है कि हम पहले स्क्रैच में देखा था 2611 02:08:40,925 --> 02:08:42,800 और अब अनुवाद किया है सी के लिए और हम शुरू करेंगे 2612 02:08:42,800 --> 02:08:45,740 के पहले लागू करने के लिए पाठ्यक्रम के असली दुनिया डोमेन। 2613 02:08:45,740 --> 02:08:50,140 >> हम सुरक्षा की दुनिया पर ध्यान केंद्रित करेंगे और अधिक विशेष रूप से क्रिप्टोग्राफी, 2614 02:08:50,140 --> 02:08:51,980 जानकारी के पांव मार करने की कला। 2615 02:08:51,980 --> 02:08:54,000 पहले के बीच और आप समस्याओं का खुद 2616 02:08:54,000 --> 02:08:56,840 परे लिखने के लिए मिल जाएगा वाक्य रचना से कुछ के साथ खेल रहा है 2617 02:08:56,840 --> 02:08:59,880 और कुछ तार्किक हल समस्याओं, अंत में लंबे समय से पहले, 2618 02:08:59,880 --> 02:09:03,960 वास्तव में हाथापाई करने के लिए है, या एनक्रिप्ट, और अंत में जानकारी डिक्रिप्ट। 2619 02:09:03,960 --> 02:09:06,470 और हम सब कुछ किया है आज काफी कम होगा 2620 02:09:06,470 --> 02:09:09,190 स्तर, बस की अनुमति देने के लिए जा रहा है हमें एक है, और एक लेने के लिए, 2621 02:09:09,190 --> 02:09:13,550 और ऊपर की ओर एक और कदम अभी तक सबसे दिलचस्प कोड लिखने। 2622 02:09:13,550 --> 02:09:15,050 >> तो यह है कि अगले सप्ताह के बारे में अधिक। 2623 02:09:15,050 --> 02:09:17,834 2624 02:09:17,834 --> 02:09:18,762 >> [वीडियो प्लेबैक] 2625 02:09:18,762 --> 02:09:19,690 2626 02:09:19,690 --> 02:09:22,006 >> -क्या आप मेरे बारे में बता सकते हैं पिछली बार जब आप उसे देखा था? 2627 02:09:22,006 --> 02:09:26,041 2628 02:09:26,041 --> 02:09:27,040 क्या मैं सच में कह सकते हैं? 2629 02:09:27,040 --> 02:09:30,500 2630 02:09:30,500 --> 02:09:35,340 मेरा मतलब है, यह किसी भी अन्य की तरह था पूर्व उत्पादन रिहर्सल, 2631 02:09:35,340 --> 02:09:40,510 सिवाय इसके कि वहाँ कुछ था वह कहा बहुत अंत कि मेरे साथ अटक पर। 2632 02:09:40,510 --> 02:09:44,810 2633 02:09:44,810 --> 02:09:46,640 >> -यह CS50 था। 2634 02:09:46,640 --> 02:09:49,440 2635 02:09:49,440 --> 02:09:52,190 >> -यह एक कट हर किसी को है, रिहर्सल पर महान काम है। 2636 02:09:52,190 --> 02:09:53,070 >> -यह दोपहर के भोजन? 2637 02:09:53,070 --> 02:09:54,986 >> ; -हां, तुम और मैं कर सकता हूँ एक बिट में एक सैंडविच हड़पने। 2638 02:09:54,986 --> 02:09:58,380 मुझे बस के साथ debrief चलो डेविड वास्तव में जल्दी से। 2639 02:09:58,380 --> 02:09:59,160 डेविड? 2640 02:09:59,160 --> 02:10:01,260 डेविड? 2641 02:10:01,260 --> 02:10:03,110 >> [अंत प्लेबैक]