>> [Glazba svira]
>> ROB Bowden: To sam ja, Rob.
Idemo prošetati how provoditi Mario.
Dakle, prva stvar koju trebate učiniti je brz korisnik za ulaz.
>> Moramo ih pitati kako točno Visok piramide treba biti.
Pa evo, vidimo što radimo Visina = GetInt.
I ne zaboravite da je funkcija GetInt provodi se u CS50
knjižnica, pa do vrha, moramo sjetite se # include cs50.h.
>> Pa zašto onda imamo ovo umotana u do-while petlje?
Pa, mi također treba imati na umu da korisnikov ulaz mora biti valjana.
Što je nevažeći unos?
Pa pset spec. izričito kaže da visina manja od 0 ili veći
od 23 nevažeća.
>> Dakle, ovdje vidimo da smo definiranju konstantna zove MAX_HEIGHT s
Vrijednost 23.
To do-while petlja će se nastaviti dok visina je manja od 0 ili MAX_HEIGHT je
manja od visine, što znači da 23 je manja od visine.
Dakle, ako visina je 24 ili više, mi smo će nastaviti petlje.
Ne zaboravite da je to-a petlje su prilično korisno kad god želimo dobiti
korisničkog unosa, a potom ga provjeriti, jer neizbježno morati pitati korisnika na
Barem jednom za vrijednost oni žele.
>> Dakle, nakon što smo svoj doprinos, možemo Sada možete izgraditi piramidu.
Jedan od trikova ovog problema postavili je da moramo početi na vrhu
piramide.
Ne možete printf dno piramide, a zatim graditi svoj put prema gore.
Pa pogledajmo na primjeru iz pset spec..
>> Ovdje vidimo da kada uđemo u visinu od 8, vrlo dno
Piramida ispisuje devet hashes.
Jedna razina iz koje ispisuje za jedno mjesto i osam Skosan.
Jedna razina gore od toga je dva mjesta i sedam Skosan, sve dok ne
doći do vrha piramide, koja je osam razina, kojim se ispisuje sedam
prostori i dvije presjeke.
Dakle, ne zaboravite da moramo to učiniti najviše razine prvi.
>> Ovdje smo iterating iz najvišoj razini, red 8, nastavljajući
dok red dođe 0.
Pa koliko mjesta si moramo ispisati u tom gornjem redu?
Tiskana smo sedam mjesta i dva Skosan.
Dakle, broj mjesta želimo je red koji su bili na minus jedan.
>> Ako gornji red je 8, 8 minus 1. daje nam sedam mjesta.
Onda ćemo imati petlju koja će ispisati iz svakog prostora jedan po jedan.
Dakle, kada je 7 mjesta, ova petlja sedam puta, tisak
pojedinačnih sedam mjesta.
>> Tako smo sada treba ispisati ove hashes na kraju piramide.
Pa evo, moramo izračunati broj presjeke.
Vidimo da radimo visinu minus red plus 2.
Pa kako ćemo to?
>> Ne zaboravite da je vrh piramide je red 8, i visina 8.
I još se ispisuju dva hashes.
Dakle, u najmanju ruku, 8 minus 8 plus 2. daje nam pravi odgovor.
A onda razmislite dno piramide, red 1.
Visina minus red će nam dati 7, a onda plus 2 nam daje devet hashes,
koji je točno broj od sasjecka da ćemo tiskati.
Dakle, to je formula želimo koristiti za izračun broja
sasjecka u svakom retku.
>> Koristeći taj broj, a zatim još jedan za petlju, vrlo sličan
za petlje da smo se koristili za prostore, da iterates broj sasjecka puta
tiskanje jednog hash svaki put.
Na gornjem redu, koji će ispisati dva hashes.
Na donjem redu, koji će ispisati devet hashes.
I svaki drugi red će ispisati svaki broj hashes između.
>> A onda na samom kraju, moramo ispisati našu novu liniju ići naprijed
red u piramidi.
Na kraju, moramo ispisati novu liniju na kraju retka, kako bi se
nastaviti iduće red piramide.
I na kraju našeg programa, imamo povratak 0.
>> Kao po pset spec., povratak 0 nije strogo potrebno.
No, to ne znači da glavna je učinio.
Moje ime je Rob, a to je Mario.
>> [Glazba svira]