[Powered by Google Translate] डेविड जे मालन: बिलकुल ठीक.
इस CS50 है, और यह दो सप्ताह के अंत है.
यदि आप इस समय कल के आसपास भूखे होने की उम्मीद है पता है, कि हम जा रहे हैं
एक छोटे से समूह कल, गुरुवार, 1:15 के रूप में आयोजित.
इस URL यहाँ अगर आप RSVP करना चाहते हैं.
स्थान सीमित है, तो माफ कर दो, अगर फार्म समय से भरी है आप कृपया
इसे भरने की.
हालांकि एक अन्य यूआरएल है कि ब्याज की हो सकती है.
>> तो बस के बारे में एक महीने के समय में, इस पाठ्यक्रम के लिए उपलब्ध कराया जा रहा है
EDX के माध्यम से और अधिक मोटे तौर पर, जो सभी के माध्यम से इंटरनेट पर लोगों को हो जाएगा
साथ पालन करने में काफी सक्रिय रूप से संलग्न है, वास्तव में करने में सक्षम है.
वे CS50 उपकरण और CS50 चर्चा और अधिकांश का उपयोग किया जाएगा
विभिन्न सॉफ्टवेयर उपकरण है कि हम पहले से ही इस सेमेस्टर का उपयोग किया गया.
और पहल की हम एक प्रयोग के रूप में इस वर्ष पर ले जाना चाहता हूँ
देखने के लिए अभी कितना सामग्री हम अन्य बात की में अनुवाद कर सकते हैं और
लिखित भाषा.
तो अगर आप इस परियोजना में भाग लेने में रुचि है, जिससे हो सकता है
हम पाठ्यक्रम के लिए अंग्रेजी टेप और उपशीर्षक प्रदान करेगा
व्याख्यान और शॉर्ट्स और सेमिनारों और वर्गों और तरह -
अगर आप धाराप्रवाह बोलते हैं या धाराप्रवाह कुछ अन्य भाषा लिखने, हम करेंगे
प्यार करने के लिए आप इस परियोजना में शामिल करने के लिए, आप एक या एक से अधिक पर ले जिससे
वीडियो, उन्हें एक भाषा आप अच्छी तरह जानते हैं में अनुवाद.
आप अंतरफलक की भावना दे, वहाँ इस उपयोगकर्ता वेब आधारित इंटरफेस है
कि हम का उपयोग किया है कि अनिवार्य रूप से इस तरह एक UI पैदा करेगा.
यह मुझे कुछ हेलोवीन पहले सिखा रहा था.
और काले रंग में सही हाथ पक्ष इन समय टिकटों के लिए अगले पर,
आप विभिन्न चीजें हैं जो मेरे मुंह से उस दिन बाहर आया देखेंगे.
और फिर इसे नीचे, आप किसी अन्य भाषा में अनुवाद करने में सक्षम हो जाएगा.
क्या वास्तव में मानचित्रण के बीच इस मामले में, अंग्रेजी में है,
और कहते हैं, स्पेनिश.
तो यह वास्तव में एक बहुत उपयोगकर्ता के अनुकूल उपकरण है.
आप अतीत और तेजी से आगे कुंजीपटल शॉर्टकट के साथ बहुत आसानी से कर सकते हैं.
तो अगर आप इस प्रयोग में भाग लेने की तरह है और अपने शब्दों
देखा और वहाँ से बाहर लोगों के संभावित हजारों द्वारा पढ़ा, महसूस करते हैं
मुक्त करने के लिए भाग लेने के लिए.
>> अब सोमवार से बिल्ली का बच्चा के बारे में एक शब्द है, ऐसा न हो कि हम एक पीढ़ी भेजा है
डरावना संदेश.
एहसास है कि के रूप में कार्यालय समय के सुझाव और वर्गों के रूप में सुझाव है, क्या
पाठ्यक्रम के डिजाइन बहुत छात्रों सहयोग और ज्यादा है
समस्या सेट और समस्याओं के माध्यम से एक साथ काम करने की बात कर रहे हैं.
और वास्तव में लाइन बस नीचे करने के लिए आता है, फिर से, काम अंततः आप
चाहिए submit अपना स्वयं का होना चाहिए.
और तो यह है, बहुत ईमानदारी से कार्यालय घंटे में, यह पूरी तरह से सामान्य है -
यह पूरी तरह से करने के लिए भी उम्मीद - कुछ के साथ बातें
आप के बगल में दोस्त.
अगर वह या वह कुछ विषय के साथ संघर्ष कर रही है, और आप की तरह कर रहे हैं, ओह, ठीक है
मुझे आप कोड के कुछ लाइन है कि मैं ने लिखा की एक झलक देते हैं.
यह ठीक है.
ऐसा होता है.
और है कि बहुत ज्यादा अनुकूल सीखने की प्रक्रिया के साथ मुझे लगता है, है.
कहां लाइन, फिर से पार कर जाता है, हो जाता है जब सॉर्ट के सिर पर झुका हुआ है
यहाँ अभी तक भी कई सेकंड या मिनट के लिए उस के लिए वास्तव में बस है
अपने दोस्त के लिए एक unblocking अवसर गया.
और निश्चित रूप से, जब चीजें के माध्यम से ईमेल और ड्रॉपबॉक्स और विमर्श मिलता है
की तरह, वहाँ भी लाइन है.
तो हर तरह से, आराम से लग रहा है और लगता है दोस्तों के साथ चैट करने के लिए प्रोत्साहित
और के बारे में और अधिक psets सहपाठियों.
और बस एहसास है कि क्या आप अंततः submit वास्तव में होना चाहिए
अपने सृजन और नहीं किसी और के उत्पाद.
>> तो cuddly प्राणियों के एक ही नस में है, तो आप कर सकते हैं
इस आदमी के यहाँ पता.
तो इस साल पहले से एक horrifically घटिया फिल्म है.
यहाँ कोई भी Spaceballs देखा है?
सही सभी.
तो यहाँ एक अच्छी संख्या.
तो यह हमारे आज अंत में शुरू करने की अद्भुत शैक्षिक तरीका है
क्रिप्टोग्राफी की धारणा.
और इसलिए 2 pset, जो आने के लिए डोमेन विशिष्ट समस्याओं का एक
देर से कल रात बाहर, क्रिप्टोग्राफी की दुनिया में गोता, जो
कला encrypting या scrambling जानकारी की है.
और यह अंततः सुरक्षा की दुनिया से संबंधित है.
>> अब ज्यादातर के लिए सुरक्षा हमें काफी सांसारिक तंत्र के रूप में आता है.
हम सभी उपयोगकर्ता नाम और पासवर्ड है.
और हम सब बहुत बुरा उपयोगकर्ता नाम और पासवर्ड है, सबसे अधिक संभावना है.
यदि आपका पासवर्ड कई वेबसाइटों पर ही है, कि शायद नहीं है
सबसे अच्छा विचार है, के रूप में हम सेमेस्टर के अंत की दिशा में चर्चा करेंगे.
कोई मज़ाक नहीं है - अपने पर यदि आपका पासवर्ड एक चिपचिपा नोट पर लिखा है
मॉनिटर, वह भी जरूरी सबसे अच्छा डिजाइन, लेकिन काफी एक आम नहीं है
घटना.
और अगर आप क्रिप्टोग्राफी का उपयोग नहीं कर अपने पासवर्ड एन्क्रिप्ट कर रहे हैं, वे कर रहे हैं
विशेष रूप से कमजोर है.
तो अगर आपको लगता है कि आप सुपर हो जा रहा है एक छिपे हुए शब्द होने से चालाक
अपनी हार्ड ड्राइव है कि अपने सभी पासवर्ड की है लेकिन कहीं पर दस्तावेज़
यह एक फ़ोल्डर में है कि कोई भी लग रहा है, वह भी एक बहुत नहीं है
सुरक्षित तंत्र.
और इसलिए 2 pset का परिचय देंगे क्या क्रिप्टोग्राफी का इस कला है और
जानकारी पांव मार इतना है कि पासवर्ड की तरह बातें कर रहे हैं
सभी को और अधिक सुरक्षित.
तो के रूप में एक बहुत ही गैर वास्तविक दुनिया के साथ यह बहुत ही वास्तविक दुनिया समस्या को प्रेरित करने के लिए
परिदृश्य, मुझे तुम हमारे पसंदीदा क्लिप के लिए इस से यहाँ शुरू
फिल्म, Spaceballs.
>> [वीडियो प्लेबैक]
- हेलमेट लेनेवाला, क्या पर जा रहा है?
तुम मेरी बेटी को क्या कर रहे हैं?
मुझे प्रतिभाशाली युवा प्लास्टिक सर्जन, डॉ. फिलिप को लागू करने के लिए परमिट
Schlotkin, पूरे में सबसे बड़ी नाक नौकरी आदमी
ब्रह्मांड और बेवर्ली हिल्स.
आपका महारानी.
नाक नौकरी?
मैं नहीं समझा.
वह पहले से ही एक नाक नौकरी थी.
यह एक मिठाई 16 मौजूद था.
- नहीं, यह नहीं है कि आप क्या सोचते हैं.
यह बहुत है, बहुत बुरा.
यदि आप मुझे हवा ढाल नहीं संयोजन देना नहीं है, डॉ. Schlotkin
अपनी बेटी को दे वापस अपने पुराने नाक.
नहीं!
आपको लगता है कि कहाँ से मिला?
- ठीक है.
मैं बताता हूँ.
- नहीं, पिताजी, नहीं.
तुम नहीं करना चाहिए.
You're सही, मेरे प्यारे.
मैं अपने नए नाक याद करेंगे.
लेकिन मैं उन्हें नहीं संयोजन कोई बात नहीं क्या बता देंगे.
अच्छी तरह से बहुत.
डा. Schlotkin, अपने सबसे खराब है.
मेरी खुशी है.
नहीं!
ठहरो, ठहरो.
मैं बताता हूँ.
मुझे पता था कि यह काम करेगा.
ठीक है, यह मुझे दे दीजिए.
संयोजन एक है.
एक.
दो.
तीन
तीन.
चार.
पांच
पांच.
संयोजन तो एक, दो, तीन, चार, पांच, है.
यह बेवकूफी संयोजन मैं कभी भी अपने जीवन में सुना है.
यह बात की तरह एक बेवकूफ अपने सामान पर होगा.
धन्यवाद आप, आपका महारानी.
क्या तुमने क्या किया?
- मैं दीवार से दूर कर दिया.
नहीं, तुम नहीं.
आप पूरी फिल्म बदल गया.
मैं गलत बटन दबाया है चाहिए.
खैर, इसे वापस रख पर.
फिल्म डाल पीठ पर.
- हाँ, सर.
हाँ, सर.
- चलो चलते हैं, इरना.
आओ, Gretchen.
बेशक आप जानते हैं मैं अभी भी आप इस के लिए बिल होगा.
खैर, यह काम किया है?
गेट कहाँ है?
यह काम किया है, सर.
हम संयोजन है.
ग्रेट.
अब हम ग्रह Druidia से ताजा हवा के हर आखिरी सांस ले सकते हैं.
संयोजन क्या है?
एक, दो, तीन, चार, पांच.
एक, दो, तीन, चार, पांच,?
- हाँ.
- यह अद्भुत है.
मैं अपना सामान पर ही संयोजन मिल गया है.
तत्काल प्रस्थान लिए Spaceball 1 तैयार करो.
- हाँ, सर.
और मेरे सामान पर संयोजन बदलने.
- ओउ!
[अंत वीडियो प्लेबैक]
>> : डेविड जे मालन एक अद्भुत फिल्म अब आप सभी को देखना चाहिए.
तो यहाँ संदर्भ है कि असुरक्षित डेटा के साथ एक मौका आता है
एन्क्रिप्ट और यह हाथों और घुटनों के बल चढ़ना.
और तो यह है, उदाहरण के लिए, एक एन्क्रिप्टेड संदेश का एक उदाहरण है.
यह वास्तव में अंग्रेजी में कुछ कहते हैं.
लेकिन यह स्पष्ट रूप से पूरी तरह स्पष्ट नहीं है.
और आज हम पूरा चक्र आ के अलावा चिढ़ाने के इस रहस्य क्या
यहाँ संदेश है.
लेकिन कंप्यूटर की वास्तविक दुनिया में, बातें भी वे शायद नहीं लग रहे हो
अंग्रेजी वाक्यांश हो.
उदाहरण के लिए, यह है कि आप क्या मिल सकता है या एक मानक लिनक्स या मैक पर
एक फ़ाइल है कि एक समय पर एक बार गया था में यूनिक्स कंप्यूटर पासवर्ड फ़ाइल कहा जाता है.
आजकल, यह अन्य स्थानों पर स्थानांतरित कर दिया गया है.
लेकिन अगर आप एक सिस्टम पर सही जगह में देखो, आप न केवल अपने देखेंगे
उपयोगकर्ता नाम या सिस्टम पर अन्य लोगों की है, लेकिन आप देखेंगे एक
अपने पासवर्ड की एन्क्रिप्टेड संस्करण.
दरअसल, शब्द वहाँ तहखाना से पता चलता है कि निम्नलिखित सामान एन्क्रिप्टेड है.
और मालूम होता है यादृच्छिक अक्षर और वर्ण और संख्या की इस श्रृंखला और
तो आम तौर पर कुछ रहस्य जानने के द्वारा ही आगे decrypted किया जा सकता है -
एक गुप्त शब्द, एक गुप्त संख्या.
और इसलिए वास्तव में, कुछ के अंत में फोड़े क्रिप्टोग्राफी नीचे की कला पर भरोसा करने के लिए
तरह और कुछ है जो किसी नहीं करता है जानने.
आज हम थोड़ा और अधिक विस्तार में इस का पता लगाने और pset में आने के लिए.
>> और अब पास / असफल पर एक शब्द भी नहीं.
तो विशेष रूप से, आप में से कुछ के रूप में 1 pset, उपकरण में डुबकी लगाई है, और
खुद के लिए एक बहुत ही नई दुनिया, कि कुंठाओं का एहसास है और
भ्रम और सिर्फ तकनीकी कठिनाइयों के लिए उम्मीद की जा रही है.
विशेष रूप से 1 pset, जहां सिर्फ इतना ज्यादा है बस के साथ हो रही
लोकसभा और सीडी और एक नए माहौल में इन रहस्यमय कमांड के साथ परिचित.
और कहा कि वास्तविक सामग्री और खुद प्रोग्रामिंग से अलग है.
तो एहसास भी है, जो निश्चित रूप से कर रहे हैं कि कार्यालय समय के रूप में मौजूद है
समर्थन संरचना.
धारा इस आने वाले रविवार को शुरू करते हैं.
लेकिन सबसे महत्वपूर्ण बात, अगर तुम सिर्फ महसूस कर रहे हैं कि यह नहीं है
आप के लिए दुनिया का एहसास है, कि यह वास्तव में सिर्फ समय ले करता है.
और यह एक क्लास लेने के साल पहले नहीं थे मेरे लिए इस अवसर के लिए
/ असफल हो, ईमानदारी से, मैं भी कभी नहीं कक्षा में पैर निर्धारित किया है.
और आप इस बदलने के लिए जब तक कर सकते हैं, कहते हैं, निश्चित रूप से 5 सोमवार.
तो अगर आप किनारे पर अब कर रहे हैं, कि बजाय सिर का एहसास कुछ अन्य में
पानी पूरी तरह निश्चित रूप से बस पास / असफल बदलने पर विचार नहीं है.
फिर, वहाँ वास्तव में इस संस्कृति नहीं यहाँ चीजें लेने के हार्वर्ड में
गुजारें / असफल के बाद से हर कोई वास्तव में प्राप्त करने के लिए या overachieve करना चाहता है.
लेकिन स्पष्ट रूप से, यह बाहर कुछ करने की कोशिश कर के एक बढ़िया तरीका है कि नहीं हो सकता
आप परिचित हो.
और तुम अंत सबसे काफी ठीक मामलों में कर रहे हैं, शायद हूँ
अपने आश्चर्य करने के लिए बहुत है.
और अधिक ठोस शब्दों में, मैं क्या लगता है कि गुजारें / आम तौर पर विफल करता है,
खासकर के रूप में आप 0 pset के साथ अनुभव किया है हो सकता है, अगर आप में डाल दिया है
में 10 घंटे, 15 घंटे, 25 कुछ pset में घंटे - तुम और सिर्फ पीटने रहे हैं
दीवार के खिलाफ अपने सिर,
और यह सुपर देर रात हो रही है,
लेकिन आप जिस तरह के 90% की तरह pset लिया है,
आप जानते हैं कि आप सिर्फ एक बात नहीं समझ सकते हैं -
/ पारित असफल वास्तव में बढ़त से दूर ले जाता है इस तरह के एक वर्ग के, जहाँ आप सॉर्ट कर सकते हैं
की खुशी ठीक कहते हैं, मैं जानता हूँ कि यह सही नहीं है.
लेकिन मैं इस पर मेरे गधे से काम किया.
मैं जहां यह समाप्त हो गया के साथ बहुत खुश हूँ.
और पारित करने के लिए कि अपेक्षाओं को पूरा / असफल हो जायेगी.
तो यह है कि ध्यान में रखना है.
>> सही सभी.
तो आप में से जो हार्वर्ड वाई - फाई विश्वविद्यालय का उपयोग करने के लिए संघर्ष किया है पता
आप है कि वहाँ एक CS50 SSID है, एक वाई - फाई कनेक्शन है कि चारों ओर तैर
के लिए बेहतर किस्मत हो सकता है.
अगर आप कोशिश करना चाहते हैं - यह एक छोटे विडंबना है कि इस के लिए पासवर्ड है
बेहतर गति के लिए इस को जोड़ने और हमें पता है कि अगर यह बेहतर नहीं है -
एक, दो, तीन, चार, पांच, सभी तरह से करने के लिए है क्योंकि आठ आठ है
पांच से अधिक सुरक्षित है.
तो अगर आप वाई - फाई पासवर्ड की जरूरत है, CS50 यहाँ के लिए wirelessly कनेक्ट.
एक, दो, तीन, चार, पांच, छह, सात, आठ.
CS50 पर पोस्ट पर चर्चा अगर आप अभी भी आंतरायिक कनेक्टिविटी मुद्दों है,
और हम अधिकार है कि इस स्थान के लिए पता दूँगा.
>> सही सभी.
तो आप में से जो प्रशंसक लड़के या लड़कियों के लिए विशेष रूप से एक त्वरित टीज़र,
सभी चीजें एप्पल के.
क्या मैं एक कुछ वर्षों से वापस खोदा इस फाइल यहाँ था, ilock.c, बस
की तरह और अधिक ठोस और अधिक जटिल बनाने और अधिक बुनियादी सी के कुछ
कार्यक्रम हम लिख दिया गया है.
इसलिए मैं इस फाइल को खोला, ilock.c.
यह आज के लिए व्याख्यान पेज पर उपलब्ध है.
बाईं ओर, आप कार्यों की एक लंबी सूची देखेंगे.
तो साथी जो यह लिखा कार्यों का एक बहुत लिखा है,
अधिक से अधिक सिर्फ मुख्य.
वह पुस्तकालयों की एक पूरी गुच्छा यहां इस्तेमाल किया.
और अगर हम स्क्रॉल के माध्यम से शुरू करते हैं, क्या यह वास्तव में बहुत है
1 मुझे विश्वास है, मूल iPhone के लिए दरार.
जब आप मूल iPhone jailbreak चाहता था, जो untether का मतलब
एटी एंड टी और वास्तव में से उस पर विशेष सॉफ्टवेयर स्थापित करने के लिए और बातें करते हैं
एप्पल है कि लोगों को करना नहीं चाहता था -
ठीक है, कोई बाहर बिल्कुल आंकड़ा कैसे वे फायदा उठा सकती है करने के लिए समय ले लिया
सॉफ्टवेयर खराबी, गलतियों, एप्पल के सॉफ्टवेयर में कीड़े,.
और इस तरह ilock.c पैदा हुआ था.
कि अगर आप इसे एक कंप्यूटर पर संकलित और यह एक iPhone है कि पर स्थापित
किया गया था, कहते हैं, एक यूएसबी केबल के माध्यम से आपके कंप्यूटर से जुड़ा है, यह आपको दे देंगे
तुम बहुत ज्यादा अपने iPhone और जाने पर प्रशासनिक या रूट विशेषाधिकारों
जो आप चाहते हैं.
>> और इसलिए वहाँ इस आकर्षक बिल्ली और माउस खेल है और एप्पल के बीच हो गया है
के रूप में वे विशेष रूप से दुनिया के बाकी हिस्सों, कई कंपनियों की तरह, लॉक करने के लिए करने की कोशिश
उनके सामान नीचे इतनी है कि आप इसके साथ ही कर सकते हैं कि वे क्या इरादा है.
लेकिन इस तरह के लोगों के लिए धन्यवाद और कम स्तर की उनकी समझ
विवरण और, इस मामले में, सी प्रोग्रामिंग और परिचित constructs का एक बहुत
कि हम साथ खेलना शुरू कर दिया है, तो आप के लिए वास्तव में का लाभ उठाने में सक्षम हैं
हार्डवेयर में एक तरीके से आप फिट और जरूरी कुछ कॉर्पोरेट इकाई नहीं देखते.
तो उदाहरण के लिए, मुझे पता नहीं यह सब क्या कर रहा है.
लेकिन GetVersion बहुत सरल लगता है.
और यह इस तरह दिखता है एक समारोह में कहा कि इस व्यक्ति ने लिखा है.
एक तर्क के रूप में पूर्णांक के कुछ प्रकार ले लो, कुछ भी वापस नहीं करता, लेकिन
पाश के लिए यहाँ एक और एक के साथ हालत अगर, अगर हालत पाश के लिए प्रकट होता है
तोड़ने के लिए, और किसी भी तरह संस्करण संख्या से संबंधित है.
अगर हम नीचे स्क्रॉल -
इन खोजशब्दों के एक बहुत भले ही नया हो जा रहे हैं, और वहाँ एक
यहाँ कार्यों की बहुत सारी हमने देखा है और कभी नहीं से नहीं देख सकता है कभी
सेमेस्टर के पाठ्यक्रम
दिन के अंत में यह किया गया है कि हम एक ही नियम और तर्क इस प्रकार है
इस प्रकार अब तक खेल रहा है.
तो यह तक भी अपने iPhone 3s या 4s या जल्द ही 5s, इन दिनों दरार पुरानी है,
लेकिन पता है कि यह सब बहुत ज्यादा इस दुनिया से प्राप्त किया गया है कि हम है
में डुबकी लगाई.
>> तो चलो एक छोटे से अधिक सरल उदाहरण पर एक नज़र रखना.
यह एक है, बस कुछ वाक्य रचना के साथ गरम और भी कुछ अन्य डेटा
प्रकार है कि हम के बारे में बात की है, लेकिन वास्तव में सी. में नहीं देखा तो यह है कि एक
फ़ाइल positive1.c बुलाया.
और शीर्ष पर टिप्पणियों के अनुसार, इस बस की मांग है कि एक उपयोगकर्ता प्रदान
धनात्मक संख्या.
तो यह है, जबकि एक पाश है, जो उपयोगकर्ता इंटरैक्टिव के लिए अच्छा है की एक उदाहरण है
प्रोग्राम है जहाँ आप उपयोगकर्ता बता और कुछ करने की जरूरत है.
और अगर वे सहयोग नहीं करते हैं, तो आप उन पर चिल्लाओ या उनके इनपुट अस्वीकार.
बिन्दु में प्रकरण, मैं 19 लाइनों करना 24 इतने लंबे समय के माध्यम से जा रहा हूँ के रूप में उपयोगकर्ता
एक सकारात्मक संख्या दिया मुझे नहीं है.
अब यहाँ इस विस्तार 18 लाइन पर, मैं इस पूरे ऊपर क्यों n की घोषणा
पाशन निर्माण के रूप में 22 लाइन के बगल में सही करने के लिए विरोध मैं कहाँ
वास्तव में परवाह n करने के लिए मिलता है?
हाँ?
[अश्राव्य]
>> डेविड जे मालन: हाँ, तो दायरे से इस मुद्दे.
और आम आदमी की अवधि में, क्या गुंजाइश के लिए संदर्भित करता है?
हाँ?
[अश्राव्य]
डेविड जे मालन: आप एक ज़ोर सा बात कर सकते हैं?
SPEAKER 1: जहाँ आप एक विशेष चर का उपयोग कर सकते हैं.
डेविड जे मालन: बिल्कुल सही.
तुम कहाँ एक विशेष चर का उपयोग कर सकते हैं.
और आम तौर पर, अंगूठे का नियम इस प्रकार अब तक किया गया है कि कुछ की गुंजाइश
चर सबसे हाल ही में घुंघराले ब्रेसिज़ देखा है कि आप द्वारा परिभाषित किया गया है.
और इसलिए इस मामले में, अगर मैं 22 लाइन पर n घोषणा की गलती,
कि लाइन में काम करेगा.
मैं एक int हो, और मैं यह है कि लाइन में 22 चर n में रखा जाएगा.
लेकिन जो कोड की लाइन अब पता नहीं मैं किस बारे में बात कर रहा हूँ?
25 तो, और यह 24 बाहर जाता है, के रूप में अच्छी तरह से है, क्योंकि इस मामले में, यह बाहर फ़ाल्स
घुंघराले ब्रेसिज़.
तो सिर्फ एक बाधा का एक छोटा सा है, लेकिन बहुत आसानी से बस की घोषणा के द्वारा हल
समारोह खुद की चर बाहर.
>> अब आज हम बाद में देखेंगे, तो आप एक कदम और आगे जा सकते हैं.
और तुम भी एक छोटे से आलसी हो सकता है -
और ऐसा नहीं करने के लिए किया जा रहा है सामान्य रूप में सिफारिश की है,
लेकिन आप भी आलसी हो सकता है और दुनिया भर में एक चर डाल दिया, तो बात करने के लिए नहीं
अंदर एक समारोह के अंदर एक पाश की, लेकिन फ़ाइल ही में बाहर,
आप सभी कार्यों का लिखा है, के रूप में मैं 15 लाइन पर यहाँ था.
लेकिन यह आम तौर पर frowned है.
लेकिन पता है यह कभी कभी अन्य समस्याओं के लिए एक समाधान है, के रूप में हम करेंगे
अंततः देखते हैं.
तो अब के लिए, हम इसे इस तरह से छोड़ देंगे.
लेकिन हम देखते हैं कि हम फिर से लिखना कर सकते हैं यह सिर्फ शुरू करने के लिए खुद को एक व्यक्त
थोड़ा अलग है.
>> तो इस कार्यक्रम अभी स्पष्ट होना करने, positive1 है.
मुझे आगे यहाँ जाओ और मेरे टर्मिनल विंडो में positive1 दर्ज करें,.
संकलन, ठीक है.
मैं positive1 चलाने के लिए, हिट दर्ज करने के लिए जा रहा हूँ.
मैं मांग करता हूं कि आप मुझे एक सकारात्मक पूर्णांक दे.
मैं -1 कहूँगा.
ऐसा काम नहीं किया.
99, 0, कि काम करने लगता है.
शायद सबसे कठोर परीक्षण नहीं.
लेकिन कम से कम यह एक अच्छा मानसिक स्वास्थ्य की जांच है कि हम सही रास्ते पर हैं.
तो अब मुझे आगे जाना है और इस के दो संस्करण खुला.
और क्या पहले से ही अलग है?
यह एक ही बात को लागू करता है.
लेकिन क्या स्पष्ट रूप से अलग इस बार के रूप में बाहर कूद है?
हाँ, तो हरे रंग में इस bool.
Gedit हरी bool के रूप में जाना जाता है इस कीवर्ड में प्रकाश डाला गया है,
जो एक डेटा प्रकार है.
यह सी. के सभी संस्करणों में नहीं आया बनाया करता आप एक को शामिल करने की जरूरत है
विशिष्ट पुस्तकालय.
हमारे मामले में, मैं CS50 पुस्तकालय शामिल इतना है कि हम
bool करने के लिए उपयोग किया है.
लेकिन 18 लाइन में, हम एक बूलियन मान आभारी बुलाया है लगता है.
इसलिए मैं इस कुछ भी कहा हो सकता है.
लेकिन मैं यह सिर्फ तरह का कुछ अर्थ अर्थ संप्रेषित करने के लिए आभारी बुलाया.
तो 18 लाइन पर शुरू में, मैं जाहिरा तौर पर आभारी नहीं हूँ क्योंकि
बूलियन आभारी मूल्य 18 लाइन में झूठी initialized है.
और तो यह लगता है कि मैं 21 लाइनों में 23 के माध्यम से किया जाता है क्या है मैं सिर्फ
तरह के अपने तर्क rewritten.
तो कोई कार्यात्मक अलग.
लेकिन 22 लाइन में अब, मैं जांच अगर int उपयोगकर्ता प्रदान की गई है की तुलना में अधिक है
0, तो मैं बस सच करने के लिए आभारी के मूल्य बदल जाते हैं.
और मुझे लगता है कि क्यों करते हो?
क्योंकि लाइन में 25, जाहिरा तौर पर, मैं एक शर्त की जांच करने जा रहा हूँ.
इस लूप करो जबकि आभारी गलत है.
>> तो मैं एक संस्करण के लिए एक विकल्प के रूप में यह प्रस्ताव है क्योंकि यह कम से कम एक है
थोड़ा अधिक सहज है, शायद.
यह एक छोटे से अधिक अंग्रेजी में आधारित है.
तो निम्न करते हैं, जबकि आप आभारी है या नहीं कर रहे हैं जबकि आभारी गलत है.
और इस बार भी, मैं जाहिरा तौर पर उपयोगकर्ता क्या टाइप याद नहीं परवाह नहीं
क्योंकि नोटिस में वहाँ कोई चर n है.
तो वास्तव में, मैं -
वहाँ एक छोटे सफेद झूठ.
कार्यात्मक, कार्यक्रम एक अलग सा है एक बार हम सच की तह तक पहुंचना
ऐसा इसलिए है क्योंकि मैं याद नहीं कर रहा हूँ पता क्या है.
लेकिन मैं यहाँ से प्रदर्शित करने के लिए करना चाहता था भी कि भले ही हम GetInt देखा है और
GetString एक बराबर चिह्न के दाएँ हाथ की ओर पर इस्तेमाल किया जा रहा है इस प्रकार अब तक इतना है कि
हम मूल्य, तकनीकी, कि सख्ती से आवश्यक नहीं है याद है.
यदि आप जो भी कारण के लिए बस के लिए मूल्य को बचाने के लिए नहीं परवाह नहीं है, तुम बस चाहते हैं
मूल्य की जाँच करने के लिए नोटिस, कि हम बस खुले GetInt के रूप में लिख सकते हैं
कोष्ठक, करीब paren.
समारोह में कहा कि एक मूल्य वापस करने के लिए जा रहा है, के रूप में हम कह दिया गया है.
यह एक int तुम्हें देने के लिए वापस जा रहा है.
और यदि ऐसा है तो आप मानसिक रूप से यह हो रहा है लगता है, जब मैं 99 में लिखते हैं, GetInt
99 संख्या देता है.
और अब धारणात्मक, यह मेरे कोड के रूप में हालांकि वास्तव में थे.
तो अगर 99 वास्तव में 0 से अधिक है, तो आभारी सच हो जाता है.
फिर 25 लाइन उह एहसास है, हम कर रहे हैं, क्योंकि अब मैं आभारी हूँ.
और 26 लाइन में हम बस कहना है, सकारात्मक पूर्णांक के लिए धन्यवाद, यह जो कुछ भी
हो हुआ.
>> अब मामूली वाक्यात्मक चीनी यहाँ करते हैं, तो बात करने के लिए.
चलो देखते हैं अगर हम इस तीसरे और अंतिम विचरण के साथ यह 25 लाइन को साफ कर सकते हैं
positive3 में.
इतना ही फर्क है क्या अब कोड की पंक्ति है नोटिस?
हाँ, इतना 25.
और हम वास्तव में इस चाल नहीं देखा है अभी.
लेकिन हम सोमवार विस्मयादिबोधक बिंदु है, जो कि denotes देखा?
तो नहीं नकार, या.
तो एक बूलियन मान ले और इसकी कीमत फ्लिप.
यह सच है गलत हो जाता है.
झूठा सच हो जाता है.
तो यह मैं प्रस्ताव करता हूं, यहां तक ​​कि एक छोटे से अधिक का एक तरीका सहज
कोड लिखने क्योंकि मैं अभी भी गलत करने के लिए आभारी इनिशियलाइज़.
मैं अभी भी निम्न कार्य करें.
मैं सच करने के लिए आभारी सेट जब समय आता है.
लेकिन अब आप वास्तव में सिर्फ मौखिक रूप से सही करने के लिए छोड़ दिया कोड अनुवाद कर सकते हैं,
जबकि नहीं आभारी.
क्योंकि धमाके, या विस्मयादिबोधक बिंदु नहीं की धारणा इतनी अर्थ है, जबकि
नहीं आभारी हूँ.
>> तो फिर, हम से प्रति किसी भी नई अवधारणाओं को नहीं शुरू की है.
हम Booleans के बारे में बात की है जब हम खरोंच के साथ खेला.
लेकिन अब पता है हम बस में हमारे कोड लेखन शुरू कर सकते हैं
कई अलग अलग तरीकों से.
तो विशेष रूप से pset1 में अगर, आप के लिए बाहर करने के लिए एक तरह से समझ के लिए संघर्ष की तरह कर रहे हैं
कुछ प्रोग्राम लिखने, बाधाओं क्योंकि वहाँ किसी भी हो जा रहे हैं तुम भाग्य में हैं
समाधान है कि आप पर हो सकता है की संख्या.
उदाहरण के लिए, यह भी कार्यक्रमों का सरलतम के लिए सिर्फ तीन है.
सही सभी.
और अब सोमवार को याद करते हैं, हम वापसी मान के साथ इस नोट पर छोड़ दिया है.
तो बहुत पहले समय के लिए, हम एक प्रोग्राम लिखा है कि सिर्फ मुख्य नहीं है,
यह भी अपने स्वयं के कस्टम समारोह है कि मैं यहाँ लिखा है.
तो लाइन में 34 के माध्यम से 31, मैं एक घन समारोह क्रियान्वित किया है.
यह जटिल नहीं है.
यह सिर्फ एक बार एक बार, इस मामले में.
लेकिन इसके बारे में महत्वपूर्ण बात यह है कि मैं एक के रूप में इनपुट ले जा रहा हूँ और
मैं एक बार के रूप में उत्पादन में लौट रहा हूँ, एक बार एक.
>> तो अब मैं करने की क्षमता है, बहुत पसंद है मैं printf अकेले के साथ करने के लिए प्रयोग किया जाता है, के लिए फोन
घन समारोह बुला द्वारा इस समारोह में.
और घन समारोह कुछ इनपुट लेता है.
और घन समारोह कुछ उत्पादन देता है.
और इसके विपरीत, printf सिर्फ कुछ किया.
यह कुछ है कि हम के बारे में परवाह नहीं वापस नहीं किया था - भले ही एक के रूप में,
एक तरफ, यह एक मूल्य वापसी करता है.
तुम सिर्फ आम तौर पर इसे अनदेखा.
Printf सिर्फ कुछ किया.
यह स्क्रीन करने के लिए मुद्रण के एक पक्ष प्रभाव था.
यहाँ इसके विपरीत करके, हम घन समारोह है, जो
वास्तव में कुछ देता है.
>> तो यह आम तौर पर है -
इस के साथ परिचित लोगों के लिए, यह एक काफी स्पष्ट विचार है.
लेकिन उन कम जानकारी में गुजर रहा है और हो रही है की इस विचार के साथ परिचित के लिए
वापस outputs, चलो बस कुछ सुपर सरल की कोशिश.
आरामदायक किसी मंच पर संक्षेप में आ रहा है?
तुम तुम पर एक कैमरा के साथ आराम से, के रूप में अच्छी तरह से हो सकता है.
हाँ.
ठीक है, तुम्हारा नाम क्या है?
केन: केन.
डेविड जे मालन: केन.
सही है, केन.
पर आते हैं.
तो केन तरह के एक समारोह में यहाँ होने जा रहा है.
और आगे जाना है और यह नहीं है.
चलो एक छोटे से कल्पना.
आपसे मिलकर अच्छा लगा.
केंद्र स्तर पर आपका स्वागत है.
सही सभी.
चलो इस बटन यहाँ मारा.
सही सभी.
तो यहाँ आप एक आधुनिक चॉकबोर्ड है.
और मैं क्या कर रहा हूँ मुख्य समारोह है, उदाहरण के लिए, है.
और मैं अपने हाथ में एक iPad नहीं है.
ठीक है, वास्तव में, कि यह नहीं कह सकता है - मैं वास्तव में कैसे करने के लिए नहीं याद है.
मैं वास्तव में अच्छा लिखावट नहीं है.
और इसलिए, मैं तुम मेरे लिए स्क्रीन पर कुछ प्रिंट करने के लिए करना चाहते हैं.
>> तो मैं मुख्य कार्यक्रम किया जा रहा हूँ.
और मैं तुम्हें करने के लिए जा रहा हूँ यह मेरी चिकन खरोंच में लेखन के द्वारा यह कहना है और
तो आप एक इनपुट गुजर रहा है.
तो मूर्ख के रूप में हालांकि इस अभ्यास है, कार्यों की धारणा और एक फोन
समारोह और इस के लिए नीचे एक समारोह वास्तव में फोड़े लौटने.
मैं मुख्य हूँ.
मैं सिर्फ printf स्क्रीन पर लिखा है ("कुछ").
मैं इस कार्यक्रम चल रहा है.
और जैसे ही रूप में printf बुलाया जाता है, यह एक तर्क लेता है या एक पैरामीटर,
कभी - कभी
दोहरे उद्धरण चिह्नों के बीच.
यहाँ है कि तर्क है.
मैं यह केन के लिए जा रहा हूँ.
अब वह एक काले बॉक्स कि जाहिरा तौर पर पहले साल के कुछ नंबर लिखा है
ही जानता है कि कैसे स्क्रीन पर चीजों को मुद्रित करने के लिए.
>> तो निष्पादित,.
यह बुरा नहीं है.
तो, बहुत अच्छा.
तो अब केन क्रियान्वित किया जाता है.
क्या वह मुझे कुछ हाथ वापस करने की आवश्यकता है?
तो हम इस प्रकार अब तक नहीं देखा है.
फिर, printf वास्तव में एक संख्या में वापसी करता है.
लेकिन हम अब के लिए कि उपेक्षा जा रहे हैं क्योंकि हम इसे इस्तेमाल कभी नहीं किया है.
इसलिए कि यह केन के लिए है.
और इसलिए अब मुख्य वापस निष्पादित करने के लिए आता है -
मुख्य कार्यक्रम के नियंत्रण पर फिर से लेता है, क्योंकि कोड की है कि लाइन
printf क्रियान्वित किया जाता है.
और हम हमारे को क्रियान्वित करने जो अन्य लाइनों वहाँ के तरीके के बारे में जाना.
>> सही सभी.
तो अब हम एक से थोड़ा अलग उदाहरण की कोशिश.
और इस समय यहाँ, चलो पहले स्क्रीन यहाँ स्पष्ट.
और इस बार, हम cubing समारोह करूँगा.
लेकिन इस बार, मैं एक निर्गम मूल्य की उम्मीद है.
तो चलो आगे बढ़ो और इस करना.
तो अब मैं कोड की एक पंक्ति है कि कहते हैं x = घन (x).
तो वास्तव में let's
कोड की लाइन, याद है, इस तरह दिखता है.
x = घन (x).
तो यह कैसे काम करने जा रहा है?
तो चलो आगे बढ़ो और आप फिर से एक सफेद स्क्रीन दे.
और मैं अब एक्स के मूल्य नीचे लिखने के लिए है, जो इस समय के लिए जा रहा हूँ
समय होता है, कहते हैं कि, 2, इसे साधारण रखना.
तो मैं नीचे कागज के एक टुकड़े 2 के मूल्य पर लिखा है,
जो मेरे मूल्य x है.
मैं इसे केन हाथ.
केन: मैं अभी जवाब लिखने के लिए?
डेविड जे मालन: हाँ, चलो बस जवाब लिखना.
ठीक है.
और अब वह मुझे कुछ वापस है.
तो -
एकदम सही है.
Segue अच्छा लगा.
>> तो अब वह मेरे हाथ वापस इस मामले में 8 के मूल्य,.
और मैं इसके साथ क्या करते हो?
खैर, असल में, चलो देखते हैं.
यह ठीक हो जाओ.
क्या मैं इसके साथ क्या करने जा रहा हूँ?
अब मैं यह मान ले और वास्तव में यह उन लोगों में स्टोर करने के लिए जा रहा हूँ
स्मृति में एक ही टुकड़े.
लेकिन सूचना, मैं यहाँ संघर्ष के तरह कर रहा हूँ.
मैं थोड़ा उलझन में हूँ क्योंकि मैं वास्तव में जहां एक्स का मान लिखने?
क्योंकि मैं अभी क्या किया है शारीरिक रूप से हाथ है केन कागज का एक टुकड़ा
कि 2 मूल्य था, जो एक्स था.
और वास्तव में, ठीक है कि क्या होता है.
तो यह पता चला है कि जब आप एक समारोह कहते हैं, और आप एक बहस में पारित
"हैलो दुनिया" की तरह है या आप 2 की तरह एक बहस में गुजरती हैं, आम तौर पर, आप कर रहे हैं
कि तर्क की एक प्रति में गुजर रहा है.
और तो बस के रूप में मैं नीचे लिखा 2 संख्या यहाँ और केन को सौंप दिया, कि चाहिए
मतलब है कि मैं अभी भी मूल्य 2 की एक प्रति कहीं है.
क्योंकि वास्तव में, अब है कि मैं वापस 8 मूल्य मिल गया है, मैं में वापस जाने की जरूरत है
राम और वास्तव में नीचे 8 लिखने जहां मैं एक बार में 2 नंबर था.
>> तो नेत्रहीन सचमुच में पारित करने के इस धारणा याद
मूल्य की एक प्रति है.
केन अपनी बात करता है, मुझे वापस कुछ हाथ - इस मामले में,
8 की तरह एक मूल्य.
और फिर मैं करने के लिए है कि मूल्य के साथ कुछ करना है मैं अगर
इसे रखने के आसपास चाहते हैं.
तो इस सब के सब भी लंबे समय से पहले परिचित हो जाएगा.
तुम इतना इस डेमो के लिए यहाँ धन्यवाद, केन.
सही सभी.
बहुत अच्छी तरह से किया जाता है.
तो चलो देखते हैं कि कैसे अंततः समारोह के कुछ से संबंधित
बुला रही है कि हम यहाँ कर दिया गया है.
तो मुझे आगे जाना है और हमें वापस लाने cubing उदाहरण के लिए यहाँ.
नोटिस और कहा कि अगर हम वास्तव में इस आगे ले शुरू करना चाहते हैं, हम जा रहे हैं
करने के लिए तथ्य यह है कि संख्या x है कि में पारित किया जा रहा है के प्रति जागरूक हो
यहाँ क्या वास्तव में समारोह में पारित किया जा रहा है से अलग है.
तो फिर, इस कॉपी द्वारा पारित करने के लिए काफी बनने जा रहा है
बस एक पल में सार्थक.
>> तो चलो कुछ है कि बहुत सही अभी तक काम नहीं करता है पर एक नज़र रखना.
मुझे आगे जाना है और एक तीसरे छोटी गाड़ी उदाहरण खोलने के लिए जा रहा हूँ, जो
स्वभाव से त्रुटिपूर्ण है.
और यह buggy3 कहा जाता है, और यह एक गमागमन समारोह लागू.
तो यहाँ हम एक मुख्य समारोह है कि एक्स और वाई मनमाने ढंग से प्रारंभ
1 और 2, क्रमशः.
हम GetInt का उपयोग कर सकता है, लेकिन हम सिर्फ एक सरल व्यायाम की जरूरत है.
तो यह 1 और 2 के रूप में हार्ड कोडित है.
लाइनों 21 और 22 में, हम जाहिरा तौर पर एक्स और वाई, एक प्रति पंक्ति प्रिंट.
फिर, 23 लाइन पर, मैं दावा है कि मैं इन मूल्यों गमागमन रहा हूँ, डॉट, डॉट, डॉट.
मैं जाहिरा तौर पर 24 लाइन में एक समारोह स्वैप बुलाया फोन
कि दो तर्क लेता है.
यह पूरी तरह से कानूनी है कार्यों के लिए दो तर्क ले.
हमने देखा है printf यह पहले से ही कर.
तो स्वैप जाहिरा तौर पर एक्स और वाई लेता है.
और जैसा कि इसके नाम से पता चलता है, मुझे आशा है कि यह करने के लिए जा रहा है
इन दो मूल्यों स्वैप.
तो फिर मैं 25 लाइन पर दावा, बदली.
और मैं इस धारणा के तहत एक्स और वाई पुनर्मुद्रण कि
वे वास्तव में बदली किया गया है.
लेकिन अगर मैं वास्तव में इस कार्यक्रम को चलाने -
मुझे एक टर्मिनल विंडो खोलने.
मुझे buggy3 बनाने.
जैसा कि नाम से पता चलता है, यह अच्छी तरह से खत्म करने के लिए नहीं जा रहा है.
क्योंकि जब मैं हिट दर्ज करें, सूचना है कि एक्स 1 है.
y 2 है.
और अभी तक इस कार्यक्रम के अंत में, वे अभी भी कर रहे हैं, वास्तव में, एक ही.
>> अभी केन के साथ, वास्तव में क्या हो रहा है तो प्रदर्शन पर आधारित है?
ठीक है, चलो इस स्वैप समारोह में गोता.
यह सुपर कम है.
यह केवल लंबे समय से कोड की कुछ लाइनों.
लेकिन मौलिक सरल कहानी के आधार पर समस्या क्या है बताया
यहाँ ऊपर केन के साथ?
स्वैप क्यों टूट गया है?
[अश्राव्य]
बिल्कुल सही.
तो हम एक प्रतिलिपि भंडारण कर रहे हैं, ही नहीं चर.
दूसरे शब्दों में, स्वैप जाहिरा तौर पर दो तर्क, एक int लेता है.
और यह मनमाने ढंग से ए और बी कहा जाता है.
और यहाँ, मैं एक्स और वाई, जो क्रमशः 1 और 2 में पारित कर दिया है.
लेकिन मैं सचमुच एक्स में नहीं जा रहा हूँ.
मैं सचमुच y में पारित नहीं कर रहा हूँ.
मैं x और y की एक प्रतिलिपि की एक प्रति गुजर रहा हूँ.
यह लगभग की तरह है के रूप में हालांकि आप नकल और मूल्यों है कि स्वैप में चिपकाया
आप यह वास्तव में हेरफेर करने के लिए करना चाहते हैं.
तो अगर है कि मामले में, जब मैं, कार्यक्रम, निष्पादित शुरू
35 लाइन, तो 36 -
जब मैं कहानी में इस बिंदु पर 37 लाइन के लिए मिलता है, एक के मूल्य क्या है?
कहानी में इस बिंदु पर, रेखा 37, क्या इस बिंदु पर एक मूल्य है?
तो यह सिर्फ 1 होना चाहिए.
सही है?
क्योंकि एक्स में पहले तर्क के रूप में पारित किया गया था.
और इस समारोह में सिर्फ मनमाने ढंग से अपनी पहली तर्क बुला रहा है,.
इसी प्रकार y, दूसरा तर्क है.
और यह सिर्फ मनमाने ढंग से दूसरा तर्क ख बुला रही है.
>> अब इस विरोधाभास वास्तव में काफी बस समझाया.
इसके बारे में सोचो.
हममें से कोई भी व्यक्ति जो printf लिखा था मिले हैं.
तो निश्चित रूप से, वह या वह कोई विचार हमारे चर क्या 30 साल बाद जा रहे हैं
कहा जा.
तो तुम क्या चर में कॉल के बीच एक अंतर हो गया है
कार्य आप लिख रहे हैं और क्या आप कार्य आप कर रहे हैं में चर कॉल
या फोन का इस्तेमाल करते हैं.
तो दूसरे शब्दों में, मैं एक्स और वाई के रूप में अपने चर लिखा है.
लेकिन अगर किसी और स्वैप समारोह में लिखा था, निश्चित रूप से वह या वह
पता नहीं होगा कि क्या अपने चर के लिए कहा जा जा रहे हैं.
तो एहसास है कि इस वजह से आप के नाम के इस द्वंद्व है.
तकनीकी तौर पर, मैं संयोग से यह कर सकता है.
लेकिन वे अभी भी प्रतियां के रूप में पारित किया जाएगा.
यह सिर्फ एक संयोग है aesthetically कि व्यक्ति जो लिखा होगा
स्वैप एक ही नाम का इस्तेमाल किया था.
>> सही सभी.
तो कहानी में इस बिंदु पर, 37 लाइन, एक 1 है.
बी 2 है.
और अब मैं उन्हें स्वैप के लिए आगे बढ़ें.
खैर सब से पहले, मुझे वास्तव में यह बहुत अधिक बस.
मैं नहीं जानता कि कोड के उन तीन लाइनों क्या कर रहे थे.
मुझे सिर्फ यह करना है.
ख एक हो जाता है.
एक ख हो जाता है.
हो गया.
ऐसा क्यों है कि टूटी हुई है, तार्किक?
यह सहज बात की तरह है, है ना?
तो एक ख हो जाता है.
और बी एक हो जाता है.
लेकिन समस्या यह है कि जैसे ही लाइन 37 निष्पादित करता है, क्या है
ए और बी के मूल्य है?
एक ही है, 1.
क्योंकि तुम clobbered है, इतनी बात करने के लिए, तुम ख बदल दिया है करने के लिए एक बराबर है.
तो एक बार 37 लाइन मार डाला है, जो बढ़िया है.
अब आप इस समारोह की संख्या 1 के अंदर की दो प्रतियां है.
तो जब आप लाइन 38 में कहते हैं, एक ख हो जाता है, ठीक है, आप की तरह खराब कर रहे हैं.
क्योंकि आप सिर्फ 1 1 बताए रहे हैं.
आप किस तरह के मूल्य के बारे में परवाह खो दिया है.
>> तो इस के मूल संस्करण में नोटिस, जो मैंने किया.
मैं बजाय कोड की तीसरी पंक्ति है कि इस तरह से देखा था.
मैं एक अस्थायी चर घोषित tmp एक बहुत ही आम नाम है
एक अस्थायी चर के लिए.
यह एक int है क्योंकि यह मैच मैं क्या करने की एक प्रतिलिपि बनाना चाहते है.
मैं tmp की एक अंदर की एक प्रति की दुकान. तो एक बार 37 लाइन मार डाला गया है,
एक के मूल्य है -
त्वरित विवेक की जाँच करें -
1.
ख के मूल्य 2 है.
और tmp के मूल्य भी है 1.
तो अब मैं 38 लाइन को अंजाम.
तो एक बार 38 लाइन कार्यान्वित, ख के मूल्य पर लेता है.
और बी 2 था.
तो अब एक 2 है.
तो कहानी में इस बिंदु पर, एक 2, बी 2,
और tmp 1 है.
तो अब तार्किक, हम कर सकते हैं ख में बस खटखटाने से tmp मूल्य.
और हम कर रहे हैं.
>> तो हम उस समस्या का हल है.
दुर्भाग्य से, जब मैं इस रूप में इस कार्यक्रम को चलाने, यह वास्तव में स्वैप नहीं करता
कोई भी मान.
लेकिन स्पष्ट हो, क्यों?
मैं बस एक पल पहले से तार्किक समस्या तय.
लेकिन फिर, अगर मैं इस कार्यक्रम को चलाने, एक्स और वाई के अंत तक अपरिवर्तित ही रहेंगे
प्रोग्राम निष्पादन.
[अश्राव्य]
डेविड जे मालन: तो हम कुछ भी नहीं लौटे हैं.
तो यह सच है.
लेकिन यह निकलता है वहाँ एक समस्या का एक सा है क्योंकि इस प्रकार अब तक,
हम एक ही बात पर लौटने में सक्षम किया गया है एक बात है.
और इस सी. प्रतिबंध तुम ही वास्तव में एक मान सकते हैं,
जो मामले में, मैं यहाँ अटक की तरह कर रहा हूँ
क्योंकि मैं एक्स के नए मूल्य लौट सकता है या मैं वापसी कर सकता है
y के नए मूल्य.
लेकिन मैं दोनों वापस चाहते हैं.
तो यहाँ लौट रहा है सरल समाधान नहीं है.
लेकिन समस्या यह मौलिक क्यों है?
क्या हम वास्तव में बदली है?
एक और ख.
लेकिन एक और ख एक्स और वाई, जिसका मतलब है कि हम सिर्फ यह सब किया की प्रतियां
काम - हम सिर्फ तीन मिनट की तरह खर्च स्वैप के बारे में बात कर रहे
समारोह और इन चर के सभी तीन.
और कि अलगाव में महान है, पूरी तरह से सही है.
लेकिन एक और ख गुंजाइश ही इन लाइनों में यहाँ है.
तो पाश के लिए एक बस की तरह, यदि आप एक पूर्णांक की घोषणा मैं अंदर के लिए
पाश - इसी तरह, अगर आप घोषणा कर रहे हैं एक और ख एक समारोह के अंदर है कि
आपने लिखा है, वे केवल कि समारोह के वैध अंदर कर रहे हैं.
जो के रूप में जल्द ही के रूप में स्वैप क्रियान्वित किया जाता है का मतलब है और हम करने के लिए 24 लाइन से जाना
लाइन 25 x और y बिल्कुल नहीं बदला है.
तुम सिर्फ समय की एक पूरी बहुत चर की प्रतियां गमागमन बर्बाद किया.
>> तो यह पता चला है कि इस समाधान वास्तव में गैर स्पष्ट है.
यह काफी मान देने के लिए पर्याप्त नहीं है क्योंकि हम कर सकते हैं
केवल एक मूल्य वापसी.
और मैं वास्तव में एक ही समय में दोनों एक्स और वाई स्वैप करना चाहती.
तो हम यह करने के लिए वापस आ जा रहे हैं.
लेकिन अब के लिए एहसास है, कि इस मुद्दे को मौलिक तथ्य से निकला
कि एक और ख प्रतियां हैं.
और वे अपने स्वयं के दायरे में हैं.
खैर, कुछ रास्ते में इस को हल करने की कोशिश करते हैं.
मुझे वास्तव में यहाँ वापस स्क्रॉल करें और खोलने, चलो कहते हैं, एक चौथा variant
इस बात का, buggy4.
और क्या इस बारे में?
यह एक समान है लेकिन सरल समस्या को देखने के लिए इससे पहले कि हम पर एक चाकू ले
इसे हल.
इस कार्यक्रम के वेतन वृद्धि कहा जाता है.
और यह जाहिरा तौर पर 18 लाइन में 1 एक एक्स पूर्णांक initializes.
मैं तो दावा है एक्स 1 है.
मैं तो incrementing दावा, डॉट, डॉट, डॉट.
मैं तो वेतन वृद्धि कहते हैं.
लेकिन फिर 22 और 23 लाइनों में, मैं दावा यह incremented गया है.
मैं दावा x अब जो कुछ भी है, 2 संभाव्यतः.
>> लेकिन इस कार्यक्रम छोटी गाड़ी है.
समस्या क्या है?
हाँ?
[अश्राव्य]
डेविड जे मालन: बिल्कुल सही.
तो x 18 लाइन पर स्पष्ट रूप से घोषित किया गया है.
कि मुख्य घुंघराले ब्रेसिज़ के अंदर है.
यहाँ इतना सरल जवाब है कि, अच्छी तरह से, एक्स यहाँ मौजूद है.
यह 32 लाइन में मौजूद नहीं है.
तो इस कार्यक्रम वास्तव में भी संकलन नहीं होगा.
संकलक, जब मैं इस कोड संकलन की कोशिश करो, मुझ पर चिल्लाना जा रहा है
कुछ अघोषित पहचानकर्ता या उस प्रभाव के लिए कुछ के बारे में.
वास्तव में, हम कोशिश करते हैं.
यह buggy4 बनाने के लिए है.
वहाँ यह है.
32 लाइन में अघोषित पहचानकर्ता एक्स का प्रयोग करें.
और वास्तव में, चलो आज यहां स्पष्ट रूप से इतना है कि इस में उपयोगी है
कार्यालय समय और घर पर.
सूचना है कि यह एक छोटी cryptically लिखा है.
लेकिन तथ्य यह है कि बजना है हम पर चिल्लाया, कह रही है
buggy4.c: 32:5, वास्तव में उपयोगी है.
इसका मतलब यह है कि त्रुटि चरित्र पांच की स्थिति में 32 लाइन पर है.
एक, दो, तीन, चार, पांच, तो.
यह वास्तव में है, जहां समस्या है.
और भी घंटे कार्यालय में और घर में मन में रखने के लिए, मैं भाग्यशाली यहाँ हूँ.
मैं एक गलती की है.
यह तय करने के लिए अपेक्षाकृत आसान होने जा रहा है.
लेकिन अगर आप एक पूरे भारी त्रुटि संदेश, फिर से पूर्ण स्क्रीन मिलता है,
एहसास है कि नीचा एक बस के लक्षण हो सकता है
सर्वोच्च वाले.
तो हमेशा ऊपर से नीचे से नीचे अपने कीड़े का पीछा.
क्योंकि वहाँ सिर्फ एक डेज़ी श्रृंखला प्रभाव हो सकता है कि आप सुझाव है
रास्ता अधिक समस्याओं की तुलना में आप वास्तव में क्या है.
>> तो हम यह कैसे तय अगर अपने लक्ष्य के लिए एक्स वेतन वृद्धि कर सकता है?
वह क्या है?
ठीक है.
तो हम एक्स वैश्विक कर सकते हैं.
चलो शॉर्टकट है कि मैं के बारे में पहले चेतावनी दी है.
लेकिन बिल्ली, हम सिर्फ एक जल्दी ठीक की जरूरत है.
तो चलो बस int x यहाँ का कहना है.
कि x वैश्विक बनाता है.
तो अब मुख्य इसे करने के लिए उपयोग किया है.
वेतन वृद्धि और इसे करने के लिए उपयोग किया है.
और इसलिए मुझे आगे जाना है और अब यह संकलन.
दर्ज करें, buggy4 बनाओ.
संकलन अब लगता है.
चलो buggy4 चलाने के लिए, और यह वास्तव में काम करने लगता है.
अब यह इन बातों में से एक है -
के रूप में मैं कहता हूँ, मैं ऐसा नहीं कर के रूप में है, के रूप में मैं बस यहाँ किया है.
क्योंकि सामान्य रूप में, हमारे कार्यक्रमों को और अधिक दिलचस्प हो जा रहे हैं और
बहुत इस से लंबी है.
और अगर अपने जीवन की समस्याओं का समाधान सिर्फ आह, सभी डाल
अपनी फ़ाइल के शीर्ष पर चर, बहुत जल्दी कर कार्यक्रमों मिल
horrifically प्रबंधन के लिए मुश्किल है.
यह कठिन हो जाता है करने के लिए लगता है कि नए चर नाम.
यह कठिन हो जाता है समझ में चर क्या क्या कर रहा है.
>> और तो सामान्य रूप में, यह एक अच्छा समाधान नहीं है.
तो यह बेहतर करते हैं.
हम एक वैश्विक चर यहाँ का उपयोग नहीं करना चाहती.
मैं x वेतन वृद्धि करना चाहते हैं.
तो मैं स्पष्ट रूप से कर सकता था -
दिन के अंत में, यह एक मूर्ख कहानी की तरह है क्योंकि हम सिर्फ यह करना है.
लेकिन अगर मुझे लगता है कि ऑपरेटर के बारे में पता है, नहीं किया था, या मैं की अनुमति नहीं थी
यह मुख्य में ही बदलने के लिए, और कैसे मैं यहाँ पर केन लागू कर सकता है, यह
समय घन लेकिन वेतन वृद्धि करने के लिए नहीं है?
मैं इस बात को कैसे यहाँ बदल?
हाँ.
[अश्राव्य]
डेविड जे मालन: ठीक है, अच्छा है.
तो मैं एक्स में क्यों पास नहीं है?
और फिर बजाय इसे वापस, मैं सिर्फ x + 1 वापसी करते क्यों नहीं करते हैं?
अब, एक जोड़े को और अधिक काम करने के लिए यहाँ बदल दिया है.
मैं सही रास्ते पर हूँ.
मैं और क्या जरूरत tweak करने के लिए?
किसी और ने.
हाँ?
[अश्राव्य]
डेविड जे मालन: मैं वेतन वृद्धि की वापसी प्रकार बदलने की जरूरत है
क्योंकि यह शून्य नहीं है.
शून्य का मतलब है कुछ भी नहीं लौटा जा रहा है.
लेकिन स्पष्ट रूप से, अब यह है.
तो यह आवश्यकताओं के साथ जो कुछ भी अनुरूप होना int बदलने के लिए
मैं वास्तव में लौट रहा हूँ.
>> अब कुछ और अभी भी यहाँ छोटी गाड़ी है.
हाँ?
[अश्राव्य]
डेविड जे मालन: तो मैं एक्स वेतन वृद्धि की जरूरत है?
[अश्राव्य]
डेविड जे मालन: आह, तो मैं एक्स पारित करने की आवश्यकता है.
तो मैं यहाँ यह सब करने की जरूरत है.
प्रोटोटाइप तो, मैं इस बदलने के लिए यहाँ है.
तो यह एक int बन गया है.
यह बन गया है -
हम्म.
मैं वास्तव में एक बग यहाँ है.
चलो एक यह पहली तय.
यह वास्तव में क्या होना चाहिए?
तो यह एक int कुछ हो गया है.
यह एक्स हो सकता है.
लेकिन स्पष्ट रूप से, अगर आप अपने चर एक्स के सभी बुला शुरू, इसे पाने के लिए जा रहा है
और कम से कम स्पष्ट है जो है.
इसलिए चलो बस मनमाने ढंग से मेरे लिए एक अलग नामकरण परिपाटी का चयन
सहायक कार्यों, कार्यों मैं लिख रहा हूँ.
हम इसे एक फोन करता हूँ.
या हम यह कह सकते हैं - चलो कहते हैं यह करने के लिए और भी अधिक स्पष्ट हो even_number.
तो फिर मैं वापस जो संख्या 1 से अधिक है.
और अब मैं एक दूसरी बात बदलने के लिए यहाँ और एक
अन्य यहाँ बात.
क्या मैं 21 लाइन पर पहली बार बदलने की है?
मैं यह एक्स के लिए आवंटित है.
इसलिए मैं सिर्फ वेतन वृद्धि एक्स नहीं कह सकते.
मैं पर एक्स का मान बदलने के द्वारा जवाब याद करने की जरूरत है
बाएं हाथ की ओर.
और भले ही एक्स पर अब छोड़ दिया और सही है, कि पूरी तरह से ठीक है क्योंकि
दाहिने हाथ की ओर पहले से मार डाला जाता है तो हो जाता है छोड़ दिया में plopped
हाथ की बात है, इस मामले में एक्स.
और फिर अंत में, यह अब एक आसान तय है.
यह सिर्फ क्या नीचे मैच चाहिए.
इंटरनैशनल संख्या.
>> सही सभी.
तो एक सच में बेवकूफ समारोह के लिए परिवर्तन की एक पूरी गुच्छा.
लेकिन चीजें है कि हम तेजी से करना चाहती हूँ की प्रतिनिधि.
तो buggy4 बनाने.
मैं कहीं खराब कर दिया है.
हे भगवान.
में पांच गलतियों, जैसे, एक छह लाइन कार्यक्रम.
तो क्या 18 लाइन पर गलत है, चरित्र 5?
सही सभी.
तो मैं इस int की घोषणा की है.
सही सभी.
तो देखते हैं, अन्य त्रुटियों की एक पूरी गुच्छा.
हे भगवान.
19, 18, 21.
लेकिन फिर, चलो बस स्क्रीन साफ ​​-
नियंत्रण यहाँ एल - और फिर से चलाने के बजना.
तो पाँच समस्याओं वास्तव में सिर्फ एक है कि.
तो अब चलो buggy4 चलाने के लिए, दर्ज करें.
वाह.
एक्स सही ढंग से incremented गया है.
>> सही सभी.
कैसे संख्या वेतन वृद्धि पर कोई सवाल?
हाँ?
2 स्पीकर: ऐसा क्यों है कि आप सिर्फ चर में संख्या एक्स बदल सकते हैं
नाम है और यह पता चल जाएगा कि तुम क्या मतलब है?
: डेविड जे मालन अच्छा सवाल है.
कैसे यह है कि मैं सिर्फ संख्या एक्स बदल सकते हैं और कार्यक्रम का पता चल जाएगा
तुरंत?
तो फिर, इस अमूर्त रूप में लगता है.
तो अगर मैं मुख्य हूँ और केन वृद्धिशील है, स्पष्ट रूप से, मैं नहीं परवाह नहीं
अपने iPad केन क्या कहता है.
मुझे परवाह नहीं है कि वह जो कुछ भी है कि अपने कार्यान्वयन के साथ क्या करना है कॉल
इस सुविधा का.
तो यह एक कार्यान्वयन के विस्तार है कि नहीं मैं, मुख्य,
के बारे में परवाह है.
तो बस बदलने से उस लगातार समारोह के अंदर, यहाँ संख्या
और यहाँ संख्या, यह सब इतने लंबे समय के रूप में मैं recompile लेता है.
यह सॉर्ट के अगर आप के बारे में लगता है कि हम में से कई, ड्राइवर के साथ आप में से उन लोगों के
जो लाइसेंस संचालित है, या यदि आप एक कार में भी प्रेरित किया है -
हम में से अधिकांश पता नहीं कैसे एक कार के हुड के नीचे काम करता है.
और सचमुच, अगर आप डाकू, हम में से ज्यादातर के खुले खुद को शामिल
जा रहे हैं के लिए वास्तव में नहीं जानते हैं कि हम क्या देख रहे हैं.
की तरह की तरह आप इस सही तरह सामान के साथ अब महसूस हो सकता है.
लेकिन हम वास्तव में कैसे कार काम करता है परवाह नहीं है.
हम परवाह नहीं है क्या छड़ और पिस्टन के अंदर और केबल के सभी
कार वास्तव में कर रहे हैं.
>> तो तुम क्या पिस्टन फोन की तरह कुछ कोई फर्क नहीं पड़ता
यहाँ इस मामले में.
ही विचार है.
हाँ?
[अश्राव्य]
डेविड जे मालन: यदि चर xa पल की अधिक का उपयोग करता है पहले थे,
आप, प्रोग्रामर, उन्हें हर जगह बदलना होगा.
या आप सचमुच फ़ाइल मेनू, कर सकता है और फिर ढूँढ़ें / बदलें
ऐसा ही कुछ है.
लेकिन आप उन परिवर्तनों को अपने आप को बनाने के लिए जा रहे हैं.
आप लगातार होना है.
[अश्राव्य]
डेविड जे मालन: यहाँ की तरह एक विशेष आदेश?
यदि यह दूसरे नंबर int?
हाँ.
तो आदेश मायने रखती है जब आप समारोह में बुला रहे हैं.
तो अगर मैं वेतन वृद्धि को बुला रहे थे यहाँ कुछ अल्पविराम कुछ के साथ,
वहाँ एक प्रत्यक्ष मानचित्रण है.
पहला चर, जो कुछ भी यह कहा जाता है, पहले की एक कॉपी किया जाता है
यहाँ पर तर्क.
क्षमा करें, यह एक कोष्टक नहीं होना चाहिए.
एक दूसरे के साथ दूसरा तर्क लाइनों.
>> इतने में आदेश, हाँ, मायने रखती है.
सही सभी.
खेद है कि मैं एक लंबे समय के लिए वहाँ पाने के लिए जिस तरह से लिया.
अन्य प्रश्न?
सही सभी.
तो चलो देखते हैं अगर हम वास्तव में क्या हो रहा है की एक तस्वीर रंग नहीं कर सकते हैं
यहाँ हुड के नीचे है, तो बात करो.
तो यह एक आयत है कि आपके कंप्यूटर की मेमोरी का प्रतिनिधित्व हो सकता है.
तो भी अगर आप पता नहीं कैसे स्मृति काम करता है या रैम कैसे काम करता है, कम से कम
मान लेते हैं कि आप इसे bunches इन दिनों है.
तुम यह मेगाबाइट मिल गया है.
आप के गीगाबाइट मिल गया है.
और हम सप्ताह शून्य से पता है कि क्या सिर्फ एक बाइट है?
8 बिट.
ठीक है, तो 8 zeroes और लोगों को.
तो अगर आपके कंप्यूटर इन दिनों राम की एक टमटम, राम के दो gigs है, तो आपको एक
स्मृति के अरब या 2 अरब बाइट्स, या लगभग 8 अरब या 16 अरब
बिट्स, अपने कंप्यूटर के अंदर.
अब थोड़ा ऊनी विली उदाहरण के विपरीत, यह चुंबकीय कणों नहीं है
अब आम तौर पर.
लैपटॉप में तेजी से, कम से कम, यह ठोस राज्य ड्राइव, SSDs, कि
अभी कोई भागों चलती है.
यह सभी इलेक्ट्रॉनिक है.
यह सब आधारित बिजली है.
ऐसा लगता है, हालांकि, सिर्फ एक या दो का प्रतिनिधित्व के रूप में इस आयत के
स्मृति के गीगाबाइट है कि तुम.
>> तो यह स्मृति का एक हिस्सा है.
अब कंप्यूटर विज्ञान की दुनिया से दूर विभाजित विखंडू की तरह
स्मृति अलग अलग बातें करने के लिए.
तो उदाहरण के लिए, अगर यह आपके कंप्यूटर की रैम है - के रूप में सुझाव दिया
वहाँ आयत - सम्मेलन से बाहर है कि बदल जाता है, तो अपने रैम की शीर्ष पर,
बात करते हैं, आम तौर पर है क्या एक पाठ क्षेत्र कहा जाता है.
उन zeroes और लोगों को संकलित किया है कि आप कर रहे हैं.
तो जब हम हुड के नीचे a.out क्या है पर देखा है,
zeroes और लोगों -
जब आप एक प्रोग्राम चलाते हैं, उन zeroes और लोगों को अपनी मेहनत से लोड कर रहे हैं
रैम बुलाया कुछ में ड्राइव.
और रैम में वे शीर्ष पर डाल रहे हैं.
अब इस बीच, आप अन्य बातें हैं.
प्रारंभिकीकरण डेटा, uninitialized डेटा.
स्मृति के उन दो swaths वैश्विक चर का उल्लेख है, जो
आप अक्सर प्रयोग नहीं करते.
लेकिन कभी - कभी यदि आप करते हैं, वे वहाँ ऊपर अंत के रूप में अच्छी तरह से.
तो फिर वहाँ कुछ अन्य सामान है.
पर्यावरण चर, जो हम पर ज्यादा समय खर्च नहीं होगा.
लेकिन तब दो महत्वपूर्ण बातें है कि इस भर में वापस आ जाएगा
सेमेस्टर ढेर, और ढेर.
>> तो आपके कंप्यूटर की मेमोरी की सबसे सुरक्षित है जब के लिए एक कार्यक्रम चल रहा है
कुछ ढेर कहा जाता है और कुछ ढेर बुलाया.
और हम आज ढेर के बारे में बात करने नहीं जा रहे हैं, कर रहे हैं, लेकिन हम करेंगे
ढेर के बारे में बात करते हैं.
और ढेर डायनिंग हॉल की तरह के दृश्य को आच्छादित करने के लिए है
माथर हाउस में भोजन ट्रे, या जहाँ भी तुम होना होता है, जहां
डायनिंग हॉल स्टाफ हर दिन उन्हें साफ.
वे उन्हें ऊपर मंजिल से ऊपर हो चुकी है.
और स्मृति में इसी तरह, वहाँ एक पर कुछ डाल के इस विचार
ढेर, एक ढेर पर कुछ डाल, एक ढेर पर कुछ डाल.
और क्या हम इस से क्या मतलब है?
ठीक है, हम सिर्फ इस तस्वीर के निचले आधे पर ज़ूम में, अपने कंप्यूटर
राम, के लिए निम्नलिखित का प्रस्ताव.
यह पता चला है कि जब आप a.out तरह एक कार्यक्रम चलाने या नमस्ते जो कुछ भी है,
कार्यक्रम है कि आप लिखा है,
फिर, उन zeroes और लोगों को अपनी हार्ड ड्राइव से लोड कर रहे हैं - जो है,
लंबी अवधि के भंडारण वहाँ रहता है, यहां तक ​​कि जब आप प्लग खींच -
राम में भरा हुआ है.
रैम हार्ड ड्राइव की तुलना में तेजी है.
यह हार्ड ड्राइव की तुलना में छोटे है.
लेकिन यह है कि जहां कार्यक्रम रहते हैं, जबकि आप उन्हें चला रहे हैं.
>> तो आप डबल एक मैक या पीसी पर एक कार्यक्रम क्लिक से भरी हुई है
रैम में हार्ड ड्राइव.
जैसे ही यह रैम में भरी हुई है, zeroes और लोगों को जिस तरह से शीर्ष पर जाओ,
तथाकथित पाठ खंड.
लेकिन तब के रूप में जल्द ही के रूप में अपने कार्यक्रम वास्तव में शुरू से चल रहा है, मुख्य
समारोह में कहा जाता है.
और मुख्य, जैसा कि हमने देखा है, अक्सर स्थानीय चर है.
और यह ints और तार और घर का काम और की तरह है.
तो अपने कार्यक्रम लिखा है कि आप या प्रोग्राम है कि आप अगर
डबल क्लिक किया मुख्य के अंदर कुछ चर का इस्तेमाल किया है, वे पर अंत में
स्मृति के ढेर के नीचे है, तो बात करो.
अब अधिक concretely, यह वास्तव में क्या मतलब है?
यह सिर्फ मतलब है कि अगर हम चीजों को संख्या जा रहे थे -
अगर हम अपने कंप्यूटर में राम के बाइट्स की संख्या के लिए जा रहे थे, सूचना है कि
इस बाइट संख्या शून्य हो सकता है.
यह बाइट संख्या एक, दो, तीन, चार, पांच, छह, सब हो सकता है
तरह से ऊपर की तरह -
2 अरब सभी तरह से ऊपर शीर्ष पर होगा.
तो दूसरे शब्दों में, जब हम बाइट्स के मामले में राम या स्मृति के बारे में बात करते हैं,
बस का अर्थ है कि किसी का फैसला किया है जो प्रत्येक संख्या
स्मृति के उन हिस्सा.
>> तो जब आप एक int के लिए 32 बिट की जरूरत है, या आप एक चार के लिए 8 बिट, जहां की जरूरत है
वे स्मृति में अंत?
धारणात्मक ठीक है, वे सिर्फ इस की तह में खत्म
बात ढेर कहा जाता है.
लेकिन दिलचस्प है अब क्या है जब मुख्य समारोह कॉल.
एक बुलाया समारोह foo, सिर्फ एक मनमाना नाम मान लीजिए.
क्या होता है मुख्य है स्मृति के इस ढेर के नीचे है.
फू मुख्य के शीर्ष पर अब स्मृति में डाल दिया है.
तो है कि किसी भी स्थानीय चर foo ऊपर धारणात्मक की तरह खत्म हो गया है
मुख्य में उन.
यदि foo एक और बार बुलाया समारोह कॉल, उन चर यहीं खत्म.
अगर इस बार कुछ और है, यहाँ, यहाँ कहता है.
तो एक कार्यक्रम चलाने के बारे में दिलचस्प बात यह है कि जैसा कि आप कार्य कॉल,
और उन कार्यों के रूप में कार्य कहते हैं, और उन कार्यों के रूप में कार्य कॉल,
आप स्मृति में कार्य के इस ढेर का निर्माण.
और केवल एक समारोह रिटर्न एक बार आपको लगता है कि स्मृति वापस हो रही शुरू करते हैं.
तो एक आसान करने के लिए एक कंप्यूटर प्रोग्राम में स्मृति से बाहर चलाने के तरीके के लिए है
लिखने के कार्य करता है कि कभी नहीं लौटने.
>> तो उदाहरण के लिए, एक साथ प्रदर्शित करने के लिए के रूप में ज्यादा
जानबूझकर छोटी गाड़ी कार्यक्रम.
मुझे आगे जाना है और # , int मुख्य (शून्य) शामिल हैं.
और मैं क्या करने जा रहा हूँ, जबकि (1 2) है, जो शायद कभी नहीं होगा
हम पर बदल जाते हैं.
और अब मुझे आगे जाना है और printf.
असल में, कि कम नेत्रहीन दिलचस्प होने जा रहा है.
चलो यह करते हैं.
Int के लिए (i = 0, मैं> 0).
चलो यह गलती करते हैं, मैं + +.
और यहाँ printf नहीं करते हैं.
चलो अभ्यास मैं क्या उपदेश था.
चलो यहाँ एक विधि है.
शून्य, कोरस, और हम int मैं कहता हूँ.
और फिर मैं कहना है, printf जा रहा हूँ -
ओह, यह और अधिक दिलचस्प बनाने.
वास्तव में सब पर मुद्रित करने के लिए कुछ भी नहीं है.
हम सिर्फ यह करना है.
कोरस (i).
>> सही सभी.
तो इस छोटी गाड़ी है क्योंकि क्यों?
मैं यह कर रहा हूँ के रूप में मुझे जाना है क्योंकि इस कार्यक्रम वास्तव में कुछ भी नहीं है
ब्याज की.
लेकिन यह है कि लक्ष्य नहीं है.
लक्ष्य के लिए एक कार्यक्रम जिसका मुख्य समारोह में क्या करता है, जाहिरा तौर पर लिखने के लिए है?
ही बुलाओ.
और वास्तव में, हम नहीं पाश की जरूरत नहीं है.
चलो भी यह सिर्फ इतना को आसान बनाने में के रूप में कम करने के लिए वास्तव में की दृष्टि नहीं
मौलिक बग.
मुख्य कॉल करने के लिए कुछ कोरस गाना कोरस.
तो मैं बेवकूफ कुछ किया था, और मैं कोरस कॉल कोरस था क्योंकि मुझे लगा कि
किसी और को यह शायद लागू करने जा रहा था.
और अब इस संकलन के लिए अभी तक नहीं जा रहा है.
मैं क्या करने की जरूरत है?
मैं प्रोटोटाइप की जरूरत है, याद है,.
तो मैं यहाँ शून्य कोरस (int i) की जरूरत है,.
>> तो अब, अगर मैं यहाँ जाना -
वास्तव में, हम बड़ी विंडो का उपयोग.
चलो आगे जाने के लिए और कोरस.
अज्ञात घोषक मैं का प्रयोग करें.
ओह, यह बेवकूफी थी.
हम तर्क की जरूरत नहीं है.
हम सिर्फ यह करना है.
काश हम इस तरह से शुरू किया था.
यह एक बहुत आसान लिखने के लिए प्रोग्राम किया गया है.
तो वहाँ.
अब चलो मेरे टर्मिनल विंडो, फिर से चलाने बजना खत्म हो जाने के.
और यहाँ हम चले.
यह वास्तव में तेजी से किया गया था.
क्या वास्तव में सिर्फ हालांकि हुआ?
खैर, अब मैं प्रिंट लाइन जोड़ देंगे, तो हम देख सकते हैं.
तो मुझे printf का कहना है, हम कहते हैं, मैं यहाँ हूँ.
ठीक है, कोई चर, हम यह उस तरह छोड़ देंगे.
मुझे फिर से रन बनाने हैं.
मुझे कोरस फिर से चलाने के चलो.
और उस पर आते हैं.
चलते रहो.
एक अलग रूप में, क्यों यह दुर्घटनाग्रस्त हो गया है अभी तक नहीं?
विभाजन गलती सुपर फास्ट पहले हुआ था.
[अश्राव्य]
डेविड जे मालन: बिल्कुल सही.
तो यह करने के लिए प्रिंट करने में समय लगता है.
यह सिर्फ कंप्यूटर भाग पर अधिक काम लेता है.
और वहाँ है.
विभाजन गलती.
>> तो नोटिस बस कितनी तेजी से कार्यक्रमों को चलाने.
यदि आप कुछ भी नहीं, सुपर फास्ट मुद्रण कर रहे हैं.
लेकिन हम अभी भी इस विभाजन गलती मिला है क्योंकि क्या हो रहा था?
वैसे, अगर आप कैसे अपने कंप्यूटर की स्मृति से बाहर रखा है इस के बारे में सोचते हैं
मुख्य होना होता है.
लेकिन यहाँ -
चलो बस इस कोरस कहते हैं, और हम इस कोरस कॉल.
और अब अगर मैं मेरे सौंदर्यशास्त्र सही है, यह सिर्फ कोरस कहने जा रहा है,
कोरस, कोरस, कोरस, कोरस, कोरस, कोरस, विज्ञापन nauseum.
और अंत में, क्या होने जा रहा है?
यदि बड़ी तस्वीर सचमुच ऐसा है, क्या सिर्फ धारणात्मक होता है?
ढेर ढेर overruns.
या बुरा, आप सिर्फ पाठ्य खंड सहित सब कुछ है, जो है उग आया
zeroes और है कि लोगों को अपने कार्यक्रम का प्रतिनिधित्व करते हैं.
संक्षेप में, यह सिर्फ सुपर, सुपर बुरा है.
सही है?
अपने कार्यक्रम के नियंत्रण से बाहर spiraled है.
आप का उपयोग कर रहे हैं जिस तरह से और अधिक स्मृति की तुलना में आप एक बेवकूफ की वजह से सब करना
इस मामले में गलती की है,.
या इस मामले में, एक बहुत जान - बूझकर किया समारोह ही बुला.
अब यह सब बुरा नहीं है.
खुद को बुला कार्य वास्तव में महान शक्ति है
जब आप इसे सही ढंग से उपयोग करें.
मैं इसे सही ढंग से नहीं किया है.
>> तो यह सब बुरा नहीं है.
लेकिन तथ्य यह है कि मैं अपने आप को फोन वास्तव में कभी नहीं बंद एक मौलिक है
यहाँ इस कार्यक्रम की कमजोरी.
तो हम कहाँ इस सब के साथ जा रहे हैं?
ठीक है, वास्तव में क्या हो रहा है?
जब मैं वेतन वृद्धि समारोह कॉल की तरह, हम उन उदाहरणों में कर रहे थे,
मैं 1 कि मैं अंदर गुजरती हैं जैसे एक मूल्य है
मैं नंबर एक की एक प्रति में गुजरती हैं.
तो निम्न होता है.
तो चलो वेतन वृद्धि उदाहरण में जाने.
और यहाँ पर इस आदमी को सही.
तो यहाँ है कि वास्तव में क्या हो रहा है.
जब मैं वेतन वृद्धि कहा जाता है, और मैं एक्स में पारित pictorially क्या है
यहाँ पर जा रहा है -
अगर मैं 1 के मूल्य यहाँ संग्रहित है, और मैं वास्तव में वेतन वृद्धि कॉल,
अब कोरस कहा जाता है -
हाँ, कि मुझे फेंक रहा है यहाँ से.
तो चलो इस वेतन वृद्धि को कॉल.
और हम नहीं जानते कि क्या यह अगले समारोह होने जा रहा है.
तो वास्तव में क्या हो रहा है यहाँ मुख्य में कहीं है, मैं का एक हिस्सा है
याद है कि 1 संख्या भंडारण है.
जब मैं वेतन वृद्धि कहते हैं, मैं स्मृति का एक हिस्सा का उपयोग कर रहा हूँ, लेकिन अब मैं
1 की प्रतिलिपि है.
जब मुझे लगता है कि मूल्य वेतन वृद्धि, इस 2 हो जाता है - बुरी पर लिखा
यहाँ स्क्रीन.
लेकिन फिर, क्या वेतन वृद्धि लाभ के रूप में के रूप में जल्द ही होता है?
यह स्मृति सिर्फ ऑपरेटिंग सिस्टम को वापस सौंप दिया जाता है, जिसका अर्थ है सब
आप कुछ भी नहीं है उपयोगी किया है.
एक है कि मूल रूप से मुख्य में समाहित किया गया था अभी भी वास्तव में वहाँ है.
>> तो हम कहाँ इस के साथ जा रहे हैं?
खैर, यह पता चला है कि स्मृति में आप इस पीठ के अनुक्रम वापस करने के लिए है
बाइट्स कि आप सामान अंदर डाल सकते हैं
और यह पता चला है कि हम पहले से ही कुछ है कि डाल शामिल देखा है
चीजें वापस वापस वापस वापस करने के लिए.
एक स्ट्रिंग, एक सप्ताह और अब दो सप्ताह के आधार पर क्या है?
तो यह सिर्फ अक्षरों का एक संग्रह है.
तो यह पता चला, बस के रूप में आप स्मृति में नंबर डाल कर सकते हैं, इसी तरह आप कर सकते हैं
स्मृति में वर्ण डाल दिया.
और एक बार हम स्मृति में डाल वर्ण वापस शुरू करने के लिए पर वापस
वापस, यह पता चला है कि पाश के लिए एक तरह से चीजों की सरलतम का उपयोग कर या
एक जबकि पाश, हम पुनरावृति कर सकते हैं -
एक स्ट्रिंग में वर्णों पर बाएं से दाएं -
और अलग अलग अक्षरों में उन्हें पूरी तरह मालिश शुरू.
एक बन सकता है बी बी, सी हो तो यह है कि अंत में, हम एक ले जा सकते हैं
अंग्रेजी वाक्य है कि वास्तव में समझ में आता है और उन में से प्रत्येक परिवर्तित
पत्र हमारे कंप्यूटर की मेमोरी के माध्यम से चलने से एक समय में एक के लिए छोड़ दिया
वास्तव में एन्क्रिप्ट करने के लिए सही है.
>> तो चलो हमारे यहाँ पाँच मिनट का ब्रेक लेते हैं, और जब हम वापस आते हैं, हम करेंगे
जानकारी scrambling की इस प्रक्रिया शुरू करते हैं.
>> सही सभी.
तो इससे पहले कि हम कुछ क्रिप्टो में गोता करने के लिए और इन बातों arrays कहा जाता है, मुझे
किसी भी प्रश्न के लिए ठहराव, क्योंकि मुझे लगता है कि मैं वास्तव में इस तरह के muddled कुछ
उन विषयों.
तो चलो को ठीक अब अगर हम कर सकते हैं.
तो हम बस वापसी मान के बारे में बात की थी.
हम तर्क के बारे में बात की थी.
और हम इस धारणा के बारे में बात की थी, जो हम वापस करने के लिए सप्ताह में आया हूँ
इन खड़ी की एक पूरी गुच्छा के रूप में स्मृति को देखने आते हैं,
ट्रे, तो बात करो.
पर ऊपर नीचे से, जैसे कि प्रत्येक ट्रे है कि ढेर पर डाल दिया जाता है का प्रतिनिधित्व करता है
एक समारोह में कहा कि वर्तमान में बुलाया जा रहा है.
कोई सवाल?
तो कैसे के बारे में मुझे एक सवाल पूछने की कोशिश.
मुझे लगता है कि को खराब कर रखने के लिए, लेकिन अब it's - you've सभी लड़के के चेहरे को देखा.
तो हम वापस आ हूँ.
>> तो मुझे यहाँ एक सवाल पूछना.
मुझे यह क्या अपने पहले के क्यू एंड ए के कुछ पहले था यह वापस सरल
और तथ्य यह है कि वेतन वृद्धि खुला कोष्ठक है, int संख्या, बंद
कोष्टक.
Int संख्या का क्या दर्शाता है?
[अश्राव्य]
डेविड जे मालन तर्क:.
ठीक है, लेकिन एक तर्क क्या है?
[अश्राव्य]
डेविड जे मालन: क्षमा करें, क्या है?
3 अध्यक्ष: कुछ तुम अंदर गुजरती हैं
डेविड जे मालन: ठीक है.
इतना कुछ है कि आप अंदर गुजरती हैं
और अधिक आम तौर पर, यह सिर्फ इनपुट है.
यदि आप लिख रहे हैं एक और जीवन में कि समारोह का उद्देश्य समारोह करना है
एक छोटे से अलग हर बार जब आप इसे उपयोग कुछ है, तो के लिए एकमात्र तरीका
कि वास्तव में ऐसा करने के लिए यह इनपुट के साथ प्रदान होना प्रतीत होता है इसलिए यह है कि
कि इनपुट के साथ कुछ अलग हर बार कर सकते हैं.
>> तो आपको दो बातें जब एक समारोह में जानकारी लेता निर्दिष्ट करने की जरूरत है.
आप नाम है कि आप कि इनपुट देना चाहता हूँ, विशुद्ध रूप से निर्दिष्ट करने की आवश्यकता है
अपनी सुविधा इतनी है कि आप समारोह में यह उल्लेख कर सकते हैं आपको लगता है कि
अपने आप लिख रहे हैं, के रूप में मैं 32 लाइन में यहाँ था.
लेकिन आप भी अपने प्रकार निर्दिष्ट क्योंकि सी एक प्रोग्रामिंग भाषा है की जरूरत है
है कि बस की आवश्यकता
है कि यदि आप एक चर चाहते हैं, तो आप कंप्यूटर को बताना है क्या
डेटा प्रकार है,
बड़े हिस्से में इतना है कि यह कितने बिट्स जानता है
उस चर के लिए आवंटित.
क्योंकि यह छह हो सकता है -
खेद है, यह छह नहीं होगा.
यह 16 हो सकता है.
यह 8 हो सकता है.
यह 32, 64 भी कर सकते हैं.
लेकिन कंप्यूटर पता करने की जरूरत है.
अब बाएं हाथ की ओर int इसके विपरीत, का प्रतिनिधित्व करता है?
[अश्राव्य]
डेविड जे मालन: वह क्या है?
[अश्राव्य]
समारोह के प्रकार और अधिक विशेष रूप से, डेविड जे मालन
अपने उत्पादन का प्रकार.
सही है.
कोष्ठक में बात जबकि अपने इनपुट का प्रतिनिधित्व करता है, यदि कोई हो,
बाईं करने के लिए बात अपने उत्पादन का प्रतिनिधित्व करता है.
और इस मामले में, वेतन वृद्धि जाहिरा तौर पर एक int देता है.
और इसलिए इस समारोह की वापसी प्रकार int है.
>> इसका क्या मतलब है वापस करने के लिए?
सचमुच, आप कीवर्ड वापसी का उपयोग करें.
और फिर अगर आप कीवर्ड की सही करने के लिए लौट रहे हैं क्या एक है
पूर्णांक है, तो है कि वास्तव में हम क्या वादा किया है के साथ संगत है.
आप कुछ इस तरह से नहीं कर सकता है -
नमस्ते, दुनिया -
क्योंकि कि एक स्ट्रिंग है.
जाहिर है यह एक पूर्णांक नहीं है.
तो संक्षेप में, बोझ हम पर सच है, प्रोग्रामर, के रूप में विशिष्ट होने के लिए
के लिए हम क्या कर रहे हैं और लौटने के लिए तो वास्तव में यह लौटने के बारे में जाना.
और फिर एक बालक और अधिक संदर्भ स्पष्ट करने के लिए -
वहाँ वह फिर से है.
संदर्भ -
बड़े आश्चर्य की बात है तो बस एक पल में आ रहा है.
यहाँ संदर्भ अब यह है कि आपके कंप्यूटर की मेमोरी है, फिर, एक
गीगाबाइट, दो गीगाबाइट, जो भी हो.
शायद यह ज्यादा है.
शायद यह कम है.
लेकिन कंप्यूटर इसे विभिन्न वर्गों होने के रूप में देखता है.
कुछ वहाँ नीचे चला जाता है.
कुछ और ऊपर चला जाता है.
विभिन्न सामान बीच में चला जाता है.
और आज, हम सिर्फ इस कहानी कह रही शुरू करते हैं.
>> लेकिन हम इस पर समय के लिए वापस आया हूँ.
अभी के लिए, स्मृति की ही टुकड़ा हम वास्तव में के बारे में परवाह पाठ खंड है
क्योंकि है कि सिर्फ zeroes और लोगों का प्रतिनिधित्व करता है
बजना कि outputted है.
तो जब आप एक आदेश a.out तरह कीबोर्ड पर चलाते हैं, या आप डबल
मैक ओएस या Windows पर एक आइकन पर क्लिक करें, अपने कार्यक्रम अपने मेहनत से भरी हुई है
रैम में ड्राइव.
और यह आपके कंप्यूटर की रैम के शीर्ष पर plopped है, इतनी बात करने के लिए.
अब इस बीच, के रूप में अपने कार्यक्रम चल रहा है और शुरू होता है में मुख्य बुलाया जाता है
कार्यक्रम आप ने लिखा है या कार्यक्रम माइक्रोसॉफ्ट या एप्पल ने लिखा है, इसके किसी
स्थानीय चर आपके कंप्यूटर की मेमोरी के नीचे नीचे वहाँ अंत.
लेकिन अगर एक और समारोह के मुख्य कहता है कि खुद चर या है
तर्क है, वे यह ऊपर खत्म होता है.
और अगर है कि समारोह के कुछ कहता है, वे यह ऊपर समाप्त करने के लिए,
इसके ऊपर, यह ऊपर.
और केवल एक बार एक समारोह में ट्रे के ढेर है, तो क्रियान्वित किया जाता है
बात करने के लिए शुरू करने के लिए कम और कम हो.
और ये है क्या तो, संक्षेप में, बताते हैं कि क्यों है, जब आप घन कॉल -
या आप वेतन वृद्धि कहते हैं -
आप मूल्य की एक प्रति में गुजर रहे हैं.
और कि pictorially मतलब क्या है कि आप सचमुच लिख रहे हैं
स्मृति के किसी अन्य भाग में नंबर 1, बदल रहा है कि 1 के मामले में 2,
वेतन वृद्धि -
या एक 8, घन के मामले में -
और फिर उस स्मृति वेतन वृद्धि या क्यूब के रूप में दूर के रूप में जल्द ही फेंक
समारोह देता है.
>> प्रश्न.
[अश्राव्य]
डेविड जे मालन: कहाँ - वैश्विक चर में संग्रहीत हैं क्या
वर्तमान initialized डेटा या uninitialized डेटा कहा जाता है.
अंतर किया जा रहा है, यदि आप एक वैश्विक चर है, और आप इसे असाइन
तुरंत एक मूल्य के बराबर के चिह्न के साथ, यह शीर्ष पर समाप्त होता है वहाँ.
और अगर तुम सिर्फ कोई मूल्य नहीं के साथ int x सेमीकोलन का कहना है, यह थोड़ा समाप्त होता है
सम्मेलन द्वारा बस रैम में कम है.
अन्य प्रश्न.
सही सभी.
>> तो इस तस्वीर वापस आने के रूप में हम हम क्या कर सकते हैं के साथ और अधिक शक्तिशाली हो जाएगा
कंप्यूटर के साथ.
लेकिन अब के लिए, क्रिप्टोग्राफी, की एक विशिष्ट प्रकार के लिए एक संक्षिप्त परिचय
क्रिप्टोग्राफी कि सभी दुनिया की समस्याओं को हल नहीं करता है लेकिन को हल करने
उनमें से कुछ.
इस मामले में, हम कुछ गुप्त कुंजी क्रिप्टोग्राफी कहा जाता है.
और गुप्त कुंजी क्रिप्टोग्राफी, जैसा कि नाम से पता चलता है, अपनी सुरक्षा प्राप्त
से एक रहस्य.
तो उदाहरण के लिए, यदि आप ग्रेड स्कूल में वापस आ गए हैं और आप एक गुजर रहे हैं
छोटे से रहस्य प्यार लड़का है या लड़की आप पर कुचल रहे हैं पत्र - आप अगर
दर्शकों के माध्यम से पारित करना चाहता था, तो आप शायद नहीं लिखना होगा
बल्कि आप, अंग्रेजी में इस तरह के एक नोट या जो कुछ भी अपनी मूल भाषा है
यह एन्क्रिप्ट हो सकता है.
या आप सिर्फ उन्हें इन दिनों एक पाठ संदेश भेज सकते हैं.
लेकिन आप वास्तव में उन्हें कक्षा भर सकता है और एक नोट गुजरती हैं.
और यह करने के लिए सुरक्षित रूप से इस तरह है, कि अपने मित्रों और शिक्षक
पता है तुम क्या लिख ​​रहे हैं, तो आप एक काफी सरल के साथ आ सकता है
एल्गोरिथ्म -
युवा हालांकि आप हो सकता है -
सिर्फ शब्दों हाथापाई.
तो एक लेखन के बजाय, आप बी बी के बजाय लिख सकता है, आप लिख सकते हैं
के बजाय सी. सी, डी आप लिखते हैं, और हो सकता है बहुत आगे है.
या आप अक्षरों का एक और अधिक परिष्कृत अनुवाद के साथ आ सकता है
विभिन्न पत्र.
लेकिन पकड़ लड़का है या लड़की है जिसे आप इस नोट भेज रहे हैं के लिए करने की जरूरत है
कुछ पता है.
कौन सा क्या है, जाहिर है?
की तरह, अपने राज़ क्या है.
की तरह, के रूप में और बी एस और Cs और डी एस के बीच कि मानचित्रण क्या है?
यह सिर्फ एक जोड़ने पत्रों में से प्रत्येक से जाना, तो बात है,
बी, बी, सी के लिए एक?
यह है कि अधिक से अधिक जटिल है?
तो आप और अपने क्रश के इस गुप्त जानकारी की जरूरत है.
लेकिन यहाँ पकड़-22 की तरह है.
यदि यह बहुत पहली बार है आप के माध्यम से इस प्रेम पत्र भेज रहे हैं
वर्ग, कैसे है कि लड़का है या लड़की भी रहस्य क्या है पता करने के लिए जा रहा है?
तो गुप्त कुंजी क्रिप्टो दुनिया के सभी समस्याओं का समाधान नहीं है.
और वहाँ वास्तव में एक रिश्ता है कि हम वापस करने के लिए की ओर आया हूँ
सेमेस्टर के अंत.
>> इसी तरह है, शायद हम में से कोई भी कभी एक भेजा -
इसी तरह, हम में से ज्यादातर पता नहीं है पर नहीं है, किसी को है कि उदाहरण के लिए काम करता है,
Amazon.com.
और फिर भी, हम में से कई शायद Amazon.com पर सामान खरीदा.
और हम मानते हैं सिखाया गया है कि इन ई - कॉमर्स
लेनदेन सुरक्षित हैं.
सही है?
यूआरएल शायद https कहते हैं.
वहाँ शायद कहीं एक मूर्खतापूर्ण थोड़ा पैडलॉक आइकन है.
क्रिप्टोग्राफी अपने क्रेडिट कार्ड की जानकारी हासिल करने के कुछ प्रकार है
आप और Amazon.com के बीच.
और फिर भी, अगर क्रिप्टोग्राफी कुछ रहस्य जानने है, और अभी तक शामिल मैं ऐसा नहीं कर
अमेज़न पर किसी को पता है, और मैं निश्चित रूप से किसी भी तरह का इंतजाम कर लिया है नहीं
अमेज़न पर किसी के साथ रहस्य, कैसे अपने कंप्यूटर या अपने ब्राउज़र कर रही है?
खैर, बाहर मुड़ता क्रिप्टोग्राफी के अन्य प्रकार के पूरी तरह हल
कि समस्या है.
लेकिन आज के लिए, हम एक सरल, जहाँ आप की व्यवस्था कर सकते हैं पर ध्यान केंद्रित करेंगे
कुछ रहस्य पता प्लस 1 या के रूप में और बी एस के बीच कुछ मैपिंग की तरह, अग्रिम.
>> और क्रिप्टोग्राफी की प्रक्रिया आम तौर पर शामिल है.
आप कुछ सादे पाठ, बाएँ पर यहाँ दर्शाया है.
आप यह एल्गोरिथ्म या प्रक्रिया के कुछ प्रकार के माध्यम से चलाने
यह encrypting के लिए.
हो सकता है कि सिर्फ एक बी हो जाता है, बी, सी हो जाता है और फिर आप के साथ अंत
पाठ बीजलेख.
इस बीच, एक बार अपने क्रश गुप्त नोट प्राप्त करता है, वह या वह तो
यह आम तौर पर कि एल्गोरिथ्म इतनी के रूप में पीछे पाने के decrypt
सादे पाठ वापस.
अब वहाँ इस के भौतिक अवतार हैं.
उदाहरण के लिए, यह एक छोटे से रहस्य कूटवाचक अंगूठी है.
और यह समझ में आता है कि वहाँ दो नंबर डायल करता है यहाँ है में एक अंगूठी है.
इस बात के बाहर परिधि पर, वहाँ Z के माध्यम से एक पत्र है,
हालांकि वे यादृच्छिक क्रम में कर रहे हैं.
और अंदर पर, वहाँ वास्तव में ऐसी है कि कुछ इस के साथ संख्या
अंगूठी, आप की तरह बाहर है, लेकिन अंदर नहीं बारी क्रम में अप लाइन के लिए कर सकते हैं
पत्र के साथ संख्या.
और क्लिप आप को देखने के बारे में कर रहे हैं जिनमें से कुछ आप देखा हो सकता है 24/7
एक क्रिसमस स्टोरी नामक फिल्म से क्रिसमस के मौसम के आसपास.
आप देखेंगे कि थोड़ा Ralphie तो बाहर क्या छोटे अनाथ लगाने के लिए उत्सुक था
एनी गुप्त संदेश उसे करने के लिए किया गया था कि में किया गया था और मुझे लगता है, संप्रेषित
एक धारावाहिक बॉक्स पर संख्यात्मक संदेशों की फार्म.
और आप सभी छोटे कार्ड है कि आया जमा करने के लिए किया था
अनाज बॉक्स में.
आप अंदर उन्हें मेल किया था
आप रहस्य कूटवाचक अंगूठी वापस पाने के लिए किया था, इतना है कि आप अंत में समझ सकते हैं
बाहर मानचित्रण अक्षरों और संख्याओं के बीच है,
या पत्र और पत्र.
तो मैं तुम्हें एक क्रिसमस स्टोरी से इस छोटे क्लिप दे के 2 pset प्रेरित करने और
एक पल में हमारी चर्चा, arrays के.
तो यहाँ हम Ralphie है.
>> [वीडियो प्लेबैक]
इसके सभी और विविध के लिए जाना जाता है कि राल्फ पार्कर इसके द्वारा नियुक्त किया जाता है
लिटिल अनाथ एनी गुप्त सर्कल के सदस्य और सभी के लिए हकदार है
सम्मान और लाभ बहां होने वाली.
, छोटे अनाथ एनी हस्ताक्षर किए गए.
प्रतिहस्ताक्षरित, पियरे आंद्रे!
स्याही में!
सम्मान और नौ वर्ष की उम्र में पहले से ही लाभ.
चलो, इसके साथ पर मिलता है.
मैं तस्करों और समुद्री डाकुओं के बारे में सभी कि जाज जरूरत नहीं है.
काले के समापन साहसिक कार्य के लिए कल रात सुनो
समुद्री डाकू जहाज.
अब यह आप के सदस्यों के लिए एनी गुप्त संदेश के लिए समय आ गया है
गुप्त सर्कल के.
याद रखें, बच्चों, एनी सीक्रेट सर्कल के सदस्यों को समझाना कर सकते हैं
एनी गुप्त संदेश.
याद रखें, एनी आप पर निर्भर करता है.
बी 2 के लिए अपने पिन सेट.
यहाँ संदेश है.
12, 11 -
मैं मेरी पहली गुप्त बैठक में हूँ.
-14, 11, 18, 16 -
पियरे महान आवाज आज रात में था.
मैं बता सकता है कि आज रात वास्तव में महत्वपूर्ण संदेश था.
-3, 25.
कि खुद एनी से एक संदेश है.
याद रखें, किसी को मत बताना.
-90 सेकंड बाद, मैं घर में एक ही कमरे में हूँ, जहां नौ का एक लड़का
गोपनीयता और व्याख्या में बैठ सकता है.
अहा, मैं बी अगले करने के लिए चला गया.
ई. पहला शब्द है.
यह एस अब आसान आ रहा था.
यू
- ओह, चलो, Ralphie.
मुझे जाना होगा.
I'll सही नीचे हो सकता है, मा.
विशेषज्ञ जी.
टी, ओ के लिए सुनिश्चित करें.
क्या करने के लिए यकीन है कि?
लिटिल अनाथ कहने की कोशिश कर एनी क्या था?
क्या करने के लिए यकीन है कि?
- Ralphie!
रेंडी को जाने के लिए मिल गया है.
आप बाहर आने करोगे?
सब ठीक है, माँ.
मैं अभी बाहर हो जाएगा.
मैं करीब हो रही थी.
तनाव भयानक था.
यह क्या था?
ग्रह के भाग्य अधर में लटका सकता है.
- Ralphie!
रेंडी को जाने के लिए मिल गया है.
I'll सही बाहर जोर से रोने के लिए, हो सकता है.
जी, लगभग वहाँ.
मेरी उंगलियों के उड़े.
मेरे दिमाग में एक इस्पात जाल था.
हर ताकना स्फूर्त.
यह लगभग स्पष्ट हो गया था.
हाँ, हाँ, हाँ, हाँ.
अपने Ovaltine पीने के लिए सुनिश्चित रहो.
Ovaltine?
एक फालतू वाणिज्यिक?
एक कुतिया का बेटा.
[अंत वीडियो प्लेबैक]
>> डेविड जे मालन: तो वहाँ हम क्रिप्टोग्राफी है.
तो कैसे हम एक कंप्यूटर में लागू करने के बारे में जा सकते हैं या
इस तरह से बातें का प्रतिनिधित्व?
ठीक है, हम खुद को एक छोटे से अधिक से अधिक flexibly को व्यक्त करने का एक तरीका की जरूरत
हमारे चर इस प्रकार अब तक की अनुमति दी है.
हम ints लिया है.
हम घर का काम लिया है.
हम मंगाई और युगल और कुछ अन्य लोगों को मिला है.
लेकिन उन स्मृति के व्यक्तिगत टुकड़े कर रहे हैं कि वास्तव में हमें करने की अनुमति नहीं
शब्दों और वाक्यों और वाक्यांशों की तरह बातें व्यक्त करते हैं.
दरअसल, हम ऐसी बातें तार बुलाया है.
लेकिन हम वादा किया था कि यह वास्तव में सिर्फ CS50 में एक सरलीकरण है
पुस्तकालय है कि हम वापस छील करने के लिए इरादा कर रहे हैं.
>> और तो चलो है कि यहाँ शुरू.
मुझे आगे जाना है और एक फ़ाइल खोलने -
इन फ़ाइलों के सभी सामान्य ऑनलाइन के रूप में उपलब्ध हैं -
एक तार करने के लिए संबंधित समस्या को हल करने के लिए array.c बुलाया था, लेकिन कहा कि पेंट एक
यहाँ हम कुछ कैसे उपयोग हो सकता है की तस्वीर एक सरणी बुलाया.
एक सरणी एक डेटा प्रकार है.
यह चर के एक प्रकार का प्रकार है, कि कई छोटे डेटा प्रकार है
इसे के अंदर वापस करने के लिए वापस वापस वापस करने के लिए.
तो उदाहरण के लिए, अगर हम एक छोटे से प्रोग्राम है कि आप देता है लिखने के लिए चाहते हैं अपने
50 की तरह एक निश्चित है कि दो quizzes, तुम बहुत आसानी से कर सकता है के लिए औसत प्रश्नोत्तरी
इस प्रोग्राम लिखने भी पिछले हफ्ते की सामग्री के कुछ पर आधारित है -
GetInt और चर के एक जोड़े का उपयोग करके.
Int quiz1, quiz2 int, और यह बहुत सीधा है.
यह हो सकता है 10, कोड, अधिकतम 20 लाइनों, पूछता है कि एक कार्यक्रम को लागू करने के लिए
उपयोगकर्ता दो प्रश्नोत्तरी स्कोर के लिए और फिर उन्हें जोड़कर उनकी औसत computes
एक साथ, दो से विभाजित है, और फिर परिणाम मुद्रण.
हम शायद उस के बाद कर सकता है बहुत आसानी से अब
मिनट की कुछ संख्या.
>> लेकिन समस्या यह है कि लगता है कि 50 था quizzes तीन या चार.
मान लीजिए कि आप था कि एक वर्ग के लिए ही प्रोग्राम का उपयोग करना चाहता था
साप्ताहिक quizzes.
एक वर्ग है कि साप्ताहिक quizzes के बारे में सोचो.
अगर वहाँ एक सेमेस्टर में 16 या तो सप्ताह की तरह है, अब तुम 16 चर है -
int, quiz1 int quiz2, int quiz3, quiz4 int.
जैसे ही आप इस विकल्प को देखने के शुरू, इस कॉपी करने और चिपकाने
कोड की, यह करने के लिए आप चाहते हैं कि वहाँ एक बेहतर तरीका थे शुरू कर देना चाहिए.
और शुक्र है, सरणियाँ की वजह से, वहाँ है.
तो यह करते हैं.
सबसे पहले, मुझे एक बहुत ही सरल बात है कि हम इस प्रकार अब तक इस्तेमाल नहीं किया है शुरू,
लेकिन आप यह कोड में कभी कभी देखेंगे.
यह वही है जो आम तौर पर एक निरंतर कहा जाता है.
तो यह समझ में आता है कि यह मूल्य कभी नहीं बदलता में एक स्थिर है.
मानव सम्मेलन में जब एक स्थिर बनाने के लिए सभी पूंजी का उपयोग करने के लिए है
पत्र, बस इतना है कि यह वास्तव में अपने कोड में बाहर खड़ा है.
और विशेष कीवर्ड है कि तुम सी में उपयोग परिभाषित है.
तो अगर आप कहते हैं # को परिभाषित करने के लिए, तो एक जगह है, तो शब्द है कि आप के लिए उपयोग करना चाहते हैं
निरंतर के नाम, और उसके बाद लगातार मूल्य.
नोटिस तो, यह एक चर को कुछ बताए से अलग है.
वहाँ कोई संकेत नहीं के बराबर होती है.
वहाँ कोई सेमीकोलन नहीं है.
यह वही है जो आम तौर पर एक पूर्वप्रक्रमक निर्देश के रूप में जाना जाता है, लेकिन अधिक
कि एक बार.
>> अभी के लिए, इस बनाता है एक अपरिवर्तनीय बुलाया जिसका मूल्य वास्तविक quizzes
संख्यात्मक मान 2 है.
तो कहीं भी तुम quizzes देखते हैं, quizzes, इस फाइल भर quizzes, कि
सिर्फ संख्या 2.
अब, अगर मैं मुख्य पर अब देखो, यह कैसे काम करता है देखना.
सबसे पहले, यह एक छोटे से गुप्त लग रहा है.
लेकिन यह एक सप्ताह से सभी सामान है.
ग्रेड के लिए उपयोगकर्ता से पूछो.
हम यह कैसे करते हो?
खैर, लाइन में 22 -
यह वास्तव में रसदार हिस्सा है -
मैं एक नाव नहीं है, लेकिन सिर्फ एक ही नाव की घोषणा.
मैं की घोषणा कर रहा हूँ, बल्कि चल बिन्दु मूल्यों की एक सरणी.
चर कि ग्रेड कहा जाता है, के रूप में यहाँ निहित जा रहा है.
लेकिन नए वाक्यविन्यास के केवल टुकड़ा तो इन वर्ग कोष्ठक हैं, इस तथ्य
कि मैं नाव और फिर खुला ब्रैकेट और फिर एक संख्या ग्रेड कहा है.
सूचना, अगर यह एक निरंतर है, यह सिर्फ जैसे हम इस किया है.
इसका मतलब यह है कि कंप्यूटर हे, मुझे दे दो मंगाई, और सामूहिक रूप से जाने के लिए कॉल
उन्हें ग्रेड.
यह इस तरह से एक बहुत अधिक थकाऊ प्रक्रिया के विपरीत है.
Grade1 फ्लोट, Grade2 नाव, और बहुत आगे है.
तो एक सरणी हमें इस विचार को लागू करने के लिए अनुमति देता है, लेकिन और बहुत कम गडबड़ीसे में,
इस तरह से है कि हम कोड की एक लाइन लिखने के बजाय कर सकते हैं, कहते हैं, 16 से 16 के लिए एक
सप्ताह सेमेस्टर.
तो मैं 2 हार्ड कोड नहीं चाहते हैं, क्योंकि अगर आप इस बारे में लगता है कि अब किया
तार्किक अगले साल लगता है 3 के लिए CS50 परिवर्तन बजाय quizzes.
और मैं 2 संख्या यहाँ था.
मैं संख्या 2 यहाँ था.
यह बहुत कठिन है और बहुत आसानी से पेंच और गलती से बदल हो जाता है
एक 3 मूल्य और 2 के कुछ अन्य मूल्य याद आती है.
इसलिए मैं बजाय सार जा रहा हूँ इस दूर और यह निरंतर का उपयोग है कि, अपने रूप
नाम से पता चलता है, कभी नहीं बदलता.
और अब, कोई फर्क नहीं पड़ता है कि क्या हम अलग quizzes इस साल या अगले मैं,
बस इसे एक जगह में बदलने के लिए, शीर्ष पर यहाँ है.
>> तो यह है कि सब स्थिर है.
इस बीच, नए वैचारिक सुविधा है कि एक सरणी के है.
तो वर्ग कोष्ठक मुझे दे यह कई मंगाई और मुझे सामूहिक सुविधा देता है
उन्हें ग्रेड यहाँ बुला लो.
तो अब देखते हैं कि मैं क्या करने जा रहा हूँ.
यहाँ 24 लाइन में पाश के लिए एक की शुरुआत है.
यह वास्तव में कुछ भी नहीं फैंसी है.
यह सिर्फ quizzes बजाय का उपयोग कर एक हार्ड कोडित संख्या के.
लेकिन वहाँ बौद्धिक पिछले सप्ताह से अलग कुछ भी नहीं है.
यह सिर्फ printf है.
तो printf ("% d प्रश्नोत्तरी संख्या% d") क्योंकि मैं बस के लिए बाहर दे मुझे प्रश्नोत्तरी प्रिंट चाहते हैं
दो और फिर एक दो दो नंबर.
तो यह विशुद्ध रूप से एक सौंदर्य बात है.
लेकिन दिलचस्प हिस्सा अब 27 लाइन में है.
आदेश में दो प्लेसहोल्डर में से एक में एक चल बिन्दु के साथ भरने के लिए
मूल्य, आप फिर से वर्ग कोष्ठक का उपयोग करें.
इस मामले में, मैं का उपयोग कर रहा हूँ क्योंकि पाश के लिए मैं बराबर के साथ शुरू कर दिया है
जाहिरा तौर पर मूल्य क्या है?
0.
>> तो इस लूप की पहली यात्रा पर, यह के रूप में हालांकि मैं
कोड में यह लिखा है.
लेकिन मैं इस लूप की दूसरी यात्रा पर, यह है के रूप में यद्यपि
मेरे कोड में यह लिखा है.
लेकिन तथ्य यह है कि मैं एक चर का उपयोग कर रहा हूँ सही है, क्योंकि नाम के रूप में
पता चलता है, यह हर यात्रा पर अपने मूल्य अलग है.
इसलिए मैं इस सरणी भरने हूँ एक समय में एक जगह है.
इस सरणी की तरह दिखता है?
खैर, कारण है कि मैं स्क्रीन पर इस सुपर सरल आयताकार यहाँ आकर्षित किया
पहले इस कारण के लिए किया गया था.
एक सरणी सिर्फ स्मृति का एक हिस्सा स्मृति का एक और हिस्सा द्वारा पीछा किया जाता है,
स्मृति का एक और हिस्सा द्वारा पीछा किया, और बहुत आगे है.
तो अगर मेरी सरणी 2 आकार की है, इस मामले में यहाँ सब मैं द्वारा कर किया जाएगा
मेरी प्रश्नोत्तरी स्कोर में टाइपिंग, यहाँ पसंद है.
मैं इस पर एक 100 मिला है.
और फिर मैं इस एक पर एक 99 मिला.
फिर इस स्मृति भी नहीं जा सकता है क्योंकि मैं केवल पूछा है इस्तेमाल किया जा सकता
2 आकार की एक सरणी के लिए कंप्यूटर.
उन वर्गों को अभी भी वहाँ हैं.
सही है?
तुम अब भी राम के दो गीगाबाइट है, भले ही आप ही कर रहे हैं
दो मंगाई के लिए पूछ रहे हैं.
तो arrays के पीछे विचार यह है कि कंप्यूटर सिर्फ स्मृति का एक हिस्सा लेता है
और फिर छोटे टुकड़ों को वापस करने के लिए वापस करने के लिए वापस वापस आबंटित कर देता है.
और इतना है कि सब एक सरणी है.
यह स्मृति का एक सन्निहित हिस्सा है, अंदर जो आप बातें रख सकते हैं.
>> अब यह तो बस कुछ उबाऊ गणित करने के लिए होता है.
अगर मैं यहाँ नीचे स्क्रॉल, यह है जहां मैं तो सरणी पर पुनरावृति.
मैं सरणी में सभी मूल्यों के योग के साथ आते हैं.
और फिर मैं दौर समारोह यहाँ का उपयोग करने के लिए वास्तव में क्या
quizzes द्वारा विभाजित योग.
लेकिन मुझे उस पर अब के लिए पर्याप्त गणित के प्रकार के रूप में मेरे हाथ की लहर.
लेकिन यह सब है कि मेरे लिए क्या कर रही है अंततः औसतन कंप्यूटिंग है.
तो पहली प्रश्नोत्तरी प्लस 2 प्रश्नोत्तरी, 2 से विभाजित है, और फिर मुद्रण
एक int के रूप में इसे बाहर.
>> लेकिन हम अब एक अलग string1 बुलाया उदाहरण के लिए संक्रमण,
जो एक ऐसी ही तस्वीर है, लेकिन का उपयोग कर तार पेंट.
मुझे आगे जाना है और बस एक पल के लिए इस सरल.
और अब के लिए इंडेंटेशन माफ कर दीजिए.
इस उदाहरण के 19 लाइन में सूचना, मैं उपयोगकर्ता से एक स्ट्रिंग मिलता है.
नोटिस लेकिन क्या मैं अगले लाइनों में 22 आगे कर रहा हूँ.
मैं वास्तव में मैं से iterating कर रहा हूँ करने के लिए - और यह एक नई चाल है -
strlen, स्ट्रिंग लंबाई.
यह एक समारोह है कि सी के साथ आता है कि अगर आप इसे एक स्ट्रिंग पारित करने के लिए, यह बताता है
आप कितने अक्षर कि स्ट्रिंग में हैं.
यही सब है.
तथ्य यह है कि यह strlen स्ट्रिंग की लंबाई के बजाय बस, क्योंकि यह
अधिक संक्षिप्त.
30 साल पहले, लोगों को चीजों के रूप में संभव के रूप में लिखने succinctly पसंद आया.
तो हम उस सम्मेलन यहाँ रखा है.
मैं + + सिर्फ मतलब है कि मैं प्रत्येक चलना में वेतन वृद्धि.
और अब इस नोटिस, जो वास्तव में दिलचस्प है.
तो लाइन में 24, मैं कंप्यूटर का कहना है, मुझे एक चरित्र देने के लिए, आठ
बिट्स, और यह ग.
लेकिन क्या कह दाहिने हाथ की ओर पर है?
अंग्रेजी में, कि क्या काम करती है?
[अश्राव्य]
डेविड जे मालन: बिल्कुल सही.
मुझे सरणी में पहली चरित्र दे.
या अधिक आम तौर पर, मुझे सरणी में चरित्र i-वीं दे.
एहसास है और यह महत्वपूर्ण है कि अब कंप्यूटर वैज्ञानिकों के रूप में, हम वास्तव में कर रहे हैं
0 से गिनती.
आप विवेक नहीं है अब यह कर रही शुरू.
अब आप कंप्यूटर की उम्मीदों के अनुसार व्यवहार करते हैं और
शून्य से गिनती क्योंकि [0] पहली बार होने जा रहा है
एक स्ट्रिंग में चरित्र.
[1] 2 होने जा रहा है.
[2] 3, और इतना आगे होने जा रहा है.
तो इस कार्यक्रम, अगर मैं यह संकलन - यह है, फिर से, string1.
>> तो string1 बनाने.
और अब मैं अपने टर्मिनल विंडो में string1 चलाते हैं.
यह निवेश के लिए इंतजार कर रहा है, तो मैं करने के लिए कहते हैं, में दाऊद टाइप करने के लिए जा रहा हूँ.
दर्ज करें.
और अब यह सब अलग अलग लाइनों पर डेविड प्रिंट है क्योंकि
नोटिस मैं क्या कर रहा हूँ.
मैं एक समय में एक चरित्र का मुद्रण कर रहा हूँ.
अब हम इस पर विस्तार में आज नहीं जाना होगा.
लेकिन मैं इस जांच को पहले एक पल के यहाँ से हटाया.
यह पता चला है कि अगर उपयोगकर्ता दुर्व्यवहार है, adversarial, या बस
उलझन में है, तो आप वास्तव में कुछ लंबाई के एक स्ट्रिंग दे विफल कर सकते हैं.
यदि आप कीबोर्ड पर गलत कुंजी मारा, तुम्हें दे सकता है
सब पर कोई स्ट्रिंग.
या यदि आप दुर्भावनापूर्ण कर रहे हैं, तो आप एक की एक गीगाबाइट के मूल्य में पेस्ट करने की कोशिश हो सकती है
निबंध इस स्ट्रिंग को भरने के लिए.
और अगर कंप्यूटर स्मृति से बाहर चलाता है, यह पता चला है कि हम जा रहे हैं
वापस करने के लिए इस विशेष अशक्त बुलाया मूल्य मिलता है.
तो अब के लिए, सिर्फ इतना पता है कि वहाँ इस विशेष अशक्त बुलाया मूल्य है कि
हमें जांच करने के लिए जब हम स्मृति से बाहर कर रहे हैं, अन्य बातों के अलावा करने के लिए अनुमति देगा.
>> लेकिन अगर मैं अब string2 खोलते हैं, तो यहाँ एक अंतर नोटिस.
String2 के साथ एक अंतर यहाँ सूचना.
String2 के साथ पाश के लिए यह थोड़ा अलग है.
मुझे nulls हटाना इतना है कि हम एक और समय उन लोगों के बारे में बात कर सकते हैं.
लेकिन क्या पाश के लिए इस समय के बारे में अलग है?
और मैं वापस पिछले उदाहरण के लिए जा सकते हैं.
तो यह है कि दो संस्करण है.
यह एक संस्करण है.
एक, दो, दो एक.
तो strlen कॉल कहाँ है?
यह पाश के लिए के पहले भाग में है.
इसलिए मैं यह कर रहा हूँ के रूप में किसी भी विचार?
हाँ.
[अश्राव्य]
डेविड जे मालन: तो हम समारोह में हर बार फोन नहीं है.
बिल्कुल सही.
Loops के लिए याद है कि वे सुपर सरल कर रहे हैं आप की तरह एक बार
समझते हैं कि इस initialization है,
हालत, और अद्यतन.
समस्या यह है कि हर हालत पर होता है
पाश की चलना.
और इसलिए यहाँ इस उदाहरण में, क्या इस तथ्य के बारे में बुरा है
कि यह मेरी हालत है?
आप strlen फिर से बुला रहे हैं और फिर.
लेकिन एक बार मैं डेविड में टाइप किया है, कि स्ट्रिंग की लंबाई पांच है.
और यह पाश के हर यात्रा पर बदलने के वजह से नहीं जा रहा है
स्ट्रिंग अभी भी D-A-V-D. तो यह क्या एक बनने जा रही है पर एक संकेत है
तेजी से महत्वपूर्ण विचार एक डिजाइन निर्णय के रूप में जाना जाता है, जहां न सिर्फ
कंप्यूटर अनावश्यक काम करते हैं.
>> अब बस के रूप में मानक संस्करण में एक 2 pset, 2 pset का पूर्वावलोकन चुपके है
आप वास्तव में सिफर के कुछ नंबर, कुछ को लागू करने के लिए चुनौती रहा है
एन्क्रिप्शन एल्गोरिदम की संख्या, कि आप कर सकते हैं तो दोनों एन्क्रिप्ट और decrypt
एक Ralphie की तरह ज्यादा से गुप्त संदेश, वहाँ डीकोड.
2 pset हैकर संस्करण में, हम एक छोटे से आगे जाने के लिए जा रहे हैं.
हम आपको एक फ़ाइल हाथ से जा रहे हैं एक वास्तविक कंप्यूटर प्रणाली है कि एक शामिल हैं
उपयोगकर्ता नाम और वास्तविक एन्क्रिप्टेड पासवर्ड की एक पूरी गुच्छा है, और चुनौती
के लिए हैकर संस्करण के लिए उन पासवर्ड और आंकड़ा दरार होने जा रहा है
क्रिप्टोग्राफी या क्या रहस्य क्या वास्तव में इस्तेमाल किया गया था बाहर
उन पासवर्ड उत्पन्न.
और हम सी के यहाँ है कि मैं दे दूँगा एक नई सुविधा का उपयोग करके यह करने जा रहे
तुम सिर्फ एक डेमो, कमांड लाइन तर्क के रूप में जाना जाता है.
>> तो यह पता चला है, के रूप में आप में से कुछ के अनुभाग में या पाठ्यपुस्तकों में देखा हो सकता है,
मुख्य हमेशा कोष्ठक में शून्य होना जरूरी नहीं है.
यह पता चला है कि मुख्य भी इस तरह से लिखा जा सकता है दो तर्क के साथ,
argc और argv, जहां argc शब्दों की संख्या है कि आप के बाद टाइप
कार्यक्रम के नाम अपने कमांड लाइन पर.
और argv वास्तविक शब्द है.
और के रूप में वहाँ वर्ग कोष्ठक सुझाव है, argv जाहिरा तौर पर एक सरणी है.
यह स्मृति में एक स्ट्रिंग के बाद एक स्ट्रिंग के बाद एक स्ट्रिंग होने जा रहा है.
तो क्या हम ऐसा करने में सक्षम हो जा रहे हैं, 2 pset के साथ शुरू है,
कुछ इस तरह.
अगर मैं argv1, जो हम सोमवार को वापस करने के लिए आते हैं, करेंगे और चलाने के एक उदाहरण है
यह सूचना है कि यह करने के लिए अभी तक कुछ भी नहीं लगता.
यह सिर्फ बाहर अपने नाम प्रिंट.
लेकिन अगर मैं कहना अलविदा वर्ग, सूचना है कि इस कार्यक्रम के जाहिरा तौर पर iterates
कि शीघ्र लिखे गए शब्द में से प्रत्येक पर.
और इसका मतलब है जिसके द्वारा हम शब्दों है कि उपयोगकर्ता के लिए पहुँच प्राप्त होगी
शीघ्र में टाइप मुख्य बदल रहा है, इस सप्ताह के अंत में शुरू int से,
मुख्य (शून्य) int मुख्य (argc, argv).
और इस तरह कमांड लाइन तर्क पैदा हो जाएगा.
और एक बार आप इस पर वास्तव में परिष्कृत मिलता है, तुम लिखने के लिए सक्षम हो जाएगा
यहाँ इस एक के रूप में वास्तव में trippy कार्यक्रम, जो ऊपर से परे चला जाता है
कार्यक्षमता के कुछ हम इस प्रकार दूर किया है, लेकिन सब बहुत शक्तिशाली है.
>> तो हम इस के साथ स्क्रीन पर छोड़ देंगे.
और हम आप सोमवार को देखेंगे.