डेविड जे Malan: तो इस CS50 है. और इस CS50 की अपनी कोल्टन ओग्डेन था, से अधिक के लिए जो संगीत आप कर सकते है soundcloud.com/cs50 पर डाउनलोड. 

तो आज हम सभी को और अधिक ध्यान केंद्रित प्रोग्रामिंग की कला पर. हम छोड़ दिया और जहां हम ले पिछले सप्ताह बंद, ध्यान केंद्रित स्क्रैच पर, यह था जो चित्रमय प्रोग्रामिंग भाषा. और, एक निचले स्तर को नीचे ले बातें एक और पारंपरिक प्रोग्रामिंग का उपयोग भाषा सी के रूप में जाना जाता है लेकिन जिस तरह से साथ, साकार एक ही विचारों कि हम पिछले शुक्रवार के बारे में बात की थी न केवल इस में पुनरावृत्ति होना होगा भाषा सी, लेकिन ज्यादातर हर दूसरे में हम इस सेमेस्टर में है कि देखो. 

इसलिए हम इस बात को बुलाया यहाँ क्या पिछली बार? यह एक बयान का प्रतिनिधि है. इसलिए हम इस एक बयान में कहा जाता. और यह कुछ भी करता है. यह एक निर्देश है कि एक कंप्यूटर या खरोंच पर अमल हो सकता है. और अब, चलो भी शुरू करते हैं इस एक समारोह की तरह कुछ बुला कारणों के लिए हम जल्द ही देखेंगे. 

इस बीच, हम इस तरह से चीजों को देखा. और ये आम तौर पर कर रहे हैं निर्माण क्या रूप में जाना जाता? 

दर्शक: लूप. 

डेविड जे Malan: तो एक पाश. तो बहुत सीधा. यह सचमुच यह क्या कहता है. और खरोंच में, यदि आप चाहते हैं वहाँ में अधिक पहेली टुकड़े रटना, टुकड़ा इसे फिट करने के लिए विकसित होगा. और हम सी में देखेंगे कि हम एक ही बात कर सकते हैं. 

पाश की एक अन्य प्रकार है, हालांकि, स्क्रैच में हमेशा के लिए हो सकता है, या किसी भी नंबर नहीं है अन्य तरीकों से. लेकिन एक और अधिक ले लो एक चेहरे के साथ generalist देखो, कि, संभावना काफी परिचित है पर अधिक आम तौर पर छोरों. मार्क ज़ुकेरबर्ग: वन बात कंप्यूटर कि है पर वास्तव में अच्छा कर रहे हैं आदेशों को दोहराने. एक व्यक्ति के रूप में, आप मिलता था वास्तव में ऊब आप अगर एक ही बात करने के लिए किया था एक पंक्ति में समय की बहुत सारी. लेकिन एक कंप्यूटर एक ही बात कर सकते हैं लाखों या समय की भी अरबों, और ऊब, और सक्षम नहीं वास्तव में अच्छी तरह से है कि बाहर ले जाने के लिए. 

उदाहरण के लिए, यदि ऐसा है तो मैं हर किसी की कामना करना चाहता था फेसबुक एक खुश जन्मदिन पर उन्हें एक ईमेल भेज कर, यह अधिक एक से मुझे ले सकता है सदी वास्तव में लिखने के लिए बाहर हर किसी को उन ईमेलों के सभी. कोड के साथ बस कुछ ही लाइनों लेकिन, मैं कर सकता हूँ एक सिस्टम हर किसी के लिए एक ईमेल भेजने के लिए है फेसबुक चाह पर उन्हें एक जन्मदिन मुबारक हो. इतना है कि छोरों क्या कर रहे हैं और क्यों वे कर रहे हैं मूल्यवान और कुछ कंप्यूटर कि बहुत अच्छी तरह से कर सकते हैं. 

डेविड जे Malan: तो अगर आप प्राप्तकर्ता किया गया है CS50 के कुछ और देर से ड्रॉपबॉक्स के अंतरिक्ष, ठीक है कि वास्तव में है क्या हम काफी है कि जैसे कोड का उपयोग करते हैं. हम अनिवार्य रूप से एक बड़ा है स्प्रेडशीट में जो लोगों inputting किया गया है उनके नाम और ईमेल पते. और हम कोड का एक छोटा सा लिखा था कि उन पतों पर पुनरावृति कर सकते हैं और में अद्वितीय पतों थूक मामले में किसी को कई बार प्रस्तुत की. और उसके बाद, हम एक भेज CS50 बॉट से ईमेल स्वचालित, कूपन कोड सहित. 

अब हम भी देखा यह पिछले समय का निर्माण. और यह एक विशेष है क्या का उदाहरण? तो, हाँ, एक बूलियन अभिव्यक्ति. और आकार का मतलब है साथ ही साथ उस पर कब्जा करने के लिए. सब के सब ऐसे सवाल सच या खरोंच में झूठी फार्म इस तरह एक छोटे से कुछ दिखेगा. और हम इस एक बूलियन अभिव्यक्ति कहते हैं. यही कारण है कि वास्तव में सही है या गलत है, हाँ या नहीं. यह एक सवाल का जवाब देने का एक तरीका है. 

और इस बीच आप इन बूलियन उपयोग कर सकते हैं निर्माणों के अंदर अभिव्यक्ति की जो इन की तरह बेशक स्थितियां हैं या शाखाओं, लौकिक सड़क में कांटे. और वे न केवल देख सकते हैं इस तरह, लेकिन वे भी कर सकते हैं उनके साथ elses संबद्ध कर दिया है. और अगर आप वास्तव में एक तीन तरह से हो सकता है सड़क में कांटा या एक तरह से चार कांटा सड़क में, बस से इन बातों घोंसले के शिकार, आप स्क्रैच में देखेंगे के रूप में आप पहले से ही नहीं है. और आप के रूप में अच्छी तरह से सी में कर सकते हैं. 

चलो एक और generalist लेते हैं , के रूप में अच्छी तरह से, एक alumnist पर देखने के लिए जो एक अलग दृष्टिकोण पेश हो सकता है स्थितियां बुलाया इन बातों को. 

बिल गेट्स: लोगों को करना निर्णय हर दिन. उदाहरण के लिए, यदि आप बाहर जाने से पहले एक तरह से, कहते हैं कि एक तो बयान है यह तो बारिश हो रही है तो मैं मेरे जैकेट की जरूरत है. और कंप्यूटर आप एक बार कमाल कर रहे हैं बयान के उन प्रकार तय वे मज़बूती से अमल कर सकते हैं कि अविश्वसनीय गति पर उन चीजों. और इसलिए एक कंप्यूटर प्रोग्राम सच गणित और कुछ का एक छोटा सा है बयान जहां अगर निर्णय लिया जाता है. 

डेविड जे Malan: के रूप में तो आप पता कर सकते हैं, यह था बिल गेट्स जैसे लोग, पॉल एलन, और दूसरों सही मायने में लात मारी कि पर्सनल कंप्यूटर तथाकथित क्रांति कुछ साल पहले. हम गोता से पहले मैंने सोचा, कुछ administrivia में, हम, अल्बुकर्क से एक कहानी से संबंधित होगी प्राकृतिक इतिहास के न्यू मेक्सिको संग्रहालय और विज्ञान जहां बिल गेट्स के कुछ ' और पॉल एलेन जल्द से जल्द कहानियां अब हम कैसे याद कर रहे हैं आज के पीसी और एमएसीएस और अधिक. इस के लिए, हालांकि, हम दो स्वयंसेवकों की आवश्यकता जो बहुत अच्छा कथन आवाज है एक स्क्रिप्ट जोर से पढ़ने के लिए. 

सब ठीक है, कैसे वापस वहाँ के बारे में. ऊपर आओ. और कैसे सामने यहां के बारे में. नीचे आओ. यहाँ अपनी जगह ले. तुम लोगों को आने के रूप में, एक जोड़ी प्रशासनिक घोषणाएं की. सेक्शनिंग, प्रक्रिया एक खंड को चुनने का, इस शुरू होगा शुक्रवार के माध्यम से बुधवार. उस पर इस आ व्याख्यान में बुधवार. 

सुपर वर्गों, इस बीच, कर रहे हैं हम अगले सप्ताह प्रस्ताव है कि कुछ जिससे पूरे वर्ग आमंत्रित किया है काफी बड़े पैमाने में भाग लेने के लिए वर्गों, अधिक आराम से एक, एक कम आराम. और हम ब्यौरे की घोषणा करेंगे इस बात का है, साथ ही, बाद में इस सप्ताह. 

इस बीच वर्गों, खुद को, शुरू होगा सप्ताह के पाठ्यक्रम के तीन में, शून्य सूचकांक, जो उन कुछ हफ़्ते हैं मतलब बाहर. तो चिंता करने की नहीं. आप अभी तक नहीं याद किया उन पंक्तियों के साथ कुछ भी. इस बीच इस बीच, आप अगर प्रशासकीय कोई प्रश्न हैं, अपने आप को और डेवोन और Gabe ईमेल और रोब यहाँ इस पते पर. 

अन्त में, समस्या सेट 0 बाहर, ज़ाहिर है, है. आप इसे देखा हो सकता है पाठ्यक्रम की वेबसाइट पर. इसके साथ आप प्रदान करना चाहिए प्रश्नों के सभी जवाब आप जिस तरह के लिए साथ हो सकता है समस्या सेट के साथ शुरू हो रही है. लेकिन आप अपने आप को मिल एक हाथ में मदद की जरूरत होती है, हर तरह से कार्यालय समय में उपस्थित, सोमवार, मंगलवार, बुधवार, बृहस्पतिवार शाम में इस सप्ताह के चार डाइनिंग हॉल में. विवरण के लिए वहाँ कि यूआरएल देखें ऑफिस का समय हो जाएगा जहां की. 

अब हम मिलते हैं हमारे दो मेहमानों ने आज यहां. आपका नाम क्या है? 

जय पॉल: जे पॉल. 

डेविड जे Malan: जय पॉल, आपसे मिलकर अच्छा लगा. 

HIKARI: Hikari. 

डेविड जे Malan: Hikari? 

HIKARI: Hikari. 

डेविड जे Malan: Hikari. के रूप में अच्छी तरह से आपसे मिलकर अच्छा लगा. जे पॉल और Hikari में है इन संगीत पर उनके सामने मैं मुद्रित कि दो लिपियों खड़ा न्यू मैक्सिको से आज सुबह बाहर प्राकृतिक इतिहास और विज्ञान के संग्रहालय. और मैं क्या सोचा मैं ओवरहेड पर करना चाहते हैं अपने सस्वर पाठ के साथ किया जाता है स्क्रिप्ट और इस इतिहास की कुछ दृश्य चित्र, कोई आश्चर्य के साथ. 

और मैं अग्रिम में क्या किया है अपनी स्क्रिप्ट पर prehighlight है आप पढ़ना चाहिए क्या, और आप पढ़ना चाहिए क्या. और हम अनिवार्य रूप से करेंगे बस वैकल्पिक पैराग्राफ. तुम सकता है तो यह बहुत है अंग्रेजी वर्ग में किया है. यह वास्तव में दर्शकों को मजबूर है यहाँ अपनी कहानी में विश्वास करने के लिए. हम करेंगे? तो यहाँ कहानी हम एक है, है मूल, और यह कैम्ब्रिज में शुरू होता है. 

जय पॉल: यह सर्दी, 1974 थी, कैम्ब्रिज, मैसाचुसेट्स में जहां सर्दियों ठंडा हो सकता है. एक दाढ़ी वाले, लंबे बालों कॉलेज छोड़ने वालों नामित पॉल एलन हार्वर्ड भर drudging था अपने विचारों में लीन स्क्वायर,. उन दिनों में उनका मुख्य परवा , कैसे अपने दोस्त, बिल गेट्स मिल गया था स्कूल छोड़ने और जाने के लिए उसके साथ व्यापार में. HIKARI: दो पहले से ही चला गया था व्यापार के कारोबार का एक नंबर के माध्यम से एक साथ, झील के किनारे पर शुरुआत सिएटल जहां में स्कूल वे के लिए नि: शुल्क कंप्यूटर समय में भुगतान किया गया एक स्थानीय बार में एक पीडीपी -10 कंप्यूटर का परीक्षण कंपनी को साझा. सबसे हाल ही में योजना छोड़ने के लिए गया था स्कूल और एक सॉफ्टवेयर कंपनी के रूप में. एलन वॉशिंगटन छोड़ दिया था स्टेट यूनिवर्सिटी. लेकिन आखिरी मिनट, गेट्स हार्वर्ड के साथ छड़ी का फैसला किया. 

जय पॉल: उस दिन, हार्वर्ड को पार स्क्वायर, एलन जनवरी देखा लोकप्रिय इलेक्ट्रॉनिक्स के 1975 के अंक पृथ्वी रोक शीर्षक के साथ, दुनिया का पहला मिनी कंप्यूटर किट व्यावसायिक मॉडल प्रतिद्वंद्वी. शीर्षक था नीचे एक छोटे से बॉक्स की एक तस्वीर रोशनी और स्विच के साथ सजी. यह 8800 एम आई टी एस अल्टेयर बुलाया गया था. और एलन यह पता था कि क्या वह के लिए देख रहा था. 

HIKARI: चर्चा का दिन पीछा किया. एलन और गेट्स समझा अल्टेयर का महत्व. वे अक्सर बात की थी माइक्रोप्रोसेसरों के बारे में और क्या देखने के लिए इंतजार कर रहे थे उनके साथ किया जाएगा. अब एक मिनी कंप्यूटर किट पर वहां गया था लोकप्रिय इलेक्ट्रॉनिक्स के कवर. यह जाहिरा तौर पर अभी तक कोई सॉफ्टवेयर था. वे एक राष्ट्र की कल्पना प्रोग्रामर एम आई टी एस पर उतरते. और इसलिए वे, एड रॉबर्ट्स बुलाया कंपनी के सिर, के एक संस्करण का दावा बुनियादी प्रोग्रामिंग भाषा लगभग तैयार अल्टेयर के लिए. उन्होंने नहीं किया. और रॉबर्ट्स वे नहीं किया जाना होगा. उन्होंने 10 कॉल से एक दिन हो रही थी एक बुनियादी लगभग तैयार था, जो लोगों को. और उसका शेयर प्रतिक्रिया ", पहले व्यक्ति थे जो एक काम के साथ दिखाता है बुनियादी अनुबंध हो जाता है. " 

जय पॉल: गेट्स और एलन एक अल्टेयर कभी नहीं देखा था. वे भी कभी नहीं देखा था इंटेल 8080 माइक्रोप्रोसेसर अल्टेयर के दिल में. लेकिन कुछ साल पहले एलन एक कार्यक्रम लिखा था नकल करते कि एक मेनफ्रेम कंप्यूटर पर पिछले एक इंटेल का आपरेशन माइक्रोप्रोसेसर. और वे इस बार के आसपास एक ही बात करेंगे. 

HIKARI: एक इंटेल के साथ अपने पक्ष में 8080 पुस्तिका, एलन एक पर बैठ गए हार्वर्ड पीडीपी -10 कंप्यूटर और emulator और सॉफ्टवेयर लिखा आवश्यक उपकरण प्रोग्रामिंग करने के लिए. इस बीच गेट्स जाना बंद कर दिया वर्गों के लिए और अपने आप को समर्पित मूल डिजाइन करने के लिए, हर चाल का उपयोग वह आकार पाने के लिए पता था नीचे 4 किलोबाइट नीचे. 

जय पॉल: अल्बुकर्क में आउट एड रॉबर्ट्स गेट्स से एक फोन आया कैसे के बारे में जानकारी के लिए पूछ अल्टेयर विशिष्ट दिनचर्या संभाला. किसी ने भी इससे पहले कहा था. और रॉबर्ट्स रुचि मिल रहा था. 

HIKARI: विकास के साथ उपकरण और डिजाइन तैयार, गेट्स और एलन ने लिखा है पीडीपी -10 पर कोड, एक और हार्वर्ड के छात्र enlisting, मोंटे Davidoff, गणित दिनचर्या लिखने के लिए. की एक अंतिम रात के बाद प्रोग्रामिंग, एलन एक विमान पर मिला एम आई टी एस को उनके बुनियादी देने के लिए. उन्होंने कहा कि विमान में चिंता की सवारी बिताया. और वापस कैम्ब्रिज में गेट्स चिंता थी. वे परीक्षण किया था उनकी बुनियादी और यह एमुलेटर पर काम किया था. लेकिन एमुलेटर गलत क्या था? जय पॉल: विमान के रूप में अल्बुकर्क का दरवाजा खटखटाया एलन एहसास हुआ कि उनके बुनियादी, अब बड़े करीने से निहित का एक छोटा सा रोल पर , कागज टेप होगा मुक्का मारा एक अलग बिना बेकार हो कार्यक्रम, कि, एक लोडर बुलाया कैसे अल्टेयर बताना होगा कागज टेप किया जा रहा पढ़ने के लिए टेली टाइप मशीन में खिलाया. वह अपनी नोटबुक बाहर ले गया और जल्दी से एक लोडर कार्यक्रम नीचे लिखा विधानसभा भाषा में, तो स्वयं 1s और 0s में है कि अनुवाद अल्टेयर समझ जाएगा. 

HIKARI: एलन उम्मीद कर रहा था एक स्वच्छ, छोटे, उच्च तकनीक कंपनी व्यवसाय सूट में पुरुषों द्वारा चलाए. रॉबर्ट्स मिले तो जब वह चकित हो गया था उसे हवाई अड्डे पर एक खेत की तरह लग रही हाथ. रॉबर्ट्स भी हैरान था. वह हार्वर्ड गिरा दिया एक महंगे होटल में प्रोग्रामर, एलन कि कबूल करना पड़ा वह कमरे में बर्दाश्त नहीं कर सकता. 

जय पॉल:, खुद को, एम आई टी एस था एक धूल पट्टी मॉल में स्थित है. एक बरबाद पर अंदर कार्यक्षेत्र एक अल्टेयर था के 5 किलोबाइट के साथ भरी हुई स्मृति और एक केबल से जुड़ा एक टेली टाइप मशीन के लिए. रॉबर्ट्स और मुख्य अभियंता, विधेयक येट्स, उम्मीद के इंतजार कर रहे थे एलन उसकी लोडर toggled के रूप में अल्टेयर में कार्यक्रम. लिख देंगे यह निकाला रूप chugging शुरू किया टेप पाठक के माध्यम से कागज टेप. यह शायद 15 मिनट लग गए प्रोग्राम लोड करने के लिए. फिर लिख देंगे अचानक मुद्रित एक स्मृति शीघ्र, तो एक तैयार शीघ्र, और एलन टाइपिंग शुरू किया कुछ परीक्षण हासिल है. हर किसी के विस्मय करने के लिए, सॉफ्टवेयर काम किया. कीड़े ज़ाहिर है, वहाँ थे. लेकिन मुख्य बात यह है कि यह काम किया था. 

HIKARI: बाद में, अपने रास्ते पर एक पान्चो के पर $ 3.00 दोपहर का भोजन, एक ततैया उड़ान भरी पिक की खिड़की में ट्रक और बांह पर एलन डंक मार दिया. लेकिन मुद्दा यह है कि कुछ भी नहीं मूड खराब कर सकता. अल्टेयर अब अपने मूल था एक घर के लिए पहला वाणिज्यिक सॉफ्टवेयर पॉल एलन और बिल द्वारा किए गए कंप्यूटर, गेट्स, माइक्रोसॉफ्ट के रूप में कारोबार कर रहा है. 

डेविड जे Malan: कई हमारे दो पाठकों के लिए धन्यवाद. 

[वाहवाही] 

डेविड जे Malan: अब आप अपनी पसंद है, आप एक sparkly की, जाने से पहले या ओह dark-- में एक चमक, एक मिनट रुको, sparkly wait-- और अंधेरे हाथी में एक चमक CS50 की अपनी चेंग गोंग से. HIKARI: अरे, धन्यवाद. डेविड जे Malan: सभी ठीक है, बहुत बहुत धन्यवाद. [वाहवाही] डेविड जे Malan: तो सच्ची कहानी. यह इन की कि सब कहने के लिए है मशीनों और आसानी के साथ जो हम अब उन का उपयोग और ले प्रदान के लिए, वास्तव में , यहाँ सिर्फ कुछ ज्ञान प्राप्त करना शुरू कर दिया इस वास्तविक थिएटर से. और अब आज, तुम नहीं किया गया है, तो इस मैक्सवेल डॉर्किन, कंप्यूटर है विज्ञान भवन, भी कोने के आसपास. और इस की दूसरी मंजिल पर इमारत तीन पृष्ठों लटका करता है मूल स्रोत कोड से कि बिल गेट्स और पॉल एलन ने लिखा है. वास्तव में, उपयोग अगर आप ज़ूम आप न केवल देख सकते में में उनके नाम मूल प्रकार, लेकिन यह भी वे एक सजी कि उनके हस्ताक्षर कुछ साल पहले वे पिछले दौरे. 

लेकिन विशेष रूप से सम्मोहक क्या था इस बारे में वे क्या करने के लिए बाहर सेट क्या है उस होगा एक प्रोग्राम लिखने के लिए था लिखने के लिए अन्य लोगों को सक्षम अपने स्वयं के कार्यक्रम. समय के साथ बिल्कुल नहीं थी एम आई टी एस द्वारा किए गए इस अल्टेयर मशीन. और वे सभी की जरूरत का कोई रास्ता था hobbyists और लोगों के लिए यह आसान बनाने वास्तव में इस कार्यक्रम के लिए इस कमरे में हमें पसंद यह जरूरी है कि समझने के बिना विधानसभा कोड, या मशीन कोड, या भगवान, 0 और 1 न करे. हम प्रोग्रामर, जैसे इस कमरे में उन, हम अभिव्यक्त करने में सक्षम होना चाहता हूँ खुद छद्म कोड की तरह बहुत अधिक यह थोड़ा और अधिक एनआईटी भले हम पिछले हफ्ते में बात की तुलना में picky. हम इस तरह कोड लिखने के लिए नहीं करना चाहती, जो पॉल एलन और बिल गेट्स किया. हम इसके बजाय, कोड लिखना चाहते हैं कि एक छोटे से अधिक उपयोगकर्ता के अनुकूल लग रहा है. 

अब यह बुनियादी रूप में जाना एक भाषा है. और लाइन संख्या वहाँ क्या कर रहे हैं आप बस कोड की लाइनों नंबर करने के लिए उपयोग कि आप लिख रहे हैं. हम भी करने के लिए नहीं है इन दिनों ऐसा करते हो. लेकिन आप यहां देख सकते हैं कैसे प्रिंट "नमस्ते, दुनिया" वास्तव में शायद सिर्फ इतना है कि प्रिंट होगा. और तो क्या विधेयक और पॉल किया था इस तरह कोड लिखने के लिए लोगों को सशक्त बजाय आप पर एक नज़र रखना अगर of-- कंप्यूटर साइंस में इस तरह कोड wall--. 

वास्तव में, CS50 हाल ही में एक अवसर मिला प्रोफेसर हैरी लुईस के साथ नीचे बैठने के लिए कम्प्यूटर साइंस विभाग में जो वास्तव में विधेयक सिखाया कुछ साल पहले गेट्स, और यहाँ पहले से चली आ रही है कुछ अंशः के उन तीन पृष्ठों. चलो एक नज़र रखना. 

हैरी लुईस: क्या तुम यहाँ है एक है सॉफ्टवेयर का एक प्रारंभिक टुकड़ा की लिस्टिंग बिल गेट्स और पॉल द्वारा लिखित एलन, माइक्रोसॉफ्ट के संस्थापक. तो कोड दिलचस्प है दो कारणों से. सबसे पहले, यह बन गया माइक्रोसॉफ्ट का पहला उत्पाद, के लिए एक दुभाषिया था जो बुनियादी प्रोग्रामिंग भाषा. और दूसरी बात, यह था पहले प्रयास में से एक इसलिए साधारण एक दुभाषिया बनाने के लिए लोग पर्सनल कंप्यूटर इस्तेमाल कर सकते हैं. 

तो बिल गेट्स था एक हार्वर्ड में स्नातक. मैं 1974 में हार्वर्ड में अध्यापन शुरू किया था. यह 1975 में किया गया था. तो यह अपने कैरियर के शुरू में किया गया था और अपने कैरियर के शुरू में. मैं वास्तव में विधेयक सिखाया इस समय चारों ओर एक पाठ्यक्रम. पॉल एलन नहीं था एक हार्वर्ड के छात्र, लेकिन वह एक उच्च विद्यालय में किया गया था बिल गेट्स के सहपाठी. तुम आओ और देखो लिस्टिंग में, तुम हूँ वास्तव में एक तिहाई लगता है नाम, मोंटे Davidoff, जो गेट्स का सहपाठी था यहां हार्वर्ड में. 

ठीक है, तो यहाँ एक है यहां दिलचस्प टिप्पणी ऊपर. यह 4k में वर्गमूल नष्ट कर सकते हैं "कहते हैं लेकिन छोरों अभी भी काम करना चाहिए के लिए. " ठीक है, तो इसका मतलब है कि क्या वहाँ है कि इस कार्यक्रम संकलन करने के लिए दो तरीके थे. एक एक संस्करण पर चलाया गया था इस अल्टेयर कंप्यूटर की कि केवल के 4K शब्द था स्मृति, स्मृति की 4,096 शब्द. लेकिन बड़ा संस्करण 8K था. और तो क्या यह कहते है कि 4K संस्करण में आप कुछ नष्ट किया था कोड में इसे फिट करने के लिए. और बातों में से एक कि नष्ट हो जाएगा वर्गमूल दिनचर्या होगा. लेकिन जाहिरा तौर पर छोरों अभी भी चाहिए आप नीचे संकलन कर रहे हैं जब भी काम कंप्यूटर की बस 4K संस्करण के लिए. डेविड जे Malan: विषयों की तो एक, हम कंप्यूटर विज्ञान में देखेंगे, इस धारणा है layering और अमूर्त, और वास्तव में कंधों पर खड़े हमारे सामने आए हैं, जो लोगों को, नहीं की बिल गेट्स से कुछ के विपरीत यहाँ और पॉल एलन कथा. और इसका मतलब क्या है हम के लिए ले जा सकते हैं आज बातें कर रहे हैं वास्तव दी कि हमें कोड लिखने के लिए आसान. हम शुक्रवार को कहा कि के रूप में वास्तव कोड है, अधिक तकनीकी रूप से स्रोत कोड के रूप में जाना जाता है. और यह वाक्य रचना की तरह इस अंग्रेजी है कि अधिक उचित और अधिक अच्छी तरह से परिभाषित किया गया है छद्म कोड की तरह कुछ की तुलना में, के लिए जो कोई औपचारिक परिभाषा है. 

और आज हम क्या जा रहे हैं पर ध्यान केंद्रित करने के लिए स्रोत कोड है कि, इस तरह दिखता है जो बेशक पहली नज़र में पूरी तरह से गुप्त लग रहा है. और सच कहूँ तो, यह रास्ता अधिक aesthetically है जटिल अंतर्निहित कार्यक्रम है की तुलना में. सभी को इस कार्यक्रम, करता है याद है, हम क्या कहा जाता है? यह सिर्फ "हैलो दुनिया." प्रिंट और फिर भी हम जरूरत के सभी सामान को देखो कि बहुत सरल वाक्यांश के आसपास लपेटो करने के लिए. लेकिन सभी के लिए लंबे समय से पहले इन लाइनों और अधिक आप को ज्यादा बेहतर समझ कर देगा. 

इस प्रकार के रूप और प्रवाह है. क्या हम अपने निपटान में की जरूरत स्रोत की तरह, कोड ले रहा है हम सिर्फ देखा कि कोड. और हम एक नए कार्यक्रम की जरूरत है इसके माध्यम से चलाने के लिए. हम कर सकते हैं कि एल्गोरिदम जरूरत इस तरह, स्रोत कोड परिवर्तित वस्तु कोड, 0 और 1 में. दूसरे शब्दों में, क्या हम आज जानने के लिए जा रहे हैं यह कैसे करना है, लिखना है स्रोत कोड ऊपर, एक विशेष के लिए निवेश के रूप में इसे पारित एक संकलक के रूप में जाना जाता कार्यक्रम, और हम वस्तु कोड का उत्पादन करने के लिए जा रहे हैं. जिनमें से सिर्फ एक अच्छा तरीका है हम कुछ ले जाएगा कह कि इस तरह दिखता है, इसे पारित एक संकलक नामक एक कार्यक्रम में, वस्तु कोड उत्पादन कि इस तरह दिखता है. 

तो ये सचमुच हैं 0 और 1 का पैटर्न एक से समझ रहे हैं कि इंटेल कंप्यूटर इन दिनों, सीपीयू से व्याख्या की है कि अगर, एक कंप्यूटर के अंदर दिमाग, सचमुच बाहर प्रिंट होगा, काफी बस, "हैलो दुनिया." अब आप जिस तरह से अधिक 0 और 1 वहाँ उस के लिए आवश्यक हो सकता है उम्मीद है. हम निर्माण कर रहे हैं बल्कि इसलिए कि जटिलता का एक अच्छा सौदा पर प्रदान के लिए हम आगे ले जा सकते हैं. दूसरे शब्दों में, स्मार्ट लोगों का एक बहुत हमें शांत उपकरणों का एक बहुत कुछ दिया है और शक्तिशाली सॉफ्टवेयर है जिसके साथ हम अब हमारी खुद की परियोजनाओं के लिए कर सकते हैं. 

तो चलो शुरू हो जाओ. पिछले शुक्रवार, और जबकि समस्या सेट 0 इस सप्ताह के लिए, आप एक में खेलना होगा इस तरह दिखता है कि दुनिया. आज से और समस्या के लिए अगले सप्ताह कोड 1 सेट एक छोटे से अधिक लग रहा है गुप्त, लेकिन कार्यात्मक रूप है जा ही किया जाना है. तो नोटिस, शीर्ष स्क्रैच है, नीचे सी सच कहूँ तो खरोंच है एक बहुत अधिक उपयोगकर्ता है अनुकूल और सुलभ. लेकिन आप अब तक नेत्रहीन शीर्ष तुलना नीचे, एक से एक की तरह है के बीच पत्राचार पहेली टुकड़े और भाषा हम साथ खेलने के बारे में कर रहे हैं. विशेष रूप से, कहते हैं, नीले पहेली टुकड़ा शीर्ष, क्या कीवर्ड को जाहिरा तौर पर बराबर है इस भाषा में या विशेष वाक्यांश सी कहा जाता है? दर्शक: printf. डेविड जे Malan: printf. स्वरूपित छपाई का मतलब है. और ये सिर्फ एक कल्पना है सी में printf कहने का तरीका एक बयान या एक समारोह होने जा रहा है कि स्क्रीन के लिए कुछ प्रिंट. यह स्क्रीन करने के लिए क्या मुद्रित करता है? जो कुछ भी आप के अंदर यह बताने के लिए कोष्ठकों के अंदर उद्धरण, के. तो फिर, बेशक, सामान का एक बहुत कुछ है आप को ध्यान में रखना है कि, कोष्ठक, उद्धरण, अर्धविराम, और इस सब के सब. लेकिन उस के सभी प्रकार है के बिंदु के पास. अब के लिए दिलचस्प takeaway है कि स्क्रैच में कहते ब्लॉक बहुत ज्यादा बराबर है सी में printf बयान 

इस बीच, पीला पहेली टुकड़ा ऊपर, हरा झंडा क्लिक करने पर, शायद बराबर है कीवर्ड यहाँ क्या करने के लिए? दर्शक: मुख्य. डेविड जे Malan: तो मुख्य. शायद शायद शून्य, जे. लेकिन लगता है जैसे की मुख्य प्रकार यह महत्वपूर्ण है, और वास्तव में यह है. तो हरा झंडा क्लिक करने पर फिर, है, पहेली टुकड़ा कि बंद kicks एक पूरे स्क्रैच कार्यक्रम. लेकिन हम अब बुला शुरू करने जा रहे हैं मुख्य रूप में जाना जाता है कि मुख्य, इस समारोह. 

अब इस बीच हम करेंगे इस प्रकार के रूप में इस सामान्यीकरण. हम कहते हैं कि एक समारोह कह सकते हैं. और यह लग सकता है विशेष रूप से इस तरह. खैर, क्या छोरों के बारे में? हम परिवर्तित शुरू करना चाहते हैं या सी खरोंच में अधिक अनुवाद यहां इस बात को जाहिरा तौर पर बस "हैलो दुनिया" हमेशा के लिए कहते हैं. तो आप इन सहयोगी अगर स्क्रैच में एक बिल्ली के साथ स्क्रिप्ट, यह सिर्फ इतना कह रहा रखने के लिए जा रहा है कार्टून बुलबुला के कुछ प्रकार में, "नमस्ते, दुनिया, नमस्ते विश्व नमस्कार दुनिया, "विज्ञापन nauseum, हमेशा के लिए. हम में ऐसी ही कुछ करना चाहते हैं सी, यह एक छोटे से गुप्त लग रहा है. लेकिन हम एक ही प्राप्त कर सकते हैं के रूप में हम अंततः हूँ, परिणाम इस तरह से वाक्य रचना के साथ, यह पता लगाना. मैं, फिर printf का उपयोग करने के लिए जा रहा हूँ क्योंकि दिन के अंत में मैं मुद्रित करना चाहते हैं "हैलो दुनिया." और मैं जाहिरा तौर पर एक प्रयोग कर रहा हूँ हमेशा के लिए नहीं है कि कीवर्ड. यह बजाय जबकि शब्द है. लेकिन सिर्फ शब्दार्थ में अंग्रेजी, जबकि तरह की पाश या चक्र किसी तरह का पता चलता है. 

इसलिए कि होना होता है सी का उपयोग करता है कि कीवर्ड. और सच है, जबकि क्यों जबकि करता है प्रभावी रूप से हमेशा के लिए सच मतलब है? ठीक है, जबकि के रूप में हम जल्द ही करेंगे सभी को और अधिक की सराहना करते हैं, यह करने के लिए अगले इस प्रारंभिक है जहां आप एक बूलियन अभिव्यक्ति डाल सकता है. और उस के रूप में इतने लंबे समय अभिव्यक्ति सच है, इस कोड, इन दोनों के बीच चिह्नित के रूप में घुंघराले ब्रेसिज़ हम उन्हें फोन करता हूँ के रूप में, बस फिर और फिर से चलते रहेंगे. 

तो सच है सच है. तो सच का मतलब है, जबकि बस हमेशा के लिए ऐसा करते हैं. यह लगभग एक बेवकूफ है अपने आप को व्यक्त करने के लिए का निर्माण. लेकिन हमेशा के लिए नहीं था वहाँ सी में कीवर्ड जबकि वहाँ था. और एक बहुत ही सरल नहीं थी सच की तरह बूलियन अभिव्यक्ति. और इसलिए यह हम देख लेंगे एक ही परिणाम प्राप्त होता है. 

और कैसे आप एक पाश लागू हो सकता है? खैर, स्क्रैच में आप कर सकते हैं एक विशिष्ट संख्या मुश्किल कोड यहाँ पाश में पुनरावृत्तियों की. और इसलिए है कि वास्तव में क्या हम सी के इस संस्करण में क्या हो सकता है, हम एक है जिससे पाश के लिए तथाकथित. और यहाँ पाश के लिए जा रहा है कुछ हद तक cryptically, पुनरावृति करने के लिए, अप पर मान 0 से लेकिन करने के लिए कम से कम 10. 

स्क्रैच में अब चर. आप नहीं था हो सकता इस अवसर इन उपयोग करने के लिए. लेकिन सामान्य तौर पर बिंदु, क्या है, एक चर का हमने पिछले सप्ताह कहा था? वह क्या है? 

दर्शक: अंक. 

डेविड जे Malan: बिंदु करने के लिए? ओह, बताते हैं. ठीक है, अंक का ट्रैक रखने, उदाहरण के लिए, एक खेल में. या अधिक आम तौर पर कर चर के साथ क्या? उनमें से उपयोगिता क्या है? 

दर्शक: मेमोरी. 

डेविड जे Malan: हाँ, तो स्मृति. यह कुछ संग्रहीत करने के लिए है. और मूर्खतापूर्ण दृश्य मैं की तरह इस्तेमाल किया पिछली बार इस कांच का कटोरा की तरह था. और हम स्टोर करने के लिए चाहता था एक चर के अंदर कुछ, उदाहरण के लिए अभी मूल्य छह है क्योंकि वहाँ यहाँ में छह पिंग पोंग गेंदों हैं. यह भंडारण की बस किसी तरह का है कंटेनर कि हुड के नीचे बिट्स, 0 और 1 के साथ लागू किया जाता है, हालांकि एक कंप्यूटर है कि क्या करना होता है. 

स्क्रैच में, तो अगर हम एक चर है चाहता हूँ, हम इस तरह से एक नारंगी ब्लॉक का उपयोग कर सकते हैं. हम चाहते हैं कि काउंटर फोन करता हूँ इस विशेष मामले में. मैं इसे 0 initialized. और मैं तो क्या करते हैं यह? हमेशा के लिए, काउंटर का कहना है कि अगर आप स्क्रैच में उस के साथ खेलना आप सिर्फ खरोंच देखेंगे. आप पर डाल बिल्ली या जो भी पोशाक उसे सवाल में संख्या बोलेगा. 

1 से बदले काउंटर है 1 से incrementing की तरह. और इसलिए यह जा रहा है तो क्या से क्या गिनती? 0 से अनंत तिल, या स्क्रैच टूट जाता है जब तक, या आप जब तक की तरह देखने में रुचि खो वह वास्तव में भरोसा कर सकते हैं कि कैसे उच्च. 

तो कैसे हम सी इस परिवर्तित हो सकता है? यह एक छोटे से गुप्त लग रहा है. लेकिन फिर, अगर आप प्रत्येक को देखो इन पंक्तियों का व्यक्तिगत रूप आम तौर पर लाइनअप के वे तरह. तो जाहिरा तौर पर करने जा रहा है int सी में कुछ विशेष अर्थ है हम चाहते हैं कि फिर से देखेंगे. एक अलग रूप में यह पूर्णांक मतलब है. तो यह सिर्फ संख्या का मतलब है. इसलिए इस बात का प्रकार है मैं चाहता हूँ कि कांच का कटोरा, एक कि, नंबर स्टोर कर सकते हैं पांग की गेंद पिंग नहीं. और मैं बराबर चिह्न का उपयोग करने के लिए जा रहा हूँ यह मान 0 वहाँ आवंटित करने के लिए. तो यह है कि काफी सेट की तरह है काउंटर करने के लिए 0, लेकिन सी में 

इस बीच, सच है, जबकि यह था कि बराबर, बेशक, हमेशा के लिए, यह एक छोटे से गुप्त है, भले ही और फिर घुंघराले ब्रेसिज़ के अंदर. और अगर आप इन घुंघराले ब्रेसिज़ के बारे में सोच सकते हैं, जो आप अपने कीबोर्ड पर टाइप कर सकते हैं के रूप में वास्तव में वक्रता में तरह किया जा रहा है स्क्रैच में इन पीले पाश ब्लॉक. यह कोड की कई लाइनों को गले लगाती है. 

Printf एक हो रही है अब डरावना थोड़ा मैं क्योंकि न केवल कोष्ठक में उद्धरण देखें. लेकिन और क्या नया है वाक्य रचना इस उदाहरण में? एक प्रतिशत घ है. और फिर बैकस्लैश वहाँ n है. हम भी, इससे पहले कि देखा मैं यह उल्लेख नहीं किया है. फिर एक अल्पविराम है. और फिर एक काउंटर है. 

लेकिन हम सिर्फ एक में देखेंगे यह सिर्फ है कि पल प्रिंट एक कहावत है की एक मानक तरीका "दशमलव संख्या," बोली, गंदें शब्द बोलना, कुछ दशमलव संख्या. लेकिन मैं आपको बाद में बताने जा रहा हूँ उस दशमलव संख्या क्या है. एक अल्पविराम है कि वहाँ तथ्य तो इस लाइन कहावत printf में, आगे बढ़ो और प्रिंट का मतलब कुछ दशमलव संख्या. ओह, और वैसे भी, संख्या है जो भी इस चर का मान है. और इसलिए यह और अधिक बनाने के लिए , हम एक उदाहरण स्पष्ट देखेंगे लंबे समय से पहले बिल्कुल printf शामिल असली सी कार्यक्रमों के संदर्भ में. 

अब बस कुछ लपेट इन निर्माणों की. बूलियन अभिव्यक्ति, आप नहीं हो सकता इस अवसर अपने कार्यक्रम में इन उपयोग करने के लिए लेकिन आप बहुत अच्छी तरह से हो सकता है विशेष रूप से शर्तों का उपयोग करें. और इसलिए इन दो उदाहरणों एक्स वाई से कम है तो इसका मतलब यह खरोंच, एक्स वाई से भी कम है और अगर या वाई कम है जेड की तुलना में, हम कैसे अनुवाद हो सकता है? 

खैर, सी में यह सिर्फ है इस तरह लग रहा. एक छोटी सी गुप्त, अधिक कोष्ठक, कुछ अजीब ampersands, लेकिन मौलिक विचारों वे के रूप में सरल हैं पहेली टुकड़ा दुनिया में हैं. हम बस कुछ तो जाँच कर रहे हैं कुछ और की तुलना में कम है. 

कैसे स्थितियों के बारे में? अंग्रेजी में संक्षेप में, यह क्या करता है स्क्रैच कोड का हिस्सा आप कहेंगे है? 

दर्शक: दो नंबर तुलना करती है. 

डेविड जे Malan: दो तुलना संख्या, और एक्स वाई से कम है तो यह बहुत ही कहते हैं. एक्स वाई से अधिक है यह के रूप में ज्यादा है, बाकी का कहना है एक्स के बराबर है तो यह उतना कहते वाई. अब एक्स और वाई से जहां आए? कौन जानता है. स्क्रैच का यह हिस्सा कोड संदर्भ से बाहर है. लेकिन क्या हम अब क्या करना चाहते अनुवाद है बस एक पल के लिए यह देखने के लिए. 

आप आराम से मिल के रूप में तो समस्या सेट में इस सप्ताह 0 इस दुनिया में खेल बाईं तरफ, एहसास विचारों बदलते नहीं हैं अगले या परे या इस सप्ताह. हम बस करने के लिए जा रहे हैं बातें लिखना शुरू के साथ एक अलग तरीके से हमारे बजाय हमारे माउस के कीबोर्ड. 

तो अगर एक्स वाई की तुलना में कम है, और वहाँ कुछ कोष्ठकों वहाँ, फिर कुछ घुंघराले ब्रेसिज़ वहाँ फिर तरह की यह encapsulate करने के लिए पीले पहेली टुकड़े कर बस की तरह. और मैं एक्स printf करने जा रहा हूँ इसके आगे वाई और की तुलना में कम है. 

क्या सी के बारे में अच्छा है, आप यहाँ देख सकते हैं, आप इस घोंसले के शिकार नहीं मिलता है, घोंसले के शिकार, यह जरूरी है कि है घोंसले के शिकार सही करने के लिए अपने कोड धक्का जा रहा. आप के बजाय सब कुछ हो सकता है लाइनअप बड़े करीने से इस तरह. लेकिन यह सिर्फ एक सौंदर्य है हम लंबे समय से पहले फिर से देखेंगे विस्तार. 

ठीक है. इसलिए कि हमें वापस लाता है इस गुप्त देख कार्यक्रम. वास्तव में कुछ कोड लिखें. अब आप कैसे कोड लिखने के बारे में जाना है? आप स्वामित्व है कि इन सभी वर्षों एक मैक या पीसी, डेस्कटॉप या लैपटॉप, आप वास्तव में क्षमता लिया है प्रोग्रामिंग कोड लिखने शुरू करने के लिए. लेकिन तुम शायद भूल रहे हैं कार्यक्रम की एक विशेष प्रकार का. आप निश्चित रूप से कोड लिख सकते हैं. लेकिन तुम, जरूरी नहीं कर सकते बॉक्स के बाहर, कि स्रोत कोड परिवर्तित वस्तु कोड, 0 और 1 में अपने कंप्यूटर पर क्या बिना? दर्शक: संकलक. डेविड जे Malan: तो एक संकलक, सही. अब आप में से अधिकांश शायद एक संकलक ही नहीं है, एक संकलक डाउनलोड की कभी नहीं किया है. लेकिन अगर आप इसे डाउनलोड कर सकते हैं देखेंगे सॉफ्टवेयर की सबसे अधिक किसी भी अन्य टुकड़े की तरह. मैक ओएस की दुनिया में, तुम हो सकता है डाउनलोड या पहले से ही डाउनलोड किया है Xcode या जीसीसी या बजना कुछ कहा. आप से आते हैं विंडोज दुनिया तुम हो सकता है विजुअल स्टूडियो डाउनलोड किया है, विजुअल बेसिक, ऐसा वातावरण. Compilers के दर्जनों रहे है आप उपयोग कर सकते हैं कि इन दिनों. लेकिन यहाँ यह की कमी यह एक दर्द होना होता है और, सच में, एक तकनीकी सैकड़ों के लिए बुरा सपना विभिन्न साथ लोगों की सभी को कंप्यूटर विन्यास उनकी मशीनों को विन्यस्त ठीक उसी तरह इतना है कि हम सब एक ही पृष्ठ पर हो सकता है. 

इसलिए हम इसके बजाय, क्या करते हैं CS50 में हम आपको दे रहा है एक मानक वातावरण, एक है कि लिनक्स वातावरण एक छोटे से लग जा कुछ इस तरह. आप में इस बात का अधिक देखेंगे समस्या सेट 1 विनिर्देश जो इस शुक्रवार रात ऑनलाइन जाना होगा. 

और इसका क्या मतलब आपको लगता है कि आगे से है करने के लिए सक्षम होने के लिए जा रहे हैं डाउनलोड करने और एक प्रोग्राम स्थापित CS50 उपकरण कहा जाता है. और आप डाउनलोड करने के लिए जा रहे हैं और कहा जाता है एक और प्रोग्राम स्थापित सिर्फ एक है जो एक हाइपरविजर, इस को प्राप्त करने का अच्छा तरीका. आप एक मैक या पीसी या एक ही है चाहे लिनक्स कंप्यूटर या एक सोलारिस कंप्यूटर, या जो कुछ पागल ऑपरेटिंग प्रणाली आप चला रहे हैं, आप एक प्रोग्राम डाउनलोड करने के लिए जा रहे हैं है कि हाइपरविजर बुलाया CS50 चला जा रहा आपके कंप्यूटर पर उपकरण कोई बात नहीं अपने ऑपरेटिंग सिस्टम क्या है. दूसरे शब्दों में एक हाइपरविजर धर्मान्तरित जो भाषा के लिए हमारे सामान, जो भी निर्देश अपने अपने कंप्यूटर समझता है. 

तो यह एक layering है. और फिर, इस प्रकार है कंप्यूटर में विषयगत की विज्ञान, चीजों के शीर्ष पर निर्माण. आप Windows हो सकता है. आप मैक ओएस हो सकता है. लेकिन अगले हफ्ते शुरू आप कर रहे हैं डाउनलोड किया है के लिए जा रहा सॉफ्टवेयर के एक मुक्त टुकड़ा हाइपरविजर बुलाया. आप एक टुकड़ा डाउनलोड किया जा रहे हैं सॉफ्टवेयर की CS50 उपकरण कहा जाता है. 

यही है, हाइपरविजर में चला जा रहा है जो आपके कंप्यूटर पर चला जा रहा है. और अंत परिणाम है हम सब होगा कि जैसे एक साधारण खिड़की है अपने मैक या पीसी पर इस कि हमें सभी का भ्रम देता है एक ही ऑपरेटिंग सिस्टम चल रहा है, किसी भी दूसरे के बिना आपके कंप्यूटर पर प्रभाव. और आप पूर्ण स्क्रीन कर सकते हैं यह और अनिवार्य रूप से व्यवहार आप चल रहे हैं के रूप में हालांकि एक लिनक्स बुलाया ऑपरेटिंग सिस्टम, जो क्या CS50 है उपकरण पर आधारित है. 

तो चलो वास्तव में इस का उपयोग करते हैं अब एक प्रोग्राम लिखने के लिए. आप एक प्रोग्राम लिख सकते हैं माइक्रोसॉफ्ट वर्ड का उपयोग. आप एक प्रोग्राम लिख सकते हैं TextEdit, या नोटपैड का उपयोग कर, या वर्डपैड, या बहुत ज़्यादा किसी भी शब्द संसाधन प्रोग्राम आप कभी भी उपयोग किया. लेकिन वास्तविकता यह है कि आप नहीं करना चाहिए वास्तव में उन कार्यक्रमों में से किसी का उपयोग करें. आप निश्चित रूप से उपयोग नहीं करना चाहिए माइक्रोसॉफ्ट वर्ड की तरह कुछ जो बोल्ड सामना करना पड़ रहा है और इटैलिक, और भी हैं बड़ा फोंट और छोटे फोंट, कंप्यूटर नहीं है, क्योंकि कि किसी के बारे में परवाह है. सभी कंप्यूटर है है के बारे में देखभाल करने के लिए जा रहा सी में लिखित निर्देश की तरह अंग्रेजी 

तो हम अंदर क्या करेंगे CS50 उपकरणों की स्वतंत्र रूप से एक कार्यक्रम का उपयोग कर रहा है उपलब्ध, यह और है इस में पूर्व स्थापित उपकरण, एडिट बुलाया. और एडिट सिर्फ एक सुपर सरल है मैक ओएस के TextEdit की तरह पाठ संपादक, जा रहा है कि विंडोज नोटपैड की तरह इस तरह एक छोटे से कुछ दिखेगा. 

तो वास्तव में नहीं करते इस की स्लाइड्स पर दिखेगा. लेकिन वास्तव में चलते हैं पर्यावरण ही. मैं आगे जाने के लिए जा रहा हूँ और यह दूसरी खिड़की में, में प्रवेश करें, मैं जो मेरे CS50 उपकरण, के लिए यहाँ अपने लैपटॉप पर पूर्व स्थापित. 

विंडोज और जैसे कि, नोटिस मैक ओएस, यह कुछ मेनू मिल गया है. खिड़कियों की तरह कहते हैं यह वहाँ नीचे के बजाय वहाँ इसे नीचे डालता है जो मैक ओएस, के. लेकिन वास्तविकता यह है है उसी के सभी प्रकार के. और यहाँ में एक पूरी है सॉफ्टवेयर का गुच्छा. ड्रॉपबॉक्स है. सामान की एक पूरी गुच्छा है, चित्रमय कार्यक्रमों है कि हम करेंगे समस्या सेट के लिए अवधि में बाद में उपयोग करें. इतने में बनाया गया एक वेब ब्राउज़र नहीं है यह एक संपूर्ण कंप्यूटर है कि एक कंप्यूटर के अंदर. 

लेकिन मैं इस क्लिक करने के लिए जा रहा हूँ यहां सफेद आइकन बाएँ तरफ, जो gedit के लिए चिह्न है. और यह एक खिड़की खोलने के लिए जा रहा है कि, यह करने के लिए तीन पैनलों है एक छोड़ एक, एक शीर्ष एक, और एक नीचे एक. 

अब यह इस शीर्ष सही एक में है कि मैं वास्तव में कुछ कोड लिखने के लिए जा रहा हूँ. तो चलो यह करते हैं ,. मैं, फाइल में सेव करने के लिए जा रहा हूँ. और तुम कभी नहीं देखा होगा इससे पहले इस विशेष खिड़की. लेकिन इस मैक ओएस या Windows की तरह है. यह सिर्फ एक खिड़की है फ़ोल्डरों के सभी के साथ मैं इस कंप्यूटर के अंदर है कि. 

और मुझे बचाने के लिए जा रहा हूँ hello.c के रूप में फ़ाइल. और मैं जा रहा हूँ आगे और सहेजें क्लिक करें. और अब मैं एक टैब है नोटिस ऊपर छोड़ दिया पर hello.c बुलाया. तो शायद सुंदर परिचित आप नहीं किया है, भले ही इससे पहले इस विशेष कार्यक्रम का इस्तेमाल किया. 

और अब मैं उन में टाइप करने के लिए जा रहा हूँ आदेशों की काफी गुप्त अनुक्रम कि हम एक पल पहले देखा था. शामिल करें, मानक मैं / O.h. कि जल्द ही जानें. इंटरनैशनल मुख्य शून्य, खुले घुंघराले गले लगा, घुंघराले ब्रेस बंद हुआ. और फिर वहाँ के अंदर मुझे लगता है जहां हम "नमस्ते विश्व," अर्धविराम था. और अब बचा. 

इसलिए इस सी में लिखा एक कार्यक्रम है, स्रोत कोड में, इसलिए लिखा. लेकिन मैं सिर्फ यह कार्यक्रम नहीं चलाया जा सकता. मैं एक तरह से दोगुना करना चाहते हैं कहीं एक आइकन पर क्लिक करें, लेकिन कोई आइकन अन्य मौजूद स्रोत कोड फ़ाइल से. क्या, फिर, इस प्रक्रिया को अब यह है कि मैं के माध्यम से इस फाइल को चलाने की जरूरत है? दर्शक: संकलक. डेविड जे Malan: तो एक संकलक. इसलिए विभिन्न कंप्यूटरों में आप अलग अलग तरीकों से यह करते हैं. लेकिन हम में यहाँ क्या कर दिया है कि CS50 उपकरण के प्रतिनिधि कैसे आप कर सकते हैं यह कई अलग सिस्टम पर करते हैं, मैं बस करने के लिए जा रहा हूँ है बनाने नामक एक आदेश चलाएँ. और सुनिश्चित सचमुच ऐसा करने जा रहा है. मुझे एक कार्यक्रम बनाओ. 

तो जा रहा है कर मेरे लिए एक संकलक चलाते हैं. और कार्यक्रम के नाम मैं नमस्कार है बनाना चाहते हैं. अब बनाने के लिए एक कार्यक्रम है. और बनाना काफी चालाक है , मैं कहता हूँ अगर हैलो बनाने का एहसास है कि यह स्वचालित रूप से लग रहा है एक फ़ाइल बुलाया hello.c के लिए सिर्फ है कि क्योंकि जिस तरह से यह विन्यस्त है. 

इसलिए मैं अब यहाँ, इस हिट दर्ज करें जब पागल गुप्त लाइन बस से मार डाला गया. और इससे पहले, मुझ पर भरोसा लंबे, बस दिनों के भीतर, आप क्या सब समझ में आ जाएगा बकवास है कि साधन की. लेकिन अब के लिए, बस इतना पता है कि एक संकलक का ट्रिगर निष्पादन. दूसरे शब्दों में, यह पाया अपने कंप्यूटर पर एक संकलक कि पहले से स्थापित है CS50 उपकरणों पर हम समस्या सेट 1 में आप के लिए हाथ हूँ कि. और यह तो रूप hello.c ले लिया इनपुट, और जाहिरा तौर पर उत्पादित 0 और आउटपुट के रूप में 1s. 

और डिफ़ॉल्ट रूप से यह क्या करता है यह बचाता है एक फाइल में उन 0 और 1 नमस्ते कहा जाता है. और इस वाक्यविन्यास यद्यपि भी हो सकता है बस डॉट कह कर, आप के लिए नया हो स्लेश हैलो होने जा रहा है जिसके द्वारा मैं इस कार्यक्रम को चलाने का मतलब है. 

अभी के लिए और कम से कम एक जोड़ी के लिए कार्यक्रमों के सप्ताह के लगभग सभी हम में होने जा रहे हैं लिखने काले और सफेद पाठ Windows. कोई चूहों, नहीं क्लिक करें, कोई खिड़की, कोई प्रतीक. हम इसे सरल रखने के लिए जा रहे हैं और निहित विचारों पर ध्यान केंद्रित हम कुछ करने के लिए मिल के शुरू होने से पहले उच्च स्तर, उदाहरण के लिए, हम बात है कि ब्रेक के बाहर खेल की तरह पहला व्याख्यान पिछले सप्ताह में के बारे में. 

मैं यहाँ दर्ज मारा तो, जब यह बात है एक पाठ ही वातावरण में बराबर हैलो नामक एक आइकन पर क्लिक करने के लिए डबल. तुम जाएगा उम्मीद है क्या मैं तो हिट दर्ज हो सकता है जब? 

दर्शक: यह "हैलो दुनिया." प्रिंट हूँ 

डेविड जे Malan: उम्मीद यह "हैलो दुनिया." प्रिंट होगा और वास्तव में ऐसा किया था. अब वहाँ गया है कुछ यहाँ गुप्त वाक्यविन्यास. बस के लिए उल्टा करते हैं एक पल और देखो अगर हम बस से inferring शुरू नहीं कर सकते , छेड़छाड़ की कोशिश कर रहा है और असफल यहाँ पर क्या हो रहा है के रूप में. क्या मैं बैकस्लैश n से छुटकारा मिलता है? अब आप में से कुछ है जो शायद पहले क्रमादेशित इसका मतलब है कि क्या तुरन्त पता है. लेकिन आप में से जो उन लोगों के लिए पहले क्रमादेशित कभी नहीं, कम से कम क्या हो रहा है अपने आप को लगता मैं इस कार्यक्रम फिर से दौड़ना जब बदलने के लिए? इसलिए मैं वापस नीचे जाने के लिए जा रहा हूँ मेरे छोटे काले और सफेद खिड़की, जो खिड़की है जिसमें मैं इस संकलन कर सकते हैं. मैं नमस्ते, फिर कंपाइल करने के लिए जा रहा हूँ. हम एक ही देखने जा रहे हैं आदेशों की गुप्त अनुक्रम. और मुझे नमस्कार डॉट स्लेश करने के लिए जा रहा हूँ. और अब किसी को आप चाहते हैं, जो, पहले क्रमादेशित कभी नहीं इस समय अलग हो सकता है क्या? हाँ. 

दर्शक: यह बंद नहीं होगा छपाई "हैलो दुनिया." 

डेविड जे Malan: यह to-- खेद हो रहा है? 

दर्शक: यह मुद्रण बंद हो जाएगा नहीं? 

डेविड जे Malan: यह नहीं होगा मुद्रण रोक "हैलो दुनिया." तो बुरा विचार नहीं है. अन्य विचारों? हाँ. 

दर्शक: त्रुटि संदेश? 

डेविड जे Malan: त्रुटि संदेश, ठीक है, हो सकता है. और क्या? दर्शक: इसे मुद्रित हो सकता है के रूप में अच्छी तरह से अर्धविराम पर ब्रैकेट? डेविड जे Malan: मुद्रित हो सकता है के रूप में अच्छी तरह से अर्धविराम पर ब्रैकेट. इसलिए हो सकता है कि बैकस्लैश तो है कुछ महत्वपूर्ण है कि एक सीमा की तरह. किसी अन्य विचार? 

इसलिए सभी अच्छे विचारों. और वास्तव में, यह जा रहा है एक त्रुटि संदेश हो. यही कारण है कि सबसे अधिक संभावना शायद है सामान्य रूप में जवाब देने के लिए अगले कुछ हफ्तों के लिए हम यहाँ कोड को जानने के रूप में. 

लेकिन अब के लिए कंप्यूटर कि याद केवल आप करने के लिए उन्हें बताना है क्या. हास्यास्पद मूंगफली बहुत पसंद है मक्खन और जेली उदाहरण. हमारे मानव कंप्यूटर ही वाले थे आप कर उन्हें बताया कि क्या करना है. इस मामले में, तो अगर आप कंप्यूटर को मत बताना करने के लिए कि निमिष कर्सर ले जाने के लिए अगली पंक्ति, यह यह करने के लिए नहीं जा रहा है. इसलिए मैं इस कार्यक्रम चलाते समय अब, अंतर नोटिस. 

एक बग की तरह लग रहा है. यह शायद, एक सौंदर्य बग है. लेकिन इस बारे में अलग क्या है जाहिर है पिछले एक बनाम उत्पादन? हाँ. 

दर्शक: यह एक नई लाइन नहीं किया. 

डेविड जे Malan: यह एक नई लाइन नहीं किया. अब आप में से उन जो शायद बनाया वेब पृष्ठों है इससे पहले, आप के बारे में पता हो सकता है बीआर टैग या पैरा टैग, भावना में बहुत समान. एक वेब ब्राउज़र जब तक आप पर ध्यान नहीं देगा आप वास्तव में क्या करना है यह बताने के लिए. इसी तरह, सी की तरह एक भाषा है ही तुम्हें क्या करना है यह बताने के लिए क्या क्या करने जा रहा. 

कारण तो यह है कि इन उदाहरणों के सभी, इस प्रकार अब तक, तरह का है लापरवाही से इस बैकस्लैश था वहाँ में, इसका मतलब है कि है जिसके द्वारा आप अपने आप को व्यक्त एक नई लाइन चरित्र के रूप में, तो बात करने के लिए. और आप की तरह, शायद, सराहना कर सकते हैं इस बेवकूफ की तरह लग रही होगी कि यदि और कुछ नहीं. मैं एक नई लाइन चाहता था, बस मार तरह तो लिखें और की तरह है कि कोड butchering वास्तव में आप सही तरीके से रगड़ना नहीं चाहिए. और अगर तुम नहीं है वास्तव में इस बिंदु पर परवाह, आप महसूस करेंगे कि यह एक विशेष रूप से नहीं है कोड की अच्छी लग रही टुकड़ा. 

और तो क्या दुनिया निर्णय लिया साल पहले है कि आप रखना चाहते हैं जब स्पष्ट रूप से एक नई लाइन पर कर्सर, आप स्पष्ट रूप से कहना होगा नई लाइन, बैकस्लैश एन. और कुछ अन्य वहाँ कि जैसे प्रतीकों. लेकिन अब हम सिर्फ हूँ बैकस्लैश n पर ध्यान केंद्रित. 

अब कार्यक्रम बनाते हैं एक छोटे से अधिक दिलचस्प. मैं आगे जाने के लिए जा रहा हूँ और इस बार एक नई फ़ाइल को खोलने के. मैं इस रूप में हैलो-1.c बचाने के लिए जा रहा हूँ. और बस kicks के लिए, मैं जा रहा हूँ मेरे ड्रॉपबॉक्स फ़ोल्डर में डाल दिया जाना. 

आप CS50 में देखेंगे उपकरणों के लिए दस्तावेज, समस्या के लिए बाद में इस सप्ताह 1 सेट, हम प्रोत्साहित करेंगे आप ड्रॉपबॉक्स का उपयोग करने के लिए या कुछ बराबर सेवा, अपने कोड की तो सभी क्योंकि जा स्वतः संरक्षित करने की. मैं और यही कारण तो है कि यहाँ इस फ़ोल्डर में चला गया. 

और अब मैं एक लिखने जा रहा हूँ थोड़ा अलग कार्यक्रम. मानक मैं / O.h, int मुख्य शून्य, शामिल करें. और फिर यहाँ printf, नमस्ते दुनिया में, जो पहले के रूप में बिल्कुल वैसा ही है. 

लेकिन अब मैं कुछ मुद्रित करना चाहते हैं कि एक छोटे से अलग है. मैं बाहर मुद्रित करना चाहते हैं "हैलो, डेविड. कहते हैं," सब ठीक है, जाहिर है, ताकि यह उम्मीद करना चाहिए मैं फिर कंपाइल कि अगर मामला हो इस कार्यक्रम, यह फिर से दौड़ना, यह कहने के लिए जा रहा है "हैलो, डेविड." 

लेकिन क्या अगर मैं चाहता हूँ शुरू करने की चर के इस तरह, जा रहा है कि एक कंटेनर की धारणा कोड यह D-A-V-I-D और कठिन नहीं स्टोर करने के लिए मेरे कार्यक्रम में. वैसे मैं क्या शुरू कुछ इस तरह कर रही है? 

स्ट्रिंग है, तो यह एक चर रहा है. आप एक स्ट्रिंग चाहते हैं, एक शब्द या एक वाक्यांश उर्फ. वर्णों के क्रम क्या है हम प्रोग्रामिंग में एक स्ट्रिंग कहते हैं. हम सिर्फ सामान्य रूप से कॉल करने के लिए जा रहे हैं यह एक अच्छा सरल नाम है, क्योंकि यह है. लेकिन मैं कुछ भी कह सकते हैं. 

मैं स्ट्रिंग एस बराबर कहने जा रहा हूँ गंदें शब्द बोलना, "डेविड," अर्धविराम बोली. और अब मैं सम्मिलित करना चाहते हैं डी ए वी मैं डी मैं छपाई क्या कर रहा हूँ में. और हम पहले पर एक नमूना देखा कुछ विशेष वाक्यविन्यास की स्क्रीन कि हमें की अनुमति दी एक मूल्य में स्थानापन्न. विशेष क्या था प्रतीक कुछ स्लाइडों को पहले? 

तो प्रतिशत. समय में यह प्रतिशत थी दशमलव संख्या के लिए डी. यह वास्तव में यहाँ प्रासंगिक नहीं लगता. वहाँ के बाहर वर्षगांठ एक और प्रतिशत प्रतीक, जो खड़ा है जो प्रतिशत है, एक स्ट्रिंग के लिए एक प्लेसहोल्डर के लिए. 

तो अब, जाहिर है, मैं कर रहा हूँ हैलो -1 बनाने जाने के लिए जा रहा है, इस फाइल को कहा जाता है क्योंकि हैलो-1.c, और हिट दर्ज करें. और मैं बँधा हुआ. क्या चल रहा है? हम करने के लिए शुरू किया है, जहां ठीक है, यहाँ है हम इस आदेश में कर रहे हैं कि सराहना रेखा पर्यावरण, इस केवल वातावरण पाठ. माउस पर कोई क्लिक नहीं है सही अब फ़ोल्डरों की तरह. और एक पल पहले वापस लगता है. क्या में फ़ोल्डर मैं कहना था मैं अपने कोड बचा था? तो ड्रॉपबॉक्स फ़ोल्डर. कुछ भी बुलाया जा सकता था. लेकिन यह ड्रॉपबॉक्स बुलाया होना होता है. तो मैं किसी भी तरह पर डबल क्लिक करने की जरूरत है कि ड्रॉपबॉक्स फ़ोल्डर पाने के लिए और उसमें पर माय कोड हैलो-1.c बुलाया. वास्तव में, मुझे आगे जाना है और कम से कम करते हैं बस एक पल के लिए यह विंडो. बस विंडोज और मैक ओएस की तरह, लिनक्स में फ़ोल्डरों कर रहे हैं. CS50 उपकरण में फ़ोल्डर्स शामिल हैं. यह सिर्फ अभी हम सीमित कर रहे है इस पाठ में पर्यावरण के लिए अपने आप को. 

लेकिन मैं डबल क्लिक करें ड्रॉपबॉक्स पर, वहाँ नोटिस मैं संकलन करने के लिए फ़ाइल है. लेकिन मैं इस काले और सफेद की जरूरत टर्मिनल विंडो, तो बात करने के लिए. लेकिन मैं जरूरत है, इसलिए, स्थानांतरित करने के लिए उस फ़ोल्डर या निर्देशिका में. तो थोड़ा रहस्यमय है, लेकिन आप भी इस की आदत हो जाएगी. 

लिनक्स की दुनिया में, जो फिर से काम कर रहा है सिस्टम हम CS50 के अंदर चला रहे हैं उपकरण, सीडी नामक एक आदेश है. जो मैं सीडी, अंतरिक्ष, ड्रॉपबॉक्स कर सकते हैं इसका मतलब है. सीडी, परिवर्तन निर्देशिका. ठीक है. वापस दिन में लोग थे जब कंप्यूटर की खोज करने और संचालन इस तरह सिस्टम, वे चाहते थे fewest कीस्ट्रोक्स संभव लिखें. सबसे आसान तरीका है कहने के लिए तो परिवर्तन निर्देशिका सीडी था. 

तो मैं सीडी, अंतरिक्ष ड्रॉपबॉक्स मारा, यहाँ क्या बदल गया है नोटिस. कोष्ठकों के अंदर उपकरण तरह है मुझे humoring की और मैं कहाँ हूँ मुझे याद दिलाता है. तो खुले फ़ोल्डर ड्रॉपबॉक्स है. मैं अब के लिए LS टाइप सूची, फिर संक्षिप्त, करने के लिए लोग नहीं चाहते थे क्योंकि दिन एल मैं एस टी में वापस लिखें. इसलिए वे बजाय यह रास बनाया. 

लिखें. , मैं, हैलो-1.c दो चीजों को देखने के नोटिस और फिर इस गुप्त बात, स्रोत 1m. कह रही है कि अभी मेरा तरीका है सप्ताह 1 सोमवार के लिए स्रोत कोड. यही कारण है कि मैं से डाउनलोड एक फ़ोल्डर है मैं पहले आज बनाया कि CS50 की वेबसाइट और बस में डाल दिया अग्रिम में उपकरण. 

लेकिन अब केवल एक चीज के लिए हम इस कार्यक्रम बना रही है के बारे में परवाह है. तो मैं नमस्कार -1, दर्ज कर लिखते समय. लानत है. कुछ गलत हो गया. तो चलो इस के अलावा तंग करते हैं. और दुर्भाग्य से इस जहां चीजें है पहले थोड़ा तनावपूर्ण हो, कम से कम आप है, तो पहले क्रमादेशित कभी नहीं. 

हे भगवान. मैं एक दो लाइन कार्यक्रम में लिखा था और मैं त्रुटियों की चार लाइनें है. तो यहाँ क्या हो रहा है. और सबसे पहले हमेशा वापस स्क्रॉल अप और पहली त्रुटि संदेश मिल सकता है, बार बार बस compilers क्योंकि आप और मैं क्या कर से उलझन में हैं. संकलनकर्ता सुंदर गूंगा कर रहे हैं. वे केवल क्या करेंगे आप करने के लिए उन्हें बताओ. आप उन्हें भ्रमित हैं, वे बस रहे हैं एक तरह से अपने हाथ ऊपर फेंक करने के लिए जा रहा और शायद अधिक त्रुटि संदेश फेंक से वास्तव में प्रासंगिक हैं. 

तो चलिए पहले हम देखते हैं. पहली बार में सुपर गुप्त. लेकिन नोटिस, यहां का नाम है फ़ाइल जिसमें मैं जाहिरा तौर पर बँधा हुआ. पेट के 5, पेट के 5 बस पर इसका मतलब पांचवें चरित्र पर लाइन 5. तो पात्रों के पांचवें स्तंभ, त्रुटि, अगर तुम जाएगा. अघोषित पहचानकर्ता स्ट्रिंग का प्रयोग करें. आप मानक n मतलब था? 

नहीं, मैं स्ट्रिंग मतलब. और फिर यह किस तरह का है कॉपी करने और चिपकाने मैं वास्तव में आकर्षित करने के लिए क्या टाइप मेरे मैं बँधा हुआ जहां पर ध्यान. किसी कारण के सी के लिए तो, या कम से कम संकलक शब्द स्ट्रिंग नहीं समझती. हम इसे बनाया है क्योंकि और वह है. तो स्ट्रिंग मौजूद नहीं है सी क्या CS50 करता है में, पहले कुछ हफ्तों के लिए केवल वर्ग की, हम कुछ प्रशिक्षण प्रदान कर रहा है पहियों, तो बात करने के लिए. और हम इन प्रशिक्षण के पहियों डाल CS50.h. नामक एक विशेष फ़ाइल के अंदर 

तो यह दो फाइल के दूसरे नंबर पर है जाहिरा तौर पर डॉट घंटे में खत्म हो कि नाम. का उल्टा करते हैं. Printf एक बयान या समारोह है कि जाहिरा तौर पर कुछ प्रिंट स्क्रीन करने के लिए. लेकिन तुम मुझे नहीं देखा सही, printf लागू. कोई साल पहले printf लागू किया है. क्या फाइल में आप वह दांव लगाना होगा या वह कार्यान्वयन डाल printf, printf के लिए कोड के लिए? 

मानक मैं / O.h नामक एक फाइल में. वास्तव में, यह शायद है दो फाइलें, मानक मैं / O.h, जो शीर्ष लेख के लिए खड़ा है फ़ाइल, और मानक मैं / O.c, जो सी स्रोत कोड के लिए खड़ा है. तो वह या वह कुछ साल पहले plopped वे कहते हैं कि फाइल में लिखा है कि कोड इतना है कि हमारे जैसे लोग साल बाद इसे शामिल कर सकते हैं, इसलिए हमारे अपने कार्यक्रमों में बात करने के लिए. 

और वास्तव में, कि क्या पाउंड संकेत है शब्द द्वारा पीछा करता है शामिल हैं. यह स्थानीय हार्ड ड्राइव पर लग रहा है , मानक मैं / O.h बुलाया फ़ाइल पाता है और तब प्रभावी प्रतियां और मेरी अपनी फाइल के अंदर यह चिपकाता है. तो अब अपने कार्यक्रम जानता है कैसे स्क्रीन को मुद्रित करने के लिए. 

तर्क है कि, जहां से तो स्ट्रिंग परिभाषित किया गया है? 

दर्शक: CS50.h. 

डेविड जे Malan: CS50.h. और वास्तव में, कि क्या हम, कोर स्टाफ, किया है. हम कुछ डेटा प्रकार का आविष्कार किया है, इसलिए एक स्ट्रिंग की तरह बात करने के लिए, लोगों के अलावा आप एक पूर्णांक की तरह, मुक्त करने के लिए मिलता है. और हम एक चार अन्य लोगों की तरह देखेंगे एक चरित्र है और कुछ और के लिए. CS50.h जाहिरा तौर पर है के अंदर स्ट्रिंग के कम से कम कुछ उल्लेख. 

तो अब मुझे आगे चलते हैं और फिर से दौड़ना बनाने हैलो-1. मैं फिर में ज़ूम और अपनी उंगलियों को पार करेंगे. अब से एक कर दिया मैं सबसे बातें तय बदल जाते हैं. लेकिन यह लानत. डेटा तर्कों से अधिक percents. क्या मैं इस समय गलत क्या किया? 

तो यह अभी भी बहुत गूढ़ है. लेकिन इस त्रुटि पर है रेखा 7 और चरित्र 21. तो चलो यहाँ देखो चलें. यह एक छोटे से सूक्ष्म है. लेकिन आप के बारे में सोचते हैं तो क्या यहां मौलिक विचार कर रहे हैं शायद हम इस के अलावा तंग कर सकते हैं. 

तो printf समारोह का नाम है. कोष्ठक, इस प्रकार दूर है, बस हम चारों ओर डाल की तरह हम गुजर रहे हैं सामान एक समारोह को जानकारी के रूप में. सब ठीक है, सिर्फ एक मनमाने ढंग से मानव सम्मेलन. कोष्ठकों का प्रयोग करें. उन कोष्ठकों के अंदर हम डबल उद्धरण डाल दिया गया है, और फिर जैसे एक स्ट्रिंग "नमस्ते दुनिया." 

लेकिन यह है कि पहले उदाहरण में बहुत संक्षेप में हम खरोंच के साथ कम लग रही थी. और हम प्रतिशत विकास, था और क्या उन कोष्ठकों के अंदर था मैं मौखिक रूप से बाहर बुलाया है? हाँ. 

दर्शक: यह है तो आप ले जा रहे हैं क्या [अश्राव्य] के भीतर से [अश्राव्य] क्या इन [अश्राव्य]? डेविड जे Malan: बिल्कुल. इसलिए हम प्रतिशत घ था. लेकिन तब हम करीब था बोली, अल्पविराम, काउंटर. ठीक है. हम हम क्या चाहते हैं निर्दिष्ट प्लेसहोल्डर के रूप में करना. तो क्या मैं यहाँ क्या करने जा रहा हूँ अल्पविराम, तुम मुझे डाल करने के लिए क्या करना चाहते हैं? दर्शक: एस डेविड जे Malan: एस, क्योंकि इस मामले में है भंडारण कंटेनर का नाम है. ऐसा लगता है कि कांच का कटोरा के नाम है. यह उस में काउंटर था जबकि पहले सरल स्क्रैच उदाहरण हम को देखा. तो अब दो कर दिया परिवर्तन, मुझ में ज़ूम और करने के लिए एक बार फिर कोशिश इस कार्यक्रम के संकलन. 

अब मुझे लगता है कि गुप्त लाइन देखते हैं. लेकिन वह वास्तव में है संकलक का नाम है. बजना संकलक का नाम है. बस मुझे बचत है बनाओ कभी का सिरदर्द कि लंबे समय से पागल आदेश बाहर टाइपिंग. तो अब मैं डॉट हैलो -1 स्लेश करते हैं, मैं "हैलो, डेविड." देखना चाहिए 

सुंदर underwhelming है, हालांकि, सही? हम कर सकते थे यह एक बहुत अधिक बस चर के बारे में बात कर के बिना CS50.h और यह सब और. तो चलो यह एक बनाते हैं थोड़ा और अधिक दिलचस्प. 

CS50.h के अलावा, स्ट्रिंग की तरह बातें होने घोषित, CS50 पुस्तकालय भी कुछ कार्य किया है. तो बस की तरह साल पहले, किसी ने लिखा है printf और मानक मैं / O.h में डाल दिया और कुछ अन्य फ़ाइल. 

हम CS50 स्टाफ, एक समारोह लिखा getchar, GetDouble, GetFloat कहा जाता है, GetInt, GetLongLong, GetString, और हम एक फ़ाइल के अंदर उन डाल CS50.h और CS50.c. बुलाया और हम उन्हें अंदर डाल CS50 उपकरण की. और लोग भी कर सकते हैं वे अगर उन्हें ऑनलाइन डाउनलोड पर उन्हें रखना चाहते हैं उनके अपने कंप्यूटर के रूप में अच्छी तरह से. हम बनाया है कि जो कहना है उपयोगकर्ता से इनपुट मिल काम करता है. मैं सब क्या है पता नहीं है इन आंकड़ों के प्रकार हैं. GetInt की तरह है, की तरह सीधा है उपयोगकर्ता से किसी न किसी तरह एक पूर्णांक मिलता है. और GetString मिल की तरह शायद है एक शब्द या उपयोगकर्ता से एक वाक्य. 

तो चलो उस पर ध्यान केंद्रित करते हैं. और मैं में वापस जाने के लिए जा रहा हूँ उपकरण और मैं आगे जाने के लिए जा रहा हूँ और के रूप में इस फाइल को बचाने, चलो कहते हैं मेरा दूसरा संस्करण के रूप में यह नमस्कार-2.c. और परिवर्तन की एक जोड़ी बनाते हैं. 

के बजाय इस बार कठिन कोडिंग डेविड, जो एक अविश्वसनीय रूप से संगत बना देता है लेकिन underwhelming कार्यक्रम, मैं बजाय GetString क्या करते हैं? अब GetString नोटिस एक खुला कोष्ठक है, बंद कोष्ठक, क्योंकि यह किसी भी निवेश की जरूरत नहीं है. यह बस मिल जाना जा रहा है उपयोगकर्ता से एक स्ट्रिंग. 

और अब अन्य वाक्यविन्यास पर एक शब्द भी नहीं. अर्धविराम सिर्फ कोड की एक लाइन खत्म होता है. आप हर जगह उन्हें जरूरत नहीं है. लेकिन यह सिर्फ मैं हूँ मतलब कोड की इस पंक्ति के साथ किया. मुझे एक और पर चलते हैं बयान या समारोह. स्ट्रिंग एक चर वाणी है. स्ट्रिंग कह की तरह है , मुझे एक कटोरी दीजिए. और मुझे यह एक स्ट्रिंग डाल दिया. 

और अब बराबर चिह्न. बराबर चिह्न क्या है अनिवार्य रूप से करने के लिए बराबर? 

दर्शक: असाइन करें. 

डेविड जे Malan: हाँ, एक मूल्य बताए. तो अगर मैं, उदाहरण के लिए, कॉल इस समारोह GetString, और हम हैं कि एक पल में देखेंगे एक स्ट्रिंग के लिए उपयोगकर्ता संकेत करने के लिए जा रहा है. यह मुझे तो लिखना दे की तरह है डी ए वी मैं डी कागज के एक टुकड़े पर. और मैं स्ट्रिंग जब कहते हैं एस, GetString के बराबर होती है बराबर वास्तव में मतलब यह नहीं है सी प्रोग्रामिंग में बराबर. यह सही से आवंटित मतलब बाएं हाथ की ओर करने के लिए हाथ की ओर. 

तो मैं एक स्ट्रिंग डाल दिया है. और समान साइन इसे डाल का मतलब भंडारण में कंटेनर कहा जाता है. और फिर से इस पारित printf वास्तव में अपने काम करने के लिए. 

तो फिर अंतिम परिणाम जा रहा है एक छोटे से अलग देखने के लिए. हैलो -2 कर करते हैं. या तो काम कर सकता है. आप के साथ पीछा कर रहे हैं. हैलो -2 काम करें. डॉट हैलो -2, दर्ज स्लेश. 

मैं एक अनंत है लगता है पाश या कुछ और. कुछ भी नहीं हो रहा है. क्यों? 

दर्शक: यह एक अनंत लूप बना रहा है. डेविड जे Malan: यह एक अनंत लूप है. यह एक तरह से करने के लिए मेरे लिए इंतजार कर रहा है वास्तव में कुछ इनपुट के साथ यह प्रदान करते हैं. तो मुझे आगे जाना है और टाइप करते डेविड में, और हिट दर्ज करें. और अब यह "हैलो, डेविड कहते हैं." मैं इसे फिर से चलाते हैं. रोब में टाइप करते हैं "हैलो, रोब." 

अब यह सबसे बुरा है कभी यूजर इंटरफेस. उपयोगकर्ता जाहिरा तौर पर है क्या करना है पता करने के लिए चाहिए. लेकिन कोई बात नहीं. ये वही भवन का उपयोग सिर्फ खरोंच में तरह ब्लॉक, हम उस समस्या को सुलझाने और कह सकते हैं कृपया अपने नाम की तरह कुछ, पेट, अंतरिक्ष, बंद, बोली बंद कोष्ठक, अर्धविराम. तो का एक बहुत फिर वाक्य रचना के साथ मूर्खता. 

लेकिन मैं सिर्फ एक जोड़ दिया नोटिस इस एक के ऊपर पहेली टुकड़ा और इस एक के ऊपर. तो अब मैं इस फिर से दौड़ना, तो हैलो -2, लिखें. ज़रा ठहरिये. क्या गलत है? यह किसी भी अलग तरह से व्यवहार नहीं कर रहा है. हाँ. 

दर्शक: आप फिर से बनाना नहीं चला था. 

डेविड जे Malan: मैं नहीं था सही, फिर से बनाने चलाते हैं. इसलिए मैं अपने स्रोत कोड बदल दिया है. लेकिन फिर, कि प्रवाह है. संकलक के माध्यम से स्रोत कोड देता है आप नई वस्तु कोड, या 0 और 1. इसलिए मैं वास्तव में करने की जरूरत है हैलो -2 लिखें फिर से दौड़ना बनाने. ठीक है, कुछ हुआ है लगता है. डॉट हैलो -2 स्लेश. आपका नाम करें. और अब स्पष्ट हो, क्यों है एक ही लाइन पर कर्सर? बिल्कुल सही. मैं बैकस्लैश नहीं डाली n यहाँ अपने कोड में. तो अब मैं लिख सकते हैं Daven तरह कुछ लिखें. मैं इसे फिर से चलाने के लिए और टाइप कर सकते हैं Gabe तरह कुछ,, लिखें और हम एक अलग कार्यक्रम मिल फिर और फिर और फिर. 

अब अंत में हम जरूरत जा रहे हैं कुछ अलग क्षमताओं का उपयोग करने के लिए. हम अंत में कुछ पेश करने की जरूरत है स्थितियां सशर्त बातें करते हैं. शायद इसलिए है कि हम क्या कर सकते हैं छोरों बार बार बातें. 

शायद यह है कि हम अच्छा होगा अगर हमारे अपने कार्यों को लागू कर सके, जैसे हम अपने ही लागू कर सकता है printf या GetString के हमारे अपने संस्करण और GetFlow, क्योंकि अंत में भी इस कमांड लाइन वातावरण का उपयोग हम भी सबसे कर सकते हैं चीजों की नेत्रहीन दिलचस्प. 

दरअसल निष्कर्ष में मुझे यह करते हैं. मैं आगे जाने के लिए जा रहा हूँ और इन खिड़कियों को बंद और यहाँ इस आइकन को खोलने, जो सिर्फ एक बड़ा है उस के संस्करण एम्बेडेड टर्मिनल विंडो. तो एडिट नहीं किया है मेरे कोड के लिए जगह है, लेकिन यह भी एक टर्मिनल विंडो में निर्मित, मैं चला सकते हैं, जहां काले और सफेद खिड़की हासिल है. 

मैं बस खोलने के लिए हुआ इस का एक बड़ा संस्करण. और अब मैं में जाने के लिए जा रहा हूँ मैं पहले से ही है कि फ़ोल्डर पाठ्यक्रम की वेबसाइट पर अग्रिम में डाल दिया. और मैं आगे जाने के लिए जा रहा हूँ और , thadgavin.c नामक एक फ़ाइल खोलने जो किसी और के द्वारा लिखा गया था. 

और हम इस पर नजर डालें तो, इस कोड की तरह नहीं है हम के बाद से लिख सकता हूँ इस कोड का लक्ष्य सुंदर लिख रहा था कि वह या वह कर सकती थी कोड देख, चाहे या नहीं, दूसरे इंसान कभी सकता इस कोड को समझते हैं. 

दरअसल, हर साल वहाँ क्या है एक अस्पष्ट सी प्रतियोगिता, जो बुलाया लिखने वाले असली geeks के लिए है कोई नहीं पढ़ सकते हैं कि कोड, लेकिन वह भी कुछ करता है वास्तव में सरल या वास्तव में अद्भुत. और हम हम लगा यह देखने के साथ समाप्त बहुत आश्चर्यजनक है कि कुछ पर आप एक बार पहले देखा हो सकता है. लेकिन हम इस पर समाप्त होगा ध्यान दें, डॉट स्लैश, thadgavin. यह तो इंतजार कर रहा है. 

यही CS50 के लिए है. हम बुधवार को देखेंगे. 

[संगीत खेल]