>> [MUSIC Playing]
>> Rob Bowden: Është e mua, Rob.
Le të ecin nëpër se si për të zbatuar Mario.
Pra, gjëja e parë që ne duhet të bëni është të shpejtë e përdoruesit për të dhëna.
>> Ne duhet të pyesni ata saktësisht se si i gjatë piramidale duhet të jetë.
Kështu që këtu, ne shohim ne jemi duke bërë height = GetInt.
Një Dhe mos harroni se funksioni GetInt zbatohet në CS50
Biblioteka, kështu që deri të lartë, ne kemi nevojë për të mos harroni të përfshijë # cs50.h.
>> Pra, pse nuk kemi këtë përfundoi në një lak për ta bërë, ndërsa?
E pra, ne gjithashtu duhet të mbani mend se Futja e përdoruesit duhet të jetë e vlefshme.
Çfarë është një input i pavlefshëm?
Well spekulim pset në mënyrë specifike thotë se nje lartesi me pak se 0 ose më e madhe
se 23 është i pavlefshëm.
>> Pra, deri këtu, ne shohim se ne jemi përcaktimin një konstante quajtur MAX_HEIGHT me
Vlera e 23.
Kjo do-loop ndërsa do të vazhdojë ndërsa lartësi është më e vogël se 0 ose MAX_HEIGHT është
më pak se lartësia, që do të thotë se 23 është më e vogël se lartësia.
Pra, nëse lartësia është 24 ose më e madhe, ne jemi do të vazhdojë looping.
Mos harroni që të bëni-ndërsa sythe janë mjaft të dobishme sa herë që ne duam që të merrni
input përdoruesit dhe pastaj të vërtetoni atë, pasi që ne në mënyrë të pashmangshme duhet të kërkojë nga shfrytëzuesi në
paktën një herë për vlerën që ata duan.
>> Pra, një herë ne kemi kontributin e tyre, ne tani mund të ndërtuar piramidën.
Një nga truket e këtij problemi të përcaktuara është se ne duhet të fillojë në krye të
piramidale.
Ju nuk mund të printf pjesën e poshtme të piramidale dhe pastaj të ndërtuar rrugën tuaj deri.
Pra, le të shohim në shembullin nga spec pset.
>> Ne shohim këtu se kur kemi hyrë në një lartësi i 8, në fund shumë e
Piramida shtyp nëntë hashes.
Një nivelit të lart nga që printime një hapësirë ​​dhe tetë hashes.
Një nivelit të lart nga që është dy hapësira dhe shtatë hashes, të gjithë rrugën deri sa të
të marrë në krye të piramidës, e cila është tetë nivele up, të cilat Shtyp shtatë
hapësira dhe dy hashes.
Pra, mos harroni se ne duhet të bëni këtë nivel të lartë të parë.
>> Këtu ne jemi iterating nga nivelit të lartë, rreshti 8, duke vazhduar
deri sa rresht arrin 0.
Pra, si shumë hapësira e ne kemi nevojë për të shkruar në atë rresht të lartë?
Ne shtypura shtatë hapësira dhe dy hashes.
Pra, numri i hapësirave që ne duam është rresht që ishin në minus 1.
>> Nëse rresht lartë është 8, 8 minus 1 na jep shtatë hapësira.
Pastaj ne kemi një lak që do të shtypura nga çdo një hapësirë ​​në një kohë.
Pra, kur hapësira është 7, ky loop shtatë herë, shtypjen
shtatë hapësira individuale.
>> Deri tani ne kemi nevojë për të shkruar këto hashes në fund të piramide.
Pra këtu, ne kemi nevojë për të llogaritur Numri i hashes.
Ne shohim se ne jemi duke bërë lartësi rresht minus plus 2.
Pra, si nuk kemi marrë atë?
>> Mos harroni se maja e piramidës është rresht 8, dhe lartësia është 8.
Dhe ne ende të shtypura dy hashes.
Pra, në fund të fundit, 8 minus 8 plus 2 na jep përgjigjen e duhur.
Dhe pastaj e konsiderojnë pjesën e poshtme e piramidës, rresht 1.
Rresht lartësi minus do të na japë 7, dhe pastaj plus 2 na jep nëntë hashes,
e cila është pikërisht numri i hashes që ne të shtypura.
Pra, kjo është formula që ne duam të përdorin për të llogaritur numrin
hashes në çdo rresht.
>> Duke përdorur këtë numër, atëherë ne kemi një tjetër për lak, shumë të ngjashme me
për lak që kemi përdorur për hapësirat, që iterates numri i hashes herë
shtypjen e një hash të vetme çdo herë.
Në radhë të lartë, që do të shtypura dy hashes.
Në rreshtin e poshtëm, që do të shtypura nëntë hashes.
Dhe çdo rresht të tjera do të shtypura çdo Numri i hashes në mes.
>> Dhe pastaj në fund, ne duhet të shtypura linjë tonë të re për të shkuar për të ardhshëm
rresht në piramidale.
Së fundi, ne kemi nevojë për të shtypur linjë të re në fund të rresht në mënyrë të
vazhdojnë të ardhshëm rresht e piramidës.
Dhe në fund të programit tonë, ne kemi kthimin 0.
>> Sa per spekulim pset, kthimi 0 nuk është e domosdoshme.
Por kjo nuk tregon se kryesor është bërë.
Emri im është Rob, dhe kjo ishte Mario.
>> [MUSIC Playing]