1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Прывітанне, я Роб, і давайце пяройдзем у хакерскай выдання Марыё. 3 00:00:18,290 --> 00:00:21,760 Так першае, што мы павінны зрабіць, атрымаць вышыню ад карыстальніка. 4 00:00:21,760 --> 00:00:26,290 Тут мы просім іх для неадмоўнае цэлы лік, меншае 24 і 5 00:00:26,290 --> 00:00:31,710 мы выкарыстоўваем функцыю CS50 GetInt каб захапіць, што цэлы лік ад карыстальніка. 6 00:00:31,710 --> 00:00:35,260 Мы бачым, што мы ўнутры зрабі час цыклу што будзе працягваць цыкл тых часоў, пакуль 7 00:00:35,260 --> 00:00:38,400 вышыня больш, чым 23 або менш 0. 8 00:00:38,400 --> 00:00:42,850 І таму мы не будзем працягваць, пакуль карыстальнік на самай справе дае нам тое, што мы хочам. 9 00:00:42,850 --> 00:00:46,960 >> Як толькі мы атрымаем гэтую вышыню, мы пяройдзем да у асноўны цыкл нашай праграмы. 10 00:00:46,960 --> 00:00:49,510 Так што давайце спачатку паглядзім на прыкладзе ад PSet спец. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Мы бачым, што ў гэтым прыкладзе, калі мы увядзіце вышыню 4, ніжні шэраг 13 00:00:56,940 --> 00:01:01,520 Першы друкуе чатыры хэшы, два прабелы, і яшчэ чатыры хэшы. 14 00:01:01,520 --> 00:01:06,280 >> Тады адзін шэраг вышэй, які друкуе адзін касмічныя тры хэшы, два прасторы да 15 00:01:06,280 --> 00:01:09,690 аддзяліць на піраміды, затым яшчэ тры хэшы. 16 00:01:09,690 --> 00:01:13,460 І галоўнае, што два прасторы, два хэшаў, два прасторы, два хэшаў. 17 00:01:13,460 --> 00:01:18,090 І, нарэшце, тры прасторы адзін хэш, два прасторы адной хэш. 18 00:01:18,090 --> 00:01:20,980 Такім чынам, вы павінны пачаць заўважаць карціна тут. 19 00:01:20,980 --> 00:01:22,545 >> Давайце паглядзім на код для таго, як мы збіраемся зрабіць гэта. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Мы бачым тут, што мы ітэрацыі над усімі радамі піраміды. 22 00:01:28,840 --> 00:01:31,720 Спачатку мы хочам вылічыць колькасць прабелаў. 23 00:01:31,720 --> 00:01:34,690 І памятайце, што мы павінны пачаць у вяршыня піраміды і будзем 24 00:01:34,690 --> 00:01:37,790 шлях уніз, так як мы не можам надрукаваць Ніжняя затым адзін шэраг і 25 00:01:37,790 --> 00:01:39,140 затым адзін шэраг да. 26 00:01:39,140 --> 00:01:44,030 Такім чынам, у верхняй частцы піраміды, паведамлення што колькасць прастор роўная 27 00:01:44,030 --> 00:01:45,720 вышыня мінус 1. 28 00:01:45,720 --> 00:01:50,120 Мы збіраемся надрукаваць тры месцы, то адзін хэш, а затым два прасторы ў 29 00:01:50,120 --> 00:01:53,350 асобны, а другі хэш. 30 00:01:53,350 --> 00:01:57,320 >> Так прасторы роўная вышыня мінус радок. 31 00:01:57,320 --> 00:02:03,180 Калі радок 1, і наш вышыня роўная 4, што дасць нам 3 месцы, як мы хочам. 32 00:02:03,180 --> 00:02:06,900 Тады гэта для завес за ўсё адбіткаў што колькасць прабелаў. 33 00:02:06,900 --> 00:02:12,630 Калі прасторы ў тры, то мы збіраемся стварыць адзіную прастору ў тры разы. 34 00:02:12,630 --> 00:02:18,750 >> Працягваючы, зараз мы хочам, каб раздрукаваць хэш левага піраміды, якая 35 00:02:18,750 --> 00:02:20,630 проста роўна ліку радкоў. 36 00:02:20,630 --> 00:02:23,250 Азіраючыся назад тут, у радку адзін, мы друкуем на адзін хэш. 37 00:02:23,250 --> 00:02:25,960 У радку два мы друкуем два, у шэраг тры мы друкуем тры. 38 00:02:25,960 --> 00:02:30,440 Такім чынам, мы проста цыкл раз шэраг друк сімвал хэш. 39 00:02:30,440 --> 00:02:34,830 Тады для ўсіх радкоў піраміды, мы друкаваць роўна два прабел для падзелу 40 00:02:34,830 --> 00:02:36,360 гэтыя піраміды. 41 00:02:36,360 --> 00:02:39,590 >> І, нарэшце, мы хочам надрукаваць права баку піраміды, якая 42 00:02:39,590 --> 00:02:42,160 зноў тое ж самае колькасць модуляў як з левага боку. 43 00:02:42,160 --> 00:02:45,680 І такім чынам, гэта тая ж самая дакладная цыкл, як паказана вышэй тут. 44 00:02:45,680 --> 00:02:49,445 Нарэшце, мы павінны стварыць новы радок у для таго, каб перайсці да наступнай радку 45 00:02:49,445 --> 00:02:51,690 піраміда і працягнуць друк. 46 00:02:51,690 --> 00:02:53,010 І гэта ўсё. 47 00:02:53,010 --> 00:02:54,860 Мяне клічуць Боб і гэта быў Марыё. 48 00:02:54,860 --> 00:03:01,718