>> [संगीत खेल]
>> डेविड मालन: सब ठीक है.
वापस स्वागत है.
इस CS50 है, और यह है एक सप्ताह, जारी रहेगा.
इसलिए हम गुजर रहा हूँ कारणों में से एक जैसी प्रौद्योगिकियों के आसपास
गूगल ग्लास वे के साथ आते हैं एक एपीआई के रूप में जाना कुछ है, एक
एप्लीकेशन प्रोग्रामिंग इंटरफेस.
और क्या इसका मतलब यह है कि साथ सही फ़ाइलें और अधिकार के साथ
प्रलेखन, आप वास्तव में लिख सकते हैं इस तरह के और भी उपकरणों के लिए सॉफ्टवेयर.
>> और तो क्या हम की ओर मन में है सेमेस्टरों अंत, अगर एक परियोजना
गूगल ग्लास हो सकता है, कहते हैं, को शामिल अपील, हम हम में क्या कर सकते हैं देखेंगे
कुछ के साथ आप ऊपर hooking की शर्तें उधार लिया हुआ धन हार्डवेयर के साथ ही
सार्वजनिक रूप से सुलभ एपीआई आप कर सकते हैं कि इतना वास्तव में सॉफ्टवेयर का निर्माण शुरू
कि एक ही है कि गूगल ग्लास पर चलाता है.
>> हम खेल रहा था कि एक और युक्ति हम हो सकता है कि के देर से
सेमेस्टर के अंत में मज़ा है यहाँ इस छोटी सी बात.
यह आप क्या कर रहे हैं लीप मोशन कहा जाता है, और है देखने के लिए के बारे में तकनीकी रूप से एक है
इस उपकरण के लिए विज्ञापन, लेकिन यह यह विशेष रूप से क्या करने की बात करता है
डिवाइस में सक्षम है.
और यह भी, के माध्यम से एक एपीआई के साथ आता है आप करने के लिए सॉफ्टवेयर लिख सकते हैं जो
एक तरीके से अपने स्वयं के कंप्यूटर पर नियंत्रण काफी यहाँ इस एक मिनट की फिल्म की तरह.
>> [वीडियो प्लेबैक]
>> [अंत वीडियो प्लेबैक]
>> इसलिए अभी, इस उपकरण के लिए होता है एक छोटी सी यूएसबी रूप में लागू किया
आप में प्लग कर सकते हैं कि कनेक्टर अपने कंप्यूटर, लेकिन मुझे आश्चर्य नहीं होगा
लंबे समय से पहले हम इन प्रकार की है अगर पीसी के अगले बैच में प्रौद्योगिकियों
और एमएसीएस आप कर सकते हैं, इसलिए है कि वास्तव में, इसके साथ बातचीत
ऐसे ही एक तरीके से.
वास्तव में, मुझे लगता है मैं कर सकता हूँ क्या सोचा है, भी, मैं एक छोटे से प्रदर्शन खिंचाई
इस सॉफ्टवेयर के साथ आता है कि कार्यक्रम.
इसलिए मैं थोड़ा सेंसर डाल दिया है अपने लैपटॉप के सामने.
>> आप देख सकते हैं और यह पहले से ही पता चलता है मेरे हाथ नहीं है कि
इसे नियंत्रित करने.
और यह सब आवेदन किया जाता है करता है इस तरह कामयाबी से छोटी चीजें.
लेकिन आप वास्तव में देख सकते हैं कि मैं वहाँ पाँच उँगलियाँ हैं.
हम यह सब 10 पास करने के लिए मिल सकता है, आप साफ पियानो कल्पना कर सकते हैं
आवेदन या पसंद है.
तो आप कक्षा के बाद आने के लिए करना चाहते हैं तो आज और उस के साथ खेलने के रूप में
खैर, आप का स्वागत करते हैं.
इसलिए अधिक सेमेस्टर के अंत की ओर उस पर.
>> प्रशासनिक की तो एक जोड़ी घोषणाओं.
एक, इस शुक्रवार से खंड करना cs60.net/section पर दोपहर में.
उस URL कोर्स पर है साथ ही मुखपृष्ठ.
इस बीच, हालांकि, supersections इस रविवार को पहली फिल्म होगी.
Supersections एक बार की बात हैं, यह हमें काम करने के लिए कुछ समय लगता है क्योंकि
जो खंड में है जो बाहर है और जहां.
>> तो रविवार आ रहा यह एक वहाँ हो जाएगा कम आराम से उन लोगों के लिए खंड,
उन लोगों के लिए एक अनुभाग अधिक आरामदायक.
और कहीं न कहीं आप में से उन बीच पर जाने के लिए स्वागत है
या तो या दोनों या न तो.
इन दोनों को फिल्माया जाएगा.
वे एक बड़ा सभागार से में हो जाएगा एक अनुभाग सामान्य रूप से अंदर होगा
लेकिन यहाँ लक्ष्य के साथ सुसज्जित है समस्या के साथ कुछ आराम, एक सेट
CS50 उपकरण के साथ सी,, इस के साथ सप्ताह के अंत में, आपको पता भी करने से पहले अपने
औपचारिक अनुभाग असाइनमेंट.
तो अगर आप अपने TF और अपने छोटे से मिलेंगे के बारे में sectionmates का समूह
एक सप्ताह का समय.
>> कार्यालय समय, इस बीच, चल रहा है.
उनमें से आज रात लाभ लेने या करो अगर आप चाहेंगे कल रात.
समस्या 0 सेट पर शुक्रवार की वजह से है.
यह एक दिन बाद से है गुरुवार नियमित रूप से अनुसूचित.
लेकिन समस्या यह है 1 सेट के साथ, आप देखेंगे यह कुछ वार्म अप भी शामिल है कि
अभ्यास आप अपने आप के साथ जो विस्तार कर सकते हैं अपने
सोमवार से गुरुवार की समय सीमा.
समस्या 1 सेट, इस बीच, पहली फिल्म होगी पाठ्यक्रम की वेबसाइट पर इस आ
शुक्रवार, आप के साथ कर्ल करना चाहते हैं यह मैं देर से एक समय पर एक बार किया था
अपने कमरे में शुक्रवार की रात.
>> तो cs50.net/appliance जगह है जहां आप CS50 उपकरण प्राप्त कर सकते हैं
हम सोमवार को इस्तेमाल शुरू कर दिया है.
हम आज एक सा और इसे इस्तेमाल करेंगे.
लेकिन बाकी समस्या 1 सेट आश्वासन दिया है कि विनिर्देश आप के माध्यम से चलना होगा
आप की जरूरत है ठीक कदम उस बनाने और चलाने के लिए.
ऐसा करने के बारे में चिंता नहीं है कि इससे पहले Pset 1 आप बल्कि नहीं चाहते हैं.
>> ठीक है.
इसलिए हम स्रोत कोड पर सोमवार को देखा लेकिन एक नए के संदर्भ में
प्रोग्रामिंग भाषा, अर्थात् सी. और सी, स्क्रैच विपरीत, चित्रमय नहीं है.
यह टुकड़े पहेली नहीं है.
यह अधिक अंग्रेजी की तरह वाक्यविन्यास है.
और शामिल कदम की एक जोड़ी है वास्तव में एक लिखने और चलाने में
सी में कार्यक्रम, क्योंकि इसके अलावा स्रोत इस तरह कोड, आप कुछ की जरूरत
एक संकलक कहा जाता है.
और आम आदमी की दृष्टि में, क्या एक संकलक हमारे लिए क्या करता है?
हाँ.
>> छात्र: यह कोड धर्मान्तरित आप 0 और 1 को लिखने कि.
>> डेविड मालन: अच्छा.
तो यह कोड है कि धर्मान्तरित हम 0 और 1 के लिए लिखें.
यह करने के लिए तथाकथित स्रोत कोड धर्मान्तरित वस्तु कोड, जिनमें से बाद के लग रहा है
इस तरह एक छोटे से कुछ.
और इसके अंदर, दिमाग अपने CPU आपके कंप्यूटर, उस की वजह से
उन कंप्यूटरों बनाने वाले लोग, पता है क्या उन दृश्यों
0 और 1 का मतलब है.
>> शायद यह प्रिंट मतलब है.
शायद यह इसके अलावा इसका मतलब है.
शायद यह घटाव का मतलब है.
शायद यह एक ग्राफिक प्रदर्शन का मतलब है.
बिट्स की पूर्वनिर्धारित पैटर्न हैं दुनिया का मतलब यह तय किया है कि
कुछ बातें.
लेकिन इस कोर्स में सबसे अधिक भाग के लिए, हम एक उच्च स्तर पर काम करते हैं, और हूँ
वहां मौजूद लिए दी है कि हम ले लेंगे कर सकते हैं कि compilers की तरह बातें
हमारे स्रोत कोड समारोह रास्ते में हम चाहते हैं.
>> इसलिए इस कार्यक्रम में हम पिछले सप्ताह पहले लिखा था और फिर ऐसा करने के लिए, बंदरगाह के लिए शुरू किया
यह पिछले करने के लिए सी, बात सोमवार, यह था.
हरे ध्वज क्लिक किया, नमस्कार कहना.
यह, ज़ाहिर है, था स्क्रैच में लिखा है.
और मैं ने दावा किया है कि बराबर सी में कार्यक्रम के एक छोटे से देखा
कुछ इस तरह.
>> तो मैं क्या, हम पहली बार में कर लगा की पहली पर लग रहा है, क्या अलग तंग करते हैं
नज़र, बेशक, के रूप में काफी रहस्यमय वाक्यविन्यास, लेकिन आप सूचना के लिए शुरू करेंगे
पैटर्न बहुत जल्दी.
क्या हम आज भी करता हूँ प्रदान है कुछ के लिए एक मानसिक मॉडल के साथ
विहित, कुछ मानक निर्माणों प्रोग्रामिंग में.
और फिर हम वास्तव में हमारे हाथ मिलेगा कुछ उदाहरणों के साथ गंदा के रूप में अच्छी तरह से.
>> तो और अधिक आरामदायक आप उन लोगों के लिए, एहसास है कि इस सप्ताह और फिर अगले
सप्ताह बहुत अच्छी तरह से समीक्षा की एक सा हो सकता है.
लेकिन खासकर जब हैकर संस्करण की समस्या 1 पर बाहर चला जाता है सेट
शुक्रवार को पाठ्यक्रम की वेबसाइट है, मुझे लगता है आप पाएंगे कि आप में भरने के रूप में भी
अगले हफ्ते या दो से अधिक कुछ कारतूस, यदि आप कभी भी और अधिक पाने के लिए शुरू कर देंगे
चुनौती दी और मुठभेड़ नए और नए बातें.
>> तो चलो इसके अलावा कार्यक्रम तंग एक समय में कुछ लाइनें.
बहुत शीर्ष पर, हम क्या है तकनीकी रूप से एक कहा जाता है
पूर्वप्रक्रमक निर्देश.
यह कहना है कि सिर्फ कोड की एक पंक्ति है एक फाइल की सामग्री को शामिल करने के लिए,
कहा जाता मानक मैं / एन, मानक इनपुट - या, माफ करना, मानक मैं / हे, मानक
इनपुट / आउटपुट,. घंटे के अंदर मेरे अपने कार्यक्रम का.
>> तो दूसरे शब्दों में, मैं यह लिखा है अगर की तरह एक साधारण पाठ संपादक के साथ कार्यक्रम
जीएडिट के सरल बराबर कुछ माइक्रोसॉफ्ट वर्ड की तरह, कि
शिक्षा, # stdio.h में शामिल हैं, बस है संकलक बताने जा रहा, हड़पने
कि अन्य फाइल की सामग्री, stdio.h, और यहीं उन्हें पेस्ट करें.
>> अब, मैं क्यों परवाह करते हैं?
क्या हम दावा किया था इस फाइल के अंदर है संग्रहीत किया जाता है, जो कहा जाता stdio.h,
कहीं मेरे हार्ड ड्राइव पर, या इस में CS50 उपकरण में मामला, कहीं?
किसी और मेरे लिए वहाँ रखा.
लेकिन क्या उस में है?
>> हाँ, तो इसके बारे में एक घोषणा है printf नामक एक समारोह.
तो printf समारोह याद करते हैं कि प्रदर्शित करता है शब्द और अक्षर और
मेरी बोली में स्क्रीन पर नंबर.
लेकिन मैं यह नहीं लिखा था.
CS50 यह नहीं लिखा था.
किसी साल पहले लिखा था, और वे अनिवार्य रूप से हमें इसके लिए नुस्खा दिया
stdio.h नामक एक फ़ाइल में.
पहली लाइन बस मुझे पहुँच देता है तो कार्य करने के लिए कि किसी और को
बीच में, साल पहले लिखा था printf हैं.
>> अब, अगली पंक्ति मैं लहर करने के लिए जा रहा हूँ मेरे कम से कम अगले सप्ताह तक पर हाथ,.
लेकिन अब के लिए, int मुख्य (शून्य) को पता है कि इस का अनिवार्य रूप से बराबर
पीले रंग की पहेली टुकड़ा जब हरे ध्वज क्लिक किया.
दुनिया, साल पहले, निर्णय लिया है कि अगर आप में एक कार्यक्रम लिख रहे हैं
सी कहा जाता भाषा, आप शुरू एक लाइन के साथ अपने कार्यक्रम
कि ऐसा लग रहा है.
बस के बारे में एक सप्ताह के समय में, यह कर दूँगा क्या है INT भावना, क्या शून्य है.
लेकिन अब के लिए, सिर्फ यह सोचने इस पीले पहेली टुकड़े के रूप में.
>> अब अगला, हम बाद घुंघराले ब्रेस है एक और करीबी घुंघराले गले से,
इतनी बात करने के लिए.
और हम भर में इन देखेंगे सी, साथ ही साथ में कार्यक्रम
जावास्क्रिप्ट और PHP.
और ये सिर्फ encapsulate कोड के संबंधित लाइनों.
अनिवार्य रूप से खुला घुंघराले ब्रेस यहाँ कुछ कोड आता है, कहते हैं.
और जो बंद घुंघराले गले लगा, अन्य दिशा में angled, बस
इसका मतलब है, उसके लिए यह बात है प्रासंगिक कोड.
>> यह पहली बार में तो रसदार लाइन कार्यक्रम आखिरी, printf है,
बोली गंदें शब्द बोलना, हैलो दुनिया.
और मैं के बीच बात बुलाया क्या पिछली बार उद्धरण?
तो यह एक स्ट्रिंग है.
और एक स्ट्रिंग सिर्फ तकनीकी विशेषज्ञ है के एक दृश्य के लिए शब्द
वर्ण, एक शब्द, एक वाक्यांश.
यहां तक ​​कि एक भी पत्र सका डबल उद्धृत किया.
लेकिन यह शून्य के एक दृश्य है या अधिक अक्षर.
>> बैकस्लैश-N, हालांकि, लग रहा है एक अजीब सा.
लेकिन यह केवल कुछ मतलब होता है कंप्यूटर को सरल.
बैकस्लैश-N क्या है?
नई लाइन.
इसलिए कि सिर्फ विशेष अनुक्रम की है दुनिया का निर्णय लिया गया है कि वर्ण
इसका मतलब है, वहीं एक लाइन तोड़ डाला संकलक वास्तव में मिल जाएगा क्योंकि
उलझन में, आम तौर पर, अगर आप बहुत जाहिर है, लेकिन गलत तरीके से, बस
डाल करने के लिए दर्ज मारने शुरू अपने कोड में नई लाइनों.
आप एक छोटे से अधिक होने की जरूरत बैकस्लैश-n के साथ स्पष्ट.
>> और हम कुछ अन्य वहाँ देखेंगे ऐसे विशेष वर्ण का पैटर्न.
उदाहरण के लिए, अगर तुम चाहते थे बताने के लिए आपके एक कोने मामले को भटकना मन,
मैं एक मुद्रित करने के लिए चाहते थे कि लगता है के लिए स्क्रीन पर दोहरे उद्धरण
जो भी कारण, कि प्रतीत होता है ठीक है, एक छोटे से समस्याग्रस्त हो?
क्योंकि मैं में एक दोहरे उद्धरण डाल "नमस्ते, दुनिया" के लिए के बीच जो कुछ भी
कारण, क्यों लगता है कि संभावित समस्याग्रस्त?
यह तार टूट.
>> संकलक सिर्फ एक कार्यक्रम है.
एक संकलक की तरह एक कार्यक्रम बस जा रहा है नीचे करने के लिए अपने कोड शीर्ष पढ़ने के लिए,
सही करने के लिए छोड़ दिया है.
और अगर बजाय तीन डबल उद्धरण देखता है दो की, यह पता करने के लिए नहीं जा रहा है
क्या आपका मतलब है कि अगर बाईं ओर बात स्ट्रिंग, या बात करने के लिए होना चाहिए
ठीक है, या पूरी बात.
यह अस्पष्ट है, और तो क्या एक ठेठ संकलक बस, बाहर बेकार है करना होगा
और आप कुछ त्रुटि संदेश दे, और आप समस्या के साथ सौदा करते हैं.
>> तो बैकस्लैश-N एक नया अर्थ दिया है कि रेखा, क्या होगा अपने सहज ज्ञान अब
आप शामिल करना चाहता था होना शुरू एक डबल तरह विषम कुछ
इस अन्यथा उद्धृत के अंदर बोली स्ट्रिंग?
बैकस्लैश डबल भाव.
और इसलिए हम यह देख लेंगे बहुत पैटर्न की तरह.
>> आप कुछ एक छोटे से करना चाहते हैं अजीब बात है, तो आप पाएंगे कि
समाधान अक्सर एक पैटर्न का पालन करें, और बैकस्लैश
एक भागने अनुक्रम अर्थ.
और यह सिर्फ कुछ खास मतलब है हम एक में प्रतिनिधित्व करने के लिए जरूरत है कि
अलग तरह से.
आप कैसे का प्रतिनिधित्व करते हैं के लिए के रूप में एक बैकस्लैश, ठीक है, हम करेंगे
वापस करने के लिए आते हैं.
लेकिन इस सवाल का जवाब भी है, वास्तव में है एक बिट स्पष्ट.
>> तो चलो अब कुछ अन्य परिचय प्रोग्रामिंग
आप स्क्रैच में देखा था.
तुम्हें शायद प्रदान के लिए लिया गया है आप पहले से ही में डुबकी लगाई दिया है जो पहले से ही अगर
समस्या 0 सेट.
लेकिन अब सी में वाक्यविन्यास परिचय इन अन्यथा काफी सहज ज्ञान युक्त के लिए
विचारों, उनमें से कम से कम कुछ.
>> तो यह एक शर्त है की धारणा या एक शाखा, जबकि पहले हम
देखा कि कोड के साथ यह प्रतिनिधित्व स्क्रैच में छोड़ दिया पर इस तरह -
एक्स वाई से भी कम है, तो ऐसा कहते हैं -
बजाय अब सी में - मुझे सान जाने सरल मामले पर में -
खुला, अगर हम बस, कहने जा रहे हैं कोष्ठक, कुछ सच है - एक
बूलियन अभिव्यक्ति जाना जा रहा है मैं शर्त ने कहा है कि जहां -
बंद कोष्ठक, तो क्या है उन घुंघराले ब्रेसिज़ के अंदर.
>> तो यहां भी, घुंघराले ब्रेसिज़ तरह की खरोंच है की तरह कर रहे हैं
यू के आकार का पहेली टुकड़े.
इन घुंघराले ब्रेसिज़ के अंदर है क्या करना है.
इस मामले में, स्लैश स्लेश.
और यह एक आगे है नोटिस नहीं, एक बैकस्लैश स्लेश.
आगे स्लैश, फ़ॉरवर्ड स्लैश, क्रमादेशित है जो उन लोगों के लिए
इससे पहले, बस का अर्थ है -
यह सिर्फ एक टिप्पणी है.
एक टिप्पणी एक लाइन नहीं है कोड के, दर असल.
यह अंग्रेजी की एक पंक्ति है कि आप, मानव, अपने आप को लिखा है
शायद करने के लिए, कुछ करने के लिए आपको याद दिलाना समझाने के लिए, अपने आप को समझाने
किसी और अपने कोड क्या कर रही है.
यह सिर्फ एक वर्णनात्मक टिप्पणी है.
>> अब, ज़ाहिर है, हम दो तरह से हो सकता है सिर्फ ऐसा करके सड़क में कांटा, एक
ऐसा करके सड़क में तीन तरह कांटा यह है, और आप इस जारी है
पैटर्न, आप चार रास्ता हो सकता है, सड़क में पांच तरह, छह तरह के कांटे अगर
आप वास्तव में संभाल करने की जरूरत है कई स्थितियों है कि.
और फिर यहाँ समानता नोटिस -
(शर्त), और अगर अगर (शर्त), और एक छोटी सी है कि केवल एक ही
अजीब बात है, पिछले है जो सिर्फ इतना है कि कुछ और है.
लेकिन फिर, यह समान है, धारणा, हम क्या किया है करने के लिए
पहले से ही, भले ही वाक्य रचना करेंगे करने के लिए इस्तेमाल किया जा रहा एक छोटा सा ले.
>> अब, इस उदाहरण में, वहाँ रहे हैं कुछ अन्य अजीब वाक्यविन्यास.
हम printf फिर देखना, खुला कोष्ठक, और बंद कोष्ठक.
और वहाँ के अंदर है एक उद्धृत स्ट्रिंग.
संदर्भ में कोष्ठकों, printf के बाईं तरफ जाना
और क्या सही है?
हम चाहते हैं कि उद्धृत वर्णन क्या है अधिक आम तौर पर के रूप में स्ट्रिंग?
>> तो यह एक तर्क है.
आप चाहें, तो एक समारोह है किसी भी समय printf, और फिर एक खुले कोष्ठक और एक
के अंदर करीब कोष्ठक और कुछ यह, यह एक स्ट्रिंग है, या एक है कि क्या
पूर्णांक, या कुछ और, में बात उन कोष्ठकों के बीच कहा जाता है
एक तर्क.
>> और एक तर्क सिर्फ प्रभावित करती है समारोह के व्यवहार.
इस मामले में, यह कैसे बहुत स्पष्ट है.
एक्स <y में पारित किया जा रहा है क्या है, इसलिए एक तर्क के रूप में बात करने के लिए.
और printf जा रहा है ठीक है कि प्रिंट.
निश्चित रूप से, व्यक्ति साल पहले क्योंकि जो printf पता नहीं था कार्यान्वित
क्या हम मानव उत्तराधिकारियों थे के लिए printf का उपयोग करने के लिए जा रहा है.
तर्क मौजूद हैं तो यही कारण है कि, चलो प्रभाव व्यवहार के बाद एक समारोह के
लिखा गया.
>> अब, बूलियन अभिव्यक्ति.
हम खरोंच में से पहले इन देखा है.
यह आप भी कर सकते हैं सी में पता चला है "या" उन्हें एक साथ, तो बात करो.
दो खड़ी सलाखों इसका मतलब है कि इस ब्लॉक कोड की, यह, यह नहीं होगा
पहली शर्त सही है अगर निष्पादित या दूसरी शर्त सही है.
और यहां तक ​​कि आप ऐसा नहीं कर सकता है, हालांकि इस खरोंच में, तुम वास्तव में कर सकता है
स्क्रैच में इस करते हैं, और आप भी कर सकते हैं अलग तरह से अपने आप को व्यक्त -
अगर पहली शर्त और दूसरा शर्त सही कर रहे हैं, तो क्या है
घुंघराले ब्रेसिज़ के अंदर.
>> और सिर्फ एक तरफ, कारण के रूप में यह है एक डबल एम्परसेंड और एक डबल
ऊर्ध्वाधर बार, हम अंत में देख लेंगे कि एक भी खड़ी पट्टी और एक
एकल एम्परसेंड वास्तव में अलग है अब के लिए सी. तो में अर्थ
प्रतीकों में से एक है कि दोहराव जानबूझकर है.
>> तो चलो संक्षेप में, परिचय, वाक्यविन्यास के इस दूसरे सा.
यह काफी के लिए नहीं ले करता है खरोंच, लेकिन मैं दावा मैं कर सकता हूँ कि
अगर, एक अगर किसी और की धारणा को लागू और, अगर नहीं तो, अगर उपयोग कर और बयान
एक स्विच बयान में कुछ कहा.
और यह वास्तव में मौजूद एकमात्र कारण बस, प्रोग्रामर आपको दे रहा है एक
कुछ के हल के लिए अलग तरह से समस्या यह है कि भले ही यह तार्किक
आप किसी भी नई क्षमताओं देना नहीं है.
>> द्वारा कि मेरा यह मतलब है.
आप स्विच, और फिर एक अंतरिक्ष कहते हैं, और फिर कोष्ठकों की एक जोड़ी, अंदर
जिनमें से एक अभिव्यक्ति चला जाता है -
और यह एक छोटे गैर स्पष्ट हो सकता है पहली बार में, लेकिन यह एक तर्क नहीं है,
तकनीकी रूप से, क्योंकि स्विच एक समारोह नहीं है.
तो अब के लिए, बस हम प्रयोग कर रहे हैं मान विभिन्न स्थानों में कोष्ठकों
विभिन्न कारणों के लिए.
>> तो अभिव्यक्ति पर स्विच मैं कर सकता हूँ इसका मतलब उन के अंदर एक चर डाला
कोष्ठकों यह अभिव्यक्ति का कहना है, जहां.
और फिर उस चर हैं -
यह एक्स कहा जाता है लगता है, और यह सिर्फ एक पूर्णांक है -
मैं तो अपनी स्लाइड में गणना कर सकते हैं यहाँ कुछ इस तरह.
एक्स मेरे चर, और मैं है तो कुछ करना चाहते हैं, तो एक्स
1 के बराबर होती है, मैं ऐसा कर सकते हैं.
>> मैं बजाय कुछ करना चाहते हैं एक्स 2 है, तो मैं ऐसा कर सकते हैं.
वरना, मैं कुछ और करना चाहते हैं पूरी तरह से, मैं में एक डिफ़ॉल्ट मामला हो सकता है
मैं इस दूसरी बात करते हैं, जो मामले.
तो उस अर्थ में, यह एक के बराबर है एक्स के बराबर होती है, तो और अगर किसी और को 1 के बराबर होती है
लेकिन मैं यह अब सिर्फ इसलिए उल्लेख हम इसे फिर से देखेंगे.
लेकिन अब के लिए, बस यह है कि मौजूद है पता है.
>> ठीक है.
तो इन पिछले कुछ एक छोटे से अधिक कर रहे हैं पहली नज़र में जटिल, लेकिन वे करते हैं
काफी सरल कुछ.
सी में पाश के लिए एक कोड का एक हिस्सा है कि बस फिर कुछ भी करता है और
बार - बार.
और इसके बारे में केवल कष्टप्रद बात है कि यह एक छोटे से गुप्त है कि है
इस चक्रीय में अपने आप को व्यक्त करने के लिए पैटर्न, लेकिन दुनिया पर मानकीकृत
निम्नलिखित तरीके से.
>> आप पाश के लिए एक का उपयोग करते हैं, आप मिल गया है कोष्ठकों की एक जोड़ी फिर से.
और दो अर्धविराम नोटिस वहाँ में.
उन दो अर्द्धविराम अलग तीन के अंदर अलग भाव
कोष्ठक.
एक तथाकथित initializations है.
एक तथाकथित हालत है.
और एक तथाकथित अद्यतन है.
>> सार में देखा, यह है पूरी तरह से गैर स्पष्ट है, तो चलो देखते हैं
एक ठोस उदाहरण पर.
खरोंच में हम एक दोहराने ब्लॉक था.
और इस ब्लॉक, 10 बार दोहराएँ कहना "नमस्ते, दुनिया." मेरे लिए दावा करते हैं
अब, और हम यह करने के लिए वापस आते हैं, और हूँ यह भी, के लिए अधिक परिचित मिल जाएगा
आप लंबे समय से पहले, समकक्ष सी कोड इस होने के लिए कहा जा सकता है -
बयान और एक अंतरिक्ष, एक जोड़ी के लिए एक कोष्ठकों में अर्धविराम नोटिस
वहाँ तीन अलग अलग जो बातें, आरंभीकरण,
हालत, और अद्यतन.
>> और एक अनुमान ले क्या पहले से कर रही है.
Int i = 0.
किसी न किसी आम आदमी की दृष्टि में, क्या है कि शायद, हमारे लिए क्या कर रही?
तो हाँ.
यह मैं एक चर घोषित है, और यह यह क्या मूल्य दे रही है?
0.
इसलिए यह कहा जाता है एक चर पैदा कर रहा है मैं इसे में मूल्य 0 भंडारण.
उस तथाकथित आरंभीकरण है.
>> ठीक है, अब मैं पहले दावा किया कि मध्यम बात, मैं
<10, हालत है.
तो क्या कर रहा है?
खैर, पाश के लिए क्या करता है जब एक एक पाश के लिए चलाया जाता है के साथ कार्यक्रम है,
हर बार कंप्यूटर के माध्यम से चलाता है इस लूप, ऊपर से नीचे, शीर्ष पर
तुम लोगों को किया था की तरह नीचे, जब , अपने आप को गिनती और नीचे बैठे
फिर और फिर और फिर, कंप्यूटर जा रहा है
शर्त यह है कि जाँच करने के लिए.
और मैं कम से कम 10 है अगर, यह फिर से ऐसा करेंगे.
मैं कम से कम 10 है, तो यह फिर से ऐसा करेंगे.
मैं कम से कम दस है, तो यह फिर से ऐसा करेंगे.
तो सुझाव है कि लगता है कि उम्मीद है कि मैं बदल रहा है.
अन्यथा, हम एक अनंत लूप होगा.
और वास्तव में, मैं बदल रहा है, क्योंकि आखिरी बात वहाँ अर्धविराम के बाद
मैं + + का कुछ हद तक गुप्त वाक्यविन्यास है.
लेकिन इस किया है जो लोग इससे पहले, कि बस का मतलब
काफी बस क्या?
>> छात्रों: [INTERPOSING आवाज़ें].
>> डेविड मालन: मैं करने के लिए 1 जोड़ें.
मैं वेतन वृद्धि.
तो हम एक स्क्रैच पहेली देखा दरअसल, उस के लिए टुकड़ा.
यह मैं + + की तरह लग रही है, लेकिन नहीं था कि बस इसका मतलब है, काफी बस, वेतन वृद्धि
1 आप यह कर हर समय से मूल्य मैं.
तो सचमुच, आप द्वारा शुरू 0 करने के लिए मैं आरंभ.
इसके बाद आप अपनी हालत की जांच.
10 से 0 कम है?
हां.
हम पाश के माध्यम से जाना.
>> मैं कंप्यूटर के दावे को अगले बात क्या करने जा रहा है कि यह हो रहा है है
मैं वेतन वृद्धि के लिए.
इसलिए मैं अब 1 है.
यह हालत की जांच करता है.
10 से 1 कम है?
बेशक.
तो यह फिर से करता है.
तो यह 2 के लिए मैं + + वेतन वृद्धि.
10 से 2 कम है?
हां.
और फिर और फिर और फिर.
और अंत में, क्योंकि की मैं 10 के बराबर होती है के लिए प्लस plussing, हम मिलता है.
10 से 10 कम है?
ठीक है, जाहिर नहीं.
और उस बिंदु है जिस पर पाश के लिए बस बंद हो जाता है.
और तुम पर और अधिक कोड है नीचे नीचे स्क्रीन, कंप्यूटर
बजाय कि कोड को चलाने के लिए आय.
>> तो फिर, यह जा रहा है कि भले ही देखो और में थोड़ा अजीब लग रहा है
पहला, निश्चित रूप से आप में से उन लोगों के लिए जो यह पहले क्रमादेशित कभी नहीं
सचमुच धारणा कम कर देता है अन्यथा एक बहुत है क्या
सरल पहेली स्क्रैच में टुकड़ा.
>> ठीक है, मैं वादा किया कि वहाँ था स्क्रैच में अन्य analogs हो.
इस एक भी नहीं है.
और हम इस संक्षिप्त आखिरी बार देखा था.
लेकिन हमेशा के लिए याद स्क्रैच में ब्लॉक?
यह सिर्फ कुछ हमेशा के लिए करता है?
मैं आप लागू कर सकता है कि दावा किया इस तरह से यह.
और अगर आप वास्तव में यह लागू कर सकते हैं अलग तरीके का एक झुंड में.
>> लेकिन, जबकि पाश सिर्फ एक अलग है अपने आप को व्यक्त करने का सी में जिस तरह से.
दिन के अंत में, आप ऐसा नहीं कर सकते एक समय पाश के साथ कुछ भी आपको लगता है कि
पाश के लिए एक साथ नहीं कर सकते.
इसलिए वे के अंत में कर रहे हैं कार्यात्मक दिन एक ही.
लेकिन यह आप अपने आप को व्यक्त करने के लिए अनुमति देता है एक छोटे से अलग में
निम्नलिखित तरीके से.
>> जबकि पाश के साथ, इसमें क्या है फिर से जाँच की और है कि कोष्ठकों
बार - बार.
और जैसे ही अभिव्यक्ति है कि गलत है के रूप में, तो पाश को क्रियान्वित बंद हो जाता है,
और कंप्यूटर के लिए आय चलाने अन्य जो भी कोड तुम
आपकी फ़ाइल में है.
>> लेकिन क्या यहां दिलचस्प है मैं सचमुच सच लिखे गए.
और सच है, बूलियन मूल्य का एक प्रकार है एक सही है या गलत मूल्य.
तो सच कभी बन सकता है झूठी मैं सचमुच है अगर
मेरे कार्यक्रम में हार्ड कोडित?
तो कोई.
यह मैं इस किया था कि थोड़ा अजीब है.
लेकिन सच सच है.
कोई प्लस plussing है.
यहां चर का कोई फायदा नहीं है.
सच, इस समय मैं हार्ड कोडित तो क्योंकि पाश हमेशा मूल्यांकन करने के लिए जा रहा है
फिर और फिर और फिर.
>> तो कितनी बार हैलो दुनिया है स्क्रीन पर मुद्रित करने के लिए जा रहे हैं?
हमेशा के लिए.
जब तक समय की एक अनंत संख्या बैटरी मर जाता है या कुछ अन्य बाहरी
घटना होता है.
तो यह शायद सबसे अच्छा कार्यक्रम नहीं है लिखने के लिए क्योंकि अगर उपयोगकर्ता
आपके प्रोग्राम से बाहर कभी नहीं कर सकते हैं, यह बात है शायद आप का इरादा नहीं है.
>> लेकिन कभी कभी, कार्यक्रमों चाहिए एक अनंत लूप है.
उदाहरण के लिए, अगर आपके कंप्यूटर एक है उस पर घड़ी, यह निश्चित रूप से होगा
अच्छा अपनी घड़ी अगर यह अद्यतन रखना है खुद को हमेशा के लिए, हालांकि एक बार
दूसरे या एक बार एक मिनट या ऐसा कुछ.
तो भी अनंत छोरों उनके स्थान पर है.
>> ठीक है.
अन्त में, यह एक.
और यह एक छोटा सा अलग है कार्यात्मक, और हम करने के लिए वापस आ गया हूँ
यह शायद Pset 1 में.
लेकिन पाश की एक अन्य प्रकार है एक मत का पाश जबकि कहा जाता है.
और एक के बीच यहां फर्क सिर्फ इतना है पाश और कहते हैं, जबकि करते हैं, एक समय पाश,
हालत नहीं की जाँच की है कि है आप कोड लागू है, लेकिन पहले के बाद
आप कोड को निष्पादित.
तो थोड़ी देर के लिए शीर्ष पर पाश, Do जबकि जबकि
तल पर यह जाँच करता है.
>> और यह सिर्फ मतलब है कि जबकि पाश आम तौर पर अधिक बार अमल करेंगे
या एक जबकि पाश की तुलना में कम बार?
संभवतः अधिक बार, क्योंकि एक मत पाश स्पष्ट रूप से यह कर कह रहा है, जबकि
आप जाँच बिंदु केवल जिसके बाद अगर अंदर की हालत
कोष्ठकों सच है.
>> तो हम फिर से इस देखेंगे शायद Pset 1 में.
क्या तुमने कभी में कुछ करना चाहते हैं कम से कम एक बार और फिर शायद कुछ और
कई बार, यह एक अच्छा है उपयोग करने के लिए निर्माण.
लेकिन एक समय पाश, इसके विपरीत, होगा पहले अपनी हालत की जांच.
और कहा कि, सी में लूप के लिए यह करते हैं जबकि, जबकि, और छोरों के लिए.
और फिर, वे वापस बहुत अच्छी तरह से मैप यह एक नहीं है, सिवाय इसके खरोंच करने के लिए
काफी स्क्रैच में एक ही अनुरूप है.
>> खैर, कैसे के बारे में, अब, चर?
तो यह है कि मैं एक चर घोषित कैसे है दूसरे दिन वाक्य रचना.
मैं मैं दावा किया है जो एक पूर्णांक था एक पूर्णांक है.
मैं तो काउंटर नामक एक चर था और फिर एक अर्धविराम.
तो कोड कर के इस लाइन क्या है?
यह घोषणा काफी बस, है एक चर -
वह यह है कि कंप्यूटर पूछ रही है, मुझे दे कुछ स्मृति, मुझे कुछ बिट्स दे - में
मैं क्या स्टोर कर सकते हैं जो?
एक int.
और अर्धविराम बस का मतलब कोड की पंक्ति के अंत.
>> अब, दूसरी पंक्ति शायद है सुंदर guessable.
कर, काउंटर = 0 क्या है?
यह मुकाबला करने के लिए 0 बताए है.
और इसलिए यह दूसरी बात है कि एक छोटे से परेशान है
बीजगणित, कहते हैं, की तुलना में.
बीजगणित में, बराबर के चिह्न का मतलब है, जबकि सी, बराबर में यहाँ, के बराबर होती है
साइन असाइनमेंट का मतलब है.
तो यह ठीक है पर क्या डाल का मतलब बाईं तरफ है क्या में.
और हम एक और प्रतीक देखेंगे, के बराबर होती है हम वास्तव में परीक्षण करने के लिए चाहते हैं, के बराबर होती है
गुणवत्ता के लिए, कुछ हद तक annoyingly.
>> लेकिन यह एक छोटे से अक्षम है.
यह एक तरह से कष्टप्रद है कि मैं है एक चर घोषित करने के लिए
तो यह एक मूल्य दे.
तो सी वास्तव में हमें इस सरल देता है और सिर्फ एक ही बार में यह सब करते हैं.
आप चर घोषणा कर सकते हैं बाईं तरफ.
तुम अब भी पर काम कर सकते हैं सही में उस बराबर चिह्न डाल द्वारा
मध्य.
तो दिन के अंत में, इन दो हैं बराबर है, लेकिन यह एक है, स्पष्ट रूप से,
में शामिल होने के लिए शायद बेहतर आदत है यह एक छोटे से कम है, सिर्फ इसलिए कि
कोड, इसे पढ़ने के लिए एक आसान सा है, और यह अभी तक मजबूत
अपने कोड, तो बात करो.
>> इस प्रकार अब तक छोरों पर कोई प्रश्न, चर पर, शर्तों पर, पर
Booleans, या तो तकनीकी रूप से या धारणात्मक?
ठीक है.
तो अब यह अगले एक हो जाता है एक थोड़ा और अधिक दिलचस्प.
और यह मैं पिछले लगाई उदाहरण है सिर्फ एक खरोंच उदाहरण है कि नक्शे समय
सी. करने के लिए खत्म
>> तो एक समारोह.
आम आदमी की दृष्टि में, एक समारोह में क्या है?
अपने जवाब के साथ बिंदास हो गया.
एक समारोह में क्या है?
>> छात्र: कुछ भी करता है.
>> डेविड मालन: वह क्या है?
>> छात्र: कुछ भी करता है.
>> डेविड मालन: कुछ भी करता है.
ठीक है.
हम वहाँ शुरू करेंगे.
तो एक समारोह कुछ भी करता है.
तो यह है कि कोड का एक टुकड़ा है अनिवार्य रूप से कहीं और लागू किया है कि
वास्तव में कुछ भी करता है.
अब, क्या एक समारोह के बारे में दिलचस्प है यह इनपुट ले जा सकते हैं,
और यह उत्पादन का उत्पादन कर सकते हैं.
और हम वास्तव में ले जाने एक यह देखो.
>> तो पर्दे के पीछे आदमी एक पल पहले जानबूझकर किया गया था.
यहाँ हम एक टेबल है.
लेकिन लगता है कि यह वास्तव में एक बड़ा बॉक्स का प्रतिनिधित्व करता है.
तो यह एक तथाकथित ब्लैक बॉक्स है.
और सामान्य में, डिजाइन में, कंप्यूटर में विज्ञान, ब्लैक बॉक्स अभी तक का उल्लेख
कार्यक्षमता के टुकड़े कि किसी को कार्यान्वित, और अगर तुम नहीं किया है
जरूरी जानते हैं या यह कैसे परवाह हुड के नीचे लागू किया है.
तुम बस, कि इस ब्लैक बॉक्स की परवाह हम अब एक बुला शुरू करेंगे जो
समारोह, कुछ भी करता है.
>> तो, उदाहरण के लिए, अगर इस ब्लैक बॉक्स पर यहाँ मंच printf, एक का प्रतिनिधित्व करता है
समारोह, मैं पिछले उदाहरण से पता कि printf एक या एक से अधिक लेता है
तर्क, और उन में से पहले बहस की तरह, एक स्ट्रिंग होना चाहिए
"नमस्ते, दुनिया." खैर, मैं इंसान हूँ अगर प्रोग्राम लिखने, और मैं चाहता हूँ
printf का उपयोग करने के लिए, मैं, उदाहरण के लिए, हो सकता है यहां कोरा कागज का एक टुकड़ा ले और एक
काला मार्कर और उस पर लिखने -
मैं "दुनिया" गलत वर्तनी -
एच ई एल एल ओ.
>> इसलिए मैं अपने काले मार्कर ले लेंगे और मैं हूँ , लिखने के रूप में बड़ा और स्पष्टता से मैं पर यह कर सकते हैं
इस कागज, "नमस्ते, दुनिया" का एक टुकड़ा और अब मैं यह मेरा तर्क है दावा करते हैं.
इस के साथ प्रतिनिधित्व एक स्ट्रिंग है सफेद कागज का एक टुकड़ा.
और समारोह के लिए अब अपने इनपुट printf इस होने जा रहा है.
इसलिए मैं गुजर, printf बोल रहा हूँ यह करने के लिए निवेश के रूप में है कि तर्क.
>> और अब, मैं कैसे व्यक्ति जो पता नहीं है लिखा printf साल पहले ऐसा किया था, लेकिन
मैं अपने दस्तावेज़ से पता है कि जीवन में अपने उद्देश्य क्या मैं मुद्रित करने के लिए है
इनपुट के रूप में इसे करने के लिए प्रदान करते हैं.
और हां, भले ही इस कार्यान्वयन मेरे लिए अनजान है
हुड के नीचे, अब मैं ओह, यह किया जाता है, देखते हैं.
यह कुछ मुद्रित किया गया है स्क्रीन पर.
और अगर अब, कार्यक्रम का नियंत्रण , कोड के अधिक लाइनों होगा थे
अब मेरे पास लौट आए हैं.
और तो तथ्य है कि कोल्टन -
उसका दिल भला करे, के तहत यहां छुपा रही है आप सभी के सामने एक मेज -
कि मैं नहीं जानता में जानबूझकर है और मैं printf है परवाह नहीं है कैसे
लागू किया है.
मैं बस से, फिर पता है, इसकी प्रलेखन, यह क्या करता है और कैसे मैं
इसका इस्तेमाल करने वाला हूँ.
>> अब, कि printf मिल सकता है याद एक छोटे से अधिक परिष्कृत.
फिर, हम बस के बारे में बात कर रहे हैं स्क्रैच का कहना है कि ब्लॉक के बराबर.
लेकिन मैं भी इस पिछली बार किया था.
मैं मेरे नमस्कार कार्यक्रम एक बनाना चाहते थे थोड़ा और अधिक गतिशील है और न सिर्फ मुश्किल
कोड की तरह कुछ "दुनिया" और निश्चित रूप से कठिन नहीं कोड कुछ
डी ए वी आई डी की तरह मनमाना कार्यक्रम में.
मैं के लिए उपयोगकर्ता पूछना चाहता था कि उसकी या उसके नाम, और उसके साथ कुछ करना
कि वे उपलब्ध कराने कि स्ट्रिंग.
>> तो एक छोटे से अलग कुछ है यहाँ. printf, एक पल पहले,
वास्तव में, यह कुछ ऐसा था, लेकिन मेरे लिए कुछ भी वापस नहीं किया.
है ना?
कोल्टन मुझे कुछ भी हाथ नहीं था पीठ, कागज का कोई टुकड़ा.
सिर्फ एक पक्ष प्रभाव नहीं था.
एक के रूप में मेरा प्रदान कर "नमस्ते, दुनिया" कोल्टन को तर्क में हुई
एक शब्द के पक्ष प्रभाव, कुछ शब्द, स्क्रीन पर दिखने.
>> getstring, हालांकि, एक छोटी सी है अलग. getstring भी है एक
कार्य करते हैं, लेकिन यह कुछ मान देता है.
यह सिर्फ एक नहीं है सौंदर्य पक्ष प्रभाव.
यह वास्तव में, मुझे व्यक्ति देता है फोन या समारोह का उपयोग कर,
कुछ वापस.
तो इस मामले में, getstring है खुले getstring साथ बुलाया
कोष्ठक, करीब कोष्ठक.
Getstring, इसलिए, ध्यान रखता है किसी भी तर्क या इनपुट?
नहीं, ऐसा नहीं लगता.
जीवन में अपने उद्देश्य है सिर्फ एक स्ट्रिंग पाने के लिए.
यह उससे कोई और अधिक विस्तार की जरूरत है.
तो मुझे आगे जाना है और बहाना है कि चलो, फिर, इस ब्लैक बॉक्स, printf नहीं है
लेकिन, मुझे, व्यक्ति और getstring इस कार्यक्रम लेखन, फोन या उपयोग
सिर्फ लिख कर getstring जी ई टी एस टी आर आई एन जी, खुला कोष्ठक, करीब
कोष्ठक, getstring.
>> अब, मुझे पता नहीं कैसे CS50 स्टाफ है getstring लागू किया है, लेकिन मुझे पता है कि
मैं काफ़ी समय से इंतज़ार, यह करना होगा अपने हुड के नीचे बात है, शायद का उपयोग
हो सकता है कुछ का उपयोग कर कुछ चर, स्थितियां, शायद कुछ छोरों का उपयोग कर,
हो सकता है कुछ कार्यों का उपयोग कर, शायद का उपयोग -
बस स्टाल करने के लिए कोशिश कर रहा है - शायद का उपयोग कुछ अन्य प्रोग्रामिंग सुविधाओं.
लेकिन मैं काफ़ी समय से इंतज़ार - वास्तविकता में, कंप्यूटर में, ऐसा होता है
सुपर फास्ट -
मैं काफ़ी समय से इंतज़ार, इस समारोह getstring एक स्ट्रिंग प्राप्त करने के लिए जा रहा है
उपयोगकर्ता से, जो संभवतः टाइपिंग है उनके कीबोर्ड पर बाहर, और
तो, आप getstring जब हो रही किया जाता है उपयोगकर्ता से उन वर्ण
और, एक स्ट्रिंग में उन्हें भंडारण कि समारोह, getstring, किया जा रहा है
मेरे लिए तैयार मैं कर रहा हूँ जो कुछ उत्पादन के माध्यम से वापस लाने के लिए जा रहा
असाइनमेंट ऑपरेटर.
>> और मैं उत्पादन में, वास्तव में, जाओ यहाँ, Obosi उदारता है
में यह जानने के बिना, भाग लिया इस पर उसका नाम लिख कर, अग्रिम
प्रतिनिधित्व कर रहा है जो चर, एक स्ट्रिंग.
अब, असाइनमेंट ऑपरेटर भी, इसका मतलब यह एक छोटे से लग सकता है यद्यपि
निरर्थक, मैं वास्तव में क्या ज़रूरत है इस की मेरी खुद की नकल बनाने के लिए.
क्योंकि बाएं हाथ पर पक्ष - ओह! -
मैं अनिवार्य रूप से स्ट्रिंग है कि नोटिस बाएं हाथ की ओर पर नाम.
तो मैं भी बनाने जा रहा हूँ इस के अपने खुद के प्रति.
और यह एक सफेद झूठ का एक सा है, हम एक या दो सप्ताह में देखेंगे क्योंकि
तार वास्तव में नहीं कर रहे हैं कि समय वे दिखाई क्या.
>> लेकिन अब के लिए, यहां वापसी मूल्य है.
यहाँ यह मेरी खुद की नकल के बाद है असाइनमेंट ऑपरेटर का उपयोग कर.
और अब, क्या मैं आगे क्या करना चाहते हैं?
अब हम दूसरी है कोड की दो लाइनों की.
तो अब मैं printf कॉल करना चाहते हैं.
चलो अब ढोंग करते हैं कि काला बॉक्स होने के लिए फिर से वापस आ गया है
printf और नहीं getstring.
>> Printf इस समय जा रहा है कितने तर्क ले?
तो यह दो तरह है, देखो.
वहाँ वहाँ में दो अल्पविराम का है, लेकिन उन अल्पविराम के एक, यह है
उद्धरण के अंदर.
तो पहला तर्क सचमुच है इस होने जा रहा.
एच ई एल एल ओ, अल्पविराम, प्रतिशत एस, बैकस्लैश-N.
और अब मैं नहीं एक तर्क प्रदान कर रहा हूँ, लेकिन दो तर्क printf के लिए.
>> और क्या printf के साथ क्या करने वाला है मैं में उन्हें पारित करने के बाद इन दो जानकारी
तर्क के रूप में?
यह दूसरे के लेने के लिए माना जाता है मैं नाम कहा जाता है जो उन्हें, तो
मैं बाहर लिखा कागज का दूसरा टुकड़ा एक पल पहले नाम कहा जाता है.
यह अंदर मूल्य के प्लग करने के लिए जा रहा है प्लेसहोल्डर में है कि चर का,
% S, इतना है कि, फिर से, में बस एक पल की समय, हम में से एक पक्ष प्रभाव देखेंगे
अब, जिसके तहत printf बुलाया होने हम नहीं "नमस्ते, दुनिया," लेकिन "हैलो, देखें
Obosi. "
>> दोनों के लिए प्रशंसा की तो एक बड़ा दौर हमारे स्वयंसेवकों, केवल जिनमें से एक का पता था
इस हो रहा होगा.
ठीक है.
तो, शायद, इतना ही आसान था, निश्चित रूप से, आप पहले से ही परिचित हैं अगर
इस तरह के साथ, उम्मीद है कि आप कभी नहीं होगा कैसे की है कि विशेष दृश्य भूलना
कार्यों काम करते हैं.
>> तो सिर्फ getstring से अधिक है.
CS50 पुस्तकालय के अंदर, वहाँ एक कार्यों की पूरी गुच्छा, जो सभी के लिए
बस स्पष्ट करने के लिए पूंजीकृत हम इन कार्यों लिखा था कि.
आमतौर पर, सी में, लगभग हर दूसरे आप इस्तेमाल करेंगे समारोह लोअरकेस है.
लेकिन हम जान - बूझकर बड़े अक्षर का उपयोग अभी स्पष्ट है कि इन करने के लिये
हम हूँ कि एक तरह की पहियों प्रशिक्षण रहे हैं बस कुछ ही हफ्तों के लिए उपयोग करने वाले
प्राप्त करने की प्रक्रिया को आसान बनाने में उपयोगकर्ता से इनपुट.
>> CS50 पुस्तकालय कुछ भी नहीं है आप अपने आप से नहीं कर सका कि
सिर्फ एक से सी कोड का उपयोग Oldschool पाठ्यपुस्तक.
लेकिन, फिर से, हम प्रशिक्षण के रूप में उपयोग सिर्फ एक जोड़ी के लिए एक तरह के पहियों
हम से छुटकारा मिल सकता हफ्तों इतना है कि आप जल्द ही समझ में आ जाएगा कि जटिलता
अपने आप के रूप में कुछ करने का मिल के रूप में अपेक्षाकृत सरल
एक उपयोगकर्ता से इनपुट.
>> तो आप उपयोग होगा कि पता getchar, GetDouble के लिए -
डबल.
What's - और फिर GetFloat.
एक नाव क्या है?
चलो वहाँ शुरू करते हैं.
>> छात्र: [सुनाई].
>> डेविड मालन: हाँ.
यह एक दशमलव अंक के साथ एक संख्या है.
, एक int एक पूर्णांक है जबकि इसलिए जो 9 के माध्यम से 0 से सिर्फ एक संख्या है,
उसके repetitions के कुछ नंबर, एक नाव कुछ है
एक दशमलव बिंदु के साथ.
और एक, इस बीच, यह भी डबल है एक एक दशमलव बिंदु के साथ संख्या है, लेकिन अधिक
दशमलव के बाद संख्या संभवतः, बिंदु.
>> इसलिए हम लंबे समय से पहले वापस इस के लिए मिल जाएगा.
लेकिन आम तौर पर, इन प्रकार के के प्रत्येक डेटा, चर के इन प्रकार के प्रत्येक
हमारे जैसे एक पुस्तकालय के लिए वापस कर सकते हैं आप, बिट्स की संख्या अलग करने के लिए उपयोग
जानकारी की दुकान.
बस का अर्थ है जो आमतौर पर, एक चार, एक चरित्र, 8 बिट का उपयोग करता है.
और उस के साथ वास्तव में संगत है हमारी स्वयंसेवकों की बाइट पिछले हफ्ते जो
ऊपर आया और एक प्रतिनिधित्व एक समय में ASCII वर्ण.
तो एक चार 8 बिट है.
>> एक नाव में होने वाला है 32 बिट, आम तौर पर.
और एक, आप अनुमान लगा सकते हैं, जैसा कि डबल है बस में अधिक है, जो वास्तव में 64 बिट,,
जो आप के लिए बड़ा हो सकता है इसका मतलब नंबरों या अधिक सटीक.
लेकिन फिर, एक और समय उस पर और अधिक.
GetLongLong, इस बीच, हालांकि मूर्खता नाम है, सिर्फ एक सच है
दो बार के रूप में बड़े, दो बार के रूप में है कि पूर्णांक लंबे, संभवतः के रूप में एक नियमित
पूर्णांक, 64 बिट के बजाय 32.
और GetString हम प्रयोग कर रहे थे.
>> लेकिन यह CS50 पुस्तकालय में पता चला है, हम में, देखेंगे, कार्यान्वित किया जाता है जो
दो फाइलें, जिनमें से एक का फार्म कहा जाता है cs50.h, दो अन्य है
डेटा प्रकार उस में.
Booleans आप कर सकते हैं सी. में मौजूद नहीं है बस 0 और 1 का उपयोग करके उन्हें अनुकरण
अपने कार्यक्रम के दौरान.
लेकिन CS50 पुस्तकालय में हम पैदा की है चिह्न "सच" और "झूठे"
प्रतिनिधित्व करने के लिए 1 और 0 तो क्या तुम नहीं हार्ड कोड में कुछ करने के लिए है
सचमुच 1 और 0 की तरह.
लेकिन हम फिर से उन देखेंगे.
>> स्ट्रिंग, भी, मौजूद नहीं है.
मैं यह उल्लेख किया है और यही कारण है अब के लिए एक सफेद झूठ का एक सा.
लेकिन हमें लगता है कि वापस छील देंगे लंबे समय से पहले परत.
लेकिन अब के लिए, एक स्ट्रिंग है एक अक्षरों के अनुक्रम.
>> इस बीच, सी में, आप वास्तव में अलग डेटा प्रकार है.
इन लोअरकेस हैं नोटिस.
इसलिए कार्यों आप एक पल पहले देखा था कार्यों CS50 ने लिखा है कि
आप के लिए गिर जाता है, एक मूल्य वापसी करेंगे इन श्रेणियों में से एक में.
>> एक जोड़े को धोखा शीट्स सिर्फ संयंत्र के लिए यहां बीज. printf नहीं बस
प्लेसहोल्डर के रूप में% s ले.
यह दशमलव पूर्णांकों के लिए% d लेता है, या% मैं के रूप में अच्छी तरह से काम करेगा.
% च बात मान तैर रही है. % ग के लिए है एक चार, आप सिर्फ एक प्लग करना चाहते हैं
एक पूर्वस्वरूपित स्ट्रिंग में चरित्र हम कर दिया गया है, जैसे आप% सी का उपयोग कर सकते हैं.
>> और फिर, कुछ हद तक annoyingly,% LLD है एक लंबे, लंबे दशमलव पूर्णांक के लिए,
आप एक बहुत जरूरत है तो बस, जिसका मतलब है बड़ी संख्या है और आप कुछ प्रयोग कर रहे हैं
एक लंबे समय तक, हम आया हूँ जो कहा जाता है वापस एक pset में करने के लिए, आपको% तक LLD उपयोग कर सकते हैं
एक बहुत बड़ा में printf, प्लग बताओ अपनी दूसरी या के माध्यम से यहां पूर्णांक
कुछ अन्य तर्क.
>> और अंत में, मैं वादा किया था कि कुछ अन्य बच पाती है
समर्थन printf कि दृश्यों.
हम बैकस्लैश-N देखा है.
जैसा कि आप देख सकते हैं बैकस्लैश आर.
यह एक पुराने स्कूल बात की तरह है.
क्या तुमने कभी एक असली टाइपराइटर साल का उपयोग किया है पहले और आप क्रैंक पर खींच लिया
जो न केवल पहिया घुमाया लाइनअप ले जाते हैं, यह भी ले जाया गया
खत्म करने के लिए सभी तरह से वापस पूरी बात छोड़ दिया, ठीक है, बैकस्लैश-R बस
अनिवार्य रूप से अपने कर्सर वापस ले जाता है लाइन के शुरू करने के लिए
यह नीचे जा रहा बिना.
लेकिन फिर, उस पर और अधिक, शायद, भविष्य में.
>> बैकस्लैश-बोली, बैकस्लैश डबल बोली, बैकस्लैश-बैकस्लैश है
छोटे छोटे पहेली का हल मैं पहले के लिए alluded.
और बैकस्लैश -0 वास्तव में है काफी दिलचस्प.
लेकिन हम करने के लिए वापस आ गया हूँ कि लंबे समय से पहले.
>> तो मुझे CS50, अब, में जाने उपकरण, और वास्तव में करते हैं एक
त्वरित उदाहरण में से एक के साथ गर्म हम पहले से ही है और फिर के लिए आगे बढ़ना था
एक छोटे से अधिक जटिल कुछ.
मैं अपने कार्यक्रम को खोलने तो अगर जीएडिट कहा जाता है -
यह मेरा चित्रमय संपादक है.
और मैं ऐसा कर सकते हैं -
मुझे वहाँ उस खिड़की के पास जाने -
नीचे यहाँ इस आइकन के माध्यम से, जीएडिट, नीचे बाएँ में
अगले मेनू के कोने.
>> मैं आगे और अग्रिम जाने के लिए जा रहा हूँ, और जॉन का कहना है, में इस उदाहरण को बचाने
हार्वर्ड के फ़ोल्डर.
जॉन हार्वर्ड के फ़ोल्डर सिर्फ अपने घर है उसकी फ़ाइलों के सभी कहाँ रहते निर्देशिका
डिफ़ॉल्ट रूप से.
और मैं के रूप में इस को बचाने के लिए जा रहा हूँ नमस्ते 0.c नामक एक फाइल.
और मैं सिर्फ इसलिए इस नाम का चयन किया है यह पर नमूना कोड के साथ अप लाइन
पाठ्यक्रम की वेबसाइट और में ऑनलाइन यूट्यूब वीडियो.
>> तो अब मैं करने के लिए शुरू करने जा रहा हूँ मेरा पहला कार्यक्रम लिखें.
मुझे स्पष्टता के लिए ज़ूम इन करते हैं.
और मुझे आगे जाना है और int कहने जा रहा हूँ बस ऐसे ही है जो मुख्य शून्य,
पीले रंग की पहेली टुकड़ा है कि एक कार्यक्रम शुरू होता है.
मैं आदत में मिल गया है फिर, मेरे घुंघराले ब्रेस खोलने का साल
भी इसे बंद करने और फिर वापस करने के लिए जा रहा मैं सिर्फ अपने कोड डाल करना चाहते हैं, जहां
यह मुझे सब कुछ रखने में मदद करता है क्योंकि संतुलित, खासकर के रूप में मेरे
कार्यक्रम लंबा हो जाता है.
>> और अब, यहाँ, मैं आगे जाने के लिए जा रहा हूँ और कहते हैं, printf, गंदें शब्द बोलना बोली,
नमस्ते दुनिया, बैकस्लैश-N, बंद बोली, बंद कोष्ठक, अर्धविराम.
तो मैं बस हम सब कुछ दोहरा रहा हूँ इस प्रकार अब तक के लिए दी ले गया.
अब मैं बाहर ज़ूम करने के लिए जा रहा हूँ.
>> और इस टर्मिनल विंडो यहाँ नीचे, क्या मैं इस काले में करने के लिए अनुमति दे दी
और सफेद खिड़की?
मैं क्या करने के लिए इसका इस्तेमाल कर सकते हैं?
तो यह है कि मैं कमांड चलाने जहां और मैं चीजों को संकलित कर सकते हैं.
और मैं इसे सरल रखने के लिए जा रहा हूँ.
मैं एक प्रोग्राम का उपयोग करने के लिए जा रहा हूँ नहीं है जो कहा जाता है बना है,
तकनीकी रूप से एक संकलक.
संकलक का बजना कहा जाता है, लेकिन हम एक में वापस करने के लिए आया हूँ
या दो सप्ताह का समय.
>> अभी के लिए, मैं सिर्फ यकीन टाइप करने के लिए जा रहा हूँ हैलो -0, लेकिन आप उन लोगों के थे जो
आपके मन में तुलना की क्या मैं सिर्फ मैं टाइप किया जाना चाहिए क्या टाइप कर सकते हैं
मैंने किया है कि पहले से ही जानते हैं यहाँ कुछ गड़बड़ है.
अब, कुछ त्रुटियों को स्पष्ट रूप से नहीं है.
मैं भी वे क्या कर रहे हैं पर देखने से पहले, किसी भी मैं क्या गलत किया है के रूप में विचार?
>> छात्रों: [INTERPOSING आवाज़ें].
>> डेविड मालन: हाँ.
मैं पुस्तकालय के हैडर फ़ाइल याद आ रही है.
इन. घंटे फ़ाइलों के किसी भी शीर्ष लेख में कहा जाता है फ़ाइलें, और वे सामूहिक रूप
पुस्तकालयों बुलाया चीजों के हैं.
पुस्तकालय कोड का सिर्फ हिस्सा हैं कि अन्य लोगों को लिखा था.
तो मानक [? मैं?] पुस्तकालय है एक कोड युक्त फ़ाइलों का संग्रह
कि अन्य लोगों को लिखा था.
>> इसलिए मुझे लगता है कि याद आ रही है.
तो क्यों मैं एक त्रुटि हो रही है?
खैर, मुझे में वापस स्क्रॉल यहाँ अपने टर्मिनल विंडो.
और दुर्भाग्य से, सी में, का एक बहुत कुछ के रूप में प्रोग्रामिंग भाषाओं, खासकर
यह सब आप के लिए नया है, तो त्रुटि संदेशों सटीक रहे हैं, लेकिन वे भी कर रहे हैं
काफी गूढ़.
और यहाँ त्रुटि, लाल रंग में है, "उलझाव पुस्तकालय समारोह की घोषणा
, प्रकार के साथ printf "और फिर यह स्क्रॉल अगली पंक्ति में, "* const चार int,
... "यह सिर्फ सच हो जाता है जल्दी से भारी.
>> लेकिन क्या आप, अगर, ऐसा करने के लिए शुरू करना चाहिए फिर, इस सब के लिए नया करने के लिए बस है
कीवर्ड के लिए देखने के लिए शुरू.
जाहिर है, मैं आधा समझ में नहीं आ सकता शब्दों की मैं बस अभी तक देख रहा हूँ.
तुम्हें पता है, हालांकि, एक सप्ताह के समय में.
लेकिन मैं printf देखें.
और उस के लिए, लंबे समय से पहले, शुरू करना चाहिए अपनी स्मृति, सब ठीक है, printf सैर.
कुछ printf के साथ गलत है.
मैं इसे गलत जादू किया था?
नहीं, ऐसा नहीं है - ओह.
मैं सिखा जब तक मैं इसे इस्तेमाल नहीं कर सकते यह मौजूद है कि संकलक.
और हां, तो फिर, अपनी प्रवृत्ति के साथ जाना, आप वास्तव में समझ में नहीं आता है, भले ही
वास्तविक त्रुटि संदेश.
>> और वास्तव में, यहाँ के समाधान है करने के लिए बस फ़ाइल के शीर्ष पर यह शामिल
ऐसे ही, मेरी फाइल के साथ resaving नियंत्रण एस या फ़ाइल मेनू.
और मैं अब यहाँ नीचे वापस जाना है, मैं यह स्पष्ट करने के लिए जा रहा हूँ.
नियंत्रण एल सिर्फ एक अच्छा तरीका है स्क्रीन स्पष्ट करने के लिए.
और फिर मैं नमस्कार करना "टाइप करने के लिए जा रहा हूँ 0 "दर्ज करें, और अब मैं अभी भी एक देखने
गूढ़ प्रतीकों के अनुक्रम, लेकिन हम वापस करने के लिए आया हूँ.
क्या इसका यह आप के लिए क्या कर रहा है है.
इसे लेने की प्रक्रिया को स्वचालित है शामिल एक काफी कष्टप्रद आदेश
बजना, वास्तविक संकलक.
लेकिन मैं कोई त्रुटि साधन मिल गया है कि तथ्य इस बात को काम करना चाहिए.
>> तो अब मैं क्या करने जा रहा हूँ - मुझे फिर से ज़ूम इन करने -
./hello-0 दर्ज करें, और वास्तव में, मैं देख रहा हूँ "नमस्ते, दुनिया." तो बढ़ाने अब चलो
यह कभी तो थोड़ा बस को दोहराने के लिए हम इरादा कदम.
मैं के साथ इस नाम बदलने के लिए जा रहा हूँ Hello1.c को इस रूप में सहेजें.
और अब मैं एक चर घोषित करने के लिए जा रहा हूँ नाम कहा जाता है, तो स्ट्रिंग नाम,
और मैं इसे में डाल करने के लिए जा रहा हूँ बोली गंदें शब्द बोलना के मूल्य
डी ए वी आई डी करीबी भाव अर्धविराम.
और अब मैं "दुनिया" बदलने के लिए जा रहा हूँ एक स्ट्रिंग के लिए क्या प्लेसहोल्डर के साथ?
% S.
>> और अब, कितने तर्क चाहिए printf इस समय लगेगा?
तो दो.
इसलिए मैं उद्धरण के बाहर जाना.
मैं एक अल्पविराम के बाद "नाम" लिखें.
लेकिन मैं कुछ किया है इस बार किसी और गलत.
लेकिन मैं नहीं था कि कल्पना करते हैं अभी तक एहसास.
मुझे यहाँ चलते हैं.
>> और नोटिस, भी, मैं एक छोटे से हो रही है सभी "0 नमस्कार करना" टाइपिंग की ऊब
समय, "बनाने के लिए" और यह सब.
इसलिए, यह आप कर सकते हैं लीनुस में पता चला है, अक्सर ऊपर की ओर तीर मारा अपनी
कीबोर्ड, और आप वास्तव में स्क्रॉल कर सकते हैं मैं है कि आदेशों के माध्यम से सभी
अभी तक पिछले मार डाला.
इसलिए मुझे लगता है कि ऐसा करेंगे, ऊपर, ऊपर, हैलो 0 बनाना नहीं है.
मैं नहीं चाहता कि.
मैं अभी तक कि बदलना चाहते हैं हैलो 1 इस समय, लिखें.
आखिरकार, कि करेंगे आप कुछ समय बचाने के लिए.
>> ठीक है.
दुर्भाग्य से, वहाँ एक त्रुटि है.
तो मुझे ऊपर स्क्रॉल करते हैं.
यह वास्तव में मैं की तरह लग रहा है इस कार्यक्रम butchered.
मेरा मतलब है, मेरे भगवान, यह कोड की दो पंक्तियाँ है, और त्रुटियों के 10 लाइनों.
लेकिन पहले एक शीर्ष पर दिखेगा.
अघोषित पहचानकर्ता स्ट्रिंग का प्रयोग करें.
मैं मानक मैं n मतलब है?
नहीं, मैं नहीं था.
मैं स्ट्रिंग मतलब.
>> लेकिन जहां स्ट्रिंग चर रहा है घोषित टाइप करें, हम कहते dd?
तो यह CS50 पुस्तकालय में है.
तो यह इन सबसे पहले में, पर्याप्त नहीं है सप्ताह की जोड़ी, बस का उपयोग करने के लिए
क्या सी हमें देता है.
मैं भी यहाँ ऊपर जाने के लिए जा रहा है, और मैं कर रहा हूँ ऊपर या नीचे डाल दिया, लेकिन मैं हूँ सकता है
बस इसे वर्णमाला रखना चीजें व्यवस्थित रखने के लिए.
मैं cs50.h शामिल करने के लिए जा रहा हूँ, के लिए पहले से स्थापित है जो
आप CS50 उपकरण पर.
और यह खुला स्रोत है, इसलिए भी लोग इंटरनेट पर उस पर उपयोग कर सकते हैं उनकी
स्वयं के कंप्यूटर.
लेकिन यह CS50 उपकरण के साथ आता है.
>> तो अब मुझे वापस जाना है और फिर कंपाइल इस हैलो 1 बनाने के साथ.
लानत है.
फिर भी एक और त्रुटि.
हालांकि, मुझे पहले अप करने के लिए स्क्रॉल.
यह एक थोड़ा जटिल है.
मल्टी चरित्र चरित्र निरंतर.
यही कारण है कि मुझे मदद नहीं कर रहा है.
लेकिन नोटिस, बजना कम से कम एक छोटी सी है बिट सभ्य, जिससे एक छोटी सी के साथ
हरी कैरट प्रतीक, यह कह रहा है मैं बँधा हुआ जहां यहाँ है.
ऐसा क्यों है कि थोड़ा के साथ, इशारा कर रहा है अगले एकल बोली को हरी तीर,
मेरा नाम करने के लिए?
>> तो इस बातों में से एक यह है कि आप बस आप किया गया है, खासकर अगर आदत हो
अजगर, या जावास्क्रिप्ट में प्रोग्रामिंग, या अन्य भाषाओं जहां इस विस्तार
कोई फर्क नहीं पड़ता.
सी में, यह बात करता है.
आप एक स्ट्रिंग की घोषणा कर रहे हैं, जो है 0 या अधिक अक्षरों का एक अनुक्रम,
आप वास्तव में दोहरे उद्धरण चिह्नों का उपयोग करना चाहिए.
इसलिए मैं वास्तव में इस पीठ को बदलने की जरूरत बोली, बंद भाव के साथ खोलने के लिए
दोहरे उद्धरण.
एक उद्धरण अपनी जगह है, लेकिन आप व्यक्तिगत उपयोग कर रहे हैं केवल जब
एक और समय उस पर घर का काम है, लेकिन अधिक.
अब, डबल उद्धरण के लिए जरूरी होते हैं.
>> तो अब, मुझे मेरे टर्मिनल के लिए वापस जाओ खिड़की, हैलो 1 बनाते हैं.
और जो विश्वास है?
इस कार्यक्रम अब जा रहा है सही ढंग से संकलन करने के लिए?
ठीक है.
इसलिए हम तीनों इस लगता है.
ठीक है.
दर्ज करें.
और यह वास्तव में किया था.
तो इस बार भी, कोई त्रुटि नहीं है इस कार्यक्रम के एक सा हो गया है, हालांकि
अधिक जटिल.
मैं अब डॉट 1 हैलो स्लेश करते हैं, तो दर्ज यह कहने के लिए जा रहा है "डेविड, नमस्कार."
>> लेकिन तीसरी यात्रा करते हैं इस की, जहां
कार्यक्रम वास्तव में गतिशील है.
मुझे आगे जाना है और फाइल को बदल दो. बस के साथ निरंतरता के लिए, नाम
आप उपलब्ध होगा फाइलें आप के लिए बाद में ऑनलाइन.
दर्ज करें.
और अब मैं और नहीं जा रहा हूँ दुकान "डेविड" हार्ड यहां कोडित.
मैं बहुत आसानी से कर सकता है इस कार्यक्रम में सुधार?
>> मैं getstring कह सकते हैं.
यह एक छोटे गैर स्पष्ट क्या हो सकता है होने वाला है, तो मैं जा रहा हूँ
वास्तव में एक और लाइन जोड़ने के लिए, printf, और नाम, पेट, बंद बोली, अभी कहना
उपयोगकर्ता एक शीघ्र देने के लिए स्क्रीन पर.
और अब मैं यहां से जाने के लिए जा रहा हूँ, और मैं कर रहा हूँ मेरे कीबोर्ड शॉर्टकट का उपयोग करने के लिए जा रहा है.
मैं ऊपर, ऊपर जाने के लिए जा रहे हैं, और परिवर्तन कर रहा हूँ हैलो 1 2 नमस्कार करने के लिए, दर्ज करें.
और शुक्र है, मैं प्रगति कर रहा हूँ.
>> और अब मैं ऊपर जा रहा हूँ हैलो स्लेश डॉट और को
दर्ज, 2 के लिए कि बदलते हैं.
और अब मेरे कार्यक्रम -
मैं में ज़ूम करता हूँ - हो रही है सुंदर एक छोटे से.
नाम होने जा रहा है, रोब हम कहते हैं इस समय, नमस्कार, रोब दर्ज करें.
हम फिर से ऐसा कर सकते हैं.
लॉरेन, लिखें, नाम.
दर्ज, यूसुफ नाम.
के बनने की कोशिश करते हैं, नाम मुश्किल दर्ज करें.
एह.
यह वास्तव में एक बग नहीं है.
इसलिए यह सिर्फ एक छोटा सा बदसूरत है.
तो शायद हम इस को हल कर सकता है भविष्य में, अब नहीं.
>> लेकिन आप कैसे सहज होता संबोधित कर के बारे में जाना
कि विशेष रूप से चुनौती?
यह सिर्फ बेवकूफ लग रहा है.
कैसे आप चीजों से बचने बेवकूफ देख रहे हैं?
तो हम ठीक है, मैं कुछ सुना है, कर सकता है बातों का, एक की हालत और एक पाश.
हम जांच करने के लिए, एक, एक शर्त इस्तेमाल कर सकते हैं स्ट्रिंग की लंबाई क्या है
उपयोगकर्ता हमें दिया?
यह 0 है, तो यह सिर्फ बोली गंदें शब्द बोलना है, वे तो बस, हिट दर्ज
शायद मैं उन पर चिल्लाना चाहिए और फिर उन्हें संकेत.
लेकिन यह कैसे एक बार फिर उन्हें संकेत है?
खैर, मैं भी पाश सुना, और मैं कर सकता फिर और फिर और फिर से ऐसा
एक ही बात के लिए उपयोगकर्ता को संकेत दिए.
>> ठीक है, चलो एक अन्य उदाहरण करते हैं एक अलग का उपयोग
CS50 पुस्तकालय में कार्य करते हैं.
मुझे इस फ़ाइल को बंद करते हैं.
मुझे एक नया बना.
और मैं सिर्फ इसलिए, यह adder.c फोन करता हूँ यह सरल गणित करने के लिए आसान है,
यह पूरी तरह से किया जाएगा, भले ही आप क्या कर सकता है साथ underwhelming
किसी भी आधुनिक कंप्यूटर के साथ.
>> लेकिन मुझे अब आगे बढ़ो और जाने -
मैं अपने सबक पिछली बार सीखा - शामिल cs50.h, stdio.h, INT शामिल
मुख्य शून्य, जो, अब के लिए, मैं सिर्फ हूँ अंधविश्वास पर ले, लेकिन हम मान लेंगे
समझ जाएगा कि क्या कि लंबे समय से पहले का मतलब है.
और मैं कुछ कहने जा रहा हूँ जैसे "मुझे एक पूर्णांक दे."
>> और अब, कैसे मैं एक पूर्णांक मिलता है?
मैं अंत में एक चर घोषित करना चाहते हैं प्रकार int की एक्स कहा जाता है और
इसमें उपयोगकर्ता से एक पूर्णांक की दुकान.
इसलिए कि एक कौर था.
लेकिन किसी का प्रस्ताव करना चाहता है, तो कैसे एक पूर्णांक एक्स नामक मैं घोषणा है?
Int x.
>> तो यह सच है कि सरल है.
मुझे एक पूर्णांक दीजिए.
X को बुलाओ.
अब मैं काम ऑपरेटर का उपयोग करें.
और कैसे मैं से दुकान है उपयोगकर्ता के एक मूल्य छोड़ दिया है?
मैं getstring फोन करने की जरूरत नहीं है, जाहिर है, बल्कि getint.
किसी भी तर्क?
नहीं.
तो यह खुला कोष्ठक, करीब कोष्ठक है तुरंत, और फिर एक
अर्धविराम रेखा समाप्त होता है.
>> अब मुझे फिर से यह करते हैं.
मुझे एक और INT दीजिए.
इस बार मैं चलो, INT करूँगा Y इसे कहते हैं, getint के बराबर होती है.
और अब मुझे सुपर सरल कुछ करते हैं कुछ गणित की तरह.
तो printf,% d का योग है एक पूर्णांक के लिए प्लेसहोल्डर.
और% d, अवधि, बैकस्लैश-N.
>> ठीक है.
तो यह है कि वास्तव में गणित नहीं है.
लेकिन मैं इस का योग कहना चाहते हैं मूल्य प्लस इस मान को इस के बराबर होती है
अन्य मूल्य, कितने बहस में कुल मैं printf दे देना चाहिए
अंततः?
तो चार, सही?
इस स्ट्रिंग और फिर तीन मूल्यों.
तो एक्स मैं बनना चाहता हूँ पहला है % विकास के लिए पहली में खामियों को दूर किया.
Y अगले होने जा रहा है.
>> और अब मैं एक तरह से कहना चाहता हूँ जेड, लेकिन Z मौजूद नहीं है.
लेकिन यह एक बड़ा सौदा नहीं है.
आप सहज क्या करना होगा, क्योंकि आप एक पड़ा है, खासकर अगर
रेखांकन कैलकुलेटर, आप किस प्रकार करते हैं?
कैसे एक्स प्लस y के बारे में?
तो यह एक वास्तविक चर नहीं है.
यह दो में से केवल योग है अन्य चर.
और वह पूरी तरह से वैध है.
सी निश्चित रूप से सरल समझता इस तरह से गणित.
>> अर्धविराम, बचा.
अब मुझे यहाँ नीचे चलते हैं और दर्ज, योजक कर लिखें.
, इसलिए कि प्रगति कोई त्रुटि भी है.
योजक टाइप करें.
और एक और कीबोर्ड शॉर्टकट, आप ऊब शुरू
सभी आदेशों के साथ -
आप डॉट की तरह, एक आदेश टाइप करना आरंभ अगर विज्ञापन स्लेश, और वह है जहाँ आपका
बोरियत में kicks, आप आमतौर पर हिट कर सकते हैं कंप्यूटर खत्म करने के लिए टैब
आप के लिए वाक्यांश के बाकी अगर ऐसा नहीं है अस्पष्ट क्या विज्ञापन के बाद आना चाहिए.
>> इसलिए मुझे अब आगे चलते हैं और आप लिखें पर क्लिक करें.
मुझे एक पूर्णांक, 1, 2 दे, और शुक्र है, यह 3 है.
लेकिन हमेशा की तरह, कार्यक्रमों का परीक्षण को कम नहीं करना चाहिए
बस एक बार यह कोशिश कर रहा.
मुझे नकारात्मक की तरह एक कोने मामला, कोशिश करते हैं 1, कि एक मुझे 1 दे, और
के रूप में अच्छी तरह से बाहर की जाँच करता है.
और मैं शायद कुछ और करना चाहता हूँ कठोर परीक्षण, लेकिन मैं हूँ सुंदर
उस पर है जहां के साथ आराम से.
>> खैर, अब चलो एक और कार्यक्रम की कोशिश करते हैं इस समय एक का उपयोग करता है
अन्य वाक्यविन्यास का सा.
मुझे एक नई फ़ाइल बनाते है.
मैं रेखा को इस conditions0.c फोन करता हूँ ऑनलाइन कुछ नमूना कोड के साथ.
और मुझे आगे जाना है और करते हैं cs50.h, शामिल
stdio.h, मुख्य शून्य में -
ठीक है.
हम वहाँ जाते हैं.
हम अपने मानक बॉयलरप्लेट है.
>> और इस बार मैं printf कहने जा रहा हूँ, बस के लिए "मैं कृपया, एक पूर्णांक चाहते हैं"
शीघ्र एक छोटे से बना अधिक अनुकूल है.
और अब मैं एक प्राप्त करना चाहते हैं उपयोगकर्ता से int.
मैं सिर्फ यह पता इस समय कॉल करने के लिए जा रहा हूँ n संख्या की तरह लगता है.
getint, और अब, क्या करना है मैं इसके साथ क्या करना चाहते हैं?
खैर, अगर पता है - और मैं में ज़ूम करता हूँ -
एन 0 से अधिक है, तो मैं चाहता हूँ निम्न कार्य करने के लिए -
printf "आप एक सकारात्मक संख्या उठाया." वरना, मैं "printf आप टाइप करने के लिए जा रहा हूँ
एक नकारात्मक उठाया
संख्या. "ठीक है.
मैंने ऐसा किया था, भले ही तो इस कार्यक्रम, तेजी से, सही वाक्य रचना से लग रहा है.
मुझे यह कोशिश करते हैं.
हालत 0 बनाओ.
चलने लगता है.
हालत 0, दर्ज करें.
चलो यह 50 के एक पूर्णांक देते हैं.
मैं एक सकारात्मक संख्या उठाया.
चलो फिर से कोशिश करते हैं.
हालत 0.
नकारात्मक 50.
मैं एक नकारात्मक संख्या उठाया.
>> लेकिन अब, मुझे हम रखेंगे क्या उठाओ अधिक है जो एक कोने मामला, बुला
आपको लगता है कि एक दिलचस्प मामला , आप 0 कुछ परेशानी दे सकता है.
अब, मैं इस में से एक है पूरा यकीन शून्य है जहां उन कोने मामलों
सकारात्मक और न ही नकारात्मक है, तो मेरी न तो कार्यक्रम है, हालांकि वाक्य रचना में
सही - यह compiles, इसे चलाता है - तार्किक रूप से सही नहीं है.
अगर मैं चाहता तो साधारण ठीक यहाँ क्या हो रहा है मैं n हैंडल करना चाहते हैं, पता लगाने के लिए
अलग 0 के बराबर होती है?
>> एन 0 के बराबर होती है, तो मैं कहना चाहता हूँ printf की तरह कुछ "तुम 0 उठाया."
मुझे अब यह कोशिश करते हैं.
मुझे स्पष्ट, यहाँ वापस जाओ मेरी खिड़की, और recompile.
हम्म.
एक त्रुटि उत्पन्न करते हैं.
लेकिन मैं आप की जाँच करना चाहते हैं एन 0 के बराबर होती है.
>> तो फिर, एक और बेवकूफ बात , बराबर का चिह्न है करने के लिए इस्तेमाल किया जाना
असाइनमेंट ऑपरेटर.
तो यह है कि वास्तव में गलती है, तकनीकी तौर पर, भले ही संकलक
हम चाहते हैं, अपने आप से मेरी रक्षा तकनीकी तौर पर पता में 0 नकल किया, जो
मैं नहीं चाहता है.
मैं समानता के लिए परीक्षण करना चाहते हैं साथ बराबर होती है.
और इतना है कि अब हो सकता है मेरे बेहतर समाधान.
>> मुझे वास्तव में कहना है, के रूप में इस resave करते हैं, conditions1, नए और बेहतर हो.
तो अब मैं इस recompile अगर यह स्थितियां बनाना होगा -
वूप्स - conditions1 डॉट स्लैश करना conditions1, "मैं एक पूर्णांक चाहते हैं, लिखें,
. "मैं जा रहा हूँ कृपया आगे और प्रकार 50.
यह अभी भी अच्छा है.
नकारात्मक 50, अभी भी अच्छा है.
0, और यह वास्तव में, पता चला मैं 0 उठाया कि.
>> तो और क्या मैं अब इस के साथ क्या कर सकते हैं?
ठीक है, हम निश्चित रूप से तेजी से कर सकते हैं जटिल बातें.
लेकिन क्या मैं प्रस्ताव करने के लिए करना चाहते है हम यहां इस पर ध्यान दें कि अंत.
हम यह अपने आप को रोकना है, तो आप शायद देखेंगे तुम्हारा पसंदीदा कार्टून
आप हो सकता है आज तक ऊपर समझ में आ गया है कभी नहीं.
और उस हँसी की गुणवत्ता के बारे में है आप सीएस चुटकुले के साथ मिलना चाहिए.
तो उस के बारे में सही है.
>> लेकिन अधिक compellingly, मैं मैं सोचा था हमें सोमवार के लिए एक छोटी सी टीज़र दे.
इसलिए हम पूर्णांकों का उपयोग शुरू कर दिया है.
हम मंगाई करने के लिए भेजा गया है.
हम भी डबल्स में भेजा गया है, जो, फिर से, आप नंबर दे
दशमलव अंक के बाद.
>> लेकिन यह तैरता है और पता चला है कि डबल्स, और, वास्तव में, कंप्यूटर,
मूलरूप में, व्यक्त नहीं कर सकते ठीक कुछ मान.
हम आप कर सकते हैं कि गणित कक्षाओं से पता बाद संख्या के किसी भी नंबर है
दशमलव बिंदु.
और तुम भी एक ऊर्ध्वाधर बार डाल सकते हैं इन हमेशा के लिए जा कहने के लिए.
>> दुर्भाग्य से, तुम सच में नहीं कर सकते एक कंप्यूटर में करते हैं.
और तो कोने मामलों उठता.
उदाहरण के लिए, आप कर रहे हैं लगता है वित्तीय कुछ कर रही है.
तुम गणित कर रहे हैं प्रतिशत, और साथ
डॉलर और सेंट के साथ.
और उन सेंट नहीं करते जरूरी लाइन.
खैर, यह पता चला है कि भिन्न की पैसे जब तक जोड़ने के लिए शुरू कर सकते हैं
एक कंप्यूटर सिस्टम के साथ मॉडलिंग की इस तरह से है कि चालाक
मनुष्य लाभ ले सकते हैं.
>> और नहीं देखा है जो लोग, मैं हूँ आप के लिए 30 सेकंड चिढ़ाने देना पसंद
कार्यालय अंतरिक्ष के रूप में जाना जाता है एक अद्भुत फिल्म एक की एक तस्वीर रंग जाएगा जो
समस्या हम से निपटने करेगा सोमवार को पहली बात.
हम मात्रा बढ़ा सकता है एक छोटा सा, मैं आप 30 दे
कार्यालय अंतरिक्ष के सेकंड.
>> [वीडियो प्लेबैक]
>> मैं तुम, तुम दिखा नहीं किया गया है, मतलब अप और आप अपनी नौकरी रख सकते हो.
>> वास्तव में, मैं पदोन्नत किया जा रहा हूँ.
>> मैं था कि एक वायरस प्रोग्राम सकता बड़े समय उस जगह को चीर.
>> खैर, यह कैसे काम करता है?
>> हर एक बैंक लेन - देन नहीं है समय ब्याज वहाँ अभिकलन, और जहां
हजारों एक दिन, कंप्यूटर सिरों हैं एक प्रतिशत के इन भागों के साथ ऊपर.
>> लेकिन मैं नहीं जा रहा हूँ कुछ भी गैरकानूनी नहीं है.
>> अवैध?
समीर, यह अमेरिका है.
>> हम भगवान की कसम करने के लिए है.
>> कोई भी इस बारे में जानता है, तो लेकिन हमें, ठीक है?
कोई परिवार के सदस्यों, कोई गर्लफ्रेंड, कोई नहीं.
>> -बिल्कुल.
>> पर सहमत हुए.
>> 'डॉन टी चिंता, आदमी.
मैं या तो किसी को बताना नहीं होगा.
>> [अंत वीडियो प्लेबैक]
>> डेविड मालन: तो यह है, तो, CS50 है, कि कार्यालय अंतरिक्ष था, और यह सब होगा
सोमवार को समझ कर.
फिर मिलते हैं.
>> बयान: अगले CS50, रोब पर बंद होने के लिए समायोजित कर देता है
हार्वर्ड भोजन योजना.