>> स्पीकर 1: सब ठीक है.
वापस स्वागत है.
इस CS50 के दो सप्ताह है, और हम हैं इस प्रकार अब तक कार्यों का उपयोग लेकिन दिया गया
प्रदान के लिए काफी हद तक उन्हें ले लिया.
हम है जो printf का उपयोग किया है मुद्रण के पक्ष प्रभाव
स्क्रीन पर बातें.
हम नाव मिल, मिल INT का उपयोग किया है.
>> लेकिन आप वास्तव में बनाने के लिए क्या चाहते हैं अपने खुद के काम करता है, कुछ के रूप में
आप पहले से ही शुरू कर दिया है हो सकता है हालांकि, समस्या सेट एक के लिए करते हैं
कड़ाई से जरूरी?
ठीक है, चलो आगे जाना है और फिर से आना चलो बस के लिए उपयोगकर्ता पूछ की समस्या
पर उनके नाम और मुद्रण कुछ स्क्रीन, लेकिन कुछ बाहर कारक करने की कोशिश
हम है कि समानता की इस प्रकार अब तक हमारे कोड में देखा.
इसलिए कि मैं निम्नलिखित मतलब है.
>> मुझे आगे जाना है और बनाने के लिए जा रहा हूँ एक नए कार्यक्रम, सिर्फ कॉल
यह सामान्य रूप से hello.c.
मुझे आगे जाना है और अपने आप को देने जा रहा हूँ शीर्ष पर मानक io.h शामिल हैं.
मैं भी अपने आप को देने जा रहा हूँ preemptively CS50 पुस्तकालय इतना है कि
मैं संकलक द्वारा पर चिल्लाया नहीं मिलता.
और अब मैं आगे जाने के लिए जा रहा हूँ और int, मुख्य, शून्य घोषित.
>> और फिर यहाँ में, इस जहाँ मैं चाहता हूँ है कार्यक्षमता को आउटसोर्स करने के लिए शुरू करने के लिए
मैं खुद हूँ कि कुछ अन्य समारोह लिखने के लिए जा रहा था लेकिन वह नहीं करता है
वर्तमान में मौजूद हैं.
उदाहरण के लिए, मैं चाहता था कि लगता है मुझे अनुमति देता है एक समारोह लिखने
अल्पविराम, हैलो बाहर प्रिंट, और फिर कुछ उपयोगकर्ता का नाम.
बल्कि printf करने के लिए जारी की तुलना हैलो,% है, यह अच्छा नहीं होगा अगर
कहा जाता है बस एक समारोह कर रहे थे printf लेकिन प्रिंट नाम नहीं?
>> तो दूसरे शब्दों में, मैं करने में सक्षम होना चाहता हूँ एक छोटे से करता है कि एक प्रोग्राम लिखने
कुछ इस तरह.
सबसे पहले, मैं printf कहने जा रहा हूँ अपने जिससे के लिए उपयोगकर्ता उत्साह का नाम
मुझे उसके नाम देते हैं, और फिर मैं हूँ को परिचित स्ट्रिंग के उपयोग करने के लिए जा रहा
एक स्ट्रिंग की घोषणा.
मुझे प्रकार तार का एक चर दे, है यह फोन है, और में है कि दुकान
मिल स्ट्रिंग बुला का नतीजा है.
लेकिन अब सप्ताह अतीत में, मैं होता कुछ हद तक tediously% s / n, नमस्कार किया.
>> और दूसरे शब्दों में, हम यह देखा है उदाहरण एक बार का गुच्छा, और यह एक है
बस एक छोटी सी उदाहरण है क्योंकि वहाँ कोड की लाइन तो यह वास्तव में नहीं है एक
फिर में टाइप कर रखने के लिए बड़ी बात नहीं.
लेकिन लगता है कि कोड की इस पंक्ति वास्तव में एक बोझ होता जा रहा है, और थे
यह कोड की एक लाइन नहीं है, लेकिन यह 10 है एक दो सप्ताह अब से कोड की लाइनों,
और तुम बस थक गया हो रही है कॉपी करने और चिपकाने या की
कि एक ही कोड पुन: लिखने.
यह बजाय कर के अच्छा नहीं होगा हैलो printf% s और बहुत आगे है,
बस वहाँ थे तो अच्छा नहीं होगा एक समारोह में कहा छापा नाम कि
एक तर्क लेता है -
दूसरे शब्दों में, यह इनपुट लेता है -
और फिर अर्धविराम.
इसलिए कि समारोह, यह नहीं होगा कि अस्तित्व में अगर अच्छा होगा?
तो मैं के बारे में चिंता करने की ज़रूरत नहीं होगी क्या printf है, क्या% है और सभी की
कर रहे हैं कि इन जटिलताओं सभी दिलचस्प है कि नहीं.
वे उपयोगी हैं.
>> तो प्रिंट नाम, दुर्भाग्य से, नहीं था कुछ 40 से अधिक साल पहले का आविष्कार किया.
इसे लिखने के बारे में सोचा नहीं है.
लेकिन उस होने की खूबसूरती है एक बस में की तरह प्रोग्रामिंग भाषा,
यदि आप कस्टम ब्लॉकों ताकि परिभाषित कर सकते हैं स्क्रैच सी में और सबसे अधिक किसी भी भाषा, आप कर सकते हैं
, अपनी खुद की कार्यक्षमता सकते हैं परिभाषित आप अपने खुद के कार्यों को परिभाषित.
तो हम द्वारा मुख्य मिलता भले ही स्वचालित रूप से मुक्त करने के लिए, हम घोषणा कर सकते हैं
अपने स्वयं के कार्य करता है.
>> तो मैं यहाँ कुछ जगह बनाने के लिए जा रहा हूँ शीर्ष ऊपर, और मैं घोषणा करने जा रहा हूँ मेरे
लग रहा है कि खुद के समारोह में एक पहली बार में अजीब सा लेकिन हम आऊँगा
लंबे समय से पहले यह करने के लिए वापस.
मैं शून्य, जिससे कहने जा रहा हूँ इस समारोह का संकेत करता है
कुछ, एक पक्ष प्रभाव है, लेकिन यह में मेरे लिए कुछ वापस नहीं करता है
INT या मिलता है कि एक ही रास्ता स्ट्रिंग ही करता मिलता है.
और मैं इस समारोह में एक देने जा रहा हूँ छापा नाम का नाम है, और मैं जा रहा हूँ
इस आदमी को ले जा रहा है कि निर्दिष्ट एक स्ट्रिंग, और मुझे लगता है कि कॉल करने के लिए जा रहा हूँ
स्ट्रिंग नाम.
मैं मैं चाहता हूँ कि कुछ भी कहते हैं, लेकिन मैं कर सकता है मेरे कोड आत्म दस्तावेजीकरण होना चाहते हैं.
दूसरे शब्दों में, आप में से एक थे करने के लिए इस फाइल को खोलने और इसे पढ़ा, तुम सकता है
एक तरह से इस बात का नाम से अनुमान इसे खेलने के लिए माना जाता है इनपुट क्या भूमिका.
>> और अब कि नीचे, मैं खोलने के लिए जा रहा हूँ घुंघराले ब्रेस और बंद घुंघराले गले लगा,
और इसलिए मैं उसी का पालन किया नोटिस लाइनों सात के माध्यम के रूप में चार पर पैटर्न
मैं प्लस एक अच्छा सप्ताह के लिए पीछा कर रहे थे अब लाइनों नौ और कहते हैं, के बीच
14 मुख्य रचना है.
दूसरे शब्दों में, प्रिंट नाम एक अन्य समारोह है.
अब, संकलक पता करने के लिए नहीं जा रहा है स्वचालित रूप से इस बात को कॉल करने के लिए
मैं सचमुच सिर्फ यह आविष्कार किया है, क्योंकि लेकिन यह मुख्य कॉल करने के लिए अभी भी पता चल जाएगा
स्वचालित रूप से, और उसके बाद में पाठ्यक्रम की 13 लाइन, मैं अपने खुद के समारोह बुला रहा हूँ.
और मुझे लगता है कि समारोह घोषित कर दिया है क्योंकि मुख्य पहले लाइन चार पर,
इस संकलक को पढ़ाने के लिए जा रहा है क्या बोली, गंदें शब्द बोलना, "प्रिंट नाम"
इसका मतलब है और यह क्या करना चाहिए.
तो मैं एक तरह से यह एक नया रिवाज दे रहा हूँ स्क्रैच, कहते हैं, के संदर्भ में ब्लॉक.
>> तो यहाँ में, मैं बहुत ही आम है कि रख सकते हैं या मैं रखने के कोड की आवर्ती पैटर्न
वर्ग, printf में लिख % S नमस्कार,% s / n "-
क्या मैं यहाँ डाल करना चाहते हैं?
एस?
इसलिए मैं इस संदर्भ में नाम करना चाहते हैं.
तो यहाँ एक विरोधाभास का एक सा नोटिस.
मैं अपने ही समारोह घोषणा कर रहा हूँ क्योंकि और मैं कुछ हद तक मनमाने ढंग से कहा जाता है
मैं हूँ क्योंकि यह नाम मुद्रित, और कोष्ठक में निर्दिष्ट है कि इस
समारोह प्रकार के, एक तर्क लेता है जो एक स्ट्रिंग है - तो यह एक शब्द है
या वाक्यांश या ऐसा कुछ है - और मुझे लगता है कि तर्क नाम बुला रहा हूँ कि
इसका मतलब में है कि केवल चर गुंजाइश है, तो बात करने के नाम है.
>> केवल क्या दोनों के बीच मौजूद है निश्चित रूप से घुंघराले ब्रेसिज़,?
खैर, सच में सिर्फ लाइन 10 तरह के माध्यम से 14 है, तो बस सोमवार को तरह उपयोग नहीं कर सकते
एस, लेकिन मैं क्या कर सकता पास है छापा नाम में एस.
छापा नाम सिर्फ इसलिए इसे देने के लिए होता है एक उपनाम, एक पर्याय, एक उपनाम,
अब नाम है, और यह फोन इस लाइन में यह प्रयोग से.
तो अब बाहर ज़ूम, मुझे इस सहेजने दें.
>> मुझे आगे जाना है और नमस्कार करते हैं.
अच्छा लग रहा है.
किसी भी त्रुटि थूक नहीं था. . / हैलो दर्ज करें.
मेरा नाम क्या है?
डेविड.
और नमस्ते डेविड.
, तो वह सब रोमांचक नहीं लेकिन अभी लगता है.
अब आप कि एक ही घटक है हम खरोंच में किया था
हमारे अपने कार्यों बनाते हैं.
>> लेकिन एक पकड़ लिया का एक सा है.
मैं वास्तव में नहीं सोचा था कि मान लीजिए इस के बिना वास्तव में के माध्यम से और मैं
वास्तव में इसके बारे में लिखा सोच नीचे यहाँ कि समारोह.
पूरी तरह से उचित लगता है.
खरोंच में कोई धारणा नहीं है अपनी स्क्रिप्ट में स्थान की.
आप यहाँ, यहाँ एक एक डाल सकता है यहाँ एक अप, और यह शुरू हो सकता है
अगर तुम नहीं एक छोटी सी गड़बड़ देखने के लिए बड़े करीने से बाहर करना है, लेकिन यह नहीं करता
बात जहां शारीरिक रूप से लिपियों स्क्रीन पर थे.
दुर्भाग्य से सी में - और इस के विपरीत है जावा और अजगर की तरह भाषा
और आप परिचित हो सकता है कि दूसरों साथ - दुर्भाग्य से सी में, क्रम करता है
क्योंकि बात है क्या घड़ी अब क्या होने वाला.
>> जा रहा है कि डिफ़ॉल्ट समारोह निष्पादित करने के लिए, ज़ाहिर है, मुख्य है.
मुख्य पर छापा नाम कॉल करने के लिए जा रहा है लाइन आठ, लेकिन दुर्भाग्य से,
संकलक यह भी है कि प्रिंट का नाम पता नहीं होगा यह 11 लाइन के लिए हो जाता है, जब तक मौजूद है
जो दुर्भाग्य है बहुत देर होने जा रहा.
तो चलो नमस्कार कर करते हैं.
और अब लानत, दो त्रुटियों उत्पन्न.
तो अब मुझे बहुत अप करने के लिए स्क्रॉल सबसे पहले, हम हमेशा करना चाहिए के रूप में, और
यह मुझ पर चिल्ला रहा है कि सूचना, समारोह की "निहित घोषणा
नाम मुद्रित. "
>> इसलिए हम पहले इस संदेश को देखा है, समारोह के निहित घोषणा.
जब हम त्रुटि के उस तरह देखा है?
मैं एक पुस्तकालय में शामिल नहीं किया था.
मैं cs50.h भूल गया और मुझे मिल जाएगा तो मिल स्ट्रिंग के लिए पर चिल्लाया या INT मिलता है.
लेकिन इस मामले में, इस समारोह छापा नाम सही, एक पुस्तकालय में नहीं है?
यह इस फाइल में सचमुच है, तो क्या वास्तव में समस्या है?
>> वैसे दुर्भाग्य से सी में, यह आप लेता है तो अविश्वसनीय रूप से सचमुच कि आप अगर
चाहते करने के लिए प्रिंट का नाम नामक समारोह मौजूद हैं, आप को लागू करने के लिए है या तो
के ऊपर से ही है कि समारोह अपने कोड इसे कम करने के लिए सुलभ है कि इतना
काम करता है, लेकिन स्पष्ट रूप से, कि हो जाता है मैला बहुत जल्दी.
निजी तौर पर, मैं पहली बार मुख्य डालने की तरह तो यह बहुत स्पष्ट है क्योंकि यह क्या
कार्यक्रम पहली नज़र में करता है.
और इसके अलावा, आप अजीब कोने में मिल सकती है अगर एक्स कॉल करना चाहता है, जहां मामलों
Y लेकिन y आप सिर्फ एक्स फोन हो सकता है शारीरिक रूप से वास्तव में एक नहीं डाल सकते हैं
दूसरे के ऊपर.
>> लेकिन यह हम कर सकते हैं, सी में पता चला है बहुत आसानी से इस का समाधान.
मैं अंतरिक्ष का एक छोटा सा डाल करने के लिए जा रहा हूँ यहाँ, और मैं अभी जा रहा हूँ
preemptively, हालांकि कुछ हद तक अतिशयतापूर्वक, सिखा रहा
एक समारोह है कि वहां मौजूद संकलक छापा नाम कहा जाता है, यह एक स्ट्रिंग लेता है,
और मैं फोन करने के लिए जा रहा हूँ यह अर्धविराम नाम है.
>> तो यह अब लाइन चार में, जो हम पहले नहीं देखा है, एक घोषणा है
एक समारोह छापा नाम की, लेकिन यह केवल है इस समारोह है कि एक वादा
अंत में अंत में, परिभाषित किया जा कार्यान्वित किया.
यह अब मैं अकेले छोड़ सकते हैं क्योंकि अब यह परिभाषा है
कार्यान्वयन, की तरह पिछले मील इस के कार्यान्वयन की
विशेष समारोह.
तो स्पष्ट रूप से यह, यह कष्टप्रद है, बेवकूफ है लेकिन इस सी है जिस तरह से है, और यह बात है
यह बहुत सचमुच ले जाता है क्योंकि और, एक कंप्यूटर स्पष्ट रूप से होना चाहिए,
केवल आप यह बताने के लिए है कि क्या वास्तव में करते हैं, और इसलिए कि आदेश देने के लिए महत्वपूर्ण है.
>> तो मन में है कि रखने के लिए और फिर, के लिए शुरू पैटर्न की पुनरावृत्ति नोटिस.
अगर तुम नहीं है बाधाओं, तुम जाएगा रहे हैं पहले से ही, संदेशों का सामना करने के लिए शुरू
इस तरह पहली नज़र में लगता है कि पूरी तरह से गुप्त, लेकिन अगर आप शुरू
जैसे इन महत्वपूर्ण शब्दों के लिए देखने के लिए एक के "निहित घोषणा," का उल्लेख
तुम, सच और - इस मामले में समारोह कभी कभी भी एक छोटे से हरे मिल
आपको बताता है कि गाजर प्रतीक जहां मुद्दा शायद है -
आप के माध्यम से अपने तरीके से काम करने के लिए शुरू कर सकते हैं अभी तक अनदेखी त्रुटि संदेश.
लेखन पर कोई प्रश्न आपके इस रास्ते में दम समारोह?
>> चलो एक है कि कुछ करते हैं थोड़ा अधिक सम्मोहक.
बस है कि कुछ करने के बजाय मुद्रण का एक पक्ष प्रभाव, मुझे जाने दो.
आगे और एक नई फाइल को बचाने, और हम करेंगे यह है, भले ही इस positive.c कॉल
एक छोटे से अलग होने जा रहा पिछली बार की तुलना में.
और इस बार, मैं फिर से लागू करना चाहते हैं पिछली बार के positive.C उदाहरण, जो
देने के लिए उपयोगकर्ता के लिए मजबूर कर रहा है मुझे एक सकारात्मक पूर्णांक.
लेकिन मैं INT पिछली बार इस्तेमाल किया था.
अगर वहाँ था यह अच्छा नहीं होता कहा जाता है एक समारोह सकारात्मक INT मिल
मैं सिर्फ यह आउटसोर्स कर सकता है कार्यक्षमता का टुकड़ा?
यहाँ तो फर्क हम करेंगे सकारात्मक INT पाने लागू है, लेकिन विपरीत
एक पक्ष प्रभाव था जो प्रिंट नाम - यह की तरह मुझे कुछ वापस नहीं किया
एक नंबर या एक स्ट्रिंग -
सकारात्मक INT, ज़ाहिर है, के लिए जा रहा है मिल हमें उम्मीद है कि एक सकारात्मक INT वापसी.
>> तो चलो यह करते हैं.
Cs50.h शामिल करें, मानक io.h. शामिल करें
Int मुख्य शून्य.
और अब यहाँ में, मैं आगे जाने के लिए जा रहा हूँ और के INT, के बराबर होती है, एन इसे कहते हैं हम कहते हैं
सकारात्मक INT मिलता है.
और बस हो INT पहले से मौजूद है जैसे स्टाफ यह लिखा था, क्योंकि मैं जा रहा हूँ
मिलता है कि पल के लिए कल्पना करने के लिए सकारात्मक INT मौजूद है, और अब मैं जा रहा हूँ
आगे बढ़ो और printf कहना, धन्यवाद% मैं / एन ", एन के लिए.
>> तो अब मैं इस कार्यक्रम को संकलित करते हैं, तो क्या मेरे टर्मिनल में होने जा रहा है
स्क्रीन के नीचे खिड़की?
मैं शायद प्राप्त करने के लिए जा रहा हूँ कि एक ही त्रुटि के रूप में पहले.
तो चलो इस कोशिश करते हैं.
सकारात्मक बनाओ.
और फिर, निहित घोषणा समारोह की, सकारात्मक INT मिलता है.
तो हम में इस को हल कर सकते हैं तरीके के एक जोड़े.
मैं इसे सरल रखने के लिए जा रहा है और अभी कर रहा हूँ यहाँ मेरी घोषणा डाल दिया है और मिल
सकारात्मक Int.
मैं तथाकथित हस्ताक्षर की जरूरत है.
हस्ताक्षर सिर्फ संदर्भित करता है के सौंदर्यशास्त्र के लिए
कार्यक्रम की पहली पंक्ति.
तो क्या सकारात्मक मिलना चाहिए INT वापसी?
>> तो एक पूर्णांक.
मैं आदर्श रूप में, यह लौटेंगे मतलब कुछ सकारात्मक INT की तरह है, लेकिन है कि
मौजूद नहीं है.
हम अपने डेटा के बीच कि नहीं देखा है प्रकार, तो हम साथ सौदा किया है
हम बहुत कुछ तथ्य यह है कि साथ काम करने के लिए डेटा प्रकार.
लेकिन हम सिर्फ एक पूर्णांक लौटने और कर सकते हैं यह सकारात्मक हो जाएगा कि विश्वास है.
यह कहा जा जा रहा है सकारात्मक INT मिलता है.
>> और अब कैसे अपने तर्क के बारे में?
यह किसी भी इनपुट ले करता है?
यह किसी भी इनपुट की जरूरत है?
तो यह जानने की जरूरत नहीं है अग्रिम में कुछ भी.
स्ट्रिंग, int नहीं करता नहीं मिलता हो जाओ.
Printf करता है - यह कुछ करने की जरूरत है यह में पारित इनपुट - और प्रिंट का नाम
कुछ इनपुट की जरूरत है, लेकिन मिल सकारात्मक INT नहीं करता है.
तो मैं स्पष्ट रूप से करने के लिए जा रहा हूँ संकलक शून्य बताओ.
शून्य कुछ और का अभाव है.
तो शून्य का मतलब कुछ भी नहीं के अंदर जा रहा है उन कोष्ठकों का, अर्धविराम.
>> और अब मेरी फाइल के नीचे स्थित है - और फिर से, मैं सिर्फ गुदा की तरह किया जा रहा हूँ
यहाँ शीर्ष पर मुख्य डाल जो अच्छा अभ्यास, क्योंकि इस तरह है
किसी भी समय आप या कोई और अपनी फ़ाइल को खोलता है,
कार्यक्षमता अभी भी वहीं है.
आप एक वर्ग से में गोता लगा सकते हैं.
तो अब मैं इस नकल करने के लिए जा रहा हूँ, सकारात्मक INT शून्य मिलता है, लेकिन मैं नहीं हूँ
अब एक अर्धविराम मारा जा रहा.
मैं घुंघराले ब्रेसिज़ को खोलने के लिए जा रहा हूँ, और अब मैं उधार लेने की जरूरत
सोमवार से कुछ विचार.
>> आपको याद तो, जैसा कि हम कुछ किया जैसे, जबकि निम्न करना
कुछ सच था.
और मैं क्या किया?
मैं दे ऐसा कुछ किया मुझे एक सकारात्मक पूर्णांक,
एक त्वरित का थोड़ा सा.
मैं मैं चाहता हूँ कि कोई भी शब्द इस्तेमाल कर सकते हैं.
और फिर मैं क्या करता था?
Int n मिल INT, के बराबर होती है यह तर्क नहीं.
>> और अंतर नोटिस.
जब आप का उपयोग आप एक समारोह फोन जब एक समारोह में, आप शून्य में मत डालो.
की घोषणा जब आप केवल करना है कि एक समारोह, संकलक शिक्षण क्या
यह उम्मीद करनी चाहिए.
तो तुम डाल करने की जरूरत नहीं है अपने आप को वहाँ शून्य.
>> और अब मेरी हालत क्या था?
खैर, एन, सकारात्मक करने के बराबर नहीं है लेकिन वह सिर्फ छद्म कोड है.
तो मैं कैसे अधिक सफाई से इस व्यक्त करते हैं?
तो कम से कम या शून्य के बराबर.
तो फिर, तुम क्या कर सकते नोटिस से भी कम या बराबर है.
यह दो अलग है हालांकि प्रतीकों, अगर आप इस पर क्या कर सकते हैं
आपके जैसे कुंजीपटल.
>> लेकिन यह है कि एक बग अभी भी वहाँ है मैं भी अंतिम समय खराब कर दिया है.
मैं घोषणा की है -
बिल्कुल.
मैं बाहर घोषित करने के लिए n है पाश की.
तो मैं यहाँ n खड़ा करने की जरूरत है, और मुझे नहीं पता यहां फिर से घोषित यह चाहते हैं
मैं एक नया चर पाने ऐसा न हो.
मैं बस यहाँ में एक मूल्य प्रदान करना चाहते हैं.
>> और अब मैं काफी यहाँ नहीं कर रहा हूँ.
मुझे अपने आप से आगे निकलते हैं और मैं कर रहा हूँ नाटक.
अब सकारात्मक बनाओ, और एक नए त्रुटि है.
नियंत्रण अंत की पहुँचता गैर शून्य समारोह.
इसलिए नए त्रुटि संदेश है, लेकिन अगर आप की तरह के, अलग शब्दों का प्रत्येक चिढ़ाने यह
शायद क्या गलत है पर संकेत.
>> नियंत्रण.
नियंत्रण सिर्फ आदेश का मतलब एक कार्यक्रम में आपरेशन के.
कंप्यूटर नियंत्रण में है और कुछ गलत हो गया.
तो यह अंत की पहुँचता एक गैर शून्य समारोह.
यह जाहिरा तौर पर क्या समारोह है की चर्चा करते हुए?
क्या समारोह गैर शून्य है?
इसलिए सकारात्मक INT मिलता है, और एक छोटे से , उस कुएं में भ्रमित
यह एक तरह से शून्य है.
इसके लिए शून्य से एक विनिर्देश है इसकी तर्क, लेकिन इसके उत्पादन के लिए जा रहा है
प्रकार n के हो.
तो छोड़ दिया पर शब्द है वापसी प्रकार तथाकथित.
यहां के अंदर पर शब्द है शून्य या अधिक तर्क
एक समारोह लेता है.
>> तो मैं क्या करने की जरूरत है?
मेरे कोड में इस बिंदु पर, 21 लाइन जहां पलक शीघ्र अब, मैं है
अंदर एक सकारात्मक int है n बुलाया चर की.
कैसे मैं यह मुख्य करने के लिए वापस दे?
सचमुच.
N अर्धविराम लौटें.
>> कोल्टन का एक टुकड़ा लौटे तो बस के रूप में छोड़ने के द्वारा मेरे लिए एक जवाब के साथ कागज
छोटी काली में कागज के उस टुकड़े में ऐसा करने के लिए, मेज पर बॉक्स
कोड, तुम सचमुच सिर्फ लिखने वापसी कोल्टन थे के रूप में हालांकि एन, और यह बात है
मुझे वापस भौतिक कुछ सौंपने.
इस मामले में, क्या हो रहा है मिल रहा है सकारात्मक INT वापस सौंपने के लिए जा रहा है
संभवतः एक सकारात्मक है क्या पूर्णांक किसके लिए?
कहां कि मूल्य अंत है?
यही कारण है कि इस चर में समाप्त होता है, एन, और फिर हम लाइन में नौ के साथ आगे बढ़ना.
>> तो आदेश के में दूसरे शब्दों में, संचालन, इस कार्यक्रम शुरू होता है
, को क्रियान्वित करने, और संकलक एहसास ओह, आप पुस्तकालय चाहते हैं?
मुझे लगता है कि अंदर हड़पने के लिए जो कुछ भी हम चलते हैं.
ओह, आप मानक कब पुस्तकालय चाहते हैं?
मुझे लगता है कि अंदर हड़पने के लिए जो कुछ भी हम चलते हैं.
संकलक खुद को क्या कहना है यह लाइन चार हिट?
ओह, आप को लागू करने का वादा किया कहा जाता है समारोह सकारात्मक मिलता है, लेकिन
हम बाद में वापस करने के लिए मिल जाएगा उन पंक्तियों के साथ कुछ.
>> Int मुख्य शून्य सिर्फ यहां का मतलब मेरे कार्यक्रम की हिम्मत.
रेखा सात सिर्फ एक घुंघराले ब्रेस है.
रेखा आठ बाईं तरफ कह रहा है, दे एक पूर्णांक के लिए मुझे 32 बिट, एन कहते हैं.
दाहिने हाथ की तरफ, यह है सकारात्मक INT मिल कह रही.
अब देखते हैं कि कहानी क्योंकि अब हम रोक देते हैं मैं अपने कर्सर नीचे चलती नहीं रखते.
मेरा कर्सर अब यहाँ नीचे चला जाता है क्योंकि अब सकारात्मक INT निष्पादित मिलता है.
Int n घोषित किया जाता है.
निम्न कार्य करें.
Printf मुझे एक सकारात्मक पूर्णांक देता है.
>> उपयोगकर्ता से एक पूर्णांक करें, एन में दुकान, और शायद फिर से और फिर से ऐसा करते हैं.
इस पाश का मतलब है कि इस कोड हो सकता है फिर इस तरह ऊपर और नीचे निष्पादित
और फिर, लेकिन जब उपयोगकर्ता अंततः सहयोग और मुझे एक सकारात्मक देता है
INT, मैं जो बिंदु, रेखा 21 को मारा संख्या पीठ को सौंप दिया है, और कौन सा है
मैं अब उजागर करना चाहिए?
नौ.
नियंत्रण, तो बात है, रिटर्न नौ लाइन करने के लिए.
यही आरोप में अब है कि लाइन है.
>> तो यह है कि सब हो रहा है क्या है इस हुड के नीचे समय है, लेकिन
हम printf जैसे कार्यों का उपयोग किया है जब या यहां तक ​​कि स्ट्रिंग मिलता है कि किसी और को
आप के लिए लिखा था, नियंत्रण सौंप दिया जा रहा था किसी और के कोड लाइन के लिए रवाना
लाइन से लाइन से.
यह सिर्फ हम इसे और हम नहीं देख सकता है वास्तव में इस में यह वर्णन नहीं कर सकता
यह कुछ अन्य में के कार्यक्रम क्योंकि हार्ड ड्राइव पर फाइल
हमें करने के लिए अनजान.
तो चलो वास्तव में संकलन करते हैं और अब इस दौड़.
>> सकारात्मक बनाओ.
संकलित करें, कि प्रगति है.
. / सकारात्मक.
मुझे एक सकारात्मक पूर्णांक दीजिए.
के लिए मुश्किल हो चलो.
नकारात्मक 1.
शून्य.
चलो यह 50 देता हूँ.
50, और इसलिए नियंत्रण के लिए धन्यवाद अब वापस आ गया है.
कोई प्रश्न, तो उस पर?
हाँ?
>> [सुनाई].
>> फिर से कहो.
ओह, अच्छा सवाल है.
तो तुम यहाँ एक समानांतर नोटिस सकता है कि मैं एक तरह से एक कोने काट रहा हूँ.
12 लाइन में, मैं सकारात्मक INT मिलता है, कह रहा हूँ एक पूर्णांक देता है, लेकिन है कि एक ही द्वारा
तर्क, यह अब में है के लिए खड़ा लाइन छह, मैं कह रहा हूँ कि मुख्य रिटर्न
एक पूर्णांक है, लेकिन क्या हम कभी नहीं हमारे कार्यक्रमों में से किसी में था?
हम उल्लेख की कभी नहीं किया है इस कुंजी शब्द वापसी.
>> तो यह पता चला है कि सी में, कम से कम हम प्रयोग कर रहे हैं कि यह का संस्करण
1999 में बनाया, तकनीकी तौर पर, यह है स्वचालित रूप से आप के लिए हो रहा है.
जब भी आप एक कार्यक्रम को लागू करने और आप मुख्य नामक एक समारोह को लागू करने,
उस समारोह से शून्य वापसी करेंगे आप अन्यथा मत कहो तो डिफ़ॉल्ट,
और शून्य सिर्फ एक सम्मेलन है.
दुनिया रिटर्न जिससे शून्य सब कुछ ठीक है यह दर्शाता है कि,
प्रभावी ढंग से चार अरब साथ हमें छोड़कर जा सकते हैं कि संभव बातें
गलत हम एक लौटने हैं, कि इतना है कि इसका मतलब यह है कि एक कोड का कारक हो सकता है
बात गलत हो गया था.
हम जिसका मतलब है, दो लौट सकता है यह दूसरी बात यह है कि गलत हो गया था.
हम चार अरब लौट सकता है जो यह दूसरी बात यह है कि गलत हो गया था मतलब है.
>> और अब आप अपने खुद के बारे में सोचो पीसी या मैक, आपको याद है कि हो सकता है
कभी कभी आप गुप्त त्रुटि संदेश मिलता है आप कर रहे हैं कि सॉफ्टवेयर से
का उपयोग कर, और कभी कभी यह एक मानव है अनुकूल वर्णन है, लेकिन वहाँ है
अक्सर एक कोड या एक नंबर स्क्रीन पर?
इस मन को नहीं आता है, बस इसके लिए एक आंख बाहर रखने के लिए.
यही कारण है कि आम तौर पर क्या इन कोड की बात कर रहे हैं.
वे माइक्रोसॉफ्ट वर्ड में शामिल कर रहे हैं और अन्य कार्यक्रमों के लिए इतना है कि आप एक फ़ाइल अगर
कंपनी के साथ बग रिपोर्ट, आप कर सकते हैं उन्हें बताओ, ओह, मैं त्रुटि संख्या 45 हो गया.
और कंपनी में कुछ प्रोग्रामर वापस में है कि देख सकते हैं अपने या अपने
कोड और मैं बनाया क्योंकि ओह, यह है, कहना इस बग और यही कारण है कि उपयोगकर्ता है
यह संदेश मिला.
>> लेकिन सच कहूँ तो, यह सिर्फ एक छोटा सा है ध्यान भंग करने के लिए और एक छोटे से कठिन
कम से कम, पर निष्कर्ष है कि हमारी पहले कुछ कार्यक्रमों, तो हम है
यह omitting गया.
लेकिन यह सब समय से हर एक अपनी मुख्य कार्यों को चुपके से इस पड़ा है
स्वचालित रूप से आप के लिए गयी लाइन संकलक, अभी तक कन्वेंशन द्वारा
आप कुछ समय बचाने के लिए.
>> [सुनाई].
>> आप मुख्य में इसे शामिल करने की जरूरत नहीं है.
यह ठीक है.
अगर तुम थे आप इसे शामिल करने की जरूरत है इस तरह एक समारोह को लागू करने.
अन्यथा समारोह फ्लैट बाहर काम नहीं होगा.
लेकिन मुख्य रूप से, यह आवश्यक नहीं है.
एक या दो सप्ताह में, हम हो रही शुरू करेंगे कि आदत में हम शुरू करना चाहते हैं एक बार
त्रुटियों वाचक.
बहुत अच्छा सवाल.
>> उल्लेख करने के लिए इतनी जल्दी मौखिक तोड़ने इस शुक्रवार, हम दोपहर का भोजन करने के लिए नहीं
दर असल, लेकिन हम साथ खाना खा सकता हूँ छात्रों और स्टाफ के कुछ.
आप हमारे साथ शामिल करना चाहते हैं, तो लग रहा है cs50.net/rsvp के लिए जाने के लिए स्वतंत्र.
6:00 इस शुक्रवार.
अंतरिक्ष, हमेशा की तरह, सीमित है, लेकिन हम करेंगे लगभग एक पर इन कर जारी
साप्ताहिक आधार अगर अंतरिक्ष इस सप्ताह बाहर चलाता है.
>> इसलिए हम बंद पर छोड़ दिया है कि cliffhanger सोमवार था कि तार कर सकते हैं वास्तव में
सिर्फ तुम, जिसका अर्थ में अनुक्रमित किया पहले चरित्र पर प्राप्त कर सकते हैं,
दूसरा चरित्र, तीसरे चरित्र और बहुत आगे है, आप कर सकते हैं क्योंकि
प्रभावी रूप की तरह, एक स्ट्रिंग के बारे में सोच नमस्कार, इस मामले में पांच में होने के रूप में
बक्से के अंदर पत्र.
और अगर आप उन लोगों में से प्रत्येक में प्राप्त कर सकते हैं वाक्यविन्यास हम क्या किया साथ बॉक्स
सोमवार को परिचय?
उन वर्ग कोष्ठक अपने कीबोर्ड पर.
वह सिर्फ स्थान शून्य करने के लिए जाने का मतलब है.
>> हम शून्य पर गिनती शुरू, तो ब्रैकेट शून्य घंटे, ब्रैकेट एक प्रतीक है
इसके आगे ई का प्रतीक है, और.
और इसलिए हम किया गया है जब सभी समय तार का उपयोग और "हैलो" में टाइपिंग
और "दुनिया" और अन्य बातों पर स्क्रीन, इसे संग्रहित किया गया है
इस तरह से बॉक्स में.
और एक अनुमान ले.
प्रत्येक बॉक्स शारीरिक रूप से क्या दर्शाता है आपके कंप्यूटर के अंदर?
>> [सुनाई].
>> क्षमा करें?
>> वर्ण.
>> निश्चित रूप से इस मामले में तो एक चरित्र, तार, और एक चरित्र है बस का
आठ बिट्स या एक बाइट.
तो आप शायद कम से कम थोड़ा हैं इस तथ्य से परिचित है कि आपके
कंप्यूटर मेमोरी है.
यह कम से कम स्मृति की दो प्रकार की है.
एक तुम्हें बचा जहां हार्ड डिस्क है स्थायी रूप से सामान, और वह है,
तो आप फिल्मों में हो सकता है आम तौर पर बड़े और इसके आगे के संगीत और.
>> तो फिर तुम स्मृति का एक और प्रकार है कहा जाता है राम, आर ए एम, रैंडम एक्सेस
मेमोरी, और इस स्मृति के प्रकार है आपके कंप्यूटर है कि जब प्रयोग किया जाता है
चल रहा है लेकिन आप शक्ति खो देते हैं या अगर आपके बैटरी, संग्रह किया गया है कि कुछ मर जाता है
तुम शक्ति खो देते हैं तो रैम में गायब हो जाता है यह नहीं है पूरी तरह क्योंकि
लगातार.
आप आमतौर पर इन दिनों, एक है इसके बारे में टमटम, दो gigs, शायद अधिक.
और राम के ऊपर है कि यह बहुत है कि है हार्ड डिस्क से भी ज्यादा, बहुत तेजी से
या यहां तक ​​कि ठोस राज्य, इन दिनों ड्राइव लेकिन यह आम तौर पर और अधिक महंगा है तो
आप इसके बारे में कम है.
>> तो आज की बातचीत वास्तव में संदर्भित करता है राम को, स्मृति की है कि प्रकार है कि
बिजली वहाँ केवल जबकि मौजूद आपके कंप्यूटर में खिलाया जा रहा है.
आप एच ई एल एल ओ में लिखें तो, जब पर दर्ज कीबोर्ड, एच से एक में जा रहा है
राम की बाइट, ई में जा रहा है राम का एक और बाइट के रूप में है
शब्द के बाकी.
तो हम सक्षम थे क्या याद पिछली बार ऐसा करने के लिए यह किया गया था.
मुझे आगे जाना है और फ़ाइल खोल दो. हम string.c कहा जाता है, और याद है कि
यह एक छोटे से देखा कि कुछ इस तरह.
मुझे वास्तव में पीठ और परिवर्तन रोल यह लग रहा था जैसे कि वास्तव में क्या
एस की स्ट्रिंग लंबाई.
>> तो यहाँ कार्यक्रम को देखो.
हम CS50 पुस्तकालय में शामिल हैं तो हम मिल स्ट्रिंग का उपयोग कर सकते हैं.
हम मानक io.h शामिल इसलिए हम printf का उपयोग कर सकते हैं.
क्यों हम string.h शामिल किया?
इस सोमवार को नया था.
इसलिए हम स्ट्रिंग लंबाई चाहता था.
स्ट्रीट लेंग.
लोग साल पहले का फैसला किया है, चलो बस संक्षिप्त हो.
इसके बजाय "स्ट्रिंग की लंबाई," यह फोन की के "Str लेंग 'कहते हैं और चलो
दुनिया कि यह पता लगाने, और इतना है कि हम string.h साथ के लिए उपयोग हो क्या.
>> इस परिचित है.
इस परिचित है.
यह एक छोटे से नया है.
लाइन 22 में - और हम वापस आ जाएंगे इस के लिए, लेकिन अब पता के लिए -
और आप ही होने से यह पता होगा प्रलेखन पढ़ा है या अगर
आप पहले से ही सी पता था -
स्ट्रिंग कभी कभी बिगाड़ सकता हो.
उपयोगकर्ता वास्तव में विरोधात्मक या है तो असहयोगी और वह बस
कीबोर्ड पर कुछ भी लिख सकते हैं या नहीं करता कि कीबोर्ड पर इतना प्रकार
यह कंप्यूटर की स्मृति पड़ा, सिद्धांत रूप में, स्ट्रिंग लौट सकता है मिल
एक अन्य की तुलना में कुछ वर्णों की स्ट्रिंग.
यह कहा जाता है एक विशेष मूल्य वापसी कर सकता रिक्त सभी टोपियां में, एन यू एल एल, और यह है
सिर्फ एक तथाकथित प्रहरी मूल्य.
यह प्रतीक है कि एक विशेष मूल्य है कुछ बुरा इस मामले में हुआ.
यह एक स्ट्रिंग का अभाव है.
>> मैं बस इतना है कि के लिए जाँच कर रहा हूँ तो अशक्त, लंबी कहानी को कम, Str लेंग और
सी के साथ आया है कि अन्य कार्यों, अगर वे एक स्ट्रिंग की उम्मीद है, लेकिन आप उन्हें पारित
तुम पास अगर एक स्ट्रिंग के अभाव, उन्हें खबरें, कंप्यूटर या कार्यक्रम
सिर्फ एकमुश्त दुर्घटना होगा.
यह रखती हूँ.
यह कुछ त्रुटि संदेश फेंक देंगे.
बुरा होगा.
तो यह अभी भी है, भले ही अच्छी तरह से परिभाषित नहीं -
इस एक सप्ताह में और अधिक समझ बनाने के लिए या जाएगा दो - पंक्ति 22 में, यह सिर्फ एक है
आत्म रक्षात्मक त्रुटि जाँच का उदाहरण बस से बाहर का मामला एक बार में
एक लाख कुछ गलत हो जाता कम से कम मेरे कार्यक्रम दुर्घटना नहीं होगा.
>> , बुरा कुछ के बराबर होती नहीं करता है तो अगर मैं पाश के लिए यह किया है, और यह था
हम था कि जहां अन्य वाक्यविन्यास का नया टुकड़ा.
मैं से एक के लिए लूप पुनरावृति है एस की लंबाई तक पर शून्य.
और फिर यहाँ, मैं एक बाहर मुद्रण की थी ब्रैकेट मैं, लेकिन मैं क्यों की सभी ग% का उपयोग किया था
अचानक बजाय% भी हालांकि एक स्ट्रिंग है?
यह सही, एक चरित्र है?
एस एक स्ट्रिंग है, लेकिन है ब्रैकेट कुछ, एस ब्रैकेट मैं जहाँ मैं शून्य है
या एक या दो, कि एक व्यक्ति की स्ट्रिंग में चरित्र, और के लिए ऐसा
कि, printf सूचित करने की आवश्यकता है यह वास्तव में उम्मीद करने के लिए एक चरित्र है.
>> और फिर यह क्या किया, याद कार्यक्रम वास्तव में क्या है?
>> कॉलम में इसे बाहर मुद्रित.
>> हाँ, बिल्कुल.
यह सिर्फ मैं में लिखे जाने वाले शब्द मुद्रित एक स्तंभ, प्रत्येक पंक्ति में एक चरित्र.
तो चलो फिर से इस देखते हैं.
तो स्ट्रिंग बनाने.
ठीक संकलित. . / स्ट्रिंग.
, मुझे एच ई एल एल ओ में टाइप करते दर्ज करें, और वास्तव में मैं, एक प्रति पंक्ति यह मिलता है.
>> तो मुझे यहाँ एक अनुकूलन करते हैं.
आप विशेष रूप से है, तो इसके बारे में सोचो तुम वहाँ है, पहले क्रमादेशित है
24 लाइन में यकीनन एक अक्षमता.
दूसरे शब्दों में, यह जरूरी नहीं है सर्वश्रेष्ठ डिजाइन.
कम से कम आप एक बार, सीधा क्या याद Str लेंग है, लेकिन यह बात है
संभवतः गूंगा कुछ कर रही है.
कि क्या हो सकता है?
>> [सुनाई].
>> बिल्कुल सही.
यह है की लंबाई के लिए जाँच कर रहा है हर एक समय भले ही
एच ई एल एल ओ हमेशा जा रहा है पांच अक्षरों का होना.
इस पाश के माध्यम से हर समय, पांच नहीं बदल रहा है.
मैं मैं incrementing, लेकिन क्या किया जा सकता है हर तरफ है की लंबाई है
इस पाश का चलना?
यह पांच है, यह पांच है, पांच है, और अभी तक मैं फिर भी यह पूछ रहा हूँ
सवाल फिर और फिर और फिर.
अब सच में, कंप्यूटर तो बहुत है तेजी से, कोई भी सूचना के लिए जा रहा है एक
इस मामले में अंतर है, लेकिन इन प्रकार के गरीब डिजाइन निर्णय कर सकते हैं
ऊपर जोड़ने के लिए शुरू अगर संकलक ही आप के लिए इसे ठीक करने की कोशिश नहीं करता है जो
यह आम तौर पर, नहीं होगा उपकरण में कम से कम.
>> तो मैं यह करने के लिए जा रहा हूँ.
के बाद मैं एक अल्पविराम जोड़ने के लिए जा रहा हूँ मेरा पहला चर, मैं.
मैं अपने आप को एक और देने जा रहा हूँ चर, एन, यह फोन अभी से
फिर नंबर के लिए कन्वेंशन, और मैं कर रहा हूँ n स्ट्रिंग के मूल्य प्रदान करने के लिए जा रहा
एस की लंबाई.
और फिर मैं परिवर्तन करने जा रहा हूँ मेरी हालत क्या हो सकता है?
मैं अपनी हालत बदलने के लिए जा रहा हूँ मैं n से भी कम है, जबकि करने के लिए.
>> तो अब, कितनी बार मैं कर रहा हूँ एस की लंबाई की जाँच?
एक बार, लेकिन इसके खिलाफ मैं जाँच करने के लिए ठीक है एन बार बार क्योंकि अब उन
मानों वास्तव में नहीं बदल रहे हैं.
अब अब के लिए, सिर्फ इतना है कि कभी भी तुम्हें पता है एक समारोह फोन, की एक सा है
आप को हतोत्साहित करने के लिए भूमि के ऊपर, पर्याप्त नहीं वास्तव में कभी कार्यों का उपयोग कर, लेकिन से
कोड की एक पंक्ति है कि वहाँ निश्चित रूप से जब जैसे कि - और लाइनों मिलेगा
लंबे समय से पहले और अधिक रोचक - जहां सोचने के लिए एक अवसर है, अगर वहाँ मैं
इस कोड टाइप करें, कितने यह समय पर अमल करेंगे?
आप समय के साथ देखना शुरू करेंगे अपने कार्यक्रमों का प्रदर्शन कर सकते हैं
वास्तव में बदल जाते हैं.
>> वास्तव में, इस समस्या का एक हम है सेट पिछले कुछ वर्षों में शामिल किया
आप से याद कर सकते हैं, को लागू सप्ताह शून्य, एक जादू चेकर, लेकिन एक
समर्थन करने के लिए तैयार है कि चेकर जादू 150,000 से अधिक का एक शब्दकोश
हम तुम लोगों को दे कि शब्द.
आप कोड लिखना होगा कि भार उन शब्दों राम में, में तो
हम स्क्रीन एक पल पर देखा बॉक्स की तरह आप के रूप में पहले, और तब के रूप में तेजी
, आप एक जवाब देने में सक्षम होने की जरूरत है सकते हैं फार्म का सवाल है, यह शब्द है
गलत वर्तनी?
इस शब्द गलत वर्तनी है?
>> और हम है क्या है कि ऐसा कुछ में अतीत में यह बदल गया है साल में किया,
एक विकल्प के वैकल्पिक आधार पर हालांकि, एक जिससे एक तरह की प्रतिस्पर्धा,
कम रैम और कम उपयोग करने वाले छात्रों समय, कम CPU चक्र, अंत तक
एक छोटे से ऊपर तक बुदबुदाती हम पर डाल दिया है कि नेता बोर्ड या रैंकिंग
हम है के रूप में पाठ्यक्रम के होमपेज पिछले कुछ वर्षों में किया.
तो फिर, पूरी तरह से वैकल्पिक है, लेकिन इस डिजाइन के अवसर के लिए बोलती है
हम शुरू में एक बार आगे हैं इनमें से कुछ के ऊपर इमारत
बुनियादी इमारत ब्लॉकों.
>> इसलिए मेरे लिए वापस इस चित्र के लिए चलते हैं बस एक पल और एक छोटे से पता चलता है
अधिक कुछ.
यह वास्तव में एक स्ट्रिंग है, और हम ले लिया है कुछ पुस्तकालयों का लाभ,
- है जो मानक io.h
>> Printf.
>> अन्य बातों के अलावा printf,.
cs50.h, जो INT पाने के लिए और स्ट्रिंग मिल गया है और बहुत आगे है, string.h, जो
Str लेंग था.
लेकिन यह एक और अभी तक वहाँ पता चला है.
सच कहूँ तो, बहुत से और हेडर के बहुत सारे है कार्यों की घोषणा कि फाइलें
पुस्तकालयों, लेकिन इस ctype.h है के लिए वास्तव में कुछ हद तक होने जा रहा
लाभप्रद मैं जा रहा हूँ क्योंकि आगे बढ़ो और एक को लागू करने के लिए
यहाँ अन्य कार्यक्रम.
>> मुझे आगे जाना है और कुछ खोल दो. मैंने फोन अग्रिम में लिखा
capitalize.c, और ले जाने एक यह कैसे काम करता है पर दिखेगा.
मैं इस संस्करण में, का उपयोग कर रहा हूँ कि नोटिस इसके बारे में, तीन परिचित फ़ाइलें.
18 लाइन में, मैं कर रहा हूँ कि नोटिस पाठ की एक पंक्ति हो रही है.
21 लाइन में सूचना, मैं दावा कर रहा है कि निम्नलिखित कोड जा रहा है
एस टाइप, जो कुछ उपयोगकर्ता भुनाने में, और कैसे मैं क्या कर रही हूँ?
खैर, मैं ले जा रहा हूँ -
पिछली बार से सबक सीखा -
मैं मैं की घोषणा और एन और iterating कर रहा हूँ स्ट्रिंग में वर्णों से अधिक.
और फिर इस ब्लॉक का क्या है लाइन में कोड 24 27 के माध्यम से
आम आदमी की दृष्टि में क्या कर रही?
>> वापस छोटा अक्षर.
>> बिल्कुल सही.
अगर ब्रैकेट मैं - यदि ऐसा है तो मैं वें एक विशिष्ट है जो एस के चरित्र,
स्ट्रिंग में चार, की तुलना में अधिक है या बराबर एक छोटे और को -
कि डबल एम्परसेंड याद दर्शाता है और -
और एक ही चरित्र, एस ब्रैकेट मैं है से भी कम या लोअरकेस Z करने के लिए बराबर है,
कि यह एक एक या एक बी या सी है या इसका मतलब डॉट, दूरसंचार विभाग, दूरसंचार विभाग, या एक Z, जो साधन
यह लोअरकेस है.
क्या मैं उस मामले में क्या करना चाहते हैं?
खैर, मैं कुछ हद तक ऐसा कर सकते हैं cryptically, लेकिन
के अलावा इस तंग करते हैं.
>> मैं printf, प्रिंट% ग कॉल करने के लिए जा रहा हूँ मैं इस पुनर्मुद्रण करना चाहते हैं क्योंकि
परदे पर चरित्र.
मैं तो, एस ब्रैकेट मैं ले जा रहा हूँ मैं वें सेकेंड में चरित्र, और तब क्यों
मैं यहाँ इस छोटी सी चाल कर रही हूँ एक शून्य से राजधानी एक छोटे?
क्या देने जा रहा है मुझे, आम तौर पर बोल?
>> [सुनाई].
>> बिल्कुल सही.
मैं सच में याद नहीं है -
यह मैं नहीं वास्तव में राजधानी ए के लिए 65 था एक है लोअरकेस क्या याद,
लेकिन कोई बात नहीं.
कंप्यूटर जानता है.
तो कह कर, एक शून्य से लोअरकेस राजधानी ए, यह होना अजीब है
एक दूसरे से चार घटाकर, लेकिन हुड के नीचे घर का काम कर रहे हैं?
वे बस संख्या रहे हैं.
तो उन लोगों की संख्या, जो भी कंप्यूटर यह याद करते हैं
बल्कि मानव मुझसे ज्यादा.
>> तो एक शून्य से राजधानी एक है लोअरकेस मुझे एक फर्क देने जा रहा.
यह 32 होना होता है, और उस होगा लोअरकेस ख और पूंजी बी के मामले
और बहुत आगे है.
यह शुक्र है, लगातार रहता है.
तो मैं अनिवार्य रूप से ले, कह रहा हूँ छोटा अक्षर, बंद घटाना कि
मानक अंतर है, और है कि प्रभावी ढंग से परिवर्तन के ब्रैकेट मैं से
लोअरकेस करने के लिए, ज़ाहिर है, बड़े, मेरी वास्तव में लगता है कि बिना
या के बारे में उन क्या थे, याद हम जब आठ के बारे में बात की संख्या
स्वयंसेवकों मंच पर आए थे?
अब इस बीच, किसी और में, अगर ऐसा नहीं है निर्धारित के रूप में एक छोटा अक्षर
24 लाइन द्वारा, बस इसे बाहर प्रिंट.
मैं केवल छूना चाहता हूँ थे कि वर्ण
वास्तव में मूल रूप से लोअरकेस.
>> तो चलो इस देखते हैं.
भुनाने बनाओ.
ठीक है, संकलित.
. / भुनाने.
और मुझे एच ई एल एल ओ में टाइप करते लोअर केस में दर्ज करें.
और यह बदल जाती है कि नोटिस अपरकेस में.
मेरे साथ फिर से यह करते हैं एक अलग शब्द.
कैसे पहले डी के साथ डी ए वी आई डी के बारे में एक नाम आमतौर पर है के रूप में पूंजीकृत?
दर्ज करें.
यह अभी भी सही का नोटिस.
यह सिर्फ outputted पहले डी अपरिवर्तित कि कि किसी और के माध्यम से निर्माण.
>> तो ध्यान में रखना है, तो, एक यहाँ चीजों की जोड़ी.
एक, क्या तुमने कभी दो जाँच करना चाहते हैं शर्तों पर एक बार, आप कर सकते हैं और उन्हें
हम भविष्यवाणी एक साथ के रूप में.
आप इस तरह से पात्रों की तुलना कर सकते हैं और प्रभावी रूप से पात्रों के रूप में इलाज
संख्या, लेकिन स्पष्ट रूप से, यह तो बहुत है गुप्त मुझे याद है कभी नहीं जा रहा हूँ
खरोंच से इस के साथ आने के लिए कैसे काफी के लिए इसे माध्यम से तर्क के बिना
समय का एक सा.
>> यह अच्छा नहीं होता अगर किसी को वहाँ से बाहर बुलाया एक समारोह है लिखा
सच है कि मेरे या के लिए जवाब सकता है कम झूठे, इस चरित्र लोअरकेस है?
वैसे शुक्र है, जो कोई भी लिखा ctype.h यही किया.
मुझे यहाँ चलते हैं और सी के लिए ctype जोड़ प्रकार, और अब मुझे यहाँ नीचे चलते हैं और
इस प्रकार के रूप में इस लाइन को फिर से लिखना.
>> इसलिए यह कहा जाता है, तो मैं दावा, कम S है ब्रैकेट मैं, तो मैं नष्ट करने के लिए जा रहा हूँ
कुल मिलाकर इन दो लाइनों.
तो अब किसी और से, मैं उम्मीद कर रहा हूँ, लिखा कहा जाता है एक समारोह में यह कम है, और
वे किया था और वे घोषित पता चला है यह ctype.h के अंदर.
और अब मैं रेखा 27 छोड़ने के लिए जा रहा हूँ अकेले, मैं रेखा 31 छोड़ने के लिए जा रहा हूँ
अकेले, लेकिन मैं कितना नोटिस मेरे कोड को कड़ा.
अब यह साफ है.
यह माध्यम से देखने के लिए कम मुश्किल है अब समारोह, इसके अलावा, क्योंकि
इतनी शानदार बस यह नाम यह क्या कहता है.
>> तो अब मैं इस बचाने के लिए जा रहा हूँ.
मैं बाहर ज़ूम करने के लिए जा रहा हूँ.
और सिर्फ खरोंच के रूप में तुम हो सकता Booleans, बूलियन मान सही है या
झूठे, कि वास्तव में क्या है कम प्रभावी रूप से देता है.
मुझे फिर कंपाइल करने दें.
फिर से चलाने के लिए मुझे करने दें.
और अब फिर से कोशिश करते हैं, एच ई एल एल ओ, लिखें.
वो काफ़ी अच्छा है.
और यकीन है कि मैं बनाने के लिए, इसे फिर से कोशिश कुछ बिगाड़ नहीं था.
उस के रूप में अच्छी तरह से पूंजीकृत है.
>> लेकिन यह पर्याप्त नहीं है क्योंकि मैं कभी नहीं जा रहा हूँ कि अन्य बात
मैं वास्तव में यह माध्यम से काम जब तक याद ध्यान से पर, कहते हैं, कागज है
इस लानत लाइन.
अगर वहाँ थे यह अच्छा नहीं होगा ऊपरी करने के लिए कहा जाता है एक समारोह?
वैसे यह वहाँ पता चला है साथ ही ctype.h में है.
मुझे आगे जाना है और टाइप करने के लिए जा रहा हूँ -
मुझे उस लाइन को वापस लाने करते हैं.
इसके बजाय यह यहाँ की, मुझे आगे चलते हैं और कहते हैं, ग% के लिए विकल्प
इस समारोह बुला के परिणाम एस मैं वें चरित्र पर ऊपरी.
और अब यह हो रही है नोटिस एक छोटे से संतुलित.
मैं का ट्रैक रखने के लिए कितने मैं खोला और बंद कर दिया है कोष्ठकों.
>> तो अब यह भी साफ है.
अब इस कार्यक्रम के बेहतर हो रही है और क्योंकि यह बेहतर यकीनन बनाया गया
और अधिक पठनीय, ज्यादा लेकिन यह कोई चलो सही है.
भुनाने बनाओ.
. / भुनाने.
एच ई एल एल ओ. फिर इसे चलाते हैं, डी ए वी आई डी. ठीक है, तो हम में अब भी कर रहे हैं
बहुत अच्छी हालत.
>> लेकिन अब ऊपरी करने के लिए.
मैं एक और भी है कि प्रस्ताव हम चाहते हैं कि होगा बना सकता शोधन
वास्तव में अच्छा है, कि वास्तव में कस सकता है इस कोड को और वास्तव में हमें पाँच दे
उदाहरण के लिए डिजाइन के लिए पांच से बाहर.
क्या से छुटकारा पाने के लिए अच्छा होगा?
खैर, देखो कैसे लानत लंबे समय से इस ब्लॉक की कोड सिर्फ सरल कुछ करना है.
>> अब एक अलग रूप में, हो सकता है आप के रूप में के रूप में यह पिछले सुपर अनुभाग में देखा
सप्ताह के अंत में, तुम सख्ती की जरूरत नहीं है घुंघराले ब्रेसिज़ आप सिर्फ एक है जब
हम प्रस्तावित भले ही कोड की रेखा, यह बहुत बनाता है, ताकि उन्हें रखने
खरोंच है यू के आकार में की तरह, और अधिक स्पष्ट ब्लॉक, शाखा के अंदर क्या है.
लेकिन यह अगर ऊपरी करने के लिए अच्छा नहीं होगा अपने इनपुट दिया, जब में बदल गया
अगर ऐसा नहीं है अपरकेस, और क्या होगा विपरीत स्थिति में अद्भुत होगा अगर
यह पहले से ही अपरकेस है?
बस के माध्यम से पारित और उसे अकेला छोड़ दें.
>> तो शायद यह है कि.
मैं कोशिश करते हैं और सिर्फ आशा कर सकता यह करता है, लेकिन मुझे है कि
एक अन्य बात यह है कि परिचय.
इसके बजाय इस में निर्मित टर्मिनल का उपयोग करने का यहाँ नीचे खिड़की, याद है कि
इस वर्ग काला आइकन आप एक देता है बड़ा टर्मिनल विंडो कि मैं पूरा कर सकते हैं
मैं चाहता हूँ कि अगर स्क्रीन?
तो यह है कि वे एक तरह से अजीब तरह से कर रहे हैं पता चला है नाम है, लेकिन कहा जाता है कि इन बातों को नहीं है
मैन पेज, मैनुअल पृष्ठों, कम करने के लिए आदमी, और मैं ने इन पर पहुंच सकता है
टाइपिंग आदमी -
क्या मैं टाइप करने के लिए करना चाहते हैं?
ऊपरी को मैन.
>> एक वहाँ मौजूद है और अब नोटिस में, कंप्यूटर के अंदर से कार्य
इस मामले में अभी जो उपकरण, लिनक्स, यह जा रहा है ऑपरेटिंग सिस्टम
मुझे कुछ हद तक एक गुप्त सेट के लिए देने के लिए उत्पादन, लेकिन आप समय पर मिल जाएगा
यह हमेशा बहुत ज्यादा स्वरूपित है एक ही इतनी है कि आप इसे करने के लिए इस्तेमाल किया जाना शुरू करते हैं.
ऊपरी को शीर्ष पर ध्यान दें, और जाहिरा तौर पर एक ही दस्तावेज है
कम करने के लिए.
यह कुछ काट रहा था जो भी लिखा कोनों और एक पृष्ठ पर यह सब डाल दिया.
में इन बातों को 'उद्देश्य जीवन बदल रहा है एक
ऊपरी या छोटे करने के लिए पत्र.
>> सार, आदमी पृष्ठ के तहत सूचना है कि मैं क्या फ़ाइल मुझे सिखा रही है
इस बात का उपयोग करने के लिए शामिल करने के लिए.
यह मुझे इन के लिए हस्ताक्षर दे रही है काम करता है, उन दोनों, भी
हम अभी केवल यद्यपि एक के बारे में परवाह है.
यहाँ अब एक वर्णन है.
ऊपरी पत्र धर्मान्तरित यदि संभव हो तो अपरकेस सी.
>> फिर भी उस शिक्षाप्रद, लेकिन मुझे नहीं अब वापसी मान, बात नीचे देखो
उस पीठ को सौंप दिया है.
तो लौटा मूल्य की है परिवर्तित अक्षर या ग अगर
रूपांतरण संभव नहीं था.
सी क्या है?
>> मूल चरित्र.
>> मूल चरित्र और हम जानते हैं उस से, फिर से, करने के लिए ऊपर जा रहा
सार, और जो कोई भी यह लिखा समारोह सिर्फ फैसला किया है कि इनपुट
ऊपरी को और कम करने के लिए बस है मनमाने ढंग से सी के नाम से जाना जा रहा है.
वे इसे सबसे कुछ कहा हो सकता है वे चाहते हैं, लेकिन वे इसे रखा
सी के रूप में सरल.
इसलिए मैं आदमी पृष्ठ सलाह है.
यह वाक्य मुझे आश्वस्त है कि अगर यह एक छोटा अक्षर नहीं है, यह बात है
बस है, जो सी मुझे वापस देने जा रहा जिसका मतलब है, सही मैं से छुटकारा मिल सकता
मेरी किसी और शर्त.
>> तो मुझे वापस फंट के चलते हैं, और अब मुझे सिर्फ यह करते हैं.
मैं अपने printf बयान कॉपी करने के लिए जा रहा हूँ.
मैं सही अंदर आगे जाने के लिए जा रहा हूँ मिलता है कि बाहर, और के लिए लूप प्रिंट
अब इस पूरे निर्माण अगर से छुटकारा.
एक बुरा विचार नहीं था, और यह बहुत था बहुत सही और साथ संगत
हम प्रचार किया गया है सब कुछ, लेकिन सिर्फ आवश्यक नहीं.
जैसे ही आप कुछ पुस्तकालय का एहसास के रूप में समारोह में मौजूद है कि किसी और को
लिखा था, या शायद आप में कहीं लिखा फ़ाइल, आप वास्तव में इसका इस्तेमाल कर सकते हैं और
कोड को मजबूत करने के लिए शुरू करते हैं.
>> और मैं अच्छा शैली की तरह बातें कहते हैं, इस व्यक्ति को कहा जाता है कि तथ्य
पहले से ऊपरी, या करने के लिए समारोह है कम शानदार उपयोगी है क्योंकि
वे बहुत वर्णनात्मक रहे हैं.
आप अपने कार्यों कॉल नहीं करना चाहती एक्स और वाई और जेड, जो है
बहुत, बहुत कम अर्थ.
उस श्रृंखला पर किसी भी सवाल सुधार की?
>> इसलिए में से एक कहने के लिए पर्याप्त takeaways भी अपनी खुद की समस्या के रूप में है
शायद समस्या एक सेट, लेकिन - सेट निश्चित रूप से पी आगे, यहां तक ​​कि दो सेट और
वे जरूरी नहीं सही कर रहे हैं जब वे सही कर रहे हैं मतलब सिर्फ
अभी तक या विशेष रूप से अच्छी तरह से डिजाइन.
यही कारण है कि अन्य धुरी के लिए है के बारे में सोच शुरू करते हैं.
तो इस के अंदर एक स्ट्रिंग था अपने कंप्यूटर की मेमोरी, लेकिन यदि आपके पास एक
एच ई एल एल ओ की तरह पात्रों की पूरी गुच्छा रैम, और अनुमान के अंदर
अपने कार्यक्रम के कॉल में आप स्ट्रिंग मिलता है कई बार ऐसा है कि आप
आप तो, एक बार तार मिल कॉल फिर तार मिल कहते हैं.
खैर, क्या हो रहा है समय के साथ हो?
>> दूसरे शब्दों में, आप की एक पंक्ति है अगर कोड, यद्यपि संदर्भ से बाहर, जैसे
स्ट्रिंग एस हो जाता है -
चलो यह करते हैं.
स्ट्रिंग नाम स्ट्रिंग पाने के बराबर होती है.
तो कोड की है कि लाइन का मतलब है लगता है उसके नाम के लिए उपयोगकर्ता पूछने के लिए.
कोड की यह अगली पंक्ति पूछने का मतलब है अपने या अपने स्कूल के लिए उपयोगकर्ता, और
इसके आगे इस अगली पंक्ति, और.
हम पूछते रहते हैं कि मान लीजिए किसी अन्य के लिए उपयोगकर्ता और
एक और एक स्ट्रिंग.
वे स्मृति में बने रहने के लिए जा रहे हैं एक ही समय में.
एक अन्य पीटना करने के लिए नहीं जा रहा है.
स्कूल दूसरे के ऊपर लिख नहीं है.
लेकिन जहां वे सब करते हैं स्मृति में खत्म?
>> खैर, हम स्क्रीन पर आकर्षित करने के लिए शुरू, हम इस बात का उपयोग कर सकते हैं जो
यहाँ एक चॉकबोर्ड तरह, अगर इस काले आयत मेरे कंप्यूटर का प्रतिनिधित्व करता है
स्मृति, मैं मनमाने ढंग से शुरू करने जा रहा हूँ छोटे वर्गों में विभाजित,
प्रत्येक का प्रतिनिधित्व करता है जो की स्मृति की एक बाइट.
सच कहूँ, तुम राम की एक गीगाबाइट है अगर इन दिनों, तुम एक अरब बाइट्स है
आपके कंप्यूटर में स्मृति की, तो इन वर्गों का एक अरब.
तो कहने के लिए पर्याप्त है, इस वास्तव में बड़े पैमाने पर नहीं है.
>> लेकिन हम आपको इन सब ड्राइंग रख सकता है स्पष्ट रूप से वर्गों पैमाने पर, और इस के लिए नहीं
सामूहिक रूप से प्रतिनिधित्व करता है मेरे कंप्यूटर की मेमोरी.
अब हम सिर्फ डॉट, दूरसंचार विभाग, दूरसंचार विभाग करूँगा.
तो दूसरे शब्दों में, मैं अब प्रांप्ट जब मुझे एक देने के लिए तार के साथ उपयोगकर्ता
स्ट्रिंग, क्या होता है?
यदि उपयोगकर्ता प्रकार में "हैलो," समाप्त होता है कि एच ई एल एल ओ में. लेकिन लगता है
उपयोगकर्ता तब प्रकार में -
वास्तव में, मैं ऐसा नहीं करना चाहिए हैलो हम पूछ रहे हैं क्योंकि
उनके नामों के लिए उन्हें.
तो मैं ऐसा कर सकते हैं अगर चलो वापस जाना.
>> इसलिए मैं अपने नाम के लिए D-A-V-मैं डी में लिखते हैं, तो लेकिन याद है कि दूसरी लाइन
कोड फिर से मिल स्ट्रिंग था उनके स्कूल को पाने के लिए.
कहाँ है कि शब्द है कि उपयोगकर्ता अगले जाने के लिए जाने में प्रकार?
वैसे, शायद इस बारे में जाना जा रहा है एच ए आर वी ए आर डी. तो मैं करने के बावजूद
दो पंक्तियों के रूप में यह तैयार है, यह सिर्फ है में बाइट्स की एक पूरी गुच्छा आपके
कंप्यूटर की रैम.
अब मैं कर रहा हूँ, क्योंकि अगर एक समस्या अब नहीं है यह बहुत ही उचित में राम का उपयोग
लेकिन एक तरह से अनुभवहीन रास्ता, क्या आप कर सकते हैं जाहिरा तौर पर भेद नहीं?
एक शुरू होता है और जहां जहां एक सही, समाप्त हो जाती है?
वे एक तरह से एक साथ धुंधला कर रहे हैं.
>> तो यह कंप्यूटर पता चला है ऐसा नहीं है.
मुझे वास्तव में समय एक में वापस स्क्रॉल कुछ अक्षर, और बजाय हार्वर्ड की
उपयोगकर्ता के नाम के बाद तुरंत जा रहा है, उपयोगकर्ता वास्तव में पीछे, हो जाता है
पर्दे के एक विशेष चरित्र द्वारा डाला
उसे या के लिए कंप्यूटर.
अन्यथा नुल चरित्र के रूप में जाना / 0, annoyingly एन यू एल, नहीं बुलाया
एन यू एल एल, लेकिन आप / 0 के रूप में यह लिखना.
यह सिर्फ सभी शून्य बिट्स में एक मार्कर है पहला शब्द के बीच में है कि उपयोगकर्ता
टाइप और दूसरा.
>> तो हार्वर्ड वास्तव में अब समाप्त होता है अक्षरों के इस दृश्य के रूप में
और एक अधिक / 0.
तो दूसरे शब्दों में, इन होने से प्रहरी मूल्यों, आठ सटे शून्य
बिट्स, आप अब भेद करने के लिए शुरू कर सकते हैं एक से एक चरित्र.
तो "नमस्ते" हो गया है क्या यह सब समय वास्तव में "नमस्ते" एक / 0 के साथ, और
इस बीच, बहुत अच्छी तरह से कर सकता है बहुत थोड़ा अधिक रैम हो
कंप्यूटर के अंदर.
>> मुझे अब एक और बात करते हैं.
यह पता चला है कि इन वर्गों के सभी हम, हाँ, वे कर रहे हैं, ड्राइंग किया गया है
तार, लेकिन अधिक आम तौर पर, इन बातों सरणियों हैं.
एक सरणी स्मृति का सिर्फ एक हिस्सा है कि, वापस वापस करने के लिए वापस करने के लिए वापस आ गया है
और आप आम तौर पर जिस तरह से एक सरणी का उपयोग इस वर्ग कोष्ठक अंकन की.
इसलिए हम इन काफी थोड़ा को देखने के लिए जा रहे हैं समय के साथ, लेकिन मुझे आगे चलते हैं और
ऊपर खुला, की उम्र में यह कहते हैं.
और हम के साथ क्या कर सकते हैं नोटिस ये वही चाल, एक छोटे से
यहाँ और अधिक वाक्यविन्यास काटा.
>> इसलिए इस कार्यक्रम के 17 लाइन में - वास्तव में, मुझे पहला कार्यक्रम चलाते हैं
इसलिए हम इस बात करता है देख सकते हैं.
मेरे लिए उम्र बनाना कहते हैं इस कार्यक्रम संकलन.
. / उम्र.
कितने लोगों के कमरे में कर रहे हैं?
यह तीन बुलाओ.
पहले व्यक्ति की उम्र?
18, 19, और 20.
और अब कुछ हद तक हास्यास्पद है, मैं बस एक कार्यक्रम बनाया है कि उम्र के उन
तीन लोग.
>> तो एक अवसर स्पष्ट रूप से नहीं है यहाँ कुछ मज़ा गणित के लिए.
शुक्र है, गणित सही है.
18 चला गया 19, 19 के लिए चला गया 20 करने के लिए और बहुत आगे है.
लेकिन क्या वास्तव में होने का मतलब है यहाँ उदाहरण हम भंडारण कर रहे हैं कि कैसे है
उन तीन लोगों की उम्र.
मुझे क्या है पर में ज़ूम यहाँ पर जा रहा.
>> तो सबसे पहले, इन पहले कुछ लाइनें चाहिए बहुत परिचित हो रही हो.
मैं बस के लिए उपयोगकर्ता उत्साह रहा हूँ कमरे में लोगों की संख्या.
फिर मैं int का उपयोग और कर रहा हूँ करने के लिए है, जबकि फिर और फिर और फिर से ऐसा करते हैं.
हम पहले उस पैटर्न देखा है, लेकिन लाइन 27 वास्तव में काफी नया और है
उपयोगी, और बन जाएगा तेजी से उपयोगी.
क्या लाइन 27 में अलग है कि नोटिस मैं एक घोषित करने जा दिखाई देते है
उम्र बुलाया int, लेकिन इंतजार.
यह सिर्फ उम्र int नहीं है.
इन वर्ग कोष्ठक नहीं है, जो के अंदर n है.
>> इस संदर्भ में तो ब्रैकेट एन, नहीं यहाँ एक printf बयान के अंदर लेकिन
इस एकमात्र लाइन 27 में, इस पंक्ति है कह रही है,, मुझे ints n जिनमें से प्रत्येक दे
प्रकार int की है.
तो यह की, तो बात है, एक बाल्टी है इस मामले में, तीन पूर्णांकों वापस करने के लिए
वापस वापस करने के लिए इतना है कि मैं प्रभावी ढंग से तीन चर है.
वैकल्पिक हो सकता है, स्पष्ट है, यह होगा.
>> मैं चाहता था कि यदि पहले छात्र की उम्र, मैं यह कर सकता है.
मैं चाहता था तो दूसरा छात्र की उम्र मैं यह कर सकता है.
मैं चाहता था कि यदि तीसरे छात्र की उम्र, मैं यह कर सकता है.
और भगवान हम हर किसी की जरूरत न करे इस कमरे में उम्र -
मेरा मतलब है, यह नकल का एक बहुत की एक बिल्ली है, फिर और फिर और फिर से पेस्ट करें.
और अधिक मैं इस कार्यक्रम संकलन एक बार, एक और छात्र पर बाहर में चलता है अगर
उस दरवाजे की, अब मेरा नंबर चर का ग़लत है.
>> तो क्या एक सरणी के बारे में अच्छा है के रूप में है तुम अपने आप को महसूस करने लगते हैं जल्द ही के रूप में
कॉपी करने और चिपकाने, बाधाओं है कि कर रहे हैं नहीं सबसे अच्छा दृष्टिकोण.
एक सरणी संभावित गतिशील है.
मैं पहले से पता नहीं है कि कितने लोग कमरे में होने जा रहे हैं,
लेकिन मुझे लगता है मैं उनमें से पता की जरूरत है पता है, और मैं हूँ जब समय आता है n यह पता लगाने.
कोड की यह पंक्ति अब मतलब है, एक मुझे दे इस तरह लग रहा है कि स्मृति का हिस्सा
जहां स्क्रीन पर बक्से की संख्या n पर पूरी तरह से निर्भर है कि
अंदर टाइप किया उपयोगकर्ता
>> तो अब इस कार्यक्रम के बाकी है क्या हम वास्तव में बहुत समान
सिर्फ अक्षर के साथ किया था.
मैं पाश के लिए एक नोटिस लाइन 30 में शुरू.
मैं सरणी मिलता है तो सही होने के बाद, मैं y से पुनरावृति n करने के लिए ऊपर पर शून्य के बराबर होती है.
मैं सिर्फ यह शिक्षाप्रद printf है सिर्फ इतना कह संदेश, मुझे उम्र दे
व्यक्ति #% मैं की, तो नंबर एक, नंबर दो, तीन नंबर.
और मैं ऐसा क्यों किया?
सच कहूँ तो, मनुष्य एक से गिनती करने के लिए पसंद करते हैं पर कंप्यूटर वैज्ञानिकों जबकि ऊपर,
शून्य अप पर.
कंप्यूटर वैज्ञानिकों के लिए नहीं जा रहे हैं कार्यक्रम के इस तरह के उपयोग, तो हम कर रहे हैं
बस गिनती शुरू करने जा रहा सामान्य लोगों की तरह एक पर.
>> और अब लाइन 33 में, थोड़ा नोटिस वाक्यविन्यास के विभिन्न टुकड़ा.
प्रकार का है कि चर में मैं वें उम्र सरणी एक पूर्णांक प्राप्त करने के लिए जा रहा है.
और अब अंत में, यह बस है यहाँ नीचे अंकगणितीय.
मैं दावा करने के लिए एक अलग पाश में निर्णय लिया कुछ समय के लिए इस में अब गुजरता है, और
अलग पाश, इन पंक्तियों को निष्पादित.
>> अब से एक साल, व्यक्ति मैं मैं हो जाएगा वर्ष पुराना है, लेकिन इस पर ध्यान नहीं है
चर मैं.
यह अब int के लिए% मैं है.
और पहली प्लेसहोल्डर के रूप में नोटिस, मैं मैं प्लस 1 में प्लग, तो हम एक तरह गिनती
सामान्य व्यक्ति.
और फिर उनके उम्र के मूल्य के लिए, के लिए मैं वर्ष पुराना है, मैं उम्र ब्रैकेट ले
मैं - और यही कारण है कि मैं यहाँ एक प्लस कर रहा हूँ?
वे सिर्फ वृद्ध.
यह कार्यक्रम के मेरे बेवकूफ पसंद है.
वे सिर्फ एक साल के आयु वर्ग के.
मैं किसी भी संख्या में टाइप कर सकते हैं कि मैं वास्तव में वहाँ चाहते हैं.
>> तो क्या वास्तव में सब है यहाँ प्रासंगिकता?
खैर, मुझे वास्तव में वापस स्क्रॉल यहाँ पर और एक तस्वीर रंग
क्या आगे झूठ की.
हम अपने अगले के साथ कर रही हो जाएगा क्या समस्या सेट दो में dabbling है
क्रिप्टोग्राफी की दुनिया.
तो इस अक्षर का एक स्ट्रिंग है, तो एक कई घर का काम के अनुक्रम, और क्या
यह कहना है?
यह ऑनलाइन संस्करण में नहीं है स्लाइड्स की.
>> इसलिए मुझे लगता है कि यह इस एक समानता के आधार पर दावा है कि कई सालों से बेवकूफ विज्ञापन
पहले वास्तव में याद हो सकता है कि इसके मूल में से एक.
तो यह एन्क्रिप्शन का एक उदाहरण है या क्रिप्टोग्राफी.
यह पता चला है कि अगर आप चाहते हैं वास्तव में जानकारी या साझा करें
सुरक्षित रूप से किसी के साथ जानकारी, इस तरह से एक संदेश की तरह, आप कर सकते हैं
पत्र हाथापाई.
लेकिन आम तौर पर, शब्द हैं बेतरतीब ढंग तले नहीं.
वे किसी तरह permuted या बदल रहे हैं किसी तरह से इतना है कि - उफ़.
अगली बार के लिए एक मजेदार बिगाड़ने है.
>> तो तुम जाहिरा तौर पर है क्या नक्शा कर सकते हैं बी नोटिस के हे कि अप लाइन
पूंजीकरण के लिहाज से.
जाहिर है आर ई हो जाता है.
जाहिर है एफ एच ई आर एस यू आर ई हो जाता है. इतना यह एक मानचित्रण वहाँ पता चला है, और में
इस मामले में एक बहुत बेवकूफ नहीं है किसी को भी यह पता चल गया है मानचित्रण तो क्या होगा?
यह कहा जाता है कुछ है सड़ो 13, घुमाएँ 13.
यह एन्क्रिप्शन की बेवकूफी है तंत्र क्योंकि यह सचमुच सिर्फ
पत्र में से हर एक को 13 कहते हैं, समझ में बेवकूफ है कि अगर आप बस
अपने हाथों पर खाली समय का एक सा है और एक पेंसिल, या आप बस यह लगता है
अपने सिर में के माध्यम से, तुम कोशिश कर सकते हो सभी संभव फाईल - एक, दो,
तीन, डॉट, दूरसंचार विभाग, दूरसंचार विभाग, 25 को बस पूरी वर्णमाला बारी बारी से, और
अंत में, आप पता लगा लेंगे क्या यह संदेश है.
आप में कुछ इस तरह से किया था तो अगर को संदेश गुजर ग्रेड स्कूल अपने
सबसे अच्छा दोस्त है, अगर आपके ग्रेड स्कूल शिक्षक बस के माध्यम से पढ़ा
संदेश और जानवर समाधान के लिए मजबूर, आपको मिल सकता है
उस ने एक जवाब.
>> अब जाहिर है, असली दुनिया में, क्रिप्टोग्राफी और अधिक परिष्कृत है.
यह एक से पाठ का एक टुकड़ा है उपयोगकर्ता नाम है जो कंप्यूटर प्रणाली और
पासवर्ड, के रूप में लगभग सभी हमारा करते हैं, और यह क्या आपके पासवर्ड हो सकता है
अपनी हार्ड पर संग्रहीत अगर की तरह दिखते लेकिन एन्क्रिप्टेड रूप में ड्राइव.
इस पत्र का सिर्फ एक रोटेशन नहीं है, एक बी और बी यह है सी. है
और अधिक परिष्कृत, लेकिन इसे इस्तेमाल करता है आम तौर पर गुप्त कुंजी के रूप में जाना जाता है
क्रिप्टोग्राफी.
इस तस्वीर को निम्नलिखित बताता है कुछ माउस के साथ कहानी.
>> बाईं तरफ, हम क्या है हम सादे पाठ फोन करता हूँ.
क्रिप्टोग्राफी, सादा की दुनिया में पाठ सिर्फ मूल संदेश है
अंग्रेजी या फ्रेंच में लिखा है या किसी भी भाषा.
आप यह एन्क्रिप्ट करने के लिए चाहते हैं, हम दे दूँगा यह सचित्र रूप से एक ताला के माध्यम से, तो
कलन विधि की तरह, कुछ समारोह के कुछ या कार्यक्रम किसी ने लिखा है कि
उम्मीद है कि पत्र scrambles सिर्फ 13 को जोड़ने से अधिक complicatedly
इनमें से प्रत्येक के लिए.
>> आप में है कि प्रक्रिया से बाहर निकलना क्या मध्य cyphertext वहां कहा जाता है.
एक सेक्सी शब्द का बहुत दयालु.
यह सिर्फ यह एन्क्रिप्टेड है इसका मतलब सादे पाठ का संस्करण.
और आपको लगता है कि एक ही रहस्य है, तभी 13 या शून्य से 13, आप करने में सक्षम हैं
ऐसे ही एक संदेश को डिक्रिप्ट.
>> तो बातों के अलावा समस्या सेट दो, में आप क्या करेंगे अगर हैकर में
संस्करण, आप करने के लिए कोड लिखना होगा बाहर लगाना, इन पासवर्ड दरार
क्या वे थे और कैसे वे थे हम आपको एक सा दे हालांकि, एन्क्रिप्टेड
जिस तरह से साथ मार्गदर्शन की.
मानक संस्करण में, हम परिचय सिफर, एन्क्रिप्शन के एक जोड़े
तंत्र, सीजर नामक एक, एक अभी भी कर रहे हैं कि Vigenere कहा जाता है,
एक हो जाता है, जहां घूर्णी सिफर कुछ हजारों में कुछ हो जाता है, लेकिन
आप प्रोग्राम यह करना होगा वास्तव में एक रहस्य नहीं होगा क्योंकि
आम तौर पर एक संख्या है जो शामिल कुंजी या एक कीवर्ड कि केवल
प्रेषक और इनमें से प्राप्तकर्ता संदेश को समझना चाहिए.
>> अब, यह वास्तव में अवतार है असली दुनिया में.
यह, उदाहरण के लिए, छोटे अनाथ है एनी गुप्त डिकोडर अंगूठी, और आप
वास्तव में इन लागू कर सकते हैं घूर्णी सिफर -
एक कुछ हो जाता है, बी हो जाता है कुछ - पहियों की एक जोड़ी के साथ,
बाहर की दुनिया में एक, अंदर पर एक ऐसा है कि आप पहिया बारी बारी से या अगर
अंगूठी, आप वास्तव में अप लाइन कर सकते हैं अलग पत्र के साथ पत्र,
एक गुप्त कोड हो रही है.
और इसलिए आज के लिए cliffhanger के रूप में, क्या मैं मैं क्या सोचा है की एक बिट
विपर्ययण है कि आप टीवी पर बारी अगर 24 दिसंबर, आप देख सकते हैं
मूवी विज्ञापन nauseum एक पंक्ति में 24 घंटे.
लेकिन आज के लिए, मैं यहाँ इसे खोल देता हूँ और हमें एक के सिर्फ दो मिनट दे
pedagogically प्रासंगिक क्रिसमस स्टोरी Ralphie नाम के एक छोटे से साथी के साथ.
>> [वीडियो प्लेबैक]
>> होने वाली यह सभी और विविध के लिए जाना जाता है कि राल्फ पार्कर एतद्द्वारा नियुक्त किया जाता है एक
छोटे अनाथ एनी रहस्य का सदस्य चक्र और सभी के हकदार है
सम्मान और लाभ बहां होने वाली.
>> छोटे अनाथ एनी, पर हस्ताक्षर किए.
पियरे आंद्रे स्याही में, प्रतिहस्ताक्षरित.
सम्मान और पहले से ही लाभ नौ साल की उम्र में.
>> [रेडियो पर आवाजें]
>> इसके साथ पर मिलता है, चलो.
मैं के बारे में वह सब जाज की जरूरत नहीं है तस्करों और समुद्री डाकुओं.
>> के लिए कल रात सुनो ब्लैक का समापन साहसिक
समुद्री डाकू जहाज.
अब, यह एनी की सीक्रेट के लिए समय है आप सदस्यों के लिए संदेश
गुप्त चक्र की.
, बच्चों को याद रखें.
एनी की सीक्रेट सर्किल के केवल सदस्य एनी के गुप्त संदेश को डिकोड कर सकते हैं.
एनी आप पर निर्भर करता है, याद रखें.
बी 2 के लिए अपने पिन सेट.
यहाँ संदेश है.
12, 11, 2 -
>> मैं मेरी पहली गुप्त बैठक में हूँ.
>> -25, 14, 11, 18, 16 -
>> पियरे महान आवाज में आज रात थी.
मुझे लगता है कि आज रात के संदेश को बता सकता है वास्तव में महत्वपूर्ण था.
>> -3, 25.
यही एनी खुद से एक संदेश है.
किसी को बताना नहीं है, याद रखें.
>> -90 सेकंड बाद में, मैं केवल कमरे में हूँ घर में जहां नौ का एक लड़का
गोपनीयता और व्याख्या में बैठ सकता है.
अहा, बी मैं अगले करने के लिए चला गया.
ई. पहला शब्द "हो." है एस यह अब आसान आ रहा था.
यू 25.
यही आर है
>> , Ralphie पर आओ.
मुझे जाना होगा.
>> -मैं हूँ, ठीक नीचे मा हो.
जी विशेषज्ञ.
>> आयकर. ओ सुनिश्चित करें.
क्या करना सुनिश्चित करें?
लिटिल अनाथ क्या था एनी कहने की कोशिश?
क्या करना सुनिश्चित करें?
>> -Ralphie, रैंडी जाने के लिए मिल गया है.
आप बाहर आयेंगी?
>> सब सही, मा.
मैं सही बाहर हो जाएगा.
>> मैं अब तक करीब हो रही थी.
तनाव भयानक था.
यह क्या था?
ग्रह के भाग्य का हो सकता है अधर में लटका है.
>> -Ralphie, रेंडी जाना होगा.
>> -मैं हूँ सही के लिए बाहर होना जोर से रोने के.
>> लगभग वहाँ.
मेरी उंगलियों के लिए उड़ान भरी.
मेरा मन एक इस्पात जाल था.
हर रोमकूप स्फूर्त.
यह लगभग स्पष्ट हो गया था.
हां, हां, हां, हां, हां.
>> अपने Ovaltine पीने के लिए सुनिश्चित हो.
Ovaltine?
एक फालतू वाणिज्यिक?
एक कुतिया का बेटा.
>> [अंत वीडियो प्लेबैक]
>> स्पीकर 1: यह CS50 है, और है कि समस्या सेट दो हो जाएगा.
अगले हफ्ते मिलते हैं.
>> अध्यक्ष 2: अगले पर CS50, ऐसा होता है.
>> स्पीकर 1: तो एक विषय हम नहीं है इस प्रकार अब तक है पर देखा
समारोह संकेत की है.
अब, एक समारोह सूचक बस है एक सार्वजनिक का पता
समारोह, लेकिन बहुत पसंद है -
एक के पुत्र -