>> [MUSIC PŘEHRÁVÁNÍ]
>> ROB BOWDEN: To jsem já, Rob.
Pojďme se projít how realizovat Mario.
Takže první věc, kterou musíme udělat, je vyzve uživatele k zadání vstupu.
>> Musíme se jich zeptat, jak přesně vysoká pyramida by měla být.
Takže tady vidíme, děláme height = vezmi_int.
A nezapomeňte, že funkce vezmi_int je realizován v CS50
knihovny, tak až nahoře, musíme nezapomeňte # include cs50.h.
>> Tak proč jsme to zabalil v do-while?
No, musíme také uvědomit, že vstup uživatele musí být platná.
Co je neplatný vstup?
No pset spec výslovně říká, že výška menší než 0 nebo větší
než 23 je neplatná.
>> Takže tady vidíme, že jsme definování konstantní tzv. MAX_HEIGHT s
hodnota 23.
Tato do-while bude pokračovat chvíli výška je menší než 0 nebo je MAX_HEIGHT
menší, než je výška, což znamená, že 23 je menší než výška.
Takže pokud výška je 24 nebo vyšší, jsme bude pokračovat opakování.
Nezapomeňte, že do-while jsou velmi užitečné, kdykoli chceme, aby se
vstup uživatele a pak jej ověřit, jelikož nevyhnutelně nutné požádat uživatele na
alespoň jednou za hodnoty, které chcete.
>> Takže jakmile budeme mít svůj vstup, jsme Nyní můžete postavit pyramidu.
Jedním z triků tohoto problému uvedené je že musíme začít na vrcholu
pyramida.
Nemůžete printf dno pyramidy a pak stavět svou cestu nahoru.
Takže pojďme se podívat na příklad od pset spec.
>> Vidíme zde, že když jsme se vstoupit na výšku z 8., velmi dno
pyramida vytiskne devět hashe.
O úroveň výš z toho tiskne jeden prostor a osm hash.
O úroveň výš z toho jsou dvě mezery a sedm hashe, celou cestu, dokud se
se na vrchol pyramidy, která je osm úrovní up, který vytiskne sedm
prostory a dva hashe.
Takže nezapomeňte, že musíme udělat jako první tuto špičkovou úroveň.
>> Zde jsme iterace od nejvyšší úrovni, řada 8, pokračování
do řádku dosáhne 0..
Tak kolik míst se musíme tisknout v tom horním řádku?
Vytisknout jsme sedm míst a dva hashe.
Takže počet míst chceme je řádek, který byl na mínus 1.
>> Pokud horní řada je 8, 8 mínus 1 nám dává sedm míst.
Pak máme smyčku, která se bude tisknout z každého prostoru jeden po druhém.
Takže když prostory je 7, tato smyčka sedmkrát, tisk
Sedm jednotlivé prostory.
>> Takže teď musíme vytisknout tyto hashe na konci pyramidy.
Tak tady, musíme počítat počet hashů.
Vidíme, že děláme výšku minus řádek a 2.
Tak jak jsme se dostali, že?
>> Pamatujte si, že vrchol pyramidy je řádek 8 a výška 8.
A stále vytisknout dvě hodnoty hash.
Tak alespoň, 8 mínus 8 a 2 nám dává správnou odpověď.
A pak zváží na dno pyramidy, řádek 1.
Výška minus řádek nám dá 7, a pak navíc 2 nám dává devět hashe,
což je přesně číslo z hashe, že jsme vytiskli.
Tak to je vzorec chceme použít pro výpočet počtu
hash v každém řádku.
>> Pomocí tohoto čísla, pak jsme si další pro smyčce, velmi podobné
pro smyčky, která se používá pro prostory, že iterace počet hashů časů
tisk jednoho Hash pokaždé.
Na horním řádku, která bude vytisknout dvě hodnoty hash.
Na spodním řádku, která bude vytisknout devět hashe.
A každý druhý řádek bude tisknout každý počet hashů mezi nimi.
>> A pak na samém konci, musíme vytisknout naši novou linku jít na další
řádek v pyramidě.
A konečně, musíme vytisknout nový řádek na konci řádku, aby se
pokračovat další řádek pyramidy.
A na konci našeho programu, máme return 0.
>> Jak na pset spec, návrat 0, není nezbytně nutné.
Ale to znamenat, že hlavní je hotovo.
Jmenuji se Rob, a to byl Mario.
>> [MUSIC PŘEHRÁVÁNÍ]