[MUSIC پخش] 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 است به شدت ضروری نیست. اما این به این معنی است که اصلی انجام می شود. نام من راب است، و این ماریو بود. [MUSIC پخش]