ZAMYLA चान: यह एक-मुझे, Zamyla है। आज, हम को लागू करने के लिए जा रहे हैं मारियो, जहां हम मारियो आकर्षित उसके लिए एक पूर्ण पिरामिड के ऊपर कूद करने के लिए। के टूट इस समस्या के लिए उप-कार्य। सबसे पहले, हम उपयोगकर्ता संकेत करना चाहते हैं पिरामिड की ऊंचाई के लिए। और फिर हम सुनिश्चित करना चाहते हैं वह यह है कि इनपुट वैध है। और फिर हम करने जा रहे हैं पिरामिड आकर्षित करना चाहते हैं। तो चलो उत्साह के बारे में बात करते हैं और उपयोगकर्ता इनपुट को मान्य। यह ऐसा कुछ लग सकता है यही नहीं, एक है, जबकि पाश है कि एक के लिए उपयोगकर्ता संकेत देता है पूर्णांक और उसके बाद ही दोहराता अगर है कि पूर्णांक अमान्य है। तो क्या यह शर्त होनी चाहिए? इस के लिए, चलो वापस जाना विनिर्देश करने के लिए। खैर, कल्पना है कि किसी भी वैध हमें बताता है ऊंचाई, 0 और 23 के बीच होने जा रहा है समावेशी। तो फिर इसका मतलब है कि किसी भी अवैध ऊंचाई कम से कम 0 होने जा रहा है या अधिक से अधिक 23। तो अब है कि हम इस बारे में जानकारी है, चलो हमारे हालत डिजाइन करते हैं। लेकिन हमें सावधान रहने की जरूरत है, क्योंकि अब हम दो Booleans कि हम मूल्यांकन करने के लिए चाहते हैं। यहाँ मैं तुम्हें प्रदान की है एक सच तालिका के साथ। यह हमें दो लेने के लिए अनुमति देता है Booleans, बूलियन एक और दो। और हम या तो bool1 मूल्यांकन कर सकते हैं और bool2 या bool1 या bool2। तो क्या फर्क है के बीच और और या नहीं? खैर, bool1 और bool2 होगा का मूल्यांकन अगर सही है और केवल दोनों Booleans सत्य हैं, तो जबकि या ऑपरेशन सच हो जाएगा, तो या तो एक की Booleans या दोनों सही हैं। इस के साथ दिमाग में तो, देखते हैं अगर आप समझ सकते हैं क्या उचित हालत के लिए गलत N के लिए अपने घर का है, जबकि पाश होने जा रहा है। उस के साथ, हम संकेत और मान्य किया है पिरामिड की ऊंचाई के लिए उपयोगकर्ता वे चाहते हैं कि। तो अब, यह हम पर निर्भर है पिरामिड आकर्षित करने के लिए। इस के लिए पूर्ण पिरामिड इस समस्या का एक छोटा सा दिखेगा इस तरह से है, जहां हम एक बाएं पिरामिड है, कुछ अंतर है, और फिर एक सही पिरामिड। तो चलो इस नीचे एक छोटा सा तोड़ देना। अगर मैं अपने पाठ संपादक के लिए जाना है, यहाँ मैं हमें एक बाएं गठबंधन पिरामिड खींचा। लेकिन ऐसा नहीं होगा। क्या हम करना चाहते हैं कि हम चाहते है पहली बार एक सही गठबंधन पिरामिड बनाते हैं। तो यह करने के लिए, बस पुश करने के लिए पक्ष के साथ मेरी हैश, मैं बस कुछ पात्रों डाल करने के लिए जा रहा हूँ के बीच, बस इन बिंदुओं में। तब मैं पर दो डाल करने के लिए जा रहा हूँ अगली पंक्ति है, और उस लाइन पर एक। और तो यहाँ मैं एक है सही गठबंधन पिरामिड। उसके बाद, मैं जा रहा हूँ शीर्ष पंक्ति के लिए वापस जाओ और खाई में डाल दिया जो कल्पना, दो रिक्त स्थान के प्रति है। तब मैं में भरने के लिए जा रहा हूँ पिरामिड के दूसरी ओर। मैं दूसरी पंक्ति में जाने के लिए जा रहा हूँ, के बारे में अंतर के लिए दो स्थानों और फिर दो hashes। वापस तीसरी पंक्ति के लिए, दो रिक्त स्थान खाई और तीन हैश के लिए। और अंत में, दो रिक्त स्थान खाई और चार हैश के लिए। तो यह है कि क्या एक पूर्ण पिरामिड की तरह दिखेगा। बेशक, हम नहीं चाहते हैं रास्ते में इन डॉट्स। इसलिए हम इन को बदलने के लिए जा रहे हैं में कुछ रिक्त स्थान डाल द्वारा डॉट्स। एक, दो, तीन पहली पंक्ति पर। एक, दो दूसरे पर। और तीसरी पंक्ति पर एक। तो यह है कि हम अगर हम क्या करना होगा सिर्फ एक पूर्ण पिरामिड बनाना चाहते थे, हमारे पाठ संपादक में कहते हैं,। तो चलो इस लेते हैं, पैटर्न को समझने, और यह कुछ pseudocode खत्म करने के लिए परिवर्तित। पिरामिड के प्रत्येक पंक्ति के लिए, हम चाहते हैं छोड़ दिया पिरामिड प्रिंट और फिर करने के लिए खाई और फिर सही पिरामिड। बाएं पिरामिड के लिए, हम प्रिंट रिक्त स्थान की आवश्यक राशि, हैश द्वारा पीछा किया। तो फिर हम अंतर है, जो मुद्रित हर बार सिर्फ दो रिक्त स्थान है। और सही पिरामिड में, हम प्रिंट हैश की अपेक्षित संख्या। दूसरी पंक्ति के लिए, हम आयोजित एक ही सटीक प्रक्रिया। हम छोड़ के लिए रिक्त स्थान के लिए प्रिंट पिरामिड, आवश्यक राशि हैश, गैप, दो रिक्त स्थान है, और का फिर सही पिरामिड के लिए हैश। के पैटर्न से निपटने के चलो बाएं पिरामिड के लिए। अगर मैं था, उद्देश्यों के लिए इस उदाहरण के लिए, एक ऊंचाई आठ साल की द्वारा अनुरोध उपयोगकर्ता, तो मेरी पहली पंक्ति एक हैश और सात रिक्त स्थान होता है। मेरे दूसरी पंक्ति के लिए होता है दो हैश, छह रिक्त स्थान। तीसरी पंक्ति, तीन हैश, पांच रिक्त स्थान। आपको शायद यह कर सकते हैं खुद के आठ की ऊंचाई के लिए और प्रत्येक पंक्ति के लिए निर्धारित कितने हैश और कितने रिक्त स्थान की जरूरत है। लेकिन क्या हम करना चाहते है हम इसे अमूर्त करना चाहते हैं। इसलिए मुझे लगता है कि आप किसी भी पंक्ति वें, कितने के लिए पूछना हैश और हम कितने रिक्त स्थान की जरूरत है? अब, आप यह निर्धारित के रूप में कितने हैश के लिए पैटर्न और कितने रिक्त स्थान के लिए आप की जरूरत है एक दिया ऊंचाई के लिए किसी भी nth पंक्ति, सावधान रहने की याद कैसे आप अनुक्रमण रहे हैं। मैं इस से क्या मतलब है हर रोज में वह यह है कि जीवन हम में से ज्यादातर एक करके गिनती शुरू। तो पहली पंक्ति नंबर एक हो जाएगा। और दूसरी पंक्ति पंक्ति होगा नंबर दो, इतने पर और आगे। लेकिन कंप्यूटर विज्ञान के क्षेत्र में और CS50, हम शून्य अनुक्रमित रहे हैं। इसलिए हम वास्तव में शून्य पर गिनती शुरू। तो पहली पंक्ति होगा पंक्ति संख्या शून्य हो। और दूसरी पंक्ति पंक्ति नंबर एक हो जाएगा। तो अगर मैं के लिए आठ की ऊंचाई था मेरे पिरामिड, तो n के अंतिम मान वास्तव में सात और आठ नहीं होगा। इसलिए इस बारे में सावधान रहना होगा। और पता है जब आप का निर्धारण कर रहे हो अपने पैटर्न है कि क्या आपके शून्य अनुक्रमित या एक अनुक्रमित ठीक। तो अब है कि हम बाएं पिरामिड के लिए पैटर्न, हम यह निर्धारित करने की जरूरत है अंतर के लिए पैटर्न। सौभाग्य से, यह वास्तव में आसान है। यह सिर्फ हमेशा दो रिक्त स्थान है। तो अब हम सही पैटर्न के लिए आगे बढ़ें। पहली पंक्ति में एक हैश होगा। दूसरी पंक्ति, दो। तीसरी पंक्ति, तीन। इसी तरह आगे भी। तो फिर, किसी भी सार के लिए निर्धारित n और किसी भी ऊंचाई कितने हैश और कितने रिक्त स्थान प्रत्येक पंक्ति होनी चाहिए। ठीक। तो हम जानते हैं कि प्रत्येक पंक्ति के लिए हम कुछ प्रक्रिया का संचालन करने की जरूरत है। हम इसे कैसे करते हैं? खैर, हम पाश निर्माण के लिए उपयोग करते हैं, एक initialization के शामिल, एक शर्त है, और एक अद्यतन। छोरों इस्तेमाल किया जा सकता है प्रक्रियाओं को दोहराने के लिए। तो कहते हैं कि मैं यह हैलो कहने के लिए करना चाहते हैं, दुनिया में 50 बार, तो मेरी पाश के लिए कुछ इस तरह लग रही होगी, जहां मैं शून्य करने के लिए मेरे चर प्रारंभ। शर्त यह है कि मैं कम से कम 50 है। और उसके बाद अद्यतन यह है कि एक हर समय से वेतन वृद्धि। तो यह क्या करना होगा करने के लिए होगा एक पंक्ति में हैलो प्रिंट, दुनिया में 50 बार। अब, मैं पुनरावृति करना चाहता था कहना पिरामिड की ऊंचाई पर। फिर मुश्किल कोडिंग के बजाय हालत में कुछ मूल्य, मैं सिर्फ चर ऊंचाई का उपयोग करें। तो यह क्या करेंगे पुनरावृति है ऊंचाई प्रत्येक पंक्ति पर। और मैं कुछ अंदर क्या कर सकते हैं कि पाश के शरीर की। क्या हम क्या करना चाहते हैं पाश के शरीर के अंदर? खैर, जैसा कि हम पहले संकेत दिया है, हम चाहते हैं रिक्त स्थान है और हैश मुद्रित करने के लिए बाएं पिरामिड और फिर प्रिंट के लिए दो स्थानों और फिर हैश प्रिंट। इसलिए हम पहले से ही है कि पता लगा लिया है। इसलिए हम को भरने के लिए शुरू कर सकते हैं हमारे कार्यक्रम में एक बहुत अधिक। यहाँ मैं पाश के लिए एक बाहरी है पिरामिड में हर पंक्ति पर दोहराता। और कहा कि शरीर के अंदर मैं जा रहा हूँ बार बार रिक्त स्थान मुद्रित करने के लिए, बार बार हेश, और फिर अंतर है, और फिर सही पिरामिड के लिए हेश, और फिर, अंत में, एक नया लाइन अगली पंक्ति शुरू करने के लिए। उस के साथ, हम के लिए प्रेरित किया है इनपुट के लिए उपयोगकर्ता। हमें यकीन है कि यह वैध है बनाया है। और फिर हम पिरामिड तैयार कर लिया है। तो मारियो कर सकते हैं सफलतापूर्वक पिरामिड चढ़ाई। मेरा नाम Zamyla है। और इस CS50 है।