ZAMYLA CHAN: این یک من، Zamyla است.
امروز در ماریو، ما در حال رفتن به رسم هرم نیمه برای ماریو
به صعود تا.
>> بنابراین اجازه دهید بحث در مورد ما به کارهای را برای این مشکل است.
ما در حال رفتن به می خواهم بی درنگ و اعتبار
کاربر برای یک ورودی معتبر چگونه بالا آنها می خواهند هرم ماریو است.
و پس از آن، ما در حال رفتن به آن را رسم.
بنابراین اجازه دهید با باعث آغاز شده و اعتبار کاربر برای ورودی خود را.
>> ما می توانیم با استفاده از را تابع CS50 کتابخانه
از نوع int است که اطمینان حاصل شود که کاربر ورودی یک عدد صحیح است.
هر عدد صحیح مثبت، منفی اعداد صحیح، عدد 0 تمام بازی منصفانه است.
در غیر این صورت، کاربر خواهد شد به خواسته دوباره سعی کنید تا زمانی که ورودی یک عدد صحیح معتبر.
در حال حاضر هر چند اعضای هیات مطلع می کند بسیاری از کار را برای ما
در تضمین این که کاربران ما می دهد یک عدد صحیح،
ما هنوز نیاز به درخواست برخی از محدودیت های اضافی بر روی آن.
پس از همه، ما نمی توانیم ماریو نوردی، یک هرم نیمی از ارتفاع منفی 12.
>> علاوه بر آن، مشخصات مسئله
می گوید که ما فقط می توانیم اجازه ماریو به صعود
یک هرم از ارتفاع بین 0 و 23.
OK، به طوری که بدان معنی است که ما نیاز به طور مداوم سریع کاربر
به ما یک معتبر را تعداد و تنها ادامه
یک بار آنها به ما یک ارتفاع معتبر داده ام.
چگونه ما آن را انجام دهیم؟
>> خب، فرآیندهای پیوسته ما را ایده loops-- چیزی انجام
مکرر.
یک حلقه در C به عنوان یک در حالی که حلقه که به طور مداوم
اجرای بدنه حلقه تا زمانی که وضعیت داده ارزیابی واقعی.
به محض این که شرایط به false ارزیابی،
این برنامه به ادامه خواهد هر آنچه پس از آن می آید.
بنابراین در حالی که حلقه ها یکی از راه های تضمین این که ما به طور مستمر
سریع کاربر برای ورودی معتبر است.
و زمانی که آنها به ما یک ورودی معتبر را، ما به هر آنچه بعدی می آید ادامه دهید.
ما می دانیم که ما در حال رفتن به درخواست کاربر برای ورودی حداقل یک بار.
بنابراین در حال حاضر ما به یک خواهر آمده در حالی که حلقه است، که در حالی که حلقه.
>> آیا در حالی که حلقه را به اجرا بدنه حلقه حداقل یک بار.
بنابراین بدون چک کردن وضعیت، آن را به بدنه حلقه اجرا کند.
و پس از آن شرایط چک کنید و ببینید آیا به آن نیاز دارد تکرار می شود.
این می آید در دستی هنگامی که ما در حال اعتبار ورودی کاربر.
ما می دانیم که ما در حال رفتن به آنها را بپرسید حداقل یک بار.
بنابراین یک در حالی که حلقه ممکن است چیزی شبیه این.
ما یک عدد صحیح n.
و داخل انجام در حالی که حلقه، ما بلافاصله
سریع کاربر برای یک عدد صحیح.
اگر n نامعتبر است، پس از آن خواهیم آنها را بی درنگ دوباره و دوباره و دوباره تا آنها
ما که عدد صحیح معتبر است.
در نهایت، یک بار n یک ورودی معتبر است، ما اقدام به بقیه برنامه های ما.
>> بنابراین اجازه دهید رفتن به تنظیمات و چک چه شرایطی برای یک ورودی معتبر
در حال رفتن به.
ارتفاعات معتبر در حال رفتن به بین 0 و 23، فراگیر باشد.
ارتفاع بنابراین نامعتبر در حال رفتن به کمتر از 0 یا بیش از 23.
بنابراین به یاد داشته باشید به طراحی شرایط خود را با دقت،
دانستن اینکه شرایط برای در حالی که حلقه
باید در حالی که N نامعتبر است.
در حال حاضر این است که نمی شود عبارت بولی ساده است.
ما قصد داریم به باید به ترکیب دو عبارت مختلف
به طیف وضعیت ما.
>> بنابراین اجازه دهید فقط در یک جدول درستی من نگاه در حال حاضر شما با توجه به اشاره است که ما
رفتن به خرید و فروش با دو Booleans شود.
بنابراین در اینجا یک جدول درستی جایی که من دو Booleans-- بولی 1 و 2.
بنابراین ما باید این گزینه به منظور بررسی bool1 و bool2 یا bool1 یا bool2.
و تنها زمانی درست است که هر دو خواهد شد Booleans می ارزیابی درست باشد، در حالی که همه
و یا تا زمانی درست خواهد بود به عنوان یکی از دو Booleans می ارزیابی واقعی.
خوب، پس یک لحظه، مکث این ویدئو و هضم این جدول حقیقت است.
من همینجا منتظرت.
هنگامی که شما به پشت، و اگر شما می توانید قطعه با هم
یک عبارت بولی برای شما شرایط N بودن یک ورودی نامعتبر است.
>> بنابراین در حال حاضر که ما ورودی کاربر معتبر، اجازه دهید
جلو بروید و صحبت در مورد چگونه ما ممکن است نیمه هرم قرعه کشی.
در اینجا در این ویرایشگر متن ساده، من یک هرم سمت چپ تراز وسط قرار دارد کشیده ام.
اما ما می دانیم که ما نیاز ما هرم به سمت راست تراز وسط قرار دارد.
پس چگونه ممکن است من این کار را؟
خوب، من ممکن است سعی کنید به فشار همه چیز را به سمت
تنها با قرار دادن یک شخصیت در میان است.
و پس از آن، برای بعدی خط، من قصد دارم به قرار دادن
برخی از شخصیت های بیشتر به آن فشار همراه، و further-- غیره و غیره forth--
تا زمانی که من راست تراز وسط قرار هرم.
بنابراین ما یک هرم راست چین، اما آن چه به نظر نه چندان بزرگ با نقطه.
اما ما هنوز هم می خواهید به معتقدند که فاصله خوب است.
بنابراین من قصد دارم به معنای واقعی کلمه قرار دادن برخی از فضاهای.
>> به جای سه نقطه، من قرار دادن یک، دو، سه فاصله است.
در خط دوم.
من یکی، دو فضا را قرار داده است.
و در یکی مانده به آخر خط، فقط یک فضا.
و در اینجا من یک هرم راست تراز وسط قرار.
از انجام به عنوان مثال در متن ویرایشگر، ما یک ایده برای الگوی
که ما را به منظور جلب نیمه هرم.
برای هر سطر، کاری که ما کردیم این است که ما برخی از فضاهای تایپ می کنید،
و پس از آن تایپ برخی رشته هش را، و سپس تایپ
کلید را وارد کنید، که در حال ایجاد یک خط جدید.
بنابراین در حال حاضر که ما که، اجازه دهید به یک الگوی یک قدم بیشتر و پیدا کردن.
>> بنابراین من قصد دارم برای گفتن، برای منافع این مثال،
ما در حال برخورد با ارتفاع 8.
سطر اول است که به دو رشته هش را که به شرح زیر هفت فاصله است.
second-- سه رشته هش، شش فاصله است.
سوم row-- چهار رشته هش، پنج spaces-- غیره و غیره
تا زمانی که ما به ردیف n ام است.
پس، از شما می خواهم برای ردیف n ام، چگونه بسیاری از رشته هش را می خواهیم به
و چگونه بسیاری از فضاهای؟
پس از آن تا به شما برای کشف کردن فرمول برای نشان که چگونه بسیاری از رشته هش
و چگونه بسیاری از فضاهای مورد نیاز برای ردیف NTH زمانی که شما چند ارتفاع.
>> در حال حاضر زمانی که شما بدانند این، مراقب باشید که چگونه شما در حال نمایه سازی.
چه منظورم این است که این است که در زندگی روزمره همه ما
شروع به شمارش، معمولا با 1.
اما در CS50 و در علم کامپیوتر به طور کلی، ما 0 نمایه شده است.
بنابراین در ردیف اول می شود عددی از 0 به 1 مخالف است.
مراقب باشید از این زمانی که شما تلاش برای کشف کردن الگوی خود را.
بنابراین در حال حاضر اجازه بازگشت به چگونه ما قصد داریم به منظور جلب هرم است.
برای هر سطر، ما در حال رفتن به خواهید برای چاپ فضاهای، چاپ رشته هش را،
و سپس چاپ یک خط جدید.
اشاره در اینجا است که کلمه "برای" هر سطر.
در C، ما باید یک ساختار نام یک حلقه for،
است که از تشکیل دهی اولیه، وضعیت، به روز رسانی،
و بدن از حلقه است.
>> می گویند من می خواهم بگویم، سلام جهان، 50 بار، من برای حلقه
چیزی شبیه به این.
من عدد صحیح به 0 مقداردهی اولیه.
این وضعیت این است که من کمتر از 50 است.
و پس از آن به روز رسانی من فقط افزایش من توسط یکی در هر زمان.
ما همچنین می توانیم برای حلقه استفاده به تکرار بیش از همه چیز.
توجه داشته باشید در اینجا چگونه ما ندارد سخت کدگذاری یک عدد،
بلکه متغیر قرار داده ارتفاع به جای به این بیماری است.
پس چه من در اینجا انجام است من تکرار بیش از هر ردیف از هرم.
من می توانم چیزی برای هر انجام ردیف در داخل بدنه حلقه است.
>> آنچه که ما انجام در داخل بدن از حلقه؟
خوب، همانطور که ما قبلا هم گفتم، ما در حال چاپ فضاها و ما در حال چاپ رشته هش
و ما در حال چاپ یک خط جدید.
بنابراین بیرونی من برای حلقه خواهد شد مثل این.
من تکرار بیش از هر سطر هرم، با استفاده از،
در این مورد، ارتفاع به عنوان متغیر که ارتفاع هرم ذخیره می کند.
در داخل بدن از آن حلقه، من رفتن به چاپ فضاهای بارها و بارها، چاپ
رشته هش بارها و بارها، و سپس چاپ یک خط جدید.
>> بنابراین در حال حاضر، با استفاده از تمام مفاهیمی است که من در مورد در این پیاده روی را از طریق صحبت کردیم،
شما باید قادر به سریع می شود کاربران برای ورودی، اعتبار است که ورودی،
و سپس قرعه کشی نیمه هرم.
>> نام من ... است Zamyla است، و این CS50 است.