>> [MUSIC nagpe-play]
>> Rob BOWDEN: Ito ay akin, Rob.
Ni maglakad sa pamamagitan ng kung paano Hayaan ipatupad Mario.
Kaya ang unang bagay na kailangan naming gawin ay i-prompt ang user para sa input.
>> Kailangan naming hilingin sa kanila nang eksakto kung paano matangkad ang pyramid ay dapat na.
Kaya dito, makikita natin aming ginagawa taas = GetInt.
Isang At tandaan na ang GetInt function na ay naipatupad sa CS50
library, kaya up tuktok, kailangan naming i- tandaan na # include cs50.h.
>> Kaya bakit mayroon kaming balot ito sa isang do-loop habang?
Well, kailangan din namin na tandaan na input ng user ay may-bisa.
Ano ang isang hindi wastong input?
Well ang pset spec partikular sabi na ang isang taas mas mababa sa 0 o mas mataas
kaysa sa 23 ay hindi wasto.
>> Kaya up dito, nakita namin na kami ay pagtukoy isang pare-pareho ang tinatawag na MAX_HEIGHT sa
halaga ng 23.
Ito do-loop habang ay patuloy habang taas Mas mababa sa 0 o MAX_HEIGHT ay
Mababa sa taas, na nangangahulugan na ang 23 ay mas mababa sa taas.
Kaya kung taas ay 24 o higit pa, kami ay pagpunta sa magpatuloy looping.
Tandaan na gawin-habang loop ay medyo kapaki-pakinabang kapag gusto namin upang makakuha ng
input ng user at pagkatapos ay patunayan ito, dahil hindi maaaring hindi kailangan namin upang hilingin ang gumagamit sa
hindi bababa sa isang beses para sa halaga na gusto nila.
>> Kaya sa sandaling mayroon kaming ang kanilang mga input, namin Maaari na ngayong bumuo ng mga pyramid.
Isa sa mga trick sa problemang ito itakda ay mayroon kaming upang simulan sa tuktok ng
ang mga pyramid.
Hindi mo maaaring printf sa ibaba ng pyramid at pagkatapos ay buuin ang iyong paraan up.
Kaya tingnan natin ang halimbawa ipaalam mula sa pset spec.
>> Nakakakita kami dito na kapag pumasok kami ng taas na 8, ang pinakailalim ng
pyramid ng mga Kopya siyam hashes.
One antas up mula sa na mga kopya isa na espasyo at walong hashes.
One antas up mula sa na ay dalawang mga puwang at pitong hashes, ang lahat ng paraan hanggang namin
makapunta sa tuktok ng pyramid, na siyang walong mga antas ng up, na mga Kopya ng pitong
mga puwang at dalawang hashes.
Kaya tandaan na mayroon kami upang unang gawin ito tuktok na antas.
>> Narito kami iterating mula sa nangungunang antas, hilera 8, patuloy
hanggang umabot hilera 0.
Kaya kung gaano karaming mga puwang ay kailangan namin i-print sa hilerang iyon tuktok?
Naka-print na namin pitong mga puwang at dalawang hashes.
Kaya ang bilang ng mga puwang gusto namin ay ang hilerang iyon ay sa minus 1.
>> Kung hilera sa itaas ay 8, 8 minus 1 ay nagbibigay sa amin ng pitong mga puwang.
Pagkatapos kami ay may isang loop na-print out bawat puwang nang paisa-isa.
Kaya kapag puwang ay 7, ito loop pitong beses, pag-print
pitong indibidwal na mga puwang.
>> Kaya ngayon ay kailangan naming i-print ang mga hashes sa dulo ng mga pyramid.
Kaya dito, kailangan namin upang makalkula ang bilang ng mga hashes.
Nakita namin na aming ginagawa taas minus hilera plus 2.
Kaya kung paano makakuha ay namin iyon?
>> Tandaan na ang tuktok ng pyramid ay hilera 8, at ang taas ay 8.
At kami mga naka-print pa rin dalawang hashes.
Kaya sa pinakadulo hindi bababa sa, 8 minus 8 plus 2 ay nagbibigay sa amin ang tamang sagot.
At pagkatapos ay isaalang-alang ang ilalim ng mga pyramid, Ang hilera 1.
Taas minus hilera ay magbibigay sa amin 7, at pagkatapos plus 2 nagbibigay sa amin ng siyam hashes,
na kung saan ay eksaktong numero ng hashes na namin ang naka-print.
Kaya ito ay ang formula nais naming gamitin upang kalkulahin ang bilang
hashes sa bawat hilera.
>> Paggamit ng numerong iyon, pagkatapos kami ay may isa pang para sa loop, na halos kapareho sa
para sa loop na kami ginamit para sa mga espasyo, na numero iterates ng hashes beses
pag-print ng isang solong hash bawat oras.
Sa hilera sa itaas, na idedetalye i-print ang dalawang hashes.
Sa hilera sa ibaba, na idedetalye i-print ang siyam hashes.
At sa bawat iba pang mga hilera ay i-print ang bawat bilang ng mga hashes sa pagitan.
>> At pagkatapos ay sa dulo, kailangan naming i- i-print ang aming bagong linya upang pumunta sa susunod
Ang hilera sa pyramid.
Panghuli, kailangan naming i-print ang bagong line sa dulo ng hilera upang
magpatuloy sa susunod na hilera ng mga pyramid.
At sa dulo ng aming programa, mayroon kaming ang return 0.
>> Alinsunod sa mga pset spec, ang return 0 ay hindi mahigpit na kinakailangan.
Ngunit ito ay hindi magpahiwatig na ang pangunahing ay tapos na.
Ang pangalan ko ay Rob, at ito ay Mario.
>> [MUSIC nagpe-play]