>> [MUSIC PLAYBACK]
>> ROB BOWDEN: To som ja, Rob.
Poďme sa prejsť how realizovať Mario.
Takže prvá vec, ktorú musíme urobiť, je vyzve užívateľa na zadanie vstupu.
>> Musíme sa ich opýtať, ako presne vysoká pyramída by mala byť.
Takže tu vidíme, robíme height = vezmi_int.
A nezabudnite, že funkcia vezmi_int je realizovaný v CS50
knižnice, tak až hore, musíme nezabudnite # include cs50.h.
>> Tak prečo sme to zabalil v do-while?
No, musíme tiež uvedomiť, že vstup užívateľa musí byť platná.
Čo je neplatný vstup?
No pset spec výslovne hovorí, že výška menšia ako 0 alebo väčšia
ako 23 je neplatná.
>> Takže tu vidíme, že sme definovanie konštantný tzv MAX_HEIGHT s
hodnota 23.
Táto do-while bude pokračovať chvíľu výška je menšia ako 0 alebo je MAX_HEIGHT
menšia, ako je výška, čo znamená, že 23 je menšia ako výška.
Takže ak výška je 24 alebo vyšší, sme bude pokračovať opakovanie.
Nezabudnite, že do-while sú veľmi užitočné, kedykoľvek chceme, aby sa
vstup užívateľa a potom sa overiť, lebo nevyhnutne nutné požiadať užívateľa na
aspoň raz za hodnoty, ktoré chcete.
>> Takže akonáhle budeme mať svoj vstup, sme Teraz môžete postaviť pyramídu.
Jedným z trikov tohto problému uvedené je že musíme začať na vrchole
pyramída.
Nemôžete printf dno pyramídy a potom stavať svoju cestu nahor.
Takže poďme sa pozrieť na príklad od pset spec.
>> Vidíme tu, že keď sme sa vstúpiť na výšku z 8., veľmi dno
pyramída vytlačí deväť hashe.
O úroveň vyššie z toho tlačí jeden priestor a osem hash.
O úroveň vyššie z toho sú dve medzery a sedem hashe, celú cestu, kým sa
sa na vrchol pyramídy, ktorá je osem úrovní up, ktorý vytlačí sedem
priestory a dva hashe.
Takže nezabudnite, že musíme urobiť ako prvý túto špičkovú úroveň.
>> Tu sme iterácie od najvyššej úrovni, rad 8, pokračovanie
do riadku dosiahne 0..
Tak koľko miest sa musíme tlačiť v tom hornom riadku?
Vytlačiť sme sedem miest a dva hashe.
Takže počet miest chceme je riadok, ktorý bol na mínus 1.
>> Ak horný rad je 8, 8 mínus 1 nám dáva sedem miest.
Potom máme slučku, ktorá sa bude tlačiť z každého priestoru jeden po druhom.
Takže keď priestory je 7, táto slučka sedemkrát, tlač
Sedem jednotlivé priestory.
>> Takže teraz musíme vytlačiť tieto hashe na konci pyramídy.
Tak tu, musíme počítať počet hash.
Vidíme, že robíme výšku mínus riadok a 2.
Tak ako sme sa dostali, že?
>> Pamätajte si, že vrchol pyramídy je riadok 8 a výška 8.
A stále vytlačiť dve hodnoty hash.
Tak aspoň, 8 mínus 8 a 2 nám dáva správnu odpoveď.
A potom zváži na dno pyramídy, riadok 1.
Výška mínus riadok nám dá 7, a potom navyše 2 nám dáva deväť hashe,
čo je presne číslo z hashe, že sme vytlačili.
Tak to je vzorec chceme použiť pre výpočet počtu
hash v každom riadku.
>> Pomocou tohto čísla, potom sme si ďalšie pre sláčiky, veľmi podobné
pre slučky, ktorá sa používa pre priestory, že iterácie počet hash časov
tlač jedného Hash zakaždým.
Na hornom riadku, ktorá bude vytlačiť dve hodnoty hash.
Na spodnom riadku, ktorá bude vytlačiť deväť hashe.
A každý druhý riadok bude tlačiť každý počet hash medzi nimi.
>> A potom na samom konci, musíme vytlačiť našu novú linku ísť na ďalšie
riadok v pyramíde.
A konečne, musíme vytlačiť nový riadok na konci riadku, aby sa
pokračovať ďalšie riadok pyramídy.
A na konci nášho programu, máme return 0.
>> Ako na pset spec, návrat 0, nie je nevyhnutne nutné.
Ale to znamenať, že hlavné je hotovo.
Volám sa Rob, a to bol Mario.
>> [MUSIC PLAYBACK]