>> [عزف الموسيقى]
>> ROB BOWDEN: انها لي، روب.
دعونا من خلال المشي كيف لتنفيذ ماريو.
وبالتالي فإن أول شيء يتعين علينا القيام به هو مطالبة المستخدم الإدخال.
>> نحن بحاجة إلى أن نسأل لهم بالضبط كيف يجب أن يكون طويل القامة الهرم.
حتى هنا، ونحن نرى نقوم به ارتفاع = GetInt.
لوتذكر أن وظيفة GetInt وينفذ في CS50
مكتبة، بحيث يصل أعلى، ونحن بحاجة إلى تذكر أن تتضمن # cs50.h.
>> فلماذا لا يكون لدينا هذا ملفوفة في حلقة افعل حين؟
حسنا، نحن أيضا بحاجة إلى أن نتذكر أن إدخال المستخدم يجب أن يكون ساري المفعول.
ما هو إدخال غير صالح؟
كذلك المواصفات pset يقول على وجه التحديد أن ارتفاع أقل من 0 أو أكبر
من 23 غير صالح.
>> حتى هنا، ونحن نرى أننا تعريف ثابت يسمى MAX_HEIGHT مع
قيمة 23.
وسوف تستمر هذه الحلقة افعل بينما حين ارتفاع أقل من 0 أو MAX_HEIGHT هو
أقل من الارتفاع، وهو ما يعني أن 23 أقل من الارتفاع.
إذا كان الأمر كذلك ارتفاع هو 24 أو أكبر، ونحن سوف تستمر حلقات.
نتذكر أن تفعل حين الحلقات هي جميلة مفيدة كلما أردنا الحصول على
إدخال المستخدم ومن ثم التحقق من صحة ذلك، منذ نحتاج حتما إلى يطلب من المستخدم في
الأقل مرة واحدة لقيمة يريدون.
>> ذلك مرة واحدة لدينا مدخلاتها، ونحن ويمكن الآن بناء الهرم.
واحدة من الحيل لهذه المشكلة هو تعيين أن علينا أن نبدأ في الجزء العلوي من
الهرم.
لا يمكنك printf الجزء السفلي من الهرم ومن ثم بناء طريقك.
لذلك دعونا ننظر إلى المثال من المواصفات pset.
>> نرى هنا أنه عندما ندخل على ارتفاع من 8، والجزء السفلي جدا من
الهرم يطبع تسعة التجزئة.
مستوى واحد لأعلى من أن يطبع مسافة واحدة وثمانية التجزئة.
مستوى واحد لأعلى من ذلك هو مسافتين و سبع علامات الرقم، على طول الطريق حتى و
الوصول إلى قمة الهرم، والذي هو ثمانية مستويات أعلى، الذي يطبع سبعة
مساحات واثنين من التجزئات.
حتى أن نتذكر أن لدينا ل القيام بذلك المستوى الأعلى أولا.
>> نحن هنا نقوم بالتكرار من المستوى الأعلى، الصف 8، واستمرار
حتى يصل الصف 0.
لم فكيف مساحات كثيرة نحتاج لطباعة الصف العلوي في ذلك؟
نحن المطبوعة سبعة فضاءات واثنين من التجزئات.
وبالتالي فإن عدد من المساحات نريده هو الصف التي كانت على ناقص 1.
>> إذا كان الصف العلوي هو 8، 8 ناقص 1 يعطينا سبعة مسافات.
ثم لدينا حلقة التي ستطبع كل واحد من الفضاء في وقت واحد.
لذلك عندما المساحات 7، هذه الحلقة سبع مرات، والطباعة
سبعة المساحات الفردية.
>> حتى الآن نحن بحاجة لطباعة هذه التجزئات في نهاية الهرم.
حتى هنا، ونحن بحاجة لحساب عدد التجزئات.
ونحن نرى أن نفعله ارتفاع الصف ناقص زائد 2.
فكيف لم نحصل على ذلك؟
>> تذكر أن قمة الهرم صف 8، وارتفاعه 8.
ونحن لا نزال المطبوعة اثنين التجزئة.
لذلك على أقل تقدير، 8 ناقص زائد 8 2 يعطينا الجواب الصحيح.
ومن ثم النظر في القاع الهرم، الصف 1.
سوف الصف ارتفاع ناقص تعطينا 7، و ثم زائد 2 يعطينا تسعة التجزئة،
وهو بالضبط عدد من التجزئات أننا المطبوعة.
لذلك هذا هو الصيغة نريد ل استخدام لحساب عدد
التجزئات في كل صف.
>> باستخدام هذا الرقم، ونحن بعد ذلك دينا آخر للحلقة، تشبه الى حد بعيد
للحلقة التي استخدمناها للمسافات، هذا العدد من التجزئات بالتكرار مرة
طباعة التجزئة واحد في كل مرة.
في الصف العلوي، والتي سوف طباعة اثنين التجزئة.
على الصف السفلي، والتي سوف طبع تسعة التجزئة.
وسوف كل صف أخرى طباعة كل عدد التجزئات بينهما.
>> ثم في نهاية جدا، ونحن بحاجة إلى طباعة سطر جديد لدينا للذهاب إلى التالي
الصف في الهرم.
أخيرا، نحن بحاجة لطباعة سطر جديد في نهاية الصف من أجل
تواصل المقبل صف من الهرم.
وفي نهاية برنامجنا، لدينا عودة 0.
>> حسب المواصفات pset، وعودة 0 ليس ضروريا تماما.
لكنه لا يعني أن الرئيسي هو القيام به.
اسمي روب، وكان هذا ماريو.
>> [عزف الموسيقى]