>> [MUZIKO Ludanta]
>> ROB Bowden: Ĝi estas mi, Rob.
Ni marŝas tra kiom apliki Mario.
Do la unua afero, kiun ni devas fari estas suflori la uzanto por la enigo.
>> Ni devas demandi ilin ekzakte kiel altkreska la piramido devus esti.
Do jen, ni vidas ni faras alto = GetInt.
An Kaj memoru, ke la GetInt funkcio estas implementado en la CS50
biblioteko, do supren supro, ni bezonas memori # include cs50.h.
>> Do kial ni havas ĉi envolvita en la do-while buklo?
Nu, ni bezonas ankaŭ memori ke la uzanto enigo devas esti valida.
Kio estas nevalida enigo?
Nu la pset spec specife diras ke altecon malpli ol 0 aŭ pli granda
ol 23 estas malvalida.
>> Do supren ĉi tien, ni vidas ke ni difini konstanta nomata MAX_HEIGHT kun la
valoro de 23.
Tiu do-dum buklo daŭrigos dum alteco estas malpli ol 0 aŭ MAX_HEIGHT estas
malpli ol alteco, kio signifas, ke 23 estas malpli ol la alteco.
Do, se alto estas 24 aŭ pli grandaj, ni estas tuj daŭrigi looping.
Memoru ke do-dum masxojn estas bela helpema kiam ajn ni volas akiri
uzanto enigo kaj poste validigi ĝin, pro ni neeviteble devas demandi al la uzanto ĉe
Almenaŭ unufoje por la valoro ili volas.
>> Do iam ni havos sian eniron, ni povas nun konstrui la piramido.
Unu el la atutoj de tiu problemo metita estas ke ni devas komenci ĉe la supro de
la piramido.
Vi ne povas printf la fundo de la piramido kaj tiam konstrui vian vojon supren.
Do ni rigardu la ekzemplo el la pset spec.
>> Oni vidas ĉi tie ke kiam ni eniros alteco de 8, la tre fundo de la
piramido presas naŭ hashes.
Unu nivelon supren el tiu printaĵoj unu spaco kaj ok hashes.
Unu nivelon supren for de kiu estas du spacoj kaj sep hashes, la tuta vojo, ĝis ni
atingi la supron de la piramido, kiu estas ok niveloj supren, kiu videbligas sep
spacoj kaj du hashes.
Do memoru, ke ni devas fari ĉi supro nivelo unue.
>> Ĉi tie ni ripetanta el la supera nivelo, vico 8, daŭrigante
ĝis vico atingas 0.
Do kiom da spacoj ni bezonas presi en tiu supera vico?
Ni presas sep spacoj kaj du hashes.
Do la nombro de spacoj ni volas estas la vico, kiuj estis sur minus 1.
>> Se la supro vico estas 8, 8 minus 1 donas al ni sep spacetoj.
Tiam ni havas buklo ke presos el ĉiu spaco unuope.
Do kiam spacoj estas 7, ĉi tiu ciklo sep fojojn, impreso
sep individuajn spacoj.
>> Do nun ni devas presi tiujn hashes ĉe la fino de la piramido.
Do jen, ni bezonas por kalkuli la nombro de hashes.
Ni vidas, ke ni faras alteco minus vico plus 2.
Do kiamaniere ni atingos tion?
>> Memoru ke la supro de la piramido estas vico 8, kaj la alto estas 8.
Kaj ni ankoraŭ presita du hashes.
Do almenaŭ, 8 minus 8 plus 2 donas al ni la ĝustan respondon.
Kaj tiam konsideri la malsupro de la piramido, remi 1.
Alteco minus vico nin donos 7, kaj tiam plus 2 donas al ni naŭ hashes,
kio estas ekzakte la nombron de hashes ke ni presita.
Do tiu estas la formulo ni volas uzi por kalkuli la nombron
hashes en ĉiu vico.
>> Uzante tiun numeron, ni tiam havi alian buklo, tre simila al la
por buklo kiun ni uzis por la spacoj, kiuj ripetas nombron de hashes fojoj
presi sola hash ĉiufoje.
Sur supro vico, tio estos presi du hashes.
Sur la funda linio, kiu timige presi naŭ hashes.
Kaj reciproke vico presos ĉiu numeron de hashes en inter.
>> Kaj poste, je la fino, ni devas presi nia nova linio por iri al la sekvanta
remi en la piramido.
Fine, ni devas presi la nova linio ĉe la fino de la vico por
daŭrigi al la venonta vico de la piramido.
Kaj je la fino de nia programo, ni havas la reveno 0.
>> Kiel por la pset spec, la reveno 0 estas ne strikte necesaj.
Sed tio ne signifas, ke ĉefaj estas farita.
Mia nomo estas Rob, kaj tio estis por Mario.
>> [MUZIKO Ludanta]