ZAMYLA Chan: Bu Zamyla, bir-me var. Bu gün biz həyata olacaq biz Mario çəkmək Mario, Onun üçün tam piramida üzərində jump. nin qırmaq edək Bu problem üçün sub-vəzifələri. Birincisi, biz istifadəçi təklif etmək istəyirik Piramidanın hündürlüyü üçün. Və sonra biz əmin etmək istəyirəm ki, input etibarlıdır. Və sonra biz olacaq piramida çəkmək istəyirəm. Belə ki, isteyen haqqında danışmaq edək və istifadəçi daxil doğrulama. Bu kimi bir şey ola bilər Bu, bir do-isə loop ki Bir üçün istifadəçi ister tam və sonra yalnız təkrar ki, tam etibarsız olduqda. Belə ki, bu vəziyyət nə olmalıdır? Bunun üçün geri gedək dəqiqləşdirilməsi. Bəli, spec hər hansı bir etibarlı bizə deyir ki, boyu, 0 və 23 arasında olacaq daxil. Beləliklə hər hansı bir yalnış o deməkdir ki, hündürlüyü az 0 olacaq və ya daha çox 23. Belə ki, indi biz bu məlumat var ki, Bizim vəziyyəti dizayn imkan verir. Amma biz ehtiyatlı olmaq lazımdır, indi biz, çünki biz qiymətləndirmək istəyən iki Booleans. Burada təmin etdik bir həqiqət masa. Bu, bizim iki etmək üçün imkan verir Booleans, Boolean bir və iki. Biz ya bool1 qiymətləndirmək olar və bool2 ya bool1 ya bool2. Belə ki, fərq var arasında və ya? Yaxşı, bool1 və bool2 edəcək qiymətləndirmək doğru əgər və yalnız həm Booleans doğru əgər, və ya əməliyyat isə doğru olacaq ya bir əgər Booleans və ya hər ikisi doğrudur. Bu ağıl ilə So Siz anlamaq bilər görmek nə müvafiq şəraiti üçün yalnış n üçün do-isə loop olacaq. Ki, biz təhrik və təsdiq etdik Piramidanın hündürlüyü üçün istifadəçi onlar istəyirəm ki,. Belə ki, indi, bu, bizim üçün var piramida çəkmək üçün. Bu tam piramida problem bir az görünür bu kimi, biz sol piramida olduğu, bir boşluğu, sonra sağ piramida. Belə ki, bir az bu qırmaq edək. Mən mətn redaktoru getmək, burada var bizə sol aligned piramida tərtib. Amma bunu deyil. Biz nə istəyirik, biz istəyirik ilk sağ aligned piramida yaratmaq. Belə ki, yalnız təkan, bunu yan boyunca mənim hashes, Mən yalnız bir simvol qoymaq üçün gedirəm yalnız bu nöqtələr arasında. Sonra iki qoymaq üçün gedirəm növbəti line ki, xətti bir. Və burada mən bir var piramida sağ aligned edir. Bundan sonra, mən gedirəm top sıra geri və boşluğu qoymaq olan spec iki fəzalarında başına edir. Sonra doldurmaq gedirəm Piramidanın digər tərəfdən. Mən ikinci sıra getmək üçün gedirəm yazmaq iki boşluğu üçün boşluq və sonra iki hashes. Geri üçüncü sıraya iki fəzalarında boşluğu və üç hashes üçün. Və sonunda, iki fəzalarında boşluğu və dörd hashes üçün. Belə ki, nə tam piramida kimi görünür. Əlbəttə ki, biz istəmirik şəkildə bu nöqtələr. Beləliklə, biz bu əvəz olacaq bəzi boşluq qoyaraq nöqtələr. Bir, iki, ilk line üç. One, ikinci iki. Və üçüncü xəttində bir. Belə ki, bu biz biz əgər nə olardı nə yalnız tam piramida etmək istədi, Bizim mətn redaktoru, deyirlər. Belə ki, bu götürək, nümunələri anlaşma, və bəzi pseudocode üzərində çevirmək. Piramidanın Hər bir sıra, biz istəyirik sonra sol piramida çap və GAP və sonra sağ piramida. Sol piramida, biz çap fəzalarında zəruri məbləği hashes izlədi. Sonra boşluğu, çap edən yalnız iki fəzalarında hər zaman. Sağ piramida, biz çap hashes zəruri nömrəsi. ikinci sırada, biz icra eyni dəqiq prosesi. Biz sol üçün boşluq çap piramida, zəruri məbləği hashes, boşluğu, iki fəzalarında, və sağ piramida sonra hashes. nin model həll edək Sol piramida üçün. Mən olsaydı, məqsədlər üçün Bu nümunə, hündürlüyü səkkiz tələb istifadəçi sonra mənim ilk sıra bir hash və yeddi boşluq olardı. Mənim ikinci sıra olardı iki hashes, altı boşluq. Üçüncü sıra üç hashes, beş fəzalarında. Siz yəqin ki, bunu edə bilərsiniz səkkiz hündürlüyü üçün özünüzü neçə və hər bir sıra üçün müəyyən hashes və neçə boşluq sizə lazım. Amma biz nə istəyirik biz mücərrəd istəyirik. Mən neçə hər hansı bir nth sıra üçün xahiş hashes və biz neçə boşluq lazımdır? İndi kimi müəyyən neçə hashes üçün nümunə və neçə boşluq siz ehtiyac bir boyu hər hansı bir nth satır, ehtiyatlı olmaq unutmayın necə siz indeksasiyası edirik. Mən bu demək gündəlik ki, həyat bizim ən biri hesablanması başlamaq. Belə ki, ilk sıra nömrəli olardı. Və ikinci sıra sıra olacaq sayı iki, belə ki, və s. Lakin kompüter və CS50, biz sıfır yönümlü olunur. Belə ki, biz, həqiqətən, sıfır hesablanması başlamaq. Belə ki, ilk sıra ki sıra sayı sıfır ola bilər. Və ikinci sıra sıra bir nömrəli olacaq. Belə ki, əgər Mən səkkiz hündürlüyü idi Mənim piramida, n sonra son dəyəri həqiqətən yeddi və səkkiz olardı. Belə ki, bu barədə ehtiyatlı olun. Siz müəyyən etdiyiniz zaman xəbərdar olmaq Sizin sıfır yönümlü olub model və ya bir-yönümlü TAMAM. Belə ki, indi biz ki, Sol piramida üçün nümunə, biz müəyyən etmək lazımdır boşluğu üçün nümunə. Xoşbəxtlikdən, bu, həqiqətən asandır. Bu, sadəcə həmişə iki fəzalarında var. Belə ki, indi biz sağ model keçin. ilk sıra bir hash olacaq. ikinci sıra, iki. Üçüncü sıra üç. Belə ki, və s. Belə ki, yenə, hər hansı bir mücərrəd müəyyən n və neçə hashes hər hansı bir boy və neçə boşluq hər bir sıra olmalıdır. TAMAM. Beləliklə, biz bilirik ki, hər bir satır biz üçün bəzi prosesi aparmaq lazımdır. biz bunu necə edə bilərəm? Bəli, biz loop tikinti üçün istifadə, bir başlatma ibarətdir, bir vəziyyət və yeniləmə. loops istifadə edilə bilər prosesləri təkrar. Belə ki, mən salam demək istəyirsiniz Dünya 50 dəfə, sonra mənim loop üçün bu kimi bir şey görünür, harada Mən sıfır mənim dəyişən başlamaq. şərt i 50-dən az olmasıdır. Və sonra yeniləmə ki, bir hər zaman əlavələr. Belə ki, bu olardı nə Bir sıra, salam dünya 50 dəfə çap. İndi təkrarlamaq istədiyini deyirlər Piramidanın hündürlüyü artıq. Sonra əvəzinə ağır kodlaşdırma vəziyyətdə bəzi dəyəri, Mən yalnız dəyişən boyu istifadə edin. Belə ki, bu nə təkrarlamaq deyil hündürlüyü hər bir sıra üzərində. Mən daxili bir şey edə bilərsiniz ki, loop orqanı. Biz nə istəyirik nə loop orqanı daxilində? biz əvvəl göstərilən Yaxşı, biz istəyirik boşluq və hashes çap sonra sol piramida və çap üçün iki fəzalarında və sonra hashes çap. Beləliklə, biz artıq fiqurlu etdik. Beləliklə, biz doldurmaq başlaya bilərsiniz daha çox bizim proqramı. Burada loop üçün xarici var ki, piramida hər sıra üzərində iterates. Və bədən daxilində Mən gedirəm dəfələrlə boşluq çap, dəfələrlə hashes, sonra boşluğu, və sonra sağ piramida üçün hashes, Və sonra, nəhayət, yeni line növbəti sıra başlamaq üçün. Ki, biz təhrik etdik giriş üçün istifadəçi. Biz etibarlı əmin etdik. Və sonra biz piramida tərtib etdik. Belə ki, Mario uğurla bilərsiniz piramida dırmaşmaq. My name Zamyla edir. Bu CS50 edir.