>> [Muusika mängib]
>> ROB BOWDEN: See olen mina, Rob.
Vaatame, kuidas rakendada Mario.
Nii et esimene asi, mida me peame tegema, on kiire kasutaja sisend.
>> Me peame küsima neid täpselt, kuidas pikk püramiid peaks olema.
Nii et siin me näeme me teeme kõrgus = GetInt.
Ja pidage meeles, et GetInt funktsioon rakendatakse CS50
raamatukogu, nii üleval peame mäletan, et # include cs50.h.
>> Miks siis meil on see pakitud in do-kui ahela?
Noh, me peame ka meeles pidama, et kasutaja sisend peab olema kehtiv.
Mis on vale sisend?
Noh pset spec konkreetselt ütleb et kõrgus on väiksem kui 0 või suurem
kui 23 on kehtetu.
>> Nii siin, me näeme, et me määratlemisel pidev nn MAX_HEIGHT koos
väärtus 23.
See do-kui ahela jätkab samas kõrgus on väiksem kui 0 või MAX_HEIGHT on
vähem kui kõrgus, mis tähendab, et 23 on väiksem kui kõrgus.
Seega, kui kõrgus on 24 või suurem, me oleme jätkub silmusega.
Pea meeles, et tee-kui silmuseid on päris kasulik, kui me tahame saada
kasutaja sisend ja seejärel kinnita seda, kuna me paratamatult vaja küsida kasutajale
vähemalt üks kord raha nad tahavad.
>> Nii et kui meil on oma panuse, et me saab nüüd ehitada püramiidi.
Üks trikke see probleem määrata, on et meil tuleb alustada ülaosas
püramiid.
Sa ei saa printf põhja püramiid ja siis ehitada oma tee üles.
Nii vaatame näiteks alates pset spec.
>> Me näeme siin, et kui me siseneme kõrgus 8, väga põhjas
püramiid prindib üheksa hashes.
Ühe taseme võrra üles, mis prindib üks ruum ja kaheksa hashes.
Ühe taseme võrra üles, et on kaks sammu ja seitse hashes, kõik viis kuni me
saada üles püramiidi, mis on kaheksa taset üles, mis prindib seitsme
ruumid ja kaks hashes.
Seega pidage meeles, et me peame seda tipptasemel esimene.
>> Siin me iterating alates Kõrgeimal rida 8, jätkates
kuni rida jõuab 0.
Niisiis, kuidas paljud ruumid me vajame printida, et ülemine rida?
Me trükitud seitse ruumid ja kaks hashes.
Nii mitu sammu me tahame rida, mis olid miinus 1.
>> Kui ülemine rida on 8, 8 miinus 1 annab meile seitse ruumid.
Siis on meil loop mis prindib välja iga ruum ühe korraga.
Nii et kui ruumid on 7, see loop seitse korda, trükkimine
seitse eraldi ruumid.
>> Nüüd on meil vaja printida need hashes lõpus püramiid.
Nii et siin on meil vaja arvutada arvu hashes.
Me näeme, et me teeme kõrgus miinus rida pluss 2.
Niisiis, kuidas me saame seda?
>> Pea meeles, et püramiidi tipus on rida 8 ja kõrgus on 8.
Ja meil on veel trükitud kaks hashes.
Nii vähemalt 8 miinus 8 pluss 2 annab meile õige vastus.
Ja siis leiavad alt Püramiidi rida 1.
Pikkus miinus rida annab meile 7 ja siis pluss 2 annab meile üheksa hashes
mis on täpselt number hashes et me trükitud.
Nii et see on valem tahame ja arvutab number
hashes igas reas.
>> Kasutades et number, siis jõuame veel silmus, väga sarnane
jaoks silmus, mis me kasutada ruumides, mis kordab mitu hashes korda
printimist ühe hash iga kord.
Ülemisel real, mis sa prindi kaks hashes.
Alumisele reale, et tulen prindi üheksa hashes.
Ja üksteist rida prinditakse iga arvu hashes vahel.
>> Ja siis päris lõpus, peame printida meie uus liin minna järgmisele
rida püramiid.
Lõpuks peame printida uue liini lõpus reas, et
jätkata järgmise rida püramiidi.
Ja lõpuks meie programmi meil return 0.
>> Nagu iga pset spec, tulu 0 ei ole tingimata vajalik.
Aga see ei tähenda, et peamine on tehtud.
Minu nimi on Rob ja see oli Mario.
>> [Muusika mängib]