1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Ahoj, ja som Rob, a poďme skočiť do hacker vydania Mario. 3 00:00:18,290 --> 00:00:21,760 Takže prvá vec, ktorú musíme urobiť, je si výšku od užívateľa. 4 00:00:21,760 --> 00:00:26,290 Tu sme im so žiadosťou o non-záporné celé číslo menšie ako 24, a 5 00:00:26,290 --> 00:00:31,710 sme pomocou funkcie CS50 vezmi_int chytiť, že celé číslo od užívateľa. 6 00:00:31,710 --> 00:00:35,260 Vidíme, že sme vo vnútri do-while , Že bude pokračovať tak dlho, kým opakovanie 7 00:00:35,260 --> 00:00:38,400 výška je väčšia ako 23 alebo menšia ako 0. 8 00:00:38,400 --> 00:00:42,850 A tak budeme pokračovať, kým používateľ vlastne nám dáva to, čo chceme. 9 00:00:42,850 --> 00:00:46,960 >> Akonáhle budeme mať tú výšku, dostaneme sa Hlavný cyklus for nášho programu. 10 00:00:46,960 --> 00:00:49,510 Takže poďme sa pozrieť na prvý príklad od pset spec. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Vidíme v tomto príklade, že keď sme zadajte výšku 4, dolný riadok 13 00:00:56,940 --> 00:01:01,520 Prvý vytlačí štyri hashe, dva priestory, a ďalšie štyri hash. 14 00:01:01,520 --> 00:01:06,280 >> Potom jeden riadok vyššie, ktorá tlačí jeden priestor tri krížiky dve medzery na 15 00:01:06,280 --> 00:01:09,690 oddeliť pyramídy, a potom ďalšie tri hash. 16 00:01:09,690 --> 00:01:13,460 A predovšetkým to, že dva priestory, dva hashe, dva priestory, dva hashe. 17 00:01:13,460 --> 00:01:18,090 A konečne, tri priestory jedno hash, dva priestory jeden hash. 18 00:01:18,090 --> 00:01:20,980 Takže by ste mali začať všímať vzor tu. 19 00:01:20,980 --> 00:01:22,545 >> Poďme sa pozrieť na kód, ako budeme robiť, že. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Vidíme tu, že sme iterácie cez všetky riadky pyramídy. 22 00:01:28,840 --> 00:01:31,720 Najprv chceme vypočítať počet medzier. 23 00:01:31,720 --> 00:01:34,690 A nezabudnite, že musíme začať u vrchol pyramídy a práce našich 24 00:01:34,690 --> 00:01:37,790 smerom dole, pretože nemôžeme tlačiť Spodný potom jeden riadok nahor a 25 00:01:37,790 --> 00:01:39,140 potom jeden riadok nahor. 26 00:01:39,140 --> 00:01:44,030 Takže na vrchole pyramídy, oznámenia , Že počet miest je rovný 27 00:01:44,030 --> 00:01:45,720 výška mínus 1. 28 00:01:45,720 --> 00:01:50,120 Ideme k tlači tri medzery, jeden hash a potom dve medzery na 29 00:01:50,120 --> 00:01:53,350 oddelené a ďalšie hash. 30 00:01:53,350 --> 00:01:57,320 >> Takže priestory sa rovná výška mínus riadok. 31 00:01:57,320 --> 00:02:03,180 Ak je riadok 1 a náš výška je 4, že budeme mať tri medzery, ako chceme. 32 00:02:03,180 --> 00:02:06,900 Potom je táto pre slučku výtlačky , Že počet miest. 33 00:02:06,900 --> 00:02:12,630 Je-li priestor je tri, potom budeme vytvoriť jednu medzeru trikrát. 34 00:02:12,630 --> 00:02:18,750 >> Pokračovanie, teraz chceme vytlačiť hash ľavej pyramídy, ktorá je 35 00:02:18,750 --> 00:02:20,630 práve rovný počtu riadkov. 36 00:02:20,630 --> 00:02:23,250 Pri pohľade späť, v rade jeden, tlačíme jeden hash. 37 00:02:23,250 --> 00:02:25,960 V druhom rade sa vytlačiť dve, v riadok tri tlačíme tri. 38 00:02:25,960 --> 00:02:30,440 Takže sme jednoducho slučka časy riadok tlač hash symbol. 39 00:02:30,440 --> 00:02:34,830 Potom pre všetky riadky pyramídy, sme vytlačiť presne dva priestory pre oddelenie 40 00:02:34,830 --> 00:02:36,360 tie pyramídy. 41 00:02:36,360 --> 00:02:39,590 >> A konečne, chceme vytlačiť právo strane pyramídy, ktorá je 42 00:02:39,590 --> 00:02:42,160 opäť rovnaký počet hash ako na ľavej strane. 43 00:02:42,160 --> 00:02:45,680 A tak je to rovnaké presný pre slučku ako je uvedené vyššie tu. 44 00:02:45,680 --> 00:02:49,445 A konečne, musíme vytvoriť novú linku na aby sa presunúť na ďalší riadok 45 00:02:49,445 --> 00:02:51,690 pyramídy a pokračovať v tlači. 46 00:02:51,690 --> 00:02:53,010 A to je všetko. 47 00:02:53,010 --> 00:02:54,860 Volám sa Rob a to bol Mario. 48 00:02:54,860 --> 00:03:01,718