[Powered by Google Translate] डेविड मालन: यह CS50 है, और यह 1 सप्ताह की शुरुआत है. हम क्या सोचा था कि आज हम करना चाहते है पर एक नज़र वापस ले आप में से बहुत कुछ शायद कुछ के लिए अतीत चला गया अब समय है और एक छोटा सा परिचित लग सकता है. यहाँ यह बात है, निश्चित रूप से इस में है - दर्शक: विज्ञान. डेविड मालन: विज्ञान केन्द्र. तो यह वास्तव में एक जल्द से जल्द कंप्यूटर के 1940 के दशक से वापस. यह एक 1 विद्युत कंप्यूटर के है कि विशेष रूप से लंबे समय के लिए सक्षम था, आत्मनिर्भर संगणना, और क्या हम वास्तव में देखने के विज्ञान केंद्र केवल इस बात का एक छोटा सा टुकड़ा है. हमने सोचा कि हम तो करना चाहते हैं क्या है एक वीडियो पर एक नज़र वापस ले लो कि कुछ समय पहले किया गया था, यह शुरू दुनिया के लिए बात की. और आप संगीत और आवाज कि वास्तव में उन से देखेंगे बहुत खुश बार थे. [वीडियो प्लेबैक] गणितीय और यांत्रिक कौशल के इस विजय है हार्वर्ड विश्वविद्यालय में महान नई स्वत कैलकुलेटर. गणित में जटिल समस्याओं, के माध्यम से रखा टेप पर कोडित रूप में मशीन, सही एक में हल कर रहे हैं मानव के लिए आवश्यक समय के मिनट के अंश गणना. के सभी रूपों में तेजी लाने के डिजाइन में गणित और वैज्ञानिक अनुसंधान, विशाल यांत्रिक मस्तिष्क संयुक्त के लिए काम करेंगे युद्ध के अंत तक राज्य अमेरिका नौसेना. डेविड मालन: तो क्या तुम जानते नहीं हो है कि यह में था इस एक ही उपकरण में एक शब्द है कि हम सब अब बहुत ज्यादा ले के लिए दी, कि एक बग के गढ़ा गया था. इसलिए इंजीनियरों की इस कंप्यूटर में काम कर सचमुच मशीन में एक छोटा सा कीट है कि परिणाम में पाया गया कुछ गलत गणना में. और कहानी के रूप में चला जाता है कि कीट इस लॉग इन करने के लिए टेप किया गया था यहाँ पत्रिका, वापस 9 सितंबर से 1940 में कुछ, और इस तरह दुनिया के लिए "बग" शब्द का जन्म हुआ. तो आगे हम में गलतियों के किसी भी प्रकार के कीड़े होने पर विचार कार्यक्रम, चाहे मानव निर्मित है या इस मामले में, कीड़े. कुछ घोषणाओं तो, जैसा कि हम आगे बढ़ना. तो CS50 तरह की लंच की पेशकश की एक परंपरा है सेमेस्टर, जहां हम 30 लेने के दौरान सबसे अधिक शुक्रवार आग से 40 छात्रों और स्क्वायर में आकस्मिक के लिए बर्फ गपशप, कंप्यूटर विज्ञान के बारे में बात करते हैं, भविष्य के बारे में बात करते हैं. हम उद्योग से पूर्व छात्रों और मित्रों को आमंत्रित करने के लिए चैट छात्रों के रूप में अच्छी तरह से. वास्तव में क्या एक काफी बड़े वर्ग की एक अंत की ओर सभी अधिक घनिष्ठ, कम से कम एक बार के लिए है जबकि छात्रों के सबसेट. तो अगर आप इस शुक्रवार हमें में शामिल होने के लिए करना चाहते हैं, 1:15, जाने के लिए RSVP के लिए CS50.net/lunch. और हम इस recurringly करूँगा, तो चिंता करने की नहीं अगर तुम नहीं हो पहले या तो इस सप्ताह 30 के बीच. तो मुंशी नोटों. संसाधनों पर एक शब्द है कि अब उपलब्ध किया जा रहा शुरू कर देंगे कक्षा में छात्रों के लिए. व्याख्यान के दौरान तो यह है कि अपने सिर नीचे नहीं हो की जरूरत है नीचे scribbling सब कुछ मैं कहता हूँ और आगे, तो हम क्या करते हैं बजाय शिक्षण स्टाफ से प्रदान नोटों की विहित सेट. तो हम हमारे शिक्षण साथियों के, एक एंड्रयू Sellergren है, जो हर सप्ताह नीचे बैठता है, वीडियो समीक्षाएँ, और फिर नीचे लिखते हैं कि हम क्या लगता है कि एक काफी है नोटों की आधिकारिक सेट. और एंड्रयू शौकीन में snarky फ़ुटनोट डालने का भी, नीचे. तो उम्मीद है कि आप के लिए एक संदर्भ पुस्तक के रूप में इन का आनंद लेंगे , और भी मज़ा, प्रश्नोत्तरी समय आते हैं, एक अवसर के रूप में की समीक्षा करने के लिए व्यक्तिगत व्याख्यान में क्या हुआ. तो उन व्याख्यान पेज पर जुड़े हुए हैं. समस्या 0 सेट, इस बीच, बाहर है. और आप के लिए उपलब्ध संसाधनों के संदर्भ में - walkthrough. मिलो शुक्रवार को पहली नेतृत्व किया. यह फिल्माया गया था, शनिवार से ऑनलाइन डाल दिया. और ऐसा एहसास है, अगर तुम सच में यकीन है कि जहां शुरू करने के लिए नहीं कर रहे हैं, इस या पी सेट भविष्य के लिए, हमेशा के लिए पहली बारी walkthrough या वीडियो तत्संबंधी. सेक्शनिंग कार्य प्रगति में है, cs50.net/section तुम कहाँ है अपनी वरीयताओं को प्रस्तुत करना चाहिए, अगर तुम नहीं है पहले से ही है, आज से. क्योंकि वर्गों इस आने वाले रविवार, सोमवार शुरू कर देंगे, और मंगलवार. हम उन तीन दिनों वर्गों करते हैं, हर हफ्ते अधिकांश भाग के लिए सेमेस्टर. और हम भी परिचय, फिर से, अलग पटरियों. तो आप इस सेक्शनिंग फॉर्म पर पूछा जाएगा, तुम अगर पहले से ही देखा नहीं है, अगर आप उन कम के बीच रहे हैं आरामदायक, और अधिक आरामदायक, या बीच में कहीं. और यदि आप बाड़ पर तरह के रहे हैं, आम तौर पर कहीं में सबसे अधिक छात्रों के बीच है जो अंत की जाँच. आज रात कार्यालय घंटे लगते हैं. तो खरोंच काफी कम महत्वपूर्ण है, भले ही यह काफी स्वाभाविक है विभिन्न कीड़े में चलाने के लिए, या कैसे करने के लिए के रूप में अनिश्चित हो कुछ को लागू. तो लगता है कि हम इस सप्ताह के कार्यालय घंटे शुरू कर देंगे. वे Annenberg में सोमवार, मंगलवार, बुधवार, गुरुवार, 08:00 से 11:00 के लिए मस्तिष्क को तोड़ने के दौरान. ऊपरी classmen में प्राप्त कर सकते हैं, और हो रही है अगर तुम कभी परेशानी है दरवाजे में, क्योंकि वे swiping हो जाएगा, बस अपने तरीके से बात में और समझा आप CS50 के साथ कर रहे हैं. आमतौर पर 20 से 30 कर्मचारियों पर हम वहाँ होना करने में मदद मिलेगी आप एक एक पर. आगमन पर विचार यह है: आप अपने लैपटॉप लाने करेंगे, आप अपने चार्जर होगा, हम अतिरिक्त बिजली डोरियों होगा, विशेष रूप से Annenberg के दक्षिण दीवार के साथ जहां वहाँ बिजली के आउटलेट के बहुत सारे है. और मुख्य प्रवेश कार्यालय घंटे क्यू एंड ए को इंगित करने के लिए जाना जाता है cs50.net/discuss और पोस्ट करने के लिए वहाँ अपने प्रश्न. और यह pset 0 या pset 1 के साथ लेबल करने के लिए, जो कुछ सप्ताह होना हो सकता है. और फिर हम क्या करेंगे क्या शिक्षण साथियों की एक मेज है और बेशक सहायकों, आम तौर पर 8 या हम में से 10 या तो, के माध्यम से जा रहे हैं, बोर्ड पर सतर्क नजर रखने, और बंद तोड़ सवालों के सच के रूप में जल्दी के रूप में हम कर सकते हैं, आप संबंधित पदों के लिए बात अगर आप उन नहीं मिला है अपने आप को, उचित रूप में ऑनलाइन संदर्भ,. और फिर अगर वहाँ समस्याएं हैं, वहाँ के रूप में अनिवार्य रूप से हो सकता है, या यह सिर्फ और अधिक समझ में आता है करने के लिए नीचे एक पर एक बैठते हैं, किसी के साथ समस्याओं के माध्यम से काम करते हैं. या आप बस कार्यालय घंटे में सच आ उस मानसिकता की जरूरत है. आप इलेक्ट्रॉनिक फार्म के माध्यम से जाना नहीं चाहता, क्या तुम वास्तव में किसी के साथ मिलना चाहता हूँ. हमारे लिए है कि संवाद, और क्या होगा जब आपके हम सवाल एक स्टाफ सदस्य के द्वारा देखा गया है, और निर्धारित करते हैं, हाँ, यह एक 20 या के लिए रवाना किया जाना चाहिए 30 टीम के सदस्यों को स्थानीय स्तर पर, आप शीर्ष पर यह देखना होगा छोड़ दिया थोड़ा कतार बटन दर्ज cs50.net / चमकती शुरू पर चर्चा की. और यह आप कह रही है कि तुम अब आमंत्रित किया गया है, तो बात करते हैं, करने के लिए कतार में प्रवेश. और उस बटन को क्लिक करके, तो आपके नाम पर दिखाई देगा एक iPad है कि CS50 स्वागतकर्ता, एक पाठ्यक्रम सिर, Annenberg के प्रवेश द्वार के निकट पकड़े, जो फिर देखने के रूप में यहाँ दर्शाया, जो छात्र पर सवाल बाईं, स्टाफ के सदस्यों जो सही पर उपस्थित हैं. और बाएँ और दाएँ के एक क्लिक के साथ, अपने वेब ब्राउज़र के रूप में के रूप में जल्द ही चमकाते हैं, उदाहरण के लिए, प्रोफेसर McGonnagal शुरू आप Annenberg में एक विशेष मेज पर देखने के लिए तैयार है. इसलिए हम यह पिछले साल के कुछ किया. हम कार्यालय घंटे और rebooted है सॉफ्टवेयर के फिर से लागू किया है. तो पता चलता है कि यह हो सकता है इस सप्ताह गर्म होगा. लेकिन यह भी एहसास भी, पिछले कुछ वर्षों में, जैसा कि आप सुना सकता है मित्रों से, कार्यालय घंटे वास्तव में 50 के लिए किया था 150 छात्रों को एक ही बार में. और यह सिर्फ हमारे लिए है कि संभाल करने के लिए संभव नहीं प्रभावी ढंग से, एक शाम भर में, एक पर. और इसलिए हम क्या वास्तव में इस साल के लिए करने की कोशिश जा रहे हैं तथ्य यह है कि सवालों का एक बहुत कुछ कर रहे हैं पर भुनाने अक्सर पूछे जाने और अक्सर बेहतर जवाब दिया जा सकता है asynchronously. तो आपको लगता है कि स्टाफ प्रतिक्रिया के माध्यम से हल कर सकते हैं, और हम अपने कोड के माध्यम से गर्म बिना बारे में सोच सकते हैं, जरूरी संघर्ष के दबाव के माध्यम से इसे कंधे से कंधा मिलाकर. तो हम अनुमान है कि सवालों के लगभग एक तिहाई या आधा व्यक्ति में भेजा जाएगा, और हम के रूप में बांधना की कोशिश करेंगे एक आधा या अधिक इलेक्ट्रॉनिक रूप में कई, कार्यालय समय के दौरान. और हम चर्चा करने के लिए उपयोग करने के लिए जारी होगा सप्ताह भर के रूप में अच्छी तरह से. और अंत में एहसास है कि इस पाठ्यक्रम से गुजारें / असफल करने के लिए लिया जा सकता है. तो अगर आप बाड़ पर हैं या बस लगता है कि आप वास्तव में कर रहे हैं यकीन है, नहीं तो यह आपके लिए दुनिया है या यह सच है आप के लिए काफी विदेशी का एहसास है कि यह एक बढ़िया तरीका है साथ में कदम कुछ विश्वास पाने की वर्ग, जैसे मैं स्पष्ट किया था, साल पहले. और फिर पांच सप्ताह आंकड़ा की तरह करने के लिए बाहर अपने आप को अगर आप गुजारें / असफल रहना चाहता हूँ, एक पत्र के लिए स्विच ग्रेड, या पसंद है. और आम तौर पर क्या गुजारें / असफल मुझे लगता है, छात्रों के लिए करता है कि, अगर आप में डाल दिया कि 10 घंटे, 20 घंटे, यह जो कुछ भी कुछ समस्याओं पर हो सकता है और आप अपने सिर की पिटाई कर रहे हैं दीवार के खिलाफ, और तुम सच में सिर्फ कुछ नहीं पीछा नीचे है, और आप कर सकते हैं कई अन्य चीजें आप क्या करने की जरूरत है, ईमानदारी से, मैं क्या लगता है गुजारें / विफल रहा है, यह बढ़त ले के बंद कि इस तरह की स्थितियों. तुम बात कहाँ रास्ते से 90% कर लिया है. तुम्हें पता है, यह काफी सही नहीं है. लेकिन आप इसे का एक बहुत कुछ मिला है, फिर भी. तो / आप दे रहे हैं कि के रूप में असफल पारित करने के लिए विचार मानसिक मॉडल, शायद. हम सब ठीक है, तो पिछले सप्ताह हम स्क्रैच में कबूतर, और एक काफी उच्च चित्रमय स्तर पर प्रोग्रामिंग के बारे में बात की है. और आज हम एक भाषा के लिए संक्रमण सी के शीर्ष पर एक निचले स्तर प्रोग्रामिंग भाषा कहा जाता है जो कई आधुनिक भाषाओं के अब कुछ सहित निर्माण कर रहे हैं, हम लोगों में से एक है अवधि के अंत की ओर का उपयोग होगा. और वाक्य रचना, क्या वे कैसे दिखते सभी काफी समान है. तो चलो इस संक्रमण यहाँ शुरू. तो यह एक कार्यक्रम पिछले हफ्ते था कि के सरल था दुनिया कार्यक्रमों हैलो. यह सिर्फ एक साथ स्क्रीन हैलो दुनिया, मुद्रित छोटा सा भाषण बुलबुला बिल्ली के बाहर आ रहा है. खैर, अगर हम अब शुरू करने के लिए दूसरे के लिए इस अनुवाद भाषा का एहसास है कि बुधवार को विचारों और आज समान हैं, लेकिन वाक्यविन्यास के लिए बदलने के लिए शुरू होता है. जबकि पिछले सप्ताह हम था, जब हरा झंडा क्लिक कहते हैं, हैलो दुनिया. आज हम int, मुख्य, शून्य, printf जा रहे हैं, वहाँ में कुछ अन्य के रूप में अच्छी तरह से वाक्य रचना के साथ वापसी. घुंघराले ब्रेसिज़, और लघुकोष्ठक, और उद्धरण, और whatnot. लेकिन पता है कि यहाँ विचार के मूल मुद्रण है, और अंत में तथ्य यह है कि मुख्य अब जा रहा है एक कार्यक्रम के शुरू करने के साथ पर्याय है. मुख्य करने के लिए हो सकता है, जहां हरा झंडा बातें kicks बंद जा रहा है. तो अब चलो अलावा इमारत ब्लॉकों में से कुछ यहाँ चिढ़ाने के इससे पहले कि हम कुछ ठोस उदाहरण में गोता. इसलिए हम इस एक बयान पिछले हफ्ते कहा जाता है, जिससे यह सिर्फ है एक अनुदेश. - क्या इस मामले में, दुनिया नमस्ते कहना. खैर सी में, अगर हम सिर्फ इतना है कि लाइन पर देखो, यह है कि हम कैसे कर रहे हैं कि विशेष पहेली टुकड़ा व्यक्त शुरू करने जा रहा है: printf ("हैलो दुनिया"); और अब हम समय के साथ इन के अलावा अधिक से अधिक चिढ़ाने के हूँ, लेकिन पता है कि वहाँ एक पैटर्न यहाँ है. एक तो, हम इस printf बुलाया बात है, जो है अनिवार्य रूप से करने के लिए शब्द अनुरूप कहो. यही कारण है कि यह क्या करने जा रहा है. Printf, और यहाँ च मतलब है "संरूपित". तो यह सिर्फ मतलब है कि आप सम्मिलित कर सकते हैं विभिन्न सौंदर्य विवरण. तो बोली गंदें शब्द बोलना हम क्या करने जा रहे हैं की शुरुआत है एक स्ट्रिंग बुला शुरू. एक शब्द, एक मुहावरा है, एक वाक्य. एक प्रोग्रामिंग भाषा में एक स्ट्रिंग शून्य का एक दृश्य है वर्ण या अधिक. ज - ए - एल - एल ओ, अल्पविराम तो, और बहुत आगे है, बोली गंदें शब्द बोलना, एक स्ट्रिंग. और अब n बैकस्लैश, एक छोटे से वाक्य रचना अजीब, लेकिन हम पहले से ही क्या अर्थ है कि पिछले सप्ताह के रूप में परिभाषित किया है? यह सिर्फ एक नई लाइन है. यह सिर्फ कंप्यूटर के लिए संदेश के एक तरह से आप चाहते है वहाँ दर्ज मारने की बराबर है, लेकिन तुम नहीं वास्तव में दर्ज करें और इसलिए सब गड़बड़ हिट करना चाहते हैं अपने वास्तविक कार्यक्रम के स्वरूपण. अब कोष्ठकों इस स्ट्रिंग लगाना, खुला paren और करीब कोष्ठक, और अंदर की है कि हमारे स्ट्रिंग है. क्योंकि है कि क्योंकि सी में, और अन्य प्रोग्रामिंग भाषाओं, चीजें printf तर्क ले की तरह है, या ले मानकों. तो अब एक के रूप में इस बैंगनी कहना ब्लॉक के बारे में सोच शुरू एक विधि के रूप में, एक प्रक्रिया के रूप में कार्य करते हैं. तुम सच में इसे कहते हैं जो कुछ भी अब आप के लिए करना चाहते हैं कर सकते हैं, लेकिन यह एक लघु कार्यक्रम है कि केवल एक करता है की तरह है एक एकल लाइन है, कोई कम से कम में बात. तो printf भी है कि क्या हम एक फोन शुरू करने जा रहे हैं इस मामले में, समारोह और कार्यों कुछ करना स्क्रीन करने के लिए एक स्वरूपित स्ट्रिंग प्रिंट - लेकिन कार्य भी तर्क या पैरामीटर ले. और तर्क या पैरामीटर, शुक्रिया, हम मतलब है कि उनके व्यवहार में आप क्या गुजरती हैं से प्रभावित हो सकता है अंदर कोष्ठक के. हम तो इस मामले में, printf की जरूरत है कहा जा सकता है क्या मुद्रित करने के लिए, और बस में पारित, दोहरे उद्धरण चिह्नों में यहाँ, स्ट्रिंग कि हम वास्तव में मुद्रित करना चाहते हैं. और इस लाइन के अंत पर सेमीकोलन सिर्फ एक है ऐतिहासिक उपद्रव जिससे कोड के अधिकांश लाइनों के अंत में, तुम एक सेमीकोलन डाल करने के लिए सुपर कंप्यूटर के लिए स्पष्ट करना कि कोड की इस पंक्ति यहाँ समाप्त होता है. अब यह अच्छा है क्योंकि जैसा कि हम देखेंगे के रूप में कार्यक्रमों को और अधिक हो जटिल, सेमीकोलन सुपर स्पष्ट हमें मनुष्यों कर देगा, और भी कंप्यूटर, जहां कोड शुरू और अंत की तर्ज. एहसास है कि कुछ भाषाओं को कुछ नहीं है ये एक ही विवरण के. और वास्तव में, जावास्क्रिप्ट में, आप हमेशा कुछ नहीं की जरूरत नहीं है सेमीकोलन की तरह. लेकिन अधिक है कि पर आने के लिए. तो loops. हम कुछ इस तरह था, बहुत intuitively स्पष्ट करते हैं, कुछ फिर से और फिर से. मोजे पर डाल, या नमस्ते, कह रही है इस मामले में. खैर, सी में आज शुरू, हम इस स्क्रैच व्यक्त कर सकता जबकि के रूप में ब्लॉक (सच) printf ("हैलो दुनिया"). तो हम सचमुच पहेली पर निर्माण शुरू कर रहे हैं नोटिस पहले से टुकड़ा. हम एक ही बैंगनी ब्लॉक है, लेकिन यह इस के अंदर है कोष्ठक हमेशा के लिए ब्लॉक, और सबसे अच्छा है कि अनुवाद सी के रूप में निम्नानुसार है. वहाँ कोई हमेशा के लिए खोजशब्द है. तुम बस सी. में च - ओ - r-e-V-e-r नहीं लिख सकते हैं तो निकटतम अनुरूप जबकि है. अब, जबकि (सच) एक छोटे से बेवकूफ लगता है क्योंकि मूल्य है सच कभी परिवर्तन की? मुमकिन नहीं है. यह कह रही है, जबकि एक की तरह है, जबकि, जबकि सच. यह सब एक ही बात है, सच हमेशा मामला नहीं है. तो वास्तव में इस पाश की किस तरह पाश उत्प्रेरण है? बस एक अनंत लूप, सही है. एक हमेशा पाश या के रूप में हम पिछले सप्ताह यह कहा जाता है, सिर्फ एक अनंत लूप. कभी कभी तो यह बुरी बात है. कभी कभी यह है कि एक बग है, कभी कभी है कि तुम क्यों मिलता है कताई समुद्र तट गेंद या hourglass या पसंद है. लेकिन इस मामले में, हम जानबूझकर के लिए जो भी कारण है, वही बात फिर से प्रिंट करना चाहता था और फिर. या एक घड़ी की तरह के मामले में, आप क्या करना चाहते हैं कुछ फिर से और फिर से. तो अनंत loops समझ कर सकता है. और यह है कि सी में हम हमेशा के लिए कोड के लिए अनुवाद कर सकते. तो अब यह एक एक छोटे से अधिक विशिष्ट है. हम 10 बार निम्नलिखित बयान दोहराना था. तो, जबकि (सच) काफी वहाँ काम नहीं करता है, क्योंकि सच है हमेशा सच. तो अगर हम बजाय सी संस्करण में देखो, अब वाक्यविन्यास एक हो जाता है थोड़ा अधिक गुप्त. लेकिन ईमानदार होना एक बार आप यह देखना शुरू करते हैं, यह सब हो जाता है बहुत जल्दी परिचित. तो यह है कि क्या एक पाश के लिए कहा जाता है. पाश के लिए एक कंप्यूटर को बताने के लिए कुछ करना जा रहा है फिर से और फिर से के रूप में के रूप में लंबे समय के लिए इन बातों को सच कर रहे हैं. अब हम क्या मतलब है? ठीक है, वहाँ के लिए तीन भागों पाश के लिए है, और हम करने के लिए जा रहे हैं इस के लिए वास्तविक के संदर्भ में वापस आ एक पल में उदाहरण. तो अगर यह काफी सभी को एक बार में सिंक नहीं करता है चिंता मत करो. लेकिन int i = 0 है, लंबी कहानी संक्षेप में, कह रही है मुझे एक दे चर कि प्रकार पूर्णांक की है, तो मुझे एक नंबर दे मैं कहा जाता है, और यह 0 से इनिशियलाइज़. यह मुझे एक बीजीय चर x की तरह दे और यह 0 से इनिशियलाइज़. लेकिन इस मामले में हम यह मैंने कहा. फिर बीच में, यह कहना है कि मैं कम से कम 10 है. है कि कंप्यूटर निम्नलिखित इतने लंबे समय के सामान कह रही है के रूप में मैं कम से कम 10 है. और जाहिर है, यह कम से कम 10 शुरू होता है क्योंकि यह 0 में शुरू होता है. तो अंत में, आप शायद मैं क्या + + मतलब अनुमान कर सकते हैं. यह वाक्यविन्यास का एक छोटा सा है कि बस मैं वेतन वृद्धि का मतलब है. तो मैं 1 जोड़ने के लिए, फिर से और फिर. और इसलिए के रूप में हम इस पाश देखेंगे, इस वाक्यविन्यास, बल्कि लागू करता है, ठीक ही बात है कि, सच में, स्क्रैच में सिर्फ इतना था बहुत आसान है व्यक्त करने के लिए. 10 दोहराएँ, और आप कर रहे हैं. सी में, और सबसे प्रोग्रामिंग भाषाओं में, हम करने के लिए एक होना चाहिए छोटे से अधिक कंप्यूटर के लिए वास्तव में शिक्षाप्रद और कुछ इस तरह निर्दिष्ट. लेकिन हम इस और अन्य वाक्यविन्यास वापस करने के लिए आया हूँ. चर के बारे में क्या? खरोंच में हम इन नारंगी ब्लॉक की तरह कुछ था, जहाँ मैं एक चर घोषित कर सकता है. चलो मनमाने ढंग से यह काउंटर कहते हैं. चलो यह 0 से शुरू करेंगे, और फिर हमेशा के लिए कुछ करना है. तो खरोंच में मैं इस मामले में काउंटर कह रहा हूँ, बिल्ली के लिए बोल रहा है कि एक छोटा सा भाषण बुलबुला किया जा रहा है संख्या है कि इस चर में है. और फिर हम 1 से परिवर्तन काउंटर है. तो इस सब के अंदर एक हमेशा के लिए ताला के लपेटा जाता है. तो अब हम पहले से ही के साथ सी में इमारत ब्लॉकों जो इस अनुवाद करने के लिए. एक तरह से हम कर सकता है कि यह है. मुझे एक पूर्णांक दे, यह काउंटर कहते हैं. यह 0 से इनिशियलाइज़ पहली लाइन में. जबकि () सच है, तो मैं बस एक पल से विचार चोरी कर रहा हूँ पहले, आगे बढ़ो और निम्नलिखित है. काउंटर बाहर प्रिंट, और तब काउंटर वेतन वृद्धि, फिर से, और फिर, और फिर. या फिर, + + सिर्फ मतलब है कि कुछ करने के लिए 1 जोड़ें. लेकिन वहाँ वाक्यविन्यास का एक नया टुकड़ा यहाँ है. क्या बाहर के रूप में हमारे पिछले उदाहरण के बीच कूद नहीं है? हाँ, यह% d. तो आप शायद अनुमान कर सकते हैं, यह क्या कर रही है स्पष्ट है, के आधार स्क्रैच पर क्या ब्लॉक कर रहा है. लेकिन फिर सी में, हम सिर्फ एक छोटे से अधिक विशेष रूप से होना है जब वह खुद को व्यक्त करने के लिए आता है. तो printf ("% d \ n"). सबसे है कि हम अच्छी तरह से परिचित के रूप में दूर फेंक कर सकते हैं. उद्धरण बस का अर्थ है बैकस्लैश n, यह एक स्ट्रिंग है सिर्फ एक नई लाइन है. तो केवल नई बात यहाँ% d है. और है कि सभी एक प्लेसहोल्डर है. % D एक दशमलव संख्या को निरूपित करने के लिए जा रहा है. और% d का मतलब कुछ कंप्यूटर, एक दशमलव संख्या यहाँ रख दिया. खैर, क्या नंबर पर आप वहाँ डाल चाहते हो? ठीक है, जैसा कि आप शायद अनुमान कर सकते हैं, हम अल्पविराम के बाद कहते हैं काउंटर, कि कि हम घोषित या एक चर के नाम है एक जोड़ी लाइनों पहले बनाया. तो यह सिर्फ एक में एक चर में plugging के सी की तरह है गतिशील स्ट्रिंग. क्योंकि इसके विपरीत, यदि मैं बजाय ऐसा कुछ किया था इस, printf ("काउंटर"), क्या यह होगा कार्यक्रम बजाय संभाव्यतः करते हैं,? यह सचमुच "काउंटर" मुद्रित करेंगे. जो प्रभाव है कि मैं चाहता हूँ नहीं है. मैं कुछ संख्यात्मक मूल्य में विकल्प की जरूरत है. तो हम उस कार्यों फिर printf की तरह देखेंगे, ले, नहीं कर सकते बस जैसे ही एक तर्क है, "हैलो दुनिया". वे बोली गंदें शब्द बोलना अल्पविराम ले सकते हैं, और फिर कुछ चर कि खामियों को दूर में मिलता है, जैसा कि हम पिछले स्ट्रिंग देखेंगे इन% हस्ताक्षर प्लेसहोल्डर के माध्यम से. खैर बूलियन अभिव्यक्ति के बारे में क्या? बूलियन अभिव्यक्ति में इन मूल्यों को, सही है या गलत थे. हाँ या नहीं. 1 या 0. पर या बंद. तो खरोंच में वे इस तरह लग रही है, और सूचना है कि नीचे यहाँ ब्लॉक वास्तव संयोजन है दो छोटे ब्लॉकों के. तो मैं एक तरह से खींच लिया और तीन पहेली टुकड़े गिरा साथ कि अब पहेली टुकड़ा बनाने के लिए तो वहाँ मुझे लगता है कि विचार है कि मैं एक्स y से कम है और होना चाहता हूँ पहुँचा सकता है y z कम से कम हो. और इसलिए मैं के रूप में इन दो अलग - अलग लाइनों का अनुवाद कर सकते हैं. ऊपर एक बहुत तुच्छता सी के लिए अनुवाद किया जा सकता है, बस के साथ x सिर्फ कह के हमारे रास्ते में सी दे, मुझे कार्य करता है कि किसी और ने लिखा करने के लिए उपयोग. और इस मामले में मुझे कोई परवाह नहीं क्योंकि मैं printf चाहते हैं. अब हम int मुख्य (शून्य) मिलता है. तो यह इन बातों में से एक है, स्पष्ट रूप से, कि 0 दिन बहुत ज्यादा मैं क्षेत्र के बाहर की तरह है, क्योंकि यह सिर्फ दिलचस्प नहीं बौद्धिक, वाक्यविन्यास के कुछ. लेकिन अब के लिए है कि कार्यों पता है, अन्यथा रूप में जाना जाता है प्रक्रियाओं, या तरीकों, आम तौर पर कुछ मूल्य का उत्पादन. वे कुछ करते हैं. वे एक जवाब के साथ आते हैं. वे उत्पादन का उत्पादन. तो int करने के लिए अगले मुख्य बस हमारे कह के आशुलिपि तरीका है कि इस समारोह में, इस प्रक्रिया के अंत में जा रहा है तुम्हें देने के लिए वापस एक संख्या. और यही वजह है कि हम वापस करने के लिए आया हूँ. मुख्य बस डिफ़ॉल्ट डिफ़ॉल्ट दुनिया मानक है समारोह में कहा कि एक सी कार्यक्रम में क्रियान्वित करने के लिए जब जा रहा है आप इसे चलाते हैं. शून्य सिर्फ इस बात का मतलब है, मुख्य, कोई लेता है इस मामले में तर्क है,. तो मैं सुपर स्पष्ट किया जा रहा है. वहाँ में कोई तार है, वहाँ कोई अल्पविराम है. शून्य मुख्य करने के लिए कोई तर्क का मतलब है. अब अंत में, शुक्र है, पिछले दो लाइनें परिचित हैं. घुंघराले ब्रेसिज़ के अंदर हम एक printf और हम मुनाफा होता है. और इस तरह की दुर्भाग्यपूर्ण है कि हम वापसी है यह वहाँ डाल दिया है, क्योंकि इस मामले में यह है कि सब नहीं कर रहा है ब्याज की ज्यादा. लेकिन एक कंप्यूटर प्रोग्राम में एक समारोह 0 जब देता है, इसका मतलब है कि सब कुछ ठीक है. कुछ भी नहीं गलत हो गया था. इसके विपरीत, यदि एक समारोह 1, या 1, या नकारात्मक रिटर्न 1337 नकारात्मक, या ऐसा कुछ यादृच्छिक संख्या, कि आम तौर पर इसका मतलब है कि वास्तव में एक त्रुटि हुई है. तो अगर आप अपने मैक या अपने पीसी पर कर रहे हैं, अगर तुम कभी देखा है कुछ कष्टप्रद संदेश है क्योंकि आपके कंप्यूटर या दुर्घटनाग्रस्त हो गया है जमे हुए है, और वहाँ एक गुप्त त्रुटि संदेश है, और फिर कुछ कोड है, प्रणाली की तरह कोड 1,2,3,4, कुछ संख्या, कि आम तौर पर एक अनावश्यक विस्तार से बताने के लिए है हम मनुष्यों के सबसे अधिक है, लेकिन क्या है कि कुछ समारोह या कुछ है कार्यक्रम वास्तव में, एक गैर शून्य मान वापस आ गया है. और इस का लाभ यह है कि 0 के रूप में अच्छी तरह से मतलब है, और तो आप अनिवार्य रूप से चीजें हैं जो की एक अनंत संख्या है गलत जा सकते हैं. यही वजह है कि वे अच्छे के लिए 0 फैसला किया और एक गैर शून्य के लिए मूल्य बुरा है, जैसा कि हम जल्द ही देखेंगे. तो चलो आगे बढ़ो और इस लिखने. तो याद है कि दूसरे दिन मैं अपने मैक का इस्तेमाल करने के लिए एक खुला टर्मिनल विंडो, और फिर मैं पाठ कार्यक्रम खोला, TextEdit, और मैं कुछ कोड लिखने शुरू कर दिया. अच्छा है कि ठीक है. लेकिन अपने अनुभव के लिए एक मैक पर अलग होने जा रहा है, या एक Solaris कंप्यूटर, एक Linux के कंप्यूटर, पर जो कुछ भी परिचालन प्रणाली आप का उपयोग किया हो. और इसलिए पाठ्यक्रम में, हम बजाय का उपयोग करने के लिए क्या कुछ है CS50 उपकरण बुलाया. तो CS50 उपकरण सॉफ्टवेयर का एक डाउनलोड टुकड़ा है है कि आप एक ऑपरेटिंग लिनक्स बुलाया प्रणाली को चलाने के लिए अनुमति देता है, विशेष रूप से अपने खुद के मैक या पीसी पर फेडोरा लिनक्स,. और आप एक hypervisor बुलाया कुछ को डाउनलोड करके यह करते हैं. तो इस सब के समस्या 1 सेट में दर्ज हो जाएगा. और तुम तुम क्या डाउनलोड करने की आवश्यकता की ओर निर्देशित किया जाएगा. लेकिन अंत परिणाम है, चाहे आप एक मैक या पीसी, आप है कुछ मुफ्त सॉफ्टवेयर डाउनलोड. तुम तो CS50 उपकरण डाउनलोड, और आपको बता मुफ्त सॉफ्टवेयर हाइपरविजर अपने कंप्यूटर पर एक खिड़की में CS50 उपकरण चलाने के लिए. और क्या होता है. अब मैं यहाँ नोटिस, क्या एक डेस्कटॉप प्रतीत होता है पर्यावरण. और मुझे वास्तव में इस एकल खिड़की हटना. तो अब यह मेरी मैक, एक छोटी सी खिड़की के साथ, और अंदर इस विंडो के लिए एक पूरी तरह होना होता है अलग ऑपरेटिंग सिस्टम. वास्तव में वहाँ इस प्रारंभ मेनू नीचे यहाँ है, की याद ताजा विंडोज, सहित कि उप मेनू की एक पूरी गुच्छा है, CS50 पुस्तिका, ड्रॉपबॉक्स, और इस तरह के लिए एक कड़ी. और इस माहौल क्या अब एक मानक वातावरण है है कि हम सब का उपयोग कर सकते हैं, ताकि कोई बात नहीं जो अपने कंप्यूटर है, क्या आप इस पर स्थापित किया है, क्या संस्करण मैक ओएस या Windows आप चल रहे हैं, हम सब अब वही वातावरण. और अब इस माहौल में हम कुछ कोड लिखने शुरू कर सकते हैं. तो मुझे आगे जाना है और एक कार्यक्रम बुलाया जीएडिट खोलने के लिए जा रहा हूँ. यह notepad.exe के लिए बराबर है, या एक मैक पर TextEdit. और यह सिर्फ एक सुपर सरल पाठ संपादन प्रोग्राम है कि पहली नज़र में इस तरह दिखता है. अब बहुत शीर्ष पर, मैं एक सफेद पैलेट है, मैं नीचे इस काले खिड़की कि jharvard @ उपकरण का कहना है. और है कि क्योंकि उपयोगकर्ता खाते है कि हम पूर्व बनाया हर किसी के लिए जॉन हार्वर्ड कहा जाता है. वह एक फ़ोल्डर है जहां उनकी फाइलों के सभी जा रहे हैं, और यहाँ है जहाँ हम कुछ कोड लिखने शुरू कर सकते हैं. तो चलो मुझे आगे जाना है और सिर्फ एक बिट में ज़ूम, और मैं कर रहा हूँ करने के लिए जा रहा , int मुख्य (शून्य) शामिल हैं, और तो मैं printf करने के लिए जा रहा हूँ ("हैलो दुनिया") ; 0 वापसी. अब यह सब काफी काले और सफेद है. मुझे आगे जाना है और बात करने के लिए एक जीएडिट मैं क्या कर रहा हूँ सिखाना वास्तव में कर रहे हैं. मुझे इस रूप में सहेजें जाना. मैं बाएं हाथ पक्ष में jharvard चुनने के लिए जा रहा हूँ. तो फिर, यहां तक ​​कि अगर आप लिनक्स से पहले इस्तेमाल कभी नहीं किया है स्पष्ट है, इन दिनों, उन सभी को अनिवार्य रूप में devolving रहे हैं अंतरफलक के एक ही प्रकार है - मैक ओएस, लिनक्स और. तो मैं है jharvard घर फ़ोल्डर चुना है. और मैं hello.c के रूप में इस फाइल को बचाने के लिए जा रहा हूँ. तो बहुत शीर्ष पर, मैं hello.c टाइप, एक सी नामकरण ग. विस्तार के साथ कार्यक्रम है क्या सामान्य अभ्यास है. और मैं सहेजें मारा. और अब क्या अच्छा है कि मैं प्रभावी जीएडिट सिखाया है, कि यह एक सी कार्यक्रम है. सूचना है कि अब मेरे काले और सफेद पाठ कोडित रंग, या वाक्यविन्यास पर प्रकाश डाला है, जो सिर्फ मेरी ओर ध्यान खींचता है कार्यक्रम के विभिन्न अर्थ भागों. शीर्ष पर छोड़ दिया है, के रूप में अपने कार्यक्रमों को और अधिक जटिल हो, मैं कर रहा हूँ बातें मैंने लिखा है सभी का एक सारांश है. तो यह है कि वहाँ है. तो चलो अब मुझे बाहर ज़ूम और इस टर्मिनल विंडो के लिए नीचे जाने के लिए. तो यह शायद कई लोगों के लिए नया है. यदि आप एक कमांड लाइन वातावरण इस्तेमाल कभी नहीं किया है, तो आप कभी नहीं डॉस प्रयोग किया जाता है, या आप लिनक्स इस्तेमाल कभी नहीं किया है, या आप कभी नहीं खोला है अपने मैक ओएस टर्मिनल विंडो, वहाँ चीजों की एक बहुत कुछ है ओर इशारा करते हुए, और क्लिक करने के रूप में जीयूआई के साथ कर सकते हैं, और खींचकर, और छोड़ने, और यह पसंद है, लेकिन आम तौर पर - निश्चित रूप से कंप्यूटर विज्ञान की दुनिया में - एक कमांड लाइन है, जहां आप अपने माउस नहीं है का उपयोग आम तौर पर, आप केवल अपने कुंजीपटल है, वास्तव में एक बहुत कुछ है इंटरफ़ेस की तुलना में अधिक शक्तिशाली है, एक बार आप को आदत हो विभिन्न कमानों. और आप को इंगित करने के की जरूरत के अपने आप को मुक्त की तरह और क्लिक करें सब कुछ पर. तो जी - एडिट में हम दोनों को संसार का सबसे अच्छा है सुलझा लेंगे. हम खींचें और पाठ ड्रॉप कर सकते हैं, हम इसे देख सकते हैं अच्छा है और रंग कोडित. लेकिन जब यह समय आता है हमारे कार्यक्रम चलाने के लिए, हम कभी कभी सिर्फ इस छोटी सी खिड़की यहाँ का उपयोग करें. तो मुझे आगे जाना है और यह करने के लिए जा रहा हूँ. नीचे काले और सफेद खिड़की में, मैं आगे जाने के लिए जा रहा हूँ और बजना लिखने. और बजना एक संकलक का नाम है. यह एक प्रोग्राम है कि अपने स्रोत कोड धर्मान्तरित में है, तो ऑब्जेक्ट कोड. 0s और 1s, कि हम पिछले हफ्ते संक्षिप्त देखा. पिछले सप्ताह से याद है, हमने वादा किया था कि हम करने के लिए जा रहे थे कुछ इस तरह से जाने - हम होने की जरूरत कुछ इस तरह - और यह निश्चित रूप से कुछ है कि एक मानव जा रहा है नहीं है स्वयं करने के लिए. तो बजाय हम एक प्रोग्राम का उपयोग करने के लिए जा रहे हैं, और कहा कि कार्यक्रम में इस मामले बजना कहा जाता है. और अपने कार्यक्रम के नाम hello.c है. तो क्रम में स्रोत कोड से hello.c में संकलन करने के लिए वस्तु कोड, या 0s और 1s, यह बस के लिए पर्याप्त होना चाहिए इस और हिट दर्ज करें. ठीक है, कुछ भी नहीं हुआ है लगता है. लेकिन मैं अब, या पिछले सप्ताह से पता है, कि डिफ़ॉल्ट के नाम एक कार्यक्रम है, जब सी में लिखा है, मूर्खता a.out कहा जाता है. हाल रसहीन नाम आप के साथ आ सकता है. वर्णमाला का पहला अक्षर है, बाहर क्या था outputted है, लेकिन ऐसा ही होगा. यह मेरा कार्यक्रम है, और अब डॉट स्लेश, जैसा कि हम देखेंगे, वास्तव में सिर्फ सुरक्षा सुविधा का एक प्रकार है, क्योंकि a.out एक कार्यक्रम मैं लिखा है. यह मेरे कंप्यूटर के साथ नहीं आया था, यह प्रोग्राम फ़ाइलें में नहीं. यह मैक ओएस अनुप्रयोग फ़ोल्डर में नहीं है. मैं सुपर कंप्यूटर के साथ स्पष्ट करने की आवश्यकता है, और कहते हैं इस कार्यक्रम, a.out, वर्तमान फ़ोल्डर में है, वर्तमान निर्देशिका. और जिस तरह से आप इस तरह के माहौल में इस प्रतिनिधित्व डॉट का प्रतिनिधित्व करता है फ़ोल्डर जो तुम्हें अंदर वर्तमान में कर रहे हैं और इसलिए / बस चलाने a.out का मतलब वर्तमान फ़ोल्डर में. और मैं दर्ज करें, और देखा, मेरी बहुत पहले कार्यक्रम के साथ इस दौड़. अब मुझे एक कदम वापस ले. इस विंडो को एक छोटे से छोटा है, और पता है कि नीचे उपकरण के यहाँ छोड़ दिया एक और प्रतीक है. एक क्रोम है, जो काफी परिचित होना चाहिए, सिर्फ एक वेब उपकरण के अंदर ब्राउज़र. और इस काले और सफेद चिह्न सिर्फ एक है बड़ा टर्मिनल विंडो. तो अगर यह एक छोटी सी की तरह कष्टप्रद हो जाता है बस है एक खिड़की के इस छोटे से टुकड़ा जो के साथ बातचीत करने के लिए कार्यक्रमों के साथ, हम बजाय यह कर सकते हैं. और अब मुझे कुछ जल्द ही टाइपिंग शुरू परिचित कमांड होना. रास. तो रास लिस्टिंग के लिए आदेश है. तो एक मैक ओएस या Windows में, आप आमतौर पर एक डबल क्लिक करें और फिर फ़ोल्डर, देखा, आप विभिन्न फ़ाइलों के सभी देखें फ़ोल्डर्स और. एक कमांड लाइन वातावरण, जहाँ आप केवल लिख सकते हैं आदेश या पाठ, रास बराबर है. तो मुझे दिखाने के लिए क्या इस निर्देशिका में है. अब वहाँ सामान का एक गुच्छा है कि दोनों एक छोटी है परिचित हैं और एक छोटे से अपरिचित है. लेकिन सूचना है कि सिर्फ विंडोज और मैक ओएस, jharvard जैसे एक डेस्कटॉप फ़ोल्डर है. तो किसी भी प्रतीक है कि अपने डेस्कटॉप पर हैं होने कि फ़ोल्डर में. वहाँ एक डाउनलोड फ़ोल्डर, कि सामान क्रोम वहाँ डाल सकते हैं. ड्रॉपबॉक्स. तो उपकरण ड्रॉपबॉक्स के लिए समर्थन में निर्मित के साथ आता है तो यह है कि सेमेस्टर से अधिक आप अपने ड्रॉपबॉक्स के साथ सिंक कर सकते हैं खाते में इतनी है कि अपने कार्यक्रमों के सभी समर्थित हैं. वे अपने अन्य कंप्यूटर पर सुलभ हो. अगर कभी कुछ उपकरण के साथ गलत हो जाता है, तो आप कर सकते हैं ड्रॉपबॉक्स से बहुत आसानी से ठीक हो जाते हैं. तो उस फ़ोल्डर कि वहाँ के लिए है. Hello.c - दो फ़ाइलों है कि मैं कर दिया है और a.out. और फिर सही करने के लिए कुछ अन्य फ़ोल्डर्स है कि हम करेंगे सेमेस्टर के अंत की ओर वेब के साथ, प्रोग्रामिंग. तो जब मैं /, a.out, दर्ज करें, जो कह रहा है जाओ निर्देशिका में मैं, वर्तमान निर्देशिका हूँ, और चलाने कार्यक्रम a.out सही वहाँ बुलाया. ठीक है, इतना है कि अच्छा है और अच्छा है, लेकिन यह सब नहीं है एक कार्यक्रम बुलाया मदद a.out लिखने के लिए मजबूर है. तो हम वास्तव में यह थोड़ा अलग कर सकते हैं. तो बजाय सिर्फ चल बजना, hello.c, चलो जोड़ने के एक कमांड लाइन तर्क क्या कहा जाता है. तो एक कमांड लाइन तर्क, या इस मामले में एक स्विच, बस है एक और शब्द या वाक्यांश है कि आप के बाद एक प्रॉम्प्ट पर टाइप कार्यक्रम आप चलाना चाहते हैं. तो इस मामले में, बजना कार्यक्रम मैं चलाना चाहते हैं, ओ उत्पादन का मतलब है कि अब और नहीं a.out कहा जाता है एक फ़ाइल. एक फ़ाइल आउटपुट हैलो कहा जाता है, और संकलन से ऐसा करते हैं लाइन पर अंतिम शब्द, hello.c. तो संक्षेप में, यह एक बहुत ही मामूली सुधार है, जिससे इस stupidly नाम फ़ाइल a.out होने की बजाय, मैं अब बजना ओ हैलो, तो hello.c कर सकते हैं, और तो हिट दर्ज करें. कुछ नहीं होने लगता है, लेकिन फिर से 0 के साथ बहुत पसंद है - जब कुछ भी नहीं करने के लिए हो सकता है कि कुछ भी गलत नहीं हुआ है का मतलब है लगता है - तो रास अब, दर्ज करें, और वास्तव में अब मैं हैलो कार्यक्रम है. तो अगर मैं नमस्ते अब टाइप पाया गया है, आदेश नहीं. ठीक है, /. बिल्कुल सही. इसलिए मैं इस कार्यक्रम क्योंकि लिखा है, और यह साथ नहीं आया था कंप्यूटर / नमस्ते दर्ज करें, मतलब है, मैं अब हैलो चल रहा हूँ. तो यह है कि यह वहाँ है. अब हम क्या अंत में अधिक से अधिक कमांड लाइन के लिए मिल जाएगा तर्क है कि हमें और अधिक करने के लिए अनुमति देते हैं, लेकिन बस के लिए उन लोगों के लिए जिसे इस पुरानी टोपी हो सकता है, मुझे वास्तव में एक में जाना निर्देशिका यहाँ और सिर्फ तुम हम और कैसे का एक नमूना दे हैलो दुनिया को लागू करने के बारे में जा सकते हैं. मुझे यहाँ में जाने के लिए, और मैं इसे खोलने के लिए जा रहा हूँ. तो वास्तव में, मैं समझा कि मैं क्या कर रहा हूँ जा रहा हूँ तो, यह उपयोगी है. मुझे वापस ऊपर. इसलिए मैं इस किया गया है और एक लंबे समय से कर रही है. तो सही पर नोटिस वहाँ के एक जोड़े हैं निर्देशिका है कि अजीब तरह से source1m और source1w नाम पर कर रहे हैं. यह सिर्फ मूर्ख सम्मेलन का उपयोग हम है. स्रोत सिर्फ स्रोत कोड का मतलब है 1 इसका मतलब है, यह एक सप्ताह है, और मीटर मतलब है यह सोमवार है, और डब्ल्यू मतलब यह बुधवार है. इसलिए वहाँ गुप्त नहीं. यह सिर्फ आशुलिपि संकेतन है. ये नीले बातें फ़ोल्डर्स, अन्यथा रूप में जाना जाता है निर्देशिका. मैं अब उस फ़ोल्डर में जाना चाहते हैं, और एक सामान्य कंप्यूटर पर मैं सिर्फ एक फ़ोल्डर आइकन पर डबल क्लिक कर सकते हैं और वहाँ मेरी सारी फाइलें. लेकिन एक कमांड लाइन वातावरण में, मैं काफी नहीं कर सकते हैं कि, तो बजाय, मैं निर्देशिका मैन्युअल रूप से बदल दिया है. तो अगर मैं सीडी और source1m तो टाइप दर्ज करें, सूचना है कि मेरे शीघ्र बाईं पर सफेद में बात, बस बदल दिया है. और तो वास्तव में, जब यह सिर्फ कोष्ठक और फिर कहा छोटे विद्रूप, टिल्ड प्रतीक है, कि सिर्फ मतलब मैं था जॉन हार्वर्ड घर निर्देशिका में, अपने मेरे दस्तावेज़, अपने व्यक्तिगत फ़ाइलों. लेकिन अब कोष्ठक में यह ~ source1m / कहते हैं. यह सिर्फ मतलब है कि मैं एक source1m फ़ोल्डर बुलाया में हूँ है कि जॉन हार्वर्ड घर निर्देशिका में है. तो अगर मैं अब इस फ़ोल्डर में फ़ाइलें सूची, आसान करना चाहते हैं सवाल है, मैं बस रास लिखें. और अब मैं फ़ाइलों के सभी देखते हैं कि मैं आज के लिए पूर्व बनाया व्याख्यान, जो सभी के, जिनमें से अधिकांश या हो सकता है, ग में खत्म होता है. तो मुझे अब आगे जाने के लिए और एक कार्यक्रम बुलाया के जीएडिट चलाने holloway.c, जो कुछ बेतरतीब हैकर ने लिखा है इंटरनेट पर, कि इस तरह एक छोटे से लग रहा है. और हम किसी भी इस एक के माध्यम से जाने के लिए नहीं जा रहे हैं विस्तार, लेकिन उन लोगों को अधिक आरामदायक के लिए, विशेष रूप से अगर, आप इस कार्यक्रम यहाँ क्या करता है के रूप में एक अनुमान ले जाना चाहता हूँ. बाकी का आश्वासन दिया है, चाहे आप कम या अधिक आराम कर रहे हैं, हम भी के अंत तक इस तरह की बात के लिए नहीं मिल रहे हैं इस सेमेस्टर. यह वही है जो एक obfuscated सी प्रतियोगिता, का एक उदाहरण है जो मतलब सबसे गुप्त देख आप संभवतः कार्यक्रम लिखने के लिए अन्य स्मार्ट लोगों को आगे बढ़ना के लिए कर सकते हैं, जो इसी तरह कर रहे हैं बातें लिखने की कोशिश कर रहा है और से पता चलता है कि वे लिख सकते हैं आप अधिक से अधिक गुप्त बातें. तो इस से एक अच्छी तरह से लिखा कार्यक्रम का एक उदाहरण नहीं है शैली के परिप्रेक्ष्य में, यह एक प्रोग्राम है कि एक उदाहरण है लोगों के लिए कोशिश कर रहा है के लिए एक प्रतियोगिता जीतता है, अस्पष्ट और अमूर्त हो. तो अगर हम इस बात को चलाने, मुझे अपने टर्मिनल विंडो में जाना, इतनी बात करने के लिए. तो इस काले और सफेद वातावरण कहा जाता है टर्मिनल आम तौर पर खिड़की. मुझे आगे जाना है और यह संकलन. मैं बजना का उपयोग करने के लिए नहीं जा रहा हूँ, क्योंकि इस कार्यक्रम थोड़ा गुप्त है और यह एक अलग की जरूरत है संकलक, एक जीसीसी बुलाया. लेकिन यह एक ही बात करता है. यह ऑब्जेक्ट कोड के लिए स्रोत कोड लेता है. और अब अगर मैं a.out, प्रोग्राम है कि आप चलाने अभी देखा इस करता है. तो है कि साथी कि वर्ष है कि प्रतियोगिता जीती. किसी भी तरह, हम उस दिशा में, प्रतिशत से नहीं जा रहे हैं. तो चलो वास्तव में अब अलग को चिढ़ाने के के लिए हम क्या कर सकते हैं की कोशिश इन बुनियादी इमारत ब्लॉकों के साथ अधिक से अधिक करने के लिए रोचक कार्यक्रमों. तो हम एक प्रोग्राम लिखा है, हम एक कार्यक्रम चलाने की है. अब हम वास्तव में आसान बनाने के लिए और नहीं रह लिखना कर सकते हैं शीघ्र शब्द बजना. यह पता चला है के रूप में हमारे कार्यक्रमों को और अधिक गुप्त हो, हम कर सकते हैं, या अधिक जटिल बजाय, हम वास्तव में इस आदेश चला सकते हैं. तो मुझे मेरे घर निर्देशिका में वापस जाने के लिए है, तो बात है, मुझे हटाने के rm हटाने आदेश है - I 'दूर जा फ़ाइल a.out बुलाया और हैलो. और अब एक कमांड लाइन वातावरण में नोटिस, बहुत तरह एक GUI, आपसे कहा जाए मिलता है. मैं हालांकि एक बटन क्लिक नहीं कर सकते हैं, मैं हाँ के लिए y प्रकार, और हाँ के लिए y है. और अब अगर मैं रास फिर से लिखें, सूचना है कि उन हरे कार्यक्रमों a.out और हैलो - गए हैं. Rm खबरदार. यह बुरी बातें करते हैं, खींच द्वारा कर सकते हैं, आप कर सकते हैं अपने कचरा बातें. तो अब आगे जाना है - और मैं यह कर सकता - बजना - ओ हैलो, हैलो मैं पहले से ही है कि आदेश टाइपिंग ऊब रहा हूँ. हालांकि मैं इसे जल्दी से एक छोटे से टाइप. तो हम बजाय हैलो बनाने के लिए कर सकते हैं. तो एक संकलक बनाने के लिए नहीं है. यह सिर्फ एक दोस्ताना प्रोग्राम है कि Linux के साथ आता है, इस में मामले ऑपरेटिंग सिस्टम - कि कार्यक्रम संकलन की प्रक्रिया automates. तो बजाय का बजना ओ फ़ाइल नाम और याद तो बहुत आगे है, विशेष रूप से एक बार उन लाइनों अब जाओ और लंबे समय तक, मैं सिर्फ बनाने के लिए लिख सकते हैं. और यह है कि सामान की एक पूरी गुच्छा थूक जा रहा है हम अंततः इस सेमेस्टर के देखेंगे. लेकिन अब नोटिस अगर मैं प्रकार रास, हैलो मेरे निर्देशिका में वापस आ गया है. और वास्तव में मैं इसे साथ चलाने / कर सकते हैं. हैलो. तो बस चल रहा था की प्रक्रिया automates, इस मामले में, एक बहुत लंबे समय है, और अधिक जटिल आदेश. इसलिए हम बनाने का उपयोग शुरू करने के लिए जा रहे हैं, क्योंकि यह एक बहुत कुछ है अधिक उपयोगकर्ता के अनुकूल. लेकिन अब हम एक और अधिक दिलचस्प कार्यक्रम की तुलना में सिर्फ हैलो कहने. तो हम कार्यक्रमों में लिखा है इस प्रकार अब तक वहाँ मुख्य है. वह सिर्फ मूलभूत बात यह है कि सब कुछ बंद kicks है. लेकिन वहाँ अन्य कार्यों बाहर वहाँ के रूप में अच्छी तरह से कर रहे हैं, और stdio.h बात है कि हम हमारे के शीर्ष पर देखा है पहले फ़ाइल, और कि क्या मानक पुस्तकालय के रूप में जाना जाता है. मानक पुस्तकालय के अंदर कार्यों की एक पूरी गुच्छा है कि किसी और ने लिखा है, और हम इन का उपयोग शुरू कर सकते हैं कार्य और अधिक लिखने के लिए दिलचस्प कार्यक्रमों खुद. तो मुझे उपकरण को वापस जाने के. मैं इस टर्मिनल विंडो को बंद करने के लिए जा रहा हूँ. मैं बातें हम पहले लिखा था बंद करने के लिए जा रहा हूँ, और बस जाओ hello.c में, और अब मैं नोटिस निम्न कर सकते हैं. नमस्ते दुनिया है कि सभी दिलचस्प नहीं है, मैं करने के लिए करना चाहते हैं खुद के लिए इस कार्यक्रम को निजीकृत. तो बजाय दुनिया कह रही है, मैं जा रहा हूँ आगे जाना है और कहते हैं - मैं दाऊद टाइप कर सकते हैं, लेकिन यह सच की तरह है मौलिक ही है. लेकिन बाहर इस प्लेसहोल्डर विचार करने की कोशिश करते हैं. Printf में नहीं बल्कि, सी में कि याद है, हम इन था प्लेसहोल्डर्स, और वहाँ सिर्फ% d से अधिक कर रहे हैं. % D तो था, जल्दी मानसिक स्वास्थ्य की जांच की. ठीक है, दशमलव संख्या, यह बात है. दशमलव अंक, वह सब है. % ग तो, जैसा कि हम मुठभेड़, एक चरित्र को होने जा रहा है. एक चरित्र यहाँ रखो, जेड के माध्यम से एक पत्र, या विराम चिन्ह. एक ही चरित्र,% च, अन्य भाषाओं से किसी को पता है? तो एक फ्लोटिंगपाइंटमूल्य. एक वास्तविक संख्या. तो एक दशमलव संख्या नहीं है - यह वास्तव में एक वास्तविक संख्या के साथ है एक दशमलव बिंदु, और कुछ छोड़ दिया करने के लिए अंकों की संख्या और यह सही है. % S स्ट्रिंग. एक है कि हम अक्सर देखने के लिए जा रहे हैं. एक स्ट्रिंग, फिर से, सिर्फ एक शब्द, एक मुहावरा है, का एक दृश्य है व्यक्तिगत चरित्र. और अंत में, Lld? इसलिए इस एक कोने मामले की अधिक है. लंबे, लंबे दशमलव. तो अगर तुम सिर्फ एक संख्या है कि इस बड़े, नहीं चाहते हैं एक बड़ी संख्या चाहते हैं, आप निर्दिष्ट करने के लिए जा रहे हैं कंप्यूटर है कि यह एक विशेष आकार की है. तो चलो यह एक छोटा सा tweak. सिर्फ दाऊद में कठिन कोड के बजाय, मुझे थोड़ा गतिशील% s कहते हैं. तो% s यहाँ रखा है, जो एक स्ट्रिंग के लिए एक प्लेसहोल्डर है. तो मुझे अल्पविराम करते हैं, और फिर यहाँ पर "दाऊद". अब यह सब है कि बौद्धिक दिलचस्प नहीं है, क्योंकि मैं अब किया है वास्तव में और अधिक के लिए काम बनाने कंप्यूटर. के बजाय कंप्यूटर बता यह सब एक ही बार में करते हैं, अब मैं हूँ कह रही है इस करते हैं और यहाँ एक स्ट्रिंग के अंत में डालने, अल्पविराम, यहाँ कि स्ट्रिंग है. तो यह एक बेहतर सुधार नहीं है, लेकिन यह कम से कम एक और रोचक कार्यक्रम की ओर एक कदम है. क्योंकि अब, मुझे आगे जाना है और यह एक छोटे से विंडो बड़ा है, मुझे आगे जाना है और बनाने हैलो चलाने के. और अब, / a.out काम नहीं कर रहा है, क्यों? ठीक है, अब यह नमस्ते कहा जाता है. तो फिर भी एक ओ के साथ बजना, नाम कार्यक्रम के लिए कुछ और अधिक दिलचस्प हो. और देखा: अब इसे कहते हैं हैलो David. सब ठीक है, अभी भी एक बेवकूफ कार्यक्रम. तो अब हम वास्तव में यहाँ वापस जाओ और धारणा परिचय एक चर के. यह अच्छा नहीं होगा अगर मैं एक चर घोषित कर सकता है जिसका प्रकार स्ट्रिंग है? और चर मूल्य वास्तव में उपयोगकर्ता से आता है उसे या खुद. अब मनमाने ढंग से, मैं मेरे चर है, जो फोन करने के लिए जा रहा हूँ सिर्फ एक आम सम्मेलन है जब आप एक चर बुलाया स्ट्रिंग. मैं बराबर का चिह्न करना करने के लिए जा रहा हूँ, और फिर मैं एक कॉल करने के लिए जा रहा हूँ समारोह GetString बुलाया. तो GetString कुछ है कि सी. यह है में बनाया आता नहीं है एक समारोह में कहा कि CS50 स्टाफ ने लिखा है, के लिए वास्तव में सिर्फ सप्ताह के इन पहली जोड़ी है, की प्रक्रिया को सरल उपयोगकर्ता इनपुट हो रही है और प्रपत्र में उपयोगकर्ता इनपुट पाने तार, या संख्याओं, और इस तरह के. तो GetString printf की तरह है, लेकिन जाहिर बजाय मुद्रित करने के लिए यह करने के लिए जा रहा है उसका नाम क्या कहते हैं, एक स्ट्रिंग मिलता है. लेकिन GetString का उपयोग करने के लिए, हम करने के लिए एक बदलाव बनाने के लिए जा रहे हैं यहाँ, इस से परे. तो intuitively, इस कार्यक्रम, उम्मीद है कि, किसी भी तरह से जा रहा है उपयोगकर्ता से एक स्ट्रिंग हो, और फिर यह क्या करने जा रहा है उस तार के साथ, कहा जाता है? यह सिर्फ इसे छापने के लिए, सही जा रहा है? फिर भी उत्तेजक कार्यक्रम नहीं है क्योंकि यह सब चल रहा है जहां% s में है कि मूल्य में प्लग है कहते हैं कि यह जाना चाहिए. तो चलो कम से कम कार्रवाई में यह देखने के लिए. मुझे बचाने के लिए और बाहर ज़ूम. अब यहाँ मेरे टर्मिनल विंडो में नीचे एक छोटा सा टुकड़ा है, मुझे फिर से करना हैलो. ठीक है, और आह, लानत, मैं त्रुटियों की एक पूरी गुच्छा मिला. मुझे स्क्रॉल करें, और हम अपने पहले देखते हैं - तो वास्तव में एक भी बड़ा विंडो में यह तो तुम चलो देखने के लिए कितनी बुरी तरह से मैं बँधा कर सकते हैं - इतना हैलो बनाने. ठीक है, कि एक आपदा है, है ना? मैं कोड की तीन पंक्तियों में लिखा है, और यह मुझे 12 त्रुटियों दिया है. तो यह क्यों होता है? तो सौभाग्य से, बार बार जब आप देखते हैं, कई त्रुटियाँ एक ही बार में बाहर थूकना, यह वास्तव में सिर्फ इसलिए है क्योंकि आपने कंप्यूटर यहाँ उलझन. और यह समय यह नीचे हो जाता है यहाँ से उलझन में रहता है. और इसलिए यह सिर्फ tripping, और ठोकरें खाते हुए चल शुरू होता है, और अधिक डरावना सामान थूकना तुलना में वास्तव में लागू होता है. तो सामान्य रूप में, हमेशा एक शीर्ष के साथ शुरू करते हैं. तो बहुत ऊपर लाल, सबसे उदाहरण इस त्रुटि संदेश है. अघोषित पहचानकर्ता स्ट्रिंग का प्रयोग करें, मैंने किया में मानक क्या मतलब है? मैं नहीं था. मैं स्ट्रिंग का मतलब है, लेकिन इस वजह से भी है, शब्द स्ट्रिंग कि मैं वास्तव में मौखिक रूप से का उपयोग कर रखना या तो सी में मौजूद नहीं है. यह कुछ हम पहली या दो सप्ताह के लिए इस्तेमाल करेंगे यहाँ है, लेकिन यह एक cs50.h. नामक एक फाइल में मौजूद है तो अब के लिए, पता है कि वहाँ इस अन्य पुस्तकालय है कि स्टाफ लिखा है, तो यह अधिक से अधिक हाल ही में लिखा गया है stdio.h. लेकिन cs50.h के अंदर एक परिभाषा है, का एक पर्याय प्रकार है, कि इस शब्द स्ट्रिंग बनाता है. तो अब मुझे मेरे टर्मिनल विंडो में वापस जाने के. मैं Ctrl-एल द्वारा इस सारी गंदगी को साफ करने के लिए जा रहा हूँ. हम बस भी सब कुछ साफ है, और मुझे आगे जाना है और बनाने के लिए जा रहा हूँ नमस्ते फिर से दर्ज करें. तो अब क्या हो गया है? अब उन त्रुटियों के सभी चले गए. तो मैं वास्तव में क्या किया है? मैं सिर्फ कंप्यूटर सिखाया है कि स्ट्रिंग मौजूद है, और यह है कि cs50.h. नामक एक फाइल में तो शिकायत, क्योंकि अब तुम्हें पता खोजने के लिए जहां बंद करो उस समारोह की घोषणा तो बात करो. जहां यह दुनिया में मौजूद है. तो अब मुझे आगे जाना है और हैलो चलाने के लिए जा रहा हूँ. मैं एक अनंत लूप, कुछ नहीं हो रहा है लगता है. तो मैं यहाँ कुछ सही टाइप करने की जरूरत है. अपने कार्यक्रम में कोड की पहली पंक्ति GetString किया गया था. तो यह सचमुच मेरे लिए एक स्ट्रिंग पाने के लिए इंतजार कर रहा है. तो उस अर्थ में हाँ, यह एक अनंत लूप है. जाहिरा तौर पर GetString में डिफ़ॉल्ट व्यवहार है कि हम श्लोक - लिखा था - कि बस का कहना है इंतज़ार करो और इंतज़ार करो और इंतज़ार करो और इंतज़ार करो और इंतजार जब तक आप उपयोगकर्ता अंदर कुछ लिखकर एक स्ट्रिंग देता है तो मुझे आगे जाना है और D-a-V में टाइप - मैं - घ, दर्ज करें. और वहाँ है, हैलो डेविड. अब इस तरह यह सिर्फ एक नाटक है लगता है? मुझे आगे जाना है और टॉमी में टाइप. दर्ज करें, ठीक है, काम करने लगता है. रोब, Zamyla के लिए काम करता है, के लिए काम करता है के लिए काम करता है - ठीक है. तो यह काम करने के लिए, सबसे अधिक संभावना जा रहा है. तो इसे बाहर प्रिंट जो कुछ भी हम वास्तव में इसे छोड़ देना चाहिए, और हम यहाँ थोड़ा मुश्किल हो सकता है. चलो देखते हैं अगर हम हैलो की तरह कुछ करते हैं. यहाँ पर जा सकते हैं, चलो, कॉपी, पेस्ट. मैं पेस्ट करने में सक्षम हो सकता है कि कई बार यहां नहीं जा रहा हूँ. चिपकाएँ, ठीक है, Ctrl + + V Shift तो क्या कर सकता हो सकता है कि बुरा यहाँ है? ठीक है, तो, segfaults. तो आप में से कुछ पहले की पृष्ठभूमि के साथ पता चल जाएगा कि आम तौर पर, कंप्यूटर आदानों की बहुत दे रही है जब वे कर रहे हैं शायद मतलब नहीं करने के लिए इस तरह से लंबे समय के नाम प्राप्त - बुरा बातें होती हैं. दरअसल, वेब की दुनिया में भी, यह काफी एक सा होता है, जिससे जब आप एक वेबसाइट डिजाइन कर रहे हैं, जब आप कर रहे हैं डिजाइनिंग फेसबुक, आप के लिए मनमाने ढंग से निर्णय भी बना कितनी देर तक किसी की इच्छा की तरह सामने, Facebook उपयोगकर्ता नाम हो सकता है? या कितनी देर तक किसी प्रथम नाम होगा? कैसे किसी के फोन नंबर होना पसंद करेंगे. और अगर प्रोग्रामर बुरा मान्यताओं, कार्यक्रमों को तोड़ने क्योंकि तुम उन्हें अधिक उत्पादन दे रही है, और अधिक निवेश करने की कोशिश बल्कि, की तुलना में वे स्मृति है. या राम के लिए आवंटित है, और तो अब अगर मैं हिट दर्ज करें, उस कार्यक्रम वास्तव में काम किया है, क्योंकि हम पुस्तकालय में थे और हम वास्तव में इस विशेष मामले प्रत्याशित. लेकिन निस्संदेह इस सेमेस्टर, आप कम से कम एक लिखना होगा प्रोग्राम है कि इन शब्दों को कहना होगा. अब से इस सप्ताह याद है, शायद अब से दो दिन. विभाजन गलती एक बुरी बात है. यह अपने कुछ कर रही है कि कंप्यूटर का उल्लेख होगा पूर्वानुमान नहीं था. और उस मामले में, तुम, प्रोग्रामर की आशा है, नहीं किया. ज्यादा तरह मोजे के इस ढेर में क्या, वहाँ विभिन्न थे कोने मामलों हम सामना करना पड़ा सकता है. इसी तरह के कार्यक्रमों में यदि आप की आशा नहीं है कि कितनी देर तक किसी के नाम होने जा रहा है. या क्या अगर मैं एक दुर्भावनापूर्ण उपयोगकर्ता है, और उसके नाम है वास्तव में बहुत कम है, लेकिन वे सिर्फ कोशिश कर रहे हैं मेरे साथ गड़बड़ करने के लिए? क्या अपने कार्यक्रम के व्यवहार हो रहा है? खैर, उस मामले में, कुछ वास्तव में दुर्घटना हो सकती है. तो यह करते हैं. 90 मिनट में, यह एक भयानक लंबे समय है कंप्यूटर विज्ञान करने. हम एक पाँच मिनट लेने की आदत में क्यों नहीं मिलता यहाँ तोड़, और जब हम वापस आ गया है, हम कुछ में डुबकी हूँ अधिक जटिल और सम्मोहक कार्यक्रमों? पांच मिनट की दूरी पर है. सही सभी. तो एक त्वरित टिप्पणी. मुझे बताया गया है कि हालांकि इस स्क्रीन पर पहले था क्या, cs50.net/rsvp मेरे मुंह से बाहर आया था. यह सही है. cs50.net/lunch. तो अब आप / दोपहर के भोजन पर इस बात के लिए RSVPing की कोशिश कर सकते हैं. लेकिन अब यह करना. तो यह सुपर फास्ट, सुपर नए लोगों का एक बहुत कुछ करने के लिए किया गया है. कुछ लोगों के लिए पुरानी टोपी. तो चलो बस एक पल के लिए उल्टा, और देखो कि कैसे हम करने के लिए मिला इस हैलो दुनिया बस एक पल पहले उत्पादन. अब 1, वहाँ इस CS50 उपकरण है. फिर, सॉफ्टवेयर समस्या का टुकड़ा सेट 1 बताने जा रहा है आप इसे कैसे डाउनलोड करने के लिए, जहां इसे डाउनलोड करने के लिए, क्या क्लिक करें और इतना आगे. और फिर एक बार आप उन निर्देशों का पालन करें, तो आप में सक्षम हो जाएगा अपनी खिड़की को अधिकतम करने के लिए, और अपने मैक या पीसी दिखेगा कुछ इस तरह छोटे. एक काले रंग की पृष्ठभूमि, शीर्ष पर एक घर फ़ोल्डर जहाँ सभी आपकी फ़ाइलों को जाना, एक कचरा ऊपर छोड़ दिया पर कर सकते हैं, तल पर एक मेनू. तो फिर, सुंदर मैक ओएस या Windows के लिए इसी तरह की भावना में, भले ही यह लिनक्स होना होता है. तो क्या हम अगले क्या किया? खैर, हम कार्यक्रमों लेखन शुरू कर दिया. और पिछले सप्ताह से याद है कि यह सब एक लिख लेता है कार्यक्रम एक साधारण पाठ संपादक है, नोटपैड या TextEdit की तरह. सच कहूँ तो, आप माइक्रोसॉफ्ट वर्ड भी उपयोग कर सकते हैं. लेकिन बुरी बातें अंततः होता है, क्योंकि वह एक बहुत एक प्रोग्राम लिखने के लिए भारी हाथ समाधान, प्लस यह हूँ यह गलत फ़ाइल प्रारूप में बचाने के लिए. लेकिन यह सिर्फ एक पाठ संपादक, एक शब्द संसाधक है, सब है कि एक प्रोग्राम लिखने की जरूरत है. तो CS50 उपकरण में, हम एक सरल तरीके से यह कर सकते हैं. हम सिर्फ नीचे छोड़ दिया पर इस आइकन पर क्लिक कर सकते हैं. और फिर, समस्या सेट 1 आप इस सलाह, होगा और देखा - आप इस काले और सफेद इंटरफ़ेस जहाँ हम शुरू कर सकते हैं कोड लिखने. तो चलो एक सुपर सरल कार्यक्रम फिर से लिखना शुरू. मैं करने के लिए जाने के लिए दाखिल करने के लिए, सहेजें जा रहा हूँ, और मैं फोन करने के लिए जा रहा हूँ यह कहते हैं, hello2.c. और मैं सिर्फ jharvard पर क्लिक करके यह कह रहा हूँ, यह डाल अपने घर निर्देशिका में, मैं वास्तव में परवाह नहीं जहां इस एक हो जाता है. और तब सहेजें. और अब मैं अपने प्रोग्राम लिखने शुरू कर सकते हैं. और मैं इससे पहले कि मैं int लिखने से याद करते हैं मुख्य (शून्य). ऊपर छोड़ दिया पर ज़ूम. और फिर मैं printf कहना चाहता हूँ, दो ले लो. और अब एक नई, बंद बोली बंद, कोष्ठक, सेमीकोलन. और फिर मैं यहाँ नीचे जाना है कि मेरे टर्मिनल विंडो जीएडिट में बस सुविधा के लिए, एम्बेडेड. और मुझे आगे जाना है और बनाने हैलो लिखने जा रहा हूँ, नहीं है, लेकिन अकेले, hello2 हैलो. तो मेरी फाइल hello2.c कहा जाता है. मेरी इसलिए फ़ाइल hello2 बुलाया जाना चाहिए, इस मामले में. Dammit, मैं क्या गलत किया? ठीक है, तो मैं स्पष्ट रूप से एक लाइन छोड़े गए हैं, अगर आपको याद है क्या पिछले कार्यक्रमों की तरह लग रहे हो. लेकिन हम देखते हैं कि हम अलग नहीं तंग कर सकते हैं. दुर्भाग्य से, ज्यादातर लोगों को जो प्रोग्राम लिखने के साथ जो हम लिखने के कार्यक्रमों बातें सब है कि अच्छी तरह से नहीं को आसान बनाने में. तो हम क्या काफी नहीं कर सकता है पर फिसलना की तरह यहाँ भावना और देखने के लिए अगर हम समझ सकते हैं कि क्या गलत है. बहुत पहले लाइन का कहना है कि उलझाव से सी की घोषणा पुस्तकालय प्रकार int के साथ printf समारोह. ठीक है, मैं उस का हिस्सा समझ. लेकिन यह तथ्य यह है कि मैं printf इस्तेमाल की ओर इशारा करते हैं किया जा रहा है गलत है, किसी भी तरह. और समझ में क्या यह गलत है? मैं सिर्फ कंप्यूटर सिखा नहीं था कि यह एक फ़ाइल में है stdio.h कहा जाता है. अब मुझे ही अभी है कि printf है याद stdio.h में, और वास्तव में वहाँ अन्य हो जाएगा कि एक ही फाइल में कार्य करता है कि हम की आदत हो जाएगी. तो अब मुझे आगे जाना है और Ctrl-एल बस स्पष्ट करने के लिए मारा है कि दूर फिर से दौड़ना, hello2 बनाने, और देखा. और यह फिर से, और अधिक जटिल कमांड की तुलना में हम समझाता हूँ आज प्रयोजनों. लेकिन यह बजना चला था, और बजना स्रोत कोड लेता है और बाहर spits 0s और 1s है. और इस मामले में उन 0s और 1s क्या कहा जाता है? ठीक है, कोड आपत्ति. और फ़ाइल है कि वे कर रहे हैं कहा जाता है, तो है, इस मामले में, hello2. दर्ज करें है क्योंकि मेरे पाठ फ़ाइल hello2.c था है. और अब मैं दो विस्मयादिबोधक बिंदु विस्मयादिबोधक ले गए बिंदु, विस्मयादिबोधक बिंदु. तो सब ठीक है, हम अब तार को प्राप्त करने की क्षमता है, जाहिरा तौर पर. खैर, हम उपयोगकर्ताओं से और क्या मिल सकता है? वैसे CS50 पुस्तकालय में, वहाँ अन्य कार्यों है कि इन पहले कुछ दिनों में हमारे जीवन को आसान बनाने के लिए जा रहे हैं. Getchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString. खैर, इन सबसे पहले का सबसे आसान बांधना करते हैं. GetString सचमुच कि करता है. यह सिर्फ वहाँ बैठता है, उपयोगकर्ता के लिए प्रतीक्षा करने के लिए में कुछ लिखें, और जैसे ही मैं में कुछ लिखें और हिट दर्ज करें यह, कुछ है कि मूल्य के साथ करता है. तो चलो कि उदाहरण के लिए वापस जाने के लिए वास्तव में क्या GetString कर रहा था. मुझे आगे जाना है और जीएडिट, hello.c में खुला, और याद कि सही तोड़ने से पहले, यह है कि हम कहाँ से दूर छोड़ दिया. तो चलो अब यह थोड़ा और विस्तार में अलग चिढ़ाओ. तो 6 लाइन पर, वहाँ दो चीजें है पल में हो रहा है. बराबर के चिह्न पहली छमाही और दूसरी छमाही अलग है. तो बराबर के चिह्न के बाएं हाथ की ओर है, हम कर रहे हैं स्ट्रिंग कह रहा है. और फिर, सिर्फ आम आदमी की दृष्टि, क्या स्ट्रिंग है कर रही है, तुम्हें क्या लगता है? यह एक क्या है? तो यह एक स्ट्रिंग कहा जाता है पैदा कर रहा है. अब यह है कि क्या वास्तव में क्या मतलब है? खैर, यह एक स्ट्रिंग कहा जाता है के लिए स्थान आरक्षित है. यह काफी सही नहीं है. यह क्या कर रही है? जैसा कि आप जानते हैं कि अच्छी तरह से कंप्यूटर, हार्ड ड्राइव है, कि जहां आपकी फ़ाइलों को संग्रहित कर रहे हैं. कंप्यूटर रैम है, और है कि जहाँ प्रोग्राम लोड कर रहे हैं जबकि वे चल रहे हैं. तो जब आप एक आइकन और माइक्रोसॉफ्ट वर्ड खोलता है डबल क्लिक करें , माइक्रोसॉफ्ट वर्ड, इतनी बात करने के लिए, रैम में चल रहा है, जो है अपने कंप्यूटर के इलेक्ट्रॉनिक हिस्सा है. भौतिक, यांत्रिक नहीं हिस्सा है कि कताई है, जहां डेटा आम तौर पर लंबी अवधि संग्रहीत किया जाता है. तो स्ट्रिंग बहुत ज्यादा कह रही है कंप्यूटर मुझे दे एक स्ट्रिंग को फिट करने के लिए पर्याप्त RAM. अब जब कि एक oversimplification की एक सा है, क्योंकि कितना बड़ा स्ट्रिंग जा रहा हो? खैर, हम वास्तव में अभी तक नहीं पता है, सप्ताह में ऐसा करने के लिए आने के हम वास्तव में वापस स्ट्रिंग है कि परत खींच लेंगे और हम आपको बता क्या यह सच है. स्ट्रिंग, अब के लिए, बस हमारी दुनिया के एक अच्छा सरलीकरण है. लेकिन स्ट्रिंग अब के लिए एक स्ट्रिंग कहा जाता है, की घोषणा की. एक स्ट्रिंग की घोषणा की. यह स्ट्रिंग उपयोगकर्ता के लिए राम में कुछ जगह सुरक्षित टाइप करने के बारे में. अब हम बराबर के चिह्न के अधिकार में देखो. तो यह (GetString) कहते हैं. और एक छोटे से विवेक की जाँच करें. तथ्य यह है कि वहाँ कोष्ठक के अंदर कुछ भी नहीं है GetString के बारे में क्या तात्पर्य है? यह कोई तर्क लेता है. यही है, आप किसी भी तरह से अपने व्यवहार को प्रभावित नहीं कर सकते हैं. हर बार जब आप इसे उपयोग, यह एक स्ट्रिंग पाने के लिए और है कि यह है. इसके विपरीत करके, printf, उम्मीद है कि अपने व्यवहार करता है हर बार बदल जाते हैं. अन्यथा, यह एक बहुत बेकार छपाई समारोह है अगर यह एक ही बात करता है. यदि यह हमेशा डेविड या कुछ प्रिंट मनमाने ढंग से हर समय. तो printf समझ में आता है एक तर्क है. GetString वास्तव में एक तर्क नहीं की जरूरत नहीं है, क्योंकि मैं चाहता था उपयोगकर्ता से एक स्ट्रिंग मिलता है और यह उपयोगकर्ता के लिए जो जा रहा है टाइपिंग द्वारा अलग पत्र में गतिशीलता की आपूर्ति कीबोर्ड पर हर बार. तो क्या GetString क्या अंत में? इस छोटे ब्लैक बॉक्स के रूप में इसके बारे में सोचो. और इस काले बॉक्स कोई इनपुट लेता है, लेकिन जब आप धमाके पर यह, यह एक स्ट्रिंग है कि उपयोगकर्ता अंदर टाइप किया spits और तथ्य यह है कि वहाँ एक समान संकेत है वहाँ का मतलब है ले क्या बाहर सही पर थूक और यह दुकान के अंदर क्या पर छोड़ दिया है. यहाँ तो बराबर संकेत है, यह वास्तव में इसका मतलब यह नहीं है समानता, बल्कि तकनीकी असाइनमेंट का मतलब है. सही पर मान लो, और इसे में डाल बाईं तरफ चर. तो यह है कि है कि वहाँ क्या हो रहा है सब है. 7 लाइन में अब, हम printf बुला रहे हैं. तो printf उम्मीद है कि अब से थोड़ा उबाऊ हो रही है. तो एक स्वरूपित स्ट्रिंग मुद्रित. स्ट्रिंग क्या? , ज - ए - एल एल ओ, बाहर प्रिंट "% s \ N ". ठीक है, तो मैं क्या% s के लिए प्लग में करना चाहते हैं? सचमुच, जो भी s में भंडारित है. तो इस मामले में थोड़ा मानसिक स्वास्थ्य की जांच, कैसे कई तर्क printf ले लिया है? ठीक है, मैं एक सुना. मैं एक फिर से सुना. दो, मैं दो सुना. और तीन के बारे में? ठीक है, तीन? बहुत बढ़िया. तीन संभव जवाब, उनमें से केवल एक सही है. तो तर्क फिर एक समारोह के व्यवहार को प्रभावित कर रहे हैं. अतीत में, printf केवल एक बहस को देखा जा सकता था. "हैलो दुनिया" एक ही तर्क था. हालांकि, अब नोटिस जहां इस अल्पविराम है. यह अल्पविराम बोली / गंदें शब्द बोलना, जिसका मतलब बाहर है हे printf, यहाँ एक दूसरा तर्क आता है. तो सबसे प्रोग्रामिंग भाषाओं में अल्पविराम अलग कई तर्क. यहाँ तो जवाब निश्चित रूप से है, क्योंकि नहीं एक वहाँ इस अल्पविराम है. अब न्यूनतम, printf जाहिरा तौर पर दो ले जा रहा है इस समय तर्क. लेकिन यहाँ एक चाल सवाल के लिए अवसर है क्या इस अल्पविराम के बारे में? क्या यह मतलब है कि वहाँ असल में तीन तर्क है? यह यह है, यह और. तो कोई नहीं, जो क्योंकि कि अल्पविराम उद्धरण के अंदर है, मतलब है कि यह वास्तव में सिर्फ अंग्रेजी की एक सौंदर्य है. यह की संख्या के साथ कुछ नहीं करना है इस कार्यक्रम में तर्क. तो इस अल्पविराम दोहरे उद्धरण चिह्नों के बाहर है. और फिर 0 वापसी. अभी के लिए बस की तरह के विश्वास के लिए यह एक लो आज, और सिर्फ इतना पता है कि जब कार्य किया जाता है को क्रियान्वित करने कोड की लाइनों, वे आम तौर पर कुछ मूल्य वापस आ जाना चाहिए. इस मामले में, सिर्फ इसलिए कि मुख्य एक int वापस चाहिए, कि जिस तरह से काम करता है भाषा है. तो कुछ भी नहीं है क्योंकि गलत हो गया था, इस कार्यक्रम की तरह लगता है ठीक है, मैं सिर्फ कड़ी मेहनत 0 वापसी में कोडित. लेकिन इसके विपरीत में, और मैं छद्म कोड में यह लिखने के लिए जा रहा हूँ अब, यूसुफ की तरह ज्यादा था जब हम जुर्राब किया पिछले सप्ताह उदाहरण. अगर कुछ गलत हो गया था - यह वास्तविक कोड नहीं है - चला गया गलत है, तो हम कहते हैं, 1 लौटने के. वरना 0 वापसी. तो यह है कि जहां हम इस के साथ जा रहे हैं. यह वास्तविक सी कोड नहीं है, बस pseudocode. लेकिन यह है कि तुम कैसे लौटा सकता है विभिन्न संभव मूल्यों. लेकिन अब के लिए मैं बस आगे जाना है और 0 वापसी करने के लिए जा रहा हूँ. ठीक है, वाक्यविन्यास, कार्यक्षमता, पर इस प्रकार अब तक किसी भी सवाल है, या पसंद है? हाँ, पीठ में. दर्शक: [अश्राव्य] डेविड मालन: आप एक ज़ोर सा बात कर सकते हैं? क्यों इस कार्यक्रम वापसी 0 किया है, और? दर्शक: [अश्राव्य] डेविड मालन: ओह, ऐसा इसलिए है क्योंकि मैं आलसी हो गया है, माफ करना. कोई अच्छा शैक्षिक प्रतिक्रिया, 0 वापसी. मैं कर सकता हूँ की तरह इस बचाना, तकनीकी रूप से सी कह कर, अगर मुख्य एक मूल्य स्पष्ट रूप से वापस नहीं 0 लौटा दी जाएगी स्वतः ही आप के लिए. जो सच है, मैं बस को कवर नहीं कर रहा हूँ. लेकिन, मैं यह किया है इस तरह. मेरी गलती से अधिक है कि अन्य की तुलना में कोई दिलचस्प takeaway. हाँ? दर्शक: आमतौर पर जब आप शून्य में लिखते हैं, कि आप का मतलब कुछ नहीं लौटा. डेविड मालन: सही है. यदि इसके बजाय, आप के लिए एक समारोह के नाम से पहले निर्दिष्ट यहां उदाहरण के लिए, शून्य, तो समारोह कुछ भी वापस नहीं है. और इसलिए मैं बस का कहना है, वापसी या कुछ भी नहीं होता है, और कहा कि संगत होगा. और हम वापस कि करने के लिए आया हूँ. और बस FYI करें, एक सीखने के साथ कैच एक दुनिया है कि पुस्तकों के सैकड़ों में प्रोग्रामिंग और वेबसाइटों के बाहर सैकड़ों आप हमेशा होगा विभिन्न पुस्तकों में अलग वाक्यविन्यास देखें विभिन्न लोगों द्वारा. एहसास है हम वर्गों और व्याख्यान में हमारी पूरी कोशिश करने के लिए होगा संगत. लेकिन कभी कभी आप परस्पर विरोधी वाक्यविन्यास देखेंगे. तो जब भी संदेह में, बस पूछो. और सामान्य में, हम व्याख्यान और वर्गों में देखभाल ले जाऊँगा लगभग हमेशा इसे सही तरीके से प्रस्तुत करते हैं. और मैं लगभग हमेशा कहते हैं, क्योंकि बिंदु में मामले. अन्य प्रश्न? दर्शक:% s उपकरण बाहर मौजूद है? डेविड मालन: क्या% s उपकरण के बाहर मौजूद हैं? हां. % तो तथ्य यह है कि हम इसे में उपयोग कर रहे हैं सी. साथ क्या करना है उपकरण मौलिक के साथ क्या करने के लिए कुछ भी नहीं है हम भाषा का प्रयोग कर रहे हैं की सुविधाएँ. दरअसल, पिछले हफ्ते जब हम अपने मैक इस्तेमाल किया, मैंने लिखा अपने मैक पर सी कोड. मैं अपने मैक पर% s इस्तेमाल किया जा सकता है, और आप इसे उपयोग पर सकता है अगर आप एक संकलक स्थापित की तरह, अपने Windows कंप्यूटर Microsoft से विजुअल स्टूडियो. तो% s. सब कुछ हम इस विंडो के अंदर आज कर रहे हैं के लिए है सी. और मौलिक के साथ क्या करने के लिए कुछ भी नहीं है के साथ क्या करना सवाल में ऑपरेटिंग सिस्टम. इसके विपरीत करके, काले और सफेद टर्मिनल विंडो - जब मैं लोकसभा की तरह बातें टाइप कर रहा हूँ, और rm, और सीडी - है कि ऑपरेटिंग सिस्टम के साथ करते हैं और आसपास नेविगेट. हाँ. दर्शक: मैं पुस्तकालय का मतलब है, CS50 पुस्तकालय. डेविड मालन: ठीक है, यदि ऐसा है तो आप कीवर्ड स्ट्रिंग का मतलब है कि, केवल CS50 पुस्तकालय में मौजूद है, सही है. यह सी में ही मौजूद नहीं है, और वास्तव में एक जोड़े में सप्ताह की हम दूर CS50 पुस्तकालय फेंक और शुरू कर देंगे खुद को खरोंच से बातें कर रही है, तो बात करो. अन्य प्रश्न? हाँ. दर्शक: [अश्राव्य] अच्छा सवाल है: डेविड मालन. आज्ञाओं मामले संवेदनशील हैं? और मुझे एक अंतर यहाँ. तो आदेश आम तौर पर कर रहे हैं बातें हम पर लिख देंगे टर्मिनल विंडो में खिड़की के नीचे. यहाँ कुछ भी बयान या सी कोड होगा. लेकिन दोनों ही मामलों में, जवाब एक ही है, हाँ. इन वातावरण के दोनों शीर्ष पर सी कोड और ऑपरेटिंग सिस्टम कमांड लाइन नीचे, मामले के प्रति संवेदनशील हैं. तो तुम राजधानी जी के साथ GetString भुनाने चाहिए, राजधानी एस printf सभी लोअरकेस में लिखना चाहिए. आप सभी लोअरकेस में रास टाइप करना होगा. तो लगभग हर स्थिति में इस मामले, सेमेस्टर में तथ्य यह है बात. हां. दर्शक: [अश्राव्य] डेविड मालन: आह, तो ठीक है, क्या हुआ अगर हम एक फ़ाइल था hello.d कहा जाता है. तो यह पता चला डी एक प्रोग्रामिंग भाषा है. और इसलिए कुछ मामलों में, हम वास्तव में एक प्रोग्राम लिखने सकता है कि फाइल और यह है कि फैशन में संकलित किया है. हम, और वास्तव में संक्षिप्त जवाब है, मैं नहीं जानता कि कर सकते हैं. तो हम ऐसा करने जा रहे हैं. मुझे आगे जाना है और एक नई फ़ाइल बनाएँ. और यहाँ स्पिन, सामान्य रूप में ईमानदारी से, किसी भी जब भी संदेह नहीं है इस सेमेस्टर, और आप अपने उपकरण या कंप्यूटर खोलने के लिए, आगे जाने के लिए और कुछ करने की कोशिश. तो मैं एक hello.d नामक एक फाइल को बचाने के लिए जा रहा हूँ. इस सहेजें. और मैं हैलो बनाने दर्ज चला जा रहा हूँ. यह अनुमान है कि ग और अधिक होने की संभावना थी लग रहा था d से, इस मामले में. अन्य प्रश्न. हाँ. दर्शक: [अश्राव्य] डेविड मालन: ठीक है, एक बार फिर से कहते हैं. दर्शक: [अश्राव्य] डेविड मालन: आप कि निदान या के बारे में कैसे जाना होगा कि समस्या निवारण की आवश्यकता है? तो सबसे अधिक संभावना है, क्योंकि वे अलग अलग भाषाओं रहे हैं, सबसे अधिक संभावना एक पूरी तरह से मिल जाएगा विभिन्न कार्यक्रम outputted. आप पूरी तरह से अलग त्रुटि संदेश मिल जाएगा. और डिजाइन के मामले में भी सिर्फ यह यकीनन एक होगा गरीब डिजाइन करने के लिए दो अलग अलग लेखन किया निर्णय लगभग समान नाम फाइलों के साथ भाषाओं में सटीक एक ही निर्देशिका, एक का उपयोग स्वचालित उपकरण बनाने की तरह. तो मैं भी वापस धक्का कर सकते हैं और ऐसा करने का 15 वर्षों में कहते हैं, उस गलती कभी नहीं बनाया. हो सकता होता है. लेकिन वहाँ सिर्फ विभिन्न है, मुझे लगता है, जगह में सैन्य गढ़. प्लस त्रुटि संदेश है कि पीछा करना होगा, कि होगा अंत में पता चलता है मुद्दा क्या है. लेकिन एक संभव कोने मामले. सब ठीक है, तो हम सिर्फ दूसरे के एक जोड़े शुरू अब यहाँ है, तो हम अधिक में निर्माण शुरू कर सकते हैं और अधिक जटिल प्रोग्राम. सब से पहले तो, गणित. तो गणित उदाहरण सिर्फ पहले हफ्ते में आसान की तरह हैं. यह कहना है कि सभी प्रोग्रामिंग के बारे में नहीं है गणित. निश्चित रूप से, विभिन्न सुविधाओं को समझने गणित, विशेष रूप में बीजगणित है, यहाँ काफी प्रासंगिक है. उच्च स्तर सीएस कक्षाएं, रेखीय बीजगणित, पथरी, और पसंद है. लेकिन क्या हम इस सेमेस्टर करूँगा सबसे एहसास नहीं कम कर देता है गणित के लिए, और निश्चित रूप से करने के लिए, गणित, से प्रति नहीं, लेकिन वास्तव में सिर्फ तर्क और सावधान सोच. और इसलिए इस संबंध है कि कंप्यूटर विज्ञान लंबे समय से पड़ा है, हाई स्कूल स्तर पर विशेष रूप से, गणित के साथ है, एक छोटे से भ्रामक है. क्योंकि प्रोग्राम है कि हम लिखने, वास्तव में सबसे अधिक हैं, कि उच्च स्तर और समस्याओं को सुलझाने पर ध्यान केंद्रित की तरह, यकीन है, कुछ इसके अलावा, घटाव, और विभिन्न का उपयोग हो सकता है गणितीय सूत्रों या की तरह, लेकिन दिन के अंत में, यह सोच के बारे में नहीं है और बस को लागू करने क्या आप एक तिवारी की तरह पर किया हो सकता है उच्च विद्यालय में कैलकुलेटर. तो उस से कहा, अब इन के साथ कुछ करते हैं गणितीय ऑपरेटर्स इतना है कि अस्तित्व में नहीं है कि हम यात्रा कर सकते हैं प्रोग्रामिंग के अंतर्निहित पहलुओं के कुछ, या में पर सी. तो इस मामले में कर रहे हैं, CS50 पुस्तकालय के रूप में सुझाव दिया है, और आज हम केवल GetString का उपयोग कर रहे हैं - और एक पल में शायद एक अन्य समारोह - लेकिन वहाँ एक कंप्यूटर में विभिन्न प्रकार के डेटा हैं. दिन के अंत में, कंप्यूटर केवल 0s और 1s पता है. लेकिन याद करते हैं कि पिछले सप्ताह हम बाइनरी सिस्टम के बारे में बात की थी 0 संख्या तरह की संख्या, और 1, और 2 का प्रतिनिधित्व करने में, करने के लिए 8 पर सभी रूप में नैट वीडियो में, जिस तरह से. और फिर हम के रूप में हम बहुत अधिक भरोसा कर सकते हैं मंच पर यहाँ था. लेकिन अगर तुम न सिर्फ संख्या लेकिन पत्र का प्रतिनिधित्व करना चाहते हैं, हम, मनुष्य, कुछ मनमाने ढंग से साथ आ गए हैं सम्मेलनों, जिससे दिन के अंत में अगर मेरे सारे कंप्यूटर 0s और 1s, अच्छी तरह से हम बेहतर होगा व्यक्त करने की क्षमता है 0s और 1s के पैटर्न है कि प्रतिनिधित्व मानकीकरण शुरू अलग बातें हैं. 0s और 1s का एक पैटर्न है कि एक पत्र का प्रतिनिधित्व करता है. 0s और 1s के पैटर्न है कि पत्र z का प्रतिनिधित्व करते हैं. 0s और 1s के पैटर्न है कि नीले रंग का प्रतिनिधित्व करते हैं, या लाल, या पसंद है. हम इन 0s और 1s के सभी का उपयोग करने के लिए खुद में व्यक्त करने की जरूरत है नहीं कर रहे हैं कि अलग अलग तरीकों में अलग अलग संदर्भों, जरूरी सांख्यिक. तो प्रतिनिधित्व के मामले में, सी अलग अलग डेटा प्रकार है, और हम इनमें से किसी एक के देखा है अब तक. हम int देखा, और स्क्रीन पर नोटिस क्या नहीं है अब सही स्ट्रिंग है. स्ट्रिंग, वास्तव में नहीं करता, फिर सी. में मौजूद हैं, यह एक सरलीकरण हम पहली बार के लिए पेश कर रहे हैं सप्ताह की जोड़ी. एक चार एक व्यक्ति के चरित्र है. एक दशमलव बिंदु और संख्या के साथ एक नाव एक वास्तविक संख्या है, बाईं और इसे सही. एक डबल वापस पूर्व पृष्ठभूमि के साथ उन लोगों के लिए क्या है? तो एक डबल में दो बार कुछ है. ज्यादा सटीक दो बार के रूप में जोड़ता है. तो इसका क्या मतलब है? इसलिए इन मामलों में से प्रत्येक में, दुनिया मानकीकृत की तरह है कितने बिट्स का प्रतिनिधित्व करने के लिए उपयोग किया जाता है इन बातों में से प्रत्येक. तो अगर आप नैट ASCII वीडियो देखा है पहले से ही भाग के लिए 0 pset, या बाद में इस सप्ताह आप, आप शायद हूँ पता चल जाएगा कि ASCII - चरित्र अभ्यावेदन - कितने बिट्स का उपयोग करें? और तुम भी हमारे प्रदर्शन से कैसे के अंतिम सप्ताह को याद कर सकते हैं कई लोगों को मंच पर थे. तो 7 या 8, आम तौर पर. 8 तो आम तौर पर दिया गया है, और वहाँ कुछ कहा जाता है के रूप में बढ़ाया है ASCII, कि सभी 8 बिट्स, के बजाय 7 का उपयोग करता है. लेकिन सामान्य तौर पर, हम 2 की घात में बात करते हैं, तो इस मामले में, 8. तो एक प्रोग्रामिंग भाषा में एक चार आमतौर पर 8 बिट. तो एक int आम तौर पर 32 बिट. नाव आम तौर पर 32 बिट. डबल आम तौर पर 64 बिट. और इसका क्या मतलब है? इसका मतलब यह है कि आप बड़ी संख्या का प्रतिनिधित्व कर सकते हैं, या मामले में वास्तविक संख्या के बाद एक बहुत अधिक संख्या हो सकती है दशमलव स्थान. उस मामले में एक बहुत अधिक सटीक. अब एक लंबे दुर्भाग्य नाम है. तो वहाँ एक int जो 32 बिट है. वहाँ जो एक लंबे समय है, नहीं, 32 बिट है. और एक लंबे जो 64 बिट है. लेकिन उन में से कुछ संदर्भ संवेदनशील हैं, यह निर्भर करता है कंप्यूटर के किस तरह आप है. तो सामान्य रूप में, हम एक होमवर्क में या एक प्रश्नोत्तरी में निर्दिष्ट करेंगे जब यह वास्तव में मायने रखती है. लेकिन मुद्दा यह है कि इन विभिन्न यहाँ अभ्यावेदन. तो चलो वास्तव में एक कार्यक्रम में गोता. के बजाय खरोंच से इस एक लिखने, मुझे आगे जाना है और आज के स्रोत कोड से खुला है जो सभी के ऑनलाइन - यदि आप ऑनलाइन के आसपास टिंकर करने के लिए करना चाहते हैं, या पर वापसी आपके कंप्यूटर पर उपकरण के साथ बुधवार, निर्देश जिसके लिए पाठ्यक्रम के मुखपृष्ठ पर कड़ी होगी. यहाँ एक सुपर सरल कार्यक्रम है. लेकिन यह शीर्ष पर एक छोटे से कुछ नया मिल गया है कि हम पहले नहीं था. पाठ के नीले लाइनों की एक पूरी बहुत. तो इन नीले लाइनों का प्रतिनिधित्व करते हैं. तो यह एक कार्यक्रम में काफी उपयोगी है लिखने में सक्षम होना अपने आप को, या सहयोगियों, या मित्रों को या कुछ टिप्पणी शिक्षण साथियों, उस तरह का वर्णन क्या में हो रहा है इस फाइल, लेकिन सी कोड के साथ ही कोई लेना - देना नहीं है. कार्यात्मक कार्यक्रम के साथ कुछ नहीं करना है, यह सिर्फ सौंदर्यशास्त्र. तो जिस तरह से आप सी में इस करते है आप आम तौर पर शुरू / *, और आप के साथ टिप्पणी के साथ अपनी टिप्पणी के अंत * /. और अगर आप वास्तव में गुदा और चित्र की तरह आकर्षित करने के लिए तरह कर रहे हैं, तो आप सितारों की एक पूरी बहुत डाल चाहते हैं, तो आप एक बनाना चाहते हैं इस तरह से छोटे से बॉक्स. लेकिन कोई नहीं है कि मामलों की. केवल एक चीज है कि मामलों के बहुत पहले और बहुत पिछले. यह वही है जो एक टिप्पणी बहु - रेखा कहा जाता है. और यह सिर्फ मानव सम्मेलन के लिए अक्सर सितारों और बॉक्स इस तरह से चीजों को अगर आप खाली समय का एक बहुत कुछ है. इतना होने के बाद आप कुछ टिप्पणी में लिखा है, आम तौर पर आते हैं, कार्यक्रम की वास्तविक हिम्मत. यहाँ हमारे परिचित # शामिल. और बस जल्दी, यह आवश्यक है या नहीं आवश्यक है? दर्शक: आवश्यक है. डेविड मालन: तो यह वास्तव में आवश्यक नहीं है. क्यों तो, हालांकि, यह आवश्यक नहीं है? तो वहाँ printf नहीं है. वास्तव में. हम सभी इस कार्यक्रम में कर रहे हैं गणित है. इसलिए मैं वास्तव में नष्ट कर सकते हैं. तो आप हमेशा के लिए कुछ भी शामिल नहीं है एक कार्यक्रम के शीर्ष. तो चलो यह थोड़ा सरल. और अब नोटिस इस कार्यक्रम क्या करता है. ब्याज की बहुत ज्यादा नहीं है. int x = 1. खैर, यह क्या कर रहा है? वैसे, इससे पहले से मानसिक मॉडल के लिए वापस लगता है. इस अभिव्यक्ति के बाएं हाथ की ओर क्या करता है? एक पूर्णांक के लिए अंतरिक्ष बनाएँ. तो कितना अंतरिक्ष? ठीक है, हम अब जानते हैं कि यह 32 बिट के लिए होता है. इससे पहले, एक स्ट्रिंग तकनीकी 32 बिट, लेकिन अधिक भविष्य में उस पर. लेकिन एक int 32 बिट है. बाईं तरफ इस अभिव्यक्ति यहाँ तो, सिर्फ int x हे कहते हैं ऑपरेटिंग सिस्टम, मुझे राम के 32 बिट दे - अन्यथा राम की 4 बाइट्स के रूप में जाना जाता है - इतना है कि मैं है कि अंतरिक्ष में एक पूर्णांक डाल सकते हैं. पूर्णांक क्या तुम चाहते डाल दिया? ठीक है, बस नंबर 1. int y 2 हो जाता है, सटीक एक ही बात करता है, भले ही संख्या अपने परिमाण के मामले में बड़ा है. संख्या ही अभी भी सिर्फ 32 बिट. यह सिर्फ बिट्स के पैटर्न के लिए अलग है 1 बनाम 2 का प्रतिनिधित्व करते हैं. int z अब कहते हैं कि मुझे एक और 32 बिट दे, यह z कॉल, और डाल 1 और 2 में वहाँ के योग. इसलिए कि अब z संभाव्यतः 3 मूल्य भंडारण है, और फिर 0 वापसी. अब इस कार्यक्रम, यह ब्याज की कुछ भी करता है? तो यह वास्तव में किसी में कुछ रोचक नहीं क्या करता है, भावना, क्योंकि क्यों? यह कुछ गणित कर रहा है. लेकिन यह जवाब नहीं लौटने, सही है. यह 0 लौट रहा है. यह जवाब मुद्रण नहीं है. तो इस कार्यक्रम के रूप में यह मौलिक बेकार है अब खड़ा है. यह कुछ काम कर रहा है. यह सेकंड के कुछ संख्या है, या microseconds है, करने के लिए ले जा रहा है चलाने के लिए, लेकिन यह वास्तव में कुछ भी नहीं कर रही है मानव के लिए उपयोगी है. तो चलो वास्तव में अब math2, जहां अब मैं वास्तव में खोलने परिणाम मुद्रण. तो यह भी हमारे पिछले उदाहरण से inferred किया जा सकता है. अगर मैं कुछ सरल गणित करना चाहते हैं, int = 1 x, y = 2. z 1 प्लस 2 अब है. क्या इस के लिए बाहर मुद्रित करने के लिए स्पष्ट रूप से चल रहा है? सिर्फ 3. तो जल्दी विवेक की जाँच करें. मुझे इस निर्देशिका में कदम. तो सीडी source1m. मुझे आगे जाना है और math2 बनाने लिखें. कोई त्रुटि संदेश बाहर आया, तो मुझे चलाने - चलो a.out मुझे math2 चलाने के लिए नहीं. दर्ज करें. और वास्तव में, यह बाहर 3 छपी. खैर इस का एक संस्करण पर एक नज़र रखना. Math3.c में, अब हम इस उदाहरण यहाँ है. तो यह एक दिलचस्प की तरह. तो यह यहाँ एक में जवाब देने के लिए 10 से 1 विभाजित किया जा रहा है, नोटिस और मैं इसे एक नाव के रूप में घोषित किया है. मैं यह एक नाव के लिए क्यों चाहते हो? खैर, यह एक अंश है. यह एक वास्तविक संख्या होने जा रहा है. इस मामले में 10%, तो यह 0.1, उम्मीद है कि होने जा रहा है. और क्या मैं फिर बाहर प्रिंट करना चाहते हैं? खैर, यह जवाब है. खैर, इन के अलावा पहली चिढ़ाओ. तो बाएँ हाथ की ओर, एक की घोषणा फ्लोट फोन है, इसका जवाब दें. दाहिने हाथ की तरफ, 10 से 1 विभाजित करते हैं और डाल दिया है कि answer चर के अंदर. अब, इस लाइन थोड़ा और अधिक एक गुप्त लग रहा है. लेकिन कुछ परिचित सुविधाओं नोटिस. % यहाँ मतलब आता है एक प्लेसहोल्डर. यहाँ का अर्थ है च एक फ्लोटिंगपाइंटमूल्य है, सिर्फ एक असली संख्या, एक दशमलव बिंदु के साथ कुछ. 0.2 क्या मतलब है? किसी पूर्व अनुभव से पता है? दो दशमलव स्थानों. इसलिए हम इस से पहले नहीं देखा है, लेकिन यह सिर्फ एक रास्ता है printf पर एक छोटे से अधिक नियंत्रण और व्यायाम दशमलव बिंदु के बाद मुझे नहीं देने की कह रहा है क्या 30 अंक, बजाय मुझे सिर्फ 2 दे. और फिर हम आगे जाना है और इस चलाने के लिए. तो 3 गणित, और अब मुझे 3 गणित चलाने के लिए, दर्ज करें. और वह सही नहीं है. हम हमारी पहली वास्तविक बग का सामना करना पड़ा है लगता है. वैसे, शायद मैं सिर्फ देख रहा हूँ पास पर्याप्त नहीं. तो मुझे यहाँ जाओ, और मुझे 20 दशमलव डाल बिंदु वहाँ स्थानों. और मुझे इस संकलन, math3 बनाने चलाते हैं. बहुत यकीन है कि 1 10 से विभाजित नहीं 0. तो क्या चल रहा है? खैर, ठीक है, तो यह वास्तव में इस के साथ क्या नहीं है. यह एक अच्छा विचार है. यह वास्तव में सिर्फ एक संयोग है है कि हम यह कर रहे हैं. लेकिन बस को साबित करने के लिए कि यह नहीं है, मैं हूँ यादृच्छिक कुछ लौटा. घर में ऐसा मत करो, क्योंकि यह सिर्फ गलत है. लेकिन math3 बनाने, मुझे इसे चलाने के. तो मैं क्या लौट रहा हूँ के साथ कोई लेना - देना नहीं है, केवल नहीं है साथ मैं क्या मुद्रण कर रहा हूँ. लेकिन मैं इसे यहाँ सुना. क्या? दर्शक: तो हम में नंबर लिखने की जरूरत के रूप में विभाजन डेविड मालन: अच्छा ठीक है. तो हम में भाग लेने संख्या लिखने की जरूरत यहाँ चल बिन्दु के रूप में विभाजन खुद मूल्यों. तो समस्या के रूप में पहले यहाँ है: सी के साथ एक बहुत, भाषाओं, विभिन्न प्रकार के डेटा है. और उन डेटा प्रकार, उदाहरण के लिए, इन यहाँ हैं. और सवाल में डेटा प्रकार के यहाँ, जब मैं टाइप 1 और मैं तो 10 प्रकार, शायद क्या डेटा प्रकार? तो यह शायद एक int, है ना? यह निश्चित रूप से नहीं है क्योंकि वहाँ कोई दशमलव एक नाव बिंदु या ऐसा कुछ. तो सच में, मैं एक int एक int से विभाजित है. तो गणित और कंप्यूटर के बारे में दिलचस्प बात यह है कि अगर आप का उपयोग कर integers विभाजन कर रहे हैं - 1 10 से विभाजित, हाँ 0.1 है. हालांकि, जब आप एक पूर्णांक द्वारा एक पूर्णांक विभाजित कर रहे हैं, जवाब देने के लिए भी अभी के लिए, क्योंकि एक पूर्णांक होना है. और तो निहितार्थ क्या है? खैर, अगर जवाब 1 10 से विभाजित है 0.1 के बराबर होती है, क्या कंप्यूटर के लिए कर रहा है, मैं पता नहीं कैसे करने के लिए है 0.1 का प्रतिनिधित्व करते हैं, क्योंकि वह एक चल बिन्दु, एक मूल्य नहीं है पूर्णांक, यह सब कुछ के बाद काट जा रहा है दशमलव बिंदु और बस आप शुरुआत में 0 दिखाने. और तथ्य यह है कि यह एक अस्थायी बिंदु के रूप में मुद्रण मूल्य, यह सिर्फ एक सौंदर्य की बात है. ऐसा इसलिए है क्योंकि मैं एक के रूप में कंप्यूटर यह मुद्रित करने के लिए मजबूर कर रहा हूँ बिंदु मान तैर रही है. और वास्तव में मैं इसे एक नाव के रूप में घोषित किया है, लेकिन गणित है यहाँ पर हो रहा है. तो मुझे वास्तव में एक बहुत आसान तरीका में यह तय है. क्यों मैं सिर्फ 10.0 और 1.0 नहीं करते हो, हालांकि तकनीकी तौर पर मैं सिर्फ उन लोगों में से एक कर के साथ मिल सकता है. अब मुझे आगे जाना है और math3 बनाने. मुझे आगे जाना है और अब math3 चलाने के लिए, दर्ज करें. और अब, ओह लड़के. अब हम पूरी तरह एक नई समस्या है. तो बेहतर है, ठीक है, हम 0.1 के करीब रहे हैं, लेकिन जो स्पष्ट रूप से है यहाँ गलत है? जब तक हम साल के लिए किया गया है आप के लिए सही झूठ बोल रही है,? 1 10 द्वारा विभाजित 0.1 काफी वास्तव में नहीं है तो क्या है, वास्तव में यहाँ पर जा रहा? अच्छी तरह से आप के माध्यम से कारण के इस तरह तार्किक कर सकते हैं. यदि एक कंप्यूटर केवल राम की एक सीमित मात्रा में शुरू करने के लिए है के साथ, और वास्तव में एक कंप्यूटर के लिए केवल एक 32 बिट का उपयोग कर रहा है बिंदु मान चल, यह एक साथ कारण है कि खड़ा इस मामले में बिट्स, 32 परिमित संख्या, हाँ, आप यह कर सकते हैं सामान का एक बहुत का प्रतिनिधित्व करते हैं. यह वास्तव में चार अरब विभिन्न मूल्यों किया जा सकता है 32 बिट, 2 32 है, लेकिन यह अभी भी परिमित के साथ प्रतिनिधित्व किया. तो समस्या यह है कि वहाँ की एक अनंत संख्या है असली संख्या, सही. यदि आप मुझे एक वास्तविक संख्या दे, मैं हमेशा आप एक पा सकते हैं थोड़ा बड़ा है, थोड़ा कम है, सिर्फ tweaking द्वारा नंबर है कि दशमलव बिंदु के बाद कर रहे हैं. तो अगर आप बिट्स की एक अनंत संख्या में नहीं है तो आप, एक अनंत संभवतः का प्रतिनिधित्व नहीं कर सकते हैं वास्तविक संख्या की संख्या. तो वहाँ कंप्यूटर में यह निहित अस्पष्टता है, और यह सब समय के साथ के सरलतम में भी फिसल जाता है इस तरह से कार्यक्रम. लेकिन यह भी कुछ बहुत ही वास्तविक दुनिया के रूप में अच्छी तरह से समस्याओं में. वास्तव में, हम एक पल लेने के लिए सिर्फ एक नज़र रखना कुछ है कि वास्तव में हकीकत में हुआ. हम सिर्फ मिनट की पहली जोड़ी घड़ी, और फिर हम कड़ी ऑनलाइन पोस्ट करेंगे. लेकिन यह सिर्फ क्या गलत जा सकते वसीयतनामा करने के लिए काफी है, ईमानदारी से, जब एक बहुत दुखद रास्ते में नहीं कर रहे हैं इन बातों सराहना या बस हम मानव गलतियाँ करते हैं जब यह आता है आधुनिक कंप्यूटर के कार्यान्वयन के विवरण के इन प्रकार. [वीडियो खेल] अब हम आधुनिक चमत्कार पर इंजीनियरिंग आपदाओं के लिए लौटने. कंप्यूटर. हम सब अक्सर निराशा समस्याओं को स्वीकार करने के लिए आया हूँ उनके साथ जाना. कीड़े, वायरस और सॉफ्टवेयर glitches छोटे कीमतों रहे हैं सुविधा के लिए भुगतान करते हैं. लेकिन उच्च तकनीक और उच्च गति सैन्य और अंतरिक्ष में कार्यक्रम अनुप्रयोगों, छोटी समस्या हो सकती है आपदा में बढ़ाया. 4 जून, 1996 को, वैज्ञानिकों को एक मानव रहित लांच करने के लिए तैयार एरियन 5 रॉकेट. यह वैज्ञानिक करने के लिए डिज़ाइन उपग्रहों को ले जा रहा था पृथ्वी के चुंबकीय क्षेत्र की स्थापना के ठीक कैसे सौर हवाओं के साथ सूचना का आदान प्रदान. रॉकेट यूरोपीय अंतरिक्ष एजेंसी और के लिए बनाया गया था फ्रेंच गुयाना के तट पर अपनी सुविधा से बंद उठाया. में उड़ान में के बारे में 37 सेकंड, वे 1 देखा कुछ गलत हो रहा था, कि नलिका थे एक तरह से वे वास्तव में नहीं होना चाहिए में swiveling. उड़ान में 40 सेकंड के आसपास है, स्पष्ट रूप से वाहन मुसीबत में था, और है कि जब वे के लिए निर्णय लिया इसे नष्ट. जबरदस्त हिम्मत के साथ सीमा सुरक्षा अधिकारी दबाया बटन, रॉकेट विस्फोट से उड़ा दिया इससे पहले कि यह एक बन सकता है जनता की सुरक्षा के लिए खतरा है. - यह एरियन 5 की पहली यात्रा थी, और उसके विनाश में एम्बेडेड दोष की वजह से जगह ले ली रॉकेट सॉफ्टवेयर. एरियन पर समस्या यह थी कि वहाँ एक संख्या है कि 64 बिट की आवश्यकता व्यक्त करने के लिए और वे इसे बदलने के लिए करना चाहता था एक 16 बिट संख्या. उन्होंने मान लिया है कि संख्या में कभी नहीं था बहुत बड़ा होने जा रहा है, कि 64 बिट संख्या में उन अंकों की सबसे 0s थे. वे गलत थे. स्वीकार करने के लिए एक सॉफ्टवेयर प्रोग्राम की असमर्थता संख्या की तरह किसी अन्य के द्वारा उत्पन्न की जड़ में था विफलता. सॉफ्टवेयर विकास का एक बहुत महँगा हिस्सा बन गया था नई तकनीक. एरियन 4 रॉकेट बहुत सफल रहा था. इतना इसके लिए बनाया सॉफ्टवेयर का भी इस्तेमाल किया गया था एरियन 5 में. बुनियादी समस्या यह थी कि एरियन 5 तेजी से गया था, तेजी से त्वरित. और सॉफ्टवेयर है कि के लिए जिम्मेदार नहीं था. रॉकेट के विनाश के एक भारी वित्तीय था आपदा, सभी एक मिनट सॉफ्टवेयर त्रुटि के कारण. लेकिन यह पहली बार है डेटा रूपांतरण समस्याओं था नहीं था आधुनिक रॉकेट प्रौद्योगिकी plagued. डेविड मालन: हम इसे उस पर छोड़ दूँगा. लेकिन इस के लिए आदेश है बस कैसे भी लागू की कुछ इन निम्नतम स्तर जानकारी है कि हम करने के लिए शुरू कर दिया है आज का पता लगाने के हैं. तो भले ही आप एक छोटे से शायद कुछ लोगों द्वारा विचलित हो वाक्यविन्यास और यहाँ arcaneness का एहसास, उस पर शब्द हम लागू कैसे यह करने के लिए है पर ध्यान केंद्रित किया जाएगा सीएस दूर से परे दुनिया. हम बुधवार को देखेंगे.