[Powered by Google Translate] डेविड जे मालन: सब ठीक है, इस CS50 है और यह है
1 सप्ताह के अंत में, तो कार्ड में अध्ययन कर रहे हैं और की कुल संख्या
सहपाठियों है कि आप इस वर्ष 745 है.
और हम ऐसा करने के कोर्स में आप के इतने रोमांचित कर रहे हैं
इस सेमेस्टर, लेकिन फिर भी इस पाठ्यक्रम इतनी बड़ी है,
एहसास है कि यह शुक्रवार लंच की तरह इन चीजों की तरह है,
कार्यालय घंटा, 15 व्यक्ति वर्गों, और इतना आगे है कि
वास्तव में यह और अधिक घनिष्ठ बनाने का मतलब
पर्यावरण.
तो भले ही हम एक या दो बार एक सप्ताह में इकट्ठा, में यहाँ हो सकता है
सैंडर्स, इस कोर्स में अपने अनुभव की है कि ज्यादा पता
बहुत पर हाथ पर अपने सहपाठियों के आस - पास
और शिक्षण स्टाफ.
>> तो यहाँ हम चले, 2012 पतन.
तो यह है कि पिछली बार जब हम के एक नोट पर समाप्त हो गया याद
imprecision प्रतिनिधित्व की संख्या के बारे में बात कर रही है.
और हम विफलताओं में से एक है कि क्या हुआ देखा,
असली दुनिया है, जब यह गलतफहमी के लिए आया था
कैसे कंप्यूटर काम.
खैर, आज हम उन विचारों का एक और एक के रूप में फिर से आना हूँ
CS50 ग्राहक के रूप में अच्छी तरह हमारी चर्चा जारी
सी और क्या यह कार्यक्रम वास्तव में इसका मतलब है.
लेकिन पहले, बस बवंडर घोषणाओं के एक जोड़े.
>> धारा इस रविवार को शुरू हो, और 1 सप्ताह एक हमेशा है
बिट एक तेजी से शुरू की है, क्योंकि हम बस में मिला
अपने अनुभाग रूपों.
हम एक ही कर रहे हैं, अब, शिक्षण साथियों के साथ अब,
कि वे अपने कार्यक्रम पता है तो, हम लक्ष्य कर रहे हैं,
शनिवार की सुबह, आप के साथ अपने अनुभाग के साथ पालन करने के लिए
काम और TF.
एहसास है कि वे अगले दिन शुरू करेंगे, रविवार
या सोमवार या मंगलवार.
और फिर हम अनुभाग परिवर्तन को समायोजित करने के रूप में वे पैदा
आने वाले दिनों में.
कार्यालय घंटा, इस बीच, कर रहे हैं, फिर से, आज रात 8 11 के लिए प्रधानमंत्री,
Annenberg, के रूप में कल रात के रूप में अच्छी तरह से.
हालांकि समस्या सेट आम तौर पर गुरुवार को कारण
दोपहर में एहसास, आप पांच देर दिनों के लिए खर्च करने के लिए,
इसलिए गुरुवार को कार्यालय घंटे की उपलब्धता
आप एक उन देर दिनों में नकदी और, इस प्रकार submit,
शुक्रवार को कुछ.
मुझे सुझाव के बीच में कि स्क्रैच अधिक मज़ा के बीच है,
अधिक कम महत्वपूर्ण समस्या सेट.
और मैं उन देर दिनों पर लटका, रणनीतिक होगा, बस
बाद में सेमेस्टर में जब जीवन के रास्ते में मिल शुरू
midterms और अन्य वर्गों के साथ.
समस्या 1 सेट, इस बीच, पाठ्यक्रम पर तैनात किया जाएगा
वेबसाइट, यह शुक्रवार के रूप में पाठ्यक्रम चलना होगा
वीडियो के माध्यम से है, जो शुक्रवार को 2:30 बजे फिल्माया जाएगा
और फिर अगले दिन से ऑनलाइन पोस्ट किया.
>> तो हम सोमवार को समाप्त हो गया.
वास्तव में, एक यहाँ ध्यान दें - मैं चाहता हूँ.
क्योंकि कक्षाएं - क्योंकि सैंडर्स बिल्कुल उधार नहीं करता है
ही आकस्मिक क्यू एंड ए वापस करने के लिए और बहुत अच्छी तरह से आगे है, हम कर रहे हैं
एक छोटे से नए इस साल कुछ प्रयास करें, जिससे जा रहा है
अगर आप अपने हाथ उठाने आरामदायक नहीं कर रहे हैं या आप बस
बल्कि इस तरह एक कमरे में अपने हाथ नहीं उठाना होगा,
हम शिक्षण साथियों और सीए के कुछ है करने के लिए जा रहे हैं
व्याख्यान के दौरान cs50.net/discuss मैनिंग.
तो अगर आप में एक सवाल है, क्योंकि मैं पूरी तरह से किया गया था
तुम्हें कुछ हो या के बारे में स्पष्ट नहीं है, कुछ के बारे में उत्सुक हैं
विषय, यह पोस्ट करने की कोशिश.
यह व्याख्यान का एक लेबल के साथ टैग, और हम अपनी पूरी कोशिश करूँगा
यह क्षेत्र के लिए आज और अगले सप्ताह - we'll इस बाहर की कोशिश -
या तो इलेक्ट्रॉनिक, ऑनलाइन, या अगर यह हम चाहिए की तरह लगता है
वास्तव में यह सामूहिक रूप से पता करने के लिए, एक या शिक्षण साथियों की
सीए अपने हाथ उठाने और पूछना होगा
गुमनाम रूप से अपनी ओर से.
इसलिए हम इस एक कोशिश करते हैं और अच्छी तरह से है कि यह कैसे काम करता है को देखने के लिए दे देंगे.
लेकिन, हर तरह से, हाथों रूप में आप चाहेंगे बढ़ाने के लिए जारी.
>> तो पिछली बार जब हम पता चला है कि 10% या एक 10 में नहीं है,
वास्तव में, 0.1, आप की तरह कई साल पहले सिखाया गया था.
यह वास्तव में है, इस तरह एक मूल्य है.
लेकिन यह है कि पूरी तरह से सच है, सही नहीं है?
हम सिर्फ जिससे कंप्यूटर में इस बाधा है, तुम अगर
केवल स्मृति का एक निश्चित राशि, रैम, या अधिक है
बिट्स विशेष रूप से, अच्छी तरह से, वहाँ केवल एक परिमित संख्या
आप चीजों की प्रतिनिधित्व कर सकते हैं.
उदाहरण के लिए, अगर हम शून्य संख्या है, और हम चाहते हैं
बाइनरी में प्रतिनिधित्व करते हैं, आठ बिट का उपयोग करते हुए, जहां एक सा है,
फिर, एक शून्य या एक एक है, हम हो सकता है
00000000 के रूप में प्रतिनिधित्व करते हैं.
और कहा कि एक छोटे से अनावश्यक रूप वाचाल है.
बस असली दुनिया में दशमलव प्रणाली की तरह,
आम तौर पर, अगर आप संख्या 123 लिखने के लिए चाहते हैं, हम
मनुष्य के शायद 00000123 भले ही लिख नहीं है,
कार्यात्मक, कि सटीक एक ही नंबर है.
हम सिर्फ अग्रणी शून्य को छोड़ देता है, तो बात करो.
>> द्विआधारी में, हम वही कर सकता है.
द्विआधारी और शून्य शून्य द्विआधारी और सिर्फ शून्य है.
आप केवल एक एकल बिट की जरूरत है.
लेकिन फिर, माप की दुनिया में सबसे आम इकाई
कंप्यूटिंग के बाइट्स, आठ बिट है.
बस एक सा है, बहुत बेकार है क्योंकि.
आठ बिट, बहुत उपयोगी नहीं है, लेकिन कम से कम इसे और अधिक है
माप की एकल इकाई से उपयोगी है.
तो आठ बिट के साथ, हम आम तौर पर द्विआधारी प्रतिनिधित्व करेंगे.
यहाँ तो हम संख्या शून्य, एक, दो, और फिर, के रूप में
नैट पिछले बुधवार को हमारे वीडियो में किया था, हम जारी रख सकते हैं
सात तक की गिनती करने के लिए आठ,.
और फिर अगर हम अधिक से अधिक बिट का उपयोग हम,
अनन्तता करने के लिए भरोसा कर सकते हैं.
लेकिन अगर आप केवल इन बिट्स के एक परिमित संख्या है, के रूप में है,
किसी भी कंप्यूटर प्रणाली के मामले में, या भी मिसाइल
प्रणाली, अच्छी तरह से, वास्तव में आप केवल एक
परिशुद्धता के सीमित मात्रा में.
तो अगर आप की तरह में 0.1 संख्या का प्रतिनिधित्व करते हैं, अच्छी तरह से करना चाहते हैं,
कंप्यूटर और लेने के लिए चयन किया है.
और अगर यह केवल संख्या के एक परिमित संख्या में यह कर सकते हैं
का प्रतिनिधित्व करते हैं, यह आप के लिए 0.1 के लिए करीब आते हैं, कर सकते हैं, लेकिन यह नहीं कर सकता
जरूरी आप वास्तव में मूल्य है कि आप चाहते हैं दे.
और यह सिर्फ एक कंप्यूटर की चुनौतियों में से एक है,
हुड के नीचे है, शुक्र है.
>> जैसा कि हम सेमेस्टर में आगे बढ़ना है, इन निचले स्तर
विवरण बहुत कम दिलचस्प हो गया है, लेकिन निश्चित रूप से
इन विचारों के आवेदन के कुछ बहुत ही वास्तविक दुनिया हो सकता है
असर.
एक एक बिट मजेदार है.
आप में से कितने अद्भुत फिल्म कार्यालय अंतरिक्ष देखा है?
यदि आप नहीं है, कि अपने अनौपचारिक
सप्ताह के लिए होमवर्क.
लेकिन कार्यालय अंतरिक्ष में, उस फिल्म में साथियों को ले
ठीक इस विचार का लाभ है, लेकिन वे वास्तव में चुरा लिया
यह एक और फिल्म है कि हो सकता है आप से
देखा है, यहां तक ​​कि साल पहले.
तो मुझे आप इस ट्रेलर के कुछ सेकंड देने से
इस अद्भुत फिल्म है और यह बहुत ही ज्यादा है
अकादमिक प्रासंगिक है.
>> [फिल्म नाटकों]
असल में मैं पदोन्नत किया जा रहा है.
मैं एक वायरस है कि चीर देगा कार्यक्रम कर सकते हैं कि
बंद बड़ा समय जगह.
ठीक है, यह कैसे काम करता है?
हर बार जब वहाँ एक बैंक लेन - देन है जहां ब्याज
गणना, वहाँ एक दिन हजारों हैं, कंप्यूटर समाप्त होता है
एक प्रतिशत के इन भागों के साथ.
लेकिन मैं करने के लिए अवैध रूप से कुछ भी करने के लिए नहीं जा रहा हूँ.
अवैध? समीर, यह अमेरिका है.
आप भगवान की कसम खाता है.
अगर किसी को भी इस बारे में जानता है लेकिन हमें, सब सही है? कोई परिवार के सदस्यों, कोई
गर्लफ्रेंड, कोई नहीं.
[अश्राव्य].
चिंता मत करो यार, मैं किसी को भी नहीं बता देंगे, नहीं.
[फिल्म खत्म होती है]
>> सब ठीक है, तो शायद मैं इस फिल्म की तुलना में सबसे बेहतर पाया
यहाँ के लोग, लेकिन किसी भी मामले में, वायरस है कि वे थे
बनाने की कोशिश कर रहा है -
और फिल्मों में, वे कभी भी कुछ एक वायरस फोन चाहते हैं,
यह आम तौर पर एक वायरस नहीं है वास्तव में.
यह सिर्फ एक प्रोग्राम है कि किसी को कुछ नहीं लिखा है.
और इस मामले में, लोगों के लिए एक प्रोग्राम लिखने की कोशिश कर रहे थे
कि उनकी कंपनी का लाभ ले लिया बुलाया Innotech है
कंप्यूटिंग प्रणाली, कंप्यूटर, जिससे भी, यहां तक ​​कि यह तब होता है जब
पैसे के लिए आता है, जरूरी नहीं कि कर सकते हैं
ठीक पैसे का प्रतिनिधित्व करते हैं.
तो भले ही आप अपने बैंक खाते में 0.10 डॉलर का हो सकता है,
0.10, अच्छी तरह से, कंप्यूटर वास्तव में लगता है कि आप हो सकता
आपके बैंक खाते में यह कई सेंट.
वे और - और इसलिए इन लोगों को क्या करने की इच्छुक थे
विचार चुरा लिया, यह सुपरमैन III से पता चला है, जहां
रिचर्ड प्रायर एक ही काम किया है - वे अनिवार्य रूप से थे
लेखन प्रोग्राम है कि अनुगामी के सभी लेने की ख्वाहिश
नंबर, छोटे, छोटे, छोटे भागों के सभी
पैसे, और उन है कि इतनी दूर वसूलना मनुष्यों बस
सोचा, ओह, यह केवल $ 0.10 वहाँ है, लेकिन उन सभी
अनुगामी संख्या अंततः जोड़.
तो एक बढ़िया विचार है और यह है कि में उल्लासपूर्वक उलटा असर हुआ
विशेष फिल्म.
>> लेकिन असली दुनिया में भी, वहाँ बहुत अधिक विषय में हैं
इन चीजों की तरह के निहितार्थ.
कारणों में से एक और कंप्यूटर के क्षेत्र में गोता लगाने के लिए
विज्ञान है, फिर से, नहीं करने के लिए प्रयोज्यता
इंजीनियरिंग विज्ञान अकेले, लेकिन अभी तक
अन्य क्षेत्रों के रूप में अच्छी तरह से.
क्या गलत जा सकते हैं तो यह एक कम lighthearted लग रही है, लेकिन
यह भी काफी आंख खोलने का है, मुझे लगता है, जब यह आता है
समझने के बिल्कुल कैसे सर्वव्यापी प्रौद्योगिकियों की तरह
कंप्यूटर और प्रोग्रामिंग या इन दिनों,
सॉफ्टवेयर के रूप में.
तो यह अगले क्लिप सिर्फ छह मिनट के बारे में है, जारी
जहां हम पिछली बार छोड़ दिया है, लेकिन हमें एक छोटे से देखने की अनुमति देता है
इन मुद्दों में से एक इस तरह के पर अधिक गहराई में है.
मुझे जहाँ हम से दूर छोड़ दिया करने के लिए आगे बढ़ें
जो यहीं थी.
और हम यहाँ के बारे में छह मिनट के लिए दो के दो भाग है.
>> [फिल्म खेलने के लिए]
आधुनिक रॉकेट प्रौद्योगिकी ग्रस्त.
1991 में पहले खाड़ी युद्ध की शुरुआत के साथ, पैट्रियट
मिसाइल एक ही तरह का अनुभव
संख्या रूपांतरण समस्या.
और एक परिणाम के रूप में, 20 लोगों को, 20 अमेरिकी सैनिकों के मारे गए थे
बारे में और 100 घायल हो गए, जब पैट्रियट, जो चाहिए था
आवक Scuds के खिलाफ की रक्षा,
एक मिसाइल आग करने में विफल रहा है.
>> जब इराक पर आक्रमण कुवैत और अमेरिका एक डेजर्ट का शुभारंभ किया
1991 के शुरू में तूफान, पैट्रियट मिसाइल बैटरी थे
इराकी से सऊदी अरब और इसराइल की रक्षा के लिए तैनात
स्कड मिसाइल हमलों.
पैट्रियट एक अमेरिकी मध्यम दूरी की सतह से हवा प्रणाली है,
रेथियॉन कंपनी द्वारा निर्मित.
पैट्रियट इंटरसेप्टर खुद के आकार, इसके बारे में
लगभग 20 फुट लंबा है और यह 2000 पाउंड के बारे में वजन का होता है.
और के बारे में एक बम किया जाता है - मुझे लगता है कि यह मोटे तौर पर
£ 150.
और वारहेड ही है जो एक उच्च विस्फोटक
इसके चारों ओर टुकड़े.
वारहेड के आवरण buckshot तरह कार्य करने के लिए बनाया गया है.
मिसाइलों चार कंटेनर प्रति किया जाता है और कर रहे हैं
एक अर्ध ट्रेलर द्वारा पहुँचाया.
>> पैट्रियट मिसाइल रोधी प्रणाली को कम से कम करने के लिए वापस चला जाता है
अब 20 साल.
यह मूल रूप से एक वायु रक्षा मिसाइल के रूप में डिजाइन किया गया था
पहले खाड़ी युद्ध में दुश्मन के हवाई जहाज शूट.
जब कि युद्ध के साथ आया था, सेना का उपयोग करने के लिए गोली मार चाहता था
, हवाई जहाज नहीं Scuds नीचे.
एयर इराकी सेना एक समस्या का इतना नहीं था, लेकिन सेना
था Scuds के बारे में चिंतित है.
और इसलिए वे पैट्रियट उन्नयन की कोशिश की.
बेधने एक दुश्मन मिसाइल 5 मच में यात्रा जा रहा था
काफी चुनौतीपूर्ण हो.
लेकिन जब पैट्रियट सेवा में ले जाया गया था, सेना
कि उनके बनाया एक इराकी संशोधन के बारे में पता नहीं था
हिट करने के लिए लगभग असंभव Scuds.
>> Scuds थे कि क्या हुआ है
में आ रहा है अस्थिर थे.
वे wobbling थे.
इस के लिए कारण इराकियों था, क्रम में से 600
एक 300 किलोमीटर दूरी की मिसाइल के बाहर किलोमीटर लिया,
सामने वारहेड से बाहर वजन और
वारहेड लाइटर बनाया.
तो अब पैट्रियट स्कड में आने की कोशिश कर रहा है, और सबसे अधिक
समय, समय की भारी बहुमत है, यह होता
बस स्कड से उड़.
एक बार पैट्रियट सिस्टम ऑपरेटरों पैट्रियट एहसास हुआ
अपने लक्ष्य को याद किया, वे पैट्रियट बम विस्फोट कर दिया.
संभव हताहतों की संख्या से बचने के लिए, यह अनुमति दी गई थी
भूमि पर गिर जाते हैं.
कि अधिकांश लोगों को क्या देखा था, आकाश में बड़ा fireballs के रूप में,
और स्कड warheads के अवरोध के रूप में गलत समझा.
>> हालांकि, रात आसमान में देशभक्त होना को दिखाई दिया
सफलतापूर्वक नष्ट कर दिया Scuds Dhahran में, वहाँ कोई हो सकता है
अपने प्रदर्शन के बारे में गलती.
वहाँ, पैट्रियट रडार प्रणाली एक का ट्रैक खो दिया
मूसलधार बारिश आने वाली है और शुरू की वजह से कभी नहीं
एक सॉफ्टवेयर दोष.
यह इजरायल के जो पहली बार पता चला था कि अब
सिस्टम पर अधिक से अधिक समय विसंगति बन गया है,
एक सिस्टम के कंप्यूटर में एम्बेडेड घड़ी की वजह से.
Dhahran, त्रासदी के बारे में दो सप्ताह पहले
इजरायल रक्षा विभाग को सूचना दी कि
प्रणाली समय खो गया था.
चल रहा है के बारे में आठ घंटे के बाद, उन्होंने देखा कि
प्रणाली काफ़ी कम सटीक हो रहा था.
रक्षा विभाग के सभी बता कर प्रतिक्रिया व्यक्त की
पैट्रियट बैटरी सिस्टम नहीं छोड़ने के लिए
पर एक लंबे समय के लिए.
उन्होंने कभी नहीं कहा कि एक लंबे समय क्या था - 8 घंटे, 10
घंटा, 1000 घंटे.
कोई नहीं जानता था.
>> पैट्रियट बैटरी Dhahran में बैरकों में तैनात
और अपने त्रुटिपूर्ण आंतरिक घड़ी 100 से अधिक घंटे पर किया गया था
फरवरी की रात 25.
यह एक दूसरे के एक दसवें के बारे में एक सटीकता के लिए समय लगाया है.
अब दूसरे का एक दसवें एक दिलचस्प संख्या है क्योंकि
यह द्विपदीय में व्यक्त नहीं कर सकते हैं, वास्तव में, जिसका अर्थ है
यह वास्तव में किसी में नहीं व्यक्त किया जा सकता है
आधुनिक डिजिटल कंप्यूटर.
यह विश्वास करना मुश्किल है.
लेकिन एक उदाहरण के रूप में इस का उपयोग करें.
>> चलो संख्या 1/3 ले.
एक 3 दशमलव में व्यक्त नहीं, वास्तव में कर सकते हैं.
एक 3 0.333 अनंत के लिए चल रहा है.
वहाँ कोई दशमलव में पूर्ण शुद्धता के साथ कि क्या तरीका है.
यह ठीक है कि समस्या का एक ही तरह का है कि में हुआ है
पैट्रियट.
अब प्रणाली भाग गया, बुरा समय त्रुटि बन गया.
आपरेशन के 100 घंटे के बाद, समय में त्रुटि ही था
एक दूसरे के बारे में एक तिहाई.
लेकिन 5 मच पर यात्रा मिसाइल को निशाना बनाने का मामले में,
यह पर 600 मीटर की दूरी का एक ट्रैकिंग में त्रुटि हुई.
यह Dhahran में सैनिकों के लिए एक घातक त्रुटि होगा.
>> क्या हुआ एक स्कड प्रक्षेपण है जल्दी चेतावनी द्वारा पाया गया था
उपग्रहों और वे जानते थे कि स्कड अपने में आ रहा था
सामान्य दिशा.
वे जहां यह आ रहा था पता नहीं था.
अब यह था पैट्रियट के रडार घटक
Dhahran बचाव, प्रणाली को खोजने और का ट्रैक रखने के
आने वाली दुश्मन मिसाइल.
रडार बहुत होशियार था.
आप वास्तव में मूसलधार बारिश की स्थिति पर नज़र रखने और फिर
भविष्यवाणी जहां यह शायद अगली बार होगा
रडार एक पल्स बाहर भेजा.
यह सीमा के गेट बुलाया गया था.
तो, एक बार पैट्रियट का फैसला किया पर्याप्त समय के लिए जाने के लिए पारित कर दिया गया है
वापस करने के लिए और पाया है के लिए अगले स्थान की जाँच करें.
वस्तु, यह वापस चला जाता है.
तो जब यह गलत जगह पर वापस चला गया, यह तो कोई देखता है
आपत्ति है, और यह फैसला करता है कि वहाँ कोई आपत्ति थी.
यह एक गलत पहचान थी और ट्रैक बूँदें.
>> आवक स्कड राडार स्क्रीन से गायब हो गया.
और सेकंड बाद में, यह बैरकों में पटक दिया. स्कड
28 मारे गए और पिछले एक के दौरान निकाल दिया था
पहले खाड़ी युद्ध.
दुर्भाग्य से, अद्यतन सॉफ्टवेयर Dhahran पर पहुंचे
अगले दिन.
और सॉफ्टवेयर दोष तय हो गया था, में एक अध्याय बंद
पैट्रियट मिसाइल के अशांत इतिहास.
देशभक्त वास्तव में "चरणबद्ध सरणी ट्रैकिंग के लिए एक परिचित करा रहा है
लक्ष्य का अवरोधन. "
>> ठीक है, तो काफी नहीं है की एक और अधिक खेदयुक्त परिणाम
इस दुनिया को समझने.
और takeaway, वास्तव में, फिल्म से है कि समाधान
वहाँ अपने मिसाइल रक्षा प्रणाली को रीबूट करने के लिए किया गया था
हर एक समय में एक बार.
तो फिर, निश्चित रूप से इस पाठ्यक्रम का उद्देश्य के, एक
इन अनुप्रयोगों की तुलना में एक अधिक विनम्र पैमाने पर करने के लिए है
वास्तव में आप कैसे जाने के बारे में वास्तव में खुला हर किसी की आँखों
मशीनें बनाने क्या आप उन्हें करने के लिए करना चाहते हैं और कैसे तुम जाओ
के बारे में है कि सही ढंग से कर रहा है, जबकि यह रास्ता साथ कर
ठीक है, elegantly, और इतना आगे.
और इसलिए आज, इस का एक छोटा सा में डुबकी चलो, लेकिन
ताकि हम भी तेजी से उन लोगों के लिए विशेष रूप से कम नहीं जाना है,
आरामदायक, लेकिन यह भी तो है कि हम की रुचि बनाए रखने कर सकते हैं
उन अधिक आरामदायक, बस जल्दी से एक बिट के साथ शुरू करते हैं
इन विचारों के कुछ संक्षिप्त की.
और फिर, दूर से पूछना, दोनों व्यक्ति में या ऑनलाइन, अगर आपके पास
सवाल तो हम एक ही पृष्ठ पर हर किसी को रख सकते हैं.
>> तो CS50 उपकरण, त्वरित कदम वापस,
अपने ही शब्दों में, क्या?
यह ठीक है अगर तुम्हें पता नहीं क्या उन शब्दों को अभी तक हो सकता है.
[अश्राव्य]
ठीक है, तो के लिए एक सार्वभौमिक इंटरफ़ेस
है कि हम सभी को साझा कर सकते हैं.
बिल्कुल.
तो हम, उदाहरण के लिए, आप बता सकता है कुछ करने के लिए जाना
वेबसाइट, मैक ओएस के लिए इस सॉफ्टवेयर को डाउनलोड.
विंडोज के लिए इस सॉफ्टवेयर डाउनलोड, कॉन्फ़िगर
और इस तरह से कि.
लेकिन वास्तविकता तो यह है कि हम में चलाने की असंख्य तकनीकी
मुद्दों का समर्थन.
और भी इन दिनों, सर्वर साइड क्या किया जा रहा है की बहुत,
कंप्यूटिंग की दुनिया में, खासकर जब यह करने के लिए आता है
वेब विकास और वेब आधारित अनुप्रयोगों, वास्तव में है
अक्सर यूनिक्स या Linux कंप्यूटर पर किया है, के रूप में करने का विरोध किया
एमएसीएस या विंडोज पीसी.
>> तो upsides के बीच है, तो इस बात का उपयोग करने का आह्वान किया
CS50 उपकरण है कि हम सब एक ही माहौल होगा.
तो हर कोई एक ही पृष्ठ पर कोई बात है तुम क्या हार्डवेयर
के साथ परिसर के लिए आया था, लेकिन यह भी ठीक dabbling जाएगा
वही वातावरण है कि आप की ओर का उपयोग किया जाएगा
सेमेस्टर के अंत के रूप में अच्छी तरह के लिए वेब विकास, के रूप में के रूप में अच्छी तरह से
असली दुनिया अनुप्रयोगों के लिए उसके भविष्य.
तो अधिक concretely, CS50 उपकरण के एक मुक्त टुकड़ा है
सॉफ्टवेयर है कि आप अन्य ऑपरेटिंग सिस्टम को चलाने के लिए अनुमति देता है,
लिनक्स, इस मामले में, अपने कंप्यूटर पर, एक खिड़की में.
अब तुम सिर्फ उपकरण नहीं डाउनलोड कर सकते हैं.
तुम जो साथ खेलने या उपकरण को चलाने के लिए एक कार्यक्रम की जरूरत है.
और सॉफ्टवेयर का टुकड़ा है कि आम तौर पर एक के रूप में जाना जाता है
हाइपरविजर.
Hypervisors VMware जैसे उत्पादों के रूप में आते हैं,
वर्चुअल बाक्स, समानताएं.
कंपनियों के सभी प्रकार के सॉफ्टवेयर, दोनों मुक्त बनाने के लिए और
वाणिज्यिक समान.
क्या आप समस्या में देखेंगे 1 सेट करने के लिए कैसे पर निर्देश दिए गए हैं
मुफ्त सॉफ्टवेयर प्राप्त करने के लिए जो के साथ
CS50 उपकरण चलाने के.
और एक बार आप, आप अपने मैक या पीसी पर एक खिड़की में, होगा,
एक डेस्कटॉप वातावरण है कि इस तरह से काफी लग रहा है, जहां
में एक प्रारंभ मेनू की तरह बात है
नीचे बाएँ हाथ के कोने.
यह ऊपर छोड़ दिया में एक घर फ़ोल्डर, या होम निर्देशिका है,
वहाँ एक कचरा, और इतना आगे कर सकते हैं.
तो हम अलग हम जाने के रूप में आवश्यक विवरण तंग करेंगे.
>> लेकिन अब हम सी. में गोता लगाने के लिए शुरू
तो सी प्रोग्रामिंग भाषा है, भावना में समान
खरोंच, लेकिन अब तक कम चित्रमय, लेकिन विडंबना यह है कि अब तक,
अधिक शक्तिशाली है कि एक बार आप इसके साथ प्रेमी हो.
सी में तो, हम स्रोत कोड लिखने से प्रोग्राम लिखने, जो है
इस वाक्य रचना अंग्रेजी की तरह, मोजे के लिए इसी तरह की
प्रदर्शन है कि हम पिछली बार किया है कि आप के लिए अनुमति देता है
अपने आप को काफी ठीक से व्यक्त करने के लिए, अगर
arcanely, कंप्यूटर के लिए.
>> तो उत्पाद सॉफ्टवेयर की तरह क्या आप वास्तव में जरूरत है
सी की तरह एक भाषा में कार्यक्रम हमारे आधार पर, लिखने
सोमवार को बातचीत?
[अश्राव्य]
ठीक है, तुम सिर्फ एक पाठ संपादक की जरूरत है.
आप किसी विशेष सॉफ्टवेयर की जरूरत नहीं
प्रतिशत से कार्यक्रमों को लिखने के लिए.
तुम सिर्फ नोटपैड की तरह एक पाठ Windows पर, संपादक की जरूरत है,
मैक पर TextEdit या जीएडिट कहा जाता है की दुनिया में कुछ,
लिनक्स, जो हम यहाँ का उपयोग करेंगे.
और वह यह है, प्रोग्राम लिखने.
>> लेकिन लेखन समीकरण का केवल आधा है.
फिर आप उन्हें चलाने की जरूरत है.
लेकिन आदेश में कार्यक्रम चलाने के लिए -
आप स्रोत कोड नहीं चला सकते हैं.
आप के बजाय इसे करने के लिए पहले क्या करना है?
हाँ.
डेविड जे मालन: आप की जरूरत है
यह संकलन.
और, किसी और का मतलब है, स्रोत कोड संकलन -
[अश्राव्य]
डेविड जे मालन: बिल्कुल सही.
यह शून्य और लोगों के लिए अनुवाद करते हैं.
क्योंकि इन दिनों हम सब के, कंप्यूटर कि CPUs है,
जिनमें से लगभग सभी एक इंटेल नामक कंपनी द्वारा बनाई गई हैं, और
इंटेल के अंदर का मतलब है, वहाँ के अपने इस दिमाग के अंदर है
कंप्यूटर, सीपीयू के रूप में जाना जाता है.
और एक चीजों की है कि है कि मस्तिष्क करता है, यह जानता है
कैसे शून्य और लोगों के पैटर्न को समझने के लिए.
यह जानता है कि क्या बिट्स के पैटर्न इसके अलावा प्रतिनिधित्व करता है, क्या
पैटर्न subtractions का प्रतिनिधित्व करता है, क्या पैटर्न के
बिट्स, छपाई का प्रतिनिधित्व करते हैं और एक श्रव्य ध्वनि बनाने.
>> तो संक्षेप में, सीपीयू, ऑपरेटिंग सिस्टम के साथ मिलकर,
जो सॉफ्टवेयर का एक टुकड़ा है कि CPU के शीर्ष पर चलाता है,
इतनी बात करने के लिए.
साथ में, उन दो टुकड़े जानते हैं कि कैसे प्रोग्राम चलाने के लिए
हम इंसानों लिखें.
>> तो अगर मैं यहाँ CS50 उपकरण में जाओ, मैं खोलने की जरूरत
एक पाठ संपादक और मैं इस का उपयोग कर सकते हैं
तरीके के एक जोड़े में.
मैं या तो मेनू के लिए जा सकते हैं, प्रोग्रामिंग,
और फिर मैं का चयन कर सकते हैं -
नहींं, कि मेनू में नहीं.
मैं सहायक जाना / यहाँ जीएडिट को खोलने के लिए कर सकते हैं
मेरी छोटी पाठ संपादक.
या अधिक बस, मैं नीचे में इस छोटे आइकन पर क्लिक कर सकते हैं
बाएँ हाथ के कोने.
और अब मैं यहाँ इस माहौल मिलता है.
यह सुंदर एक साधारण पाठ संपादक की याद ताजा करती है, बस के साथ
एक या दो मतभेद.
शीर्ष में, जहां कर्सर निमिष अब है, यह वह जगह है जहाँ है
मैं अपने कोड लेखन शुरू कर सकते हैं.
नीचे में इस बात टर्मिनल विंडो कहा जाता है.
और क्या बातें की तरह मैं इस में कर सकते हैं
टर्मिनल विंडो तथाकथित?
[अश्राव्य]
>> ठीक है, तो मैं कमांड चलाने जाएगा.
और आदेशों हम सोमवार को दौड़ा कुछ एक छोटे से थे
गुप्त पहले, लेकिन सूची के लिए रास, परिवर्तन निर्देशिका के लिए सीडी,
rm, हटाने के लिए.
तो यह आपके नेविगेट करने के एक तरह से पुराने स्कूल की तरह है
कंप्यूटर, केवल अपने कीबोर्ड और शाब्दिक कमांड का उपयोग,
और आम तौर पर, नहीं, एक माउस का उपयोग.
लेकिन हम लंबे समय से पहले देखेंगे, यह वास्तव में हमें एक देता है
थोड़ा और अधिक शक्ति और जो करने के साथ एक छोटे से अधिक सटीक
खुद को व्यक्त करते हैं.
और फिर छोड़ दिया पर यहाँ पर हम सिर्फ देखने जा रहे हैं,
के रूप में हम सॉफ्टवेयर लेखन, का एक छोटा सारांश शुरू
प्रोग्राम है कि हम ऊपर छोड़ दिया पर लिखा है.
लेकिन हम लंबे समय से पहले वह फिर से देखेंगे.
>> तो चलो यहाँ काफी सरल कुछ करना.
पहले मुझे आगे जाना है और फाइल करने के लिए बचाने के लिए जाना है, और मैं सिर्फ हूँ
यहाँ पर jharvard क्लिक करने के लिए जा रहा है, छोड़ दिया पर खत्म हो गया है, और
jharvard है, फिर से, मेरे घर फ़ोल्डर के लिए नाम, मेरे
व्यक्तिगत फाइलें, मुझे पता है, अब जा रहा है जॉन हार्वर्ड, आप सभी के रूप में
जल्द ही इस माहौल में जॉन हार्वर्ड होगा.
वह इस घर निर्देशिका मिला है, मेरे दस्तावेज़ और बहुत आगे है,
कि मुझे बचाने के लिए, अब चाहते हैं, इस फ़ाइल के अंदर
तो मैं यह hello.c कॉल करने के लिए जा रहा हूँ. तो मैं जा रहा हूँ
आगे और सहेजें, और अब क्लिक करें क्या मैं यहाँ है एक टैब है
hello.c इतना संपादक की एक अन्य प्रकार की तरह, कहा जाता है.
>> तो अब मुझे आगे जाना है और एक प्रोग्राम लिखने शुरू.
int मुख्य (शून्य).
और फिर मैं बस पिछली बार किया था, printf के लिए, प्रिंट स्वरूपित,
("हैलो दुनिया!"
).
लगभग पूरा हो गया है.
लेकिन मैं विवरण के एक जोड़े को याद कर रहा हूँ.
क्या इस कार्यक्रम है कि मैं वास्तव में के लिए की जरूरत से लापता है
यह वास्तव में संकलन करने के लिए?
हाँ.
[अश्राव्य]?
>> डेविड जे मालन: हाँ, तो मैं मानक शामिल करने की ज़रूरत है
मैं / हे पुस्तकालय.
इस मुख्य ऊपर जाने की जरूरत है, तो मैं बस के लिए जा रहा हूँ तो
इसके लिए कुछ कमरे बनाने के.
और मैं # शामिल करने के लिए जा रहा हूँ.
और angled कोष्ठक वहाँ नोटिस.
और एक अलग रूप में, जी - एडिट एक छोटा उपयोगकर्ता के अनुकूल है, अगर
कभी कभी एक छोटे से भ्रामक है, कि यह करने के लिए मदद करने की कोशिश करता है अपने
आँखों के साथ क्या क्या लाइनों को नोटिस.
तो तथ्य यह है कि मेरे इस angled कर्सर है
ब्रैकेट नोटिस, यह कैसे अन्य angled पर प्रकाश डाला है
ब्रैकेट प्लस यह एक.
और कहा कि सिर्फ इस तथ्य के लिए मेरा ध्यान आकर्षित करने के लिए मुझे लगता है कि
समरूपता है.
और प्रोग्रामिंग में समरूपता आम तौर पर एक अच्छी बात है.
इसी प्रकार, यदि मैं अंत करने के लिए अपने कर्सर चाल नोटिस, कैसे
घुंघराले ब्रेसिज़ लाइन बताते हैं कि, हाँ, मैं एक खुला है
और एक बंद एक, तो बात करो.
>> ठीक है, मैं और एक अन्य बात कर सकते हैं.
यह सख्ती से आवश्यक है, लेकिन अच्छा अभ्यास नहीं है, कहने के लिए
0 वापसी.
और बदले 0 हमारे लिए क्या करता है?
या का मतलब क्या है?
[अश्राव्य]
डेविड जे मालन: लेकिन कुछ भी गलत नहीं है.
और स्पष्ट रूप से यह मुश्किल है एक में बहुत गलत जाने के लिए
इस छोटे से कार्यक्रम.
तो मैं बस स्पष्ट सुपर किया जा रहा है कि सब ठीक है.
मैं, मानव, जब मैं इस कार्यक्रम को चलाने, शायद कभी नहीं होगा
0 कि देखते हैं.
आम तौर पर, इन नंबरों कि मुख्य से लौट रहे हैं किया जा रहा है
केवल मनुष्य के लिए जब उनके सिर के पीछे
कुछ गलत हो जाता है.
और तुम कह प्रणाली त्रुटि ऊपर थोड़ा पॉप मिलता है, एक,
दो, तीन, या जो भी संख्या था कि
वास्तव में लौट आए.
और इस के साथ कुछ गलत तो?
[अश्राव्य]
>> डेविड जे मालन: तो यह इतना एक कार्यात्मक गलती नहीं है
लेकिन एक सौंदर्य एक.
मैं शायद एक newline चरित्र में रखा जाना चाहिए
इतना है कि इस स्ट्रिंग के अंत में हम वास्तव में कर्सर को स्थानांतरित
अगली पंक्ति, और कार्यक्रम सिर्फ एक छोटे से सुंदर लग रहा है.
>> तो अब मुझे मेरे टर्मिनल विंडो के लिए नीचे जाने
ज़ूम और वापस अंदर
और यह बात यहाँ, यह तुरंत कहा जाता है.
यह सिर्फ मुझे याद दिलाता है कि मैं कौन हूँ, jharvard @ उपकरण, जहां
उपकरण मैं कंप्यूटर पर हूँ के नाम है.
कोष्ठक में इस टिल्ड, विद्रूप प्रतीक है, जो
क्या प्रतिनिधित्व करता है?
दर्शक: घर निर्देशिका.
डेविड जे मालन होम निर्देशिका:.
तो है कि सिर्फ कह रही है आप में हैं के लिए एक आशुलिपि संकेतन है
आपकी व्यक्तिगत फ़ोल्डर जहाँ आपकी फ़ाइलों के सभी डिफ़ॉल्ट रूप से जाना.
तो अब, यहाँ, मैं सूची के लिए रास टाइप कर सकते हैं.
और केवल एक चीज मैं पल में यहाँ देखने hello.c है.
और यह अच्छी बात है क्योंकि मैं सिर्फ यह लिखा है.
>> तो मुझे आगे जाते हैं और नमस्ते बनाने.
नोटिस और मैं नहीं hello.c बनाने टाइप कर रहा हूँ.
इसके बजाय, मैं केवल फ़ाइल के आधार नाम टाइप कर रहा हूँ, नमस्ते.
और, के रूप में हम सोमवार को देखा था, सिर्फ अनुमान है कि मैं चाहता हूँ
ग फ़ाइल.
तो अब मैं टाइप किया है हैलो बनाने.
अब मैं यह काफी लंबे समय से एक आदेश देखने के लिए और जारी रहेगा
यह फिर से और फिर से देख.
लेकिन स्पष्ट, बजना, शब्द है कि बस में दिखाई दिया हो,
कि वास्तविक संकलक है.
बस एक निर्माण उपयोगिता है.
यह सिर्फ एक और अधिक उपयोगकर्ता के अनुकूल कार्यक्रम है कि मुझे बचाता है में,
लंबे समय के लिए अविश्वसनीय रूप से लंबे थकाऊ प्रकार बाहर होने से चलाने के लिए,
एक तरह है कि आदेश.
तो तुम बजना मैन्युअल रूप से चला सकता है.
तुम कि मैन्युअल के सभी प्रकार सकता है.
बस बहुत कठिन हो जाता है.
और इसलिए सिर्फ एक प्रोग्राम है कि हमारे जीवन को सरल और
हमारे लिए और अधिक जटिल आदेश चलाता है.
>> ठीक है, तो अब मैं क्या फ़ाइल होना चाहिए
अपने मौजूदा निर्देशिका में?
Hello.c, इतना ही नहीं, लेकिन यह भी हैलो.
तो अगर मैं हैलो चलाना चाहते हैं याद है, कि मैं डॉट स्लैश कहते हैं,
जहां डॉट का मतलब है वर्तमान फ़ोल्डर, तुम जहाँ में जाना
कर रहे हैं, और फिर नमस्ते कार्यक्रम बुलाया चलाने के लिए, और वास्तव में, अब,
मैं नमस्ते दुनिया है.
सब ठीक है, कार्यप्रवाह पर कोई प्रश्न या वाक्यविन्यास
हम अभी क्या किया?
>> ठीक है, तो हम एक पायदान ऊपर बातें फिर से ले.
तो यह सिर्फ एक प्रोग्राम लिखने underwhelming था कि केवल
कभी हैलो दुनिया कहते हैं.
तो हम इसे बदल गया है, सोमवार को, कहते हैं, हैलो, डेविड.
यह थोड़ा और अधिक व्यक्तिगत है, लेकिन बस के रूप में मुश्किल के रूप में कोडित
पहले संस्करण.
तो यह है कि सभी मजबूर नहीं.
लेकिन वहाँ सी में मौजूद है, कार्यों निश्चित रूप से के अलावा
प्रिंट, कार्य करता है कि आप उपयोगकर्ता इनपुट मिल.
और जिस तरह से हम यह किया है, दूसरे दिन, इस प्रकार के रूप में किया गया था.
इससे पहले कि मैं वास्तव में बाहर कुछ प्रिंट, मैं पहली बार मिला
उपयोगकर्ता से कुछ.
तो मुझे यह फिर से करना.
>> स्ट्रिंग है, जहां एस मनमाना नाम, एक के लिए यहाँ है
स्ट्रिंग, GetString के बराबर होती है.
तो क्या GetString किया गया था?
यह स्पष्ट रूप से एक स्ट्रिंग हो जाता है, उसके नाम पर आधारित है.
लेकिन यह क्या है, और अधिक तकनीकी?
यह एक समारोह है.
तो यह एक समारोह है कि सी से प्रति के साथ नहीं आती है.
CS50 स्टाफ यह लिखा था.
और इसलिए इस का उपयोग करने के लिए, तुम सिर्फ stdio.h शामिल नहीं कर सकते हैं,
आप भी क्या शामिल करने की ज़रूरत है?
हाँ.
Cs50.h, जो सिर्फ एक फ़ाइल है तो हम कुछ साल पहले लिखा था.
हम यह आप के लिए बगल में उपकरण पर स्थापित
मानक फ़ाइलों के सभी.
और इसलिए वर्ग के इन पहले कुछ हफ्तों में, हम उपयोग करेंगे
यह सिर्फ बहुत ही बुनियादी करने की प्रक्रिया को सरल करने के लिए
बातें हो रही उपयोगकर्ता इनपुट की तरह.
क्योंकि जैसा कि हम कुछ ही हफ्तों में देखेंगे, हो रही एक में उपयोगकर्ता इनपुट
सी की तरह भाषा वास्तव में आश्चर्यजनक जटिल है,
विशेष रूप से, क्योंकि आप अग्रिम में नहीं पता है कि आम तौर पर, कि कैसे
ज्यादा सामान उपयोगकर्ता प्रकार अंदर जा रहा है
और जब आप जानते हैं कि कितना डेटा उम्मीद करने के लिए करते हैं, आप नहीं
पता है कितना स्मृति आवंटित करने के लिए.
और अगर आप वास्तव में एक adversarial उपयोगकर्ता के लिए जो कोशिश कर रहा है
आपके सिस्टम में हैक करने के लिए, अपने कंप्यूटर में अच्छी तरह से दुर्घटना,
आम तौर पर हमले की पहली विधि है, बस के रूप में मैं पर किया
सोमवार, यादृच्छिक वर्ण की एक पूरी लंबी अनुक्रम लिखें,
हिट दर्ज करें, और देखने के लिए क्या टूट जाता है.
क्योंकि आम तौर पर, एक कार्यक्रम टूटता है, कि में संकेत
एक सुरक्षा दोष, संभावित.
यह निश्चित रूप से आप में संकेत है, प्रोग्रामर, एक बना दिया
गलती की है, लेकिन अधिक खतरनाक है, तुम्हें बनाया है हो सकता है एक
गलती सुरक्षा से संबंधित है, और आम तौर पर हम देखेंगे कि
कि कैसे मशीनों इस दिन के लिए समझौता कर रहे हैं दोनों,
और वेब पर कार्यक्रमों की दुनिया में
इस तरह कमांड लाइन.
>> सही सभी.
तो स्ट्रिंग s GetString के बराबर होती है.
तो अधिक concretely, 6 लाइन यहाँ क्या करता है?
तो सही पर समारोह स्ट्रिंग हो जाता है,
लेता कितने तर्क?
ठीक है.
तो कोई नहीं है.
एक छोटी सी विवेक की जाँच करें.
एक तर्क है, फिर से, बस को बदलने के लिए एक समारोह के लिए एक इनपुट है
कुछ रास्ते में डिफ़ॉल्ट व्यवहार.
लेकिन इस मामले में, मैं करने के लिए बदल नहीं करना चाहती
GetString का व्यवहार.
मैं सिर्फ एक स्ट्रिंग प्राप्त करना चाहता था.
तो मैं कुछ भी नहीं कोष्ठकों में डाल दिया, और फिर मैं एक डाल
कोड की पंक्ति के अंत demarking सेमीकोलन.
अब, हस्ताक्षर के बराबर होती है इसका मतलब यह नहीं के बराबर प्रतिशत से.
यह काम का मतलब है, जो डाल मतलब जो कुछ भी हो जाता है
बाईं तरफ जो कुछ भी है सही अंदर पर outputted.
>> तो बाईं तरफ, हम कहते हैं कि हम की घोषणा की है एक
स्ट्रिंग कहा जाता है.
और अधिक विशेष रूप से, हम के अंदर स्मृति आवंटित है
जो हम बिट्स डाल देता हूँ कि एक दृश्य का प्रतिनिधित्व करता है
वर्ण.
लेकिन आज के लिए, हम आवंटित किया
या एक स्ट्रिंग घोषित.
सही सभी.
तो अब एक बार मैं इस किया है, मैं के मूल्य में प्लग करना चाहते हैं
है, दाऊद के मूल्य
तो यह क्यों गलत है?
तो यह बस सचमुच कठिन कोडित है.
यह कहते हैं "हैलो, है," जो मैं क्या चाहता है नहीं है.
इसलिए मैं यह कर सकता हूँ.
प्रतिशत चिह्न एक प्लेसहोल्डर है, लेकिन अब मैं करने की जरूरत है
एक दूसरा तर्क प्रिंट में पारित.
याद है कि कार्य करने के लिए तर्क से अलग हो रहे हैं
अल्पविराम, तो अगले अल्पविराम यहाँ मैं इस पत्र के बाद डाल दिया.
और अब इस संदर्भ में, चर है, printf और,
उन दो आदानों प्राप्त करने पर -
बाईं तरफ के और सही पर चर नाम स्ट्रिंग -
यह हमारे लिए पूर्व में बाद प्लग, और
बस से बाहर एक अच्छा सुंदर युक्त स्ट्रिंग प्रिंट
जो कुछ भी ऐसा नहीं है कि हम अंदर टाइप
>> तो चलो इस प्रयास करें.
आगे जाने के लिए और बाहर ज़ूम, वापस जा रहे हैं
मेरे टर्मिनल विंडो.
नीचे में यहाँ ज़ूम.
पुन: लिखें हैलो बनाने.
बजना फिर से दौड़ना किया गया है लगता है.
मैं टाइप करने के लिए जा रहा हूँ /. हैलो दर्ज करें.
कुछ भी नहीं करने के लिए अभी तक हो रहा लगता है, लेकिन यह इस प्रांप्ट
है कि मैं नैट तरह कुछ लिख सकते हैं, दर्ज करें, और अब हम
हैलो, नैट.
और मैं इसे फिर से रोब के साथ कर सकते हैं, और बहुत आगे है.
तो उम्मीद है कि अब इस कार्यक्रम के रूप में मैं इरादा बर्ताव कर रही है.
>> अब अनुकूल है, नहीं है कि सभी उपयोगकर्ता.
मैं मेरे बारे में क्या किया जा रहा है उम्मीद है कोई विचार है.
तो हम निश्चित रूप से एक छोटा सा यह साफ कर सकते हैं.
मुझे वापस जाना यहाँ, और के बजाय बस में डाइविंग और
एक स्ट्रिंग के लिए उपयोगकर्ता पूछ, मुझे स्पष्ट रूप से बता
उपयोगकर्ता मैं क्या उम्मीद कर रहा हूँ.
तो printf ("एक स्ट्रिंग दर्ज करें:"
);
तो यहाँ कोई चर.
कोई प्रतिशत संकेत.
बस सरल अंग्रेजी वाक्यांश.
मुझे अब नीचे यहाँ जाओ और मेरे कार्यक्रम फिर से दौड़ना.
लेकिन कुछ भी नहीं करने के लिए बदल दिया है लगता है.
क्यों?
मैं इसे recompile है.
तो आसान गलती करने के लिए.
लेकिन आप न केवल फ़ाइल बचाने के लिए है, लेकिन
कार्यक्रम recompile.
और यदि ऐसा है तो मैं फिर से चलाने के हैलो, अब बजना चलाता है.
अब मैं चला. / नमस्ते कर सकते हैं. और अब मैं देख रहा हूँ "एक स्ट्रिंग दर्ज करें:".
ठीक है.
अब यह एक छोटे से अधिक उपयोगकर्ता के अनुकूल है.
नैट दर्ज करें, हैलो, नैट.
>> ठीक है, चलो यह फिर से कोशिश करते हैं और सोच शुरू
कोने मामलों के बारे में.
तो सिर्फ खरोंच में करना चाहते हैं, तो आप को प्रोत्साहित कर रहे हैं या कर रहे हैं किया जा रहा है
कल्पना में प्रोत्साहित करने के लिए किस तरह का क्या जा सकता है के बारे में सोचना
गलत अगर तुम सब कुछ उपयोगकर्ता कर सकता आशा नहीं है.
कीड़े, इसलिए लगते हैं, हो सकता है.
तो एक स्ट्रिंग दर्ज करें -
एक कोने यहाँ मामला क्या है?
क्या एक परिदृश्य है कि मैं, प्रोग्रामर है, नहीं भी हो सकता है
प्रत्याशित?
हाँ.
ठीक है.
तो क्या हुआ अगर मैं इस तरह एक नंबर में टाइप?
सही सभी.
तो यह अभी भी काम करता है.
Gramatically कोई मतलब नहीं है.
लेकिन कम से कम कार्यक्रम में काम करता है.
>> एक दूसरे कोने का मामला क्या है?
कुछ मैं उम्मीद नहीं की थी.
हाँ?
ठीक है.
तो हम एक बहुत, बहुत बड़ी संख्या की तरह कुछ कर सकता है.
तो यहाँ यह सब करते हैं.
मुझे एक पल के लिए बाहर ज़ूम, मुझे पर प्रकाश डाला.
कॉपी नीचे यहाँ पेस्ट नहीं कर सकते हैं और.
सही सभी.
तो मैं कॉपी और पेस्ट इस टर्मिनल विंडो में नहीं सकते हैं, तो हम करेंगे
बस यह अनुकरण.
मुझे बाहर ज़ूम, लपेटो करने के लिए जा रहा है.
मैं भी लंबे समय के लिए ऐसा करने के लिए नहीं जा रहा हूँ, क्योंकि यह नहीं होगा
वास्तव में इस कार्यक्रम में तोड़.
लेकिन यह सकता है.
दर्ज करें.
लेकिन यह नहीं था.
सही सभी.
लेकिन यह एक वास्तविक कोने मामला है.
और एक ही कारण है कि सही ढंग से व्यवहार किया है, इतना
बात करते हैं, क्योंकि CS50 समारोह GetString वास्तव में है
हुड के नीचे बनाया गया है, के रूप में हम एक कुछ हफ्तों में देखेंगे,
करने के लिए स्वचालित रूप से अधिक से अधिक रैम, अधिक से अधिक का आवंटन
ऑपरेटिंग सिस्टम से स्मृति, जब यह पता चलता है, वाह,
आप वास्तव में काफी लंबे समय में कुछ टाइप किया है.
अब, यह एक सफेद झूठ का एक सा है.
यदि हम वास्तव में काफी देर के लिए रोक दिया है और मैं में टाइप
पाँच अरब पात्रों की तरह कीबोर्ड पर कुछ
यहाँ है, या वास्तव में कॉपी पेस्ट काफी एक बिट मारा, हम काफी संभवतः
दुर्घटना करने के लिए कार्यक्रम का कारण बन सकता है.
बस थोड़ा कठिन है कि एक परिमित साथ अनुकरण करने के लिए
समय की राशि.
>> क्या एक दूसरे कोने मामले में हम कोशिश कर सकते है?
हाँ?
हाँ.
तो हम कुछ भी जवाब क्यों नहीं देते?
तो हम वास्तव में कुछ कार्रवाई करने के लिए है, क्योंकि अन्यथा
कार्यक्रम के लिए सभी दिन निमिष बैठ जा रहा है.
लेकिन अगर मैं सिर्फ मारा -
ठीक है, अब, अभी भी गलत लग रहा है.
क्या दुर्घटना नहीं है, लेकिन शायद वहाँ अब एक अवसर है
एक और अधिक कठोर कार्यक्रम को लागू करने शुरू
कि वास्तव जांचता है.
और अगर मैं स्ट्रिंग, वाक्य, शब्द है कि
0 लंबाई में लिखा है, ठीक है, शायद मैं पर चिल्लाना चाहिए
उपयोगकर्ता, या उसे बता सकते हैं या उसे एक स्ट्रिंग फिर से प्रवेश करने के लिए, इतना है कि
हम वास्तव में प्राप्त नहीं है और क्या सही व्यवहार की तरह लग रहा है
सिर्फ मेरे हिस्से पर पूरा निरीक्षण.
>> पीठ में सवाल?
दशमलव संख्या.
इसलिए हम कोशिश भी सकता है.
1.10000005.
लगता है जैसे कि अभी वास्तव में ठीक काम करने के लिए जा रहा है.
और वह वास्तव में उम्मीद है.
हालांकि हम टाइप हो सकता है कि वहाँ संख्या, या एक
बड़ी संख्या पहले का एहसास है कि जब हम उपयोगकर्ता टाइप कर रहे हैं
नहीं करता इनपुट और हम GetString समारोह का उपयोग कर रहे हैं,
मैं क्या टाइप कर रहा हूँ अगर बात एक नंबर की तरह लग रहा है.
याद है कि ASCII, अपने पर सब कुछ के अनुसार
कुंजीपटल एक संख्यात्मक मूल्य है कि एक के लिए मैप किया जा सकता है
चरित्र, एक चार.
तो इस मामले में, भले ही मैं एक नंबर टाइप करें, हो सकता है
कंप्यूटर यह सोचने के लिए जा रहा है, तो एक स्ट्रिंग के रूप में बात करने के लिए -
कुछ है कि एक नंबर की तरह दिखता है, लेकिन है
एक संख्या वास्तव में नहीं है.
लेकिन यह है कि वास्तव में एक आदर्श segue है क्योंकि अब हम कर सकते हैं,
वास्तव में लिखने के कार्यक्रमों के लिए संक्रमण है कि
अन्य डेटा प्रकार का उपयोग करें.
>> तो अलावा घर का काम का उपयोग कर रहे हैं, या बल्कि, के अलावा तार का उपयोग,
एहसास है कि हम सी में अन्य डेटा प्रकार के रूप में के रूप में अच्छी तरह से किया है
अन्य भाषाओं.
एक चार, जैसा कि नाम से पता चलता है, सिर्फ एक ही चरित्र है.
एक नाव एक फ्लोटिंगपाइंटमूल्य है, और है कि सिर्फ एक कल्पना है
एक वास्तविक संख्या कह का तरीका है - कुछ है कि एक दशमलव
यह में छोड़ दिया और / या सही करने के लिए कुछ संख्या के साथ बिंदु.
एक int एक पूर्णांक है, जो सिर्फ 123 की तरह एक नंबर है.
और अब और अधिक दिलचस्प डबल की तरह बातें कर रहे हैं.
हम क्या कहना था कि एक डबल पिछले समय था?
यह 64 है, है ना.
तो आम तौर पर जबकि एक नाव 32 बिट है -
तो यह स्मृति में लंबे समय से इस है, यह 32 शून्य और लोगों का उपयोग करता है
मूल्यों का प्रतिनिधित्व - दो बार है कि, एक डबल सचमुच है जो
इसका मतलब है कि या तो आप बड़ी संख्या का प्रतिनिधित्व कर सकते हैं, या
आप अधिक सटीक संख्या का प्रतिनिधित्व कर सकते हैं.
तो आप दशमलव बिंदु के बाद अधिक संख्या है, लेकिन कर सकते हैं
के रूप में साथी वीडियो में कहा, यहां तक ​​कि कुछ सरल
धारणात्मक 1/3 की तरह एक से ठीक नहीं प्रतिनिधित्व किया जा सकता है
कंप्यूटर, क्योंकि अंततः आप बिट्स के बाहर चलाने के लिए, और
इसलिए आप केवल .33333333 तो कई बार, पर कर सकते हैं
जो बात आप सिर्फ कहने के लिए मैं बाहर प्रतिनिधित्व के
अंतरिक्ष, मैं सिर्फ इसे एक दिन फोन और यह प्रतिनिधित्व
कुछ हद तक imprecisely कि तरह.
और एक लंबे -
बेवकूफ नाम है, लेकिन यह है क्योंकि वहाँ एक डेटा प्रकार एक के रूप में जाना जाता है
सी में लंबे समय जो संयोग से अक्सर एक की तरह सिर्फ 32 बिट,
int 32 बिट है, लेकिन एक लंबे
आम तौर पर 64 बिट.
तो यह सिर्फ मतलब है कि आप बड़ा प्रतिनिधित्व कर सकते हैं
इस से संख्या.
>> सही सभी.
इसलिए यदि हम वास्तव में करने के लिए चीजें हम का प्रतिनिधित्व, शुरू करना चाहते हैं
अधिक परिष्कृत प्रकार की जरूरत है, और हो सकता है
यही कारण है कि हम स्ट्रिंग है.
तो CS50 पुस्तकालय में फ़ाइल है कि cs50.h बुलाया, हम है
वास्तव में एक डेटा प्रकार, इतनी बात करने के लिए कहा जाता है, स्ट्रिंग की घोषणा की है,
लेकिन स्ट्रिंग वास्तव में मौजूद नहीं है.
यह है, फिर, इन परतों में से एक हम छील करने के लिए जा रहे हैं
एक या दो सप्ताह में वापस और इसे दूर फेंक, और वास्तव में
एक स्ट्रिंग वास्तव में क्या है हुड के नीचे देखो, और
यह कैसे प्रतिनिधित्व है.
हम भी बूलियन मान को देखने के लिए जा रहे हैं.
>> तो खरोंच के संदर्भ में एक bool क्या था?
यह सही है या गलत है.
तो यह सिर्फ एक मूल्य है कि सही है या गलत है, पर या 1, या बंद
0, लेकिन आप दुनिया को देखना चाहते हैं.
तो सी में, CS50 पुस्तकालय के लिए धन्यवाद, जो बारी में
हुड के नीचे एक और पुस्तकालय भी शामिल है, हम
एक डेटा प्रकार कि bool कहा जाता है, का उपयोग करने के जो
सचमुच हमें मूल्यों सच है या झूठी आवंटित करने के लिए अनुमति देते हैं
एक कार्यक्रम में बातें.
>> तो चलो आगे यहाँ से जाने के लिए और एक छोटे से प्रोग्राम है कि लिखने
संख्या के बजाय कुछ शामिल करता है.
तो मुझे CS50 उपकरण के लिए वापस जाओ, मुझे आगे जाना है और
यहाँ बुलाया एक नई फ़ाइल बना सकते हैं -
चलो बस कुछ सरल math.c. तरह का कहना है
सही सभी.
और अब अपने कार्यक्रम के शीर्ष करने के लिए ऊपर जाना है, मैं कर रहा हूँ
सामान्य करने के लिए जा रहा है -
# शामिल , इतना है कि मैं का उपयोग कर सकते हैं
printf, int मुख्य (शून्य)
हम वापस करने के लिए आते हैं, अंत में हूँ, int क्या मतलब है
यहाँ, शून्य यहाँ क्या मतलब है, लेकिन अब के लिए, सिर्फ इतना पता है कि
आप इस तरह से कार्यक्रम शुरू किया है.
अब मुझे आगे जाना है और एक छोटे से कुछ कहने जा रहा हूँ
अलग - printf ("मुझे एक नंबर दो."
).
यह तो मैं int n = GetInt करने के लिए जा रहा हूँ, क्योंकि
GetInt बाहर जाता है CS50 पुस्तकालय में एक अन्य समारोह है
GetString अलावा.
और अब मैं बेवकूफ कुछ करने के लिए जा रहा हूँ "की तरह धन्यवाद,
% d के लिए, "दशमलव पूर्णांक, और फिर अल्पविराम n, और
तो 0 वापसी.
तो फिर से लौटने के लिए, 0 संख्या मैं कर रहा हूँ के साथ कुछ नहीं करना है
के लिए उपयोगकर्ता पूछ.
बस अंत में है कि सभी, शायद, अच्छी तरह से है का प्रतीक है.
>> तो मुझे मेरे टर्मिनल विंडो के लिए यहाँ नीचे जाना.
मुझे गणित बनाने, टाइप दर्ज करें.
और कुछ गड़बड़ है.
गणित काम नहीं किया.
यहाँ हमारे त्रुटि संदेशों में से 1 है.
क्यों?
एक छोटी सी गुप्त, लेकिन -
हाँ.
तो cs50.h.
तो फिर, विशेष रूप से जल्दी पर, आप अपने पहले लिख देंगे
1 pset के लिए वर्गों में कार्यक्रम, कार्यालय घंटे में, और
स्पष्ट है, यह कभी कभी भारी हो जाएगा क्या इन बातों
वास्तव में कह रहे हैं.
लेकिन आप बहुत जल्दी एहसास वे गिर शुरू करेंगे
बाल्टी जिससे एक यह है कि आप एक बंद छोड़ दिया है में
# फ़ाइल के शीर्ष पर शामिल हैं.
और बजना, संकलक, आप इस की सूचना है
कह, बल्कि विचित्रतापूर्वक, निहित घोषणा
समारोह GetInt अमान्य है.
>> सही सभी.
तो इसका क्या मतलब है?
यह सिर्फ मतलब है कि आप परोक्ष GetInt में घोषित किया है
अर्थ है कि आप स्पष्ट रूप से यह घोषणा नहीं की.
स्पष्ट रूप से int घोषित, आप सिखाना है
बजना है कि यह मौजूद है.
और उस के लिए बहुत ही सरल समाधान के लिए इसे सिखाने के लिए है
यह अन्य फ़ाइल, cs50.h, पर सहित
अपनी फ़ाइल के शीर्ष.
क्योंकि सचमुच, # include क्या करता है यह बजना बताता
बहुत ज्यादा बुलाया cs50.h, प्रतिलिपि फ़ाइल मिल जाना है,
यह स्वचालित रूप से मेरे लिए अपने कार्यक्रम के शीर्ष में पेस्ट,
और फिर शून्य और लोगों के लिए स्रोत कोड में परिवर्तित.
लेकिन जाहिर है कि बहुत कठिन हो सकता है अगर हम इंसानों था
नकल और इन बड़ी फ़ाइलों चिपकाने हर समय जाना,
# शामिल तो सिर्फ इतना है कि सब बिना स्वचालित रूप से
किसी और के पुस्तकालय के साथ अपने कोड muddying.
और एक पुस्तकालय सिर्फ एक और कार्यों युक्त फ़ाइल और है
अन्य चीजें हैं जो किसी और लिखा है कि हम कर रहे हैं
हमारे स्वयं के लिए लाभ.
>> सही सभी.
चलो फिर से कोशिश.
गणित बनाओ.
दर्ज करें.
अच्छा है.
तो यह है कि करने के लिए काम किया है लगता है.
तो मुझे अब गणित चलाने, गणित /.
दर्ज मुझे एक संख्या, 123 देता है.
123 के लिए धन्यवाद.
अब चलो एक दूसरे कोने मामले की कोशिश.
एक स्ट्रिंग बहुत उदार है, क्योंकि एक
स्ट्रिंग कुछ भी हो सकता है.
संख्या की तरह देख सकते हैं, की तरह लग रहे
अक्षर, शब्दों की तरह देखो.
लेकिन एक int एक int है.
तो अब अगर मैं मुश्किल उपयोगकर्ता हूँ, और यह कह रहा है कि मुझे दो.
एक नंबर, "क्या अगर मैं 0.1 की तरह कुछ करने की कोशिश करते हैं?
खैर, कि एक संख्या है, और इसके साथ संगत है
व्याकरण मैं यहां इस्तेमाल किया, लेकिन हुड के नीचे, मैं कर रहा हूँ
समारोह GetInt का उपयोग कर पाठ्यक्रम.
>> तो देखते हैं कि क्या होता है.
दर्ज करें, पुनः प्रयास करें.
सही सभी.
मुझे कठिन और बस फिर हिट दर्ज हो.
दर्ज करें, दर्ज करें.
तो अब यह लगता है कि GetInt एक छोटे से अधिक है
GetString से अधिक शक्तिशाली है.
हम, स्टाफ, इस तरह है कि अगर हम नोटिस में लागू
आप हमें एक int नहीं दिया है - और एक int एक दशमलव संख्या है
युक्त शून्य, लोगों, twos, threes, चौकों, fives, छक्के,
सात, आठ या नौ.
और यह बात है.
कोई दशमलव अंक, कोई वर्ण, कोई विराम चिह्न.
ऐसा लगता है कि हम सहयोग किया है.
तो मुझे चार, पांच, छह, और कोशिश है कि मुझे के माध्यम से हो जाता है.
तो सच में, यहाँ गुदा हो, मैं शायद कहते हैं "मुझे दे दो
आदेश में उपयोगकर्ता के लिए देने के एक पूर्णांक
वास्तव में मैं क्या इरादा है.
>> अब चलो हुड के नीचे के बारे में सोचते हैं.
हम कैसे cs50.h आज कार्यान्वित किया जाता है पर देखने के के लिए नहीं जा रहे हैं,
उस लायब्रेरी.
लेकिन अगर यह कह लिए पुनःप्रयास करें पुन: प्रयास पुन: प्रयास रहता है, प्रोग्रामिंग
हूँ मैं संभवतः के हुड के नीचे का उपयोग कर का निर्माण
लागू?
तो सिर्फ एक पाश, है ना?
सरल विचारों की है कि हम खरोंच पर देखा.
हमेशा के लिए निर्माण, दोहराएँ का निर्माण.
मुमकिन है, इस कार्यक्रम में हुड के नीचे भी
हालांकि यह सी में लिखा है और खरोंच नहीं है, यह कर रहा है
कुछ हमेशा के लिए बराबर बुलाया यदि उपयोगकर्ता नहीं है
एक पूर्णांक में टाइप पुन: प्रयास कहते हैं, लिए पुनःप्रयास करें पुन: प्रयास पुन: प्रयास हां, तो
फिर अंत में जब हम करते हैं एक पूर्णांक हो, तुम तो
कि लूप के बाहर तोड़.
>> तो क्या अन्य कार्यों हम यहाँ CS50 पुस्तकालय में उपयोग कर सकते हैं?
ठीक है, की तरह स्पष्ट हैं, कम से कम के आधार पर
डेटा प्रकार है कि अब हम जानते हैं मौजूद.
हम GetString, GetInt लागू किया, लेकिन भर में
कार्यकाल के पहले सप्ताह, आप भी GetFloat का उपयोग करने के लिए और कर सकते हैं
GetDouble और GetLongLong क्रम में ठीक हो
डेटा प्रकार है कि आप चाहते हैं.
क्योंकि यहाँ कुंजी विस्तार है कि कुछ भाषाओं के विपरीत,
पायथन और रूबी की तरह है, जहां आप के लिए जरूरी नहीं है
एक चर के डेटा प्रकार की घोषणा -
आप कंप्यूटर को बताने की जरूरत नहीं है कि सामान की तरह क्या
आप चर में डाल करने के लिए जा रहे हैं -
सी में, आप कभी इतनी सटीक होना है.
इसलिए यदि आप एक n चर बुलाया, भंडारण की एक हिस्सा चाहते हैं
कि इस मामले में सम्मेलन द्वारा 32 बिट होता है आप,
कंप्यूटर बताना है कि इन बिट्स
एक नंबर स्टोर जा रहा है -
चरित्र, एक स्ट्रिंग नहीं, नहीं एक नाव.
और हम इस मुद्दे को प्रभावी ढंग से पते
पिछले हफ्ते में भाग गया.
अगर हम शून्य और लोगों की संख्या का उपयोग कर रहे हैं न सिर्फ प्रतिनिधित्व करते हैं
लेकिन के रूप में और बी एस और Cs, कैसे दुनिया में नंबर एक
कंप्यूटर पता चल रहा है कि वास्तव में बिट्स के इस पैटर्न
65 नंबर के रूप में प्रतिनिधित्व करने के लिए विरोध का प्रतिनिधित्व करता है
पत्र में एक है, जो संयोग के अनुसार,
ASCII, याद है, 65 के बराबर था?
>> इन डेटा प्रकार तो कंप्यूटर के लिए संदर्भ प्रदान
कि यह जानता है कि अगर इन बिट्स एक के रूप में व्याख्या की जानी चाहिए
int या एक स्ट्रिंग के रूप में.
किसी भी सवाल है, तो इस पर?
हाँ?
: डेविड जे मालन अच्छा सवाल है.
यदि हम बाहर stdio.h ले, हम फ़ाइल को बचाने के लिए -
मुझे टर्मिनल विंडो को नीचे जाओ और गणित बनाने, ज़ूम चलाने के
और प्रवेश -
अब मैं एक अलग त्रुटि मिलती है, क्योंकि मैं संकेत हूँ
की घोषणा अब क्या समारोह?
Printf.
तो अब मैं एक नई समस्या है, जिसका समाधान बनाया है
मूलतः एक ही है.
मैं कि वापस डाल की जरूरत है.
दर्शक: [अश्राव्य]
डेविड जे मालन: ओह.
तो अगर मैं बाहर ले -
ठीक है, हाँ.
तो अगर मैं मानक मैं / हे पुस्तकालय को शामिल किए जाने को हटाने
यहाँ, और तो आप कह रहे हैं अगर मैं printf से छुटकारा पाने के लिए मिल,
printf से छुटकारा?
हां.
यह काम करते हैं, क्योंकि मैं अब किसी भी का उपयोग कर रहा हूँ - वूप्स.
क्या मैं सिर्फ झूठ?
ओह, ठीक है.
यह एक नया त्रुटि हम अभी शुरू की वजह से काम नहीं करेगा.
और यह एक छोटे से एक से अधिक सुगम है.
>> समस्या क्या है?
अप्रयुक्त चर n.
तो इस त्रुटि हमारे करने के लिए कॉन्फ़िगर होने का परिणाम है
विशेष रूप से पंडिताऊ होना, वास्तव में चिल्लाना उपकरण
हर संभव गलती के लिए, आप भी अगर यह तरह का
इस तरह एक गैर घातक गलती - यह वास्तव में एक इतना बड़ा है
सौदा है कि मैं एक int आवंटित करने के लिए, यह एक नंबर डाल, तो और
बस के साथ कुछ नहीं किया?
तो कार्यात्मक, नहीं.
यह करने के लिए कार्यक्रम को तोड़ने के लिए नहीं जा रहा है.
यह मूर्ख सही बस की तरह है?
वहाँ कोई मूल्य है कि संख्या के लिए कहा है, संग्रहीत
यह एक चर में, अगर आप के लिए कुछ भी करने के लिए कभी नहीं जा रहे हैं
इसके साथ, चाहे वह प्रिंट या इसे बचाने के लिए.
तो इस मामले में, बजना के रूप में ज्यादा स्वीकार है, और
यह अप्रयुक्त चर n कह रहा है.
>> तो हम यह तय कर सकते हैं यदि हम वास्तव में चाहते हैं कर सकते हैं.
लेकिन फिर, यह अच्छा प्रोग्रामिंग अब नहीं है.
इसलिए मैं यह सिर्फ कर सकता है -
यहाँ नीचे जाना है, मुझे स्क्रीन स्पष्ट गणित बनाने.
यह काम करता है.
अब मैं अपने गणित कार्यक्रम चलाने के लिए, इनपुट लेता कर सकते हैं -
अच्छी तरह से, कि बुरा था.
इनपुट लेता है, और कहा कि यह सब होता है, इस मामले में है.
>> तो वास्तव में, एक दूसरे कोने मामले की कोशिश है कि हम
पहले के बारे में सोच नहीं था.
इस मामले में यहाँ, चलो एक है कि एक के लिए वापस जाना
थोड़ा अधिक उपयोगकर्ता के अनुकूल है.
मुझे वापस जाने के लिए और फिर से बनाने के गणित चलाने के.
वूप्स, मैं क्या गलत किया?
वापस आगे रोल मिल गया.
ठीक है.
अब हम मूल राज्य में वापस आ गए हैं, सब कहाँ
उम्मीद है कि अच्छी तरह से है.
और अब अगर मैं गणित चलाने, 123 के लिए काम करने लगता है.
लेकिन यह वास्तव में एक प्रभावी सबूत नहीं है, सिर्फ कहने
ठीक है, कि काम करता है.
789, कि काम करता है.
करने के लिए प्रस्तुत करने के लिए समय.
क्योंकि वहाँ अन्य कोने मामलों यहाँ है.
एक स्ट्रिंग वास्तव में हमें नहीं दे एक में टाइप करके ज्यादा मुसीबत
वर्णों की बहुत सारी.
लेकिन क्या अगर मैं इस में लिखें?
1 नंबर एक पूरी बहुत, पूरे यहाँ बहुत मार -
ठीक है, यह थोड़ा उबाऊ हो रही है, तो मैं जा रहा हूँ
यहाँ बंद करो, और मैं हिट दर्ज करने के लिए जा रहा हूँ.
>> नरक अभी क्या हुआ?
तो यह वास्तव में समझाया जा सकता है.
तो यह द्विआधारी के रूप में ले लिया है?
एक अच्छा विचार है, लेकिन नहीं, यह तथ्य यह है कि यह ले लिया नहीं है
द्विआधारी के रूप में, वास्तव में, क्योंकि यह सिर्फ एक की तरह था
संयोग है.
हम इस पर फिर से कर सकते हैं.
तो वहाँ कोई बाइनरी सिस्टम में 2 है कि
शायद वैसे भी पर्याप्त है.
दर्ज करें.
तो यह है कि समस्या नहीं थी.
और क्या?
बिल्कुल सही.
>> तो एक int वास्तव में क्या है वापस लगता है.
यह 32 बिट जो सामूहिक रूप से व्याख्या कर रहे हैं
एक संख्या के रूप में.
यदि आप 32 बिट है, इसका मतलब है कि बिट्स के प्रत्येक हो सकता है
एक 0 या 0 1, या 1.
तो इसका मतलब है कि वहाँ इस बिट के लिए दो संभावनाएं है,
इस के लिए दो संभावनाएं हैं, इस के लिए दो संभावनाएं
थोड़ा - तो है कि 2 बार 2 बार -
इतना है कि 32 सत्ता में 2 की कुल संख्या है
अगर आप 32 है शून्य और लोगों के permutations
प्लेसहोल्डर्स शून्य, या आप के सामने हैं.
तो अगर मैं 32, गणितीय, कि क्या है 2 है?
तो यह एक बहुत है.
यह 4 अरब है, दे या ले.
और 4 अरब हो क्या छपा था यहाँ नहीं लगती.
वास्तव में, इस 2 अरब के करीब लग रहा है.
लेकिन यह एक संयोग नहीं है.
तथ्य यह है कि कंप्यूटर मेरी बड़ी संख्या misinterpreted है,
अपने लोगों और फिर मेरे twos की भारी अनुक्रम की भारी अनुक्रम,
के रूप में लगभग 2 अरब, कैसे समझाया है?
वहाँ int पर एक टोपी है.
वहाँ एक निश्चित रूप से एक अधिकतम मूल्य है कि आप का प्रतिनिधित्व कर सकते हैं.
लेकिन यह आम तौर पर चार अरब, है ना?
यदि 2 32 लगभग 4 अरब की तरह लगता है
कि सबसे बड़ी संख्या है.
तो शेष नहीं है, लेकिन एक अच्छा विचार है.
ऋणात्मक संख्याओं.
तो अगर आप 4 अरब संभव बातें आप कर सकते हैं
32 0s के इन विभिन्न permutations के साथ प्रतिनिधित्व करते हैं और
1s, ठीक है, यह कारण है कि हम इंसानों के लिए चाहते हो सकता है के लिए खड़ा है
नहीं सिर्फ सकारात्मक integers का प्रतिनिधित्व करते हैं
लेकिन नकारात्मक integers.
और वास्तव में, यह धारणा है कि सी बनाता है.
तो 32 बिट के साथ, आप मोटे तौर पर नकारात्मक 2 का प्रतिनिधित्व कर सकते हैं
अरब 2 सकारात्मक अरब करने के लिए सभी तरह से ऊपर.
और इसलिए इस मामले में, हम वास्तव में देख रहे हैं अभी क्या है
हमारे पूर्णांक की क्षमता के किनारे, और हम ऐसा है,
बात करने के लिए, एक पूर्णांक overflowed.
हम इस मामले को अधिक बिट्स रटना की तुलना में वास्तव में फिट कर सकते हैं की कोशिश की है.
तो अंत परिणाम यह है कि हम अनिवार्य रूप से सभी 1 बिट्स है.
हम हमारे पर बिट्स के सभी फ़्लिप किया है, हम का प्रतिनिधित्व करने की कोशिश की है
सबसे बड़ी संख्या में संभव है, लेकिन यह स्पष्ट रूप से लगभग नहीं है
काफी बड़ा करने के लिए दो बातें मैं सिर्फ अंदर टाइप किया है का प्रतिनिधित्व
हाँ?
दर्शक: [अश्राव्य]
>> : डेविड जे मालन अच्छा सवाल है.
हम सिर्फ क्यों कि का प्रतिनिधित्व नहीं नकारात्मक कर सकते हैं
सिर्फ एक चरित्र के रूप में प्रवेश किया था?
इसलिए हम पूरी तरह से, और हम तो बचा सकता है
एक अतिरिक्त बिट.
लेकिन आप अभी भी कि पानी का छींटा का प्रतिनिधित्व करने के लिए जा रहे हैं, और
है कि आप कम से कम कुछ खर्च हो रहा है,
शायद एक बिट.
तो हाँ, हम 32 बिट हमारे संख्या के लिए इस्तेमाल है, लेकिन हो सकता है अब
हम एक और हमारे dash के लिए इस्तेमाल बिट की जरूरत है
प्रतीक, ऋण चिह्न.
तो अब हम 33 बिट मूल्यों, जो हम कर सकते हैं, लेकिन यह है
बस इसे जिस तरह से नहीं किया गया है.
हम एक निर्णय कॉल साल पहले, 32 बिट की तरह है
माप की इकाई.
तो हम एक उन बिट्स के प्रभावी ढंग से उपयोग करने के लिए जा रहे हैं
नकारात्मकता का प्रतिनिधित्व करते हैं, और 31 बिट के लिए संख्या का प्रतिनिधित्व करते हैं.
अन्य प्रश्न?
सही सभी.
यह एक बहुत है.
हम आगे क्यों नहीं जाना है और हमारे यहाँ पाँच मिनट का ब्रेक ले?
>> सही सभी.
तो फिर overemphasize, गणितीय आवेदन नहीं
प्रोग्रामिंग की, हम सिर्फ इस एक उदाहरण बांधना
यह इससे पहले कि हम अन्य constructs में ले जाते हैं, सिर्फ इसलिए कि
में से कुछ पर कुछ आम ठोकर अंक उदाहरण देकर स्पष्ट करना होगा
मूल बातें जब यह लेखन कार्यक्रमों के लिए आता है.
इस मामले में, गणित अभिव्यक्ति है कि कुछ कर
सिंटैक्स दिलचस्प प्रासंगिकता.
>> तो यह सिर्फ एक सूत्र है जिसके साथ हम परिवर्तित कर सकते हैं
फारेनहाइट से सेल्सियस तापमान.
यदि आप याद नहीं है, यह सिर्फ फार्मूला है.
तो अगर हम 32 डिग्री फारेनहाइट मूल्य है, जो है में प्लग
ठंड, कि हो जा रहा है 32 शून्य से 32 0 है, और वास्तव में,
0 सेल्सियस में भी ठंड है.
तो जल्दी विवेक वहाँ की जांच - कि परिचित फार्मूला है.
मुझे उपकरण को खत्म हो जाना है, हालांकि, और शुरू
नाम के एक कार्यक्रम की तरह, f2c, लेखन, "फारेनहाइट
. "डॉट ग सेल्सियस
और यहाँ शीर्ष पर, मैं # include के साथ बंद शुरू करने के लिए जा रहा हूँ
stdio.h, और मैं int मुख्य (शून्य) करने के लिए जा रहा हूँ, और
फिर, हम भविष्य में वापस int क्या मतलब है के रूप में आया हूँ
वहाँ और शून्य क्या मतलब है.
और अब मुझे आगे जाना है और एक प्रोग्राम है कि लागू
अनिवार्य रूप से हमारे लिए यह रूपांतरण होता है.
>> तो printf कहते हैं, फेरनहाइट तापमान.
और फिर मुझे आगे जाना है और उपयोगकर्ता से मूल्य मिलता है.
क्या मूल्य की तरह मैं उपयोगकर्ता से मिल अगर मैं चाहता हूँ चाहिए
उन्हें मुझे फेरनहाइट तापमान देने के लिए?
हाँ?
आप क्या प्रस्ताव होगा?
हाँ.
तो नाव उचित सुंदर लगता है.
हम है, फिर से, बस कुछ ही विकल्प है कि
हम इस प्रकार अब तक देखा है.
हम चार, डबल, नाव, int की तरह बातें है, लंबे,
bool स्ट्रिंग,.
तो इनमें से, नाव उचित सुंदर लगता है.
हम एक डबल सही उपयोग करें, क्योंकि अगर हम वास्तव में चाहते हो सकता है
एक मानव के तापमान का प्रतिनिधित्व करते हैं -
98.60000 -
हम 64 बिट का उपयोग कर सकता है, लेकिन ऐसा लगता है
तापमान के लिए overkill.
तो सिर्फ दो नाव के साथ जाना है.
अब मैं एक चर की जरूरत है.
बस चीजों को सरल रखने के लिए, मैं यह च कॉल करने के लिए जा रहा हूँ, लेकिन मैं
बस के रूप में सही ढंग सकता है और यह तापमान कॉल,
लेकिन या तो ठीक है.
तो च = GetFloat नाव.
जैसे ही मैं अब GetFloat का उपयोग करने का फैसला किया है, हालांकि मैं,
एक सुधार करने की जरूरत है.
हाँ.
तो हम # शामिल करने की जरूरत है, अन्यथा संकलक
हम पर चिल्लाना जा रहा है.
अब जब कि मैं एक नाव है, मुझे आगे जाना है और क्या
रूपांतरण.
>> 1 तो, मुझे भी आदत में शामिल होने यहाँ से
मेरे कोड टिप्पणी.
तो फिर, एक टिप्पणी सिर्फ मानव है कि एक संकेतन
हिस्सा है, से प्रति कार्यक्रम की नहीं है, लेकिन एक यह है, आप में मदद करता है
समझने के लिए आप क्या अगली सुबह था, या अगले
महीने, यह मदद करता है अपने शिक्षण साथी समझते हैं कि तुमने क्या किया
या आप क्या करने का इरादा है, तो यह
आम तौर पर बहुत अच्छा अभ्यास.
कोड के हर कुछ लाइनों की एक टिप्पणी लिखने
अपने या अपने सहयोगी.
यहाँ तो, मैं कहना है, जा रहा हूँ "तापमान के लिए उपयोगकर्ता पूछो."
क्या नहीं है एक पूरा वाक्य है, सिर्फ एक छोटे वाक्यांश हो.
लेकिन सी में टिप्पणी के पीछे विचार यह है कि अपने में से प्रत्येक
टिप्पणी आप सशक्त चाहिए - या, कहते हैं, एक TF या एक सहयोगी -
अपने कार्यक्रम स्किम और पता है कि वास्तव में यह क्या करता है, नहीं द्वारा
इतना कोड को पढ़ने के लिए है, लेकिन जो टिप्पणियों को पढ़ने से,
संक्षिप्त और स्पष्ट होना चाहिए.
ठीक है, तो अब, कन्वर्ट मुझे आगे जाना है और कहते हैं कि "
फेरनहाइट सेल्सियस. "इसलिए मैं आगे जाना है और क्या करने जा रहा हूँ,
हम कहते हैं, ग फ्लोट.
हम सेल्सियस एक फ्लोटिंगपाइंटमूल्य रखने के रूप में.
>> और मुझे इस पर एक चाकू ले.
फार्मूला है, फिर से, यहाँ.
F / 9 5 बार के रूप में शून्य से 32.
तो यह करते हैं.
5 तो 9 से विभाजित, ऋण -
वूप्स, मैं यह पहले से ही गड़बड़ कर दिया.
टाइम्स.
तो / 9 5 बार एफ शून्य से 32.
एफ शून्य से 32 तो, सेमीकोलन.
और अब, यहाँ नीचे है, मुझे आगे जाना है जा रहा हूँ
और कहते हैं, परिणाम मुद्रित.
और यह हिस्सा आसान है. Printf.
मैं इस मुद्रित करने के बारे में कैसे जाना है?
ठीक है, मैं कह सकता "सेल्सियस में यही संख्या% च \ n"
बस कुछ सौंदर्यशास्त्र के लिए.
और फिर क्या मूल्य मैं printf के रूप में यहाँ में प्लग करना चाहते हैं
दूसरा तर्क है?
ठीक है.
तो बस ग.
तो हम इस के साथ शुरू और फिर बस 0 वापसी करेंगे.
फिर, यह करने के लिए गणित के साथ कोई लेना - देना नहीं है.
यह सिर्फ मतलब है कि सब कुछ ठीक है.
>> अब, यह सही है, इस कार्यक्रम है?
सही सभी.
तो मैं कुछ गलतियाँ की है.
यहां तक ​​कि अगर आप प्रोग्रामिंग क्या है कोई विचार नहीं है, तो आप सॉर्ट कर सकते हैं
अनुमान करना ग्रेड स्कूल वापस क्या
यहाँ गलतियों को हो सकता है.
पहले से क्या है?
दर्शक: [अश्राव्य]
डेविड जे मालन: हाँ.
तो हम कोष्ठकों याद कर रहे हैं.
यह जानबूझकर किया गया था कि मैं मुख्य वक्ता के रूप में कोष्ठकों किया
यहाँ स्लाइड, क्योंकि वहाँ वास्तव में आदेश की इस धारणा है
आपरेशन के, या पूर्वता, संचालन के लिए कुछ जिससे
गुणा -
उच्च बाध्यकारी है, उच्च पूर्वता चीजों की तुलना में,
इसके अलावा या घटाव की तरह.
तो हम साल के लिए किया है अभी स्पष्ट करने के लिए वास्तव में
क्या गणितीय ऑपरेशन पहले किया जाना चाहिए.
तो शायद मैं यह बिल्कुल नकल चाहिए.
अन्यथा, कंप्यूटर संभाव्यतः करने की कोशिश करने के लिए जा रहा है
9 से 5 डिवाइड की तरह कुछ है, तो एफ गुणा, तो घटाना
32 पूरी बात से.
जो वास्तव में नहीं है, हम क्या करना चाहते हैं.
तो चलो शब्दों को कोष्टक में रखना.
चलो मेरे यहाँ कोष्ठक, कोष्ठक यहाँ जोड़ने.
चलो यहाँ पर इस डाल.
यहाँ, मैं सिर्फ एक और गलती मैं रास्ते में बनाया देखा.
हाँ?
दर्शक: [अश्राव्य]
>> डेविड जे मालन: आह.
अच्छा है.
तो हम वास्तव में एक ही पूर्णांक है
पहले से विभाजन के मुद्दे.
मैं सही है कि, चलो देखते लक्षण क्या है.
लेकिन हम करने के लिए एक सही करने के लिए जा रहे हैं
अन्य गलती यहाँ.
हाँ?
दर्शक: [अश्राव्य]
डेविड जे मालन: हाँ.
तो, बेवकूफ गलती मैं बनाया है, लेकिन अविश्वसनीय रूप से महत्वपूर्ण है.
कंप्यूटर के लिए सिर्फ एक अंधे आँख बारी और नहीं होने जा रहा है
मुझे राजधानी एफ का उपयोग करें, जब मैं वास्तव में चर घोषित
के रूप में एक छोटे 8 लाइन में च.
तो मैं लाइन 11 मेरी पूंजीकरण में सही करने की जरूरत है, जो एक
पल पहले गलती से एक राजधानी एफ था.
यहाँ के बारे में क्या?
इस लोअरकेस होना चाहिए के रूप में अच्छी तरह से?
यह हो सकता है, लेकिन यह एक संयोग है चाहिए.
यही% च चर के साथ कोई लेना - देना नहीं है.
तो बस सुपर स्पष्ट हो यहाँ, मुझे आगे जाना है और
यह, संक्षेप में, "तापमान" का नाम बदलने मुझे का नाम बदलने के
इस "तापमान है." मुझे यह नाम नहीं बदला.
क्योंकि, फिर% च विश्व स्तर पर, इसका मतलब है, "बिंदु मान तैर रही है."
मेरे चर के साथ कोई लेना - देना नहीं है.
लेकिन सभी जगह पर "तापमान" बस थोड़ा wordy है,
तो मैं मेरे लोअरकेस "च" s वापस जाने के लिए जा रहा हूँ.
>> अब, मुझे आगे नीचे मेरी खिड़की के यहाँ जाना.
F2c बनाओ -
मैं जो था, फिर से, मनमाने ढंग से नाम
इस फाइल को दे दिया.
संकलित किया है लगता है.
मुझे f2c चलाने के.
दर्ज करें.
तापमान फेरनहाइट - एक आसान करते हैं.
32.
ठीक है, सही है.
लेकिन, अगर मैं अब उबलते के लिए 212 करते हैं -
लानत.
सही सभी.
तो, स्पष्ट रूप से सही नहीं अगर आपके TF की कोशिश करता है,
कम से कम दो मूल्यों.
तो समस्या क्या है?
ठीक है, तुम पहले से ही मुद्दा क्या है पर अपनी उंगली डाल.
लेकिन मामला है कि क्यों है?
यहाँ तक, जब मैं 5 का गणित 9 से विभाजित कर रहा हूँ.
तो धारणात्मक, यह पूरी तरह से सही है.
फार्मूले के साथ पूरी तरह अनुरूप है.
लेकिन कंप्यूटर केवल ठीक है तुम क्या
उन्हें बताने के लिए करते हैं.
और हम प्रभावी रूप से कंप्यूटर रहे हैं यहाँ क्या कह रही है
पूर्णांक 9 पूर्णांक 5 विभाजित
और मुझे परिणाम दे.
समस्या है, हालांकि, जब आप विभाजन डेटा का उपयोग करते हैं
प्रकार, उत्पादन आदानों के रूप में एक ही डेटा प्रकार है.
और यदि ऐसा है तो दो आदानों दोनों ints कर रहे हैं, उत्पादन में जा रहा है
एक int.
और इसलिए 5 9 से विभाजित बिंदु कुछ है.
लेकिन कुछ कहना निकटतम पूर्णांक क्या है?
इसलिए, यह वास्तव में 0.
तो जैसा कि हम सोमवार को चर्चा की दशमलव के बाद सब कुछ है,
बिंदु छोटा कर दिया जाता है.
यह सिर्फ दूर फेंक दिया जाता है.
तो यह एक पूरी गलती है, क्योंकि मैं शायद के रूप में अच्छी तरह से सिर्फ
0 यहाँ से सब कुछ गुणा.
>> अब, मैं तरीके के एक जोड़े में यह तय कर सकते हैं.
मैं यह कर सकता है.
5.0 9.0 से विभाजित.
तकनीकी तौर पर, मैं भी ऐसा नहीं की जरूरत नहीं है.
यह पर्याप्त नहीं है सिर्फ एक एक नाव की संख्या कर सकते हैं -
या डबल दशमलव बिंदु को यहाँ रखने के द्वारा.
क्योंकि अब क्या होता है जब आप एक पूर्णांक विभाजित
एक नाव, या एक डबल, कंप्यूटर का एहसास करने के लिए जा रहा है
ओह, उन में से एक अधिक सटीक है.
मुझे आप अधिक सटीक देने से साइड पर गलती
आप का इरादा.
तो यह परिणाम में परिवर्तित कर देंगे -
यह परिणाम एक फ्लोटिंगपाइंटमूल्य के रूप में के रूप में अच्छी तरह से वापस आ जाएगी.
तो यह है कि काम करेगा.
यह काम करेगा.
और वहाँ एक अन्य तंत्र है कि हम देखेंगे
अधिक से अधिक विस्तार अगले सप्ताह.
आप वास्तव में, प्रोग्रामर के रूप में कर सकते हैं, कंप्यूटर बताने
वास्तव में एक डेटा प्रकार के रूप में इलाज
हालांकि यह एक और थे.
>> इसलिए मैं वास्तव में यह कर सकता है.
कोष्ठक में, मैं (नाव) की तरह कुछ कह सकते हैं, खुले
कोष्ठक, करीब paren.
और यह क्या कहा जाता है, "कास्टिंग." फिर से अधिक,
यह अगले सप्ताह पर.
लेकिन यह बस कह के कार्यक्रम तरीका है
कंप्यूटर, हाँ मैं जानता हूँ कि 9 एक पूर्णांक या एक लंबे समय है.
मुझे पता है कि यह एक फ्लोटिंगपाइंटमूल्य नहीं है.
लेकिन यह वैसे भी इस तरह के रूप में इलाज.
ऐसा करने के लिए एक डेटा प्रकार डाली कन्वर्ट करने का मतलब
एक से दूसरे में.
सच कहूँ तो, यह सिर्फ एक छोटे बदसूरत है, इसलिए मैं प्रस्ताव करता हूं कि हम जाओ
बस परिवर्तित की मूल सुझाव वापस करने के लिए
इन बातों को मुद्दा मूल्यों मैन्युअल तैर.
क्योंकि अब यह सिर्फ सुपर स्पष्ट है क्या हो रहा है, और
यह सब है कि ध्यान भंग नहीं है.
>> तो चलो अब अपने टर्मिनल विंडो में वापस जाने के लिए.
F2c बनाओ.
मुझे आगे जाना है और इस चलाने के लिए.
और, एक अलग रूप में, आप इन कमांड टाइप ऊब मिलता है
फिर और फिर, एहसास है कि कंप्यूटर, यहाँ लिनक्स की तरह,
बहुत चालाक होते हैं.
और अगर मैं मारा, हम अपने पूरे इतिहास के माध्यम से जा सकते हैं
आज्ञाओं, ऊपर और नीचे.
तो इस मामले में मैं सिर्फ ऊपर जाना f2c बनाने चलाने कर सकते हैं.
मैं पर चिल्लाया हूँ, क्योंकि मैं सिर्फ इतना है कि एक सेकंड पहले किया था.
यह पहले से ही ऊपर है तिथि करने के लिए है.
तो अब मैं f2c फिर से चला सकते हैं.
चलो फारेनहाइट 32 कोशिश.
अब चलो फारेनहाइट 212 कोशिश.
>> ओफ़्फ़.
काम करने लगता है.
अब, यह अच्छा है, लेकिन यह एक छोटे से मनमाने ढंग से लगता है कि
मैं दशमलव अंक के बाद छह नंबर दिखा रहा हूँ.
सही है?
यदि आप टीवी पर मौसम व्यक्ति रहे हैं, तो आप एक doofus की तरह कर रहे हैं
अगर आप तापमान पढ़ रहे हैं
परिशुद्धता के इस डिग्री.
तो चलो इस सरल.
तो चलो वास्तव में यहाँ मेरे printf, जाओ.
और हाँ, मैं फ्लोट करने के लिए करना चाहते हैं.
लेकिन मैं अब परिशुद्धता निर्दिष्ट करना चाहते हैं.
और मैं एक थोड़ा संक्षिप्त होने जा रहा हूँ.
मैं कहना है, मुझे दशमलव स्थान के बाद एक बिंदु देने के लिए जा रहा हूँ.
तो बजाय% च का कहना है, मैं% .1 f कहने जा रहा हूँ.
और यह सिर्फ मुझे एक स्थिति का मतलब
दशमलव बिंदु के बाद.
सही सभी.
चलो यह फिर से कोशिश.
मुझे यह संकलन के बाद फिर से चलाने के.
और अब मैं 32 में टाइप करें, और मैं एक वापस
अधिक संक्षिप्त मूल्य.
और मैं में टाइप करें, अब कर सकते हैं, 212, और वापस एक अधिक संक्षिप्त
मूल्य के रूप में अच्छी तरह से.
और वहाँ अन्य चीजें आप printf के साथ कर सकते है.
आप वास्तव में निर्दिष्ट संख्या कैसे व्यापक होना चाहिए कर सकते हैं.
यदि आप इस पर padding है करना चाहते हैं, तो आप सही संरेखित कर सकते हैं या
बाईं संरेखित अपनी संख्या के सभी या
केंद्र बातें करने के लिए की कोशिश.
तो पता है वहाँ छोटे चाल तुम वहाँ क्या कर सकते हैं.
लेकिन वे सिर्फ प्रारूप कोड के लिए नीचे फोड़ा,
जैसे हम वहाँ है.
>> तो वरीयता के इस मुद्दे के संदर्भ में.
इस प्रक्रिया के माध्यम से जाने के लिए एक बहुत उबाऊ तालिका है.
लेकिन पता है कि सी के लेखकों के साथ आए हैं
नियम है कि निर्दिष्ट जो ऑपरेटरों अधिक है
पूर्वता, दूसरों की तुलना में अधिक बाध्यकारी बिजली,.
तो ग्रेड स्कूल में, जबकि हम आम तौर पर पता था कि यह था
गुणन और विभाजन, तो इसके अलावा और घटाव,
तो कुछ अन्य सामान.
प्रोग्रामिंग की एक दुनिया में, वहाँ एक बहुत है
चीजों की लंबी सूची है.
और यह अब याद रखना लायक कुछ नहीं है.
आप लंबे समय से पहले यह आदत हो जाएगी.
लेकिन सिर्फ ग्रेड स्कूल में की तरह, कोष्ठकों आम तौर पर हल
वरीयता के सुपर स्पष्ट बनाने के द्वारा, मुद्दों
कंप्यूटर और एक जैसे मानव क्या करना है.
तो यह सिर्फ एक छोटे से पत्रक धोखा वहाँ पर विचार करें.
लेकिन उन विवरण के अधिकांश हम कुछ समय के लिए नहीं मिल जाएगा.
>> सही सभी.
अब, चलो बनाने के लिए और इन मूर्खतापूर्ण छोटे से दूर ले जाने के
गणितीय उदाहरण हैं.
अभी भी एक ही बुनियादी बातों का उपयोग करें, लेकिन शुरू
अपने आप को एक छोटी सी खरोंच की तरह अधिक व्यक्त है.
तो खरोंच में, हम इन बूलियन अभिव्यक्ति था.
और अंग्रेजी में, एक बूलियन अभिव्यक्ति क्या है?
यह सही है या गलत.
यह कुछ है कि सच है या झूठ का मूल्यांकन करने के लिए है.
1 या 0.
पर या बंद.
जो कुछ भी तुम इसे कॉल करना चाहते हैं.
स्क्रैच में अब, पहेली टुकड़े इस तरह से देखा.
और उस संयोजन है, वहाँ नीचे पर तीन की
पहेली टुकड़े.
एक संयोजन -
कुछ है कि रिक्त और रिक्त है.
और फिर दो के अंदर यह बूलियन अभिव्यक्ति.
तो तुम घोंसला बूलियन अभिव्यक्ति अधिक कर सकते हैं
बूलियन अभिव्यक्ति जटिल.
उदाहरण के लिए, अगर यह शनिवार है, और यह अच्छा है
मौसम, तो बाहर जाओ.
या कुछ की तरह है कि मनमाने ढंग से.
तो आप बूलियन अभिव्यक्ति में शामिल होने के लिए एक साथ ऊपर आ सकते हैं
बड़ा सच मूल्य, जिसका जवाब आधारित है
छोटे लोगों पर.
>> अब, सी में, शुक्र है, इस मानचित्रण
वास्तव में बहुत आसान है.
बातें यहाँ स्पष्ट लघुकोष्ठक मदद.
&& है "और" का अर्थ तो है कि कैसे
हम स्क्रैच से सी. उन ब्लॉकों में परिवर्तित करने के लिए जा रहे हैं
और स्थितियों के लिए हम खरोंच में बाएं हाथ पर देखा था,
वहाँ की ओर है, मैं उन्हें इसी तरह सी में कर सकते हैं धुआँरा यदि x कम है
y से, तो यह करते हैं.
और अगर एक्स y से अधिक है, तो यह करते हैं.
वरना वे तार्किक बराबर हो, तो कहते हैं चाहिए
कि वे बराबर हैं.
तो हम अब इन बातों का निर्माण शुरू कर सकते हैं.
>> तो एक उदाहरण है.
मुझे कि पाठ्यक्रम है कि वेबसाइट पर एक फ़ाइल खोलने
मैं अग्रिम में लिखा.
कि nonswitch.c कहा जाता है.
और हम बस एक पल में क्यों देखेंगे.
तो इस फाइल में है - nonswitch.c -
1 एहसास है कि वहाँ की एक पूरी गुच्छा है
शीर्ष पर टिप्पणी.
वह सिर्फ फ़ाइल का नाम समझा है, यह क्या
करता है, और बहुत आगे है.
और यह स्पष्ट तौर पर बूलियन और आईएनजी के उपयोग को दर्शाता है -
दो अभिव्यक्ति conjoining.
>> तो देखते हैं कैसे काम करता है इस कार्यक्रम.
मैं अपने दो फाइलें, cs50.h और stdio.h शामिल हैं.
अगर मैं नीचे स्क्रॉल, अब, इस कार्यक्रम के लिए, यह थोड़ी देर है
की तुलना में हम पहले लिखा है, लेकिन बहुत पठनीय है.
तो मैं पहली बार 18 लाइन पर उपयोगकर्ता के लिए, प्रिंट,
"मुझे 1 और 10 के बीच एक पूर्णांक दे." इसलिए
कि अभी भी वहीं है.
अब मैं पूर्णांक मिलता है.
लेकिन कि GetInt एहसास बहुत आसान है.
यह सिर्फ एक int हो रहा है.
यह सुनिश्चित करने के लिए कि यह एक int प्राप्त करता जा रहा है एक नहीं और
स्ट्रिंग या एक नाव.
लेकिन यह सीमा की जाँच के किसी भी तरह नहीं जा रहा है.
यह संख्या एक के बीच होना करने के लिए फिल्टर के लिए नहीं जा रहा है
निश्चित सीमा.
तो हम खुद को लागू करने के लिए है.
तो सिर्फ खरोंच में करना चाहते हैं, जहां मैं का एक संयोजन कर सकता है
दो भाव है, मैं के रूप में है कि सी में कर सकते हैं.
यदि n से अधिक या बराबर 1, और पता है और कम से कम है
3 के बराबर या, मैं बहुत मनमाने ढंग से डिक्री के लिए जा रहा हूँ कि
एक छोटी संख्या की संख्या.
बस एक बयान के खातिर.
और अगर n 4 और 6 के बीच है, तो आप प्रिंट "एक मध्यम उठाया
संख्या. "वरना यदि n 7 और 10 के बीच में है, प्रिंट" तुम एक उठाया
बड़ी संख्या है. "वरना प्रिंट" आपने एक अमान्य नंबर लेने. "
क्योंकि तार्किक, कि इस प्रकार अगर हम है
हमारी सीमा समाप्त हो.
>> तो एहसास यह काफी नहीं है कि हम अधिक से अधिक से अधिक या लिखने
के बराबर एक गणित वर्ग में.
सही है?
आप आमतौर पर इस तरह के तहत यह लाइन के साथ आकर्षित.
लेकिन वहाँ अपने कीबोर्ड पर ऐसी कोई कुंजी है.
तो सी में से अधिक से अधिक को व्यक्त करने के लिए प्रतीक या
के बराबर दो अक्षर, और की तुलना में कम समय के लिए प्रतीक है
के बराबर या दो अक्षर के रूप में अच्छी तरह से है.
सही सभी.
तो अगर मैं इस कार्यक्रम को चलाने, तो आप शायद लगता है कि यह क्या है
करने के लिए जा रहा.
यदि मैं आगे जाना और nonswitch बनाने दर्ज करें.
और फिर nonswitch चलाते हैं.
मुझे 1 और 10 के बीच एक नंबर दे.
मैं इसे 11 देने के लिए जा रहा हूँ.
मैं एक अमान्य संख्या उठाया.
मुझे नंबर 3 की कोशिश.
मैं एक छोटी संख्या उठाया.
तो वहाँ काफी सीधा.
>> क्या होगा यदि मैं इस कार्यक्रम के व्यवहार को बदलने के लिए और चाहते हैं
बजाय एक छोटे से अलग कुछ करना है?
मुझे आगे जाना है और यह कहना.
मुझे यह सब से छुटकारा पाने के.
और मुझे कहने अगर (n == 42).
और फिर मैं आगे जाना है और प्रिंट कहना जा रहा हूँ "उठाया
सही जवाब है. "और हम आगे जाना है और कहने के लिए जा रहे हैं,
printf ("आप उठाया
गलत जवाब "); ठीक है.
सिर्फ इसलिए.
>> अब, कुछ बिंदुओं हम यहाँ कर सकते हैं.
एक, मैं प्रतीक है कि आपको लगता है नहीं टाइप किया
सबसे उचित है.
जब मैं करने के लिए समानता की जांच चाहते हैं, यह निकलता है कि आप प्रयोग नहीं करते
बराबर के चिह्न.
आप के बजाय बराबर बराबर के चिह्न का उपयोग करें.
और क्यों है कि हो सकता है, बस intuitively सकता है?
हाँ.
दर्शक: [अश्राव्य]
डेविड जे मालन: सही है.
बराबर के चिह्न पहले से ही काम के लिए प्रयोग किया जाता है.
कोई तो सच के माध्यम से यह नहीं लगता था.
और इसलिए अब, जब यह समानता परीक्षण करने के लिए आता है, हम करने के लिए है
समानता के आधार पर और अधिक स्पष्ट हो सकता है, और कहते हैं कि बराबर होती है.
एक बहुत ही आम गलती यह करने के लिए है.
और, अगर कार्यालय घंटे या कुछ समय अगले सप्ताह में या
दो सप्ताह अगली बार जब आप इस तरह से कुछ तो करते हैं और
10 के लिए इसके साथ संघर्ष, 20 मिनट के लिए बाहर निकालने की कोशिश
लानत बग क्या है एहसास है कि आप उन लोगों में से एक हैं
जो लोग इस गलती की.
तो, आसान बनाने के लिए सुपर.
लेकिन लक्ष्य अब इस गलती वार्ड है.
यह मूल्यांकन करने के लिए, क्योंकि यह वास्तव में क्या कह रहा है?
यदि n 42 हो जाता है.
तो क्रिया लोगों का उपयोग करते हैं, मौखिक रूप से व्यक्त करने के लिए
काम की धारणा है, "हो जाता है." तो अगर n 42 हो जाता है.
तो इसका मतलब है कि पता करने के लिए असाइन करने के लिए 42.
अब मैं कोष्ठक में एक बूलियन अभिव्यक्ति है,
इस हालत के अंदर, जिसमें से मूल्य 42 है.
सही है?
क्योंकि अगर आप इसे अंदर बाहर, कुल से मूल्यांकन
जवाब है, अब 42 है.
>> , "अगर (42)," तो अगर मैं तुम्हें प्रश्न पूछा क्या है
कि वास्तव में कह रही है?
खैर, बूलियन अभिव्यक्ति ही सही है या गलत हो सकता है.
1 या 0.
पर या बंद.
तो हम एक कोने मामले यहाँ लगता है, जिससे एक के सभी
अचानक, मैं कह रहा हूँ. "(42) यदि". एक बूलियन मान नहीं है.
तो कंप्यूटर क्या है, हालांकि, यह अनिवार्य रूप से equates
कुछ भी है कि 0 नहीं है सच्चा होना व्याख्या की है.
1.
पर.
वे सभी कार्यात्मक समकक्ष हो.
केवल मूल्य 0, या झूठी कीवर्ड के रूप में हम करेंगे,
अंत में देखते हैं, वास्तव में झूठी है.
तो "अगर (42)" वास्तव में सच हो सकता है, क्योंकि यह गैर शून्य है.
यहाँ और अधिक सटीक हो तो, एक बूलियन मान वास्तव में ऐसा नहीं है
बहुत सही है या गलत है, लेकिन इस के लिए
मामले में, अगर 0 या गैर शून्य है.
तो झूठी या गलत नहीं है.
और कहा कि हम सभी को शामिल करने की अनुमति देता है
प्रारंभिक अभिव्यक्ति में संभावनाओं.
तो हम करने की आवश्यकता है, कभी, इसलिए सावधानी से, यह कहना -
अगर (n == 42).
सिर्फ इसलिए कि हम समानता के एक परीक्षण को निर्दिष्ट करने की जरूरत है,
एक मूल्य के एक असाइनमेंट नहीं.
>> यहाँ टिप्पण लायक और क्या है?
इन घुंघराले ब्रेसिज़ वास्तव में आवश्यक नहीं हैं.
मैं उन्हें कर दिया गया है सिर्फ लीख-picky होने के लिए यहाँ.
लेकिन जब आप एक शर्त है कि केवल एक की लाइन है
कोड, एक सुविधा के रूप में, प्रोग्रामर उपयोग करने के लिए नहीं की जरूरत नहीं है
घुंघराले ब्रेसिज़.
यह सिर्फ सौंदर्य कारणों के लिए इंडेंट suffices, और
तो कोड के अपने लाइन लिखने.
- केवल जब आप कोड की दो पंक्तियाँ लिखने के लिए चाहते हैं
उदाहरण के लिए, और printf ("अलविदा!"). यदि आप करना चाहते हैं
कि, यह टूटा हुआ है.
तुम सब तुम चाहते इंडेंट कर सकते हैं, लेकिन तथ्य यह है कि आप
घुंघराले ब्रेसिज़ का उपयोग कर के बिना कोड की दो पंक्तियाँ टाइप
इसका मतलब है कि इस कार्यक्रम को सही ढंग से हो सकता है या नहीं चला जाएगा
सही ढंग से भी संकलन नहीं.
तो अब के लिए, के लिए ईमानदार हो, मुझे लगता है कि सबसे अच्छा आदत है बस
घुंघराले ब्रेसिज़ का उपयोग करने के लिए, और आप पाएंगे कि वे बनाने
सुपर स्पष्ट क्या हो रहा है.
>> इसके अलावा, के रूप में एक अलग - खासकर यदि आप उन लोगों के बीच कर रहे हैं जो उपयोग
सिफारिश की किताबें या ऑनलाइन संसाधनों
एहसास है कि वहाँ में शैली की इस धारणा है
प्रोग्रामिंग.
और कुछ लोगों को वास्तव धनु धनुकोष्ठक डाल पसंद करते हैं
यहाँ पर एक लाइन पर.
कुछ लोगों को हास्यास्पद चीजें करना पसंद करते हैं,
उन्हें यहाँ डाल की तरह है.
वहाँ कोई गलत जवाब है जब यह आता है
शैली है, लेकिन यह गलत है.
लेकिन कुछ लोगों को यह करते हैं.
[हँसी]
डेविड जे मालन: तो मैं अब यह उल्लेख है, क्योंकि बस के रूप में
आप किताबें या ऑनलाइन में बातों पर पढ़ा, तो आप करने जा रहे हैं
विभिन्न शिक्षकों से अलग संदेशों और
विभिन्न लेखकों.
और बस एहसास है कि, कार्यात्मक, वे कर रहे हैं
आम तौर पर बराबर है, लेकिन लगातार हो.
तो इस मामले में, हम घुंघराले पर मानकीकरण करेंगे
ब्रेसिज़ यहाँ अस्तर बाईं तरफ.
>> सही सभी.
तो चलो अब आगे जाना है और इस चलाने के लिए, और देखो क्या होता है
इस कार्यक्रम के साथ.
Nonswitch बनाओ.
फिर nonswitch चलाते हैं.
मुझे 0 के बीच एक पूर्णांक दो और इसलिए है कि प्रासंगिक नहीं है
अब, लेकिन मैं बस मनमाने ढंग से 42 कहना जा रहा हूँ.
और मैं सही जवाब उठाया.
खैर अब, चलो वास्तव में एक अलग दिशा में ले.
यह जाता है वहाँ कुछ अन्य वाक्यविन्यास हम
एक कार्यक्रम में उपयोग कर सकते हैं.
यहाँ वाक्यविन्यास का एक नया टुकड़ा है कि कार्यात्मक है ही है,
लेकिन सिर्फ खुद को व्यक्त करने का एक और तरीका परिचय.
तो यह है कि क्या कहा जाता है, "स्विच बयान है." और एक
स्विच बयान इस प्रकार के रूप में संचालित है.
यह कोष्ठक में ले जाता है, एक मूल्य है कि आप चाहते हैं
"स्विच" पर.
आप अपने मूल्य के आधार पर अलग ढंग से व्यवहार करना चाहते हैं.
तो यह n के मूल्य पर स्विच का मतलब है.
और यह क्या मतलब है?
खैर, अगर n 1 या 2 या 3 है, आगे जाने के लिए और बाहर मुद्रित करने के लिए आप "
एक बड़ी संख्या "उठाया और फिर तोड़.
तोड़ने के लिए कारण यह है कि जिस तरह से सी काम करता है के रूप में है
के रूप में जल्द ही यह एक मामला है कि मैच पाता है, इसे क्रियान्वित शुरू
यह नीचे कोड के सभी.
तो अगर मैं कोड की एक पंक्ति है, के रूप में मैं 27 लाइन पर है,
हो जाता है को मार डाला.
अगर मैं यहाँ एक और लाइन जोड़ने के लिए, यह मार डाला जाता है.
यहाँ एक और लाइन, यह मार डाला जाता है.
कार्यक्रम को क्रियान्वित करने के नीचे क्या है बंद हो जाता है
जब मैं स्पष्ट रूप से लागू मामले बयान
कहते हैं, "तोड़ने के लिए." तो गलत है.
ठीक है, इस मामले में, एक परिणाम के रूप में.
प्रकरण 4 या 5 या 6, इसी तरह जा रहा है,
एक संदेश प्रिंट.
इस मामले में, मध्यम संख्या.
तोड़ो.
प्रकरण 7, 8, 9 10, यह बाहर प्रिंट हो रहा है "तुम एक बड़ी उठाया
संख्या तोड़ो. ".
और फिर वहाँ सचमुच एक "डिफ़ॉल्ट" नामक कीवर्ड
कि "और" का निर्माण की तरह प्रभावी रूप से है.
इसलिए नए वाक्यविन्यास, लेकिन बौद्धिक,
सभी नए यहाँ पर कुछ भी नहीं है.
यह स्क्रैच की तरह है.
अगर, अगर और कुछ और, अगर, सॉर्ट ब्लॉक के.
>> तो यह है कि इस कार्यक्रम के बंद संस्करण है.
लेकिन नोटिस कि हम इसे यहाँ संख्या के साथ किया था.
मुझे एक दूसरे संस्करण खोलने, सिर्फ दिखाने के लिए
एक थोड़ा और अधिक ठोस कुछ.
तो यहाँ हम ग्रेड बजाय है.
बाहर आप न सिर्फ पूर्णांकों पर स्विच का उपयोग कर सकते हैं बदल जाता है, लेकिन पर
वर्ण.
सभी डेटा प्रकार में है, लेकिन कम से कम अक्षरों पर नहीं.
तो, यहाँ हम की तरह कुछ कर सकता है कि अगर सी के मूल्य
उपयोगकर्ता में टाइप, 19 लाइन में getchar समारोह का उपयोग करके,
एक या एक लोअरकेस, चलो यह एक ग्रेड के रूप में व्याख्या की राजधानी है
कहते हैं और वे एक उत्कृष्ट ग्रेड उठाया.
और नीचे स्विच बयान के साथ, हम अन्य है
"बी" है और "सी", और इसके आगे के लिए मामलों.
लेकिन अब एक अन्य बात दौर.
और फिर, इस तरह के माध्यम से उड़ान
इन उदाहरणों में से कुछ हैं.
लेकिन यह वास्तव में ऐसा है कि हम उन्हें लागू करने के लिए, अब कर सकते हैं -
या वास्तव में, बस उन्हें अब अनुवाद
सी. करने के लिए
>> तो मुझे आगे जाना है और इस करते हैं.
मैं एक नई फ़ाइल खोलने के लिए जा रहा हूँ.
और मैं शामिल करने के लिए जा रहा हूँ.
और फिर मैं int मुख्य (शून्य) करने के लिए जा रहा हूँ.
चलो मुझे एक loop.c. के रूप में इस फाइल को बचाने
बस एक उदाहरण के रूप में.
और मुझे आगे जाना है और निम्न कार्य करने के लिए जा रहा हूँ.
मैं एक बहुत थकाऊ कार्यक्रम लिखने के लिए चाहते हैं.
10 तो.
चलो यह करते हैं.
9.
सही सभी.
जैसे ही आप प्रोग्रामिंग में यह कर रही शुरू, आप कर रहे हैं
शायद कुछ गलत कर रहे हैं.
लेकिन हम वहाँ वैसे भी शुरू करेंगे.
उफ़!
यह वास्तव में गलत है.
7.
6.
5.
4.
कुछ नहीं होने जा रहा है जब हम 0 करने के लिए मिलता है.
3.
2.
1.
ठीक है.
0.
हटाएँ.
>> सही सभी.
तो 0 वापसी.
तो इस कार्यक्रम जाहिर करने के लिए क्या यह बहुत करने के लिए जा रहा है
tediously का कहना है कि यह करने जा रहा है.
यह उन सभी प्रिंट जा रहा है
ऊपर से नीचे तक मूल्यों,.
तो मुझे पाश कर.
और फिर - वूप्स.
पाश बनाओ.
मैं गलत निर्देशिका में था.
और अब मुझे लूप को चलाने के लिए.
दर्ज करें.
Woohoo.
बहुत अच्छा.
अच्छा है, लंबे कार्यक्रम.
>> सब ठीक है, लेकिन अब यह बेहतर करते हैं.
बस खरोंच में करना चाहते हैं, जब आप एक looping का उपयोग शुरू कर दिया है
निर्माण, के बजाय सिर्फ नकल और सभी चिपकाने
पहेली टुकड़े, मुझे इस बात का परिचय.
तो सी में, वहाँ विभिन्न पाशन constructs हैं,
जिनमें से एक इस तरह दिखता है.
एक "के लिए" पाश तीन बातें, दो अर्धविरामों से अलग है.
और फिर, लूप के शरीर के अंदर है, तो बात करने के लिए -
घुंघराले ब्रेसिज़ के अंदर सामान -
हम फिर से और फिर से कुछ कर सकते हैं.
तो मैं क्या स्क्रीन पर यहाँ है, यह है कि
सचमुच सिर्फ एक टिप्पणी.
/ / यहाँ मतलब है एक टिप्पणी आता है.
यह कोड नहीं है.
यह सिर्फ मेरे लिए अंग्रेजी वर्णन, मानव है.
>> तो initializations, शर्तों, और अद्यतन.
ठीक है, यह कैसे काम करता है देखने के लिए करते हैं.
यह मुझे के रूप में इस कार्यक्रम को फिर से लिखना करने के लिए अनुमति देता है.
के लिए -
तो यहाँ अपने पाश आता है -
मैं int -
यहाँ एक "मैं" चर बुलाया आता है -
10 प्रारंभ हो जाता है.
तो मेरी initialization है.
मैं इस लूप इतने लंबे समय के रूप में "मैं" से अधिक है या करना चाहते हैं
0 के बराबर है.
और इस लूप के प्रत्येक चलना पर, मैं चाहता हूँ
मुझे क्या करना है.
तो हम सोमवार को + + देखा.
- विपरीत है.
यह 1 द्वारा मूल्य decrements.
इस लूप के अंदर, मैं वास्तव में कुछ करना चाहते हैं.
तो मैं printf की तरह कुछ कहने जा रहा हूँ.
मैं 10 अब कहने के लिए नहीं करना चाहते, क्योंकि यह स्पष्ट रूप से अभी
एक ही मूल्य मुद्रित जा रहा है.
मैं क्या करने के बजाय शायद, मुद्रित करना चाहते हैं?
हाँ.
तो "मैं." तो% d, मैं.
>> तो मैं पहले से एक उन विचारों से चोरी करने के लिए जा रहा हूँ -
स्वरूप कोड के लिए इस प्रतिस्थापन -
और फिर यहाँ नीचे, नीचे, मैं 0 वापसी, बस हूँ
अच्छे उपाय के लिए.
लेकिन अब, मैं एक अधिक संक्षिप्त कार्यक्रम है.
यह केवल कुछ लाइनों और कुछ है या नहीं 10 11 लाइनों.
मुझे यहाँ मेरे संकेत करने के लिए नीचे जाना.
रीमेक पाश.
पाश फिर से दौड़ना.
और यह एक ही प्रतीत होता है.
अब, कार्यक्रम और अधिक रोचक है.
लेकिन अब मैं इस तरह से कुछ लिख सकते हैं.
मैं इस 100 को बदल सकते हैं.
मैं तो अपने कार्यक्रम recompile कर सकते हैं.
और फिर मैं अपने कार्यक्रम फिर से चला सकते हैं.
और अब यह आज के कंप्यूटर पर सुपर फास्ट हो जाता है.
लेकिन वहाँ मैं -
और वास्तव में होता है, नहीं मेरे स्क्रॉलबैक बफर
यह भी है कि दूर जाना.
हम वहाँ जाते हैं.
इसलिए हम सभी 100 है.
लेकिन यह आसान है गलतियों यहाँ बनाने.
क्या व्यवहार की उम्मीद होने जा रहा है मैं अगर
गलती करते हो?
तो यह अनंत की तरह लगता है.
तो चलो देखते अगर कंप्यूटर बर्ताव करता है.
>> तो मुझे आगे जाना है और लूप करना.
और मुझे लूप को चलाने.
तो चलो कि करने के लिए बस एक पल में वापस आ.
हम जानते हैं कि रन दूँगा.
क्योंकि हम क्या भरोसा करना चाहिए न्यूनतम?
शायद कम से कम 2 अरब, अगर हम कि कई टुकड़े है, और
हम सकारात्मक मूल्यों का उपयोग कर रहे हैं.
तो चलो यहाँ वापस कूद.
Loops के इन प्रकार के अलावा, हम क्या कहा जाता है, जबकि
loops. तो, बस खरोंच में की तरह, आप हमेशा के लिए था
ब्लॉक, और दोहराएँ ब्लॉक था.
इसी तरह, सी में, तुम सिर्फ अन्य तरीके
अपने आप को व्यक्त करने का.
तो आप एक जबकि पाश है कि आप की अनुमति देता है की इस धारणा है
अपने आप को थोड़ा अलग तरह व्यक्त करते हैं.
और फिर आप कुछ करते हैं, जबकि एक पाश बुलाया है,
जो थोड़ा अलग रूप में अच्छी तरह से चल रही है.
और हम इन के अलावा समय पर तंग हूँ.
>> लेकिन यह पिछले एक यहाँ पर एक नज़र रखना.
अगर हम में जाने -
अभी भी चल रहा है.
यह बहुत अनंत है.
तो मुझे सकारात्मक में जाना, और दिखाने के लिए हम वास्तव में कैसे कर सकते हैं
उपयोगकर्ता इनपुट एक छोटे से अधिक प्रभावी ढंग से नियंत्रित करते हैं.
यह एक बहुत छोटी कार्यक्रम है.
और यहाँ हम मुख्य, एक int घोषणा n में है.
तो मुझे एक n चर बुलाया दे. अब, मैं सचमुच का कहना है
"करते हैं." और फिर मैं खुले घुंघराले मिल गया है
गले लगा, करीब धनु धनुकोष्ठक.
और फिर उसके बाद सही सूचना है, यह कहते हैं, जबकि n
कम से कम 1 है.
तो सूचना है कि इन लाइनों
19 24 -
सामूहिक रूप से है, जबकि एक पाश रचना.
और फिर, नया, एक नया विचार नहीं वाक्यविन्यास.
यह सिर्फ पाशन का एक और तरीका है, वाक्य रचना है.
तो यह क्या करता है?
निम्नलिखित क्या है जबकि n 1 से कम है.
तो मैं क्या करना चाहते हैं?
मैं मांग करता हूं कि आप मुझे एक सकारात्मक पूर्णांक दे.
तो मैं वास्तव में उपयोगकर्ता से एक पूर्णांक प्राप्त करने की कोशिश.
लेकिन कार्रवाई के आदेश के संदर्भ में है, क्योंकि
जबकि हालत यहाँ नीचे है, मैं तो जाँच करने के लिए जा रहा हूँ, पता है
1 से कम है?
तो लगता है कि उपयोगकर्ता -
इस तरह की मांग के बाद किया जा रहा -
मूल्य 0 में प्रकार.
इस हालत के लिए सही है या गलत होने जा रहा है?
खैर, यह वास्तव में सच होने जा रहा है.
क्योंकि n 0 है, और 0 1 कम से कम है.
तो इसका क्या मतलब है?
फिर से करो.
केवल एक बार है कि हालत के लिए गलत मूल्यांकन करता है.
अगर मैं 42 में लिखें.
खैर नहीं, 42 1 से कम नहीं है.
इसलिए इस पाश क्रियान्वित किया जाता है.
और इसलिए उस बिंदु पर, कार्यक्रम कहते हैं, के लिए धन्यवाद
इस मामले में 42.
अब है कि आप अपने आप को व्यक्त करने का यह तरीका है -
हम इस के लिए इंतजार नहीं खत्म कर देना चाहिए.
यह कुछ समय लेने के लिए जा रहा है.
अगली बार जारी रखा जाना है, शायद.
>> लेकिन अब, आप उम्मीद करने की क्षमता के लिए एक समझ है
geek हास्य के सा.
माफी.
कंप्यूटर विज्ञान के क्षेत्र में यह हास्य की प्रतिनिधि नहीं है
दुनिया है, लेकिन यह प्यारा है.
[हंसते हुए] चलो अंत उस पर ध्यान दें.
और हम आप सोमवार को देखेंगे.
[वाहवाही]