>> [Mūzikas atskaņošanai]
>> ROB BOWDEN: Tas esmu es, Rob.
Apskatīsim how īstenot Mario.
Tātad pirmā lieta, kas mums jādara, ir atgādinās lietotājam par ievadi.
>> Mums ir nepieciešams uzdot viņiem, kā tieši garš piramīdas jābūt.
Tātad šeit mēs redzam, mēs darām augstums = GetInt.
Un atcerieties, ka GetInt funkcija tiek īstenots CS50
bibliotēka, tik uz augšu augšu, mums ir nepieciešams atcerieties # iekļautu cs50.h.
>> Tad kāpēc mums ir šī ietīts ar do-kamēr cilpa?
Nu, mums ir arī jāatceras, ka lietotāja ievades ir derīgs.
Kas ir nederīgs ievades?
Nu PSET spec konkrēti saka ka augstums ir mazāks par 0 vai lielāks
nekā 23 ir nederīgs.
>> Tātad šeit mēs redzam, ka mēs esam definējot pastāvīga sauc MAX_HEIGHT ar
vērtību 23.
Šī do-kamēr cilpa turpināsies laiku augstums ir mazāks par 0 vai MAX_HEIGHT ir
mazāk nekā augstumā, kas nozīmē, ka 23, ir mazāks nekā augstums.
Tātad, ja augstums ir 24 vai lielāks, mēs esam turpinās looping.
Atcerieties, ka do-kamēr cilpas ir diezgan noderīgi, ja mēs vēlamies, lai iegūtu
lietotāja ievadi un pēc tam apstiprināt to, jo mēs neizbēgami jājautā lietotājam at
Vismaz vienreiz par vērtību, ko tie vēlas.
>> Tātad, kad mēs esam savu ieguldījumu, mēs tagad var veidot piramīdas.
Viena no metodēm, šīs problēmas, kas ir ka mums ir jāsāk augšpusē
piramīdas.
Jūs nevarat printf apakšā piramīdas un pēc tam veidot savu ceļu augšup.
Tāpēc aplūkosim piemēru no PSET spec.
>> Mēs redzam šeit, ka tad, kad mēs ievadiet augstumu 8, pašā apakšā
piramīda drukā deviņus hashes.
Vienu līmeni uz augšu no tā izdrukas viena telpa un astoņi hashes.
Vienu līmeni uz augšu no tā ir divas atstarpes un septiņi hashes, visu ceļu līdz mums
nokļūt uz augšu piramīdas, kas astoņi līmeņi up, kas drukā septiņas
telpas un divas hashes.
Tāpēc atcerieties, ka mums ir darīt šo augstākā līmeņa pirmās.
>> Šeit mēs esam, atkārtojot no augstākā līmeņa, 8 rinda, turpinot
līdz rinda sasniedz 0.
Tik, cik daudz vietas bija mums vajag drukāt šajā augšējā rindā?
Mēs drukāts septiņas telpas un divi hashes.
Tāpēc ir vietu skaits, mēs vēlamies, ir rindu, kas bija mīnus 1.
>> Ja augšējā rinda ir 8, 8 mīnus 1 dod mums septiņas vietas.
Tad mums ir cilpa, kas būs drukāt veic katra kosmosa pa vienam.
Tātad, ja telpās ir 7, tas cilpa septiņas reizes, poligrāfija
septiņas atsevišķas telpas.
>> Tāpēc tagad mums ir nepieciešams izdrukāt šos hashes beigās piramīdas.
Tātad šeit, mums ir nepieciešams, lai aprēķinātu skaits hashes.
Mēs redzam, ka mēs darām augstumu mīnus rinda plus 2.
Tātad, kā mēs iegūt, ka?
>> Atcerieties, ka top piramīdas ir 8 rindas, un augstums ir 8.
Un mēs joprojām iespiež divas hashes.
Tātad vismaz 8 mīnus 8 plus 2 dod mums pareizo atbildi.
Un tad lems dibenu piramīdas, rinda 1.
Augstums mīnus rinda dos mums 7, un tad plus 2 dod mums deviņas hashes,
kas ir tieši numurs no hashes, ka mēs izdrukāt.
Tāpēc šī ir formula, mēs vēlamies izmantot, lai aprēķinātu numuru
hashes katrā rindā.
>> Izmantojot šo numuru, tad mums ir cita cilpa, kas ir ļoti līdzīgs
cilpa, ka mēs izmantojām, lai telpās, kas vairākkārt uzsvērts skaits hashes reižu
drukāšanu no atsevišķa hash katru reizi.
Uz augšējā rindā, ka būs drukāt divas hashes.
Uz apakšējā rindā, ka būs drukāt deviņas hashes.
Un katra otrā rinda drukāt katru skaits hashes starp.
>> Un tad pašās beigās, mums ir izdrukāt mūsu jauno līniju, lai dotos uz nākamo
rinda piramīdas.
Visbeidzot, mums ir nepieciešams, lai izdrukātu jaunu līniju beigās rindas, lai
turpina nākamais rinda piramīdas.
Un beigās mūsu programmas mēs esam atpakaļ 0.
>> Kā vienu PSET spec, atgriešanās 0 nav absolūti nepieciešams.
Bet tas gan nozīmē, ka galvenais ir izdarīts.
Mans vārds ir Rob, un tas bija Mario.
>> [Mūzikas atskaņošanai]