>> [MUSIC Playing]
>> ROB BOWDEN: Én vagyok az, Rob.
Sétáljunk végig, hogyan végrehajtása Mario.
Tehát az első dolog, amit tennie kell, hogy kéri a felhasználót, hogy a bemenet.
>> Meg kell kérni őket, hogy pontosan hogyan magas, a piramis legyen.
Tehát itt azt látjuk, amit csinálunk magasság = getInt.
Egy És ne feledjük, hogy a getInt funkció valósul meg a CS50
könyvtár, így fel tetején, meg kell ne felejtsd el # include cs50.h.
>> Akkor miért van ez csomagolva a do-while ciklus?
Nos, mi is kell emlékezni, hogy a felhasználó által megadott kell, hogy legyen érvényes.
Mi az érvénytelen bemeneti?
Nos, a Pset spec kifejezetten azt mondja, hogy a magassága kisebb, mint 0, vagy nagyobb
mint 23 érvénytelen.
>> Tehát itt azt látjuk, hogy a mi meghatározó állandó úgynevezett MAX_HEIGHT a
értéke 23.
A do-while ciklus folytatódik, míg magassága kisebb, mint 0, vagy jelentése MAX_HEIGHT
kevesebb, mint a magasság, ami azt jelenti, hogy 23 kisebb, mint a magassága.
Tehát, ha a magassága 24 vagy nagyobb, vagyunk folytatjuk hurok.
Ne feledje, hogy a do-while ciklusok nagyon hasznos, ha azt akarjuk, hogy
felhasználói majd érvényesíteni, hiszen elkerülhetetlenül kell kérni a felhasználót
legalább egyszer az értéket akarnak.
>> Tehát, ha már megvan a bemenet, akkor most építeni a piramis.
Az egyik trükk a probléma beállított , hogy meg kell kezdeni a tetején
a piramis.
Nem lehet printf az alján a piramis majd építeni az utat felfelé.
Tehát nézzük meg a példát A Pset spec.
>> Látjuk, hogy amikor belépünk a magasságot 8, a legalján a
piramis nyomtat kilenc hash-eket.
Egy szinttel fel, hogy a nyomatok Egy tér és a nyolc hash-eket.
Egy szinttel fel, hogy két szóköz és hét hash, egészen addig, amíg meg
eljut a tetején a piramis, amely a nyolc szint fel, amely kiírja hét
terek és a két hash-eket.
Úgy emlékszem, hogy meg kell ezt a legfelső szinten az első.
>> Itt vagyunk iterációjával a felső szintű, 8. sor, folyamatos
amíg sor eléri a 0-ra.
Hány szóköz volt szükségünk nyomtatni, hogy a felső sorban?
Mi nyomtatott hét terek és két hash-eket.
Így a helyek száma, amit akarunk, a sor, amelyek a mínusz 1.
>> Ha a felső sorban 8, 8 mínusz 1. ad nekünk hét terek.
Aztán van egy ciklus, ami kiírja ki minden helyet egyesével.
Tehát, ha a terek 7, ez a hurok hétszer, nyomtatás
hét egyéni terek.
>> Tehát most meg kell nyomtatni ezeket a hash-eket végén a piramis.
Tehát itt, ki kell számolnunk számának hash-eket.
Látjuk, hogy csinálunk magasság mínusz sor plusz 2.
Szóval hogyan kapjuk, hogy?
>> Ne feledje, hogy a tetején a piramis a 8. sor, és a magassága 8.
És még mindig a nyomtatott két hash-eket.
Így legalább 8 mínusz 8 plus 2. megadja a helyes választ.
És akkor fontolja meg az alján A piramis, 1. sor.
Magasság mínusz sort ad nekünk a 7., és a akkor plusz 2 ad nekünk kilenc hash,
ami pontosan a számot A lenyomat, amit nyomtatni.
Tehát ez a formula szeretnénk kiszámításához használja a számot
hash-ben minden sorban.
>> Segítségével ez a szám, akkor majd egy másik a hurok, nagyon hasonló a
for ciklus, hogy használt terek, hogy végigmegy száma hash alkalommal
nyomtatás egy hash minden egyes alkalommal.
A felső sorban, hogy akkor kinyomtatásához két hash-eket.
Az alsó sorban, hogy akkor nyomtat kilenc hash-eket.
És minden más sorban kiírja minden száma hash között.
>> És a legvégén, meg kell nyomtatni az új sort, hogy menjen a következő
sorban a piramis.
Végül, meg kell nyomtatni az új vonal végén a sor annak érdekében, hogy
továbbra is a következő sorban a piramis.
És a végén a programunk, mi van a return 0.
>> Mivel a per a Pset spec, a visszatérés 0 nem feltétlenül szükséges.
De ez nem jelenti azt, hogy fő történik.
A nevem Rob, és ez volt Mario.
>> [MUSIC Playing]